浏览代码

Merge branch 'master' of gitee.com:yudaocode/yudao-ui-admin-vue3 into master

Signed-off-by: 周建 <1348660141@qq.com>
周建 2 年之前
父节点
当前提交
b5d45e5444
共有 35 个文件被更改,包括 151 次插入106 次删除
  1. 3 3
      package.json
  2. 3 0
      src/components/Search/src/Search.vue
  3. 1 1
      src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue
  4. 4 3
      src/components/bpmnProcessDesigner/package/palette/ProcessPalette.vue
  5. 9 6
      src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue
  6. 4 3
      src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue
  7. 12 11
      src/components/bpmnProcessDesigner/package/penal/flow-condition/FlowCondition.vue
  8. 14 13
      src/components/bpmnProcessDesigner/package/penal/form/ElementForm.vue
  9. 2 1
      src/components/bpmnProcessDesigner/package/penal/listeners/ElementListeners.vue
  10. 3 2
      src/components/bpmnProcessDesigner/package/penal/listeners/UserTaskListeners.vue
  11. 18 17
      src/components/bpmnProcessDesigner/package/penal/multi-instance/ElementMultiInstance.vue
  12. 5 4
      src/components/bpmnProcessDesigner/package/penal/other/ElementOtherConfig.vue
  13. 8 7
      src/components/bpmnProcessDesigner/package/penal/properties/ElementProperties.vue
  14. 4 3
      src/components/bpmnProcessDesigner/package/penal/signal-message/SignalAndMessage.vue
  15. 3 2
      src/components/bpmnProcessDesigner/package/penal/task/ElementTask.vue
  16. 7 6
      src/components/bpmnProcessDesigner/package/penal/task/task-components/ReceiveTask.vue
  17. 4 2
      src/components/bpmnProcessDesigner/package/penal/task/task-components/ScriptTask.vue
  18. 4 2
      src/components/bpmnProcessDesigner/package/penal/task/task-components/UserTask.vue
  19. 9 8
      src/components/bpmnProcessDesigner/package/utils.ts
  20. 1 0
      src/hooks/web/useI18n.ts
  21. 2 0
      src/hooks/web/useTimeAgo.ts
  22. 2 2
      src/store/modules/tagsView.ts
  23. 5 1
      src/types/auto-components.d.ts
  24. 4 1
      src/types/auto-imports.d.ts
  25. 5 3
      src/utils/routerHelper.ts
  26. 1 1
      src/views/bpm/model/modelEditor.vue
  27. 1 1
      src/views/bpm/processInstance/detail.vue
  28. 1 0
      src/views/bpm/task/done/index.vue
  29. 1 0
      src/views/bpm/task/todo/index.vue
  30. 1 1
      src/views/infra/server/index.vue
  31. 1 1
      src/views/report/jmreport/index.vue
  32. 6 0
      src/views/system/dict/index.vue
  33. 1 0
      src/views/system/mail/log/index.vue
  34. 1 0
      src/views/system/notify/message/index.vue
  35. 1 1
      src/views/system/notify/my/index.vue

+ 3 - 3
package.json

@@ -8,9 +8,9 @@
     "i": "pnpm install",
     "dev": "vite --mode base",
     "ts:check": "vue-tsc --noEmit",
-    "build:pro": "vite build --mode pro",
-    "build:dev": "vite build --mode dev",
-    "build:test": "npm run ts:check && vite build --mode test",
+    "build:pro": "node --max_old_space_size=8000 ./node_modules/vite/bin/vite.js build --mode pro",
+    "build:dev": "node --max_old_space_size=8000 ./node_modules/vite/bin/vite.js build --mode dev",
+    "build:test": "node --max_old_space_size=8000 ./node_modules/vite/bin/vite.js build --mode test",
     "serve:pro": "vite preview --mode pro",
     "serve:dev": "vite preview --mode dev",
     "serve:test": "vite preview --mode test",

+ 3 - 0
src/components/Search/src/Search.vue

@@ -9,6 +9,8 @@ import { FormSchema } from '@/types/form'
 
 const { t } = useI18n()
 
+const slots = useSlots()
+
 const props = defineProps({
   // 生成Form的布局结构数组
   schema: {
@@ -123,6 +125,7 @@ const setVisible = () => {
         </ElButton>
       </div>
     </template>
+    <template v-for="(slot, name) in slots" #[name]><slot :name="name"></slot></template>
   </Form>
 
   <template v-if="layout === 'bottom'">

+ 1 - 1
src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue

@@ -331,7 +331,7 @@ const additionalModules = computed(() => {
 
   // 插入用户自定义扩展模块
   if (Object.prototype.toString.call(props.additionalModel) == '[object Array]') {
-    Modules.push(...props.additionalModel)
+    Modules.push(...(props.additionalModel as any[]))
   } else {
     props.additionalModel && Modules.push(props.additionalModel)
   }

+ 4 - 3
src/components/bpmnProcessDesigner/package/palette/ProcessPalette.vue

@@ -8,9 +8,10 @@
 <script setup lang="ts" name="MyProcessPalette">
 import { assign } from 'min-dash'
 
-const addTask = (event, options = {}) => {
-  const ElementFactory = window.bpmnInstances.elementFactory
-  const create = window.bpmnInstances.modeler.get('create')
+const bpmnInstances = () => (window as any).bpmnInstances
+const addTask = (event, options: any = {}) => {
+  const ElementFactory = bpmnInstances().elementFactory
+  const create = bpmnInstances().modeler.get('create')
 
   console.log(ElementFactory, create)
 

+ 9 - 6
src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue

@@ -109,6 +109,7 @@ const bpmnElement = ref()
 const timer = ref()
 provide('prefix', props.prefix)
 provide('width', props.width)
+const bpmnInstances = () => (window as any)?.bpmnInstances
 const initModels = () => {
   // console.log(props, 'props')
   // console.log(props.bpmnModeler, 'sakdjjaskdsajdkasdjkadsjk')
@@ -121,7 +122,8 @@ const initModels = () => {
   }
   if (timer.value) {
     clearTimeout(timer.value)
-    window.bpmnInstances = {
+    const w = window as any
+    w.bpmnInstances = {
       modeler: props.bpmnModeler,
       modeling: props.bpmnModeler.get('modeling'),
       moddle: props.bpmnModeler.get('moddle'),
@@ -134,7 +136,7 @@ const initModels = () => {
     }
   }
 
-  console.log(window.bpmnInstances, 'window.bpmnInstances')
+  console.log(bpmnInstances(), 'window.bpmnInstances')
   getActiveElement()
   // })
 }
@@ -161,8 +163,8 @@ const initFormOnChanged = (element) => {
   let activatedElement = element
   if (!activatedElement) {
     activatedElement =
-      window.bpmnInstances.elementRegistry.find((el) => el.type === 'bpmn:Process') ??
-      window.bpmnInstances.elementRegistry.find((el) => el.type === 'bpmn:Collaboration')
+      bpmnInstances().elementRegistry.find((el) => el.type === 'bpmn:Process') ??
+      bpmnInstances().elementRegistry.find((el) => el.type === 'bpmn:Collaboration')
   }
   if (!activatedElement) return
   console.log(`
@@ -173,7 +175,7 @@ const initFormOnChanged = (element) => {
               ----------
               `)
   console.log('businessObject: ', activatedElement.businessObject)
-  window.bpmnInstances.bpmnElement = activatedElement
+  bpmnInstances().bpmnElement = activatedElement
   bpmnElement.value = activatedElement
   elementId.value = activatedElement.id
   elementType.value = activatedElement.type.split(':')[1] || ''
@@ -191,7 +193,8 @@ onMounted(() => {
   }, 100)
 })
 onBeforeUnmount(() => {
-  window.bpmnInstances = null
+  const w = window as any
+  w.bpmnInstances = null
   console.log(props, 'props1')
   console.log(props.bpmnModeler, 'props.bpmnModeler1')
 })

+ 4 - 3
src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue

@@ -59,11 +59,12 @@ const rules = reactive({
   name: [{ required: true, message: '流程名称不能为空', trigger: 'blur' }]
 })
 
+const bpmnInstances = () => (window as any)?.bpmnInstances
 const resetBaseInfo = () => {
   console.log(window, 'window')
   console.log(bpmnElement.value, 'bpmnElement')
 
-  bpmnElement.value = window?.bpmnInstances?.bpmnElement
+  bpmnElement.value = bpmnInstances()?.bpmnElement
   console.log(bpmnElement.value, 'resetBaseInfo11111111111')
   elementBaseInfo.value = bpmnElement.value.businessObject
   needProps.value['type'] = bpmnElement.value.businessObject.$type
@@ -125,13 +126,13 @@ const updateBaseInfo = (key) => {
     console.log(window, 'window')
     console.log(bpmnElement.value, 'bpmnElement')
     console.log(toRaw(bpmnElement.value), 'bpmnElement')
-    window.bpmnInstances.modeling.updateProperties(toRaw(bpmnElement.value), {
+    bpmnInstances().modeling.updateProperties(toRaw(bpmnElement.value), {
       id: elementBaseInfo.value[key],
       di: { id: `${elementBaseInfo.value[key]}_di` }
     })
   } else {
     console.log(attrObj, 'attrObj')
-    window.bpmnInstances.modeling.updateProperties(toRaw(bpmnElement.value), attrObj)
+    bpmnInstances().modeling.updateProperties(toRaw(bpmnElement.value), attrObj)
   }
 }
 onMounted(() => {

+ 12 - 11
src/components/bpmnProcessDesigner/package/penal/flow-condition/FlowCondition.vue

@@ -72,8 +72,9 @@ const bpmnElement = ref()
 const bpmnElementSource = ref()
 const bpmnElementSourceRef = ref()
 const flowConditionRef = ref()
+const bpmnInstances = () => (window as any)?.bpmnInstances
 const resetFlowCondition = () => {
-  bpmnElement.value = window.bpmnInstances.bpmnElement
+  bpmnElement.value = bpmnInstances().bpmnElement
   bpmnElementSource.value = bpmnElement.value.source
   bpmnElementSourceRef.value = bpmnElement.value.businessObject.sourceRef
   if (
@@ -114,18 +115,18 @@ const resetFlowCondition = () => {
 const updateFlowType = (flowType) => {
   // 正常条件类
   if (flowType === 'condition') {
-    flowConditionRef.value = window.bpmnInstances.moddle.create('bpmn:FormalExpression')
-    window.bpmnInstances.modeling.updateProperties(toRaw(bpmnElement.value), {
+    flowConditionRef.value = bpmnInstances().moddle.create('bpmn:FormalExpression')
+    bpmnInstances().modeling.updateProperties(toRaw(bpmnElement.value), {
       conditionExpression: flowConditionRef.value
     })
     return
   }
   // 默认路径
   if (flowType === 'default') {
-    window.bpmnInstances.modeling.updateProperties(toRaw(bpmnElement.value), {
+    bpmnInstances().modeling.updateProperties(toRaw(bpmnElement.value), {
       conditionExpression: null
     })
-    window.bpmnInstances.modeling.updateProperties(toRaw(bpmnElementSource.value), {
+    bpmnInstances().modeling.updateProperties(toRaw(bpmnElementSource.value), {
       default: bpmnElement.value
     })
     return
@@ -135,11 +136,11 @@ const updateFlowType = (flowType) => {
     bpmnElementSourceRef.value.default &&
     bpmnElementSourceRef.value.default.id === bpmnElement.value.id
   ) {
-    window.bpmnInstances.modeling.updateProperties(toRaw(bpmnElementSource.value), {
+    bpmnInstances().modeling.updateProperties(toRaw(bpmnElementSource.value), {
       default: null
     })
   }
-  window.bpmnInstances.modeling.updateProperties(toRaw(bpmnElement.value), {
+  bpmnInstances().modeling.updateProperties(toRaw(bpmnElement.value), {
     conditionExpression: null
   })
 }
@@ -147,22 +148,22 @@ const updateFlowCondition = () => {
   let { conditionType, scriptType, body, resource, language } = flowConditionForm.value
   let condition
   if (conditionType === 'expression') {
-    condition = window.bpmnInstances.moddle.create('bpmn:FormalExpression', { body })
+    condition = bpmnInstances().moddle.create('bpmn:FormalExpression', { body })
   } else {
     if (scriptType === 'inlineScript') {
-      condition = window.bpmnInstances.moddle.create('bpmn:FormalExpression', { body, language })
+      condition = bpmnInstances().moddle.create('bpmn:FormalExpression', { body, language })
       // this.$set(this.flowConditionForm, "resource", "");
       flowConditionForm.value['resource'] = ''
     } else {
       // this.$set(this.flowConditionForm, "body", "");
       flowConditionForm.value['body'] = ''
-      condition = window.bpmnInstances.moddle.create('bpmn:FormalExpression', {
+      condition = bpmnInstances().moddle.create('bpmn:FormalExpression', {
         resource,
         language
       })
     }
   }
-  window.bpmnInstances.modeling.updateProperties(toRaw(bpmnElement.value), {
+  bpmnInstances().modeling.updateProperties(toRaw(bpmnElement.value), {
     conditionExpression: condition
   })
 }

+ 14 - 13
src/components/bpmnProcessDesigner/package/penal/form/ElementForm.vue

@@ -239,17 +239,18 @@ const elExtensionElements = ref()
 const formData = ref()
 const otherExtensions = ref()
 
+const bpmnInstances = () => (window as any)?.bpmnInstances
 const resetFormList = () => {
-  bpmnELement.value = window.bpmnInstances.bpmnElement
+  bpmnELement.value = bpmnInstances().bpmnElement
   formKey.value = bpmnELement.value.businessObject.formKey
   // 获取元素扩展属性 或者 创建扩展属性
   elExtensionElements.value =
     bpmnELement.value.businessObject.get('extensionElements') ||
-    window.bpmnInstances.moddle.create('bpmn:ExtensionElements', { values: [] })
+    bpmnInstances().moddle.create('bpmn:ExtensionElements', { values: [] })
   // 获取元素表单配置 或者 创建新的表单配置
   formData.value =
     elExtensionElements.value.values.filter((ex) => ex.$type === `${prefix}:FormData`)?.[0] ||
-    window.bpmnInstances.moddle.create(`${prefix}:FormData`, { fields: [] })
+    bpmnInstances().moddle.create(`${prefix}:FormData`, { fields: [] })
 
   // 业务标识 businessKey, 绑定在 formData 中
   businessKey.value = formData.value.businessKey
@@ -266,12 +267,12 @@ const resetFormList = () => {
   updateElementExtensions()
 }
 const updateElementFormKey = () => {
-  window.bpmnInstances.modeling.updateProperties(toRaw(bpmnELement.value), {
+  bpmnInstances().modeling.updateProperties(toRaw(bpmnELement.value), {
     formKey: formKey.value
   })
 }
 const updateElementBusinessKey = () => {
-  window.bpmnInstances.modeling.updateModdleProperties(toRaw(bpmnELement.value), formData.value, {
+  bpmnInstances().modeling.updateModdleProperties(toRaw(bpmnELement.value), formData.value, {
     businessKey: businessKey.value
   })
 }
@@ -353,37 +354,37 @@ const saveFieldOption = () => {
 // 保存字段配置
 const saveField = () => {
   const { id, type, label, defaultValue, datePattern } = formFieldForm.value
-  const Field = window.bpmnInstances.moddle.create(`${prefix}:FormField`, { id, type, label })
+  const Field = bpmnInstances().moddle.create(`${prefix}:FormField`, { id, type, label })
   defaultValue && (Field.defaultValue = defaultValue)
   datePattern && (Field.datePattern = datePattern)
   // 构建属性
   if (fieldPropertiesList.value && fieldPropertiesList.value.length) {
     const fieldPropertyList = fieldPropertiesList.value.map((fp) => {
-      return window.bpmnInstances.moddle.create(`${prefix}:Property`, {
+      return bpmnInstances().moddle.create(`${prefix}:Property`, {
         id: fp.id,
         value: fp.value
       })
     })
-    Field.properties = window.bpmnInstances.moddle.create(`${this.prefix}:Properties`, {
+    Field.properties = bpmnInstances().moddle.create(`${prefix}:Properties`, {
       values: fieldPropertyList
     })
   }
   // 构建校验规则
   if (fieldConstraintsList.value && fieldConstraintsList.value.length) {
     const fieldConstraintList = fieldConstraintsList.value.map((fc) => {
-      return window.bpmnInstances.moddle.create(`${prefix}:Constraint`, {
+      return bpmnInstances().moddle.create(`${prefix}:Constraint`, {
         name: fc.name,
         config: fc.config
       })
     })
-    Field.validation = window.bpmnInstances.moddle.create(`${prefix}:Validation`, {
+    Field.validation = bpmnInstances().moddle.create(`${prefix}:Validation`, {
       constraints: fieldConstraintList
     })
   }
   // 构建枚举值
   if (fieldEnumList.value && fieldEnumList.value.length) {
     Field.values = fieldEnumList.value.map((fe) => {
-      return window.bpmnInstances.moddle.create(`${prefix}:Value`, { name: fe.name, id: fe.id })
+      return bpmnInstances().moddle.create(`${prefix}:Value`, { name: fe.name, id: fe.id })
     })
   }
   // 更新数组 与 表单配置实例
@@ -421,11 +422,11 @@ const removeField = (field, index) => {
 
 const updateElementExtensions = () => {
   // 更新回扩展元素
-  const newElExtensionElements = window.bpmnInstances.moddle.create(`bpmn:ExtensionElements`, {
+  const newElExtensionElements = bpmnInstances().moddle.create(`bpmn:ExtensionElements`, {
     values: otherExtensions.value.concat(formData.value)
   })
   // 更新到元素上
-  window.bpmnInstances.modeling.updateProperties(toRaw(bpmnELement.value), {
+  bpmnInstances().modeling.updateProperties(toRaw(bpmnELement.value), {
     extensionElements: newElExtensionElements
   })
 }

+ 2 - 1
src/components/bpmnProcessDesigner/package/penal/listeners/ElementListeners.vue

@@ -266,9 +266,10 @@ const otherExtensionList = ref()
 const bpmnElementListeners = ref()
 const listenerFormRef = ref()
 const listenerFieldFormRef = ref()
+const bpmnInstances = () => (window as any)?.bpmnInstances
 
 const resetListenersList = () => {
-  bpmnElement.value = window.bpmnInstances.bpmnElement
+  bpmnElement.value = bpmnInstances().bpmnElement
   otherExtensionList.value = []
   bpmnElementListeners.value =
     bpmnElement.value.businessObject?.extensionElements?.values?.filter(

+ 3 - 2
src/components/bpmnProcessDesigner/package/penal/listeners/UserTaskListeners.vue

@@ -313,13 +313,14 @@ const bpmnElementListeners = ref()
 const otherExtensionList = ref()
 const listenerFormRef = ref()
 const listenerFieldFormRef = ref()
+const bpmnInstances = () => (window as any)?.bpmnInstances
 
 const resetListenersList = () => {
   console.log(
-    window.bpmnInstances.bpmnElement,
+    bpmnInstances().bpmnElement,
     'window.bpmnInstances.bpmnElementwindow.bpmnInstances.bpmnElementwindow.bpmnInstances.bpmnElementwindow.bpmnInstances.bpmnElementwindow.bpmnInstances.bpmnElementwindow.bpmnInstances.bpmnElement'
   )
-  bpmnElement.value = window.bpmnInstances.bpmnElement
+  bpmnElement.value = bpmnInstances().bpmnElement
   otherExtensionList.value = []
   bpmnElementListeners.value =
     bpmnElement.value.businessObject?.extensionElements?.values.filter(

+ 18 - 17
src/components/bpmnProcessDesigner/package/penal/multi-instance/ElementMultiInstance.vue

@@ -87,6 +87,7 @@ const defaultLoopInstanceForm = ref({
 const loopInstanceForm = ref<any>({})
 const bpmnElement = ref(null)
 const multiLoopInstance = ref(null)
+const bpmnInstances = () => (window as any)?.bpmnInstances
 
 const getElementLoop = (businessObject) => {
   if (!businessObject.loopCharacteristics) {
@@ -112,7 +113,7 @@ const getElementLoop = (businessObject) => {
     loopCardinality: businessObject.loopCharacteristics?.loopCardinality?.body ?? ''
   }
   // 保留当前元素 businessObject 上的 loopCharacteristics 实例
-  multiLoopInstance.value = window.bpmnInstances.bpmnElement.businessObject.loopCharacteristics
+  multiLoopInstance.value = bpmnInstances().bpmnElement.businessObject.loopCharacteristics
   // 更新表单
   if (
     businessObject.loopCharacteristics.extensionElements &&
@@ -127,17 +128,17 @@ const changeLoopCharacteristicsType = (type) => {
   // this.loopInstanceForm = { ...this.defaultLoopInstanceForm }; // 切换类型取消原表单配置
   // 取消多实例配置
   if (type === 'Null') {
-    window.bpmnInstances.modeling.updateProperties(toRaw(bpmnElement.value), {
+    bpmnInstances().modeling.updateProperties(toRaw(bpmnElement.value), {
       loopCharacteristics: null
     })
     return
   }
   // 配置循环
   if (type === 'StandardLoop') {
-    const loopCharacteristicsObject = window.bpmnInstances.moddle.create(
+    const loopCharacteristicsObject = bpmnInstances().moddle.create(
       'bpmn:StandardLoopCharacteristics'
     )
-    window.bpmnInstances.modeling.updateProperties(toRaw(bpmnElement.value), {
+    bpmnInstances().modeling.updateProperties(toRaw(bpmnElement.value), {
       loopCharacteristics: loopCharacteristicsObject
     })
     multiLoopInstance.value = null
@@ -145,17 +146,17 @@ const changeLoopCharacteristicsType = (type) => {
   }
   // 时序
   if (type === 'SequentialMultiInstance') {
-    multiLoopInstance.value = window.bpmnInstances.moddle.create(
+    multiLoopInstance.value = bpmnInstances().moddle.create(
       'bpmn:MultiInstanceLoopCharacteristics',
       { isSequential: true }
     )
   } else {
-    multiLoopInstance.value = window.bpmnInstances.moddle.create(
+    multiLoopInstance.value = bpmnInstances().moddle.create(
       'bpmn:MultiInstanceLoopCharacteristics',
       { collection: '${coll_userList}' }
     )
   }
-  window.bpmnInstances.modeling.updateProperties(toRaw(bpmnElement.value), {
+  bpmnInstances().modeling.updateProperties(toRaw(bpmnElement.value), {
     loopCharacteristics: toRaw(multiLoopInstance.value)
   })
 }
@@ -163,11 +164,11 @@ const changeLoopCharacteristicsType = (type) => {
 const updateLoopCardinality = (cardinality) => {
   let loopCardinality = null
   if (cardinality && cardinality.length) {
-    loopCardinality = window.bpmnInstances.moddle.create('bpmn:FormalExpression', {
+    loopCardinality = bpmnInstances().moddle.create('bpmn:FormalExpression', {
       body: cardinality
     })
   }
-  window.bpmnInstances.modeling.updateModdleProperties(
+  bpmnInstances().modeling.updateModdleProperties(
     toRaw(bpmnElement.value),
     multiLoopInstance.value,
     {
@@ -179,11 +180,11 @@ const updateLoopCardinality = (cardinality) => {
 const updateLoopCondition = (condition) => {
   let completionCondition = null
   if (condition && condition.length) {
-    completionCondition = window.bpmnInstances.moddle.create('bpmn:FormalExpression', {
+    completionCondition = bpmnInstances().moddle.create('bpmn:FormalExpression', {
       body: condition
     })
   }
-  window.bpmnInstances.modeling.updateModdleProperties(
+  bpmnInstances().modeling.updateModdleProperties(
     toRaw(bpmnElement.value),
     multiLoopInstance.value,
     {
@@ -193,14 +194,14 @@ const updateLoopCondition = (condition) => {
 }
 // 重试周期
 const updateLoopTimeCycle = (timeCycle) => {
-  const extensionElements = window.bpmnInstances.moddle.create('bpmn:ExtensionElements', {
+  const extensionElements = bpmnInstances().moddle.create('bpmn:ExtensionElements', {
     values: [
-      window.bpmnInstances.moddle.create(`${prefix}:FailedJobRetryTimeCycle`, {
+      bpmnInstances().moddle.create(`${prefix}:FailedJobRetryTimeCycle`, {
         body: timeCycle
       })
     ]
   })
-  window.bpmnInstances.modeling.updateModdleProperties(
+  bpmnInstances().modeling.updateModdleProperties(
     toRaw(bpmnElement.value),
     multiLoopInstance.value,
     {
@@ -210,7 +211,7 @@ const updateLoopTimeCycle = (timeCycle) => {
 }
 // 直接更新的基础信息
 const updateLoopBase = () => {
-  window.bpmnInstances.modeling.updateModdleProperties(
+  bpmnInstances().modeling.updateModdleProperties(
     toRaw(bpmnElement.value),
     multiLoopInstance.value,
     {
@@ -230,7 +231,7 @@ const updateLoopAsync = (key) => {
   } else {
     asyncAttr[key] = loopInstanceForm.value[key]
   }
-  window.bpmnInstances.modeling.updateModdleProperties(
+  bpmnInstances().modeling.updateModdleProperties(
     toRaw(bpmnElement.value),
     multiLoopInstance.value,
     asyncAttr
@@ -245,7 +246,7 @@ onBeforeUnmount(() => {
 watch(
   () => props.businessObject,
   (val) => {
-    bpmnElement.value = window.bpmnInstances.bpmnElement
+    bpmnElement.value = bpmnInstances().bpmnElement
     getElementLoop(val)
   },
   { immediate: true }

+ 5 - 4
src/components/bpmnProcessDesigner/package/penal/other/ElementOtherConfig.vue

@@ -22,13 +22,14 @@ const props = defineProps({
 })
 const documentation = ref('')
 const bpmnElement = ref()
+const bpmnInstances = () => (window as any).bpmnInstances
 const updateDocumentation = () => {
   ;(bpmnElement.value && bpmnElement.value.id === props.id) ||
-    (bpmnElement.value = (window as any).bpmnInstances.elementRegistry.get(props.id))
-  const documentations = window.bpmnInstances.bpmnFactory.create('bpmn:Documentation', {
+    (bpmnElement.value = bpmnInstances().elementRegistry.get(props.id))
+  const documentations = bpmnInstances().bpmnFactory.create('bpmn:Documentation', {
     text: documentation.value
   })
-  window.bpmnInstances.modeling.updateProperties(toRaw(bpmnElement.value), {
+  bpmnInstances().modeling.updateProperties(toRaw(bpmnElement.value), {
     documentation: [documentations]
   })
 }
@@ -41,7 +42,7 @@ watch(
   (id) => {
     if (id && id.length) {
       nextTick(() => {
-        const documentations = window.bpmnInstances.bpmnElement.businessObject?.documentation
+        const documentations = bpmnInstances().bpmnElement.businessObject?.documentation
         documentation.value = documentations && documentations.length ? documentations[0].text : ''
       })
     } else {

+ 8 - 7
src/components/bpmnProcessDesigner/package/penal/properties/ElementProperties.vue

@@ -70,10 +70,11 @@ const otherExtensionList = ref()
 const bpmnElementProperties = ref()
 const bpmnElementPropertyList = ref()
 const attributeFormRef = ref()
+const bpmnInstances = () => (window as any)?.bpmnInstances
 
 const resetAttributesList = () => {
   console.log(window, 'windowwindowwindowwindowwindowwindowwindow')
-  bpmnElement.value = window.bpmnInstances.bpmnElement
+  bpmnElement.value = bpmnInstances().bpmnElement
   otherExtensionList.value = [] // 其他扩展配置
   bpmnElementProperties.value =
     // bpmnElement.value.businessObject?.extensionElements?.filter((ex) => {
@@ -110,7 +111,7 @@ const removeAttributes = (attr, index) => {
       elementPropertyList.value.splice(index, 1)
       bpmnElementPropertyList.value.splice(index, 1)
       // 新建一个属性字段的保存列表
-      const propertiesObject = window.bpmnInstances.moddle.create(`${prefix}:Properties`, {
+      const propertiesObject = bpmnInstances().moddle.create(`${prefix}:Properties`, {
         values: bpmnElementPropertyList.value
       })
       updateElementExtensions(propertiesObject)
@@ -122,7 +123,7 @@ const saveAttribute = () => {
   console.log(propertyForm.value, 'propertyForm.value')
   const { name, value } = propertyForm.value
   if (editingPropertyIndex.value !== -1) {
-    window.bpmnInstances.modeling.updateModdleProperties(
+    bpmnInstances().modeling.updateModdleProperties(
       toRaw(bpmnElement.value),
       toRaw(bpmnElementPropertyList.value)[toRaw(editingPropertyIndex.value)],
       {
@@ -132,12 +133,12 @@ const saveAttribute = () => {
     )
   } else {
     // 新建属性字段
-    const newPropertyObject = window.bpmnInstances.moddle.create(`${prefix}:Property`, {
+    const newPropertyObject = bpmnInstances().moddle.create(`${prefix}:Property`, {
       name,
       value
     })
     // 新建一个属性字段的保存列表
-    const propertiesObject = window.bpmnInstances.moddle.create(`${prefix}:Properties`, {
+    const propertiesObject = bpmnInstances().moddle.create(`${prefix}:Properties`, {
       values: bpmnElementPropertyList.value.concat([newPropertyObject])
     })
     updateElementExtensions(propertiesObject)
@@ -146,10 +147,10 @@ const saveAttribute = () => {
   resetAttributesList()
 }
 const updateElementExtensions = (properties) => {
-  const extensions = window.bpmnInstances.moddle.create('bpmn:ExtensionElements', {
+  const extensions = bpmnInstances().moddle.create('bpmn:ExtensionElements', {
     values: otherExtensionList.value.concat([properties])
   })
-  window.bpmnInstances.modeling.updateProperties(toRaw(bpmnElement.value), {
+  bpmnInstances().modeling.updateProperties(toRaw(bpmnElement.value), {
     extensionElements: extensions
   })
 }

+ 4 - 3
src/components/bpmnProcessDesigner/package/penal/signal-message/SignalAndMessage.vue

@@ -62,10 +62,11 @@ const modelConfig = computed(() => {
     return { title: '创建信号', idLabel: '信号ID', nameLabel: '信号名称' }
   }
 })
+const bpmnInstances = () => (window as any)?.bpmnInstances
 
 const initDataList = () => {
   console.log(window, 'window')
-  rootElements.value = window.bpmnInstances.modeler.getDefinitions().rootElements
+  rootElements.value = bpmnInstances().modeler.getDefinitions().rootElements
   messageIdMap.value = {}
   signalIdMap.value = {}
   messageList.value = []
@@ -91,13 +92,13 @@ const addNewObject = () => {
     if (messageIdMap.value[modelObjectForm.value.id]) {
       message.error('该消息已存在,请修改id后重新保存')
     }
-    const messageRef = window.bpmnInstances.moddle.create('bpmn:Message', modelObjectForm.value)
+    const messageRef = bpmnInstances().moddle.create('bpmn:Message', modelObjectForm.value)
     rootElements.value.push(messageRef)
   } else {
     if (signalIdMap.value[modelObjectForm.value.id]) {
       message.error('该信号已存在,请修改id后重新保存')
     }
-    const signalRef = window.bpmnInstances.moddle.create('bpmn:Signal', modelObjectForm.value)
+    const signalRef = bpmnInstances().moddle.create('bpmn:Signal', modelObjectForm.value)
     rootElements.value.push(signalRef)
   }
   modelVisible.value = false

+ 3 - 2
src/components/bpmnProcessDesigner/package/penal/task/ElementTask.vue

@@ -45,11 +45,12 @@ const installedComponent = ref({
 })
 const bpmnElement = ref()
 
+const bpmnInstances = () => (window as any).bpmnInstances
 const changeTaskAsync = () => {
   if (!taskConfigForm.value.asyncBefore && !taskConfigForm.value.asyncAfter) {
     taskConfigForm.value.exclusive = false
   }
-  window.bpmnInstances.modeling.updateProperties(window.bpmnInstances.bpmnElement, {
+  bpmnInstances().modeling.updateProperties(bpmnInstances().bpmnElement, {
     ...taskConfigForm.value
   })
 }
@@ -57,7 +58,7 @@ const changeTaskAsync = () => {
 watch(
   () => props.id,
   () => {
-    bpmnElement.value = window.bpmnInstances.bpmnElement
+    bpmnElement.value = bpmnInstances().bpmnElement
     taskConfigForm.value.asyncBefore = bpmnElement.value?.businessObject?.asyncBefore
     taskConfigForm.value.asyncAfter = bpmnElement.value?.businessObject?.asyncAfter
     taskConfigForm.value.exclusive = bpmnElement.value?.businessObject?.exclusive

+ 7 - 6
src/components/bpmnProcessDesigner/package/penal/task/task-components/ReceiveTask.vue

@@ -64,8 +64,9 @@ const bpmnElement = ref<any>()
 const bpmnMessageRefsMap = ref<any>()
 const bpmnRootElements = ref<any>()
 
+const bpmnInstances = () => (window as any).bpmnInstances
 const getBindMessage = () => {
-  bpmnElement.value = window.bpmnInstances.bpmnElement
+  bpmnElement.value = bpmnInstances().bpmnElement
   bindMessageId.value = bpmnElement.value.businessObject?.messageRef?.id || '-1'
 }
 const openMessageModel = () => {
@@ -77,7 +78,7 @@ const createNewMessage = () => {
     message.error('该消息已存在,请修改id后重新保存')
     return
   }
-  const newMessage = window.bpmnInstances.moddle.create('bpmn:Message', newMessageForm.value)
+  const newMessage = bpmnInstances().moddle.create('bpmn:Message', newMessageForm.value)
   bpmnRootElements.value.push(newMessage)
   messageMap.value[newMessageForm.value.id] = newMessageForm.value.name
   bpmnMessageRefsMap.value[newMessageForm.value.id] = newMessage
@@ -85,11 +86,11 @@ const createNewMessage = () => {
 }
 const updateTaskMessage = (messageId) => {
   if (messageId === '-1') {
-    window.bpmnInstances.modeling.updateProperties(toRaw(bpmnElement.value), {
+    bpmnInstances().modeling.updateProperties(toRaw(bpmnElement.value), {
       messageRef: null
     })
   } else {
-    window.bpmnInstances.modeling.updateProperties(toRaw(bpmnElement.value), {
+    bpmnInstances().modeling.updateProperties(toRaw(bpmnElement.value), {
       messageRef: bpmnMessageRefsMap.value[messageId]
     })
   }
@@ -97,7 +98,7 @@ const updateTaskMessage = (messageId) => {
 
 onMounted(() => {
   bpmnMessageRefsMap.value = Object.create(null)
-  bpmnRootElements.value = window.bpmnInstances.modeler.getDefinitions().rootElements
+  bpmnRootElements.value = bpmnInstances().modeler.getDefinitions().rootElements
   bpmnRootElements.value
     .filter((el) => el.$type === 'bpmn:Message')
     .forEach((m) => {
@@ -113,7 +114,7 @@ onBeforeUnmount(() => {
 watch(
   () => props.id,
   () => {
-    // bpmnElement.value = window.bpmnInstances.bpmnElement
+    // bpmnElement.value = bpmnInstances().bpmnElement
     nextTick(() => {
       getBindMessage()
     })

+ 4 - 2
src/components/bpmnProcessDesigner/package/penal/task/task-components/ScriptTask.vue

@@ -58,6 +58,8 @@ const defaultTaskForm = ref({
 const scriptTaskForm = ref<any>({})
 const bpmnElement = ref()
 
+const bpmnInstances = () => (window as any)?.bpmnInstances
+
 const resetTaskForm = () => {
   for (let key in defaultTaskForm.value) {
     let value = bpmnElement.value?.businessObject[key] || defaultTaskForm.value[key]
@@ -76,7 +78,7 @@ const updateElementTask = () => {
     taskAttr.resource = scriptTaskForm.value.resource || null
     taskAttr.script = null
   }
-  window.bpmnInstances.modeling.updateProperties(toRaw(bpmnElement.value), taskAttr)
+  bpmnInstances().modeling.updateProperties(toRaw(bpmnElement.value), taskAttr)
 }
 
 onBeforeUnmount(() => {
@@ -86,7 +88,7 @@ onBeforeUnmount(() => {
 watch(
   () => props.id,
   () => {
-    bpmnElement.value = window.bpmnInstances.bpmnElement
+    bpmnElement.value = bpmnInstances().bpmnElement
     nextTick(() => {
       resetTaskForm()
     })

+ 4 - 2
src/components/bpmnProcessDesigner/package/penal/task/task-components/UserTask.vue

@@ -53,6 +53,8 @@ const defaultTaskForm = ref({
 const userTaskForm = ref<any>({})
 // const mockData=ref([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
 const bpmnElement = ref()
+const bpmnInstances = () => (window as any)?.bpmnInstances
+
 const resetTaskForm = () => {
   for (let key in defaultTaskForm.value) {
     let value
@@ -76,13 +78,13 @@ const updateElementTask = (key) => {
   } else {
     taskAttr[key] = userTaskForm.value[key] || null
   }
-  window.bpmnInstances.modeling.updateProperties(toRaw(bpmnElement.value), taskAttr)
+  bpmnInstances().modeling.updateProperties(toRaw(bpmnElement.value), taskAttr)
 }
 
 watch(
   () => props.id,
   () => {
-    bpmnElement.value = window.bpmnInstances.bpmnElement
+    bpmnElement.value = bpmnInstances().bpmnElement
     nextTick(() => {
       resetTaskForm()
     })

+ 9 - 8
src/components/bpmnProcessDesigner/package/utils.ts

@@ -1,4 +1,5 @@
 import { toRaw } from 'vue'
+const bpmnInstances = () => (window as any)?.bpmnInstances
 // 创建监听器实例
 export function createListenerObject(options, isTask, prefix) {
   const listenerObj = Object.create(null)
@@ -25,16 +26,16 @@ export function createListenerObject(options, isTask, prefix) {
   }
   // 任务监听器的 定时器 设置
   if (isTask && options.event === 'timeout' && !!options.eventDefinitionType) {
-    const timeDefinition = window.bpmnInstances.moddle.create('bpmn:FormalExpression', {
+    const timeDefinition = bpmnInstances().moddle.create('bpmn:FormalExpression', {
       body: options.eventTimeDefinitions
     })
-    const TimerEventDefinition = window.bpmnInstances.moddle.create('bpmn:TimerEventDefinition', {
+    const TimerEventDefinition = bpmnInstances().moddle.create('bpmn:TimerEventDefinition', {
       id: `TimerEventDefinition_${uuid(8)}`,
       [`time${options.eventDefinitionType.replace(/^\S/, (s) => s.toUpperCase())}`]: timeDefinition
     })
     listenerObj.eventDefinitions = [TimerEventDefinition]
   }
-  return window.bpmnInstances.moddle.create(
+  return bpmnInstances().moddle.create(
     `${prefix}:${isTask ? 'TaskListener' : 'ExecutionListener'}`,
     listenerObj
   )
@@ -44,7 +45,7 @@ export function createListenerObject(options, isTask, prefix) {
 export function createFieldObject(option, prefix) {
   const { name, fieldType, string, expression } = option
   const fieldConfig = fieldType === 'string' ? { name, string } : { name, expression }
-  return window.bpmnInstances.moddle.create(`${prefix}:Field`, fieldConfig)
+  return bpmnInstances().moddle.create(`${prefix}:Field`, fieldConfig)
 }
 
 // 创建脚本实例
@@ -52,21 +53,21 @@ export function createScriptObject(options, prefix) {
   const { scriptType, scriptFormat, value, resource } = options
   const scriptConfig =
     scriptType === 'inlineScript' ? { scriptFormat, value } : { scriptFormat, resource }
-  return window.bpmnInstances.moddle.create(`${prefix}:Script`, scriptConfig)
+  return bpmnInstances().moddle.create(`${prefix}:Script`, scriptConfig)
 }
 
 // 更新元素扩展属性
 export function updateElementExtensions(element, extensionList) {
-  const extensions = window.bpmnInstances.moddle.create('bpmn:ExtensionElements', {
+  const extensions = bpmnInstances().moddle.create('bpmn:ExtensionElements', {
     values: extensionList
   })
-  window.bpmnInstances.modeling.updateProperties(toRaw(element), {
+  bpmnInstances().modeling.updateProperties(toRaw(element), {
     extensionElements: extensions
   })
 }
 
 // 创建一个id
-export function uuid(length = 8, chars) {
+export function uuid(length = 8, chars?) {
   let result = ''
   const charsString = chars || '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
   for (let i = length; i > 0; --i) {

+ 1 - 0
src/hooks/web/useI18n.ts

@@ -41,6 +41,7 @@ export const useI18n = (
   const tFn: I18nGlobalTranslation = (key: string, ...arg: any[]) => {
     if (!key) return ''
     if (!key.includes('.') && !namespace) return key
+    //@ts-ignore
     return t(getKey(namespace, key), ...(arg as I18nTranslationRestParameters))
   }
   return {

+ 2 - 0
src/hooks/web/useTimeAgo.ts

@@ -5,6 +5,7 @@ const TIME_AGO_MESSAGE_MAP: {
   'zh-CN': UseTimeAgoMessages
   en: UseTimeAgoMessages
 } = {
+  // @ts-ignore
   'zh-CN': {
     justNow: '刚刚',
     past: (n) => (n.match(/\d/) ? `${n}前` : n),
@@ -17,6 +18,7 @@ const TIME_AGO_MESSAGE_MAP: {
     minute: (n) => `${n} 分钟`,
     second: (n) => `${n} 秒`
   },
+  // @ts-ignore
   en: {
     justNow: 'just now',
     past: (n) => (n.match(/\d/) ? `${n} ago` : n),

+ 2 - 2
src/store/modules/tagsView.ts

@@ -58,7 +58,7 @@ export const useTagsViewStore = defineStore('tagsView', {
     // 删除某个
     delView(view: RouteLocationNormalizedLoaded) {
       this.delVisitedView(view)
-      this.addCachedView()
+      this.delCachedView()
     },
     // 删除tag
     delVisitedView(view: RouteLocationNormalizedLoaded) {
@@ -80,7 +80,7 @@ export const useTagsViewStore = defineStore('tagsView', {
     // 删除所有缓存和tag
     delAllViews() {
       this.delAllVisitedViews()
-      this.addCachedView()
+      this.delCachedView()
     },
     // 删除所有tag
     delAllVisitedViews() {

+ 5 - 1
src/types/auto-components.d.ts

@@ -21,6 +21,7 @@ declare module '@vue/runtime-core' {
     DictTag: typeof import('./../components/DictTag/src/DictTag.vue')['default']
     Echart: typeof import('./../components/Echart/src/Echart.vue')['default']
     Editor: typeof import('./../components/Editor/src/Editor.vue')['default']
+    ElAvatar: typeof import('element-plus/es')['ElAvatar']
     ElBadge: typeof import('element-plus/es')['ElBadge']
     ElButton: typeof import('element-plus/es')['ElButton']
     ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup']
@@ -49,6 +50,7 @@ declare module '@vue/runtime-core' {
     ElForm: typeof import('element-plus/es')['ElForm']
     ElFormItem: typeof import('element-plus/es')['ElFormItem']
     ElIcon: typeof import('element-plus/es')['ElIcon']
+    ElImage: typeof import('element-plus/es')['ElImage']
     ElImageViewer: typeof import('element-plus/es')['ElImageViewer']
     ElInput: typeof import('element-plus/es')['ElInput']
     ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
@@ -63,13 +65,15 @@ declare module '@vue/runtime-core' {
     ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
     ElSelect: typeof import('element-plus/es')['ElSelect']
     ElSkeleton: typeof import('element-plus/es')['ElSkeleton']
+    ElSpace: typeof import('element-plus/es')['ElSpace']
     ElSwitch: typeof import('element-plus/es')['ElSwitch']
     ElTable: typeof import('element-plus/es')['ElTable']
     ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
-    ElTableV2: typeof import('element-plus/es')['ElTableV2']
     ElTabPane: typeof import('element-plus/es')['ElTabPane']
     ElTabs: typeof import('element-plus/es')['ElTabs']
     ElTag: typeof import('element-plus/es')['ElTag']
+    ElTimeline: typeof import('element-plus/es')['ElTimeline']
+    ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
     ElTooltip: typeof import('element-plus/es')['ElTooltip']
     ElTransfer: typeof import('element-plus/es')['ElTransfer']
     ElTree: typeof import('element-plus/es')['ElTree']

+ 4 - 1
src/types/auto-imports.d.ts

@@ -1,4 +1,7 @@
-// Generated by 'unplugin-auto-import'
+/* eslint-disable */
+/* prettier-ignore */
+// @ts-nocheck
+// Generated by unplugin-auto-import
 export {}
 declare global {
   const DICT_TYPE: typeof import('@/utils/dict')['DICT_TYPE']

+ 5 - 3
src/utils/routerHelper.ts

@@ -212,9 +212,11 @@ const addToChildren = (
   }
 }
 const toCamelCase = (str: string, upperCaseFirst: boolean) => {
-  str = (str || '').toLowerCase().replace(/-(.)/g, function (group1: string) {
-    return group1.toUpperCase()
-  })
+  str = (str || '')
+    .replace(/-(.)/g, function (group1: string) {
+      return group1.toUpperCase()
+    })
+    .replaceAll('-', '')
 
   if (upperCaseFirst && str) {
     str = str.charAt(0).toUpperCase() + str.slice(1)

+ 1 - 1
src/views/bpm/model/modelEditor.vue

@@ -108,7 +108,7 @@ const initModeler = (item) => {
 
 const save = (bpmnXml) => {
   const data: ModelVO = {
-    ...model.value,
+    ...(model.value ?? ({} as ModelVO)),
     bpmnXml: bpmnXml // bpmnXml 只是初始化流程图,后续修改无法通过它获得
   }
   console.log(data, 'data')

+ 1 - 1
src/views/bpm/processInstance/detail.vue

@@ -406,7 +406,7 @@ const getDetail = () => {
         nextTick().then(() => {
           fApi.value?.btn.show(false)
           fApi.value?.resetBtn.show(false)
-          fApi.value?.disabled(true)
+          fApi.value?.btn.disabled(true)
         })
       }
 

+ 1 - 0
src/views/bpm/task/done/index.vue

@@ -21,6 +21,7 @@ const { push } = useRouter() // 路由
 
 const [registerTable] = useXTable({
   allSchemas: allSchemas,
+  topActionSlots: false,
   getListApi: TaskApi.getDoneTaskPage
 })
 

+ 1 - 0
src/views/bpm/task/todo/index.vue

@@ -22,6 +22,7 @@ const { push } = useRouter() // 路由
 
 const [registerTable] = useXTable({
   allSchemas: allSchemas,
+  topActionSlots: false,
   getListApi: TaskApi.getTodoTaskPage
 })
 

+ 1 - 1
src/views/infra/server/index.vue

@@ -3,7 +3,7 @@
     <IFrame :src="src" />
   </ContentWrap>
 </template>
-<script setup lang="ts" name="Server">
+<script setup lang="ts" name="AdminServer">
 const BASE_URL = import.meta.env.VITE_BASE_URL
 const src = ref(BASE_URL + '/admin/applications')
 </script>

+ 1 - 1
src/views/report/jmreport/index.vue

@@ -3,7 +3,7 @@
     <IFrame :src="src" />
   </ContentWrap>
 </template>
-<script setup lang="ts" name="Jmreport">
+<script setup lang="ts" name="JimuReport">
 import { getAccessToken } from '@/utils/auth'
 
 const BASE_URL = import.meta.env.VITE_BASE_URL

+ 6 - 0
src/views/system/dict/index.vue

@@ -179,6 +179,7 @@ const tableTypeSelect = ref(false)
 const cellClickEvent: VxeTableEvents.CellClick = async ({ row }) => {
   tableTypeSelect.value = true
   queryParams.dictType = row['type']
+  await nextTick()
   await dataGetList()
   parentType.value = row['type']
 }
@@ -197,6 +198,11 @@ const setDialogTile = (type: string) => {
   dialogVisible.value = true
 }
 
+// 同步dictTypeValue到form 否则导致表单验证不通过
+watch(dictTypeValue, (val) => {
+  unref(typeFormRef)?.setValues({ type: val })
+})
+
 // 提交按钮
 const submitTypeForm = async () => {
   const elForm = unref(typeFormRef)?.getElFormRef()

+ 1 - 0
src/views/system/mail/log/index.vue

@@ -59,6 +59,7 @@ const queryParams = reactive({
 })
 const [registerTable] = useXTable({
   allSchemas: allSchemas,
+  topActionSlots: false,
   params: queryParams,
   getListApi: MailLogApi.getMailLogPageApi
 })

+ 1 - 0
src/views/system/notify/message/index.vue

@@ -37,6 +37,7 @@ const { t } = useI18n() // 国际化
 // 列表相关的变量
 const [registerTable] = useXTable({
   allSchemas: allSchemas,
+  topActionSlots: false,
   getListApi: NotifyMessageApi.getNotifyMessagePageApi
 })
 

+ 1 - 1
src/views/system/notify/my/index.vue

@@ -35,7 +35,7 @@ const [registerTable, { reload, getCheckboxRecords }] = useXTable({
 })
 
 const handleUpdateList = async () => {
-  const list = getCheckboxRecords()
+  const list = getCheckboxRecords() as any as any[]
   if (list.length === 0) {
     return
   }