Commit 5156a8a4 authored by Mac's avatar Mac

新增相亲用户列表

parent 6e3f3db7
<template>
<div class="blindDateUsersList">
<div class="head-title">
用户管理
<el-button
@click="dialogVisible = true"
style="float: right; margin-top: -5px"
size="small"
type="primary"
>批量导出
</el-button>
<el-button
@click="addusers"
style="float: right; margin-top: -5px; margin-right: 10px"
size="small"
type="primary"
>新增
</el-button>
</div>
<div class="content">
<div style="display: flex;align-items: center;flex-wrap: wrap">
<el-select
class="w100"
@change="(msg.pageIndex = 1), getList()"
style="margin-right: 10px;margin-bottom: 10px"
v-model="msg.MemberGrade"
size="small"
placeholder="请选择"
>
<el-option label="全部会员" :value="0"></el-option>
<el-option
v-for="item in memberGradeList"
:key="item.Id"
:label="item.Name"
:value="item.Id"
>
</el-option>
</el-select>
<el-select
class="w100"
@change="(msg.pageIndex = 1), getList()"
style="margin-right: 10px;margin-bottom: 10px"
v-model="msg.Source"
size="small"
placeholder="请选择"
>
<el-option label="全部平台" :value="0"></el-option>
<el-option
v-for="item in platList"
:key="item.Id"
:label="item.Name"
:value="item.Id"
>
</el-option>
</el-select>
<div class="searchInput" style="width: 150px">
<el-input
@keyup.enter.native="(msg.pageIndex = 1), getList()"
@clear="(msg.pageIndex = 1), getList()"
style="display: inline-block; width: 125px; height: 30px"
placeholder="请输入ID"
v-model="msg.Id"
size="small"
clearable
>
</el-input>
<span
@click="(msg.pageIndex = 1), getList()"
class="el-icon-search"
style="
color: #979dad;
font-size: 14px;
position: relative;
top: 1px;
"
></span>
</div>
<div class="searchInput" style="width: 150px">
<el-input
@keyup.enter.native="(msg.pageIndex = 1), getList()"
@clear="(msg.pageIndex = 1), getList()"
style="display: inline-block; width: 125px; height: 30px"
placeholder="请输入昵称"
v-model="msg.Name"
size="small"
clearable
>
</el-input>
<span
@click="(msg.pageIndex = 1), getList()"
class="el-icon-search"
style="
color: #979dad;
font-size: 14px;
position: relative;
top: 1px;
"
></span>
</div>
<div class="searchInput" style="width: 150px">
<el-input
@keyup.enter.native="(msg.pageIndex = 1), getList()"
@clear="(msg.pageIndex = 1), getList()"
style="display: inline-block; width: 125px; height: 30px"
placeholder="请输入手机号"
v-model="msg.Moblie"
size="small"
clearable
>
</el-input>
<span
@click="(msg.pageIndex = 1), getList()"
class="el-icon-search"
style="
color: #979dad;
font-size: 14px;
position: relative;
top: 1px;
"
></span>
</div>
<el-date-picker
v-model="dateList"
@change="(msg.pageIndex = 1), getList()"
style="margin-bottom: 10px;margin-right: 20px"
size="small"
type="datetimerange"
range-separator="至"
value-format="yyyy-MM-dd HH:mm:ss"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
<div style="display: flex;align-items: center;margin-bottom: 10px;margin-right: 20px">
<span style="margin-right: 5px">学历</span>
<el-select
class="w100"
@change="(msg.pageIndex = 1), getList()"
style="margin-right: 10px"
v-model="msg.EducationType"
size="small"
placeholder="请选择"
>
<el-option label="不限" :value="0"></el-option>
<el-option
v-for="item in EducationList"
:key="item.Id"
:label="item.Name"
:value="item.Id"
>
</el-option>
</el-select>
</div>
<div style="display: flex;align-items: center;margin-bottom: 10px;margin-right: 20px">
<span style="margin-right: 5px">婚姻</span>
<el-select
class="w100"
@change="(msg.pageIndex = 1), getList()"
style="margin-right: 10px"
v-model="msg.Marriage"
size="small"
placeholder="请选择"
>
<el-option label="不限" :value="0"></el-option>
<el-option
v-for="item in MarriageList"
:key="item.Id"
:label="item.Name"
:value="item.Id"
>
</el-option>
</el-select>
</div>
<div style="display: flex;align-items: center;margin-bottom: 10px;margin-right: 20px">
<span style="margin-right: 5px">房产</span>
<el-select
class="w100"
@change="(msg.pageIndex = 1), getList()"
style="margin-right: 10px"
v-model="msg.HouseInfo"
size="small"
placeholder="请选择"
>
<el-option label="不限" :value="0"></el-option>
<el-option
v-for="item in HouseList"
:key="item.Id"
:label="item.Name"
:value="item.Id"
>
</el-option>
</el-select>
</div>
<div style="display: flex;align-items: center;margin-bottom: 10px;margin-right: 20px">
<span style="margin-right: 5px">车产</span>
<el-select
class="w100"
@change="(msg.pageIndex = 1), getList()"
style="margin-right: 10px"
v-model="msg.CarInfo"
size="small"
placeholder="请选择"
>
<el-option label="不限" :value="0"></el-option>
<el-option
v-for="item in CarInfoList"
:key="item.Id"
:label="item.Name"
:value="item.Id"
>
</el-option>
</el-select>
</div>
</div>
<div style="margin-top: 10px;display: flex;flex-wrap: wrap">
<div style="display: flex;align-items: center">年龄{{ages[0]}}-{{ages[1]}}
<div class="block" style="width: 200px;margin-left: 15px">
<el-slider
v-model="ages"
range
@change="(msg.pageIndex = 1), getList()"
:max="100">
</el-slider>
</div>
</div>
<div style="display: flex;align-items: center;margin-left: 25px">身高{{Heights[0]}}-{{Heights[1]}}cm
<div class="block" style="width: 200px;margin-left: 15px">
<el-slider
v-model="Heights"
range
@change="(msg.pageIndex = 1), getList()"
:max="230">
</el-slider>
</div>
</div>
<div style="display: flex;align-items: center;margin-left: 25px">体重{{Weights[0]}}-{{Weights[1]}}kg
<div class="block" style="width: 200px;margin-left: 15px">
<el-slider
v-model="Weights"
range
@change="(msg.pageIndex = 1), getList()"
:max="200">
</el-slider>
</div>
</div>
<div style="display: flex;align-items: center;margin-left: 25px">年收入{{YearMoeys[0]}}-{{YearMoeys[1]}}
<div class="block" style="width: 300px;margin-left: 15px">
<el-slider
v-model="YearMoeys"
range
@change="(msg.pageIndex = 1), getList()"
:max="500">
</el-slider>
</div>
</div>
</div>
<el-table
:data="tableData"
v-loading="loading"
border
style="width: 100%; margin: 20px 0"
>
<el-table-column prop="Id" label="ID" width="100"> </el-table-column>
<el-table-column prop="address" width="280" label="头像">
<template slot-scope="scope">
<div
class="app-image"
:style="{
backgroundImage: 'url(' + scope.row.Photo + ')',
backgroundSize: 'cover',
}"
></div>
<div flex="dir:left cross:center">
{{ scope.row.Name }}
<span
v-if="scope.row.AliasName && scope.row.AliasName != ''"
class="remark_name"
>备注名:{{ scope.row.AliasName }}</span
>
</div>
<img
v-if="scope.row.Source == 1"
style="width: 24px; height: 24px"
src="../../assets/img/userman/wx.png"
alt=""
class="platform-img"
/>
<button
type="button"
class="el-button el-button--success"
style="float: right; padding: 5px !important"
>
<span @click="ChangeOpenidState(scope.$index, scope.row)"
>显示OpenId</span
>
</button>
<div v-show="scope.row.OpenIdState">{{ scope.row.OpenId }}</div>
</template>
</el-table-column>
<el-table-column label="会员类型">
<template slot-scope="scope">
<span
>{{ scope.row.MemberGradeName }}
<span>
<el-tag
v-if="scope.row.UserPageTypeStr == '全部'"
size="mini"
>{{ scope.row.UserPageTypeStr }}</el-tag
>
<el-tag
v-if="scope.row.UserPageTypeStr == '商城'"
type="success"
size="mini"
>{{ scope.row.UserPageTypeStr }}</el-tag
>
<el-tag
v-if="scope.row.UserPageTypeStr == '校园'"
type="danger"
size="mini"
>{{ scope.row.UserPageTypeStr }}</el-tag
>
</span>
</span>
</template>
</el-table-column>
<el-table-column prop="Age" label="年龄"></el-table-column>
<el-table-column prop="Height" label="身高">
<template slot-scope="scope">
<span>{{scope.row.Height}}cm</span>
</template>
</el-table-column>
<el-table-column prop="Weight" label="体重">
<template slot-scope="scope">
<span>{{scope.row.Weight}}kg</span>
</template>
</el-table-column>
<el-table-column prop="EducationTypeStr" label="学历"></el-table-column>
<el-table-column prop="MarriageStr" label="婚姻"></el-table-column>
<el-table-column prop="HouseInfoStr" label="房产"></el-table-column>
<el-table-column prop="CarInfoStr" label="车产"></el-table-column>
<el-table-column prop="CreateDate" width="150" label="加入时间"></el-table-column>
<el-table-column prop="address" width="200" label="操作">
<template slot-scope="scope">
<el-tooltip
class="item"
effect="dark"
content="编辑"
placement="top"
>
<img
@click="EditgoUrl(scope.row)"
style="width: 32px; height: 32px"
src="../../assets/img/userman/edit.png"
alt=""
/>
</el-tooltip>
<el-tooltip
class="item"
effect="dark"
content="二维码"
placement="top"
>
<img
@click="showQRcode(scope.row)"
style="width: 32px; height: 32px"
src="../../assets/img/userman/QRcode.png"
alt=""
/>
</el-tooltip>
<el-tooltip
class="item"
effect="dark"
content="查看详情"
placement="top"
>
<img
@click="showDetail(scope.row)"
style="width: 32px; height: 32px"
src="../../assets/img/userman/QRcode.png"
alt=""
/>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<el-pagination
style="text-align: right"
background
@current-change="handleCurrentChange"
:page-size="msg.pageSize"
:current-page.sync="msg.pageIndex"
layout="total,prev, pager, next"
:total="total"
>
</el-pagination>
</div>
<!-- 选择导出信息 -->
<el-dialog title="选择导出信息" :visible.sync="dialogVisible" width="960px">
<el-form
style="border: 1px solid #f0f2f7"
:model="addMsg"
ref="addMsg"
label-width="100px"
>
<div
style="
box-sizing: border-box;
background-color: #f3f5f6;
width: 100%;
padding-left: 20px;
height: 50px;
line-height: 50px;
"
>
<el-checkbox
:indeterminate="isIndeterminate"
v-model="checkAll"
@change="handleCheckAllChange"
>全选
</el-checkbox>
</div>
<div style="margin: 15px 0"></div>
<div style="padding: 10px 25px 20px">
<el-checkbox-group
v-model="checkedCities"
@change="handleCheckedCitiesChange"
>
<el-checkbox
style="margin-bottom: 10px; width: 135px"
v-for="city in cities"
:label="city.Id"
:key="city.Name"
>
{{ city.Name }}</el-checkbox
>
</el-checkbox-group>
</div>
</el-form>
<div style="text-align: right; margin-top: 20px">
<el-button size="small" type="primary" @click="Export">导出</el-button>
</div>
</el-dialog>
<!-- 充值积分 -->
<!-- 充值积分 -->
<el-dialog title="二维码" :visible.sync="qrshow" width="600px">
<div style="display: flex; align-items: center; justify-content: center">
<el-image
style="width: 200px; height: 200px"
:src="qrcodeImg"
></el-image>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="qrshow = false">关 闭</el-button>
</span>
</el-dialog>
<el-dialog title="查看详情" :visible.sync="detailShow" width="600px">
<detail :data="detailData" />
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="detailShow = false">关 闭</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import ChooseImg from "@/components/global/ChooseImg.vue";
import detail from "./components/seeDetail";
export default {
components: {
ChooseImg,
detail,
},
data() {
return {
czType: 1,
changeState: false,
loading: false,
checkAll: false,
checkedCities: [],
cities: [],
cityOptions: [],
isIndeterminate: false,
dialogVisible: false,
value: "",
options: [],
tableData: [],
msg: {
pageIndex: 1,
pageSize: 15,
Name: "",
Source: 0,
MemberGrade: 0,
Id: "",
Moblie: "",
StartTime: "",
EndTime: "",
Age:0,
EndAge:100,
Height:0,
EndHeight:230,
Weight:0,
EndWeight:200,
YearMoney:0,
EndYearMoney:500,
CarInfo:0,
HouseInfo:0,
EducationType:0,
Marriage:0,
},
ages:[0,100],//年龄
Heights:[0,230],//身高
Weights:[0,200],//体重
YearMoeys:[0,500],//年收入
total: 0,
platList: [],
memberGradeList: [],
rules: {
Type: [
{
required: true,
message: "请选择类型",
trigger: "change",
},
],
Integral: [
{
required: true,
message: "请输入积分",
trigger: "blur",
},
],
},
addMsg: {
MallBaseId: 0,
Type: 1,
UserId: 0,
Integral: 0,
Image: "",
Description: "",
},
dateList: [],
qrcodeImg: "",
qrshow: false,
//查看详情
detailData: {},
detailShow:false,
EducationList:[],//学历
MarriageList:[],//婚姻
HouseList:[],//房子情况
CarInfoList:[],//车子情况
};
},
created() {
this.getList();
this.getplat();
this.getDown();
this.GetMemberGradeList();
this.addMsg.MallBaseId = this.getLocalStorage().MallBaseId;
this.GetEducationTypeEnumList()//学历
this.GetMarriageEnumList()//婚姻
this.GetHouseInfoEnumList()//房子情况
this.GetCarInfoEnumList()//车子情况
},
methods: {
EditgoUrl(row) {
this.$router.push({
name: "blindDateUsersListEdit",
query: {
UserId: row.Id,
blank: "y",
},
});
},
addusers() {
this.$router.push({
name: "addUsers",
query: {
blank: "y",
},
});
},
showQRcode(row) {
this.apipost(
"/api/user/GetWeiXinQRCodeForHT",
{ Path: "/pages/index/index?user_id=" + row.Id, With: 212 },
(res) => {
if (res.data.resultCode == 1) {
if (res.data.data) {
this.qrcodeImg = this.domainManager().DomainUrl + res.data.data;
this.qrshow = true;
}
} else {
this.Error(res.data.message);
}
}
);
},
openChangeDig() {
this.changeState = true;
setTimeout(() => {
this.$refs.mychild.InitData(this.czType);
}, 10);
},
Export() {
this.msg.ExcelEnumIds = this.checkedCities;
let msg = JSON.parse(JSON.stringify(this.msg));
if (!msg.Id || msg.Id == "") {
msg.Id = 0;
}
this.GetLocalFile(
"/api/MiAi/GetMemberUserListToExcel",
msg,
"用户管理.xls"
);
},
ChangeOpenidState(index, row) {
this.tableData[index].OpenIdState = !this.tableData[index].OpenIdState;
},
getList() {
this.loading = true;
let msg = JSON.parse(JSON.stringify(this.msg));
if (!msg.Id || msg.Id == "") {
msg.Id = 0;
}
if (this.dateList && this.dateList.length > 0) {
msg.StartTime = this.dateList[0];
msg.EndTime = this.dateList[1];
this.msg.StartTime = this.dateList[0];
this.msg.EndTime = this.dateList[1];
} else {
msg.StartTime = "";
msg.EndTime = "";
this.msg.StartTime = "";
this.msg.EndTime = "";
}
msg.Age = this.ages[0];
msg.EndAge = this.ages[1];
msg.Height = this.Heights[0];
msg.EndHeight = this.Heights[1];
msg.Weight = this.Weights[0];
msg.EndWeight = this.Weights[1];
msg.YearMoney = this.YearMoeys[0];
msg.EndYearMoney = this.YearMoeys[1];
this.apipost("/api/Miai/GetMemberUserPageList", msg, (res) => {
this.loading = false;
if (res.data.resultCode == 1) {
this.total = res.data.data.count;
let pageData = res.data.data.pageData;
pageData.forEach((item) => {
item.OpenIdState = false;
});
this.tableData = pageData;
}
});
},
getDown() {
this.cityOptions = [];
this.apipost("/api/MiAi/GetMiAiUserExportList", {}, (res) => {
this.cities = res.data.data;
let data = res.data.data;
data.forEach((item) => {
this.cityOptions.push(item.Id);
});
});
},
GetMemberGradeList() {
let msg = {
Grade: 0,
Name: "",
Enabled: 1,
};
this.apipost("/api/user/GetMemberGradeList", msg, (res) => {
this.memberGradeList = res.data.data;
});
},
getplat() {
this.apipost("/api/user/GetMemberUserSourceEnumList", {}, (res) => {
this.platList = res.data.data;
});
},
GetEducationTypeEnumList(){//学历
this.apipost("/api/Miai/GetEducationTypeEnumList", {}, (res) => {
this.EducationList = res.data.data;
});
},
GetMarriageEnumList(){//婚姻
this.apipost("/api/Miai/GetMarriageEnumList", {}, (res) => {
this.MarriageList = res.data.data;
});
},
GetHouseInfoEnumList(){//房子情况
this.apipost("/api/Miai/GetHouseInfoEnumList", {}, (res) => {
this.HouseList = res.data.data;
});
},
GetCarInfoEnumList(){//车子情况
this.apipost("/api/Miai/GetCarInfoEnumList", {}, (res) => {
this.CarInfoList = res.data.data;
});
},
handleCheckAllChange(val) {
this.checkedCities = val ? this.cityOptions : [];
this.isIndeterminate = false;
},
handleCheckedCitiesChange(value) {
let checkedCount = value.length;
this.checkAll = checkedCount === this.cities.length;
this.isIndeterminate =
checkedCount > 0 && checkedCount < this.cities.length;
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
//详情页
showDetail(row) {
let msg = {
UserId: row.Id,
};
this.apipost("/api/Miai/GetMiAiBaseIfo", msg, (res) => {
console.log(res);
if (res.data.resultCode == 1) {
this.detailData = res.data.data;
this.detailData.RealName = row.Name
this.detailShow=true
} else {
this.$message({
message: res.data.message,
type: "warning",
});
}
});
},
},
mounted() {},
};
</script>
<style>
.blindDateUsersList .remark_name {
color: #888888;
font-size: 12px;
margin-left: 10px;
float: right;
}
.blindDateUsersList .app-image {
background-position: center center;
width: 50px;
height: 50px;
border-radius: 0%;
float: left;
margin-right: 8px;
}
.blindDateUsersList .blue {
color: #409eff;
}
.blindDateUsersList .content .searchInput {
border: 1px solid #dcdfe6;
border-radius: 4px;
}
.blindDateUsersList .content .searchInput .el-input__inner {
border: none;
outline: none;
height: 30px;
line-height: 30px;
}
.blindDateUsersList .content .searchInput {
line-height: normal;
display: inline-table;
width: 100%;
border-collapse: separate;
border-spacing: 0;
width: 250px;
margin-right: 20px;
margin-bottom: 10px;
}
.blindDateUsersList .content {
background: #fff;
margin-top: 10px;
padding: 20px;
box-sizing: border-box;
}
</style>
......@@ -54,7 +54,10 @@ export default {
{ prop: "体重:", field: "Weight", type: 4 },
{ prop: "身高:", field: "Height", type: 5 },
{ prop: "出生日期:", field: "Birthday", type: 1 },
{ prop: "星座:", field: "ConoldBaseInfostellation", type: 1 },
{ prop: "学历:", field: "EducationTypeStr", type: 1 },
{ prop: "房产:", field: "HouseInfoStr", type: 1 },
{ prop: "车产:", field: "CarInfoStr", type: 1 },
{ prop: "工资单位:", field: "WorkUnit", type: 1 },
{ prop: "家庭背景:", field: "FamilyInfo", type: 1 },
{ prop: "业余爱好:", field: "Hobby", type: 1 },
......
......@@ -764,6 +764,12 @@ export default new Router({
name: 'usersListEdit',
component: resolve => require(['@/components/UserMan/usersListEdit'], resolve),
},
// 用户管理 相亲用户列表
{
path: '/blindDateUsersList',
name: 'blindDateUsersList',
component: resolve => require(['@/components/UserMan/blindDateUsersList'], resolve),
},
// 用户管理 新增用户
{
path: '/addUsers',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment