需求优化

This commit is contained in:
‘huanghaiixia’
2026-01-26 17:41:30 +08:00
parent bf6b5e4e89
commit 008fd9b25d
6 changed files with 52 additions and 55 deletions

View File

@ -77,6 +77,7 @@
"moment": "^2.29.4",
"node-opencc": "^2.0.1",
"nprogress": "^0.2.0",
"number-precision": "^1.6.0",
"nzh": "^1.0.8",
"path-to-regexp": "^6.2.0",
"pinia": "2.0.12",

View File

@ -137,6 +137,8 @@
import { getCompDept } from '/@/api/approve/Appro';
import { useUserStore } from '/@/store/modules/user';
import { getLngPngDemandContractList, getLngPngDemandPointDely, getLngPngDemandContractQty, getLngPngDemandPurList, getLngPngDemandRate } from '/@/api/dayPlan/Demand';
import NP from 'number-precision';
const userStore = useUserStore();
const userInfo = userStore.getUserInfo;
const router = useRouter();
@ -203,11 +205,11 @@
let num = 0;
let num1 = 0;
dataList.value.forEach(v => {
num+=(Number(v.qtyDemandM3) || 0)
num1+=(Number(v.qtyDemandGj) || 0)
num=NP.plus(num, (Number(v.qtyDemandM3) || 0))
num1=NP.plus(num1, (Number(v.qtyDemandGj) || 0))
})
formState.value.qtyDemandM3 = num ? num.toFixed(5) : ''
formState.value.qtyDemandGj = num1 ? num1.toFixed(5) : ''
formState.value.qtyDemandM3 = num
formState.value.qtyDemandGj = num1
}
const datePlanChange = async (val) => {
if (!val) {
@ -281,29 +283,29 @@
v.qtyDemandGj = Number(v.qtyDemandM3)*Number(formState.value.rateM3Gj) || ''
v.qtyDemandM3 = Number(formState.value.rateM3Gj) ? Number(v.qtyDemandGj)/Number(formState.value.rateM3Gj) : ''
v.qtyDemandM3 = Number(v.qtyDemandM3)? (Number(v.qtyDemandM3) / 10000) : ''
v.qtySalesM3 = Number(v.qtySalesM3)? (Number(v.qtySalesM3) / 10000) : ''
v.qtyDemandM3 = NP.divide(Number(v.qtyDemandM3) || 0, 10000)
v.qtySalesM3 = NP.divide(Number(v.qtySalesM3) || 0, 10000)
num+=(Number(v.qtySalesGj) || 0)
num1+=(Number(v.qtySalesM3) || 0)
num2+=(Number(v.qtyDemandM3) || 0)
num3+=(Number(v.qtyDemandGj) || 0)
num= NP.plus(num, (Number(v.qtySalesGj) || 0))
num1=NP.plus(num1, (Number(v.qtySalesM3) || 0))
num2= NP.plus(num2, (Number(v.qtyDemandM3) || 0))
num3=NP.plus(num3, (Number(v.qtyDemandGj) || 0))
})
formState.value.qtySalesGj = num ? num.toFixed(5) : ''
formState.value.qtySalesM3 = num1 ? num1.toFixed(5) : ''
formState.value.qtyDemandM3 = num2 ? num2.toFixed(5) : ''
formState.value.qtyDemandGj = num3 ? num3.toFixed(5) : ''
formState.value.qtySalesGj = num
formState.value.qtySalesM3 = num1
formState.value.qtyDemandM3 = num2
formState.value.qtyDemandGj = num3
}
const getContractQty = async () => {
let obj = {
kId: formState.value.ksId,
datePlan: dayjs(formState.value.datePlan).format('YYYY-MM-DD')
}
let res = await getLngPngDemandContractQty(obj)
formState.value.qtyContractGj = res?.qtyContractGj
formState.value.qtyContractM3 = res?.qtyContractM3
formState.value.qtyContractM3 = Number(formState.value.qtyContractM3)? (Number(formState.value.qtyContractM3) / 10000) : ''
let res = await getLngPngDemandContractQty(obj) || []
formState.value.qtyContractGj = res[0]?.qtyContractGj
formState.value.qtyContractM3 = res[0]?.qtyContractM3
formState.value.qtyContractM3 =NP.divide(Number(formState.value.qtyContractM3), 10000)
}
const disabledDateStart = (current) => {

View File

@ -45,6 +45,7 @@
import { message } from 'ant-design-vue';
import { useUserStore } from '/@/store/modules/user';
import basicForm from './basicForm.vue'
import NP from 'number-precision';
const userStore = useUserStore();
const userInfo = userStore.getUserInfo;
@ -128,24 +129,16 @@
const changeData = (obj) => {
let arr = obj.lngPngDemandPurList || []
obj.datePlan = obj.datePlan ? dayjs(obj.datePlan) : null
obj.qtyContractM3 = Number(obj.qtyContractM3)/10000
obj.qtyPlanM3 = Number(obj.qtyPlanM3)/10000
obj.qtyDemandM3 = Number(obj.qtyDemandM3)/10000
obj.qtySalesM3 = Number(obj.qtySalesM3)/10000
obj.qtyContractM3 = NP.divide(Number(obj.qtyContractM3), 10000)
obj.qtyPlanM3 = NP.divide(Number(obj.qtyPlanM3), 10000)
obj.qtyDemandM3 = NP.divide(Number(obj.qtyDemandM3), 10000)
obj.qtySalesM3 = NP.divide(Number(obj.qtySalesM3), 10000)
arr.length && arr.forEach(v => {
v.qtyDemandM3 = Number(v.qtyDemandM3)/10000
v.qtySalesM3 = Number(v.qtySalesM3)/10000
v.qtyDemandM3 = Number(v.qtyDemandM3) ? Number(v.qtyDemandM3).toFixed(5) : ''
v.qtySalesM3 = Number(v.qtySalesM3) ? Number(v.qtySalesM3).toFixed(5) : ''
v.qtyDemandM3 = NP.divide(Number(v.qtyDemandM3), 10000)
v.qtySalesM3 = NP.divide(Number(v.qtySalesM3), 10000)
});
obj.qtyContractM3 = Number(obj.qtyContractM3) ? Number(obj.qtyContractM3).toFixed(5) : ''
obj.qtyPlanM3 = Number(obj.qtyPlanM3) ? Number(obj.qtyPlanM3).toFixed(5) : ''
obj.qtyDemandM3 = Number(obj.qtyDemandM3) ? Number(obj.qtyDemandM3).toFixed(5) : ''
obj.qtySalesM3 = Number(obj.qtySalesM3) ? Number(obj.qtySalesM3).toFixed(5) : ''
return {
list : arr,
params: obj
@ -159,16 +152,16 @@
const data = await formRef.value.getFormValue();
let arr = JSON.parse(JSON.stringify(data.list))
arr.forEach(v=> {
v.qtyDemandM3 = Number(v.qtyDemandM3)*10000
v.qtySalesM3 = Number(v.qtySalesM3)*10000
v.qtyDemandM3 = NP.times(Number(v.qtyDemandM3), 10000)
v.qtySalesM3 = NP.times(Number(v.qtySalesM3), 10000)
})
let obj = {
...data.formInfo,
datePlan: dayjs(data.formInfo.datePlan).format('YYYY-MM-DD HH:mm:ss'),
qtyContractM3: Number(data.formInfo.qtyContractM3)*10000,
qtyPlanM3: Number(data.formInfo.qtyPlanM3)*10000,
qtyDemandM3: Number(data.formInfo.qtyDemandM3)*10000,
qtySalesM3: Number(data.formInfo.qtySalesM3)*10000,
qtyContractM3: NP.times(Number(data.formInfo.qtyContractM3), 10000),
qtyPlanM3: NP.times(Number(data.formInfo.qtyPlanM3), 10000),
qtyDemandM3: NP.times(Number(data.formInfo.qtyDemandM3), 10000),
qtySalesM3: NP.times(Number(data.formInfo.qtySalesM3), 10000),
lngPngDemandPurList:arr
}
spinning.value = true;

View File

@ -101,7 +101,7 @@
v-model:value="record.qtySalesM3" :disabled="record.alterSign=='D' || disable" :min="0" @change="numChange" style="width: 100%" />
</template>
<template v-if="column.dataIndex === 'note'" >
<div v-if="record.alterSign=='D' || disable" :class="diffResultList.includes('lngPngApproPurList[' + index + '].note') ? 'changeStyle': ''">{{ record.qtyDemandM3 }}</div>
<div v-if="record.alterSign=='D' || disable" :class="diffResultList.includes('lngPngApproPurList[' + index + '].note') ? 'changeStyle': ''">{{ record.note }}</div>
<a-input v-model:value="record.note" v-else style="width: 100%" />
</template>
</template>

View File

@ -52,6 +52,7 @@
import { message } from 'ant-design-vue';
import { useUserStore } from '/@/store/modules/user';
import basicForm from './basicForm.vue'
import NP from 'number-precision';
const userStore = useUserStore();
const userInfo = userStore.getUserInfo;
@ -137,17 +138,17 @@
}
const changeData = (obj) => {
let arr = obj.lngPngApproPurList || []
obj.qtyContractM3 = Number(obj.qtyContractM3)/10000
obj.qtyPlanM3 = Number(obj.qtyPlanM3)/10000
obj.qtyDemandM3 = Number(obj.qtyDemandM3)/10000
obj.qtySalesM3 = Number(obj.qtySalesM3)/10000
obj.qtyContractM3 = NP.divide(Number(obj.qtyContractM3), 10000)
obj.qtyPlanM3 = NP.divide(Number(obj.qtyPlanM3), 10000)
obj.qtyDemandM3 = NP.divide(Number(obj.qtyDemandM3), 10000)
obj.qtySalesM3 = NP.divide(Number(obj.qtySalesM3), 10000)
let num = 0;
let num1 = 0;
arr.length && arr.forEach(v => {
v.qtyDemandM3 = Number(v.qtyDemandM3)/10000
v.qtySalesM3 = Number(v.qtySalesM3)/10000
num+=(Number(v.qtySalesGj) || 0)
num1+=(Number(v.qtySalesM3) || 0)
v.qtyDemandM3 = NP.divide(Number(v.qtyDemandM3), 10000)
v.qtySalesM3 = NP.divide(Number(v.qtySalesM3), 10000)
num=NP.plus(num, (Number(v.qtySalesGj) || 0))
num1=NP.plus(num1, (Number(v.qtySalesM3) || 0))
});
obj.qtySalesGj = num
obj.qtySalesM3 = num1
@ -163,15 +164,15 @@
let data = basicFormRef.value.getFormValue()
let arr = JSON.parse(JSON.stringify(data.list))
arr.forEach(v=> {
v.qtyDemandM3 = Number(v.qtyDemandM3)*10000
v.qtySalesM3 = Number(v.qtySalesM3)*10000
v.qtyDemandM3 = NP.times(Number(v.qtyDemandM3), 10000)
v.qtySalesM3 = NP.times(Number(v.qtySalesM3), 10000)
})
let obj = {
...data.formInfo,
qtyContractM3: Number(data.formInfo.qtyContractM3)*10000,
qtyPlanM3: Number(data.formInfo.qtyPlanM3)*10000,
qtyDemandM3: Number(data.formInfo.qtyDemandM3)*10000,
qtySalesM3: Number(data.formInfo.qtySalesM3)*10000,
qtyContractM3: NP.times(Number(data.formInfo.qtyContractM3), 10000),
qtyPlanM3: NP.times(Number(data.formInfo.qtyPlanM3), 10000),
qtyDemandM3: NP.times(Number(data.formInfo.qtyDemandM3), 10000),
qtySalesM3: NP.times(Number(data.formInfo.qtySalesM3), 10000),
lngPngApproPurList:arr
}
let params = {

View File

@ -22,11 +22,11 @@
<template #bodyCell="{ column, record, index }">
<template v-if="column.dataIndex === 'qtyMeaGj'">
<a-input-number v-model:value="record.qtyMeaGj" v-if="statusCode==='N'|| statusCode==='JLZ'" @change="numChange(record, index)" :min="0" style="width: 100%" />
<a-input-number v-model:value="record.qtyMeaGj" v-if="record.statusCode==='N'|| record.statusCode==='JLZ'" @change="numChange(record, index)" :min="0" style="width: 100%" />
<div v-else>{{ record.qtyMeaGj }}</div>
</template>
<template v-if="column.dataIndex === 'qtyMeaM3'">
<a-input-number v-model:value="record.qtyMeaM3" v-if="statusCode==='N'|| statusCode==='JLZ'" @change="numChange(record, index)" :min="0" style="width: 100%" />
<a-input-number v-model:value="record.qtyMeaM3" v-if="record.statusCode==='N'|| record.statusCode==='JLZ'" @change="numChange(record, index)" :min="0" style="width: 100%" />
</template>
<template v-if="column.dataIndex === 'lngFileUploadList'">
<div>