Zhufu 2024-09-30 14:26:32 +08:00
commit 622571756c
4 changed files with 113 additions and 69 deletions

View File

@ -46,7 +46,6 @@ interface PermissionState {
changeMenu: number;
}
export const usePermissionStore = defineStore({
id: 'app-permission',
state: (): PermissionState => ({
@ -174,30 +173,44 @@ export const usePermissionStore = defineStore({
childData.forEach((element) => {
// 菜单里配置带参数,但没有单独的主路由,先注册主路由
if (element.item.status == 1 && element.item.url.indexOf('@') > 0) {
const path = element.item.url.substring(0, element.item.url.indexOf('@'));
router.addRoute('Root', {
path: path,
name: element.item.code,
meta: {
title: element.item.name,
icon: element.item.iconName,
hideChildrenInMenu: true,
elements: element.item.elements,
},
component: LAYOUT,
children: [
{
path: path + '/:id',
name: element.item.url.replaceAll('/', ''),
meta: {
title: element.item.name,
icon: element.item.iconName,
elements: element.item.elements,
},
component: modules['../../views/demo' + path + '/index.vue'],
if (router.hasRoute(element.item.code)) {
const path = element.item.url.substring(0, element.item.url.indexOf('@'));
router.addRoute(element.item.code, {
path: path + '/:id',
name: element.item.url.replaceAll('/', ''),
meta: {
title: element.item.name,
icon: element.item.iconName,
elements: element.item.elements,
},
],
});
component: modules['../../views/demo' + path + '/index.vue'],
});
} else {
const path = element.item.url.substring(0, element.item.url.indexOf('@'));
router.addRoute('Root', {
path: path,
name: element.item.code,
meta: {
title: element.item.name,
icon: element.item.iconName,
hideChildrenInMenu: true,
elements: element.item.elements,
},
component: LAYOUT,
children: [
{
path: path + '/:id',
name: element.item.url.replaceAll('/', ''),
meta: {
title: element.item.name,
icon: element.item.iconName,
elements: element.item.elements,
},
component: modules['../../views/demo' + path + '/index.vue'],
},
],
});
}
} else if (element.item.code && element.item.status == 1) {
router.addRoute(element.item.code, {
path: element.item.url,

View File

@ -13,7 +13,7 @@
label: '撤回',
color: 'error',
popConfirm: {
title: '确认撤回吗?',
title: '确认撤回到' + record.UnitName + '吗?',
confirm: () => {
revokeBtnClick(record);
},
@ -32,7 +32,13 @@
:destroyOnClose="true"
>
<template #footer> </template>
<Look ref="posRef" :processId="processId" :revokeId="revokeId" @close="closeMolder" />
<Look
ref="posRef"
:processId="processId"
:revokeId="revokeId"
:revokeUnitName="revokeUnitName"
@close="closeMolder"
/>
</a-modal>
</div>
</template>
@ -61,10 +67,12 @@
}
},
);
const flowWfDataStore = flowStore();
const searchInfo = reactive<Recordable>({});
const processId = ref('');
const revokeId = ref('');
const revokeUnitName = ref('');
const auditOpen = ref(false);
const route: any = useRoute();
const code = ref(route.name.split('@')[1]);
@ -91,7 +99,7 @@
},
{
title: '当前状态',
dataIndex: 'UnitName',
dataIndex: 'handle_status_name',
},
{
title: '处理人',
@ -106,6 +114,7 @@
formConfig: {
labelWidth: 120,
showAdvancedButton: false,
autoSubmitOnEnter: true,
schemas: [
{
field: '[StartDate, EndDate]',
@ -149,6 +158,7 @@
flowWfDataStore.setWfDataAll(wfData);
processId.value = record.ProcessId;
revokeId.value = record.Id;
revokeUnitName.value = record.UnitName;
auditOpen.value = true;
}
//

View File

@ -687,12 +687,14 @@
});
} else {
currentNode.btnlist.forEach((btn: taskBtnsType) => {
if (btn.code == 'agree') {
btn.type = '';
} else if (btn.code == 'disagree') {
btn.type = 'error';
if (btn.hidden == false) {
if (btn.code == 'agree') {
btn.type = '';
} else if (btn.code == 'disagree') {
btn.type = 'error';
}
btns.push(btn);
}
btns.push(btn);
});
if (currentNode.isAddSign) {

View File

@ -119,13 +119,14 @@
import { useMessage } from '@/hooks/web/useMessage';
import { retract } from '@/api/sys/WFProcess';
const { createMessage } = useMessage();
const { createConfirm, createMessage } = useMessage();
const MapboxMap = defineAsyncComponent(() => import('@/components/MapboxMaps/MapComponent.vue'));
const mapConfig = ref({ isShowMap: false });
const MapboxComponent = ref();
const props = defineProps({
processId: String,
revokeId: String,
revokeUnitName: String,
});
const emits = defineEmits(['close']);
const prefixCls = 'preview-box';
@ -220,40 +221,51 @@
let content = JSON.parse(data.scheme.content);
let wfData = content.wfData;
let currentNode;
const auditNode = wfData.find((t) => t.id == data.flowViewer.unfinishedTaskSet[0]);
//
if (data.process.isFinished == 1) {
data.flowViewer.finishedTaskSet.forEach((finishElement) => {
wfData.forEach((element) => {
if (element.type == 'bpmn:StartEvent') {
currentNode = element;
}
if (finishElement == element.id && element.type == 'bpmn:Task') {
if (!element.isInherit) {
currentNode = element;
}
}
});
});
mapConfig.value = currentNode.mapConfig;
} else {
if (auditNode && auditNode.isInherit) {
currentNode = wfData.find((t) => t.type == 'bpmn:StartEvent');
mapConfig.value = currentNode.mapConfig;
footerStyle.value.width = mapConfig.value?.isShowMap ? '100%' : '60%';
} else {
currentNode = auditNode;
var currentMapNode = wfData.find((t) => t.type == 'bpmn:StartEvent');
mapConfig.value = currentMapNode.mapConfig;
footerStyle.value.width = mapConfig.value?.isShowMap ? '100%' : '60%';
const nodeArr = [];
//
data.logs.forEach((element) => {
if (element.taskType == 1 || element.taskType == 7) {
nodeArr.push(element.unitId);
}
});
console.log(nodeArr);
const auditNode = wfData.find((t) => t.id == nodeArr[nodeArr.length - 1]);
console.log(auditNode);
// const auditNode = wfData.find((t) => t.id == data.flowViewer.unfinishedTaskSet[0]);
//
// if (data.process.isFinished == 1) {
// data.flowViewer.finishedTaskSet.forEach((finishElement) => {
// wfData.forEach((element) => {
// if (element.type == 'bpmn:StartEvent') {
// currentNode = element;
// }
// if (finishElement == element.id && element.type == 'bpmn:Task') {
// if (!element.isInherit) {
// currentNode = element;
// }
// }
// });
// });
// mapConfig.value = currentNode.mapConfig;
// } else {
if (auditNode && auditNode.isInherit) {
currentNode = wfData.find((t) => t.type == 'bpmn:StartEvent');
mapConfig.value = currentNode.mapConfig;
footerStyle.value.width = mapConfig.value?.isShowMap ? '100%' : '60%';
} else {
currentNode = auditNode;
var currentMapNode = wfData.find((t) => t.type == 'bpmn:StartEvent');
mapConfig.value = currentMapNode.mapConfig;
footerStyle.value.width = mapConfig.value?.isShowMap ? '100%' : '60%';
}
// }
if (currentNode && currentNode.authFields.length > 0) {
formVisble.value = true;
} else {
activeName.value = 'flow';
processVisble.value = true;
}
console.log(currentNode);
designerData.formCurrentNode = currentNode;
formConfig.value = currentNode.authFields;
setLogsAndTasks(data.logs, data.tasks);
@ -502,17 +514,24 @@
//
async function revokeBtnClick() {
const data = await retract(props.revokeId, {
code: 'retract',
name: '撤回',
des: '',
createConfirm({
iconType: 'info',
title: '撤回',
content: '确定要撤回到' + props.revokeUnitName + '吗?',
onOk: async () => {
const data = await retract(props.revokeId, {
code: 'retract',
name: '撤回',
des: '',
});
if (data) {
emits('close');
return createMessage.success('成功');
} else {
return createMessage.error('失败');
}
},
});
if (data) {
emits('close');
return createMessage.success('成功');
} else {
return createMessage.error('失败');
}
}
</script>
<style lang="less" scoped>