lrf402788946 4 年之前
父节点
当前提交
147edaed22
共有 1 个文件被更改,包括 51 次插入24 次删除
  1. 51 24
      src/views/bill/client.vue

+ 51 - 24
src/views/bill/client.vue

@@ -2,15 +2,26 @@
   <div id="client">
     <el-row>
       <el-col :span="24" class="info">
-        <data-table :fields="fields" :data="list" :total="total" :size="50" :step="10" @query="search" :select="true" @handleSelect="toSelect">
+        <data-table
+          :fields="fields"
+          :data="list"
+          :total="total"
+          :size="50"
+          :step="10"
+          @query="search"
+          :select="true"
+          :usePage="false"
+          @handleSelect="toSelect"
+          :toFormat="toFormat"
+        >
           <template #options="{item}">
-            <template v-if="item.model == 'name'">
-              <el-option v-for="(item, index) in nameList" :key="index" :value="item.name" :label="item.name"></el-option>
+            <template v-if="item.model == 'client'">
+              <el-option v-for="(item, index) in clientList" :key="index" :value="item._id" :label="item.name"></el-option>
             </template>
           </template>
           <template #filterEnd>
-            <el-button v-if="selected.length <= 0" type="primary" :disabled="true">未选择任何合同</el-button>
-            <el-button v-else type="primary" @click="toExport">导出选中合同</el-button>
+            <el-button v-if="selected.length <= 0" type="primary" :disabled="true">未选择任何订单</el-button>
+            <el-button v-else type="primary" @click="toExport">导出结算单</el-button>
           </template>
         </data-table>
       </el-col>
@@ -20,47 +31,63 @@
 
 <script>
 import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: order } = createNamespacedHelpers('order');
+const { mapActions: client } = createNamespacedHelpers('client');
+
 export default {
   metaInfo() {
     return { title: this.$route.meta.title };
   },
-  name: 'client',
+  name: 'clientCalculate',
   props: {},
   components: {},
   data: function() {
     return {
       fields: [
-        { label: '客户', model: 'name', filter: 'select' },
-        { label: '订单号', model: 'num', filter: 'input' },
-        { label: '要求发货日期', model: 'time', filter: 'date' },
-        { label: '税后实收', model: 'after' },
-      ],
-      list: [
-        {
-          name: '张安',
-          num: '111',
-        },
+        { label: '客户', model: 'client', filter: 'select' },
+        { label: '订单号', model: 'order_no', filter: true },
+        { label: '订单创建', model: 'date', notable: true, filter: 'date' },
+        { label: '要求发货日期', model: 'rq_send_time' },
+        { label: '税后实收', model: 'sh_ss' },
       ],
+      list: [],
       total: 0,
       //选择的数据列表
       selected: [],
-      //用户列表
-      nameList: [{ name: '名字一' }],
+      clientList: [],
     };
   },
-  created() {},
+  created() {
+    this.getOtherList();
+  },
   methods: {
-    async search() {
-      console.log('查询');
+    ...order(['clientCalculate', 'export']),
+    ...client({ getClientList: 'query' }),
+    async search(data) {
+      const res = await this.clientCalculate(data);
+      if (this.$checkRes(res)) this.$set(this, `list`, res.data);
     },
     //选中的数据
     toSelect(data) {
-      console.log('选择');
       this.selected = data;
     },
     //导出
-    toExport() {
-      console.log('导出');
+    async toExport() {
+      const ids = this.selected.map(i => i._id);
+      const res = await this.export({ ids });
+      console.log(res);
+    },
+    toFormat({ model, value }) {
+      console.log(model, value);
+      if (model === 'client') {
+        const res = this.clientList.find(f => f._id === value);
+        if (res) return res.name;
+      }
+    },
+
+    async getOtherList() {
+      const cRes = await this.getClientList();
+      if (this.$checkRes(cRes)) this.$set(this, `clientList`, cRes.data);
     },
   },
   computed: {