审批按钮优化

This commit is contained in:
‘huanghaiixia’
2025-12-30 15:28:43 +08:00
parent 67b2cf67cf
commit 5d85f99804
14 changed files with 103 additions and 101 deletions

View File

@ -76,14 +76,14 @@ export const columns: BasicColumn[] = [
sorter: true, sorter: true,
}, },
{ // {
dataIndex: 'securityName', // dataIndex: 'securityName',
title: '密级', // title: '密级',
componentType: 'select', // componentType: 'select',
align: 'left', // align: 'left',
sorter: true, // sorter: true,
}, // },
{ {
dataIndex: 'urgencyName', dataIndex: 'urgencyName',

View File

@ -23,7 +23,7 @@
</a-select> </a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="8"> <!-- <a-col :span="8">
<a-form-item label="密级" name="securityCode"> <a-form-item label="密级" name="securityCode">
<a-select v-model:value="formState.securityCode" :disabled="isDisable" placeholder="请选择密级" style="width: 100%" allow-clear> <a-select v-model:value="formState.securityCode" :disabled="isDisable" placeholder="请选择密级" style="width: 100%" allow-clear>
<a-select-option v-for="item in optionSelect.securityCodeList" :key="item.code" :value="item.code"> <a-select-option v-for="item in optionSelect.securityCodeList" :key="item.code" :value="item.code">
@ -31,7 +31,7 @@
</a-select-option> </a-select-option>
</a-select> </a-select>
</a-form-item> </a-form-item>
</a-col> </a-col> -->
<a-col :span="8"> <a-col :span="8">
<a-form-item label="缓急" name="urgencyCode"> <a-form-item label="缓急" name="urgencyCode">
<a-select v-model:value="formState.urgencyCode" :disabled="isDisable" placeholder="请选择缓急" style="width: 100%" allow-clear> <a-select v-model:value="formState.urgencyCode" :disabled="isDisable" placeholder="请选择缓急" style="width: 100%" allow-clear>
@ -157,7 +157,7 @@
urgencyCode: [{ required: true, message: "该项为必填项", trigger: 'change' }], urgencyCode: [{ required: true, message: "该项为必填项", trigger: 'change' }],
empName: [{ required: true, message: "该项为必填项", trigger: 'change' }], empName: [{ required: true, message: "该项为必填项", trigger: 'change' }],
bDeptName: [{ required: true, message: "该项为必填项", trigger: 'change' }], bDeptName: [{ required: true, message: "该项为必填项", trigger: 'change' }],
comName: [{ required: true, message: "该项为必填项", trigger: 'change' }], comName: [{ required: false, message: "该项为必填项", trigger: 'change' }],
dateAppro: [{ required: true, message: "该项为必填项", trigger: 'change' }], dateAppro: [{ required: true, message: "该项为必填项", trigger: 'change' }],
content: [{ required: true, message: "该项为必填项", trigger: 'change' }], content: [{ required: true, message: "该项为必填项", trigger: 'change' }],

View File

@ -172,7 +172,6 @@
formName: formName, formName: formName,
formId:currentRoute.value.meta.formId, formId:currentRoute.value.meta.formId,
id: record.id, id: record.id,
status
} }
}); });
} else { } else {
@ -333,7 +332,7 @@
onClick: btnEvent[button.code].bind(null, record), onClick: btnEvent[button.code].bind(null, record),
}); });
} }
if (['edit', 'delete','update'].includes(button.code)) { if (['edit', 'delete'].includes(button.code)) {
editAndDelBtn.push({ editAndDelBtn.push({
icon: button?.icon, icon: button?.icon,
tooltip: button?.name, tooltip: button?.name,
@ -342,11 +341,17 @@
}); });
} }
if (button.code === 'flowRecord') hasFlowRecord = true; if (button.code === 'flowRecord') hasFlowRecord = true;
if (record.approCode == 'YSP' && button.code== 'update') {
let idx = actionsList.findIndex(v =>v.tooltip == '变更')
idx<0 && actionsList.push({icon: button?.icon,
tooltip: button?.name,
onClick: btnEvent[button.code].bind(null, record),})
}
}); });
if (record.workflowData?.enabled) { if (record.workflowData?.enabled) {
//与工作流有关联的表单 //与工作流有关联的表单
if (record.workflowData.status) { if (record.workflowData.status) {
actionsList.unshift(setIndexFlowStatus(record.workflowData)) // actionsList.unshift(setIndexFlowStatus(record.workflowData))
} else { } else {
actionsList = actionsList.concat(editAndDelBtn); actionsList = actionsList.concat(editAndDelBtn);
} }
@ -356,10 +361,6 @@
actionsList = actionsList.concat(editAndDelBtn); actionsList = actionsList.concat(editAndDelBtn);
} }
} }
if (record.approCode !== 'YSP') {
let idx = actionsList.findIndex(v =>v.tooltip == '变更')
idx>-1 && actionsList.splice(idx, 1)
}
return actionsList; return actionsList;
} }
function handleStartwork(record: Recordable) { function handleStartwork(record: Recordable) {

View File

@ -7,7 +7,7 @@ export const formConfig = {
export const searchFormSchema: FormSchema[] = [ export const searchFormSchema: FormSchema[] = [
{ {
field: 'kNo', field: 'kName',
label: '合同号', label: '合同号',
component: 'Input', component: 'Input',
}, },

View File

@ -172,7 +172,6 @@
formName: formName, formName: formName,
formId:currentRoute.value.meta.formId, formId:currentRoute.value.meta.formId,
id: record.id, id: record.id,
status
} }
}); });
} else { } else {
@ -341,11 +340,17 @@
}); });
} }
if (button.code === 'flowRecord') hasFlowRecord = true; if (button.code === 'flowRecord') hasFlowRecord = true;
if (record.approCode == 'YSP' && button.code== 'update') {
let idx = actionsList.findIndex(v =>v.tooltip == '变更')
idx<0 && actionsList.push({icon: button?.icon,
tooltip: button?.name,
onClick: btnEvent[button.code].bind(null, record),})
}
}); });
if (record.workflowData?.enabled) { if (record.workflowData?.enabled) {
//与工作流有关联的表单 //与工作流有关联的表单
if (record.workflowData.status) { if (record.workflowData.status) {
actionsList.unshift(setIndexFlowStatus(record.workflowData)) // actionsList.unshift(setIndexFlowStatus(record.workflowData))
} else { } else {
actionsList = actionsList.concat(editAndDelBtn); actionsList = actionsList.concat(editAndDelBtn);
} }
@ -355,10 +360,6 @@
actionsList = actionsList.concat(editAndDelBtn); actionsList = actionsList.concat(editAndDelBtn);
} }
} }
if (record.approCode !== 'YSP') {
let idx = actionsList.findIndex(v =>v.tooltip == '变更')
idx>-1 && actionsList.splice(idx, 1)
}
return actionsList; return actionsList;
} }
function handleStartwork(record: Recordable) { function handleStartwork(record: Recordable) {

View File

@ -163,7 +163,7 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="集团持股比例" name="rateShareGn"> <a-form-item label="集团持股比例%" name="rateShareGn">
<a-input-number v-model:value="formState.rateShareGn" :disabled="isDisable" style="width: 100%" :min="0" :max="100"></a-input-number> <a-input-number v-model:value="formState.rateShareGn" :disabled="isDisable" style="width: 100%" :min="0" :max="100"></a-input-number>
</a-form-item> </a-form-item>
</a-col> </a-col>
@ -188,6 +188,13 @@
</a-radio-group> </a-radio-group>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="8">
<a-form-item label="基础设施使用方" name="facSign">
<a-radio-group v-model:value="formState.facSign" :disabled="isDisable">
<a-radio v-for="item in optionSelect.signList" :value="item.code">{{ item.name }}</a-radio>
</a-radio-group>
</a-form-item>
</a-col>
</a-row> </a-row>
<div style="display:flex"> <div style="display:flex">
<h4>电厂业务信息</h4> <h4>电厂业务信息</h4>

View File

@ -15,9 +15,6 @@
</template> </template>
</template> </template>
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.dataIndex === 'approCode'">
{{ record.approName }}
</template>
<template v-if="column.dataIndex === 'action'"> <template v-if="column.dataIndex === 'action'">
<TableAction :actions="getActions(record)" /> <TableAction :actions="getActions(record)" />
</template> </template>
@ -405,7 +402,7 @@
if (record.workflowData?.enabled) { if (record.workflowData?.enabled) {
//与工作流有关联的表单 //与工作流有关联的表单
if (record.workflowData.status) { if (record.workflowData.status) {
actionsList.unshift(setIndexFlowStatus(record.workflowData)) // actionsList.unshift(setIndexFlowStatus(record.workflowData))
} else { } else {
actionsList = actionsList.concat(editAndDelBtn); actionsList = actionsList.concat(editAndDelBtn);
} }
@ -415,13 +412,6 @@
actionsList = actionsList.concat(editAndDelBtn); actionsList = actionsList.concat(editAndDelBtn);
} }
} }
// if (record.approCode === 'YSP' && record.valid!='有效') {
// let idx = actionsList.findIndex(v =>v.tooltip == '作废')
// idx>-1 && actionsList.splice(idx, 1)
// } else {
// let idx = actionsList.findIndex(v =>v.tooltip == '启用')
// record.valid=='有效' && idx>-1 && actionsList.splice(idx, 1)
// }
return actionsList; return actionsList;
} }

View File

@ -331,7 +331,7 @@
if (record.workflowData?.enabled) { if (record.workflowData?.enabled) {
//与工作流有关联的表单 //与工作流有关联的表单
if (record.workflowData.status) { if (record.workflowData.status) {
actionsList.unshift(setIndexFlowStatus(record.workflowData)) // actionsList.unshift(setIndexFlowStatus(record.workflowData))
} else { } else {
actionsList = actionsList.concat(editAndDelBtn); actionsList = actionsList.concat(editAndDelBtn);
} }

View File

@ -248,6 +248,7 @@
} }
async function approvalCreate() { async function approvalCreate() {
try {
const params = await getApproveParams(); const params = await getApproveParams();
const nextNodes = await postGetNextTaskMaybeArrival(params); const nextNodes = await postGetNextTaskMaybeArrival(params);
if (nextNodes.length == 0) { if (nextNodes.length == 0) {
@ -269,6 +270,11 @@
onFinish({}); onFinish({});
} }
}); });
} catch (error) {
loading.value = false;
data.submitLoading = false;
}
} }
function flowSuccess() { function flowSuccess() {

View File

@ -80,15 +80,6 @@ export const columns: BasicColumn[] = [
sorter: true, sorter: true,
}, },
{
dataIndex: 'note',
title: '备注',
componentType: 'textarea',
align: 'left',
sorter: true,
},
]; ];
//表单事件 //表单事件
export const formEventConfigs = { export const formEventConfigs = {

View File

@ -331,7 +331,7 @@
if (record.workflowData?.enabled) { if (record.workflowData?.enabled) {
//与工作流有关联的表单 //与工作流有关联的表单
if (record.workflowData.status) { if (record.workflowData.status) {
actionsList.unshift(setIndexFlowStatus(record.workflowData)) // actionsList.unshift(setIndexFlowStatus(record.workflowData))
} else { } else {
actionsList = actionsList.concat(editAndDelBtn); actionsList = actionsList.concat(editAndDelBtn);
} }

View File

@ -99,7 +99,7 @@ export const columns: BasicColumn[] = [
}, },
{ {
dataIndex: 'approCode', dataIndex: 'approName',
title: '审批状态', title: '审批状态',
componentType: 'input', componentType: 'input',
align: 'left', align: 'left',

View File

@ -16,13 +16,9 @@
<a-input v-model:value="formState.suMcode" :disabled="isDisable" placeholder="请输入集团编码" /> <a-input v-model:value="formState.suMcode" :disabled="isDisable" placeholder="请输入集团编码" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="企业性质" name="natureCode"> <a-form-item label="母公司名称" name="parentNname">
<a-select v-model:value="formState.natureCode" :disabled="isDisable" placeholder="请选择企业性质" style="width: 100%" allow-clear> <a-input v-model:value="formState.parentNname" :disabled="isDisable" placeholder="请输入母公司名称" />
<a-select-option v-for="item in optionSelect.natureCodeList" :key="item.code" :value="item.code">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
@ -44,49 +40,13 @@
</a-select> </a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="母公司名称" name="parentNname"> <a-form-item label="企业性质" name="natureCode">
<a-input v-model:value="formState.parentNname" :disabled="isDisable" placeholder="请输入母公司名称" /> <a-select v-model:value="formState.natureCode" :disabled="isDisable" placeholder="请选择企业性质" style="width: 100%" allow-clear>
</a-form-item> <a-select-option v-for="item in optionSelect.natureCodeList" :key="item.code" :value="item.code">
</a-col> {{ item.name }}
<a-col :span="8"> </a-select-option>
<a-form-item label="统一社会信用代码" name="creditNo"> </a-select>
<a-input v-model:value="formState.creditNo" :disabled="isDisable" placeholder="请输入统一社会信用代码" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="纳税人识别号" name="tiNo">
<a-input v-model:value="formState.tiNo" :disabled="isDisable" placeholder="请输入纳税人识别号" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="法定代表人" name="representative">
<a-input v-model:value="formState.representative" :disabled="isDisable" placeholder="请输入法定代表人" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="成立日期" name="dateEstab">
<a-date-picker v-model:value="formState.dateEstab" :disabled="isDisable" style="width: 100%" placeholder="请选择成立日期" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="准入时间" name="dateEntry">
<a-date-picker v-model:value="formState.dateEntry" :disabled="isDisable" style="width: 100%" placeholder="请选择准入时间" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="注册资本(万元)" name="amtReg">
<a-input-number v-model:value="formState.amtReg" :disabled="isDisable" :min="0" style="width: 100%" placeholder="请输入注册资本"/>
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="注册地址" name="addrReg" :label-col="{ span: 3 }" :wrapper-col="{ span: 24 }">
<a-textarea v-model:value="formState.addrReg" :disabled="isDisable" placeholder="请输入注册地址" :auto-size="{ minRows: 1, maxRows: 5 }"/>
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="通讯地址" name="addrMail" :label-col="{ span: 3 }" :wrapper-col="{ span: 24 }">
<a-textarea v-model:value="formState.addrMail" :disabled="isDisable" placeholder="请输入通讯地址" :auto-size="{ minRows: 1, maxRows: 5 }"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
@ -106,6 +66,36 @@
</a-select-option> </a-select-option>
</a-select> </a-select>
</a-form-item> </a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="统一社会信用代码" name="creditNo">
<a-input v-model:value="formState.creditNo" :disabled="isDisable" placeholder="请输入统一社会信用代码" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="纳税人识别号" name="tiNo">
<a-input v-model:value="formState.tiNo" :disabled="isDisable" placeholder="请输入纳税人识别号" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="法定代表人" name="representative">
<a-input v-model:value="formState.representative" :disabled="isDisable" placeholder="请输入法定代表人" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="注册资本(万元)" name="amtReg">
<a-input-number v-model:value="formState.amtReg" :disabled="isDisable" :min="0" style="width: 100%" placeholder="请输入注册资本"/>
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="成立日期" name="dateEstab">
<a-date-picker v-model:value="formState.dateEstab" :disabled="isDisable" style="width: 100%" placeholder="请选择成立日期" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-form-item label="准入时间" name="dateEntry">
<a-date-picker v-model:value="formState.dateEntry" :disabled="isDisable" style="width: 100%" placeholder="请选择准入时间" />
</a-form-item>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="是否有效" name="valid"> <a-form-item label="是否有效" name="valid">
@ -116,6 +106,16 @@
</a-select> </a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24">
<a-form-item label="注册地址" name="addrReg" :label-col="{ span: 3 }" :wrapper-col="{ span: 24 }">
<a-textarea v-model:value="formState.addrReg" :disabled="isDisable" placeholder="请输入注册地址" :auto-size="{ minRows: 1, maxRows: 5 }"/>
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="通讯地址" name="addrMail" :label-col="{ span: 3 }" :wrapper-col="{ span: 24 }">
<a-textarea v-model:value="formState.addrMail" :disabled="isDisable" placeholder="请输入通讯地址" :auto-size="{ minRows: 1, maxRows: 5 }"/>
</a-form-item>
</a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-item label="审批状态" name="approCode"> <a-form-item label="审批状态" name="approCode">
<a-select v-model:value="formState.approCode" disabled style="width: 100%" allow-clear> <a-select v-model:value="formState.approCode" disabled style="width: 100%" allow-clear>

View File

@ -71,7 +71,7 @@
const filterColumns = cloneDeep(filterColumnAuth(columns)); const filterColumns = cloneDeep(filterColumnAuth(columns));
const customConfigColums =ref(filterColumns); const customConfigColums =ref(filterColumns);
const customSearchFormSchema =ref(searchFormSchema); const customSearchFormSchema =ref(searchFormSchema);
const selectedKeys = ref<string[]>([]);
const tableRef = ref(); const tableRef = ref();
//所有按钮 //所有按钮
const buttons = ref([{"isUse":true,"name":"新增","code":"add","icon":"ant-design:plus-outlined","isDefault":true,"type":"primary"},{"isUse":true,"name":"编辑","code":"edit","icon":"ant-design:form-outlined","isDefault":true},{"isUse":true,"name":"启用","code":"enable","icon":"ant-design:form-outlined","isDefault":true,"type":"primary"},{"isUse":true,"name":"作废","code":"disable","icon":"ant-design:stop-outlined","isDefault":true,"type":"dashed"},{"isUse":true,"name":"刷新","code":"refresh","icon":"ant-design:reload-outlined","isDefault":true},{"isUse":true,"name":"查看","code":"view","icon":"ant-design:eye-outlined","isDefault":true},{"isUse":true,"name":"发起审批","code":"startwork","icon":"ant-design:form-outlined","isDefault":true},{"isUse":true,"name":"查看流转记录","code":"flowRecord","icon":"ant-design:form-outlined","isDefault":true},{"isUse":true,"name":"删除","code":"delete","icon":"ant-design:delete-outlined","isDefault":true}]); const buttons = ref([{"isUse":true,"name":"新增","code":"add","icon":"ant-design:plus-outlined","isDefault":true,"type":"primary"},{"isUse":true,"name":"编辑","code":"edit","icon":"ant-design:form-outlined","isDefault":true},{"isUse":true,"name":"启用","code":"enable","icon":"ant-design:form-outlined","isDefault":true,"type":"primary"},{"isUse":true,"name":"作废","code":"disable","icon":"ant-design:stop-outlined","isDefault":true,"type":"dashed"},{"isUse":true,"name":"刷新","code":"refresh","icon":"ant-design:reload-outlined","isDefault":true},{"isUse":true,"name":"查看","code":"view","icon":"ant-design:eye-outlined","isDefault":true},{"isUse":true,"name":"发起审批","code":"startwork","icon":"ant-design:form-outlined","isDefault":true},{"isUse":true,"name":"查看流转记录","code":"flowRecord","icon":"ant-design:form-outlined","isDefault":true},{"isUse":true,"name":"删除","code":"delete","icon":"ant-design:delete-outlined","isDefault":true}]);
@ -142,13 +142,19 @@
dataIndex: 'action', dataIndex: 'action',
slots: { customRender: 'action' }, slots: { customRender: 'action' },
}, },
rowSelection: {
type: 'checkbox',
onChange: onSelectChange
},
tableSetting: { tableSetting: {
size: false, size: false,
setting: false, setting: false,
}, },
}); });
function onSelectChange(rowKeys: string[]) {
selectedKeys.value = rowKeys;
}
function dbClickRow(record) { function dbClickRow(record) {
if (!actionButtonConfig?.value.some(element => element.code == 'view')) { if (!actionButtonConfig?.value.some(element => element.code == 'view')) {
return; return;
@ -388,7 +394,7 @@
if (record.workflowData?.enabled) { if (record.workflowData?.enabled) {
//与工作流有关联的表单 //与工作流有关联的表单
if (record.workflowData.status) { if (record.workflowData.status) {
actionsList.unshift(setIndexFlowStatus(record.workflowData)) // actionsList.unshift(setIndexFlowStatus(record.workflowData))
} else { } else {
actionsList = actionsList.concat(editAndDelBtn); actionsList = actionsList.concat(editAndDelBtn);
} }