This commit is contained in:
2026-02-02 18:06:50 +08:00
33 changed files with 535 additions and 189 deletions

View File

@ -3,8 +3,8 @@ import { defHttp } from '/@/utils/http/axios';
import { ErrorMessageMode } from '/#/axios'; import { ErrorMessageMode } from '/#/axios';
enum Api { enum Api {
Page = '/contract/contractFact/page', // Page = '/contract/contractFact/page',
// Page = '/magic-api/contract/lngContractFact/page', Page = '/magic-api/contract/lngContractFact/page',
List = '/contract/contractFact/list', List = '/contract/contractFact/list',
Info = '/contract/contractFact/info', Info = '/contract/contractFact/info',
LngContractFact = '/contract/contractFact', LngContractFact = '/contract/contractFact',

View File

@ -6,7 +6,7 @@ enum Api {
// Page = '/dayPlan/pngAppro/page', // Page = '/dayPlan/pngAppro/page',
Page = '/magic-api/dayPlan/pngApproXs/page', Page = '/magic-api/dayPlan/pngApproXs/page',
PageJsz = '/magic-api/dayPlan/pngApproJsz/page', PageJsz = '/magic-api/dayPlan/pngApproJsz/page',
PageGd = '/magic-api//dayPlan/pngApproGd/page', PageGd = '/magic-api/dayPlan/pngApproGd/page',
List = '/dayPlan/pngAppro/list', List = '/dayPlan/pngAppro/list',
Info = '/dayPlan/pngAppro/info', Info = '/dayPlan/pngAppro/info',
LngPngAppro = '/dayPlan/pngAppro', LngPngAppro = '/dayPlan/pngAppro',

View File

@ -4,7 +4,7 @@ import { ErrorMessageMode } from '/#/axios';
enum Api { enum Api {
// Page = '/dayPlan/pngApproGd/page', // Page = '/dayPlan/pngApproGd/page',
Page = '/magic-api//dayPlan/pngApproGd/page', Page = '/magic-api/dayPlan/pngApproGd/page',
List = '/dayPlan/pngApproGd/list', List = '/dayPlan/pngApproGd/list',
Info = '/dayPlan/pngApproGd/info', Info = '/dayPlan/pngApproGd/info',
LngPngAppro = '/dayPlan/pngApproGd', LngPngAppro = '/dayPlan/pngApproGd',

View File

@ -4,7 +4,7 @@ import { ErrorMessageMode } from '/#/axios';
enum Api { enum Api {
Page = '/mdm/pipeGasDownloadPoint/page', Page = '/mdm/pipeGasDownloadPoint/page',
List = '/mdm/pipeGasDownloadPoint/list', List = '/mdm/pipeGasDownloadPoint/list', //不分页
Info = '/mdm/pipeGasDownloadPoint/info', Info = '/mdm/pipeGasDownloadPoint/info',
LngBStationPng = '/mdm/pipeGasDownloadPoint', LngBStationPng = '/mdm/pipeGasDownloadPoint',

View File

@ -40,13 +40,22 @@
</a-select> </a-select>
</template> </template>
<template v-if="column.dataIndex === 'rateM3Gj'"> <template v-if="column.dataIndex === 'rateM3Gj'">
<a-input-number v-model:value="record.rateM3Gj" :disabled="disabled" :min="0" @change="numChange('rateM3Gj', record, index)" style="width: 100%" /> <a-input-number v-model:value="record.rateM3Gj" v-if="!disabled"
:formatter="value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')"
:disabled="disabled" :min="0" @change="numChange('rateM3Gj', record, index)" style="width: 100%" />
<div v-else>{{ Number.format(Number.parse(record.rateM3Gj || 0),numFormat) }}</div>
</template> </template>
<template v-if="column.dataIndex === 'qtyGjMonth'"> <template v-if="column.dataIndex === 'qtyGjMonth'">
<a-input-number v-model:value="record.qtyGjMonth" :disabled="disabled" :min="0" @change="numChange('qtyGjMonth', record, index)" style="width: 100%" /> <a-input-number v-model:value="record.qtyGjMonth" v-if="!disabled"
:precision="3" :formatter="value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')"
:disabled="disabled" :min="0" @change="numChange('qtyGjMonth', record, index)" style="width: 100%" />
<div v-else>{{ Number.format(Number.parse(record.qtyGjMonth || 0),numFormat) }}</div>
</template> </template>
<template v-if="column.dataIndex === 'qtyM3Month'"> <template v-if="column.dataIndex === 'qtyM3Month'">
<a-input-number v-model:value="record.qtyM3Month" :disabled="disabled" :min="0" @change="numChange('qtyM3Month', record, index)" style="width: 100%" /> <a-input-number v-model:value="record.qtyM3Month" v-if="!disabled"
:precision="3" :formatter="value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')"
:disabled="disabled" :min="0" @change="numChange('qtyM3Month', record, index)" style="width: 100%" />
<div v-else>{{ Number.format(Number.parse(record.qtyM3Month || 0),numFormat) }}</div>
</template> </template>
<template v-if="column.dataIndex === 'zfbyTypeCode'"> <template v-if="column.dataIndex === 'zfbyTypeCode'">
<a-select v-model:value="record.zfbyTypeCode" :disabled="disabled" style="width: 100%" allow-clear> <a-select v-model:value="record.zfbyTypeCode" :disabled="disabled" style="width: 100%" allow-clear>
@ -55,6 +64,12 @@
</a-select-option> </a-select-option>
</a-select> </a-select>
</template> </template>
<template v-if="column.dataIndex === 'qtyGjDay'">
{{ Number.format(Number.parse(record.qtyGjDay || 0),numFormat) }}
</template>
<template v-if="column.dataIndex === 'qtyM3Day'">
{{ Number.format(Number.parse(record.qtyM3Day || 0),numFormat) }}
</template>
<template v-if="column.dataIndex === 'zfbyValue'"> <template v-if="column.dataIndex === 'zfbyValue'">
<a-input-number v-model:value="record.zfbyValue" :disabled="disabled" :min="0" style="width: 100%" /> <a-input-number v-model:value="record.zfbyValue" :disabled="disabled" :min="0" style="width: 100%" />
</template> </template>
@ -79,6 +94,7 @@
import dayjs from 'dayjs'; import dayjs from 'dayjs';
const router = useRouter(); const router = useRouter();
const numFormat = "###,###,###,###,###,###.000"
const { t } = useI18n(); const { t } = useI18n();
const dataListContractAgree = ref([]) const dataListContractAgree = ref([])
const columns= ref([ const columns= ref([
@ -155,21 +171,22 @@
const numCount1 = (record) => { const numCount1 = (record) => {
// 月气量(吉焦) =月气量(方)qty_m3_month*rate_m3_gj (比值(方/吉焦) // 月气量(吉焦) =月气量(方)qty_m3_month*rate_m3_gj (比值(方/吉焦)
record.qtyGjMonth = (Number(record.qtyM3Month) || 0) * (Number(record.rateM3Gj) || 0) record.qtyGjMonth = (Number(record.qtyM3Month) || 0) * (Number(record.rateM3Gj) || 0)
record.qtyGjMonth = record.qtyGjMonth ? record.qtyGjMonth.toFixed(4) : '0' record.qtyGjMonth = record.qtyGjMonth ? record.qtyGjMonth.toFixed(3) : '0'
} }
const numCount2 = (record) => { const numCount2 = (record) => {
// 月气量(方) = 月气量(吉焦) qty_gj_month/rate_m3_gj/10000 显示时字段值/10000保存时页面值*10000 // 月气量(方) = 月气量(吉焦) qty_gj_month/rate_m3_gj/10000 显示时字段值/10000保存时页面值*10000
record.qtyM3Month = Number(record.rateM3Gj) ? (Number(record.qtyGjMonth) || 0) /Number(record.rateM3Gj) : 0 record.qtyM3Month = Number(record.rateM3Gj) ? (Number(record.qtyGjMonth) || 0) /Number(record.rateM3Gj) : 0
record.qtyM3Month = record.qtyM3Month ? record.qtyM3Month.toFixed(4) : '0' record.qtyM3Month = record.qtyM3Month ? record.qtyM3Month.toFixed(3) : '0'
} }
const dayCount = (record) => { const dayCount = (record) => {
// 日气量(吉焦) = 月气量(吉焦)qty_gj_month/开始日期到结束日期的天数;计算结果保留整数 // 日气量(吉焦) = 月气量(吉焦)qty_gj_month/开始日期到结束日期的天数;计算结果保留整数
const days = dayjs(record.dateTo).diff(dayjs(record.dateFrom), 'day'); const days = dayjs(record.dateTo).diff(dayjs(record.dateFrom), 'day');
record.qtyGjDay = days ? (Number(record.qtyGjMonth) || 0) /days : 0 record.qtyGjDay = days ? (Number(record.qtyGjMonth) || 0) /days : 0
record.qtyGjDay = parseInt(record.qtyGjDay) // record.qtyGjDay = parseInt(record.qtyGjDay)
record.qtyGjDay = record.qtyGjDay ? record.qtyGjDay.toFixed(3) : '0'
// 日气量(方) = 月气量(万方)/开始日期到结束日期的天数计算结果保留4位小数显示时字段值/10000保存时页面值*10000 // 日气量(方) = 月气量(万方)/开始日期到结束日期的天数计算结果保留4位小数显示时字段值/10000保存时页面值*10000
record.qtyM3Day = days ? (Number(record.qtyM3Month) || 0) /days : 0 record.qtyM3Day = days ? (Number(record.qtyM3Month) || 0) /days : 0
record.qtyM3Day = record.qtyM3Day ? record.qtyM3Day.toFixed(4) : '0' record.qtyM3Day = record.qtyM3Day ? record.qtyM3Day.toFixed(3) : '0'
} }
const btnCheck = (record, index) => { const btnCheck = (record, index) => {
dataListContractAgree.value.splice(index, 1) dataListContractAgree.value.splice(index, 1)

View File

@ -1,10 +0,0 @@
export function numToThousands(number) {
if (number === null || number === undefined || number === '') return ''
let arr = number.toString().split('.')
let num = arr[0]
let float = arr[1]
let str = num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")
return float ? (str + '.'+ float) : str;
}

View File

@ -113,7 +113,8 @@
const taskIdRef = ref(''); const taskIdRef = ref('');
const visibleFlowRecordModal = ref(false); const visibleFlowRecordModal = ref(false);
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const formName='签报'; // const formName='签报';
const formName=currentRoute.value.meta?.title;
const defaultDate = ref([dayjs().subtract(6, 'day').format('YYYY-MM-DD'), dayjs().format('YYYY-MM-DD')]); const defaultDate = ref([dayjs().subtract(6, 'day').format('YYYY-MM-DD'), dayjs().format('YYYY-MM-DD')]);
const [registerTable, { reload, getForm }] = useTable({ const [registerTable, { reload, getForm }] = useTable({
title: '' || (formName + '列表'), title: '' || (formName + '列表'),
@ -168,7 +169,7 @@
}, },
} }
], ],
fieldMapToTime: [['dateAppro', ['startDate', 'endDate'], 'YYYY-MM-DD ', true],], fieldMapToTime: [['dateAppro', ['startDate', 'endDate'], 'YYYY-MM-DD '],],
showResetButton: true, showResetButton: true,
}, },
immediate: false, immediate: false,

View File

@ -21,6 +21,24 @@ export const searchFormSchema: FormSchema[] = [
labelField: 'name', labelField: 'name',
valueField: 'value', valueField: 'value',
getPopupContainer: () => document.body,
},
},
{
field: 'comId',
label: '合同主体',
component: 'Input',
},
{
field: 'approCode',
label: '审批状态',
component: 'XjrSelect',
componentProps: {
datasourceType: 'dic',
params: { itemId: '1990669393069129729' },
labelField: 'name',
valueField: 'value',
getPopupContainer: () => document.body, getPopupContainer: () => document.body,
}, },
}, },
@ -49,7 +67,7 @@ export const columns: BasicColumn[] = [
title: '关联类别', title: '关联类别',
componentType: 'input', componentType: 'input',
align: 'left', align: 'left',
width: 120,
sorter: true, sorter: true,
}, },
{ {
@ -57,7 +75,7 @@ export const columns: BasicColumn[] = [
title: '合同类别', title: '合同类别',
componentType: 'input', componentType: 'input',
align: 'left', align: 'left',
width: 120,
sorter: true, sorter: true,
}, },
@ -66,7 +84,7 @@ export const columns: BasicColumn[] = [
title: '二级类别', title: '二级类别',
componentType: 'input', componentType: 'input',
align: 'left', align: 'left',
width: 120,
sorter: true, sorter: true,
}, },
@ -75,7 +93,7 @@ export const columns: BasicColumn[] = [
title: '相对方数量', title: '相对方数量',
componentType: 'input', componentType: 'input',
align: 'left', align: 'left',
width: 120,
sorter: true, sorter: true,
}, },
@ -93,7 +111,7 @@ export const columns: BasicColumn[] = [
title: '合同期限', title: '合同期限',
componentType: 'input', componentType: 'input',
align: 'left', align: 'left',
width: 120,
sorter: true, sorter: true,
}, },
@ -102,7 +120,7 @@ export const columns: BasicColumn[] = [
title: '有效期开始', title: '有效期开始',
componentType: 'date', componentType: 'date',
align: 'left', align: 'left',
width: 120,
sorter: true, sorter: true,
}, },
@ -111,7 +129,7 @@ export const columns: BasicColumn[] = [
title: '有效期结束', title: '有效期结束',
componentType: 'date', componentType: 'date',
align: 'left', align: 'left',
width: 120,
sorter: true, sorter: true,
}, },
@ -120,7 +138,7 @@ export const columns: BasicColumn[] = [
title: '币种', title: '币种',
componentType: 'select', componentType: 'select',
align: 'left', align: 'left',
width: 100,
sorter: true, sorter: true,
}, },
{ {
@ -146,7 +164,7 @@ export const columns: BasicColumn[] = [
title: '业务联系人', title: '业务联系人',
componentType: 'input', componentType: 'input',
align: 'left', align: 'left',
width: 120,
sorter: true, sorter: true,
}, },
@ -155,7 +173,7 @@ export const columns: BasicColumn[] = [
title: '业务部门', title: '业务部门',
componentType: 'input', componentType: 'input',
align: 'left', align: 'left',
width: 120,
sorter: true, sorter: true,
}, },
@ -164,7 +182,7 @@ export const columns: BasicColumn[] = [
title: '状态', title: '状态',
componentType: 'input', componentType: 'input',
align: 'left', align: 'left',
width: 100,
sorter: true, sorter: true,
}, },

View File

@ -15,6 +15,9 @@
</template> </template>
</template> </template>
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.dataIndex === 'amount'">
{{ Number.format(Number.parse(record.amount),numFormat) }}
</template>
<template v-if="column.dataIndex === 'action'"> <template v-if="column.dataIndex === 'action'">
<TableAction :actions="getActions(record)" /> <TableAction :actions="getActions(record)" />
</template> </template>
@ -58,7 +61,7 @@
import useEventBus from '/@/hooks/event/useEventBus'; import useEventBus from '/@/hooks/event/useEventBus';
import { cloneDeep } from 'lodash-es'; import { cloneDeep } from 'lodash-es';
import { useUserStore } from '/@/store/modules/user'; import { useUserStore } from '/@/store/modules/user';
const numFormat = "###,###,###,###,###,###.00"
const userStore = useUserStore(); const userStore = useUserStore();
const userInfo = userStore.getUserInfo; const userInfo = userStore.getUserInfo;
@ -112,7 +115,8 @@
const taskIdRef = ref(''); const taskIdRef = ref('');
const visibleFlowRecordModal = ref(false); const visibleFlowRecordModal = ref(false);
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const formName='合同要素'; // const formName='合同要素';
const formName=currentRoute.value.meta?.title;
const [registerTable, { reload, }] = useTable({ const [registerTable, { reload, }] = useTable({
title: '' || (formName + '列表'), title: '' || (formName + '列表'),
api: getLngContractFactPage, api: getLngContractFactPage,
@ -127,7 +131,7 @@
showResetButton: true, showResetButton: true,
}, },
beforeFetch: (params) => { beforeFetch: (params) => {
return { ...params, FormId: formIdComputedRef.value, PK: 'id' }; return { ...params, FormId: formIdComputedRef.value, PK: 'id',page: params.limit};
}, },
afterFetch: (res) => { afterFetch: (res) => {
tableRef.value.setToolBarWidth(); tableRef.value.setToolBarWidth();
@ -396,7 +400,6 @@
if (record.approCode == 'YSP') { if (record.approCode == 'YSP') {
actionsList = actionsList.concat(updateBtn); actionsList = actionsList.concat(updateBtn);
} }
// if (record.workflowData?.enabled) { // if (record.workflowData?.enabled) {
// //与工作流有关联的表单 // //与工作流有关联的表单
// if (record.workflowData.status) { // if (record.workflowData.status) {

View File

@ -17,6 +17,43 @@ export const searchFormSchema: FormSchema[] = [
label: '供应商', label: '供应商',
component: 'Input', component: 'Input',
}, },
{
field: 'comId',
label: '合同主体',
component: 'Input',
},
{
field: 'pointUpName',
label: '上载点',
component: 'Input',
// componentProps: {
// showSearch: true,
// optionFilterProp: 'label',
// filterOption: (input: string, option: any) => {
// return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
// },
// options: [
// // { label: '全部', value: '' },
// ],
// placeholder: '请选择',
// allowClear: true,
// getPopupContainer: () => document.body,
// },
},
{
field: 'approCode',
label: '审批状态',
component: 'XjrSelect',
componentProps: {
datasourceType: 'dic',
params: { itemId: '1990669393069129729' },
labelField: 'name',
valueField: 'value',
getPopupContainer: () => document.body,
},
},
]; ];
export const columns: BasicColumn[] = [ export const columns: BasicColumn[] = [

View File

@ -112,7 +112,8 @@
const taskIdRef = ref(''); const taskIdRef = ref('');
const visibleFlowRecordModal = ref(false); const visibleFlowRecordModal = ref(false);
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const formName='国内管道气采购'; // const formName='国内管道气采购';
const formName=currentRoute.value.meta?.title;
const [registerTable, { reload, }] = useTable({ const [registerTable, { reload, }] = useTable({
title: '' || (formName + '列表'), title: '' || (formName + '列表'),
api: getLngContractPage, api: getLngContractPage,
@ -496,13 +497,7 @@
:deep(.ant-table-selection-col) { :deep(.ant-table-selection-col) {
width: 50px; width: 50px;
} }
:deep(.ant-col-8:nth-child(1) .ant-form-item-label) {
width: 100px !important;
}
:deep(.ant-col-8:nth-child(1)) {
max-width: 300px !important;
width: 300px !important;
}
.show{ .show{
display: flex; display: flex;
} }

View File

@ -15,7 +15,30 @@ export const searchFormSchema: FormSchema[] = [
field: 'cpName', field: 'cpName',
label: '客户', label: '客户',
component: 'Input', component: 'Input',
} },
{
field: 'comId',
label: '合同主体',
component: 'Input',
},
{
field: 'pointUpName',
label: '交割点',
component: 'Input',
},
{
field: 'approCode',
label: '审批状态',
component: 'XjrSelect',
componentProps: {
datasourceType: 'dic',
params: { itemId: '1990669393069129729' },
labelField: 'name',
valueField: 'value',
getPopupContainer: () => document.body,
},
},
]; ];
export const columns: BasicColumn[] = [ export const columns: BasicColumn[] = [
@ -88,7 +111,7 @@ export const columns: BasicColumn[] = [
title: '是否托运', title: '是否托运',
componentType: 'input', componentType: 'input',
align: 'left', align: 'left',
width: 120, width: 100,
sorter: true, sorter: true,
}, },

View File

@ -112,7 +112,8 @@
const taskIdRef = ref(''); const taskIdRef = ref('');
const visibleFlowRecordModal = ref(false); const visibleFlowRecordModal = ref(false);
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const formName='国内管道气销售'; // const formName='国内管道气销售';
const formName=currentRoute.value.meta?.title;
const [registerTable, { reload, }] = useTable({ const [registerTable, { reload, }] = useTable({
title: '' || (formName + '列表'), title: '' || (formName + '列表'),
api: getLngContractPage, api: getLngContractPage,

View File

@ -22,37 +22,53 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="合同量(吉焦)" name="qtyContractGj" :class="diffResultList.includes('qtyContractGj')?'changeStyle':''">{{ formState.qtyContractGj }}</a-form-item> <a-form-item label="合同量(吉焦)" name="qtyContractGj" :class="diffResultList.includes('qtyContractGj')?'changeStyle':''">
{{ Number.format(Number.parse(formState.qtyContractGj||0 ),numFormat)}}
</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="合同量(万方)" name="qtyContractM3" :class="diffResultList.includes('qtyContractM3')?'changeStyle':''">{{ formState.qtyContractM3 }}</a-form-item> <a-form-item label="合同量(万方)" name="qtyContractM3" :class="diffResultList.includes('qtyContractM3')?'changeStyle':''">
{{ Number.format(Number.parse(formState.qtyContractM3||0 ),numFormat)}}
</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <!-- <a-col :span="8">
<a-form-item label="月合同量执行进度%" name="rateK" :class="diffResultList.includes('rateK')?'changeStyle':''">{{ formState.rateK }}</a-form-item> <a-form-item label="月合同量执行进度%" name="rateK" :class="diffResultList.includes('rateK')?'changeStyle':''">{{ formState.rateK }}</a-form-item>
</a-col> -->
<a-col :span="8">
<a-form-item label="计划量(吉焦)" name="qtyPlanGj" :class="diffResultList.includes('qtyPlanGj')?'changeStyle':''">
{{ Number.format(Number.parse(formState.qtyPlanGj||0 ),numFormat)}}
</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="计划量(吉焦)" name="qtyPlanGj" :class="diffResultList.includes('qtyPlanGj')?'changeStyle':''">{{ formState.qtyPlanGj }}</a-form-item> <a-form-item label="计划量(万方)" name="qtyPlanM3" :class="diffResultList.includes('qtyPlanM3')?'changeStyle':''">
{{ Number.format(Number.parse(formState.qtyPlanM3||0 ),numFormat)}}
</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <!-- <a-col :span="8">
<a-form-item label="计划量(万方)" name="qtyPlanM3" :class="diffResultList.includes('qtyPlanM3')?'changeStyle':''">{{ formState.qtyPlanM3 }}</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="月计划量执行进度%" name="rateMp" :class="diffResultList.includes('rateMp')?'changeStyle':''">{{ formState.rateMp }}</a-form-item> <a-form-item label="月计划量执行进度%" name="rateMp" :class="diffResultList.includes('rateMp')?'changeStyle':''">{{ formState.rateMp }}</a-form-item>
</a-col> -->
<a-col :span="8">
<a-form-item label="指定量(吉焦)" name="qtyDemandGj" :class="diffResultList.includes('qtyDemandGj')?'changeStyle':''">
{{ Number.format(Number.parse(formState.qtyDemandGj||0 ),numFormat)}}
</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="指定量(吉焦)" name="qtyDemandGj" :class="diffResultList.includes('qtyDemandGj')?'changeStyle':''">{{ formState.qtyDemandGj }}</a-form-item> <a-form-item label="指定量(万方)" name="qtyDemandM3" :class="diffResultList.includes('qtyDemandM3')?'changeStyle':''">
{{ Number.format(Number.parse(formState.qtyDemandM3||0 ),numFormat)}}
</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <!-- <a-col :span="8">
<a-form-item label="指定量(万方)" name="qtyDemandM3" :class="diffResultList.includes('qtyDemandM3')?'changeStyle':''">{{ formState.qtyDemandM3 }}</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="月时间进度%" name="rateS" :class="diffResultList.includes('rateS')?'changeStyle':''">{{ formState.rateS }}</a-form-item> <a-form-item label="月时间进度%" name="rateS" :class="diffResultList.includes('rateS')?'changeStyle':''">{{ formState.rateS }}</a-form-item>
</a-col> -->
<a-col :span="8">
<a-form-item label="批复量(吉焦)" name="qtySalesGj" :class="diffResultList.includes('qtySalesGj')?'changeStyle':''">
{{ Number.format(Number.parse(formState.qtySalesGj||0 ),numFormat)}}
</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="批复量(吉焦)" name="qtySalesGj" :class="diffResultList.includes('qtySalesGj')?'changeStyle':''">{{ formState.qtySalesGj }}</a-form-item> <a-form-item label="批复量(万方)" name="qtySalesM3" :class="diffResultList.includes('qtySalesM3')?'changeStyle':''">
</a-col> {{ Number.format(Number.parse(formState.qtySalesM3||0 ),numFormat)}}
<a-col :span="8"> </a-form-item>
<a-form-item label="批复量(万方)" name="qtySalesM3" :class="diffResultList.includes('qtySalesM3')?'changeStyle':''">{{ formState.qtySalesM3 }}</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="比值(方/吉焦)" name="rateM3Gj" :class="diffResultList.includes('rateM3Gj')?'changeStyle':''">{{ formState.rateM3Gj }}</a-form-item> <a-form-item label="比值(方/吉焦)" name="rateM3Gj" :class="diffResultList.includes('rateM3Gj')?'changeStyle':''">{{ formState.rateM3Gj }}</a-form-item>
@ -102,16 +118,28 @@
<div :class="diffResultList.includes('lngPngDemandPurList[' + index + '].kpName') ? 'changeStyle': ''">{{ record.kpName }}</div> <div :class="diffResultList.includes('lngPngDemandPurList[' + index + '].kpName') ? 'changeStyle': ''">{{ record.kpName }}</div>
</template> </template>
<template v-if="column.dataIndex === 'qtySalesGj'"> <template v-if="column.dataIndex === 'qtySalesGj'">
<div :class="diffResultList.includes('lngPngDemandPurList[' + index + '].qtySalesGj') ? 'changeStyle': ''">{{ record.qtySalesGj }}</div> <div :class="diffResultList.includes('lngPngDemandPurList[' + index + '].qtySalesGj') ? 'changeStyle': ''">
{{ Number.format(Number.parse(record.qtySalesGj ),numFormat)}}
</div>
</template> </template>
<template v-if="column.dataIndex === 'qtySalesM3'"> <template v-if="column.dataIndex === 'qtySalesM3'">
<div :class="diffResultList.includes('lngPngDemandPurList[' + index + '].qtySalesM3') ? 'changeStyle': ''">{{ record.qtySalesM3 }}</div> <div :class="diffResultList.includes('lngPngDemandPurList[' + index + '].qtySalesM3') ? 'changeStyle': ''">
{{ Number.format(Number.parse(record.qtySalesM3 ),numFormat)}}
</div>
</template> </template>
<template v-if="column.dataIndex === 'qtyDemandGj'"> <template v-if="column.dataIndex === 'qtyDemandGj'">
<a-input-number v-model:value="record.qtyDemandGj" :class="diffResultList.includes('lngPngDemandPurList[' + index + '].qtyDemandGj')?'changeStyle':''" :disabled="disable" :min="0" @change="numChange('qtyDemandGj', record)" style="width: 100%" /> <a-input-number v-model:value="record.qtyDemandGj" v-if="!disable"
:formatter="value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')" :class="diffResultList.includes('lngPngDemandPurList[' + index + '].qtyDemandGj')?'changeStyle':''" :disabled="disable" :min="0" @blur="numBlur(record)" @change="numChange('qtyDemandGj', record)" style="width: 100%" />
<div v-else :class="diffResultList.includes('lngPngDemandPurList[' + index + '].qtyDemandGj')?'changeStyle':''">
{{ Number.format(Number.parse(record.qtyDemandGj ),numFormat)}}
</div>
</template> </template>
<template v-if="column.dataIndex === 'qtyDemandM3'"> <template v-if="column.dataIndex === 'qtyDemandM3'">
<a-input-number v-model:value="record.qtyDemandM3" :class="diffResultList.includes('lngPngDemandPurList[' + index + '].qtyDemandM3')?'changeStyle':''" :disabled="disable" :min="0" @change="numChange('qtyDemandM3', record)" style="width: 100%" /> <a-input-number v-model:value="record.qtyDemandM3" v-if="!disable"
:formatter="value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')" :class="diffResultList.includes('lngPngDemandPurList[' + index + '].qtyDemandM3')?'changeStyle':''" :disabled="disable" :min="0" @blur="numBlur(record)" @change="numChange('qtyDemandM3', record)" style="width: 100%" />
<div v-else :class="diffResultList.includes('lngPngDemandPurList[' + index + '].qtyDemandM3')?'changeStyle':''">
{{ Number.format(Number.parse(record.qtyDemandM3 ),numFormat)}}
</div>
</template> </template>
<template v-if="column.dataIndex === 'note'"> <template v-if="column.dataIndex === 'note'">
<div v-if="pageType=='compare'" :class="diffResultList.includes('lngPngDemandPurList[' + index + '].note')?'changeStyle':''"> <div v-if="pageType=='compare'" :class="diffResultList.includes('lngPngDemandPurList[' + index + '].note')?'changeStyle':''">
@ -139,6 +167,7 @@
import { getLngPngDemandContractList, getLngPngDemandPointDely, getLngPngDemandContractQty, getLngPngDemandPurList, getLngPngDemandRate } from '/@/api/dayPlan/Demand'; import { getLngPngDemandContractList, getLngPngDemandPointDely, getLngPngDemandContractQty, getLngPngDemandPurList, getLngPngDemandRate } from '/@/api/dayPlan/Demand';
import NP from 'number-precision'; import NP from 'number-precision';
const numFormat = "###,###,###,###,###,###.000"
const userStore = useUserStore(); const userStore = useUserStore();
const userInfo = userStore.getUserInfo; const userInfo = userStore.getUserInfo;
const router = useRouter(); const router = useRouter();
@ -189,27 +218,31 @@
formState.value.cuCode = res?.comp?.code formState.value.cuCode = res?.comp?.code
formState.value.comId = res?.comp?.id formState.value.comId = res?.comp?.id
const res1 = await getLngPngDemandRate({}) || [] const res1 = await getLngPngDemandRate({}) || []
formState.value.rateM3Gj = res1[0].rateM3Gj formState.value.rateM3Gj = res1[0]?.rateM3Gj
} }
}) })
function numBlur(record) {
record.qtyDemandM3 = record.qtyDemandM3 ? record.qtyDemandM3.toFixed(3) : ''
record.qtyDemandGj = record.qtyDemandGj ? record.qtyDemandGj.toFixed(3) : ''
}
async function numChange (k, record) { async function numChange (k, record) {
if (k == 'qtyDemandGj') { if (k == 'qtyDemandGj') {
record.qtyDemandM3 = Number(formState.value.rateM3Gj) ? Number(record.qtyDemandGj)/Number(formState.value.rateM3Gj) : '' record.qtyDemandM3 = Number(formState.value.rateM3Gj) ? Number(record.qtyDemandGj)/Number(formState.value.rateM3Gj) : ''
} else { } else {
record.qtyDemandGj = Number(record.qtyDemandM3)*Number(formState.value.rateM3Gj) || '' record.qtyDemandGj = Number(record.qtyDemandM3)*Number(formState.value.rateM3Gj) || ''
} }
record.qtyDemandM3 = record.qtyDemandM3 ? record.qtyDemandM3.toFixed(5) : '' // record.qtyDemandM3 = record.qtyDemandM3 ? record.qtyDemandM3.toFixed(3) : ''
record.qtyDemandGj = record.qtyDemandGj ? record.qtyDemandGj.toFixed(5) : '' // record.qtyDemandGj = record.qtyDemandGj ? record.qtyDemandGj.toFixed(3) : ''
let num = 0; let num = 0;
let num1 = 0; let num1 = 0;
dataList.value.forEach(v => { dataList.value.forEach(v => {
num=NP.plus(num, (Number(v.qtyDemandM3) || 0)) num=NP.plus(num, (Number(v.qtyDemandM3) || 0))
num1=NP.plus(num1, (Number(v.qtyDemandGj) || 0)) num1=NP.plus(num1, (Number(v.qtyDemandGj) || 0))
}) })
formState.value.qtyDemandM3 = num formState.value.qtyDemandM3 = num.toFixed(3)
formState.value.qtyDemandGj = num1 formState.value.qtyDemandGj = num1.toFixed(3)
} }
const datePlanChange = async (val) => { const datePlanChange = async (val) => {
if (!val) { if (!val) {

View File

@ -6,6 +6,16 @@ export const formConfig = {
}; };
export const searchFormSchema: FormSchema[] = [ export const searchFormSchema: FormSchema[] = [
{
field: 'datePlan',
label: '计划日期',
component: 'RangePicker',
componentProps: {
format: 'YYYY-MM-DD',
style: { width: '100%' },
getPopupContainer: () => document.body,
},
},
{ {
field: 'pointDelyName', field: 'pointDelyName',
@ -51,7 +61,7 @@ export const columns: BasicColumn[] = [
title: '版本号', title: '版本号',
componentType: 'input', componentType: 'input',
align: 'left', align: 'left',
width: 100, width: 80,
sorter: true, sorter: true,
}, },
@ -118,15 +128,6 @@ export const columns: BasicColumn[] = [
sorter: true, sorter: true,
}, },
{
dataIndex: 'note',
title: '备注',
componentType: 'input',
align: 'left',
sorter: true,
},
{ {
dataIndex: 'reply', dataIndex: 'reply',
title: '批复意见', title: '批复意见',

View File

@ -18,11 +18,18 @@
<template v-if="column.dataIndex === 'action'"> <template v-if="column.dataIndex === 'action'">
<TableAction :actions="getActions(record)" /> <TableAction :actions="getActions(record)" />
</template> </template>
<template v-if="column.dataIndex === 'qtyDemandGj'">
{{ Number.format(Number.parse(record.qtyDemandGj),numFormat) }}
</template>
<template v-if="column.dataIndex === 'qtySalesGj'">
{{ Number.format(Number.parse(record.qtySalesGj),numFormat) }}
</template>
<template v-if="column.dataIndex === 'qtySalesM3'"> <template v-if="column.dataIndex === 'qtySalesM3'">
{{ NP.divide(Number(record.qtySalesM3), 10000) }} {{ Number.format(Number.parse( NP.divide(Number(record.qtySalesM3), 10000)),numFormat) }}
</template> </template>
<template v-if="column.dataIndex === 'qtyDemandM3'"> <template v-if="column.dataIndex === 'qtyDemandM3'">
{{ NP.divide(Number(record.qtyDemandM3), 10000) }} {{ Number.format(Number.parse( NP.divide(Number(record.qtyDemandM3), 10000)),numFormat) }}
</template> </template>
</template> </template>
</BasicTable> </BasicTable>
@ -68,9 +75,10 @@
import useEventBus from '/@/hooks/event/useEventBus'; import useEventBus from '/@/hooks/event/useEventBus';
import { cloneDeep } from 'lodash-es'; import { cloneDeep } from 'lodash-es';
import NP from 'number-precision'; import NP from 'number-precision';
import dayjs from 'dayjs';
const defaultDate = ref([dayjs().format('YYYY-MM-DD'),dayjs().add(1, 'day').format('YYYY-MM-DD')]);
const { bus, CREATE_FLOW, FLOW_PROCESSED, FORM_LIST_MODIFIED } = useEventBus(); const { bus, CREATE_FLOW, FLOW_PROCESSED, FORM_LIST_MODIFIED } = useEventBus();
const numFormat = "###,###,###,###,###,###.000"
const { notification } = useMessage(); const { notification } = useMessage();
const { t } = useI18n(); const { t } = useI18n();
defineEmits(['register']); defineEmits(['register']);
@ -124,7 +132,8 @@
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const [registerImportModal, { openModal: openImportModal }] = useModal(); const [registerImportModal, { openModal: openImportModal }] = useModal();
const formName='日计划-客户需求'; // const formName='管道气日计划';
const formName=currentRoute.value.meta?.title;
const [registerTable, { reload, clearSelectedRowKeys }] = useTable({ const [registerTable, { reload, clearSelectedRowKeys }] = useTable({
title: '' || (formName + '列表'), title: '' || (formName + '列表'),
api: getLngPngDemandPage, api: getLngPngDemandPage,
@ -134,8 +143,44 @@
rowProps: { rowProps: {
gutter: 16, gutter: 16,
}, },
schemas: customSearchFormSchema, schemas: [
fieldMapToTime: [], {
field: 'datePlan',
label: '计划日期',
component: 'RangePicker',
defaultValue: defaultDate.value,
componentProps: {
format: 'YYYY-MM-DD',
style: { width: '100%' },
getPopupContainer: () => document.body,
},
},
{
field: 'pointDelyName',
label: '下载点',
component: 'Input',
},
{
field: 'kName',
label: '销售合同名称/编码',
component: 'Input',
},
{
field: 'approCode',
label: '审批状态',
component: 'XjrSelect',
componentProps: {
datasourceType: 'dic',
params: { itemId: '1990669393069129729' },
labelField: 'name',
valueField: 'value',
getPopupContainer: () => document.body,
},
},
],
fieldMapToTime: [['datePlan', ['startDate', 'endDate'], 'YYYY-MM-DD']],
showResetButton: true, showResetButton: true,
submitButtonOptions: { submitButtonOptions: {
text: '搜索', text: '搜索',
@ -150,6 +195,7 @@
}, },
}, },
}, },
immediate: false,
beforeFetch: (params) => { beforeFetch: (params) => {
return { ...params, FormId: formIdComputedRef.value, PK: 'id',page:params.limit }; return { ...params, FormId: formIdComputedRef.value, PK: 'id',page:params.limit };
}, },
@ -209,7 +255,7 @@
path: '/dayPlan/Demand/createForm', path: '/dayPlan/Demand/createForm',
query: { query: {
formPath: 'dayPlan/Demand', formPath: 'dayPlan/Demand',
formName: formName, formName: "查看"+formName,
formId:currentRoute.value.meta.formId, formId:currentRoute.value.meta.formId,
id: record.id, id: record.id,
type:'view' type:'view'
@ -237,7 +283,7 @@
path: '/dayPlan/Demand/createForm', path: '/dayPlan/Demand/createForm',
query: { query: {
formPath: 'dayPlan/Demand', formPath: 'dayPlan/Demand',
formName: formName, formName: "新建"+formName,
formId:currentRoute.value.meta.formId formId:currentRoute.value.meta.formId
} }
}); });
@ -249,7 +295,7 @@
path: '/dayPlan/Demand/createForm', path: '/dayPlan/Demand/createForm',
query: { query: {
formPath: 'dayPlan/Demand', formPath: 'dayPlan/Demand',
formName: formName, formName: "编辑"+formName,
formId:currentRoute.value.meta.formId, formId:currentRoute.value.meta.formId,
id: record.id, id: record.id,
type: 'edit' type: 'edit'
@ -262,7 +308,7 @@
path: '/dayPlan/Demand/createForm', path: '/dayPlan/Demand/createForm',
query: { query: {
formPath: 'dayPlan/Demand', formPath: 'dayPlan/Demand',
formName: formName, formName: "对比"+formName,
formId:currentRoute.value.meta.formId, formId:currentRoute.value.meta.formId,
id: record.id, id: record.id,
type: 'compare' type: 'compare'
@ -394,6 +440,7 @@
reload() reload()
} }
onMounted(() => { onMounted(() => {
reload({ searchInfo: { startDate: defaultDate.value[0], endDate: defaultDate.value[1] }});
if (schemaIdComputedRef.value) { if (schemaIdComputedRef.value) {
bus.on(FLOW_PROCESSED, handleRefresh); bus.on(FLOW_PROCESSED, handleRefresh);
@ -557,7 +604,10 @@
}; };
</script> </script>
<style lang="less"> <style lang="less">
.Demandtyle .advanceRow> div:nth-of-type(3){ .Demandtyle .cusSearchForm .advanceRow> div:nth-of-type(3){
display: none;
}
.Demandtyle .advanceRow> div:nth-of-type(2){
display: none; display: none;
} }
// .Demandtyle .cusSearchForm .advanceRow> div:nth-of-type(2){ // .Demandtyle .cusSearchForm .advanceRow> div:nth-of-type(2){
@ -574,22 +624,32 @@
.hide{ .hide{
display: none !important; display: none !important;
} }
:deep( .ant-col-8:nth-child(2)) { :deep( .ant-col-8:nth-child(3)) {
width: 320px !important; width: 320px !important;
max-width: 320px !important;; max-width: 320px !important;;
} }
:deep(.ant-col-8:nth-child(2) .ant-form-item-label) { :deep(.ant-col-8:nth-child(3) .ant-form-item-label) {
width: 160px !important; width: 160px !important;
} }
:deep(.ant-col-8:nth-child(2) .ant-form-item-label .ant-form-item-no-colon) { :deep(.ant-col-8:nth-child(3) .ant-form-item-label .ant-form-item-no-colon) {
width: 160px !important; width: 160px !important;
max-width: 160px !important; max-width: 160px !important;
} }
:deep( .ant-col-8:nth-child(1)) { :deep( .ant-col-8:nth-child(1)) {
width: 220px !important; width: 320px !important;
max-width: 220px !important;; max-width: 320px !important;;
} }
:deep(.ant-col-8:nth-child(1) .ant-form-item-label) { :deep(.ant-col-8:nth-child(1) .ant-form-item-label) {
width: 70px !important; width: 80px !important;
} }
// :deep( .ant-col-8:nth-child(4)) {
// width: 320px !important;
// max-width: 320px !important;;
// }
// :deep(.ant-col-8:nth-child(4) .ant-form-item-label) {
// width: 80px !important;
// }
</style> </style>

View File

@ -10,37 +10,53 @@
<a-form-item label="合同" name="kName" :class="diffResultList.includes('kName') ? 'changeStyle': ''">{{ formState.kName}}</a-form-item> <a-form-item label="合同" name="kName" :class="diffResultList.includes('kName') ? 'changeStyle': ''">{{ formState.kName}}</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="合同量(吉焦)" name="qtyContractGj" :class="diffResultList.includes('qtyContractGj') ? 'changeStyle': ''">{{ formState.qtyContractGj }}</a-form-item> <a-form-item label="合同量(吉焦)" name="qtyContractGj" :class="diffResultList.includes('qtyContractGj') ? 'changeStyle': ''">
{{ Number.format(Number.parse(formState.qtyContractGj ||0),numFormat)}}
</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="合同量(万方)" name="qtyContractM3" :class="diffResultList.includes('qtyContractM3') ? 'changeStyle': ''">{{ formState.qtyContractM3 }}</a-form-item> <a-form-item label="合同量(万方)" name="qtyContractM3" :class="diffResultList.includes('qtyContractM3') ? 'changeStyle': ''">
{{ Number.format(Number.parse(formState.qtyContractM3||0 ),numFormat)}}
</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="月合同量执行进度%" name="rateK" :class="diffResultList.includes('rateK') ? 'changeStyle': ''">{{ formState.rateK }}</a-form-item> <a-form-item label="月合同量执行进度%" name="rateK" :class="diffResultList.includes('rateK') ? 'changeStyle': ''">{{ formState.rateK }}</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="计划量(吉焦)" name="qtyPlanGj" :class="diffResultList.includes('qtyPlanGj') ? 'changeStyle': ''">{{ formState.qtyPlanGj }}</a-form-item> <a-form-item label="计划量(吉焦)" name="qtyPlanGj" :class="diffResultList.includes('qtyPlanGj') ? 'changeStyle': ''">
{{ Number.format(Number.parse(formState.qtyPlanGj||0 ),numFormat)}}
</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="计划量(万方)" name="qtyPlanM3" :class="diffResultList.includes('qtyPlanM3') ? 'changeStyle': ''">{{ formState.qtyPlanM3 }}</a-form-item> <a-form-item label="计划量(万方)" name="qtyPlanM3" :class="diffResultList.includes('qtyPlanM3') ? 'changeStyle': ''">
{{ Number.format(Number.parse(formState.qtyPlanM3||0 ),numFormat)}}
</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="月计划量执行进度%" name="rateMp" :class="diffResultList.includes('rateMp') ? 'changeStyle': ''">{{ formState.rateMp }}</a-form-item> <a-form-item label="月计划量执行进度%" name="rateMp" :class="diffResultList.includes('rateMp') ? 'changeStyle': ''">{{ formState.rateMp }}</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="指定量(吉焦)" name="qtyDemandGj" :class="diffResultList.includes('qtyDemandGj') ? 'changeStyle': ''">{{ formState.qtyDemandGj }}</a-form-item> <a-form-item label="指定量(吉焦)" name="qtyDemandGj" :class="diffResultList.includes('qtyDemandGj') ? 'changeStyle': ''">
{{ Number.format(Number.parse(formState.qtyDemandGj||0 ),numFormat)}}
</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="指定量(万方)" name="qtyDemandM3" :class="diffResultList.includes('qtyDemandM3') ? 'changeStyle': ''">{{ formState.qtyDemandM3 }}</a-form-item> <a-form-item label="指定量(万方)" name="qtyDemandM3" :class="diffResultList.includes('qtyDemandM3') ? 'changeStyle': ''">
{{ Number.format(Number.parse(formState.qtyDemandM3||0 ),numFormat)}}
</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="月时间进度%" name="rateS" :class="diffResultList.includes('rateS') ? 'changeStyle': ''">{{ formState.rateS }}</a-form-item> <a-form-item label="月时间进度%" name="rateS" :class="diffResultList.includes('rateS') ? 'changeStyle': ''">{{ formState.rateS }}</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="批复量(吉焦)" name="qtySalesGj" :class="diffResultList.includes('qtySalesGj') ? 'changeStyle': ''">{{ formState.qtySalesGj }}</a-form-item> <a-form-item label="批复量(吉焦)" name="qtySalesGj" :class="diffResultList.includes('qtySalesGj') ? 'changeStyle': ''">
{{ Number.format(Number.parse(formState.qtySalesGj||0 ),numFormat)}}
</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="批复量(万方)" name="qtySalesM3" :class="diffResultList.includes('qtySalesM3') ? 'changeStyle': ''">{{ formState.qtySalesM3 }}</a-form-item> <a-form-item label="批复量(万方)" name="qtySalesM3" :class="diffResultList.includes('qtySalesM3') ? 'changeStyle': ''">
{{ Number.format(Number.parse(formState.qtySalesM3||0),numFormat)}}
</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="比值(方/吉焦)" name="rateM3Gj" :class="diffResultList.includes('rateM3Gj') ? 'changeStyle': ''">{{ formState.rateM3Gj }}</a-form-item> <a-form-item label="比值(方/吉焦)" name="rateM3Gj" :class="diffResultList.includes('rateM3Gj') ? 'changeStyle': ''">{{ formState.rateM3Gj }}</a-form-item>
@ -75,7 +91,7 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
<a-table style="width: 100%" :columns="columns" :data-source="dataList" :pagination="false" :scroll="{x: 100}"> <a-table style="width: 100%" :columns="columns" :data-source="dataList" :pagination="false" :scroll="{x: 300}">
<template #bodyCell="{ column, record, index }"> <template #bodyCell="{ column, record, index }">
<template v-if="column.dataIndex === 'pointUpName'"> <template v-if="column.dataIndex === 'pointUpName'">
<div :class="diffResultList.includes('lngPngApproPurList[' + index + '].pointUpName') ? 'changeStyle': ''">{{ record.pointUpName }}</div> <div :class="diffResultList.includes('lngPngApproPurList[' + index + '].pointUpName') ? 'changeStyle': ''">{{ record.pointUpName }}</div>
@ -87,18 +103,28 @@
<div :class="diffResultList.includes('lngPngApproPurList[' + index + '].kpName') ? 'changeStyle': ''">{{ record.kpName }}</div> <div :class="diffResultList.includes('lngPngApproPurList[' + index + '].kpName') ? 'changeStyle': ''">{{ record.kpName }}</div>
</template> </template>
<template v-if="column.dataIndex === 'qtyDemandGj'"> <template v-if="column.dataIndex === 'qtyDemandGj'">
<div :class="diffResultList.includes('lngPngApproPurList[' + index + '].qtyDemandGj') ? 'changeStyle': ''">{{ record.qtyDemandGj }}</div> <div :class="diffResultList.includes('lngPngApproPurList[' + index + '].qtyDemandGj') ? 'changeStyle': ''">
{{ Number.format(Number.parse(record.qtyDemandGj ),numFormat)}}
</div>
</template> </template>
<template v-if="column.dataIndex === 'qtyDemandM3'"> <template v-if="column.dataIndex === 'qtyDemandM3'">
<div :class="diffResultList.includes('lngPngApproPurList[' + index + '].qtyDemandM3') ? 'changeStyle': ''">{{ record.qtyDemandM3 }}</div> <div :class="diffResultList.includes('lngPngApproPurList[' + index + '].qtyDemandM3') ? 'changeStyle': ''">
{{ Number.format(Number.parse(record.qtyDemandM3 ),numFormat)}}
</div>
</template> </template>
<template v-if="column.dataIndex === 'qtySalesGj'"> <template v-if="column.dataIndex === 'qtySalesGj'">
<a-input-number :class="diffResultList.includes('lngPngApproPurList[' + index + '].qtySalesGj') ? 'changeStyle': ''" <div v-if="record.alterSign=='D' || disable" :class="diffResultList.includes('lngPngApproPurList[' + index + '].qtySalesGj') ? 'changeStyle': ''">
v-model:value="record.qtySalesGj" :disabled="record.alterSign=='D' || disable" :min="0" @change="numChange" style="width: 100%" /> {{ Number.format(Number.parse(record.qtySalesGj || 0),numFormat) }}
</div>
<a-input-number v-else :class="diffResultList.includes('lngPngApproPurList[' + index + '].qtySalesGj') ? 'changeStyle': ''"
v-model:value="record.qtySalesGj" :precision="3" :formatter="value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')" :disabled="record.alterSign=='D' || disable" :min="0" @change="numChange" style="width: 100%" />
</template> </template>
<template v-if="column.dataIndex === 'qtySalesM3'"> <template v-if="column.dataIndex === 'qtySalesM3'">
<a-input-number :class="diffResultList.includes('lngPngApproPurList[' + index + '].qtySalesM3') ? 'changeStyle': ''" <div v-if="record.alterSign=='D' || disable" :class="diffResultList.includes('lngPngApproPurList[' + index + '].qtySalesM3') ? 'changeStyle': ''">
v-model:value="record.qtySalesM3" :disabled="record.alterSign=='D' || disable" :min="0" @change="numChange" style="width: 100%" /> {{ Number.format(Number.parse(record.qtySalesM3 || 0),numFormat) }}
</div>
<a-input-number v-else :class="diffResultList.includes('lngPngApproPurList[' + index + '].qtySalesM3') ? 'changeStyle': ''"
v-model:value="record.qtySalesM3" :precision="3" :formatter="value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')" :disabled="record.alterSign=='D' || disable" :min="0" @change="numChange" style="width: 100%" />
</template> </template>
<template v-if="column.dataIndex === 'note'" > <template v-if="column.dataIndex === 'note'" >
<div v-if="record.alterSign=='D' || disable" :class="diffResultList.includes('lngPngApproPurList[' + index + '].note') ? 'changeStyle': ''">{{ record.note }}</div> <div v-if="record.alterSign=='D' || disable" :class="diffResultList.includes('lngPngApproPurList[' + index + '].note') ? 'changeStyle': ''">{{ record.note }}</div>
@ -120,6 +146,7 @@
changeList: [] changeList: []
}); });
const numFormat = "###,###,###,###,###,###.000"
const columns= ref([ const columns= ref([
{ title: t('序号'), dataIndex: 'index', key: 'index', customRender: (column) => `${column.index + 1}` ,width: 100}, { title: t('序号'), dataIndex: 'index', key: 'index', customRender: (column) => `${column.index + 1}` ,width: 100},
{ title: t('上载点'), dataIndex: 'pointUpName', width:400}, { title: t('上载点'), dataIndex: 'pointUpName', width:400},
@ -127,8 +154,8 @@
{ title: t('采购合同'), dataIndex: 'kpName', width: 400}, { title: t('采购合同'), dataIndex: 'kpName', width: 400},
{ title: t('指定量(吉焦)'), dataIndex: 'qtyDemandGj', width: 300}, { title: t('指定量(吉焦)'), dataIndex: 'qtyDemandGj', width: 300},
{ title: t('指定量(万方)'), dataIndex: 'qtyDemandM3', width: 200}, { title: t('指定量(万方)'), dataIndex: 'qtyDemandM3', width: 200},
{ title: t('批复量(吉焦)'), dataIndex: 'qtySalesGj', width: 200}, { title: t('批复量(吉焦)'), dataIndex: 'qtySalesGj', width: 250},
{ title: t('批复量(万方)'), dataIndex: 'qtySalesM3', width: 200}, { title: t('批复量(万方)'), dataIndex: 'qtySalesM3', width: 250},
{ title: t('备注'), dataIndex: 'note', width: 300}, { title: t('备注'), dataIndex: 'note', width: 300},
]); ]);
const formState = ref() const formState = ref()
@ -141,8 +168,8 @@
num+=(Number(v.qtySalesGj) || 0) num+=(Number(v.qtySalesGj) || 0)
num1+=(Number(v.qtySalesM3) || 0) num1+=(Number(v.qtySalesM3) || 0)
}) })
formState.value.qtySalesGj = num formState.value.qtySalesGj = num.toFixed(3)
formState.value.qtySalesM3 = num1 formState.value.qtySalesM3 = num1.toFixed(3)
} }
function getFormValue () { function getFormValue () {
let obj = { let obj = {

View File

@ -6,7 +6,21 @@ export const formConfig = {
}; };
export const searchFormSchema: FormSchema[] = [ export const searchFormSchema: FormSchema[] = [
{
field: 'cuCode',
label: '客户名称',
component: 'Input',
},
{
field: 'kName',
label: '合同名称',
component: 'Input',
},
{
field: 'pointDelyName',
label: '下载点',
component: 'Input',
},
{ {
field: 'datePlan', field: 'datePlan',
label: '计划日期', label: '计划日期',
@ -17,11 +31,7 @@ export const searchFormSchema: FormSchema[] = [
getPopupContainer: () => document.body, getPopupContainer: () => document.body,
}, },
}, },
{
field: 'cuCode',
label: '客户名称/简称/编码',
component: 'Input',
},
{ {
field: 'approCode', field: 'approCode',
label: '审批状态', label: '审批状态',
@ -215,7 +225,7 @@ export const columns: BasicColumn[] = [
}, },
{ {
dataIndex: 'poinDelyName', dataIndex: 'pointDelyName',
title: '下载点', title: '下载点',
componentType: 'input', componentType: 'input',
align: 'left', align: 'left',

View File

@ -15,6 +15,18 @@
</template> </template>
</template> </template>
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.dataIndex === 'qtyDemandGj'">
{{ Number.format(Number.parse(record.qtyDemandGj),numFormat) }}
</template>
<template v-if="column.dataIndex === 'qtyDemandM3'">
{{ Number.format(Number.parse(record.qtyDemandM3),numFormat) }}
</template>
<template v-if="column.dataIndex === 'qtySalesGj'">
{{ Number.format(Number.parse(record.qtySalesGj),numFormat) }}
</template>
<template v-if="column.dataIndex === 'qtySalesM3'">
{{ Number.format(Number.parse(record.qtySalesM3),numFormat) }}
</template>
<template v-if="column.dataIndex === 'approName'"> <template v-if="column.dataIndex === 'approName'">
<a @click="btnCheck(record)">{{ record.approName }}</a> <a @click="btnCheck(record)">{{ record.approName }}</a>
</template> </template>
@ -61,7 +73,9 @@
import useEventBus from '/@/hooks/event/useEventBus'; import useEventBus from '/@/hooks/event/useEventBus';
import { cloneDeep } from 'lodash-es'; import { cloneDeep } from 'lodash-es';
import { DataFormat, FormatOption, DATE_FORMAT, FormatType } from '/@/utils/dataFormat';
const numFormat = "###,###,###,###,###,###.000"
const { bus, CREATE_FLOW, FLOW_PROCESSED, FORM_LIST_MODIFIED } = useEventBus(); const { bus, CREATE_FLOW, FLOW_PROCESSED, FORM_LIST_MODIFIED } = useEventBus();
const { notification } = useMessage(); const { notification } = useMessage();
@ -115,7 +129,8 @@
const [registerModal, { openModal}] = useModal(); const [registerModal, { openModal}] = useModal();
const [registerApproStatus, { openModal: openModalApproStatus}] = useModal(); const [registerApproStatus, { openModal: openModalApproStatus}] = useModal();
let formName='管道气销售审批'; // let formName='管道气销售审批';
const formName=currentRoute.value.meta?.title;
let curPath = 'dayPlan/PngAppro/index' let curPath = 'dayPlan/PngAppro/index'
const [registerTable, { reload, clearSelectedRowKeys, setTableData }] = useTable({ const [registerTable, { reload, clearSelectedRowKeys, setTableData }] = useTable({
title: '' || (formName + '列表'), title: '' || (formName + '列表'),
@ -204,7 +219,7 @@
path: '/dayPlan/PngAppro/createForm', path: '/dayPlan/PngAppro/createForm',
query: { query: {
formPath: curPath, formPath: curPath,
formName: formName, formName: "查看"+formName,
formId:currentRoute.value.meta.formId, formId:currentRoute.value.meta.formId,
id: record.id, id: record.id,
type: 'view' type: 'view'
@ -247,7 +262,7 @@
path: '/dayPlan/PngAppro/createForm', path: '/dayPlan/PngAppro/createForm',
query: { query: {
formPath: curPath, formPath: curPath,
formName: formName, formName: "审批"+formName,
formId:currentRoute.value.meta.formId, formId:currentRoute.value.meta.formId,
id: record.id id: record.id
} }
@ -258,7 +273,7 @@
path: '/dayPlan/PngAppro/createForm', path: '/dayPlan/PngAppro/createForm',
query: { query: {
formPath: curPath, formPath: curPath,
formName: formName+'对比', formName: '对比'+formName,
formId:currentRoute.value.meta.formId, formId:currentRoute.value.meta.formId,
id: record.demandOrgId, id: record.demandOrgId,
type: 'compare' type: 'compare'
@ -444,24 +459,31 @@
:deep(.ant-table-selection-col) { :deep(.ant-table-selection-col) {
width: 50px; width: 50px;
} }
:deep( .ant-col-8:nth-child(1)) { :deep( .ant-col-8:nth-child(4)) {
width: 320px !important; width: 320px !important;
max-width: 320px !important;; max-width: 320px !important;;
} }
:deep(.ant-col-8:nth-child(1) .ant-form-item-label) { :deep(.ant-col-8:nth-child(4) .ant-form-item-label) {
width: 80px !important; width: 80px !important;
} }
:deep( .ant-col-8:nth-child(2)) { :deep( .w-full .ant-col-8:nth-child(1)) {
width: 360px !important; width: 320px !important;
max-width: 320px !important;; max-width: 320px !important;;
} }
:deep(.ant-col-8:nth-child(2) .ant-form-item-label) { :deep(.w-full .ant-col-8:nth-child(1) .ant-form-item-label) {
width: 160px !important; width: 80px !important;
}
:deep(.ant-col-8:nth-child(2) .ant-form-item-label .ant-form-item-no-colon) {
width: 160px !important;
max-width: 160px !important;
} }
// :deep( .ant-col-8:nth-child(2)) {
// width: 360px !important;
// max-width: 320px !important;;
// }
// :deep(.ant-col-8:nth-child(2) .ant-form-item-label) {
// width: 160px !important;
// }
// :deep(.ant-col-8:nth-child(2) .ant-form-item-label .ant-form-item-no-colon) {
// width: 160px !important;
// max-width: 160px !important;
// }
.show{ .show{
display: flex; display: flex;
} }

View File

@ -28,12 +28,26 @@ export const columns: BasicColumn[] = [
width: 100, width: 100,
sorter: true, sorter: true,
}, },
{
dataIndex: 'cuSname',
title: '客户名称',
componentType: 'input',
align: 'left',
sorter: true,
},
{
dataIndex: 'comName,',
title: '交易主体',
componentType: 'input',
align: 'left',
sorter: true,
},
{ {
dataIndex: 'daysSign', dataIndex: 'daysSign',
title: '当日/次日', title: '当日/次日',
componentType: 'input', componentType: 'input',
align: 'left', align: 'left',
width: 100,
sorter: true, sorter: true,
}, },
{ {
@ -44,12 +58,20 @@ export const columns: BasicColumn[] = [
sorter: true, sorter: true,
}, },
{
dataIndex: 'qtyGjAll',
title: '全部上报量(吉焦)',
componentType: 'input',
align: 'left',
sorter: true,
},
{ {
dataIndex: 'qtyGjGd', dataIndex: 'qtyGjGd',
title: '待管道审批量(吉焦)', title: '待管道审批量(吉焦)',
componentType: 'input', componentType: 'input',
align: 'left', align: 'left',
width: 170,
sorter: true, sorter: true,
}, },
@ -67,7 +89,7 @@ export const columns: BasicColumn[] = [
title: '管道已审批量(吉焦)', title: '管道已审批量(吉焦)',
componentType: 'input', componentType: 'input',
align: 'left', align: 'left',
width: 170,
sorter: true, sorter: true,
}, },

View File

@ -15,6 +15,18 @@
</template> </template>
</template> </template>
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.dataIndex === 'qtyGjAll'">
{{ Number.format(Number.parse(record.qtyGjAll),numFormat) }}
</template>
<template v-if="column.dataIndex === 'qtyGjGd'">
{{ Number.format(Number.parse(record.qtyGjGd),numFormat) }}
</template>
<template v-if="column.dataIndex === 'qtyGjXs'">
{{ Number.format(Number.parse(record.qtyGjXs),numFormat) }}
</template>
<template v-if="column.dataIndex === 'qtyGjYsp'">
{{ Number.format(Number.parse(record.qtyGjYsp),numFormat) }}
</template>
<template v-if="column.dataIndex === 'action'"> <template v-if="column.dataIndex === 'action'">
<TableAction :actions="getActions(record)" /> <TableAction :actions="getActions(record)" />
</template> </template>
@ -52,7 +64,7 @@
import rejectReplyModal from '/@/components/common/rejectReplyModal.vue'; import rejectReplyModal from '/@/components/common/rejectReplyModal.vue';
const { bus, CREATE_FLOW, FLOW_PROCESSED, FORM_LIST_MODIFIED } = useEventBus(); const { bus, CREATE_FLOW, FLOW_PROCESSED, FORM_LIST_MODIFIED } = useEventBus();
const numFormat = "###,###,###,###,###,###.000"
const { notification } = useMessage(); const { notification } = useMessage();
const { t } = useI18n(); const { t } = useI18n();
defineEmits(['register']); defineEmits(['register']);
@ -95,7 +107,8 @@
const schemaIdComputedRef = ref(); const schemaIdComputedRef = ref();
schemaIdComputedRef.value = currentRoute.value.meta.schemaId schemaIdComputedRef.value = currentRoute.value.meta.schemaId
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const formName='管道气管道审批'; // const formName='管道气管道审批';
const formName=currentRoute.value.meta?.title;
const [registerTable, { reload, clearSelectedRowKeys }] = useTable({ const [registerTable, { reload, clearSelectedRowKeys }] = useTable({
title: '' || (formName + '列表'), title: '' || (formName + '列表'),
api: getLngPngApproPage, api: getLngPngApproPage,

View File

@ -15,6 +15,18 @@
</template> </template>
</template> </template>
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.dataIndex === 'qtyGjAll'">
{{ Number.format(Number.parse(record.qtyGjAll),numFormat) }}
</template>
<template v-if="column.dataIndex === 'qtyGjJsz'">
{{ Number.format(Number.parse(record.qtyGjJsz),numFormat) }}
</template>
<template v-if="column.dataIndex === 'qtyGjXs'">
{{ Number.format(Number.parse(record.qtyGjXs),numFormat) }}
</template>
<template v-if="column.dataIndex === 'qtyGjYsp'">
{{ Number.format(Number.parse(record.qtyGjYsp),numFormat) }}
</template>
<template v-if="column.dataIndex === 'action'"> <template v-if="column.dataIndex === 'action'">
<TableAction :actions="getActions(record)" /> <TableAction :actions="getActions(record)" />
</template> </template>
@ -51,9 +63,9 @@
import useEventBus from '/@/hooks/event/useEventBus'; import useEventBus from '/@/hooks/event/useEventBus';
import { cloneDeep } from 'lodash-es'; import { cloneDeep } from 'lodash-es';
import rejectReplyModal from '/@/components/common/rejectReplyModal.vue'; import rejectReplyModal from '/@/components/common/rejectReplyModal.vue';
import dayjs from 'dayjs';
const { bus, CREATE_FLOW, FLOW_PROCESSED, FORM_LIST_MODIFIED } = useEventBus(); const { bus, CREATE_FLOW, FLOW_PROCESSED, FORM_LIST_MODIFIED } = useEventBus();
const defaultDate = ref([dayjs().format('YYYY-MM-DD'),dayjs().add(1, 'day').format('YYYY-MM-DD')]);
const { notification } = useMessage(); const { notification } = useMessage();
const { t } = useI18n(); const { t } = useI18n();
defineEmits(['register']); defineEmits(['register']);
@ -63,7 +75,7 @@
const filterColumns = cloneDeep(filterColumnAuth(columns)); const filterColumns = cloneDeep(filterColumnAuth(columns));
const customConfigColums =ref(filterColumns); const customConfigColums =ref(filterColumns);
const customSearchFormSchema =ref(searchFormSchema); const customSearchFormSchema =ref(searchFormSchema);
const numFormat = "###,###,###,###,###,###.000"
const tableRef = ref(); const tableRef = ref();
//所有按钮 //所有按钮
const buttons = ref([ const buttons = ref([
@ -96,7 +108,8 @@
const schemaIdComputedRef = ref(); const schemaIdComputedRef = ref();
schemaIdComputedRef.value = currentRoute.value.meta.schemaId schemaIdComputedRef.value = currentRoute.value.meta.schemaId
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const formName='管道气接收站审批'; // const formName='管道气接收站审批';
const formName=currentRoute.value.meta?.title;
const [registerTable, { reload, clearSelectedRowKeys }] = useTable({ const [registerTable, { reload, clearSelectedRowKeys }] = useTable({
title: '' || (formName + '列表'), title: '' || (formName + '列表'),
api: getLngPngApproPage, api: getLngPngApproPage,
@ -106,10 +119,23 @@
rowProps: { rowProps: {
gutter: 16, gutter: 16,
}, },
schemas: customSearchFormSchema, schemas: [
fieldMapToTime: [['datePlan', ['startDate', 'endDate'], 'YYYY-MM-DD HH:mm:ss ', true],], {
field: 'datePlan',
label: '计划日期',
component: 'RangePicker',
defaultValue: defaultDate.value,
componentProps: {
format: 'YYYY-MM-DD',
style: { width: '100%' },
getPopupContainer: () => document.body,
},
},
],
fieldMapToTime: [['datePlan', ['startDate', 'endDate'], 'YYYY-MM-DD'],],
showResetButton: true, showResetButton: true,
}, },
immediate: false,
beforeFetch: (params) => { beforeFetch: (params) => {
return { ...params, FormId: formIdComputedRef.value, PK: 'id',page: params.limit }; return { ...params, FormId: formIdComputedRef.value, PK: 'id',page: params.limit };
}, },
@ -308,7 +334,7 @@
} }
onMounted(() => { onMounted(() => {
reload({ searchInfo: { startDate: defaultDate.value[0], endDate: defaultDate.value[1] }});
if (schemaIdComputedRef.value) { if (schemaIdComputedRef.value) {
bus.on(FLOW_PROCESSED, handleRefresh); bus.on(FLOW_PROCESSED, handleRefresh);
bus.on(CREATE_FLOW, handleRefresh); bus.on(CREATE_FLOW, handleRefresh);
@ -390,4 +416,11 @@
.hide{ .hide{
display: none !important; display: none !important;
} }
:deep( .ant-col-8:nth-child(1)) {
width: 320px !important;
max-width: 320px !important;;
}
:deep(.ant-col-8:nth-child(1) .ant-form-item-label) {
width: 80px !important;
}
</style> </style>

View File

@ -67,7 +67,7 @@ export const columns: BasicColumn[] = [
componentType: 'input', componentType: 'input',
align: 'left', align: 'left',
ellipsis: true, ellipsis: true,
width: 200, width: 150,
sorter: true, sorter: true,
}, },
{ {
@ -86,7 +86,7 @@ export const columns: BasicColumn[] = [
componentType: 'input', componentType: 'input',
align: 'left', align: 'left',
ellipsis: true, ellipsis: true,
width: 200, width: 150,
sorter: true, sorter: true,
}, },
@ -171,7 +171,7 @@ export const columns: BasicColumn[] = [
sorter: true, sorter: true,
}, },
{ {
dataIndex: 'ksNmae', dataIndex: 'ksName',
title: '销售合同', title: '销售合同',
componentType: 'input', componentType: 'input',
align: 'left', align: 'left',

View File

@ -12,11 +12,17 @@
<searchForm @search="onSearch" @reset="onReset" ></searchForm> <searchForm @search="onSearch" @reset="onReset" ></searchForm>
<BasicTable @register="registerTable"> <BasicTable @register="registerTable">
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.dataIndex === 'qtySalesGj'">
{{ Number.format(Number.parse(record.qtySalesGj),numFormat) }}
</template>
<template v-if="column.dataIndex === 'qtyMeaGj'">
{{ Number.format(Number.parse(record.qtyMeaGj || 0),numFormat) }}
</template>
<template v-if="column.dataIndex === 'qtySalesM3'"> <template v-if="column.dataIndex === 'qtySalesM3'">
{{ NP.divide(Number(record.qtySalesM3), 10000) }} {{ Number.format(Number.parse(NP.divide(Number(record.qtySalesM3), 10000)),numFormat) }}
</template> </template>
<template v-if="column.dataIndex === 'qtyMeaM3'"> <template v-if="column.dataIndex === 'qtyMeaM3'">
{{ NP.divide(Number(record.qtyMeaM3), 10000) }} {{ Number.format(Number.parse(NP.divide(Number(record.qtyMeaM3), 10000)),numFormat) }}
</template> </template>
</template> </template>
</BasicTable> </BasicTable>
@ -43,7 +49,7 @@
import NP from 'number-precision'; import NP from 'number-precision';
const userStore = useUserStore(); const userStore = useUserStore();
const numFormat = "###,###,###,###,###,###.000"
const { bus, FORM_LIST_MODIFIED } = useEventBus(); const { bus, FORM_LIST_MODIFIED } = useEventBus();
const router = useRouter(); const router = useRouter();

View File

@ -26,19 +26,31 @@
</AButton> </AButton>
</div> </div>
</a-col> </a-col>
<a-col :span="6" v-if="isAdvanced"> <!-- <a-col :span="6" v-if="isAdvanced">
<a-form-item label="计划日期" name="reply" > <a-form-item label="计划日期" name="reply" >
<a-range-picker v-model:value="formState.datePlan" /> <a-range-picker v-model:value="formState.datePlan" />
</a-form-item> </a-form-item>
</a-col> </a-col> -->
<a-col :span="7" v-if="isAdvanced"> <a-col :span="6" v-if="isAdvanced">
<a-form-item label="上载点" name="pointUpName"> <a-form-item label="上载点" name="pointUpName">
<a-input-search v-model:value="formState.pointUpName" readonly placeholder="请选择上载点" @search="onSearchDownLoad('up')" /> <a-input v-model:value="formState.pointUpName" placeholder="请输入" />
<!-- <a-input-search v-model:value="formState.pointUpName" readonly placeholder="请选择上载点" @search="onSearchDownLoad('up')" /> -->
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="7" v-if="isAdvanced"> <a-col :span="7" v-if="isAdvanced">
<a-form-item label="下载点" name="pointDelyName"> <a-form-item label="下载点" name="pointDelyName">
<a-input-search v-model:value="formState.pointDelyName" readonly placeholder="请选择下载点" @search="onSearchDownLoad('dely')"/> <a-input v-model:value="formState.pointDelyName" placeholder="请输入" />
<!-- <a-input-search v-model:value="formState.pointDelyName" readonly placeholder="请选择下载点" @search="onSearchDownLoad('dely')"/> -->
</a-form-item>
</a-col>
<a-col :span="7" v-if="isAdvanced">
<a-form-item label="状态" name="statusCode">
<a-select v-model:value="formState.statusCode" :disabled="isDisable" placeholder="请选择" style="width: 100%" allow-clear >
<a-select-option v-for="item in statusList" :key="item.value" :value="item.value">
{{ item.label }}
</a-select-option>
</a-select>
<!-- <a-input-search v-model:value="formState.pointDelyName" readonly placeholder="请选择下载点" @search="onSearchDownLoad('dely')"/> -->
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
@ -80,6 +92,12 @@
wrapperCol: { span: 15 }, wrapperCol: { span: 15 },
} }
const isAdvanced = ref(false) const isAdvanced = ref(false)
const statusList = [
{label: '计量中', value: 'JLZ'},
{label: '结算中', value: 'JSZ'},
{label: '已结算', value: 'YJS'},
{label: '计量完成', value: 'JLWC'},
]
onMounted(() => { onMounted(() => {
@ -105,15 +123,13 @@
const onSearch = () => { const onSearch = () => {
let obj = { let obj = {
...formState.value, ...formState.value,
startDate: formState.value.datePlan ? dayjs(formState.value.datePlan[0]).format('YYYY-MM-DD') : '', // startDate: formState.value.datePlan ? dayjs(formState.value.datePlan[0]).format('YYYY-MM-DD') : '',
endDate: formState.value.datePlan ? dayjs(formState.value.datePlan[1]).format('YYYY-MM-DD') : '', // endDate: formState.value.datePlan ? dayjs(formState.value.datePlan[1]).format('YYYY-MM-DD') : '',
dateMeaStart: formState.value.dateMea ? dayjs(formState.value.dateMea[0]).format('YYYY-MM-DD') : '', dateMeaStart: formState.value.dateMea ? dayjs(formState.value.dateMea[0]).format('YYYY-MM-DD') : '',
dateMeaEnd: formState.value.dateMea ? dayjs(formState.value.dateMea[1]).format('YYYY-MM-DD') : '', dateMeaEnd: formState.value.dateMea ? dayjs(formState.value.dateMea[1]).format('YYYY-MM-DD') : '',
} }
delete obj.datePlan // delete obj.datePlan
delete obj.dateMea delete obj.dateMea
delete obj.pointUpName
delete obj.pointDelyName
emit('search', obj) emit('search', obj)
} }
const onReset = () => { const onReset = () => {

View File

@ -21,12 +21,23 @@
rowKey="id" :pagination="pagination" @row-dbClick="dbClickRow" :scroll="{x: 2000}"> rowKey="id" :pagination="pagination" @row-dbClick="dbClickRow" :scroll="{x: 2000}">
<template #bodyCell="{ column, record, index }"> <template #bodyCell="{ column, record, index }">
<template v-if="column.dataIndex === 'qtySalesGj'">
{{ Number.format(Number.parse(record.qtySalesGj),numFormat) }}
</template>
<template v-if="column.dataIndex === 'qtySalesM3'">
{{ Number.format(Number.parse(record.qtySalesM3),numFormat) }}
</template>
<template v-if="column.dataIndex === 'qtyMeaGj'"> <template v-if="column.dataIndex === 'qtyMeaGj'">
<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%" /> <a-input-number v-model:value="record.qtyMeaGj"
<div v-else>{{ record.qtyMeaGj }}</div> :precision="3" :formatter="value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')"
v-if="record.statusCode==='N'|| record.statusCode==='JLZ'" @change="numChange(record, index)" :min="0" style="width: 100%" />
<div v-else>{{ Number.format(Number.parse(record.qtyMeaGj),numFormat) }}</div>
</template> </template>
<template v-if="column.dataIndex === 'qtyMeaM3'"> <template v-if="column.dataIndex === 'qtyMeaM3'">
<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%" /> <a-input-number v-model:value="record.qtyMeaM3"
:precision="3" :formatter="value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')"
v-if="record.statusCode==='N'|| record.statusCode==='JLZ'" @change="numChange(record, index)" :min="0" style="width: 100%" />
<div v-else>{{ Number.format(Number.parse(record.qtyMeaM3),numFormat) }}</div>
</template> </template>
<template v-if="column.dataIndex === 'lngFileUploadList'"> <template v-if="column.dataIndex === 'lngFileUploadList'">
<div> <div>
@ -86,7 +97,7 @@
import NP from 'number-precision'; import NP from 'number-precision';
const { bus, CREATE_FLOW, FLOW_PROCESSED, FORM_LIST_MODIFIED } = useEventBus(); const { bus, CREATE_FLOW, FLOW_PROCESSED, FORM_LIST_MODIFIED } = useEventBus();
const numFormat = "###,###,###,###,###,###.000"
const { notification } = useMessage(); const { notification } = useMessage();
const { t } = useI18n(); const { t } = useI18n();
defineEmits(['register']); defineEmits(['register']);
@ -156,7 +167,8 @@
const tableName = 'PngMeasureSalesPur'; const tableName = 'PngMeasureSalesPur';
const columnName = 'PngMeasureSalesPur'; const columnName = 'PngMeasureSalesPur';
const formName='管道气采购计量'; // const formName='管道气采购计量';
const formName=currentRoute.value.meta?.title;
const loadData = async () => { const loadData = async () => {
loading.value = true; loading.value = true;
@ -218,7 +230,7 @@
path: '/dayPlan/PngMeasureSalesPur/createForm', path: '/dayPlan/PngMeasureSalesPur/createForm',
query: { query: {
formPath: 'dayPlan/PngMeasureSalesPur', formPath: 'dayPlan/PngMeasureSalesPur',
formName: formName, formName: "新建"+formName,
formId:currentRoute.value.meta.formId, formId:currentRoute.value.meta.formId,
type:'add' type:'add'
} }

View File

@ -112,7 +112,8 @@
const taskIdRef = ref(''); const taskIdRef = ref('');
const visibleFlowRecordModal = ref(false); const visibleFlowRecordModal = ref(false);
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const formName='客户'; // const formName='客户';
const formName=currentRoute.value.meta?.title;
const [registerTable, { reload, clearSelectedRowKeys }] = useTable({ const [registerTable, { reload, clearSelectedRowKeys }] = useTable({
title: '' || (formName + '列表'), title: '' || (formName + '列表'),
api: getLngCustomerPage, api: getLngCustomerPage,

View File

@ -58,7 +58,7 @@ export const columns: BasicColumn[] = [
{ {
dataIndex: 'dateFrom', dataIndex: 'dateFrom',
title: '始日期', title: '始日期',
componentType: 'date', componentType: 'date',
align: 'left', align: 'left',

View File

@ -88,7 +88,8 @@
const schemaIdComputedRef = ref(); const schemaIdComputedRef = ref();
schemaIdComputedRef.value = currentRoute.value.meta.schemaId schemaIdComputedRef.value = currentRoute.value.meta.schemaId
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const formName='客户组'; // const formName='客户组';
const formName=currentRoute.value.meta?.title;
const [registerTable, { reload, clearSelectedRowKeys }] = useTable({ const [registerTable, { reload, clearSelectedRowKeys }] = useTable({
title: '' || (formName + '列表'), title: '' || (formName + '列表'),
api: getLngCustomerGroupPage, api: getLngCustomerGroupPage,

View File

@ -90,7 +90,8 @@
const schemaIdComputedRef = ref(); const schemaIdComputedRef = ref();
schemaIdComputedRef.value = currentRoute.value.meta.schemaId schemaIdComputedRef.value = currentRoute.value.meta.schemaId
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const formName='评价体系'; // const formName='评价体系';
const formName=currentRoute.value.meta?.title;
const [registerTable, { reload, clearSelectedRowKeys }] = useTable({ const [registerTable, { reload, clearSelectedRowKeys }] = useTable({
title: '' || (formName + '列表'), title: '' || (formName + '列表'),
api: getLngGradeSystemPage, api: getLngGradeSystemPage,

View File

@ -115,7 +115,8 @@
const taskIdRef = ref(''); const taskIdRef = ref('');
const visibleFlowRecordModal = ref(false); const visibleFlowRecordModal = ref(false);
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const formName='客户评价'; // const formName='客户评价';
const formName=currentRoute.value.meta?.title;
const [registerTable, { reload, clearSelectedRowKeys }] = useTable({ const [registerTable, { reload, clearSelectedRowKeys }] = useTable({
title: '' || (formName + '列表'), title: '' || (formName + '列表'),
api: getLngScorePage, api: getLngScorePage,

View File

@ -112,7 +112,8 @@
const taskIdRef = ref(''); const taskIdRef = ref('');
const visibleFlowRecordModal = ref(false); const visibleFlowRecordModal = ref(false);
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const formName='供应商评价'; // const formName='供应商评价';
const formName=currentRoute.value.meta?.title;
const [registerTable, { reload, clearSelectedRowKeys }] = useTable({ const [registerTable, { reload, clearSelectedRowKeys }] = useTable({
title: '' || (formName + '列表'), title: '' || (formName + '列表'),
api: getLngScorePage, api: getLngScorePage,

View File

@ -110,7 +110,8 @@
const taskIdRef = ref(''); const taskIdRef = ref('');
const visibleFlowRecordModal = ref(false); const visibleFlowRecordModal = ref(false);
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const formName='供应商'; // const formName='供应商';
const formName=currentRoute.value.meta?.title;
const [registerTable, { reload, clearSelectedRowKeys }] = useTable({ const [registerTable, { reload, clearSelectedRowKeys }] = useTable({
title: '' || (formName + '列表'), title: '' || (formName + '列表'),
api: getLngSupplierPage, api: getLngSupplierPage,