lrf402788946 3 роки тому
батько
коміт
a0d5cee614

+ 5 - 0
src/router/index.js

@@ -86,6 +86,11 @@ const web = [
         meta: { title: '专利-导出查看' },
         component: () => import('../views/adminCenter/patent/export_result.vue'),
       },
+      {
+        path: '/adminCenter/trade/index',
+        meta: { title: '交易管理' },
+        component: () => import('../views/adminCenter/trade/index.vue'),
+      },
     ],
   },
   {

+ 11 - 5
src/views/adminCenter/trade/parts/filter_bar.vue

@@ -1,5 +1,5 @@
 <template>
-  <div id="filter_bar" style="margin: 10px">
+  <div id="sell_filter_bar" style="margin: 10px">
     <el-row v-for="(l, rowIndex) in fields" :key="`row-${rowIndex}`">
       <el-col :span="24">
         <span>{{ l.label }}</span>
@@ -40,7 +40,7 @@
 const _ = require('lodash');
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
-  name: 'filter_bar',
+  name: 'sell_filter_bar',
   props: {
     form: {
       type: Object,
@@ -48,6 +48,7 @@ export default {
         return {};
       },
     },
+    type: { type: String, default: 'sell' },
   },
   model: {
     prop: 'form',
@@ -58,11 +59,16 @@ export default {
     return {
       fields: [
         { label: '专利类型', type: 'radio', model: 'type', list: [{ label: '发明' }, { label: '实用新型' }] },
-        { label: '交易类型', type: 'radio', model: 'sell_type', list: [{ label: '许可' }, { label: '转移' }, { label: '质押' }] },
         {
-          label: '预算价格',
+          label: '交易类型',
+          type: 'radio',
+          model: this.type === 'sell' ? 'sell_type' : 'purchase_type',
+          list: [{ label: '许可' }, { label: '转移' }, { label: '质押' }],
+        },
+        {
+          label: this.type === 'sell' ? '预算价格' : '预算金额',
           type: 'range',
-          model: 'sell_money',
+          model: this.type === 'sell' ? 'sell_money' : 'money',
           list: [
             { start: 1000, end: 2000 },
             { start: 2000, end: 3000 },

+ 9 - 3
src/views/adminCenter/trade/purchase.vue

@@ -1,16 +1,21 @@
 <template>
   <div id="purchase">
-    <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search"></data-table>
+    <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search">
+      <template #filter>
+        <filter-bar v-model="filter" @search="search" type="purchase"></filter-bar>
+      </template>
+    </data-table>
   </div>
 </template>
 
 <script>
+import filterBar from './parts/filter_bar.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
 const { mapActions: purchase } = createNamespacedHelpers('purchase');
 export default {
   name: 'purchase',
   props: {},
-  components: {},
+  components: { filterBar },
   data: function () {
     return {
       list: [],
@@ -26,6 +31,7 @@ export default {
         { label: '状态', model: 'status' },
       ],
       opera: [{ label: '提醒到期' }],
+      filter: {},
     };
   },
   created() {
@@ -34,7 +40,7 @@ export default {
   methods: {
     ...purchase(['query']),
     async search({ skip = 0, limit = 10, ...info } = {}) {
-      const res = await this.query({ skip, limit, ...info });
+      const res = await this.query({ skip, limit, ...info, ...this.filter });
       if (this.$checkRes(res)) {
         this.$set(this, `list`, res.data);
         this.$set(this, `total`, res.total);

+ 11 - 5
src/views/jg/trade/parts/filter_bar.vue

@@ -1,5 +1,5 @@
 <template>
-  <div id="filter_bar" style="margin: 10px">
+  <div id="sell_filter_bar" style="margin: 10px">
     <el-row v-for="(l, rowIndex) in fields" :key="`row-${rowIndex}`">
       <el-col :span="24">
         <span>{{ l.label }}</span>
@@ -40,7 +40,7 @@
 const _ = require('lodash');
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
-  name: 'filter_bar',
+  name: 'sell_filter_bar',
   props: {
     form: {
       type: Object,
@@ -48,6 +48,7 @@ export default {
         return {};
       },
     },
+    type: { type: String, default: 'sell' },
   },
   model: {
     prop: 'form',
@@ -58,11 +59,16 @@ export default {
     return {
       fields: [
         { label: '专利类型', type: 'radio', model: 'type', list: [{ label: '发明' }, { label: '实用新型' }] },
-        { label: '交易类型', type: 'radio', model: 'sell_type', list: [{ label: '许可' }, { label: '转移' }, { label: '质押' }] },
         {
-          label: '预算价格',
+          label: '交易类型',
+          type: 'radio',
+          model: this.type === 'sell' ? 'sell_type' : 'purchase_type',
+          list: [{ label: '许可' }, { label: '转移' }, { label: '质押' }],
+        },
+        {
+          label: this.type === 'sell' ? '预算价格' : '预算金额',
           type: 'range',
-          model: 'sell_money',
+          model: this.type === 'sell' ? 'sell_money' : 'money',
           list: [
             { start: 1000, end: 2000 },
             { start: 2000, end: 3000 },

+ 9 - 3
src/views/jg/trade/purchase.vue

@@ -1,16 +1,21 @@
 <template>
   <div id="purchase">
-    <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search"></data-table>
+    <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search">
+      <template #filter>
+        <filter-bar v-model="filter" @search="search" type="purchase"></filter-bar>
+      </template>
+    </data-table>
   </div>
 </template>
 
 <script>
+import filterBar from './parts/filter_bar.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
 const { mapActions: purchase } = createNamespacedHelpers('purchase');
 export default {
   name: 'purchase',
   props: {},
-  components: {},
+  components: { filterBar },
   data: function () {
     return {
       list: [],
@@ -26,6 +31,7 @@ export default {
         { label: '状态', model: 'status' },
       ],
       opera: [{ label: '提醒到期' }],
+      filter: {},
     };
   },
   created() {
@@ -34,7 +40,7 @@ export default {
   methods: {
     ...purchase(['query']),
     async search({ skip = 0, limit = 10, ...info } = {}) {
-      const res = await this.query({ skip, limit, ...info, code: this.user.code });
+      const res = await this.query({ skip, limit, ...info, code: this.user.code, ...this.filter });
       if (this.$checkRes(res)) {
         this.$set(this, `list`, res.data);
         this.$set(this, `total`, res.total);