年度需求添加字段

This commit is contained in:
‘huanghaiixia’
2026-04-14 10:27:14 +08:00
parent 53b3e80814
commit 5400a941b1
2 changed files with 41 additions and 11 deletions

View File

@ -92,12 +92,13 @@ import Index from '/@/views/sys/error-log/index.vue';
}); });
const columns = ref([ const columns = ref([
{ title: t('序号'), dataIndex: 'index', key: 'index', width: 50 }, { title: t('序号'), dataIndex: 'index', key: 'index', customRender: (column) => `${column.index + 1}` ,width: 60},
{ title: t('月份'), dataIndex: 'month', width: 80 }, { title: t('月份'), dataIndex: 'month', width: 70},
{ title: t('管道气(万方)'), dataIndex: 'qty', width: 250 }, { title: t('管道气(万方)'), dataIndex: 'qty', width: 180},
{ title: t('LNG(吨)'), dataIndex: 'lng', width: 250 }, { title: t('LNG(吨)'), dataIndex: 'lng', width: 180},
{ title: t('LNG(万方)(气化率1400)'), dataIndex: 'lngNum' }, { title: t('备注'), dataIndex: 'note', width: 300},
{ title: t('小计(万方)'), dataIndex: 'total' }, { title: t('LNG(万方)(气化率1400)'), dataIndex: 'lngNum',width: 250},
{ title: t('小计(万方)'), dataIndex: 'total',width: 250},
]); ]);
onMounted(async () => { onMounted(async () => {
@ -122,6 +123,12 @@ import Index from '/@/views/sys/error-log/index.vue';
try { try {
const data = await getLngPlanYearDemandHdr(id); const data = await getLngPlanYearDemandHdr(id);
Object.assign(formState, data); Object.assign(formState, data);
let noteKeys = []
for (let i in data) {
if (i.includes('note') && i.length>4) {
noteKeys.push({note: i, value: data[i]})
}
}
let arr = data?.lngPlanYearDemandList || []; let arr = data?.lngPlanYearDemandList || [];
let objPng = {} let objPng = {}
let objLng = {} let objLng = {}
@ -146,6 +153,7 @@ import Index from '/@/views/sys/error-log/index.vue';
} }
lngkeys.forEach((i,idx)=> { lngkeys.forEach((i,idx)=> {
dataList.value[idx].lng = i.value dataList.value[idx].lng = i.value
dataList.value[idx].note = noteKeys[idx].value
}) })
let totalObj = {month: '合计'} let totalObj = {month: '合计'}
dataList.value.splice(12,0,totalObj) dataList.value.splice(12,0,totalObj)

View File

@ -47,10 +47,14 @@
<span style="margin-left: 8px;">年度需求明细</span> <span style="margin-left: 8px;">年度需求明细</span>
<a-button style="margin: 0 10px" v-if="!isDisable" @click="handleDownloadTemplate">下载模板</a-button> <a-button style="margin: 0 10px" v-if="!isDisable" @click="handleDownloadTemplate">下载模板</a-button>
<a-button type="primary" style="margin: 0 10px" v-if="!isDisable" @click="handleImport">导入</a-button> <a-button type="primary" style="margin: 0 10px" v-if="!isDisable" @click="handleImport">导入</a-button>
<div class="tips">历史同比或者月度环比偏差超过15%需要填写备注</div>
</div> </div>
</template> </template>
<a-table style="width: 100%" :columns="columns" :data-source="dataList" :pagination="false"> <a-table style="width: 100%" :columns="columns" :data-source="dataList" :pagination="false">
<template #bodyCell="{ column, record, index }"> <template #bodyCell="{ column, record, index }">
<template v-if="column.dataIndex === 'note'">
<a-textarea v-model:value="record.note" :auto-size="{ minRows: 1, maxRows: 5 }" :disabled="isDisable || record.month=='合计'" />
</template>
<template v-if="column.dataIndex === 'qty'"> <template v-if="column.dataIndex === 'qty'">
<input-number v-model:value="record.qty" :disabled="isDisable || record.month=='合计'" :digits="3" :min="0" style="width: 100%" @blur="numCount(record)"/> <input-number v-model:value="record.qty" :disabled="isDisable || record.month=='合计'" :digits="3" :min="0" style="width: 100%" @blur="numCount(record)"/>
</template> </template>
@ -134,10 +138,11 @@
planYear: [{ required: true, message: "该项为必填项", trigger: 'change' }], planYear: [{ required: true, message: "该项为必填项", trigger: 'change' }],
}); });
const columns= ref([ const columns= ref([
{ title: t('序号'), dataIndex: 'index', key: 'index', customRender: (column) => `${column.index + 1}` ,width: 50}, { title: t('序号'), dataIndex: 'index', key: 'index', customRender: (column) => `${column.index + 1}` ,width: 60},
{ title: t('月份'), dataIndex: 'month', width: 80}, { title: t('月份'), dataIndex: 'month', width: 70},
{ title: t('管道气(万方)'), dataIndex: 'qty', width: 250}, { title: t('管道气(万方)'), dataIndex: 'qty', width: 200},
{ title: t('LNG(吨)'), dataIndex: 'lng', width: 250}, { title: t('LNG(吨)'), dataIndex: 'lng', width: 200},
{ title: t('备注'), dataIndex: 'note', width: 300},
{ title: t('LNG(万方)(气化率1400)'), dataIndex: 'lngNum'}, { title: t('LNG(万方)(气化率1400)'), dataIndex: 'lngNum'},
{ title: t('小计(万方)'), dataIndex: 'total'}, { title: t('小计(万方)'), dataIndex: 'total'},
]); ]);
@ -211,6 +216,12 @@
} }
const updateData = (data)=> { const updateData = (data)=> {
dataList.value = [] dataList.value = []
let noteKeys = []
for (let i in data) {
if (i.includes('note') && i.length>4) {
noteKeys.push({note: i, value: data[i]})
}
}
let arr = data?.lngPlanYearDemandList || []; let arr = data?.lngPlanYearDemandList || [];
let objPng = {} let objPng = {}
let objLng = {} let objLng = {}
@ -235,6 +246,7 @@
} }
lngkeys.forEach((i,idx)=> { lngkeys.forEach((i,idx)=> {
dataList.value[idx].lng = i.value dataList.value[idx].lng = i.value
dataList.value[idx].note = noteKeys[idx].value
}) })
let totalObj = {month: '合计'} let totalObj = {month: '合计'}
dataList.value.splice(12,0,totalObj) dataList.value.splice(12,0,totalObj)
@ -346,21 +358,26 @@
await formRef.value.validateFields(); await formRef.value.validateFields();
let objLng = {catCode:'LNG'} let objLng = {catCode:'LNG'}
let objPng = {catCode:'PNG'} let objPng = {catCode:'PNG'}
let objNote = {}
dataList.value.forEach((v,idx)=> { dataList.value.forEach((v,idx)=> {
let k = '' let k = ''
let kn = ''
if (idx<12) { if (idx<12) {
k = 'qty'+(idx<9 ? ('0'+(idx+1)) : idx+1) k = 'qty'+(idx<9 ? ('0'+(idx+1)) : idx+1)
kn = 'note'+(idx<9 ? ('0'+(idx+1)) : idx+1)
} }
if (idx>12) { if (idx>12) {
let a = null let a = null
if (idx==13)a=1 if (idx==13)a=1
if (idx==14)a=2 if (idx==14)a=2
if (idx==15)a=3 if (idx==15)a=3
k = 'qtyn'+a k = 'qtyN'+a
kn = 'noteN'+a
} }
if (idx!=12) { if (idx!=12) {
objPng[k] = v.qty objPng[k] = v.qty
objLng[k] = v.lng objLng[k] = v.lng
objNote[kn] = v.note
} }
}) })
let arr = [objLng, objPng] let arr = [objLng, objPng]
@ -369,6 +386,7 @@
let obj = { let obj = {
...formState, ...formState,
planYear: (formState.planYear&&!pageId.value) ? dayjs(formState.planYear).format('YYYY') : formState.planYear, planYear: (formState.planYear&&!pageId.value) ? dayjs(formState.planYear).format('YYYY') : formState.planYear,
...objNote,
lngPlanYearDemandList: arr lngPlanYearDemandList: arr
} }
await request(obj) await request(obj)
@ -416,4 +434,8 @@
.pdcss { .pdcss {
padding:0px 12px 6px 12px !important; padding:0px 12px 6px 12px !important;
} }
.tips {
font-size: 13px;
font-weight: normal;
}
</style> </style>