|
@@ -18,12 +18,13 @@
|
|
|
@editor="editor"
|
|
|
@delete="toDelete"
|
|
|
@see="see"
|
|
|
- @query="search"
|
|
|
+ @query="searchTreaty"
|
|
|
@handleSelect="toSelect"
|
|
|
+ :toFormat="roleSelect"
|
|
|
>
|
|
|
<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 nameList" :key="index" :value="item.id" :label="item.name"></el-option>
|
|
|
</template>
|
|
|
</template>
|
|
|
<template #filterEnd>
|
|
@@ -38,8 +39,11 @@
|
|
|
<!-- 物流里面的:data要换成v-model -->
|
|
|
<data-form v-model="form" :fields="fields" @save="turnSave" :rules="rules">
|
|
|
<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 nameList" :key="index" :value="item.id" :label="item.name"></el-option>
|
|
|
+ </template>
|
|
|
+ <template v-if="item.model == 'status'">
|
|
|
+ <el-option v-for="(item, index) in item.list" :key="index" :value="item.value" :label="item.label"></el-option>
|
|
|
</template>
|
|
|
</template>
|
|
|
</data-form>
|
|
@@ -49,6 +53,8 @@
|
|
|
|
|
|
<script>
|
|
|
import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
+const { mapActions: treaty } = createNamespacedHelpers('treaty');
|
|
|
+const { mapActions: client } = createNamespacedHelpers('client');
|
|
|
export default {
|
|
|
metaInfo() {
|
|
|
return { title: this.$route.meta.title };
|
|
@@ -59,36 +65,27 @@ export default {
|
|
|
data: function() {
|
|
|
return {
|
|
|
fields: [
|
|
|
- { label: '客户', model: 'name', filter: 'select', type: 'select' },
|
|
|
- { label: '合同编号', model: 'num', filter: 'input' },
|
|
|
- { label: '甲方', model: 'partA' },
|
|
|
- { label: '乙方', model: 'partB' },
|
|
|
+ { label: '客户', model: 'client', filter: 'select', type: 'select', format: true },
|
|
|
+ { label: '合同编号', model: 'number', filter: 'input' },
|
|
|
+ { label: '甲方', model: 'jf' },
|
|
|
+ { label: '乙方', model: 'yf' },
|
|
|
{ label: '合同周期', model: 'period' },
|
|
|
- { label: '结算方式', model: 'way' },
|
|
|
- { label: '结算周期', model: 'cycle' },
|
|
|
- ],
|
|
|
- list: [
|
|
|
+ { label: '结算方式', model: 'settle_up' },
|
|
|
+ { label: '结算周期', model: 'settle_up_period' },
|
|
|
{
|
|
|
- id: '1',
|
|
|
- name: 'xxx有限公司',
|
|
|
- num: 'AW-YS-ZF-2018-005',
|
|
|
- partA: '佛山市吉航物流有限公司',
|
|
|
- partB: '长春市傲维运输有限公司',
|
|
|
- period: '3年',
|
|
|
- way: '银行转账',
|
|
|
- cycle: '月结',
|
|
|
- },
|
|
|
- {
|
|
|
- id: '2',
|
|
|
- name: '吉林省鸿泽物流有限公司-梅克郎',
|
|
|
- num: '长春梅克郎长途项目',
|
|
|
- partA: '吉林省鸿泽物流有限公司',
|
|
|
- partB: '长春市傲维运输有限公司',
|
|
|
- period: '3年',
|
|
|
- way: '银行转账',
|
|
|
- cycle: '日结',
|
|
|
+ label: '状态',
|
|
|
+ model: 'status',
|
|
|
+ filter: 'select',
|
|
|
+ type: 'select',
|
|
|
+ formact: i => (i === '0' ? '使用' : '禁用'),
|
|
|
+ list: [
|
|
|
+ { label: '使用', value: '0' },
|
|
|
+ { label: '禁用', value: '1' },
|
|
|
+ ],
|
|
|
},
|
|
|
+ { label: '创始人', model: 'owner', notable: true, noform: true },
|
|
|
],
|
|
|
+ list: [],
|
|
|
total: 0,
|
|
|
opera: [
|
|
|
{ label: '编辑', method: 'editor' },
|
|
@@ -98,54 +95,96 @@ export default {
|
|
|
dialog: false,
|
|
|
form: {},
|
|
|
rules: {
|
|
|
- name: [{ required: true, message: '请输入客户名称', trigger: 'blur' }],
|
|
|
- num: [{ required: true, message: '请输入合同编号', trigger: 'blur' }],
|
|
|
- partA: [{ required: true, message: '请输入甲方名称', trigger: 'blur' }],
|
|
|
- partB: [{ required: true, message: '请输入乙方名称', trigger: 'blur' }],
|
|
|
+ client: [{ required: true, message: '请输入客户名称', trigger: 'blur' }],
|
|
|
+ number: [{ required: true, message: '请输入合同编号', trigger: 'blur' }],
|
|
|
+ jf: [{ required: true, message: '请输入甲方名称', trigger: 'blur' }],
|
|
|
+ yf: [{ required: true, message: '请输入乙方名称', trigger: 'blur' }],
|
|
|
period: [{ required: true, message: '请输入合同周期', trigger: 'blur' }],
|
|
|
- way: [{ required: true, message: '请输入结算方式', trigger: 'blur' }],
|
|
|
- cycle: [{ required: true, message: '请输入结算周期', trigger: 'blur' }],
|
|
|
+ settle_up: [{ required: true, message: '请输入结算方式', trigger: 'blur' }],
|
|
|
+ settle_up_period: [{ required: true, message: '请输入结算周期', trigger: 'blur' }],
|
|
|
+ status: [{ required: true, message: '请选择状态', trigger: 'blur' }],
|
|
|
},
|
|
|
//客户列表
|
|
|
- nameList: [{ name: 'xxx有限公司' }, { name: '公司2' }, { name: '公司3' }, { name: '公司4' }, { name: '公司5' }],
|
|
|
+ nameList: [],
|
|
|
selected: [],
|
|
|
};
|
|
|
},
|
|
|
- created() {},
|
|
|
+ created() {
|
|
|
+ this.search();
|
|
|
+ },
|
|
|
methods: {
|
|
|
+ ...treaty(['query', 'create', 'update', 'delete']),
|
|
|
+ ...client({ cQuery: 'query', cCreate: 'create', cUpdate: 'update', cDelete: 'delete' }),
|
|
|
async search() {
|
|
|
- console.log('chaxun');
|
|
|
+ //查客户
|
|
|
+ const res = await this.cQuery({ type: '客户' });
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
+ this.$set(this, `nameList`, res.data);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 查合同 其他参数是...info,都包括在里面,可以输出看看
|
|
|
+ async searchTreaty({ skip = 0, limit = 10, ...info } = {}) {
|
|
|
+ const res = await this.query({ skip, limit, ...info });
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
+ const { data, total } = res;
|
|
|
+ this.$set(this, `list`, data);
|
|
|
+ this.$set(this, `total`, total);
|
|
|
+ }
|
|
|
},
|
|
|
//关闭
|
|
|
toClose() {
|
|
|
- this.dialog = false;
|
|
|
this.form = {};
|
|
|
+ this.dialog = false;
|
|
|
},
|
|
|
//保存
|
|
|
- turnSave(data) {
|
|
|
- console.log(data);
|
|
|
+ async turnSave({ data }) {
|
|
|
+ let client = data.client;
|
|
|
+ if (data.id) {
|
|
|
+ const res = await this.update(data);
|
|
|
+ if (this.$checkRes(res, '修改成功', res.errmsg || '修改失败')) {
|
|
|
+ this.searchTreaty({ client });
|
|
|
+ this.toClose();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //谁登陆owner就是谁,把id赋予上面就行
|
|
|
+ data.owner = this.user.id;
|
|
|
+ const res = await this.create(data);
|
|
|
+ if (this.$checkRes(res, '创建成功', res.errmsg || '创建失败')) {
|
|
|
+ this.searchTreaty({ client });
|
|
|
+ this.toClose();
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
+
|
|
|
//编辑
|
|
|
- editor(data) {
|
|
|
- const res = data;
|
|
|
- this.$set(this, `form`, res.data);
|
|
|
+ editor({ data }) {
|
|
|
+ this.$set(this, `form`, data);
|
|
|
this.dialog = true;
|
|
|
},
|
|
|
//刪除
|
|
|
- toDelete(data) {
|
|
|
- console.log(data);
|
|
|
+ async toDelete({ data }) {
|
|
|
+ let client = data.client;
|
|
|
+ const res = await this.delete(data.id);
|
|
|
+ if (this.$checkRes(res, '删除成功', res.errmsg || '删除失败')) {
|
|
|
+ this.searchTreaty({ client });
|
|
|
+ }
|
|
|
},
|
|
|
//查看項目
|
|
|
see() {
|
|
|
this.$router.push({ path: '/client/project' });
|
|
|
},
|
|
|
toSelect(data) {
|
|
|
- // console.log(data);
|
|
|
this.selected = data;
|
|
|
},
|
|
|
toExport() {
|
|
|
console.log('导出');
|
|
|
},
|
|
|
+ roleSelect({ model, value }) {
|
|
|
+ if (model == 'client') {
|
|
|
+ let arr = this.nameList.find(i => i.id === value);
|
|
|
+ if (arr) return arr.name;
|
|
|
+ }
|
|
|
+ },
|
|
|
},
|
|
|
computed: {
|
|
|
...mapState(['user']),
|