✨ 小程序用户支持重置密码,列表隐藏 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, addBtn: false,
selection: true, selection: true,
dialogClickModal: false, dialogClickModal: false,
menuWidth: 280, menuWidth: 320,
column: [ column: [
{ {
label: '手机号', label: '手机号',
@@ -140,8 +140,10 @@ export default {
prop: 'openid', prop: 'openid',
minWidth: 180, minWidth: 180,
overHidden: true, overHidden: true,
hide: true,
addDisplay: false, addDisplay: false,
editDisplay: true, editDisplay: true,
viewDisplay: true,
order: 40, order: 40,
placeholder: '可清空以解绑微信', placeholder: '可清空以解绑微信',
}, },
+1 -1
View File
@@ -97,7 +97,7 @@ export const userOption = safe => {
{ {
label: '账号名', label: '账号名',
prop: 'account', prop: 'account',
span: 12, span: 6,
rules: [ rules: [
{ {
required: true, required: true,
+34
View File
@@ -77,6 +77,13 @@
> >
{{ row.status === 1 ? '停用' : '启用' }} {{ row.status === 1 ? '停用' : '启用' }}
</el-link> </el-link>
<el-link
type="primary"
v-if="permission.mp_user_reset"
@click="handleResetForRow(row)"
>
重置密码
</el-link>
<el-link <el-link
type="danger" type="danger"
v-if="permission.mp_user_delete" v-if="permission.mp_user_delete"
@@ -85,6 +92,15 @@
删除 删除
</el-link> </el-link>
</template> </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> </avue-crud>
</basic-container> </basic-container>
</template> </template>
@@ -105,6 +121,7 @@ export default {
data() { data() {
return { return {
form: {}, form: {},
dialogType: '',
query: {}, query: {},
loading: true, loading: true,
page: { page: {
@@ -160,6 +177,7 @@ export default {
return payload; return payload;
}, },
beforeOpen(done, type) { beforeOpen(done, type) {
this.dialogType = type;
if (['edit', 'view'].includes(type) && this.form.id) { if (['edit', 'view'].includes(type) && this.form.id) {
getDetail(this.form.id).then(res => { getDetail(this.form.id).then(res => {
const detail = res.data.data || {}; const detail = res.data.data || {};
@@ -258,6 +276,22 @@ export default {
this.$refs.crud.toggleSelection(); 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) { showResetPassword(passwordMap) {
const passwordList = Object.keys(passwordMap || {}).map(account => const passwordList = Object.keys(passwordMap || {}).map(account =>
h('div', null, `${account}:${passwordMap[account]}`) h('div', null, `${account}:${passwordMap[account]}`)
+1 -1
View File
@@ -139,7 +139,7 @@
<section-card title="用户信息"> <section-card title="用户信息">
<el-form ref="userFormRef" :model="form" :rules="isUserViewMode ? {} : userRules" label-position="right" label-width="calc(6em + 24px)"> <el-form ref="userFormRef" :model="form" :rules="isUserViewMode ? {} : userRules" label-position="right" label-width="calc(6em + 24px)">
<el-row :gutter="18"> <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-col v-if="userDialogMode === 'add'" :span="6">
<el-form-item label="登录密码" prop="password"> <el-form-item label="登录密码" prop="password">
<el-input <el-input