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';
enum Api {
Page = '/contract/contractFact/page',
// Page = '/magic-api/contract/lngContractFact/page',
// Page = '/contract/contractFact/page',
Page = '/magic-api/contract/lngContractFact/page',
List = '/contract/contractFact/list',
Info = '/contract/contractFact/info',
LngContractFact = '/contract/contractFact',

View File

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

View File

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

View File

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

View File

@ -40,13 +40,22 @@
</a-select>
</template>
<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 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 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 v-if="column.dataIndex === 'zfbyTypeCode'">
<a-select v-model:value="record.zfbyTypeCode" :disabled="disabled" style="width: 100%" allow-clear>
@ -55,6 +64,12 @@
</a-select-option>
</a-select>
</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'">
<a-input-number v-model:value="record.zfbyValue" :disabled="disabled" :min="0" style="width: 100%" />
</template>
@ -79,6 +94,7 @@
import dayjs from 'dayjs';
const router = useRouter();
const numFormat = "###,###,###,###,###,###.000"
const { t } = useI18n();
const dataListContractAgree = ref([])
const columns= ref([
@ -155,21 +171,22 @@
const numCount1 = (record) => {
// 月气量(吉焦) =月气量(方)qty_m3_month*rate_m3_gj (比值(方/吉焦)
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) => {
// 月气量(方) = 月气量(吉焦) qty_gj_month/rate_m3_gj/10000 显示时字段值/10000保存时页面值*10000
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) => {
// 日气量(吉焦) = 月气量(吉焦)qty_gj_month/开始日期到结束日期的天数;计算结果保留整数
const days = dayjs(record.dateTo).diff(dayjs(record.dateFrom), 'day');
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
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) => {
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 visibleFlowRecordModal = ref(false);
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 [registerTable, { reload, getForm }] = useTable({
title: '' || (formName + '列表'),
@ -168,7 +169,7 @@
},
}
],
fieldMapToTime: [['dateAppro', ['startDate', 'endDate'], 'YYYY-MM-DD ', true],],
fieldMapToTime: [['dateAppro', ['startDate', 'endDate'], 'YYYY-MM-DD '],],
showResetButton: true,
},
immediate: false,

View File

@ -21,6 +21,24 @@ export const searchFormSchema: FormSchema[] = [
labelField: 'name',
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,
},
},
@ -49,7 +67,7 @@ export const columns: BasicColumn[] = [
title: '关联类别',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
{
@ -57,7 +75,7 @@ export const columns: BasicColumn[] = [
title: '合同类别',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -66,7 +84,7 @@ export const columns: BasicColumn[] = [
title: '二级类别',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -75,7 +93,7 @@ export const columns: BasicColumn[] = [
title: '相对方数量',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -93,7 +111,7 @@ export const columns: BasicColumn[] = [
title: '合同期限',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -102,7 +120,7 @@ export const columns: BasicColumn[] = [
title: '有效期开始',
componentType: 'date',
align: 'left',
width: 120,
sorter: true,
},
@ -111,7 +129,7 @@ export const columns: BasicColumn[] = [
title: '有效期结束',
componentType: 'date',
align: 'left',
width: 120,
sorter: true,
},
@ -120,7 +138,7 @@ export const columns: BasicColumn[] = [
title: '币种',
componentType: 'select',
align: 'left',
width: 100,
sorter: true,
},
{
@ -146,7 +164,7 @@ export const columns: BasicColumn[] = [
title: '业务联系人',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -155,7 +173,7 @@ export const columns: BasicColumn[] = [
title: '业务部门',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -164,7 +182,7 @@ export const columns: BasicColumn[] = [
title: '状态',
componentType: 'input',
align: 'left',
width: 100,
sorter: true,
},

View File

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

View File

@ -17,6 +17,43 @@ export const searchFormSchema: FormSchema[] = [
label: '供应商',
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[] = [

View File

@ -112,7 +112,8 @@
const taskIdRef = ref('');
const visibleFlowRecordModal = ref(false);
const [registerModal, { openModal }] = useModal();
const formName='国内管道气采购';
// const formName='国内管道气采购';
const formName=currentRoute.value.meta?.title;
const [registerTable, { reload, }] = useTable({
title: '' || (formName + '列表'),
api: getLngContractPage,
@ -496,13 +497,7 @@
:deep(.ant-table-selection-col) {
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{
display: flex;
}

View File

@ -15,7 +15,30 @@ export const searchFormSchema: FormSchema[] = [
field: 'cpName',
label: '客户',
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[] = [
@ -88,7 +111,7 @@ export const columns: BasicColumn[] = [
title: '是否托运',
componentType: 'input',
align: 'left',
width: 120,
width: 100,
sorter: true,
},

View File

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

View File

@ -22,37 +22,53 @@
</a-form-item>
</a-col>
<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 :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 :span="8">
<!-- <a-col :span="8">
<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':''">{{ formState.qtyPlanGj }}</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="计划量(万方)" name="qtyPlanM3" :class="diffResultList.includes('qtyPlanM3')?'changeStyle':''">{{ formState.qtyPlanM3 }}</a-form-item>
</a-col>
</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 :span="8">
<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 :span="8">
<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 :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 :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-col :span="8">
<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 :span="8">
<a-form-item label="批复量(吉焦)" name="qtySalesGj" :class="diffResultList.includes('qtySalesGj')?'changeStyle':''">{{ formState.qtySalesGj }}</a-form-item>
</a-col>
<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 :span="8">
<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>
</template>
<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 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 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 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%" />
<template v-if="column.dataIndex === 'qtyDemandM3'">
<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 v-if="column.dataIndex === 'note'">
<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 NP from 'number-precision';
const numFormat = "###,###,###,###,###,###.000"
const userStore = useUserStore();
const userInfo = userStore.getUserInfo;
const router = useRouter();
@ -189,27 +218,31 @@
formState.value.cuCode = res?.comp?.code
formState.value.comId = res?.comp?.id
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) {
if (k == 'qtyDemandGj') {
record.qtyDemandM3 = Number(formState.value.rateM3Gj) ? Number(record.qtyDemandGj)/Number(formState.value.rateM3Gj) : ''
} else {
record.qtyDemandGj = Number(record.qtyDemandM3)*Number(formState.value.rateM3Gj) || ''
}
record.qtyDemandM3 = record.qtyDemandM3 ? record.qtyDemandM3.toFixed(5) : ''
record.qtyDemandGj = record.qtyDemandGj ? record.qtyDemandGj.toFixed(5) : ''
// record.qtyDemandM3 = record.qtyDemandM3 ? record.qtyDemandM3.toFixed(3) : ''
// record.qtyDemandGj = record.qtyDemandGj ? record.qtyDemandGj.toFixed(3) : ''
let num = 0;
let num1 = 0;
dataList.value.forEach(v => {
num=NP.plus(num, (Number(v.qtyDemandM3) || 0))
num1=NP.plus(num1, (Number(v.qtyDemandGj) || 0))
})
formState.value.qtyDemandM3 = num
formState.value.qtyDemandGj = num1
formState.value.qtyDemandM3 = num.toFixed(3)
formState.value.qtyDemandGj = num1.toFixed(3)
}
const datePlanChange = async (val) => {
if (!val) {

View File

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

View File

@ -18,11 +18,18 @@
<template v-if="column.dataIndex === 'action'">
<TableAction :actions="getActions(record)" />
</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'">
{{ NP.divide(Number(record.qtySalesM3), 10000) }}
{{ Number.format(Number.parse( NP.divide(Number(record.qtySalesM3), 10000)),numFormat) }}
</template>
<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>
</BasicTable>
@ -68,9 +75,10 @@
import useEventBus from '/@/hooks/event/useEventBus';
import { cloneDeep } from 'lodash-es';
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 numFormat = "###,###,###,###,###,###.000"
const { notification } = useMessage();
const { t } = useI18n();
defineEmits(['register']);
@ -124,7 +132,8 @@
const [registerModal, { openModal }] = useModal();
const [registerImportModal, { openModal: openImportModal }] = useModal();
const formName='日计划-客户需求';
// const formName='管道气日计划';
const formName=currentRoute.value.meta?.title;
const [registerTable, { reload, clearSelectedRowKeys }] = useTable({
title: '' || (formName + '列表'),
api: getLngPngDemandPage,
@ -134,8 +143,44 @@
rowProps: {
gutter: 16,
},
schemas: customSearchFormSchema,
fieldMapToTime: [],
schemas: [
{
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,
submitButtonOptions: {
text: '搜索',
@ -150,6 +195,7 @@
},
},
},
immediate: false,
beforeFetch: (params) => {
return { ...params, FormId: formIdComputedRef.value, PK: 'id',page:params.limit };
},
@ -209,7 +255,7 @@
path: '/dayPlan/Demand/createForm',
query: {
formPath: 'dayPlan/Demand',
formName: formName,
formName: "查看"+formName,
formId:currentRoute.value.meta.formId,
id: record.id,
type:'view'
@ -237,7 +283,7 @@
path: '/dayPlan/Demand/createForm',
query: {
formPath: 'dayPlan/Demand',
formName: formName,
formName: "新建"+formName,
formId:currentRoute.value.meta.formId
}
});
@ -249,7 +295,7 @@
path: '/dayPlan/Demand/createForm',
query: {
formPath: 'dayPlan/Demand',
formName: formName,
formName: "编辑"+formName,
formId:currentRoute.value.meta.formId,
id: record.id,
type: 'edit'
@ -262,7 +308,7 @@
path: '/dayPlan/Demand/createForm',
query: {
formPath: 'dayPlan/Demand',
formName: formName,
formName: "对比"+formName,
formId:currentRoute.value.meta.formId,
id: record.id,
type: 'compare'
@ -394,6 +440,7 @@
reload()
}
onMounted(() => {
reload({ searchInfo: { startDate: defaultDate.value[0], endDate: defaultDate.value[1] }});
if (schemaIdComputedRef.value) {
bus.on(FLOW_PROCESSED, handleRefresh);
@ -557,7 +604,10 @@
};
</script>
<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;
}
// .Demandtyle .cusSearchForm .advanceRow> div:nth-of-type(2){
@ -574,22 +624,32 @@
.hide{
display: none !important;
}
:deep( .ant-col-8:nth-child(2)) {
:deep( .ant-col-8:nth-child(3)) {
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;
}
: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;
max-width: 160px !important;
}
:deep( .ant-col-8:nth-child(1)) {
width: 220px !important;
max-width: 220px !important;;
width: 320px !important;
max-width: 320px !important;;
}
: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>

View File

@ -10,37 +10,53 @@
<a-form-item label="合同" name="kName" :class="diffResultList.includes('kName') ? 'changeStyle': ''">{{ formState.kName}}</a-form-item>
</a-col>
<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 :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 :span="8">
<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': ''">{{ 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 :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 :span="8">
<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': ''">{{ 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 :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 :span="8">
<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': ''">{{ 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 :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 :span="8">
<a-form-item label="比值(方/吉焦)" name="rateM3Gj" :class="diffResultList.includes('rateM3Gj') ? 'changeStyle': ''">{{ formState.rateM3Gj }}</a-form-item>
@ -75,7 +91,7 @@
</a-form-item>
</a-col>
</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 v-if="column.dataIndex === 'pointUpName'">
<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>
</template>
<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 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 v-if="column.dataIndex === 'qtySalesGj'">
<a-input-number :class="diffResultList.includes('lngPngApproPurList[' + index + '].qtySalesGj') ? 'changeStyle': ''"
v-model:value="record.qtySalesGj" :disabled="record.alterSign=='D' || disable" :min="0" @change="numChange" style="width: 100%" />
<div v-if="record.alterSign=='D' || disable" :class="diffResultList.includes('lngPngApproPurList[' + index + '].qtySalesGj') ? 'changeStyle': ''">
{{ 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 v-if="column.dataIndex === 'qtySalesM3'">
<a-input-number :class="diffResultList.includes('lngPngApproPurList[' + index + '].qtySalesM3') ? 'changeStyle': ''"
v-model:value="record.qtySalesM3" :disabled="record.alterSign=='D' || disable" :min="0" @change="numChange" style="width: 100%" />
<div v-if="record.alterSign=='D' || disable" :class="diffResultList.includes('lngPngApproPurList[' + index + '].qtySalesM3') ? 'changeStyle': ''">
{{ 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 v-if="column.dataIndex === 'note'" >
<div v-if="record.alterSign=='D' || disable" :class="diffResultList.includes('lngPngApproPurList[' + index + '].note') ? 'changeStyle': ''">{{ record.note }}</div>
@ -120,6 +146,7 @@
changeList: []
});
const numFormat = "###,###,###,###,###,###.000"
const columns= ref([
{ title: t('序号'), dataIndex: 'index', key: 'index', customRender: (column) => `${column.index + 1}` ,width: 100},
{ title: t('上载点'), dataIndex: 'pointUpName', width:400},
@ -127,8 +154,8 @@
{ title: t('采购合同'), dataIndex: 'kpName', width: 400},
{ title: t('指定量(吉焦)'), dataIndex: 'qtyDemandGj', width: 300},
{ title: t('指定量(万方)'), dataIndex: 'qtyDemandM3', width: 200},
{ title: t('批复量(吉焦)'), dataIndex: 'qtySalesGj', width: 200},
{ title: t('批复量(万方)'), dataIndex: 'qtySalesM3', width: 200},
{ title: t('批复量(吉焦)'), dataIndex: 'qtySalesGj', width: 250},
{ title: t('批复量(万方)'), dataIndex: 'qtySalesM3', width: 250},
{ title: t('备注'), dataIndex: 'note', width: 300},
]);
const formState = ref()
@ -141,8 +168,8 @@
num+=(Number(v.qtySalesGj) || 0)
num1+=(Number(v.qtySalesM3) || 0)
})
formState.value.qtySalesGj = num
formState.value.qtySalesM3 = num1
formState.value.qtySalesGj = num.toFixed(3)
formState.value.qtySalesM3 = num1.toFixed(3)
}
function getFormValue () {
let obj = {

View File

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

View File

@ -15,6 +15,18 @@
</template>
</template>
<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'">
<a @click="btnCheck(record)">{{ record.approName }}</a>
</template>
@ -61,7 +73,9 @@
import useEventBus from '/@/hooks/event/useEventBus';
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 { notification } = useMessage();
@ -115,7 +129,8 @@
const [registerModal, { openModal}] = useModal();
const [registerApproStatus, { openModal: openModalApproStatus}] = useModal();
let formName='管道气销售审批';
// let formName='管道气销售审批';
const formName=currentRoute.value.meta?.title;
let curPath = 'dayPlan/PngAppro/index'
const [registerTable, { reload, clearSelectedRowKeys, setTableData }] = useTable({
title: '' || (formName + '列表'),
@ -204,7 +219,7 @@
path: '/dayPlan/PngAppro/createForm',
query: {
formPath: curPath,
formName: formName,
formName: "查看"+formName,
formId:currentRoute.value.meta.formId,
id: record.id,
type: 'view'
@ -247,7 +262,7 @@
path: '/dayPlan/PngAppro/createForm',
query: {
formPath: curPath,
formName: formName,
formName: "审批"+formName,
formId:currentRoute.value.meta.formId,
id: record.id
}
@ -258,7 +273,7 @@
path: '/dayPlan/PngAppro/createForm',
query: {
formPath: curPath,
formName: formName+'对比',
formName: '对比'+formName,
formId:currentRoute.value.meta.formId,
id: record.demandOrgId,
type: 'compare'
@ -444,24 +459,31 @@
:deep(.ant-table-selection-col) {
width: 50px;
}
:deep( .ant-col-8:nth-child(1)) {
:deep( .ant-col-8:nth-child(4)) {
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;
}
:deep( .ant-col-8:nth-child(2)) {
width: 360px !important;
:deep( .w-full .ant-col-8:nth-child(1)) {
width: 320px !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;
:deep(.w-full .ant-col-8:nth-child(1) .ant-form-item-label) {
width: 80px !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{
display: flex;
}

View File

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

View File

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

View File

@ -15,6 +15,18 @@
</template>
</template>
<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'">
<TableAction :actions="getActions(record)" />
</template>
@ -51,9 +63,9 @@
import useEventBus from '/@/hooks/event/useEventBus';
import { cloneDeep } from 'lodash-es';
import rejectReplyModal from '/@/components/common/rejectReplyModal.vue';
import dayjs from 'dayjs';
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 { t } = useI18n();
defineEmits(['register']);
@ -63,7 +75,7 @@
const filterColumns = cloneDeep(filterColumnAuth(columns));
const customConfigColums =ref(filterColumns);
const customSearchFormSchema =ref(searchFormSchema);
const numFormat = "###,###,###,###,###,###.000"
const tableRef = ref();
//所有按钮
const buttons = ref([
@ -96,7 +108,8 @@
const schemaIdComputedRef = ref();
schemaIdComputedRef.value = currentRoute.value.meta.schemaId
const [registerModal, { openModal }] = useModal();
const formName='管道气接收站审批';
// const formName='管道气接收站审批';
const formName=currentRoute.value.meta?.title;
const [registerTable, { reload, clearSelectedRowKeys }] = useTable({
title: '' || (formName + '列表'),
api: getLngPngApproPage,
@ -106,10 +119,23 @@
rowProps: {
gutter: 16,
},
schemas: customSearchFormSchema,
fieldMapToTime: [['datePlan', ['startDate', 'endDate'], 'YYYY-MM-DD HH:mm:ss ', true],],
schemas: [
{
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,
},
immediate: false,
beforeFetch: (params) => {
return { ...params, FormId: formIdComputedRef.value, PK: 'id',page: params.limit };
},
@ -308,7 +334,7 @@
}
onMounted(() => {
reload({ searchInfo: { startDate: defaultDate.value[0], endDate: defaultDate.value[1] }});
if (schemaIdComputedRef.value) {
bus.on(FLOW_PROCESSED, handleRefresh);
bus.on(CREATE_FLOW, handleRefresh);
@ -390,4 +416,11 @@
.hide{
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>

View File

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

View File

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

View File

@ -26,19 +26,31 @@
</AButton>
</div>
</a-col>
<a-col :span="6" v-if="isAdvanced">
<!-- <a-col :span="6" v-if="isAdvanced">
<a-form-item label="计划日期" name="reply" >
<a-range-picker v-model:value="formState.datePlan" />
</a-form-item>
</a-col>
<a-col :span="7" v-if="isAdvanced">
</a-col> -->
<a-col :span="6" v-if="isAdvanced">
<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-col>
<a-col :span="7" v-if="isAdvanced">
<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-col>
</a-row>
@ -80,6 +92,12 @@
wrapperCol: { span: 15 },
}
const isAdvanced = ref(false)
const statusList = [
{label: '计量中', value: 'JLZ'},
{label: '结算中', value: 'JSZ'},
{label: '已结算', value: 'YJS'},
{label: '计量完成', value: 'JLWC'},
]
onMounted(() => {
@ -105,15 +123,13 @@
const onSearch = () => {
let obj = {
...formState.value,
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') : '',
// 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') : '',
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') : '',
}
delete obj.datePlan
// delete obj.datePlan
delete obj.dateMea
delete obj.pointUpName
delete obj.pointDelyName
emit('search', obj)
}
const onReset = () => {

View File

@ -21,12 +21,23 @@
rowKey="id" :pagination="pagination" @row-dbClick="dbClickRow" :scroll="{x: 2000}">
<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'">
<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>
<a-input-number v-model:value="record.qtyMeaGj"
: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 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 v-if="column.dataIndex === 'lngFileUploadList'">
<div>
@ -86,7 +97,7 @@
import NP from 'number-precision';
const { bus, CREATE_FLOW, FLOW_PROCESSED, FORM_LIST_MODIFIED } = useEventBus();
const numFormat = "###,###,###,###,###,###.000"
const { notification } = useMessage();
const { t } = useI18n();
defineEmits(['register']);
@ -156,7 +167,8 @@
const tableName = 'PngMeasureSalesPur';
const columnName = 'PngMeasureSalesPur';
const formName='管道气采购计量';
// const formName='管道气采购计量';
const formName=currentRoute.value.meta?.title;
const loadData = async () => {
loading.value = true;
@ -218,7 +230,7 @@
path: '/dayPlan/PngMeasureSalesPur/createForm',
query: {
formPath: 'dayPlan/PngMeasureSalesPur',
formName: formName,
formName: "新建"+formName,
formId:currentRoute.value.meta.formId,
type:'add'
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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