|
|
@ -18,18 +18,23 @@ |
|
|
|
<!-- </BasicModal> --> |
|
|
|
</template> |
|
|
|
<script lang="ts" name="addAndModify" setup> |
|
|
|
import { ref, reactive, onMounted } from 'vue' |
|
|
|
import { ref, reactive, onMounted } from 'vue'; |
|
|
|
import { useForm, BasicForm } from '@/components/Form'; |
|
|
|
import { contractformSchemas, MoneyFormSchemas } from './projectContract.data'; |
|
|
|
import { modifyContractinfo, addContractinfo, getContractinfoByProjectId } from './projectContract.api'; |
|
|
|
import { queryProjectInfoById } from '@/views/projectLib/projectInfo/projectInfo.api' |
|
|
|
import { ElMessage } from 'element-plus' |
|
|
|
import { |
|
|
|
modifyContractinfo, |
|
|
|
addContractinfo, |
|
|
|
getContractinfoByProjectId, |
|
|
|
} from './projectContract.api'; |
|
|
|
import { queryProjectInfoById } from '@/views/projectLib/projectInfo/projectInfo.api'; |
|
|
|
import { ElMessage } from 'element-plus'; |
|
|
|
import { useModalInner, BasicModal } from '@/components/Modal'; |
|
|
|
import { FormSchema } from '@/components/Form'; |
|
|
|
import { message } from 'ant-design-vue'; |
|
|
|
import { PlusCircleOutlined, MinusCircleOutlined } from '@ant-design/icons-vue'; |
|
|
|
import { cloneDeep } from 'lodash-es'; |
|
|
|
import { getTaskNameTypeDict } from "./projectContract.api" |
|
|
|
import { getTaskNameTypeDict } from './projectContract.api'; |
|
|
|
import { da } from 'element-plus/es/locale'; |
|
|
|
|
|
|
|
const aaa = ({ values }) => { |
|
|
|
console.log('values:', values); //表单所有值 |
|
|
@ -40,82 +45,96 @@ const aaa = ({ values }) => { |
|
|
|
required: true, |
|
|
|
// value 当前手机号输入的值 |
|
|
|
validator: (formSchemas, value) => { |
|
|
|
console.log("______", formSchemas, value); |
|
|
|
console.log('______', formSchemas, value); |
|
|
|
//需要return 一个Promise对象 |
|
|
|
return new Promise((resolve, reject) => { |
|
|
|
if (formSchemas.field.indexOf("centralMoney") != -1) { |
|
|
|
let fieldnum = formSchemas.field.replace("centralMoney", "") |
|
|
|
Object.keys(values).forEach(key => { |
|
|
|
if (values["taskName" + fieldnum] == null) { |
|
|
|
reject("请填写本次支付的属性值") |
|
|
|
} |
|
|
|
if (values["taskName" + fieldnum] != null && values["taskName" + fieldnum]?.indexOf("首付") != -1) { |
|
|
|
if (formSchemas.field.indexOf('centralMoney') != -1) { |
|
|
|
let fieldnum = formSchemas.field.replace('centralMoney', ''); |
|
|
|
Object.keys(values).forEach((key) => { |
|
|
|
if (values['taskName' + fieldnum] == null) { |
|
|
|
reject('请填写本次支付的属性值'); |
|
|
|
} |
|
|
|
if ( |
|
|
|
values['taskName' + fieldnum] != null && |
|
|
|
values['taskName' + fieldnum]?.indexOf('首付') != -1 |
|
|
|
) { |
|
|
|
if (fieldnum.length == 0) { |
|
|
|
console.log("首付的中央资金不能超过总中央资金的30%11", value, Number(values["centralMoney"]), Number(resMoney.value.centralMoney), Number(values["centralMoney"]) / Number(resMoney.value.centralMoney)) |
|
|
|
console.log( |
|
|
|
'首付的中央资金不能超过总中央资金的30%11', |
|
|
|
value, |
|
|
|
Number(values['centralMoney']), |
|
|
|
Number(resMoney.value.centralMoney), |
|
|
|
Number(values['centralMoney']) / Number(resMoney.value.centralMoney), |
|
|
|
); |
|
|
|
if (Number(value) / Number(resMoney.value.centralMoney) > 0.3) { |
|
|
|
console.log("首付的中央资金不能超过总中央资金的30%") |
|
|
|
console.log('首付的中央资金不能超过总中央资金的30%'); |
|
|
|
} |
|
|
|
} else { |
|
|
|
let total = Number(values["centralMoney"]) |
|
|
|
let total = Number(values['centralMoney']); |
|
|
|
if (Number(fieldnum) == 2) { |
|
|
|
total += value |
|
|
|
total += value; |
|
|
|
} else { |
|
|
|
for (let i = 2; i < Number(fieldnum); i++) { |
|
|
|
total += Number(values[`centralMoney${i}`]) |
|
|
|
total += Number(values[`centralMoney${i}`]); |
|
|
|
} |
|
|
|
total += value |
|
|
|
total += value; |
|
|
|
} |
|
|
|
|
|
|
|
if (total / Number(resMoney.value.centralMoney) > 0.3) { |
|
|
|
console.log("首付的中央资金不能超过总中央资金的30%") |
|
|
|
console.log('首付的中央资金不能超过总中央资金的30%'); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (values["taskName" + fieldnum] != null && values["taskName" + fieldnum]?.indexOf("初验") != -1) { |
|
|
|
if ( |
|
|
|
values['taskName' + fieldnum] != null && |
|
|
|
values['taskName' + fieldnum]?.indexOf('初验') != -1 |
|
|
|
) { |
|
|
|
if (fieldnum.length == 0) { |
|
|
|
if (Number(value) / Number(resMoney.value.centralMoney) > 0.6) { |
|
|
|
console.log("初验的中央资金不能超过总中央资金的60%") |
|
|
|
console.log('初验的中央资金不能超过总中央资金的60%'); |
|
|
|
} |
|
|
|
} else { |
|
|
|
//首付之前有其他阶段,求和 |
|
|
|
let total = Number(values["centralMoney"]) |
|
|
|
let total = Number(values['centralMoney']); |
|
|
|
if (Number(fieldnum) == 2) { |
|
|
|
total += value |
|
|
|
total += value; |
|
|
|
} else { |
|
|
|
for (let i = 2; i < Number(fieldnum); i++) { |
|
|
|
total += Number(values[`centralMoney${i}`]) |
|
|
|
total += Number(values[`centralMoney${i}`]); |
|
|
|
} |
|
|
|
total += value |
|
|
|
total += value; |
|
|
|
} |
|
|
|
if (total / Number(resMoney.value.centralMoney) > 0.6) { |
|
|
|
console.log("初验的中央资金不能超过总中央资金的60%") |
|
|
|
console.log('初验的中央资金不能超过总中央资金的60%'); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
resolve("1") |
|
|
|
}) |
|
|
|
resolve('1'); |
|
|
|
}); |
|
|
|
} |
|
|
|
if (value == null) { |
|
|
|
let name = contractformSchemas.filter(item => formSchemas.field.indexOf(item.field) != -1)[0].label |
|
|
|
reject(name + "不能为空") |
|
|
|
let name = contractformSchemas.filter( |
|
|
|
(item) => formSchemas.field.indexOf(item.field) != -1, |
|
|
|
)[0].label; |
|
|
|
reject(name + '不能为空'); |
|
|
|
} |
|
|
|
resolve("1") |
|
|
|
resolve('1'); |
|
|
|
}); |
|
|
|
}, |
|
|
|
}, |
|
|
|
]; |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
const bbb = ({ schema, formModel, formActionType }) => { |
|
|
|
console.log("formMode222222", schema, formModel) |
|
|
|
console.log('formMode222222', schema, formModel); |
|
|
|
if (schema == undefined || schema.field == undefined) { |
|
|
|
console.log("formModel111111", schema, formModel) |
|
|
|
console.log('formModel111111', schema, formModel); |
|
|
|
return { |
|
|
|
//数值精度 |
|
|
|
precision: 2, |
|
|
|
//步数 |
|
|
|
step: 1, |
|
|
|
} |
|
|
|
}; |
|
|
|
} |
|
|
|
return { |
|
|
|
//数值精度 |
|
|
@ -134,17 +153,17 @@ const bbb = ({ schema, formModel, formActionType }) => { |
|
|
|
// updateSchema(schema) |
|
|
|
}, |
|
|
|
}; |
|
|
|
} |
|
|
|
}; |
|
|
|
// const [registerModal, { closeModal }] = useModalInner(init); |
|
|
|
|
|
|
|
let data = defineProps(["projectid", "isModify", "isEdit"]) |
|
|
|
let data = defineProps(['projectid', 'taskName', 'isModify', 'isEdit']); |
|
|
|
let fileList = reactive<Array<any>>([]); |
|
|
|
let isModify = ref() |
|
|
|
let projectid = ref() |
|
|
|
let payNum = ref(1) |
|
|
|
let resMoney = ref() |
|
|
|
let taskNameTypeDict = ref() |
|
|
|
let tempSchemas = cloneDeep(contractformSchemas) as Array<FormSchema> |
|
|
|
let isModify = ref(); |
|
|
|
let projectid = ref(); |
|
|
|
let payNum = ref(1); |
|
|
|
let resMoney = ref(); |
|
|
|
let taskNameTypeDict = ref(); |
|
|
|
let tempSchemas = cloneDeep(contractformSchemas) as Array<FormSchema>; |
|
|
|
// tempSchemas.forEach(item => { |
|
|
|
// if (item.field.indexOf("Money") != -1) { |
|
|
|
// item.dynamicRules = aaa() |
|
|
@ -159,115 +178,104 @@ const emit = defineEmits(['close']); |
|
|
|
|
|
|
|
// } |
|
|
|
onMounted(async () => { |
|
|
|
projectid.value = data.projectid |
|
|
|
taskNameTypeDict.value = await getTaskNameTypeDict({ projectid: projectid.value }) |
|
|
|
payNum.value = 1 |
|
|
|
tempSchemas = cloneDeep(contractformSchemas) as Array<FormSchema> |
|
|
|
tempSchemas.forEach(item => { |
|
|
|
if (item.field.indexOf("Money") != -1) { |
|
|
|
item.dynamicRules = aaa |
|
|
|
item.componentProps = bbb |
|
|
|
} |
|
|
|
if (item.field == "taskName") { |
|
|
|
item.componentProps.options = taskNameTypeDict.value |
|
|
|
console.log("item.componentProps.options", item.componentProps.options) |
|
|
|
|
|
|
|
|
|
|
|
projectid.value = data.projectid; |
|
|
|
taskNameTypeDict.value = await getTaskNameTypeDict({ projectid: projectid.value }); |
|
|
|
payNum.value = 1; |
|
|
|
tempSchemas = cloneDeep(contractformSchemas) as Array<FormSchema>; |
|
|
|
tempSchemas.forEach((item) => { |
|
|
|
if (item.field.indexOf('Money') != -1) { |
|
|
|
item.dynamicRules = aaa; |
|
|
|
item.componentProps = bbb; |
|
|
|
} |
|
|
|
if (item.field == 'taskName') { |
|
|
|
item.componentProps.options = taskNameTypeDict.value; |
|
|
|
console.log('item.componentProps.options', item.componentProps.options,data.taskName); |
|
|
|
if (data.taskName != '合同签订') { |
|
|
|
item.dynamicDisabled = true; |
|
|
|
item.defaultValue = data.taskName; |
|
|
|
} |
|
|
|
}) |
|
|
|
console.log("datadatadata", data, tempSchemas) |
|
|
|
let parammoney: any = { |
|
|
|
projectid: data.projectid |
|
|
|
} |
|
|
|
resMoney.value = await queryProjectInfoById(parammoney) |
|
|
|
setFieldsValueMoneyForm(resMoney.value) |
|
|
|
fileList.pop() |
|
|
|
}); |
|
|
|
console.log('datadatadata', data, tempSchemas); |
|
|
|
fileList.pop(); |
|
|
|
if (data.isModify == true || (data.isEdit != null && data.isEdit != undefined)) { |
|
|
|
isModify.value = data.isModify |
|
|
|
isModify.value = data.isModify; |
|
|
|
let param: any = { |
|
|
|
projectid: data.projectid |
|
|
|
} |
|
|
|
let res = await getContractinfoByProjectId(param) as Array<any> |
|
|
|
let obj = new Object() |
|
|
|
projectid: data.projectid, |
|
|
|
taskName: data.taskName, |
|
|
|
}; |
|
|
|
let res = (await getContractinfoByProjectId(param)) as Array<any>; |
|
|
|
let obj = new Object(); |
|
|
|
//记录一共有几次支付 |
|
|
|
let num = res.length |
|
|
|
let num = res.length; |
|
|
|
//把数组变成对象 |
|
|
|
for (let i = 1; i <= num; i++) { |
|
|
|
|
|
|
|
if (i == 1) { |
|
|
|
obj = res[i - 1] |
|
|
|
obj = res[i - 1]; |
|
|
|
} else { |
|
|
|
Object.keys(res[i - 1]).forEach(key => { |
|
|
|
obj[key + i] = res[i - 1][key] |
|
|
|
}) |
|
|
|
Object.keys(res[i - 1]).forEach((key) => { |
|
|
|
obj[key + i] = res[i - 1][key]; |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
if (num > 1) { |
|
|
|
payNum.value = num |
|
|
|
payNum.value = num; |
|
|
|
for (let i = 2; i <= num; i++) { |
|
|
|
contractformSchemas.forEach(item => { |
|
|
|
let tempitem = cloneDeep(item) |
|
|
|
if (tempitem.field.indexOf("Money") != -1) { |
|
|
|
tempitem.dynamicRules = aaa |
|
|
|
tempitem.componentProps = bbb |
|
|
|
contractformSchemas.forEach((item) => { |
|
|
|
let tempitem = cloneDeep(item); |
|
|
|
if (tempitem.field.indexOf('Money') != -1) { |
|
|
|
tempitem.dynamicRules = aaa; |
|
|
|
tempitem.componentProps = bbb; |
|
|
|
} |
|
|
|
if (tempitem.field == "payDate") { |
|
|
|
tempitem.label = "第" + i + "次支付" |
|
|
|
if (tempitem.field == 'payDate') { |
|
|
|
tempitem.label = '第' + i + '次支付'; |
|
|
|
} |
|
|
|
if (tempitem.field == 'taskName') { |
|
|
|
tempitem.componentProps.options = taskNameTypeDict.value; |
|
|
|
if (data.taskName != '合同签订') { |
|
|
|
tempitem.dynamicDisabled = true; |
|
|
|
tempitem.defaultValue = data.taskName; |
|
|
|
} |
|
|
|
if (tempitem.field == "taskName") { |
|
|
|
tempitem.componentProps.options = taskNameTypeDict.value |
|
|
|
|
|
|
|
} |
|
|
|
// if (tempitem.field == "totalMoney") { |
|
|
|
// tempitem.label = "第" + i + "支付总金额" |
|
|
|
// } |
|
|
|
tempitem.field = tempitem.field + i |
|
|
|
tempSchemas.push(tempitem) |
|
|
|
}) |
|
|
|
tempitem.field = tempitem.field + i; |
|
|
|
tempSchemas.push(tempitem); |
|
|
|
}); |
|
|
|
} |
|
|
|
resetSchema(tempSchemas) |
|
|
|
resetSchema(tempSchemas); |
|
|
|
} else { |
|
|
|
resetSchema(tempSchemas) |
|
|
|
resetSchema(tempSchemas); |
|
|
|
} |
|
|
|
console.log("结果是", res, obj) |
|
|
|
obj["id"] = data.projectid |
|
|
|
setFieldsValue(obj) |
|
|
|
console.log('结果是', res, obj); |
|
|
|
obj['id'] = data.projectid; |
|
|
|
setFieldsValue(obj); |
|
|
|
} else { |
|
|
|
//需要项目id 组件需要这个id去查询属性名称是否正确 |
|
|
|
resetSchema(tempSchemas) |
|
|
|
setFieldsValue({ id: data.projectid }) |
|
|
|
resetSchema(tempSchemas); |
|
|
|
setFieldsValue({ id: data.projectid }); |
|
|
|
} |
|
|
|
//流程展示会用到此页面,isEdit 流程页专门回传这个参数,控制是否显示编辑按钮 |
|
|
|
if (data.isEdit == false) { |
|
|
|
setProps({ |
|
|
|
disabled: true |
|
|
|
}) |
|
|
|
} |
|
|
|
}) |
|
|
|
|
|
|
|
//项目金额相关信息 |
|
|
|
const [registerMoneyForm, { setFieldsValue: setFieldsValueMoneyForm }] = useForm({ |
|
|
|
//注册表单列 |
|
|
|
schemas: MoneyFormSchemas, |
|
|
|
showActionButtonGroup: false, |
|
|
|
//回车提交 |
|
|
|
// autoSubmitOnEnter: true, |
|
|
|
// //不显示重置按钮 |
|
|
|
// showResetButton: false, |
|
|
|
//自定义提交按钮文本和图标 |
|
|
|
// submitButtonOptions: { text: '提交', preIcon: '' }, |
|
|
|
//查询列占比 24代表一行 取值范围 0-24 |
|
|
|
// actionColOptions: { span: 17 }, |
|
|
|
disabled: true, |
|
|
|
size: "small", |
|
|
|
// labelCol: { style: { width: '120px' } }, |
|
|
|
wrapperCol: { style: { width: 'auto' } }, |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
//项目入库详情 |
|
|
|
const [registerContractForm, { setFieldsValue: setFieldsValue, getFieldsValue, validate, resetSchema, removeSchemaByField, setProps }] = useForm({ |
|
|
|
const [ |
|
|
|
registerContractForm, |
|
|
|
{ |
|
|
|
setFieldsValue: setFieldsValue, |
|
|
|
getFieldsValue, |
|
|
|
validate, |
|
|
|
resetSchema, |
|
|
|
removeSchemaByField, |
|
|
|
setProps, |
|
|
|
}, |
|
|
|
] = useForm({ |
|
|
|
//注册表单列 |
|
|
|
schemas: contractformSchemas, |
|
|
|
showActionButtonGroup: false, |
|
|
@ -285,114 +293,116 @@ const [registerContractForm, { setFieldsValue: setFieldsValue, getFieldsValue, v |
|
|
|
}); |
|
|
|
|
|
|
|
async function addFrom() { |
|
|
|
console.log("addFrom", await getFieldsValue()) |
|
|
|
let a = await validate() |
|
|
|
console.log('addFrom', await getFieldsValue()); |
|
|
|
let a = await validate(); |
|
|
|
if (a) { |
|
|
|
payNum.value += 1 |
|
|
|
contractformSchemas.forEach(item => { |
|
|
|
let tempitem = cloneDeep(item) |
|
|
|
if (tempitem.field.indexOf("Money") != -1) { |
|
|
|
tempitem.dynamicRules = aaa |
|
|
|
tempitem.componentProps = bbb |
|
|
|
|
|
|
|
payNum.value += 1; |
|
|
|
contractformSchemas.forEach((item) => { |
|
|
|
let tempitem = cloneDeep(item); |
|
|
|
if (tempitem.field.indexOf('Money') != -1) { |
|
|
|
tempitem.dynamicRules = aaa; |
|
|
|
tempitem.componentProps = bbb; |
|
|
|
} |
|
|
|
if (tempitem.field == "payDate") { |
|
|
|
tempitem.label = "第" + payNum.value + "次支付" |
|
|
|
if (tempitem.field == 'payDate') { |
|
|
|
tempitem.label = '第' + payNum.value + '次支付'; |
|
|
|
} |
|
|
|
if (tempitem.field == 'taskName') { |
|
|
|
tempitem.componentProps.options = taskNameTypeDict.value; |
|
|
|
if (data.taskName != '合同签订') { |
|
|
|
tempitem.dynamicDisabled = true; |
|
|
|
tempitem.defaultValue = data.taskName; |
|
|
|
} |
|
|
|
if (tempitem.field == "taskName") { |
|
|
|
tempitem.componentProps.options = taskNameTypeDict.value |
|
|
|
|
|
|
|
} |
|
|
|
// if (tempitem.field == "totalMoney") { |
|
|
|
// tempitem.label = "第" + payNum.value + "支付总金额" |
|
|
|
// } |
|
|
|
tempitem.field = tempitem.field + payNum.value |
|
|
|
tempSchemas.push(tempitem) |
|
|
|
}) |
|
|
|
tempitem.field = tempitem.field + payNum.value; |
|
|
|
tempSchemas.push(tempitem); |
|
|
|
}); |
|
|
|
// console.log("temp222222",tempSchemas,tempSchemas.length) |
|
|
|
resetSchema(tempSchemas) |
|
|
|
resetSchema(tempSchemas); |
|
|
|
} |
|
|
|
} |
|
|
|
function minusFrom() { |
|
|
|
if (payNum.value == 1) { |
|
|
|
message.warning("至少保留一个支付项"); |
|
|
|
return |
|
|
|
message.warning('至少保留一个支付项'); |
|
|
|
return; |
|
|
|
} |
|
|
|
let last = cloneDeep(tempSchemas) |
|
|
|
last = last.slice(payNum.value * 9 - 9) |
|
|
|
last.forEach(element => { |
|
|
|
removeSchemaByField(element.field) |
|
|
|
let last = cloneDeep(tempSchemas); |
|
|
|
last = last.slice(payNum.value * 9 - 9); |
|
|
|
last.forEach((element) => { |
|
|
|
removeSchemaByField(element.field); |
|
|
|
}); |
|
|
|
tempSchemas = tempSchemas.slice(0, payNum.value * 9 - 9) |
|
|
|
payNum.value -= 1 |
|
|
|
resetSchema(tempSchemas) |
|
|
|
tempSchemas = tempSchemas.slice(0, payNum.value * 9 - 9); |
|
|
|
payNum.value -= 1; |
|
|
|
resetSchema(tempSchemas); |
|
|
|
} |
|
|
|
//导入Excel病种信息数据 |
|
|
|
async function submitImportForm() { |
|
|
|
let res = [] |
|
|
|
let data = await getFieldsValue() |
|
|
|
let res = []; |
|
|
|
let data = await getFieldsValue(); |
|
|
|
for (let i = 1; i <= payNum.value; i++) { |
|
|
|
let obj = new Object() |
|
|
|
contractformSchemas.forEach(item => { |
|
|
|
let obj = new Object(); |
|
|
|
contractformSchemas.forEach((item) => { |
|
|
|
if (i == 1) { |
|
|
|
obj[item.field] = data[item.field] |
|
|
|
obj[item.field] = data[item.field]; |
|
|
|
} else { |
|
|
|
obj[item.field] = data[item.field + i] |
|
|
|
obj[item.field] = data[item.field + i]; |
|
|
|
} |
|
|
|
obj["projectId"] = projectid.value |
|
|
|
obj['projectId'] = projectid.value; |
|
|
|
delete obj.id; |
|
|
|
}) |
|
|
|
res.push(obj) |
|
|
|
}); |
|
|
|
res.push(obj); |
|
|
|
} |
|
|
|
console.log("data", data, res) |
|
|
|
console.log('data', data, res); |
|
|
|
// if(checkForm()){ |
|
|
|
// ElMessage.success("新增成功") |
|
|
|
// } |
|
|
|
if (await checkForm()) { |
|
|
|
const params = new FormData() |
|
|
|
console.log("data", data) |
|
|
|
const params = new FormData(); |
|
|
|
console.log('data', data); |
|
|
|
// 使用form表单的数据格式 |
|
|
|
if (isModify.value == true) { |
|
|
|
if (fileList.length > 0) { |
|
|
|
params.append("file", fileList[0].file) |
|
|
|
params.append('file', fileList[0].file); |
|
|
|
} |
|
|
|
//说明是修改 |
|
|
|
params.append("contractinfoList", JSON.stringify(res)) |
|
|
|
await modifyContractinfo(params) |
|
|
|
params.append('contractinfoList', JSON.stringify(res)); |
|
|
|
await modifyContractinfo(params); |
|
|
|
} else { |
|
|
|
if (fileList.length == 0) { |
|
|
|
ElMessage.warning("请上传文件") |
|
|
|
ElMessage.warning('请上传文件'); |
|
|
|
return; |
|
|
|
} |
|
|
|
params.append("file", fileList[0].file) |
|
|
|
params.append("contractinfoList", JSON.stringify(res)) |
|
|
|
await addContractinfo(params) |
|
|
|
params.append('file', fileList[0].file); |
|
|
|
params.append('contractinfoList', JSON.stringify(res)); |
|
|
|
await addContractinfo(params); |
|
|
|
} |
|
|
|
dialogVisible() |
|
|
|
dialogVisible(); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
function dialogVisible() { |
|
|
|
emit("close") |
|
|
|
emit('close'); |
|
|
|
} |
|
|
|
|
|
|
|
async function checkForm() { //校验表单 |
|
|
|
await validate() |
|
|
|
let data = getFieldsValue() |
|
|
|
let totalCentralMoney = 0 |
|
|
|
let totalCountyMoney = 0 |
|
|
|
let totalCityMoney = 0 |
|
|
|
let totalProvincialMoney = 0 |
|
|
|
let totalSelfMoney = 0 |
|
|
|
let totalMoney = 0 |
|
|
|
let showshoufu = false |
|
|
|
let showchuyan = false |
|
|
|
let showzhongyan = false |
|
|
|
let returnRes = true |
|
|
|
async function checkForm() { |
|
|
|
//校验表单 |
|
|
|
await validate(); |
|
|
|
let data = getFieldsValue(); |
|
|
|
let totalCentralMoney = 0; |
|
|
|
let totalCountyMoney = 0; |
|
|
|
let totalCityMoney = 0; |
|
|
|
let totalProvincialMoney = 0; |
|
|
|
let totalSelfMoney = 0; |
|
|
|
let totalMoney = 0; |
|
|
|
let showshoufu = false; |
|
|
|
let showchuyan = false; |
|
|
|
let showzhongyan = false; |
|
|
|
let returnRes = true; |
|
|
|
//校验首付和初验比例 |
|
|
|
Object.keys(data).forEach(key => { |
|
|
|
if (key.indexOf("taskName") != -1 && data[key].indexOf("首付") != -1) { |
|
|
|
showshoufu = true |
|
|
|
Object.keys(data).forEach((key) => { |
|
|
|
if (key.indexOf('taskName') != -1 && data[key].indexOf('首付') != -1) { |
|
|
|
showshoufu = true; |
|
|
|
// if (key == "taskName") { |
|
|
|
// if (Number(data["centralMoney"]) / Number(centralMoney) > 0.3) { |
|
|
|
// ElMessage.error("首付的中央资金不能超过总中央资金的30%") |
|
|
@ -415,8 +425,8 @@ async function checkForm() { //校验表单 |
|
|
|
// } |
|
|
|
// } |
|
|
|
} |
|
|
|
if (key.indexOf("taskName") != -1 && data[key].indexOf("初验") != -1) { |
|
|
|
showchuyan = true |
|
|
|
if (key.indexOf('taskName') != -1 && data[key].indexOf('初验') != -1) { |
|
|
|
showchuyan = true; |
|
|
|
// if (key == "taskName") { |
|
|
|
// if (Number(data["centralMoney"]) / Number(centralMoney) > 0.6) { |
|
|
|
// ElMessage.error("初验的中央资金不能超过总中央资金的60%") |
|
|
@ -439,92 +449,90 @@ async function checkForm() { //校验表单 |
|
|
|
// } |
|
|
|
// } |
|
|
|
} |
|
|
|
if (key.indexOf("taskName") != -1 && data[key].indexOf("终验") != -1) { |
|
|
|
showzhongyan = true |
|
|
|
if (key.indexOf('taskName') != -1 && data[key].indexOf('终验') != -1) { |
|
|
|
showzhongyan = true; |
|
|
|
} |
|
|
|
//校验各项金额比例 |
|
|
|
if (key.includes("centralMoney")) { |
|
|
|
totalCentralMoney += Number(data[key]) |
|
|
|
if (key.includes('centralMoney')) { |
|
|
|
totalCentralMoney += Number(data[key]); |
|
|
|
} |
|
|
|
if (key.includes("countyMoney")) { |
|
|
|
totalCountyMoney += Number(data[key]) |
|
|
|
if (key.includes('countyMoney')) { |
|
|
|
totalCountyMoney += Number(data[key]); |
|
|
|
} |
|
|
|
if (key.includes("cityMoney")) { |
|
|
|
totalCityMoney += Number(data[key]) |
|
|
|
if (key.includes('cityMoney')) { |
|
|
|
totalCityMoney += Number(data[key]); |
|
|
|
} |
|
|
|
if (key.includes("provincialMoney")) { |
|
|
|
totalProvincialMoney += Number(data[key]) |
|
|
|
if (key.includes('provincialMoney')) { |
|
|
|
totalProvincialMoney += Number(data[key]); |
|
|
|
} |
|
|
|
if (key.includes("selfMoney")) { |
|
|
|
totalSelfMoney += Number(data[key]) |
|
|
|
if (key.includes('selfMoney')) { |
|
|
|
totalSelfMoney += Number(data[key]); |
|
|
|
} |
|
|
|
if (key.includes("totalMoney")) { |
|
|
|
totalMoney += Number(data[key]) |
|
|
|
if (key.includes('totalMoney')) { |
|
|
|
totalMoney += Number(data[key]); |
|
|
|
} |
|
|
|
}) |
|
|
|
}); |
|
|
|
if (!returnRes) { |
|
|
|
return false |
|
|
|
} |
|
|
|
if (totalCentralMoney != Number(resMoney.value.centralMoney)) { |
|
|
|
ElMessage.error("中央资金总额不匹配") |
|
|
|
return false |
|
|
|
} |
|
|
|
if (totalCountyMoney != Number(resMoney.value.countyMoney)) { |
|
|
|
ElMessage.error("县级资金总额不匹配") |
|
|
|
return false |
|
|
|
} |
|
|
|
if (totalCityMoney != Number(resMoney.value.cityMoney)) { |
|
|
|
ElMessage.error("市级资金总额不匹配") |
|
|
|
return false |
|
|
|
} |
|
|
|
if (totalProvincialMoney != Number(resMoney.value.provincialMoney)) { |
|
|
|
ElMessage.error("省级资金总额不匹配") |
|
|
|
return false |
|
|
|
} |
|
|
|
if (totalSelfMoney != Number(resMoney.value.selfMoney)) { |
|
|
|
ElMessage.error("自筹资金总额不匹配") |
|
|
|
return false |
|
|
|
} |
|
|
|
if (totalMoney != Number(resMoney.value.totalMoney)) { |
|
|
|
ElMessage.error("总资金总额不匹配") |
|
|
|
return false |
|
|
|
return false; |
|
|
|
} |
|
|
|
// if (totalCentralMoney != Number(resMoney.value.centralMoney)) { |
|
|
|
// ElMessage.error("中央资金总额不匹配") |
|
|
|
// return false |
|
|
|
// } |
|
|
|
// if (totalCountyMoney != Number(resMoney.value.countyMoney)) { |
|
|
|
// ElMessage.error("县级资金总额不匹配") |
|
|
|
// return false |
|
|
|
// } |
|
|
|
// if (totalCityMoney != Number(resMoney.value.cityMoney)) { |
|
|
|
// ElMessage.error("市级资金总额不匹配") |
|
|
|
// return false |
|
|
|
// } |
|
|
|
// if (totalProvincialMoney != Number(resMoney.value.provincialMoney)) { |
|
|
|
// ElMessage.error("省级资金总额不匹配") |
|
|
|
// return false |
|
|
|
// } |
|
|
|
// if (totalSelfMoney != Number(resMoney.value.selfMoney)) { |
|
|
|
// ElMessage.error("自筹资金总额不匹配") |
|
|
|
// return false |
|
|
|
// } |
|
|
|
// if (totalMoney != Number(resMoney.value.totalMoney)) { |
|
|
|
// ElMessage.error("总资金总额不匹配") |
|
|
|
// return false |
|
|
|
// } |
|
|
|
if (!showshoufu) { |
|
|
|
ElMessage.error("请添加首付任务") |
|
|
|
return false |
|
|
|
ElMessage.error('请添加首付任务'); |
|
|
|
return false; |
|
|
|
} |
|
|
|
if (!showchuyan) { |
|
|
|
ElMessage.error("请添加初验任务") |
|
|
|
return false |
|
|
|
ElMessage.error('请添加初验任务'); |
|
|
|
return false; |
|
|
|
} |
|
|
|
if (!showzhongyan) { |
|
|
|
ElMessage.error("请添加终验任务") |
|
|
|
return false |
|
|
|
ElMessage.error('请添加终验任务'); |
|
|
|
return false; |
|
|
|
} |
|
|
|
console.log("data", data) |
|
|
|
return true |
|
|
|
console.log('data', data); |
|
|
|
return true; |
|
|
|
} |
|
|
|
async function getFieldsValuetoRef() { |
|
|
|
let res = [] |
|
|
|
let data = await getFieldsValue() |
|
|
|
let res = []; |
|
|
|
let data = await getFieldsValue(); |
|
|
|
for (let i = 1; i <= payNum.value; i++) { |
|
|
|
let obj = new Object() |
|
|
|
contractformSchemas.forEach(item => { |
|
|
|
let obj = new Object(); |
|
|
|
contractformSchemas.forEach((item) => { |
|
|
|
if (i == 1) { |
|
|
|
obj[item.field] = data[item.field] |
|
|
|
obj[item.field] = data[item.field]; |
|
|
|
} else { |
|
|
|
obj[item.field] = data[item.field + i] |
|
|
|
obj[item.field] = data[item.field + i]; |
|
|
|
} |
|
|
|
obj["projectId"] = projectid.value |
|
|
|
obj['projectId'] = projectid.value; |
|
|
|
delete obj.id; |
|
|
|
}) |
|
|
|
res.push(obj) |
|
|
|
}); |
|
|
|
res.push(obj); |
|
|
|
} |
|
|
|
return res |
|
|
|
return res; |
|
|
|
} |
|
|
|
defineExpose({ getFieldsValuetoRef, checkForm }) |
|
|
|
|
|
|
|
|
|
|
|
defineExpose({ getFieldsValuetoRef, checkForm }); |
|
|
|
</script> |
|
|
|
<style scoped> |
|
|
|
.suffix { |
|
|
|