|
@@ -2,15 +2,26 @@
|
|
<div id="client">
|
|
<div id="client">
|
|
<el-row>
|
|
<el-row>
|
|
<el-col :span="24" class="info">
|
|
<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 #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>
|
|
</template>
|
|
<template #filterEnd>
|
|
<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>
|
|
</template>
|
|
</data-table>
|
|
</data-table>
|
|
</el-col>
|
|
</el-col>
|
|
@@ -20,47 +31,63 @@
|
|
|
|
|
|
<script>
|
|
<script>
|
|
import { mapState, createNamespacedHelpers } from 'vuex';
|
|
import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
|
+const { mapActions: order } = createNamespacedHelpers('order');
|
|
|
|
+const { mapActions: client } = createNamespacedHelpers('client');
|
|
|
|
+
|
|
export default {
|
|
export default {
|
|
metaInfo() {
|
|
metaInfo() {
|
|
return { title: this.$route.meta.title };
|
|
return { title: this.$route.meta.title };
|
|
},
|
|
},
|
|
- name: 'client',
|
|
|
|
|
|
+ name: 'clientCalculate',
|
|
props: {},
|
|
props: {},
|
|
components: {},
|
|
components: {},
|
|
data: function() {
|
|
data: function() {
|
|
return {
|
|
return {
|
|
fields: [
|
|
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,
|
|
total: 0,
|
|
//选择的数据列表
|
|
//选择的数据列表
|
|
selected: [],
|
|
selected: [],
|
|
- //用户列表
|
|
|
|
- nameList: [{ name: '名字一' }],
|
|
|
|
|
|
+ clientList: [],
|
|
};
|
|
};
|
|
},
|
|
},
|
|
- created() {},
|
|
|
|
|
|
+ created() {
|
|
|
|
+ this.getOtherList();
|
|
|
|
+ },
|
|
methods: {
|
|
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) {
|
|
toSelect(data) {
|
|
- console.log('选择');
|
|
|
|
this.selected = data;
|
|
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: {
|
|
computed: {
|