guhongwei 4 vuotta sitten
vanhempi
commit
f4b4a22534

+ 4 - 4
src/views/adminCenter/company/product/parts/one.vue

@@ -57,8 +57,8 @@
             </el-col>
             <el-col :span="12" class="text">
               <el-form-item label="合作方式" prop="cooperation">
-                <el-select v-model="form.condition" placeholder="">
-                  <el-option v-for="(item, index) in conditionList" :key="index" :label="item.label" :value="item.value"></el-option>
+                <el-select v-model="form.cooperation" placeholder="">
+                  <el-option v-for="(item, index) in cooperationList" :key="index" :label="item.label" :value="item.value"></el-option>
                 </el-select>
               </el-form-item>
             </el-col>
@@ -100,7 +100,7 @@
 </template>
 
 <script>
-const { field, condition } = require('@common/dict/index');
+const { field, cooperation } = require('@common/dict/index');
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
   name: 'one',
@@ -112,7 +112,7 @@ export default {
   data: function () {
     return {
       fieldList: field,
-      conditionList: condition,
+      cooperationList: cooperation,
     };
   },
   created() {},

+ 5 - 5
src/views/adminCenter/company/product/parts/two.vue

@@ -42,9 +42,9 @@
               </el-form-item>
             </el-col>
             <el-col :span="12" class="text">
-              <el-form-item label="合作方式" prop="condition">
-                <el-select v-model="form.condition" placeholder="">
-                  <el-option v-for="(item, index) in conditionList" :key="index" :label="item.label" :value="item.value"></el-option>
+              <el-form-item label="合作方式" prop="cooperation">
+                <el-select v-model="form.cooperation" placeholder="">
+                  <el-option v-for="(item, index) in cooperationList" :key="index" :label="item.label" :value="item.value"></el-option>
                 </el-select>
               </el-form-item>
             </el-col>
@@ -154,7 +154,7 @@
 </template>
 
 <script>
-const { field, condition, achievestatus, achievesource } = require('@common/dict/index');
+const { field, cooperation, achievestatus, achievesource } = require('@common/dict/index');
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
   name: 'two',
@@ -166,7 +166,7 @@ export default {
   data: function () {
     return {
       fieldList: field,
-      conditionList: condition,
+      cooperationList: cooperation,
       achievestatusList: achievestatus,
       achievesourceList: achievesource,
       // 专利信息

+ 66 - 136
src/views/adminCenter/product/detail.vue

@@ -1,164 +1,72 @@
 <template>
   <div id="detail">
-    <data-form :fields="fields" :data="data" @save="toSave" returns="/adminCenter/product" @filterReturn="toSelect">
-      <template #options="{ item }">
-        <template v-if="item.model === 'type'">
-          <el-option v-for="(i, index) in typeList" :key="`type-${index}`" :label="i.label" :value="i.value"></el-option>
-        </template>
-      </template>
-      <template #custom="{ item }">
-        <template v-if="item.model === 'image'">
-          <e-upload url="/files/cysci/product_image/upload" v-model="data[item.model]"></e-upload>
-        </template>
-        <template v-if="item.model === 'roadshow'">
-          <e-upload url="/files/cysci/product_roadshow/upload" v-model="data[item.model]" type="text"></e-upload>
-        </template>
-        <template v-if="item.model === 'patent'">
-          <el-row type="flex" justify="end" style="padding-bottom: 10px">
-            <el-col :span="2">
-              <el-button type="primary" @click="data[item.model].push({})">添加</el-button>
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="8" v-for="(i, index) in data[item.model]" :key="`patent-${index}`">
-              <el-form-item label="专利信息">
-                <el-input v-model="i.patentinfo" placeholder="请填写专利信息"></el-input>
-              </el-form-item>
-              <el-form-item label="专利状态">
-                <el-input v-model="i.patentstatus" placeholder="请填写专利状态"></el-input>
-              </el-form-item>
-              <el-form-item>
-                <el-row type="flex" justify="space-around">
-                  <el-col :span="2">
-                    <el-button type="danger" @click="data[item.model].splice(index, 1)">删除</el-button>
-                  </el-col>
-                </el-row>
-              </el-form-item>
-            </el-col>
-          </el-row>
-        </template>
-      </template>
-    </data-form>
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="one">
+          <el-col :span="24" class="top">
+            <el-button type="primary" size="mini" @click="back">返回</el-button>
+          </el-col>
+          <el-col :span="24" class="down">
+            <one v-if="type == '0'" :form="form" @back="back" @onSubmit="onSubmit"></one>
+            <two v-else-if="type == '1'" :form="form" @back="back" @onSubmit="onSubmit"></two>
+            <thr v-else-if="type == '2'" :form="form" @back="back" @onSubmit="onSubmit"></thr>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
   </div>
 </template>
 
 <script>
-const _ = require('lodash');
-const { productType } = require('@common/dict/index');
+import one from './parts/one.vue';
+import two from './parts/two.vue';
+import thr from './parts/thr.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
 const { mapActions: product } = createNamespacedHelpers('product');
 export default {
-  name: 'productDetail',
+  name: 'detail',
   props: {},
-  components: {},
+  components: {
+    one,
+    two,
+    thr,
+  },
   data: function () {
     return {
-      typeList: productType,
-      data: {
-        image: [],
-        roadshow: [],
-        patent: [],
-      },
-      fields: [],
-      fieldsPublic: [
-        { label: '名称', model: 'name' },
-        { label: '联系人', model: 'contacts' },
-        { label: '联系电话', model: 'phone' },
-        { label: 'qq&微信', model: 'qqwx' },
-        { label: '邮箱', model: 'email' },
-        { label: '类型', model: 'type', type: 'select', filterReturn: true },
-        // 共同
-        { label: '所属领域', model: 'field' },
-        { label: '合作方式', model: 'cooperation' },
-        { label: '企业名称', model: 'company' },
-        { label: '合作条件及要求', model: 'condition', type: 'textArea', options: { maxRows: 5, minRows: 3 } },
-        { label: '图片', model: 'image', custom: true },
-        { label: '预期', model: 'expect' },
-        { label: '需求程度', model: 'demand' },
-      ],
-
-      // 科技需求
-      fields0: [
-        { label: '投资预算', model: 'budget' },
-        { label: '需求说明', model: 'requirementdesc', options: { maxRows: 5, minRows: 3 } },
-        { label: '需求现状', model: 'present' },
-      ],
-      // 技术成果
-      fields1: [
-        { label: '成果状态', model: 'achievestatus' },
-        { label: '成果权属', model: 'achieveown' },
-        { label: '成果来源', model: 'achievesource' },
-        { label: '意向价格', model: 'intentionprice' },
-        { label: '专利', model: 'patent', custom: true },
-        { label: '项目路演', model: 'roadshow', custom: true },
-        { label: '成果简介', model: 'achievebrief', options: { maxRows: 5, minRows: 3 } },
-        { label: '技术特点', model: 'features', options: { maxRows: 5, minRows: 3 } },
-        { label: '技术团队', model: 'team', options: { maxRows: 5, minRows: 3 } },
-      ],
-      // 商务需求
-      fields2: [
-        { label: '信息属性', model: 'messattribute' },
-        { label: '信息描述', model: 'informationdesc' },
-        { label: '核心要素', model: 'coreelements' },
-        { label: '价格信息', model: 'priceinfo' },
-      ],
+      form: {},
     };
   },
-  created() {
-    this.$set(this, 'fields', this.fieldsPublic);
-    if (this.id) this.search();
+  async created() {
+    await this.search();
   },
   methods: {
     ...product(['fetch', 'create', 'update']),
-    toSelect({ data, model }) {
-      if (model === 'type') {
-        const fields = _.get(this, `fields${data}`);
-        if (fields) {
-          const dup = _.cloneDeep(this.fieldsPublic);
-          const last = dup.concat(fields);
-          this.$set(this, 'fields', last);
+    async search() {
+      if (this.id) {
+        let res = await this.fetch(this.id);
+        if (this.$checkRes(res)) {
+          this.$set(this, `form`, res.data);
         }
       }
     },
-    async search() {
-      const res = await this.fetch(this.id);
+    async onSubmit({ data }) {
+      let res = await this.update(data);
       if (this.$checkRes(res)) {
-        this.$set(this, `data`, res.data);
-        const { type } = res.data;
-        if (type) this.toSelect({ data: type, model: 'type' });
-      }
-    },
-    async toSave({ data }) {
-      let dup = _.cloneDeep(data);
-      // 需要根据type,过滤出对应的数据
-      dup = this.filterData(dup);
-      let res;
-      if (_.get(dup, 'id')) {
-        res = await this.update(dup);
-      } else {
-        res = await this.create(dup);
-      }
-      if (this.$checkRes(res, '保存成功', '保存失败')) {
-        if (!this.$dev_mode) this.$router.push('/adminCenter/product');
+        this.$message({
+          message: '信息审核成功',
+          type: 'success',
+        });
+        this.back();
       }
     },
-    filterData(data) {
-      const { type, id } = data;
-      const publics = _.cloneDeep(this.fieldsPublic);
-      const fields = _.get(this, `fields${type}`, []);
-      const keys = publics.map((i) => i.model).concat(fields.map((i) => i.model));
-      const obj = {};
-      for (const key of keys) {
-        if (data[key]) obj[key] = data[key];
-      }
-      if (id) obj.id = id;
-      return obj;
+    back() {
+      this.$router.push({ path: '/adminCenter/product', query: { type: this.type } });
     },
   },
   computed: {
-    ...mapState(['user', 'menuParams']),
-    pageTitle() {
-      return `${this.$route.meta.title}`;
+    ...mapState(['user']),
+    type() {
+      return this.$route.query.type;
     },
     id() {
       return this.$route.query.id;
@@ -167,7 +75,29 @@ export default {
   metaInfo() {
     return { title: this.$route.meta.title };
   },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
 };
 </script>
 
-<style lang="less" scoped></style>
+<style lang="less" scoped>
+.main {
+  border-radius: 10px;
+  box-shadow: 0 0 5px #cccccc;
+  padding: 20px;
+  .one {
+    .top {
+      text-align: right;
+      margin: 0 0 10px 0;
+    }
+  }
+}
+.main:hover {
+  box-shadow: 0 0 5px #409eff;
+}
+</style>

+ 53 - 34
src/views/adminCenter/product/index.vue

@@ -1,15 +1,18 @@
 <template>
   <div id="index">
-    <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search" @edit="toEdit" @delete="toDelete">
-      <template #selfbtn>
-        <el-button type="primary" size="mini" @click="toAdd">添加</el-button>
-      </template>
-      <template #options="{ item }">
-        <template v-if="item.prop === 'type'">
-          <el-option v-for="(i, index) in typeList" :key="`type-${index}`" :label="i.label" :value="i.value"></el-option>
-        </template>
-      </template>
-    </data-table>
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="one">
+          <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search" @view="toView">
+            <template #options="{ item }">
+              <template v-if="item.prop === 'type'">
+                <el-option v-for="(i, index) in typeList" :key="`type-${index}`" :label="i.label" :value="i.value"></el-option>
+              </template>
+            </template>
+          </data-table>
+        </el-col>
+      </el-col>
+    </el-row>
   </div>
 </template>
 
@@ -27,31 +30,33 @@ export default {
       total: 0,
       opera: [
         {
-          label: '修改',
-          method: 'edit',
-        },
-        {
-          label: '删除',
-          method: 'delete',
-          type: 'danger',
+          label: '审核/查看',
+          method: 'view',
+          display: (item) => {
+            return item.status == '1' || item.status == '2' || item.status == '3';
+          },
         },
       ],
       fields: [
         { label: '名称', prop: 'name', filter: true },
-        { label: '企业名称', prop: 'company', filter: true },
         {
-          label: '类型',
+          label: '信息类型',
           prop: 'type',
           format: (i) => {
             const r = productType.find((f) => f.value === i);
             if (r) return r.label;
             return '';
           },
-          filter: 'select',
         },
-        { label: '所属领域', prop: 'field' },
-        { label: '联系人', prop: 'contacts' },
         { label: '联系电话', prop: 'phone' },
+        { label: '时间', prop: 'create_time', showTip: true },
+        {
+          label: '状态',
+          prop: 'status',
+          format: (item) => {
+            return item === '0' ? '草稿' : item === '1' ? '审核中' : item === '2' ? '审核通过' : '审核失败';
+          },
+        },
       ],
       typeList: productType,
     };
@@ -62,27 +67,23 @@ export default {
   methods: {
     ...product(['query', 'delete']),
     async search({ skip = 0, limit = 10, ...info } = {}) {
+      info.type = this.type;
+      // info.status = '1';
       const res = await this.query({ skip, limit, ...info });
       if (this.$checkRes(res)) {
         this.$set(this, `list`, res.data);
         this.$set(this, `total`, res.total);
       }
     },
-    toAdd() {
-      this.$router.push('/adminCenter/product/detail');
-    },
-    toEdit({ data }) {
-      this.$router.push({ path: '/adminCenter/product/detail', query: { id: data._id } });
-    },
-    async toDelete({ data }) {
-      const res = await this.delete(data._id);
-      if (this.$checkRes(res, '删除成功', '删除失败')) {
-        this.search();
-      }
+    toView({ data }) {
+      this.$router.push({ path: '/adminCenter/product/detail', query: { id: data._id, type: this.type } });
     },
   },
   computed: {
     ...mapState(['user', 'menuParams']),
+    type() {
+      return this.$route.query.type;
+    },
     pageTitle() {
       return `${this.$route.meta.title}`;
     },
@@ -90,7 +91,25 @@ export default {
   metaInfo() {
     return { title: this.$route.meta.title };
   },
+  watch: {
+    type: {
+      deep: true,
+      immediate: true,
+      handler(val) {
+        this.search();
+      },
+    },
+  },
 };
 </script>
 
-<style lang="less" scoped></style>
+<style lang="less" scoped>
+.main {
+  border-radius: 10px;
+  box-shadow: 0 0 5px #cccccc;
+  padding: 20px;
+}
+.main:hover {
+  box-shadow: 0 0 5px #409eff;
+}
+</style>

+ 174 - 0
src/views/adminCenter/product/parts/one.vue

@@ -0,0 +1,174 @@
+<template>
+  <div id="one">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="one">
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">企业名称</el-col>
+            <el-col :span="20" class="left">{{ form.company }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">电子邮箱</el-col>
+            <el-col :span="20" class="left">{{ form.email }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">联系人</el-col>
+            <el-col :span="20" class="left">{{ form.contacts }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">联系电话</el-col>
+            <el-col :span="20" class="left">{{ form.phone }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">QQ/微信</el-col>
+            <el-col :span="20" class="left">{{ form.qqwx }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">信息名称</el-col>
+            <el-col :span="20" class="left">{{ form.name }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">需求紧急程度</el-col>
+            <el-col :span="20" class="left">{{ form.demand || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">所属领域</el-col>
+            <el-col :span="20" class="left">{{ form.field || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">投资预算</el-col>
+            <el-col :span="20" class="left">{{ form.budget || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">合作方式</el-col>
+            <el-col :span="20" class="left">{{ form.condition || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="24" class="langText">
+            <el-col :span="2" class="left">技术说明</el-col>
+            <el-col :span="22" class="left">{{ form.requirementdesc || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="24" class="langText">
+            <el-col :span="2" class="left">预期目标</el-col>
+            <el-col :span="22" class="left">{{ form.expect || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="24" class="langText">
+            <el-col :span="2" class="left">需求现状</el-col>
+            <el-col :span="22" class="left">{{ form.present || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="24" class="langText">
+            <el-col :span="2" class="left">合作要求</el-col>
+            <el-col :span="22" class="left">{{ form.condition || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="24" class="image">
+            <el-col :span="2" class="left">产品图片</el-col>
+            <el-col :span="22" class="left">
+              <el-image :src="item.url" v-for="(item, index) in form.image" :key="index"> </el-image>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="text">
+            <el-col :span="2" class="left">审核状态</el-col>
+            <el-col :span="22" class="left">
+              <el-radio-group v-model="form.status">
+                <el-radio label="1" disabled>待审中</el-radio>
+                <el-radio label="2">审核通过</el-radio>
+                <el-radio label="3">审核拒绝</el-radio>
+              </el-radio-group>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="btn">
+            <el-button type="danger" size="mini" @click="back">取消</el-button>
+            <el-button type="primary" size="mini" @click="onSubmit('form')">提交信息</el-button>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'one',
+  props: {
+    form: { type: Object },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {
+    back() {
+      this.$emit('back');
+    },
+    onSubmit() {
+      this.$emit('onSubmit', { data: this.form });
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .one {
+    border: 1px solid #ccc;
+    border-radius: 10px;
+    padding: 20px;
+    .text {
+      .left {
+        padding: 10px;
+        border: 1px solid #333;
+      }
+      .left:nth-child(1) {
+        text-align: center;
+      }
+    }
+    .langText {
+      .left {
+        height: 106px;
+        overflow: hidden;
+        padding: 10px;
+        border: 1px solid #333;
+      }
+      .left:nth-child(1) {
+        text-align: center;
+        line-height: 75px;
+      }
+    }
+    .image {
+      .left {
+        padding: 10px;
+        border: 1px solid #333;
+        .el-image {
+          width: 150px;
+          height: 124px;
+          margin: 0 10px 0 0;
+        }
+      }
+      .left:nth-child(1) {
+        height: 150px;
+        overflow: hidden;
+        text-align: center;
+        line-height: 130px;
+      }
+    }
+    .btn {
+      text-align: center;
+      padding: 15px 0;
+    }
+  }
+}
+</style>

+ 143 - 0
src/views/adminCenter/product/parts/thr.vue

@@ -0,0 +1,143 @@
+<template>
+  <div id="thr">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="one">
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">企业名称</el-col>
+            <el-col :span="20" class="left">{{ form.company }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">电子邮箱</el-col>
+            <el-col :span="20" class="left">{{ form.email }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">联系人</el-col>
+            <el-col :span="20" class="left">{{ form.contacts }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">联系电话</el-col>
+            <el-col :span="20" class="left">{{ form.phone }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">QQ/微信</el-col>
+            <el-col :span="20" class="left">{{ form.qqwx }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">信息名称</el-col>
+            <el-col :span="20" class="left">{{ form.name }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">信息属性</el-col>
+            <el-col :span="20" class="left">{{ form.messattribute || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">需求程度</el-col>
+            <el-col :span="20" class="left">{{ form.demand || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="24" class="langText">
+            <el-col :span="2" class="left">信息描述</el-col>
+            <el-col :span="22" class="left">{{ form.informationdesc || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="24" class="langText">
+            <el-col :span="2" class="left">核心要素</el-col>
+            <el-col :span="22" class="left">{{ form.coreelements || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="24" class="langText">
+            <el-col :span="2" class="left">价格信息</el-col>
+            <el-col :span="22" class="left">{{ form.priceinfo || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="24" class="langText">
+            <el-col :span="2" class="left">商务预期</el-col>
+            <el-col :span="22" class="left">{{ form.expect || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="24" class="text">
+            <el-col :span="2" class="left">审核状态</el-col>
+            <el-col :span="22" class="left">
+              <el-radio-group v-model="form.status">
+                <el-radio label="1" disabled>待审中</el-radio>
+                <el-radio label="2">审核通过</el-radio>
+                <el-radio label="3">审核拒绝</el-radio>
+              </el-radio-group>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="btn">
+            <el-button type="danger" size="mini" @click="back">取消</el-button>
+            <el-button type="primary" size="mini" @click="onSubmit('form')">提交信息</el-button>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'one',
+  props: {
+    form: { type: Object },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {
+    back() {
+      this.$emit('back');
+    },
+    onSubmit() {
+      this.$emit('onSubmit', { data: this.form });
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .one {
+    border: 1px solid #ccc;
+    border-radius: 10px;
+    padding: 20px;
+    .text {
+      .left {
+        padding: 10px;
+        border: 1px solid #333;
+      }
+      .left:nth-child(1) {
+        text-align: center;
+      }
+    }
+    .langText {
+      .left {
+        height: 106px;
+        overflow: hidden;
+        padding: 10px;
+        border: 1px solid #333;
+      }
+      .left:nth-child(1) {
+        text-align: center;
+        line-height: 75px;
+      }
+    }
+    .btn {
+      text-align: center;
+      padding: 15px 0;
+    }
+  }
+}
+</style>

+ 219 - 0
src/views/adminCenter/product/parts/two.vue

@@ -0,0 +1,219 @@
+<template>
+  <div id="one">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="one">
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">企业名称</el-col>
+            <el-col :span="20" class="left">{{ form.company }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">电子邮箱</el-col>
+            <el-col :span="20" class="left">{{ form.email }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">联系人</el-col>
+            <el-col :span="20" class="left">{{ form.contacts }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">联系电话</el-col>
+            <el-col :span="20" class="left">{{ form.phone }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">QQ/微信</el-col>
+            <el-col :span="20" class="left">{{ form.qqwx }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">信息名称</el-col>
+            <el-col :span="20" class="left">{{ form.name }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">所属领域</el-col>
+            <el-col :span="20" class="left">{{ form.field || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">合作方式</el-col>
+            <el-col :span="20" class="left">{{ form.condition || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">成果状态</el-col>
+            <el-col :span="20" class="left">{{ form.achievestatus || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">成果权属</el-col>
+            <el-col :span="20" class="left">{{ form.achieveown || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">成果来源</el-col>
+            <el-col :span="20" class="left">{{ form.achievesource || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="12" class="text">
+            <el-col :span="4" class="left">意向价格</el-col>
+            <el-col :span="20" class="left">{{ form.intentionprice || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="24" class="langText">
+            <el-col :span="2" class="left">项目路演</el-col>
+            <el-col :span="22" class="left">
+              <el-link :href="form.roadshow[0].url" :underline="false" v-if="form.roadshow && form.roadshow.length">下载演示文件</el-link>
+              <el-link :underline="false" v-else>暂无</el-link>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="langText">
+            <el-col :span="2" class="left">成果简介</el-col>
+            <el-col :span="22" class="left">{{ form.achievebrief || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="24" class="langText">
+            <el-col :span="2" class="left">技术特点</el-col>
+            <el-col :span="22" class="left">{{ form.features || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="24" class="langText">
+            <el-col :span="2" class="left">技术团队</el-col>
+            <el-col :span="22" class="left">{{ form.team || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="24" class="langText">
+            <el-col :span="2" class="left">商业预期</el-col>
+            <el-col :span="22" class="left">{{ form.expect || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="24" class="langText">
+            <el-col :span="2" class="left">合作要求</el-col>
+            <el-col :span="22" class="left">{{ form.condition || '暂无' }} </el-col>
+          </el-col>
+          <el-col :span="24" class="patent">
+            <el-col :span="2" class="left">专利信息</el-col>
+            <el-col :span="22" class="left">
+              <p v-for="(item, index) in form.patent" :key="index">
+                <span>{{ index + 1 }}.</span>
+                <span>专利名称:{{ item.patentinfo }}</span>
+                <span>专利状态:{{ item.patentstatus }}</span>
+              </p>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="image">
+            <el-col :span="2" class="left">产品图片</el-col>
+            <el-col :span="22" class="left">
+              <el-image :src="item.url" v-for="(item, index) in form.image" :key="index"> </el-image>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="text">
+            <el-col :span="2" class="left">审核状态</el-col>
+            <el-col :span="22" class="left">
+              <el-radio-group v-model="form.status">
+                <el-radio label="1" disabled>待审中</el-radio>
+                <el-radio label="2">审核通过</el-radio>
+                <el-radio label="3">审核拒绝</el-radio>
+              </el-radio-group>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="btn">
+            <el-button type="danger" size="mini" @click="back">取消</el-button>
+            <el-button type="primary" size="mini" @click="onSubmit('form')">提交信息</el-button>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'one',
+  props: {
+    form: { type: Object },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {
+    back() {
+      this.$emit('back');
+    },
+    onSubmit() {
+      this.$emit('onSubmit', { data: this.form });
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .one {
+    border: 1px solid #ccc;
+    border-radius: 10px;
+    padding: 20px;
+    .text {
+      .left {
+        padding: 10px;
+        border: 1px solid #333;
+      }
+      .left:nth-child(1) {
+        text-align: center;
+      }
+    }
+    .langText {
+      .left {
+        height: 106px;
+        overflow: hidden;
+        padding: 10px;
+        border: 1px solid #333;
+      }
+      .left:nth-child(1) {
+        text-align: center;
+        line-height: 75px;
+      }
+    }
+    .patent {
+      .left {
+        height: 106px;
+        overflow: hidden;
+        padding: 10px;
+        border: 1px solid #333;
+        p {
+          border-bottom: 1px solid #666;
+          padding: 5px 0;
+        }
+      }
+      .left:nth-child(1) {
+        text-align: center;
+        line-height: 75px;
+      }
+    }
+    .image {
+      .left {
+        padding: 10px;
+        border: 1px solid #333;
+        .el-image {
+          width: 150px;
+          height: 124px;
+          margin: 0 10px 0 0;
+        }
+      }
+      .left:nth-child(1) {
+        height: 150px;
+        overflow: hidden;
+        text-align: center;
+        line-height: 130px;
+      }
+    }
+    .btn {
+      text-align: center;
+      padding: 15px 0;
+    }
+  }
+}
+</style>