详情页面完善,导出功能过滤radio

This commit is contained in:
z9130 2024-10-10 10:08:55 +08:00
parent 49011f6812
commit 4a5c4e0e5c
20 changed files with 440 additions and 139 deletions

View File

@ -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),
},
};

View File

@ -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 [
];
}

View File

@ -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('导出成功');
}

View File

@ -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) {

View File

@ -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>

View File

@ -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

View File

@ -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,
})
"
>
查看

View File

@ -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: '相关附件',

View File

@ -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,
},

View File

@ -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>

View File

@ -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 },
];
}

View File

@ -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`,
// );
}
/**

View File

@ -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/, '/'),

View File

@ -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,
},
];
}

View File

@ -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;
}
}
}

View File

@ -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);

View File

@ -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">

View File

@ -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),
},
};