diff --git a/src/api/DesignForm/type.ts b/src/api/DesignForm/type.ts index 0f0526d98..8f4b867cf 100644 --- a/src/api/DesignForm/type.ts +++ b/src/api/DesignForm/type.ts @@ -133,6 +133,7 @@ export interface hanziToPinyin{ title:string; types:number; connector:string; + formJson?:string; } //获取工作流步进节点 export interface nodeFlow extends enableVersionId{ diff --git a/src/api/DesignForm/types.ts b/src/api/DesignForm/types.ts index 14509f581..869001111 100644 --- a/src/api/DesignForm/types.ts +++ b/src/api/DesignForm/types.ts @@ -112,7 +112,7 @@ export interface formData{ labelStyle:{}, inputStyle:{} }; - purview?:any; + purview?:any[]; } //表单基本信息 export interface formTableInfo{ diff --git a/src/api/workflowapi/index.ts b/src/api/workflowapi/index.ts index 99139b612..3495ed364 100644 --- a/src/api/workflowapi/index.ts +++ b/src/api/workflowapi/index.ts @@ -111,3 +111,20 @@ export function openFormFlow(data: any) { data: data }); } + +//获取所有组件状态 +export function analysisForm(data: any) { + return request({ + url: '/systemapi/task_flow/analysisForm', + method: 'post', + data: data + }); +} +//编辑节点权限 +export function setFlowFormKeyPower(data: any) { + return request({ + url: '/systemapi/task_flow/setFlowFormKeyPower', + method: 'post', + data: data + }); +} diff --git a/src/components/DesignForm/formControlAttr.vue b/src/components/DesignForm/formControlAttr.vue index 647e5e01e..0b104674f 100644 --- a/src/components/DesignForm/formControlAttr.vue +++ b/src/components/DesignForm/formControlAttr.vue @@ -33,6 +33,7 @@ formConfig: any formOtherData: any customerformid: number | string, + formInfo: any }>(), { formConfig: () => { @@ -56,7 +57,7 @@ const { formConfig, formData } = toRefs(props) const store = useDesignFormStore() as any const controlData = computed(() => { - // console.log("注册自定义事件----------------->",store) + console.log("注册自定义事件----------------->",props.formInfo) // console.log("注册自定义事件--------1--------->",store.controlAttr) return store.controlAttr }) @@ -926,7 +927,7 @@ break case 'labelNameVal': if(val != ""){ - chineseToPinyin({title:val,types:8,connector:""}) + chineseToPinyin({title:val,types:8,connector:"",formJson:JSON.stringify(props.formInfo)}) .then((data:any)=>{ if(data.code == 0){ if(data.data != ""){ diff --git a/src/components/workflow/dialog/matrix.vue b/src/components/workflow/dialog/matrix.vue index 33de875a2..34bd90248 100644 --- a/src/components/workflow/dialog/matrix.vue +++ b/src/components/workflow/dialog/matrix.vue @@ -146,57 +146,62 @@ onMounted(()=>{ }) - - - - - - - {{item.name}} {{item.orgname}} - - - - - - - + + 矩阵选项 + + + + + + + {{item.name}} {{item.orgname}} + + + + + + + + + - - - - - - - - - - - - - {{item.name}} {{}}{{item.pinyin}} - - - - - - - + + + + + + + + + + + + {{item.name}} {{}}{{item.pinyin}} + + + + + + + + diff --git a/src/components/workflow/drwer/approverDrawer.vue b/src/components/workflow/drwer/approverDrawer.vue index e542136ef..d8777bc47 100644 --- a/src/components/workflow/drwer/approverDrawer.vue +++ b/src/components/workflow/drwer/approverDrawer.vue @@ -7,7 +7,7 @@ import $func from '@/utils/workflow/index' import { setTypes, selectModes, selectRanges } from '@/utils/workflow/const' import { useStore } from '@/store/workflow/index' -import { getAllParentNode,judgeOptionalNode } from '@/api/workflowapi/index' +import { getAllParentNode,judgeOptionalNode,analysisForm,setFlowFormKeyPower } from '@/api/workflowapi/index' import PositionDialog from '@/components/workflow/dialog/positionDialog.vue' import FormWord from '@/components/workflow/dialog/formWord.vue' @@ -33,6 +33,16 @@ let props = defineProps({ type:String, default:"" }, + formVersion:{ + type:String, + default:"" + }, + formData:{ + type:Object, + default(){ + return {} + } + } }); const isExecutor = ref(false) const nodeTitle = ref("审批人设置") @@ -51,6 +61,12 @@ let store = useStore() let { setApproverConfig, setApprover } = store let approverConfig1 = computed(():any=> store.approverConfig1) let approverDrawer = computed(():any=> store.approverDrawer) + +const emits = defineEmits<{ + (e: 'update:formData', val: any): void +}>() + + let visible = computed({ get(){ return approverDrawer.value @@ -59,12 +75,29 @@ let visible = computed({ closeDrawer() } }) -const matrixIsShow = ref(false) -watch(visible,(val:any)=>{ - // if(val) +const formData = computed({ + get() { + return props.formData + }, + set(val: formStruct) { + emits('update:formData', val) + } +}); + +const powerUnitAry = ref({ + nodeKey:"", + recUnitAry:{ + masterUnitList:[], + sunUnitList:[], + unitAllKey:[], + unitAllState:[] + } }) +const matrixIsShow = ref(false) + + watch(approverConfig1, (val:any)=>{ val.value.attribute = val.value.attribute*1 @@ -166,6 +199,55 @@ const saveApprover = ()=> { flag: true, id: approverConfig1.value.id }) + let powerAry = []; + if(powerUnitAry.value.recUnitAry.masterUnitList && powerUnitAry.value.recUnitAry.masterUnitList.length > 0){ + powerUnitAry.value.recUnitAry.masterUnitList.forEach((item:any)=>{ + powerAry.push(item) + }) + } + if(powerUnitAry.value.recUnitAry.sunUnitList && powerUnitAry.value.recUnitAry.sunUnitList.length > 0){ + powerUnitAry.value.recUnitAry.sunUnitList.forEach((item:any)=>{ + if(item.masterUnitList && item.masterUnitList.length > 0){ + item.masterUnitList.forEach((itemSun:any) => { + // powerAry.push(item) + if(!powerAry.includes(itemSun)){ + powerAry.push(itemSun) + } + }) + } + }); + } + console.log("正确",formData.value) + if(formData.value.purview){ + console.log("正确") + let isNew = true + formData.value.purview.forEach((item:any)=>{ + console.log("正确---->",item.nodeKey) + if(item.nodeKey == approverConfig1.value.value.nodeNumber){ + item.powerAry=powerAry + isNew = false + } + }); + if(isNew){ + formData.value.purview.push({ + nodeKey: approverConfig1.value.value.nodeNumber, + powerAry:powerAry + }) + } + }else{ + formData.value.purview = [{ + nodeKey: approverConfig1.value.value.nodeNumber, + powerAry:powerAry + }] + } + 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 = ()=> { @@ -196,10 +278,31 @@ const sureFormTableApprover = (data:any)=> { const updateMatrix = (val:any) =>{ approverConfig.value.matrix = val; } +/** +@ 作者: 秦东 +@ 时间: 2024-03-13 08:24:54 +@ 功能: 解析表单 +*/ +const jieForm = () => { + console.log("nodeKey:approverConfig1.nodeNumber",approverConfig1.value.value.nodeNumber +); + analysisForm({nodeKey:approverConfig1.value.value.nodeNumber,nodeJson:JSON.stringify(formData.value)}) + .then((data)=>{ + if(data.code == 0){ + powerUnitAry.value = data.data + } + }) +} + +watch(()=>visible.value,(val:boolean)=>{ + if(val){ + jieForm(); + } +}) - + @@ -212,6 +315,7 @@ const updateMatrix = (val:any) =>{ + 指定成员 添加/修改成员 @@ -220,6 +324,7 @@ const updateMatrix = (val:any) =>{ + 主管 @@ -240,8 +345,8 @@ const updateMatrix = (val:any) =>{ 找不到主管时,由上级主管代审批 + 指定行政岗位 - 指定行政岗位 添加/修改行政岗位 @@ -259,6 +364,7 @@ const updateMatrix = (val:any) =>{ + 发起人自选 {{label}} @@ -277,12 +383,13 @@ const updateMatrix = (val:any) =>{ + 发起人自选 该审批节点设置“发起人自己”后,审批人默认为发起人 + 连续多级主管 - 审批终点 @@ -301,6 +408,7 @@ const updateMatrix = (val:any) =>{ + 可选节点列表 可选节点列表 @@ -310,8 +418,8 @@ const updateMatrix = (val:any) =>{ + 指定审批字段 - 指定审批字段 添加/修改审批字段 {{item.name}} @@ -324,40 +432,73 @@ const updateMatrix = (val:any) =>{ 发起人 执行人 - - + + 多人审批时采用的审批方式 - 多人审批时采用的审批方式 依次审批 会签(须所有审批人同意) 或签(有一位审批人同意即可) + 审批人为空时 - 审批人为空时 自动审批通过/不允许发起 转交给审核管理员 - + 退回设置 - 退回设置 发起人 {{ item.nodeName }}(编号:{{ item.nodeNumber }}) - + 操作权限 + + 主表 + + + + + + + + + + + + + + + {{item.name}}子表 + + + + + + + + + + + + + + + + + @@ -416,7 +557,7 @@ const updateMatrix = (val:any) =>{ } } .approver_manager,.approver_self_select,.approver_some,.approver_self{ - border-top: 1px solid #f2f2f2; + border-top: 0px solid #f2f2f2; } .approver_self_select, .approver_content{ @@ -487,5 +628,7 @@ const updateMatrix = (val:any) =>{ margin-top: 15px; } } - +.info_box{ + padding: 0 20px; +} diff --git a/src/components/workflow/drwer/promoterDrawer.vue b/src/components/workflow/drwer/promoterDrawer.vue index ebc903272..dfaf9d383 100644 --- a/src/components/workflow/drwer/promoterDrawer.vue +++ b/src/components/workflow/drwer/promoterDrawer.vue @@ -9,6 +9,8 @@ import { AnalysisForm } from '@/components/workflow/drwer/analysisForm' import $func from '@/utils/workflow/index' import { useStore } from '@/store/workflow/index' +import { analysisForm,setFlowFormKeyPower } from '@/api/workflowapi/index' + const props = defineProps({ formData:{ @@ -16,8 +18,19 @@ const props = defineProps({ default(){ return {} } - } + }, + formKey:{ + type:String, + default:"" + }, + formVersion:{ + type:String, + default:"" + }, }); +const emits = defineEmits<{ + (e: 'update:formData', val: any): void +}>() const formData = computed({ get() { @@ -28,6 +41,9 @@ const formData = computed({ } }); +//当前节点操作权限 +// const + let flowPermission = ref([]) let promoterVisible = ref(false) let checkedList = ref([]) @@ -36,8 +52,6 @@ let store = useStore() let { setPromoter, setFlowPermission } = store let promoterDrawer = computed(()=> store.promoterDrawer) let flowPermission1 = computed(()=> store.flowPermission1) -let approverConfig1 = computed(():any=> store.approverConfig1) - let visible = computed({ get() { return promoterDrawer.value @@ -64,28 +78,100 @@ const savePromoter = () => { flag: true, id: flowPermission1.value.id }) + let powerAry = []; + if(powerUnitAry.value.recUnitAry.masterUnitList && powerUnitAry.value.recUnitAry.masterUnitList.length > 0){ + powerUnitAry.value.recUnitAry.masterUnitList.forEach((item:any)=>{ + powerAry.push(item) + }) + } + if(powerUnitAry.value.recUnitAry.sunUnitList && powerUnitAry.value.recUnitAry.sunUnitList.length > 0){ + powerUnitAry.value.recUnitAry.sunUnitList.forEach((item:any)=>{ + if(item.masterUnitList && item.masterUnitList.length > 0){ + item.masterUnitList.forEach((itemSun:any) => { + // powerAry.push(item) + if(!powerAry.includes(itemSun)){ + powerAry.push(itemSun) + } + }) + } + }); + } + // console.log("正确",formData.value) + if(formData.value.purview){ + // console.log("正确") + let isNew = true + formData.value.purview.forEach((item:any)=>{ + // console.log("正确---->",item.nodeKey) + if(item.nodeKey == "begin"){ + item.powerAry=powerAry + isNew = false + } + }); + if(isNew){ + formData.value.purview.push({ + nodeKey: "begin", + powerAry:powerAry + }) + } + }else{ + formData.value.purview = [{ + nodeKey: "begin", + powerAry:powerAry + }] + } + + // formData.value.purview.push({ + // nodeKey: "begin", + // powerAry:powerAry + // }) {{props.formKey}}=>{{props.formVersion}} + + let sendInfo: any = { + formKey:props.formKey.toString(), + formVersion:props.formVersion.toString(), + formData:JSON.stringify(formData.value), + formPower:JSON.stringify(formData.value.purview) + } + // console.log("sendInfo",sendInfo) + setFlowFormKeyPower(sendInfo) + // console.log("formDataAll",formData) + // console.log("formData",formData.value.purview) closeDrawer() } const closeDrawer = () => { setPromoter(false) } + +const powerUnitAry = ref({ + nodeKey:"", + recUnitAry:{ + masterUnitList:[], + sunUnitList:[], + unitAllKey:[], + unitAllState:[] + } +}) /** @ 作者: 秦东 @ 时间: 2024-03-13 08:24:54 @ 功能: 解析表单 */ const jieForm = () => { - AnalysisForm(formData.value) + analysisForm({nodeKey:"begin",nodeJson:JSON.stringify(formData.value)}) + .then((data)=>{ + if(data.code == 0){ + powerUnitAry.value = data.data + } + }) } - - -onMounted(() => { - jieForm(); +watch(()=>visible.value,(val:boolean)=>{ + if(val){ + jieForm(); + } }) - + @@ -94,17 +180,43 @@ onMounted(() => { {{ $func.arrToStr(flowPermission) || '所有人' }} 添加/修改发起人 - - ----------------------------------------- - - {{approverConfig1}} - - ----------------------------------------- - - + 操作权限 - {{formData}} + + 主表 + + + + + + + + + + + + + + + {{item.name}}子表 + + + + + + + + + + + + + + + + + +
@@ -220,6 +324,7 @@ const updateMatrix = (val:any) =>{
@@ -240,8 +345,8 @@ const updateMatrix = (val:any) =>{ 找不到主管时,由上级主管代审批
找不到主管时,由上级主管代审批
指定行政岗位
该审批节点设置“发起人自己”后,审批人默认为发起人
审批终点
@@ -301,6 +408,7 @@ const updateMatrix = (val:any) =>{
可选节点列表
指定审批字段
{{item.name}} @@ -324,40 +432,73 @@ const updateMatrix = (val:any) =>{ 发起人 执行人 - -
多人审批时采用的审批方式
审批人为空时
退回设置
{{ $func.arrToStr(flowPermission) || '所有人' }}