详情页面完善,导出功能过滤radio
This commit is contained in:
parent
49011f6812
commit
4a5c4e0e5c
|
@ -535,7 +535,7 @@ export default {
|
|||
/** 合同系统/选商废除 退回 */
|
||||
post_abolishRollback: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/abolishRollback', data),
|
||||
// /contractBaseInfo/applyFlowStart
|
||||
/** 合同系统/选商 流程启动(非待办提交) */
|
||||
post_flowStart: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/flowStart', data),
|
||||
},
|
||||
|
@ -613,7 +613,7 @@ export default {
|
|||
/** 合同系统/归档/合同归档 保存合同归档 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/contractFilingFormal/save', data),
|
||||
/** 合同系统/归档/合同回档 分页查询 */
|
||||
/** 合同系统/归档/合同回档 分页查询-已归档 */
|
||||
get_pageArchivedContract: (data?: QueryOptions) =>
|
||||
http.get('/app/contractFilingFormal/pageArchivedContract', data),
|
||||
/** 合同系统/归档/合同回档 回档 */
|
||||
|
@ -654,52 +654,52 @@ export default {
|
|||
flowCenter: {
|
||||
/** 流程中心 启动流程 */
|
||||
post_start: (data?: BodyOptions) =>
|
||||
http.post('/app/flowCenter/start', data),
|
||||
http.post('/flowCenter/start', data),
|
||||
/** 流程中心 审核通过 */
|
||||
post_agree: (data?: BodyOptions) =>
|
||||
http.post('/app/flowCenter/agree', data),
|
||||
http.post('/flowCenter/agree', data),
|
||||
/** 流程中心 审核退回 */
|
||||
post_rollback: (data?: BodyOptions) =>
|
||||
http.post('/app/flowCenter/rollback', data),
|
||||
http.post('/flowCenter/rollback', data),
|
||||
/** 流程中心 获取待办 */
|
||||
post_getTodoList: (data?: BodyOptions) =>
|
||||
http.post('/app/flowCenter/getTodoList', data),
|
||||
http.post('/flowCenter/getTodoList', data),
|
||||
/** 流程中心 获取已办 */
|
||||
post_doneList: (data?: BodyOptions) =>
|
||||
http.post('/app/flowCenter/doneList', data),
|
||||
http.post('/flowCenter/doneList', data),
|
||||
/** 流程中心 审核撤回 */
|
||||
get_revoke: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/revoke', data),
|
||||
http.get('/flowCenter/revoke', data),
|
||||
/** 流程中心 审核记录 */
|
||||
get_history: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/history', data),
|
||||
http.get('/flowCenter/history', data),
|
||||
/** 流程中心 查看流程图 */
|
||||
get_getFlowImg: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getFlowImg', data),
|
||||
http.get('/flowCenter/getFlowImg', data),
|
||||
/** 流程中心 获取可退回节点 */
|
||||
get_getReturnNode: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getReturnNode', data),
|
||||
http.get('/flowCenter/getReturnNode', data),
|
||||
/** 流程中心 获取流程节点人员配置信息 */
|
||||
get_getNextNodeUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getNextNodeUserConfig', data),
|
||||
http.get('/flowCenter/getNextNodeUserConfig', data),
|
||||
/** 流程中心 获取待办数量 */
|
||||
get_getTodoListSize: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getTodoListSize', data),
|
||||
http.get('/flowCenter/getTodoListSize', data),
|
||||
/** 流程中心 获取当前审核节点配置信息 */
|
||||
get_getNodeConfigInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getNodeConfigInfo', data),
|
||||
http.get('/flowCenter/getNodeConfigInfo', data),
|
||||
/** 流程中心 获取下一节点配置信息 */
|
||||
get_getNextNodeConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getNextNodeConfig', data),
|
||||
http.get('/flowCenter/getNextNodeConfig', data),
|
||||
/** 流程中心 获取流程节点人员配置信息 */
|
||||
post_getFlowNodeUserConfig: (data?: BodyOptions) =>
|
||||
http.post('/app/flowCenter/getFlowNodeUserConfig', data),
|
||||
http.post('/flowCenter/getFlowNodeUserConfig', data),
|
||||
/** 流程中心 获取流程变量配置 */
|
||||
get_getFlowVariablesConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getFlowVariablesConfig', data),
|
||||
http.get('/flowCenter/getFlowVariablesConfig', data),
|
||||
/** 流程中心 获取流程所有人员配置信息 */
|
||||
get_getFlowUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getFlowUserConfig', data),
|
||||
http.get('/flowCenter/getFlowUserConfig', data),
|
||||
},
|
||||
rl: {
|
||||
moduleParameter: {
|
||||
|
@ -782,6 +782,9 @@ export default {
|
|||
/** 合同系统 流程已办 */
|
||||
get_getDoneTaskByUserID: (data?: QueryOptions) =>
|
||||
http.get('/app/workFlow/getDoneTaskByUserID', data),
|
||||
/** 合同系统 获取流程图 */
|
||||
get_getFlowImg: (data?: QueryOptions) =>
|
||||
http.get('/app/workFlow/getFlowImg', data),
|
||||
},
|
||||
biddingResult: {
|
||||
/** 合同系统/选商/选商结果 分页查询 */
|
||||
|
@ -822,8 +825,94 @@ export default {
|
|||
/** 合同系统/签约授权 查询单条签约授权数据 */
|
||||
get_getOne: (data?: QueryOptions) =>
|
||||
http.get('/app/sqConsignPt/getOne', data),
|
||||
/** 合同系统/签约授权 签约授权提交 */
|
||||
/** 合同系统/签约授权 签约授权提交(非待办提交) */
|
||||
post_flowStart: (data?: BodyOptions) =>
|
||||
http.post('/app/sqConsignPt/flowStart', data),
|
||||
/** 合同系统/签约授权 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/sqConsignPt/deletes', data),
|
||||
/** 合同系统/签约授权 签约授权提交 */
|
||||
post_submit: (data?: BodyOptions) =>
|
||||
http.post('/app/sqConsignPt/submit', data),
|
||||
},
|
||||
addressorsort: {
|
||||
/** 协同办公/会议管理/发言人顺序配置 发言人顺序查询 */
|
||||
get_page: (data?: QueryOptions) =>
|
||||
http.get('/app/addressorsort/page', data),
|
||||
/** 协同办公/会议管理/发言人顺序配置 发言人排序保存 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/addressorsort/save', data),
|
||||
/** 协同办公/会议管理/发言人顺序配置 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/addressorsort/deletes', data),
|
||||
},
|
||||
equInfo: {
|
||||
/** 设备管理/设备静态库管理/ 设备信息维护 设备信息保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/equInfo/save', data),
|
||||
/** 设备管理/设备静态库管理/ 设备信息维护 设备信息(获取/查询) */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/equInfo/page', data),
|
||||
/** 设备管理/设备静态库管理/ 设备信息维护 设备信息删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/equInfo/deletes', data),
|
||||
},
|
||||
equAllot: {
|
||||
/** 设备管理/查询管理/设备调拨查询 保存 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/equAllot/page', data),
|
||||
/** 设备管理/查询管理/设备调拨查询 保存 */
|
||||
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: {
|
||||
/** 合同系统/标段信息 标段查询 */
|
||||
get_list: (data?: QueryOptions) => http.get('/app/bidding/list', data),
|
||||
/** 合同系统/标段信息 标段信息保存(弃用,在选商中报错) */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/bidding/save', data),
|
||||
/** 合同系统/标段信息 标段信息删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/bidding/deletes', data),
|
||||
},
|
||||
equAccident: {
|
||||
/** 设备管理/查询管理/事故处理查询 事故处理(查询/获取) */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/equAccident/page', data),
|
||||
/** 设备管理/查询管理/事故处理查询 保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/equAccident/save', data),
|
||||
/** 设备管理/查询管理/事故处理查询 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/equAccident/deletes', data),
|
||||
},
|
||||
equStopRepair: {
|
||||
/** 设备管理/查询管理/停炉检修处理查询 查询 */
|
||||
get_page: (data?: QueryOptions) =>
|
||||
http.get('/app/equStopRepair/page', data),
|
||||
/** 设备管理/查询管理/停炉检修处理查询 保存 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/equStopRepair/save', data),
|
||||
/** 设备管理/查询管理/停炉检修处理查询 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/equStopRepair/deletes', data),
|
||||
},
|
||||
equDanger: {
|
||||
/** 设备管理/查询管理/隐患排查处理查询 查询 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/equDanger/page', data),
|
||||
/** 设备管理/查询管理/隐患排查处理查询 保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/equDanger/save', data),
|
||||
/** 设备管理/查询管理/隐患排查处理查询 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/equDanger/deletes', data),
|
||||
},
|
||||
equDayRepair: {
|
||||
/** 设备管理/查询管理/日常维修查询 查询 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/equDayRepair/page', data),
|
||||
/** 设备管理/查询管理/日常维修查询 保存 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/equDayRepair/save', data),
|
||||
/** 设备管理/查询管理/日常维修查询 删除 */
|
||||
get_deletes: (data?: QueryOptions) =>
|
||||
http.get('/app/equDayRepair/deletes', data),
|
||||
},
|
||||
};
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
import type { VxeGridPropTypes } from 'vxe-table';
|
||||
|
||||
import dayjs from 'dayjs';
|
||||
|
||||
import { useRender } from '#/hooks/useRender';
|
||||
|
||||
export const PrimaryKey = 'guid';
|
||||
|
||||
export function getColumns(_params: any = {}): VxeGridPropTypes.Columns {
|
||||
return [
|
||||
|
||||
];
|
||||
}
|
|
@ -88,6 +88,15 @@ function handleExport() {
|
|||
if ($grid) {
|
||||
$grid.exportData({
|
||||
type: 'xlsx',
|
||||
columnFilterMethod: ({ column }) => {
|
||||
if (['operate', 'step'].includes(column.field)) {
|
||||
return false;
|
||||
}
|
||||
if (column.type === 'radio') {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
});
|
||||
message.success('导出成功');
|
||||
}
|
||||
|
|
|
@ -446,7 +446,7 @@ onMounted(async () => {
|
|||
|
||||
// 先查合同基本信息
|
||||
const contract: any = await Apis.contractBaseInfo.get_getOne({
|
||||
params: { guid: id.value },
|
||||
params: { contractId: id.value },
|
||||
});
|
||||
|
||||
if (contract && contract.contractId) {
|
||||
|
|
|
@ -61,6 +61,15 @@ function handleExport() {
|
|||
if ($grid) {
|
||||
$grid.exportData({
|
||||
type: 'xlsx',
|
||||
columnFilterMethod: ({ column }) => {
|
||||
if (['operate', 'step'].includes(column.field)) {
|
||||
return false;
|
||||
}
|
||||
if (column.type === 'radio') {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
});
|
||||
message.success('导出成功');
|
||||
}
|
||||
|
@ -160,7 +169,7 @@ const searchForm = ref({
|
|||
<a-button
|
||||
size="small"
|
||||
type="primary"
|
||||
@click="toDetailPage('business', row.guid)"
|
||||
@click="toDetailPage('business', row.guid, row)"
|
||||
>
|
||||
查看
|
||||
</a-button>
|
||||
|
|
|
@ -113,7 +113,7 @@ function handleDelete() {
|
|||
});
|
||||
}
|
||||
|
||||
const collapses = ['1', '2', '3', '4'];
|
||||
const collapses = ['4', '5', '6'];
|
||||
const collapseActiveKey = ref(collapses);
|
||||
function areArraysEqualUnordered(arr1, arr2) {
|
||||
if (arr1.length !== arr2.length) return false;
|
||||
|
@ -429,7 +429,7 @@ onMounted(async () => {
|
|||
<a-spin :spinning="isLoading">
|
||||
<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="基本信息">
|
||||
<a-collapse-panel key="1" class="w-full" header="合同基本信息">
|
||||
<fs-form
|
||||
ref="formRefByBaseInfo"
|
||||
class="w-full"
|
||||
|
@ -453,17 +453,29 @@ onMounted(async () => {
|
|||
</fs-form>
|
||||
</a-collapse-panel>
|
||||
|
||||
<a-collapse-panel key="2" class="w-full" header="签约依据">
|
||||
<a-collapse-panel key="2" class="w-full" header="选商资料">
|
||||
<fs-form ref="formRef" class="w-full" v-bind="formBinding" />
|
||||
</a-collapse-panel>
|
||||
|
||||
<a-collapse-panel key="3" class="w-full" header="招标文件">
|
||||
<VxeGrid ref="xGridRef" v-bind="gridOptions" class="">
|
||||
<template #toolbar_buttons></template>
|
||||
</VxeGrid>
|
||||
</a-collapse-panel>
|
||||
|
||||
<a-collapse-panel key="3" class="w-full" header="选商资料">
|
||||
<fs-form ref="formRef" class="w-full" v-bind="formBinding" />
|
||||
<a-collapse-panel key="4" class="w-full" header="审批信息">
|
||||
<VxeGrid ref="xGridRef" v-bind="gridOptions" class="">
|
||||
<template #toolbar_buttons></template>
|
||||
</VxeGrid>
|
||||
</a-collapse-panel>
|
||||
|
||||
<a-collapse-panel key="4" class="w-full" header="招标文件上传">
|
||||
<a-collapse-panel key="5" class="w-full" header="招标(谈判)结果填报">
|
||||
<VxeGrid ref="xGridRef" v-bind="gridOptions" class="">
|
||||
<template #toolbar_buttons></template>
|
||||
</VxeGrid>
|
||||
</a-collapse-panel>
|
||||
|
||||
<a-collapse-panel key="6" class="w-full" header="招标相关资料上传">
|
||||
<a-form :label-col="{ style: { width: '120px' } }">
|
||||
<a-form-item label="附件上传" name="fileList">
|
||||
<a-upload
|
||||
|
|
|
@ -110,7 +110,10 @@ onMounted(() => {});
|
|||
size="small"
|
||||
type="text"
|
||||
@click="
|
||||
toDetailPage('approval', '', { contractId: row.contractId })
|
||||
toDetailPage('approval', '', {
|
||||
contractId: row.contractId,
|
||||
flowInstanceId: row.flowInstanceId,
|
||||
})
|
||||
"
|
||||
>
|
||||
查看
|
||||
|
@ -137,7 +140,10 @@ onMounted(() => {});
|
|||
size="small"
|
||||
type="text"
|
||||
@click="
|
||||
toDetailPage('approval', '', { contractId: row.contractId })
|
||||
toDetailPage('approval', '', {
|
||||
contractId: row.contractId,
|
||||
flowInstanceId: row.flowInstanceId,
|
||||
})
|
||||
"
|
||||
>
|
||||
查看
|
||||
|
|
|
@ -36,6 +36,12 @@ export function getFormSchema(params: any = {}): any {
|
|||
title: '合同名称',
|
||||
key: 'contractName',
|
||||
col: { span: 24 },
|
||||
component: {
|
||||
name: 'a-input',
|
||||
vModel: 'value',
|
||||
allowClear: false,
|
||||
disabled: readOnly,
|
||||
},
|
||||
conditionalRender: {
|
||||
match(_context) {
|
||||
return true;
|
||||
|
@ -44,12 +50,11 @@ export function getFormSchema(params: any = {}): any {
|
|||
return <span>{form.contractName}</span>;
|
||||
},
|
||||
},
|
||||
rules: [{ required: true }],
|
||||
},
|
||||
ctrType: {
|
||||
title: '合同类别',
|
||||
key: 'ctrType',
|
||||
col: { span: 12 },
|
||||
col: { span: 6 },
|
||||
conditionalRender: {
|
||||
match(_context) {
|
||||
return true;
|
||||
|
@ -64,12 +69,11 @@ export function getFormSchema(params: any = {}): any {
|
|||
return <span></span>;
|
||||
},
|
||||
},
|
||||
rules: [{ required: true }],
|
||||
},
|
||||
ctrTwoType: {
|
||||
title: '二级类别',
|
||||
key: 'ctrTwoType',
|
||||
col: { span: 12 },
|
||||
col: { span: 6 },
|
||||
conditionalRender: {
|
||||
match(_context) {
|
||||
return true;
|
||||
|
@ -84,12 +88,11 @@ export function getFormSchema(params: any = {}): any {
|
|||
return <span></span>;
|
||||
},
|
||||
},
|
||||
rules: [{ required: true }],
|
||||
},
|
||||
frameProtocol: {
|
||||
title: '框架协议',
|
||||
key: 'frameProtocol',
|
||||
col: { span: 8 },
|
||||
col: { span: 6 },
|
||||
component: {
|
||||
name: 'fs-dict-radio',
|
||||
vModel: 'value',
|
||||
|
@ -116,7 +119,7 @@ export function getFormSchema(params: any = {}): any {
|
|||
frameProtocolCtr: {
|
||||
title: '框架协议下的合同',
|
||||
key: 'frameProtocolCtr',
|
||||
col: { span: 12 },
|
||||
col: { span: 6 },
|
||||
labelCol: { style: { width: '200px' } },
|
||||
component: {
|
||||
name: 'fs-dict-radio',
|
||||
|
@ -144,7 +147,7 @@ export function getFormSchema(params: any = {}): any {
|
|||
fundAllocation: {
|
||||
title: '资金流向',
|
||||
key: 'fundAllocation',
|
||||
col: { span: 12 },
|
||||
col: { span: 6 },
|
||||
component: {
|
||||
name: 'fs-dict-select',
|
||||
vModel: 'value',
|
||||
|
@ -179,12 +182,11 @@ export function getFormSchema(params: any = {}): any {
|
|||
);
|
||||
},
|
||||
},
|
||||
rules: [{ required: true, message: '请选择资金流向' }],
|
||||
},
|
||||
fundDitch: {
|
||||
title: '资金渠道',
|
||||
key: 'fundDitch',
|
||||
col: { span: 12 },
|
||||
col: { span: 6 },
|
||||
component: {
|
||||
name: 'fs-dict-select',
|
||||
vModel: 'value',
|
||||
|
@ -209,12 +211,11 @@ export function getFormSchema(params: any = {}): any {
|
|||
);
|
||||
},
|
||||
},
|
||||
rules: [{ required: true, message: '请选择资金渠道' }],
|
||||
},
|
||||
budgetSum: {
|
||||
title: '预算金额',
|
||||
key: 'budgetSum',
|
||||
col: { span: 8 },
|
||||
col: { span: 6 },
|
||||
colon: false,
|
||||
component: {
|
||||
name: 'a-input-number',
|
||||
|
@ -222,36 +223,14 @@ export function getFormSchema(params: any = {}): any {
|
|||
class: 'w-full',
|
||||
min: 0,
|
||||
},
|
||||
conditionalRender: {
|
||||
match({ form }) {
|
||||
return readOnly;
|
||||
},
|
||||
render({ form }) {
|
||||
return <span class="">{form.budgetSum}</span>;
|
||||
},
|
||||
},
|
||||
},
|
||||
priceType: {
|
||||
title: '',
|
||||
key: 'priceType',
|
||||
col: { span: 6 },
|
||||
labelCol: { style: { width: '12px' } },
|
||||
colon: false,
|
||||
component: {
|
||||
name: 'fs-dict-select',
|
||||
vModel: 'value',
|
||||
dict: dict({
|
||||
data: getDictOptions(DICT_TYPE.contract_currency_unit),
|
||||
}),
|
||||
},
|
||||
conditionalRender: {
|
||||
match({ form }) {
|
||||
return readOnly;
|
||||
},
|
||||
render({ form }) {
|
||||
return (
|
||||
<span class="mr-2">
|
||||
{getDictObj(DICT_TYPE.contract_currency_unit, form.priceType)}
|
||||
<span class="">
|
||||
{form.budgetSum} {form.priceTypeName}
|
||||
</span>
|
||||
);
|
||||
},
|
||||
|
@ -260,7 +239,7 @@ export function getFormSchema(params: any = {}): any {
|
|||
organiza: {
|
||||
title: '组织形式',
|
||||
key: 'organiza',
|
||||
col: { span: 24 },
|
||||
col: { span: 6 },
|
||||
component: {
|
||||
name: 'fs-dict-radio',
|
||||
vModel: 'value',
|
||||
|
@ -285,7 +264,6 @@ export function getFormSchema(params: any = {}): any {
|
|||
);
|
||||
},
|
||||
},
|
||||
rules: [{ required: true, message: '请选择组织形式' }],
|
||||
},
|
||||
fileList: {
|
||||
title: '相关附件',
|
||||
|
|
|
@ -13,10 +13,13 @@ import { getColumns, getFormSchema } from './curd';
|
|||
|
||||
const props = withDefaults(
|
||||
defineProps<{
|
||||
// flowInstanceId
|
||||
flowInstanceId: string;
|
||||
contractId?: string;
|
||||
id?: string;
|
||||
}>(),
|
||||
{
|
||||
flowInstanceId: '',
|
||||
id: '',
|
||||
contractId: '',
|
||||
},
|
||||
|
@ -72,7 +75,20 @@ const gridOptionsByAuditInfo = reactive(
|
|||
gridProps({
|
||||
height: '200px',
|
||||
columns: getAuditInfoColumns({ readOnly: true }),
|
||||
data: [],
|
||||
proxyConfig: {
|
||||
autoLoad: true,
|
||||
ajax: {
|
||||
query: async ({ page }) => {
|
||||
let data = await Apis.flowCenter.get_history({
|
||||
params: {
|
||||
appId: '66a8c15b79c96d4e77639404',
|
||||
flowInstanceId: props.flowInstanceId,
|
||||
},
|
||||
});
|
||||
return data;
|
||||
},
|
||||
},
|
||||
},
|
||||
toolbarConfig: {
|
||||
enabled: false,
|
||||
},
|
||||
|
|
|
@ -29,6 +29,7 @@ const Track = defineAsyncComponent(
|
|||
const route = useRoute();
|
||||
const type = route.query.type as string;
|
||||
const id = route.query.id as string;
|
||||
const flowInstanceId = route.query.f as string;
|
||||
const contractId = route.query.contractId as string;
|
||||
const tabKey = ref('approval');
|
||||
|
||||
|
@ -85,7 +86,12 @@ onMounted(() => {
|
|||
<Page content-class="h-full">
|
||||
<a-tabs v-model:active-key="tabKey">
|
||||
<a-tab-pane v-for="item in tabList" :key="item.key" :tab="item.tab">
|
||||
<component :is="item.component" :id="id" :contract-id="contractId" />
|
||||
<component
|
||||
:is="item.component"
|
||||
:id="id"
|
||||
:contract-id="contractId"
|
||||
:flowInstanceId="flowInstanceId"
|
||||
/>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
</Page>
|
||||
|
|
|
@ -90,36 +90,17 @@ export function getAuditInfoColumns(
|
|||
): VxeGridPropTypes.Columns {
|
||||
return [
|
||||
{ type: 'seq', width: 50, align: 'center', fixed: 'left' },
|
||||
{ field: 'contractId', title: '编号', width: 100 },
|
||||
// { field: 'contractId', title: '编号', width: 100 },
|
||||
{
|
||||
field: 'title',
|
||||
field: 'taskName',
|
||||
title: '任务名称',
|
||||
minWidth: 200,
|
||||
slots: {
|
||||
default: ({ row }) => {
|
||||
const text = row.title;
|
||||
if (text) {
|
||||
const classArr: string[] = ['line-clamp-3'];
|
||||
return h(
|
||||
Tooltip,
|
||||
{ trigger: 'hover' },
|
||||
{
|
||||
trigger: () => h('span', { class: classArr.join(' ') }, text),
|
||||
default: () => text,
|
||||
},
|
||||
);
|
||||
}
|
||||
return '';
|
||||
},
|
||||
},
|
||||
},
|
||||
{ field: 'contractAmount', title: '送审方式', width: 150 },
|
||||
{ field: 'contractSubject', title: '审批级别', width: 200 },
|
||||
{ field: 'contractCounterparty', title: '审批人', width: 150 },
|
||||
{ field: 'cumulativeSettlementAmount', title: '送审时间', width: 150 },
|
||||
{ field: 'changeCount', title: '审批时间', width: 100 },
|
||||
{ field: 'contractStatus', title: '审批状态', width: 100 },
|
||||
{ field: 'contractStatus', title: '审批意见', width: 100 },
|
||||
{ field: 'assigneeId', title: '审批人', width: 150 },
|
||||
{ field: 'startTime', title: '送审时间', width: 150 },
|
||||
{ field: 'endTime', title: '审批时间', width: 150 },
|
||||
{ field: 'type', title: '审批状态', width: 100 },
|
||||
{ field: 'message', title: '审批意见', width: 100 },
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
@ -6,14 +6,14 @@ import { router } from '#/router';
|
|||
* @param type
|
||||
* @param id
|
||||
*/
|
||||
export function toDetail(type: string, id: string, params?: any) {
|
||||
export function toDetail(type: string, id: string, row?: any) {
|
||||
switch (type) {
|
||||
case 'contractSetup': {
|
||||
router.push(`/contract/approval/edit/${id}`);
|
||||
break;
|
||||
}
|
||||
case 'selectMerchant': {
|
||||
router.push(`/contract/business/edit/${id}`);
|
||||
router.push(`/contract/business/edit/${row.contractId}`);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
|
@ -28,7 +28,7 @@ export function toDetail(type: string, id: string, params?: any) {
|
|||
* @param id
|
||||
*/
|
||||
export function toDetailPage(type: string, id: string, params?: any) {
|
||||
const { contractId } = params || {};
|
||||
const { contractId, flowInstanceId } = params || {};
|
||||
const name = '合同详情'; // 网页名称,可为空;
|
||||
const iWidth = 1200; // 弹出窗口的宽度;
|
||||
const iHeight = 800; // 弹出窗口的高度;
|
||||
|
@ -38,16 +38,36 @@ export function toDetailPage(type: string, id: string, params?: any) {
|
|||
const queryParams = new URLSearchParams();
|
||||
|
||||
if (type !== undefined) queryParams.append('type', type);
|
||||
if (flowInstanceId !== undefined) queryParams.append('f', flowInstanceId);
|
||||
if (id !== undefined) queryParams.append('id', id);
|
||||
if (contractId !== undefined) queryParams.append('contractId', contractId);
|
||||
|
||||
const url = `/iframe/contract/info?${queryParams.toString()}`;
|
||||
|
||||
window.open(
|
||||
url,
|
||||
name,
|
||||
`height=${iHeight},innerHeight=${iHeight},width=${iWidth},innerWidth=${iWidth},top=${iTop},left=${iLeft},toolbar=no,menubar=no,scrollbars=auto,resizable=no,location=no,status=no`,
|
||||
);
|
||||
// 5. 创建一个新的 <a> 标签
|
||||
const a = document.createElement('a');
|
||||
|
||||
// 6. 设置 <a> 标签的属性
|
||||
a.href = url; // 目标 URL
|
||||
a.target = '_blank'; // 在新标签页中打开
|
||||
a.rel = 'noopener noreferrer'; // 增加安全性,防止新页面获取原页面的 window 对象
|
||||
|
||||
// 7. 隐藏 <a> 标签
|
||||
a.style.display = 'none'; // 设置为不可见
|
||||
|
||||
// 8. 将 <a> 标签添加到页面中
|
||||
document.body.appendChild(a);
|
||||
|
||||
// 9. 模拟点击 <a> 标签
|
||||
a.click();
|
||||
|
||||
// 10. 点击完成后,移除 <a> 标签
|
||||
document.body.removeChild(a);
|
||||
// window.open(
|
||||
// url,
|
||||
// name,
|
||||
// `height=${iHeight},innerHeight=${iHeight},width=${iWidth},innerWidth=${iWidth},top=${iTop},left=${iLeft},toolbar=no,menubar=no,scrollbars=auto,resizable=no,location=no,status=no`,
|
||||
// );
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -33,6 +33,34 @@ export default defineConfig(async () => {
|
|||
target: `http://192.168.147.164:8083/rl`,
|
||||
ws: true,
|
||||
},
|
||||
'/api/flowCenter': {
|
||||
changeOrigin: true,
|
||||
rewrite: (path) => path.replace(/^\/api\/flowCenter/, '/flowCenter'),
|
||||
// target: `http://10.71.220.24:8083/rl`,
|
||||
target: `http://192.168.147.164:19007`,
|
||||
ws: true,
|
||||
},
|
||||
'/api/czg/flowCenter': {
|
||||
changeOrigin: true,
|
||||
rewrite: (path) => path.replace(/^\/api\/flowCenter/, '/flowCenter'),
|
||||
// target: `http://10.71.220.24:8083/rl`,
|
||||
target: `http://192.168.147.164:19007`,
|
||||
ws: true,
|
||||
},
|
||||
'/api/zp/flowCenter': {
|
||||
changeOrigin: true,
|
||||
rewrite: (path) => path.replace(/^\/api\/flowCenter/, '/flowCenter'),
|
||||
// target: `http://10.71.220.24:8083/rl`,
|
||||
target: `http://192.168.147.164:19007`,
|
||||
ws: true,
|
||||
},
|
||||
'/api/zzz/flowCenter': {
|
||||
changeOrigin: true,
|
||||
rewrite: (path) => path.replace(/^\/api\/flowCenter/, '/flowCenter'),
|
||||
// target: `http://10.71.220.24:8083/rl`,
|
||||
target: `http://192.168.147.164:19007`,
|
||||
ws: true,
|
||||
},
|
||||
'/api/czg/app': {
|
||||
changeOrigin: true,
|
||||
rewrite: (path) => path.replace(/^\/api\/czg\/app/, '/'),
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
import type { VxeGridPropTypes } from 'vxe-table';
|
||||
|
||||
import dayjs from 'dayjs';
|
||||
|
||||
import { useRender } from '#/hooks/useRender';
|
||||
|
||||
export const PrimaryKey = 'guid';
|
||||
|
||||
export function getFlowRecordColumns(_params: any = {}): VxeGridPropTypes.Columns {
|
||||
return [
|
||||
{
|
||||
field: 'flowNodeId',
|
||||
title: '节点名称',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
field: 'taskName',
|
||||
title: '操作',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
field: 'assigneeId',
|
||||
title: '处理人',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
field: 'startTime',
|
||||
title: '处理时间',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
field: 'type',
|
||||
title: '处理意见',
|
||||
width: 200,
|
||||
},
|
||||
];
|
||||
}
|
|
@ -116,6 +116,8 @@ const [TemporaryModal, temporaryModalApi] = useVbenModal({
|
|||
});
|
||||
|
||||
async function handleAudit(row, type) {
|
||||
const hideLoading = message.loading('加载中', 0);
|
||||
|
||||
selectRow.value = row;
|
||||
|
||||
// 先查询相关节点信息
|
||||
|
@ -123,28 +125,38 @@ async function handleAudit(row, type) {
|
|||
params: { taskId: row.taskId },
|
||||
});
|
||||
nodeInfo.value = tempNodeInfo = tempNodeInfo.rows[0];
|
||||
hideLoading();
|
||||
|
||||
chooseUserModalApi.setData({
|
||||
title: `选择${tempNodeInfo.name}(${tempNodeInfo.selectMode})`,
|
||||
limitMultipleNum: tempNodeInfo.selectMode === '多选' ? 10 : 1,
|
||||
userIds: chooseUserIds.value || [],
|
||||
});
|
||||
|
||||
if (type === 'access') {
|
||||
chooseUserModalApi.open();
|
||||
return;
|
||||
if (nodeInfo.value && nodeInfo.value.name) {
|
||||
chooseUserModalApi.setData({
|
||||
title: `选择${tempNodeInfo.name}(${tempNodeInfo.selectMode})`,
|
||||
limitMultipleNum: tempNodeInfo.selectMode === '多选' ? 10 : 1,
|
||||
userIds: chooseUserIds.value || [],
|
||||
});
|
||||
if (type === 'access') {
|
||||
chooseUserModalApi.open();
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if (type === 'access') {
|
||||
type = 'accessConfirm';
|
||||
}
|
||||
}
|
||||
|
||||
if (type === 'accessConfirm') {
|
||||
try {
|
||||
let form = {
|
||||
guid: selectRow.value.guid,
|
||||
variables: {},
|
||||
comment: '通过',
|
||||
};
|
||||
if (tempNodeInfo && tempNodeInfo.tempNodeInfo) {
|
||||
form.variables = {
|
||||
[nodeInfo.value.variableName]: assigneeList.value,
|
||||
};
|
||||
}
|
||||
await Apis.ccsq.post_submit({
|
||||
data: {
|
||||
guid: selectRow.value.guid,
|
||||
variables: {
|
||||
[nodeInfo.value.variableName]: assigneeList.value,
|
||||
},
|
||||
comment: '通过',
|
||||
},
|
||||
data: form,
|
||||
});
|
||||
message.success('提交成功');
|
||||
triggerProxy('reload');
|
||||
|
@ -183,21 +195,29 @@ async function handleAudit(row, type) {
|
|||
};
|
||||
|
||||
temporaryModalApi.open();
|
||||
isConfirmLoading.value = true;
|
||||
isConfirmLoading.value = false;
|
||||
}
|
||||
|
||||
if (type === 'rejectConfirm') {
|
||||
await Apis.ccsq.post_rollback({
|
||||
params: {
|
||||
...form2Ref.value.form,
|
||||
guid: selectRow.value.guid,
|
||||
backNodeId: 'userTask_first_node',
|
||||
},
|
||||
});
|
||||
temporaryModalApi.close();
|
||||
isConfirmLoading.value = false;
|
||||
triggerProxy('reload');
|
||||
triggerProxy2('reload');
|
||||
isConfirmLoading.value = true;
|
||||
|
||||
try {
|
||||
await Apis.ccsq.post_rollback({
|
||||
params: {
|
||||
...form2Ref.value.form,
|
||||
guid: selectRow.value.guid,
|
||||
backNodeId: 'userTask_first_node',
|
||||
},
|
||||
});
|
||||
temporaryModalApi.close();
|
||||
isConfirmLoading.value = false;
|
||||
triggerProxy('reload');
|
||||
triggerProxy2('reload');
|
||||
} catch (error) {
|
||||
logger.error('出差审批退回出错', error);
|
||||
} finally {
|
||||
isConfirmLoading.value = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -243,6 +243,7 @@ function handleUserRowClick(row) {
|
|||
formRef.value?.setFormData({
|
||||
[`${selectField.value}People`]: row.label,
|
||||
[`${selectField.value}Telphone`]: row.mobile,
|
||||
[`${selectField.value}Phone`]: '',
|
||||
});
|
||||
console.log(peoples);
|
||||
console.log(formRef.value?.form);
|
||||
|
|
|
@ -251,23 +251,23 @@ function checkOverflow() {
|
|||
<span class="text-gray-700">{{ currData.meetingType }}</span>
|
||||
</div>
|
||||
<div v-if="isRepresentativesMeeting" class="flex items-center">
|
||||
<div class="mr-2 w-[120px] font-bold">职工代表:</div>
|
||||
<div class="mr-2 font-bold">职工代表:</div>
|
||||
<span class="text-green-500">{{
|
||||
currData.isEmployeeRepresentatives == 1 ? '是' : '否'
|
||||
}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex space-x-4">
|
||||
<div class="flex items-center">
|
||||
<div class="mr-2 w-[120px] font-bold">会议内容:</div>
|
||||
<div class="flex items-start">
|
||||
<div class="mr-2 font-bold">会议内容:</div>
|
||||
<span class="text-gray-700" style="white-space: pre-line">{{
|
||||
currData.meetingContent
|
||||
}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex space-x-4">
|
||||
<div class="flex items-center">
|
||||
<div class="mr-2 w-[120px] font-bold">会议附件:</div>
|
||||
<div class="flex items-start">
|
||||
<div class="mr-2 font-bold">会议附件:</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex space-x-4">
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
import type { BodyOptions, QueryOptions } from './global.d';
|
||||
|
||||
import { http } from './request/index';
|
||||
import type { QueryOptions, BodyOptions } from './global.d';
|
||||
|
||||
export default {
|
||||
meeting: {
|
||||
|
@ -173,6 +172,11 @@ export default {
|
|||
/** 协同办公/出差申请 下一审核节点 */
|
||||
post_getNextNodeUserConfig: (data?: BodyOptions) =>
|
||||
http.post('/app/ccsq/getNextNodeUserConfig', data),
|
||||
/** 协同办公/出差申请 查看出差信息 */
|
||||
get_getBusinessTripInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/ccsq/getBusinessTripInfo', data),
|
||||
/** 协同办公/出差申请 查看审核过程 */
|
||||
get_history: (data?: QueryOptions) => http.get('/app/ccsq/history', data),
|
||||
},
|
||||
orderfood: {
|
||||
/** 协同办公/订餐管理/订餐 订餐加载接口 */
|
||||
|
@ -828,12 +832,15 @@ export default {
|
|||
/** 合同系统/签约授权 查询单条签约授权数据 */
|
||||
get_getOne: (data?: QueryOptions) =>
|
||||
http.get('/app/sqConsignPt/getOne', data),
|
||||
/** 合同系统/签约授权 签约授权提交 */
|
||||
/** 合同系统/签约授权 签约授权提交(非待办提交) */
|
||||
post_flowStart: (data?: BodyOptions) =>
|
||||
http.post('/app/sqConsignPt/flowStart', data),
|
||||
/** 合同系统/签约授权 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/sqConsignPt/deletes', data),
|
||||
/** 合同系统/签约授权 签约授权提交 */
|
||||
post_submit: (data?: BodyOptions) =>
|
||||
http.post('/app/sqConsignPt/submit', data),
|
||||
},
|
||||
addressorsort: {
|
||||
/** 协同办公/会议管理/发言人顺序配置 发言人顺序查询 */
|
||||
|
@ -846,4 +853,73 @@ export default {
|
|||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/addressorsort/deletes', data),
|
||||
},
|
||||
equInfo: {
|
||||
/** 设备管理/设备静态库管理/ 设备信息维护 设备信息保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/equInfo/save', data),
|
||||
/** 设备管理/设备静态库管理/ 设备信息维护 设备信息(获取/查询) */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/equInfo/page', data),
|
||||
/** 设备管理/设备静态库管理/ 设备信息维护 设备信息删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/equInfo/deletes', data),
|
||||
},
|
||||
equAllot: {
|
||||
/** 设备管理/查询管理/设备调拨查询 保存 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/equAllot/page', data),
|
||||
/** 设备管理/查询管理/设备调拨查询 保存 */
|
||||
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: {
|
||||
/** 合同系统/标段信息 标段查询 */
|
||||
get_list: (data?: QueryOptions) => http.get('/app/bidding/list', data),
|
||||
/** 合同系统/标段信息 标段信息保存(弃用,在选商中报错) */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/bidding/save', data),
|
||||
/** 合同系统/标段信息 标段信息删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/bidding/deletes', data),
|
||||
},
|
||||
equAccident: {
|
||||
/** 设备管理/查询管理/事故处理查询 事故处理(查询/获取) */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/equAccident/page', data),
|
||||
/** 设备管理/查询管理/事故处理查询 保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/equAccident/save', data),
|
||||
/** 设备管理/查询管理/事故处理查询 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/equAccident/deletes', data),
|
||||
},
|
||||
equStopRepair: {
|
||||
/** 设备管理/查询管理/停炉检修处理查询 查询 */
|
||||
get_page: (data?: QueryOptions) =>
|
||||
http.get('/app/equStopRepair/page', data),
|
||||
/** 设备管理/查询管理/停炉检修处理查询 保存 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/equStopRepair/save', data),
|
||||
/** 设备管理/查询管理/停炉检修处理查询 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/equStopRepair/deletes', data),
|
||||
},
|
||||
equDanger: {
|
||||
/** 设备管理/查询管理/隐患排查处理查询 查询 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/equDanger/page', data),
|
||||
/** 设备管理/查询管理/隐患排查处理查询 保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/equDanger/save', data),
|
||||
/** 设备管理/查询管理/隐患排查处理查询 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/equDanger/deletes', data),
|
||||
},
|
||||
equDayRepair: {
|
||||
/** 设备管理/查询管理/日常维修查询 查询 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/equDayRepair/page', data),
|
||||
/** 设备管理/查询管理/日常维修查询 保存 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/equDayRepair/save', data),
|
||||
/** 设备管理/查询管理/日常维修查询 删除 */
|
||||
get_deletes: (data?: QueryOptions) =>
|
||||
http.get('/app/equDayRepair/deletes', data),
|
||||
},
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue