guhongwei hace 3 años
padre
commit
30b968ce14

+ 29 - 2
package-lock.json

@@ -1,11 +1,11 @@
 {
-  "name": "jlst-patent",
+  "name": "patent-market",
   "version": "0.1.0",
   "lockfileVersion": 2,
   "requires": true,
   "packages": {
     "": {
-      "name": "jlst-patent",
+      "name": "patent-market",
       "version": "0.1.0",
       "dependencies": {
         "@stomp/stompjs": "^6.1.2",
@@ -21,6 +21,7 @@
         "naf-core": "^0.1.2",
         "vant": "^2.12.29",
         "vue": "^2.6.11",
+        "vue-json-excel": "^0.3.0",
         "vue-meta": "^2.4.0",
         "vue-router": "^3.2.0",
         "vuex": "^3.4.0",
@@ -5862,6 +5863,11 @@
       "integrity": "sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=",
       "dev": true
     },
+    "node_modules/downloadjs": {
+      "version": "1.4.7",
+      "resolved": "https://registry.npmjs.org/downloadjs/-/downloadjs-1.4.7.tgz",
+      "integrity": "sha1-9p+W+UDg0FU9rCkROYZaPNAQHjw="
+    },
     "node_modules/duplexer": {
       "version": "0.1.2",
       "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fduplexer%2Fdownload%2Fduplexer-0.1.2.tgz",
@@ -14415,6 +14421,14 @@
       "integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=",
       "dev": true
     },
+    "node_modules/vue-json-excel": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/vue-json-excel/-/vue-json-excel-0.3.0.tgz",
+      "integrity": "sha512-FrSh0tVUpw4K+ilLO8g0Qp52eFJw/hkk3rZPTEKo9qVkJgVfQtZwzj3UWc5ACYxA3jLk9HtjK+f9xKHCN4Kgag==",
+      "dependencies": {
+        "downloadjs": "^1.4.7"
+      }
+    },
     "node_modules/vue-lazyload": {
       "version": "1.2.3",
       "resolved": "https://registry.npmjs.org/vue-lazyload/-/vue-lazyload-1.2.3.tgz",
@@ -20303,6 +20317,11 @@
       "integrity": "sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=",
       "dev": true
     },
+    "downloadjs": {
+      "version": "1.4.7",
+      "resolved": "https://registry.npmjs.org/downloadjs/-/downloadjs-1.4.7.tgz",
+      "integrity": "sha1-9p+W+UDg0FU9rCkROYZaPNAQHjw="
+    },
     "duplexer": {
       "version": "0.1.2",
       "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fduplexer%2Fdownload%2Fduplexer-0.1.2.tgz",
@@ -27240,6 +27259,14 @@
       "integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=",
       "dev": true
     },
+    "vue-json-excel": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/vue-json-excel/-/vue-json-excel-0.3.0.tgz",
+      "integrity": "sha512-FrSh0tVUpw4K+ilLO8g0Qp52eFJw/hkk3rZPTEKo9qVkJgVfQtZwzj3UWc5ACYxA3jLk9HtjK+f9xKHCN4Kgag==",
+      "requires": {
+        "downloadjs": "^1.4.7"
+      }
+    },
     "vue-lazyload": {
       "version": "1.2.3",
       "resolved": "https://registry.npmjs.org/vue-lazyload/-/vue-lazyload-1.2.3.tgz",

+ 1 - 0
package.json

@@ -21,6 +21,7 @@
     "naf-core": "^0.1.2",
     "vant": "^2.12.29",
     "vue": "^2.6.11",
+    "vue-json-excel": "^0.3.0",
     "vue-meta": "^2.4.0",
     "vue-router": "^3.2.0",
     "vuex": "^3.4.0",

BIN
public/专利交易信息数据模板.xlsx


+ 24 - 1
src/layout/patentInfo/search-1.vue

@@ -4,7 +4,21 @@
       <van-col span="24" class="main">
         <van-col :span="24" class="one">
           <van-form label-width="6em">
-            <van-field v-model="searchForm.apply_personal" name="apply_personal" label="申请人" placeholder="请输入申请人" />
+            <van-field
+              readonly
+              clickable
+              name="apply_personal"
+              :value="searchForm.apply_personal"
+              label="申请人"
+              placeholder="点击选择"
+              @click="twoShow = true"
+              type="textarea"
+              rows="1"
+              autosize
+            />
+            <van-popup v-model="twoShow" position="bottom">
+              <van-picker show-toolbar :columns="apply_personalList" value-key="name" @confirm="personalFim" @cancel="twoShow = false" />
+            </van-popup>
             <van-field v-model="searchForm.first_apply" name="first_apply" label="第一申请人" placeholder="请输入第一申请人" />
             <van-field v-model="searchForm.on_obligee" name="on_obligee" label="当前权利人" placeholder="请输入当前权利人" />
             <van-field name="term" label="专利有效性">
@@ -91,6 +105,7 @@
 </template>
 
 <script>
+const { apply_personal } = require('@frame/src/layout/applyCom');
 import { mapState, createNamespacedHelpers } from 'vuex';
 const moment = require('moment');
 export default {
@@ -106,6 +121,9 @@ export default {
       minDate: new Date(1900, 1, 1),
       maxDate: new Date(2050, 1, 1),
       type: '',
+      // 申请人单位
+      twoShow: false,
+      apply_personalList: apply_personal,
     };
   },
   created() {},
@@ -125,6 +143,11 @@ export default {
       this.$set(this.searchForm, this.type, moment(value).format('YYYY-MM-DD'));
       this.oneShow = false;
     },
+    // 选择申请人
+    personalFim(value) {
+      this.$set(this.searchForm, `apply_personal`, value.name);
+      this.twoShow = false;
+    },
   },
   computed: {
     ...mapState(['user']),

+ 3 - 0
src/main.js

@@ -15,6 +15,9 @@ import InitStomp from '@/plugins/stomp';
 import '@/plugins/components';
 import '@frame/src/assets/icon/iconfont.css';
 Vue.config.productionTip = false;
+// 导数据
+import JsonExcel from 'vue-json-excel';
+Vue.component('downloadExcel', JsonExcel);
 
 new Vue({
   router,

+ 12 - 4
src/views/index.vue

@@ -4,6 +4,9 @@
       <template v-slot:info>
         <van-button v-for="(i, index) in menu" :key="`menu-${index}`" @click="$router.push(i.router)">{{ i.label }}</van-button>
         <van-button @click="toAdd()">批量添加专利交易信息</van-button>
+        <download-excel :data="textname" :fields="excel_fields.fields" :name="excel_fields.name">
+          <el-button type="primary" size="mini">批量导出</el-button>
+        </download-excel>
       </template>
     </admin-frame>
   </div>
@@ -79,6 +82,14 @@ export default {
       ],
       list: [],
       textname: textname,
+      // 导出表头配置
+      excel_fields: {
+        fields: {
+          单位名称: 'name',
+          专利数量: 'num',
+        },
+        name: '申请人单位导出',
+      },
     };
   },
   async created() {},
@@ -87,10 +98,7 @@ export default {
 
     // 添加用户
     async toAdd() {
-      let res = await this.patentInfoByApplyPerson();
-      if (this.$checkRes(res)) {
-        console.log(res);
-      }
+      console.log(this.textname);
     },
   },
   computed: {