diff --git a/.env.development b/.env.development index 4c00a28f..03fe08f0 100644 --- a/.env.development +++ b/.env.development @@ -6,7 +6,11 @@ VITE_PUBLIC_PATH = / # Basic interface address SPA #VITE_GLOB_API_URL=/basic-api +#财源 VITE_GLOB_API_URL=http://192.168.10.102:9500 +#基础框架 +#VITE_GLOB_API_URL=http://192.168.10.102:9023 + # File upload address, optional diff --git a/.env.production b/.env.production index 908cff62..88633da7 100644 --- a/.env.production +++ b/.env.production @@ -11,7 +11,10 @@ VITE_BUILD_COMPRESS = 'none' # Basic interface address SPA +#财源 VITE_GLOB_API_URL=http://192.168.10.102:9500 +#基础框架 +#VITE_GLOB_API_URL=http://192.168.10.102:9023 # File upload address, optional # It can be forwarded by nginx or write the actual address directly diff --git a/src/components/ProcessDesigner/package/penal/userTask/index.vue b/src/components/ProcessDesigner/package/penal/userTask/index.vue index 3eb18e91..4bcb510d 100644 --- a/src/components/ProcessDesigner/package/penal/userTask/index.vue +++ b/src/components/ProcessDesigner/package/penal/userTask/index.vue @@ -165,7 +165,120 @@ - + + + + + + + 选择 + + + + + + + + + + + + + + + + + + + + + + 表单字段权限 + + + + + + + + + + 添加字段 + + + - + - + @@ -363,6 +476,16 @@ > + + + @@ -374,6 +497,8 @@ import { AuditorLevel, AuditorSql, AuditorNode } from './page'; import { DeleteOutlined, PlusOutlined } from '@ant-design/icons-vue'; import { flowStore } from '@/store/modules/flow'; + import { SelectForm } from '@/components/SelectForm/index'; + import { functionGetSchemePageList, functionLoadFormPage } from '@/api/demo/formScheme'; const flowWfDataStore = flowStore(); const labelCol = { span: 7 }; @@ -442,6 +567,28 @@ dataIndex: 'operation', }, ], + formColumns: [ + { + title: '名称', + dataIndex: 'label', + }, + { + title: '字段', + dataIndex: 'field', + }, + { + title: '必填', + dataIndex: 'required', + }, + { + title: '编辑', + dataIndex: 'disabled', + }, + { + title: '查看', + dataIndex: 'ifShow', + }, + ], isLooker: false, conditionOptions: [ { value: '1', label: '同一个部门' }, @@ -450,6 +597,10 @@ { value: '4', label: '发起人下级' }, ], componentDisabled: props.pageType == 'detail' ? true : false, + formRelations: [], + formOpen: false, + formVerisons: [], + formName: '', }); watch( @@ -465,6 +616,15 @@ } }, ); + watch( + () => node.value.formCode, + (newVal) => { + if (newVal) { + getFormList(); + getVersions(false); + } + }, + ); function updateWfData(key) { flowWfDataStore.updataWfDataNode(node.value.id, key, node.value[key]); } @@ -629,7 +789,112 @@ node.value.btnlist = node.value.btnlist.filter((item) => item.code !== key); updateWfData('btnlist'); } + // 表单设置 + // 编辑时获取表单名称,表单版本 + async function getFormList() { + const list = await functionLoadFormPage({ + page: 1, + limit: 1000, + }); + list.items.forEach((element) => { + if (element.id == node.value.formCode) { + data.formName = element.name; + } + }); + } + // 切换自定义表单和系统表单 + function tabsChange() { + data.formName = ''; + node.value.formCode = ''; + node.value.formVerison = ''; + node.value.formRelationId = ''; + node.value.formUrl = ''; + node.value.formAppUrl = ''; + node.value.authFields = []; + node.value.formRelations = []; + } + // 表单选择打开 + function handleShow() { + data.formOpen = true; + } + // 表单选择 + const formRef = ref(); + async function formHandleOk() { + let obj = formRef.value.getRow(); + node.value.formCode = obj[0].id; + data.formName = obj[0].name; + node.value.formVerison = ''; + node.value.formRelationId = ''; + node.value.formUrl = ''; + node.value.formAppUrl = ''; + node.value.authFields = []; + node.value.formRelations = []; + getVersions(true); + data.formOpen = false; + } + async function getVersions(isChange) { + const list = await functionGetSchemePageList({ + schemeInfoId: node.value.formCode, + }); + data.formVerisons = list.items; + if (node.value.formVerison) { + custmerformVerisonChange(node.value.formVerison, isChange); + } + } + // 表单版本更改 + async function custmerformVerisonChange(val, isChange) { + let obj; + data.formVerisons.forEach((element) => { + if (element.id == val) { + obj = element; + } + }); + loadFormScheme(obj.scheme, isChange); + } + function loadFormScheme(strScheme, isChange) { + const scheme = JSON.parse(strScheme); + const fields: any[] = []; + const rfields: { + label?: string; + value?: string; + }[] = []; + scheme.formInfo.schemas.forEach( + (element: { label?: string; field?: string; component: any; itemProps: any }) => { + if (['InputGuid'].includes(element.component)) { + rfields.push({ + label: element.label, + // value:element.prop + value: element.field, + }); + } + if (!['Divider'].includes(element.component) && !element.itemProps.hidden) { + let obj: any = element; + obj.required = element.itemProps.required; + obj.componentProps.disabled = true; + obj.disabled = true; + obj.ifShow = true; + fields.push(obj); + } + }, + ); + data.formRelations = rfields; + if (isChange) { + node.value.authFields = fields; + } + } + function handleAddAuthField() { + node.value.authFields.push({ + field: '', + label: '', + required: true, + disabled: true, + ifShow: true, + }); + } + function handleDeleteAuthField(key) { + node.value.authFields = node.value.authFields.filter((item) => item.field !== key); + } defineExpose({}); @@ -694,3 +959,20 @@ } } + diff --git a/src/views/demo/workflow/create/preview.vue b/src/views/demo/workflow/create/preview.vue index 858eb763..1d5975f8 100644 --- a/src/views/demo/workflow/create/preview.vue +++ b/src/views/demo/workflow/create/preview.vue @@ -164,7 +164,8 @@ } else if (currentNode.formUrl) { // 有PC系统表单时 formUrlVisble.value = true; - let url = '../../..' + currentNode.formUrl + '.vue'; + let url = '../../' + currentNode.formUrl + '.vue'; + console.log(url) // AsyncComponent.value = defineAsyncComponent(() => import(url)); AsyncComponent.value = defineAsyncComponent({ // 加载函数 @@ -264,9 +265,9 @@ }); } else if (formUrlVisble.value) { //有系统表单,先存系统表单 - const funName = 'handleSubmit'; - pcForm.value[funName](); - // handleCreateFlow(processId); + // const funName = 'handleSubmit'; + // pcForm.value[funName](); + handleCreateFlow(processId); } else { handleCreateFlow(processId); } diff --git a/src/views/demo/workflow/task/process/audit.vue b/src/views/demo/workflow/task/process/audit.vue index 05987a4d..47ef745d 100644 --- a/src/views/demo/workflow/task/process/audit.vue +++ b/src/views/demo/workflow/task/process/audit.vue @@ -21,6 +21,9 @@ v-if="formVisble" /> + + +