|
|
@@ -182,6 +182,24 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <!-- 新增:绑定会员状态 -->
|
|
|
+ <el-table-column label="绑定会员状态" align="center" prop="bindStatus" width="100">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-tag
|
|
|
+ :type="scope.row.bindStatus === 1 ? 'success' : 'info'"
|
|
|
+ size="mini">
|
|
|
+ {{ scope.row.bindStatus === 1 ? '已绑定' : '未绑定' }}
|
|
|
+ </el-tag>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ <!-- 新增:绑定用户 -->
|
|
|
+ <el-table-column label="绑定用户" align="center" prop="bindUser" width="120">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span v-if="scope.row.bindUser">{{ scope.row.bindUser }}</span>
|
|
|
+ <span v-else>-</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="区域" align="center" prop="addressId">
|
|
|
</el-table-column>
|
|
|
<el-table-column label="创建时间" sortable align="center" prop="createTime" width="160">
|
|
|
@@ -244,6 +262,13 @@
|
|
|
@click="qwBind(scope.row)"
|
|
|
v-hasPermi="['qw:user:bind']"
|
|
|
>查或换绑企微</el-button>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-user"
|
|
|
+ @click="handleBindMember(scope.row)"
|
|
|
+ v-hasPermi="['company:user:bindUser']"
|
|
|
+ >绑定会员</el-button>
|
|
|
|
|
|
<el-button v-if="scope.row.userType !== '00'" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['company:user:edit']">修改</el-button>
|
|
|
<el-button v-if="scope.row.userType !== '00'" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['company:user:remove']">删除</el-button>
|
|
|
@@ -617,6 +642,68 @@
|
|
|
<el-dialog :title="doctor.title" :visible.sync="doctor.open" width="800px" append-to-body>
|
|
|
<selectDoctor ref="selectDoctor" @bindCompanyUserDoctorId="bindCompanyUserDoctorId"></selectDoctor>
|
|
|
</el-dialog>
|
|
|
+ <!-- 绑定会员对话框 -->
|
|
|
+ <el-dialog :title="member.title" :visible.sync="member.open" width="600px" append-to-body>
|
|
|
+ <!-- 添加筛选表单 -->
|
|
|
+ <el-form :model="memberQueryParams" :inline="true" @submit.native.prevent>
|
|
|
+ <el-form-item label="昵称">
|
|
|
+ <el-input
|
|
|
+ v-model="memberQueryParams.nickName"
|
|
|
+ placeholder="请输入昵称"
|
|
|
+ clearable style="width: 160px;"
|
|
|
+ @keyup.enter.native="handleMemberQuery"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="手机号">
|
|
|
+ <el-input
|
|
|
+ v-model="memberQueryParams.phone"
|
|
|
+ placeholder="请输入手机号"
|
|
|
+ clearable style="width: 160px;"
|
|
|
+ @keyup.enter.native="handleMemberQuery"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button icon="el-icon-search" size="mini" @click="handleMemberQuery">搜索</el-button>
|
|
|
+ <el-button icon="el-icon-refresh" size="mini" @click="resetMemberQuery">重置</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+ <div style="height: 300px; margin-top: 10px;">
|
|
|
+ <el-table
|
|
|
+ :data="memberList"
|
|
|
+ height="220"
|
|
|
+ highlight-current-row
|
|
|
+ @current-change="selectMember"
|
|
|
+ v-loading="loading"
|
|
|
+ >
|
|
|
+<!-- <el-table-column type="selection" width="55"></el-table-column>-->
|
|
|
+ <el-table-column property="userId" label="ID" width="80"></el-table-column>
|
|
|
+ <el-table-column property="nickName" label="昵称" width="120"></el-table-column>
|
|
|
+ <el-table-column property="phone" label="手机号" width="120"></el-table-column>
|
|
|
+ <el-table-column property="status" label="绑定状态" width="100">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-tag
|
|
|
+ :type="scope.row.status === 1 ? 'success' : 'info'"
|
|
|
+ size="mini">
|
|
|
+ {{ scope.row.status === 1 ? '已绑定' : '未绑定' }}
|
|
|
+ </el-tag>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <!-- 分页组件 -->
|
|
|
+ <pagination
|
|
|
+ v-show="memberTotal > 0"
|
|
|
+ :total="memberTotal"
|
|
|
+ :page.sync="memberQueryParams.pageNum"
|
|
|
+ :limit.sync="memberQueryParams.pageSize"
|
|
|
+ @pagination="getMemberList" style="margin-top: 10px; text-align: center;"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="cancelBindMember">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="confirmBindMember">确 定</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
|
|
|
</div>
|
|
|
</template>
|
|
|
@@ -636,7 +723,7 @@ import {
|
|
|
generateSubDomain,
|
|
|
setIsRegisterMember,
|
|
|
updateCompanyUserAreaList,
|
|
|
- isAllowedAllRegister, unBindDoctorId, bindDoctorId,updateBatchUserRoles
|
|
|
+ isAllowedAllRegister, unBindDoctorId, bindDoctorId,updateBatchUserRoles,getSaleBindUserList,bindSaleAndFsUser
|
|
|
} from "@/api/company/companyUser";
|
|
|
import { getToken } from "@/utils/auth";
|
|
|
import { treeselect } from "@/api/company/companyDept";
|
|
|
@@ -659,6 +746,21 @@ export default {
|
|
|
open: false,
|
|
|
title: '绑定医生'
|
|
|
},
|
|
|
+ member: {
|
|
|
+ open: false,
|
|
|
+ title: "绑定会员"
|
|
|
+ },
|
|
|
+ memberList: [],
|
|
|
+ selectedMember: null,
|
|
|
+ currentCompanyId: null,
|
|
|
+ memberTotal: 0,
|
|
|
+ // 添加筛选参数
|
|
|
+ memberQueryParams: {
|
|
|
+ nickName: null,
|
|
|
+ phone: null,
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10
|
|
|
+ },
|
|
|
doctorForm: {
|
|
|
userId: null,
|
|
|
doctorId: null
|
|
|
@@ -902,7 +1004,123 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
+ /**
|
|
|
+ * 绑定会员按钮操作
|
|
|
+ */
|
|
|
+ handleBindMember(row) {
|
|
|
+ this.currentCompanyId = row.userId;
|
|
|
+ // 重置筛选参数
|
|
|
+ this.memberQueryParams = {
|
|
|
+ nickName: null,
|
|
|
+ phone: null,
|
|
|
+ pageNum: 1, // 重置为第一页
|
|
|
+ pageSize: 10 // 保持每页数量
|
|
|
+ };
|
|
|
+ this.selectedMember = null;
|
|
|
+ this.member.open = true;
|
|
|
+ this.getMemberList();
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 获取会员列表
|
|
|
+ */
|
|
|
+ /**
|
|
|
+ * 获取会员列表
|
|
|
+ */
|
|
|
+ getMemberList() {
|
|
|
+ // 调用指定的接口获取会员列表
|
|
|
+ getSaleBindUserList({
|
|
|
+ pageNum: this.memberQueryParams.pageNum,
|
|
|
+ pageSize: this.memberQueryParams.pageSize,
|
|
|
+ nickName: this.memberQueryParams.nickName,
|
|
|
+ phone: this.memberQueryParams.phone
|
|
|
+ })
|
|
|
+ .then(response => {
|
|
|
+ this.memberList = response.rows || [];
|
|
|
+ this.memberTotal = response.total || 0;
|
|
|
+ })
|
|
|
+ .catch(error => {
|
|
|
+ console.error('获取会员列表失败:', error);
|
|
|
+ this.$message.error('获取会员列表失败');
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 会员搜索按钮操作
|
|
|
+ */
|
|
|
+ handleMemberQuery() {
|
|
|
+ this.memberQueryParams.pageNum = 1;
|
|
|
+ this.getMemberList();
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 会员重置按钮操作
|
|
|
+ */
|
|
|
+ resetMemberQuery() {
|
|
|
+ this.memberQueryParams = {
|
|
|
+ nickName: null,
|
|
|
+ phone: null,
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10
|
|
|
+ };
|
|
|
+ this.getMemberList();
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 选择会员
|
|
|
+ */
|
|
|
+ selectMember(member) {
|
|
|
+ if (member) {
|
|
|
+ this.selectedMember = member;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 确认绑定会员
|
|
|
+ */
|
|
|
+ confirmBindMember() {
|
|
|
+ if (!this.selectedMember) {
|
|
|
+ this.$message.warning('请选择要绑定的会员');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // // 检查是否已经绑定
|
|
|
+ // if (this.selectedMember.status === 1) {
|
|
|
+ // this.$message.warning('该会员已绑定,请选择其他会员');
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
|
|
|
+ // 这里需要根据实际接口调整参数
|
|
|
+ const bindData = {
|
|
|
+ companyUserId: this.currentCompanyId,
|
|
|
+ userId: this.selectedMember.userId // 使用实际的用户ID字段
|
|
|
+ };
|
|
|
+
|
|
|
+ // 发起绑定请求
|
|
|
+ bindSaleAndFsUser(bindData).then(response => {
|
|
|
+ if (response.code === 200) {
|
|
|
+ this.$message.success('绑定会员成功');
|
|
|
+ this.cancelBindMember();
|
|
|
+ this.getList(); // 刷新当前页面列表
|
|
|
+ } else {
|
|
|
+ this.$message.error(response.msg || '绑定失败');
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(error => {
|
|
|
+ console.error('绑定会员失败:', error);
|
|
|
+ this.$message.error('绑定会员失败');
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 取消绑定会员
|
|
|
+ */
|
|
|
+ cancelBindMember() {
|
|
|
+ this.member.open = false;
|
|
|
+ this.memberList = [];
|
|
|
+ this.selectedMember = null;
|
|
|
+ this.currentCompanyId = null;
|
|
|
+ this.memberQueryParams = {
|
|
|
+ nickName: null,
|
|
|
+ phone: null
|
|
|
+ };
|
|
|
+ },
|
|
|
// 添加处理 selectUser 关闭的方法
|
|
|
handleSelectUserClose() {
|
|
|
this.user.open = false
|