diff --git a/.gitignore b/.gitignore index c538dee..2a5b70b 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ tests/**/coverage/ *.ntvs* *.njsproj *.sln +!/.env.production +!/.env.development diff --git a/src/views/contract/contractEdit.vue b/src/views/contract/contractEdit.vue index ca8a990..3133ff7 100644 --- a/src/views/contract/contractEdit.vue +++ b/src/views/contract/contractEdit.vue @@ -125,185 +125,235 @@ /> - - - - - - - (水电煤等费用付款) - + + - - - - - - - -
- 请选择关联的框架协议合同 -
-
- {{ i.name.slice(0,17) }} -
-
+ + +
@@ -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'); + }) + } }; diff --git a/src/views/contract/contractLedger.vue b/src/views/contract/contractLedger.vue index af7374b..e6a838b 100644 --- a/src/views/contract/contractLedger.vue +++ b/src/views/contract/contractLedger.vue @@ -214,7 +214,12 @@ diff --git a/src/views/contract/contractList.vue b/src/views/contract/contractList.vue index da82e44..a4d1d40 100644 --- a/src/views/contract/contractList.vue +++ b/src/views/contract/contractList.vue @@ -251,7 +251,12 @@