mirror of
				https://gitee.com/hhyykk/ipms-sjy-ui.git
				synced 2025-11-01 10:48:44 +08:00 
			
		
		
		
	Merge branch 'master' of https://gitee.com/yudaocode/yudao-ui-admin-vue3 into dev
Conflicts: build/vite/optimize.ts
This commit is contained in:
		
							
								
								
									
										15
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								README.md
									
									
									
									
									
								
							| @@ -11,6 +11,7 @@ | ||||
|  | ||||
| * nodejs > 16.0.0 && pnpm > 7.30.0 | ||||
| * 演示地址【Vue3 + element-plus】:<http://dashboard-vue3.yudao.iocoder.cn> | ||||
| * 演示地址【Vue3 + vben(ant-design-vue)】:<http://dashboard-vben.yudao.iocoder.cn> | ||||
| * 演示地址【Vue2 + element-ui】:<http://dashboard.yudao.iocoder.cn> | ||||
| * 启动文档:<https://doc.iocoder.cn/quick-start/> | ||||
| * 视频教程:<https://doc.iocoder.cn/video/> | ||||
| @@ -19,8 +20,8 @@ | ||||
|  | ||||
| **芋道**,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。 | ||||
|  | ||||
| * 采用 [vue-element-plus-admin](https://gitee.com/kailong110120130/vue-element-plus-admin)  | ||||
| * 改换saas,自动引入等功能 [vue-element-plus-admin](https://gitee.com/yudaocode/vue-element-plus-admin) | ||||
| * 采用 [vue-element-plus-admin](https://gitee.com/kailong110120130/vue-element-plus-admin) 实现 | ||||
| * 改换 saas,自动引入等功能 | ||||
| * 使用 Element Plus 免费开源的中后台模版,具备如下特性: | ||||
|  | ||||
|  | ||||
| @@ -38,11 +39,11 @@ | ||||
| | 框架                                                                   | 说明               | 版本     | | ||||
| |----------------------------------------------------------------------|------------------|--------| | ||||
| | [Vue](https://staging-cn.vuejs.org/)                                 | Vue 框架           | 3.2.47 | | ||||
| | [Vite](https://cn.vitejs.dev//)                                      | 开发与构建工具          | 4.1.4  | | ||||
| | [Element Plus](https://element-plus.org/zh-CN/)                      | Element Plus     | 2.2.34 | | ||||
| | [TypeScript](https://www.typescriptlang.org/docs/)                   | JavaScript 的超集   | 4.9.5  | | ||||
| | [pinia](https://pinia.vuejs.org/)                                    | Vue 存储库 替代 vuex5 | 2.0.33 | | ||||
| | [vueuse](https://vueuse.org/)                                        | 常用工具集            | 9.13.0 | | ||||
| | [Vite](https://cn.vitejs.dev//)                                      | 开发与构建工具          | 4.3.1  | | ||||
| | [Element Plus](https://element-plus.org/zh-CN/)                      | Element Plus     | 2.3.3 | | ||||
| | [TypeScript](https://www.typescriptlang.org/docs/)                   | JavaScript 的超集   | 5.0.4  | | ||||
| | [pinia](https://pinia.vuejs.org/)                                    | Vue 存储库 替代 vuex5 | 2.0.35 | | ||||
| | [vueuse](https://vueuse.org/)                                        | 常用工具集            | 10.1.0 | | ||||
| | [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化              | 9.2.2  | | ||||
| | [vue-router](https://router.vuejs.org/)                              | Vue 路由           | 4.1.6  | | ||||
| | [windicss](https://cn.windicss.org/)                                 | 下一代工具优先的 CSS 框架  | 3.5.6  | | ||||
|   | ||||
| @@ -17,7 +17,6 @@ const include = [ | ||||
|   'cropperjs', | ||||
|   'lodash-es', | ||||
|   'nprogress', | ||||
|   'animate.css', | ||||
|   'web-storage-cache', | ||||
|   '@iconify/iconify', | ||||
|   '@vueuse/core', | ||||
| @@ -33,38 +32,58 @@ const include = [ | ||||
|   'element-plus/es', | ||||
|   'element-plus/es/locale/lang/zh-cn', | ||||
|   'element-plus/es/locale/lang/en', | ||||
|   'element-plus/es/components/backtop/style/index', | ||||
|   'element-plus/es/components/form/style/index', | ||||
|   'element-plus/es/components/radio-group/style/index', | ||||
|   'element-plus/es/components/radio/style/index', | ||||
|   'element-plus/es/components/checkbox/style/index', | ||||
|   'element-plus/es/components/checkbox-group/style/index', | ||||
|   'element-plus/es/components/switch/style/index', | ||||
|   'element-plus/es/components/time-picker/style/index', | ||||
|   'element-plus/es/components/date-picker/style/index', | ||||
|   'element-plus/es/components/col/style/index', | ||||
|   'element-plus/es/components/form-item/style/index', | ||||
|   'element-plus/es/components/alert/style/index', | ||||
|   'element-plus/es/components/breadcrumb/style/index', | ||||
|   'element-plus/es/components/select/style/index', | ||||
|   'element-plus/es/components/input/style/index', | ||||
|   'element-plus/es/components/breadcrumb-item/style/index', | ||||
|   'element-plus/es/components/tag/style/index', | ||||
|   'element-plus/es/components/pagination/style/index', | ||||
|   'element-plus/es/components/table/style/index', | ||||
|   'element-plus/es/components/table-column/style/index', | ||||
|   'element-plus/es/components/card/style/index', | ||||
|   'element-plus/es/components/row/style/index', | ||||
|   'element-plus/es/components/button/style/index', | ||||
|   'element-plus/es/components/menu/style/index', | ||||
|   'element-plus/es/components/sub-menu/style/index', | ||||
|   'element-plus/es/components/menu-item/style/index', | ||||
|   'element-plus/es/components/option/style/index', | ||||
|   'element-plus/es/components/dropdown/style/index', | ||||
|   'element-plus/es/components/dropdown-menu/style/index', | ||||
|   'element-plus/es/components/dropdown-item/style/index', | ||||
|   'element-plus/es/components/skeleton/style/index', | ||||
|  | ||||
|   'element-plus/es/components/backtop/style/css', | ||||
|   'element-plus/es/components/form/style/css', | ||||
|   'element-plus/es/components/radio-group/style/css', | ||||
|   'element-plus/es/components/radio/style/css', | ||||
|   'element-plus/es/components/checkbox/style/css', | ||||
|   'element-plus/es/components/checkbox-group/style/css', | ||||
|   'element-plus/es/components/switch/style/css', | ||||
|   'element-plus/es/components/time-picker/style/css', | ||||
|   'element-plus/es/components/date-picker/style/css', | ||||
|   'element-plus/es/components/descriptions/style/css', | ||||
|   'element-plus/es/components/descriptions-item/style/css', | ||||
|   'element-plus/es/components/link/style/css', | ||||
|   'element-plus/es/components/tooltip/style/css', | ||||
|   'element-plus/es/components/drawer/style/css', | ||||
|   'element-plus/es/components/dialog/style/css', | ||||
|   'element-plus/es/components/checkbox-button/style/css', | ||||
|   'element-plus/es/components/option-group/style/css', | ||||
|   'element-plus/es/components/radio-button/style/css', | ||||
|   'element-plus/es/components/cascader/style/css', | ||||
|   'element-plus/es/components/color-picker/style/css', | ||||
|   'element-plus/es/components/input-number/style/css', | ||||
|   'element-plus/es/components/rate/style/css', | ||||
|   'element-plus/es/components/select-v2/style/css', | ||||
|   'element-plus/es/components/tree-select/style/css', | ||||
|   'element-plus/es/components/slider/style/css', | ||||
|   'element-plus/es/components/time-select/style/css', | ||||
|   'element-plus/es/components/autocomplete/style/css', | ||||
|   'element-plus/es/components/image-viewer/style/css', | ||||
|   'element-plus/es/components/upload/style/css', | ||||
|   'element-plus/es/components/col/style/css', | ||||
|   'element-plus/es/components/form-item/style/css', | ||||
|   'element-plus/es/components/alert/style/css', | ||||
|   'element-plus/es/components/breadcrumb/style/css', | ||||
|   'element-plus/es/components/select/style/css', | ||||
|   'element-plus/es/components/input/style/css', | ||||
|   'element-plus/es/components/breadcrumb-item/style/css', | ||||
|   'element-plus/es/components/tag/style/css', | ||||
|   'element-plus/es/components/pagination/style/css', | ||||
|   'element-plus/es/components/table/style/css', | ||||
|   'element-plus/es/components/table-v2/style/css', | ||||
|   'element-plus/es/components/table-column/style/css', | ||||
|   'element-plus/es/components/card/style/css', | ||||
|   'element-plus/es/components/row/style/css', | ||||
|   'element-plus/es/components/button/style/css', | ||||
|   'element-plus/es/components/menu/style/css', | ||||
|   'element-plus/es/components/sub-menu/style/css', | ||||
|   'element-plus/es/components/menu-item/style/css', | ||||
|   'element-plus/es/components/option/style/css', | ||||
|   'element-plus/es/components/dropdown/style/css', | ||||
|   'element-plus/es/components/dropdown-menu/style/css', | ||||
|   'element-plus/es/components/dropdown-item/style/css', | ||||
|   'element-plus/es/components/skeleton/style/css', | ||||
|   'element-plus/es/components/skeleton/style/css', | ||||
|   'element-plus/es/components/backtop/style/css', | ||||
|   'element-plus/es/components/menu/style/css', | ||||
| @@ -78,20 +97,12 @@ const include = [ | ||||
|   'element-plus/es/components/breadcrumb/style/css', | ||||
|   'element-plus/es/components/breadcrumb-item/style/css', | ||||
|   'element-plus/es/components/image/style/css', | ||||
|   'element-plus/es/components/tag/style/css', | ||||
|   'element-plus/es/components/dialog/style/css', | ||||
|   'element-plus/es/components/form/style/css', | ||||
|   'element-plus/es/components/form-item/style/css', | ||||
|   'element-plus/es/components/card/style/css', | ||||
|   'element-plus/es/components/tooltip/style/css', | ||||
|   'element-plus/es/components/radio-group/style/css', | ||||
|   'element-plus/es/components/radio/style/css', | ||||
|   'element-plus/es/components/input-number/style/css', | ||||
|   'element-plus/es/components/tree-select/style/css', | ||||
|   'element-plus/es/components/drawer/style/css', | ||||
|   'element-plus/es/components/image-viewer/style/css', | ||||
|   'element-plus/es/components/upload/style/css', | ||||
|   'element-plus/es/components/switch/style/css' | ||||
|   'element-plus/es/components/collapse-transition/style/css', | ||||
|   'element-plus/es/components/timeline/style/css', | ||||
|   'element-plus/es/components/timeline-item/style/css', | ||||
|   'element-plus/es/components/collapse/style/css', | ||||
|   'element-plus/es/components/collapse-item/style/css', | ||||
|   'element-plus/es/components/button-group/style/css' | ||||
| ] | ||||
|  | ||||
| const exclude = ['@iconify/json'] | ||||
|   | ||||
							
								
								
									
										67
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										67
									
								
								package.json
									
									
									
									
									
								
							| @@ -33,12 +33,12 @@ | ||||
|     "@form-create/element-ui": "^3.1.17", | ||||
|     "@iconify/iconify": "^3.1.0", | ||||
|     "@videojs-player/vue": "^1.0.0", | ||||
|     "@vueuse/core": "^9.13.0", | ||||
|     "@vueuse/core": "^10.1.0", | ||||
|     "@wangeditor/editor": "^5.1.23", | ||||
|     "@wangeditor/editor-for-vue": "^5.1.10", | ||||
|     "@zxcvbn-ts/core": "^2.2.1", | ||||
|     "animate.css": "^4.1.1", | ||||
|     "axios": "^1.3.5", | ||||
|     "axios": "^1.3.6", | ||||
|     "benz-amr-recorder": "^1.1.5", | ||||
|     "bpmn-js-token-simulation": "^0.10.0", | ||||
|     "camunda-bpmn-moddle": "^7.0.1", | ||||
| @@ -46,19 +46,19 @@ | ||||
|     "crypto-js": "^4.1.1", | ||||
|     "dayjs": "^1.11.7", | ||||
|     "diagram-js": "^11.6.0", | ||||
|     "echarts": "^5.4.1", | ||||
|     "echarts": "^5.4.2", | ||||
|     "echarts-wordcloud": "^2.1.0", | ||||
|     "element-plus": "2.3.3", | ||||
|     "fast-xml-parser": "^4.1.3", | ||||
|     "fast-xml-parser": "^4.2.2", | ||||
|     "highlight.js": "^11.7.0", | ||||
|     "intro.js": "^7.0.1", | ||||
|     "jsencrypt": "^3.3.2", | ||||
|     "lodash-es": "^4.17.21", | ||||
|     "min-dash": "^4.0.0", | ||||
|     "min-dash": "^4.1.0", | ||||
|     "mitt": "^3.0.0", | ||||
|     "nprogress": "^0.2.0", | ||||
|     "pinia": "^2.0.34", | ||||
|     "qrcode": "^1.5.1", | ||||
|     "pinia": "^2.0.35", | ||||
|     "qrcode": "^1.5.3", | ||||
|     "qs": "^6.11.1", | ||||
|     "steady-xml": "^0.1.0", | ||||
|     "url": "^0.11.0", | ||||
| @@ -73,61 +73,60 @@ | ||||
|     "xml-js": "^1.6.11" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@commitlint/cli": "^17.5.0", | ||||
|     "@commitlint/config-conventional": "^17.4.4", | ||||
|     "@iconify/json": "^2.2.38", | ||||
|     "@commitlint/cli": "^17.6.1", | ||||
|     "@commitlint/config-conventional": "^17.6.1", | ||||
|     "@iconify/json": "^2.2.54", | ||||
|     "@intlify/unplugin-vue-i18n": "^0.10.0", | ||||
|     "@purge-icons/generated": "^0.9.0", | ||||
|     "@types/intro.js": "^5.1.1", | ||||
|     "@types/lodash-es": "^4.17.7", | ||||
|     "@types/node": "^18.15.5", | ||||
|     "@types/node": "^18.16.0", | ||||
|     "@types/nprogress": "^0.2.0", | ||||
|     "@types/qrcode": "^1.5.0", | ||||
|     "@types/qs": "^6.9.7", | ||||
|     "@typescript-eslint/eslint-plugin": "^5.56.0", | ||||
|     "@typescript-eslint/parser": "^5.56.0", | ||||
|     "@typescript-eslint/eslint-plugin": "^5.59.0", | ||||
|     "@typescript-eslint/parser": "^5.59.0", | ||||
|     "@vitejs/plugin-legacy": "^4.0.2", | ||||
|     "@vitejs/plugin-vue": "^4.1.0", | ||||
|     "@vitejs/plugin-vue-jsx": "^3.0.1", | ||||
|     "autoprefixer": "^10.4.14", | ||||
|     "bpmn-js": "^8.9.0", | ||||
|     "bpmn-js-properties-panel": "^0.46.0", | ||||
|     "consola": "^2.15.3", | ||||
|     "eslint": "^8.36.0", | ||||
|     "consola": "^3.1.0", | ||||
|     "eslint": "^8.39.0", | ||||
|     "eslint-config-prettier": "^8.8.0", | ||||
|     "eslint-define-config": "^1.17.0", | ||||
|     "eslint-define-config": "^1.18.0", | ||||
|     "eslint-plugin-prettier": "^4.2.1", | ||||
|     "eslint-plugin-vue": "^9.9.0", | ||||
|     "lint-staged": "^13.2.0", | ||||
|     "postcss": "^8.4.21", | ||||
|     "eslint-plugin-vue": "^9.11.0", | ||||
|     "lint-staged": "^13.2.1", | ||||
|     "postcss": "^8.4.23", | ||||
|     "postcss-html": "^1.5.0", | ||||
|     "postcss-scss": "^4.0.6", | ||||
|     "prettier": "^2.8.6", | ||||
|     "rimraf": "^4.4.1", | ||||
|     "rollup": "^3.20.0", | ||||
|     "sass": "^1.59.3", | ||||
|     "stylelint": "^15.3.0", | ||||
|     "prettier": "^2.8.8", | ||||
|     "rimraf": "^5.0.0", | ||||
|     "rollup": "^3.20.7", | ||||
|     "sass": "^1.62.0", | ||||
|     "stylelint": "^15.6.0", | ||||
|     "stylelint-config-html": "^1.1.0", | ||||
|     "stylelint-config-prettier": "^9.0.5", | ||||
|     "stylelint-config-recommended": "^11.0.0", | ||||
|     "stylelint-config-standard": "^31.0.0", | ||||
|     "stylelint-config-recommended": "^12.0.0", | ||||
|     "stylelint-config-standard": "^33.0.0", | ||||
|     "stylelint-order": "^6.0.3", | ||||
|     "terser": "^5.16.6", | ||||
|     "typescript": "5.0.2", | ||||
|     "unplugin-auto-import": "^0.15.1", | ||||
|     "unplugin-element-plus": "^0.7.0", | ||||
|     "terser": "^5.17.1", | ||||
|     "typescript": "5.0.4", | ||||
|     "unplugin-auto-import": "^0.15.3", | ||||
|     "unplugin-element-plus": "^0.7.1", | ||||
|     "unplugin-vue-components": "^0.24.1", | ||||
|     "vite": "4.2.1", | ||||
|     "vite": "4.3.1", | ||||
|     "vite-plugin-compression": "^0.5.1", | ||||
|     "vite-plugin-ejs": "^1.6.4", | ||||
|     "vite-plugin-eslint": "^1.8.1", | ||||
|     "vite-plugin-progress": "^0.0.6", | ||||
|     "vite-plugin-progress": "^0.0.7", | ||||
|     "vite-plugin-purge-icons": "^0.9.2", | ||||
|     "vite-plugin-svg-icons": "^2.0.1", | ||||
|     "vite-plugin-top-level-await": "^1.3.0", | ||||
|     "vite-plugin-vue-setup-extend-plus": "^0.1.0", | ||||
|     "vite-plugin-windicss": "^1.8.10", | ||||
|     "vue-tsc": "^1.2.0", | ||||
|     "vue-tsc": "^1.4.4", | ||||
|     "windicss": "^3.5.6" | ||||
|   }, | ||||
|   "engines": { | ||||
|   | ||||
| @@ -39,7 +39,7 @@ export const updateNotifyTemplate = async (data: NotifyTemplateVO) => { | ||||
| } | ||||
|  | ||||
| // 删除站内信模板 | ||||
| export const deleteNotifyTemplateApi = async (id: number) => { | ||||
| export const deleteNotifyTemplate = async (id: number) => { | ||||
|   return await request.delete({ url: '/system/notify-template/delete?id=' + id }) | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -17,6 +17,6 @@ export const getAccessTokenPage = (params: PageParam) => { | ||||
| } | ||||
|  | ||||
| // 删除 token | ||||
| export const deleteAccessToken = (accessToken: number) => { | ||||
| export const deleteAccessToken = (accessToken: string) => { | ||||
|   return request.delete({ url: '/system/oauth2-token/delete?accessToken=' + accessToken }) | ||||
| } | ||||
|   | ||||
| @@ -87,7 +87,7 @@ | ||||
|     <MyProcessViewer | ||||
|       key="designer" | ||||
|       v-model="bpmnXML" | ||||
|       :value="bpmnXML" | ||||
|       :value="bpmnXML as any" | ||||
|       v-bind="bpmnControlForm" | ||||
|       :prefix="bpmnControlForm.prefix" | ||||
|     /> | ||||
|   | ||||
| @@ -68,7 +68,7 @@ const formRules = reactive({ | ||||
|   status: [{ required: true, message: '状态不能为空', trigger: 'blur' }] | ||||
| }) | ||||
| const formRef = ref() // 表单 Ref | ||||
| const userList = ref([]) // 用户列表 | ||||
| const userList = ref<any[]>([]) // 用户列表 | ||||
|  | ||||
| /** 打开弹窗 */ | ||||
| const open = async (type: string, id?: number) => { | ||||
|   | ||||
| @@ -117,6 +117,7 @@ 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' | ||||
| const message = useMessage() // 消息弹窗 | ||||
| const { t } = useI18n() // 国际化 | ||||
|  | ||||
| @@ -131,7 +132,7 @@ const queryParams = reactive({ | ||||
|   createTime: [] | ||||
| }) | ||||
| const queryFormRef = ref() // 搜索的表单 | ||||
| const userList = ref([]) // 用户列表 | ||||
| const userList = ref<UserVO[]>([]) // 用户列表 | ||||
|  | ||||
| /** 查询列表 */ | ||||
| const getList = async () => { | ||||
|   | ||||
| @@ -16,7 +16,7 @@ | ||||
|     <!-- 流程属性器,负责编辑每个流程节点的属性 --> | ||||
|     <MyProcessPenal | ||||
|       key="penal" | ||||
|       :bpmnModeler="modeler" | ||||
|       :bpmnModeler="modeler as any" | ||||
|       :prefix="controlForm.prefix" | ||||
|       class="process-panel" | ||||
|       :model="model" | ||||
|   | ||||
| @@ -219,7 +219,7 @@ | ||||
|     <MyProcessViewer | ||||
|       key="designer" | ||||
|       v-model="bpmnXML" | ||||
|       :value="bpmnXML" | ||||
|       :value="bpmnXML as any" | ||||
|       v-bind="bpmnControlForm" | ||||
|       :prefix="bpmnControlForm.prefix" | ||||
|     /> | ||||
|   | ||||
| @@ -28,7 +28,7 @@ const props = defineProps({ | ||||
|   id: propTypes.number.def(undefined) | ||||
| }) | ||||
| const detailLoading = ref(false) // 表单的加载中 | ||||
| const detailData = ref({}) // 详情数据 | ||||
| const detailData = ref<any>({}) // 详情数据 | ||||
| const queryId = query.id as unknown as number // 从 URL 传递过来的 id 编号 | ||||
|  | ||||
| /** 获得数据 */ | ||||
|   | ||||
| @@ -43,7 +43,7 @@ | ||||
|       </el-col> | ||||
|     </el-card> | ||||
|     <!-- 流程图预览 --> | ||||
|     <ProcessInstanceBpmnViewer :bpmn-xml="bpmnXML" /> | ||||
|     <ProcessInstanceBpmnViewer :bpmn-xml="bpmnXML as any" /> | ||||
|   </ContentWrap> | ||||
| </template> | ||||
| <script setup lang="ts" name="BpmProcessInstanceCreate"> | ||||
|   | ||||
| @@ -33,6 +33,12 @@ | ||||
| import FcDesigner from '@form-create/designer' | ||||
| import { useClipboard } from '@vueuse/core' | ||||
| import { isString } from '@/utils/is' | ||||
|  | ||||
| import hljs from 'highlight.js' // 导入代码高亮文件 | ||||
| import 'highlight.js/styles/github.css' // 导入代码高亮样式 | ||||
| import xml from 'highlight.js/lib/languages/java' | ||||
| import json from 'highlight.js/lib/languages/json' | ||||
|  | ||||
| const { t } = useI18n() // 国际化 | ||||
| const message = useMessage() // 消息 | ||||
|  | ||||
| @@ -112,10 +118,6 @@ const copy = async (text: string) => { | ||||
| /** | ||||
|  * 代码高亮 | ||||
|  */ | ||||
| import hljs from 'highlight.js' // 导入代码高亮文件 | ||||
| import 'highlight.js/styles/github.css' // 导入代码高亮样式 | ||||
| import xml from 'highlight.js/lib/languages/java' | ||||
| import json from 'highlight.js/lib/languages/json' | ||||
| const highlightedCode = (code) => { | ||||
|   // 处理语言和代码 | ||||
|   let language = 'json' | ||||
|   | ||||
| @@ -59,6 +59,14 @@ import { useClipboard } from '@vueuse/core' | ||||
| import { handleTree2 } from '@/utils/tree' | ||||
| import * as CodegenApi from '@/api/infra/codegen' | ||||
|  | ||||
| import hljs from 'highlight.js' // 导入代码高亮文件 | ||||
| import 'highlight.js/styles/github.css' // 导入代码高亮样式 | ||||
| import java from 'highlight.js/lib/languages/java' | ||||
| import xml from 'highlight.js/lib/languages/java' | ||||
| import javascript from 'highlight.js/lib/languages/javascript' | ||||
| import sql from 'highlight.js/lib/languages/sql' | ||||
| import typescript from 'highlight.js/lib/languages/typescript' | ||||
|  | ||||
| const { t } = useI18n() // 国际化 | ||||
| const message = useMessage() // 消息弹窗 | ||||
|  | ||||
| @@ -184,13 +192,6 @@ const copy = async (text: string) => { | ||||
| /** | ||||
|  * 代码高亮 | ||||
|  */ | ||||
| import hljs from 'highlight.js' // 导入代码高亮文件 | ||||
| import 'highlight.js/styles/github.css' // 导入代码高亮样式 | ||||
| import java from 'highlight.js/lib/languages/java' | ||||
| import xml from 'highlight.js/lib/languages/java' | ||||
| import javascript from 'highlight.js/lib/languages/javascript' | ||||
| import sql from 'highlight.js/lib/languages/sql' | ||||
| import typescript from 'highlight.js/lib/languages/typescript' | ||||
| const highlightedCode = (item) => { | ||||
|   const language = item.filePath.substring(item.filePath.lastIndexOf('.') + 1) | ||||
|   const result = hljs.highlight(language, item.code || '', true) | ||||
|   | ||||
| @@ -122,7 +122,9 @@ const open = async (type: string, id?: number, dictType?: string) => { | ||||
|   dialogTitle.value = t('action.' + type) | ||||
|   formType.value = type | ||||
|   resetForm() | ||||
|   formData.value.dictType = dictType | ||||
|   if (dictType) { | ||||
|     formData.value.dictType = dictType | ||||
|   } | ||||
|   // 修改时,设置数据 | ||||
|   if (id) { | ||||
|     formLoading.value = true | ||||
|   | ||||
| @@ -17,9 +17,9 @@ | ||||
|         <el-select v-model="formData.type" clearable placeholder="请选择公告类型"> | ||||
|           <el-option | ||||
|             v-for="dict in getIntDictOptions(DICT_TYPE.SYSTEM_NOTICE_TYPE)" | ||||
|             :key="parseInt(dict.value)" | ||||
|             :key="parseInt(dict.value as any)" | ||||
|             :label="dict.label" | ||||
|             :value="parseInt(dict.value)" | ||||
|             :value="parseInt(dict.value as any)" | ||||
|           /> | ||||
|         </el-select> | ||||
|       </el-form-item> | ||||
| @@ -27,9 +27,9 @@ | ||||
|         <el-select v-model="formData.status" clearable placeholder="请选择状态"> | ||||
|           <el-option | ||||
|             v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)" | ||||
|             :key="parseInt(dict.value)" | ||||
|             :key="parseInt(dict.value as any)" | ||||
|             :label="dict.label" | ||||
|             :value="parseInt(dict.value)" | ||||
|             :value="parseInt(dict.value as any)" | ||||
|           /> | ||||
|         </el-select> | ||||
|       </el-form-item> | ||||
|   | ||||
| @@ -44,7 +44,6 @@ | ||||
|   </Dialog> | ||||
| </template> | ||||
| <script lang="ts" name="SystemNotifyTemplateSendForm" setup> | ||||
| import * as SmsTemplateApi from '@/api/system/sms/smsTemplate' | ||||
| import * as UserApi from '@/api/system/user' | ||||
| import * as NotifyTemplateApi from '@/api/system/notify/template' | ||||
| const message = useMessage() // 消息弹窗 | ||||
| @@ -102,8 +101,8 @@ const submitForm = async () => { | ||||
|   // 提交请求 | ||||
|   formLoading.value = true | ||||
|   try { | ||||
|     const data = formData.value as SmsTemplateApi.SendSmsReqVO | ||||
|     const logId = await SmsTemplateApi.sendSms(data) | ||||
|     const data = formData.value as unknown as NotifyTemplateApi.NotifySendReqVO | ||||
|     const logId = await NotifyTemplateApi.sendNotify(data) | ||||
|     if (logId) { | ||||
|       message.success('提交发送成功!发送结果,见发送日志编号:' + logId) | ||||
|     } | ||||
| @@ -121,7 +120,7 @@ const resetForm = () => { | ||||
|     mobile: '', | ||||
|     templateCode: '', | ||||
|     templateParams: new Map() | ||||
|   } | ||||
|   } as any | ||||
|   formRef.value?.resetFields() | ||||
| } | ||||
| </script> | ||||
|   | ||||
| @@ -80,7 +80,7 @@ | ||||
|           <el-button | ||||
|             link | ||||
|             type="danger" | ||||
|             @click="handleForceLogout(scope.row.id)" | ||||
|             @click="handleForceLogout(scope.row.accessToken)" | ||||
|             v-hasPermi="['system:oauth2-token:delete']" | ||||
|           > | ||||
|             强退 | ||||
| @@ -142,12 +142,12 @@ const resetQuery = () => { | ||||
| } | ||||
|  | ||||
| /** 强制退出操作 */ | ||||
| const handleForceLogout = async (id: number) => { | ||||
| const handleForceLogout = async (accessToken: string) => { | ||||
|   try { | ||||
|     // 删除的二次确认 | ||||
|     await message.confirm('是否要强制退出用户') | ||||
|     // 发起删除 | ||||
|     await OAuth2AccessTokenApi.deleteAccessToken(id) | ||||
|     await OAuth2AccessTokenApi.deleteAccessToken(accessToken) | ||||
|     message.success(t('common.success')) | ||||
|     // 刷新列表 | ||||
|     await getList() | ||||
|   | ||||
| @@ -117,7 +117,7 @@ const resetForm = () => { | ||||
|     sort: undefined, | ||||
|     status: CommonStatusEnum.ENABLE, | ||||
|     remark: '' | ||||
|   } | ||||
|   } as any | ||||
|   formRef.value?.resetFields() | ||||
| } | ||||
| </script> | ||||
|   | ||||
| @@ -2,7 +2,7 @@ module.exports = { | ||||
|   root: true, | ||||
|   plugins: ['stylelint-order'], | ||||
|   customSyntax: 'postcss-html', | ||||
|   extends: ['stylelint-config-standard', 'stylelint-config-prettier'], | ||||
|   extends: ['stylelint-config-standard'], | ||||
|   rules: { | ||||
|     'selector-pseudo-class-no-unknown': [ | ||||
|       true, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV