add 增加按钮权限

This commit is contained in:
gssong 2025-03-01 23:46:46 +08:00
parent aef5a02097
commit 61b81f4692
3 changed files with 46 additions and 19 deletions

View File

@ -6,7 +6,6 @@ export interface CategoryTreeVO {
children: CategoryTreeVO[]; children: CategoryTreeVO[];
} }
export interface CategoryVO { export interface CategoryVO {
/** /**
* ID * ID
*/ */
@ -39,7 +38,6 @@ export interface CategoryVO {
} }
export interface CategoryForm extends BaseEntity { export interface CategoryForm extends BaseEntity {
/** /**
* ID * ID
*/ */
@ -59,14 +57,11 @@ export interface CategoryForm extends BaseEntity {
* *
*/ */
orderNum?: number; orderNum?: number;
} }
export interface CategoryQuery { export interface CategoryQuery {
/** /**
* *
*/ */
categoryName?: string; categoryName?: string;
} }

View File

@ -29,8 +29,13 @@ export interface FlowTaskVO {
nodeType: number; nodeType: number;
nodeRatio: string | number; nodeRatio: string | number;
version?: string; version?: string;
buttonList?: buttonList[];
} }
export interface buttonList {
code: string;
show: boolean;
}
export interface VariableVo { export interface VariableVo {
key: string; key: string;
value: string; value: string;

View File

@ -11,7 +11,7 @@
<el-form-item v-if="task.flowStatus === 'waiting'" label="附件"> <el-form-item v-if="task.flowStatus === 'waiting'" label="附件">
<fileUpload v-model="form.fileId" :file-type="['png', 'jpg', 'jpeg', 'doc', 'docx', 'xlsx', 'xls', 'ppt', 'txt', 'pdf']" :file-size="20" /> <fileUpload v-model="form.fileId" :file-type="['png', 'jpg', 'jpeg', 'doc', 'docx', 'xlsx', 'xls', 'ppt', 'txt', 'pdf']" :file-size="20" />
</el-form-item> </el-form-item>
<el-form-item label="抄送"> <el-form-item label="抄送" v-if="task.flowStatus === 'waiting' && buttonObj.copy">
<el-button type="primary" icon="Plus" circle @click="openUserSelectCopy" /> <el-button type="primary" icon="Plus" circle @click="openUserSelectCopy" />
<el-tag v-for="user in selectCopyUserList" :key="user.userId" closable style="margin: 2px" @close="handleCopyCloseTag(user)"> <el-tag v-for="user in selectCopyUserList" :key="user.userId" closable style="margin: 2px" @close="handleCopyCloseTag(user)">
{{ user.nickName }} {{ user.nickName }}
@ -24,10 +24,14 @@
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button :disabled="buttonDisabled" type="primary" @click="handleCompleteTask"> 提交 </el-button> <el-button :disabled="buttonDisabled" type="primary" @click="handleCompleteTask"> 提交 </el-button>
<el-button v-if="task.flowStatus === 'waiting'" :disabled="buttonDisabled" type="primary" @click="openDelegateTask"> 委托 </el-button> <el-button v-if="task.flowStatus === 'waiting' && buttonObj.trust" :disabled="buttonDisabled" type="primary" @click="openDelegateTask">
<el-button v-if="task.flowStatus === 'waiting'" :disabled="buttonDisabled" type="primary" @click="openTransferTask"> 转办 </el-button> 委托
</el-button>
<el-button v-if="task.flowStatus === 'waiting' && buttonObj.transfer" :disabled="buttonDisabled" type="primary" @click="openTransferTask">
转办
</el-button>
<el-button <el-button
v-if="task.flowStatus === 'waiting' && Number(task.nodeRatio) > 0" v-if="task.flowStatus === 'waiting' && Number(task.nodeRatio) > 0 && buttonObj.subSign"
:disabled="buttonDisabled" :disabled="buttonDisabled"
type="primary" type="primary"
@click="openMultiInstanceUser" @click="openMultiInstanceUser"
@ -35,15 +39,24 @@
加签 加签
</el-button> </el-button>
<el-button <el-button
v-if="task.flowStatus === 'waiting' && Number(task.nodeRatio) > 0" v-if="task.flowStatus === 'waiting' && Number(task.nodeRatio) > 0 && buttonObj.subSign"
:disabled="buttonDisabled" :disabled="buttonDisabled"
type="primary" type="primary"
@click="handleTaskUser" @click="handleTaskUser"
> >
减签 减签
</el-button> </el-button>
<el-button v-if="task.flowStatus === 'waiting'" :disabled="buttonDisabled" type="danger" @click="handleTerminationTask"> 终止 </el-button> <el-button
<el-button v-if="task.flowStatus === 'waiting'" :disabled="buttonDisabled" type="danger" @click="handleBackProcessOpen"> 退回 </el-button> v-if="task.flowStatus === 'waiting' && buttonObj.termination"
:disabled="buttonDisabled"
type="danger"
@click="handleTerminationTask"
>
终止
</el-button>
<el-button v-if="task.flowStatus === 'waiting' && buttonObj.back" :disabled="buttonDisabled" type="danger" @click="handleBackProcessOpen">
退回
</el-button>
<el-button :disabled="buttonDisabled" @click="cancel">取消</el-button> <el-button :disabled="buttonDisabled" @click="cancel">取消</el-button>
</span> </span>
</template> </template>
@ -72,7 +85,11 @@
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
<el-form-item v-if="task.flowStatus === 'waiting'" label="附件"> <el-form-item v-if="task.flowStatus === 'waiting'" label="附件">
<fileUpload v-model="backForm.fileId" :file-type="['png', 'jpg', 'jpeg', 'doc', 'docx', 'xlsx', 'xls', 'ppt', 'txt', 'pdf']" :file-size="20" /> <fileUpload
v-model="backForm.fileId"
:file-type="['png', 'jpg', 'jpeg', 'doc', 'docx', 'xlsx', 'xls', 'ppt', 'txt', 'pdf']"
:file-size="20"
/>
</el-form-item> </el-form-item>
<el-form-item label="审批意见"> <el-form-item label="审批意见">
<el-input v-model="backForm.message" type="textarea" resize="none" /> <el-input v-model="backForm.message" type="textarea" resize="none" />
@ -142,6 +159,10 @@ const backLoading = ref(true);
const backButtonDisabled = ref(true); const backButtonDisabled = ref(true);
// //
const taskNodeList = ref([]); const taskNodeList = ref([]);
const buttonObj = ref<any>({
code: undefined,
show: false
});
// //
const task = ref<FlowTaskVO>({ const task = ref<FlowTaskVO>({
id: undefined, id: undefined,
@ -159,7 +180,8 @@ const task = ref<FlowTaskVO>({
formCustom: undefined, formCustom: undefined,
formPath: undefined, formPath: undefined,
nodeType: undefined, nodeType: undefined,
nodeRatio: undefined nodeRatio: undefined,
buttonList: []
}); });
const dialog = reactive<DialogOption>({ const dialog = reactive<DialogOption>({
visible: false, visible: false,
@ -181,6 +203,7 @@ const backForm = ref<Record<string, any>>({
variables: {}, variables: {},
messageType: ['1'] messageType: ['1']
}); });
// //
const openDialog = (id?: string) => { const openDialog = (id?: string) => {
selectCopyUserIds.value = undefined; selectCopyUserIds.value = undefined;
@ -194,6 +217,10 @@ const openDialog = (id?: string) => {
nextTick(() => { nextTick(() => {
getTask(taskId.value).then((response) => { getTask(taskId.value).then((response) => {
task.value = response.data; task.value = response.data;
buttonObj.value = [];
task.value.buttonList.forEach((e) => {
buttonObj.value[e.code] = e.show;
});
loading.value = false; loading.value = false;
buttonDisabled.value = false; buttonDisabled.value = false;
}); });
@ -208,9 +235,9 @@ const handleCompleteTask = async () => {
form.value.taskId = taskId.value; form.value.taskId = taskId.value;
form.value.taskVariables = props.taskVariables; form.value.taskVariables = props.taskVariables;
if (selectCopyUserList.value && selectCopyUserList.value.length > 0) { if (selectCopyUserList.value && selectCopyUserList.value.length > 0) {
let flowCopyList = []; const flowCopyList = [];
selectCopyUserList.value.forEach((e) => { selectCopyUserList.value.forEach((e) => {
let copyUser = { const copyUser = {
userId: e.userId, userId: e.userId,
userName: e.nickName userName: e.nickName
}; };
@ -239,7 +266,7 @@ const handleBackProcessOpen = async () => {
backVisible.value = true; backVisible.value = true;
backLoading.value = true; backLoading.value = true;
backButtonDisabled.value = true; backButtonDisabled.value = true;
let data = await getBackTaskNode(task.value.definitionId, task.value.nodeCode); const data = await getBackTaskNode(task.value.definitionId, task.value.nodeCode);
taskNodeList.value = data.data; taskNodeList.value = data.data;
backLoading.value = false; backLoading.value = false;
backButtonDisabled.value = false; backButtonDisabled.value = false;
@ -386,7 +413,7 @@ const handleDelegateTask = async (data) => {
}; };
// //
const handleTerminationTask = async () => { const handleTerminationTask = async () => {
let params = { const params = {
taskId: taskId.value, taskId: taskId.value,
comment: form.value.message comment: form.value.message
}; };
@ -402,7 +429,7 @@ const handleTerminationTask = async () => {
proxy?.$modal.msgSuccess('操作成功'); proxy?.$modal.msgSuccess('操作成功');
}; };
const handleTaskUser = async () => { const handleTaskUser = async () => {
let data = await currentTaskAllUser(taskId.value); const data = await currentTaskAllUser(taskId.value);
deleteUserList.value = data.data; deleteUserList.value = data.data;
if (deleteUserList.value && deleteUserList.value.length > 0) { if (deleteUserList.value && deleteUserList.value.length > 0) {
deleteUserList.value.forEach((e) => { deleteUserList.value.forEach((e) => {