| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- <template>
- <el-dialog title="选择会员" :visible.sync="show" :show-close="false" width="1000px" :close-on-click-modal="false">
- <div class="dialog-container2 clearfix">
- <el-form ref="screenForm" :model="member_screenForm" size="small" label-position="left">
- <el-row :gutter="20">
- <el-col :xs="7" :sm="7" :lg="7">
- <el-form-item label="关键词" prop="keyword" label-width="55px">
- <el-input v-model="member_screenForm.keyword" placeholder="请输入会员名称/电话"></el-input>
- </el-form-item>
- </el-col>
- <el-col :xs="8" :sm="8" :lg="8">
- <el-form-item label="注册日期" prop="registerDate" label-width="70px">
- <el-date-picker style="width: 100%" v-model="member_screenForm.registerDate" type="daterange"
- value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
- </el-date-picker>
- </el-form-item>
- </el-col>
- <el-col :xs="6" :sm="6" :lg="6">
- <el-form-item label="" prop="type" label-width="20px">
- <el-radio-group v-model="member_screenForm.type" :disabled="memberList.length > 0 ? true : false">
- <el-radio :label="'SERVICE'">业务员</el-radio>
- <el-radio :label="'GENERAL'">普通用户</el-radio>
- </el-radio-group>
- </el-form-item>
- </el-col>
- <el-col :xs="2" :sm="2" :lg="2" class="tr">
- <el-button size="small" type="primary" @click="getMemberListByScreen">搜索</el-button>
- </el-col>
- </el-row>
- </el-form>
- <div class="table memberTable" style="margin: 10px 0 20px;">
- <el-table v-loading="memberTable_listLoading" :data="memberTable_dataList" element-loading-text="Loading"
- tooltip-effect="dark" style="width: 100%" max-height="360" @selection-change="handleChooseMember">
- <el-table-column align="center" type="selection" :selectable='checkboxSelect' width="45"></el-table-column>
- <el-table-column align="center" prop="nickName" label="会员名称" min-width="150"></el-table-column>
- <el-table-column align="center" prop="sex" label="性别" min-width="100"></el-table-column>
- <el-table-column align="center" prop="mobile" label="注册手机" min-width="100"></el-table-column>
- <el-table-column align="center" prop="memberName" label="角色" min-width="100">
- <template slot-scope="scope">
- {{ scope.row.type | MEMBER_CURRENT_TYPE_FILTER }}
- </template>
- </el-table-column>
- <el-table-column align="center" prop="memberName" label="状态" min-width="100">
- <template slot-scope="scope">
- <el-tag :type="scope.row.status ? 'success' : 'danger'">{{ scope.row.status | MEMBER_CURRENT_STATUS_FILTER
- }}</el-tag>
- </template>
- </el-table-column>
- </el-table>
- </div>
- <div class="pagination clearfix">
- <div class="fr">
- <el-pagination @current-change="memberTableCurrentChange" :current-page="memberTable_currentPage"
- :page-size="memberTable_pageSize" background layout="prev, pager, next" :total="memberTable_listTotal">
- </el-pagination>
- </div>
- </div>
- </div>
- <div slot="footer" class="dialog-footer">
- <el-button type="primary" @click="submitAddMember">保 存</el-button>
- <el-button @click="cancelAddMember">取 消</el-button>
- </div>
- </el-dialog>
- </template>
- <script>
- import { getMemberList } from "@/api/coupon";
- export default {
- props: {
- memberList: {
- type: Array,
- default: () => []
- }
- },
- data() {
- return {
- show:true,
- member_screenForm: { // 筛选表单数据
- keyword: '', // 名称
- registerDate: [],
- type: 'SERVICE',
- },
- memberTable_dataList: [], // 列表数据
- memberTable_listLoading: true, // 列表加载loading
- memberTable_currentPage: 1, // 当前页码
- memberTable_pageSize: 10, // 每页数量
- memberTable_listTotal: 0, // 列表总数
- memberTable_choose: [], // table中 当前选择会员
- }
- },
- created() {
- this.getMemberList()
- },
- methods: {
- // 搜索
- getMemberListByScreen() {
- if (this.memberTable_choose.length > 0) {
- return this.$errorMsg('当前已选择会员,不可搜索');
- }
- this.memberTable_currentPage = 1;
- this.getMemberList();
- },
- // 查询重复值并禁选
- checkboxSelect(row, rowIndex) {
- if (row.selected) {
- return false // 禁用
- } else {
- return true // 不禁用
- }
- },
- // 获取会员列表
- getMemberList() {
- getMemberList({
- pageNum: this.memberTable_currentPage,
- pageSize: this.memberTable_pageSize,
- keyword: this.member_screenForm.keyword,
- type: this.member_screenForm.type,
- startTime: this.member_screenForm.registerDate && this.member_screenForm.registerDate[0] ? this.member_screenForm.registerDate[0] + ' 00:00:00' : null,
- endTime: this.member_screenForm.registerDate && this.member_screenForm.registerDate[1] ? this.member_screenForm.registerDate[1] + ' 23:59:59' : null,
- }).then(res => {
- let oldMemberList = this.memberList;
- let newMemberList = res.data.records;
- for (let i = 0; i < oldMemberList.length; i++) {
- let oldItem = oldMemberList[i]
- for (let j = 0; j < newMemberList.length; j++) {
- let newItem = newMemberList[j]
- if (newItem.userId === oldItem.userId) {
- newMemberList[j].selected = true;
- break;
- }
- }
- }
- this.memberTable_dataList = newMemberList;
- this.memberTable_listTotal = res.data.total;
- this.memberTable_listLoading = false;
- })
- },
- // 更改列表当前页
- memberTableCurrentChange(val) {
- if (this.memberTable_choose.length > 0) {
- return this.$errorMsg('当前已选择会员,不可切换分页');
- }
- this.memberTable_currentPage = val;
- this.getMemberList();
- },
- // table点击选择会员
- handleChooseMember(val) {
- this.memberTable_choose = val;
- },
- // 取消 选择会员
- cancelAddMember() {
- this.$emit("cancelSelectMember")
- },
- // 提交 选择会员
- submitAddMember() {
- this.$emit("selectMemberPass", [...this.memberList, ...this.memberTable_choose])
- this.$nextTick(() => {
- this.$emit("cancelSelectMember")
- })
- },
- }
- }
- </script>
- <style scoped lang="scss">
- </style>
|