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" }
]
}
};
},

View File

@@ -1,148 +1,28 @@
<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="用户ID" prop="userId">
<el-form-item label="用户编号" prop="usercode">
<el-input
v-model="queryParams.userId"
placeholder="请输入用户ID"
clearable
@keyup.enter.native="handleQuery"
v-model="queryParams.usercode"
placeholder="请输入用户编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="用户号" prop="usercode">
<el-form-item label="昵称" prop="nickname">
<el-input
v-model="queryParams.usercode"
placeholder="请输入用户号"
clearable
@keyup.enter.native="handleQuery"
v-model="queryParams.nickname"
placeholder="请输入昵称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="民族" prop="nation">
<el-form-item label="手机号" prop="mobile">
<el-input
v-model="queryParams.nation"
placeholder="请输入民族"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="家庭背景" prop="familyBackground">
<el-input
v-model="queryParams.familyBackground"
placeholder="请输入家庭背景"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="家中排行" prop="familyRanking">
<el-input
v-model="queryParams.familyRanking"
placeholder="请输入家中排行"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="是否接受异地恋" prop="loveAtDistance">
<el-input
v-model="queryParams.loveAtDistance"
placeholder="请输入是否接受异地恋"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="何时结婚" prop="whenMarriage">
<el-input
v-model="queryParams.whenMarriage"
placeholder="请输入何时结婚"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="是否要小孩" prop="wantChild">
<el-input
v-model="queryParams.wantChild"
placeholder="请输入是否要小孩"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="愿与对方父母同住" prop="liveAtParent">
<el-input
v-model="queryParams.liveAtParent"
placeholder="请输入愿与对方父母同住"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="交友目的" prop="findTag">
<el-input
v-model="queryParams.findTag"
placeholder="请输入交友目的"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="毕业院校" prop="graduateSchool">
<el-input
v-model="queryParams.graduateSchool"
placeholder="请输入毕业院校"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="兴趣爱好" prop="hobbys">
<el-input
v-model="queryParams.hobbys"
placeholder="请输入兴趣爱好"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="择偶条件-年龄" prop="filterAge">
<el-input
v-model="queryParams.filterAge"
placeholder="请输入择偶条件-年龄"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="择偶条件-身高" prop="filterHeight">
<el-input
v-model="queryParams.filterHeight"
placeholder="请输入择偶条件-身高"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="择偶条件-婚况" prop="filterMarriage">
<el-input
v-model="queryParams.filterMarriage"
placeholder="请输入择偶条件-婚况"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="择偶条件-学历" prop="filterEducation">
<el-input
v-model="queryParams.filterEducation"
placeholder="请输入择偶条件-学历"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="择偶条件-地区" prop="filterResidence">
<el-input
v-model="queryParams.filterResidence"
placeholder="请输入择偶条件-地区"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="择偶条件-年收入" prop="filterAnnualIncome">
<el-input
v-model="queryParams.filterAnnualIncome"
placeholder="请输入择偶条件-年收入"
clearable
@keyup.enter.native="handleQuery"
v-model="queryParams.mobile"
placeholder="请输入手机号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
@@ -152,16 +32,6 @@
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['xq:userInfo:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
@@ -173,76 +43,154 @@
v-hasPermi="['xq:userInfo: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:userInfo: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:userInfo:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="userInfoList" @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="用户ID" align="center" prop="userId" />
<el-table-column label="用户号" align="center" prop="usercode" />
<el-table-column label="住房情况" align="center" prop="housingStatus" />
<el-table-column label="购车情况" align="center" prop="carStatus" />
<el-table-column label="是否吸烟" align="center" prop="smokeStatus" />
<el-table-column label="是否喝酒" align="center" prop="drinkStatus" />
<el-table-column label="民族" align="center" prop="nation" />
<el-table-column label="有没有小孩" align="center" prop="childStatus" />
<el-table-column label="家庭背景" align="center" prop="familyBackground" />
<el-table-column label="家中排行" align="center" prop="familyRanking" />
<el-table-column label="是否接受异地恋" align="center" prop="loveAtDistance" />
<el-table-column label="何时结婚" align="center" prop="whenMarriage" />
<el-table-column label="是否要小孩" align="center" prop="wantChild" />
<el-table-column label="愿与对方父母同住" align="center" prop="liveAtParent" />
<el-table-column label="交友目的" align="center" prop="findTag" />
<el-table-column label="毕业院校" align="center" prop="graduateSchool" />
<el-table-column label="兴趣爱好" align="center" prop="hobbys" />
<el-table-column label="择偶条件-年龄" align="center" prop="filterAge" />
<el-table-column label="择偶条件-身高" align="center" prop="filterHeight" />
<el-table-column label="择偶条件-体型" align="center" prop="filterSomatotype" />
<el-table-column label="择偶条件-婚况" align="center" prop="filterMarriage" />
<el-table-column label="择偶条件-学历" align="center" prop="filterEducation" />
<el-table-column label="择偶条件-地区" align="center" prop="filterResidence" />
<el-table-column label="择偶条件-年收入" align="center" prop="filterAnnualIncome" />
<el-table-column label="择偶条件-小孩情况" align="center" prop="filterChildStatus" />
<el-table-column label="择偶条件-住房情况" align="center" prop="filterHousingStatus" />
<el-table-column label="择偶条件-购车情况" align="center" prop="filterCarStatus" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-table-column label="用户编号" align="center" prop="usercode" />
<el-table-column label="昵称" align="center" prop="nickname" show-overflow-tooltip/>
<el-table-column label="手机号" align="center" prop="mobile" width="100"/>
<el-table-column label="个人信息" align="center" >
<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="age" />
<el-table-column label="生日" align="center" prop="birthday" show-overflow-tooltip/>
<el-table-column label="身高" align="center" prop="height" />
<el-table-column label="体重" align="center" prop="weight" />
<el-table-column label="体型" align="center" prop="somatotype" >
<template v-slot="scope">
<cai-dict-tag :options="userSomatotypeList" :value="scope.row.somatotype" empty-value="-"/>
</template>
</el-table-column>
<el-table-column label="生肖" align="center" prop="zodiac" >
<template v-slot="scope">
<cai-dict-tag :options="userZodiacList" :value="scope.row.zodiac" empty-value="-"/>
</template>
</el-table-column>
<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" >
<template v-slot="scope">
<cai-dict-tag :options="userEducationList" :value="scope.row.education" empty-value="-"/>
</template>
</el-table-column>
<el-table-column label="婚况" align="center" prop="marriage" >
<template v-slot="scope">
<cai-dict-tag :options="userMarriageList" :value="scope.row.marriage" empty-value="-"/>
</template>
</el-table-column>
<el-table-column label="职业" align="center" prop="profession" />
<el-table-column label="年收入" align="center" prop="annualIncome" >
<template v-slot="scope">
<cai-dict-tag :options="userAnnualIncomeList" :value="scope.row.annualIncome" empty-value="-"/>
</template>
</el-table-column>
<el-table-column label="公司性质" align="center" prop="companyNature" >
<template v-slot="scope">
<cai-dict-tag :options="userCompanyNatureList" :value="scope.row.companyNature" empty-value="-"/>
</template>
</el-table-column>
<el-table-column label="为谁征婚" align="center" prop="forPersonals" show-overflow-tooltip>
<template v-slot="scope">
<cai-dict-tag :options="userForPersonalsList" :value="scope.row.forPersonals" empty-value="-"/>
</template>
</el-table-column>
<el-table-column label="自我描述" align="center" prop="remark" show-overflow-tooltip />
<el-table-column label="住房情况" align="center" prop="housingStatus" >
<template v-slot="scope">
<cai-dict-tag :options="userHousingStatusList" :value="scope.row.housingStatus" empty-value="-"/>
</template>
</el-table-column>
<el-table-column label="购车情况" align="center" prop="carStatus" >
<template v-slot="scope">
<cai-dict-tag :options="userCarStatusList" :value="scope.row.carStatus" empty-value="-"/>
</template>
</el-table-column>
<el-table-column label="是否吸烟" align="center" prop="smokeStatus" show-overflow-tooltip>
<template v-slot="scope">
<cai-dict-tag :options="userSmokeStatusList" :value="scope.row.smokeStatus" empty-value="-"/>
</template>
</el-table-column>
<el-table-column label="是否喝酒" align="center" prop="drinkStatus" >
<template v-slot="scope">
<cai-dict-tag :options="userDrinkStatusList" :value="scope.row.drinkStatus" empty-value="-"/>
</template>
</el-table-column>
<el-table-column label="民族" align="center" prop="nation" />
<el-table-column label="有没有小孩" align="center" prop="childStatus" >
<template v-slot="scope">
<cai-dict-tag :options="userChildStatusList" :value="scope.row.childStatus" empty-value="-"/>
</template>
</el-table-column>
<el-table-column label="家庭背景" align="center" prop="familyBackground" >
<template v-slot="scope">
<cai-dict-tag :options="userFamilyBackgroundList" :value="scope.row.familyBackground" empty-value="-"/>
</template>
</el-table-column>
<el-table-column label="家中排行" align="center" prop="familyRanking" >
<template v-slot="scope">
<cai-dict-tag :options="userFamilyRankingList" :value="scope.row.familyRanking" empty-value="-"/>
</template>
</el-table-column>
<el-table-column label="是否接受异地恋" align="center" prop="loveAtDistance" >
<template v-slot="scope">
<cai-dict-tag :options="userLoveAtDistanceList" :value="scope.row.loveAtDistance" empty-value="-"/>
</template>
</el-table-column>
<el-table-column label="何时结婚" align="center" prop="whenMarriage" >
<template v-slot="scope">
<cai-dict-tag :options="userWhenMarriageList" :value="scope.row.whenMarriage" empty-value="-"/>
</template>
</el-table-column>
<el-table-column label="是否要小孩" align="center" prop="wantChild" >
<template v-slot="scope">
<cai-dict-tag :options="userWantChildList" :value="scope.row.wantChild" empty-value="-"/>
</template>
</el-table-column>
<el-table-column label="愿与对方父母同住" align="center" prop="liveAtParent" >
<template v-slot="scope">
<cai-dict-tag :options="userLiveAtParentList" :value="scope.row.liveAtParent" empty-value="-"/>
</template>
</el-table-column>
<el-table-column label="交友目的" align="center" prop="findTag" >
<template v-slot="scope">
<cai-dict-tag :options="userFindTagList" :value="scope.row.findTag" empty-value="-"/>
</template>
</el-table-column>
<el-table-column label="毕业院校" align="center" prop="graduateSchool" />
<el-table-column label="兴趣爱好" align="center" prop="hobbys" />
</el-table-column>
<el-table-column label="择偶条件" align="center" >
<el-table-column label="年龄" align="center" prop="filterAge" />
<el-table-column label="身高" align="center" prop="filterHeight" />
<el-table-column label="体型" align="center" prop="filterSomatotype" />
<el-table-column label="婚况" align="center" prop="filterMarriage" />
<el-table-column label="学历" align="center" prop="filterEducation" />
<el-table-column label="地区" align="center" prop="filterResidence" />
<el-table-column label="年收入" align="center" prop="filterAnnualIncome" />
<el-table-column label="小孩情况" align="center" prop="filterChildStatus" />
<el-table-column label="住房情况" align="center" prop="filterHousingStatus" />
<el-table-column label="购车情况" align="center" prop="filterCarStatus" />
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template v-slot="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['xq:userInfo:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['xq:userInfo:remove']"
>删除</el-button>
icon="el-icon-info"
@click="handleInfo(scope.row)"
>详情</el-button>
</template>
</el-table-column>
</el-table>
@@ -254,82 +202,28 @@
: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="用户ID" prop="userId">
<el-input v-model="form.userId" placeholder="请输入用户ID" />
</el-form-item>
<el-form-item label="用户号" prop="usercode">
<el-input v-model="form.usercode" placeholder="请输入用户号" />
</el-form-item>
<el-form-item label="民族" prop="nation">
<el-input v-model="form.nation" placeholder="请输入民族" />
</el-form-item>
<el-form-item label="家庭背景" prop="familyBackground">
<el-input v-model="form.familyBackground" placeholder="请输入家庭背景" />
</el-form-item>
<el-form-item label="家中排行" prop="familyRanking">
<el-input v-model="form.familyRanking" placeholder="请输入家中排行" />
</el-form-item>
<el-form-item label="是否接受异地恋" prop="loveAtDistance">
<el-input v-model="form.loveAtDistance" placeholder="请输入是否接受异地恋" />
</el-form-item>
<el-form-item label="何时结婚" prop="whenMarriage">
<el-input v-model="form.whenMarriage" placeholder="请输入何时结婚" />
</el-form-item>
<el-form-item label="是否要小孩" prop="wantChild">
<el-input v-model="form.wantChild" placeholder="请输入是否要小孩" />
</el-form-item>
<el-form-item label="愿与对方父母同住" prop="liveAtParent">
<el-input v-model="form.liveAtParent" placeholder="请输入愿与对方父母同住" />
</el-form-item>
<el-form-item label="交友目的" prop="findTag">
<el-input v-model="form.findTag" placeholder="请输入交友目的" />
</el-form-item>
<el-form-item label="毕业院校" prop="graduateSchool">
<el-input v-model="form.graduateSchool" placeholder="请输入毕业院校" />
</el-form-item>
<el-form-item label="兴趣爱好" prop="hobbys">
<el-input v-model="form.hobbys" placeholder="请输入兴趣爱好" />
</el-form-item>
<el-form-item label="择偶条件-年龄" prop="filterAge">
<el-input v-model="form.filterAge" placeholder="请输入择偶条件-年龄" />
</el-form-item>
<el-form-item label="择偶条件-身高" prop="filterHeight">
<el-input v-model="form.filterHeight" placeholder="请输入择偶条件-身高" />
</el-form-item>
<el-form-item label="择偶条件-婚况" prop="filterMarriage">
<el-input v-model="form.filterMarriage" placeholder="请输入择偶条件-婚况" />
</el-form-item>
<el-form-item label="择偶条件-学历" prop="filterEducation">
<el-input v-model="form.filterEducation" placeholder="请输入择偶条件-学历" />
</el-form-item>
<el-form-item label="择偶条件-地区" prop="filterResidence">
<el-input v-model="form.filterResidence" placeholder="请输入择偶条件-地区" />
</el-form-item>
<el-form-item label="择偶条件-年收入" prop="filterAnnualIncome">
<el-input v-model="form.filterAnnualIncome" placeholder="请输入择偶条件-年收入" />
</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 { listUserInfo, getUserInfo, delUserInfo, addUserInfo, updateUserInfo } from "@/api/xq/userInfo";
import {
genderList, userCarStatusList, userChildStatusList, userCompanyNatureList, userDrinkStatusList,
userEducationList, userFamilyBackgroundList, userFamilyRankingList, userForPersonalsList, userHousingStatusList,
userLiveAtParentList, userLoveAtDistanceList, userSmokeStatusList,
userSomatotypeList,userMarriageList,userAnnualIncomeList,userZodiacList,
userWantChildList, userWhenMarriageList,userFindTagList
} from '@/constant/statusMap'
export default {
name: "UserInfo",
data() {
return {
// 按钮loading
buttonLoading: false,
genderList,userCarStatusList, userChildStatusList, userCompanyNatureList, userDrinkStatusList,
userEducationList, userFamilyBackgroundList, userFamilyRankingList, userForPersonalsList, userHousingStatusList,
userLiveAtParentList, userLoveAtDistanceList, userSmokeStatusList,
userSomatotypeList,userMarriageList,userAnnualIncomeList,userZodiacList,
userWantChildList, userWhenMarriageList,userFindTagList,
// 遮罩层
loading: true,
// 选中数组
@@ -344,15 +238,12 @@ export default {
total: 0,
// 用户信息表格数据
userInfoList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
userId: undefined,
nickname: undefined,
mobile: undefined,
usercode: undefined,
housingStatus: undefined,
carStatus: undefined,
@@ -380,95 +271,6 @@ export default {
filterHousingStatus: undefined,
filterCarStatus: undefined
},
// 表单参数
form: {},
// 表单校验
rules: {
id: [
{ required: true, message: "不能为空", trigger: "blur" }
],
userId: [
{ required: true, message: "用户ID不能为空", trigger: "blur" }
],
usercode: [
{ required: true, message: "用户号不能为空", trigger: "blur" }
],
housingStatus: [
{ required: true, message: "住房情况不能为空", trigger: "change" }
],
carStatus: [
{ required: true, message: "购车情况不能为空", trigger: "change" }
],
smokeStatus: [
{ required: true, message: "是否吸烟不能为空", trigger: "change" }
],
drinkStatus: [
{ required: true, message: "是否喝酒不能为空", trigger: "change" }
],
nation: [
{ required: true, message: "民族不能为空", trigger: "blur" }
],
childStatus: [
{ required: true, message: "有没有小孩不能为空", trigger: "change" }
],
familyBackground: [
{ required: true, message: "家庭背景不能为空", trigger: "blur" }
],
familyRanking: [
{ required: true, message: "家中排行不能为空", trigger: "blur" }
],
loveAtDistance: [
{ required: true, message: "是否接受异地恋不能为空", trigger: "blur" }
],
whenMarriage: [
{ required: true, message: "何时结婚不能为空", trigger: "blur" }
],
wantChild: [
{ required: true, message: "是否要小孩不能为空", trigger: "blur" }
],
liveAtParent: [
{ required: true, message: "愿与对方父母同住不能为空", trigger: "blur" }
],
findTag: [
{ required: true, message: "交友目的不能为空", trigger: "blur" }
],
graduateSchool: [
{ required: true, message: "毕业院校不能为空", trigger: "blur" }
],
hobbys: [
{ required: true, message: "兴趣爱好不能为空", trigger: "blur" }
],
filterAge: [
{ required: true, message: "择偶条件-年龄不能为空", trigger: "blur" }
],
filterHeight: [
{ required: true, message: "择偶条件-身高不能为空", trigger: "blur" }
],
filterSomatotype: [
{ required: true, message: "择偶条件-体型不能为空", trigger: "change" }
],
filterMarriage: [
{ required: true, message: "择偶条件-婚况不能为空", trigger: "blur" }
],
filterEducation: [
{ required: true, message: "择偶条件-学历不能为空", trigger: "blur" }
],
filterResidence: [
{ required: true, message: "择偶条件-地区不能为空", trigger: "blur" }
],
filterAnnualIncome: [
{ required: true, message: "择偶条件-年收入不能为空", trigger: "blur" }
],
filterChildStatus: [
{ required: true, message: "择偶条件-小孩情况不能为空", trigger: "change" }
],
filterHousingStatus: [
{ required: true, message: "择偶条件-住房情况不能为空", trigger: "change" }
],
filterCarStatus: [
{ required: true, message: "择偶条件-购车情况不能为空", trigger: "change" }
]
}
};
},
created() {
@@ -484,45 +286,6 @@ export default {
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined,
userId: undefined,
usercode: undefined,
housingStatus: undefined,
carStatus: undefined,
smokeStatus: undefined,
drinkStatus: undefined,
nation: undefined,
childStatus: undefined,
familyBackground: undefined,
familyRanking: undefined,
loveAtDistance: undefined,
whenMarriage: undefined,
wantChild: undefined,
liveAtParent: undefined,
findTag: undefined,
graduateSchool: undefined,
hobbys: undefined,
filterAge: undefined,
filterHeight: undefined,
filterSomatotype: undefined,
filterMarriage: undefined,
filterEducation: undefined,
filterResidence: undefined,
filterAnnualIncome: undefined,
filterChildStatus: undefined,
filterHousingStatus: undefined,
filterCarStatus: undefined
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
@@ -539,70 +302,6 @@ export default {
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加用户信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids
getUserInfo(id).then(response => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改用户信息";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateUserInfo(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
} else {
addUserInfo(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除用户信息编号为"' + ids + '"的数据项?').then(() => {
this.loading = true;
return delUserInfo(ids);
}).then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
}).finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download('xq/userInfo/export', {
...this.queryParams
}, `userInfo_${new Date().getTime()}.xlsx`)
}
}
};
</script>