Kaynağa Gözat

😁1、调整组件事件defineEmits 2、升级所有依赖及其他优化

zuohuaijun 2 yıl önce
ebeveyn
işleme
9774024f35
51 değiştirilmiş dosya ile 286 ekleme ve 337 silme
  1. 5 5
      Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj
  2. 21 0
      Admin.NET/Admin.NET.Core/Service/Config/SysConfigService.cs
  3. 2 1
      Admin.NET/Admin.NET.Web.Core/Properties/PublishProfiles/FolderProfile.pubxml.user
  4. 4 4
      Web/src/App.vue
  5. 76 0
      Web/src/api-services/apis/sys-config-api.ts
  6. 2 4
      Web/src/components/cropper/index.vue
  7. 11 11
      Web/src/layout/navBars/topBar/user.vue
  8. 1 0
      Web/src/stores/userInfo.ts
  9. 0 12
      Web/src/types/mitt.d.ts
  10. 1 2
      Web/src/views/home/notice/index.vue
  11. 2 3
      Web/src/views/system/codeGen/component/editCodeGenDialog.vue
  12. 2 2
      Web/src/views/system/codeGen/component/fkDialog.vue
  13. 11 4
      Web/src/views/system/codeGen/component/genConfigDialog.vue
  14. 3 3
      Web/src/views/system/codeGen/component/treeDialog.vue
  15. 11 23
      Web/src/views/system/codeGen/index.vue
  16. 2 3
      Web/src/views/system/config/component/editConfig.vue
  17. 11 10
      Web/src/views/system/config/index.vue
  18. 2 2
      Web/src/views/system/database/component/addColumn.vue
  19. 2 2
      Web/src/views/system/database/component/addTable.vue
  20. 2 2
      Web/src/views/system/database/component/editColumn.vue
  21. 2 2
      Web/src/views/system/database/component/editTable.vue
  22. 2 2
      Web/src/views/system/database/component/genEntity.vue
  23. 13 24
      Web/src/views/system/database/index.vue
  24. 7 13
      Web/src/views/system/dict/component/dictDataDialog.vue
  25. 2 3
      Web/src/views/system/dict/component/editDictData.vue
  26. 2 3
      Web/src/views/system/dict/component/editDictType.vue
  27. 3 11
      Web/src/views/system/dict/index.vue
  28. 2 11
      Web/src/views/system/file/index.vue
  29. 2 3
      Web/src/views/system/job/component/editJobDetail.vue
  30. 2 3
      Web/src/views/system/job/component/editJobTrigger.vue
  31. 1 1
      Web/src/views/system/job/component/jobCluster.vue
  32. 4 12
      Web/src/views/system/job/index.vue
  33. 2 3
      Web/src/views/system/menu/component/editMenu.vue
  34. 3 11
      Web/src/views/system/menu/index.vue
  35. 2 3
      Web/src/views/system/notice/component/editNotice.vue
  36. 3 11
      Web/src/views/system/notice/index.vue
  37. 8 3
      Web/src/views/system/org/component/editOrg.vue
  38. 6 15
      Web/src/views/system/org/index.vue
  39. 2 3
      Web/src/views/system/pos/component/editPos.vue
  40. 3 11
      Web/src/views/system/pos/index.vue
  41. 8 4
      Web/src/views/system/region/component/editRegion.vue
  42. 6 15
      Web/src/views/system/region/index.vue
  43. 3 4
      Web/src/views/system/role/component/editRole.vue
  44. 3 11
      Web/src/views/system/role/index.vue
  45. 2 3
      Web/src/views/system/tenant/component/editTenant.vue
  46. 3 11
      Web/src/views/system/tenant/index.vue
  47. 2 3
      Web/src/views/system/user/component/editUser.vue
  48. 9 21
      Web/src/views/system/user/component/userCenter.vue
  49. 3 11
      Web/src/views/system/user/index.vue
  50. 2 2
      Web/src/views/system/weChatUser/component/editWeChatUser.vue
  51. 3 11
      Web/src/views/system/weChatUser/index.vue

+ 5 - 5
Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj

@@ -21,9 +21,9 @@
     <PackageReference Include="DotNetCore.Compile.Environment" Version="3.2.0" />
     <PackageReference Include="DotNetCore.Natasha.CSharp" Version="5.2.2.1" />
     <PackageReference Include="FluentEmail.Smtp" Version="3.0.2" />
-    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.8.8.10" />
-    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.8.8.10" />
-    <PackageReference Include="Furion.Pure" Version="4.8.8.10" />
+    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.8.8.14" />
+    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.8.8.14" />
+    <PackageReference Include="Furion.Pure" Version="4.8.8.14" />
     <PackageReference Include="IPTools.China" Version="1.6.0" />
     <PackageReference Include="Lazy.Captcha.Core" Version="2.0.3" />
     <PackageReference Include="Magicodes.IE.Excel" Version="2.7.4.4" />
@@ -32,9 +32,9 @@
     <PackageReference Include="NEST" Version="7.17.5" />
     <PackageReference Include="NewLife.Redis" Version="5.3.2023.401" />
     <PackageReference Include="OnceMi.AspNetCore.OSS" Version="1.1.9" />
-    <PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="2.26.1" />
+    <PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="2.27.0" />
     <PackageReference Include="SKIT.FlurlHttpClient.Wechat.TenpayV3" Version="2.18.0" />
-    <PackageReference Include="SqlSugarCore" Version="5.1.4.69" />
+    <PackageReference Include="SqlSugarCore" Version="5.1.4.72" />
     <PackageReference Include="System.Linq.Dynamic.Core" Version="1.3.2" />
     <PackageReference Include="UAParser" Version="3.1.47" />
     <PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />

+ 21 - 0
Admin.NET/Admin.NET.Core/Service/Config/SysConfigService.cs

@@ -94,6 +94,27 @@ public class SysConfigService : IDynamicApiController, ITransient
         _sysCacheService.Remove(config.Code);
     }
 
+    /// <summary>
+    /// 批量删除参数配置
+    /// </summary>
+    /// <param name="ids"></param>
+    /// <returns></returns>
+    [ApiDescriptionSettings(Name = "BatchDelete"), HttpPost]
+    [DisplayName("批量删除参数配置")]
+    public async Task BatchDeleteConfig(List<long> ids)
+    {
+        foreach (var id in ids)
+        {
+            var config = await _sysConfigRep.GetFirstAsync(u => u.Id == id);
+            if (config.SysFlag == YesNoEnum.Y) // 禁止删除系统参数
+                continue;
+
+            await _sysConfigRep.DeleteAsync(config);
+
+            _sysCacheService.Remove(config.Code);
+        }
+    }
+
     /// <summary>
     /// 获取参数配置详情
     /// </summary>

+ 2 - 1
Admin.NET/Admin.NET.Web.Core/Properties/PublishProfiles/FolderProfile.pubxml.user

@@ -4,6 +4,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
 -->
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
-    <History>False|2022-02-27T17:38:53.9447466Z;False|2022-02-28T01:34:59.9607664+08:00;False|2022-02-28T01:34:04.9376995+08:00;</History>
+    <History>True|2023-05-08T16:43:56.1185253Z;False|2022-02-28T01:38:53.9447466+08:00;False|2022-02-28T01:34:59.9607664+08:00;False|2022-02-28T01:34:04.9376995+08:00;</History>
+    <LastFailureDetails />
   </PropertyGroup>
 </Project>

+ 4 - 4
Web/src/App.vue

@@ -20,7 +20,7 @@ import other from '/@/utils/other';
 import { Local, Session } from '/@/utils/storage';
 import mittBus from '/@/utils/mitt';
 import setIntroduction from '/@/utils/setIconfont';
-import checkUpdate from '/@/utils/auto-update';
+// import checkUpdate from '/@/utils/auto-update';
 
 // 引入组件
 const LockScreen = defineAsyncComponent(() => import('/@/layout/lockScreen/index.vue'));
@@ -54,9 +54,9 @@ const setLockScreen = computed(() => {
 // 	return isVersion;
 // });
 
-checkUpdate(() => {
-	needUpdate.value = true;
-}, 60000);
+// checkUpdate(() => {
+// 	needUpdate.value = true;
+// }, 60000);
 
 // 获取全局组件大小
 const getGlobalComponentSize = computed(() => {

+ 76 - 0
Web/src/api-services/apis/sys-config-api.ts

@@ -71,6 +71,47 @@ export const SysConfigApiAxiosParamCreator = function (configuration?: Configura
                 options: localVarRequestOptions,
             };
         },
+        /**
+         * 
+         * @summary 批量删除参数配置
+         * @param {Array<number>} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiSysConfigBatchDeletePost: async (body?: Array<number>, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/sysConfig/batchDelete`;
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, 'https://example.com');
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+            const localVarRequestOptions :AxiosRequestConfig = { method: 'POST', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+
+            localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';
+
+            const query = new URLSearchParams(localVarUrlObj.search);
+            for (const key in localVarQueryParameter) {
+                query.set(key, localVarQueryParameter[key]);
+            }
+            for (const key in options.params) {
+                query.set(key, options.params[key]);
+            }
+            localVarUrlObj.search = (new URLSearchParams(query)).toString();
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+            const needsSerialization = (typeof body !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json';
+            localVarRequestOptions.data =  needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : (body || "");
+
+            return {
+                url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
+                options: localVarRequestOptions,
+            };
+        },
         /**
          * 
          * @summary 删除参数配置
@@ -334,6 +375,20 @@ export const SysConfigApiFp = function(configuration?: Configuration) {
                 return axios.request(axiosRequestArgs);
             };
         },
+        /**
+         * 
+         * @summary 批量删除参数配置
+         * @param {Array<number>} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiSysConfigBatchDeletePost(body?: Array<number>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<void>>> {
+            const localVarAxiosArgs = await SysConfigApiAxiosParamCreator(configuration).apiSysConfigBatchDeletePost(body, options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
         /**
          * 
          * @summary 删除参数配置
@@ -435,6 +490,16 @@ export const SysConfigApiFactory = function (configuration?: Configuration, base
         async apiSysConfigAddPost(body?: AddConfigInput, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
             return SysConfigApiFp(configuration).apiSysConfigAddPost(body, options).then((request) => request(axios, basePath));
         },
+        /**
+         * 
+         * @summary 批量删除参数配置
+         * @param {Array<number>} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiSysConfigBatchDeletePost(body?: Array<number>, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
+            return SysConfigApiFp(configuration).apiSysConfigBatchDeletePost(body, options).then((request) => request(axios, basePath));
+        },
         /**
          * 
          * @summary 删除参数配置
@@ -514,6 +579,17 @@ export class SysConfigApi extends BaseAPI {
     public async apiSysConfigAddPost(body?: AddConfigInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
         return SysConfigApiFp(this.configuration).apiSysConfigAddPost(body, options).then((request) => request(this.axios, this.basePath));
     }
+    /**
+     * 
+     * @summary 批量删除参数配置
+     * @param {Array<number>} [body] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof SysConfigApi
+     */
+    public async apiSysConfigBatchDeletePost(body?: Array<number>, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
+        return SysConfigApiFp(this.configuration).apiSysConfigBatchDeletePost(body, options).then((request) => request(this.axios, this.basePath));
+    }
     /**
      * 
      * @summary 删除参数配置

+ 2 - 4
Web/src/components/cropper/index.vue

@@ -51,7 +51,6 @@
 
 <script setup lang="ts" name="cropper">
 import { reactive, nextTick, ref } from 'vue';
-import mittBus from '/@/utils/mitt';
 import Cropper from 'cropperjs';
 import 'cropperjs/dist/cropper.css';
 import { genFileId } from 'element-plus';
@@ -63,7 +62,7 @@ const props = defineProps({
 		default: () => '',
 	},
 });
-
+const emits = defineEmits(['uploadCropperImg']);
 const uploadSignRef = ref<UploadInstance>();
 // 定义变量内容
 const state = reactive({
@@ -93,13 +92,12 @@ const onCancel = () => {
 // 更换/上传
 const onSubmit = async () => {
 	const img = await getCroppedCanvas();
-	mittBus.emit('uploadCropperImg', { img: img });
+	emits('uploadCropperImg', { img: img });
 	closeDialog();
 };
 // 初始化cropperjs图片裁剪
 const initCropper = () => {
 	const letImg = <HTMLImageElement>document.querySelector('.cropper-warp-left-img');
-	console.log(letImg);
 	state.cropper = new Cropper(letImg, {
 		viewMode: 1,
 		dragMode: 'none',

+ 11 - 11
Web/src/layout/navBars/topBar/user.vue

@@ -218,19 +218,19 @@ onMounted(async () => {
 	// 接收站内信
 	signalR.on('PublicNotice', receiveNotice);
 
-	// 处理消息已读
-	mittBus.on('noticeRead', (id) => {
-		const notice = state.noticeList.find((r: any) => r.id == id);
-		if (notice == undefined) return;
+	// // 处理消息已读
+	// mittBus.on('noticeRead', (id) => {
+	// 	const notice = state.noticeList.find((r: any) => r.id == id);
+	// 	if (notice == undefined) return;
 
-		// 设置已读
-		notice.readStatus = 1;
-	});
-});
-// 页面卸载时
-onUnmounted(() => {
-	mittBus.off('noticeRead', () => {});
+	// 	// 设置已读
+	// 	notice.readStatus = 1;
+	// });
 });
+// // 页面卸载时
+// onUnmounted(() => {
+// 	mittBus.off('noticeRead', () => {});
+// });
 
 const receiveNotice = (msg: any) => {
 	state.noticeList.unshift(msg);

+ 1 - 0
Web/src/stores/userInfo.ts

@@ -5,6 +5,7 @@ import { useThemeConfig } from '/@/stores/themeConfig';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysAuthApi, SysConstApi } from '/@/api-services/api';
+const baseUrl = import.meta.env.VITE_API_URL;
 
 /**
  * 用户信息

+ 0 - 12
Web/src/types/mitt.d.ts

@@ -23,18 +23,6 @@ declare type MittType<T = any> = {
 	openShareTagsView?: string;
 	onTagsViewRefreshRouterView?: T;
 	onCurrentContextmenuClick?: T;
-
-	// 自定义
-	submitRefresh?: string; // 通用编辑提交刷新
-	submitRefreshDictData?: string; // 字典编辑提交刷新
-	submitRefreshTable?: string; // 库表管理表刷新
-	submitRefreshColumn?: string; // 库表管理列刷新
-	addTableSubmitted?: string; // 库表管理增加表刷新
-	submitRefreshFk?: string; // 代码生成主键刷新
-
-	uploadCropperImg?: any; // 上传裁剪图片
-
-	noticeRead: number; // 消息已读事件
 };
 
 // mitt 参数类型定义

+ 1 - 2
Web/src/views/home/notice/index.vue

@@ -129,8 +129,7 @@ const viewDetail = async (row: any) => {
 	state.dialogVisible = true;
 
 	row.readStatus = 1;
-
-	mittBus.emit('noticeRead', row.sysNotice.id);
+	// mittBus.emit('noticeRead', row.sysNotice.id);
 	await getAPI(SysNoticeApi).apiSysNoticeSetReadPost({ id: row.sysNotice.id });
 };
 

+ 2 - 3
Web/src/views/system/codeGen/component/editCodeGenDialog.vue

@@ -103,7 +103,6 @@
 
 <script lang="ts" setup name="sysEditCodeGen">
 import { onMounted, reactive, ref } from 'vue';
-import mittBus from '/@/utils/mitt';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysCodeGenApi, SysDictDataApi, SysMenuApi } from '/@/api-services/api';
@@ -112,7 +111,7 @@ import { UpdateCodeGenInput, AddCodeGenInput, SysMenu } from '/@/api-services/mo
 const props = defineProps({
 	title: String,
 });
-
+const emits = defineEmits(['handleQuery']);
 const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
@@ -153,7 +152,7 @@ const openDialog = (row: any) => {
 
 // 关闭弹窗
 const closeDialog = () => {
-	mittBus.emit('submitRefresh');
+	emits('handleQuery');
 	state.isShowDialog = false;
 };
 

+ 2 - 2
Web/src/views/system/codeGen/component/fkDialog.vue

@@ -38,12 +38,12 @@
 
 <script lang="ts" setup name="sysCodeGenFk">
 import { onMounted, reactive, ref } from 'vue';
-import mittBus from '/@/utils/mitt';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysCodeGenApi } from '/@/api-services/api';
 
 var rowdata = {} as any;
+const emits = defineEmits(['submitRefreshFk']);
 const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
@@ -101,7 +101,7 @@ const closeDialog = () => {
 	rowdata.fkColumnName = state.ruleForm.columnName;
 	let columnData = state.columnData.filter((x) => x.columnName == state.ruleForm.columnName);
 	rowdata.fkColumnNetType = columnData.length == 0 ? '' : columnData[0].netType;
-	mittBus.emit('submitRefreshFk', rowdata);
+	emits('submitRefreshFk', rowdata);
 	state.isShowDialog = false;
 };
 

+ 11 - 4
Web/src/views/system/codeGen/component/genConfigDialog.vue

@@ -60,8 +60,9 @@
 				</span>
 			</template>
 		</el-dialog>
-		<fkDialog ref="fkDialogRef" />
-		<treeDialog ref="treeDialogRef" />
+
+		<fkDialog ref="fkDialogRef" @submitRefreshFk="submitRefreshFk" />
+		<treeDialog ref="treeDialogRef" @submitRefreshFk="submitRefreshFk" />
 	</div>
 </template>
 
@@ -75,6 +76,7 @@ import { getAPI } from '/@/utils/axios-utils';
 import { SysCodeGenConfigApi, SysConstApi, SysDictDataApi, SysDictTypeApi, SysEnumApi } from '/@/api-services/api';
 import { CodeGenConfig } from '/@/api-services/models/code-gen-config';
 
+const emits = defineEmits(['handleQuery']);
 const fkDialogRef = ref();
 const treeDialogRef = ref();
 const state = reactive({
@@ -112,6 +114,11 @@ onMounted(async () => {
 	});
 });
 
+// 更新主键
+const submitRefreshFk = (data: any) => {
+	state.tableData[data.index] = data;
+};
+
 onUnmounted(() => {
 	mittBus.off('submitRefresh', () => {});
 	mittBus.off('submitRefreshFk', () => {});
@@ -184,7 +191,7 @@ const openTreeDialog = (addRow: any, index: number) => {
 
 // 关闭弹窗
 const closeDialog = () => {
-	mittBus.emit('submitRefresh');
+	emits('handleQuery');
 	state.isShowDialog = false;
 };
 
@@ -199,7 +206,7 @@ const submit = async () => {
 	var lst = state.tableData;
 	lst.forEach((item: CodeGenConfig) => {
 		// 必填那一项转换
-		for (const key in item) {
+		for (var key in item) {
 			if (item[key] === true) {
 				item[key] = 'Y';
 			}

+ 3 - 3
Web/src/views/system/codeGen/component/treeDialog.vue

@@ -52,13 +52,13 @@
 
 <script lang="ts" setup name="sysCodeGenTree">
 import { onMounted, reactive, ref } from 'vue';
-import mittBus from '/@/utils/mitt';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysCodeGenApi } from '/@/api-services/api';
 
-const ruleFormRef = ref();
 var rowdata = {} as any;
+const emits = defineEmits(['submitRefreshFk']);
+const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
 	ruleForm: {} as any,
@@ -114,7 +114,7 @@ const closeDialog = () => {
 	rowdata.displayColumn = state.ruleForm.displayColumn;
 	rowdata.valueColumn = state.ruleForm.valueColumn;
 	rowdata.pidColumn = state.ruleForm.pidColumn;
-	mittBus.emit('submitRefreshFk', rowdata);
+	emits('submitRefreshFk', rowdata);
 	state.isShowDialog = false;
 };
 

+ 11 - 23
Web/src/views/system/codeGen/index.vue

@@ -59,15 +59,15 @@
 				layout="total, sizes, prev, pager, next, jumper"
 			/>
 		</el-card>
-		<EditCodeGenDialog :title="state.editMenuTitle" ref="EditCodeGenRef" />
-		<CodeConfigDialog ref="CodeConfigRef" />
+
+		<EditCodeGenDialog :title="state.editMenuTitle" ref="EditCodeGenRef" @handleQuery="handleQuery" />
+		<CodeConfigDialog ref="CodeConfigRef" @handleQuery="handleQuery" />
 	</div>
 </template>
 
 <script lang="ts" setup name="sysCodeGen">
-import { onMounted, onUnmounted, reactive, ref } from 'vue';
+import { onMounted, reactive, ref } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
-import mittBus from '/@/utils/mitt';
 import EditCodeGenDialog from './component/editCodeGenDialog.vue';
 import CodeConfigDialog from './component/genConfigDialog.vue';
 import { downloadByUrl } from '/@/utils/download';
@@ -101,31 +101,12 @@ const state = reactive({
 
 onMounted(async () => {
 	handleQuery();
-
-	mittBus.on('submitRefresh', () => {
-		handleQuery();
-	});
-	mittBus.on('submitRefreshFk', () => {
-		state.tableData;
-	});
-});
-
-onUnmounted(() => {
-	mittBus.off('submitRefresh', () => {});
-	mittBus.off('submitRefreshFk', () => {});
 });
 
 const openConfigDialog = (row: any) => {
 	CodeConfigRef.value?.openDialog(row);
 };
 
-// 重置操作
-const resetQuery = () => {
-	state.queryParams.busName = undefined;
-	state.queryParams.tableName = undefined;
-	handleQuery();
-};
-
 // 表查询操作
 const handleQuery = async () => {
 	state.loading = true;
@@ -136,6 +117,13 @@ const handleQuery = async () => {
 	state.loading = false;
 };
 
+// 重置操作
+const resetQuery = () => {
+	state.queryParams.busName = undefined;
+	state.queryParams.tableName = undefined;
+	handleQuery();
+};
+
 // 改变页面容量
 const handleSizeChange = (val: number) => {
 	state.tableParams.pageSize = val;

+ 2 - 3
Web/src/views/system/config/component/editConfig.vue

@@ -64,7 +64,6 @@
 
 <script lang="ts" setup name="sysEditConfig">
 import { reactive, ref } from 'vue';
-import mittBus from '/@/utils/mitt';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysConfigApi } from '/@/api-services/api';
@@ -73,7 +72,7 @@ import { UpdateConfigInput } from '/@/api-services/models';
 const props = defineProps({
 	title: String,
 });
-
+const emits = defineEmits(['updateData']);
 const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
@@ -88,7 +87,7 @@ const openDialog = (row: any) => {
 
 // 关闭弹窗
 const closeDialog = () => {
-	mittBus.emit('submitRefresh');
+	emits('updateData');
 	state.isShowDialog = false;
 };
 

+ 11 - 10
Web/src/views/system/config/index.vue

@@ -20,7 +20,8 @@
 				</template>
 			</Table>
 		</el-card>
-		<EditConfig ref="editConfigRef" :title="state.editConfigTitle" :groupList="state.groupList" />
+
+		<EditConfig ref="editConfigRef" :title="state.editConfigTitle" :groupList="state.groupList" @updateData="updateData" />
 	</div>
 </template>
 
@@ -131,6 +132,7 @@ const getGroupList = async () => {
 		group[0] = groupSearch;
 	}
 };
+
 //表格多选事件
 const tableSelection = (data: EmptyObjectType[]) => {
 	// console.log('表格多选事件', data)
@@ -139,15 +141,13 @@ const tableSelection = (data: EmptyObjectType[]) => {
 
 onMounted(async () => {
 	getGroupList();
-	mittBus.on('submitRefresh', () => {
-		tableRef.value.handleList();
-		getGroupList();
-	});
 });
 
-onUnmounted(() => {
-	mittBus.off('submitRefresh');
-});
+// 更新数据
+const updateData = () => {
+	tableRef.value.handleList();
+	getGroupList();
+};
 
 // 打开新增页面
 const openAddConfig = () => {
@@ -175,6 +175,7 @@ const delConfig = (row: any) => {
 		})
 		.catch(() => {});
 };
+
 //批量删除
 const bacthDelete = () => {
 	if (state.selectlist.length == 0) return false;
@@ -187,9 +188,9 @@ const bacthDelete = () => {
 			const ids = state.selectlist.map((item) => {
 				return item.id;
 			});
-			var res = await getAPI(SysConfigApi).apiSysConfigBatchDeletePost({ ids: ids });
+			var res = await getAPI(SysConfigApi).apiSysConfigBatchDeletePost(ids);
 			tableRef.value.pageReset();
-			ElMessage.success(res.data.result?.toString());
+			ElMessage.success('删除成功');
 		})
 		.catch(() => {});
 };

+ 2 - 2
Web/src/views/system/database/component/addColumn.vue

@@ -71,13 +71,13 @@
 
 <script lang="ts" setup name="sysAddColumn">
 import { reactive, ref } from 'vue';
-import mittBus from '/@/utils/mitt';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysDatabaseApi } from '/@/api-services/api';
 import { DbColumnInput } from '/@/api-services/models';
 import { dataTypeList, yesNoSelect } from '../database';
 
+const emits = defineEmits(['handleQueryColumn']);
 const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
@@ -92,7 +92,7 @@ const openDialog = (addRow: DbColumnInput) => {
 
 // 关闭弹窗
 const closeDialog = () => {
-	mittBus.emit('submitRefreshColumn');
+	emits('handleQueryColumn');
 	state.isShowDialog = false;
 };
 

+ 2 - 2
Web/src/views/system/database/component/addTable.vue

@@ -100,7 +100,6 @@
 <script lang="ts" setup name="sysAddTable">
 import { reactive, ref } from 'vue';
 import { ElMessage } from 'element-plus';
-import mittBus from '/@/utils/mitt';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysDatabaseApi } from '/@/api-services/api';
@@ -108,6 +107,7 @@ import { UpdateDbTableInput } from '/@/api-services/models';
 import { dataTypeList, EditRecordRow, yesNoSelect } from '../database';
 
 var colIndex = 0;
+const emits = defineEmits(['addTableSubmitted']);
 const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
@@ -123,7 +123,7 @@ const openDialog = (row: any) => {
 
 // 关闭弹窗
 const closeDialog = () => {
-	mittBus.emit('addTableSubmitted', state.ruleForm.tableName ?? '');
+	emits('addTableSubmitted', state.ruleForm.tableName ?? '');
 	state.tableData = [];
 	state.isShowDialog = false;
 };

+ 2 - 2
Web/src/views/system/database/component/editColumn.vue

@@ -33,12 +33,12 @@
 
 <script lang="ts" setup name="sysEditColumn">
 import { reactive, ref } from 'vue';
-import mittBus from '/@/utils/mitt';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysDatabaseApi } from '/@/api-services/api';
 import { UpdateDbColumnInput } from '/@/api-services/models';
 
+const emits = defineEmits(['handleQueryColumn']);
 const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
@@ -53,7 +53,7 @@ const openDialog = (row: any) => {
 
 // 关闭弹窗
 const closeDialog = () => {
-	mittBus.emit('submitRefreshColumn');
+	emits('handleQueryColumn');
 	state.isShowDialog = false;
 };
 

+ 2 - 2
Web/src/views/system/database/component/editTable.vue

@@ -33,12 +33,12 @@
 
 <script lang="ts" setup name="sysEditTable">
 import { reactive, ref } from 'vue';
-import mittBus from '/@/utils/mitt';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysDatabaseApi } from '/@/api-services/api';
 import { UpdateDbTableInput } from '/@/api-services/models';
 
+const emits = defineEmits(['handleQueryTable']);
 const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
@@ -53,7 +53,7 @@ const openDialog = (row: any) => {
 
 // 关闭弹窗
 const closeDialog = () => {
-	mittBus.emit('submitRefreshTable');
+	emits('handleQueryTable');
 	state.isShowDialog = false;
 };
 

+ 2 - 2
Web/src/views/system/database/component/genEntity.vue

@@ -48,11 +48,11 @@
 
 <script lang="ts" setup name="sysGenEntity">
 import { onMounted, reactive, ref } from 'vue';
-import mittBus from '/@/utils/mitt';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysDatabaseApi, SysDictTypeApi } from '/@/api-services/api';
 
+const emits = defineEmits(['handleQueryColumn']);
 const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
@@ -76,7 +76,7 @@ const openDialog = (row: any) => {
 
 // 关闭弹窗
 const closeDialog = () => {
-	mittBus.emit('submitRefreshColumn');
+	emits('handleQueryColumn');
 	state.isShowDialog = false;
 };
 

+ 13 - 24
Web/src/views/system/database/index.vue

@@ -57,18 +57,18 @@
 				</el-table-column>
 			</el-table>
 		</el-card>
-		<EditTable ref="editTableRef" />
-		<EditColumn ref="editColumnRef" />
-		<AddTable ref="addTableRef" />
-		<AddColumn ref="addColumnRef" />
-		<GenEntity ref="genEntityRef" />
+
+		<EditTable ref="editTableRef" @handleQueryTable="handleQueryTable" />
+		<EditColumn ref="editColumnRef" @handleQueryColumn="handleQueryColumn" />
+		<AddTable ref="addTableRef" @addTableSubmitted="addTableSubmitted" />
+		<AddColumn ref="addColumnRef" @handleQueryColumn="handleQueryColumn" />
+		<GenEntity ref="genEntityRef" @handleQueryColumn="handleQueryColumn" />
 	</div>
 </template>
 
 <script lang="ts" setup name="sysDatabase">
-import { onMounted, onUnmounted, reactive, ref } from 'vue';
+import { onMounted, reactive, ref } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
-import mittBus from '/@/utils/mitt';
 import EditTable from '/@/views/system/database/component/editTable.vue';
 import EditColumn from '/@/views/system/database/component/editColumn.vue';
 import AddTable from '/@/views/system/database/component/addTable.vue';
@@ -104,25 +104,14 @@ onMounted(async () => {
 	var res = await getAPI(SysDatabaseApi).apiSysDatabaseListGet();
 	state.dbData = res.data.result;
 	state.loading = false;
-
-	mittBus.on('submitRefreshTable', () => {
-		handleQueryTable();
-	});
-	mittBus.on('submitRefreshColumn', () => {
-		handleQueryColumn();
-	});
-	mittBus.on('addTableSubmitted', (res: any) => {
-		handleQueryTable();
-		state.tableName = res;
-		handleQueryColumn();
-	});
 });
 
-onUnmounted(() => {
-	mittBus.off('submitRefreshTable');
-	mittBus.off('submitRefreshColumn');
-	mittBus.off('addTableSubmitted');
-});
+// 增加表
+const addTableSubmitted = (e: any) => {
+	handleQueryTable();
+	state.tableName = e;
+	handleQueryColumn();
+};
 
 // 表查询操作
 const handleQueryTable = async () => {

+ 7 - 13
Web/src/views/system/dict/component/dictDataDialog.vue

@@ -1,6 +1,6 @@
 <template>
 	<div class="sys-dictData-container">
-		<el-dialog v-model="state.isShowDialog" draggable width="860px">
+		<el-dialog v-model="state.isShowDialog" draggable width="850px">
 			<template #header>
 				<div style="color: #fff">
 					<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Edit /> </el-icon>
@@ -10,10 +10,10 @@
 			<el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
 				<el-form :model="state.queryParams" ref="queryForm" :inline="true">
 					<el-form-item label="字典值" prop="value">
-						<el-input placeholder="字典值" clearable @keyup.enter="handleQuery" v-model="state.queryParams.value" />
+						<el-input placeholder="字典值" @keyup.enter="handleQuery" v-model="state.queryParams.value" />
 					</el-form-item>
 					<el-form-item label="编码" prop="code">
-						<el-input placeholder="编码" clearable @keyup.enter="handleQuery" v-model="state.queryParams.code" />
+						<el-input placeholder="编码" @keyup.enter="handleQuery" v-model="state.queryParams.code" />
 					</el-form-item>
 					<el-form-item>
 						<el-button-group>
@@ -61,14 +61,14 @@
 				/>
 			</el-card>
 		</el-dialog>
-		<EditDictData ref="editDictDataRef" :title="state.editDictDataTitle" :dictTypeId="state.queryParams.dictTypeId" />
+
+		<EditDictData ref="editDictDataRef" :title="state.editDictDataTitle" :dictTypeId="state.queryParams.dictTypeId" @handleQuery="handleQuery" />
 	</div>
 </template>
 
 <script lang="ts" setup name="sysDictData">
-import { onMounted, onUnmounted, reactive, ref } from 'vue';
+import { onMounted, reactive, ref } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
-import mittBus from '/@/utils/mitt';
 import EditDictData from '/@/views/system/dict/component/editDictData.vue';
 
 import { getAPI } from '/@/utils/axios-utils';
@@ -94,13 +94,7 @@ const state = reactive({
 });
 
 onMounted(async () => {
-	mittBus.on('submitRefreshDictData', () => {
-		handleQuery();
-	});
-});
-
-onUnmounted(() => {
-	mittBus.off('submitRefreshDictData');
+	handleQuery();
 });
 
 // 打开弹窗

+ 2 - 3
Web/src/views/system/dict/component/editDictData.vue

@@ -51,7 +51,6 @@
 
 <script lang="ts" setup name="sysEditDictData">
 import { reactive, ref } from 'vue';
-import mittBus from '/@/utils/mitt';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysDictDataApi } from '/@/api-services/api';
@@ -61,7 +60,7 @@ const props = defineProps({
 	title: String,
 	dictTypeId: Number,
 });
-
+const emits = defineEmits(['handleQuery']);
 const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
@@ -79,7 +78,7 @@ const openDialog = (row: any) => {
 
 // 关闭弹窗
 const closeDialog = () => {
-	mittBus.emit('submitRefreshDictData');
+	emits('handleQuery');
 	state.isShowDialog = false;
 };
 

+ 2 - 3
Web/src/views/system/dict/component/editDictType.vue

@@ -51,7 +51,6 @@
 
 <script lang="ts" setup name="sysEditDictType">
 import { reactive, ref } from 'vue';
-import mittBus from '/@/utils/mitt';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysDictTypeApi } from '/@/api-services/api';
@@ -60,7 +59,7 @@ import { UpdateDictTypeInput } from '/@/api-services/models';
 const props = defineProps({
 	title: String,
 });
-
+const emits = defineEmits(['handleQuery']);
 const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
@@ -75,7 +74,7 @@ const openDialog = (row: any) => {
 
 // 关闭弹窗
 const closeDialog = () => {
-	mittBus.emit('submitRefresh');
+	emits('handleQuery');
 	state.isShowDialog = false;
 };
 

+ 3 - 11
Web/src/views/system/dict/index.vue

@@ -54,15 +54,15 @@
 				layout="total, sizes, prev, pager, next, jumper"
 			/>
 		</el-card>
-		<EditDictType ref="editDictTypeRef" :title="state.editDictTypeTitle" />
+
+		<EditDictType ref="editDictTypeRef" :title="state.editDictTypeTitle" @handleQuery="handleQuery" />
 		<DictDataDialog ref="dictDataDialogRef" />
 	</div>
 </template>
 
 <script lang="ts" setup name="sysDict">
-import { onMounted, onUnmounted, reactive, ref } from 'vue';
+import { onMounted, reactive, ref } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
-import mittBus from '/@/utils/mitt';
 import EditDictType from '/@/views/system/dict/component/editDictType.vue';
 import DictDataDialog from '/@/views/system/dict/component/dictDataDialog.vue';
 
@@ -89,14 +89,6 @@ const state = reactive({
 
 onMounted(async () => {
 	handleQuery();
-
-	mittBus.on('submitRefresh', () => {
-		handleQuery();
-	});
-});
-
-onUnmounted(() => {
-	mittBus.off('submitRefresh');
 });
 
 // 查询操作

+ 2 - 11
Web/src/views/system/file/index.vue

@@ -100,16 +100,15 @@
 </template>
 
 <script lang="ts" setup name="sysFile">
-import { onMounted, onUnmounted, reactive, ref } from 'vue';
+import { onMounted, reactive, ref } from 'vue';
 import { ElMessageBox, ElMessage, UploadInstance } from 'element-plus';
-import mittBus from '/@/utils/mitt';
 
 import { downloadByUrl } from '/@/utils/download';
 import { getAPI } from '/@/utils/axios-utils';
 import { SysFileApi } from '/@/api-services/api';
 import { SysFile } from '/@/api-services/models';
 
-const baseUrl = import.meta.env.VITE_API_URL;
+// const baseUrl = import.meta.env.VITE_API_URL;
 const uploadRef = ref<UploadInstance>();
 const state = reactive({
 	loading: false,
@@ -130,14 +129,6 @@ const state = reactive({
 
 onMounted(async () => {
 	handleQuery();
-
-	mittBus.on('submitRefresh', () => {
-		handleQuery();
-	});
-});
-
-onUnmounted(() => {
-	mittBus.off('submitRefresh');
 });
 
 // 查询操作

+ 2 - 3
Web/src/views/system/job/component/editJobDetail.vue

@@ -103,7 +103,6 @@
 
 <script lang="ts" setup name="sysEditJobDetail">
 import { reactive, ref, computed } from 'vue';
-import mittBus from '/@/utils/mitt';
 import * as monaco from 'monaco-editor';
 import { JobScriptCode } from './JobScriptCode';
 
@@ -123,7 +122,7 @@ const httpMethodDef = {
 const props = defineProps({
 	title: String,
 });
-
+const emits = defineEmits(['handleQuery']);
 const ruleFormRef = ref();
 const monacoEditorRef = ref();
 const state = reactive({
@@ -198,7 +197,7 @@ const openDialog = (row: any) => {
 
 // 关闭弹窗
 const closeDialog = () => {
-	mittBus.emit('submitRefresh');
+	emits('handleQuery');
 	state.isShowDialog = false;
 };
 

+ 2 - 3
Web/src/views/system/job/component/editJobTrigger.vue

@@ -142,7 +142,6 @@
 import { reactive, ref, computed } from 'vue';
 import type { WritableComputedRef } from 'vue';
 import { ElMessage } from 'element-plus';
-import mittBus from '/@/utils/mitt';
 
 import cronTab from './cronTab/index.vue';
 import { getAPI } from '/@/utils/axios-utils';
@@ -158,7 +157,7 @@ interface MacroData {
 const props = defineProps({
 	title: String,
 });
-
+const emits = defineEmits(['handleQuery']);
 const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
@@ -237,7 +236,7 @@ const openDialog = (row: any) => {
 
 // 关闭弹窗
 const closeDialog = () => {
-	mittBus.emit('submitRefresh');
+	emits('handleQuery');
 	state.isShowDialog = false;
 };
 

+ 1 - 1
Web/src/views/system/job/component/jobCluster.vue

@@ -20,7 +20,7 @@
 	</div>
 </template>
 
-<script lang="ts" setup>
+<script lang="ts" setup name="sysJobCluster">
 import { onMounted, reactive } from 'vue';
 
 import { getAPI } from '/@/utils/axios-utils';

+ 4 - 12
Web/src/views/system/job/index.vue

@@ -204,17 +204,17 @@
 				layout="total, sizes, prev, pager, next, jumper"
 			/>
 		</el-card>
-		<EditJobDetail ref="editJobDetailRef" :title="state.editJobDetailTitle" />
-		<EditJobTrigger ref="editJobTriggerRef" :title="state.editJobTriggerTitle" />
+
+		<EditJobDetail ref="editJobDetailRef" :title="state.editJobDetailTitle" @handleQuery="handleQuery" />
+		<EditJobTrigger ref="editJobTriggerRef" :title="state.editJobTriggerTitle" @handleQuery="handleQuery" />
 		<JobCluster ref="editJobClusterRef" />
 	</div>
 </template>
 
 <script lang="ts" setup name="sysJob">
-import { onMounted, onUnmounted, reactive, ref } from 'vue';
+import { onMounted, reactive, ref } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
 import { useRouter } from 'vue-router';
-import mittBus from '/@/utils/mitt';
 import { Timer } from '@element-plus/icons-vue';
 import EditJobDetail from '/@/views/system/job/component/editJobDetail.vue';
 import EditJobTrigger from '/@/views/system/job/component/editJobTrigger.vue';
@@ -246,14 +246,6 @@ const state = reactive({
 
 onMounted(async () => {
 	handleQuery();
-
-	mittBus.on('submitRefresh', () => {
-		handleQuery();
-	});
-});
-
-onUnmounted(() => {
-	mittBus.off('submitRefresh');
 });
 
 // 查询操作

+ 2 - 3
Web/src/views/system/menu/component/editMenu.vue

@@ -149,7 +149,6 @@
 <script lang="ts" setup name="sysEditMenu">
 import { reactive, ref } from 'vue';
 import IconSelector from '/@/components/iconSelector/index.vue';
-import mittBus from '/@/utils/mitt';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysMenuApi } from '/@/api-services/api';
@@ -159,7 +158,7 @@ const props = defineProps({
 	title: String,
 	menuData: Array<SysMenu>,
 });
-
+const emits = defineEmits(['handleQuery']);
 const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
@@ -174,7 +173,7 @@ const openDialog = (row: any) => {
 
 // 关闭弹窗
 const closeDialog = () => {
-	mittBus.emit('submitRefresh');
+	emits('handleQuery');
 	state.isShowDialog = false;
 };
 

+ 3 - 11
Web/src/views/system/menu/index.vue

@@ -58,14 +58,14 @@
 				</el-table-column>
 			</el-table>
 		</el-card>
-		<EditMenu ref="editMenuRef" :title="state.editMenuTitle" :menuData="state.menuData" />
+
+		<EditMenu ref="editMenuRef" :title="state.editMenuTitle" :menuData="state.menuData" @handleQuery="handleQuery" />
 	</div>
 </template>
 
 <script lang="ts" setup name="sysMenu">
-import { onMounted, onUnmounted, reactive, ref } from 'vue';
+import { onMounted, reactive, ref } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
-import mittBus from '/@/utils/mitt';
 import EditMenu from '/@/views/system/menu/component/editMenu.vue';
 
 import { getAPI } from '/@/utils/axios-utils';
@@ -85,14 +85,6 @@ const state = reactive({
 
 onMounted(async () => {
 	handleQuery();
-
-	mittBus.on('submitRefresh', () => {
-		handleQuery();
-	});
-});
-
-onUnmounted(() => {
-	mittBus.off('submitRefresh');
 });
 
 // 查询操作

+ 2 - 3
Web/src/views/system/notice/component/editNotice.vue

@@ -42,7 +42,6 @@
 <script lang="ts" setup name="sysNoticeEdit">
 import { reactive, ref } from 'vue';
 import Editor from '/@/components/editor/index.vue';
-import mittBus from '/@/utils/mitt';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysNoticeApi } from '/@/api-services/api';
@@ -51,7 +50,7 @@ import { UpdateNoticeInput } from '/@/api-services/models';
 const props = defineProps({
 	title: String,
 });
-
+const emits = defineEmits(['handleQuery']);
 const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
@@ -66,7 +65,7 @@ const openDialog = (row: any) => {
 
 // 关闭弹窗
 const closeDialog = () => {
-	mittBus.emit('submitRefresh');
+	emits('handleQuery');
 	state.isShowDialog = false;
 };
 

+ 3 - 11
Web/src/views/system/notice/index.vue

@@ -65,15 +65,15 @@
 				layout="total, sizes, prev, pager, next, jumper"
 			/>
 		</el-card>
-		<EditNotice ref="editNoticeRef" :title="state.editNoticeTitle" />
+
+		<EditNotice ref="editNoticeRef" :title="state.editNoticeTitle" @handleQuery="handleQuery" />
 	</div>
 </template>
 
 <script lang="ts" setup name="sysNotice">
-import { onMounted, onUnmounted, reactive, ref } from 'vue';
+import { onMounted, reactive, ref } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
 import commonFunction from '/@/utils/commonFunction';
-import mittBus from '/@/utils/mitt';
 import EditNotice from '/@/views/system/notice/component/editNotice.vue';
 
 import { getAPI } from '/@/utils/axios-utils';
@@ -99,14 +99,6 @@ const state = reactive({
 
 onMounted(async () => {
 	handleQuery();
-
-	mittBus.on('submitRefresh', () => {
-		handleQuery();
-	});
-});
-
-onUnmounted(() => {
-	mittBus.off('submitRefresh');
 });
 
 // 查询操作

+ 8 - 3
Web/src/views/system/org/component/editOrg.vue

@@ -85,7 +85,7 @@ const props = defineProps({
 	title: String,
 	orgData: Array<SysOrg>,
 });
-
+const emits = defineEmits(['handleQuery']);
 const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
@@ -104,6 +104,12 @@ const openDialog = (row: any) => {
 	state.isShowDialog = true;
 };
 
+// 关闭弹窗
+const closeDialog = () => {
+	emits('handleQuery');
+	state.isShowDialog = false;
+};
+
 // 取消
 const cancel = () => {
 	state.isShowDialog = false;
@@ -118,8 +124,7 @@ const submit = () => {
 		} else {
 			await getAPI(SysOrgApi).apiSysOrgAddPost(state.ruleForm);
 		}
-		mittBus.emit('submitRefresh');
-		state.isShowDialog = false;
+		closeDialog();
 	});
 };
 

+ 6 - 15
Web/src/views/system/org/index.vue

@@ -55,14 +55,14 @@
 				</el-card>
 			</el-col>
 		</el-row>
-		<EditOrg ref="editOrgRef" :title="state.editOrgTitle" :orgData="state.orgTreeData" />
+
+		<EditOrg ref="editOrgRef" :title="state.editOrgTitle" :orgData="state.orgTreeData" @handleQuery="handleQuery" />
 	</div>
 </template>
 
 <script lang="ts" setup name="sysOrg">
-import { onMounted, onUnmounted, reactive, ref } from 'vue';
+import { onMounted, reactive, ref } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
-import mittBus from '/@/utils/mitt';
 import OrgTree from '/@/views/system/org/component/orgTree.vue';
 import EditOrg from '/@/views/system/org/component/editOrg.vue';
 
@@ -91,17 +91,6 @@ onMounted(async () => {
 
 	let resDicData = await getAPI(SysDictDataApi).apiSysDictDataDataListCodeGet('org_type');
 	state.orgTypeList = resDicData.data.result;
-
-	mittBus.on('submitRefresh', async () => {
-		handleQuery();
-
-		// 编辑删除后更新机构数据
-		orgTreeRef.value?.initTreeData();
-	});
-});
-
-onUnmounted(() => {
-	mittBus.off('submitRefresh');
 });
 
 // 查询操作
@@ -145,8 +134,10 @@ const delOrg = (row: any) => {
 	})
 		.then(async () => {
 			await getAPI(SysOrgApi).apiSysOrgDeletePost({ id: row.id });
+			handleQuery();
+			// 编辑删除后更新机构数据
+			orgTreeRef.value?.initTreeData();
 			ElMessage.success('删除成功');
-			mittBus.emit('submitRefresh');
 		})
 		.catch(() => {});
 };

+ 2 - 3
Web/src/views/system/pos/component/editPos.vue

@@ -51,7 +51,6 @@
 
 <script lang="ts" setup name="sysEditPos">
 import { reactive, ref } from 'vue';
-import mittBus from '/@/utils/mitt';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysPosApi } from '/@/api-services/api';
@@ -60,7 +59,7 @@ import { UpdatePosInput } from '/@/api-services/models';
 const props = defineProps({
 	title: String,
 });
-
+const emits = defineEmits(['handleQuery']);
 const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
@@ -75,7 +74,7 @@ const openDialog = (row: any) => {
 
 // 关闭弹窗
 const closeDialog = () => {
-	mittBus.emit('submitRefresh');
+	emits('handleQuery');
 	state.isShowDialog = false;
 };
 

+ 3 - 11
Web/src/views/system/pos/index.vue

@@ -42,14 +42,14 @@
 				</el-table-column>
 			</el-table>
 		</el-card>
-		<EditPos ref="editPosRef" :title="state.editPosTitle" />
+
+		<EditPos ref="editPosRef" :title="state.editPosTitle" @handleQuery="handleQuery" />
 	</div>
 </template>
 
 <script lang="ts" setup name="sysPos">
-import { onMounted, onUnmounted, reactive, ref } from 'vue';
+import { onMounted, reactive, ref } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
-import mittBus from '/@/utils/mitt';
 import EditPos from '/@/views/system/pos/component/editPos.vue';
 
 import { getAPI } from '/@/utils/axios-utils';
@@ -69,14 +69,6 @@ const state = reactive({
 
 onMounted(async () => {
 	handleQuery();
-
-	mittBus.on('submitRefresh', () => {
-		handleQuery();
-	});
-});
-
-onUnmounted(() => {
-	mittBus.off('submitRefresh');
 });
 
 // 查询操作

+ 8 - 4
Web/src/views/system/region/component/editRegion.vue

@@ -65,7 +65,6 @@
 
 <script lang="ts" setup name="sysEditRegion">
 import { reactive, ref } from 'vue';
-import mittBus from '/@/utils/mitt';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysRegionApi } from '/@/api-services/api';
@@ -74,7 +73,7 @@ import { UpdateRegionInput } from '/@/api-services/models';
 const props = defineProps({
 	title: String,
 });
-
+const emits = defineEmits(['handleQuery']);
 const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
@@ -87,6 +86,12 @@ const openDialog = (row: any) => {
 	state.isShowDialog = true;
 };
 
+// 关闭弹窗
+const closeDialog = () => {
+	emits('handleQuery');
+	state.isShowDialog = false;
+};
+
 // 取消
 const cancel = () => {
 	state.isShowDialog = false;
@@ -101,8 +106,7 @@ const submit = () => {
 		} else {
 			await getAPI(SysRegionApi).apiSysRegionAddPost(state.ruleForm);
 		}
-		mittBus.emit('submitRefresh');
-		state.isShowDialog = false;
+		closeDialog();
 	});
 };
 

+ 6 - 15
Web/src/views/system/region/index.vue

@@ -55,14 +55,14 @@
 				</el-card>
 			</el-col>
 		</el-row>
-		<EditRegion ref="editRegionRef" :title="state.editRegionTitle" />
+
+		<EditRegion ref="editRegionRef" :title="state.editRegionTitle" @handleQuery="handleQuery" />
 	</div>
 </template>
 
 <script lang="ts" setup name="sysRegion">
-import { onMounted, onUnmounted, reactive, ref } from 'vue';
+import { onMounted, reactive, ref } from 'vue';
 import { ElMessageBox, ElMessage, ElNotification } from 'element-plus';
-import mittBus from '/@/utils/mitt';
 import RegionTree from '/@/views/system/region/component/regionTree.vue';
 import EditRegion from '/@/views/system/region/component/editRegion.vue';
 
@@ -91,17 +91,6 @@ const state = reactive({
 
 onMounted(() => {
 	handleQuery();
-
-	mittBus.on('submitRefresh', async () => {
-		handleQuery();
-
-		// 编辑删除后更新机构数据
-		regionTreeRef.value?.initTreeData();
-	});
-});
-
-onUnmounted(() => {
-	mittBus.off('submitRefresh');
 });
 
 // 查询操作
@@ -144,8 +133,10 @@ const delRegion = (row: any) => {
 	})
 		.then(async () => {
 			await getAPI(SysRegionApi).apiSysRegionDeletePost({ id: row.id });
+			handleQuery();
+			// 编辑删除后更新机构数据
+			regionTreeRef.value?.initTreeData();
 			ElMessage.success('删除成功');
-			mittBus.emit('submitRefresh');
 		})
 		.catch(() => {});
 };

+ 3 - 4
Web/src/views/system/role/component/editRole.vue

@@ -66,7 +66,6 @@
 <script lang="ts" setup name="sysEditRole">
 import { onMounted, reactive, ref } from 'vue';
 import type { ElTree } from 'element-plus';
-import mittBus from '/@/utils/mitt';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysMenuApi, SysRoleApi } from '/@/api-services/api';
@@ -75,7 +74,7 @@ import { SysMenu, UpdateRoleInput } from '/@/api-services/models';
 const props = defineProps({
 	title: String,
 });
-
+const emits = defineEmits(['handleQuery']);
 const ruleFormRef = ref();
 const treeRef = ref<InstanceType<typeof ElTree>>();
 const state = reactive({
@@ -107,7 +106,7 @@ const openDialog = async (row: any) => {
 
 // 关闭弹窗
 const closeDialog = () => {
-	mittBus.emit('submitRefresh');
+	emits('handleQuery');
 	state.isShowDialog = false;
 };
 
@@ -133,7 +132,7 @@ const submit = () => {
 // 叶子节点同行显示样式
 const treeNodeClass = (node: SysMenu) => {
 	let addClass = true; // 添加叶子节点同行显示样式
-	for (const key in node.children) {
+	for (var key in node.children) {
 		// 如果存在子节点非叶子节点,不添加样式
 		if (node.children[key].children?.length ?? 0 > 0) {
 			addClass = false;

+ 3 - 11
Web/src/views/system/role/index.vue

@@ -70,15 +70,15 @@
 				layout="total, sizes, prev, pager, next, jumper"
 			/>
 		</el-card>
-		<EditRole ref="editRoleRef" :title="state.editRoleTitle" />
+
+		<EditRole ref="editRoleRef" :title="state.editRoleTitle" @handleQuery="handleQuery" />
 		<GrantData ref="grantDataRef" />
 	</div>
 </template>
 
 <script lang="ts" setup name="sysRole">
-import { onMounted, onUnmounted, reactive, ref } from 'vue';
+import { onMounted, reactive, ref } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
-import mittBus from '/@/utils/mitt';
 import { auth } from '/@/utils/authFunction';
 import EditRole from '/@/views/system/role/component/editRole.vue';
 import GrantData from '/@/views/system/role/component/grantData.vue';
@@ -106,14 +106,6 @@ const state = reactive({
 
 onMounted(async () => {
 	handleQuery();
-
-	mittBus.on('submitRefresh', () => {
-		handleQuery();
-	});
-});
-
-onUnmounted(() => {
-	mittBus.off('submitRefresh');
 });
 
 // 查询操作

+ 2 - 3
Web/src/views/system/tenant/component/editTenant.vue

@@ -98,7 +98,6 @@
 
 <script lang="ts" setup name="sysEditTenant">
 import { reactive, ref } from 'vue';
-import mittBus from '/@/utils/mitt';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysTenantApi } from '/@/api-services/api';
@@ -107,7 +106,7 @@ import { UpdateTenantInput } from '/@/api-services/models';
 const props = defineProps({
 	title: String,
 });
-
+const emits = defineEmits(['handleQuery']);
 const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
@@ -122,7 +121,7 @@ const openDialog = (row: any) => {
 
 // 关闭弹窗
 const closeDialog = () => {
-	mittBus.emit('submitRefresh');
+	emits('handleQuery');
 	state.isShowDialog = false;
 };
 

+ 3 - 11
Web/src/views/system/tenant/index.vue

@@ -93,15 +93,15 @@
 				layout="total, sizes, prev, pager, next, jumper"
 			/>
 		</el-card>
-		<EditTenant ref="editTenantRef" :title="state.editTenantTitle" />
+
+		<EditTenant ref="editTenantRef" :title="state.editTenantTitle" @handleQuery="handleQuery" />
 		<GrantMenu ref="grantMenuRef" />
 	</div>
 </template>
 
 <script lang="ts" setup name="sysTenant">
-import { onMounted, onUnmounted, reactive, ref } from 'vue';
+import { onMounted, reactive, ref } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
-import mittBus from '/@/utils/mitt';
 import EditTenant from '/@/views/system/tenant/component/editTenant.vue';
 import GrantMenu from '/@/views/system/tenant/component/grantMenu.vue';
 
@@ -128,14 +128,6 @@ const state = reactive({
 
 onMounted(async () => {
 	handleQuery();
-
-	mittBus.on('submitRefresh', () => {
-		handleQuery();
-	});
-});
-
-onUnmounted(() => {
-	mittBus.off('submitRefresh');
 });
 
 // 查询操作

+ 2 - 3
Web/src/views/system/user/component/editUser.vue

@@ -237,7 +237,6 @@
 
 <script lang="ts" setup name="sysEditUser">
 import { onMounted, reactive, ref } from 'vue';
-import mittBus from '/@/utils/mitt';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysPosApi, SysRoleApi, SysUserApi } from '/@/api-services/api';
@@ -247,7 +246,7 @@ const props = defineProps({
 	title: String,
 	orgData: Array<SysOrg>,
 });
-
+const emits = defineEmits(['handleQuery']);
 const ruleFormRef = ref();
 const state = reactive({
 	loading: false,
@@ -282,7 +281,7 @@ const openDialog = async (row: any) => {
 
 // 关闭弹窗
 const closeDialog = () => {
-	mittBus.emit('submitRefresh');
+	emits('handleQuery');
 	state.isShowDialog = false;
 };
 

+ 9 - 21
Web/src/views/system/user/component/userCenter.vue

@@ -155,12 +155,12 @@
 			</template>
 		</el-dialog>
 
-		<CropperDialog ref="cropperDialogRef" :title="state.cropperTitle" />
+		<CropperDialog ref="cropperDialogRef" :title="state.cropperTitle" @uploadCropperImg="uploadCropperImg" />
 	</div>
 </template>
 
 <script lang="ts" setup name="sysUserCenter">
-import { onMounted, onUnmounted, watch, reactive, ref } from 'vue';
+import { onMounted, watch, reactive, ref } from 'vue';
 import { storeToRefs } from 'pinia';
 import { ElForm, ElMessageBox, genFileId } from 'element-plus';
 import type { UploadInstance, UploadProps, UploadRawFile } from 'element-plus';
@@ -169,13 +169,11 @@ import { base64ToFile } from '/@/utils/base64Conver';
 import OrgTree from '/@/views/system/user/component/orgTree.vue';
 import CropperDialog from '/@/components/cropper/index.vue';
 import VueGridLayout from 'vue-grid-layout';
-import mittBus from '/@/utils/mitt';
 
 import { clearAccessTokens, getAPI } from '/@/utils/axios-utils';
 import { SysFileApi, SysUserApi } from '/@/api-services/api';
 import { ChangePwdInput, SysUser } from '/@/api-services/models';
 
-const baseUrl = import.meta.env.VITE_API_URL;
 const stores = useUserInfo();
 const { userInfos } = storeToRefs(stores);
 const uploadSignRef = ref<UploadInstance>();
@@ -207,15 +205,6 @@ onMounted(async () => {
 	var res = await getAPI(SysUserApi).apiSysUserBaseInfoGet();
 	state.ruleFormBase = res.data.result ?? { account: '' };
 	state.loading = false;
-
-	mittBus.on('uploadCropperImg', async (e) => {
-		var res = await getAPI(SysFileApi).apiSysFileUploadAvatarPostForm(e.img);
-		userInfos.value.avatar = baseUrl + '/' + res.data.result?.filePath + '/' + res.data.result?.name;
-	});
-});
-
-onUnmounted(() => {
-	mittBus.off('uploadCropperImg', () => {});
 });
 
 watch(state.signOptions, () => {
@@ -223,6 +212,12 @@ watch(state.signOptions, () => {
 	signaturePadRef.value.signaturePad.minWidth = state.signOptions.minWidth;
 });
 
+// 上传头像图片
+const uploadCropperImg = async (e: any) => {
+	var res = await getAPI(SysFileApi).apiSysFileUploadAvatarPostForm(e.img);
+	userInfos.value.avatar = res.data.result?.filePath + '/' + res.data.result?.name;
+};
+
 // 打开电子签名页面
 const openSignDialog = () => {
 	state.signDialogVisible = true;
@@ -234,7 +229,7 @@ const saveUploadSign = async () => {
 	if (isEmpty) return;
 
 	var res = await getAPI(SysFileApi).apiSysFileUploadSignaturePostForm(base64ToFile(data, userInfos.value.account + '.png'));
-	userInfos.value.signature = baseUrl + '/' + res.data.result?.filePath + '/' + res.data.result?.name;
+	userInfos.value.signature = res.data.result?.filePath + '/' + res.data.result?.name;
 
 	clearSign();
 	state.signDialogVisible = false;
@@ -261,13 +256,6 @@ const handleChangeSignFile = (_file: any, fileList: []) => {
 	state.signFileList = fileList;
 };
 
-// // 上传头像文件回调
-// const uploadAvatarFile = async (file: any) => {
-// 	var res = await getAPI(SysFileApi).apiSysFileUploadAvatarPostForm(file.raw);
-// 	userInfos.value.avatar = res.data.result?.url + '';
-// 	uploadAvatarRef.value?.clearFiles();
-// };
-
 // 修改个人信息
 const submitUserBase = () => {
 	ruleFormBaseRef.value?.validate(async (valid: boolean) => {

+ 3 - 11
Web/src/views/system/user/index.vue

@@ -89,16 +89,16 @@
 				</el-card>
 			</el-col>
 		</el-row>
-		<EditUser ref="editUserRef" :title="state.editUserTitle" :orgData="state.orgTreeData" />
+
+		<EditUser ref="editUserRef" :title="state.editUserTitle" :orgData="state.orgTreeData" @handleQuery="handleQuery" />
 	</div>
 </template>
 
 <script lang="ts" setup name="sysUser">
-import { onMounted, onUnmounted, reactive, ref } from 'vue';
+import { onMounted, reactive, ref } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
 import { formatDate } from '/@/utils/formatTime';
 import { auth } from '/@/utils/authFunction';
-import mittBus from '/@/utils/mitt';
 import OrgTree from '/@/views/system/org/component/orgTree.vue';
 import EditUser from '/@/views/system/user/component/editUser.vue';
 
@@ -129,14 +129,6 @@ const state = reactive({
 onMounted(async () => {
 	loadOrgData();
 	handleQuery();
-
-	mittBus.on('submitRefresh', () => {
-		handleQuery();
-	});
-});
-
-onUnmounted(() => {
-	mittBus.off('submitRefresh');
 });
 
 // 查询机构数据

+ 2 - 2
Web/src/views/system/weChatUser/component/editWeChatUser.vue

@@ -28,7 +28,6 @@
 
 <script lang="ts" setup name="sysEditWeChatUser">
 import { reactive, ref } from 'vue';
-import mittBus from '/@/utils/mitt';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysWechatUserApi } from '/@/api-services/api';
@@ -37,6 +36,7 @@ import { SysWechatUser } from '/@/api-services/models';
 const props = defineProps({
 	title: String,
 });
+const emits = defineEmits(['handleQuery']);
 const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
@@ -51,7 +51,7 @@ const openDialog = (row: any) => {
 
 // 关闭弹窗
 const closeDialog = () => {
-	mittBus.emit('submitRefresh');
+	emits('handleQuery');
 	state.isShowDialog = false;
 };
 

+ 3 - 11
Web/src/views/system/weChatUser/index.vue

@@ -67,14 +67,14 @@
 				layout="total, sizes, prev, pager, next, jumper"
 			/>
 		</el-card>
-		<EditWeChatUser ref="editWeChatUserRef" :title="state.editWeChatUserTitle" />
+
+		<EditWeChatUser ref="editWeChatUserRef" :title="state.editWeChatUserTitle" @handleQuery="handleQuery" />
 	</div>
 </template>
 
 <script lang="ts" setup name="weChatUser">
-import { onMounted, onUnmounted, reactive, ref } from 'vue';
+import { onMounted, reactive, ref } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
-import mittBus from '/@/utils/mitt';
 import EditWeChatUser from '/@/views/system/weChatUser/component/editWeChatUser.vue';
 
 import { getAPI } from '/@/utils/axios-utils';
@@ -99,14 +99,6 @@ const state = reactive({
 
 onMounted(async () => {
 	handleQuery();
-
-	mittBus.on('submitRefresh', () => {
-		handleQuery();
-	});
-});
-
-onUnmounted(() => {
-	mittBus.off('submitRefresh');
 });
 
 // 查询操作