|
|
|
|
@ -125,6 +125,7 @@
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<template v-if="!isLedger">
|
|
|
|
|
<el-form-item prop="is_contract" label="是否需要签订合同">
|
|
|
|
|
<el-switch
|
|
|
|
|
v-model="form.is_contract"
|
|
|
|
|
@ -304,6 +305,55 @@
|
|
|
|
|
@on-close="closeTag(i)">{{ i.name.slice(0,17) }}</Tag>
|
|
|
|
|
</div>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-else>
|
|
|
|
|
<el-form-item prop="is_contract" label="是否需要签订合同">
|
|
|
|
|
<el-switch
|
|
|
|
|
disabled
|
|
|
|
|
:value="true"
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item prop="contract_type" label="是否需要签订合同">
|
|
|
|
|
<el-select style="width: 100%" v-model="form.contract_type">
|
|
|
|
|
<el-option v-for="(item,index) in contractTypes" :label="item.label" :value="item.value"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item prop="supply" label="承包商\供应商">
|
|
|
|
|
<el-input style="100%;" placeholder="请填写承包商\供应商" v-model="form.supply" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item prop="money" label="合同金额(元)">
|
|
|
|
|
<InputNumber
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
:min="0"
|
|
|
|
|
:step="10000"
|
|
|
|
|
:precision="2"
|
|
|
|
|
:active-change="false"
|
|
|
|
|
v-model="form.money"
|
|
|
|
|
:formatter="
|
|
|
|
|
(value) => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')
|
|
|
|
|
"
|
|
|
|
|
:parser="(value) => value.replace(/\$\s?|(,*)/g, '')"
|
|
|
|
|
></InputNumber>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item
|
|
|
|
|
prop="is_framework"
|
|
|
|
|
label="是否新生成框架协议"
|
|
|
|
|
v-show="isShowIsFramework"
|
|
|
|
|
>
|
|
|
|
|
<el-switch
|
|
|
|
|
active-text="是"
|
|
|
|
|
inactive-text="否"
|
|
|
|
|
:active-value="1"
|
|
|
|
|
:inactive-value="0"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-form>
|
|
|
|
|
|
|
|
|
|
<div style="text-align: center">
|
|
|
|
|
@ -665,7 +715,7 @@
|
|
|
|
|
shape="circle"
|
|
|
|
|
@click="
|
|
|
|
|
$router.push({
|
|
|
|
|
path: '/contract/contract/contractList',
|
|
|
|
|
path: isLedger ? '/contract/contract/contractLedger' : '/contract/contract/contractList',
|
|
|
|
|
query: {
|
|
|
|
|
keyword: form.name,
|
|
|
|
|
},
|
|
|
|
|
@ -734,6 +784,11 @@ export default {
|
|
|
|
|
{ label: "货物", value: 2 },
|
|
|
|
|
{ label: "工程", value: 3 },
|
|
|
|
|
], //项目类型
|
|
|
|
|
contractTypes: [
|
|
|
|
|
{ label: "收入类", value: 1 },
|
|
|
|
|
{ label: "支出类", value: 2 },
|
|
|
|
|
{ label: "技术协议", value: 3 },
|
|
|
|
|
],
|
|
|
|
|
form: {
|
|
|
|
|
type: "",
|
|
|
|
|
is_plan: 1,
|
|
|
|
|
@ -778,182 +833,182 @@ export default {
|
|
|
|
|
label: "已办结",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
rules: {
|
|
|
|
|
name: [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: "必填",
|
|
|
|
|
trigger: "blur",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
validator: async (rule, value, callback) => {
|
|
|
|
|
if (!this.hasValue(value)) {
|
|
|
|
|
callback(new Error("必填"));
|
|
|
|
|
} else {
|
|
|
|
|
const { msg } = await checkContractName({ name: value });
|
|
|
|
|
if (msg === "未重名") {
|
|
|
|
|
callback();
|
|
|
|
|
} else {
|
|
|
|
|
callback(new Error(msg));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "blur",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
supply: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (this.form.is_simple) {
|
|
|
|
|
if (!this.hasValue(value)) {
|
|
|
|
|
callback(new Error("必填"));
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
type: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (!this.form.is_simple) {
|
|
|
|
|
if (!this.hasValue(value)) {
|
|
|
|
|
callback(new Error("必填"));
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
purchase_type_id: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (!this.form.is_simple) {
|
|
|
|
|
if (!this.hasValue(value)) {
|
|
|
|
|
callback(new Error("必填"));
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
purchase_way_id: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (!this.form.is_simple) {
|
|
|
|
|
if (!this.hasValue(value)) {
|
|
|
|
|
callback(new Error("必填"));
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
money: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (this.form.is_simple) {
|
|
|
|
|
if (!this.hasValue(value)) {
|
|
|
|
|
callback(new Error("必填"));
|
|
|
|
|
} else {
|
|
|
|
|
if (/^\d+(\.\d+)?$/.test(value)) {
|
|
|
|
|
callback();
|
|
|
|
|
} else {
|
|
|
|
|
callback(new Error("必须为数字"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "blur",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
plan_money: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (!this.form.is_simple) {
|
|
|
|
|
if (!this.hasValue(value)) {
|
|
|
|
|
callback(new Error("必填"));
|
|
|
|
|
} else {
|
|
|
|
|
if (/^\d+(\.\d+)?$/.test(value)) {
|
|
|
|
|
callback();
|
|
|
|
|
} else {
|
|
|
|
|
callback(new Error("必须为数字"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "blur",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
money_way_id: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (!this.form.is_simple) {
|
|
|
|
|
if (!this.hasValue(value)) {
|
|
|
|
|
callback(new Error("必填"));
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
contract_plan_links: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (this.form.is_plan) {
|
|
|
|
|
if (this.form.contract_plan_links.length === 0) {
|
|
|
|
|
return callback(new Error("必选"));
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
contract_to_contracts: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (this.form.use_framework_buy) {
|
|
|
|
|
if (this.form.contract_to_contracts.length === 0) {
|
|
|
|
|
return callback(new Error("必选"));
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
// rules: {
|
|
|
|
|
// name: [
|
|
|
|
|
// {
|
|
|
|
|
// required: true,
|
|
|
|
|
// message: "必填",
|
|
|
|
|
// trigger: "blur",
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// validator: async (rule, value, callback) => {
|
|
|
|
|
// if (!this.hasValue(value)) {
|
|
|
|
|
// callback(new Error("必填"));
|
|
|
|
|
// } else {
|
|
|
|
|
// const { msg } = await checkContractName({ name: value });
|
|
|
|
|
// if (msg === "未重名") {
|
|
|
|
|
// callback();
|
|
|
|
|
// } else {
|
|
|
|
|
// callback(new Error(msg));
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// },
|
|
|
|
|
// trigger: "blur",
|
|
|
|
|
// },
|
|
|
|
|
// ],
|
|
|
|
|
// supply: [
|
|
|
|
|
// {
|
|
|
|
|
// validator: (rule, value, callback) => {
|
|
|
|
|
// if (this.form.is_simple) {
|
|
|
|
|
// if (!this.hasValue(value)) {
|
|
|
|
|
// callback(new Error("必填"));
|
|
|
|
|
// } else {
|
|
|
|
|
// callback();
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// callback();
|
|
|
|
|
// }
|
|
|
|
|
// },
|
|
|
|
|
// trigger: "change",
|
|
|
|
|
// },
|
|
|
|
|
// ],
|
|
|
|
|
// type: [
|
|
|
|
|
// {
|
|
|
|
|
// validator: (rule, value, callback) => {
|
|
|
|
|
// if (!this.form.is_simple) {
|
|
|
|
|
// if (!this.hasValue(value)) {
|
|
|
|
|
// callback(new Error("必填"));
|
|
|
|
|
// } else {
|
|
|
|
|
// callback();
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// callback();
|
|
|
|
|
// }
|
|
|
|
|
// },
|
|
|
|
|
// trigger: "change",
|
|
|
|
|
// },
|
|
|
|
|
// ],
|
|
|
|
|
// purchase_type_id: [
|
|
|
|
|
// {
|
|
|
|
|
// validator: (rule, value, callback) => {
|
|
|
|
|
// if (!this.form.is_simple) {
|
|
|
|
|
// if (!this.hasValue(value)) {
|
|
|
|
|
// callback(new Error("必填"));
|
|
|
|
|
// } else {
|
|
|
|
|
// callback();
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// callback();
|
|
|
|
|
// }
|
|
|
|
|
// },
|
|
|
|
|
// trigger: "change",
|
|
|
|
|
// },
|
|
|
|
|
// ],
|
|
|
|
|
// purchase_way_id: [
|
|
|
|
|
// {
|
|
|
|
|
// validator: (rule, value, callback) => {
|
|
|
|
|
// if (!this.form.is_simple) {
|
|
|
|
|
// if (!this.hasValue(value)) {
|
|
|
|
|
// callback(new Error("必填"));
|
|
|
|
|
// } else {
|
|
|
|
|
// callback();
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// callback();
|
|
|
|
|
// }
|
|
|
|
|
// },
|
|
|
|
|
// trigger: "change",
|
|
|
|
|
// },
|
|
|
|
|
// ],
|
|
|
|
|
// money: [
|
|
|
|
|
// {
|
|
|
|
|
// validator: (rule, value, callback) => {
|
|
|
|
|
// if (this.form.is_simple) {
|
|
|
|
|
// if (!this.hasValue(value)) {
|
|
|
|
|
// callback(new Error("必填"));
|
|
|
|
|
// } else {
|
|
|
|
|
// if (/^\d+(\.\d+)?$/.test(value)) {
|
|
|
|
|
// callback();
|
|
|
|
|
// } else {
|
|
|
|
|
// callback(new Error("必须为数字"));
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// callback();
|
|
|
|
|
// }
|
|
|
|
|
// },
|
|
|
|
|
// trigger: "blur",
|
|
|
|
|
// },
|
|
|
|
|
// ],
|
|
|
|
|
// plan_money: [
|
|
|
|
|
// {
|
|
|
|
|
// validator: (rule, value, callback) => {
|
|
|
|
|
// if (!this.form.is_simple) {
|
|
|
|
|
// if (!this.hasValue(value)) {
|
|
|
|
|
// callback(new Error("必填"));
|
|
|
|
|
// } else {
|
|
|
|
|
// if (/^\d+(\.\d+)?$/.test(value)) {
|
|
|
|
|
// callback();
|
|
|
|
|
// } else {
|
|
|
|
|
// callback(new Error("必须为数字"));
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// callback();
|
|
|
|
|
// }
|
|
|
|
|
// },
|
|
|
|
|
// trigger: "blur",
|
|
|
|
|
// },
|
|
|
|
|
// ],
|
|
|
|
|
// money_way_id: [
|
|
|
|
|
// {
|
|
|
|
|
// validator: (rule, value, callback) => {
|
|
|
|
|
// if (!this.form.is_simple) {
|
|
|
|
|
// if (!this.hasValue(value)) {
|
|
|
|
|
// callback(new Error("必填"));
|
|
|
|
|
// } else {
|
|
|
|
|
// callback();
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// callback();
|
|
|
|
|
// }
|
|
|
|
|
// },
|
|
|
|
|
// trigger: "change",
|
|
|
|
|
// },
|
|
|
|
|
// ],
|
|
|
|
|
// contract_plan_links: [
|
|
|
|
|
// {
|
|
|
|
|
// validator: (rule, value, callback) => {
|
|
|
|
|
// if (this.form.is_plan) {
|
|
|
|
|
// if (this.form.contract_plan_links.length === 0) {
|
|
|
|
|
// return callback(new Error("必选"));
|
|
|
|
|
// } else {
|
|
|
|
|
// callback();
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// callback();
|
|
|
|
|
// }
|
|
|
|
|
// },
|
|
|
|
|
// trigger: "change",
|
|
|
|
|
// },
|
|
|
|
|
// ],
|
|
|
|
|
// contract_to_contracts: [
|
|
|
|
|
// {
|
|
|
|
|
// validator: (rule, value, callback) => {
|
|
|
|
|
// if (this.form.use_framework_buy) {
|
|
|
|
|
// if (this.form.contract_to_contracts.length === 0) {
|
|
|
|
|
// return callback(new Error("必选"));
|
|
|
|
|
// } else {
|
|
|
|
|
// callback();
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// callback();
|
|
|
|
|
// }
|
|
|
|
|
// },
|
|
|
|
|
// trigger: "change",
|
|
|
|
|
// },
|
|
|
|
|
// ],
|
|
|
|
|
// },
|
|
|
|
|
plans: [],
|
|
|
|
|
planSelect: {
|
|
|
|
|
name: "",
|
|
|
|
|
@ -1211,7 +1266,28 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
resetForm() {
|
|
|
|
|
this.form = {
|
|
|
|
|
this.form = this.isLedger ? {
|
|
|
|
|
name: "",
|
|
|
|
|
contract_type: 1,
|
|
|
|
|
number: "",
|
|
|
|
|
supply: "",
|
|
|
|
|
money: 0,
|
|
|
|
|
start_date: "",
|
|
|
|
|
end_date: "",
|
|
|
|
|
guarantee_money: "",
|
|
|
|
|
guarantee_year: "",
|
|
|
|
|
date: this.$moment().format('YYYY-MM-DD'),
|
|
|
|
|
is_contract: 1,
|
|
|
|
|
is_framework: "",
|
|
|
|
|
purchase_status: 3,
|
|
|
|
|
invite_status: 3,
|
|
|
|
|
files: [],
|
|
|
|
|
contract_plan_links: this.planSelections.map((i) => ({
|
|
|
|
|
plan_id: i.id,
|
|
|
|
|
use_money: i._inputMoney,
|
|
|
|
|
new_money: i.money,
|
|
|
|
|
})),
|
|
|
|
|
} : {
|
|
|
|
|
type: "",
|
|
|
|
|
is_plan: 1,
|
|
|
|
|
purchase_type_id: "",
|
|
|
|
|
@ -1247,22 +1323,12 @@ export default {
|
|
|
|
|
this.form.contract_to_contracts.splice(this.form.contract_to_contracts.findIndex(j => j.to_contract_id === i.id),1)
|
|
|
|
|
this.$refs['contractToContractsTable']?.toggleRowSelection(this.$refs['contractToContractsTable']?.getSelection().find(j => i.id === j.id),true)
|
|
|
|
|
},
|
|
|
|
|
// selectionChange(selection) {
|
|
|
|
|
// this.selections = Array.from(
|
|
|
|
|
// new Set(
|
|
|
|
|
// selection
|
|
|
|
|
// )
|
|
|
|
|
// );
|
|
|
|
|
// },
|
|
|
|
|
// delSelections(val) {
|
|
|
|
|
// this.selections.map((item, index) => {
|
|
|
|
|
// if (item.id === val.id) {
|
|
|
|
|
// this.selections.splice(index, 1)
|
|
|
|
|
// }
|
|
|
|
|
// })
|
|
|
|
|
// },
|
|
|
|
|
},
|
|
|
|
|
computed: {
|
|
|
|
|
isLedger () {
|
|
|
|
|
return this.$route.query.isLedger;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
isShowIsFramework() {
|
|
|
|
|
let temp1 = this.form.purchase_type_id;
|
|
|
|
|
let temp2 = this.form.use_framework_buy;
|
|
|
|
|
@ -1285,6 +1351,236 @@ export default {
|
|
|
|
|
contractToContractsSelections () {
|
|
|
|
|
let temp = this.form.contract_to_contracts;
|
|
|
|
|
return this.$refs["contractToContractsTable"]?.getSelection() || []
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
rules() {
|
|
|
|
|
return this.isLedger ? {
|
|
|
|
|
name: [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: "必填",
|
|
|
|
|
trigger: "blur",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
validator: async (rule, value, callback) => {
|
|
|
|
|
if (!this.hasValue(value)) {
|
|
|
|
|
callback(new Error("必填"));
|
|
|
|
|
} else {
|
|
|
|
|
const { msg } = await checkContractName({ name: value });
|
|
|
|
|
if (msg === "未重名") {
|
|
|
|
|
callback();
|
|
|
|
|
} else {
|
|
|
|
|
callback(new Error(msg));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "blur",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
supply: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (!this.hasValue(value)) {
|
|
|
|
|
callback(new Error("必填"));
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
money: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (!this.hasValue(value)) {
|
|
|
|
|
callback(new Error("必填"));
|
|
|
|
|
} else {
|
|
|
|
|
if (/^\d+(\.\d+)?$/.test(value)) {
|
|
|
|
|
callback();
|
|
|
|
|
} else {
|
|
|
|
|
callback(new Error("必须为数字"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "blur",
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
} : {
|
|
|
|
|
name: [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: "必填",
|
|
|
|
|
trigger: "blur",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
validator: async (rule, value, callback) => {
|
|
|
|
|
if (!this.hasValue(value)) {
|
|
|
|
|
callback(new Error("必填"));
|
|
|
|
|
} else {
|
|
|
|
|
const { msg } = await checkContractName({ name: value });
|
|
|
|
|
if (msg === "未重名") {
|
|
|
|
|
callback();
|
|
|
|
|
} else {
|
|
|
|
|
callback(new Error(msg));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "blur",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
supply: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (this.form.is_simple) {
|
|
|
|
|
if (!this.hasValue(value)) {
|
|
|
|
|
callback(new Error("必填"));
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
type: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (!this.form.is_simple) {
|
|
|
|
|
if (!this.hasValue(value)) {
|
|
|
|
|
callback(new Error("必填"));
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
purchase_type_id: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (!this.form.is_simple) {
|
|
|
|
|
if (!this.hasValue(value)) {
|
|
|
|
|
callback(new Error("必填"));
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
purchase_way_id: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (!this.form.is_simple) {
|
|
|
|
|
if (!this.hasValue(value)) {
|
|
|
|
|
callback(new Error("必填"));
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
money: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (this.form.is_simple) {
|
|
|
|
|
if (!this.hasValue(value)) {
|
|
|
|
|
callback(new Error("必填"));
|
|
|
|
|
} else {
|
|
|
|
|
if (/^\d+(\.\d+)?$/.test(value)) {
|
|
|
|
|
callback();
|
|
|
|
|
} else {
|
|
|
|
|
callback(new Error("必须为数字"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "blur",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
plan_money: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (!this.form.is_simple) {
|
|
|
|
|
if (!this.hasValue(value)) {
|
|
|
|
|
callback(new Error("必填"));
|
|
|
|
|
} else {
|
|
|
|
|
if (/^\d+(\.\d+)?$/.test(value)) {
|
|
|
|
|
callback();
|
|
|
|
|
} else {
|
|
|
|
|
callback(new Error("必须为数字"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "blur",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
money_way_id: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (!this.form.is_simple) {
|
|
|
|
|
if (!this.hasValue(value)) {
|
|
|
|
|
callback(new Error("必填"));
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
contract_plan_links: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (this.form.is_plan) {
|
|
|
|
|
if (this.form.contract_plan_links.length === 0) {
|
|
|
|
|
return callback(new Error("必选"));
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
contract_to_contracts: [
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value, callback) => {
|
|
|
|
|
if (this.form.use_framework_buy) {
|
|
|
|
|
if (this.form.contract_to_contracts.length === 0) {
|
|
|
|
|
return callback(new Error("必选"));
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: "change",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
created() {
|
|
|
|
|
@ -1318,6 +1614,13 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
beforeRouteEnter(to, from, next) {
|
|
|
|
|
next(vm => {
|
|
|
|
|
const { contractId } = to.query
|
|
|
|
|
vm.contractId = contractId;
|
|
|
|
|
if (contractId) vm.setType('edit');
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|