UNPKG

create-iking-admin

Version:

金合技术中台脚手架

126 lines (117 loc) 4.05 kB
/* * @Author : wfl * @LastEditors: qiye * @description : * @updateInfo : * @Date : 2023-05-12 12:09:01 * @LastEditTime: 2023-08-10 15:47:56 */ import { _, buildUUID, ikArray, paramType } from 'iking-utils' import { ElMessage } from 'element-plus' import { formApi } from '@main/api/modules/approve-center' import { useFlowStore } from '@main/store/modules/flow' export const useLoadEditData = (PROCESS_FORM = true) => { const flowStore = useFlowStore() const loadingEdit = ref(false) const router = useRouter() const resetUUID = (data: any, parentId?: string) => { if (paramType.isArray(data)) { data?.forEach((item: any) => { item.id = buildUUID() item.parentId = parentId || null if (item.children) resetUUID(item.children, item.id) if (item.branchs) resetUUID(item.branchs, item.id) }) } else { data.id = buildUUID() data.parentId = parentId || null if (data.children) resetUUID(data.children, data.id) if (data.branchs) resetUUID(data.branchs, data.id) } } // 编辑 const handEditFlow = async (row: { id: string; }, toStepOne = true) => { loadingEdit.value = true // 加载中... // 获取表单详情 const { success, data, msg } = await formApi.getFormDetail(row.id) localStorage.setItem('formViewConfig', data.formViewConfig?.property || '') try { if (success) { if (data) { const formObj = JSON.parse(data?.formViewConfig?.property || '{}') const PROCESS = JSON.parse(data?.process?.property || '{}')?.process || [] resetUUID(PROCESS) const copyData = _.cloneDeep(data) const viewConfig = _.cloneDeep(data.formViewConfig) delete copyData.formViewConfig delete copyData.process delete copyData.formAdvanceConfigDTO copyData?.initiators?.forEach((initiator: any) => { const { initiatorId, initiatorName, initiatorType } = initiator initiator.elementName = initiatorName initiator.elementId = initiatorId initiator.elementType = initiatorType }) copyData.managers?.forEach((initiator: any) => { const { managerId, managerName, managerType } = initiator initiator.elementName = managerName initiator.elementId = managerId initiator.elementType = managerType }) const form = { base: { ...copyData, initiatorsName: ikArray.listToString( copyData?.initiators, 'elementName', ', ', '' ), managersName: ikArray.listToString( copyData?.managers, 'elementName', ', ', '' ) }, // advance: data.formAdvanceConfigDTO, formItems: PROCESS_FORM ? formObj?.widgetList : (viewConfig?.widgets || []), process: PROCESS } flowStore.loadForm(form) flowStore.setForm({ id: data?.formViewConfig?.id, formId: data?.formViewConfig?.formId, formConfig: formObj?.formConfig, widgetList: PROCESS_FORM ? formObj?.widgetList : viewConfig?.widgets }) // 设置高级配置 flowStore.setAdvance(data.formAdvanceConfig) if (toStepOne) { router.push({ name: 'EditForm', query: { type: data?.type, id: row.id, isEdit: 1 } }) } } loadingEdit.value = false } else { ElMessage.error(msg) loadingEdit.value = false } } catch (error) { console.info('error: ', error) } } return { loadingEdit, handEditFlow } }