Merge branch 'dev' of http://47.94.165.164:13000/geg-gas/geg-gas-web into dev
This commit is contained in:
@ -8,13 +8,23 @@ enum Api {
|
|||||||
List = '/contract/contractProc/list',
|
List = '/contract/contractProc/list',
|
||||||
Info = '/contract/contractProc/info',
|
Info = '/contract/contractProc/info',
|
||||||
LngContract = '/contract/contractProc',
|
LngContract = '/contract/contractProc',
|
||||||
|
querySysParameter = '/magic-api/system/querySysParameter',
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DataLog = '/contract/contractProc/datalog',
|
DataLog = '/contract/contractProc/datalog',
|
||||||
}
|
}
|
||||||
|
export async function getParameter(params, mode: ErrorMessageMode = 'modal') {
|
||||||
|
return defHttp.get<LngContractPageModel>(
|
||||||
|
{
|
||||||
|
url: Api.querySysParameter,
|
||||||
|
params,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
errorMessageMode: mode,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @description: 查询LngContract分页列表
|
* @description: 查询LngContract分页列表
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -53,11 +53,6 @@
|
|||||||
<a-input-search v-model:value="formState.bDeptName" disabled placeholder="请选择业务部门" readonly @search="onSearch"/>
|
<a-input-search v-model:value="formState.bDeptName" disabled placeholder="请选择业务部门" readonly @search="onSearch"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="8">
|
|
||||||
<a-form-item label="电话" name="tel">
|
|
||||||
<a-input v-model:value="formState.tel" :disabled="isDisable" />
|
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :span="8">
|
<a-col :span="8">
|
||||||
<a-form-item label="币种" name="curCode">
|
<a-form-item label="币种" name="curCode">
|
||||||
<a-select v-model:value="formState.curCode" :disabled="isDisable" placeholder="请选择币种" style="width: 100%" allow-clear>
|
<a-select v-model:value="formState.curCode" :disabled="isDisable" placeholder="请选择币种" style="width: 100%" allow-clear>
|
||||||
@ -153,9 +148,6 @@
|
|||||||
<a-button type="primary" style="margin-bottom: 10px" @click="handleAdd(idx)" v-if="!isDisable">新增行</a-button>
|
<a-button type="primary" style="margin-bottom: 10px" @click="handleAdd(idx)" v-if="!isDisable">新增行</a-button>
|
||||||
<a-table style="width: 100%" :columns="columnsPrice" :data-source="item.lngPriceProcDtlList" :pagination="false">
|
<a-table style="width: 100%" :columns="columnsPrice" :data-source="item.lngPriceProcDtlList" :pagination="false">
|
||||||
<template #headerCell="{ column }">
|
<template #headerCell="{ column }">
|
||||||
<template v-if="column.dataIndex == 'sortDesc'">
|
|
||||||
<span><span class="redStyle">*</span>约定</span>
|
|
||||||
</template>
|
|
||||||
<template v-if="column.dataIndex == 'qtyGj'">
|
<template v-if="column.dataIndex == 'qtyGj'">
|
||||||
<span><span class="redStyle">*</span>阶梯内气量(吉焦)</span>
|
<span><span class="redStyle">*</span>阶梯内气量(吉焦)</span>
|
||||||
</template>
|
</template>
|
||||||
@ -165,6 +157,9 @@
|
|||||||
<template v-if="column.dataIndex == 'priceLngGj'">
|
<template v-if="column.dataIndex == 'priceLngGj'">
|
||||||
<span><span class="redStyle">*</span>液态加工费率(元/吉焦)</span>
|
<span><span class="redStyle">*</span>液态加工费率(元/吉焦)</span>
|
||||||
</template>
|
</template>
|
||||||
|
<template v-if="column.dataIndex == 'rateTonGj'">
|
||||||
|
<span><span class="redStyle">*</span>吨/吉焦</span>
|
||||||
|
</template>
|
||||||
</template>
|
</template>
|
||||||
<template #bodyCell="{ column, record, index }">
|
<template #bodyCell="{ column, record, index }">
|
||||||
<template v-if="column.dataIndex === 'sortDesc'">
|
<template v-if="column.dataIndex === 'sortDesc'">
|
||||||
@ -225,7 +220,7 @@
|
|||||||
import type { Rule } from 'ant-design-vue/es/form';
|
import type { Rule } from 'ant-design-vue/es/form';
|
||||||
import { getDictionary } from '/@/api/sales/Customer';
|
import { getDictionary } from '/@/api/sales/Customer';
|
||||||
import { useModal } from '/@/components/Modal';
|
import { useModal } from '/@/components/Modal';
|
||||||
import { addLngContract,updateLngContract, getLngContract } from '/@/api/contract/ContractProc';
|
import { addLngContract,updateLngContract, getLngContract,getParameter } from '/@/api/contract/ContractProc';
|
||||||
import { getLngAppro,getCompDept } from '/@/api/approve/Appro';
|
import { getLngAppro,getCompDept } from '/@/api/approve/Appro';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { h } from 'vue';
|
import { h } from 'vue';
|
||||||
@ -242,6 +237,7 @@
|
|||||||
import supplierListModal from '/@/components/common/supplierListModal.vue';
|
import supplierListModal from '/@/components/common/supplierListModal.vue';
|
||||||
import { getAllCurrency } from '/@/api/contract/ContractFact';
|
import { getAllCurrency } from '/@/api/contract/ContractFact';
|
||||||
import { useUserStore } from '/@/store/modules/user';
|
import { useUserStore } from '/@/store/modules/user';
|
||||||
|
import { DataFormat, FormatOption, DATE_FORMAT, FormatType } from '/@/utils/dataFormat';
|
||||||
|
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
const userInfo = userStore.getUserInfo;
|
const userInfo = userStore.getUserInfo;
|
||||||
@ -299,6 +295,7 @@
|
|||||||
labelCol: { span: 8 },
|
labelCol: { span: 8 },
|
||||||
wrapperCol: { span: 16 },
|
wrapperCol: { span: 16 },
|
||||||
}
|
}
|
||||||
|
const rateCode = ref()
|
||||||
const curIdx = ref(null)
|
const curIdx = ref(null)
|
||||||
const dataFile = ref([]);
|
const dataFile = ref([]);
|
||||||
const dataListAppro = ref([])
|
const dataListAppro = ref([])
|
||||||
@ -315,7 +312,8 @@
|
|||||||
}
|
}
|
||||||
])
|
])
|
||||||
const columnsPrice= ref([
|
const columnsPrice= ref([
|
||||||
{ title: t('序号'), dataIndex: 'index', key: 'index', customRender: (column) => `${column.index + 1}` ,width: 80},
|
// { title: t('序号'), dataIndex: 'index', key: 'index', customRender: (column) => `${column.index + 1}` ,width: 80},
|
||||||
|
{ title: t('阶梯'), dataIndex: 'sort',width: 80},
|
||||||
{ title: t('约定'), dataIndex: 'sortDesc'},
|
{ title: t('约定'), dataIndex: 'sortDesc'},
|
||||||
{ title: t('吨/吉焦'), dataIndex: 'rateTonGj', width: 150},
|
{ title: t('吨/吉焦'), dataIndex: 'rateTonGj', width: 150},
|
||||||
{ title: t('阶梯内气量(吉焦)'), dataIndex: 'qtyGj', width: 200},
|
{ title: t('阶梯内气量(吉焦)'), dataIndex: 'qtyGj', width: 200},
|
||||||
@ -348,7 +346,7 @@
|
|||||||
immediate: true
|
immediate: true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
onMounted(() => {
|
onMounted(async () => {
|
||||||
getOption()
|
getOption()
|
||||||
if (pageId.value) {
|
if (pageId.value) {
|
||||||
getInfo(pageId.value)
|
getInfo(pageId.value)
|
||||||
@ -357,6 +355,8 @@
|
|||||||
formState.empId = userInfo.id
|
formState.empId = userInfo.id
|
||||||
formState.tel = userInfo.mobile
|
formState.tel = userInfo.mobile
|
||||||
}
|
}
|
||||||
|
let a = await getParameter({code: 'RATE_TON_GJ'})||[]
|
||||||
|
rateCode.value = a[0]?.valueNum1
|
||||||
|
|
||||||
});
|
});
|
||||||
const dateToCodeChange = (idx, val) => {
|
const dateToCodeChange = (idx, val) => {
|
||||||
@ -378,7 +378,7 @@
|
|||||||
const disabledCurrentYear = (current) => {
|
const disabledCurrentYear = (current) => {
|
||||||
let date = new Date().getFullYear()
|
let date = new Date().getFullYear()
|
||||||
if (dataListPrice.value[curIdx.value].dateFromNew) {
|
if (dataListPrice.value[curIdx.value].dateFromNew) {
|
||||||
date = new Date(dataListPrice.value[curIdx.value].dateFromNew,).getFullYear()
|
date = new Date(dataListPrice.value[curIdx.value].dateFromNew).getFullYear()
|
||||||
}
|
}
|
||||||
return current && new Date(current).getFullYear() !== date;
|
return current && new Date(current).getFullYear() !== date;
|
||||||
};
|
};
|
||||||
@ -407,6 +407,16 @@
|
|||||||
v.dateFromNew = v.dateFrom ? dayjs(v.dateFrom) : null
|
v.dateFromNew = v.dateFrom ? dayjs(v.dateFrom) : null
|
||||||
v.dateToF = v.dateToF ? dayjs(v.dateToF) : null
|
v.dateToF = v.dateToF ? dayjs(v.dateToF) : null
|
||||||
v.dateToY = v.dateToY ? dayjs(v.dateToY) : null
|
v.dateToY = v.dateToY ? dayjs(v.dateToY) : null
|
||||||
|
|
||||||
|
v.lngPriceProcDtlList = v.lngPriceProcDtlList || []
|
||||||
|
if (isDisable.value) {
|
||||||
|
v.lngPriceProcDtlList =DataFormat.format(v.lngPriceProcDtlList, [
|
||||||
|
FormatOption.createQty('qtyGj'),
|
||||||
|
FormatOption.createQty('rateTonGj'),
|
||||||
|
FormatOption.createAmt('priceLngGj'),
|
||||||
|
FormatOption.createAmt('pricePngGj'),
|
||||||
|
]);
|
||||||
|
}
|
||||||
})
|
})
|
||||||
dataListAppro.value.forEach(v => {
|
dataListAppro.value.forEach(v => {
|
||||||
// v.approId = v.id
|
// v.approId = v.id
|
||||||
@ -495,10 +505,11 @@
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const deleteProc= (index) => {
|
const deleteProc= (index) => {
|
||||||
|
if (dataListPrice.value.length ==1)return
|
||||||
dataListPrice.value.splice(index, 1)
|
dataListPrice.value.splice(index, 1)
|
||||||
}
|
}
|
||||||
const handleAdd = (idx)=> {
|
const handleAdd = (idx)=> {
|
||||||
dataListPrice.value[idx].lngPriceProcDtlList.push({sortDesc: '',rateTonGj:'',qtyGj:'',pricePngGj:'',priceLngGj:'',sort:dataListPrice.value[idx].lngPriceProcDtlList.length+1})
|
dataListPrice.value[idx].lngPriceProcDtlList.push({sortDesc: '',rateTonGj:rateCode.value,qtyGj:'',pricePngGj:'',priceLngGj:'',sort:dataListPrice.value[idx].lngPriceProcDtlList.length+1})
|
||||||
}
|
}
|
||||||
const handleDelete= (idx,index) => {
|
const handleDelete= (idx,index) => {
|
||||||
dataListPrice.value[idx].lngPriceProcDtlList.splice(index, 1)
|
dataListPrice.value[idx].lngPriceProcDtlList.splice(index, 1)
|
||||||
@ -580,9 +591,9 @@
|
|||||||
dataListPrice.value[k].staCode = formState.lngContractProcList[0].staCode
|
dataListPrice.value[k].staCode = formState.lngContractProcList[0].staCode
|
||||||
let arr = dataListPrice.value[k].lngPriceProcDtlList || []
|
let arr = dataListPrice.value[k].lngPriceProcDtlList || []
|
||||||
for(let i=0; i<arr.length; i++) {
|
for(let i=0; i<arr.length; i++) {
|
||||||
let isFlag = arr[i].qtyGj == null || arr[i].qtyGj === ''|| arr[i].pricePngGj == null || arr[i].pricePngGj === '' || arr[i].priceLngGj == null || arr[i].priceLngGj === ''
|
let isFlag = arr[i].rateTonGj == null || arr[i].rateTonGj === ''|| arr[i].pricePngGj == null || arr[i].pricePngGj === '' || arr[i].priceLngGj == null || arr[i].priceLngGj === ''
|
||||||
let isFlagNew = false
|
let isFlagNew = false
|
||||||
if (arr[i].sort <arr.length && (arr[i].sortDesc == '' || arr[i].sortDesc == null)) {
|
if (arr[i].sort <arr.length && (arr[i].qtyGj == '' || arr[i].qtyGj == null)) {
|
||||||
isFlagNew = true
|
isFlagNew = true
|
||||||
}
|
}
|
||||||
if (isFlag || isFlagNew) {
|
if (isFlag || isFlagNew) {
|
||||||
|
|||||||
@ -76,11 +76,6 @@
|
|||||||
<a-input v-model:value="formState.comName" disabled />
|
<a-input v-model:value="formState.comName" disabled />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="8">
|
|
||||||
<a-form-item label="电话" name="tel">
|
|
||||||
<a-input v-model:value="formState.tel" :disabled="isDisable" />
|
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="备注" name="note" :label-col="{ span: 3 }" :wrapper-col="{ span: 24 }">
|
<a-form-item label="备注" name="note" :label-col="{ span: 3 }" :wrapper-col="{ span: 24 }">
|
||||||
<a-textarea v-model:value="formState.note" :disabled="isDisable" placeholder="请输入备注" :auto-size="{ minRows: 2, maxRows: 5 }"/>
|
<a-textarea v-model:value="formState.note" :disabled="isDisable" placeholder="请输入备注" :auto-size="{ minRows: 2, maxRows: 5 }"/>
|
||||||
@ -89,38 +84,82 @@
|
|||||||
</a-row>
|
</a-row>
|
||||||
</Card>
|
</Card>
|
||||||
<Card title="业务信息" :bordered="false" >
|
<Card title="业务信息" :bordered="false" >
|
||||||
<div style="width: 100%">
|
<div v-for="(item, idx) in dataListPrice" class="tbStyle">
|
||||||
<a-button type="primary" style="margin-bottom: 10px" @click="handleAdd('point')" v-if="!isDisable">新增行</a-button>
|
<div class="tb-box">
|
||||||
<a-table style="width: 100%" :columns="columnsPoint" :data-source="dataListPoint" :pagination="false" :scroll="{x: 1000}">
|
<h4>上下载点</h4>
|
||||||
<template #headerCell="{ column }">
|
<a-button type="primary" style="margin: 0 10px" @click="handleAdd" v-if="!isDisable">新增</a-button>
|
||||||
<template v-if="column.dataIndex == 'pointUpName'">
|
<a-button type="primary" @click="handleDelete(idx)" v-if="!isDisable">删除</a-button>
|
||||||
<span><span class="redStyle">*</span>上载点</span>
|
|
||||||
</template>
|
|
||||||
<template v-if="column.dataIndex == 'pointDelyName'">
|
|
||||||
<span><span class="redStyle">*</span>下载点</span>
|
|
||||||
</template>
|
|
||||||
</template>
|
|
||||||
<template #bodyCell="{ column, record, index }">
|
|
||||||
<template v-if="column.dataIndex === 'pointUpName'">
|
|
||||||
<a-input-search v-model:value="record.pointUpName" :disabled="isDisable" placeholder="请选择上载点" readonly @search="onSearchDownLoad('up', index)"/>
|
|
||||||
</template>
|
|
||||||
<template v-if="column.dataIndex === 'pointDelyName'">
|
|
||||||
<a-input-search v-model:value="record.pointDelyName" :disabled="isDisable" placeholder="请选择下载点" readonly @search="onSearchDownLoad('dely', index)"/>
|
|
||||||
</template>
|
|
||||||
<template v-if="column.dataIndex === 'note'">
|
|
||||||
<a-input v-model:value="record.note" :disabled="isDisable" />
|
|
||||||
</template>
|
|
||||||
<template v-if="column.dataIndex === 'operation'">
|
|
||||||
<a v-if="!isDisable" @click="handleDelete('point', index)">删除</a>
|
|
||||||
</template>
|
|
||||||
</template>
|
|
||||||
</a-table>
|
|
||||||
</div>
|
</div>
|
||||||
</Card>
|
<a-row>
|
||||||
<Card title="管输价格" :bordered="false" >
|
<a-col :span="8">
|
||||||
|
<a-form-item name="pointUpName">
|
||||||
|
<template #label>
|
||||||
|
<span><span style="color:red">*</span>上载点</span>
|
||||||
|
</template>
|
||||||
|
<a-input-search v-model:value="item.pointUpName" :disabled="isDisable" placeholder="请选择上载点" readonly @search="onSearchDownLoad('up', idx)"/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="8">
|
||||||
|
<a-form-item name="pointDelyName">
|
||||||
|
<template #label>
|
||||||
|
<span><span style="color:red">*</span>下载点</span>
|
||||||
|
</template>
|
||||||
|
<a-input-search v-model:value="item.pointDelyName" :disabled="isDisable" placeholder="请选择下载点" readonly @search="onSearchDownLoad('dely', idx)"/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24">
|
||||||
|
<a-form-item label="备注" name="note" :label-col="{ span: 3 }" :wrapper-col="{ span: 24 }">
|
||||||
|
<a-textarea v-model:value="item.note" :disabled="isDisable" placeholder="请输入备注" :auto-size="{ minRows: 2, maxRows: 5 }"/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<div v-for="(k, idxk) in item.lngPriceTransPngList" class="tbStyle">
|
||||||
|
<div class="tb-box">
|
||||||
|
<h4>管输价格</h4>
|
||||||
|
<a-button type="primary" style="margin: 0 10px" @click="addPrice(idx)" v-if="!isDisable">新增</a-button>
|
||||||
|
<a-button type="primary" @click="deletePrice(idx, idxk)" v-if="!isDisable">删除</a-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<a-row>
|
||||||
|
<a-col :span="8">
|
||||||
|
<a-form-item name="dateFromNew">
|
||||||
|
<template #label>
|
||||||
|
<span><span style="color:red">*</span>有效期开始</span>
|
||||||
|
</template>
|
||||||
|
<a-date-picker v-model:value="k.dateFromNew" format="YYYY-MM-DD" :value-format="'YYYY-MM-DD'" @openChange="dateToYCheck(idx,idxk)" @change="dateFromNewChange" style="width: 100%" :disabled="isDisable" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="8">
|
||||||
|
<a-form-item name="dateToCode">
|
||||||
|
<template #label>
|
||||||
|
<span><span style="color:red">*</span>结束日类型</span>
|
||||||
|
</template>
|
||||||
|
<a-select v-model:value="k.dateToCode" @change="dateToCodeChange(idx,idxk, k.dateToCode)" :disabled="isDisable" style="width: 100%" allow-clear>
|
||||||
|
<a-select-option v-for="item in optionSelect.dateToCodeList" :key="item.code" :value="item.code">
|
||||||
|
{{ item.name }}
|
||||||
|
</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="8" v-if="k.dateToCode=='F'">
|
||||||
|
<a-form-item name="dateToF">
|
||||||
|
<template #label>
|
||||||
|
<span><span style="color:red">*</span>固定结束日</span>
|
||||||
|
</template>
|
||||||
|
<a-date-picker v-model:value="k.dateToF" format="YYYY-MM-DD" :value-format="'YYYY-MM-DD'" style="width: 100%" :disabled="isDisable" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="8" v-if="k.dateToCode=='Y'">
|
||||||
|
<a-form-item name="dateToY">
|
||||||
|
<template #label>
|
||||||
|
<span><span style="color:red">*</span>每年结束日</span>
|
||||||
|
</template>
|
||||||
|
<a-date-picker v-model:value="k.dateToY" format="MM-DD" :value-format="'MM-DD'" style="width: 100%" :disabled="isDisable" @openChange="dateToYCheck(idx,idxk)" :disabledDate="disabledCurrentYear"/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
<div style="width: 100%">
|
<div style="width: 100%">
|
||||||
<a-button type="primary" style="margin-bottom: 10px" @click="handleAdd('price')" v-if="!isDisable">新增行</a-button>
|
<a-button type="primary" style="margin-bottom: 10px" @click="addTable(idx, idxk)" v-if="!isDisable">新增行</a-button>
|
||||||
<a-table style="width: 100%" :columns="columnsPrice" :data-source="dataListPrice" :pagination="false">
|
<a-table style="width: 100%" :columns="columnsPrice" :data-source="k.lngPriceTransPngDtlList" :pagination="false">
|
||||||
<template #headerCell="{ column }">
|
<template #headerCell="{ column }">
|
||||||
<template v-if="column.dataIndex == 'sortDesc'">
|
<template v-if="column.dataIndex == 'sortDesc'">
|
||||||
<span><span class="redStyle">*</span>约定</span>
|
<span><span class="redStyle">*</span>约定</span>
|
||||||
@ -128,26 +167,32 @@
|
|||||||
<template v-if="column.dataIndex == 'priceTransM3'">
|
<template v-if="column.dataIndex == 'priceTransM3'">
|
||||||
<span><span class="redStyle">*</span>管输单价(元/方)</span>
|
<span><span class="redStyle">*</span>管输单价(元/方)</span>
|
||||||
</template>
|
</template>
|
||||||
|
<template v-if="column.dataIndex == 'qtyM3'">
|
||||||
|
<span><span class="redStyle">*</span>阶梯内气量(方)</span>
|
||||||
|
</template>
|
||||||
</template>
|
</template>
|
||||||
<template #bodyCell="{ column, record, index }">
|
<template #bodyCell="{ column, record, index }">
|
||||||
<template v-if="column.dataIndex === 'sortDesc'">
|
<template v-if="column.dataIndex === 'sortDesc'">
|
||||||
<a-input v-model:value="record.sortDesc" :disabled="isDisable" />
|
<a-input v-model:value="record.sortDesc" :disabled="isDisable" />
|
||||||
</template>
|
</template>
|
||||||
<template v-if="column.dataIndex === 'qtyM3'">
|
<template v-if="column.dataIndex === 'qtyM3'">
|
||||||
<a-input-number v-model:value="record.qtyM3" :disabled="isDisable" :min="0" :precision="3" style="width: 100%"/>
|
<a-input-number v-model:value="record.qtyM3" :disabled="isDisable" :min="0" :precision="3" @change="numCount(record)" style="width: 100%"/>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="column.dataIndex === 'priceTransM3'">
|
<template v-if="column.dataIndex === 'priceTransM3'">
|
||||||
<a-input-number v-model:value="record.priceTransM3" :disabled="isDisable" :min="0" :precision="4" style="width: 100%"/>
|
<a-input-number v-model:value="record.priceTransM3" :disabled="isDisable" :min="0" :precision="4" @change="numCount(record)" style="width: 100%"/>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="column.dataIndex === 'note'">
|
<template v-if="column.dataIndex === 'note'">
|
||||||
<a-input v-model:value="record.note" :disabled="isDisable" />
|
<a-input v-model:value="record.note" :disabled="isDisable" />
|
||||||
</template>
|
</template>
|
||||||
<template v-if="column.dataIndex === 'operation'">
|
<template v-if="column.dataIndex === 'operation'">
|
||||||
<a v-if="!isDisable" @click="handleDelete('price', index)">删除</a>
|
<a v-if="!isDisable" @click="deleteTable(idx,idxk,index)">删除</a>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</a-table>
|
</a-table>
|
||||||
</div>
|
</div>
|
||||||
|
</a-row>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</Card>
|
</Card>
|
||||||
<Card title="附件信息" :bordered="false" >
|
<Card title="附件信息" :bordered="false" >
|
||||||
<UploadList :disabled="isDisable" :list="dataFile" :value="formState.filePath" :tableName="tableName" :columnName="columnName" @change="uploadListChange"/>
|
<UploadList :disabled="isDisable" :list="dataFile" :value="formState.filePath" :tableName="tableName" :columnName="columnName" @change="uploadListChange"/>
|
||||||
@ -196,6 +241,8 @@
|
|||||||
import supplierListModal from '/@/components/common/supplierListModal.vue';
|
import supplierListModal from '/@/components/common/supplierListModal.vue';
|
||||||
import { getAllCurrency } from '/@/api/contract/ContractFact';
|
import { getAllCurrency } from '/@/api/contract/ContractFact';
|
||||||
import { useUserStore } from '/@/store/modules/user';
|
import { useUserStore } from '/@/store/modules/user';
|
||||||
|
import { getParameter } from '/@/api/contract/ContractProc';
|
||||||
|
import { DataFormat, FormatOption, DATE_FORMAT, FormatType } from '/@/utils/dataFormat';
|
||||||
|
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
const userInfo = userStore.getUserInfo;
|
const userInfo = userStore.getUserInfo;
|
||||||
@ -225,6 +272,8 @@
|
|||||||
const pageId = ref(currentRoute.value.query?.id)
|
const pageId = ref(currentRoute.value.query?.id)
|
||||||
const spinning = ref(false);
|
const spinning = ref(false);
|
||||||
const curIdx = ref(null)
|
const curIdx = ref(null)
|
||||||
|
const curIdxk = ref(null)
|
||||||
|
const rateCode = ref()
|
||||||
const { notification } = useMessage();
|
const { notification } = useMessage();
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const formState = reactive({
|
const formState = reactive({
|
||||||
@ -259,18 +308,22 @@
|
|||||||
approCodeList: [],
|
approCodeList: [],
|
||||||
kPeriodList: [],
|
kPeriodList: [],
|
||||||
curCodeList: [],
|
curCodeList: [],
|
||||||
|
dateToCodeList: []
|
||||||
});
|
});
|
||||||
const columnsPoint= ref([
|
const dataListPrice = ref([
|
||||||
{ title: t('序号'), dataIndex: 'index', key: 'index', customRender: (column) => `${column.index + 1}` ,width: 100},
|
{
|
||||||
{ title: t('上载点'), dataIndex: 'pointUpName', },
|
lngPriceTransPngList: [
|
||||||
{ title: t('下载点'), dataIndex: 'pointDelyName',},
|
{
|
||||||
{ title: t('备注'), dataIndex: 'note'},
|
dateToCode: '',
|
||||||
{ title: t('操作'), dataIndex: 'operation', width: 80, fixed: 'right',align: 'center'},
|
dateFrom: null,
|
||||||
]);
|
lngPriceTransPngDtlList: []
|
||||||
const dataListPoint = ref([])
|
}
|
||||||
const dataListPrice = ref([])
|
]
|
||||||
|
}
|
||||||
|
])
|
||||||
const columnsPrice= ref([
|
const columnsPrice= 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: 'sort',width:80},
|
||||||
{ title: t('约定'), dataIndex: 'sortDesc'},
|
{ title: t('约定'), dataIndex: 'sortDesc'},
|
||||||
{ title: t('阶梯内气量(方)'), dataIndex: 'qtyM3', width: 150},
|
{ title: t('阶梯内气量(方)'), dataIndex: 'qtyM3', width: 150},
|
||||||
{ title: t('管输单价(元/方)'), dataIndex: 'priceTransM3', width: 150},
|
{ title: t('管输单价(元/方)'), dataIndex: 'priceTransM3', width: 150},
|
||||||
@ -293,8 +346,6 @@
|
|||||||
(val) => {
|
(val) => {
|
||||||
isDisable.value = val
|
isDisable.value = val
|
||||||
if (val) {
|
if (val) {
|
||||||
let idx = columnsPoint.value.findIndex(v=>v.dataIndex == 'operation')
|
|
||||||
idx>-1&&columnsPoint.value.splice(idx, 1)
|
|
||||||
let idx1 = columnsPrice.value.findIndex(v=>v.dataIndex == 'operation')
|
let idx1 = columnsPrice.value.findIndex(v=>v.dataIndex == 'operation')
|
||||||
idx1>-1&&columnsPrice.value.splice(idx1, 1)
|
idx1>-1&&columnsPrice.value.splice(idx1, 1)
|
||||||
}
|
}
|
||||||
@ -304,7 +355,7 @@
|
|||||||
immediate: true
|
immediate: true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
onMounted(() => {
|
onMounted(async() => {
|
||||||
getOption()
|
getOption()
|
||||||
if (pageId.value) {
|
if (pageId.value) {
|
||||||
getInfo(pageId.value)
|
getInfo(pageId.value)
|
||||||
@ -313,8 +364,33 @@
|
|||||||
formState.empId = userInfo.id
|
formState.empId = userInfo.id
|
||||||
formState.tel = userInfo.mobile
|
formState.tel = userInfo.mobile
|
||||||
}
|
}
|
||||||
|
let a = await getParameter({code: 'RATE_TON_GJ'})||[]
|
||||||
|
rateCode.value = a[0]?.valueNum1
|
||||||
});
|
});
|
||||||
|
const dateToCodeChange = (idx, idxk, val) => {
|
||||||
|
if (val == 'F') {
|
||||||
|
dataListPrice.value[idx].lngPriceTransPngList[idxk].dateToY = null
|
||||||
|
} else {
|
||||||
|
dataListPrice.value[idx].lngPriceTransPngList[idxk].dateToF = null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const dateFromNewChange = (val) => {
|
||||||
|
if (val) {
|
||||||
|
dataListPrice.value[curIdx.value].lngPriceTransPngList[curIdxk.value].dateFrom = dayjs(val).format('YYYY-MM-DD')
|
||||||
|
dataListPrice.value[curIdx.value].lngPriceTransPngList[curIdxk.value].dateToY = null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const dateToYCheck = (idx, idxK) => {
|
||||||
|
curIdx.value = idx
|
||||||
|
curIdxk.value = idxK
|
||||||
|
}
|
||||||
|
const disabledCurrentYear = (current) => {
|
||||||
|
let date = new Date().getFullYear()
|
||||||
|
if (dataListPrice.value[curIdx.value].lngPriceTransPngList[curIdxk.value].dateFromNew) {
|
||||||
|
date = new Date(dataListPrice.value[curIdx.value].lngPriceTransPngList[curIdxk.value].dateFromNew).getFullYear()
|
||||||
|
}
|
||||||
|
return current && new Date(current).getFullYear() !== date;
|
||||||
|
};
|
||||||
const kPeriodChange = (val) => {
|
const kPeriodChange = (val) => {
|
||||||
if (val !== 'Y') {
|
if (val !== 'Y') {
|
||||||
formState.dateFrom = dayjs('2000-01-01')
|
formState.dateFrom = dayjs('2000-01-01')
|
||||||
@ -333,12 +409,24 @@
|
|||||||
Object.assign(dataFile.value, formState.lngFileUploadList || [])
|
Object.assign(dataFile.value, formState.lngFileUploadList || [])
|
||||||
Object.assign(dataListContractFact.value, formState.lngContractFactList || [])
|
Object.assign(dataListContractFact.value, formState.lngContractFactList || [])
|
||||||
Object.assign(dataListAppro.value, formState.lngApproVoList || [])
|
Object.assign(dataListAppro.value, formState.lngApproVoList || [])
|
||||||
Object.assign(dataListPoint.value, formState.lngContractTransPngList || [])
|
Object.assign(dataListPrice.value, formState.lngContractTransPngList || [])
|
||||||
Object.assign(dataListPrice.value, formState.lngPriceTransPngDtlList || [])
|
|
||||||
formState.dateSign = formState.dateSign ? dayjs(formState.dateSign) : null
|
formState.dateSign = formState.dateSign ? dayjs(formState.dateSign) : null
|
||||||
formState.dateFrom = formState.dateFrom ? dayjs(formState.dateFrom) : null
|
formState.dateFrom = formState.dateFrom ? dayjs(formState.dateFrom) : null
|
||||||
formState.dateTo = formState.dateTo ? dayjs(formState.dateTo) : null
|
formState.dateTo = formState.dateTo ? dayjs(formState.dateTo) : null
|
||||||
|
dataListPrice.value.forEach(v =>{
|
||||||
|
v.lngPriceTransPngList.forEach(k => {
|
||||||
|
k.dateFromNew = k.dateFrom ? dayjs(k.dateFrom) : null
|
||||||
|
k.dateToF = k.dateToF ? dayjs(k.dateToF) : null
|
||||||
|
k.dateToY = k.dateToY ? dayjs(k.dateToY) : null
|
||||||
|
k.lngPriceTransPngDtlList = k.lngPriceTransPngDtlList || []
|
||||||
|
if (isDisable.value) {
|
||||||
|
k.lngPriceTransPngDtlList =DataFormat.format(k.lngPriceTransPngDtlList, [
|
||||||
|
FormatOption.createQty('qtyM3'),
|
||||||
|
FormatOption.createQty('priceTransM3'),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
dataListAppro.value.forEach(v => {
|
dataListAppro.value.forEach(v => {
|
||||||
// v.approId = v.id
|
// v.approId = v.id
|
||||||
})
|
})
|
||||||
@ -350,6 +438,7 @@
|
|||||||
async function getOption() {
|
async function getOption() {
|
||||||
optionSelect.kPeriodList = await getDictionary('LNG_K_PER')
|
optionSelect.kPeriodList = await getDictionary('LNG_K_PER')
|
||||||
optionSelect.approCodeList = await getDictionary('LNG_APPRO')
|
optionSelect.approCodeList = await getDictionary('LNG_APPRO')
|
||||||
|
optionSelect.dateToCodeList = await getDictionary('LNG_D_TO')
|
||||||
optionSelect.curCodeList = await getAllCurrency()
|
optionSelect.curCodeList = await getAllCurrency()
|
||||||
|
|
||||||
if (!pageId.value) {
|
if (!pageId.value) {
|
||||||
@ -417,20 +506,41 @@
|
|||||||
openModalDownLoad(true,{isUpdate: false, type: val})
|
openModalDownLoad(true,{isUpdate: false, type: val})
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
const addTable= (idx,idxk) => {
|
||||||
const handleAdd = (type)=> {
|
dataListPrice.value[idx].lngPriceTransPngList[idxk].lngPriceTransPngDtlList.push({
|
||||||
if (type =='point') {
|
sortDesc:null,priceTransM3:null,
|
||||||
dataListPoint.value.push({pointUpCode: '',pointDelyCode: ''})
|
sort:dataListPrice.value[idx].lngPriceTransPngList[idxk].lngPriceTransPngDtlList.length+1
|
||||||
} else {
|
})
|
||||||
dataListPrice.value.push({sortDesc:'',qtyM3:'',priceTransM3:''})
|
|
||||||
}
|
}
|
||||||
|
const deleteTable= (idx,idxk,index) => {
|
||||||
|
dataListPrice.value[idx].lngPriceTransPngList[idxk].lngPriceTransPngDtlList.splice(index, 1)
|
||||||
}
|
}
|
||||||
const handleDelete= (type,index) => {
|
const numCount = (record)=> {
|
||||||
if (type == 'point') {
|
record.qtyGj = Number(record.qtyM3)*Number(rateCode.value)
|
||||||
dataListPoint.value.splice(index, 1)
|
record.priceTransGj = Number(record.priceTransM3)*Number(rateCode.value)
|
||||||
} else {
|
record.qtyGj = record.qtyGj ? record.qtyGj.toFixed(3): ''
|
||||||
|
record.priceTransGj = record.priceTransGj ? record.priceTransGj.toFixed(4): ''
|
||||||
|
}
|
||||||
|
const addPrice = (idx) => {
|
||||||
|
dataListPrice.value[idx].lngPriceTransPngList.push({
|
||||||
|
lngPriceTransPngDtlList:[]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const deletePrice= (idx, index) => {
|
||||||
|
if (dataListPrice.value[idx].lngPriceTransPngList.length ==1)return
|
||||||
|
dataListPrice.value[idx].lngPriceTransPngList.splice(index, 1)
|
||||||
|
}
|
||||||
|
const handleAdd = ()=> {
|
||||||
|
dataListPrice.value.push({
|
||||||
|
lngPriceTransPngList: [
|
||||||
|
{lngPriceTransPngDtlList: []}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const handleDelete= (index) => {
|
||||||
|
if (dataListPrice.value.length ==1)return
|
||||||
dataListPrice.value.splice(index, 1)
|
dataListPrice.value.splice(index, 1)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleSuccess = (val) => {
|
const handleSuccess = (val) => {
|
||||||
@ -465,11 +575,11 @@
|
|||||||
}
|
}
|
||||||
const handleSuccessDownLoad = (val, type) => {
|
const handleSuccessDownLoad = (val, type) => {
|
||||||
if (type == 'up') {
|
if (type == 'up') {
|
||||||
dataListPoint.value[curIdx.value].pointUpCode = val[0].code
|
dataListPrice.value[curIdx.value].pointUpCode = val[0].code
|
||||||
dataListPoint.value[curIdx.value].pointUpName = val[0].fullName
|
dataListPrice.value[curIdx.value].pointUpName = val[0].fullName
|
||||||
} else {
|
} else {
|
||||||
dataListPoint.value[curIdx.value].pointDelyName = val[0].fullName
|
dataListPrice.value[curIdx.value].pointDelyName = val[0].fullName
|
||||||
dataListPoint.value[curIdx.value].pointDelyCode = val[0].code
|
dataListPrice.value[curIdx.value].pointDelyCode = val[0].code
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -492,28 +602,50 @@
|
|||||||
async function handleSubmit(type) {
|
async function handleSubmit(type) {
|
||||||
try {
|
try {
|
||||||
await formRef.value.validateFields();
|
await formRef.value.validateFields();
|
||||||
for(let i=0; i<dataListPoint.value.length; i++) {
|
for(let i=0; i<dataListPrice.value.length; i++) {
|
||||||
let isFlag = !dataListPoint.value[i].pointUpCode || !dataListPoint.value[i].pointDelyCode
|
let isFlag = !dataListPrice.value[i].pointUpCode || !dataListPrice.value[i].pointDelyCode
|
||||||
if (isFlag) {
|
if (isFlag) {
|
||||||
message.warn('请完善业务信息必选项')
|
message.warn('请完善业务信息上下载点必选项')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
for(let k=0; k<dataListPrice.value[i].lngPriceTransPngList.length; k++) {
|
||||||
|
let a = dataListPrice.value[i].lngPriceTransPngList[k]
|
||||||
|
let flag = !a.dateFrom || !a.dateToCode || (a.dateToCode=='F'&&!a.dateToF) || (a.dateToCode=='Y'&&!a.dateToY)
|
||||||
|
if (flag) {
|
||||||
|
message.warn('请完善管输价格必选项8')
|
||||||
|
return
|
||||||
}
|
}
|
||||||
for(let i=0; i<dataListPrice.value.length; i++) {
|
dataListPrice.value[i].lngPriceTransPngList[k].dateFrom = dataListPrice.value[i].lngPriceTransPngList[k].dateFrom ? dayjs(dataListPrice.value[i].lngPriceTransPngList[k].dateFrom).format('YYYY-MM-DD HH:mm:ss'):null
|
||||||
let isFlag = dataListPrice.value[i].sortDesc == null || dataListPrice.value[i].sortDesc === ''|| dataListPrice.value[i].priceTransM3 == null || dataListPrice.value[i].priceTransM3 === ''
|
dataListPrice.value[i].lngPriceTransPngList[k].dateFromNew = dataListPrice.value[i].lngPriceTransPngList[k].dateFromNew ? dayjs(dataListPrice.value[i].lngPriceTransPngList[k].dateFromNew).format('YYYY-MM-DD HH:mm:ss') : null
|
||||||
if (isFlag) {
|
dataListPrice.value[i].lngPriceTransPngList[k].dateToF = dataListPrice.value[i].lngPriceTransPngList[k].dateToF ? dayjs(dataListPrice.value[i].lngPriceTransPngList[k].dateToF).format('YYYY-MM-DD HH:mm:ss') : null
|
||||||
|
dataListPrice.value[i].lngPriceTransPngList[k].dateToY = dataListPrice.value[i].lngPriceTransPngList[k].dateToY ? dayjs(dataListPrice.value[i].lngPriceTransPngList[k].dateToY).format('MM-DD') : null
|
||||||
|
dataListPrice.value[i].lngPriceTransPngList[k].comId = formState.comId
|
||||||
|
dataListPrice.value[i].lngPriceTransPngList[k].suCode = formState.cpCode
|
||||||
|
dataListPrice.value[i].lngPriceTransPngList[k].pointDelyCode = dataListPrice.value[i].pointDelyCode
|
||||||
|
dataListPrice.value[i].lngPriceTransPngList[k].pointUpCode = dataListPrice.value[i].pointUpCode
|
||||||
|
let arr = dataListPrice.value[i].lngPriceTransPngList[k].lngPriceTransPngDtlList || []
|
||||||
|
for(let i=0; i<arr.length; i++) {
|
||||||
|
let isFlag = arr[i].sortDesc == null || arr[i].sortDesc === ''|| arr[i].priceTransM3 == null || arr[i].priceTransM3 === ''
|
||||||
|
let isFlagNew = false
|
||||||
|
if (arr[i].sort <arr.length && (arr[i].qtyM3 == '' || arr[i].qtyM3 == null)) {
|
||||||
|
isFlagNew = true
|
||||||
|
}
|
||||||
|
if (isFlag || isFlagNew) {
|
||||||
message.warn('请完善管输价格必选项')
|
message.warn('请完善管输价格必选项')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
let obj = {
|
let obj = {
|
||||||
...formState,
|
...formState,
|
||||||
lngContractTransPngList: dataListPoint.value,
|
lngContractTransPngList: dataListPrice.value,
|
||||||
lngFileUploadList: dataFile.value,
|
lngFileUploadList: dataFile.value,
|
||||||
lngContractFactRelList: dataListContractFact.value,
|
lngContractFactRelList: dataListContractFact.value,
|
||||||
lngContractApproRelList: dataListAppro.value,
|
lngContractApproRelList: dataListAppro.value,
|
||||||
lngPriceTransPngDtlList: dataListPrice.value,
|
|
||||||
approCode: pageType.value=='update' ? 'WTJ' : formState.approCode
|
approCode: pageType.value=='update' ? 'WTJ' : formState.approCode
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -572,5 +704,14 @@
|
|||||||
.redStyle {
|
.redStyle {
|
||||||
color: red;
|
color: red;
|
||||||
}
|
}
|
||||||
|
.tbStyle {
|
||||||
|
border: 1px dashed #d9d9d9;
|
||||||
|
padding: 10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
.tb-box {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -364,6 +364,7 @@
|
|||||||
(val) => {
|
(val) => {
|
||||||
if (val) {
|
if (val) {
|
||||||
formState.value = val
|
formState.value = val
|
||||||
|
datePlanChange(formState.value.datePlan)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -224,7 +224,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<a-button v-if="!isDisable" type="primary" style="margin-bottom: 10px;" @click="handleAdd('certificate')">新增证书</a-button>
|
<a-button v-if="!isDisable" type="primary" style="margin-bottom: 10px;" @click="handleAdd('certificate')">新增证书</a-button>
|
||||||
<a-table :columns="columnsCertificate" :data-source="dataCertificate" >
|
<a-table :columns="columnsCertificate" :data-source="dataCertificate" :pagination="false">
|
||||||
<template #bodyCell="{ column, record, index }">
|
<template #bodyCell="{ column, record, index }">
|
||||||
<template v-if="column.dataIndex === 'dateFrom'">
|
<template v-if="column.dataIndex === 'dateFrom'">
|
||||||
{{ record.dateFrom ? dayjs(record.dateFrom).format('YYYY-MM-DD') : ''}}
|
{{ record.dateFrom ? dayjs(record.dateFrom).format('YYYY-MM-DD') : ''}}
|
||||||
@ -254,7 +254,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<a-button v-if="!isDisable" type="primary" style="margin-bottom: 10px;" @click="handleAdd('bank')">新增银行账户</a-button>
|
<a-button v-if="!isDisable" type="primary" style="margin-bottom: 10px;" @click="handleAdd('bank')">新增银行账户</a-button>
|
||||||
<a-table :columns="columnsBank" :data-source="dataBank" >
|
<a-table :columns="columnsBank" :data-source="dataBank" :pagination="false" >
|
||||||
<template #bodyCell="{ column, record, index }">
|
<template #bodyCell="{ column, record, index }">
|
||||||
<template v-if="column.dataIndex === 'defaultSign'">
|
<template v-if="column.dataIndex === 'defaultSign'">
|
||||||
{{ (optionSelect.signList.find(v=>v.code == record.defaultSign) || {}).name }}
|
{{ (optionSelect.signList.find(v=>v.code == record.defaultSign) || {}).name }}
|
||||||
@ -275,7 +275,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<a-button v-if="!isDisable" type="primary" style="margin-bottom: 10px;" @click="handleAdd('contact')">新增联系人</a-button>
|
<a-button v-if="!isDisable" type="primary" style="margin-bottom: 10px;" @click="handleAdd('contact')">新增联系人</a-button>
|
||||||
<a-table :columns="columnsContact" :data-source="dataContact" >
|
<a-table :columns="columnsContact" :data-source="dataContact" :pagination="false">
|
||||||
<template #bodyCell="{ column, record, index }">
|
<template #bodyCell="{ column, record, index }">
|
||||||
<template v-if="column.dataIndex === 'operation'">
|
<template v-if="column.dataIndex === 'operation'">
|
||||||
<a style="margin-right: 10px" @click="btnCheck('contact', 'edit', record, index)">编辑</a>
|
<a style="margin-right: 10px" @click="btnCheck('contact', 'edit', record, index)">编辑</a>
|
||||||
|
|||||||
@ -167,7 +167,7 @@ export const formProps: FormProps = {
|
|||||||
label: '客户组编码',
|
label: '客户组编码',
|
||||||
type: 'input',
|
type: 'input',
|
||||||
component: 'Input',
|
component: 'Input',
|
||||||
colProps: { span: 12 },
|
colProps: { span: 24 },
|
||||||
defaultValue: '',
|
defaultValue: '',
|
||||||
componentProps: {
|
componentProps: {
|
||||||
width: '100%',
|
width: '100%',
|
||||||
@ -201,7 +201,7 @@ export const formProps: FormProps = {
|
|||||||
label: '类型',
|
label: '类型',
|
||||||
type: 'select',
|
type: 'select',
|
||||||
component: 'XjrSelect',
|
component: 'XjrSelect',
|
||||||
colProps: { span: 12 },
|
colProps: { span: 8 },
|
||||||
componentProps: {
|
componentProps: {
|
||||||
width: '100%',
|
width: '100%',
|
||||||
span: '',
|
span: '',
|
||||||
@ -247,7 +247,7 @@ export const formProps: FormProps = {
|
|||||||
type: 'slot',
|
type: 'slot',
|
||||||
slotName: 'dateFrom',
|
slotName: 'dateFrom',
|
||||||
component: 'DatePicker',
|
component: 'DatePicker',
|
||||||
colProps: { span: 12 },
|
colProps: { span: 8 },
|
||||||
defaultValue: '',
|
defaultValue: '',
|
||||||
componentProps: {
|
componentProps: {
|
||||||
span: '',
|
span: '',
|
||||||
@ -277,7 +277,7 @@ export const formProps: FormProps = {
|
|||||||
type: 'slot',
|
type: 'slot',
|
||||||
slotName: 'dateTo',
|
slotName: 'dateTo',
|
||||||
component: 'DatePicker',
|
component: 'DatePicker',
|
||||||
colProps: { span: 12 },
|
colProps: { span: 8 },
|
||||||
defaultValue: '',
|
defaultValue: '',
|
||||||
componentProps: {
|
componentProps: {
|
||||||
span: '',
|
span: '',
|
||||||
|
|||||||
@ -155,7 +155,7 @@ export const formProps: FormProps = {
|
|||||||
label: '评价体系名称',
|
label: '评价体系名称',
|
||||||
type: 'input',
|
type: 'input',
|
||||||
component: 'Input',
|
component: 'Input',
|
||||||
colProps: { span: 12 },
|
colProps: { span: 8 },
|
||||||
defaultValue: '',
|
defaultValue: '',
|
||||||
componentProps: {
|
componentProps: {
|
||||||
width: '100%',
|
width: '100%',
|
||||||
@ -189,7 +189,7 @@ export const formProps: FormProps = {
|
|||||||
label: '评价对象',
|
label: '评价对象',
|
||||||
type: 'select',
|
type: 'select',
|
||||||
component: 'XjrSelect',
|
component: 'XjrSelect',
|
||||||
colProps: { span: 12 },
|
colProps: { span: 8 },
|
||||||
componentProps: {
|
componentProps: {
|
||||||
width: '100%',
|
width: '100%',
|
||||||
span: '',
|
span: '',
|
||||||
|
|||||||
@ -45,7 +45,7 @@
|
|||||||
</a-row>
|
</a-row>
|
||||||
</Card>
|
</Card>
|
||||||
<Card title="填写评分表信息" :bordered="false" >
|
<Card title="填写评分表信息" :bordered="false" >
|
||||||
<a-table :columns="columns" :data-source="dataList" >
|
<a-table :columns="columns" :data-source="dataList" :pagination="false" :scroll="{x: 500}">
|
||||||
<template #bodyCell="{ column, record, index }">
|
<template #bodyCell="{ column, record, index }">
|
||||||
<template v-if="column.dataIndex === 'score'">
|
<template v-if="column.dataIndex === 'score'">
|
||||||
<a-input-number v-model:value="record.score" :disabled="isDisable" @change="numChagne('score', record, index)"/>
|
<a-input-number v-model:value="record.score" :disabled="isDisable" @change="numChagne('score', record, index)"/>
|
||||||
@ -140,8 +140,8 @@
|
|||||||
{ title: t('评分'), dataIndex: 'score', },
|
{ title: t('评分'), dataIndex: 'score', },
|
||||||
{ title: t('分数说明'), dataIndex: 'scoreDesc', },
|
{ title: t('分数说明'), dataIndex: 'scoreDesc', },
|
||||||
{ title: t('评价人'), dataIndex: 'aEmpName', },
|
{ title: t('评价人'), dataIndex: 'aEmpName', },
|
||||||
{ title: t('评价时间'), dataIndex: 'aTime', },
|
{ title: t('评价时间'), dataIndex: 'aTime', width: 150},
|
||||||
{ title: t('实际评价部门'), dataIndex: 'aDeptName', },
|
{ title: t('实际评价部门'), dataIndex: 'aDeptName', width: 150},
|
||||||
]);
|
]);
|
||||||
const dataList= ref([]);
|
const dataList= ref([]);
|
||||||
const dataFile = ref([]);
|
const dataFile = ref([]);
|
||||||
|
|||||||
@ -142,7 +142,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<a-button v-if="!isDisable" type="primary" style="margin-bottom: 10px;" @click="handleAdd('certificate')">新增证书</a-button>
|
<a-button v-if="!isDisable" type="primary" style="margin-bottom: 10px;" @click="handleAdd('certificate')">新增证书</a-button>
|
||||||
<a-table :columns="columnsCertificate" :data-source="dataCertificate" >
|
<a-table :columns="columnsCertificate" :data-source="dataCertificate" :pagination="false">
|
||||||
<template #bodyCell="{ column, record, index }">
|
<template #bodyCell="{ column, record, index }">
|
||||||
<template v-if="column.dataIndex === 'dateFrom'">
|
<template v-if="column.dataIndex === 'dateFrom'">
|
||||||
{{ record.dateFrom ? dayjs(record.dateFrom).format('YYYY-MM-DD') : ''}}
|
{{ record.dateFrom ? dayjs(record.dateFrom).format('YYYY-MM-DD') : ''}}
|
||||||
@ -172,7 +172,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<a-button v-if="!isDisable" type="primary" style="margin-bottom: 10px;" @click="handleAdd('bank')">新增银行账户</a-button>
|
<a-button v-if="!isDisable" type="primary" style="margin-bottom: 10px;" @click="handleAdd('bank')">新增银行账户</a-button>
|
||||||
<a-table :columns="columnsBank" :data-source="dataBank" >
|
<a-table :columns="columnsBank" :data-source="dataBank" :pagination="false">
|
||||||
<template #bodyCell="{ column, record, index }">
|
<template #bodyCell="{ column, record, index }">
|
||||||
<template v-if="column.dataIndex === 'defaultSign'">
|
<template v-if="column.dataIndex === 'defaultSign'">
|
||||||
{{ (optionSelect.signList.find(v=>v.code == record.defaultSign) || {}).name }}
|
{{ (optionSelect.signList.find(v=>v.code == record.defaultSign) || {}).name }}
|
||||||
@ -193,7 +193,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<a-button v-if="!isDisable" type="primary" style="margin-bottom: 10px;" @click="handleAdd('contact')">新增联系人</a-button>
|
<a-button v-if="!isDisable" type="primary" style="margin-bottom: 10px;" @click="handleAdd('contact')">新增联系人</a-button>
|
||||||
<a-table :columns="columnsContact" :data-source="dataContact" >
|
<a-table :columns="columnsContact" :data-source="dataContact" :pagination="false">
|
||||||
<template #bodyCell="{ column, record, index }">
|
<template #bodyCell="{ column, record, index }">
|
||||||
<template v-if="column.dataIndex === 'operation'">
|
<template v-if="column.dataIndex === 'operation'">
|
||||||
<a style="margin-right: 10px" @click="btnCheck('contact', 'edit', record, index)">编辑</a>
|
<a style="margin-right: 10px" @click="btnCheck('contact', 'edit', record, index)">编辑</a>
|
||||||
|
|||||||
Reference in New Issue
Block a user