Commit a0a55082 authored by 柳 佳乐's avatar 柳 佳乐
Browse files

Merge branch 'dev' of http://www.aishuhong.com:16356/liujiale/finance into dev

parents b5865547 6a07294a
...@@ -57,18 +57,17 @@ ...@@ -57,18 +57,17 @@
<el-dialog :title="(isEdit ? '修改' : '添加') + '合同类型'" :visible.sync="dialogFormVisible" @closed="resetData"> <el-dialog :title="(isEdit ? '修改' : '添加') + '合同类型'" :visible.sync="dialogFormVisible" @closed="resetData">
<el-form ref="form" :model="dynamicValidateForm" label-width="130px"> <el-form ref="form" :model="dynamicValidateForm" label-width="130px">
<el-form-item label="合同类型名称" prop="name" :rules="[{ required: true, message: '请输入合同类型名称' }]"> <!-- <el-form-item label="合同类型名称" prop="names.0.value" :rules="[{ required: true, message: '请输入合同类型名称' }]">
<el-input v-model="dynamicValidateForm.name" autocomplete="off"></el-input> <el-input v-model="dynamicValidateForm.name" autocomplete="off"></el-input>
</el-form-item> </el-form-item> -->
<el-form-item v-for="(name, index) in dynamicValidateForm.names" label='合同类型名称'
<el-form-item v-show="!isEdit" v-for="(name, index) in dynamicValidateForm.names" :prop="'names.' + index + '.value'" :key="index" :rules="[
:label="'合同类型名称' + (parseInt(index) + 1)" :prop="'names.' + index + '.value'" :key="index" :rules="[
{ {
required: true, required: true,
message: '合同类型名称不能为空', validator: type_unique_valid,
trigger: 'blur', trigger: 'blur'
}, }]
]"> ">
<el-input v-model="name.value"> <el-input v-model="name.value">
<el-button slot="append" icon="el-icon-delete" @click.prevent="dynamicValidateForm.names.splice(index, 1)"> <el-button slot="append" icon="el-icon-delete" @click.prevent="dynamicValidateForm.names.splice(index, 1)">
删除 删除
...@@ -92,6 +91,7 @@ import { ...@@ -92,6 +91,7 @@ import {
updateContractType, updateContractType,
updateContractTypeState, updateContractTypeState,
} from "@/api/contract"; } from "@/api/contract";
import { validate } from "json-schema";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
export default { export default {
...@@ -109,7 +109,7 @@ export default { ...@@ -109,7 +109,7 @@ export default {
contractTypeList: [], contractTypeList: [],
typeList: [], typeList: [],
dialogFormVisible: false, dialogFormVisible: false,
dynamicValidateForm: { names: [] }, dynamicValidateForm: { names: [{}] },
isEdit: false, isEdit: false,
}; };
}, },
...@@ -120,13 +120,13 @@ export default { ...@@ -120,13 +120,13 @@ export default {
resetData() { resetData() {
this.isEdit = false; this.isEdit = false;
this.dialogFormVisible = false; this.dialogFormVisible = false;
this.dynamicValidateForm = { names: [], name: "" }; this.dynamicValidateForm = { names: [{}] };
this.$refs.form.resetFields(); this.$refs.form.resetFields();
}, },
edit(data) { edit(data) {
this.isEdit = true; this.isEdit = true;
this.dialogFormVisible = true; this.dialogFormVisible = true;
this.dynamicValidateForm = { ...data }; this.dynamicValidateForm = { ...data, names: [{ value: data.name }] };
}, },
getContractTypeList(data) { getContractTypeList(data) {
const params = { const params = {
...@@ -147,22 +147,25 @@ export default { ...@@ -147,22 +147,25 @@ export default {
}); });
}, },
update(data) { update(data) {
if (this.$refs.form) { this.$refs.form.validate((valida) => {
const params = { if (valida) {
companyId: this.companyId || this.$store.getters.companyId, const params = {
...data, companyId: this.companyId || this.$store.getters.companyId,
}; ...data,
!Number.isInteger(data.state) && (params.state = Number(!data.state)); name: data.names[0].value
updateContractType(params).then((res) => { };
if (res.success) { !Number.isInteger(data.state) && (params.state = Number(!data.state));
this.$message.success("修改成功"); updateContractType(params).then((res) => {
this.dialogFormVisible && (this.dialogFormVisible = false); if (res.success) {
this.getContractTypeList(); this.$message.success("修改成功");
} else { this.dialogFormVisible && (this.dialogFormVisible = false);
this.$message.error(res.msg); this.getContractTypeList();
} } else {
}); this.$message.error(res.msg);
} }
});
}
})
}, },
updateState(data) { updateState(data) {
const params = { const params = {
...@@ -188,19 +191,20 @@ export default { ...@@ -188,19 +191,20 @@ export default {
state: 0, //默认开启, state: 0, //默认开启,
companyId: this.companyId || this.$store.getters.companyId, companyId: this.companyId || this.$store.getters.companyId,
}; };
let params = [ // let params = [
{ // {
...data, // ...data,
name: this.dynamicValidateForm.name, // name: this.dynamicValidateForm.name,
}, // },
]; // ];
if (this.dynamicValidateForm.names.length) { // if (this.dynamicValidateForm.names.length) {
params = params.concat( // params = params.concat(
this.dynamicValidateForm.names.map((name) => { // this.dynamicValidateForm.names.map((name) => {
return { ...data, name: name.value }; // return { ...data, name: name.value };
}) // })
); // );
} // }
const params = this.dynamicValidateForm.names.map(name => ({ ...data, name: name.value }))
insert(params).then((res) => { insert(params).then((res) => {
if (res.success) { if (res.success) {
this.$message.success("添加成功"); this.$message.success("添加成功");
...@@ -218,6 +222,17 @@ export default { ...@@ -218,6 +222,17 @@ export default {
this.contractTypeQuey.pageNum = 1 this.contractTypeQuey.pageNum = 1
this.getContractTypeList(); this.getContractTypeList();
}, },
type_unique_valid(rule, value, callback) {
if (!value) {
callback('请输入合同类型')
} else {
if (this.dynamicValidateForm.names.some((item, index) => item.value === value && `names.${index}.value` !== rule.field)) {
callback('合同类型不能重复')
} else {
callback()
}
}
},
//重置 //重置
reset() { reset() {
this.contractTypeQuey.name = null this.contractTypeQuey.name = null
......
...@@ -52,21 +52,24 @@ ...@@ -52,21 +52,24 @@
<el-timeline> <el-timeline>
<el-timeline-item v-for="item in repayDetailList" :key="item.repaymentId" <el-timeline-item v-for="item in repayDetailList" :key="item.repaymentId"
:type="approveResult[item.repaymentApproval].type" :timestamp="item.repaymentTime"> :type="approveResult[item.repaymentApproval].type" :timestamp="item.repaymentTime">
<div> <el-descriptions size="mini" :style="{ width: '80%' }" :column="3">
<el-descriptions size="mini"> <el-descriptions-item label="审批结果">
<el-descriptions-item label="审批结果"><el-tag size="mini" <el-tag size="mini"
:type="approveResult[item.repaymentApproval] && approveResult[item.repaymentApproval].type"> :type="approveResult[item.repaymentApproval] && approveResult[item.repaymentApproval].type">
{{ approveResult[item.repaymentApproval] && {{ approveResult[item.repaymentApproval] &&
approveResult[item.repaymentApproval].text approveResult[item.repaymentApproval].text
}}</el-tag></el-descriptions-item> }}</el-tag>
<el-descriptions-item label="驳回原因" v-if="item.repaymentApproval === 2 && item.repaymentReject">{{ item.repaymentReject }}</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="还款金额">{{ item.repaymentMoney }}</el-descriptions-item> <el-descriptions-item label="驳回原因"
<el-descriptions-item label="还款金额">{{ item.repaymentMoney }}</el-descriptions-item> v-if="item.repaymentApproval === 2 && item.repaymentReject">{{ item.repaymentReject
<el-descriptions-item label="审批人">{{ item.operationName }}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item label="还款方式">{{ item.repaymentMode }}</el-descriptions-item> <el-descriptions-item label="还款金额">{{ item.repaymentMoney }}</el-descriptions-item>
<el-descriptions-item label="还款详情">{{ item.repaymentDetails || '' }}</el-descriptions-item> <el-descriptions-item label="还款金额">{{ item.repaymentMoney }}</el-descriptions-item>
</el-descriptions> <el-descriptions-item label="审批人">{{ item.operationName }}</el-descriptions-item>
</div> <el-descriptions-item label="还款方式" :span="2">{{ item.repaymentMode }}</el-descriptions-item>
<el-descriptions-item label="还款详情">{{ item.repaymentDetails || '' }}
</el-descriptions-item>
</el-descriptions>
</el-timeline-item> </el-timeline-item>
</el-timeline> </el-timeline>
<el-empty :image-size="200" v-if="!Boolean(repayDetailList.length)"></el-empty> <el-empty :image-size="200" v-if="!Boolean(repayDetailList.length)"></el-empty>
...@@ -116,14 +119,15 @@ export default { ...@@ -116,14 +119,15 @@ export default {
padding: 15px 15px 0; padding: 15px 15px 0;
.repay-timeline { .repay-timeline {
// width: 65%;
max-height: 400px; max-height: 400px;
padding-top: 5px; padding-top: 5px;
overflow-y: auto; overflow-y: auto;
span { // span {
margin-right: 10px; // margin-right: 10px;
color: #616161; // color: #616161;
} // }
} }
} }
......
...@@ -181,7 +181,7 @@ export default { ...@@ -181,7 +181,7 @@ export default {
this.checkedRow = { ...data } this.checkedRow = { ...data }
} else { } else {
this.checkedRow = {} this.checkedRow = {}
this.$refs.dialogForm.resetFields() this.$refs.dialogForm && this.$refs.dialogForm.resetFields()
} }
if (dialogVisible === 'drawerVisible') { if (dialogVisible === 'drawerVisible') {
this.drawerVisible = true this.drawerVisible = true
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment