|
@@ -1,30 +1,13 @@
|
|
|
<template>
|
|
|
<div class="app-container">
|
|
|
- <span><i class="el-icon-house"></i> 家族 - {{ nickName }}</span>
|
|
|
+ <span><i class="el-icon-house"></i> 家族 - {{ familyName }}</span>
|
|
|
<el-divider></el-divider>
|
|
|
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
|
|
|
- <el-form-item label="姓名" prop="name">
|
|
|
+
|
|
|
+ <el-form-item label="模糊条件" prop="searchValue">
|
|
|
<el-input
|
|
|
- v-model="queryParams.name"
|
|
|
- placeholder="请输入姓名"
|
|
|
- clearable
|
|
|
- size="small"
|
|
|
- @keyup.enter.native="handleQuery"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="性别:1-男,2-女,0-未知" prop="gender">
|
|
|
- <el-input
|
|
|
- v-model="queryParams.gender"
|
|
|
- placeholder="请输入性别:1-男,2-女,0-未知"
|
|
|
- clearable
|
|
|
- size="small"
|
|
|
- @keyup.enter.native="handleQuery"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="状态" prop="state">
|
|
|
- <el-input
|
|
|
- v-model="queryParams.state"
|
|
|
- placeholder="请输入状态:1读书、2工作、3退休、4过世"
|
|
|
+ v-model="queryParams.searchValue"
|
|
|
+ placeholder="请输入姓名/手机号"
|
|
|
clearable
|
|
|
size="small"
|
|
|
@keyup.enter.native="handleQuery"
|
|
@@ -72,16 +55,16 @@
|
|
|
<el-table v-loading="loading" :data="memberList" @selection-change="handleSelectionChange">
|
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
|
<el-table-column label="主键ID" align="center" prop="memberId" v-if="false"/>
|
|
|
- <el-table-column label="姓名" align="center" prop="name" />
|
|
|
- <el-table-column label="性别" align="center" prop="gender" :formatter="genderFormat"/>
|
|
|
- <el-table-column label="配偶" align="center" prop="spouse" />
|
|
|
- <el-table-column label="生日" align="center" prop="birthday" width="180">
|
|
|
+ <el-table-column label="姓名" align="center" prop="name" width="100" />
|
|
|
+ <el-table-column label="手机号" align="center" prop="mobile" width="200" />
|
|
|
+ <el-table-column label="性别" align="center" prop="gender" :formatter="genderFormat" width="50" />
|
|
|
+ <el-table-column label="配偶" align="center" prop="spouse" width="100" />
|
|
|
+ <el-table-column label="生日" align="center" prop="birthday" width="200">
|
|
|
<template slot-scope="scope">
|
|
|
<span>{{ parseTime(scope.row.birthday, '{y}-{m}-{d}') }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="手机号" align="center" prop="mobile" />
|
|
|
- <el-table-column label="状态:1读书、2工作、3退休、4过世" align="center" prop="state" />
|
|
|
+ <el-table-column label="状态" align="center" prop="state" :formatter="stateFormat" width="50" />
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
|
<template slot-scope="scope">
|
|
|
<el-button
|
|
@@ -111,34 +94,69 @@
|
|
|
/>
|
|
|
|
|
|
<!-- 添加或修改家族成员对话框 -->
|
|
|
- <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
|
|
+ <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body :close-on-click-modal=false>
|
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
|
|
- <el-form-item label="会员id" prop="appUserId">
|
|
|
- <el-input v-model="form.appUserId" placeholder="请输入会员id" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="配偶id" prop="spouseId">
|
|
|
- <el-input v-model="form.spouseId" placeholder="请输入配偶id" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="姓名" prop="name">
|
|
|
- <el-input v-model="form.name" placeholder="请输入姓名" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="生日" prop="birthday">
|
|
|
- <el-date-picker clearable size="small" style="width: 200px"
|
|
|
- v-model="form.birthday"
|
|
|
- type="date"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- placeholder="选择生日">
|
|
|
- </el-date-picker>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="性别:1-男,2-女,0-未知" prop="gender">
|
|
|
- <el-input v-model="form.gender" placeholder="请输入性别:1-男,2-女,0-未知" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="文化程度" prop="education">
|
|
|
- <el-input v-model="form.education" placeholder="请输入文化程度" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="状态:1读书、2工作、3退休、4过世" prop="state">
|
|
|
- <el-input v-model="form.state" placeholder="请输入状态:1读书、2工作、3退休、4过世" />
|
|
|
- </el-form-item>
|
|
|
+
|
|
|
+ <el-row :gutter="0" type="flex" justify="start">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="姓名" prop="name">
|
|
|
+ <el-input v-model="form.name" placeholder="请输入姓名" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="性别" prop="gender">
|
|
|
+ <el-select v-model="form.gender" placeholder="请选择">
|
|
|
+ <el-option v-for="dict in genderOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-row :gutter="0" type="flex" justify="start">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="生日" prop="birthday">
|
|
|
+ <el-date-picker clearable size="small" style="width: 150px"
|
|
|
+ v-model="form.birthday"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择生日">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="配偶" prop="spouseUserId">
|
|
|
+ <!-- <el-input v-model="form.spouseUserId" placeholder="请输入配偶id" /> -->
|
|
|
+ <el-select
|
|
|
+ v-model="form.spouse"
|
|
|
+ filterable
|
|
|
+ remote
|
|
|
+ clearable
|
|
|
+ placeholder="请输入名字/手机号"
|
|
|
+ :remote-method="findSpouse"
|
|
|
+ @change="spouseChange"
|
|
|
+ :loading="loadings">
|
|
|
+ <el-option
|
|
|
+ v-for="item in spouseOptions"
|
|
|
+ :key="item.userId"
|
|
|
+ :label="item.nickName"
|
|
|
+ :value="item.userId">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="0" type="flex" justify="start"><el-col :span="12">
|
|
|
+ <el-form-item label="手机号" prop="mobile">
|
|
|
+ <el-input v-model="form.mobile" placeholder="请输入手机号" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="状态" prop="state">
|
|
|
+ <el-input v-model="form.state" placeholder="请输入状态" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
<el-form-item label="备注" prop="remark">
|
|
|
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
|
|
</el-form-item>
|
|
@@ -154,6 +172,7 @@
|
|
|
<script>
|
|
|
import { getFamily } from "@/api/system/family";
|
|
|
import { listMember, getMember, delMember, addMember, updateMember, exportMember } from "@/api/system/member";
|
|
|
+import { listUser } from "@/api/system/appUser";
|
|
|
|
|
|
export default {
|
|
|
name: "Member",
|
|
@@ -161,6 +180,7 @@ export default {
|
|
|
return {
|
|
|
// 遮罩层
|
|
|
loading: true,
|
|
|
+ loadings: false,
|
|
|
// 选中数组
|
|
|
ids: [],
|
|
|
// 非单个禁用
|
|
@@ -179,12 +199,22 @@ export default {
|
|
|
open: false,
|
|
|
// 性别 数据字典
|
|
|
genderOptions: [],
|
|
|
+ // 状态 数据字典
|
|
|
+ stateOptions: [],
|
|
|
+ // 配偶
|
|
|
+ spouseOptions:[],
|
|
|
+ spouseValues:[],
|
|
|
+ spouseList:[],
|
|
|
+ spouseStates:[],// 查询参数
|
|
|
+ spouseParams: {
|
|
|
+ enable: 0,
|
|
|
+ searchValue: null,
|
|
|
+ },
|
|
|
// 查询参数
|
|
|
queryParams: {
|
|
|
pageNum: 1,
|
|
|
pageSize: 10,
|
|
|
familyId: null,
|
|
|
- appUserId: null,
|
|
|
spouseId: null,
|
|
|
name: null,
|
|
|
birthday: null,
|
|
@@ -196,11 +226,25 @@ export default {
|
|
|
form: {},
|
|
|
// 表单校验
|
|
|
rules: {
|
|
|
+ name: [
|
|
|
+ { required: true, message: "姓名不能为空", trigger: "blur" },
|
|
|
+ ],
|
|
|
+ gender: [
|
|
|
+ { required: true, message: "性别不能为空", trigger: "blur" },
|
|
|
+ ],
|
|
|
+ mobile: [
|
|
|
+ { required: true, message: "手机号码不能为空", trigger: "blur" },
|
|
|
+ {
|
|
|
+ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
|
|
|
+ message: "请输入正确的手机号码",
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
},
|
|
|
familyName: null,
|
|
|
};
|
|
|
},
|
|
|
- created() {
|
|
|
+ activated() {
|
|
|
const fid = this.$route.query.fid;
|
|
|
this.queryParams.familyId = fid;
|
|
|
this.getFamily(fid);
|
|
@@ -208,8 +252,25 @@ export default {
|
|
|
this.getDicts("sys_user_sex").then((response) => {
|
|
|
this.genderOptions = response.data;
|
|
|
});
|
|
|
+ this.getDicts("app_member_state").then((response) => {
|
|
|
+ this.stateOptions = response.data;
|
|
|
+ });
|
|
|
},
|
|
|
methods: {
|
|
|
+ findSpouse(query){
|
|
|
+ if (query.length > 1) {
|
|
|
+ this.loadings = true;
|
|
|
+ this.spouseParams.searchValue = query;
|
|
|
+ listUser(this.spouseParams).then(response => {
|
|
|
+ this.loadings = false;
|
|
|
+ debugger
|
|
|
+ this.spouseOptions = response.data;
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ spouseChange(value){
|
|
|
+ this.form.spouseUserId = value;
|
|
|
+ },
|
|
|
getFamily(id){
|
|
|
getFamily(id).then(response => {
|
|
|
this.familyName = response.data.fullName;
|
|
@@ -228,6 +289,10 @@ export default {
|
|
|
genderFormat(row, column) {
|
|
|
return this.selectDictLabel(this.genderOptions, row.gender);
|
|
|
},
|
|
|
+ // 状态 字典翻译
|
|
|
+ stateFormat(row, column) {
|
|
|
+ return this.selectDictLabel(this.stateOptions, row.state);
|
|
|
+ },
|
|
|
// 取消按钮
|
|
|
cancel() {
|
|
|
this.open = false;
|
|
@@ -236,9 +301,9 @@ export default {
|
|
|
// 表单重置
|
|
|
reset() {
|
|
|
this.form = {
|
|
|
- id: null,
|
|
|
- appUserId: null,
|
|
|
- spouseId: null,
|
|
|
+ memberId: null,
|
|
|
+ userId: null,
|
|
|
+ spouseUserId: null,
|
|
|
name: null,
|
|
|
birthday: null,
|
|
|
gender: null,
|
|
@@ -248,7 +313,8 @@ export default {
|
|
|
createTime: null,
|
|
|
updateBy: null,
|
|
|
updateTime: null,
|
|
|
- remark: null
|
|
|
+ remark: null,
|
|
|
+ spouseOptions: null
|
|
|
};
|
|
|
this.resetForm("form");
|
|
|
},
|
|
@@ -264,7 +330,7 @@ export default {
|
|
|
},
|
|
|
// 多选框选中数据
|
|
|
handleSelectionChange(selection) {
|
|
|
- this.ids = selection.map(item => item.id)
|
|
|
+ this.ids = selection.map(item => item.memberId)
|
|
|
this.single = selection.length!==1
|
|
|
this.multiple = !selection.length
|
|
|
},
|
|
@@ -277,18 +343,23 @@ export default {
|
|
|
/** 修改按钮操作 */
|
|
|
handleUpdate(row) {
|
|
|
this.reset();
|
|
|
- const id = row.id || this.ids
|
|
|
+ const id = row.memberId || this.ids
|
|
|
getMember(id).then(response => {
|
|
|
this.form = response.data;
|
|
|
+ this.form.familyId = this.queryParams.familyId;
|
|
|
this.open = true;
|
|
|
this.title = "修改家族成员";
|
|
|
+ if(this.form.spouseUserId !== ''){
|
|
|
+ this.findSpouse(this.form.spouseUserId)
|
|
|
+ }
|
|
|
});
|
|
|
},
|
|
|
/** 提交按钮 */
|
|
|
submitForm() {
|
|
|
this.$refs["form"].validate(valid => {
|
|
|
if (valid) {
|
|
|
- if (this.form.id != null) {
|
|
|
+ this.form.familyId = this.queryParams.familyId;
|
|
|
+ if (this.form.memberId != null) {
|
|
|
updateMember(this.form).then(response => {
|
|
|
if (response.code === 200) {
|
|
|
this.msgSuccess("修改成功");
|
|
@@ -310,13 +381,14 @@ export default {
|
|
|
},
|
|
|
/** 删除按钮操作 */
|
|
|
handleDelete(row) {
|
|
|
- const ids = row.id || this.ids;
|
|
|
- this.$confirm('是否确认删除家族成员编号为"' + ids + '"的数据项?', "警告", {
|
|
|
+ const ids = row.memberId || this.ids;
|
|
|
+ var familyId = this.queryParams.familyId;
|
|
|
+ this.$confirm('是否确认删除?', "警告", {
|
|
|
confirmButtonText: "确定",
|
|
|
cancelButtonText: "取消",
|
|
|
type: "warning"
|
|
|
}).then(function() {
|
|
|
- return delMember(ids);
|
|
|
+ return delMember(familyId,ids);
|
|
|
}).then(() => {
|
|
|
this.getList();
|
|
|
this.msgSuccess("删除成功");
|