✨ 小程序用户支持重置密码,列表隐藏 openid

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-12 14:47:23 +08:00
parent 18a02a1969
commit bc7755a160
4 changed files with 39 additions and 3 deletions
+3 -1
View File
@@ -56,7 +56,7 @@ export default {
addBtn: false,
selection: true,
dialogClickModal: false,
menuWidth: 280,
menuWidth: 320,
column: [
{
label: '手机号',
@@ -140,8 +140,10 @@ export default {
prop: 'openid',
minWidth: 180,
overHidden: true,
hide: true,
addDisplay: false,
editDisplay: true,
viewDisplay: true,
order: 40,
placeholder: '可清空以解绑微信',
},
+1 -1
View File
@@ -97,7 +97,7 @@ export const userOption = safe => {
{
label: '账号名',
prop: 'account',
span: 12,
span: 6,
rules: [
{
required: true,
+34
View File
@@ -77,6 +77,13 @@
>
{{ row.status === 1 ? '停用' : '启用' }}
</el-link>
<el-link
type="primary"
v-if="permission.mp_user_reset"
@click="handleResetForRow(row)"
>
重置密码
</el-link>
<el-link
type="danger"
v-if="permission.mp_user_delete"
@@ -85,6 +92,15 @@
删除
</el-link>
</template>
<template #menu-form="{ size }">
<el-button
v-if="permission.mp_user_reset && form.id && dialogType === 'edit'"
:size="size"
@click="handleResetForRow(form)"
>
重置密码
</el-button>
</template>
</avue-crud>
</basic-container>
</template>
@@ -105,6 +121,7 @@ export default {
data() {
return {
form: {},
dialogType: '',
query: {},
loading: true,
page: {
@@ -160,6 +177,7 @@ export default {
return payload;
},
beforeOpen(done, type) {
this.dialogType = type;
if (['edit', 'view'].includes(type) && this.form.id) {
getDetail(this.form.id).then(res => {
const detail = res.data.data || {};
@@ -258,6 +276,22 @@ export default {
this.$refs.crud.toggleSelection();
});
},
handleResetForRow(row) {
if (!row || !row.id) {
this.$message.warning('请先保存用户后再重置密码');
return;
}
const account = row.account || row.phone || row.id;
this.$confirm(`确定将账号【${account}】的密码重置为随机密码?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => resetPassword(row.id))
.then(res => {
this.showResetPassword(res.data.data);
});
},
showResetPassword(passwordMap) {
const passwordList = Object.keys(passwordMap || {}).map(account =>
h('div', null, `${account}:${passwordMap[account]}`)
+1 -1
View File
@@ -139,7 +139,7 @@
<section-card title="用户信息">
<el-form ref="userFormRef" :model="form" :rules="isUserViewMode ? {} : userRules" label-position="right" label-width="calc(6em + 24px)">
<el-row :gutter="18">
<el-col :span="12"><el-form-item label="账号名" prop="account"><el-input v-model="form.account" :disabled="isUserViewMode" /></el-form-item></el-col>
<el-col :span="6"><el-form-item label="账号名" prop="account"><el-input v-model="form.account" :disabled="isUserViewMode" /></el-form-item></el-col>
<el-col v-if="userDialogMode === 'add'" :span="6">
<el-form-item label="登录密码" prop="password">
<el-input