diff --git a/Admin.NET/Admin.NET.Core/Service/User/Dto/UserInput.cs b/Admin.NET/Admin.NET.Core/Service/User/Dto/UserInput.cs index 834a013b..553cd62c 100644 --- a/Admin.NET/Admin.NET.Core/Service/User/Dto/UserInput.cs +++ b/Admin.NET/Admin.NET.Core/Service/User/Dto/UserInput.cs @@ -99,7 +99,11 @@ public class DeleteUserInput : BaseIdInput /// 重置用户密码输入参数 /// public class ResetPwdUserInput : BaseIdInput -{ +{ + /// + /// 新密码(如果为空使用系统配置的默认密码) + /// + public string NewPassword { get; set; } } /// diff --git a/Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs b/Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs index 00271a2e..c4ead6c5 100644 --- a/Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs +++ b/Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs @@ -1,4 +1,4 @@ -// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 +// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // @@ -373,7 +373,9 @@ public class SysUserService : IDynamicApiController, ITransient public virtual async Task ResetPwd(ResetPwdUserInput input) { var user = await _sysUserRep.GetByIdAsync(input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D0009); - var password = await _sysConfigService.GetConfigValueByCode(ConfigConst.SysPassword); + string password = await _sysConfigService.GetConfigValueByCode(ConfigConst.SysPassword); + if (!string.IsNullOrEmpty(input.NewPassword)) + password = input.NewPassword; user.Password = CryptogramUtil.Encrypt(password); user.LastChangePasswordTime = null; user.TokenVersion = user.TokenVersion + 1; diff --git a/Web/src/api-services/apis/sys-wechat-pay-api.ts b/Web/src/api-services/apis/sys-wechat-pay-api.ts index cb1b44db..0a26d54f 100644 --- a/Web/src/api-services/apis/sys-wechat-pay-api.ts +++ b/Web/src/api-services/apis/sys-wechat-pay-api.ts @@ -703,7 +703,7 @@ export const SysWechatPayApiAxiosParamCreator = function (configuration?: Config }; }, /** - * + * 必填字段:OutTradeNumber,Reason * @summary 退款申请 🔖 https://pay.weixin.qq.com/docs/merchant/apis/mini-program-payment/create.html * @param {RefundRequestInput} [body] * @param {*} [options] Override http request option. @@ -954,7 +954,7 @@ export const SysWechatPayApiFp = function(configuration?: Configuration) { }; }, /** - * + * 必填字段:OutTradeNumber,Reason * @summary 退款申请 🔖 https://pay.weixin.qq.com/docs/merchant/apis/mini-program-payment/create.html * @param {RefundRequestInput} [body] * @param {*} [options] Override http request option. @@ -1115,7 +1115,7 @@ export const SysWechatPayApiFactory = function (configuration?: Configuration, b return SysWechatPayApiFp(configuration).apiSysWechatPayRefundListGet(transactionId, outTradeNumber, options).then((request) => request(axios, basePath)); }, /** - * + * 必填字段:OutTradeNumber,Reason * @summary 退款申请 🔖 https://pay.weixin.qq.com/docs/merchant/apis/mini-program-payment/create.html * @param {RefundRequestInput} [body] * @param {*} [options] Override http request option. @@ -1287,7 +1287,7 @@ export class SysWechatPayApi extends BaseAPI { return SysWechatPayApiFp(this.configuration).apiSysWechatPayRefundListGet(transactionId, outTradeNumber, options).then((request) => request(this.axios, this.basePath)); } /** - * + * 必填字段:OutTradeNumber,Reason * @summary 退款申请 🔖 https://pay.weixin.qq.com/docs/merchant/apis/mini-program-payment/create.html * @param {RefundRequestInput} [body] * @param {*} [options] Override http request option. diff --git a/Web/src/api-services/models/reset-pwd-user-input.ts b/Web/src/api-services/models/reset-pwd-user-input.ts index e419833f..4ad9990c 100644 --- a/Web/src/api-services/models/reset-pwd-user-input.ts +++ b/Web/src/api-services/models/reset-pwd-user-input.ts @@ -27,4 +27,12 @@ export interface ResetPwdUserInput { * @memberof ResetPwdUserInput */ id: number; + + /** + * 新密码(如果为空使用系统配置的默认密码) + * + * @type {string} + * @memberof ResetPwdUserInput + */ + newPassword?: string | null; } diff --git a/Web/src/i18n/pages/systemMenu/zh-CN.ts b/Web/src/i18n/pages/systemMenu/zh-CN.ts index c4d95644..cf68d130 100644 --- a/Web/src/i18n/pages/systemMenu/zh-CN.ts +++ b/Web/src/i18n/pages/systemMenu/zh-CN.ts @@ -93,7 +93,7 @@ export default { member: '会员', other: '其他', accountStatusUpdateSuccess: '账号状态设置成功', - confirmResetPassword: '确定重置密码:【{account}】?', + confirmResetPassword: '请输入【{account}】的新密码,如果不填将使用默认密码', passwordResetSuccess: '密码重置成功为:{password}', confirmUnlockAccount: '确定解除登录锁定:【{account}】?', unlockSuccess: '解除登录锁定成功', diff --git a/Web/src/views/system/user/index.vue b/Web/src/views/system/user/index.vue index ebc54e86..8a3a22da 100644 --- a/Web/src/views/system/user/index.vue +++ b/Web/src/views/system/user/index.vue @@ -293,14 +293,18 @@ const changeStatus = (row: any) => { // 重置密码 const resetQueryPwd = async (row: any) => { - ElMessageBox.confirm(t('message.list.confirmResetPassword', { account: row.account }), t('message.list.hint'), { - confirmButtonText: t('message.list.confirmButtonText'), - cancelButtonText: t('message.list.cancelButtonText'), - type: 'warning', - }) - .then(async () => { + ElMessageBox.prompt( + t('message.list.confirmResetPassword', { account: row.account }), + t('message.list.resetPassword'), + { + confirmButtonText: t('message.list.confirmButtonText'), + cancelButtonText: t('message.list.cancelButtonText'), + type: 'warning', + } + ) + .then(async ({ value }) => { await getAPI(SysUserApi) - .apiSysUserResetPwdPost({ id: row.id }) + .apiSysUserResetPwdPost({ id: row.id, newPassword: value }) .then((res) => { ElMessage.success(t('message.list.passwordResetSuccess', { password: res.data.result })); });