From 15631e7ca8ec985be0c10cb0b996b5658f59c9ff Mon Sep 17 00:00:00 2001 From: herenshan112 Date: Wed, 18 Oct 2023 14:15:40 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/sysworkflow/flow/flowcanvas.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/sysworkflow/flow/flowcanvas.vue b/src/views/sysworkflow/flow/flowcanvas.vue index 3f15b50bd..d45cd7b97 100644 --- a/src/views/sysworkflow/flow/flowcanvas.vue +++ b/src/views/sysworkflow/flow/flowcanvas.vue @@ -4,7 +4,7 @@ @ 备注: --> + + diff --git a/src/components/workflow/drwer/approverDrawer.vue b/src/components/workflow/drwer/approverDrawer.vue index 646bb47a7..16da6fab2 100644 --- a/src/components/workflow/drwer/approverDrawer.vue +++ b/src/components/workflow/drwer/approverDrawer.vue @@ -9,6 +9,8 @@ import { setTypes, selectModes, selectRanges } from '@/utils/workflow/const' import { useStore } from '@/store/workflow/index' import { getAllParentNode,judgeOptionalNode } from '@/api/workflowapi/index' +import PositionDialog from '@/components/workflow/dialog/positionDialog.vue' + let props = defineProps({ nodeConfig:{ type: Object, @@ -17,15 +19,26 @@ let props = defineProps({ directormaxlevel: { type: Number, default: 4 - } + }, + isFormFlow:{ + type:Boolean, + default:true + }, + customerFormKey:{ + type:String, + default:"" + }, }); +const isExecutor = ref(false) const nodeTitle = ref("审批人设置") const nodeOptional = ref() //审批线已经存在得节点 const nodeAllVerify = ref() let approverConfig = ref({}) let approverVisible = ref(false) let approverRoleVisible = ref(false) +let appPosistonVisible = ref(false) let checkedRoleList = ref([]) +let checkedPostList = ref([]) let checkedList = ref([]) let store = useStore() let { setApproverConfig, setApprover } = store @@ -40,30 +53,46 @@ let visible = computed({ } }) +watch(visible,(val:any)=>{ + // if(val) +}) + watch(approverConfig1, (val:any)=>{ - // console.log("directormaxlevel",props.directormaxlevel) + console.log("directormaxlevel",visible.value) approverConfig.value = val.value if(val.type == 3){ nodeTitle.value = "执行人设置" }else{ nodeTitle.value = "审批人设置" } - - judgeOptionalNode(props.nodeConfig) - .then((data)=>{ + isExecutor.value = false + + if(visible.value){ + judgeOptionalNode(props.nodeConfig) + .then((data:any)=>{ if(data.code == 0){ let sendData = { id:val.value.fromNode, allcont:data.data.allcont } getAllParentNode(sendData) - .then((data)=>{ + .then((data:any)=>{ if(data.code == 0){ nodeOptional.value = data.data.allcont + if(data.data.allcont && data.data.allcont.length > 0){ + data.data.allcont.forEach(item => { + if(item.type == 3){ + isExecutor.value = true + return + } + }); + } } }) } }) + } + }) @@ -91,6 +120,14 @@ const addRoleApprover = ()=> { approverRoleVisible.value = true; checkedRoleList.value = approverConfig.value.nodeUserList } +const addApproverPost = ()=> { + appPosistonVisible.value = true; + checkedPostList.value = approverConfig.value.nodeUserList +} +const surePostApprover = (data:any)=> { + appPosistonVisible.value = false; + approverConfig.value.nodeUserList = data; +} const sureApprover = (data:any)=> { approverConfig.value.nodeUserList = data; approverVisible.value = false; @@ -110,16 +147,28 @@ const saveApprover = ()=> { } const closeDrawer = ()=> { setApprover(false) + isExecutor.value = false +} +//判断审批设置是否显示 +const isShowRatify = (id:number)=>{ + if(id == 8){ + return props.isFormFlow + }else{ + return true + } } + + diff --git a/src/components/workflow/selectResult.vue b/src/components/workflow/selectResult.vue index 2ab29afac..f709536f9 100644 --- a/src/components/workflow/selectResult.vue +++ b/src/components/workflow/selectResult.vue @@ -11,7 +11,7 @@ let props = defineProps({ }, list: { type: Array, - default: () => [{ type: 'role', data, cancel }] + default: () => [{ type: 'role', data:[], cancel:()=>{} }] } }) let emits = defineEmits(['del']) @@ -49,6 +49,13 @@ let emits = defineEmits(['del']) + diff --git a/src/styles/workflowcss/workflow.scss b/src/styles/workflowcss/workflow.scss index f78c92e71..e4858ea6d 100644 --- a/src/styles/workflowcss/workflow.scss +++ b/src/styles/workflowcss/workflow.scss @@ -1063,7 +1063,8 @@ html { .fd-nav-content-new { position: relative; width: initial; - height: 100%; + // height: 100%; + height: calc(100% - 60px); overflow-x: hidden; overflow-y: auto; padding-bottom: 30px diff --git a/src/utils/workflow/index.ts b/src/utils/workflow/index.ts index 8547d03b1..f1302ef7c 100644 --- a/src/utils/workflow/index.ts +++ b/src/utils/workflow/index.ts @@ -71,7 +71,9 @@ All.prototype = { }else if (nodeConfig.examineMode == 3) { return nodeConfig.nodeUserList.length + "人非会签" } - } + }else{ + return "指定成员" + } } else if (nodeConfig.settype == 2) { let level = nodeConfig.directorLevel == 1 ? '直接主管' : '第' + nodeConfig.directorLevel + '级主管' if (nodeConfig.examineMode == 1) { @@ -79,7 +81,14 @@ All.prototype = { } else if (nodeConfig.examineMode == 2) { return level + "会签" } - } else if (nodeConfig.settype == 4) { + } else if (nodeConfig.settype == 3) { + console.log("nodeConfig==会签==>",nodeConfig) + if (nodeConfig.nodeUserList.length == 1) { + return nodeConfig.nodeUserList[0].name + }else{ + return "指定行政岗位" + } + } else if (nodeConfig.settype == 4) { console.log("nodeConfig.selectRange",nodeConfig.selectRange,nodeConfig.nodeUserList); if (nodeConfig.selectRange == 1) { return "发起人自选" diff --git a/src/views/sysworkflow/codepage/index.vue b/src/views/sysworkflow/codepage/index.vue index 19c5ff14d..070016bce 100644 --- a/src/views/sysworkflow/codepage/index.vue +++ b/src/views/sysworkflow/codepage/index.vue @@ -11,6 +11,8 @@ import CreateForm from '@/views/sysworkflow/codepage/createform.vue' import SetupConfig from '@/views/sysworkflow/codepage/setupconfig.vue' import DataTableStructure from '@/views/sysworkflow/codepage/datatablestructure.vue' +import FlowDrawingBoard from '@/views/sysworkflow/flow/flowDrawingBoard.vue' + const contbody = ref() const queryParams = reactive({ page: 1, @@ -143,121 +145,148 @@ const openDataTableStructure = (cont:customerFormCont) =>{ dataTableIsShow.value = true; // console.log("打开数据表结构图",cont) } +//设置工作流 +const drawer = ref(false) +const drawerWidht = ref() +const isFormFlow = ref(false) +const customerFormKey = ref() +const customerFormName = ref() +const setupWorkFlow = (cont:customerFormCont) => { + drawerWidht.value = contbody.value?.clientWidth + // console.log("clientHeight--->",drawerWidht.value) + drawer.value = true + isFormFlow.value = true; + customerFormName.value = cont.name + customerFormKey.value = cont.id.toString() +} + diff --git a/src/components/workflow/selectResult.vue b/src/components/workflow/selectResult.vue index f709536f9..3d5613bb1 100644 --- a/src/components/workflow/selectResult.vue +++ b/src/components/workflow/selectResult.vue @@ -56,6 +56,13 @@ let emits = defineEmits(['del']) + diff --git a/src/utils/workflow/const.ts b/src/utils/workflow/const.ts index b3e4b4f0e..de720b7c3 100644 --- a/src/utils/workflow/const.ts +++ b/src/utils/workflow/const.ts @@ -39,3 +39,8 @@ export let opt1s = [ {value: '<', label: '<'}, {value: '≤', label: '≤'}, ] +//工作流判断条件(类型:1、申请人;2、自定义字段;3、单选;4、多选;5、开关) +export let flowFactor = [ + {id:1,name:"申请人",keyid:"applicant",type:1,isok:false,isCheckbox:true,options:[]}, + {id:2,name:"自定义字段",keyid:"customFields",type:2,isok:false,isCheckbox:false,options:[]} +] diff --git a/src/utils/workflow/index.ts b/src/utils/workflow/index.ts index f1302ef7c..f9c0f58fa 100644 --- a/src/utils/workflow/index.ts +++ b/src/utils/workflow/index.ts @@ -72,7 +72,7 @@ All.prototype = { return nodeConfig.nodeUserList.length + "人非会签" } }else{ - return "指定成员" + // return "指定成员" } } else if (nodeConfig.settype == 2) { let level = nodeConfig.directorLevel == 1 ? '直接主管' : '第' + nodeConfig.directorLevel + '级主管' @@ -80,7 +80,9 @@ All.prototype = { return level } else if (nodeConfig.examineMode == 2) { return level + "会签" - } + }else if (nodeConfig.examineMode == 3) { + return level + + "非会签" + } } else if (nodeConfig.settype == 3) { console.log("nodeConfig==会签==>",nodeConfig) if (nodeConfig.nodeUserList.length == 1) { @@ -109,6 +111,18 @@ All.prototype = { return '从直接主管到通讯录中级别最高的第' + nodeConfig.examineEndDirectorLevel + '个层级主管' }else if (nodeConfig.settype == 7){ return "指定前置审批为本节点设置审批人" + }else if (nodeConfig.settype == 8){ + console.log("checkedFormList--1111->",nodeConfig) + if(nodeConfig.nodeUserList.length > 0){ + if (nodeConfig.examineMode == 1) { + return nodeConfig.nodeUserList[0].name + "依次审批" + } else if (nodeConfig.examineMode == 2) { + return nodeConfig.nodeUserList[0].name + "会签" + }else if (nodeConfig.examineMode == 3) { + return nodeConfig.nodeUserList[0].name + "非会签" + } + } + } }, dealStr(str:any, obj:any) { diff --git a/src/views/sysworkflow/codepage/index.vue b/src/views/sysworkflow/codepage/index.vue index 070016bce..54d448e24 100644 --- a/src/views/sysworkflow/codepage/index.vue +++ b/src/views/sysworkflow/codepage/index.vue @@ -151,6 +151,7 @@ const drawerWidht = ref() const isFormFlow = ref(false) const customerFormKey = ref() const customerFormName = ref() +const flowKey = ref() const setupWorkFlow = (cont:customerFormCont) => { drawerWidht.value = contbody.value?.clientWidth // console.log("clientHeight--->",drawerWidht.value) @@ -158,6 +159,7 @@ const setupWorkFlow = (cont:customerFormCont) => { isFormFlow.value = true; customerFormName.value = cont.name customerFormKey.value = cont.id.toString() + flowKey.value = cont.flowkey.toString() } @@ -286,7 +288,7 @@ const setupWorkFlow = (cont:customerFormCont) => { - +