diff --git a/src/api/DesignForm/type.ts b/src/api/DesignForm/type.ts index 4c801c8..6a18c2f 100644 --- a/src/api/DesignForm/type.ts +++ b/src/api/DesignForm/type.ts @@ -207,7 +207,8 @@ export interface formTableField{ export interface tableButtonEs { id?: string; name?: string; - field?: string; + field?: any; + label?: string; types?: string; attribute:string; pattern?: string; diff --git a/src/api/workflowapi/index.ts b/src/api/workflowapi/index.ts index 3495ed3..e5e5c47 100644 --- a/src/api/workflowapi/index.ts +++ b/src/api/workflowapi/index.ts @@ -1,5 +1,6 @@ import request from '@/utils/request'; import { AxiosPromise } from 'axios'; +import { powerNoke } from './types'; import { formTableName, @@ -128,3 +129,12 @@ export function setFlowFormKeyPower(data: any) { data: data }); } + +//获取所有组件状态 +export function analyFormJsonMap(data: any): AxiosPromise { + return request({ + url: '/systemapi/task_flow/analyFormJsonMap', + method: 'post', + data: data + }); +} diff --git a/src/api/workflowapi/types.ts b/src/api/workflowapi/types.ts index 8e5df98..e54912b 100644 --- a/src/api/workflowapi/types.ts +++ b/src/api/workflowapi/types.ts @@ -24,3 +24,17 @@ export interface optionsInfo{ label:string; value:string; } + +export interface powerNoke{ + nodeKey:string; + recUnitAry?:powerNokeInfo[] +} +export interface powerNokeInfo{ + id: string; + name: string; + status: number; + isLook: boolean; + isEdit: boolean; + sort?: number; + list?:powerNoke[]; +} diff --git a/src/components/workflow/drwer/approverDrawer copy.vue b/src/components/workflow/drwer/approverDrawer copy.vue new file mode 100644 index 0000000..8693dc9 --- /dev/null +++ b/src/components/workflow/drwer/approverDrawer copy.vue @@ -0,0 +1,1276 @@ + + + + diff --git a/src/components/workflow/drwer/approverDrawer.vue b/src/components/workflow/drwer/approverDrawer.vue index 8693dc9..fcb8b41 100644 --- a/src/components/workflow/drwer/approverDrawer.vue +++ b/src/components/workflow/drwer/approverDrawer.vue @@ -8,15 +8,22 @@ import { toRaw } from "vue"; import $func from "@/utils/workflow/index"; import { setTypes, selectModes, selectRanges } from "@/utils/workflow/const"; import { useStore } from "@/store/workflow/index"; + +import type { powerNoke,powerNokeInfo } from '@/api/workflowapi/types' import { getAllParentNode, judgeOptionalNode, analysisForm, setFlowFormKeyPower, + analyFormJsonMap } from "@/api/workflowapi/index"; import { govthree } from "@/api/opk/opk/api"; + + + + import PositionDialog from "@/components/workflow/dialog/positionDialog.vue"; import FormWord from "@/components/workflow/dialog/formWord.vue"; import MatrixPage from "@/components/workflow/dialog/matrix.vue"; @@ -25,6 +32,7 @@ import MatrixPageIng from "@/components/workflow/dialog/matrixIng.vue"; import { formTableField } from "@/api/DesignForm/type"; import { gainFormTableField } from "@/api/DesignForm/requestapi"; import { matrixInfo } from "@/api/matrixapi/type"; +import { formStruct } from "@/api/DesignForm/types"; let props = defineProps({ nodeConfig: { @@ -65,7 +73,9 @@ const orgProps = { label: "name", children: "child", }; - +//新的节点权限赋权 +const powerNewUnitAry = ref(); +const activePickUnitGroupName = ref("") const isLookAll = ref(false); const isEditAll = ref(false); @@ -235,7 +245,7 @@ const saveApprover = () => { flag: true, id: approverConfig1.value.id, }); - let powerAry = []; + let powerAry: any[] = []; if ( powerUnitAry.value.recUnitAry.masterUnitList && powerUnitAry.value.recUnitAry.masterUnitList.length > 0 @@ -303,6 +313,87 @@ const saveApprover = () => { setFlowFormKeyPower(sendInfo); closeDrawer(); }; + +//新权限配置 +const saveNewApprover = () => { + // console.log("源节点是否有复制--props-->", props); + setApproverConfig({ + value: approverConfig.value, + flag: true, + id: approverConfig1.value.id, + }); + let untiPwoerAry: { id: string; name: string; status: number; isLook: boolean; isEdit: boolean; }[] = [] + //获取组件状态 + if(powerNewUnitAry.value?.recUnitAry && Array.isArray(powerNewUnitAry.value?.recUnitAry) && powerNewUnitAry.value?.recUnitAry.length > 0){ + powerNewUnitAry.value?.recUnitAry.forEach((item: any) => { + untiPwoerAry.push({ + id: item.id, + name: item.name, + status: item.status, + isLook: item.isLook, + isEdit: item.isEdit + }); + if(item.list && Array.isArray(item.list) && item.list.length > 0){ + item.list.forEach((listItem: any) => { + untiPwoerAry.push({ + id: listItem.id, + name: listItem.name, + status: listItem.status, + isLook: listItem.isLook, + isEdit: listItem.isEdit + }); + }) + } + }); + } + // console.log("源节点是否有复制---->", untiPwoerAry); + // console.log("源节点是否有复制", formData.value.purview); + if(formData.value.purview && Array.isArray(formData.value.purview) && formData.value.purview.length > 0){ + let isNew = true; + formData.value.purview.forEach((item: any) => { + if (item.nodeKey == approverConfig1.value.value.nodeNumber) { //判断当前节点是否已经设置过了 + // console.log("源节点是否有复制---1->",item.nodeKey,item.nodeKey == approverConfig1.value.value.nodeNumber, untiPwoerAry); + item.powerAry = untiPwoerAry; + isNew = false; + } + }) + if (isNew) { //此节点没有设置过;那么新增此节点 + // console.log("源节点是否有复制--2-->",approverConfig1.value.value.nodeNumber, untiPwoerAry); + formData.value.purview.push({ + nodeKey: approverConfig1.value.value.nodeNumber, + powerAry: untiPwoerAry, + }); + } + }else{ //从没有设置过权限配置 + // console.log("源节点是否有复制--3-->",approverConfig1.value.value.nodeNumber, untiPwoerAry); + formData.value.purview = [ + { + nodeKey: approverConfig1.value.value.nodeNumber, + powerAry: untiPwoerAry, + }, + ]; + } + // console.log("formData.value.purview", formData.value.purview); + + let sendInfo: any = { + formKey: props.customerFormKey.toString(), + formVersion: props.formVersion.toString(), + formData: JSON.stringify(formData.value), + formPower: JSON.stringify(formData.value.purview), + }; + // console.log("sendInfo", sendInfo); + setFlowFormKeyPower(sendInfo); + closeDrawer(); + + + +} + + + + + + const closeDrawer = () => { setApprover(false); isExecutor.value = false; @@ -332,7 +423,9 @@ const updateMatrix = (val: any) => { // console.log("值改变-222--->", approverConfig.value); }; -const formTableFielding = reactive({}); +const formTableFielding = reactive({ + masterTable: [] +}); /** @ 作者: 秦东 @ 时间: 2024-03-13 08:24:54 @@ -343,7 +436,7 @@ const jieForm = () => { analysisForm({ nodeKey: approverConfig1.value.value.nodeNumber, nodeJson: JSON.stringify(formData.value), - }).then((data) => { + }).then((data:any) => { if (data.code == 0) { // console.log("解析表单--->", data.data); powerUnitAry.value = data.data; @@ -353,6 +446,33 @@ const jieForm = () => { } }); + //新授权模式 + analyFormJsonMap({ + nodeKey: approverConfig1.value.value.nodeNumber, + nodeJson: JSON.stringify(formData.value), + }).then((data:any) => { + // console.log("新授权模式",data) + if(data.code == 0){ + powerNewUnitAry.value = data.data + // powerNewUnitAry.value?.nodeKey = data.data.nodeKey + // powerNewUnitAry.value?.recUnitAry = data.data.recUnitAry + if(data.data.recUnitAry && Array.isArray(data.data.recUnitAry) && data.data.recUnitAry.length > 0){ + data.data.recUnitAry.forEach((item:powerNokeInfo,i:number)=>{ + // if(item.id != "masterid"){ + // return activePickUnitGroupName.value = item.id; + + // } + if(i == 1){ + activePickUnitGroupName.value = item.id; + } + }) + } + + } + // console.log("新授权模式sadsadasdasd",powerNewUnitAry.value ) + // powerNewUnitAry.value?.nodeKey = data + }) + if (props.customerFormKey != "") { gainFormTableField({ id: props.customerFormKey.toString() }).then((data) => { // console.log('解析表单--->',data) @@ -532,7 +652,7 @@ const handleNodeClickOrg = (data: any, threePickAry: any) => { ) { if (data.level <= 3) { threePickAry.checkedKeys = threePickAry.checkedKeys.filter( - (item) => item !== data.id + (item: any) => item !== data.id ); } approverConfig.value.orgList = threePickAry.checkedKeys; @@ -623,6 +743,88 @@ const libraryList = ref([ value: 3, }, ]); + + + + +//编辑主干可见 +const editPowerLook = (val:powerNokeInfo) => { + // console.log("编辑主干可见",val) + if(val.list && Array.isArray(val.list) && val.list.length > 0){ + val.list.forEach((item:any)=>{ + if(val.isLook){ + item.isLook = val.isLook + }else{ + val.isEdit = val.isLook + item.isLook = val.isLook + item.isEdit = val.isLook + } + }) + } +} +//处理字段可见不可见 +const editPowerWorkLook = (master:powerNokeInfo,word:powerNokeInfo) => { + // console.log("处理字段可见不可见master",master) + // console.log("处理字段可见不可见word",word) + if(!word.isLook){ + word.isEdit = word.isLook + } + isAllPick(master) +} + +//编辑主干编辑 +const editPowerSave = (val:powerNokeInfo) => { + if(val.list && Array.isArray(val.list) && val.list.length > 0){ + val.list.forEach((item:any)=>{ + if(val.isEdit){ + val.isLook = val.isEdit + item.isEdit = val.isEdit + item.isLook = val.isEdit + }else{ + val.isEdit = val.isEdit + item.isEdit = val.isEdit + } + }) + } +} + +//处理字段是否可编辑 +const editPowerWorkSave = (master:powerNokeInfo,word:powerNokeInfo) => { + if(word.isEdit){ + word.isLook = word.isEdit + } + isAllPick(master) +} + +//判断当前模块是否全选 +const isAllPick = (val:powerNokeInfo) => { + if(val.list && Array.isArray(val.list) && val.list.length > 0){ + let lookNum = 0; + let editNum = 0; + val.list.forEach((item:any)=>{ + if(item.isLook){ + lookNum++; + } + if(item.isEdit){ + editNum++; + } + }) + if(lookNum > 0){ + val.isLook = true + }else{ + val.isLook = false + } + if(editNum > 0){ + val.isEdit = true + }else{ + val.isEdit = false + } + // console.log("判断当前模块是否全选master",val) + // console.log("判断当前模块是否全选lookNum",lookNum) + // console.log("判断当前模块是否全选editNum",editNum) + + } +}