From 52767db09c81cbc4a87f3963e130a45022030575 Mon Sep 17 00:00:00 2001 From: xxm1995 Date: Wed, 9 Aug 2023 17:21:58 +0800 Subject: [PATCH 1/9] =?UTF-8?q?feat=20=E6=96=B0=E5=A2=9E=E6=95=8F=E6=84=9F?= =?UTF-8?q?=E8=AF=8D=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../baseapi/chianword/ChinaWord.api.ts | 87 +++++++++ .../baseapi/chianword/ChinaWordEdit.vue | 147 +++++++++++++++ .../baseapi/chianword/ChinaWordList.vue | 174 ++++++++++++++++++ .../quartz/QuartzJob.api.ts | 0 .../quartz/QuartzJobEdit.vue | 0 .../quartz/QuartzJobList.vue | 0 .../quartz/QuartzJobLog.api.ts | 0 .../quartz/QuartzJobLogList.vue | 0 8 files changed, 408 insertions(+) create mode 100644 src/views/modules/baseapi/chianword/ChinaWord.api.ts create mode 100644 src/views/modules/baseapi/chianword/ChinaWordEdit.vue create mode 100644 src/views/modules/baseapi/chianword/ChinaWordList.vue rename src/views/modules/{system => baseapi}/quartz/QuartzJob.api.ts (100%) rename src/views/modules/{system => baseapi}/quartz/QuartzJobEdit.vue (100%) rename src/views/modules/{system => baseapi}/quartz/QuartzJobList.vue (100%) rename src/views/modules/{system => baseapi}/quartz/QuartzJobLog.api.ts (100%) rename src/views/modules/{system => baseapi}/quartz/QuartzJobLogList.vue (100%) diff --git a/src/views/modules/baseapi/chianword/ChinaWord.api.ts b/src/views/modules/baseapi/chianword/ChinaWord.api.ts new file mode 100644 index 0000000..8af5903 --- /dev/null +++ b/src/views/modules/baseapi/chianword/ChinaWord.api.ts @@ -0,0 +1,87 @@ +import { defHttp } from '/@/utils/http/axios' +import { PageResult, Result } from '/#/axios' +import { BaseEntity } from '/#/web' + +/** + * 分页 + */ +export function page(params) { + return defHttp.get>>({ + url: '/chinaword/page', + params, + }) +} + +/** + * 查询全部 + */ +export function findAll() { + return defHttp.get>({ + url: '/chinaword/findAll', + }) +} + +/** + * 获取单条 + */ +export function get(id) { + return defHttp.get>({ + url: '/chinaword/findById', + params: { id }, + }) +} + +/** + * 添加 + */ +export function add(obj: ChinaWord) { + return defHttp.post({ + url: '/chinaword/add', + data: obj, + }) +} + +/** + * 更新 + */ +export function update(obj: ChinaWord) { + return defHttp.post({ + url: '/chinaword/update', + data: obj, + }) +} + +/** + * 刷新缓存 + */ +export function refresh() { + return defHttp.post({ + url: '/chinaword/refresh', + }) +} + +/** + * 删除 + */ +export function del(id) { + return defHttp.delete({ + url: '/chinaword/delete', + params: { id }, + }) +} + +/** + * 敏感词黑名单 + */ +export interface ChinaWord extends BaseEntity { + // 敏感词 + word?: string + // 类型 + type?: string + // 描述 + description?: string + // 是否启用 + enable?: boolean + // 是否是白名单 + white?: boolean|string +} diff --git a/src/views/modules/baseapi/chianword/ChinaWordEdit.vue b/src/views/modules/baseapi/chianword/ChinaWordEdit.vue new file mode 100644 index 0000000..e0b62ca --- /dev/null +++ b/src/views/modules/baseapi/chianword/ChinaWordEdit.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/src/views/modules/baseapi/chianword/ChinaWordList.vue b/src/views/modules/baseapi/chianword/ChinaWordList.vue new file mode 100644 index 0000000..112e8b7 --- /dev/null +++ b/src/views/modules/baseapi/chianword/ChinaWordList.vue @@ -0,0 +1,174 @@ + + + + + diff --git a/src/views/modules/system/quartz/QuartzJob.api.ts b/src/views/modules/baseapi/quartz/QuartzJob.api.ts similarity index 100% rename from src/views/modules/system/quartz/QuartzJob.api.ts rename to src/views/modules/baseapi/quartz/QuartzJob.api.ts diff --git a/src/views/modules/system/quartz/QuartzJobEdit.vue b/src/views/modules/baseapi/quartz/QuartzJobEdit.vue similarity index 100% rename from src/views/modules/system/quartz/QuartzJobEdit.vue rename to src/views/modules/baseapi/quartz/QuartzJobEdit.vue diff --git a/src/views/modules/system/quartz/QuartzJobList.vue b/src/views/modules/baseapi/quartz/QuartzJobList.vue similarity index 100% rename from src/views/modules/system/quartz/QuartzJobList.vue rename to src/views/modules/baseapi/quartz/QuartzJobList.vue diff --git a/src/views/modules/system/quartz/QuartzJobLog.api.ts b/src/views/modules/baseapi/quartz/QuartzJobLog.api.ts similarity index 100% rename from src/views/modules/system/quartz/QuartzJobLog.api.ts rename to src/views/modules/baseapi/quartz/QuartzJobLog.api.ts diff --git a/src/views/modules/system/quartz/QuartzJobLogList.vue b/src/views/modules/baseapi/quartz/QuartzJobLogList.vue similarity index 100% rename from src/views/modules/system/quartz/QuartzJobLogList.vue rename to src/views/modules/baseapi/quartz/QuartzJobLogList.vue -- Gitee From b773d055f24b3c636c3dcb152da7efe0b8fd0733 Mon Sep 17 00:00:00 2001 From: xxm1995 Date: Thu, 10 Aug 2023 20:10:09 +0800 Subject: [PATCH 2/9] =?UTF-8?q?feat=20=E6=96=B0=E5=A2=9E=E6=95=8F=E6=84=9F?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/account/security/EmailBind.vue | 2 +- src/views/account/security/EmailEdit.vue | 2 +- .../baseapi/chianword/ChinaWord.api.ts | 12 +- .../baseapi/chianword/ChinaWordList.vue | 13 ++- .../baseapi/chianword/ChinaWordVerify.vue | 103 ++++++++++++++++++ 5 files changed, 128 insertions(+), 4 deletions(-) create mode 100644 src/views/modules/baseapi/chianword/ChinaWordVerify.vue diff --git a/src/views/account/security/EmailBind.vue b/src/views/account/security/EmailBind.vue index 2bad7b2..c5331e9 100644 --- a/src/views/account/security/EmailBind.vue +++ b/src/views/account/security/EmailBind.vue @@ -18,7 +18,7 @@ :wrapper-col="wrapperCol" > - + 获取验证码 diff --git a/src/views/account/security/EmailEdit.vue b/src/views/account/security/EmailEdit.vue index e60148e..3e6bfa9 100644 --- a/src/views/account/security/EmailEdit.vue +++ b/src/views/account/security/EmailEdit.vue @@ -20,7 +20,7 @@ 获取验证码1 - + 获取验证码1 diff --git a/src/views/modules/baseapi/chianword/ChinaWord.api.ts b/src/views/modules/baseapi/chianword/ChinaWord.api.ts index 8af5903..367b9cf 100644 --- a/src/views/modules/baseapi/chianword/ChinaWord.api.ts +++ b/src/views/modules/baseapi/chianword/ChinaWord.api.ts @@ -60,6 +60,16 @@ export function refresh() { }) } +/** + * 更新 + */ +export function verify(obj: any) { + return defHttp.post({ + url: '/chinaword/verify', + data: obj, + }) +} + /** * 删除 */ @@ -83,5 +93,5 @@ export interface ChinaWord extends BaseEntity { // 是否启用 enable?: boolean // 是否是白名单 - white?: boolean|string + white?: boolean | string } diff --git a/src/views/modules/baseapi/chianword/ChinaWordList.vue b/src/views/modules/baseapi/chianword/ChinaWordList.vue index 112e8b7..a0d594e 100644 --- a/src/views/modules/baseapi/chianword/ChinaWordList.vue +++ b/src/views/modules/baseapi/chianword/ChinaWordList.vue @@ -8,8 +8,9 @@ @@ -56,6 +57,7 @@ @page-change="handleTableChange" /> + @@ -71,6 +73,7 @@ import { FormEditType } from '/@/enums/formTypeEnum' import { useMessage } from '/@/hooks/web/useMessage' import { QueryField } from '/@/components/Bootx/Query/Query' + import ChinaWordVerify from './ChinaWordVerify.vue' // 使用hooks const { handleTableChange, pageQueryResHandel, resetQueryParams, pagination, pages, model, loading } = useTablePage(queryPage) @@ -82,6 +85,7 @@ const xTable = $ref() const xToolbar = $ref() const chinaWordEdit = $ref() + const chinaWordVerify = $ref() onMounted(() => { vxeBind() @@ -130,6 +134,13 @@ chinaWordEdit.init(record.id, FormEditType.Edit) } + /** + * 测试敏感词 + */ + function verify() { + chinaWordVerify.init() + } + /** * 刷新缓存 */ diff --git a/src/views/modules/baseapi/chianword/ChinaWordVerify.vue b/src/views/modules/baseapi/chianword/ChinaWordVerify.vue new file mode 100644 index 0000000..24d1c9d --- /dev/null +++ b/src/views/modules/baseapi/chianword/ChinaWordVerify.vue @@ -0,0 +1,103 @@ + + + + + -- Gitee From 9f7a97ee38107bbc93177eb0e184d15c4c318d49 Mon Sep 17 00:00:00 2001 From: xxm Date: Sat, 12 Aug 2023 15:49:24 +0800 Subject: [PATCH 3/9] =?UTF-8?q?fix=20=E7=94=A8=E6=88=B7=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E9=87=8D=E7=BD=AE=E5=AF=86=E7=A0=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/modules/system/user/UserList.vue | 31 +++++--- .../modules/system/user/UserResetPwd.vue | 76 +++++++++++++++++++ 2 files changed, 97 insertions(+), 10 deletions(-) create mode 100644 src/views/modules/system/user/UserResetPwd.vue diff --git a/src/views/modules/system/user/UserList.vue b/src/views/modules/system/user/UserList.vue index bb38ab4..01d5d89 100644 --- a/src/views/modules/system/user/UserList.vue +++ b/src/views/modules/system/user/UserList.vue @@ -101,6 +101,7 @@ + @@ -131,6 +132,7 @@ import UserDataScopeAssignBatch from './scope/UserDataScopeAssignBatch.vue' import UserDeptAssign from './dept/UserDeptAssign.vue' import UserDeptAssignBatch from './dept/UserDeptAssignBatch.vue' + import UserResetPwd from './UserResetPwd.vue' // 使用hooks const { handleTableChange, pageQueryResHandel, resetQueryParams, pagination, pages, model, loading, batchOperateFlag } = @@ -154,7 +156,7 @@ let userDataScopeAssignBatch = $ref() let userDeptAssign = $ref() let userDeptAssignBatch = $ref() - let resetPassword = $ref() + let userResetPwd = $ref() onMounted(() => { vxeBind() @@ -177,13 +179,13 @@ } // 选中全部 function selectAllEvent() { - const records = xTable.getCheckboxRecords() - batchOperateFlag.value = !!records.length + const records = xTable?.getCheckboxRecords() + batchOperateFlag.value = !!records?.length } // 选中事件 function selectChangeEvent() { - const records = xTable.getCheckboxRecords() - batchOperateFlag.value = !!records.length + const records = xTable?.getCheckboxRecords() + batchOperateFlag.value = !!records?.length } /** * 锁定/解锁用户 @@ -210,7 +212,7 @@ * @param type true 锁定, false 解锁 */ function lockUserConfirmBatch(type) { - const userIds = xTable.getCheckboxRecords().map((o) => o.id) + const userIds = xTable?.getCheckboxRecords().map((o) => o.id) createConfirm({ iconType: 'warning', title: '警告', @@ -231,7 +233,7 @@ } // 批量分配角色 function assignRolesBatch() { - const userIds = xTable.getCheckboxRecords().map((o) => o.id) + const userIds = xTable?.getCheckboxRecords().map((o) => o.id) userRoleAssignBatch.init(userIds) } // 分配数据权限 @@ -240,7 +242,7 @@ } // 批量分配数据权限 function assignDataScopeBatch() { - const userIds = xTable.getCheckboxRecords().map((o) => o.id) + const userIds = xTable?.getCheckboxRecords().map((o) => o.id) userDataScopeAssignBatch.init(userIds) } // 分配部门 @@ -249,20 +251,29 @@ } // 批量分配部门 function assignDeptBatch() { - const userIds = xTable.getCheckboxRecords().map((o) => o.id) + const userIds = xTable?.getCheckboxRecords().map((o) => o.id) userDeptAssignBatch.init(userIds) } function add() { userAdd.init() } + /** + * 查看信心 + */ function show(record) { userShow.init(record.id) } + /** + * 信息编辑 + */ function edit(record) { userEdit.init(record.id) } + /** + * 重置密码 + */ function resetPwd(record) { - resetPassword.init(record.id) + userResetPwd.init(record.id) } diff --git a/src/views/modules/system/user/UserResetPwd.vue b/src/views/modules/system/user/UserResetPwd.vue new file mode 100644 index 0000000..16b9d30 --- /dev/null +++ b/src/views/modules/system/user/UserResetPwd.vue @@ -0,0 +1,76 @@ + + + -- Gitee From bba536d08405ae87650c5066c086200b53e08dc9 Mon Sep 17 00:00:00 2001 From: xxm Date: Sun, 13 Aug 2023 17:04:00 +0800 Subject: [PATCH 4/9] =?UTF-8?q?feat=20=E5=AF=BC=E5=85=A5=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Bootx/BasicImport/BasicImportModal.vue | 140 ++++++++++ src/utils/props.ts | 2 + .../baseapi/chianword/ChinaWord.api.ts | 9 + .../baseapi/chianword/ChinaWordList.vue | 99 ++++++- .../modules/develop/codegen/CodeGenForm.vue | 2 +- .../develop/template/GeneralTemplate.api.ts | 109 ++++++++ .../develop/template/GeneralTemplateEdit.vue | 255 ++++++++++++++++++ .../develop/template/GeneralTemplateList.vue | 217 +++++++++++++++ src/views/modules/system/user/UserList.vue | 8 +- 9 files changed, 827 insertions(+), 14 deletions(-) create mode 100644 src/components/Bootx/BasicImport/BasicImportModal.vue create mode 100644 src/views/modules/develop/template/GeneralTemplate.api.ts create mode 100644 src/views/modules/develop/template/GeneralTemplateEdit.vue create mode 100644 src/views/modules/develop/template/GeneralTemplateList.vue diff --git a/src/components/Bootx/BasicImport/BasicImportModal.vue b/src/components/Bootx/BasicImport/BasicImportModal.vue new file mode 100644 index 0000000..15d385c --- /dev/null +++ b/src/components/Bootx/BasicImport/BasicImportModal.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/utils/props.ts b/src/utils/props.ts index 5ff4d5b..27a609f 100644 --- a/src/utils/props.ts +++ b/src/utils/props.ts @@ -108,6 +108,7 @@ export function buildProp = never, R : undefined return { + // @ts-ignore type: typeof type === 'object' && Object.getOwnPropertySymbols(type).includes(wrapperKey) ? type[wrapperKey] : type, required: !!required, default: defaultValue, @@ -152,6 +153,7 @@ export const buildProps = < export const definePropType = (val: any) => ({ [wrapperKey]: val } as PropWrapper) +// @ts-ignore export const keyOf = (arr: T) => Object.keys(arr) as Array export const mutable = >(val: T) => val as Mutable diff --git a/src/views/modules/baseapi/chianword/ChinaWord.api.ts b/src/views/modules/baseapi/chianword/ChinaWord.api.ts index 367b9cf..5e7d8ae 100644 --- a/src/views/modules/baseapi/chianword/ChinaWord.api.ts +++ b/src/views/modules/baseapi/chianword/ChinaWord.api.ts @@ -79,6 +79,15 @@ export function del(id) { params: { id }, }) } +/** + * 批量删除 + */ +export function deleteBatch(ids) { + return defHttp.delete({ + url: '/chinaword/deleteBatch', + params: ids, + }) +} /** * 敏感词黑名单 diff --git a/src/views/modules/baseapi/chianword/ChinaWordList.vue b/src/views/modules/baseapi/chianword/ChinaWordList.vue index a0d594e..e820bb7 100644 --- a/src/views/modules/baseapi/chianword/ChinaWordList.vue +++ b/src/views/modules/baseapi/chianword/ChinaWordList.vue @@ -1,21 +1,42 @@ @@ -65,27 +93,44 @@ diff --git a/src/views/modules/develop/codegen/CodeGenForm.vue b/src/views/modules/develop/codegen/CodeGenForm.vue index c0e0509..76ea8c0 100644 --- a/src/views/modules/develop/codegen/CodeGenForm.vue +++ b/src/views/modules/develop/codegen/CodeGenForm.vue @@ -96,7 +96,7 @@ vueVersion: 'v3', corePack: '', editType: 'modal', - deleteType: 'popconfirm', + deleteType: 'confirm', paramPack: '', dtoPack: '', controllerPack: '', diff --git a/src/views/modules/develop/template/GeneralTemplate.api.ts b/src/views/modules/develop/template/GeneralTemplate.api.ts new file mode 100644 index 0000000..0d2b7a4 --- /dev/null +++ b/src/views/modules/develop/template/GeneralTemplate.api.ts @@ -0,0 +1,109 @@ +import { defHttp } from '/@/utils/http/axios' +import { PageResult, Result } from '/#/axios' +import { BaseEntity } from '/#/web' +import { deleteBatchUserAssign } from "/@/views/modules/system/scope/DataScope.api"; + +/** + * 分页 + */ +export function page(params) { + return defHttp.get>>({ + url: '/general/template/page', + params, + }) +} + +/** + * 查询全部 + */ +export function findAll() { + return defHttp.get>({ + url: '/general/template/findAll', + }) +} + +/** + * 获取单条 + */ +export function get(id) { + return defHttp.get>({ + url: '/general/template/findById', + params: { id }, + }) +} +/** + * 编码是否被使用 + */ +export const existsByCode = (code) => { + return defHttp.get>({ + url: '/general/template/existsByCode', + params: { code }, + }) +} +export const existsByCodeNotId = (code, id) => { + return defHttp.get>({ + url: '/general/template/existsByCodeNotId', + params: { code, id }, + }) +} +/** + * 添加 + */ +export function add(obj: GeneralTemplate) { + return defHttp.post({ + url: '/general/template/add', + data: obj, + }) +} + +/** + * 更新 + */ +export function update(obj: GeneralTemplate) { + return defHttp.post({ + url: '/general/template/update', + data: obj, + }) +} + +/** + * 删除 + */ +export function del(id) { + return defHttp.delete({ + url: '/general/template/delete', + params: { id }, + }) +} + +/** + * 批量删除 + */ +export function deleteBatch(ids) { + return defHttp.delete({ + url: '/general/template/delete', + data: ids, + }) +} + +/** + * 通用模板管理 + */ +export interface GeneralTemplate extends BaseEntity { + // 模板名称 + name?: string + // 模板代码 + code?: string + // 使用类型(导入/导出) + useType?: string + // 模板类型 + fileType?: string + // 模板后缀名 + fileSuffix?: string + // 状态 + state?: string + // 文件ID + fileId?: string + // 备注 + remark?: string +} diff --git a/src/views/modules/develop/template/GeneralTemplateEdit.vue b/src/views/modules/develop/template/GeneralTemplateEdit.vue new file mode 100644 index 0000000..d67e52c --- /dev/null +++ b/src/views/modules/develop/template/GeneralTemplateEdit.vue @@ -0,0 +1,255 @@ + + + + + diff --git a/src/views/modules/develop/template/GeneralTemplateList.vue b/src/views/modules/develop/template/GeneralTemplateList.vue new file mode 100644 index 0000000..43e952a --- /dev/null +++ b/src/views/modules/develop/template/GeneralTemplateList.vue @@ -0,0 +1,217 @@ + + + + + diff --git a/src/views/modules/system/user/UserList.vue b/src/views/modules/system/user/UserList.vue index 01d5d89..990a266 100644 --- a/src/views/modules/system/user/UserList.vue +++ b/src/views/modules/system/user/UserList.vue @@ -177,12 +177,16 @@ }) return Promise.resolve() } - // 选中全部 + /** + * 选中全部 + */ function selectAllEvent() { const records = xTable?.getCheckboxRecords() batchOperateFlag.value = !!records?.length } - // 选中事件 + /** + * 选中事件 + */ function selectChangeEvent() { const records = xTable?.getCheckboxRecords() batchOperateFlag.value = !!records?.length -- Gitee From 21065a45b3128fa2a0f5a368132ed9cf089315e0 Mon Sep 17 00:00:00 2001 From: xxm1995 Date: Tue, 15 Aug 2023 20:07:22 +0800 Subject: [PATCH 5/9] =?UTF-8?q?feat=20=E6=96=B0=E5=A2=9E=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E5=8F=8D=E9=A6=88.=20=E7=94=A8=E6=88=B7=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E9=87=8D=E7=BD=AE=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/bem.ts | 1 + .../develop/template/GeneralTemplateEdit.vue | 130 ++++++------ .../miniapp/feedbackinfo/FeedbackInfo.api.ts | 90 +++++++++ .../miniapp/feedbackinfo/FeedbackInfoEdit.vue | 143 +++++++++++++ .../miniapp/feedbackinfo/FeedbackInfoList.vue | 191 ++++++++++++++++++ src/views/modules/system/user/User.api.ts | 10 + src/views/modules/system/user/UserList.vue | 15 +- .../modules/system/user/UserResetPwdBatch.vue | 79 ++++++++ 8 files changed, 593 insertions(+), 66 deletions(-) create mode 100644 src/views/modules/miniapp/feedbackinfo/FeedbackInfo.api.ts create mode 100644 src/views/modules/miniapp/feedbackinfo/FeedbackInfoEdit.vue create mode 100644 src/views/modules/miniapp/feedbackinfo/FeedbackInfoList.vue create mode 100644 src/views/modules/system/user/UserResetPwdBatch.vue diff --git a/src/utils/bem.ts b/src/utils/bem.ts index 3a39b6a..8db010a 100644 --- a/src/utils/bem.ts +++ b/src/utils/bem.ts @@ -15,6 +15,7 @@ function genBem(name: string, mods?: Mods): string { } if (Array.isArray(mods)) { + // @ts-ignore return mods.reduce((ret, item) => ret + genBem(name, item), '') } diff --git a/src/views/modules/develop/template/GeneralTemplateEdit.vue b/src/views/modules/develop/template/GeneralTemplateEdit.vue index d67e52c..6a763d8 100644 --- a/src/views/modules/develop/template/GeneralTemplateEdit.vue +++ b/src/views/modules/develop/template/GeneralTemplateEdit.vue @@ -3,78 +3,79 @@ showFooter v-bind="$attrs" width="40%" - :loading="confirmLoading" :title="title" :destroyOnClose="true" :maskClosable="false" :visible="visible" @close="handleCancel" > - - - - - - - - - - - - - 模板文件上传 - - - - - - - - - - - - - + + + 模板文件上传 + + + + + + + + + + + + + + @@ -102,6 +105,7 @@ + @@ -133,6 +137,7 @@ import UserDeptAssign from './dept/UserDeptAssign.vue' import UserDeptAssignBatch from './dept/UserDeptAssignBatch.vue' import UserResetPwd from './UserResetPwd.vue' + import UserResetPwdBatch from "./UserResetPwdBatch.vue"; // 使用hooks const { handleTableChange, pageQueryResHandel, resetQueryParams, pagination, pages, model, loading, batchOperateFlag } = @@ -157,6 +162,7 @@ let userDeptAssign = $ref() let userDeptAssignBatch = $ref() let userResetPwd = $ref() + let userResetPwdBatch = $ref() onMounted(() => { vxeBind() @@ -262,7 +268,7 @@ userAdd.init() } /** - * 查看信心 + * 查看信息 */ function show(record) { userShow.init(record.id) @@ -279,6 +285,13 @@ function resetPwd(record) { userResetPwd.init(record.id) } + /** + * 重置密码 + */ + function resetPwdBatch() { + const userIds = xTable?.getCheckboxRecords().map((o) => o.id) + userResetPwdBatch.init(userIds) + } diff --git a/src/views/modules/system/user/UserResetPwdBatch.vue b/src/views/modules/system/user/UserResetPwdBatch.vue new file mode 100644 index 0000000..0478fb3 --- /dev/null +++ b/src/views/modules/system/user/UserResetPwdBatch.vue @@ -0,0 +1,79 @@ + + + + + -- Gitee From 25e454227fe632978a8646ce4d8d35c0d06ab684 Mon Sep 17 00:00:00 2001 From: xxm1995 Date: Fri, 18 Aug 2023 17:13:10 +0800 Subject: [PATCH 6/9] =?UTF-8?q?ref=20=E5=AD=97=E5=85=B8=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E4=BC=98=E5=8C=96,=20=E9=81=BF=E5=85=8D?= =?UTF-8?q?=E9=A6=96=E6=AC=A1=E8=8E=B7=E5=8F=96=E4=B8=BA=E7=A9=BA=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98,=20=E7=B3=BB=E7=BB=9F=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=BC=98=E5=8C=96,=20=E5=86=85=E7=BD=AE?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E4=B8=8D=E5=85=81=E8=AE=B8=E9=9A=8F=E4=BE=BF?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=92=8C=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/bootx/useDict.ts | 50 +++++++------------ src/store/modules/dict.ts | 24 +++++---- src/views/account/setting/BaseSetting.vue | 2 +- .../modules/demo/query/SuperQueryDemoEdit.vue | 4 +- .../modules/demo/query/SuperQueryDemoList.vue | 12 ++++- .../develop/template/GeneralTemplateEdit.vue | 4 +- .../modules/notice/mail/MailConfigEdit.vue | 4 +- .../notice/template/MessageTemplateEdit.vue | 4 +- .../modules/system/param/SystemParamEdit.vue | 8 +-- .../modules/system/param/SystemParamList.vue | 10 ++-- .../third/wechat/media/WechatMediaList.vue | 4 +- .../third/wechat/media/WechatMediaSelect.vue | 4 +- 12 files changed, 70 insertions(+), 60 deletions(-) diff --git a/src/hooks/bootx/useDict.ts b/src/hooks/bootx/useDict.ts index 67d8fd7..21eda55 100644 --- a/src/hooks/bootx/useDict.ts +++ b/src/hooks/bootx/useDict.ts @@ -1,8 +1,22 @@ import { useDictStore } from '/@/store/modules/dict' import { LabeledValue } from 'ant-design-vue/lib/select' +import { Dict } from '/#/store' const dictStore = useDictStore() +/** + * 获取字典列表 + */ +async function getDict(): Promise { + const dictList = dictStore.getDict + if (dictList.length > 0) { + console.log(dictList) + return dictList + } else { + return await dictStore.initDict() + } +} + /** * 字典项转换 */ @@ -18,35 +32,11 @@ function dictConvert(dictCode: string, code) { } } -/** - * 获取字典项列表 - */ -export function dictItems(dictCode: string) { - const dictList = dictStore.getDict - return dictList - .filter((dict) => dictCode === dict.dictCode) - .map((item) => { - return { ...item, code: Number(item.code) } - }) -} - -/** - * 获取字典项列表(code值为数字) - */ -export function dictItemsNumber(dictCode: string) { - const dictList = dictStore.getDict - return dictList - .filter((dict) => dictCode === dict.dictCode) - .map((item) => { - return { ...item, code: Number(item.code) } - }) -} - /** * 获取字典下拉框数据列表 */ -function dictDropDown(dictCode: string): LabeledValue[] { - const list = dictStore.getDict +async function dictDropDown(dictCode: string): Promise { + const list = await getDict() return list .filter((dict) => dictCode === dict.dictCode) .map((o) => { @@ -54,10 +44,10 @@ function dictDropDown(dictCode: string): LabeledValue[] { }) } /** - * 获取字典下拉框数据列表 + * 获取字典下拉框数据列表(value值为数字) */ -function dictDropDownNumber(dictCode: string): LabeledValue[] { - const list = dictStore.getDict +async function dictDropDownNumber(dictCode: string): Promise { + const list = await getDict() return list .filter((dict) => dictCode === dict.dictCode) .map((o) => { @@ -71,8 +61,6 @@ function dictDropDownNumber(dictCode: string): LabeledValue[] { export function useDict() { return { dictConvert, - dictItems, - dictItemsNumber, dictDropDown, dictDropDownNumber, } diff --git a/src/store/modules/dict.ts b/src/store/modules/dict.ts index 06086ce..f22d8c2 100644 --- a/src/store/modules/dict.ts +++ b/src/store/modules/dict.ts @@ -13,21 +13,25 @@ export const useDictStore = defineStore({ }), getters: { getDict(): Dict[] { + // 获取字典 return this.dict }, }, actions: { - initDict() { - findAllByEnable().then(({ data }) => { - this.dict = data.map((o) => { - return { - dictCode: o.dictCode, - code: o.code, - name: o.name, - } as Dict - }) - console.log('初始化字典') + /** + * 初始化字典, 并返回字典列表 + */ + async initDict() { + const { data } = await findAllByEnable() + this.dict = data.map((o) => { + return { + dictCode: o.dictCode, + code: o.code, + name: o.name, + } as Dict }) + console.log('初始化字典') + return this.dict }, }, }) diff --git a/src/views/account/setting/BaseSetting.vue b/src/views/account/setting/BaseSetting.vue index ab7901a..2b5624e 100644 --- a/src/views/account/setting/BaseSetting.vue +++ b/src/views/account/setting/BaseSetting.vue @@ -95,7 +95,7 @@ async function init() { confirmLoading = true // 初始化角色下拉菜单 - sexList = dictDropDownNumber('Sex') + sexList = await dictDropDownNumber('Sex') const { data: userInfo } = await getUserBaseInfo() // 设置头像 diff --git a/src/views/modules/demo/query/SuperQueryDemoEdit.vue b/src/views/modules/demo/query/SuperQueryDemoEdit.vue index 1e430b6..651d4b4 100644 --- a/src/views/modules/demo/query/SuperQueryDemoEdit.vue +++ b/src/views/modules/demo/query/SuperQueryDemoEdit.vue @@ -60,6 +60,7 @@ import { FormEditType } from '/@/enums/formTypeEnum' import { BasicModal } from '/@/components/Modal' import { useDict } from '/@/hooks/bootx/useDict' + import { LabeledValue } from "ant-design-vue/lib/select"; const { initFormEditType, handleCancel, @@ -99,13 +100,14 @@ political: [{ required: true, message: '请选择政治面貌' }], } as Record) - const politicalList = $ref(dictDropDownNumber('Political')) + let politicalList = $ref([]) // 事件 const emits = defineEmits(['ok']) // 入口 function init(id, editType: FormEditType) { initFormEditType(editType) + dictDropDownNumber('Political').then((res) => (politicalList = res)) resetForm() getInfo(id, editType) } diff --git a/src/views/modules/demo/query/SuperQueryDemoList.vue b/src/views/modules/demo/query/SuperQueryDemoList.vue index 6938040..3ea9aae 100644 --- a/src/views/modules/demo/query/SuperQueryDemoList.vue +++ b/src/views/modules/demo/query/SuperQueryDemoList.vue @@ -87,7 +87,7 @@ const { notification, createMessage, createConfirm } = useMessage() const { dictConvert, dictDropDownNumber } = useDict() - let politicalList = $ref(dictDropDownNumber('Political')) + let politicalList = $ref([]) // 查询条件 const fields = [ @@ -114,6 +114,16 @@ vxeBind() queryPage() }) + + /** + * 初始化 + */ + function init() { + vxeBind() + queryPage() + dictDropDownNumber('Political').then((res) => (politicalList = res)) + } + function vxeBind() { xTable?.connect(xToolbar as VxeToolbarInstance) } diff --git a/src/views/modules/develop/template/GeneralTemplateEdit.vue b/src/views/modules/develop/template/GeneralTemplateEdit.vue index 6a763d8..cb66bc6 100644 --- a/src/views/modules/develop/template/GeneralTemplateEdit.vue +++ b/src/views/modules/develop/template/GeneralTemplateEdit.vue @@ -163,8 +163,8 @@ /** * 初始化数据 */ - function initData() { - useTypes = dictDropDown('GeneralTemplateUseType') + async function initData() { + useTypes = await dictDropDown('GeneralTemplateUseType') } /** diff --git a/src/views/modules/notice/mail/MailConfigEdit.vue b/src/views/modules/notice/mail/MailConfigEdit.vue index 022d807..71728c1 100644 --- a/src/views/modules/notice/mail/MailConfigEdit.vue +++ b/src/views/modules/notice/mail/MailConfigEdit.vue @@ -149,8 +149,8 @@ getInfo(id, editType) } // 初始化基础数据 - function initData() { - securityTypes = dictDropDownNumber('MailSecurityCode') + async function initData() { + securityTypes = await dictDropDownNumber('MailSecurityCode') } // 获取信息 function getInfo(id, editType: FormEditType) { diff --git a/src/views/modules/notice/template/MessageTemplateEdit.vue b/src/views/modules/notice/template/MessageTemplateEdit.vue index dfe4ba9..1c51c05 100644 --- a/src/views/modules/notice/template/MessageTemplateEdit.vue +++ b/src/views/modules/notice/template/MessageTemplateEdit.vue @@ -106,8 +106,8 @@ resetForm() getInfo(id, editType) } - function initData() { - messageTemplateTypes = dictDropDownNumber('MessageTemplateCode') + async function initData() { + messageTemplateTypes = await dictDropDownNumber('MessageTemplateCode') } // 获取信息 function getInfo(id, editType: FormEditType) { diff --git a/src/views/modules/system/param/SystemParamEdit.vue b/src/views/modules/system/param/SystemParamEdit.vue index 0cde67a..1a9f81a 100644 --- a/src/views/modules/system/param/SystemParamEdit.vue +++ b/src/views/modules/system/param/SystemParamEdit.vue @@ -13,10 +13,10 @@ - + - + @@ -60,6 +60,7 @@ import { BasicModal } from '/@/components/Modal' import { useValidate } from '/@/hooks/bootx/useValidate' import { useDict } from '/@/hooks/bootx/useDict' + import { LabeledValue } from 'ant-design-vue/lib/select' const { initFormEditType, @@ -91,7 +92,7 @@ remark: '', }) // 参数类型 - let paramTypeList = dictDropDownNumber('ParamType') + let paramTypeList = $ref([]) // 校验 const rules = reactive({ name: [{ required: true, message: '参数名称必填', trigger: ['blur', 'change'] }], @@ -109,6 +110,7 @@ initFormEditType(editType) resetForm() getInfo(id, editType) + dictDropDownNumber('ParamType').then((res) => (paramTypeList = res)) } // 获取信息 function getInfo(id, editType: FormEditType) { diff --git a/src/views/modules/system/param/SystemParamList.vue b/src/views/modules/system/param/SystemParamList.vue index 55fe0a1..59b5b8a 100644 --- a/src/views/modules/system/param/SystemParamList.vue +++ b/src/views/modules/system/param/SystemParamList.vue @@ -44,10 +44,12 @@ 编辑 - - - 删除 - + diff --git a/src/views/modules/third/wechat/media/WechatMediaList.vue b/src/views/modules/third/wechat/media/WechatMediaList.vue index 8c8cb3b..edc9edc 100644 --- a/src/views/modules/third/wechat/media/WechatMediaList.vue +++ b/src/views/modules/third/wechat/media/WechatMediaList.vue @@ -116,8 +116,8 @@ xTable?.connect(xToolbar as VxeToolbarInstance) } - function initData() { - mediaTypes = dictDropDown('WeChatMediaType') + async function initData() { + mediaTypes = await dictDropDown('WeChatMediaType') } // 分页查询 function queryPage() { diff --git a/src/views/modules/third/wechat/media/WechatMediaSelect.vue b/src/views/modules/third/wechat/media/WechatMediaSelect.vue index 3fb215b..7bfb98f 100644 --- a/src/views/modules/third/wechat/media/WechatMediaSelect.vue +++ b/src/views/modules/third/wechat/media/WechatMediaSelect.vue @@ -66,7 +66,9 @@ mediaId = null visible = true loading.value = true - mediaTypes = dictDropDown('WeChatMediaType') + dictDropDown('WeChatMediaType').then((res) => { + mediaTypes = res + }) queryPage() } -- Gitee From 8f5fe1bd12d1d9db6bfaee4e3002d3eb0f7dd122 Mon Sep 17 00:00:00 2001 From: xxm Date: Sun, 20 Aug 2023 21:44:40 +0800 Subject: [PATCH 7/9] =?UTF-8?q?style=20=E4=BB=A3=E7=A0=81=E5=A4=A7?= =?UTF-8?q?=E5=B0=8F=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/index.ts | 10 +++++----- src/router/routes/index.ts | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/router/index.ts b/src/router/index.ts index 9fedc90..ee5f905 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,8 +1,8 @@ import type { RouteRecordRaw } from 'vue-router' import type { App } from 'vue' -import { createRouter, createWebHistory } from 'vue-router' -import { basicRoutes } from './routes' +import { createRouter, createWebHashHistory } from 'vue-router' +import { BASIC_ROUTES } from './routes' import { PROJECT_BASE } from '/@/router/routes/project' // 白名单应该包含基本静态路由 @@ -12,15 +12,15 @@ const getRouteNames = (array: any[]) => WHITE_NAME_LIST.push(item.name) getRouteNames(item.children || []) }) -getRouteNames(basicRoutes) +getRouteNames(BASIC_ROUTES) // 创建未登录也可以访问的路由组 -const routes = [...basicRoutes, ...PROJECT_BASE] +const routes = [...BASIC_ROUTES, ...PROJECT_BASE] // 创建一个可以被 Vue 应用程序使用的路由实例 export const router = createRouter({ // 创建一个 hash 历史记录。 - history: createWebHistory(import.meta.env.VITE_PUBLIC_PATH), + history: createWebHashHistory(import.meta.env.VITE_PUBLIC_PATH), // 应该添加到路由的初始路由列表。 routes: routes as unknown as RouteRecordRaw[], // 是否应该禁止尾部斜杠。默认为否 diff --git a/src/router/routes/index.ts b/src/router/routes/index.ts index 507b250..67c31b0 100644 --- a/src/router/routes/index.ts +++ b/src/router/routes/index.ts @@ -41,4 +41,4 @@ export const LoginRoute: AppRouteRecordRaw = { } // 无需鉴权的基本路由 -export const basicRoutes = [LoginRoute, RootRoute, ...mainOutRoutes, REDIRECT_ROUTE, PAGE_NOT_FOUND_ROUTE] +export const BASIC_ROUTES = [LoginRoute, RootRoute, ...mainOutRoutes, REDIRECT_ROUTE, PAGE_NOT_FOUND_ROUTE] -- Gitee From 181ab463b3c5f459db0f8204f65246d1dd5293f6 Mon Sep 17 00:00:00 2001 From: xxm1995 Date: Sun, 27 Aug 2023 12:27:56 +0800 Subject: [PATCH 8/9] =?UTF-8?q?fix=20=E7=AB=99=E5=86=85=E4=BF=A1=E6=8E=A5?= =?UTF-8?q?=E6=94=B6=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/routes/project.ts | 6 ++++++ src/views/modules/notice/site/receive/SiteMessageList.vue | 5 +---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/router/routes/project.ts b/src/router/routes/project.ts index 13eb451..50c097f 100644 --- a/src/router/routes/project.ts +++ b/src/router/routes/project.ts @@ -25,6 +25,12 @@ export const INTERNAL: AppRouteModule = { component: () => import('/@/views/sys/about/index.vue'), meta: { title: '关于' }, }, + { + path: '/person/siteMessage', + name: 'PersonSiteMessage', + component: () => import('/@/views/modules/notice/site/receive/SiteMessageList.vue'), + meta: { title: '站内信(收)' }, + }, ], } diff --git a/src/views/modules/notice/site/receive/SiteMessageList.vue b/src/views/modules/notice/site/receive/SiteMessageList.vue index 01bea91..d418cf4 100644 --- a/src/views/modules/notice/site/receive/SiteMessageList.vue +++ b/src/views/modules/notice/site/receive/SiteMessageList.vue @@ -57,10 +57,7 @@ const noticeReader = $ref>(null) // 查询条件 - const fields = [ - { field: 'code', type: STRING, name: '流程编号', placeholder: '请输入流程编号' }, - { field: 'code', type: STRING, name: '流程名称', placeholder: '请输入流程名称' }, - ] as QueryField[] + const fields = [{ field: 'title', type: STRING, name: '标题', placeholder: '请输入要查询的标题' }] as QueryField[] const xTable = $ref() const xToolbar = $ref() onMounted(() => { -- Gitee From 740afcbedc364719ff74c4647d0fe3ec7400d300 Mon Sep 17 00:00:00 2001 From: xxm1995 Date: Sun, 27 Aug 2023 12:28:03 +0800 Subject: [PATCH 9/9] =?UTF-8?q?fix=20=E7=AB=99=E5=86=85=E4=BF=A1=E6=8E=A5?= =?UTF-8?q?=E6=94=B6=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/enums/pageEnum.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/enums/pageEnum.ts b/src/enums/pageEnum.ts index 813e12b..49b0a64 100644 --- a/src/enums/pageEnum.ts +++ b/src/enums/pageEnum.ts @@ -3,7 +3,7 @@ export enum PageEnum { BASE_LOGIN = '/login', // 个人设置 ACCOUNT_SETTING = '/account/setting', - // 站内信界面 (后端修改了路由路径后, 这个也需要修改) + // 站内信界面 SITE_MESSAGE = '/person/siteMessage', // 登陆后主页 BASE_HOME = '/dashboard', -- Gitee