|
@@ -0,0 +1,322 @@
|
|
|
|
+<template>
|
|
|
|
+ <div id="index">
|
|
|
|
+ <el-row>
|
|
|
|
+ <el-col :span="24" class="main">
|
|
|
|
+ <div class="w_1200">
|
|
|
|
+ <el-col :span="24" class="one">
|
|
|
|
+ <el-col :span="6" class="list" v-for="(item, index) in list" :key="index" @click.native="link(item)">
|
|
|
|
+ <el-col :span="24" class="name">
|
|
|
|
+ <i class="iconfont" :class="item.icon"></i>
|
|
|
|
+ <p>{{ item.name }}</p>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="24" class="common">
|
|
|
|
+ <el-col :span="24" class="common_1">
|
|
|
|
+ <!-- <top topText="科技项目评审" :userMore="false"></top> -->
|
|
|
|
+ <list type="1" :list="oneList" @detail="detail"></list>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="24" class="common_1">
|
|
|
|
+ <!-- <top topText="高企政策服务" :userMore="false"></top> -->
|
|
|
|
+ <list type="1" :list="twoList" @detail="detail"></list>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="24" class="common_1">
|
|
|
|
+ <!-- <top topText="高企申报服务" :userMore="false"></top> -->
|
|
|
|
+ <list type="1" :list="thrList" @detail="detail"></list>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="24" class="common_1">
|
|
|
|
+ <!-- <top topText="科技成果评价" :userMore="false"></top> -->
|
|
|
|
+ <list type="1" :list="fourList" @detail="detail"></list>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="24" class="common_1">
|
|
|
|
+ <!-- <top topText="专家智库" :userMore="false"></top> -->
|
|
|
|
+ <list type="1" :list="fiveList" @detail="detail"></list>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="24" class="common_1">
|
|
|
|
+ <!-- <top topText="企业管理" :userMore="false"></top> -->
|
|
|
|
+ <list type="1" :list="sixList" @detail="detail"></list>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="24" class="common_1">
|
|
|
|
+ <!-- <top topText="机构管理" :userMore="false"></top> -->
|
|
|
|
+ <list type="1" :list="sevenList" @detail="detail"></list>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-col>
|
|
|
|
+ </div>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-dialog :title="dialogTitle" class="dialog2" :visible.sync="dialog2" width="70%" :before-close="dialog2Colse">
|
|
|
|
+ <info :type="dialogType"></info>
|
|
|
|
+ <el-col :span="24" class="two">
|
|
|
|
+ <el-form :model="form2" :rules="rulesForm2" ref="form2" label-width="80px">
|
|
|
|
+ <el-form-item label="用户账号" prop="institution_code">
|
|
|
|
+ <el-input v-model="form2.institution_code" placeholder="请输入用户账号" maxlength="18"></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="登录密码" prop="passwd">
|
|
|
|
+ <el-input v-model="form2.password" placeholder="请输入登录密码" type="password" show-password></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-col :span="24" class="btn">
|
|
|
|
+ <el-button type="primary" @click="onSubmit2('form2')">提交登录</el-button>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-form>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-dialog>
|
|
|
|
+ <el-dialog title="信息详情" class="dialog" :visible.sync="dialog" width="50%" :before-close="dialogColse">
|
|
|
|
+ <div>
|
|
|
|
+ <p>{{ info.title }}</p>
|
|
|
|
+ <p>
|
|
|
|
+ <span>信息来源:{{ info.origin }}</span>
|
|
|
|
+ <span>发布时间:{{ info.release_time }}</span>
|
|
|
|
+ </p>
|
|
|
|
+ <p v-if="info.image">
|
|
|
|
+ <img v-for="(item, index) in info.image" :key="index" :src="item.url" />
|
|
|
|
+ </p>
|
|
|
|
+ <p v-html="info.content"></p>
|
|
|
|
+ <el-link :underline="false" :href="getImage(info.fileUrl)">{{ getName(info.fileUrl) }}</el-link>
|
|
|
|
+ </div>
|
|
|
|
+ </el-dialog>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script>
|
|
|
|
+import top from './parts/top.vue';
|
|
|
|
+import list from './parts/list.vue';
|
|
|
|
+import info from './parts/info.vue';
|
|
|
|
+import { btnList } from './btnList.js';
|
|
|
|
+const { openColumn } = require('@common/dict/index');
|
|
|
|
+import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
|
+const { mapActions: organization } = createNamespacedHelpers('organization');
|
|
|
|
+const { mapActions: openinfo } = createNamespacedHelpers('openInfo');
|
|
|
|
+const _ = require('lodash');
|
|
|
|
+export default {
|
|
|
|
+ name: 'index',
|
|
|
|
+ props: {},
|
|
|
|
+ components: { list, info },
|
|
|
|
+ data: function () {
|
|
|
|
+ return {
|
|
|
|
+ list: btnList,
|
|
|
|
+ // 高企政策服务
|
|
|
|
+ dialog2: false,
|
|
|
|
+ form2: {},
|
|
|
|
+ rulesForm2: {
|
|
|
|
+ phone: [{ required: true, message: '请输入用户账号', trigger: 'blur' }],
|
|
|
|
+ password: [{ required: true, message: '请输入登录密码', trigger: 'blur' }],
|
|
|
|
+ },
|
|
|
|
+ dialogTitle: '高企政策服务',
|
|
|
|
+ dialogType: undefined,
|
|
|
|
+ // 下方列表
|
|
|
|
+ // 栏目列表
|
|
|
|
+ oneList: [],
|
|
|
|
+ twoList: [],
|
|
|
|
+ thrList: [],
|
|
|
|
+ fourList: [],
|
|
|
|
+ fiveList: [],
|
|
|
|
+ sixList: [],
|
|
|
|
+ sevenList: [],
|
|
|
|
+ // 信息详情
|
|
|
|
+ dialog: false,
|
|
|
|
+ info: {},
|
|
|
|
+ };
|
|
|
|
+ },
|
|
|
|
+ async created() {
|
|
|
|
+ await this.search();
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ ...organization(['orgLogin', 'fetch']),
|
|
|
|
+ ...openinfo(['query']),
|
|
|
|
+ link(data) {
|
|
|
|
+ const { type, name } = data;
|
|
|
|
+ if (type == '1') {
|
|
|
|
+ window.open('http://www.jlkjxm.com');
|
|
|
|
+ } else if (type == '2') {
|
|
|
|
+ this.dialog2 = true;
|
|
|
|
+ this.dialogTitle = name;
|
|
|
|
+ this.dialogType = type;
|
|
|
|
+ } else if (type == '3') {
|
|
|
|
+ this.dialog2 = true;
|
|
|
|
+ this.dialogTitle = name;
|
|
|
|
+ this.dialogType = type;
|
|
|
|
+ } else if (type == '4') {
|
|
|
|
+ window.open('http://broadcast.waityou24.cn/liveAchieve');
|
|
|
|
+ } else if (type == '5') {
|
|
|
|
+ this.$router.push({ path: '/service/register', query: { type: type } });
|
|
|
|
+ } else if (type == '6') {
|
|
|
|
+ this.$router.push({ path: '/service/register', query: { type: type } });
|
|
|
|
+ } else if (type == '7') {
|
|
|
|
+ this.$router.push({ path: '/service/register', query: { type: type } });
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ // 高企政策服务
|
|
|
|
+ dialog2Colse() {
|
|
|
|
+ this.dialog2 = false;
|
|
|
|
+ },
|
|
|
|
+ // 高企政策服务登录
|
|
|
|
+ onSubmit2(formName) {
|
|
|
|
+ this.$refs[formName].validate(async (valid) => {
|
|
|
|
+ if (valid) {
|
|
|
|
+ let data = this.form2;
|
|
|
|
+ const res = await this.orgLogin({ user: data });
|
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
|
+ if (this.dialogType === '2') this.$router.push({ path: '/service/policy' });
|
|
|
|
+ if (this.dialogType === '3') this.$router.push({ path: '/service/ticket' });
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ console.log('error submit!!');
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ // 查询列表信息
|
|
|
|
+ async search({ skip = 0, limit = 10, ...info } = {}) {
|
|
|
|
+ for (const val of openColumn) {
|
|
|
|
+ info.column_name = val.label;
|
|
|
|
+ let res = await this.query({ skip, limit: 6, ...info });
|
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
|
+ this.$set(this, `${val.value}List`, res.data);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ // 查看列表信息详情
|
|
|
|
+ detail(data) {
|
|
|
|
+ this.$set(this, `info`, data);
|
|
|
|
+ this.dialog = true;
|
|
|
|
+ },
|
|
|
|
+ getImage(data) {
|
|
|
|
+ if (_.map(data, 'url')[0]) {
|
|
|
|
+ return _.map(data, 'url')[0];
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ getName(data) {
|
|
|
|
+ if (_.map(data, 'name')[0]) {
|
|
|
|
+ return _.map(data, 'name')[0];
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ // 关闭信息查看
|
|
|
|
+ dialogColse() {
|
|
|
|
+ this.dialog = false;
|
|
|
|
+ },
|
|
|
|
+ // 查询企业详细信息
|
|
|
|
+ async searchCompany(data) {
|
|
|
|
+ let res = await this.fetch(data.user_id);
|
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
|
+ data.company = res.data.name;
|
|
|
|
+ return data;
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ computed: {
|
|
|
|
+ ...mapState(['user']),
|
|
|
|
+ },
|
|
|
|
+ metaInfo() {
|
|
|
|
+ return { title: this.$route.meta.title };
|
|
|
|
+ },
|
|
|
|
+ watch: {
|
|
|
|
+ test: {
|
|
|
|
+ deep: true,
|
|
|
|
+ immediate: true,
|
|
|
|
+ handler(val) {},
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<style lang="less" scoped>
|
|
|
|
+.main {
|
|
|
|
+ min-height: 500px;
|
|
|
|
+ margin: 20px 0 0 0;
|
|
|
|
+ .one {
|
|
|
|
+ margin: 0 0 20px 0;
|
|
|
|
+ .list {
|
|
|
|
+ width: 13.5%;
|
|
|
|
+ height: 130px;
|
|
|
|
+ margin: 0 10px 0px 0;
|
|
|
|
+ text-align: center;
|
|
|
|
+ padding: 20px 0;
|
|
|
|
+ border-radius: 5px;
|
|
|
|
+ box-shadow: 0 0 5px #409eff;
|
|
|
|
+ .name {
|
|
|
|
+ .iconfont {
|
|
|
|
+ font-size: 40px;
|
|
|
|
+ }
|
|
|
|
+ p {
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ margin: 10px 0 0 0;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .list:nth-child(7) {
|
|
|
|
+ margin: 0 0 0 0;
|
|
|
|
+ }
|
|
|
|
+ .list:hover {
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ .name {
|
|
|
|
+ p {
|
|
|
|
+ color: #6495ed;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .common {
|
|
|
|
+ .common_1 {
|
|
|
|
+ min-height: 90px;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ box-shadow: 0 0 4px #409eff;
|
|
|
|
+ border-radius: 10px;
|
|
|
|
+ margin: 0 10px 10px 0;
|
|
|
|
+ padding: 10px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+.dialog2 {
|
|
|
|
+ .two {
|
|
|
|
+ height: 200px;
|
|
|
|
+ background: #fff;
|
|
|
|
+ padding: 0 20%;
|
|
|
|
+ .btn {
|
|
|
|
+ text-align: center;
|
|
|
|
+ padding: 10px 0;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ /deep/.el-dialog__body {
|
|
|
|
+ padding: 0;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+.dialog {
|
|
|
|
+ /deep/.el-dialog__body {
|
|
|
|
+ padding: 10px;
|
|
|
|
+ }
|
|
|
|
+ p:nth-child(1) {
|
|
|
|
+ font-size: 20px;
|
|
|
|
+ text-align: center;
|
|
|
|
+ color: #000;
|
|
|
|
+ margin: 0 0 10px 0;
|
|
|
|
+ }
|
|
|
|
+ p:nth-child(2) {
|
|
|
|
+ text-align: center;
|
|
|
|
+ margin: 0 0 10px 0;
|
|
|
|
+ span {
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ padding: 0 10px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ p:nth-child(3) {
|
|
|
|
+ text-align: center;
|
|
|
|
+ img {
|
|
|
|
+ width: 49.4%;
|
|
|
|
+ height: 200px;
|
|
|
|
+ margin: 0 10px 10px 0;
|
|
|
|
+ border-radius: 10px;
|
|
|
|
+ }
|
|
|
|
+ img:nth-child(2n) {
|
|
|
|
+ margin: 0 0 10px 0;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ p:nth-child(4) {
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ margin: 0 0 10px 0;
|
|
|
|
+ }
|
|
|
|
+ .el-link {
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+</style>
|