Browse Source

refactor: vue3.3 defineOptions

xingyu 1 year ago
parent
commit
922f83d99c
100 changed files with 399 additions and 188 deletions
  1. 3 1
      src/App.vue
  2. 3 1
      src/components/Backtop/src/Backtop.vue
  3. 3 1
      src/components/ConfigGlobal/src/ConfigGlobal.vue
  4. 3 1
      src/components/ContentDetailWrap/src/ContentDetailWrap.vue
  5. 3 1
      src/components/ContentWrap/src/ContentWrap.vue
  6. 3 1
      src/components/CountTo/src/CountTo.vue
  7. 11 9
      src/components/Crontab/src/Crontab.vue
  8. 3 1
      src/components/Cropper/src/CopperModal.vue
  9. 3 1
      src/components/Cropper/src/Cropper.vue
  10. 15 16
      src/components/Cropper/src/CropperAvatar.vue
  11. 3 1
      src/components/Descriptions/src/Descriptions.vue
  12. 4 1
      src/components/Dialog/src/Dialog.vue
  13. 4 2
      src/components/DocAlert/index.vue
  14. 3 1
      src/components/Echart/src/Echart.vue
  15. 3 1
      src/components/Editor/src/Editor.vue
  16. 3 1
      src/components/Error/src/Error.vue
  17. 3 1
      src/components/IFrame/src/IFrame.vue
  18. 3 1
      src/components/Icon/src/Icon.vue
  19. 7 5
      src/components/Icon/src/IconSelect.vue
  20. 3 1
      src/components/ImageViewer/src/ImageViewer.vue
  21. 3 1
      src/components/Infotip/src/Infotip.vue
  22. 4 2
      src/components/InputPassword/src/InputPassword.vue
  23. 3 1
      src/components/Pagination/index.vue
  24. 4 2
      src/components/Qrcode/src/Qrcode.vue
  25. 3 1
      src/components/Search/src/Search.vue
  26. 3 1
      src/components/Sticky/src/Sticky.vue
  27. 3 1
      src/components/Tooltip/src/Tooltip.vue
  28. 7 1
      src/components/UploadFile/src/UploadFile.vue
  29. 24 4
      src/components/UploadFile/src/UploadImg.vue
  30. 7 5
      src/components/UploadFile/src/UploadImgs.vue
  31. 17 27
      src/components/Verifition/src/Verify.vue
  32. 1 1
      src/components/Verifition/src/Verify/VerifyPoints.vue
  33. 1 1
      src/components/Verifition/src/Verify/VerifySlide.vue
  34. 3 1
      src/components/XButton/src/XButton.vue
  35. 3 1
      src/components/XButton/src/XTextButton.vue
  36. 4 1
      src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue
  37. 5 1
      src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue
  38. 3 1
      src/components/bpmnProcessDesigner/package/palette/ProcessPalette.vue
  39. 4 1
      src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue
  40. 5 2
      src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue
  41. 3 1
      src/components/bpmnProcessDesigner/package/penal/flow-condition/FlowCondition.vue
  42. 3 1
      src/components/bpmnProcessDesigner/package/penal/form/ElementForm.vue
  43. 4 1
      src/components/bpmnProcessDesigner/package/penal/listeners/ElementListeners.vue
  44. 4 1
      src/components/bpmnProcessDesigner/package/penal/listeners/UserTaskListeners.vue
  45. 3 1
      src/components/bpmnProcessDesigner/package/penal/multi-instance/ElementMultiInstance.vue
  46. 2 1
      src/components/bpmnProcessDesigner/package/penal/other/ElementOtherConfig.vue
  47. 7 5
      src/components/bpmnProcessDesigner/package/penal/properties/ElementProperties.vue
  48. 6 4
      src/components/bpmnProcessDesigner/package/penal/signal-message/SignalAndMessage.vue
  49. 3 1
      src/components/bpmnProcessDesigner/package/penal/task/ElementTask.vue
  50. 2 1
      src/components/bpmnProcessDesigner/package/penal/task/task-components/ReceiveTask.vue
  51. 2 1
      src/components/bpmnProcessDesigner/package/penal/task/task-components/ScriptTask.vue
  52. 2 1
      src/components/bpmnProcessDesigner/package/penal/task/task-components/UserTask.vue
  53. 3 1
      src/layout/components/AppView.vue
  54. 3 1
      src/layout/components/Collapse/src/Collapse.vue
  55. 3 1
      src/layout/components/ContextMenu/src/ContextMenu.vue
  56. 3 1
      src/layout/components/Footer/src/Footer.vue
  57. 3 1
      src/layout/components/LocaleDropdown/src/LocaleDropdown.vue
  58. 3 1
      src/layout/components/Logo/src/Logo.vue
  59. 3 1
      src/layout/components/Message/src/Message.vue
  60. 3 1
      src/layout/components/Screenfull/src/Screenfull.vue
  61. 3 1
      src/layout/components/Setting/src/Setting.vue
  62. 3 1
      src/layout/components/Setting/src/components/ColorRadioPicker.vue
  63. 3 1
      src/layout/components/Setting/src/components/InterfaceDisplay.vue
  64. 11 9
      src/layout/components/Setting/src/components/LayoutRadioPicker.vue
  65. 3 1
      src/layout/components/SizeDropdown/src/SizeDropdown.vue
  66. 7 5
      src/layout/components/TagsView/src/TagsView.vue
  67. 3 1
      src/layout/components/ThemeSwitch/src/ThemeSwitch.vue
  68. 3 1
      src/layout/components/UserInfo/src/UserInfo.vue
  69. 3 1
      src/views/Error/403.vue
  70. 2 1
      src/views/Error/404.vue
  71. 2 1
      src/views/Error/500.vue
  72. 3 1
      src/views/Home/Index.vue
  73. 3 1
      src/views/Home/Index2.vue
  74. 3 1
      src/views/Login/Login.vue
  75. 3 1
      src/views/Login/components/LoginForm.vue
  76. 3 1
      src/views/Login/components/LoginFormTitle.vue
  77. 3 1
      src/views/Login/components/MobileForm.vue
  78. 3 1
      src/views/Login/components/QrCodeForm.vue
  79. 3 1
      src/views/Login/components/RegisterForm.vue
  80. 4 1
      src/views/Login/components/SSOLogin.vue
  81. 5 4
      src/views/Profile/components/BasicInfo.vue
  82. 5 3
      src/views/Profile/components/ProfileUser.vue
  83. 3 1
      src/views/Profile/components/ResetPwd.vue
  84. 3 1
      src/views/Profile/components/UserAvatar.vue
  85. 3 1
      src/views/Profile/components/UserSocial.vue
  86. 3 1
      src/views/Redirect/Redirect.vue
  87. 4 1
      src/views/bpm/definition/index.vue
  88. 3 1
      src/views/bpm/form/editor/index.vue
  89. 3 1
      src/views/bpm/form/index.vue
  90. 3 1
      src/views/bpm/group/UserGroupForm.vue
  91. 4 1
      src/views/bpm/group/index.vue
  92. 3 1
      src/views/bpm/model/ModelForm.vue
  93. 3 1
      src/views/bpm/model/ModelImportForm.vue
  94. 3 1
      src/views/bpm/model/editor/index.vue
  95. 4 1
      src/views/bpm/model/index.vue
  96. 4 1
      src/views/bpm/oa/leave/create.vue
  97. 3 1
      src/views/bpm/oa/leave/detail.vue
  98. 4 1
      src/views/bpm/oa/leave/index.vue
  99. 4 1
      src/views/bpm/processInstance/create/index.vue
  100. 3 1
      src/views/bpm/processInstance/detail/ProcessInstanceBpmnViewer.vue

+ 3 - 1
src/App.vue

@@ -1,10 +1,12 @@
-<script lang="ts" name="APP" setup>
+<script lang="ts" setup>
 import { isDark } from '@/utils/is'
 import { useAppStore } from '@/store/modules/app'
 import { useDesign } from '@/hooks/web/useDesign'
 import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
 import routerSearch from '@/components/RouterSearch/index.vue'
 
+defineOptions({ name: 'APP' })
+
 const { getPrefixCls } = useDesign()
 const prefixCls = getPrefixCls('app')
 const appStore = useAppStore()

+ 3 - 1
src/components/Backtop/src/Backtop.vue

@@ -1,7 +1,9 @@
-<script lang="ts" name="BackTop" setup>
+<script lang="ts" setup>
 import { ElBacktop } from 'element-plus'
 import { useDesign } from '@/hooks/web/useDesign'
 
+defineOptions({ name: 'BackTop' })
+
 const { getPrefixCls, variables } = useDesign()
 
 const prefixCls = getPrefixCls('backtop')

+ 3 - 1
src/components/ConfigGlobal/src/ConfigGlobal.vue

@@ -1,4 +1,4 @@
-<script lang="ts" name="ConfigGlobal" setup>
+<script lang="ts" setup>
 import { propTypes } from '@/utils/propTypes'
 import { useLocaleStore } from '@/store/modules/locale'
 import { useAppStore } from '@/store/modules/app'
@@ -7,6 +7,8 @@ import { useDesign } from '@/hooks/web/useDesign'
 import { ElementPlusSize } from '@/types/elementPlus'
 import { useWindowSize } from '@vueuse/core'
 
+defineOptions({ name: 'ConfigGlobal' })
+
 const { variables } = useDesign()
 
 const appStore = useAppStore()

+ 3 - 1
src/components/ContentDetailWrap/src/ContentDetailWrap.vue

@@ -1,7 +1,9 @@
-<script lang="ts" name="ContentDetailWrap" setup>
+<script lang="ts" setup>
 import { propTypes } from '@/utils/propTypes'
 import { useDesign } from '@/hooks/web/useDesign'
 
+defineOptions({ name: 'ContentDetailWrap' })
+
 const { t } = useI18n()
 
 const { getPrefixCls } = useDesign()

+ 3 - 1
src/components/ContentWrap/src/ContentWrap.vue

@@ -1,7 +1,9 @@
-<script lang="ts" name="ContentWrap" setup>
+<script lang="ts" setup>
 import { propTypes } from '@/utils/propTypes'
 import { useDesign } from '@/hooks/web/useDesign'
 
+defineOptions({ name: 'ContentWrap' })
+
 const { getPrefixCls } = useDesign()
 
 const prefixCls = getPrefixCls('content-wrap')

+ 3 - 1
src/components/CountTo/src/CountTo.vue

@@ -1,9 +1,11 @@
-<script lang="ts" name="CountTo" setup>
+<script lang="ts" setup>
 import { PropType } from 'vue'
 import { isNumber } from '@/utils/is'
 import { propTypes } from '@/utils/propTypes'
 import { useDesign } from '@/hooks/web/useDesign'
 
+defineOptions({ name: 'CountTo' })
+
 const { getPrefixCls } = useDesign()
 
 const prefixCls = getPrefixCls('count-to')

+ 11 - 9
src/components/Crontab/src/Crontab.vue

@@ -1,7 +1,9 @@
-<script lang="ts" name="Crontab" setup>
+<script lang="ts" setup>
 import { ElMessage } from 'element-plus'
 import { PropType } from 'vue'
 
+defineOptions({ name: 'Crontab' })
+
 interface shortcutsType {
   text: string
   value: string
@@ -966,37 +968,37 @@ const submit = () => {
 <style scoped>
 .sc-cron:deep(.el-tabs__item) {
   height: auto;
-  line-height: 1;
   padding: 0 7px;
+  line-height: 1;
   vertical-align: bottom;
 }
 
 .sc-cron-num {
-  text-align: center;
-  margin-bottom: 15px;
   width: 100%;
+  margin-bottom: 15px;
+  text-align: center;
 }
 
 .sc-cron-num h2 {
-  font-size: 12px;
   margin-bottom: 15px;
+  font-size: 12px;
   font-weight: normal;
 }
 
 .sc-cron-num h4 {
   display: block;
-  height: 32px;
-  line-height: 30px;
   width: 100%;
-  font-size: 12px;
+  height: 32px;
   padding: 0 15px;
+  font-size: 12px;
+  line-height: 30px;
   background: var(--el-color-primary-light-9);
   border-radius: 4px;
 }
 
 .sc-cron:deep(.el-tabs__item.is-active) .sc-cron-num h4 {
-  background: var(--el-color-primary);
   color: #fff;
+  background: var(--el-color-primary);
 }
 
 [data-theme='dark'] .sc-cron-num h4 {

+ 3 - 1
src/components/Cropper/src/CopperModal.vue

@@ -113,7 +113,7 @@
     </Dialog>
   </div>
 </template>
-<script lang="ts" name="CopperModal" setup>
+<script lang="ts" setup>
 import { useDesign } from '@/hooks/web/useDesign'
 import { dataURLtoBlob } from '@/utils/filt'
 import { useI18n } from 'vue-i18n'
@@ -121,6 +121,8 @@ import type { CropendResult, Cropper } from './types'
 import { propTypes } from '@/utils/propTypes'
 import { CropperImage } from '@/components/Cropper'
 
+defineOptions({ name: 'CopperModal' })
+
 const props = defineProps({
   srcValue: propTypes.string.def(''),
   circled: propTypes.bool.def(true)

+ 3 - 1
src/components/Cropper/src/Cropper.vue

@@ -10,7 +10,7 @@
     />
   </div>
 </template>
-<script lang="ts" name="Cropper" setup>
+<script lang="ts" setup>
 import { CSSProperties, PropType } from 'vue'
 import Cropper from 'cropperjs'
 import 'cropperjs/dist/cropper.css'
@@ -18,6 +18,8 @@ import { useDesign } from '@/hooks/web/useDesign'
 import { propTypes } from '@/utils/propTypes'
 import { useDebounceFn } from '@vueuse/core'
 
+defineOptions({ name: 'Cropper' })
+
 type Options = Cropper.Options
 
 const defaultOptions: Options = {

+ 15 - 16
src/components/Cropper/src/CropperAvatar.vue

@@ -11,13 +11,15 @@
     />
   </div>
 </template>
-<script lang="ts" name="CropperAvatar" setup>
+<script lang="ts" setup>
 import { useDesign } from '@/hooks/web/useDesign'
 
 import { propTypes } from '@/utils/propTypes'
 import { useI18n } from 'vue-i18n'
 import CopperModal from './CopperModal.vue'
 
+defineOptions({ name: 'CropperAvatar' })
+
 const props = defineProps({
   width: propTypes.string.def('200px'),
   value: propTypes.string.def(''),
@@ -83,14 +85,14 @@ $prefix-cls: #{$namespace}--cropper-avatar;
   }
 
   &-image-mask {
-    opacity: 0%;
     position: absolute;
     width: inherit;
     height: inherit;
-    border-radius: inherit;
-    border: inherit;
-    background: rgb(0 0 0 / 40%);
     cursor: pointer;
+    background: rgb(0 0 0 / 40%);
+    border: inherit;
+    border-radius: inherit;
+    opacity: 0;
     transition: opacity 0.4s;
 
     ::v-deep(svg) {
@@ -99,7 +101,7 @@ $prefix-cls: #{$namespace}--cropper-avatar;
   }
 
   &-image-mask:hover {
-    opacity: 4000%;
+    opacity: 40;
   }
 
   &-upload-btn {
@@ -121,21 +123,18 @@ $prefix-cls: #{$namespace}--cropper-avatar;
   height: 120px;
 }
 
-.user-info-head:hover:after {
-  content: '+';
+.user-info-head:hover::after {
   position: absolute;
-  left: 0;
-  right: 0;
-  top: 0;
-  bottom: 0;
-  color: #eee;
-  background: rgba(0, 0, 0, 0.5);
+  inset: 0;
   font-size: 24px;
-  font-style: normal;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
-  cursor: pointer;
+  font-style: normal;
   line-height: 110px;
+  color: #eee;
+  cursor: pointer;
+  background: rgb(0 0 0 / 50%);
   border-radius: 50%;
+  content: '+';
 }
 </style>

+ 3 - 1
src/components/Descriptions/src/Descriptions.vue

@@ -1,4 +1,4 @@
-<script lang="ts" name="Descriptions" setup>
+<script lang="ts" setup>
 import { PropType } from 'vue'
 import dayjs from 'dayjs'
 import { useDesign } from '@/hooks/web/useDesign'
@@ -6,6 +6,8 @@ import { propTypes } from '@/utils/propTypes'
 import { useAppStore } from '@/store/modules/app'
 import { DescriptionsSchema } from '@/types/descriptions'
 
+defineOptions({ name: 'Descriptions' })
+
 const appStore = useAppStore()
 
 const mobile = computed(() => appStore.getMobile)

+ 4 - 1
src/components/Dialog/src/Dialog.vue

@@ -1,7 +1,10 @@
-<script lang="ts" name="Dialog" setup>
+<script lang="ts" setup>
 import { propTypes } from '@/utils/propTypes'
 import { isNumber } from '@/utils/is'
 
+// eslint-disable-next-line vue/no-reserved-component-names
+defineOptions({ name: 'Dialog' })
+
 const slots = useSlots()
 
 const props = defineProps({

+ 4 - 2
src/components/DocAlert/index.vue

@@ -5,9 +5,11 @@
     </template>
   </el-alert>
 </template>
-<script setup lang="tsx" name="DocAlert">
+<script setup lang="tsx">
 import { propTypes } from '@/utils/propTypes'
 
+defineOptions({ name: 'DocAlert' })
+
 const props = defineProps({
   title: propTypes.string,
   url: propTypes.string
@@ -25,8 +27,8 @@ const getEnable = () => {
 </script>
 <style scoped>
 .el-alert--success.is-light {
-  border: 1px solid green;
   margin-bottom: 10px;
   cursor: pointer;
+  border: 1px solid green;
 }
 </style>

+ 3 - 1
src/components/Echart/src/Echart.vue

@@ -1,4 +1,4 @@
-<script lang="ts" name="EChart" setup>
+<script lang="ts" setup>
 import type { EChartsOption } from 'echarts'
 import echarts from '@/plugins/echarts'
 import { debounce } from 'lodash-es'
@@ -9,6 +9,8 @@ import { useAppStore } from '@/store/modules/app'
 import { isString } from '@/utils/is'
 import { useDesign } from '@/hooks/web/useDesign'
 
+defineOptions({ name: 'EChart' })
+
 const { getPrefixCls, variables } = useDesign()
 
 const prefixCls = getPrefixCls('echart')

+ 3 - 1
src/components/Editor/src/Editor.vue

@@ -1,4 +1,4 @@
-<script lang="ts" name="Editor" setup>
+<script lang="ts" setup>
 import { PropType } from 'vue'
 import { Editor, Toolbar } from '@wangeditor/editor-for-vue'
 import { i18nChangeLanguage, IDomEditor, IEditorConfig } from '@wangeditor/editor'
@@ -8,6 +8,8 @@ import { ElMessage } from 'element-plus'
 import { useLocaleStore } from '@/store/modules/locale'
 import { getAccessToken, getTenantId } from '@/utils/auth'
 
+defineOptions({ name: 'Editor' })
+
 type InsertFnType = (url: string, alt: string, href: string) => void
 
 const localeStore = useLocaleStore()

+ 3 - 1
src/components/Error/src/Error.vue

@@ -1,9 +1,11 @@
-<script lang="ts" name="Error" setup>
+<script lang="ts" setup>
 import pageError from '@/assets/svgs/404.svg'
 import networkError from '@/assets/svgs/500.svg'
 import noPermission from '@/assets/svgs/403.svg'
 import { propTypes } from '@/utils/propTypes'
 
+defineOptions({ name: 'Error' })
+
 interface ErrorMap {
   url: string
   message: string

+ 3 - 1
src/components/IFrame/src/IFrame.vue

@@ -1,6 +1,8 @@
-<script lang="ts" name="IFrame" setup>
+<script lang="ts" setup>
 import { propTypes } from '@/utils/propTypes'
 
+defineOptions({ name: 'IFrame' })
+
 const props = defineProps({
   src: propTypes.string.def('')
 })

+ 3 - 1
src/components/Icon/src/Icon.vue

@@ -1,8 +1,10 @@
-<script lang="ts" name="Icon" setup>
+<script lang="ts" setup>
 import { propTypes } from '@/utils/propTypes'
 import Iconify from '@purge-icons/generated'
 import { useDesign } from '@/hooks/web/useDesign'
 
+defineOptions({ name: 'Icon' })
+
 const { getPrefixCls } = useDesign()
 
 const prefixCls = getPrefixCls('icon')

+ 7 - 5
src/components/Icon/src/IconSelect.vue

@@ -1,8 +1,10 @@
-<script lang="ts" name="IconSelect" setup>
+<script lang="ts" setup>
 import { CSSProperties } from 'vue'
 import { cloneDeep } from 'lodash-es'
 import { IconJson } from '@/components/Icon/src/data'
 
+defineOptions({ name: 'IconSelect' })
+
 type ParameterCSSProperties = (item?: string) => CSSProperties | undefined
 
 const props = defineProps({
@@ -189,10 +191,10 @@ watch(
 
 .icon-item {
   &:hover {
-    border-color: var(--el-color-primary);
     color: var(--el-color-primary);
-    transition: all 0.4s;
+    border-color: var(--el-color-primary);
     transform: scaleX(1.05);
+    transition: all 0.4s;
   }
 }
 
@@ -213,15 +215,15 @@ watch(
 }
 
 :deep(.el-tabs__item) {
+  height: 30px;
   font-size: 12px;
   font-weight: normal;
-  height: 30px;
   line-height: 30px;
 }
 
 :deep(.el-tabs__header),
 :deep(.el-tabs__nav-wrap) {
-  margin: 0;
   position: static;
+  margin: 0;
 }
 </style>

+ 3 - 1
src/components/ImageViewer/src/ImageViewer.vue

@@ -1,7 +1,9 @@
-<script lang="ts" name="ImageViewer" setup>
+<script lang="ts" setup>
 import { PropType } from 'vue'
 import { propTypes } from '@/utils/propTypes'
 
+defineOptions({ name: 'ImageViewer' })
+
 const props = defineProps({
   urlList: {
     type: Array as PropType<string[]>,

+ 3 - 1
src/components/Infotip/src/Infotip.vue

@@ -1,9 +1,11 @@
-<script lang="ts" name="InfoTip" setup>
+<script lang="ts" setup>
 import { PropType } from 'vue'
 import { useDesign } from '@/hooks/web/useDesign'
 import { propTypes } from '@/utils/propTypes'
 import { TipSchema } from '@/types/infoTip'
 
+defineOptions({ name: 'InfoTip' })
+
 const { getPrefixCls } = useDesign()
 
 const prefixCls = getPrefixCls('infotip')

+ 4 - 2
src/components/InputPassword/src/InputPassword.vue

@@ -1,10 +1,12 @@
-<script lang="ts" name="InputPassword" setup>
+<script lang="ts" setup>
 import { propTypes } from '@/utils/propTypes'
 import { useConfigGlobal } from '@/hooks/web/useConfigGlobal'
 import type { ZxcvbnResult } from '@zxcvbn-ts/core'
 import { zxcvbn } from '@zxcvbn-ts/core'
 import { useDesign } from '@/hooks/web/useDesign'
 
+defineOptions({ name: 'InputPassword' })
+
 const { getPrefixCls } = useDesign()
 
 const prefixCls = getPrefixCls('input-password')
@@ -94,7 +96,7 @@ $prefix-cls: #{$namespace}-input-password;
       background-color: transparent;
       border-color: var(--el-color-white);
       border-style: solid;
-      border-width: 0 5px 0 5px;
+      border-width: 0 5px;
       content: '';
     }
 

+ 3 - 1
src/components/Pagination/index.vue

@@ -14,9 +14,11 @@
     @current-change="handleCurrentChange"
   />
 </template>
-<script name="Pagination" setup>
+<script setup lang="ts">
 import { computed } from 'vue'
 
+defineOptions({ name: 'Pagination' })
+
 const props = defineProps({
   // 总条目数
   total: {

+ 4 - 2
src/components/Qrcode/src/Qrcode.vue

@@ -1,4 +1,4 @@
-<script lang="ts" name="Qrcode" setup>
+<script lang="ts" setup>
 import { computed, nextTick, PropType, ref, unref, watch } from 'vue'
 import QRCode, { QRCodeRenderersOptions } from 'qrcode'
 import { cloneDeep } from 'lodash-es'
@@ -7,6 +7,8 @@ import { useDesign } from '@/hooks/web/useDesign'
 import { isString } from '@/utils/is'
 import { QrcodeLogo } from '@/types/qrcode'
 
+defineOptions({ name: 'Qrcode' })
+
 const props = defineProps({
   // img 或者 canvas,img不支持logo嵌套
   tag: propTypes.string.validate((v: string) => ['canvas', 'img'].includes(v)).def('canvas'),
@@ -241,7 +243,7 @@ $prefix-cls: #{$namespace}-qrcode;
 
 .#{$prefix-cls} {
   &--disabled {
-    background: rgba(255, 255, 255, 0.95);
+    background: rgb(255 255 255 / 95%);
 
     & > div {
       transform: translate(-50%, -50%);

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

@@ -1,4 +1,4 @@
-<script lang="ts" name="Search" setup>
+<script lang="ts" setup>
 import { PropType } from 'vue'
 import { propTypes } from '@/utils/propTypes'
 
@@ -7,6 +7,8 @@ import { findIndex } from '@/utils'
 import { cloneDeep } from 'lodash-es'
 import { FormSchema } from '@/types/form'
 
+defineOptions({ name: 'Search' })
+
 const { t } = useI18n()
 
 const props = defineProps({

+ 3 - 1
src/components/Sticky/src/Sticky.vue

@@ -1,8 +1,10 @@
-<script lang="ts" name="Sticky" setup>
+<script lang="ts" setup>
 import { propTypes } from '@/utils/propTypes'
 import { isClient, useEventListener, useWindowSize } from '@vueuse/core'
 import type { CSSProperties } from 'vue'
 
+defineOptions({ name: 'Sticky' })
+
 const props = defineProps({
   // 距离顶部或者底部的距离(单位px)
   offset: propTypes.number.def(0),

+ 3 - 1
src/components/Tooltip/src/Tooltip.vue

@@ -1,6 +1,8 @@
-<script lang="ts" name="Tooltip" setup>
+<script lang="ts" setup>
 import { propTypes } from '@/utils/propTypes'
 
+defineOptions({ name: 'Tooltip' })
+
 defineProps({
   titel: propTypes.string.def(''),
   message: propTypes.string.def(''),

+ 7 - 1
src/components/UploadFile/src/UploadFile.vue

@@ -32,13 +32,15 @@
     </el-upload>
   </div>
 </template>
-<script setup lang="ts" name="UploadFile">
+<script setup lang="ts">
 import { PropType } from 'vue'
 
 import { propTypes } from '@/utils/propTypes'
 import { getAccessToken, getTenantId } from '@/utils/auth'
 import type { UploadInstance, UploadUserFile, UploadProps, UploadRawFile } from 'element-plus'
 
+defineOptions({ name: 'UploadFile' })
+
 const message = useMessage() // 消息弹窗
 const emit = defineEmits(['update:modelValue'])
 
@@ -143,21 +145,25 @@ const listToString = (list: UploadUserFile[], separator?: string) => {
 .upload-file-uploader {
   margin-bottom: 5px;
 }
+
 :deep(.upload-file-list .el-upload-list__item) {
   border: 1px solid #e4e7ed;
   line-height: 2;
   margin-bottom: 10px;
   position: relative;
 }
+
 :deep(.el-upload-list__item-file-name) {
   max-width: 250px;
 }
+
 :deep(.upload-file-list .ele-upload-list__item-content) {
   display: flex;
   justify-content: space-between;
   align-items: center;
   color: inherit;
 }
+
 :deep(.ele-upload-list__item-content-action .el-link) {
   margin-right: 10px;
 }

+ 24 - 4
src/components/UploadFile/src/UploadImg.vue

@@ -50,13 +50,15 @@
   </div>
 </template>
 
-<script setup lang="ts" name="UploadImg">
+<script setup lang="ts">
 import type { UploadProps } from 'element-plus'
 
 import { generateUUID } from '@/utils'
 import { propTypes } from '@/utils/propTypes'
 import { getAccessToken, getTenantId } from '@/utils/auth'
 
+defineOptions({ name: 'UploadImg' })
+
 type FileTypes =
   | 'image/apng'
   | 'image/bmp'
@@ -79,7 +81,7 @@ const props = defineProps({
   fileType: propTypes.array.def(['image/jpeg', 'image/png', 'image/gif']), // 图片类型限制 ==> 非必传(默认为 ["image/jpeg", "image/png", "image/gif"])
   height: propTypes.string.def('150px'), // 组件高度 ==> 非必传(默认为 150px)
   width: propTypes.string.def('150px'), // 组件宽度 ==> 非必传(默认为 150px)
-  borderRadius: propTypes.string.def('8px') // 组件边框圆角 ==> 非必传(默认为 8px)
+  borderradius: propTypes.string.def('8px') // 组件边框圆角 ==> 非必传(默认为 8px)
 })
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
@@ -130,29 +132,34 @@ const uploadError = () => {
     :deep(.el-upload),
     :deep(.el-upload-dragger) {
       border: 1px dashed var(--el-color-danger) !important;
+
       &:hover {
         border-color: var(--el-color-primary) !important;
       }
     }
   }
 }
+
 :deep(.disabled) {
   .el-upload,
   .el-upload-dragger {
     cursor: not-allowed !important;
     background: var(--el-disabled-bg-color);
     border: 1px dashed var(--el-border-color-darker) !important;
+
     &:hover {
       border: 1px dashed var(--el-border-color-darker) !important;
     }
   }
 }
+
 .upload-box {
   .no-border {
     :deep(.el-upload) {
       border: none !important;
     }
   }
+
   :deep(.upload) {
     .el-upload {
       position: relative;
@@ -163,14 +170,17 @@ const uploadError = () => {
       height: v-bind(height);
       overflow: hidden;
       border: 1px dashed var(--el-border-color-darker);
-      border-radius: v-bind(borderRadius);
+      border-radius: v-bind(borderradius);
       transition: var(--el-transition-duration-fast);
+
       &:hover {
         border-color: var(--el-color-primary);
+
         .upload-handle {
           opacity: 1;
         }
       }
+
       .el-upload-dragger {
         display: flex;
         align-items: center;
@@ -181,20 +191,24 @@ const uploadError = () => {
         overflow: hidden;
         background-color: transparent;
         border: 1px dashed var(--el-border-color-darker);
-        border-radius: v-bind(borderRadius);
+        border-radius: v-bind(borderradius);
+
         &:hover {
           border: 1px dashed var(--el-color-primary);
         }
       }
+
       .el-upload-dragger.is-dragover {
         background-color: var(--el-color-primary-light-9);
         border: 2px dashed var(--el-color-primary) !important;
       }
+
       .upload-image {
         width: 100%;
         height: 100%;
         object-fit: contain;
       }
+
       .upload-empty {
         position: relative;
         display: flex;
@@ -204,11 +218,13 @@ const uploadError = () => {
         font-size: 12px;
         line-height: 30px;
         color: var(--el-color-info);
+
         .el-icon {
           font-size: 28px;
           color: var(--el-text-color-secondary);
         }
       }
+
       .upload-handle {
         position: absolute;
         top: 0;
@@ -223,6 +239,7 @@ const uploadError = () => {
         background: rgb(0 0 0 / 60%);
         opacity: 0;
         transition: var(--el-transition-duration-fast);
+
         .handle-icon {
           display: flex;
           flex-direction: column;
@@ -230,11 +247,13 @@ const uploadError = () => {
           justify-content: center;
           padding: 0 6%;
           color: aliceblue;
+
           .el-icon {
             margin-bottom: 40%;
             font-size: 130%;
             line-height: 130%;
           }
+
           span {
             font-size: 85%;
             line-height: 85%;
@@ -243,6 +262,7 @@ const uploadError = () => {
       }
     }
   }
+
   .el-upload__tip {
     line-height: 18px;
     text-align: center;

+ 7 - 5
src/components/UploadFile/src/UploadImgs.vue

@@ -45,7 +45,7 @@
     />
   </div>
 </template>
-<script lang="ts" name="UploadImgs" setup>
+<script lang="ts" setup>
 import { PropType } from 'vue'
 import type { UploadFile, UploadProps, UploadUserFile } from 'element-plus'
 import { ElNotification } from 'element-plus'
@@ -53,6 +53,8 @@ import { ElNotification } from 'element-plus'
 import { propTypes } from '@/utils/propTypes'
 import { getAccessToken, getTenantId } from '@/utils/auth'
 
+defineOptions({ name: 'UploadImgs' })
+
 const message = useMessage() // 消息弹窗
 
 type FileTypes =
@@ -80,7 +82,7 @@ const props = defineProps({
   fileType: propTypes.array.def(['image/jpeg', 'image/png', 'image/gif']), // 图片类型限制 ==> 非必传(默认为 ["image/jpeg", "image/png", "image/gif"])
   height: propTypes.string.def('150px'), // 组件高度 ==> 非必传(默认为 150px)
   width: propTypes.string.def('150px'), // 组件宽度 ==> 非必传(默认为 150px)
-  borderRadius: propTypes.string.def('8px') // 组件边框圆角 ==> 非必传(默认为 8px)
+  borderradius: propTypes.string.def('8px') // 组件边框圆角 ==> 非必传(默认为 8px)
 })
 
 const uploadHeaders = ref({
@@ -88,7 +90,7 @@ const uploadHeaders = ref({
   'tenant-id': getTenantId()
 })
 
-const fileList = ref<UploadUserFile[]>()
+const fileList = ref<UploadUserFile[]>([])
 // fix: 改为动态监听赋值解决图片回显问题
 watch(
   () => props.modelValue,
@@ -216,7 +218,7 @@ const handlePictureCardPreview: UploadProps['onPreview'] = (uploadFile) => {
       padding: 0;
       overflow: hidden;
       border: 1px dashed var(--el-border-color-darker);
-      border-radius: v-bind(borderRadius);
+      border-radius: v-bind(borderradius);
 
       &:hover {
         border: 1px dashed var(--el-color-primary);
@@ -233,7 +235,7 @@ const handlePictureCardPreview: UploadProps['onPreview'] = (uploadFile) => {
       width: v-bind(width);
       height: v-bind(height);
       background-color: transparent;
-      border-radius: v-bind(borderRadius);
+      border-radius: v-bind(borderradius);
     }
 
     .upload-image {

File diff suppressed because it is too large
+ 17 - 27
src/components/Verifition/src/Verify.vue


+ 1 - 1
src/components/Verifition/src/Verify/VerifyPoints.vue

@@ -57,7 +57,7 @@
     </div>
   </div>
 </template>
-<script name="VerifyPoints" setup type="text/babel">
+<script setup type="text/babel">
 /**
  * VerifyPoints
  * @description 点选

+ 1 - 1
src/components/Verifition/src/Verify/VerifySlide.vue

@@ -71,7 +71,7 @@
     </div>
   </div>
 </template>
-<script name="VerifySlide" setup type="text/babel">
+<script setup type="text/babel">
 /**
  * VerifySlide
  * @description 滑块

+ 3 - 1
src/components/XButton/src/XButton.vue

@@ -1,7 +1,9 @@
-<script lang="ts" name="XButton" setup>
+<script lang="ts" setup>
 import { PropType } from 'vue'
 import { propTypes } from '@/utils/propTypes'
 
+defineOptions({ name: 'XButton' })
+
 const props = defineProps({
   modelValue: propTypes.bool.def(false),
   loading: propTypes.bool.def(false),

+ 3 - 1
src/components/XButton/src/XTextButton.vue

@@ -1,7 +1,9 @@
-<script lang="ts" name="XTextButton" setup>
+<script lang="ts" setup>
 import { propTypes } from '@/utils/propTypes'
 import { PropType } from 'vue'
 
+defineOptions({ name: 'XTextButton' })
+
 const props = defineProps({
   modelValue: propTypes.bool.def(false),
   loading: propTypes.bool.def(false),

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

@@ -206,7 +206,7 @@
   </div>
 </template>
 
-<script setup lang="ts" name="MyProcessDesigner">
+<script setup lang="ts">
 // import 'bpmn-js/dist/assets/diagram-js.css' // 左边工具栏以及编辑节点的样式
 // import 'bpmn-js/dist/assets/bpmn-font/css/bpmn.css'
 // import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css'
@@ -244,6 +244,9 @@ import { XmlNode, XmlNodeType, parseXmlString } from 'steady-xml'
 // const eventName = reactive({
 //   name: ''
 // })
+
+defineOptions({ name: 'MyProcessDesigner' })
+
 const bpmnCanvas = ref()
 const refFile = ref()
 const emit = defineEmits([

+ 5 - 1
src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue

@@ -6,10 +6,14 @@
   </div>
 </template>
 
-<script setup lang="ts" name="MyProcessViewer">
+<script setup lang="ts">
 import BpmnViewer from 'bpmn-js/lib/Viewer'
 import DefaultEmptyXML from './plugins/defaultEmpty'
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
+import { formatDate } from '@/utils/formatTime'
+
+defineOptions({ name: 'MyProcessViewer' })
+
 const props = defineProps({
   value: {
     // BPMN XML 字符串

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

@@ -5,9 +5,11 @@
   </div>
 </template>
 
-<script setup lang="ts" name="MyProcessPalette">
+<script setup lang="ts">
 import { assign } from 'min-dash'
 
+defineOptions({ name: 'MyProcessPalette' })
+
 const bpmnInstances = () => (window as any).bpmnInstances
 const addTask = (event, options: any = {}) => {
   const ElementFactory = bpmnInstances().elementFactory

+ 4 - 1
src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue

@@ -62,7 +62,7 @@
     </el-collapse>
   </div>
 </template>
-<script setup lang="ts" name="MyPropertiesPanel">
+<script setup lang="ts">
 import ElementBaseInfo from './base/ElementBaseInfo.vue'
 import ElementOtherConfig from './other/ElementOtherConfig.vue'
 import ElementTask from './task/ElementTask.vue'
@@ -73,6 +73,9 @@ import ElementListeners from './listeners/ElementListeners.vue'
 import ElementProperties from './properties/ElementProperties.vue'
 // import ElementForm from './form/ElementForm.vue'
 import UserTaskListeners from './listeners/UserTaskListeners.vue'
+
+defineOptions({ name: 'MyPropertiesPanel' })
+
 /**
  * 侧边栏
  * @Author MiyueFE

+ 5 - 2
src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue

@@ -7,8 +7,9 @@
           href="https://doc.iocoder.cn/bpm/#_3-%E6%B5%81%E7%A8%8B%E5%9B%BE%E7%A4%BA%E4%BE%8B"
           type="danger"
           target="_blank"
-          >如何实现实现会签、或签?</el-link
         >
+          如何实现实现会签、或签?
+        </el-link>
         <el-form-item label="流程标识" prop="id">
           <el-input
             v-model="needProps.id"
@@ -37,7 +38,9 @@
     </el-form>
   </div>
 </template>
-<script setup lang="ts" name="ElementBaseInfo">
+<script setup lang="ts">
+defineOptions({ name: 'ElementBaseInfo' })
+
 const props = defineProps({
   businessObject: {
     type: Object,

+ 3 - 1
src/components/bpmnProcessDesigner/package/penal/flow-condition/FlowCondition.vue

@@ -62,7 +62,9 @@
   </div>
 </template>
 
-<script setup lang="ts" name="FlowCondition">
+<script setup lang="ts">
+defineOptions({ name: 'FlowCondition' })
+
 const props = defineProps({
   businessObject: Object,
   type: String

+ 3 - 1
src/components/bpmnProcessDesigner/package/penal/form/ElementForm.vue

@@ -222,7 +222,9 @@
   </div>
 </template>
 
-<script setup lang="ts" name="ElementForm">
+<script setup lang="ts">
+defineOptions({ name: 'ElementForm' })
+
 const props = defineProps({
   id: String,
   type: String

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

@@ -241,10 +241,13 @@
     </el-dialog>
   </div>
 </template>
-<script setup lang="ts" name="ElementListeners">
+<script setup lang="ts">
 import { ElMessageBox } from 'element-plus'
 import { createListenerObject, updateElementExtensions } from '../../utils'
 import { initListenerType, initListenerForm, listenerType, fieldType } from './utilSelf'
+
+defineOptions({ name: 'ElementListeners' })
+
 const props = defineProps({
   id: String,
   type: String

+ 4 - 1
src/components/bpmnProcessDesigner/package/penal/listeners/UserTaskListeners.vue

@@ -287,10 +287,13 @@
     </el-dialog>
   </div>
 </template>
-<script setup lang="ts" name="UserTaskListeners">
+<script setup lang="ts">
 import { ElMessageBox } from 'element-plus'
 import { createListenerObject, updateElementExtensions } from '../../utils'
 import { initListenerForm, initListenerType, eventType, listenerType, fieldType } from './utilSelf'
+
+defineOptions({ name: 'UserTaskListeners' })
+
 const props = defineProps({
   id: String,
   type: String

+ 3 - 1
src/components/bpmnProcessDesigner/package/penal/multi-instance/ElementMultiInstance.vue

@@ -66,7 +66,9 @@
   </div>
 </template>
 
-<script setup lang="ts" name="ElementMultiInstance">
+<script setup lang="ts">
+defineOptions({ name: 'ElementMultiInstance' })
+
 const props = defineProps({
   businessObject: Object,
   type: String

+ 2 - 1
src/components/bpmnProcessDesigner/package/penal/other/ElementOtherConfig.vue

@@ -16,7 +16,8 @@
   </div>
 </template>
 
-<script setup lang="ts" name="ElementOtherConfig">
+<script setup lang="ts">
+defineOptions({ name: 'ElementOtherConfig' })
 const props = defineProps({
   id: String
 })

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

@@ -6,17 +6,18 @@
       <el-table-column label="属性值" prop="value" min-width="100px" show-overflow-tooltip />
       <el-table-column label="操作" width="110px">
         <template #default="scope">
-          <el-button link @click="openAttributesForm(scope.row, scope.$index)" size="small"
-            >编辑</el-button
-          >
+          <el-button link @click="openAttributesForm(scope.row, scope.$index)" size="small">
+            编辑
+          </el-button>
           <el-divider direction="vertical" />
           <el-button
             link
             size="small"
             style="color: #ff4d4f"
             @click="removeAttributes(scope.row, scope.$index)"
-            >移除</el-button
           >
+            移除
+          </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -52,8 +53,9 @@
   </div>
 </template>
 
-<script setup lang="ts" name="ElementProperties">
+<script setup lang="ts">
 import { ElMessageBox } from 'element-plus'
+defineOptions({ name: 'ElementProperties' })
 const props = defineProps({
   id: String,
   type: String

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

@@ -1,7 +1,7 @@
 <template>
   <div class="panel-tab__content">
     <div class="panel-tab__content--title">
-      <span><Icon icon="ep:menu" style="margin-right: 8px; color: #555555" />消息列表</span>
+      <span><Icon icon="ep:menu" style="margin-right: 8px; color: #555" />消息列表</span>
       <XButton type="primary" title="创建新消息" preIcon="ep:plus" @click="openModel('message')" />
     </div>
     <el-table :data="messageList" border>
@@ -11,9 +11,9 @@
     </el-table>
     <div
       class="panel-tab__content--title"
-      style="padding-top: 8px; margin-top: 8px; border-top: 1px solid #eeeeee"
+      style="padding-top: 8px; margin-top: 8px; border-top: 1px solid #eee"
     >
-      <span><Icon icon="ep:menu" style="margin-right: 8px; color: #555555" />信号列表</span>
+      <span><Icon icon="ep:menu" style="margin-right: 8px; color: #555" />信号列表</span>
       <XButton type="primary" title="创建新信号" preIcon="ep:plus" @click="openModel('signal')" />
     </div>
     <el-table :data="signalList" border>
@@ -45,7 +45,9 @@
     </el-dialog>
   </div>
 </template>
-<script setup lang="ts" name="SignalAndMassage">
+<script setup lang="ts">
+defineOptions({ name: 'SignalAndMassage' })
+
 const message = useMessage()
 const signalList = ref<any[]>([])
 const messageList = ref<any[]>([])

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

@@ -20,11 +20,13 @@
   </div>
 </template>
 
-<script setup lang="ts" name="ElementTaskConfig">
+<script setup lang="ts">
 import UserTask from './task-components/UserTask.vue'
 import ScriptTask from './task-components/ScriptTask.vue'
 import ReceiveTask from './task-components/ReceiveTask.vue'
 
+defineOptions({ name: 'ElementTaskConfig' })
+
 const props = defineProps({
   id: String,
   type: String

+ 2 - 1
src/components/bpmnProcessDesigner/package/penal/task/task-components/ReceiveTask.vue

@@ -48,7 +48,8 @@
   </div>
 </template>
 
-<script setup lang="ts" name="ReceiveTask">
+<script setup lang="ts">
+defineOptions({ name: 'ReceiveTask' })
 const props = defineProps({
   id: String,
   type: String

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

@@ -44,7 +44,8 @@
   </div>
 </template>
 
-<script setup lang="ts" name="ScriptTask">
+<script setup lang="ts">
+defineOptions({ name: 'ScriptTask' })
 const props = defineProps({
   id: String,
   type: String

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

@@ -37,7 +37,8 @@
   </div>
 </template>
 
-<script setup lang="ts" name="UserTask">
+<script setup lang="ts">
+defineOptions({ name: 'UserTask' })
 const props = defineProps({
   id: String,
   type: String

+ 3 - 1
src/layout/components/AppView.vue

@@ -1,8 +1,10 @@
-<script lang="ts" name="AppView" setup>
+<script lang="ts" setup>
 import { useTagsViewStore } from '@/store/modules/tagsView'
 import { useAppStore } from '@/store/modules/app'
 import { Footer } from '@/layout/components/Footer'
 
+defineOptions({ name: 'AppView' })
+
 const appStore = useAppStore()
 
 const layout = computed(() => appStore.getLayout)

+ 3 - 1
src/layout/components/Collapse/src/Collapse.vue

@@ -1,8 +1,10 @@
-<script lang="ts" name="Collapse" setup>
+<script lang="ts" setup>
 import { useAppStore } from '@/store/modules/app'
 import { propTypes } from '@/utils/propTypes'
 import { useDesign } from '@/hooks/web/useDesign'
 
+defineOptions({ name: 'Collapse' })
+
 const { getPrefixCls } = useDesign()
 
 const prefixCls = getPrefixCls('collapse')

+ 3 - 1
src/layout/components/ContextMenu/src/ContextMenu.vue

@@ -1,4 +1,4 @@
-<script lang="ts" name="ContextMenu" setup>
+<script lang="ts" setup>
 import { PropType } from 'vue'
 
 import { useDesign } from '@/hooks/web/useDesign'
@@ -6,6 +6,8 @@ import type { RouteLocationNormalizedLoaded } from 'vue-router'
 import { contextMenuSchema } from '@/types/contextMenu'
 import type { ElDropdown } from 'element-plus'
 
+defineOptions({ name: 'ContextMenu' })
+
 const { getPrefixCls } = useDesign()
 
 const prefixCls = getPrefixCls('context-menu')

+ 3 - 1
src/layout/components/Footer/src/Footer.vue

@@ -1,7 +1,9 @@
-<script lang="ts" name="Footer" setup>
+<script lang="ts" setup>
 import { useAppStore } from '@/store/modules/app'
 import { useDesign } from '@/hooks/web/useDesign'
 
+defineOptions({ name: 'Footer' })
+
 const { getPrefixCls } = useDesign()
 
 const prefixCls = getPrefixCls('footer')

+ 3 - 1
src/layout/components/LocaleDropdown/src/LocaleDropdown.vue

@@ -1,9 +1,11 @@
-<script lang="ts" name="LocaleDropdown" setup>
+<script lang="ts" setup>
 import { useLocaleStore } from '@/store/modules/locale'
 import { useLocale } from '@/hooks/web/useLocale'
 import { propTypes } from '@/utils/propTypes'
 import { useDesign } from '@/hooks/web/useDesign'
 
+defineOptions({ name: 'LocaleDropdown' })
+
 const { getPrefixCls } = useDesign()
 
 const prefixCls = getPrefixCls('locale-dropdown')

+ 3 - 1
src/layout/components/Logo/src/Logo.vue

@@ -1,8 +1,10 @@
-<script lang="ts" name="Logo" setup>
+<script lang="ts" setup>
 import { computed, onMounted, ref, unref, watch } from 'vue'
 import { useAppStore } from '@/store/modules/app'
 import { useDesign } from '@/hooks/web/useDesign'
 
+defineOptions({ name: 'Logo' })
+
 const { getPrefixCls } = useDesign()
 
 const prefixCls = getPrefixCls('logo')

+ 3 - 1
src/layout/components/Message/src/Message.vue

@@ -1,7 +1,9 @@
-<script lang="ts" name="Message" setup>
+<script lang="ts" setup>
 import { formatDate } from '@/utils/formatTime'
 import * as NotifyMessageApi from '@/api/system/notify/message'
 
+defineOptions({ name: 'Message' })
+
 const { push } = useRouter()
 const activeName = ref('notice')
 const unreadCount = ref(0) // 未读消息数量

+ 3 - 1
src/layout/components/Screenfull/src/Screenfull.vue

@@ -1,9 +1,11 @@
-<script lang="ts" name="ScreenFull" setup>
+<script lang="ts" setup>
 import { Icon } from '@/components/Icon'
 import { useFullscreen } from '@vueuse/core'
 import { propTypes } from '@/utils/propTypes'
 import { useDesign } from '@/hooks/web/useDesign'
 
+defineOptions({ name: 'ScreenFull' })
+
 const { getPrefixCls } = useDesign()
 
 const prefixCls = getPrefixCls('screenfull')

+ 3 - 1
src/layout/components/Setting/src/Setting.vue

@@ -1,4 +1,4 @@
-<script lang="ts" name="Setting" setup>
+<script lang="ts" setup>
 import { ElMessage } from 'element-plus'
 import { useClipboard, useCssVar } from '@vueuse/core'
 
@@ -13,6 +13,8 @@ import ColorRadioPicker from './components/ColorRadioPicker.vue'
 import InterfaceDisplay from './components/InterfaceDisplay.vue'
 import LayoutRadioPicker from './components/LayoutRadioPicker.vue'
 
+defineOptions({ name: 'Setting' })
+
 const { t } = useI18n()
 const appStore = useAppStore()
 

+ 3 - 1
src/layout/components/Setting/src/components/ColorRadioPicker.vue

@@ -1,8 +1,10 @@
-<script lang="ts" name="ColorRadioPicker" setup>
+<script lang="ts" setup>
 import { PropType } from 'vue'
 import { propTypes } from '@/utils/propTypes'
 import { useDesign } from '@/hooks/web/useDesign'
 
+defineOptions({ name: 'ColorRadioPicker' })
+
 const { getPrefixCls } = useDesign()
 
 const prefixCls = getPrefixCls('color-radio-picker')

+ 3 - 1
src/layout/components/Setting/src/components/InterfaceDisplay.vue

@@ -1,10 +1,12 @@
-<script lang="ts" name="InterfaceDisplay" setup>
+<script lang="ts" setup>
 import { setCssVar } from '@/utils'
 
 import { useDesign } from '@/hooks/web/useDesign'
 import { useWatermark } from '@/hooks/web/useWatermark'
 import { useAppStore } from '@/store/modules/app'
 
+defineOptions({ name: 'InterfaceDisplay' })
+
 const { t } = useI18n()
 const { getPrefixCls } = useDesign()
 const { setWatermark } = useWatermark()

+ 11 - 9
src/layout/components/Setting/src/components/LayoutRadioPicker.vue

@@ -1,7 +1,9 @@
-<script lang="ts" name="LayoutRadioPicker" setup>
+<script lang="ts" setup>
 import { useAppStore } from '@/store/modules/app'
 import { useDesign } from '@/hooks/web/useDesign'
 
+defineOptions({ name: 'LayoutRadioPicker' })
+
 const { getPrefixCls } = useDesign()
 
 const prefixCls = getPrefixCls('layout-radio-picker')
@@ -66,7 +68,7 @@ $prefix-cls: #{$namespace}-layout-radio-picker;
     border: 2px solid #e5e7eb;
     border-radius: 4px;
 
-    &:before {
+    &::before {
       position: absolute;
       top: 0;
       left: 0;
@@ -78,14 +80,14 @@ $prefix-cls: #{$namespace}-layout-radio-picker;
       content: '';
     }
 
-    &:after {
+    &::after {
       position: absolute;
       top: 0;
       left: 0;
       width: 100%;
       height: 25%;
       background-color: #fff;
-      border-radius: 4px 4px 0 4px;
+      border-radius: 4px 4px 0;
       content: '';
     }
   }
@@ -94,7 +96,7 @@ $prefix-cls: #{$namespace}-layout-radio-picker;
     border: 2px solid #e5e7eb;
     border-radius: 4px;
 
-    &:before {
+    &::before {
       position: absolute;
       top: 0;
       left: 0;
@@ -106,7 +108,7 @@ $prefix-cls: #{$namespace}-layout-radio-picker;
       content: '';
     }
 
-    &:after {
+    &::after {
       position: absolute;
       top: 0;
       left: 0;
@@ -122,7 +124,7 @@ $prefix-cls: #{$namespace}-layout-radio-picker;
     border: 2px solid #e5e7eb;
     border-radius: 4px;
 
-    &:before {
+    &::before {
       position: absolute;
       top: 0;
       left: 0;
@@ -139,7 +141,7 @@ $prefix-cls: #{$namespace}-layout-radio-picker;
     border: 2px solid #e5e7eb;
     border-radius: 4px;
 
-    &:before {
+    &::before {
       position: absolute;
       top: 0;
       left: 0;
@@ -151,7 +153,7 @@ $prefix-cls: #{$namespace}-layout-radio-picker;
       content: '';
     }
 
-    &:after {
+    &::after {
       position: absolute;
       top: 0;
       left: 0;

+ 3 - 1
src/layout/components/SizeDropdown/src/SizeDropdown.vue

@@ -1,10 +1,12 @@
-<script lang="ts" name="SizeDropdown" setup>
+<script lang="ts" setup>
 import { useAppStore } from '@/store/modules/app'
 
 import { propTypes } from '@/utils/propTypes'
 import { useDesign } from '@/hooks/web/useDesign'
 import { ElementPlusSize } from '@/types/elementPlus'
 
+defineOptions({ name: 'SizeDropdown' })
+
 const { getPrefixCls } = useDesign()
 
 const prefixCls = getPrefixCls('size-dropdown')

+ 7 - 5
src/layout/components/TagsView/src/TagsView.vue

@@ -1,4 +1,4 @@
-<script lang="ts" name="TagsView" setup>
+<script lang="ts" setup>
 import type { RouteLocationNormalizedLoaded, RouterLinkProps } from 'vue-router'
 import { usePermissionStore } from '@/store/modules/permission'
 import { useTagsViewStore } from '@/store/modules/tagsView'
@@ -11,6 +11,8 @@ import { ElScrollbar } from 'element-plus'
 import { useScrollTo } from '@/hooks/event/useScrollTo'
 import { useTemplateRefsList } from '@vueuse/core'
 
+defineOptions({ name: 'TagsView' })
+
 const { getPrefixCls } = useDesign()
 
 const prefixCls = getPrefixCls('tags-view')
@@ -483,7 +485,7 @@ $prefix-cls: #{$namespace}-tags-view;
       }
     }
 
-    &:after {
+    &::after {
       position: absolute;
       top: 1px;
       left: 0;
@@ -502,7 +504,7 @@ $prefix-cls: #{$namespace}-tags-view;
     padding-right: 16px;
     margin-left: 4px;
     font-size: 12px;
-    border-radius: 3px 3px 3px 3px;
+    border-radius: 3px;
     cursor: pointer;
     border: 1px solid #d9d9d9;
 
@@ -549,7 +551,7 @@ $prefix-cls: #{$namespace}-tags-view;
         }
       }
 
-      &:after {
+      &::after {
         border-right: 1px solid var(--el-border-color);
         border-left: 1px solid var(--el-border-color);
       }
@@ -561,7 +563,7 @@ $prefix-cls: #{$namespace}-tags-view;
       height: calc(100% - 4px);
       padding-right: 16px;
       font-size: 12px;
-      border-radius: 3px 3px 3px 3px;
+      border-radius: 3px;
       cursor: pointer;
       border: 1px solid var(--el-border-color);
     }

+ 3 - 1
src/layout/components/ThemeSwitch/src/ThemeSwitch.vue

@@ -1,8 +1,10 @@
-<script lang="ts" name="ThemeSwitch" setup>
+<script lang="ts" setup>
 import { useAppStore } from '@/store/modules/app'
 import { useIcon } from '@/hooks/web/useIcon'
 import { useDesign } from '@/hooks/web/useDesign'
 
+defineOptions({ name: 'ThemeSwitch' })
+
 const { getPrefixCls } = useDesign()
 
 const prefixCls = getPrefixCls('theme-switch')

+ 3 - 1
src/layout/components/UserInfo/src/UserInfo.vue

@@ -1,4 +1,4 @@
-<script lang="ts" name="UserInfo" setup>
+<script lang="ts" setup>
 import { ElMessageBox } from 'element-plus'
 
 import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
@@ -7,6 +7,8 @@ import avatarImg from '@/assets/imgs/avatar.gif'
 import { useUserStore } from '@/store/modules/user'
 import { useTagsViewStore } from '@/store/modules/tagsView'
 
+defineOptions({ name: 'UserInfo' })
+
 const { t } = useI18n()
 
 const { wsCache } = useCache()

+ 3 - 1
src/views/Error/403.vue

@@ -1,6 +1,8 @@
 <template>
   <Error type="403" @error-click="push('/')" />
 </template>
-<script lang="ts" name="Error403" setup>
+<script lang="ts" setup>
+defineOptions({ name: 'Error403' })
+
 const { push } = useRouter()
 </script>

+ 2 - 1
src/views/Error/404.vue

@@ -1,6 +1,7 @@
 <template>
   <Error @error-click="push('/')" />
 </template>
-<script lang="ts" name="Error404" setup>
+<script lang="ts" setup>
+defineOptions({ name: 'Error404' })
 const { push } = useRouter()
 </script>

+ 2 - 1
src/views/Error/500.vue

@@ -1,6 +1,7 @@
 <template>
   <Error type="500" @error-click="push('/')" />
 </template>
-<script lang="ts" name="Error500" setup>
+<script lang="ts" setup>
+defineOptions({ name: 'Error500' })
 const { push } = useRouter()
 </script>

+ 3 - 1
src/views/Home/Index.vue

@@ -160,7 +160,7 @@
     </el-col>
   </el-row>
 </template>
-<script setup lang="ts" name="Home">
+<script setup lang="ts">
 import { set } from 'lodash-es'
 import { EChartsOption } from 'echarts'
 import { formatTime } from '@/utils'
@@ -171,6 +171,8 @@ import avatarImg from '@/assets/imgs/avatar.gif'
 import type { WorkplaceTotal, Project, Notice, Shortcut } from './types'
 import { pieOptions, barOptions } from './echarts-data'
 
+defineOptions({ name: 'Home' })
+
 const { t } = useI18n()
 const userStore = useUserStore()
 const { setWatermark } = useWatermark()

+ 3 - 1
src/views/Home/Index2.vue

@@ -140,7 +140,7 @@
     </el-col>
   </el-row>
 </template>
-<script lang="ts" name="Home2" setup>
+<script lang="ts" setup>
 import { set } from 'lodash-es'
 import { EChartsOption } from 'echarts'
 
@@ -148,6 +148,8 @@ import { useDesign } from '@/hooks/web/useDesign'
 import type { AnalysisTotalTypes } from './types'
 import { barOptions, lineOptions, pieOptions } from './echarts-data'
 
+defineOptions({ name: 'Home2' })
+
 const { t } = useI18n()
 const loading = ref(true)
 const { getPrefixCls } = useDesign()

+ 3 - 1
src/views/Login/Login.vue

@@ -60,7 +60,7 @@
     </div>
   </div>
 </template>
-<script lang="ts" name="Login" setup>
+<script lang="ts" setup>
 import { underlineToHump } from '@/utils'
 
 import { useDesign } from '@/hooks/web/useDesign'
@@ -70,6 +70,8 @@ import { LocaleDropdown } from '@/layout/components/LocaleDropdown'
 
 import { LoginForm, MobileForm, QrCodeForm, RegisterForm, SSOLoginVue } from './components'
 
+defineOptions({ name: 'Login' })
+
 const { t } = useI18n()
 const appStore = useAppStore()
 const { getPrefixCls } = useDesign()

+ 3 - 1
src/views/Login/components/LoginForm.vue

@@ -143,7 +143,7 @@
     </el-row>
   </el-form>
 </template>
-<script lang="ts" name="LoginForm" setup>
+<script lang="ts" setup>
 import { ElLoading } from 'element-plus'
 import LoginFormTitle from './LoginFormTitle.vue'
 import type { RouteLocationNormalizedLoaded } from 'vue-router'
@@ -155,6 +155,8 @@ import { usePermissionStore } from '@/store/modules/permission'
 import * as LoginApi from '@/api/login'
 import { LoginStateEnum, useFormValid, useLoginState } from './useLogin'
 
+defineOptions({ name: 'LoginForm' })
+
 const { t } = useI18n()
 const message = useMessage()
 const iconHouse = useIcon({ icon: 'ep:house' })

+ 3 - 1
src/views/Login/components/LoginFormTitle.vue

@@ -3,9 +3,11 @@
     {{ getFormTitle }}
   </h2>
 </template>
-<script lang="ts" name="LoginFormTitle" setup>
+<script lang="ts" setup>
 import { LoginStateEnum, useLoginState } from './useLogin'
 
+defineOptions({ name: 'LoginFormTitle' })
+
 const { t } = useI18n()
 
 const { getLoginState } = useLoginState()

+ 3 - 1
src/views/Login/components/MobileForm.vue

@@ -92,7 +92,7 @@
     </el-row>
   </el-form>
 </template>
-<script lang="ts" name="MobileForm" setup>
+<script lang="ts" setup>
 import type { RouteLocationNormalizedLoaded } from 'vue-router'
 
 import { useIcon } from '@/hooks/web/useIcon'
@@ -103,6 +103,8 @@ import { getTenantIdByName, sendSmsCode, smsLogin } from '@/api/login'
 import LoginFormTitle from './LoginFormTitle.vue'
 import { LoginStateEnum, useFormValid, useLoginState } from './useLogin'
 
+defineOptions({ name: 'MobileForm' })
+
 const { t } = useI18n()
 const message = useMessage()
 const permissionStore = usePermissionStore()

+ 3 - 1
src/views/Login/components/QrCodeForm.vue

@@ -16,12 +16,14 @@
     </el-col>
   </el-row>
 </template>
-<script lang="ts" name="QrCodeForm" setup>
+<script lang="ts" setup>
 import logoImg from '@/assets/imgs/logo.png'
 
 import LoginFormTitle from './LoginFormTitle.vue'
 import { LoginStateEnum, useLoginState } from './useLogin'
 
+defineOptions({ name: 'QrCodeForm' })
+
 const { t } = useI18n()
 const { handleBackLogin, getLoginState } = useLoginState()
 const getShow = computed(() => unref(getLoginState) === LoginStateEnum.QR_CODE)

+ 3 - 1
src/views/Login/components/RegisterForm.vue

@@ -35,7 +35,7 @@
     </template>
   </Form>
 </template>
-<script lang="ts" name="RegisterForm" setup>
+<script lang="ts" setup>
 import type { FormRules } from 'element-plus'
 
 import { useForm } from '@/hooks/web/useForm'
@@ -44,6 +44,8 @@ import LoginFormTitle from './LoginFormTitle.vue'
 import { LoginStateEnum, useLoginState } from './useLogin'
 import { FormSchema } from '@/types/form'
 
+defineOptions({ name: 'RegisterForm' })
+
 const { t } = useI18n()
 const { required } = useValidator()
 const { register, elFormRef } = useForm()

+ 4 - 1
src/views/Login/components/SSOLogin.vue

@@ -38,11 +38,14 @@
     </div>
   </div>
 </template>
-<script lang="ts" name="SSOLogin" setup>
+<script lang="ts" setup>
 import LoginFormTitle from './LoginFormTitle.vue'
 import * as OAuth2Api from '@/api/login/oauth2'
 import { LoginStateEnum, useLoginState } from './useLogin'
 import type { RouteLocationNormalizedLoaded } from 'vue-router'
+
+defineOptions({ name: 'SSOLogin' })
+
 const route = useRoute() // 路由
 const { currentRoute } = useRouter() // 路由
 const { getLoginState, setLoginState } = useLoginState()

+ 5 - 4
src/views/Profile/components/BasicInfo.vue

@@ -10,10 +10,8 @@
   <XButton :title="t('common.save')" @click="submit()" />
   <XButton :title="t('common.reset')" type="danger" @click="init()" />
 </template>
-<script lang="ts" name="BasicInfo" setup>
+<script lang="ts" setup>
 import type { FormRules } from 'element-plus'
-import { ElMessage } from 'element-plus'
-
 import { FormSchema } from '@/types/form'
 import type { FormExpose } from '@/components/Form'
 import {
@@ -22,7 +20,10 @@ import {
   UserProfileUpdateReqVO
 } from '@/api/system/user/profile'
 
+defineOptions({ name: 'BasicInfo' })
+
 const { t } = useI18n()
+const message = useMessage() // 消息弹窗
 // 表单校验
 const rules = reactive<FormRules>({
   nickname: [{ required: true, message: t('profile.rules.nickname'), trigger: 'blur' }],
@@ -74,7 +75,7 @@ const submit = () => {
     if (valid) {
       const data = unref(formRef)?.formModel as UserProfileUpdateReqVO
       await updateUserProfile(data)
-      ElMessage.success(t('common.updateSuccess'))
+      message.success(t('common.updateSuccess'))
       await init()
     }
   })

+ 5 - 3
src/views/Profile/components/ProfileUser.vue

@@ -46,12 +46,14 @@
     </ul>
   </div>
 </template>
-<script lang="ts" name="ProfileUser" setup>
+<script lang="ts" setup>
 import { formatDate } from '@/utils/formatTime'
 import UserAvatar from './UserAvatar.vue'
 
 import { getUserProfile, ProfileVO } from '@/api/system/user/profile'
 
+defineOptions({ name: 'ProfileUser' })
+
 const { t } = useI18n()
 const userInfo = ref<ProfileVO>()
 const getUserInfo = async () => {
@@ -79,7 +81,7 @@ onMounted(async () => {
 }
 
 .list-group {
-  padding-left: 0px;
+  padding-left: 0;
   list-style: none;
 }
 
@@ -87,7 +89,7 @@ onMounted(async () => {
   border-bottom: 1px solid #e7eaec;
   border-top: 1px solid #e7eaec;
   margin-bottom: -1px;
-  padding: 11px 0px;
+  padding: 11px 0;
   font-size: 13px;
 }
 

+ 3 - 1
src/views/Profile/components/ResetPwd.vue

@@ -15,12 +15,14 @@
     </el-form-item>
   </el-form>
 </template>
-<script lang="ts" name="ResetPwd" setup>
+<script lang="ts" setup>
 import type { FormInstance, FormRules } from 'element-plus'
 
 import { InputPassword } from '@/components/InputPassword'
 import { updateUserPassword } from '@/api/system/user/profile'
 
+defineOptions({ name: 'ResetPwd' })
+
 const { t } = useI18n()
 const message = useMessage()
 const formRef = ref<FormInstance>()

+ 3 - 1
src/views/Profile/components/UserAvatar.vue

@@ -10,10 +10,12 @@
     />
   </div>
 </template>
-<script lang="ts" name="UserAvatar" setup>
+<script lang="ts" setup>
 import { propTypes } from '@/utils/propTypes'
 import { uploadAvatar } from '@/api/system/user/profile'
 
+defineOptions({ name: 'UserAvatar' })
+
 const props = defineProps({
   img: propTypes.string.def('')
 })

+ 3 - 1
src/views/Profile/components/UserSocial.vue

@@ -21,11 +21,13 @@
     </el-table-column>
   </el-table>
 </template>
-<script lang="ts" name="UserSocial" setup>
+<script lang="ts" setup>
 import { SystemUserSocialTypeEnum } from '@/utils/constants'
 import { getUserProfile, ProfileVO } from '@/api/system/user/profile'
 import { socialAuthRedirect, socialBind, socialUnbind } from '@/api/system/user/socialUser'
 
+defineOptions({ name: 'UserSocial' })
+
 const message = useMessage()
 const socialUsers = ref<any[]>([])
 const userInfo = ref<ProfileVO>()

+ 3 - 1
src/views/Redirect/Redirect.vue

@@ -1,7 +1,9 @@
 <template>
   <div></div>
 </template>
-<script setup lang="ts" name="Redirect">
+<script setup lang="ts">
+defineOptions({ name: 'Redirect' })
+
 const { currentRoute, replace } = useRouter()
 const { params, query } = unref(currentRoute)
 const { path, _redirect_type = 'path' } = params

+ 4 - 1
src/views/bpm/definition/index.vue

@@ -94,12 +94,15 @@
   </Dialog>
 </template>
 
-<script setup lang="ts" name="BpmProcessDefinition">
+<script setup lang="ts">
 import { DICT_TYPE } from '@/utils/dict'
 import { dateFormatter } from '@/utils/formatTime'
 import { MyProcessViewer } from '@/components/bpmnProcessDesigner/package'
 import * as DefinitionApi from '@/api/bpm/definition'
 import { setConfAndFields2 } from '@/utils/formCreate'
+
+defineOptions({ name: 'BpmProcessDefinition' })
+
 const { push } = useRouter() // 路由
 const { query } = useRoute() // 查询参数
 

+ 3 - 1
src/views/bpm/form/editor/index.vue

@@ -38,7 +38,7 @@
     </template>
   </Dialog>
 </template>
-<script lang="ts" name="BpmFormEditor" setup>
+<script lang="ts" setup>
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
 import { CommonStatusEnum } from '@/utils/constants'
 import * as FormApi from '@/api/bpm/form'
@@ -46,6 +46,8 @@ import FcDesigner from '@form-create/designer'
 import { encodeConf, encodeFields, setConfAndFields } from '@/utils/formCreate'
 import { useTagsViewStore } from '@/store/modules/tagsView'
 
+defineOptions({ name: 'BpmFormEditor' })
+
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息
 const { push, currentRoute } = useRouter() // 路由

+ 3 - 1
src/views/bpm/form/index.vue

@@ -90,12 +90,14 @@
   </Dialog>
 </template>
 
-<script lang="ts" name="BpmForm" setup>
+<script lang="ts" setup>
 import { DICT_TYPE } from '@/utils/dict'
 import { dateFormatter } from '@/utils/formatTime'
 import * as FormApi from '@/api/bpm/form'
 import { setConfAndFields2 } from '@/utils/formCreate'
 
+defineOptions({ name: 'BpmForm' })
+
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const { currentRoute, push } = useRouter() // 路由

+ 3 - 1
src/views/bpm/group/UserGroupForm.vue

@@ -41,12 +41,14 @@
     </template>
   </Dialog>
 </template>
-<script lang="ts" name="UserGroupForm" setup>
+<script lang="ts" setup>
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
 import { CommonStatusEnum } from '@/utils/constants'
 import * as UserGroupApi from '@/api/bpm/userGroup'
 import * as UserApi from '@/api/system/user'
 
+defineOptions({ name: 'UserGroupForm' })
+
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
 

+ 4 - 1
src/views/bpm/group/index.vue

@@ -111,13 +111,16 @@
   <UserGroupForm ref="formRef" @success="getList" />
 </template>
 
-<script setup lang="ts" name="BpmUserGroup">
+<script setup lang="ts">
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
 import { dateFormatter } from '@/utils/formatTime'
 import * as UserGroupApi from '@/api/bpm/userGroup'
 import * as UserApi from '@/api/system/user'
 import UserGroupForm from './UserGroupForm.vue'
 import { UserVO } from '@/api/system/user'
+
+defineOptions({ name: 'BpmUserGroup' })
+
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 

+ 3 - 1
src/views/bpm/model/ModelForm.vue

@@ -121,12 +121,14 @@
     </template>
   </Dialog>
 </template>
-<script lang="ts" name="ModelForm" setup>
+<script lang="ts" setup>
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
 import { ElMessageBox } from 'element-plus'
 import * as ModelApi from '@/api/bpm/model'
 import * as FormApi from '@/api/bpm/form'
 
+defineOptions({ name: 'ModelForm' })
+
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
 

+ 3 - 1
src/views/bpm/model/ModelImportForm.vue

@@ -49,9 +49,11 @@
     </template>
   </Dialog>
 </template>
-<script lang="ts" name="ModelImportForm" setup>
+<script lang="ts" setup>
 import { getAccessToken, getTenantId } from '@/utils/auth'
 
+defineOptions({ name: 'ModelImportForm' })
+
 const message = useMessage() // 消息弹窗
 
 const dialogVisible = ref(false) // 弹窗的是否展示

+ 3 - 1
src/views/bpm/model/editor/index.vue

@@ -24,7 +24,7 @@
   </ContentWrap>
 </template>
 
-<script setup lang="ts" name="BpmModelEditor">
+<script setup lang="ts">
 import { MyProcessDesigner, MyProcessPenal } from '@/components/bpmnProcessDesigner/package'
 // 自定义元素选中时的弹出菜单(修改 默认任务 为 用户任务)
 import CustomContentPadProvider from '@/components/bpmnProcessDesigner/package/designer/plugins/content-pad'
@@ -32,6 +32,8 @@ import CustomContentPadProvider from '@/components/bpmnProcessDesigner/package/d
 import CustomPaletteProvider from '@/components/bpmnProcessDesigner/package/designer/plugins/palette'
 import * as ModelApi from '@/api/bpm/model'
 
+defineOptions({ name: 'BpmModelEditor' })
+
 const router = useRouter() // 路由
 const { query } = useRoute() // 路由的查询
 const message = useMessage() // 国际化

+ 4 - 1
src/views/bpm/model/index.vue

@@ -226,7 +226,7 @@
   </Dialog>
 </template>
 
-<script setup lang="ts" name="BpmModel">
+<script setup lang="ts">
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
 import { dateFormatter, formatDate } from '@/utils/formatTime'
 import { MyProcessViewer } from '@/components/bpmnProcessDesigner/package'
@@ -235,6 +235,9 @@ import * as FormApi from '@/api/bpm/form'
 import ModelForm from './ModelForm.vue'
 import ModelImportForm from '@/views/bpm/model/ModelImportForm.vue'
 import { setConfAndFields2 } from '@/utils/formCreate'
+
+defineOptions({ name: 'BpmModel' })
+
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const { push } = useRouter() // 路由

+ 4 - 1
src/views/bpm/oa/leave/create.vue

@@ -42,10 +42,13 @@
     </el-form-item>
   </el-form>
 </template>
-<script setup name="BpmOALeaveCreate" lang="ts">
+<script setup lang="ts">
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
 import * as LeaveApi from '@/api/bpm/leave'
 import { useTagsViewStore } from '@/store/modules/tagsView'
+
+defineOptions({ name: 'BpmOALeaveCreate' })
+
 const message = useMessage() // 消息弹窗
 const { delView } = useTagsViewStore() // 视图操作
 const { currentRoute } = useRouter() // 路由

+ 3 - 1
src/views/bpm/oa/leave/detail.vue

@@ -16,12 +16,14 @@
     </el-descriptions>
   </ContentWrap>
 </template>
-<script lang="ts" name="BpmOALeaveDetail" setup>
+<script lang="ts" setup>
 import { DICT_TYPE } from '@/utils/dict'
 import { formatDate } from '@/utils/formatTime'
 import { propTypes } from '@/utils/propTypes'
 import * as LeaveApi from '@/api/bpm/leave'
 
+defineOptions({ name: 'BpmOALeaveDetail' })
+
 const { query } = useRoute() // 查询参数
 
 const props = defineProps({

+ 4 - 1
src/views/bpm/oa/leave/index.vue

@@ -138,11 +138,14 @@
     />
   </ContentWrap>
 </template>
-<script setup lang="ts" name="BpmOALeave">
+<script setup lang="ts">
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
 import { dateFormatter } from '@/utils/formatTime'
 import * as LeaveApi from '@/api/bpm/leave'
 import * as ProcessInstanceApi from '@/api/bpm/processInstance'
+
+defineOptions({ name: 'BpmOALeave' })
+
 const message = useMessage() // 消息弹窗
 const router = useRouter() // 路由
 const { t } = useI18n() // 国际化

+ 4 - 1
src/views/bpm/processInstance/create/index.vue

@@ -46,13 +46,16 @@
     <ProcessInstanceBpmnViewer :bpmn-xml="bpmnXML as any" />
   </ContentWrap>
 </template>
-<script setup lang="ts" name="BpmProcessInstanceCreate">
+<script setup lang="ts">
 import { DICT_TYPE } from '@/utils/dict'
 import * as DefinitionApi from '@/api/bpm/definition'
 import * as ProcessInstanceApi from '@/api/bpm/processInstance'
 import { setConfAndFields2 } from '@/utils/formCreate'
 import type { ApiAttrs } from '@form-create/element-ui/types/config'
 import ProcessInstanceBpmnViewer from '../detail/ProcessInstanceBpmnViewer.vue'
+
+defineOptions({ name: 'BpmProcessInstanceCreate' })
+
 const router = useRouter() // 路由
 const message = useMessage() // 消息
 

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

@@ -14,11 +14,13 @@
     />
   </el-card>
 </template>
-<script lang="ts" name="BpmProcessInstanceBpmnViewer" setup>
+<script lang="ts" setup>
 import { propTypes } from '@/utils/propTypes'
 import { MyProcessViewer } from '@/components/bpmnProcessDesigner/package'
 import * as ActivityApi from '@/api/bpm/activity'
 
+defineOptions({ name: 'BpmProcessInstanceBpmnViewer' })
+
 const props = defineProps({
   loading: propTypes.bool, // 是否加载中
   id: propTypes.string, // 流程实例的编号

Some files were not shown because too many files changed in this diff