+
diff --git a/src/views/secondDev/flowFormInformation.vue b/src/views/secondDev/flowFormInformation.vue
new file mode 100644
index 0000000..5b917f1
--- /dev/null
+++ b/src/views/secondDev/flowFormInformation.vue
@@ -0,0 +1,493 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/secondDev/formCreatePage.vue b/src/views/secondDev/formCreatePage.vue
index 296c9b4..2fe2309 100644
--- a/src/views/secondDev/formCreatePage.vue
+++ b/src/views/secondDev/formCreatePage.vue
@@ -1,23 +1,25 @@
-
-
+
+
diff --git a/src/views/secondDev/processMonitoringPage.vue b/src/views/secondDev/processMonitoringPage.vue
new file mode 100644
index 0000000..e89d06d
--- /dev/null
+++ b/src/views/secondDev/processMonitoringPage.vue
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/sys/lock/LockPage.vue b/src/views/sys/lock/LockPage.vue
index d19dd98..134109c 100644
--- a/src/views/sys/lock/LockPage.vue
+++ b/src/views/sys/lock/LockPage.vue
@@ -10,61 +10,117 @@
v-show="showDate"
>
-
{{ t('sys.lock.unlock') }}
+
{{ t('解锁') }}
-
-
-
{{ hour }}
-
- {{ meridiem }}
-
+
+
+
+
![]()
+
+ {{ sysName }}
+
-
-
{{ minute }}
+
+
+
+ {{ hour }}
+
+ {{ meridiem }}
+
+
+
+ {{ minute }}
+
+
+
+
+ {{ lockErrorMsg }}
+
- {{ userinfo.realName }}
+ {{ userinfo.name }}
+
+
+ {{ userinfo.mobile.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2') }}
-
-
- {{ t('sys.lock.alert') }}
-
+
+
+
+ {{ t('请重新登录') }}
+
+
+
+
+
+
+
+
+
+
- {{ t('common.back') }}
+
+ {{ t('取消') }}
- {{ t('sys.lock.backToLogin') }}
+ {{ t('返回登录界面') }}
-
- {{ t('sys.lock.entry') }}
+
+ {{ loginType == 'sms' ? t('密码解锁') : t('短信解锁') }}
+
+
@@ -74,6 +130,28 @@
{{ year }}/{{ month }}/{{ day }} {{ week }}
+
+
+
diff --git a/src/views/system/Testfrom3/components/Form.vue b/src/views/system/Testfrom3/components/Form.vue
new file mode 100644
index 0000000..df59123
--- /dev/null
+++ b/src/views/system/Testfrom3/components/Form.vue
@@ -0,0 +1,216 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/views/system/Testfrom3/components/Testfrom3Modal.vue b/src/views/system/Testfrom3/components/Testfrom3Modal.vue
new file mode 100644
index 0000000..168dd47
--- /dev/null
+++ b/src/views/system/Testfrom3/components/Testfrom3Modal.vue
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/system/Testfrom3/components/config.ts b/src/views/system/Testfrom3/components/config.ts
new file mode 100644
index 0000000..45a7cc9
--- /dev/null
+++ b/src/views/system/Testfrom3/components/config.ts
@@ -0,0 +1,231 @@
+import { FormProps, FormSchema } from '/@/components/Form';
+import { BasicColumn } from '/@/components/Table';
+
+export const formConfig = {
+ useCustomConfig: false,
+};
+
+export const searchFormSchema: FormSchema[] = [
+ {
+ field: 'danXingWenBen5518',
+ label: '单行文本',
+ component: 'Input',
+ },
+ {
+ field: 'danXingWenBen5841',
+ label: '单行文本',
+ component: 'Input',
+ },
+ {
+ field: 'jiShuZuJian6835',
+ label: '计数组件',
+ component: 'InputNumber',
+ componentProps: {
+ style: { width: '100%' },
+ },
+ },
+];
+
+export const columns: BasicColumn[] = [
+ {
+ dataIndex: 'danXingWenBen5518',
+ title: '单行文本',
+ componentType: 'input',
+ align: 'left',
+
+ sorter: true,
+ },
+
+ {
+ dataIndex: 'danXingWenBen5841',
+ title: '单行文本',
+ componentType: 'input',
+ align: 'left',
+
+ sorter: true,
+ },
+
+ {
+ dataIndex: 'jiShuZuJian6835',
+ title: '计数组件',
+ componentType: 'number',
+ align: 'left',
+
+ sorter: true,
+ },
+];
+//表单事件
+export const formEventConfigs = {
+ 0: [
+ {
+ type: 'circle',
+ color: '#2774ff',
+ text: '开始节点',
+ icon: '#icon-kaishi',
+ bgcColor: '#D8E5FF',
+ isUserDefined: false,
+ },
+ {
+ color: '#F6AB01',
+ icon: '#icon-chushihua',
+ text: '初始化表单',
+ bgcColor: '#f9f5ea',
+ isUserDefined: false,
+ nodeInfo: { processEvent: [] },
+ },
+ ],
+ 1: [
+ {
+ color: '#B36EDB',
+ icon: '#icon-shujufenxi',
+ text: '获取表单数据',
+ detail: '(新增无此操作)',
+ bgcColor: '#F8F2FC',
+ isUserDefined: false,
+ nodeInfo: { processEvent: [] },
+ },
+ ],
+ 2: [
+ {
+ color: '#F8625C',
+ icon: '#icon-jiazai',
+ text: '加载表单',
+ bgcColor: '#FFF1F1',
+ isUserDefined: false,
+ nodeInfo: { processEvent: [] },
+ },
+ ],
+ 3: [
+ {
+ color: '#6C6AE0',
+ icon: '#icon-jsontijiao',
+ text: '提交表单',
+ bgcColor: '#F5F4FF',
+ isUserDefined: false,
+ nodeInfo: { processEvent: [] },
+ },
+ ],
+ 4: [
+ {
+ type: 'circle',
+ color: '#F8625C',
+ text: '结束节点',
+ icon: '#icon-jieshuzhiliao',
+ bgcColor: '#FFD6D6',
+ isLast: true,
+ isUserDefined: false,
+ },
+ ],
+};
+export const formProps: FormProps = {
+ labelCol: { span: 3, offset: 0 },
+ labelAlign: 'right',
+ layout: 'horizontal',
+ size: 'default',
+ schemas: [
+ {
+ key: '4251bdeb18574f2cb014ca33d650be52',
+ field: 'danXingWenBen5518',
+ label: '单行文本',
+ type: 'input',
+ component: 'Input',
+ colProps: { span: 24 },
+ defaultValue: '',
+ componentProps: {
+ width: '100%',
+ span: '',
+ defaultValue: '',
+ labelWidthMode: 'fix',
+ labelFixWidth: 120,
+ responsive: false,
+ respNewRow: false,
+ placeholder: '请输入单行文本',
+ maxlength: null,
+ prefix: '',
+ suffix: '',
+ addonBefore: '',
+ addonAfter: '',
+ disabled: false,
+ allowClear: false,
+ showLabel: true,
+ required: false,
+ rules: [],
+ events: {},
+ isSave: false,
+ isShow: true,
+ scan: false,
+ style: { width: '100%' },
+ },
+ },
+ {
+ key: '3cea59512d464fa3b5a81814999718f3',
+ field: 'danXingWenBen5841',
+ label: '单行文本',
+ type: 'input',
+ component: 'Input',
+ colProps: { span: 24 },
+ defaultValue: '',
+ componentProps: {
+ width: '100%',
+ span: '',
+ defaultValue: '',
+ labelWidthMode: 'fix',
+ labelFixWidth: 120,
+ responsive: false,
+ respNewRow: false,
+ placeholder: '请输入单行文本',
+ maxlength: null,
+ prefix: '',
+ suffix: '',
+ addonBefore: '',
+ addonAfter: '',
+ disabled: false,
+ allowClear: false,
+ showLabel: true,
+ required: false,
+ rules: [],
+ events: {},
+ isSave: false,
+ isShow: true,
+ scan: false,
+ style: { width: '100%' },
+ },
+ },
+ {
+ key: 'c4aaaf58ffbc468bb3f6c4f013b0350b',
+ field: 'jiShuZuJian6835',
+ label: '计数组件',
+ type: 'number',
+ component: 'InputNumber',
+ colProps: { span: 24 },
+ defaultValue: 0,
+ componentProps: {
+ labelWidthMode: 'fix',
+ labelFixWidth: 120,
+ responsive: false,
+ width: '100%',
+ span: '',
+ defaultValue: 0,
+ min: 0,
+ max: 100,
+ step: 1,
+ maxlength: null,
+ disabled: false,
+ showLabel: true,
+ controls: true,
+ required: false,
+ subTotal: false,
+ isShow: true,
+ rules: [],
+ events: {},
+ style: { width: '100%' },
+ },
+ },
+ ],
+ showActionButtonGroup: false,
+ buttonLocation: 'center',
+ actionColOptions: { span: 24 },
+ showResetButton: false,
+ showSubmitButton: false,
+ hiddenComponent: [],
+};
\ No newline at end of file
diff --git a/src/views/system/Testfrom3/components/workflowPermission.ts b/src/views/system/Testfrom3/components/workflowPermission.ts
new file mode 100644
index 0000000..aa32032
--- /dev/null
+++ b/src/views/system/Testfrom3/components/workflowPermission.ts
@@ -0,0 +1,47 @@
+export const permissionList = [
+ {
+ required: true,
+ view: true,
+ edit: true,
+ disabled: false,
+ isSaveTable: false,
+ tableName: '',
+ fieldName: '单行文本',
+ fieldId: 'danXingWenBen5518',
+ isSubTable: false,
+ showChildren: true,
+ type: 'input',
+ key: '4251bdeb18574f2cb014ca33d650be52',
+ children: [],
+ },
+ {
+ required: true,
+ view: true,
+ edit: true,
+ disabled: false,
+ isSaveTable: false,
+ tableName: '',
+ fieldName: '单行文本',
+ fieldId: 'danXingWenBen5841',
+ isSubTable: false,
+ showChildren: true,
+ type: 'input',
+ key: '3cea59512d464fa3b5a81814999718f3',
+ children: [],
+ },
+ {
+ required: true,
+ view: true,
+ edit: true,
+ disabled: false,
+ isSaveTable: false,
+ tableName: '',
+ fieldName: '计数组件',
+ fieldId: 'jiShuZuJian6835',
+ isSubTable: false,
+ showChildren: true,
+ type: 'number',
+ key: 'c4aaaf58ffbc468bb3f6c4f013b0350b',
+ children: [],
+ },
+];
\ No newline at end of file
diff --git a/src/views/system/Testfrom3/index.vue b/src/views/system/Testfrom3/index.vue
new file mode 100644
index 0000000..773c98c
--- /dev/null
+++ b/src/views/system/Testfrom3/index.vue
@@ -0,0 +1,469 @@
+
+
+
+
+
+
+
+
+ {{ button.name }}
+
+
+
+ {{ button.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/system/dataMigration/components/config.ts b/src/views/system/dataMigration/components/config.ts
new file mode 100644
index 0000000..8992290
--- /dev/null
+++ b/src/views/system/dataMigration/components/config.ts
@@ -0,0 +1,77 @@
+export const items=[
+ /* {
+ code:"租户",
+ name:'租户',
+ ref:"tenantRef",
+ }, */
+ {
+ code:'角色',
+ name:'角色',
+ ref:"roleRef",
+ },
+ {
+ code:'岗位',
+ name:'岗位' ,
+ ref:"postRef",
+ },
+
+ {
+ code:'用户组',
+ name:'用户组',
+ ref:"userGroupRef",
+ },
+ {
+ code:'菜单',
+ name:'菜单',
+ ref:"menuRef",
+ },
+
+ {
+ code:'表单',
+ name:'表单',
+ ref:"formRef",
+ },
+ {
+ code:'流程定义',
+ name:'流程定义',
+ ref:"workflowRef",
+ },
+ {
+ code:'系统配置',
+ name:'系统配置',
+ ref:"systemConfigRef",
+ },
+ {
+ checked:false,
+ code:'数据字典',
+ name:'数据字典',
+ ref:"dictionaryRef",
+ },
+ {
+ checked:false,
+ code:'自动编码',
+ name:'自动编码',
+ ref:"codeRuleRef",
+ },
+ {
+ code:'桌面设计',
+ name:'桌面设计',
+ ref:"desktopRef",
+ },
+ {
+ checked:false,
+ code:'角色-菜单授权',
+ name:'权限:角色-菜单授权(菜单、按钮、列表、表单)',
+ ref:"roleMenuAuthRef",
+ },
+ {
+ code:'角色-自定义接口授权',
+ name:'权限:角色-自定义接口授权',
+ ref:"roleInterfaceAuthRef",
+ },
+ {
+ code:'租户-菜单授权',
+ name:'权限:租户-菜单授权',
+ ref:"tenantMenuAuthRef",
+ }
+ ]
diff --git a/src/views/system/dataMigration/components/export/ExportModal.vue b/src/views/system/dataMigration/components/export/ExportModal.vue
new file mode 100644
index 0000000..b858da2
--- /dev/null
+++ b/src/views/system/dataMigration/components/export/ExportModal.vue
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+
+
{{t('上一步')}}
+
{{t('下一步')}}
+
{{t('导出')}}
+
{{ t('关闭') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/dataMigration/components/export/components/CodeRule.vue b/src/views/system/dataMigration/components/export/components/CodeRule.vue
new file mode 100644
index 0000000..e71b9b5
--- /dev/null
+++ b/src/views/system/dataMigration/components/export/components/CodeRule.vue
@@ -0,0 +1,95 @@
+
+
+
+
diff --git a/src/views/system/dataMigration/components/export/components/Desktop.vue b/src/views/system/dataMigration/components/export/components/Desktop.vue
new file mode 100644
index 0000000..a7e3b01
--- /dev/null
+++ b/src/views/system/dataMigration/components/export/components/Desktop.vue
@@ -0,0 +1,77 @@
+
+
+
+
diff --git a/src/views/system/dataMigration/components/export/components/Dictionary.vue b/src/views/system/dataMigration/components/export/components/Dictionary.vue
new file mode 100644
index 0000000..30a8570
--- /dev/null
+++ b/src/views/system/dataMigration/components/export/components/Dictionary.vue
@@ -0,0 +1,241 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/dataMigration/components/export/components/Form.vue b/src/views/system/dataMigration/components/export/components/Form.vue
new file mode 100644
index 0000000..3409f95
--- /dev/null
+++ b/src/views/system/dataMigration/components/export/components/Form.vue
@@ -0,0 +1,94 @@
+
+
+
+
diff --git a/src/views/system/dataMigration/components/export/components/InterfaceAuth.vue b/src/views/system/dataMigration/components/export/components/InterfaceAuth.vue
new file mode 100644
index 0000000..4f4eed4
--- /dev/null
+++ b/src/views/system/dataMigration/components/export/components/InterfaceAuth.vue
@@ -0,0 +1,279 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/dataMigration/components/export/components/Menu.vue b/src/views/system/dataMigration/components/export/components/Menu.vue
new file mode 100644
index 0000000..7716a7a
--- /dev/null
+++ b/src/views/system/dataMigration/components/export/components/Menu.vue
@@ -0,0 +1,286 @@
+
+
+
+ {{
+ t('菜单')
+ }}
+
+
+
+ {{ title }} 【{{ systemName }}】
+ {{ title }}
+
+
+
+
+
+ {{
+ t('按钮')
+ }}
+
+
+
+
+
+ {{
+ t('字段')
+ }}
+
+
+
+
+
+ {{
+ t('表单')
+ }}
+
+
+
+
+
+
+
+
diff --git a/src/views/system/dataMigration/components/export/components/Post.vue b/src/views/system/dataMigration/components/export/components/Post.vue
new file mode 100644
index 0000000..626df70
--- /dev/null
+++ b/src/views/system/dataMigration/components/export/components/Post.vue
@@ -0,0 +1,236 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/dataMigration/components/export/components/Role.vue b/src/views/system/dataMigration/components/export/components/Role.vue
new file mode 100644
index 0000000..76d2d74
--- /dev/null
+++ b/src/views/system/dataMigration/components/export/components/Role.vue
@@ -0,0 +1,91 @@
+
+
+
+
diff --git a/src/views/system/dataMigration/components/export/components/RoleMenuAuth.vue b/src/views/system/dataMigration/components/export/components/RoleMenuAuth.vue
new file mode 100644
index 0000000..34a9365
--- /dev/null
+++ b/src/views/system/dataMigration/components/export/components/RoleMenuAuth.vue
@@ -0,0 +1,423 @@
+
+
+
+
+
diff --git a/src/views/system/dataMigration/components/export/components/SystemConfig.vue b/src/views/system/dataMigration/components/export/components/SystemConfig.vue
new file mode 100644
index 0000000..1d8ce83
--- /dev/null
+++ b/src/views/system/dataMigration/components/export/components/SystemConfig.vue
@@ -0,0 +1,85 @@
+
+
+
+
diff --git a/src/views/system/dataMigration/components/export/components/Tenant.vue b/src/views/system/dataMigration/components/export/components/Tenant.vue
new file mode 100644
index 0000000..282244e
--- /dev/null
+++ b/src/views/system/dataMigration/components/export/components/Tenant.vue
@@ -0,0 +1,77 @@
+
+
+
+
diff --git a/src/views/system/dataMigration/components/export/components/TenantAuthorize.vue b/src/views/system/dataMigration/components/export/components/TenantAuthorize.vue
new file mode 100644
index 0000000..ea68ad0
--- /dev/null
+++ b/src/views/system/dataMigration/components/export/components/TenantAuthorize.vue
@@ -0,0 +1,141 @@
+
+
+
+ {{ t('已授权菜单') }}
+
+
+
+
+ {{ title }} 【{{ systemName }}】
+ {{ title }}
+
+
+
+
+
+
diff --git a/src/views/system/dataMigration/components/export/components/UserGroup.vue b/src/views/system/dataMigration/components/export/components/UserGroup.vue
new file mode 100644
index 0000000..b7a0a76
--- /dev/null
+++ b/src/views/system/dataMigration/components/export/components/UserGroup.vue
@@ -0,0 +1,91 @@
+
+
+
+
diff --git a/src/views/system/dataMigration/components/export/components/Workflow.vue b/src/views/system/dataMigration/components/export/components/Workflow.vue
new file mode 100644
index 0000000..e20f502
--- /dev/null
+++ b/src/views/system/dataMigration/components/export/components/Workflow.vue
@@ -0,0 +1,77 @@
+
+
+
+
diff --git a/src/views/system/dataMigration/components/export/index.vue b/src/views/system/dataMigration/components/export/index.vue
index db0c9d0..8807a6c 100644
--- a/src/views/system/dataMigration/components/export/index.vue
+++ b/src/views/system/dataMigration/components/export/index.vue
@@ -1,6 +1,9 @@
-
导出所选项目{{configType}}
+
+ 选择性导出
+
+
+
+
diff --git a/src/views/system/dataMigration/components/import/ImportModal.vue b/src/views/system/dataMigration/components/import/ImportModal.vue
new file mode 100644
index 0000000..d88b66d
--- /dev/null
+++ b/src/views/system/dataMigration/components/import/ImportModal.vue
@@ -0,0 +1,271 @@
+
+
+
+
+
+
+
+
{{t('上一步')}}
+
{{t('下一步')}}
+
{{t('导入')}}
+
{{ t('关闭') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/dataMigration/components/import/PickingImportSelectFile.vue b/src/views/system/dataMigration/components/import/PickingImportSelectFile.vue
new file mode 100644
index 0000000..564535d
--- /dev/null
+++ b/src/views/system/dataMigration/components/import/PickingImportSelectFile.vue
@@ -0,0 +1,150 @@
+
+
+
+
+
+
+
+ {{ t('将文件拖到此处,或') }}{{ t('点击上传') }}
+
+
+ {{VITE_GLOB_UPLOAD_ALERT_TIP}}
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/dataMigration/components/import/components/CodeRule.vue b/src/views/system/dataMigration/components/import/components/CodeRule.vue
new file mode 100644
index 0000000..6be357e
--- /dev/null
+++ b/src/views/system/dataMigration/components/import/components/CodeRule.vue
@@ -0,0 +1,113 @@
+
+
+
+
diff --git a/src/views/system/dataMigration/components/import/components/Desktop.vue b/src/views/system/dataMigration/components/import/components/Desktop.vue
new file mode 100644
index 0000000..4e196b0
--- /dev/null
+++ b/src/views/system/dataMigration/components/import/components/Desktop.vue
@@ -0,0 +1,80 @@
+
+
+
+
diff --git a/src/views/system/dataMigration/components/import/components/Dictionary.vue b/src/views/system/dataMigration/components/import/components/Dictionary.vue
new file mode 100644
index 0000000..63e0d4d
--- /dev/null
+++ b/src/views/system/dataMigration/components/import/components/Dictionary.vue
@@ -0,0 +1,287 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/dataMigration/components/import/components/Form.vue b/src/views/system/dataMigration/components/import/components/Form.vue
new file mode 100644
index 0000000..185d4fd
--- /dev/null
+++ b/src/views/system/dataMigration/components/import/components/Form.vue
@@ -0,0 +1,83 @@
+
+
+
+
diff --git a/src/views/system/dataMigration/components/import/components/ImportTypeSelect.vue b/src/views/system/dataMigration/components/import/components/ImportTypeSelect.vue
new file mode 100644
index 0000000..c471ae4
--- /dev/null
+++ b/src/views/system/dataMigration/components/import/components/ImportTypeSelect.vue
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+
+ 覆盖模式
+
+
+ 新增模式
+ 覆盖模式
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/dataMigration/components/import/components/InterfaceAuth.vue b/src/views/system/dataMigration/components/import/components/InterfaceAuth.vue
new file mode 100644
index 0000000..c54220b
--- /dev/null
+++ b/src/views/system/dataMigration/components/import/components/InterfaceAuth.vue
@@ -0,0 +1,111 @@
+
+
+
+
diff --git a/src/views/system/dataMigration/components/import/components/Menu.vue b/src/views/system/dataMigration/components/import/components/Menu.vue
new file mode 100644
index 0000000..15cb3ea
--- /dev/null
+++ b/src/views/system/dataMigration/components/import/components/Menu.vue
@@ -0,0 +1,257 @@
+
+
+
+ {{
+ t('菜单')
+ }}
+
+
+
+ {{ title }} 【{{ systemName }}】
+ {{ title }}
+
+
+
+
+
+ {{
+ t('按钮')
+ }}
+
+
+
+
+
+ {{
+ t('字段')
+ }}
+
+
+
+
+
+ {{
+ t('表单')
+ }}
+
+
+
+
+
+
+
+
diff --git a/src/views/system/dataMigration/components/import/components/Post.vue b/src/views/system/dataMigration/components/import/components/Post.vue
new file mode 100644
index 0000000..7e4f523
--- /dev/null
+++ b/src/views/system/dataMigration/components/import/components/Post.vue
@@ -0,0 +1,118 @@
+
+
+
+
diff --git a/src/views/system/dataMigration/components/import/components/Role.vue b/src/views/system/dataMigration/components/import/components/Role.vue
new file mode 100644
index 0000000..360393d
--- /dev/null
+++ b/src/views/system/dataMigration/components/import/components/Role.vue
@@ -0,0 +1,95 @@
+
+
+
+
diff --git a/src/views/system/dataMigration/components/import/components/RoleMenuAuth.vue b/src/views/system/dataMigration/components/import/components/RoleMenuAuth.vue
new file mode 100644
index 0000000..1ab19da
--- /dev/null
+++ b/src/views/system/dataMigration/components/import/components/RoleMenuAuth.vue
@@ -0,0 +1,124 @@
+
+
+
+
diff --git a/src/views/system/dataMigration/components/import/components/SystemConfig.vue b/src/views/system/dataMigration/components/import/components/SystemConfig.vue
new file mode 100644
index 0000000..be6123e
--- /dev/null
+++ b/src/views/system/dataMigration/components/import/components/SystemConfig.vue
@@ -0,0 +1,88 @@
+
+
+
+
diff --git a/src/views/system/dataMigration/components/import/components/Tenant.vue b/src/views/system/dataMigration/components/import/components/Tenant.vue
new file mode 100644
index 0000000..d3774c3
--- /dev/null
+++ b/src/views/system/dataMigration/components/import/components/Tenant.vue
@@ -0,0 +1,81 @@
+
+
+
+
diff --git a/src/views/system/dataMigration/components/import/components/TenantAuthorize.vue b/src/views/system/dataMigration/components/import/components/TenantAuthorize.vue
new file mode 100644
index 0000000..a4c7ea4
--- /dev/null
+++ b/src/views/system/dataMigration/components/import/components/TenantAuthorize.vue
@@ -0,0 +1,78 @@
+
+
+
+ {{ t('租户菜单授权') }}
+
+
+
+
+ {{ title }} 【{{ systemName }}】
+ {{ title }}
+
+
+
+
+
+
diff --git a/src/views/system/dataMigration/components/import/components/UserGroup.vue b/src/views/system/dataMigration/components/import/components/UserGroup.vue
new file mode 100644
index 0000000..9e90fb6
--- /dev/null
+++ b/src/views/system/dataMigration/components/import/components/UserGroup.vue
@@ -0,0 +1,93 @@
+
+
+
+
diff --git a/src/views/system/dataMigration/components/import/components/Workflow.vue b/src/views/system/dataMigration/components/import/components/Workflow.vue
new file mode 100644
index 0000000..92b09ba
--- /dev/null
+++ b/src/views/system/dataMigration/components/import/components/Workflow.vue
@@ -0,0 +1,79 @@
+
+
+
+
diff --git a/src/views/system/dataMigration/components/import/index.vue b/src/views/system/dataMigration/components/import/index.vue
index b6b195b..ee320a3 100644
--- a/src/views/system/dataMigration/components/import/index.vue
+++ b/src/views/system/dataMigration/components/import/index.vue
@@ -1,13 +1,16 @@
-
查看导入日志
+
-
- 租户模式导入
-
-
+
+
+ 选择文件
+
日志时间:{{item.time}}
-
导入模式:{{item.importType=='overrideMode'?'覆盖模式':'租户模式'}}
+
导入模式:{{item.importType=='overrideMode'?'覆盖模式':'新增模式'}}
执行结果:
{{item.result=='success'?'成功':'失败'}}
-
租户编码:{{item.tenantCode}}
+
查看日志详情
@@ -44,17 +47,40 @@
+
+
diff --git a/src/views/system/tenant/index.vue b/src/views/system/tenant/index.vue
index a129165..e5040c0 100644
--- a/src/views/system/tenant/index.vue
+++ b/src/views/system/tenant/index.vue
@@ -8,6 +8,14 @@
{{ t('功能授权') }}
+
+ {{ t('导出租户') }}
+
+
+
+ {{ t('导入租户') }}
+
+
@@ -43,10 +51,14 @@
import { PageWrapper } from '/@/components/Page';
import TenantDrawer from './components/TenantDrawer.vue';
import AuthModal from './components/AuthModal.vue';
+ import ImportModal from './components/ImportModal.vue';
import { Switch } from 'ant-design-vue';
import { useMessage } from '/@/hooks/web/useMessage';
- import { deleteTenant, getTenantPageList, updateTenantStatus } from '/@/api/system/tenant';
+ import { deleteTenant, getTenantPageList, updateTenantStatus,exportTenant } from '/@/api/system/tenant';
import { useI18n } from '/@/hooks/web/useI18n';
+ import { downloadByData } from '/@/utils/file/download';
+ import { dateUtil } from '/@/utils/dateUtil';
+
const { t } = useI18n();
const columns: BasicColumn[] = [
{
@@ -144,7 +156,7 @@
const { notification } = useMessage();
const [registerDrawer, { openModal }] = useModal();
const [registerModal, { openModal: openAuthModal }] = useModal();
- const [registerTable, { reload, getSelectRowKeys }] = useTable({
+ const [registerTable, { reload, getSelectRowKeys,getSelectRows }] = useTable({
title: t('租户列表'),
api: getTenantPageList,
rowKey: 'id',
@@ -199,6 +211,23 @@
});
}
+ async function handleExport(){
+ if (getSelectRows().length === 0) {
+ notification.warning({
+ message: t('警告'),
+ description: t('必须选中一行!'),
+ });
+ return;
+ }
+ let selectedRow=getSelectRows()[0];
+ let fileName="tenant_"+selectedRow.code+'_'+dateUtil(new Date()).format('YYYY-MM-DD_HH_mm_ss');
+ const res = await exportTenant({id:selectedRow.id});
+ downloadByData(
+ res.data,
+ fileName+".json"
+ );
+ }
+
function handleEdit(record: Recordable) {
openModal(true, {
record,
diff --git a/src/views/system/user/components/RoleModalV2.vue b/src/views/system/user/components/RoleModalV2.vue
new file mode 100644
index 0000000..42b3cc2
--- /dev/null
+++ b/src/views/system/user/components/RoleModalV2.vue
@@ -0,0 +1,288 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 清空
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/system/user/components/UserModal.vue b/src/views/system/user/components/UserModal.vue
index c6438ef..abe2d08 100644
--- a/src/views/system/user/components/UserModal.vue
+++ b/src/views/system/user/components/UserModal.vue
@@ -107,26 +107,43 @@
import { useMessage } from '/@/hooks/web/useMessage';
import { useI18n } from '/@/hooks/web/useI18n';
import { getDepartmentTree } from '/@/api/system/department';
- import { addUser, getUser, updateUser } from '/@/api/system/user';
+ import { addUser, getUser, updateUser, getUserNamePrefix } from '/@/api/system/user';
import Icon from '/@/components/Icon/index';
import { testPwdState } from '/@/utils/event/design';
import { PlusOutlined } from '@ant-design/icons-vue';
- import RoleModal from './RoleModal.vue';
+ import RoleModal from './RoleModalV2.vue';
import PostModal from './PostModal.vue';
import OrganizationModal from './OrganizationModal.vue';
+ import { debounce } from 'lodash-es';
const { t } = useI18n();
const accountFormSchema: FormSchema[] = [
- {
- field: 'userName',
- label: '账号',
- component: 'Input',
- required: true,
- colProps: { span: 12 },
- componentProps: {
- placeholder: '请输入账号',
+ {
+ field: 'userName',
+ label: '账号',
+ component: 'Input',
+ colProps: { span: 12 },
+ rules: [
+ {
+ required: true,
+ validator: async (_, value) => {
+ let values = getFieldsValue1();
+ let prefix = await getUserNamePrefix();
+ if (!value) {
+ return Promise.reject('请输入账号');
+ }
+ if (values?.isSelfBuild === 'Y' && !value.startsWith(prefix)) {
+ return Promise.reject('自建用户账号必须带有前缀:' + prefix);
+ }
+ return Promise.resolve();
+ },
+ },
+ ],
+ required: true,
+ componentProps: {
+ placeholder: '请输入账号',
+ },
},
- },
{
field: 'name',
label: '用户姓名',
@@ -285,6 +302,51 @@
unCheckedValue: 'N',
}
},
+ {
+ field: 'isSelfBuild',
+ label: '自建用户',
+ component: 'Switch',
+ colProps: { span: 12 },
+ helpComponentProps: { maxWidth: '400px' },
+ componentProps: ({ formModel, formActionType }) => {
+ return {
+ checkedValue: 'Y',
+ unCheckedValue: 'N',
+ onChange: debounce((e: ChangeEvent) => {
+ //fieldInt组件会根据fieldString的组件值 变化 +2 //参考view/code/demo2/data/index.ts
+ if (formModel.isSelfBuild === 'N') {
+ formModel.isPushMQ = 'N';
+ }
+ }, 500),
+ }
+
+ }
+ },
+ {
+ field: 'isPushMQ',
+ label: '推送mq',
+ component: 'Switch',
+ colProps: { span: 12 },
+ helpMessage: '开启推送mq,系统会将自建用户推送到移动办公',
+ helpComponentProps: { maxWidth: '400px' },
+ componentProps: {
+ checkedValue: 'Y',
+ unCheckedValue: 'N',
+ },
+ },
+ {
+ field: 'validityTime',
+ label: '有效期',
+ colProps: {
+ span: 12,
+ },
+ component: 'RangePicker',
+ componentProps: {
+ format: 'YYYY-MM-DD HH:mm',
+ style: { width: '100%' },
+ getPopupContainer: () => document.body,
+ }
+ },
{
label: t('备注'),
field: 'remark',
@@ -536,6 +598,7 @@
registerForm1,
{
setFieldsValue: setFieldsValue1,
+ getFieldsValue: getFieldsValue1,
updateSchema: updateSchema1,
resetFields: resetFields1,
validate: validate1,
@@ -624,6 +687,16 @@
rowId.value = data.id;
const record = await getUser(data.id);
const departmentIds = record.departmentIds?.split(',')||[];
+ let validityTime = []
+ if (record.validityStartTime) {
+ validityTime[0] = record.validityStartTime;
+ }
+ if (record.validityEndTime) {
+ validityTime[1] = record.validityEndTime;
+ }
+ if (validityTime.length > 0) {
+ record.validityTime = validityTime;
+ }
setFieldsValue1({
...record,
departmentIds,
@@ -640,6 +713,15 @@
setTableData2(postDatasource.value);
setTableData3(orgDatasource.value);
setTableData4(deptDatasource.value);
+ } else {
+ //新增
+ setFieldsValue1({
+ isSync: 'N',
+ isMain: 'N',
+ isSelfBuild: 'N',
+ isPushMQ: 'N',
+ });
+ getUserNamePrefixName();
}
const treeData = await getDepartmentTree();
@@ -702,6 +784,19 @@
orgs: deptDatasource.value,
});
};
+
+ async function getUserNamePrefixName() {
+ let userNamePrefix = await getUserNamePrefix();
+ setFieldsValue1({
+ userName: userNamePrefix
+ });
+ // updateSchema1([{
+ // field: 'userName',
+ // defaultValue: userNamePrefix?.value,
+ // componentProps: { addonBefore: userNamePrefix?.value }
+ // }])
+ }
+
const handleDelete = (index, type, record) => {
// 映射不同类型对应的数据源
const dataSources = {
@@ -765,7 +860,10 @@
departments
};
setModalProps({ confirmLoading: true });
-
+ if (data.validityTime) {
+ data.validityStartTime = data.validityTime[0];
+ data.validityEndTime = data.validityTime[1];
+ }
// TODO custom api
if (!unref(isUpdate)) {
//false 新增
diff --git a/src/views/workflow/design/bpmn/components/ApproveRules.vue b/src/views/workflow/design/bpmn/components/ApproveRules.vue
index 818f3a7..d22ac6a 100644
--- a/src/views/workflow/design/bpmn/components/ApproveRules.vue
+++ b/src/views/workflow/design/bpmn/components/ApproveRules.vue
@@ -10,6 +10,19 @@
@change="changeAutoAgreeRule"
/>
+
+
+
-
+
-
+
-
+
-
+
+
+
+
diff --git a/src/views/workflow/design/bpmn/components/ApproveUserRules.vue b/src/views/workflow/design/bpmn/components/ApproveUserRules.vue
index 6cd0876..86a5991 100644
--- a/src/views/workflow/design/bpmn/components/ApproveUserRules.vue
+++ b/src/views/workflow/design/bpmn/components/ApproveUserRules.vue
@@ -10,6 +10,19 @@
@change="changeAutoAgreeRule"
/>
+
+
+
-
+
-
+
-
+
-
+
import FormItem from '/@bpmn/layout/FormItem.vue';
+ import { computed } from 'vue';
import { AutoAgreeRule, DesignatedApprover, NoHandler } from '/@/enums/workflowEnum';
import { useI18n } from '/@/hooks/web/useI18n';
const { t } = useI18n();
const emits = defineEmits([
'update:autoAgreeRule',
+ 'update:autoAgreeMsg',
'update:noHandler',
'update:isPrevChooseNext',
'update:provisionalApprover',
@@ -83,6 +104,10 @@
]);
const props = defineProps({
autoAgreeRule: Array,
+ autoAgreeMsg: {
+ type: String,
+ default: '',
+ },
noHandler: Number || String || Boolean,
isPrevChooseNext: Number || String || Boolean,
isChooseMulti: {
@@ -110,6 +135,10 @@
default: null,
},
});
+ // 锁定选择框
+ const disableSelect = computed(() => {
+ return props.isPrevChooseNext == DesignatedApprover.NOT_SPECIFIED;
+ });
// 自动同意规则
const autoAgreeRuleOptions = [
@@ -132,9 +161,15 @@
// 选择了自动同意规则后,无处理人 只能由 超级管理员处理 且 指定审批人 只能 不指定审批人
emits('update:noHandler', NoHandler.ADMIN);
emits('update:isPrevChooseNext', DesignatedApprover.NOT_SPECIFIED);
+ emits('update:isChooseMulti', true);
+ emits('update:isChooseAll', true);
+ emits('update:isReadOnly', true);
}
emits('update:autoAgreeRule', autoAgreeRule);
}
+ function changeAutoAgreeMsg(val) {
+ emits('update:autoAgreeMsg', val.target.value);
+ }
// 无处理人
const noHandlerOptions = [
{
@@ -169,6 +204,11 @@
if (val == DesignatedApprover.PREVIOUS_NODE) {
// 指定审批人 选择了 由上一节点审批人指定;那么自动同意规则必须为空
emits('update:autoAgreeRule', []);
+ } else if (val == DesignatedApprover.NOT_SPECIFIED) {
+ // 指定审批人 选择了 不指定审批人;多选 false 全选 true 只读 true 都必须关闭
+ emits('update:isChooseMulti', true);
+ emits('update:isChooseAll', true);
+ emits('update:isReadOnly', true);
}
}
// 临时审批人
diff --git a/src/views/workflow/design/bpmn/components/RejectRules.vue b/src/views/workflow/design/bpmn/components/RejectRules.vue
new file mode 100644
index 0000000..661c2bd
--- /dev/null
+++ b/src/views/workflow/design/bpmn/components/RejectRules.vue
@@ -0,0 +1,295 @@
+
+
+ 其他节点退回到当前节点时
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 当前节点退回到其他节点时
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 退回时
+
+
+
+
+
+
+
+
+
+ 退回后的节点重新提交时
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/workflow/design/bpmn/config/property.ts b/src/views/workflow/design/bpmn/config/property.ts
index 43f915c..976be76 100644
--- a/src/views/workflow/design/bpmn/config/property.ts
+++ b/src/views/workflow/design/bpmn/config/property.ts
@@ -4,6 +4,7 @@ import { formPermissionList } from '/@bpmn/config/formPermission';
import { InfoId, InfoItem, InfoType } from '/@/model/workflow/bpmnConfig';
import { ChildNodeConfig, ProcessConfig } from '/@/model/workflow/workflowConfig';
import { FormConfigItem } from '/@/model/workflow/formSetting';
+import { DesignatedApprover } from '/@/enums/workflowEnum';
import {
processConfig,
defaultProperties,
@@ -73,8 +74,18 @@ export const initProperties = (id: InfoId, type: InfoType, name: string, parentI
}
if (type == BpmnNodeKey.USER) {
properties.autoAgreeRule = processInfo.autoAgreeRule;
+ properties.autoAgreeMsg = processInfo.autoAgreeMsg;
properties.noHandler = processInfo.noHandler;
properties.isPrevChooseNext = processInfo.isPrevChooseNext;
+ properties.isChooseMulti = processInfo.isChooseMulti;
+ properties.isChooseAll = processInfo.isChooseAll;
+ properties.isReadOnly = processInfo.isReadOnly;
+ // 适配旧数据,图级配置了不指定审批人,但是选择框没变更,强制赋值为true
+ if (processInfo.isPrevChooseNext == DesignatedApprover.NOT_SPECIFIED) {
+ properties.isChooseMulti = true;
+ properties.isChooseAll = true;
+ properties.isReadOnly = true;
+ }
properties.minApprover = processInfo.minApprover;
properties.maxApprover = processInfo.maxApprover;
properties.maxCirculate = processInfo.maxCirculate;
diff --git a/src/views/workflow/design/bpmn/config/propertyConfig.ts b/src/views/workflow/design/bpmn/config/propertyConfig.ts
index 70506fc..bf7632c 100644
--- a/src/views/workflow/design/bpmn/config/propertyConfig.ts
+++ b/src/views/workflow/design/bpmn/config/propertyConfig.ts
@@ -6,6 +6,7 @@ import {
ButtonType,
MultipleInstancesType,
DesignatedApprover,
+ RejectApprover,
ElectronicSignatureVerification,
FormType,
InstanceCompletionConditions,
@@ -46,11 +47,13 @@ export const processConfig: ProcessConfig = {
nameRule: '', //命名规则
nameRuleConfigs: [], // 命名规则列表
autoAgreeRule: [], //自动同意规则
+ autoAgreeMsg: '', //自动审批意见
minApprover: '', //最少审批人
maxApprover: '', //最多审批人
maxCirculate: '', //最多传阅人
minCirculate: '', //最少传阅人
- isPrevChooseNext: DesignatedApprover.NOT_SPECIFIED, //是否上一节点审批人指定下一节点审批人
+ globalWorkflowDataUpdate: '', //回写流程状态脚本
+ isPrevChooseNext: DesignatedApprover.PREVIOUS_NODE, //是否上一节点审批人指定下一节点审批人
noHandler: NoHandler.ADMIN, //无对应处理人
appShow: false, //移动端是否显示
defaultFormList: [], //默认表单
@@ -134,7 +137,7 @@ const EndProperties: EndEventConfig = {
endEventConfigs: [],
};
// 用户节点默认属性
-const UserProperties: UserTaskConfig = {
+const UserProperties = {
id: '', //节点id
type: BpmnNodeKey.USER, //节点类型
currentProgress: undefined, //进度
@@ -146,12 +149,23 @@ const UserProperties: UserTaskConfig = {
approverConfigs: [], //审批人
circulateConfigs: [], //传阅人
autoAgreeRule: [], //自动同意规则
- isPrevChooseNext: DesignatedApprover.NOT_SPECIFIED, //是否上一节点审批人指定下一节点审批人
+ autoAgreeMsg: '', //自动审批意见
+ isPrevChooseNext: DesignatedApprover.PREVIOUS_NODE, //是否上一节点审批人指定下一节点审批人
provisionalApprover: false, //临时审批人
provisionalDistributor: false, //临时传阅人
isChooseMulti: true, //是否多选
isChooseAll: false, //是否全选
isReadOnly: false, //是否只读
+ rejectToPerson: '', //退回到候选人/审批人
+ rejectIsChooseAll: false, //退回是否全选
+ rejectIsChooseMulti: true, //退回是否多选
+ rejectIsReadOnly: false, //退回是否只读
+ forbidRejectToNodes: [], //禁止退回到节点
+ rejectToLastNodeOnly: false,//只能退回到上个节点
+ forbidRejectByOtherNodes: false, //不能被其他节点退回到
+ commitToRejectNode:false, //允许直接提交到退回前节点
+ rejectNotToStorey: [], //禁止退回到子流程
+ rejectAllSubProcess:true, //退回所有子流程
minApprover: '', //最少审批人
maxApprover: '', //最多审批人
maxCirculate: '', //最多传阅人
@@ -166,20 +180,30 @@ const UserProperties: UserTaskConfig = {
countersignList: [],
}, //会签
buttonConfigs: [
+ {
+ buttonType: ButtonType.DEFAULT, //按钮类型
+ buttonName: t('保存'), //按钮名称
+ buttonCode: ApproveCode.DRAFT, //按钮编码
+ approveType: ApproveType.DRAFT, //
+ checked: true, //选中
+ index: 1
+ },
{
buttonType: ButtonType.DEFAULT, //按钮类型
buttonName: t('同意'), //按钮名称
buttonCode: ApproveCode.AGREE, //按钮编码
approveType: ApproveType.AGREE, //
checked: true, //选中
+ index: 2
},
- {
- buttonType: ButtonType.DEFAULT, //按钮类型
- buttonName: t('拒绝'), //按钮名称
- buttonCode: ApproveCode.DISAGREE, //按钮编码
- approveType: ApproveType.DISAGREE, //
- checked: true, //选中
- },
+ // 现在没有拒绝选项
+ // {
+ // buttonType: ButtonType.DEFAULT, //按钮类型
+ // buttonName: t('不同意'), //按钮名称
+ // buttonCode: ApproveCode.DISAGREE, //按钮编码
+ // approveType: ApproveType.DISAGREE, //
+ // checked: false, //选中
+ // },
{
buttonType: ButtonType.DEFAULT, //按钮类型
buttonName: t('驳回'), //按钮名称
@@ -187,6 +211,33 @@ const UserProperties: UserTaskConfig = {
approveType: ApproveType.REJECT, //
checked: true, //选中
buttonOpera: RejectType.ALL,
+ index: 3
+ },
+ {
+ buttonType: ButtonType.DEFAULT, //按钮类型
+ buttonName: t('转办'), //按钮名称
+ buttonCode: ApproveCode.TRANSFER, //按钮编码
+ approveType: ApproveType.TRANSFER, //
+ checked: true, //选中
+ buttonGroup: '更多',
+ index: 4
+ },
+ // 默认不启用会签
+ // {
+ // buttonType: ButtonType.DEFAULT, //按钮类型
+ // buttonName: t('会签'), //按钮名称
+ // buttonCode: ApproveCode.ADDSTEP, //按钮编码
+ // approveType: ApproveType.ADDSTEP, //
+ // checked: true, //选中
+ // },
+ {
+ buttonType: ButtonType.DEFAULT, //按钮类型
+ buttonName: t('撤回'), //按钮名称
+ buttonCode: ApproveCode.DRAWBACK, //按钮编码
+ approveType: ApproveType.DRAWBACK, //
+ checked: true, //选中
+ buttonGroup: '',
+ index: 6
},
{
buttonType: ButtonType.DEFAULT, //按钮类型
@@ -194,6 +245,26 @@ const UserProperties: UserTaskConfig = {
buttonCode: ApproveCode.FINISH, //按钮编码
approveType: ApproveType.FINISH, //
checked: true, //选中
+ buttonGroup: '更多',
+ index: 7
+ },
+ {
+ buttonType: ButtonType.DEFAULT, //按钮类型
+ buttonName: t('查看流程图'), //按钮名称
+ buttonCode: ApproveCode.FLOWBPMN, //按钮编码
+ approveType: ApproveType.FLOWBPMN, //
+ checked: true, //选中
+ buttonGroup: '更多',
+ index: 8
+ },
+ {
+ buttonType: ButtonType.DEFAULT, //按钮类型
+ buttonName: t('查看流程记录'), //按钮名称
+ buttonCode: ApproveCode.FLOWRECORD, //按钮编码
+ approveType: ApproveType.FLOWRECORD, //
+ checked: true, //选中
+ buttonGroup: '更多',
+ index: 9
},
], //按钮配置
opinionConfig: {
@@ -269,7 +340,7 @@ const SubProcessProperties: SubProcessConfig= {
name: '', //节点名称
parentId: '', //父节点(流程id)
remark: '', //节点描述
- subProcessType: SubProcessType.MULTIPLE, // 调用类型
+ subProcessType: SubProcessType.SINGLE, // 调用类型
finishType: FinishType.ALL, //完成条件
percentOf: undefined, //百分比数值
executionType: ExecutionType.PARALLEL, //执行类型
diff --git a/src/views/workflow/design/bpmn/hooks/useStateFormInfo.ts b/src/views/workflow/design/bpmn/hooks/useStateFormInfo.ts
index d678600..3e59209 100644
--- a/src/views/workflow/design/bpmn/hooks/useStateFormInfo.ts
+++ b/src/views/workflow/design/bpmn/hooks/useStateFormInfo.ts
@@ -9,10 +9,31 @@ export default function () {
const { info } = storeToRefs(store);
const showPanel = ref(false);
const formInfo = ref();
+
+ const processNodesInfo = ref();
+ const processStoreyInfo = ref([
+ {
+ id : 'Main_Storey',
+ name: '主干流程',
+ type: 'bpmn:Main_Storey',
+ },
+ ]);
onMounted(() => {
if (infoId) {
formInfo.value = info.value.get(infoId);
+ console.log("info.value",info.value);
+ processNodesInfo.value = [];
+ //遍历info.value 是Map,把type含有"UserTask"字符的节点,放到processNodesInfo中
+ info.value.forEach((entity,key) => {
+ if(entity.type.indexOf("UserTask") != -1){
+ processNodesInfo.value.push(entity);
+ }
+ if(entity.type.indexOf("SubProcess") != -1 || entity.type.indexOf("CallActivity") != -1){
+ processStoreyInfo.value.push(entity);
+ }
+ });
+ // console.log("processNodesInfo.value",processNodesInfo.value);
showPanel.value = true;
}
});
@@ -28,5 +49,7 @@ export default function () {
nodeName,
showPanel,
isMainStartNode,
+ processNodesInfo,
+ processStoreyInfo
};
}
diff --git a/src/views/workflow/design/bpmn/layout/FormItem.vue b/src/views/workflow/design/bpmn/layout/FormItem.vue
index cdd52fa..f1b38ae 100644
--- a/src/views/workflow/design/bpmn/layout/FormItem.vue
+++ b/src/views/workflow/design/bpmn/layout/FormItem.vue
@@ -33,7 +33,7 @@
}
.form-item-label {
- flex-basis: 100px;
+ flex-basis: 120px;
line-height: 2;
display: flex;
align-items: center;
diff --git a/src/views/workflow/design/bpmn/panel/Start.vue b/src/views/workflow/design/bpmn/panel/Start.vue
index c34935d..52d7c2b 100644
--- a/src/views/workflow/design/bpmn/panel/Start.vue
+++ b/src/views/workflow/design/bpmn/panel/Start.vue
@@ -12,6 +12,7 @@
v-model:value="formInfo.subProcessInitiator"
:placeholder="t('请选择发起人')"
style="width: 100%"
+ allow-clear
>
{{ item.name }}
diff --git a/src/views/workflow/design/bpmn/panel/User.vue b/src/views/workflow/design/bpmn/panel/User.vue
index caedc75..c182475 100644
--- a/src/views/workflow/design/bpmn/panel/User.vue
+++ b/src/views/workflow/design/bpmn/panel/User.vue
@@ -25,6 +25,7 @@
+
+
+
@@ -70,6 +87,7 @@
import MemberTable from '/@bpmn/components/member/MemberTable.vue';
import MemberUserTable from '/@bpmn/components/member/MemberUserTable.vue';
import ApproveUserRules from '/@bpmn/components/ApproveUserRules.vue';
+ import RejectRules from '/@bpmn/components/RejectRules.vue';
import Countersign from './user/Countersign.vue';
import ButtonSetting from './user/ButtonSetting.vue';
import OpinionConfig from './user/OpinionConfig.vue';
@@ -79,7 +97,7 @@
import { CountersignMemberConfig } from '/@/model/workflow/memberSetting';
import { useI18n } from '/@/hooks/web/useI18n';
const { t } = useI18n();
- const { showPanel, formInfo } = useStateFormInfo();
+ const { showPanel, formInfo, processNodesInfo, processStoreyInfo } = useStateFormInfo();
watchEffect(() => {
if (formInfo.value?.approverConfigs) {
diff --git a/src/views/workflow/design/bpmn/panel/process/basic/Index.vue b/src/views/workflow/design/bpmn/panel/process/basic/Index.vue
index 7d534de..673b1a0 100644
--- a/src/views/workflow/design/bpmn/panel/process/basic/Index.vue
+++ b/src/views/workflow/design/bpmn/panel/process/basic/Index.vue
@@ -26,6 +26,7 @@
diff --git a/src/views/workflow/design/bpmn/panel/user/ButtonSetting.vue b/src/views/workflow/design/bpmn/panel/user/ButtonSetting.vue
index c20cdb7..9b66139 100644
--- a/src/views/workflow/design/bpmn/panel/user/ButtonSetting.vue
+++ b/src/views/workflow/design/bpmn/panel/user/ButtonSetting.vue
@@ -11,6 +11,8 @@
{{ t('选择') }}
{{ t('按钮名称') }}
{{ t('按钮编码') }}
+ {{ t('按钮组') }}
+ {{ t('排序') }}
{{ t('使用条件') }}