!407 fix vue3 warn

Merge pull request !407 from xingyu/1.X-dev
pull/2/head
芋道源码 2023-02-09 23:25:16 +00:00 committed by Gitee
commit 7d01d00f73
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
61 changed files with 686 additions and 364 deletions

View File

@ -2001,7 +2001,7 @@ INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_i
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2116, '', 'mp:material:delete', 3, 3, 2113, '', '', '', 0, b'1', b'1', '1', '2023-01-14 15:35:37', '1', '2023-01-14 15:35:37', b'0'); INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2116, '', 'mp:material:delete', 3, 3, 2113, '', '', '', 0, b'1', b'1', '1', '2023-01-14 15:35:37', '1', '2023-01-14 15:35:37', b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2117, '', 'mp:material:upload-news-image', 3, 4, 2113, '', '', '', 0, b'1', b'1', '1', '2023-01-14 15:36:31', '1', '2023-01-14 15:36:31', b'0'); INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2117, '', 'mp:material:upload-news-image', 3, 4, 2113, '', '', '', 0, b'1', b'1', '1', '2023-01-14 15:36:31', '1', '2023-01-14 15:36:31', b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2118, '', 'mp:material:query', 3, 5, 2113, '', '', '', 0, b'1', b'1', '1', '2023-01-14 15:39:22', '1', '2023-01-14 15:39:22', b'0'); INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2118, '', 'mp:material:query', 3, 5, 2113, '', '', '', 0, b'1', b'1', '1', '2023-01-14 15:39:22', '1', '2023-01-14 15:39:22', b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2119, '', '', 2, 6, 2084, 'menu', 'button', 'mp/menu/index', 0, b'1', b'1', '1', '2023-01-14 17:43:54', '1', '2023-01-14 17:43:54', b'0'); INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2119, '', '', 2, 6, 2084, 'mpmenu', 'button', 'mp/menu/index', 0, b'1', b'1', '1', '2023-01-14 17:43:54', '1', '2023-01-14 17:43:54', b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2120, '', '', 2, 7, 2084, 'auto-reply', 'eye', 'mp/autoReply/index', 0, b'1', b'1', '1', '2023-01-15 22:13:09', '1', '2023-01-15 22:13:09', b'0'); INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2120, '', '', 2, 7, 2084, 'auto-reply', 'eye', 'mp/autoReply/index', 0, b'1', b'1', '1', '2023-01-15 22:13:09', '1', '2023-01-15 22:13:09', b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2121, '', 'mp:auto-reply:query', 3, 0, 2120, '', '', '', 0, b'1', b'1', '1', '2023-01-16 22:28:41', '1', '2023-01-16 22:28:41', b'0'); INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2121, '', 'mp:auto-reply:query', 3, 0, 2120, '', '', '', 0, b'1', b'1', '1', '2023-01-16 22:28:41', '1', '2023-01-16 22:28:41', b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2122, '', 'mp:auto-reply:create', 3, 1, 2120, '', '', '', 0, b'1', b'1', '1', '2023-01-16 22:28:54', '1', '2023-01-16 22:28:54', b'0'); INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2122, '', 'mp:auto-reply:create', 3, 1, 2120, '', '', '', 0, b'1', b'1', '1', '2023-01-16 22:28:54', '1', '2023-01-16 22:28:54', b'0');

View File

@ -21,10 +21,6 @@ const include = [
'animate.css', 'animate.css',
'vxe-table/es/style', 'vxe-table/es/style',
'web-storage-cache', 'web-storage-cache',
'element-plus',
'element-plus/es',
'element-plus/es/locale/lang/zh-cn',
'element-plus/es/locale/lang/en',
'@iconify/iconify', '@iconify/iconify',
'@vueuse/core', '@vueuse/core',
'@zxcvbn-ts/core', '@zxcvbn-ts/core',
@ -34,7 +30,37 @@ const include = [
'echarts/renderers', 'echarts/renderers',
'echarts-wordcloud', 'echarts-wordcloud',
'@wangeditor/editor', '@wangeditor/editor',
'@wangeditor/editor-for-vue' '@wangeditor/editor-for-vue',
'element-plus',
'element-plus/es',
'element-plus/es/locale/lang/zh-cn',
'element-plus/es/locale/lang/en',
'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'
] ]
const exclude = ['@iconify/json'] const exclude = ['@iconify/json']

View File

@ -1,6 +1,6 @@
{ {
"name": "yudao-ui-admin-vue3", "name": "yudao-ui-admin-vue3",
"version": "1.7.0-snapshot.1921", "version": "1.7.0-snapshot.1922",
"description": "基于vue3、vite4、element-plus、typesScript", "description": "基于vue3、vite4、element-plus、typesScript",
"author": "xingyu", "author": "xingyu",
"private": false, "private": false,
@ -30,7 +30,7 @@
"@vueuse/core": "^9.12.0", "@vueuse/core": "^9.12.0",
"@wangeditor/editor": "^5.1.23", "@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.10", "@wangeditor/editor-for-vue": "^5.1.10",
"@zxcvbn-ts/core": "^2.2.0", "@zxcvbn-ts/core": "^2.2.1",
"animate.css": "^4.1.1", "animate.css": "^4.1.1",
"axios": "^1.3.2", "axios": "^1.3.2",
"bpmn-js-token-simulation": "^0.10.0", "bpmn-js-token-simulation": "^0.10.0",
@ -68,17 +68,17 @@
"devDependencies": { "devDependencies": {
"@commitlint/cli": "^17.4.2", "@commitlint/cli": "^17.4.2",
"@commitlint/config-conventional": "^17.4.2", "@commitlint/config-conventional": "^17.4.2",
"@iconify/json": "^2.2.16", "@iconify/json": "^2.2.19",
"@intlify/unplugin-vue-i18n": "^0.8.1", "@intlify/unplugin-vue-i18n": "^0.8.2",
"@purge-icons/generated": "^0.9.0", "@purge-icons/generated": "^0.9.0",
"@types/intro.js": "^5.1.0", "@types/intro.js": "^5.1.0",
"@types/lodash-es": "^4.17.6", "@types/lodash-es": "^4.17.6",
"@types/node": "^18.11.19", "@types/node": "^18.13.0",
"@types/nprogress": "^0.2.0", "@types/nprogress": "^0.2.0",
"@types/qrcode": "^1.5.0", "@types/qrcode": "^1.5.0",
"@types/qs": "^6.9.7", "@types/qs": "^6.9.7",
"@typescript-eslint/eslint-plugin": "^5.50.0", "@typescript-eslint/eslint-plugin": "^5.51.0",
"@typescript-eslint/parser": "^5.50.0", "@typescript-eslint/parser": "^5.51.0",
"@vitejs/plugin-legacy": "^4.0.1", "@vitejs/plugin-legacy": "^4.0.1",
"@vitejs/plugin-vue": "^4.0.0", "@vitejs/plugin-vue": "^4.0.0",
"@vitejs/plugin-vue-jsx": "^3.0.0", "@vitejs/plugin-vue-jsx": "^3.0.0",
@ -91,11 +91,11 @@
"eslint-define-config": "^1.15.0", "eslint-define-config": "^1.15.0",
"eslint-plugin-prettier": "^4.2.1", "eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-vue": "^9.9.0", "eslint-plugin-vue": "^9.9.0",
"lint-staged": "^13.1.0", "lint-staged": "^13.1.1",
"postcss": "^8.4.21", "postcss": "^8.4.21",
"postcss-html": "^1.5.0", "postcss-html": "^1.5.0",
"postcss-scss": "^4.0.6", "postcss-scss": "^4.0.6",
"prettier": "^2.8.3", "prettier": "^2.8.4",
"rimraf": "^4.1.2", "rimraf": "^4.1.2",
"rollup": "^3.14.0", "rollup": "^3.14.0",
"sass": "^1.58.0", "sass": "^1.58.0",
@ -107,7 +107,7 @@
"stylelint-order": "^6.0.1", "stylelint-order": "^6.0.1",
"terser": "^5.16.3", "terser": "^5.16.3",
"typescript": "4.9.5", "typescript": "4.9.5",
"unplugin-auto-import": "^0.13.0", "unplugin-auto-import": "^0.14.2",
"unplugin-element-plus": "^0.6.0", "unplugin-element-plus": "^0.6.0",
"unplugin-vue-components": "^0.23.0", "unplugin-vue-components": "^0.23.0",
"vite": "4.1.1", "vite": "4.1.1",

File diff suppressed because it is too large Load Diff

View File

@ -22,6 +22,7 @@ export type ModelVO = {
status: number status: number
remark: string remark: string
createTime: string createTime: string
bpmnXml: string
} }
export const getModelPageApi = async (params) => { export const getModelPageApi = async (params) => {

View File

@ -0,0 +1,41 @@
import request from '@/config/axios'
// 创建公众号账号
export const createAccount = async (data) => {
return await request.post({ url: '/mp/account/create', data })
}
// 更新公众号账号
export const updateAccount = async (data) => {
return request.put({ url: '/mp/account/update', data: data })
}
// 删除公众号账号
export const deleteAccount = async (id) => {
return request.delete({ url: '/mp/account/delete?id=' + id, method: 'delete' })
}
// 获得公众号账号
export const getAccount = async (id) => {
return request.get({ url: '/mp/account/get?id=' + id })
}
// 获得公众号账号分页
export const getAccountPage = async (query) => {
return request.get({ url: '/mp/account/page', params: query })
}
// 获取公众号账号精简信息列表
export const getSimpleAccounts = async () => {
return request.get({ url: '/mp/account/list-all-simple' })
}
// 生成公众号二维码
export const generateAccountQrCode = async (id) => {
return request.put({ url: '/mp/account/generate-qr-code?id=' + id })
}
// 清空公众号 API 配额
export const clearAccountQuota = async (id) => {
return request.put({ url: '/mp/account/clear-quota?id=' + id })
}

View File

@ -0,0 +1,39 @@
import request from '@/config/axios'
// 创建公众号的自动回复
export const createAutoReply = (data) => {
return request.post({
url: '/mp/auto-reply/create',
data: data
})
}
// 更新公众号的自动回复
export const updateAutoReply = (data) => {
return request.put({
url: '/mp/auto-reply/update',
data: data
})
}
// 删除公众号的自动回复
export const deleteAutoReply = (id) => {
return request.delete({
url: '/mp/auto-reply/delete?id=' + id
})
}
// 获得公众号的自动回复
export const getAutoReply = (id) => {
return request.get({
url: '/mp/auto-reply/get?id=' + id
})
}
// 获得公众号的自动回复分页
export const getAutoReplyPage = (query) => {
return request.get({
url: '/mp/auto-reply/page',
params: query
})
}

View File

@ -0,0 +1,35 @@
import request from '@/config/axios'
// 获得公众号草稿分页
export const getDraftPage = (query) => {
return request.get({
url: '/mp/draft/page',
params: query
})
}
// 创建公众号草稿
export const createDraft = (accountId, articles) => {
return request.post({
url: '/mp/draft/create?accountId=' + accountId,
data: {
articles
}
})
}
// 更新公众号草稿
export const updateDraft = (accountId, mediaId, articles) => {
return request.put({
url: '/mp/draft/update?accountId=' + accountId + '&mediaId=' + mediaId,
method: 'put',
data: articles
})
}
// 删除公众号草稿
export const deleteDraft = (accountId, mediaId) => {
return request.delete({
url: '/mp/draft/delete?accountId=' + accountId + '&mediaId=' + mediaId
})
}

View File

@ -0,0 +1,23 @@
import request from '@/config/axios'
// 获得公众号素材分页
export const getFreePublishPage = (query) => {
return request.get({
url: '/mp/free-publish/page',
params: query
})
}
// 删除公众号素材
export const deleteFreePublish = (accountId, articleId) => {
return request.delete({
url: '/mp/free-publish/delete?accountId=' + accountId + '&articleId=' + articleId
})
}
// 发布公众号素材
export const submitFreePublish = (accountId, mediaId) => {
return request.post({
url: '/mp/free-publish/submit?accountId=' + accountId + '&mediaId=' + mediaId
})
}

View File

@ -0,0 +1,16 @@
import request from '@/config/axios'
// 获得公众号素材分页
export const getMaterialPage = (query) => {
return request.get({
url: '/mp/material/page',
params: query
})
}
// 删除公众号永久素材
export const deletePermanentMaterial = (id) => {
return request.delete({
url: '/mp/material/delete-permanent?id=' + id
})
}

View File

@ -0,0 +1,26 @@
import request from '@/config/axios'
// 获得公众号菜单列表
export const getMenuList = (accountId) => {
return request.get({
url: '/mp/menu/list?accountId=' + accountId
})
}
// 保存公众号菜单
export const saveMenu = (accountId, menus) => {
return request.post({
url: '/mp/menu/save',
data: {
accountId,
menus
}
})
}
// 删除公众号菜单
export const deleteMenu = (accountId) => {
return request.delete({
url: '/mp/menu/delete?accountId=' + accountId
})
}

View File

@ -0,0 +1,17 @@
import request from '@/config/axios'
// 获得公众号消息分页
export const getMessagePage = (query) => {
return request.get({
url: '/mp/message/page',
params: query
})
}
// 给粉丝发送消息
export const sendMessage = (data) => {
return request.post({
url: '/mp/message/send',
data: data
})
}

View File

@ -0,0 +1,31 @@
import request from '@/config/axios'
// 更新公众号粉丝
export const updateUser = (data) => {
return request.put({
url: '/mp/user/update',
data: data
})
}
// 获得公众号粉丝
export const getUser = (id) => {
return request.get({
url: '/mp/user/get?id=' + id
})
}
// 获得公众号粉丝分页
export const getUserPage = (query) => {
return request.get({
url: '/mp/user/page',
params: query
})
}
// 同步公众号粉丝
export const syncUser = (accountId) => {
return request.post({
url: '/mp/tag/sync?accountId=' + accountId
})
}

View File

@ -0,0 +1,33 @@
import request from '@/config/axios'
// 获取消息发送概况数据
export const getUpstreamMessage = (query) => {
return request.get({
url: '/mp/statistics/upstream-message',
params: query
})
}
// 用户增减数据
export const getUserSummary = (query) => {
return request.get({
url: '/mp/statistics/user-summary',
params: query
})
}
// 获得用户累计数据
export const getUserCumulate = (query) => {
return request.get({
url: '/mp/statistics/user-cumulate',
params: query
})
}
// 获得接口分析数据
export const getInterfaceSummary = (query) => {
return request.get({
url: '/mp/statistics/interface-summary',
params: query
})
}

View File

@ -0,0 +1,53 @@
import request from '@/config/axios'
// 创建公众号标签
export const createTag = (data) => {
return request.post({
url: '/mp/tag/create',
data: data
})
}
// 更新公众号标签
export const updateTag = (data) => {
return request.put({
url: '/mp/tag/update',
data: data
})
}
// 删除公众号标签
export const deleteTag = (id) => {
return request.delete({
url: '/mp/tag/delete?id=' + id
})
}
// 获得公众号标签
export const getTag = (id) => {
return request.get({
url: '/mp/tag/get?id=' + id
})
}
// 获得公众号标签分页
export const getTagPage = (query) => {
return request.get({
url: '/mp/tag/page',
params: query
})
}
// 获取公众号标签精简信息列表
export const getSimpleTags = () => {
return request.get({
url: '/mp/tag/list-all-simple'
})
}
// 同步公众号标签
export const syncTag = (accountId) => {
return request.post({
url: '/mp/tag/sync?accountId=' + accountId
})
}

View File

@ -1,5 +1,4 @@
<script setup lang="ts"> <script setup lang="ts">
import { ElCard, ElTooltip } from 'element-plus'
import { propTypes } from '@/utils/propTypes' import { propTypes } from '@/utils/propTypes'
import { useDesign } from '@/hooks/web/useDesign' import { useDesign } from '@/hooks/web/useDesign'

View File

@ -1,15 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import { CSSProperties } from 'vue'
import { cloneDeep } from 'lodash-es' import { cloneDeep } from 'lodash-es'
import { ref, computed, CSSProperties, toRef, watch } from 'vue'
import {
ElInput,
ElPopover,
ElDivider,
ElScrollbar,
ElTabs,
ElTabPane,
ElPagination
} from 'element-plus'
import { IconJson } from '@/components/Icon/src/data' import { IconJson } from '@/components/Icon/src/data'
type ParameterCSSProperties = (item?: string) => CSSProperties | undefined type ParameterCSSProperties = (item?: string) => CSSProperties | undefined

View File

@ -1,6 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import { propTypes } from '@/utils/propTypes' import { propTypes } from '@/utils/propTypes'
import { ElTooltip } from 'element-plus'
defineProps({ defineProps({
titel: propTypes.string.def(''), titel: propTypes.string.def(''),
message: propTypes.string.def(''), message: propTypes.string.def(''),

View File

@ -46,8 +46,8 @@
</div> </div>
</template> </template>
<script setup lang="ts" name="UploadImgs"> <script setup lang="ts" name="UploadImgs">
import { PropType, ref } from 'vue' import { PropType } from 'vue'
import { ElUpload, ElNotification, ElImageViewer } from 'element-plus' import { ElNotification } from 'element-plus'
import type { UploadProps, UploadFile, UploadUserFile } from 'element-plus' import type { UploadProps, UploadFile, UploadUserFile } from 'element-plus'
import { propTypes } from '@/utils/propTypes' import { propTypes } from '@/utils/propTypes'

View File

@ -1,6 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import { propTypes } from '@/utils/propTypes' import { propTypes } from '@/utils/propTypes'
import { ElScrollbar } from 'element-plus'
const slots = useSlots() const slots = useSlots()
const props = defineProps({ const props = defineProps({

View File

@ -5,7 +5,7 @@
</template> </template>
</VxeGrid> </VxeGrid>
</template> </template>
<script lang="ts" setup name="XTable"> <script setup lang="ts" name="XTable">
import { PropType } from 'vue' import { PropType } from 'vue'
import { SizeType, VxeGridInstance } from 'vxe-table' import { SizeType, VxeGridInstance } from 'vxe-table'
import { useAppStore } from '@/store/modules/app' import { useAppStore } from '@/store/modules/app'

View File

@ -242,20 +242,7 @@
</div> </div>
</template> </template>
<script setup lang="ts" name="ElementListeners"> <script setup lang="ts" name="ElementListeners">
import { ref, inject, watch, nextTick } from 'vue' import { ElMessageBox } from 'element-plus'
import {
ElMessageBox,
ElTable,
ElTableColumn,
ElDivider,
ElOption,
ElSelect,
ElInput,
ElDrawer,
ElDialog,
ElForm,
ElFormItem
} from 'element-plus'
import { createListenerObject, updateElementExtensions } from '../../utils' import { createListenerObject, updateElementExtensions } from '../../utils'
import { initListenerType, initListenerForm, listenerType, fieldType } from './utilSelf' import { initListenerType, initListenerForm, listenerType, fieldType } from './utilSelf'
const props = defineProps({ const props = defineProps({

View File

@ -287,7 +287,7 @@
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script lang="ts" setup name="UserTaskListeners"> <script setup lang="ts" name="UserTaskListeners">
import { ElMessageBox } from 'element-plus' import { ElMessageBox } from 'element-plus'
import { createListenerObject, updateElementExtensions } from '../../utils' import { createListenerObject, updateElementExtensions } from '../../utils'
import { initListenerForm, initListenerType, eventType, listenerType, fieldType } from './utilSelf' import { initListenerForm, initListenerType, eventType, listenerType, fieldType } from './utilSelf'

View File

@ -46,17 +46,7 @@
</div> </div>
</template> </template>
<script setup lang="ts" name="SignalAndMassage"> <script setup lang="ts" name="SignalAndMassage">
import { const message = useMessage()
ElMessage,
ElDialog,
ElForm,
ElFormItem,
ElTable,
ElTableColumn,
ElButton,
ElInput
} from 'element-plus'
import { ref, computed, onMounted } from 'vue'
const signalList = ref<any[]>([]) const signalList = ref<any[]>([])
const messageList = ref<any[]>([]) const messageList = ref<any[]>([])
const modelVisible = ref(false) const modelVisible = ref(false)
@ -99,13 +89,13 @@ const openModel = (type) => {
const addNewObject = () => { const addNewObject = () => {
if (modelType.value === 'message') { if (modelType.value === 'message') {
if (messageIdMap.value[modelObjectForm.value.id]) { if (messageIdMap.value[modelObjectForm.value.id]) {
ElMessage.error('该消息已存在请修改id后重新保存') message.error('该消息已存在请修改id后重新保存')
} }
const messageRef = window.bpmnInstances.moddle.create('bpmn:Message', modelObjectForm.value) const messageRef = window.bpmnInstances.moddle.create('bpmn:Message', modelObjectForm.value)
rootElements.value.push(messageRef) rootElements.value.push(messageRef)
} else { } else {
if (signalIdMap.value[modelObjectForm.value.id]) { if (signalIdMap.value[modelObjectForm.value.id]) {
ElMessage.error('该信号已存在请修改id后重新保存') message.error('该信号已存在请修改id后重新保存')
} }
const signalRef = window.bpmnInstances.moddle.create('bpmn:Signal', modelObjectForm.value) const signalRef = window.bpmnInstances.moddle.create('bpmn:Signal', modelObjectForm.value)
rootElements.value.push(signalRef) rootElements.value.push(signalRef)

View File

@ -45,8 +45,6 @@
</template> </template>
<script setup lang="ts" name="ScriptTask"> <script setup lang="ts" name="ScriptTask">
import { ref, watch, nextTick, onBeforeUnmount, toRaw } from 'vue'
import { ElInput, ElFormItem } from 'element-plus'
const props = defineProps({ const props = defineProps({
id: String, id: String,
type: String type: String

View File

@ -1,4 +1,11 @@
import axios, { AxiosInstance, AxiosRequestHeaders, AxiosResponse, AxiosError } from 'axios' import axios, {
AxiosInstance,
AxiosRequestHeaders,
AxiosResponse,
AxiosError,
InternalAxiosRequestConfig
} from 'axios'
import { ElMessage, ElMessageBox, ElNotification } from 'element-plus' import { ElMessage, ElMessageBox, ElNotification } from 'element-plus'
import qs from 'qs' import qs from 'qs'
import { config } from '@/config/axios/config' import { config } from '@/config/axios/config'
@ -35,7 +42,7 @@ const service: AxiosInstance = axios.create({
// request拦截器 // request拦截器
service.interceptors.request.use( service.interceptors.request.use(
(config) => { (config: InternalAxiosRequestConfig) => {
// 是否需要设置 token // 是否需要设置 token
let isToken = (config!.headers || {}).isToken === false let isToken = (config!.headers || {}).isToken === false
whiteList.some((v) => { whiteList.some((v) => {

View File

@ -51,12 +51,16 @@ declare module '@vue/runtime-core' {
ElIcon: typeof import('element-plus/es')['ElIcon'] ElIcon: typeof import('element-plus/es')['ElIcon']
ElImageViewer: typeof import('element-plus/es')['ElImageViewer'] ElImageViewer: typeof import('element-plus/es')['ElImageViewer']
ElInput: typeof import('element-plus/es')['ElInput'] ElInput: typeof import('element-plus/es')['ElInput']
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
ElLink: typeof import('element-plus/es')['ElLink'] ElLink: typeof import('element-plus/es')['ElLink']
ElOption: typeof import('element-plus/es')['ElOption'] ElOption: typeof import('element-plus/es')['ElOption']
ElPagination: typeof import('element-plus/es')['ElPagination']
ElPopover: typeof import('element-plus/es')['ElPopover'] ElPopover: typeof import('element-plus/es')['ElPopover']
ElRadio: typeof import('element-plus/es')['ElRadio'] ElRadio: typeof import('element-plus/es')['ElRadio']
ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
ElRow: typeof import('element-plus/es')['ElRow'] ElRow: typeof import('element-plus/es')['ElRow']
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
ElSelect: typeof import('element-plus/es')['ElSelect'] ElSelect: typeof import('element-plus/es')['ElSelect']
ElSkeleton: typeof import('element-plus/es')['ElSkeleton'] ElSkeleton: typeof import('element-plus/es')['ElSkeleton']
ElSwitch: typeof import('element-plus/es')['ElSwitch'] ElSwitch: typeof import('element-plus/es')['ElSwitch']
@ -66,6 +70,9 @@ declare module '@vue/runtime-core' {
ElTabs: typeof import('element-plus/es')['ElTabs'] ElTabs: typeof import('element-plus/es')['ElTabs']
ElTag: typeof import('element-plus/es')['ElTag'] ElTag: typeof import('element-plus/es')['ElTag']
ElTooltip: typeof import('element-plus/es')['ElTooltip'] ElTooltip: typeof import('element-plus/es')['ElTooltip']
ElTransfer: typeof import('element-plus/es')['ElTransfer']
ElTree: typeof import('element-plus/es')['ElTree']
ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
ElUpload: typeof import('element-plus/es')['ElUpload'] ElUpload: typeof import('element-plus/es')['ElUpload']
Error: typeof import('./../components/Error/src/Error.vue')['default'] Error: typeof import('./../components/Error/src/Error.vue')['default']
FlowCondition: typeof import('./../components/bpmnProcessDesigner/package/penal/flow-condition/FlowCondition.vue')['default'] FlowCondition: typeof import('./../components/bpmnProcessDesigner/package/penal/flow-condition/FlowCondition.vue')['default']

View File

@ -40,7 +40,6 @@ declare global {
const ref: typeof import('vue')['ref'] const ref: typeof import('vue')['ref']
const required: typeof import('@/utils/formRules')['required'] const required: typeof import('@/utils/formRules')['required']
const resolveComponent: typeof import('vue')['resolveComponent'] const resolveComponent: typeof import('vue')['resolveComponent']
const resolveDirective: typeof import('vue')['resolveDirective']
const shallowReactive: typeof import('vue')['shallowReactive'] const shallowReactive: typeof import('vue')['shallowReactive']
const shallowReadonly: typeof import('vue')['shallowReadonly'] const shallowReadonly: typeof import('vue')['shallowReadonly']
const shallowRef: typeof import('vue')['shallowRef'] const shallowRef: typeof import('vue')['shallowRef']
@ -65,3 +64,8 @@ declare global {
const watchPostEffect: typeof import('vue')['watchPostEffect'] const watchPostEffect: typeof import('vue')['watchPostEffect']
const watchSyncEffect: typeof import('vue')['watchSyncEffect'] const watchSyncEffect: typeof import('vue')['watchSyncEffect']
} }
// for type re-export
declare global {
// @ts-ignore
export type { Component,ComponentPublicInstance,ComputedRef,InjectionKey,PropType,Ref,VNode } from 'vue'
}

View File

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

View File

@ -1,10 +1,6 @@
<template> <template>
<Error @error-click="errorClick()" /> <Error @error-click="push('/')" />
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
const { push } = useRouter() const { push } = useRouter()
const errorClick = () => {
push('/')
}
</script> </script>

View File

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

View File

@ -1,7 +1,4 @@
import { reactive } from 'vue' import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
import { DICT_TYPE } from '@/utils/dict'
// CrudSchema // CrudSchema
const crudSchemas = reactive<VxeCrudSchema>({ const crudSchemas = reactive<VxeCrudSchema>({

View File

@ -46,20 +46,16 @@
</ContentWrap> </ContentWrap>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
// import
import { ref } from 'vue'
// import // import
import * as DefinitionApi from '@/api/bpm/definition' import * as DefinitionApi from '@/api/bpm/definition'
// import * as ModelApi from '@/api/bpm/model' // import * as ModelApi from '@/api/bpm/model'
import { allSchemas } from './definition.data' import { allSchemas } from './definition.data'
import { setConfAndFields2 } from '@/utils/formCreate'
const message = useMessage() // const message = useMessage() //
const router = useRouter() // const router = useRouter() //
const { query } = useRoute() // const { query } = useRoute() //
import { setConfAndFields2 } from '@/utils/formCreate'
// ========== ========== // ========== ==========
const queryParams = reactive({ const queryParams = reactive({
key: query.key key: query.key

View File

@ -1,4 +1,4 @@
import { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
const { t } = useI18n() // 国际化 const { t } = useI18n() // 国际化

View File

@ -1,7 +1,6 @@
<template> <template>
<ContentWrap> <ContentWrap>
<!-- 列表 --> <!-- 列表 -->
<div>
<XTable @register="registerTable"> <XTable @register="registerTable">
<!-- 操作新增 --> <!-- 操作新增 -->
<template #toolbar_buttons> <template #toolbar_buttons>
@ -41,12 +40,10 @@
<XModal v-model="detailOpen" width="800" title="表单详情"> <XModal v-model="detailOpen" width="800" title="表单详情">
<form-create :rule="detailPreview.rule" :option="detailPreview.option" v-if="detailOpen" /> <form-create :rule="detailPreview.rule" :option="detailPreview.option" v-if="detailOpen" />
</XModal> </XModal>
</div>
</ContentWrap> </ContentWrap>
</template> </template>
<script setup lang="ts" name="BpmForm"> <script setup lang="ts" name="BpmForm">
// import
// import // import
import * as FormApi from '@/api/bpm/form' import * as FormApi from '@/api/bpm/form'
import { allSchemas } from './form.data' import { allSchemas } from './form.data'
@ -54,7 +51,7 @@ import { allSchemas } from './form.data'
import { setConfAndFields2 } from '@/utils/formCreate' import { setConfAndFields2 } from '@/utils/formCreate'
const { t } = useI18n() // const { t } = useI18n() //
const router = useRouter() // const { push } = useRouter() //
// //
const [registerTable, { deleteData }] = useXTable({ const [registerTable, { deleteData }] = useXTable({
@ -65,14 +62,14 @@ const [registerTable, { deleteData }] = useXTable({
// //
const handleCreate = () => { const handleCreate = () => {
router.push({ push({
name: 'bpmFormEditor' name: 'bpmFormEditor'
}) })
} }
// //
const handleUpdate = async (rowId: number) => { const handleUpdate = async (rowId: number) => {
await router.push({ await push({
name: 'bpmFormEditor', name: 'bpmFormEditor',
query: { query: {
id: rowId id: rowId

View File

@ -1,4 +1,4 @@
import { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
const { t } = useI18n() // 国际化 const { t } = useI18n() // 国际化

View File

@ -1,9 +1,5 @@
import { reactive } from 'vue' import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
import { useI18n } from '@/hooks/web/useI18n'
import { required } from '@/utils/formRules'
import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
import { DICT_TYPE } from '@/utils/dict'
const { t } = useI18n() // 国际化 const { t } = useI18n() // 国际化
// 表单校验 // 表单校验

View File

@ -27,7 +27,6 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref, onMounted } from 'vue'
// import { translations } from '@/components/bpmnProcessDesigner/src/translations' // import { translations } from '@/components/bpmnProcessDesigner/src/translations'
// //
import CustomContentPadProvider from '@/components/bpmnProcessDesigner/package/designer/plugins/content-pad' import CustomContentPadProvider from '@/components/bpmnProcessDesigner/package/designer/plugins/content-pad'
@ -36,11 +35,10 @@ import CustomPaletteProvider from '@/components/bpmnProcessDesigner/package/desi
// import xmlObj2json from "./utils/xml2json"; // import xmlObj2json from "./utils/xml2json";
// import myProcessDesigner from '@/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue' // import myProcessDesigner from '@/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue'
// import MyProcessPalette from '@/components/bpmnProcessDesigner/package/palette/ProcessPalette.vue' // import MyProcessPalette from '@/components/bpmnProcessDesigner/package/palette/ProcessPalette.vue'
import { createModelApi, getModelApi, updateModelApi } from '@/api/bpm/model' import { createModelApi, getModelApi, updateModelApi, ModelVO } from '@/api/bpm/model'
import { useRouter } from 'vue-router'
import { ElMessage } from 'element-plus'
const router = useRouter() const router = useRouter()
const message = useMessage()
// //
// import MyProcessPanel from "../package/process-panel/ProcessPanel"; // import MyProcessPanel from "../package/process-panel/ProcessPanel";
@ -63,14 +61,14 @@ const controlForm = ref({
// CustomPaletteProvider // CustomPaletteProvider
// }) // })
// //
const model = ref({}) const model = ref<ModelVO>()
onMounted(() => { onMounted(() => {
// modelId // modelId
const modelId = router.currentRoute.value.query && router.currentRoute.value.query.modelId const modelId = router.currentRoute.value.query && router.currentRoute.value.query.modelId
console.log(modelId, 'modelId') console.log(modelId, 'modelId')
if (modelId) { if (modelId) {
// let data = '4b4909d8-97e7-11ec-8e20-862bc1a4a054' // let data = '4b4909d8-97e7-11ec-8e20-862bc1a4a054'
getModelApi(modelId).then((data) => { getModelApi(modelId as unknown as number).then((data) => {
console.log(data, 'response') console.log(data, 'response')
xmlString.value = data.bpmnXml xmlString.value = data.bpmnXml
model.value = { model.value = {
@ -109,9 +107,9 @@ const initModeler = (item) => {
} }
const save = (bpmnXml) => { const save = (bpmnXml) => {
const data = { const data: ModelVO = {
...model.value, ...model.value,
bpmnXml: bpmnXml // this.bpmnXml bpmnXml: bpmnXml // bpmnXml
} }
console.log(data, 'data') console.log(data, 'data')
@ -119,9 +117,7 @@ const save = (bpmnXml) => {
if (data.id) { if (data.id) {
updateModelApi(data).then((response) => { updateModelApi(data).then((response) => {
console.log(response, 'response') console.log(response, 'response')
// this.$modal.msgSuccess("") message.success('修改成功')
ElMessage.success('修改成功')
// //
close() close()
}) })
@ -130,15 +126,13 @@ const save = (bpmnXml) => {
// //
createModelApi(data).then((response) => { createModelApi(data).then((response) => {
console.log(response, 'response1') console.log(response, 'response1')
// this.$modal.msgSuccess("") message.success('保存成功')
ElMessage.success('保存成功')
// //
close() close()
}) })
} }
/** 关闭按钮 */ /** 关闭按钮 */
const close = () => { const close = () => {
// this.$tab.closeOpenPage({ path: "/bpm/manager/model" })
router.push({ path: '/bpm/manager/model' }) router.push({ path: '/bpm/manager/model' })
} }
</script> </script>

View File

@ -21,7 +21,7 @@ import { rules, allSchemas } from './leave.data'
const { t } = useI18n() // const { t } = useI18n() //
const message = useMessage() // const message = useMessage() //
const router = useRouter() // const { push } = useRouter() //
// //
const actionLoading = ref(false) // Loading const actionLoading = ref(false) // Loading
@ -41,15 +41,13 @@ const submitForm = async () => {
const data = unref(formRef)?.formModel as LeaveApi.LeaveVO const data = unref(formRef)?.formModel as LeaveApi.LeaveVO
// data.startTime = XEUtils.toDateString(data.startTime, 'yyyy-MM-dd HH:mm:ss') // data.startTime = XEUtils.toDateString(data.startTime, 'yyyy-MM-dd HH:mm:ss')
// data.endTime = XEUtils.toDateString(data.endTime, 'yyyy-MM-dd HH:mm:ss') // data.endTime = XEUtils.toDateString(data.endTime, 'yyyy-MM-dd HH:mm:ss')
data.startTime = Date.parse(new Date(data.startTime).toString()) data.startTime = Date.parse(new Date(data.startTime).toString()).toString()
data.endTime = Date.parse(new Date(data.endTime).toString()) data.endTime = Date.parse(new Date(data.endTime).toString()).toString()
// //
await LeaveApi.createLeaveApi(data) await LeaveApi.createLeaveApi(data)
message.success(t('common.createSuccess')) message.success(t('common.createSuccess'))
// //
router.push({ push('/bpm/oa/leave')
path: '/bpm/oa/leave'
})
} finally { } finally {
actionLoading.value = false actionLoading.value = false
} }

View File

@ -5,7 +5,7 @@
</ContentWrap> </ContentWrap>
</template> </template>
<script lang="ts" setup> <script setup lang="ts">
// import // import
import * as LeaveApi from '@/api/bpm/leave' import * as LeaveApi from '@/api/bpm/leave'
import { allSchemas } from '@/views/bpm/oa/leave/leave.data' import { allSchemas } from '@/views/bpm/oa/leave/leave.data'

View File

@ -33,7 +33,7 @@ import * as ProcessInstanceApi from '@/api/bpm/processInstance'
const { t } = useI18n() // const { t } = useI18n() //
const message = useMessage() // const message = useMessage() //
const router = useRouter() // const { push } = useRouter() //
const [registerTable, { reload }] = useXTable({ const [registerTable, { reload }] = useXTable({
allSchemas: allSchemas, allSchemas: allSchemas,
@ -42,7 +42,7 @@ const [registerTable, { reload }] = useXTable({
// //
const handleCreate = () => { const handleCreate = () => {
router.push({ push({
name: 'OALeaveCreate' name: 'OALeaveCreate'
}) })
} }
@ -63,7 +63,7 @@ const cancelLeave = (row) => {
// //
const handleDetail = (row) => { const handleDetail = (row) => {
router.push({ push({
name: 'OALeaveDetail', name: 'OALeaveDetail',
query: { query: {
id: row.id id: row.id
@ -73,7 +73,7 @@ const handleDetail = (row) => {
// //
const handleProcessDetail = (row) => { const handleProcessDetail = (row) => {
router.push({ push({
name: 'BpmProcessInstanceDetail', name: 'BpmProcessInstanceDetail',
query: { query: {
id: row.processInstanceId id: row.processInstanceId

View File

@ -1,4 +1,4 @@
import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas' import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
const { t } = useI18n() // 国际化 const { t } = useI18n() // 国际化

View File

@ -1,4 +1,4 @@
import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas' import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
// crudSchemas // crudSchemas
const crudSchemas = reactive<VxeCrudSchema>({ const crudSchemas = reactive<VxeCrudSchema>({

View File

@ -1,7 +1,5 @@
import { reactive } from 'vue' import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
import { useI18n } from '@/hooks/web/useI18n'
import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
import { DICT_TYPE } from '@/utils/dict'
const { t } = useI18n() // 国际化 const { t } = useI18n() // 国际化
// CrudSchema // CrudSchema

View File

@ -1,4 +1,4 @@
import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas' import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
const { t } = useI18n() // 国际化 const { t } = useI18n() // 国际化

View File

@ -12,13 +12,12 @@
</XTable> </XTable>
</ContentWrap> </ContentWrap>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
// import // import
import { allSchemas } from './done.data' import { allSchemas } from './done.data'
import * as TaskApi from '@/api/bpm/task' import * as TaskApi from '@/api/bpm/task'
const router = useRouter() // const { push } = useRouter() //
const [registerTable] = useXTable({ const [registerTable] = useXTable({
allSchemas: allSchemas, allSchemas: allSchemas,
@ -27,7 +26,7 @@ const [registerTable] = useXTable({
// //
const handleAudit = (row) => { const handleAudit = (row) => {
router.push({ push({
name: 'BpmProcessInstanceDetail', name: 'BpmProcessInstanceDetail',
query: { query: {
id: row.processInstance.id id: row.processInstance.id

View File

@ -18,7 +18,7 @@
import { allSchemas } from './todo.data' import { allSchemas } from './todo.data'
import * as TaskApi from '@/api/bpm/task' import * as TaskApi from '@/api/bpm/task'
const router = useRouter() // const { push } = useRouter() //
const [registerTable] = useXTable({ const [registerTable] = useXTable({
allSchemas: allSchemas, allSchemas: allSchemas,
@ -27,7 +27,7 @@ const [registerTable] = useXTable({
// //
const handleAudit = (row) => { const handleAudit = (row) => {
router.push({ push({
name: 'BpmProcessInstanceDetail', name: 'BpmProcessInstanceDetail',
query: { query: {
id: row.processInstance.id id: row.processInstance.id

View File

@ -1,4 +1,4 @@
import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas' import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
const { t } = useI18n() // 国际化 const { t } = useI18n() // 国际化

View File

@ -1,4 +1,4 @@
import { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
// 表单校验 // 表单校验
export const rules = reactive({ export const rules = reactive({

View File

@ -0,0 +1,3 @@
<template>
<span>开发中</span>
</template>

View File

@ -0,0 +1,3 @@
<template>
<span>开发中</span>
</template>

View File

@ -0,0 +1,3 @@
<template>
<span>开发中</span>
</template>

View File

@ -0,0 +1,3 @@
<template>
<span>开发中</span>
</template>

View File

@ -0,0 +1,3 @@
<template>
<span>开发中</span>
</template>

View File

@ -0,0 +1,3 @@
<template>
<span>开发中</span>
</template>

View File

@ -0,0 +1,3 @@
<template>
<span>开发中</span>
</template>

View File

@ -0,0 +1,3 @@
<template>
<span>开发中</span>
</template>

View File

@ -0,0 +1,3 @@
<template>
<span>开发中</span>
</template>

View File

@ -39,7 +39,7 @@ const emit = defineEmits(['success'])
// //
const modelVisible = ref(false) // const modelVisible = ref(false) //
const modelTitle = ref('edit') // const modelTitle = ref('update') //
const modelLoading = ref(false) // loading const modelLoading = ref(false) // loading
const actionType = ref('') // const actionType = ref('') //
const actionLoading = ref(false) // Loading const actionLoading = ref(false) // Loading
@ -67,7 +67,7 @@ const openModal = async (type: string, rowId?: number) => {
const submitForm = async () => { const submitForm = async () => {
const elForm = unref(formRef)?.getElFormRef() const elForm = unref(formRef)?.getElFormRef()
if (!elForm) return if (!elForm) return
elForm.validate(async (valid) => { const valid = await elForm.validate()
if (valid) { if (valid) {
actionLoading.value = true actionLoading.value = true
// //
@ -86,7 +86,6 @@ const submitForm = async () => {
actionLoading.value = false actionLoading.value = false
} }
} }
})
} }
defineExpose({ openModal: openModal }) defineExpose({ openModal: openModal })

View File

@ -51,7 +51,7 @@ import { allSchemas } from './post.data'
import PostForm from './PostForm.vue' import PostForm from './PostForm.vue'
const { t } = useI18n() // const { t } = useI18n() //
const modalRef = ref()
// //
const [registerTable, { reload, deleteData, exportList }] = useXTable({ const [registerTable, { reload, deleteData, exportList }] = useXTable({
allSchemas: allSchemas, allSchemas: allSchemas,
@ -59,7 +59,8 @@ const [registerTable, { reload, deleteData, exportList }] = useXTable({
deleteApi: PostApi.deletePostApi, deleteApi: PostApi.deletePostApi,
exportListApi: PostApi.exportPostApi exportListApi: PostApi.exportPostApi
}) })
//
const modalRef = ref()
const openModal = (type: string, rowId?: number) => { const openModal = (type: string, rowId?: number) => {
modalRef.value.openModal(type, rowId) modalRef.value.openModal(type, rowId)
} }

View File

@ -554,7 +554,7 @@
default-expand-all default-expand-all
draggable draggable
> >
<span> <span slot-scope="{ node, data }">
<span class="node-label"> <span class="node-label">
<svg-icon class="node-icon" :icon-class="data.__config__?data.__config__.tagIcon:data.tagIcon" /> <svg-icon class="node-icon" :icon-class="data.__config__?data.__config__.tagIcon:data.tagIcon" />
{{ node.label }} {{ node.label }}