选商结果功能完善
This commit is contained in:
parent
daec624df2
commit
40e5205ccb
|
@ -547,6 +547,15 @@ export default {
|
|||
/** 合同系统/履行/履行提示/合同变更 获取合同变更信息 */
|
||||
get_getContractChangeInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/lvxChange/getContractChangeInfo', data),
|
||||
/** 合同系统/履行/履行提示/合同变更 查询流程未配置人员节点 */
|
||||
get_getFlowNodeUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/lvxChange/getFlowNodeUserConfig', data),
|
||||
/** 合同系统/履行/履行提示/合同变更 流程启动 */
|
||||
post_startWorkFlow: (data?: BodyOptions) =>
|
||||
http.post('/app/lvxChange/startWorkFlow', data),
|
||||
/** 合同系统/履行/履行提示/合同变更 审核通过 */
|
||||
post_submit: (data?: BodyOptions) =>
|
||||
http.post('/app/lvxChange/submit', data),
|
||||
},
|
||||
contractRelieve: {
|
||||
/** 合同系统/履行/履行提示/合同解除 获取合同解除信息 */
|
||||
|
@ -579,6 +588,11 @@ export default {
|
|||
lvxResult: {
|
||||
/** 合同系统/履行/履行结果 履行结果保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/lvxResult/save', data),
|
||||
/** 合同系统/履行/履行结果 分页履行结果查询 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/lvxResult/page', data),
|
||||
/** 合同系统/履行/履行结果 已办 */
|
||||
get_pageDone: (data?: QueryOptions) =>
|
||||
http.get('/app/lvxResult/pageDone', data),
|
||||
},
|
||||
contractFiling: {
|
||||
/** 合同系统/履行/履行提示/临时归档 保存临时归档信息 */
|
||||
|
@ -641,7 +655,7 @@ export default {
|
|||
/** 合同系统/签订 获取合同签订信息 */
|
||||
get_getContractSignInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/qdSign/getContractSignInfo', data),
|
||||
/** 合同系统/签订 打印签订审批表 */
|
||||
/** 合同系统/打印 选商打印 */
|
||||
get_printApprove: (data?: QueryOptions) =>
|
||||
http.get('/app/qdSign/printApprove', data),
|
||||
/** 合同系统/签订 打印文本 */
|
||||
|
@ -806,6 +820,15 @@ export default {
|
|||
/** 合同系统/选商/选商结果 待审核 */
|
||||
get_toDoPage: (data?: QueryOptions) =>
|
||||
http.get('/app/biddingResult/toDoPage', data),
|
||||
/** 合同系统/选商/选商结果 查询合同信息 */
|
||||
get_getContractInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/biddingResult/getContractInfo', data),
|
||||
/** 合同系统/选商/选商结果 查询供应商列表 */
|
||||
get_getProviderInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/biddingResult/getProviderInfo', data),
|
||||
/** 合同系统/选商/选商结果 选商专家列表 */
|
||||
get_queryBiddingExpert: (data?: QueryOptions) =>
|
||||
http.get('/app/biddingResult/queryBiddingExpert', data),
|
||||
},
|
||||
home: {
|
||||
/** 合同系统/首页待办/已办 首页待办 */
|
||||
|
@ -859,8 +882,8 @@ export default {
|
|||
/** 设备管理/设备静态库管理/设备调拨 调拨信息保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/equAllot/save', data),
|
||||
/** 设备管理/设备静态库管理/设备调拨 调拨信息删除 */
|
||||
post_delete: (data?: BodyOptions) =>
|
||||
http.post('/app/equAllot/delete', data),
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/equAllot/deletes', data),
|
||||
},
|
||||
bidding: {
|
||||
/** 合同系统/标段信息 标段查询 */
|
||||
|
@ -870,6 +893,9 @@ export default {
|
|||
/** 合同系统/标段信息 标段信息删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/bidding/deletes', data),
|
||||
/** 合同系统/选商/选商结果 查询标段列表 */
|
||||
get_getBuddingPtInfoList: (data?: QueryOptions) =>
|
||||
http.get('/app/bidding/getBuddingPtInfoList', data),
|
||||
},
|
||||
equAccident: {
|
||||
/** 设备管理/设备使用管理/事故处理 事故处理(查询/获取) */
|
||||
|
@ -915,8 +941,8 @@ export default {
|
|||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/equDayRepair/save', data),
|
||||
/** 设备管理/设备使用管理/日常维修 删除 */
|
||||
get_deletes: (data?: QueryOptions) =>
|
||||
http.get('/app/equDayRepair/deletes', data),
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/equDayRepair/deletes', data),
|
||||
/** 设备管理/查询管理/日常维修查询 查询 */
|
||||
get_query: (data?: QueryOptions) =>
|
||||
http.get('/app/equDayRepair/query', data),
|
||||
|
|
|
@ -636,7 +636,10 @@ onMounted(async () => {
|
|||
保存
|
||||
</vben-button>
|
||||
<vben-button
|
||||
v-if="['smEdit'].includes(selectMerchantsBasicInfo.step)"
|
||||
v-if="
|
||||
!selectMerchantsBasicInfoId ||
|
||||
['smEdit'].includes(selectMerchantsBasicInfo.step)
|
||||
"
|
||||
:disabled="!selectMerchantsBasicInfoId"
|
||||
variant="primary"
|
||||
@click="handleSubmit('openModal')"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { onMounted, ref } from 'vue';
|
||||
import { nextTick, onMounted, ref } from 'vue';
|
||||
|
||||
import { useVbenModal } from '@vben/common-ui';
|
||||
|
||||
|
@ -12,12 +12,14 @@ import chooseCompanyModal from '../../company/list/choose-company-modal.vue';
|
|||
|
||||
const props = withDefaults(
|
||||
defineProps<{
|
||||
businseeData: any;
|
||||
contractId: string;
|
||||
projectId: string;
|
||||
}>(),
|
||||
{
|
||||
contractId: '',
|
||||
projectId: '',
|
||||
businseeData: () => ({}),
|
||||
},
|
||||
);
|
||||
|
||||
|
@ -33,12 +35,10 @@ const companyChooseType = ref<'biddingProvider' | 'providerPt'>('providerPt');
|
|||
|
||||
/** 必填字段校验 */
|
||||
const requiredFieldRules: any = {
|
||||
// contractName: { required: true, message: "合同名称不得为空" },
|
||||
// ctrType: { required: true, message: "合同类别不得为空" },
|
||||
// ctrTwoType: { required: true, message: "合同二级类别不得为空" },
|
||||
// fundAllocation: { required: true, message: "资金流向不得为空" },
|
||||
// fundDitch: { required: true, message: "资金渠道不得为空" },
|
||||
// organiza: { required: true, message: "组织形式不得为空" },
|
||||
openDate: { required: true, message: '开标时间不得为空' },
|
||||
openPlace: { required: true, message: '开标地点不得为空' },
|
||||
participant: { required: true, message: '参加人不得为空' },
|
||||
processDesc: { required: true, message: '过程描述不得为空' },
|
||||
};
|
||||
|
||||
/** 必填字段校验,如果是必填字段则返回对应message */
|
||||
|
@ -51,6 +51,7 @@ function isRequired(field: string): string {
|
|||
}
|
||||
|
||||
const biddingExpertRef = ref();
|
||||
const bidList = ref<any[]>([]);
|
||||
|
||||
const biddingExpertList = ref([]);
|
||||
|
||||
|
@ -71,14 +72,17 @@ function onAddProviderPt(type: string, data?: any) {
|
|||
chooseCompanyModalApi.setData({
|
||||
title: '选择单位',
|
||||
limitMultipleNum: 5,
|
||||
guids: tableFullData.map((item) => item.guid) || [],
|
||||
guids: tableFullData.map((item) => item._guid) || [],
|
||||
});
|
||||
chooseCompanyModalApi.open();
|
||||
}
|
||||
|
||||
if (type === 'confirm') {
|
||||
console.log(data);
|
||||
data.map((item) => (item.guid = undefined));
|
||||
data.map((item) => {
|
||||
item._guid = item.guid;
|
||||
item.guid = undefined;
|
||||
});
|
||||
providerPtRef1.value.insert(data);
|
||||
providerPtRef2.value.insert(data);
|
||||
}
|
||||
|
@ -87,19 +91,22 @@ function onAddProviderPt(type: string, data?: any) {
|
|||
function onAddBiddingProvider(type: string, data?: any) {
|
||||
companyChooseType.value = 'biddingProvider';
|
||||
const tableFullData = biddingProviderRef.value.getTableData()?.fullData || [];
|
||||
|
||||
console.log(tableFullData);
|
||||
if (type === 'openModal') {
|
||||
chooseCompanyModalApi.setData({
|
||||
title: '选择单位',
|
||||
limitMultipleNum: 1,
|
||||
guids: tableFullData.map((item) => item.guid) || [],
|
||||
guids: [],
|
||||
});
|
||||
chooseCompanyModalApi.open();
|
||||
}
|
||||
|
||||
if (type === 'confirm') {
|
||||
console.log(data);
|
||||
data.map((item) => (item.guid = undefined));
|
||||
data.map((item) => {
|
||||
item._guid = item.guid;
|
||||
item.guid = undefined;
|
||||
});
|
||||
biddingProviderRef.value.loadData(data);
|
||||
}
|
||||
}
|
||||
|
@ -125,10 +132,10 @@ function onRemoveProviderPtRow(row) {
|
|||
}
|
||||
|
||||
function handleChooseCompanyConfirm(e) {
|
||||
if (companyChooseType.value == 'providerPt') {
|
||||
if (companyChooseType.value === 'providerPt') {
|
||||
onAddProviderPt('confirm', e);
|
||||
}
|
||||
if (companyChooseType.value == 'biddingProvider') {
|
||||
if (companyChooseType.value === 'biddingProvider') {
|
||||
onAddBiddingProvider('confirm', e);
|
||||
}
|
||||
}
|
||||
|
@ -139,12 +146,17 @@ async function verify() {
|
|||
for (const field of Object.keys(requiredFieldRules)) {
|
||||
if (!biddingResult.value[field]) {
|
||||
message.error(isRequired(field));
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function getFormData() {
|
||||
async function getFormData() {
|
||||
if (!(await verify())) {
|
||||
return;
|
||||
}
|
||||
|
||||
const _fullData1 = providerPtRef1.value.getTableData().fullData;
|
||||
const _fullData2 = providerPtRef2.value.getTableData().fullData;
|
||||
const _fullData3 = biddingExpertRef.value.getTableData().fullData;
|
||||
|
@ -152,6 +164,64 @@ function getFormData() {
|
|||
|
||||
console.log(_fullData1, _fullData2, _fullData3, _fullData4);
|
||||
|
||||
if (_fullData1.length === 0) {
|
||||
message.error('请添加标段信息');
|
||||
return;
|
||||
}
|
||||
|
||||
for (const item of _fullData1) {
|
||||
if (!item.bidPlace) {
|
||||
message.error('请补全标段信息中的投标地点');
|
||||
return;
|
||||
}
|
||||
if (!item.bidMoney) {
|
||||
message.error('请补全标段信息中的投标保证金');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (_fullData3.length === 0) {
|
||||
message.error('请添加专家信息');
|
||||
return;
|
||||
}
|
||||
for (const item of _fullData3) {
|
||||
if (!item.expertName) {
|
||||
message.error('请补全专家信息中的评委姓名');
|
||||
return;
|
||||
}
|
||||
if (!item.expertSex) {
|
||||
message.error('请补全专家信息中的性别');
|
||||
return;
|
||||
}
|
||||
// if (!item.expertAge) {
|
||||
// message.error('请补全专家信息中的年龄');
|
||||
// return;
|
||||
// }
|
||||
// if (!item.expertDepartName) {
|
||||
// message.error('请补全专家信息中的部门');
|
||||
// return;
|
||||
// }
|
||||
// if (!item.professionTypeName) {
|
||||
// message.error('请补全专家信息中的专业');
|
||||
// return;
|
||||
// }
|
||||
// if (!item.titleTypeName) {
|
||||
// message.error('请补全专家信息中的职称');
|
||||
// return;
|
||||
// }
|
||||
// if (!item.positionName) {
|
||||
// message.error('请补全专家信息中的职务');
|
||||
// return;
|
||||
// }
|
||||
}
|
||||
|
||||
for (const item of _fullData2) {
|
||||
if (!item.offerMoney) {
|
||||
message.error('请补全单位报价及评标信息中的报价');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
const data1: any[] = [];
|
||||
|
||||
for (const item1 of _fullData1) {
|
||||
|
@ -159,6 +229,7 @@ function getFormData() {
|
|||
if (item1.providerId === item2.providerId) {
|
||||
data1.push({
|
||||
...item1,
|
||||
phasePtId: '99999',
|
||||
offerMoney: item2.offerMoney,
|
||||
bidScore: item2.bidScore,
|
||||
bidDesc: item2.bidDesc,
|
||||
|
@ -172,6 +243,7 @@ function getFormData() {
|
|||
tempBiddingResult.projectId = props.projectId;
|
||||
const tempBiddingPtInfo = JSON.parse(JSON.stringify(biddingPtInfo.value));
|
||||
tempBiddingPtInfo.projectId = props.projectId;
|
||||
tempBiddingPtInfo.phasePtId = '99999';
|
||||
_fullData3.map((item) => (item.projectId = props.projectId));
|
||||
|
||||
const form = {
|
||||
|
@ -186,6 +258,53 @@ function getFormData() {
|
|||
|
||||
onMounted(async () => {
|
||||
try {
|
||||
// 查询供应商信息;
|
||||
let providerData = await Apis.contractRecommendProvider.get_list({
|
||||
params: {
|
||||
contractId: props.contractId,
|
||||
},
|
||||
});
|
||||
providerData = providerData.rows || [];
|
||||
|
||||
// 查询
|
||||
nextTick(() => {
|
||||
providerPtRef1.value.loadData(providerData);
|
||||
providerPtRef2.value.loadData(providerData);
|
||||
});
|
||||
|
||||
// if (props.businseeData.frameProtocol === '1') {
|
||||
// for (const item of bidList.value) {
|
||||
// const rows = [];
|
||||
// for (const provider of providerData) {
|
||||
// if (item.phaseSeq == provider.phaseSeq) {
|
||||
// rows.push(provider);
|
||||
// }
|
||||
// }
|
||||
// item.providerList = rows;
|
||||
// // nextTick(() => {
|
||||
// // providerGridRefs.value.get(`${item.phaseSeq}`).insert(rows);
|
||||
// // });
|
||||
// }
|
||||
// } else {
|
||||
// nextTick(() => {
|
||||
// providerPtRef1.value.loadData(providerData);
|
||||
// providerPtRef2.value.loadData(providerData);
|
||||
// // providerGridRefs2.value.insert(providerData);
|
||||
// });
|
||||
// }
|
||||
|
||||
// 查询专家信息
|
||||
const expertData = await Apis.biddingResult.get_queryBiddingExpert({
|
||||
params: {
|
||||
projectId: props.projectId,
|
||||
contractId: props.contractId,
|
||||
},
|
||||
});
|
||||
console.log('专家信息', expertData);
|
||||
nextTick(() => {
|
||||
biddingExpertRef.value.loadData(expertData.rows);
|
||||
});
|
||||
|
||||
// 查询选商结果填报信息
|
||||
const data = await Apis.biddingResult.get_page({
|
||||
params: {
|
||||
|
@ -242,7 +361,11 @@ defineExpose({
|
|||
</vxe-column>
|
||||
<vxe-column field="bidMoney" title="投标保证金">
|
||||
<template #default="{ row }">
|
||||
<a-input-number v-model:value="row.bidMoney" addon-after="元" />
|
||||
<a-input-number
|
||||
v-model:value="row.bidMoney"
|
||||
:min="0"
|
||||
addon-after="元"
|
||||
/>
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column field="operate" title="" width="100">
|
||||
|
@ -330,24 +453,40 @@ defineExpose({
|
|||
</vxe-column>
|
||||
</vxe-table>
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item :span="1" label="开标时间">
|
||||
<a-descriptions-item :span="1">
|
||||
<template #label>
|
||||
<span v-if="isRequired('openDate')" class="text-red-500">*</span>
|
||||
开标时间
|
||||
</template>
|
||||
<a-date-picker
|
||||
v-model:value="biddingResult.openDate"
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
/>
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item :span="2" label="开标地点">
|
||||
<a-descriptions-item :span="2">
|
||||
<template #label>
|
||||
<span v-if="isRequired('openPlace')" class="text-red-500">*</span>
|
||||
开标地点
|
||||
</template>
|
||||
<a-input v-model:value="biddingResult.openPlace" />
|
||||
</a-descriptions-item>
|
||||
|
||||
<a-descriptions-item :span="3" label="参加人">
|
||||
<a-descriptions-item :span="3">
|
||||
<template #label>
|
||||
<span v-if="isRequired('participant')" class="text-red-500">*</span>
|
||||
参加人
|
||||
</template>
|
||||
<a-textarea
|
||||
v-model:value="biddingResult.participant"
|
||||
:auto-size="{ minRows: 2, maxRows: 5 }"
|
||||
/>
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item :span="3" label="过程描述">
|
||||
<a-descriptions-item :span="3">
|
||||
<template #label>
|
||||
<span v-if="isRequired('processDesc')" class="text-red-500">*</span>
|
||||
过程描述
|
||||
</template>
|
||||
<a-textarea
|
||||
v-model:value="biddingResult.processDesc"
|
||||
:auto-size="{ minRows: 2, maxRows: 5 }"
|
||||
|
@ -384,6 +523,7 @@ defineExpose({
|
|||
<template #default="{ row }">
|
||||
<a-input-number
|
||||
v-model:value="row.offerMoney"
|
||||
:min="0"
|
||||
addon-after="元"
|
||||
/>
|
||||
</template>
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
<script setup lang="ts">
|
||||
import { computed, onMounted, ref } from 'vue';
|
||||
import { computed, onMounted, reactive, ref } from 'vue';
|
||||
import { useRoute, useRouter } from 'vue-router';
|
||||
|
||||
import { Page, useVbenModal } from '@vben/common-ui';
|
||||
|
||||
import { message, Modal } from 'ant-design-vue';
|
||||
import { message, Modal, type UploadChangeParam } from 'ant-design-vue';
|
||||
import { logger } from 'common-utils';
|
||||
|
||||
import Apis from '#/api';
|
||||
import { FileUploader } from '#/utils/file';
|
||||
import AuditNodeTable from '#/views/contract/components/audit-node-table/audit-node-table.vue';
|
||||
import FileCard from '#/views/contract/components/file-card/file-card.vue';
|
||||
import ApprovalCard from '#/views/contract/iframe-info/components/info-approval/approval-card.vue';
|
||||
|
@ -20,11 +21,22 @@ const [ChooseUserModal, chooseUserModalApi] = useVbenModal({
|
|||
connectedComponent: chooseUserModal,
|
||||
});
|
||||
|
||||
const fileUploader = new FileUploader({});
|
||||
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const pageRef = ref();
|
||||
const fillResultCardRef = ref();
|
||||
|
||||
const formRef = ref();
|
||||
const form = reactive({
|
||||
fileList: [],
|
||||
});
|
||||
|
||||
const readOnly = computed(() => {
|
||||
return false;
|
||||
});
|
||||
|
||||
const id = ref(route.params.id);
|
||||
const flowInstanceId = ref(route.query.flowInstanceId as string);
|
||||
|
||||
|
@ -39,8 +51,8 @@ const bidList = ref<any[]>([]);
|
|||
|
||||
const submitGuid = ref();
|
||||
|
||||
const collapses = ['1', '2', '3', '4', '5'];
|
||||
// const collapses = ['5'];
|
||||
// const collapses = ['1', '2', '3', '4', '5'];
|
||||
const collapses = ['4', '5', '6'];
|
||||
const collapseActiveKey = ref(collapses);
|
||||
function areArraysEqualUnordered(arr1, arr2) {
|
||||
if (arr1.length !== arr2.length) return false;
|
||||
|
@ -55,6 +67,10 @@ function handleFold() {
|
|||
collapseActiveKey.value = isFold.value ? collapses : [];
|
||||
}
|
||||
|
||||
const handleChange = (info: UploadChangeParam) => {
|
||||
form.fileList = info.fileList.length > 0 ? info.fileList : [];
|
||||
};
|
||||
|
||||
/**
|
||||
* 页面返回并关闭tab
|
||||
*/
|
||||
|
@ -81,16 +97,33 @@ function handleBack() {
|
|||
|
||||
async function handleSave() {
|
||||
try {
|
||||
await fillResultCardRef.value.verify();
|
||||
} catch {
|
||||
message.error('请完成必填项的填写');
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const form = fillResultCardRef.value.getFormData();
|
||||
const form = await fillResultCardRef.value.getFormData();
|
||||
console.log(form);
|
||||
|
||||
if (!form) {
|
||||
return;
|
||||
}
|
||||
|
||||
{
|
||||
const tempFileList = form.fileList || [];
|
||||
let tempFiles: any = [];
|
||||
if (tempFileList.length > 0) {
|
||||
tempFiles = await fileUploader.upload(tempFileList, { source: 'ht' });
|
||||
}
|
||||
if (tempFiles) {
|
||||
form.biddingResult = (
|
||||
tempFiles.map((item) => item.fileUuid) || []
|
||||
).join(',');
|
||||
}
|
||||
}
|
||||
|
||||
const data = await Apis.biddingResult.post_save({
|
||||
params: {
|
||||
contractId: businseeData.value.contractId,
|
||||
projectId: businseeData.value.projectId,
|
||||
// isKj: currData.value.frameProtocol === '1' ? '是' : '否',
|
||||
isKj: '是',
|
||||
},
|
||||
data: form,
|
||||
});
|
||||
|
||||
|
@ -103,7 +136,7 @@ async function handleSave() {
|
|||
handleSubmit('openModal');
|
||||
},
|
||||
onCancel: () => {
|
||||
back();
|
||||
// back();
|
||||
},
|
||||
});
|
||||
} catch (error) {
|
||||
|
@ -111,23 +144,34 @@ async function handleSave() {
|
|||
}
|
||||
}
|
||||
|
||||
const nodeInfo = ref<any>({});
|
||||
const chooseUserIds = ref([]);
|
||||
|
||||
async function handleSubmit(type: 'openModal' | 'submit') {
|
||||
if (type === 'openModal') {
|
||||
// 先查询相关节点信息
|
||||
let tempNodeInfo = await Apis.biddingResult.get_getFlowNodeUserConfig({
|
||||
params: { guid: submitGuid.value },
|
||||
});
|
||||
nodeInfo.value = tempNodeInfo = tempNodeInfo.rows[0];
|
||||
|
||||
chooseUserModalApi.setData({
|
||||
title: '选择审批人',
|
||||
title: `选择${tempNodeInfo.name}(${tempNodeInfo.selectMode})`,
|
||||
limitMultipleNum: tempNodeInfo.selectMode === '多选' ? 10 : 1,
|
||||
});
|
||||
chooseUserModalApi.open();
|
||||
}
|
||||
if (type === 'submit') {
|
||||
isLoading.value = true;
|
||||
chooseUserIds.value = selectUsers.value.map((item) => item.ACCOUNT_ID);
|
||||
|
||||
try {
|
||||
// await Apis.selectMerchantsBasicInfo.post_flowStart({
|
||||
// data: {
|
||||
// guid: selectMerchantsBasicInfoId.value,
|
||||
// assigneeList: selectUsers.value.map((item) => item.ACCOUNT_ID),
|
||||
// },
|
||||
// });
|
||||
await Apis.selectMerchantsBasicInfo.post_flowStart({
|
||||
data: {
|
||||
guid: selectMerchantsBasicInfoId.value,
|
||||
assigneeList: selectUsers.value.map((item) => item.ACCOUNT_ID),
|
||||
},
|
||||
});
|
||||
message.success('提交成功');
|
||||
back();
|
||||
} catch (error) {
|
||||
|
@ -151,6 +195,8 @@ onMounted(async () => {
|
|||
const business: any = await Apis.selectMerchantsBasicInfo.get_getOne({
|
||||
params: { contractId: contract.contractId },
|
||||
});
|
||||
business.frameProtocol = contract.frameProtocol;
|
||||
|
||||
businseeData.value = business;
|
||||
}
|
||||
} catch (error) {
|
||||
|
@ -192,6 +238,23 @@ onMounted(async () => {
|
|||
>
|
||||
提交
|
||||
</vben-button>
|
||||
|
||||
<vben-button
|
||||
v-if="['paApproval'].includes(currData.step) && taskId"
|
||||
:disabled="!auditId"
|
||||
variant="primary"
|
||||
@click="handleAudit('openAccessModal')"
|
||||
>
|
||||
通过
|
||||
</vben-button>
|
||||
<vben-button
|
||||
v-if="['paApproval'].includes(currData.step) && taskId"
|
||||
:disabled="!auditId"
|
||||
variant="destructive"
|
||||
@click="handleAudit('openRejectModal')"
|
||||
>
|
||||
退回
|
||||
</vben-button>
|
||||
</template>
|
||||
<vben-button variant="secondary" @click="handleBack()">
|
||||
返回
|
||||
|
@ -224,10 +287,41 @@ onMounted(async () => {
|
|||
<FillResultCard
|
||||
v-if="businseeData.projectId"
|
||||
ref="fillResultCardRef"
|
||||
:businsee-data="businseeData"
|
||||
:contract-id="businseeData.contractId"
|
||||
:project-id="businseeData.projectId"
|
||||
/>
|
||||
</a-collapse-panel>
|
||||
|
||||
<a-collapse-panel key="6" class="w-full" header="招标相关资料上传">
|
||||
<a-form
|
||||
ref="formRef"
|
||||
:label-col="{ style: { width: '120px' } }"
|
||||
:model="form"
|
||||
>
|
||||
<a-form-item label="合同附件" name="fileList">
|
||||
<a-upload
|
||||
v-model:file-list="form.fileList"
|
||||
:before-upload="() => false"
|
||||
:max-count="3"
|
||||
accept=".pdf,.ppt,.pptx"
|
||||
name="file"
|
||||
@change="handleChange"
|
||||
>
|
||||
<a-button v-if="!readOnly">
|
||||
<MdiUpload />
|
||||
点击上传
|
||||
</a-button>
|
||||
<div
|
||||
v-if="readOnly && form.fileList.length === 0"
|
||||
class="text-gray-700"
|
||||
>
|
||||
无附件
|
||||
</div>
|
||||
</a-upload>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</a-collapse-panel>
|
||||
</a-collapse>
|
||||
</Page>
|
||||
</template>
|
||||
|
|
|
@ -140,6 +140,9 @@ function handleCloseTag(row) {
|
|||
checkRecords.value = checkRecords.value.filter(
|
||||
(item) => item.guid != row.guid,
|
||||
);
|
||||
checkRecordIds.value = checkRecordIds.value.filter(
|
||||
(item) => item != row.guid,
|
||||
);
|
||||
xGridRef.value?.setCheckboxRow(row, false);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
<script setup lang="ts">
|
||||
import type { VxeGridPropTypes } from 'vxe-table';
|
||||
|
||||
import { nextTick, onMounted, reactive, ref, watch } from 'vue';
|
||||
import { message } from 'ant-design-vue';
|
||||
|
||||
import { logger } from 'common-utils';
|
||||
|
||||
import Apis from '#/api';
|
||||
import { useVxeTable } from '#/hooks/vxeTable';
|
||||
import { getAuditInfoColumns } from '#/views/contract/schema';
|
||||
import { DICT_TYPE, getDictObj, getDictOptions } from '#/utils/dict';
|
||||
import type { VxeGridPropTypes } from 'vxe-table';
|
||||
import { useRender } from '#/hooks/useRender';
|
||||
import { useVxeTable } from '#/hooks/vxeTable';
|
||||
import { DICT_TYPE, getDictObj } from '#/utils/dict';
|
||||
|
||||
const props = withDefaults(
|
||||
defineProps<{
|
||||
|
@ -62,7 +62,7 @@ function getColumns(): any {
|
|||
/** Hooks - 表格 */
|
||||
const gridOptions = reactive(
|
||||
gridProps({
|
||||
height: '200px',
|
||||
minHeight: '120px',
|
||||
columns: getColumns(),
|
||||
data: [],
|
||||
toolbarConfig: {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<script setup lang="ts">
|
||||
import { nextTick, onMounted, reactive, ref } from 'vue';
|
||||
|
||||
import { logger } from 'common-utils';
|
||||
|
||||
import { useVxeTable } from '#/hooks/vxeTable';
|
||||
|
@ -25,7 +26,7 @@ const isLoading = ref(false);
|
|||
/** Hooks - 表格 */
|
||||
const gridOptions = reactive(
|
||||
gridProps({
|
||||
height: '200px',
|
||||
minHeight: '120px',
|
||||
columns: getColumnsByFiles({ readOnly: true }),
|
||||
data: [],
|
||||
toolbarConfig: {
|
||||
|
|
|
@ -5,7 +5,7 @@ import dayjs, { type Dayjs } from 'dayjs';
|
|||
import { DICT_TYPE, getDictOptions } from '#/utils/dict';
|
||||
|
||||
export function getFormSchema(params: any = {}) {
|
||||
const { chooseCompanyModalApi, formRef, dictMap } = params || {};
|
||||
const { chooseCompanyModalApi, formRef, dictMap, sqConsignPt } = params || {};
|
||||
|
||||
const disabledDate = (current: Dayjs) => {
|
||||
const form = formRef.value.form;
|
||||
|
@ -83,8 +83,12 @@ export function getFormSchema(params: any = {}) {
|
|||
name: 'fs-dict-select',
|
||||
vModel: 'value',
|
||||
allowClear: false,
|
||||
showSearch: true,
|
||||
filterOption: (input, option) => {
|
||||
return option.label.includes(input.toLowerCase());
|
||||
},
|
||||
dict: dict({
|
||||
data: [],
|
||||
data: sqConsignPt,
|
||||
}),
|
||||
},
|
||||
},
|
||||
|
|
|
@ -17,6 +17,8 @@ import Apis from '#/api';
|
|||
import { useVxeTable } from '#/hooks/vxeTable';
|
||||
import { DICT_TYPE, getDictDatasAsync } from '#/utils/dict';
|
||||
import { FileUploader } from '#/utils/file';
|
||||
import BasisTable from '#/views/contract/components/basis-table/basis-table.vue';
|
||||
import ApprovalCard from '#/views/contract/iframe-info/components/info-approval/approval-card.vue';
|
||||
import chooseUserModal from '#/views/system/user/choose-user-modal.vue';
|
||||
|
||||
import chooseCompanyModal from '../../company/list/choose-company-modal.vue';
|
||||
|
@ -265,6 +267,8 @@ const businessData = ref<any>({});
|
|||
|
||||
const currData = ref({});
|
||||
|
||||
const sqConsignPt = ref<any>({});
|
||||
|
||||
onMounted(async () => {
|
||||
isLoading.value = true;
|
||||
try {
|
||||
|
@ -275,6 +279,13 @@ onMounted(async () => {
|
|||
contractTypeData.value = contractReferTypeData.rows || [];
|
||||
|
||||
// 查询我方签约人
|
||||
const userData = await Apis.sqConsignPt.get_SigningaAuthorizationSerch({
|
||||
params: {},
|
||||
});
|
||||
sqConsignPt.value = userData.rows.map((item) => ({
|
||||
label: item.userPerson,
|
||||
value: item.userId,
|
||||
}));
|
||||
|
||||
const dictMap = await getDictDatasAsync(
|
||||
[
|
||||
|
@ -289,6 +300,7 @@ onMounted(async () => {
|
|||
chooseCompanyModalApi,
|
||||
formRef,
|
||||
dictMap,
|
||||
sqConsignPt: sqConsignPt.value,
|
||||
});
|
||||
formBindingByBaseInfo.value.columns = getFormSchemaByBaseInfo({
|
||||
contractTypeData: contractTypeData.value,
|
||||
|
@ -382,17 +394,11 @@ onMounted(async () => {
|
|||
<div class="mx-auto overflow-auto py-2">
|
||||
<a-collapse v-model:active-key="collapseActiveKey" :bordered="false">
|
||||
<a-collapse-panel key="1" class="w-full" header="合同基本信息一">
|
||||
<fs-form
|
||||
ref="formRefByBaseInfo"
|
||||
class="w-full"
|
||||
v-bind="formBindingByBaseInfo"
|
||||
/>
|
||||
<ApprovalCard :info="contractData" />
|
||||
</a-collapse-panel>
|
||||
|
||||
<a-collapse-panel key="2" class="w-full" header="签约依据">
|
||||
<VxeGrid ref="xGridRef" v-bind="gridOptions" class="">
|
||||
<template #toolbar_buttons></template>
|
||||
</VxeGrid>
|
||||
<BasisTable :basis-id="contractData.basisId" />
|
||||
</a-collapse-panel>
|
||||
|
||||
<a-collapse-panel key="3" class="w-full" header="合同基本信息二">
|
||||
|
|
|
@ -41,11 +41,12 @@ withDefaults(
|
|||
{{ getDictObj(DICT_TYPE.contract_funding_source, info.fundDitch)?.label }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="预算金额">
|
||||
{{ `${info.budgetSum || ''} ${info.priceTypeName || ''}` }}
|
||||
<!-- {{ `${info.budgetSum || ''} ${info.priceTypeName || ''}` }} -->
|
||||
{{ `${info.budgetSum || ''} ${'元'}` }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item :span="2" label="组织形式">
|
||||
{{
|
||||
getDictObj(DICT_TYPE.contract_organization_form, info.organiza?.label)
|
||||
getDictObj(DICT_TYPE.contract_organization_form, info.organiza)?.label
|
||||
}}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item :span="3" label="相关附件">
|
||||
|
|
|
@ -1,21 +1,20 @@
|
|||
<script setup lang="ts">
|
||||
import { nextTick, onMounted, reactive, ref } from 'vue';
|
||||
import { onMounted, ref } from 'vue';
|
||||
|
||||
import { message } from 'ant-design-vue';
|
||||
import { logger } from 'common-utils';
|
||||
|
||||
import Apis from '#/api';
|
||||
import { useVxeTable } from '#/hooks/vxeTable';
|
||||
import { FileUploader } from '#/utils/file';
|
||||
import { getAuditInfoColumns } from '#/views/contract/schema';
|
||||
import ApprovalCard from '#/views/contract/iframe-info/components/info-approval/approval-card.vue';
|
||||
import AuditNodeTable from '#/views/contract/components/audit-node-table/audit-node-table.vue';
|
||||
import BasisTable from '#/views/contract/components/basis-table/basis-table.vue';
|
||||
import ApprovalCard from '#/views/contract/iframe-info/components/info-approval/approval-card.vue';
|
||||
|
||||
const props = withDefaults(
|
||||
defineProps<{
|
||||
contractId?: string;
|
||||
// flowInstanceId
|
||||
flowInstanceId: string;
|
||||
contractId?: string;
|
||||
id?: string;
|
||||
}>(),
|
||||
{
|
||||
|
@ -66,7 +65,7 @@ onMounted(async () => {
|
|||
<div class="flex h-full w-full flex-col">
|
||||
<a-collapse v-model:active-key="collapseActiveKey">
|
||||
<a-collapse-panel key="1" class="w-full" header="基本信息">
|
||||
<ApprovalCard :info="currData"></ApprovalCard>
|
||||
<ApprovalCard :info="currData" />
|
||||
</a-collapse-panel>
|
||||
|
||||
<a-collapse-panel key="2" class="w-full" header="签约依据信息">
|
||||
|
|
|
@ -20,39 +20,46 @@ onMounted(async () => {
|
|||
// console.log(info.value);
|
||||
const info = props.info;
|
||||
// 查询标段信息
|
||||
// 如果是框架合同,获取标段信息
|
||||
if (info.frameProtocol === '1') {
|
||||
const bidData = await Apis.bidding.get_list({
|
||||
|
||||
// 如果有选商信息
|
||||
if (info.contractId) {
|
||||
// 如果是框架合同,获取标段信息
|
||||
if (info.frameProtocol === '1') {
|
||||
const bidData = await Apis.bidding.get_list({
|
||||
params: {
|
||||
projectId: info.projectId,
|
||||
contractId: info.contractId,
|
||||
},
|
||||
});
|
||||
bidData.rows.forEach((bid) => {
|
||||
bid.providerList = [];
|
||||
});
|
||||
bidList.value = bidData.rows;
|
||||
}
|
||||
|
||||
// 查询推荐供应商信息
|
||||
const providerData = await Apis.contractRecommendProvider.get_list({
|
||||
params: {
|
||||
projectId: info.projectId,
|
||||
contractId: info.contractId,
|
||||
},
|
||||
});
|
||||
bidData.rows.forEach((bid) => {
|
||||
bid.providerList = [];
|
||||
});
|
||||
bidList.value = bidData.rows;
|
||||
}
|
||||
|
||||
// 查询推荐供应商信息
|
||||
const providerData = await Apis.contractRecommendProvider.get_list({
|
||||
params: {
|
||||
contractId: info.contractId,
|
||||
},
|
||||
});
|
||||
if (info.frameProtocol === '0') {
|
||||
providerPtList.value = providerData.rows;
|
||||
}
|
||||
if (info.frameProtocol === '1') {
|
||||
bidList.value.forEach((bid) => {
|
||||
bid.providerList = providerData.rows;
|
||||
});
|
||||
if (info.frameProtocol === '0') {
|
||||
providerPtList.value = providerData.rows.filter(
|
||||
(item) => item.phaseSeq === 99_999,
|
||||
);
|
||||
}
|
||||
if (info.frameProtocol === '1') {
|
||||
bidList.value.forEach((bid) => {
|
||||
bid.providerList = providerData.rows;
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<a-descriptions
|
||||
v-if="info.contractId"
|
||||
:label-style="{ width: '150px' }"
|
||||
bordered
|
||||
size="small"
|
||||
|
@ -88,7 +95,7 @@ onMounted(async () => {
|
|||
{{ `${info.budgetSum || ''} ${info.priceTypeName || ''}` }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item
|
||||
v-show="info.frameProtocol === '0'"
|
||||
v-if="info.frameProtocol === '0'"
|
||||
:span="3"
|
||||
label="推荐供应商"
|
||||
>
|
||||
|
@ -101,7 +108,7 @@ onMounted(async () => {
|
|||
</vxe-column>
|
||||
<vxe-column field="qualification" title="资质情况">
|
||||
<template #default="{ row }">
|
||||
{{ row.qualification }}
|
||||
{{ row.aptitudeName }}
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column field="contactPerson" title="联系人">
|
||||
|
@ -124,26 +131,19 @@ onMounted(async () => {
|
|||
</a-descriptions-item>
|
||||
|
||||
<a-descriptions-item
|
||||
v-show="info.frameProtocol === '1'"
|
||||
v-if="info.frameProtocol === '1'"
|
||||
:span="3"
|
||||
label="标段信息"
|
||||
>
|
||||
<template v-for="bid in bidList" :key="bid.id">
|
||||
<vxe-table :data="[bid]" size="mini">
|
||||
<vxe-column field="bidName" title="标段名称">
|
||||
<vxe-column field="phaseName" title="标段名称">
|
||||
<template #default="{ row }">
|
||||
{{ row.bidName }}
|
||||
{{ row.phaseName }}
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column field="phaseMoney" title="预算金额">
|
||||
<template #default="{ row }">
|
||||
{{ row.phaseMoney }}
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column field="phaseDesc" title="标段范围说明">
|
||||
<template #default="{ row }">
|
||||
{{ row.phaseDesc }}
|
||||
</template>
|
||||
<template #default="{ row }"> {{ row.phaseMoney }} 元 </template>
|
||||
</vxe-column>
|
||||
<vxe-column field="phaseDesc" title="标段范围说明">
|
||||
<template #default="{ row }">
|
||||
|
@ -160,7 +160,7 @@ onMounted(async () => {
|
|||
</vxe-column>
|
||||
<vxe-column field="qualification" title="资质情况">
|
||||
<template #default="{ row }">
|
||||
{{ row.qualification }}
|
||||
{{ row.aptitudeName }}
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column field="contactPerson" title="联系人">
|
||||
|
@ -202,4 +202,5 @@ onMounted(async () => {
|
|||
{{ info.stockPlanMx || '无' }}
|
||||
</a-descriptions-item>
|
||||
</a-descriptions>
|
||||
<a-empty v-else :image="simpleImage" />
|
||||
</template>
|
||||
|
|
|
@ -1,29 +1,22 @@
|
|||
<script setup lang="ts">
|
||||
import { nextTick, onMounted, reactive, ref } from 'vue';
|
||||
import { onMounted, ref } from 'vue';
|
||||
import { useRoute } from 'vue-router';
|
||||
|
||||
import { Modal } from 'ant-design-vue';
|
||||
import { Empty, Modal } from 'ant-design-vue';
|
||||
import { logger } from 'common-utils';
|
||||
|
||||
import Apis from '#/api';
|
||||
import { useVxeTable } from '#/hooks/vxeTable';
|
||||
import { FileUploader } from '#/utils/file';
|
||||
import {
|
||||
getAuditInfoColumns,
|
||||
getColumnsByFiles,
|
||||
} from '#/views/contract/schema';
|
||||
|
||||
import { getFormSchema } from '../info-approval/curd';
|
||||
import { getFormSchemaByBusiness } from './curd';
|
||||
import ApprovalCard from '#/views/contract/iframe-info/components/info-approval/approval-card.vue';
|
||||
import AuditNodeTable from '#/views/contract/components/audit-node-table/audit-node-table.vue';
|
||||
import FileCard from '#/views/contract/components/file-card/file-card.vue';
|
||||
import ApprovalCard from '#/views/contract/iframe-info/components/info-approval/approval-card.vue';
|
||||
import BusinessCard from '#/views/contract/iframe-info/components/info-business/business-card.vue';
|
||||
|
||||
const props = withDefaults(
|
||||
defineProps<{
|
||||
flowInstanceId: string;
|
||||
contractId?: string;
|
||||
flowInstanceId: string;
|
||||
id?: string;
|
||||
}>(),
|
||||
{
|
||||
|
@ -33,6 +26,8 @@ const props = withDefaults(
|
|||
},
|
||||
);
|
||||
|
||||
const simpleImage = Empty.PRESENTED_IMAGE_SIMPLE;
|
||||
|
||||
const { xGridRef, gridProps } = useVxeTable({ ref: 'xGridRef' });
|
||||
const { xGridRef: xGridRefByAuditInfo } = useVxeTable({
|
||||
ref: 'xGridRefByAuditInfo',
|
||||
|
@ -70,6 +65,7 @@ onMounted(async () => {
|
|||
const business: any = await Apis.selectMerchantsBasicInfo.get_getOne({
|
||||
params: { contractId: contract.contractId },
|
||||
});
|
||||
business.frameProtocol = contract.frameProtocol;
|
||||
businseeData.value = business;
|
||||
// xGridRef.value!.reloadColumn(getColumns());
|
||||
}
|
||||
|
@ -88,7 +84,10 @@ onMounted(async () => {
|
|||
|
||||
<template>
|
||||
<div class="flex h-full w-full flex-col">
|
||||
<a-collapse v-model:active-key="collapseActiveKey">
|
||||
<a-collapse
|
||||
v-if="!isLoading && businseeData.contractId"
|
||||
v-model:active-key="collapseActiveKey"
|
||||
>
|
||||
<a-collapse-panel key="1" class="w-full" header="合同基本信息">
|
||||
<ApprovalCard :info="currData" />
|
||||
</a-collapse-panel>
|
||||
|
@ -98,13 +97,18 @@ onMounted(async () => {
|
|||
</a-collapse-panel>
|
||||
|
||||
<a-collapse-panel key="3" class="w-full" header="招标文件">
|
||||
<FileCard :fileUuids="''"></FileCard>
|
||||
<FileCard file-uuids="" />
|
||||
</a-collapse-panel>
|
||||
|
||||
<a-collapse-panel key="4" class="w-full" header="审批信息">
|
||||
<AuditNodeTable :flow-instance-id="props.flowInstanceId" />
|
||||
</a-collapse-panel>
|
||||
</a-collapse>
|
||||
<a-empty v-if="!isLoading && !businseeData.contractId" :image="simpleImage">
|
||||
<template #description>
|
||||
<h3 class="text-center text-red-500">无合同选商信息</h3>
|
||||
</template>
|
||||
</a-empty>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -72,9 +72,9 @@ const tabList = [
|
|||
];
|
||||
|
||||
onMounted(() => {
|
||||
// if (type) {
|
||||
// tabKey.value = type;
|
||||
// }
|
||||
if (type) {
|
||||
tabKey.value = type;
|
||||
}
|
||||
|
||||
if (!type || !id) {
|
||||
console.warn('缺少参数');
|
||||
|
@ -90,7 +90,7 @@ onMounted(() => {
|
|||
:is="item.component"
|
||||
:id="id"
|
||||
:contract-id="contractId"
|
||||
:flowInstanceId="flowInstanceId"
|
||||
:flow-instance-id="flowInstanceId"
|
||||
/>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
|
|
|
@ -44,7 +44,7 @@ export default defineConfig(async () => {
|
|||
'/api/czg/flowCenter': {
|
||||
changeOrigin: true,
|
||||
rewrite: (path) =>
|
||||
path.replace(/^\/api\/flowCenter/, '/czg/flowCenter'),
|
||||
path.replace(/^\/api\/czg\/flowCenter/, '/flowCenter'),
|
||||
// target: `http://10.71.220.24:8083/rl`,
|
||||
target: `http://192.168.147.164:19007`,
|
||||
ws: true,
|
||||
|
@ -52,7 +52,7 @@ export default defineConfig(async () => {
|
|||
'/api/zp/flowCenter': {
|
||||
changeOrigin: true,
|
||||
rewrite: (path) =>
|
||||
path.replace(/^\/api\/flowCenter/, '/zp/flowCenter'),
|
||||
path.replace(/^\/api\/zp\/flowCenter/, '/flowCenter'),
|
||||
// target: `http://10.71.220.24:8083/rl`,
|
||||
target: `http://192.168.147.164:19007`,
|
||||
ws: true,
|
||||
|
@ -60,7 +60,7 @@ export default defineConfig(async () => {
|
|||
'/api/zzz/flowCenter': {
|
||||
changeOrigin: true,
|
||||
rewrite: (path) =>
|
||||
path.replace(/^\/api\/flowCenter/, '/zzz/flowCenter'),
|
||||
path.replace(/^\/api\/zzz\/flowCenter/, '/flowCenter'),
|
||||
// target: `http://10.71.220.24:8083/rl`,
|
||||
target: `http://192.168.147.164:19007`,
|
||||
ws: true,
|
||||
|
|
|
@ -31,7 +31,7 @@ function mergeDeep(target: any, source: any) {
|
|||
*/
|
||||
|
||||
function defineOverridesPreferences(preferences: DeepPartial<Preferences>) {
|
||||
let defaultPreferences: DeepPartial<Preferences> = {
|
||||
const defaultPreferences: DeepPartial<Preferences> = {
|
||||
app: {
|
||||
accessMode: 'frontend',
|
||||
colorGrayMode: false,
|
||||
|
@ -41,7 +41,7 @@ function defineOverridesPreferences(preferences: DeepPartial<Preferences>) {
|
|||
defaultAvatar: '',
|
||||
dynamicTitle: true,
|
||||
// 是否开启检查更新
|
||||
enableCheckUpdates: true,
|
||||
enableCheckUpdates: false,
|
||||
// 检查更新的时间间隔,单位为分钟
|
||||
checkUpdatesInterval: 1,
|
||||
// 开启布局设置按钮
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import type { BodyOptions, QueryOptions } from './global.d';
|
||||
|
||||
import { http } from './request/index';
|
||||
import type { QueryOptions, BodyOptions } from './global.d';
|
||||
|
||||
export default {
|
||||
meeting: {
|
||||
|
@ -549,6 +550,15 @@ export default {
|
|||
/** 合同系统/履行/履行提示/合同变更 获取合同变更信息 */
|
||||
get_getContractChangeInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/lvxChange/getContractChangeInfo', data),
|
||||
/** 合同系统/履行/履行提示/合同变更 查询流程未配置人员节点 */
|
||||
get_getFlowNodeUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/lvxChange/getFlowNodeUserConfig', data),
|
||||
/** 合同系统/履行/履行提示/合同变更 流程启动 */
|
||||
post_startWorkFlow: (data?: BodyOptions) =>
|
||||
http.post('/app/lvxChange/startWorkFlow', data),
|
||||
/** 合同系统/履行/履行提示/合同变更 审核通过 */
|
||||
post_submit: (data?: BodyOptions) =>
|
||||
http.post('/app/lvxChange/submit', data),
|
||||
},
|
||||
contractRelieve: {
|
||||
/** 合同系统/履行/履行提示/合同解除 获取合同解除信息 */
|
||||
|
@ -581,6 +591,11 @@ export default {
|
|||
lvxResult: {
|
||||
/** 合同系统/履行/履行结果 履行结果保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/lvxResult/save', data),
|
||||
/** 合同系统/履行/履行结果 分页履行结果查询 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/lvxResult/page', data),
|
||||
/** 合同系统/履行/履行结果 已办 */
|
||||
get_pageDone: (data?: QueryOptions) =>
|
||||
http.get('/app/lvxResult/pageDone', data),
|
||||
},
|
||||
contractFiling: {
|
||||
/** 合同系统/履行/履行提示/临时归档 保存临时归档信息 */
|
||||
|
@ -643,7 +658,7 @@ export default {
|
|||
/** 合同系统/签订 获取合同签订信息 */
|
||||
get_getContractSignInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/qdSign/getContractSignInfo', data),
|
||||
/** 合同系统/签订 打印签订审批表 */
|
||||
/** 合同系统/打印 选商打印 */
|
||||
get_printApprove: (data?: QueryOptions) =>
|
||||
http.get('/app/qdSign/printApprove', data),
|
||||
/** 合同系统/签订 打印文本 */
|
||||
|
@ -812,6 +827,15 @@ export default {
|
|||
/** 合同系统/选商/选商结果 待审核 */
|
||||
get_toDoPage: (data?: QueryOptions) =>
|
||||
http.get('/app/biddingResult/toDoPage', data),
|
||||
/** 合同系统/选商/选商结果 查询合同信息 */
|
||||
get_getContractInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/biddingResult/getContractInfo', data),
|
||||
/** 合同系统/选商/选商结果 查询供应商列表 */
|
||||
get_getProviderInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/biddingResult/getProviderInfo', data),
|
||||
/** 合同系统/选商/选商结果 选商专家列表 */
|
||||
get_queryBiddingExpert: (data?: QueryOptions) =>
|
||||
http.get('/app/biddingResult/queryBiddingExpert', data),
|
||||
},
|
||||
home: {
|
||||
/** 合同系统/首页待办/已办 首页待办 */
|
||||
|
@ -865,8 +889,8 @@ export default {
|
|||
/** 设备管理/设备静态库管理/设备调拨 调拨信息保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/equAllot/save', data),
|
||||
/** 设备管理/设备静态库管理/设备调拨 调拨信息删除 */
|
||||
post_delete: (data?: BodyOptions) =>
|
||||
http.post('/app/equAllot/delete', data),
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/equAllot/deletes', data),
|
||||
},
|
||||
bidding: {
|
||||
/** 合同系统/标段信息 标段查询 */
|
||||
|
@ -876,6 +900,9 @@ export default {
|
|||
/** 合同系统/标段信息 标段信息删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/bidding/deletes', data),
|
||||
/** 合同系统/选商/选商结果 查询标段列表 */
|
||||
get_getBuddingPtInfoList: (data?: QueryOptions) =>
|
||||
http.get('/app/bidding/getBuddingPtInfoList', data),
|
||||
},
|
||||
equAccident: {
|
||||
/** 设备管理/设备使用管理/事故处理 事故处理(查询/获取) */
|
||||
|
@ -921,8 +948,8 @@ export default {
|
|||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/equDayRepair/save', data),
|
||||
/** 设备管理/设备使用管理/日常维修 删除 */
|
||||
get_deletes: (data?: QueryOptions) =>
|
||||
http.get('/app/equDayRepair/deletes', data),
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/equDayRepair/deletes', data),
|
||||
/** 设备管理/查询管理/日常维修查询 查询 */
|
||||
get_query: (data?: QueryOptions) =>
|
||||
http.get('/app/equDayRepair/query', data),
|
||||
|
|
Loading…
Reference in New Issue