年度需求添加字段
This commit is contained in:
@ -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)
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user