This commit is contained in:
张良(004796)
2024-03-11 18:14:18 +08:00
parent 1fbcbf9a67
commit 7c28a972b8
4 changed files with 448 additions and 939 deletions

View File

@@ -1,204 +1,36 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="用户号" prop="usercode">
<el-form-item label="id" prop="id">
<el-input
v-model="queryParams.usercode"
placeholder="请输入用户号"
clearable
@keyup.enter.native="handleQuery"
v-model="queryParams.id"
placeholder="请输入用户号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="用户编号" prop="usercode">
<el-input
v-model="queryParams.usercode"
placeholder="请输入用户编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="昵称" prop="nickname">
<el-input
v-model="queryParams.nickname"
placeholder="请输入昵称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input
v-model="queryParams.password"
placeholder="请输入密码"
clearable
@keyup.enter.native="handleQuery"
v-model="queryParams.nickname"
placeholder="请输入昵称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="手机号" prop="mobile">
<el-input
v-model="queryParams.mobile"
placeholder="请输入手机号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="头像" prop="avatar">
<el-input
v-model="queryParams.avatar"
placeholder="请输入头像"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="自定义头像 1-自定义头像 0-默认头像" prop="avatarState">
<el-input
v-model="queryParams.avatarState"
placeholder="请输入自定义头像 1-自定义头像 0-默认头像"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="性别 0-未知 1-女 2-男" prop="gender">
<el-input
v-model="queryParams.gender"
placeholder="请输入性别 0-未知 1-女 2-男"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="年龄" prop="age">
<el-input
v-model="queryParams.age"
placeholder="请输入年龄"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="生日" prop="birthday">
<el-date-picker clearable
v-model="queryParams.birthday"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择生日">
</el-date-picker>
</el-form-item>
<el-form-item label="身高" prop="height">
<el-input
v-model="queryParams.height"
placeholder="请输入身高"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="体重" prop="weight">
<el-input
v-model="queryParams.weight"
placeholder="请输入体重"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="生肖" prop="zodiac">
<el-input
v-model="queryParams.zodiac"
placeholder="请输入生肖"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="星座" prop="sign">
<el-input
v-model="queryParams.sign"
placeholder="请输入星座"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="居住地" prop="residence">
<el-input
v-model="queryParams.residence"
placeholder="请输入居住地"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="户籍地" prop="address">
<el-input
v-model="queryParams.address"
placeholder="请输入户籍地"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="居住城市" prop="residenceCity">
<el-input
v-model="queryParams.residenceCity"
placeholder="请输入居住城市"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="学历" prop="education">
<el-input
v-model="queryParams.education"
placeholder="请输入学历"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="婚况" prop="marriage">
<el-input
v-model="queryParams.marriage"
placeholder="请输入婚况"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="职业" prop="profession">
<el-input
v-model="queryParams.profession"
placeholder="请输入职业"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="年收入" prop="annualIncome">
<el-input
v-model="queryParams.annualIncome"
placeholder="请输入年收入"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="公司性质" prop="companyNature">
<el-input
v-model="queryParams.companyNature"
placeholder="请输入公司性质"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="为谁征婚" prop="forPersonals">
<el-input
v-model="queryParams.forPersonals"
placeholder="请输入为谁征婚"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="邀请人" prop="inviteId">
<el-input
v-model="queryParams.inviteId"
placeholder="请输入邀请人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="邀请人Code" prop="inviteCode">
<el-input
v-model="queryParams.inviteCode"
placeholder="请输入邀请人Code"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="im_token" prop="imToken">
<el-input
v-model="queryParams.imToken"
placeholder="请输入im_token"
clearable
@keyup.enter.native="handleQuery"
v-model="queryParams.mobile"
placeholder="请输入手机号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
@@ -229,68 +61,55 @@
v-hasPermi="['xq:user:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['xq:user:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['xq:user:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="" align="center" prop="id" v-if="true"/>
<el-table-column label="用户号" align="center" prop="usercode" />
<el-table-column label="id" align="center" prop="id" show-overflow-tooltip />
<el-table-column label="号" align="center" prop="usercode" />
<el-table-column label="昵称" align="center" prop="nickname" />
<el-table-column label="用户类型: 0普通用户 1 内部用户 2 审核人员账号" align="center" prop="type" />
<el-table-column label="密码" align="center" prop="password" />
<el-table-column label="手机号" align="center" prop="mobile" />
<el-table-column label="头像" align="center" prop="avatar" />
<el-table-column label="自定义头像 1-自定义头像 0-默认头像" align="center" prop="avatarState" />
<el-table-column label="性别 0-未知 1-女 2-男" align="center" prop="gender" />
<el-table-column label="年龄" align="center" prop="age" />
<el-table-column label="生日" align="center" prop="birthday" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.birthday, '{y}-{m}-{d}') }}</span>
<el-table-column label="头像" align="center" prop="avatar" >
<template v-slot="scope">
<image-avatar :src="scope.row.avatar"/>
</template>
</el-table-column>
<el-table-column label="性别" align="center" prop="gender" >
<template v-slot="scope">
<cai-dict-tag :options="genderList" :value="scope.row.gender" />
</template>
</el-table-column>
<el-table-column label="邀请人" align="center" prop="inviteId" show-overflow-tooltip>
<template v-slot="scope">
<span v-if="!scope.row.inviteId">-</span>
<span v-if="scope.row.inviteId">{{scope.row.inviteNickname}}({{scope.row.inviteUsercode}})</span>
</template>
</el-table-column>
<el-table-column label="年龄" align="center" prop="age" />
<!-- <el-table-column label="生日" align="center" prop="birthday" width="180" />-->
<!-- <el-table-column label="身高" align="center" prop="height" />-->
<!-- <el-table-column label="体重" align="center" prop="weight" />-->
<!-- <el-table-column label="体型" align="center" prop="somatotype" />-->
<!-- <el-table-column label="生肖" align="center" prop="zodiac" />-->
<!-- <el-table-column label="星座" align="center" prop="sign" />-->
<!-- <el-table-column label="居住地" align="center" prop="residence" />-->
<!-- <el-table-column label="户籍地" align="center" prop="address" />-->
<!-- <el-table-column label="居住城市" align="center" prop="residenceCity" />-->
<!-- <el-table-column label="学历" align="center" prop="education" />-->
<!-- <el-table-column label="婚况" align="center" prop="marriage" />-->
<!-- <el-table-column label="职业" align="center" prop="profession" />-->
<!-- <el-table-column label="年收入" align="center" prop="annualIncome" />-->
<!-- <el-table-column label="公司性质" align="center" prop="companyNature" />-->
<!-- <el-table-column label="为谁征婚" align="center" prop="forPersonals" />-->
<!-- <el-table-column label="自我描述" align="center" prop="remark" />-->
<el-table-column label="状态" align="center" prop="status" >
<template v-slot="scope">
<cai-dict-tag :options="userStatusList" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="身高" align="center" prop="height" />
<el-table-column label="体重" align="center" prop="weight" />
<el-table-column label="体型" align="center" prop="somatotype" />
<el-table-column label="生肖" align="center" prop="zodiac" />
<el-table-column label="星座" align="center" prop="sign" />
<el-table-column label="居住地" align="center" prop="residence" />
<el-table-column label="户籍地" align="center" prop="address" />
<el-table-column label="居住城市" align="center" prop="residenceCity" />
<el-table-column label="学历" align="center" prop="education" />
<el-table-column label="婚况" align="center" prop="marriage" />
<el-table-column label="职业" align="center" prop="profession" />
<el-table-column label="年收入" align="center" prop="annualIncome" />
<el-table-column label="公司性质" align="center" prop="companyNature" />
<el-table-column label="为谁征婚" align="center" prop="forPersonals" />
<el-table-column label="自我描述" align="center" prop="remark" />
<el-table-column label="状态 0-可用 1-不可用" align="center" prop="status" />
<el-table-column label="邀请人" align="center" prop="inviteId" />
<el-table-column label="邀请人Code" align="center" prop="inviteCode" />
<el-table-column label="im_token" align="center" prop="imToken" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<template v-slot="scope">
<el-button
size="mini"
type="text"
@@ -305,6 +124,20 @@
@click="handleDelete(scope.row)"
v-hasPermi="['xq:user:remove']"
>删除</el-button>
<el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
<el-dropdown-menu slot="dropdown">
<!-- <el-dropdown-item command="handleDelete" icon="el-icon-info">完整信息</el-dropdown-item>-->
<el-dropdown-item v-hasPermi="['xq:user:restPwd']" command="handleResetPwd" icon="el-icon-key">重置密码</el-dropdown-item>
<el-dropdown-item v-hasPermi="['xq:user:updateMobile']" command="handleResetMobile" icon="el-icon-phone">修改手机</el-dropdown-item>
<el-dropdown-item v-hasPermi="['xq:user:lock']" command="handleUserForbid" icon="el-icon-lock">封禁</el-dropdown-item>
<el-dropdown-item v-hasPermi="['xq:user:unBindInvite']" v-if="scope.row.inviteId" command="handleUserUnBindInvite" icon="el-icon-unlock"><span style="color: red">解绑邀请</span></el-dropdown-item>
<el-dropdown-item v-hasPermi="['xq:user:bindInvite']" v-if="!scope.row.inviteId" command="handleUserBindInvite" icon="el-icon-link">绑定邀请</el-dropdown-item>
<el-dropdown-item v-hasPermi="['xq:user:resetAvatar']" command="handleUserResetAvatar" icon="el-icon-refresh-right">重置头像</el-dropdown-item>
<el-dropdown-item v-hasPermi="['xq:user:resetNickname']" command="handleUserResetNickname" icon="el-icon-refresh-right">重置昵称</el-dropdown-item>
<el-dropdown-item v-hasPermi="['xq:user:remove']" command="handleDelete" icon="el-icon-delete" ><span style="color: red">删除</span></el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
@@ -316,109 +149,18 @@
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改用户管理对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="用户号" prop="usercode">
<el-input v-model="form.usercode" placeholder="请输入用户号" />
</el-form-item>
<el-form-item label="昵称" prop="nickname">
<el-input v-model="form.nickname" placeholder="请输入昵称" />
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input v-model="form.password" placeholder="请输入密码" />
</el-form-item>
<el-form-item label="手机号" prop="mobile">
<el-input v-model="form.mobile" placeholder="请输入手机号" />
</el-form-item>
<el-form-item label="头像" prop="avatar">
<el-input v-model="form.avatar" placeholder="请输入头像" />
</el-form-item>
<el-form-item label="自定义头像 1-自定义头像 0-默认头像" prop="avatarState">
<el-input v-model="form.avatarState" placeholder="请输入自定义头像 1-自定义头像 0-默认头像" />
</el-form-item>
<el-form-item label="性别 0-未知 1-女 2-男" prop="gender">
<el-input v-model="form.gender" placeholder="请输入性别 0-未知 1-女 2-男" />
</el-form-item>
<el-form-item label="年龄" prop="age">
<el-input v-model="form.age" placeholder="请输入年龄" />
</el-form-item>
<el-form-item label="生日" prop="birthday">
<el-date-picker clearable
v-model="form.birthday"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择生日">
</el-date-picker>
</el-form-item>
<el-form-item label="身高" prop="height">
<el-input v-model="form.height" placeholder="请输入身高" />
</el-form-item>
<el-form-item label="体重" prop="weight">
<el-input v-model="form.weight" placeholder="请输入体重" />
</el-form-item>
<el-form-item label="生肖" prop="zodiac">
<el-input v-model="form.zodiac" placeholder="请输入生肖" />
</el-form-item>
<el-form-item label="星座" prop="sign">
<el-input v-model="form.sign" placeholder="请输入星座" />
</el-form-item>
<el-form-item label="居住地" prop="residence">
<el-input v-model="form.residence" placeholder="请输入居住地" />
</el-form-item>
<el-form-item label="户籍地" prop="address">
<el-input v-model="form.address" placeholder="请输入户籍地" />
</el-form-item>
<el-form-item label="居住城市" prop="residenceCity">
<el-input v-model="form.residenceCity" placeholder="请输入居住城市" />
</el-form-item>
<el-form-item label="学历" prop="education">
<el-input v-model="form.education" placeholder="请输入学历" />
</el-form-item>
<el-form-item label="婚况" prop="marriage">
<el-input v-model="form.marriage" placeholder="请输入婚况" />
</el-form-item>
<el-form-item label="职业" prop="profession">
<el-input v-model="form.profession" placeholder="请输入职业" />
</el-form-item>
<el-form-item label="年收入" prop="annualIncome">
<el-input v-model="form.annualIncome" placeholder="请输入年收入" />
</el-form-item>
<el-form-item label="公司性质" prop="companyNature">
<el-input v-model="form.companyNature" placeholder="请输入公司性质" />
</el-form-item>
<el-form-item label="为谁征婚" prop="forPersonals">
<el-input v-model="form.forPersonals" placeholder="请输入为谁征婚" />
</el-form-item>
<el-form-item label="自我描述" prop="remark">
<el-input v-model="form.remark" placeholder="请输入自我描述" />
</el-form-item>
<el-form-item label="邀请人" prop="inviteId">
<el-input v-model="form.inviteId" placeholder="请输入邀请人" />
</el-form-item>
<el-form-item label="邀请人Code" prop="inviteCode">
<el-input v-model="form.inviteCode" placeholder="请输入邀请人Code" />
</el-form-item>
<el-form-item label="im_token" prop="imToken">
<el-input v-model="form.imToken" placeholder="请输入im_token" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listUser, getUser, delUser, addUser, updateUser } from "@/api/xq/user";
import { genderList, userStatusList } from '@/constant/statusMap'
export default {
name: "User",
data() {
return {
userStatusList,genderList,
// 按钮loading
buttonLoading: false,
// 遮罩层
@@ -445,130 +187,8 @@ export default {
pageSize: 10,
usercode: undefined,
nickname: undefined,
type: undefined,
password: undefined,
id: undefined,
mobile: undefined,
avatar: undefined,
avatarState: undefined,
gender: undefined,
age: undefined,
birthday: undefined,
height: undefined,
weight: undefined,
somatotype: undefined,
zodiac: undefined,
sign: undefined,
residence: undefined,
address: undefined,
residenceCity: undefined,
education: undefined,
marriage: undefined,
profession: undefined,
annualIncome: undefined,
companyNature: undefined,
forPersonals: undefined,
status: undefined,
inviteId: undefined,
inviteCode: undefined,
imToken: undefined
},
// 表单参数
form: {},
// 表单校验
rules: {
id: [
{ required: true, message: "不能为空", trigger: "blur" }
],
usercode: [
{ required: true, message: "用户号不能为空", trigger: "blur" }
],
nickname: [
{ required: true, message: "昵称不能为空", trigger: "blur" }
],
type: [
{ required: true, message: "用户类型: 0普通用户 1 内部用户 2 审核人员账号不能为空", trigger: "change" }
],
password: [
{ required: true, message: "密码不能为空", trigger: "blur" }
],
mobile: [
{ required: true, message: "手机号不能为空", trigger: "blur" }
],
avatar: [
{ required: true, message: "头像不能为空", trigger: "blur" }
],
avatarState: [
{ required: true, message: "自定义头像 1-自定义头像 0-默认头像不能为空", trigger: "blur" }
],
gender: [
{ required: true, message: "性别 0-未知 1-女 2-男不能为空", trigger: "blur" }
],
age: [
{ required: true, message: "年龄不能为空", trigger: "blur" }
],
birthday: [
{ required: true, message: "生日不能为空", trigger: "blur" }
],
height: [
{ required: true, message: "身高不能为空", trigger: "blur" }
],
weight: [
{ required: true, message: "体重不能为空", trigger: "blur" }
],
somatotype: [
{ required: true, message: "体型不能为空", trigger: "change" }
],
zodiac: [
{ required: true, message: "生肖不能为空", trigger: "blur" }
],
sign: [
{ required: true, message: "星座不能为空", trigger: "blur" }
],
residence: [
{ required: true, message: "居住地不能为空", trigger: "blur" }
],
address: [
{ required: true, message: "户籍地不能为空", trigger: "blur" }
],
residenceCity: [
{ required: true, message: "居住城市不能为空", trigger: "blur" }
],
education: [
{ required: true, message: "学历不能为空", trigger: "blur" }
],
marriage: [
{ required: true, message: "婚况不能为空", trigger: "blur" }
],
profession: [
{ required: true, message: "职业不能为空", trigger: "blur" }
],
annualIncome: [
{ required: true, message: "年收入不能为空", trigger: "blur" }
],
companyNature: [
{ required: true, message: "公司性质不能为空", trigger: "blur" }
],
forPersonals: [
{ required: true, message: "为谁征婚不能为空", trigger: "blur" }
],
remark: [
{ required: true, message: "自我描述不能为空", trigger: "blur" }
],
createTime: [
{ required: true, message: "创建时间不能为空", trigger: "blur" }
],
status: [
{ required: true, message: "状态 0-可用 1-不可用不能为空", trigger: "change" }
],
inviteId: [
{ required: true, message: "邀请人不能为空", trigger: "blur" }
],
inviteCode: [
{ required: true, message: "邀请人Code不能为空", trigger: "blur" }
],
imToken: [
{ required: true, message: "im_token不能为空", trigger: "blur" }
]
}
};
},