guhongwei 4 years ago
parent
commit
783f799936

+ 58 - 39
src/views/market/detail/patentDetail.vue

@@ -4,90 +4,109 @@
       <el-col :span="24" class="main">
         <el-col :span="24" class="top">
           <el-col :span="7" class="left">
-            <el-col :span="24" class="noImage" v-if="detailInfo.effective_date">
+            <el-image v-if="detailInfo.img_url" :src="detailInfo.img_url"></el-image>
+            <el-col :span="24" class="noImage" v-else>
               <p>专利有效性</p>
-              <p>{{ detailInfo.effective_date }}</p>
+              <p>{{ detailInfo.term }}</p>
             </el-col>
-            <el-image v-else :src="url"></el-image>
           </el-col>
           <el-col :span="17" class="right">
             <el-col :span="24" class="name textOver">
               {{ detailInfo.name }}
             </el-col>
-            <el-col :span="24">
-              <el-col :span="5" class="otherInfo textOver">
+            <el-col :span="12">
+              <el-col :span="8" class="otherInfo textOver">
                 申请号
               </el-col>
-              <el-col :span="19" class="otherInfo textOver">
-                {{ detailInfo.app_number || '暂无' }}
+              <el-col :span="16" class="otherInfo textOver">
+                {{ detailInfo.create_number || '暂无' }}
               </el-col>
             </el-col>
-            <el-col :span="24">
-              <el-col :span="5" class="otherInfo textOver">
+            <el-col :span="12">
+              <el-col :span="8" class="otherInfo textOver">
                 申请日
               </el-col>
-              <el-col :span="19" class="otherInfo textOver">
+              <el-col :span="16" class="otherInfo textOver">
                 {{ detailInfo.create_date || '暂无' }}
               </el-col>
             </el-col>
-            <el-col :span="24">
-              <el-col :span="5" class="otherInfo textOver">
+            <el-col :span="12">
+              <el-col :span="8" class="otherInfo textOver">
                 公开(公告)号
               </el-col>
-              <el-col :span="19" class="otherInfo textOver">
-                {{ detailInfo.number || '暂无' }}
+              <el-col :span="16" class="otherInfo textOver">
+                {{ detailInfo.success_number || '暂无' }}
               </el-col>
             </el-col>
-            <el-col :span="24">
-              <el-col :span="5" class="otherInfo textOver">
+            <el-col :span="12">
+              <el-col :span="8" class="otherInfo textOver">
                 公开(公告)日
               </el-col>
-              <el-col :span="19" class="otherInfo textOver">
-                {{ detailInfo.complete_date || '暂无' }}
+              <el-col :span="16" class="otherInfo textOver">
+                {{ detailInfo.success_date || '暂无' }}
+              </el-col>
+            </el-col>
+            <el-col :span="12">
+              <el-col :span="8" class="otherInfo textOver">
+                专利有效性
+              </el-col>
+              <el-col :span="16" class="otherInfo textOver" style="color:#ff0000;font-weight:bold;">
+                {{ detailInfo.term || '暂无' }}
+              </el-col>
+            </el-col>
+            <el-col :span="12">
+              <el-col :span="8" class="otherInfo textOver">
+                专利类型
+              </el-col>
+              <el-col :span="16" class="otherInfo textOver">
+                {{ detailInfo.type || '暂无' }}
               </el-col>
             </el-col>
             <el-col :span="24">
-              <el-col :span="5" class="otherInfo textOver"> 发明人</el-col>
-              <el-col :span="19" class="otherInfo textOver">
-                <span v-if="detailInfo.inventor.length > 43">
-                  <el-tooltip :content="detailInfo.inventor" placement="top">
-                    <p class="tooltip textOver">{{ detailInfo.inventor || '暂无' }}</p>
-                  </el-tooltip>
-                </span>
-                <span v-else>
-                  {{ detailInfo.inventor || '暂无' }}
-                </span>
+              <el-col :span="4" class="otherInfo textOver">
+                发明人
+              </el-col>
+              <el-col :span="20" class="otherInfo textOver">
+                {{ detailInfo.inventor || '暂无' }}
               </el-col>
             </el-col>
             <el-col :span="24">
-              <el-col :span="5" class="otherInfo textOver">
-                发明人地址
+              <el-col :span="4" class="otherInfo textOver">
+                申请人
               </el-col>
-              <el-col :span="19" class="otherInfo textOver">
-                {{ detailInfo.inventor_address || '暂无' }}
+              <el-col :span="20" class="otherInfo textOver">
+                {{ detailInfo.apply_personal || '暂无' }}
               </el-col>
             </el-col>
             <el-col :span="24">
-              <el-col :span="5" class="otherInfo textOver">
+              <el-col :span="4" class="otherInfo textOver">
                 代理人
               </el-col>
-              <el-col :span="19" class="otherInfo textOver">
-                {{ detailInfo.agency_person || '暂无' }}
+              <el-col :span="20" class="otherInfo textOver">
+                {{ detailInfo.agent_personal || '暂无' }}
               </el-col>
             </el-col>
             <el-col :span="24">
-              <el-col :span="5" class="otherInfo textOver">
+              <el-col :span="4" class="otherInfo textOver">
                 代理机构
               </el-col>
-              <el-col :span="19" class="otherInfo textOver">
-                {{ detailInfo.agency || '暂无' }}
+              <el-col :span="20" class="otherInfo textOver">
+                {{ detailInfo.agent || '暂无' }}
+              </el-col>
+            </el-col>
+            <el-col :span="24">
+              <el-col :span="4" class="otherInfo textOver">
+                地址
+              </el-col>
+              <el-col :span="20" class="otherInfo textOver">
+                {{ detailInfo.address || '暂无' }}
               </el-col>
             </el-col>
           </el-col>
         </el-col>
         <el-col :span="24" class="down">
           <h1>摘要</h1>
-          <p>{{ detailInfo.content || '暂无' }}</p>
+          <p>{{ detailInfo.abstract || '暂无' }}</p>
         </el-col>
       </el-col>
     </el-row>

+ 2 - 1
src/views/market/index/patent.vue

@@ -13,7 +13,8 @@
             :key="index"
             @click.native="$router.push({ path: '/market/marketlists', query: { type: '5', column_name: 'e专利', id: item.id } })"
           >
-            <el-image :src="url"></el-image>
+            <el-image v-if="item.img_url" :src="item.img_url"></el-image>
+            <el-image v-else :src="url"></el-image>
             <p class="textOver">{{ item.name }}</p>
           </el-col>
         </el-col>

+ 3 - 3
src/views/market/list/patent.vue

@@ -14,10 +14,10 @@
         </el-col>
         <el-col :span="24" class="list" v-for="(item, index) in list" :key="index">
           <el-col :span="15" class="name textOver" @click.native="clickDetail(item.id)">{{ item.name }} </el-col>
-          <el-col :span="6" class="type textOver"> 专利有限性:{{ item.effective_date }} </el-col>
-          <el-col :span="3" class="date"> {{ item.complete_date }} </el-col>
+          <el-col :span="6" class="type textOver"> 专利有限性:{{ item.term }} </el-col>
+          <el-col :span="3" class="date"> {{ item.success_date }} </el-col>
           <el-col :span="24" class="brief">
-            {{ item.content }}
+            {{ item.abstract }}
           </el-col>
         </el-col>
       </el-col>

+ 117 - 121
src/views/superAdminCenter/patent/index.vue

@@ -1,76 +1,56 @@
 <template>
   <div id="index">
-    <el-col :span="24">
-      <el-col :span="24" class="add" style="text-align:right;padding: 10px 20px;">
-        <el-button size="mini" type="primary" @click="toAdd" icon="el-icon-plus">添加{{ theme }}</el-button>
-      </el-col>
+    <el-row>
       <el-col :span="24" class="main">
-        <data-table :fields="fields" :opera="opera" :data="list" :total="total" @edit="toEdit" @delete="toDelete" @query="search"></data-table>
+        <span v-if="display == 'list'">
+          <el-col :span="24" class="top">
+            <el-button type="primary" size="mini" @click="add">添加信息</el-button>
+          </el-col>
+          <el-col :span="24" class="list">
+            <data-table :fields="fields" :opera="opera" :data="list" :total="total" @edit="toEdit" @delete="toDelete" @query="search"></data-table>
+          </el-col>
+        </span>
+        <span v-else>
+          <el-col :span="24" class="top">
+            <el-button type="primary" size="mini" @click="back">返回</el-button>
+          </el-col>
+          <el-col :span="24" class="info">
+            <data-form :data="form" :fields="formFields" @save="toSave" :rules="rules">
+              <template #custom="{item, form}">
+                <template v-if="item.model === 'img_url'">
+                  <upload :limit="1" :data="form.img_url" type="img_url" :url="'/files/img_url/upload'" @upload="uploadSuccess"></upload>
+                </template>
+              </template>
+            </data-form>
+          </el-col>
+        </span>
       </el-col>
-      <el-dialog :title="theme" width="60%" :visible.sync="dialog" @closed="handleClose" :destroy-on-close="true">
-        <el-form ref="form" :rules="rules" :model="form" label-width="120px">
-          <el-form-item label="申请号" prop="app_number">
-            <el-input v-model="form.app_number" placeholder="请输入申请号"></el-input>
-          </el-form-item>
-          <el-form-item label="申请日" prop="create_date">
-            <el-date-picker v-model="form.create_date" placeholder="申请日" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date"> </el-date-picker>
-          </el-form-item>
-          <el-form-item label="标题" prop="name">
-            <el-input v-model="form.name" placeholder="请输入标题"></el-input>
-          </el-form-item>
-          <el-form-item label="公开(公告号)" prop="number">
-            <el-input v-model="form.number" placeholder="请输入公开(公告号)"></el-input>
-          </el-form-item>
-          <el-form-item label="公开(公告)日" prop="complete_date">
-            <el-date-picker type="date" placeholder="公开(公告)日" value-format="yyyy-MM-dd" format="yyyy-MM-dd" v-model="form.complete_date"></el-date-picker>
-          </el-form-item>
-          <el-form-item label="发明人" prop="inventor">
-            <el-input v-model="form.inventor" placeholder="请输入发明人"></el-input>
-          </el-form-item>
-          <el-form-item label="发明人地址" prop="inventor_address">
-            <el-input v-model="form.inventor_address" placeholder="请输入发明人地址"></el-input>
-          </el-form-item>
-          <el-form-item label="专利有效性" prop="effective_date">
-            <el-input v-model="form.effective_date" placeholder="请输入专利有效性"></el-input>
-          </el-form-item>
-          <el-form-item label="代理人" prop="agency_person">
-            <el-input v-model="form.agency_person" placeholder="请输入代理人"></el-input>
-          </el-form-item>
-          <el-form-item label="代理机构" prop="agency">
-            <el-input v-model="form.agency" placeholder="请输入代理机构"></el-input>
-          </el-form-item>
-          <el-form-item label="摘要" prop="content">
-            <el-input
-              v-model="form.content"
-              type="textarea"
-              maxlength="500"
-              :autosize="{ minRows: 8, maxRows: 9 }"
-              show-word-limit
-              placeholder="请输入摘要"
-            ></el-input>
-          </el-form-item>
-          <el-form-item>
-            <el-button type="primary" @click="onSubmit('form')">提交</el-button>
-          </el-form-item>
-        </el-form>
-      </el-dialog>
-    </el-col>
+    </el-row>
   </div>
 </template>
 
 <script>
-import { mapState, createNamespacedHelpers } from 'vuex';
 import dataTable from '@/components/data-table.vue';
+import dataForm from '@/components/form.vue';
+import upload from '@/components/uploadone.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
 const { mapActions: patent } = createNamespacedHelpers('patent');
 export default {
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
   name: 'index',
   props: {},
   components: {
     dataTable,
+    dataForm,
+    upload,
   },
   data: function() {
     return {
-      theme: 'e专利',
+      // 显示
+      display: 'list',
+      // 列表
       opera: [
         {
           label: '修改',
@@ -84,83 +64,92 @@ export default {
         },
       ],
       fields: [
-        { label: '申请号', prop: 'app_number', filter: 'input' },
-        { label: '专利号', prop: 'number', filter: 'input' },
-        { label: '名称', prop: 'name', filter: 'input' },
+        { label: '申请号', prop: 'create_number', filter: 'input' },
+        { label: '公开(公告)号', prop: 'success_number', filter: 'input' },
+        { label: '标题', prop: 'name', filter: 'input' },
         { label: '发明人', prop: 'inventor', filter: 'input' },
-        { label: '专利有效性', prop: 'effective_date' },
-        { label: '专利(公告)日', prop: 'complete_date' },
+        { label: '专利有效性', prop: 'term' },
+        { label: '专利类型', prop: 'type' },
       ],
       list: [],
       total: 0,
-      dialog: false,
       // 添加信息
+      formFields: [
+        { label: '申请号', model: 'create_number', required: true },
+        { label: '申请日', model: 'create_date', type: 'date', required: true },
+        { label: '标题', model: 'name', required: true },
+        { label: '公开(公告)号', model: 'success_number', required: true },
+        { label: '公开(公告)日', model: 'success_date', type: 'date', required: true },
+        { label: '发明人', model: 'inventor', required: true },
+        { label: '发明人地址', model: 'address' },
+        { label: '申请人', model: 'apply_personal' },
+        { label: '专利有效性', model: 'term' },
+        { label: '专利类型', model: 'type' },
+        { label: '代理人', model: 'agent_personal' },
+        { label: '代理机构', model: 'agent' },
+        { label: '摘要', model: 'abstract', type: 'textarea' },
+        { label: '图片', model: 'img_url', custom: true },
+      ],
       form: {},
       rules: {
-        app_number: [{ required: true, message: '请输入专利号', trigger: 'blur' }],
-        create_date: [{ type: 'string', required: true, message: '请选择申请日期', trigger: 'change' }],
-        name: [{ required: true, message: '请输入专利名称', trigger: 'blur' }],
-        number: [{ required: true, message: '请输入专利号', trigger: 'blur' }],
-        complete_date: [{ type: 'string', required: true, message: '请选择专利(公告)日', trigger: 'change' }],
-        inventor: [{ required: true, message: '请输入发明人', trigger: 'blur' }],
-        inventor_address: [{ required: false, message: '请输入发明人地址', trigger: 'blur' }],
-        effective_date: [{ required: true, message: '请输入专利有效性', trigger: 'blur' }],
-        agency_person: [{ required: true, message: '请输入代理人', trigger: 'blur' }],
-        agency: [{ required: true, message: '请输入代理机构', trigger: 'blur' }],
-        content: [{ required: true, message: '请输入摘要', trigger: 'blur' }],
+        create_number: [{ required: true, message: '申请号', trigger: 'blur' }],
+        create_date: [{ type: 'string', required: true, message: '申请日', trigger: 'change' }],
+        name: [{ required: true, message: '请输入标题', trigger: 'blur' }],
+        success_number: [{ required: true, message: '公开(公告)号', trigger: 'blur' }],
+        success_date: [{ type: 'string', required: true, message: '公开(公告)日', trigger: 'change' }],
+        inventor: [{ required: true, message: '发明人', trigger: 'blur' }],
+        address: [{ required: false, message: '发明人地址', trigger: 'blur' }],
+        apply_personal: [{ required: false, message: '申请人', trigger: 'blur' }],
+        term: [{ required: false, message: '专利有效性', trigger: 'blur' }],
+        type: [{ required: false, message: '专利类型', trigger: 'blur' }],
+        agent_personal: [{ required: false, message: '代理人', trigger: 'blur' }],
+        agent: [{ required: false, message: '代理机构', trigger: 'blur' }],
+        abstract: [{ required: false, message: '摘要', trigger: 'blur' }],
       },
     };
   },
-  created() {
-    this.search();
+  async created() {
+    await this.search();
   },
   methods: {
     ...patent(['query', 'fetch', 'update', 'create', 'delete']),
-    // 列表
+    // 查询列表
     async search({ skip = 0, limit = 10, ...info } = {}) {
-      let arr = await this.query({ skip, limit, ...info });
-      this.$set(this, `list`, arr.data);
-      this.$set(this, `total`, arr.total);
+      let 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.dialog = true;
-      this.form = {};
+    add() {
+      this.display = 'detail';
     },
     // 提交
-    onSubmit(formName) {
-      this.$refs[formName].validate(async valid => {
-        if (valid) {
-          let data = this.form;
-          if (data.id) {
-            let res = await this.update(data);
-            if (this.$checkRes(res)) {
-              this.$message({
-                message: '修改信息成功',
-                type: 'success',
-              });
-              this.handleClose();
-            }
-          } else {
-            let res = await this.create(this.form);
-            if (this.$checkRes(res)) {
-              this.$message({
-                message: '添加信息成功',
-                type: 'success',
-              });
-              this.handleClose();
-            }
-          }
-          this.search();
-        } else {
-          console.log('error submit!!');
-          return false;
+    async toSave({ data }) {
+      if (data.id) {
+        let res = await this.update(data);
+        if (this.$checkRes(res)) {
+          this.$message({
+            message: '修改信息成功',
+            type: 'success',
+          });
+          this.back();
+        }
+      } else {
+        let res = await this.create(data);
+        if (this.$checkRes(res)) {
+          this.$message({
+            message: '添加信息成功',
+            type: 'success',
+          });
+          this.back();
         }
-      });
+      }
     },
     // 修改
     toEdit({ data }) {
-      this.dialog = true;
+      this.display = 'detail';
       this.$set(this, `form`, data);
     },
     // 删除
@@ -182,22 +171,29 @@ export default {
         })
         .catch(() => {});
     },
-    // 取消
-    handleClose() {
-      this.form = {};
-      this.dialog = false;
+    // 返回
+    back() {
+      this.display = 'list';
+      this.search();
+    },
+    // 图片上传
+    uploadSuccess({ type, data }) {
+      this.$set(this.form, `${type}`, data.uri);
     },
   },
   computed: {
     ...mapState(['user']),
-    pageTitle() {
-      return `${this.$route.meta.title}`;
-    },
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
   },
+  watch: {},
 };
 </script>
 
-<style lang="less" scoped></style>
+<style lang="less" scoped>
+.main {
+  padding: 0 15px 0 0;
+  .top {
+    text-align: right;
+    margin: 0 0 10px 0;
+  }
+}
+</style>