diff --git a/src/api/displayboardapi/indexapi.ts b/src/api/displayboardapi/indexapi.ts index 8f1e10268..4379803de 100644 --- a/src/api/displayboardapi/indexapi.ts +++ b/src/api/displayboardapi/indexapi.ts @@ -86,3 +86,20 @@ export const getRoles = (data?: any) => { data: data }) } + +//搜索角色(新版) +export const SearchPositionUnify = (data?: any) => { + return request({ + url: '/kpiapi/powerpc/search_position_unify', + method: 'post', + data: data + }) +} +//获取统一岗位 +export const GetPositionUnify = (data?: any) => { + return request({ + url: '/kpiapi/powerpc/get_position_unify', + method: 'post', + data: data + }) +} diff --git a/src/components/workflow/addNode.vue b/src/components/workflow/addNode.vue index b51875303..84d4e026e 100644 --- a/src/components/workflow/addNode.vue +++ b/src/components/workflow/addNode.vue @@ -66,7 +66,8 @@ const addType = (type:any)=> { "nodeUserList": [], "fromNode": fromNodeNumber, "gotoNode":[gotoNodeNumber], - "sendBackNode":"beginnode" + "sendBackNode":"beginnode", + "attribute":1 } // console.log("p4",data) } else if (type == 2) { @@ -98,7 +99,8 @@ const addType = (type:any)=> { "nodeUserList": [], "fromNode": fromNodeNumber, "gotoNode":[gotoNodeNumber], - "sendBackNode":"beginnode" + "sendBackNode":"beginnode", + "attribute":1 } // console.log("p6",data) } diff --git a/src/components/workflow/dialog/common.ts b/src/components/workflow/dialog/common.ts index e0dea4391..9f87d68dc 100644 --- a/src/components/workflow/dialog/common.ts +++ b/src/components/workflow/dialog/common.ts @@ -1,12 +1,13 @@ import $func from '@/utils/workflow/index' import { outputOrgAndUser } from '@/api/displayboardapi/types' -import { getBasisOrgChiled,getEmployees,getRoles } from '@/api/displayboardapi/indexapi' +import { getBasisOrgChiled,getEmployees,getRoles,SearchPositionUnify,GetPositionUnify } from '@/api/displayboardapi/indexapi' export let searchVal = ref('') export let departments = ref() export let roles = ref({}) +export let positionList = ref() //获取行政组织及人员 export let getDepartmentList = async (parentId:any = 0) => { @@ -39,8 +40,25 @@ export let getDebounceData = (event:any, type = 1) => { } })() } +export let searchPostName =async (event:any, type = 1) => { + + + let sendData ={ + name:event.target.value + } + console.log("searchPostName",sendData) + let { data } = await SearchPositionUnify(sendData); + positionList.value = data; + +} //角色列表 export let getRoleList = async () => { let { data: { list } } = await getRoles() roles.value = list; } + +export let getPostList = async () => { + let { data } = await GetPositionUnify() + console.log("getPostList",data); + positionList.value = data; +} diff --git a/src/components/workflow/dialog/positionDialog.vue b/src/components/workflow/dialog/positionDialog.vue new file mode 100644 index 000000000..24d91a375 --- /dev/null +++ b/src/components/workflow/dialog/positionDialog.vue @@ -0,0 +1,104 @@ + + + + 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() +} +