|  | @@ -0,0 +1,794 @@
 | 
	
		
			
				|  |  | +<template>
 | 
	
		
			
				|  |  | +  <div class="app-container">
 | 
	
		
			
				|  |  | +    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
 | 
	
		
			
				|  |  | +      <el-form-item label="会员ID" prop="userId">
 | 
	
		
			
				|  |  | +        <el-input
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          v-model="queryParams.userId"
 | 
	
		
			
				|  |  | +          placeholder="请输入会员ID"
 | 
	
		
			
				|  |  | +          clearable
 | 
	
		
			
				|  |  | +          size="small"
 | 
	
		
			
				|  |  | +          @keyup.enter.native="handleQuery"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +      <el-form-item label="会员昵称" prop="nickname">
 | 
	
		
			
				|  |  | +        <el-input
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          v-model="queryParams.nickname"
 | 
	
		
			
				|  |  | +          placeholder="请输入会员昵称"
 | 
	
		
			
				|  |  | +          clearable
 | 
	
		
			
				|  |  | +          size="small"
 | 
	
		
			
				|  |  | +          @keyup.enter.native="handleQuery"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +      <el-form-item label="手机号码" prop="phone">
 | 
	
		
			
				|  |  | +        <el-input
 | 
	
		
			
				|  |  | +          v-model="queryParams.phone"
 | 
	
		
			
				|  |  | +          placeholder="请输入手机号码"
 | 
	
		
			
				|  |  | +          clearable
 | 
	
		
			
				|  |  | +          size="small"
 | 
	
		
			
				|  |  | +          @keyup.enter.native="handleQuery"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +      <el-form-item label="注册时间" prop="createTimeRange">
 | 
	
		
			
				|  |  | +        <el-date-picker clearable size="small" style="width: 340px"
 | 
	
		
			
				|  |  | +                        v-model="dateRange"
 | 
	
		
			
				|  |  | +                        type="daterange"
 | 
	
		
			
				|  |  | +                        value-format="yyyy-MM-dd"
 | 
	
		
			
				|  |  | +                        range-separator="至"
 | 
	
		
			
				|  |  | +                        start-placeholder="开始日期"
 | 
	
		
			
				|  |  | +                        end-placeholder="结束日期"
 | 
	
		
			
				|  |  | +                        @change="handleDateRangeChange">
 | 
	
		
			
				|  |  | +        </el-date-picker>
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      <el-form-item label="所属公司" prop="companyName">
 | 
	
		
			
				|  |  | +        <el-select
 | 
	
		
			
				|  |  | +          v-model="queryParams.companyId"
 | 
	
		
			
				|  |  | +          placeholder="请选择所属公司"
 | 
	
		
			
				|  |  | +          clearable
 | 
	
		
			
				|  |  | +          filterable
 | 
	
		
			
				|  |  | +          size="small"
 | 
	
		
			
				|  |  | +          @change="handleQueryCompanyChange"
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  | +          <el-option
 | 
	
		
			
				|  |  | +            v-for="item in companyQueryOptions"
 | 
	
		
			
				|  |  | +            :key="item.companyId"
 | 
	
		
			
				|  |  | +            :label="item.companyName"
 | 
	
		
			
				|  |  | +            :value="item.companyId">
 | 
	
		
			
				|  |  | +          </el-option>
 | 
	
		
			
				|  |  | +        </el-select>
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +      <el-form-item label="所属销售" prop="companyUserNickName">
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        <el-select
 | 
	
		
			
				|  |  | +          v-model="queryParams.companyUserNickName"
 | 
	
		
			
				|  |  | +          placeholder="请选择所属销售"
 | 
	
		
			
				|  |  | +          clearable
 | 
	
		
			
				|  |  | +          filterable
 | 
	
		
			
				|  |  | +          size="small"
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  | +          <el-option
 | 
	
		
			
				|  |  | +            v-for="item in companyQueryUserOptions"
 | 
	
		
			
				|  |  | +            :key="item.userId"
 | 
	
		
			
				|  |  | +            :label="item.nickName"
 | 
	
		
			
				|  |  | +            :value="item.nickName">
 | 
	
		
			
				|  |  | +          </el-option>
 | 
	
		
			
				|  |  | +        </el-select>
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      <!--      <el-form-item label="推线编码" prop="registerCode">-->
 | 
	
		
			
				|  |  | +      <!--        <el-input-->
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      <!--          v-model="queryParams.registerCode"-->
 | 
	
		
			
				|  |  | +      <!--          placeholder="请输入推线编码"-->
 | 
	
		
			
				|  |  | +      <!--          clearable-->
 | 
	
		
			
				|  |  | +      <!--          size="small"-->
 | 
	
		
			
				|  |  | +      <!--          @keyup.enter.native="handleQuery"-->
 | 
	
		
			
				|  |  | +      <!--        />-->
 | 
	
		
			
				|  |  | +      <!--      </el-form-item>-->
 | 
	
		
			
				|  |  | +      <el-form-item label="状态" prop="status">
 | 
	
		
			
				|  |  | +        <el-select  v-model="queryParams.status" placeholder="请选择状态" clearable size="small" >
 | 
	
		
			
				|  |  | +          <el-option
 | 
	
		
			
				|  |  | +            v-for="item in statusOptions"
 | 
	
		
			
				|  |  | +            :key="item.dictValue"
 | 
	
		
			
				|  |  | +            :label="item.dictLabel"
 | 
	
		
			
				|  |  | +            :value="item.dictValue"
 | 
	
		
			
				|  |  | +          />
 | 
	
		
			
				|  |  | +        </el-select>
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +      <!--      <el-form-item label="会员等级" prop="status">-->
 | 
	
		
			
				|  |  | +      <!--        <el-select   v-model="queryParams.level" placeholder="请选择会员等级" clearable size="small" >-->
 | 
	
		
			
				|  |  | +      <!--         <el-option-->
 | 
	
		
			
				|  |  | +      <!--                v-for="item in userLevelOptions"-->
 | 
	
		
			
				|  |  | +      <!--                :key="item.dictValue"-->
 | 
	
		
			
				|  |  | +      <!--                :label="item.dictLabel"-->
 | 
	
		
			
				|  |  | +      <!--                :value="item.dictValue"-->
 | 
	
		
			
				|  |  | +      <!--              />-->
 | 
	
		
			
				|  |  | +      <!--        </el-select>-->
 | 
	
		
			
				|  |  | +      <!--      </el-form-item>-->
 | 
	
		
			
				|  |  | +      <!--      <el-form-item label="推广员" prop="isPromoter">-->
 | 
	
		
			
				|  |  | +      <!--        <el-select  v-model="queryParams.isPromoter" placeholder="请选择" clearable size="small" >-->
 | 
	
		
			
				|  |  | +      <!--         <el-option-->
 | 
	
		
			
				|  |  | +      <!--                v-for="item in userIsPromoterOptions"-->
 | 
	
		
			
				|  |  | +      <!--                :key="item.dictValue"-->
 | 
	
		
			
				|  |  | +      <!--                :label="item.dictLabel"-->
 | 
	
		
			
				|  |  | +      <!--                :value="item.dictValue"-->
 | 
	
		
			
				|  |  | +      <!--              />-->
 | 
	
		
			
				|  |  | +      <!--        </el-select>-->
 | 
	
		
			
				|  |  | +      <!--      </el-form-item>-->
 | 
	
		
			
				|  |  | +      <el-form-item label="项目" prop="projectId">
 | 
	
		
			
				|  |  | +        <el-select  v-model="queryParams.projectId" placeholder="请选择项目" clearable size="small" >
 | 
	
		
			
				|  |  | +          <el-option
 | 
	
		
			
				|  |  | +            v-for="item in projectOptions"
 | 
	
		
			
				|  |  | +            :key="item.dictValue"
 | 
	
		
			
				|  |  | +            :label="item.dictLabel"
 | 
	
		
			
				|  |  | +            :value="item.dictValue"
 | 
	
		
			
				|  |  | +          />
 | 
	
		
			
				|  |  | +        </el-select>
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +      <el-form-item>
 | 
	
		
			
				|  |  | +        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
 | 
	
		
			
				|  |  | +        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +    </el-form>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <el-row :gutter="10" class="mb8">
 | 
	
		
			
				|  |  | +      <el-col :span="1.5">
 | 
	
		
			
				|  |  | +        <el-button
 | 
	
		
			
				|  |  | +          type="primary"
 | 
	
		
			
				|  |  | +          icon="el-icon-user"
 | 
	
		
			
				|  |  | +          size="mini"
 | 
	
		
			
				|  |  | +          @click="handleChangeCompanyUser"
 | 
	
		
			
				|  |  | +          :disabled="multiple"
 | 
	
		
			
				|  |  | +          v-hasPermi="['company:companyUser:change']"
 | 
	
		
			
				|  |  | +        >更换会员归属</el-button>
 | 
	
		
			
				|  |  | +      </el-col>
 | 
	
		
			
				|  |  | +      <el-col :span="1.5">
 | 
	
		
			
				|  |  | +        <el-button
 | 
	
		
			
				|  |  | +          type="warning"
 | 
	
		
			
				|  |  | +          icon="el-icon-download"
 | 
	
		
			
				|  |  | +          size="mini"
 | 
	
		
			
				|  |  | +          @click="handleExport"
 | 
	
		
			
				|  |  | +          v-hasPermi="['store:user:export']"
 | 
	
		
			
				|  |  | +        >导出</el-button>
 | 
	
		
			
				|  |  | +      </el-col>
 | 
	
		
			
				|  |  | +      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
 | 
	
		
			
				|  |  | +    </el-row>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <el-table  height="500" border v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
 | 
	
		
			
				|  |  | +      <el-table-column type="selection" width="55" align="center" />
 | 
	
		
			
				|  |  | +      <el-table-column label="ID" align="center" prop="userId" />
 | 
	
		
			
				|  |  | +      <el-table-column label="项目" align="center" prop="projectId">
 | 
	
		
			
				|  |  | +        <template slot-scope="scope">
 | 
	
		
			
				|  |  | +          <el-tag v-if="scope.row.projectId !== null">{{ getProjectLabel(scope.row.projectId,scope.row) }}</el-tag>
 | 
	
		
			
				|  |  | +        </template>
 | 
	
		
			
				|  |  | +      </el-table-column>
 | 
	
		
			
				|  |  | +      <el-table-column label="会员昵称" align="center" prop="nickname" />
 | 
	
		
			
				|  |  | +      <el-table-column label="会员头像" align="center" width="80">
 | 
	
		
			
				|  |  | +        <template slot-scope="scope">
 | 
	
		
			
				|  |  | +          <el-popover
 | 
	
		
			
				|  |  | +            placement="right"
 | 
	
		
			
				|  |  | +            title=""
 | 
	
		
			
				|  |  | +            trigger="hover"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            <img slot="reference" :src="scope.row.avatar" width="50" >
 | 
	
		
			
				|  |  | +            <img :src="scope.row.avatar" style="max-width: 120px;">
 | 
	
		
			
				|  |  | +          </el-popover>
 | 
	
		
			
				|  |  | +        </template>
 | 
	
		
			
				|  |  | +      </el-table-column>
 | 
	
		
			
				|  |  | +      <el-table-column label="手机号码" align="center" prop="phone" />
 | 
	
		
			
				|  |  | +      <el-table-column label="用户余额" align="center" prop="nowMoney" />
 | 
	
		
			
				|  |  | +      <!--      <el-table-column label="推广佣金" align="center" prop="brokeragePrice" />-->
 | 
	
		
			
				|  |  | +      <el-table-column label="积分" align="center" prop="integral" />
 | 
	
		
			
				|  |  | +      <el-table-column label="会员注册时间" align="center" prop="createTime" />
 | 
	
		
			
				|  |  | +      <!--      <el-table-column label="累计消费金额" align="center" prop="totalAmount" />-->
 | 
	
		
			
				|  |  | +      <!--      <el-table-column label="上次消费时间" align="center" prop="lastBuyTime" />-->
 | 
	
		
			
				|  |  | +      <!--      <el-table-column label="上次消费金额(元)" align="center" prop="number" />-->
 | 
	
		
			
				|  |  | +      <!--      <el-table-column label="会员等级" align="center" prop="level" >-->
 | 
	
		
			
				|  |  | +      <!--          <template slot-scope="scope">-->
 | 
	
		
			
				|  |  | +      <!--              <el-tag prop="status" v-for="(item, index) in userLevelOptions"    v-if="scope.row.level==item.dictValue">{{item.dictLabel}}</el-tag>-->
 | 
	
		
			
				|  |  | +      <!--          </template>-->
 | 
	
		
			
				|  |  | +      <!--      </el-table-column>-->
 | 
	
		
			
				|  |  | +      <!--      <el-table-column label="是否允许下单" align="center" prop="isShow" >-->
 | 
	
		
			
				|  |  | +      <!--        <template slot-scope="scope">-->
 | 
	
		
			
				|  |  | +      <!--          <el-tag prop="isShow" v-for="(item, index) in isShowOptions"    v-if="scope.row.isShow==item.dictValue">{{item.dictLabel}}</el-tag>-->
 | 
	
		
			
				|  |  | +      <!--        </template>-->
 | 
	
		
			
				|  |  | +      <!--      </el-table-column>-->
 | 
	
		
			
				|  |  | +      <!--      <el-table-column label="推广员" align="center" prop="isPromoter" >-->
 | 
	
		
			
				|  |  | +      <!--          <template slot-scope="scope">-->
 | 
	
		
			
				|  |  | +      <!--              <el-tag prop="status" v-for="(item, index) in userIsPromoterOptions"    v-if="scope.row.isPromoter==item.dictValue">{{item.dictLabel}}</el-tag>-->
 | 
	
		
			
				|  |  | +      <!--          </template>-->
 | 
	
		
			
				|  |  | +      <!--      </el-table-column>-->
 | 
	
		
			
				|  |  | +      <el-table-column label="状态" align="center" prop="status" >
 | 
	
		
			
				|  |  | +        <template slot-scope="scope">
 | 
	
		
			
				|  |  | +          <el-tag prop="status" v-for="(item, index) in statusOptions"    v-if="scope.row.status==item.dictValue">{{item.dictLabel}}</el-tag>
 | 
	
		
			
				|  |  | +        </template>
 | 
	
		
			
				|  |  | +      </el-table-column>
 | 
	
		
			
				|  |  | +      <el-table-column label="所属公司" align="center" prop="companyName" />
 | 
	
		
			
				|  |  | +      <el-table-column label="所属销售" align="center" prop="companyUserNickName" />
 | 
	
		
			
				|  |  | +      <!--      <el-table-column label="创建时间" align="center" prop="createTime" />-->
 | 
	
		
			
				|  |  | +      <!--      <el-table-column label="累计佣金" align="center" prop="registerDate" />-->
 | 
	
		
			
				|  |  | +      <!--      <el-table-column label="可提现佣金" align="center" prop="registerCode" />-->
 | 
	
		
			
				|  |  | +      <!--      <el-table-column label="冻结佣金" align="center" prop="source" />-->
 | 
	
		
			
				|  |  | +      <!--      <el-table-column label="已提现佣金" align="center" prop="remark" />-->
 | 
	
		
			
				|  |  | +      <el-table-column label="看课数量" align="center" prop="watchCourseCount" />
 | 
	
		
			
				|  |  | +      <el-table-column label="参与营期数" align="center" prop="partCourseCount" />
 | 
	
		
			
				|  |  | +      <el-table-column label="最后看课时间" align="center" prop="lastWatchDate" width="160">
 | 
	
		
			
				|  |  | +        <template slot-scope="scope">
 | 
	
		
			
				|  |  | +          <span>{{ parseTime(scope.row.lastWatchDate) }}</span>
 | 
	
		
			
				|  |  | +        </template>
 | 
	
		
			
				|  |  | +      </el-table-column>
 | 
	
		
			
				|  |  | +      <el-table-column label="操作" align="center"  width="150px"   class-name="small-padding fixed-width">
 | 
	
		
			
				|  |  | +        <template slot-scope="scope">
 | 
	
		
			
				|  |  | +          <el-button
 | 
	
		
			
				|  |  | +            size="mini"
 | 
	
		
			
				|  |  | +            type="text"
 | 
	
		
			
				|  |  | +            icon="el-icon-edit"
 | 
	
		
			
				|  |  | +            @click="handleUpdate(scope.row)"
 | 
	
		
			
				|  |  | +            v-hasPermi="['store:user:edit']"
 | 
	
		
			
				|  |  | +          >修改</el-button>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          <el-button
 | 
	
		
			
				|  |  | +            size="mini"
 | 
	
		
			
				|  |  | +            type="text"
 | 
	
		
			
				|  |  | +            @click="handleShow(scope.row)"
 | 
	
		
			
				|  |  | +            v-hasPermi="['store:user:query']"
 | 
	
		
			
				|  |  | +          >查看</el-button>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          <el-button
 | 
	
		
			
				|  |  | +            size="mini"
 | 
	
		
			
				|  |  | +            type="text"
 | 
	
		
			
				|  |  | +            icon="el-icon-delete"
 | 
	
		
			
				|  |  | +            @click="handleDelete(scope.row)"
 | 
	
		
			
				|  |  | +            v-hasPermi="['store:user:remove']"
 | 
	
		
			
				|  |  | +          >删除</el-button>
 | 
	
		
			
				|  |  | +        </template>
 | 
	
		
			
				|  |  | +      </el-table-column>
 | 
	
		
			
				|  |  | +    </el-table>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <pagination
 | 
	
		
			
				|  |  | +      v-show="total>0"
 | 
	
		
			
				|  |  | +      :total="total"
 | 
	
		
			
				|  |  | +      :page.sync="queryParams.pageNum"
 | 
	
		
			
				|  |  | +      :limit.sync="queryParams.pageSize"
 | 
	
		
			
				|  |  | +      @pagination="getList"
 | 
	
		
			
				|  |  | +    />
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <!-- 添加或修改用户对话框 -->
 | 
	
		
			
				|  |  | +    <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
 | 
	
		
			
				|  |  | +      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
 | 
	
		
			
				|  |  | +        <el-form-item label="会员头像" prop="avatar">
 | 
	
		
			
				|  |  | +          <el-popover
 | 
	
		
			
				|  |  | +            placement="right"
 | 
	
		
			
				|  |  | +            title=""
 | 
	
		
			
				|  |  | +            trigger="hover"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            <img slot="reference" :src="form.avatar" width="80">
 | 
	
		
			
				|  |  | +            <img :src="form.avatar" style="max-width: 80px;">
 | 
	
		
			
				|  |  | +          </el-popover>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="会员昵称" prop="nickname">
 | 
	
		
			
				|  |  | +          <el-input v-model="form.nickname" disabled placeholder="请输入用户昵称" />
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="手机号码" prop="phone">
 | 
	
		
			
				|  |  | +          <el-input v-model="form.phone" disabled placeholder="请输入手机号码" />
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="最后一次登录ip" prop="lastIp">
 | 
	
		
			
				|  |  | +          <el-input v-model="form.lastIp" disabled placeholder="请输入最后一次登录ip" />
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <!-- <el-form-item label="用户余额" prop="nowMoney">
 | 
	
		
			
				|  |  | +          <el-input v-model="form.nowMoney" disabled placeholder="请输入用户余额" />
 | 
	
		
			
				|  |  | +        </el-form-item> -->
 | 
	
		
			
				|  |  | +        <!-- <el-form-item label="积分" prop="integral">
 | 
	
		
			
				|  |  | +          <el-input v-model="form.integral" disabled placeholder="请输入用户积分" />
 | 
	
		
			
				|  |  | +        </el-form-item> -->
 | 
	
		
			
				|  |  | +        <el-form-item label="进线日期" prop="registerDate">
 | 
	
		
			
				|  |  | +          <el-date-picker clearable size="small"
 | 
	
		
			
				|  |  | +                          v-model="form.registerDate"
 | 
	
		
			
				|  |  | +                          type="date"
 | 
	
		
			
				|  |  | +                          value-format="yyyy-MM-dd"
 | 
	
		
			
				|  |  | +                          placeholder="选择进线日期">
 | 
	
		
			
				|  |  | +          </el-date-picker>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="推线编码" prop="registerCode">
 | 
	
		
			
				|  |  | +          <el-input v-model="form.registerCode" placeholder="请输入推线编码" />
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="渠道来源" prop="source">
 | 
	
		
			
				|  |  | +          <el-input v-model="form.source" placeholder="请输入渠道来源" />
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="会员等级" prop="level">
 | 
	
		
			
				|  |  | +          <el-select style="width: 200px" v-model="form.level" placeholder="请选择会员等级" clearable size="small" >
 | 
	
		
			
				|  |  | +            <el-option
 | 
	
		
			
				|  |  | +              v-for="item in userLevelOptions"
 | 
	
		
			
				|  |  | +              :key="item.dictValue"
 | 
	
		
			
				|  |  | +              :label="item.dictLabel"
 | 
	
		
			
				|  |  | +              :value="item.dictValue"
 | 
	
		
			
				|  |  | +            />
 | 
	
		
			
				|  |  | +          </el-select>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="是否为推广员" prop="isPromoter">
 | 
	
		
			
				|  |  | +          <el-select style="width: 200px" v-model="form.isPromoter" placeholder="请选择" clearable size="small" >
 | 
	
		
			
				|  |  | +            <el-option
 | 
	
		
			
				|  |  | +              v-for="item in userIsPromoterOptions"
 | 
	
		
			
				|  |  | +              :key="item.dictValue"
 | 
	
		
			
				|  |  | +              :label="item.dictLabel"
 | 
	
		
			
				|  |  | +              :value="item.dictValue"
 | 
	
		
			
				|  |  | +            />
 | 
	
		
			
				|  |  | +          </el-select>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="状态" prop="level">
 | 
	
		
			
				|  |  | +          <el-radio-group v-model="form.status">
 | 
	
		
			
				|  |  | +            <el-radio :label="item.dictValue" v-for="item in statusOptions" >{{item.dictLabel}}</el-radio>
 | 
	
		
			
				|  |  | +          </el-radio-group>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="是否展示" prop="isShow">
 | 
	
		
			
				|  |  | +          <el-radio-group v-model="form.isShow">
 | 
	
		
			
				|  |  | +            <el-radio :label="item.dictValue" v-for="item in isShowOptions" >{{item.dictLabel}}</el-radio>
 | 
	
		
			
				|  |  | +          </el-radio-group>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="用户备注" prop="remark">
 | 
	
		
			
				|  |  | +          <el-input v-model="form.remark" placeholder="请输入用户备注" />
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      </el-form>
 | 
	
		
			
				|  |  | +      <div slot="footer" class="dialog-footer">
 | 
	
		
			
				|  |  | +        <el-button type="primary" @click="submitForm">确 定</el-button>
 | 
	
		
			
				|  |  | +        <el-button @click="cancel">取 消</el-button>
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +    </el-dialog>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <el-drawer size="75%" :title="show.title" :visible.sync="show.open">
 | 
	
		
			
				|  |  | +      <userDetailsByNew  ref="userDetailsByNew" />
 | 
	
		
			
				|  |  | +    </el-drawer>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <!-- 更换会员归属对话框 -->
 | 
	
		
			
				|  |  | +    <el-dialog title="更换会员归属" :visible.sync="changeCompanyUserOpen" width="500px" append-to-body>
 | 
	
		
			
				|  |  | +      <el-form ref="changeCompanyUserForm" :model="changeCompanyUserForm" :rules="changeCompanyUserRules" label-width="100px">
 | 
	
		
			
				|  |  | +        <el-form-item label="选择公司" prop="companyId">
 | 
	
		
			
				|  |  | +          <el-select v-model="changeCompanyUserForm.companyId" placeholder="请选择公司" style="width: 100%" @change="handleCompanyChange">
 | 
	
		
			
				|  |  | +            <el-option
 | 
	
		
			
				|  |  | +              v-for="item in companyOptions"
 | 
	
		
			
				|  |  | +              :key="item.companyId"
 | 
	
		
			
				|  |  | +              :label="item.companyName"
 | 
	
		
			
				|  |  | +              :value="item.companyId"
 | 
	
		
			
				|  |  | +            />
 | 
	
		
			
				|  |  | +          </el-select>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="选择销售" prop="companyUserId">
 | 
	
		
			
				|  |  | +          <el-select v-model="changeCompanyUserForm.companyUserId" placeholder="请选择销售" style="width: 100%" @change="handleCompanyUserChange">
 | 
	
		
			
				|  |  | +            <el-option
 | 
	
		
			
				|  |  | +              v-for="item in companyUserOptions"
 | 
	
		
			
				|  |  | +              :key="item.userId"
 | 
	
		
			
				|  |  | +              :label="item.nickName + '_' + item.userName"
 | 
	
		
			
				|  |  | +              :value="item.userId"
 | 
	
		
			
				|  |  | +            />
 | 
	
		
			
				|  |  | +          </el-select>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +      </el-form>
 | 
	
		
			
				|  |  | +      <div slot="footer" class="dialog-footer">
 | 
	
		
			
				|  |  | +        <el-button type="primary" @click="submitChangeCompanyUserForm">确 定</el-button>
 | 
	
		
			
				|  |  | +        <el-button @click="cancelChangeCompanyUser">取 消</el-button>
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +    </el-dialog>
 | 
	
		
			
				|  |  | +  </div>
 | 
	
		
			
				|  |  | +</template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<script>
 | 
	
		
			
				|  |  | +import {listUserByProject, getUser, addUser, updateUser, exportUser, delUserCompanyUser} from "@/api/his/user";
 | 
	
		
			
				|  |  | +import { getCompanyUserList, changeCompanyUser, getCompanyList } from '@/api/company/companyUser';
 | 
	
		
			
				|  |  | +import userDetailsByNew from '@/views/his/user/userDetails.vue'
 | 
	
		
			
				|  |  | +export default {
 | 
	
		
			
				|  |  | +  name: "User",
 | 
	
		
			
				|  |  | +  components: { userDetailsByNew },
 | 
	
		
			
				|  |  | +  data() {
 | 
	
		
			
				|  |  | +    return {
 | 
	
		
			
				|  |  | +      companyQueryOptions:[],
 | 
	
		
			
				|  |  | +      companyQueryUserOptions:[],
 | 
	
		
			
				|  |  | +      userIsPromoterOptions:[],
 | 
	
		
			
				|  |  | +      userLevelOptions:[],
 | 
	
		
			
				|  |  | +      statusOptions:[],
 | 
	
		
			
				|  |  | +      isShowOptions:[],
 | 
	
		
			
				|  |  | +      // 遮罩层
 | 
	
		
			
				|  |  | +      loading: true,
 | 
	
		
			
				|  |  | +      // 选中数组
 | 
	
		
			
				|  |  | +      ids: [],
 | 
	
		
			
				|  |  | +      // 非单个禁用
 | 
	
		
			
				|  |  | +      single: true,
 | 
	
		
			
				|  |  | +      // 非多个禁用
 | 
	
		
			
				|  |  | +      multiple: true,
 | 
	
		
			
				|  |  | +      // 显示搜索条件
 | 
	
		
			
				|  |  | +      showSearch: true,
 | 
	
		
			
				|  |  | +      // 总条数
 | 
	
		
			
				|  |  | +      total: 0,
 | 
	
		
			
				|  |  | +      show:{
 | 
	
		
			
				|  |  | +        title:"会员详情",
 | 
	
		
			
				|  |  | +        open:false,
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      // 用户表格数据
 | 
	
		
			
				|  |  | +      userList: [],
 | 
	
		
			
				|  |  | +      // 弹出层标题
 | 
	
		
			
				|  |  | +      title: "",
 | 
	
		
			
				|  |  | +      // 是否显示弹出层
 | 
	
		
			
				|  |  | +      open: false,
 | 
	
		
			
				|  |  | +      // 日期范围
 | 
	
		
			
				|  |  | +      dateRange: [],
 | 
	
		
			
				|  |  | +      // 查询参数
 | 
	
		
			
				|  |  | +      queryParams: {
 | 
	
		
			
				|  |  | +        pageNum: 1,
 | 
	
		
			
				|  |  | +        pageSize: 10,
 | 
	
		
			
				|  |  | +        username: null,
 | 
	
		
			
				|  |  | +        password: null,
 | 
	
		
			
				|  |  | +        realName: null,
 | 
	
		
			
				|  |  | +        birthday: null,
 | 
	
		
			
				|  |  | +        idCard: null,
 | 
	
		
			
				|  |  | +        mark: null,
 | 
	
		
			
				|  |  | +        nickname: null,
 | 
	
		
			
				|  |  | +        avatar: null,
 | 
	
		
			
				|  |  | +        phone: null,
 | 
	
		
			
				|  |  | +        lastIp: null,
 | 
	
		
			
				|  |  | +        nowMoney: null,
 | 
	
		
			
				|  |  | +        brokeragePrice: null,
 | 
	
		
			
				|  |  | +        integral: null,
 | 
	
		
			
				|  |  | +        signNum: null,
 | 
	
		
			
				|  |  | +        status: null,
 | 
	
		
			
				|  |  | +        level: null,
 | 
	
		
			
				|  |  | +        spreadUserId: null,
 | 
	
		
			
				|  |  | +        spreadTime: null,
 | 
	
		
			
				|  |  | +        userType: null,
 | 
	
		
			
				|  |  | +        isPromoter: null,
 | 
	
		
			
				|  |  | +        payCount: null,
 | 
	
		
			
				|  |  | +        spreadCount: null,
 | 
	
		
			
				|  |  | +        addres: null,
 | 
	
		
			
				|  |  | +        wxProfile: null,
 | 
	
		
			
				|  |  | +        isDel: null,
 | 
	
		
			
				|  |  | +        startCreateTime: null,
 | 
	
		
			
				|  |  | +        endCreateTime: null,
 | 
	
		
			
				|  |  | +        companyId: null,
 | 
	
		
			
				|  |  | +        companyUserNickName: null
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      // 表单参数
 | 
	
		
			
				|  |  | +      form: {},
 | 
	
		
			
				|  |  | +      // 表单校验
 | 
	
		
			
				|  |  | +      rules: {
 | 
	
		
			
				|  |  | +        status: [
 | 
	
		
			
				|  |  | +          { required: true, message: "状态不能为空", trigger: "blur" }
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        level: [
 | 
	
		
			
				|  |  | +          { required: true, message: "等级不能为空", trigger: "blur" }
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      // 更换会员归属对话框
 | 
	
		
			
				|  |  | +      changeCompanyUserOpen: false,
 | 
	
		
			
				|  |  | +      // 更换会员归属表单
 | 
	
		
			
				|  |  | +      changeCompanyUserForm: {
 | 
	
		
			
				|  |  | +        companyId: null,
 | 
	
		
			
				|  |  | +        companyUserId: null,
 | 
	
		
			
				|  |  | +        userIds: []
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      // 更换会员归属表单校验
 | 
	
		
			
				|  |  | +      changeCompanyUserRules: {
 | 
	
		
			
				|  |  | +        companyId: [
 | 
	
		
			
				|  |  | +          { required: true, message: '请选择公司', trigger: 'change' }
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        companyUserId: [
 | 
	
		
			
				|  |  | +          { required: true, message: '请选择销售', trigger: 'change' }
 | 
	
		
			
				|  |  | +        ]
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      // 销售选项
 | 
	
		
			
				|  |  | +      companyUserOptions: [],
 | 
	
		
			
				|  |  | +      companyOptions: [],
 | 
	
		
			
				|  |  | +      projectOptions: [],
 | 
	
		
			
				|  |  | +      selectedUser: []
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  created() {
 | 
	
		
			
				|  |  | +    this.getDicts("user_status").then((response) => {
 | 
	
		
			
				|  |  | +      this.statusOptions = response.data;
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +    this.getDicts("user_level").then((response) => {
 | 
	
		
			
				|  |  | +      this.userLevelOptions = response.data;
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +    this.getDicts("sys_company_or").then((response) => {
 | 
	
		
			
				|  |  | +      this.isShowOptions = response.data;
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    this.getDicts("user_is_promoter").then((response) => {
 | 
	
		
			
				|  |  | +      this.userIsPromoterOptions = response.data;
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +    this.getDicts("sys_course_project").then(response => {
 | 
	
		
			
				|  |  | +      this.projectOptions = response.data;
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    this.getList();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    getCompanyList().then(response => {
 | 
	
		
			
				|  |  | +      if (response.code === 200) {
 | 
	
		
			
				|  |  | +        this.companyQueryOptions = response.data;
 | 
	
		
			
				|  |  | +      }});
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  methods: {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    handleQueryCompanyChange(companyId){
 | 
	
		
			
				|  |  | +      // 清空已选择的销售
 | 
	
		
			
				|  |  | +      this.queryCompanyUserId = null;
 | 
	
		
			
				|  |  | +      // 根据公司ID获取对应的销售列表
 | 
	
		
			
				|  |  | +      if (companyId) {
 | 
	
		
			
				|  |  | +        getCompanyUserList({ companyId: companyId }).then(response => {
 | 
	
		
			
				|  |  | +          if (response.code === 200) {
 | 
	
		
			
				|  |  | +            this.companyQueryUserOptions = response.data;
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            this.$message.error(response.msg || '获取销售列表失败');
 | 
	
		
			
				|  |  | +            this.companyQueryUserOptions = [];
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }).catch(() => {
 | 
	
		
			
				|  |  | +          this.$message.error('获取销售列表失败');
 | 
	
		
			
				|  |  | +          this.companyQueryUserOptions = [];
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        this.companyQueryUserOptions = [];
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /** 查询用户列表 */
 | 
	
		
			
				|  |  | +    getList() {
 | 
	
		
			
				|  |  | +      this.loading = true;
 | 
	
		
			
				|  |  | +      listUserByProject(this.queryParams).then(response => {
 | 
	
		
			
				|  |  | +        this.userList = response.rows;
 | 
	
		
			
				|  |  | +        this.total = response.total;
 | 
	
		
			
				|  |  | +        this.loading = false;
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    // 取消按钮
 | 
	
		
			
				|  |  | +    cancel() {
 | 
	
		
			
				|  |  | +      this.open = false;
 | 
	
		
			
				|  |  | +      this.reset();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    // 表单重置
 | 
	
		
			
				|  |  | +    reset() {
 | 
	
		
			
				|  |  | +      this.form = {
 | 
	
		
			
				|  |  | +        userId: null,
 | 
	
		
			
				|  |  | +        username: null,
 | 
	
		
			
				|  |  | +        password: null,
 | 
	
		
			
				|  |  | +        realName: null,
 | 
	
		
			
				|  |  | +        birthday: null,
 | 
	
		
			
				|  |  | +        idCard: null,
 | 
	
		
			
				|  |  | +        mark: null,
 | 
	
		
			
				|  |  | +        nickname: null,
 | 
	
		
			
				|  |  | +        avatar: null,
 | 
	
		
			
				|  |  | +        phone: null,
 | 
	
		
			
				|  |  | +        createTime: null,
 | 
	
		
			
				|  |  | +        updateTime: null,
 | 
	
		
			
				|  |  | +        lastIp: null,
 | 
	
		
			
				|  |  | +        nowMoney: null,
 | 
	
		
			
				|  |  | +        brokeragePrice: null,
 | 
	
		
			
				|  |  | +        integral: null,
 | 
	
		
			
				|  |  | +        signNum: null,
 | 
	
		
			
				|  |  | +        status: 0,
 | 
	
		
			
				|  |  | +        level: 0,
 | 
	
		
			
				|  |  | +        spreadUserId: null,
 | 
	
		
			
				|  |  | +        spreadTime: null,
 | 
	
		
			
				|  |  | +        userType: null,
 | 
	
		
			
				|  |  | +        isPromoter: null,
 | 
	
		
			
				|  |  | +        payCount: null,
 | 
	
		
			
				|  |  | +        spreadCount: null,
 | 
	
		
			
				|  |  | +        addres: null,
 | 
	
		
			
				|  |  | +        wxProfile: null,
 | 
	
		
			
				|  |  | +        isDel: null,
 | 
	
		
			
				|  |  | +        isShow: null
 | 
	
		
			
				|  |  | +      };
 | 
	
		
			
				|  |  | +      this.resetForm("form");
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 搜索按钮操作 */
 | 
	
		
			
				|  |  | +    handleQuery() {
 | 
	
		
			
				|  |  | +      this.queryParams.pageNum = 1;
 | 
	
		
			
				|  |  | +      this.getList();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 重置按钮操作 */
 | 
	
		
			
				|  |  | +    resetQuery() {
 | 
	
		
			
				|  |  | +      this.dateRange = [];
 | 
	
		
			
				|  |  | +      this.resetForm("queryForm");
 | 
	
		
			
				|  |  | +      this.queryParams.companyId = null;
 | 
	
		
			
				|  |  | +      this.queryParams.companyUserNickName = null;
 | 
	
		
			
				|  |  | +      this.companyQueryUserOptions = null;
 | 
	
		
			
				|  |  | +      this.handleQuery();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 处理日期范围变化 */
 | 
	
		
			
				|  |  | +    handleDateRangeChange(dates) {
 | 
	
		
			
				|  |  | +      if (dates) {
 | 
	
		
			
				|  |  | +        this.queryParams.startCreateTime = dates[0];
 | 
	
		
			
				|  |  | +        this.queryParams.endCreateTime = dates[1];
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        this.queryParams.startCreateTime = null;
 | 
	
		
			
				|  |  | +        this.queryParams.endCreateTime = null;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    // 多选框选中数据
 | 
	
		
			
				|  |  | +    handleSelectionChange(selection) {
 | 
	
		
			
				|  |  | +      this.ids = selection.map(item => item.userId)
 | 
	
		
			
				|  |  | +      this.selectedUser = selection.map(item => {return {userId: item.userId, projectId: item.projectId}})
 | 
	
		
			
				|  |  | +      this.single = selection.length!==1
 | 
	
		
			
				|  |  | +      this.multiple = !selection.length
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 新增按钮操作 */
 | 
	
		
			
				|  |  | +    handleAdd() {
 | 
	
		
			
				|  |  | +      this.reset();
 | 
	
		
			
				|  |  | +      this.open = true;
 | 
	
		
			
				|  |  | +      this.title = "添加用户";
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 修改按钮操作 */
 | 
	
		
			
				|  |  | +    handleUpdate(row) {
 | 
	
		
			
				|  |  | +      this.reset();
 | 
	
		
			
				|  |  | +      const userId = row.userId || this.ids
 | 
	
		
			
				|  |  | +      getUser(userId).then(response => {
 | 
	
		
			
				|  |  | +        this.form = response.data;
 | 
	
		
			
				|  |  | +        this.form.status = response.data.status.toString();
 | 
	
		
			
				|  |  | +        this.form.isShow = response.data.isShow.toString();
 | 
	
		
			
				|  |  | +        this.form.level = response.data.level.toString();
 | 
	
		
			
				|  |  | +        this.form.isPromoter = response.data.isPromoter.toString();
 | 
	
		
			
				|  |  | +        this.open = true;
 | 
	
		
			
				|  |  | +        this.title = "修改用户";
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 提交按钮 */
 | 
	
		
			
				|  |  | +    submitForm() {
 | 
	
		
			
				|  |  | +      this.$refs["form"].validate(valid => {
 | 
	
		
			
				|  |  | +        if (valid) {
 | 
	
		
			
				|  |  | +          if (this.form.userId != null) {
 | 
	
		
			
				|  |  | +            updateUser(this.form).then(response => {
 | 
	
		
			
				|  |  | +              if (response.code === 200) {
 | 
	
		
			
				|  |  | +                this.msgSuccess("修改成功");
 | 
	
		
			
				|  |  | +                this.open = false;
 | 
	
		
			
				|  |  | +                this.getList();
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            addUser(this.form).then(response => {
 | 
	
		
			
				|  |  | +              if (response.code === 200) {
 | 
	
		
			
				|  |  | +                this.msgSuccess("新增成功");
 | 
	
		
			
				|  |  | +                this.open = false;
 | 
	
		
			
				|  |  | +                this.getList();
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 删除按钮操作 */
 | 
	
		
			
				|  |  | +    handleDelete(row) {
 | 
	
		
			
				|  |  | +      const companyUserId = row.companyUserId;
 | 
	
		
			
				|  |  | +      this.$confirm('是否确认删除用户编号为"' + companyUserId + '"的数据项?', "警告", {
 | 
	
		
			
				|  |  | +        confirmButtonText: "确定",
 | 
	
		
			
				|  |  | +        cancelButtonText: "取消",
 | 
	
		
			
				|  |  | +        type: "warning"
 | 
	
		
			
				|  |  | +      }).then(function() {
 | 
	
		
			
				|  |  | +        return delUserCompanyUser(companyUserId);
 | 
	
		
			
				|  |  | +      }).then(() => {
 | 
	
		
			
				|  |  | +        this.getList();
 | 
	
		
			
				|  |  | +        this.msgSuccess("删除成功");
 | 
	
		
			
				|  |  | +      }).catch(function() {});
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 导出按钮操作 */
 | 
	
		
			
				|  |  | +    handleExport() {
 | 
	
		
			
				|  |  | +      const queryParams = this.queryParams;
 | 
	
		
			
				|  |  | +      this.$confirm('是否确认导出当前用户数据项?', "警告", {
 | 
	
		
			
				|  |  | +        confirmButtonText: "确定",
 | 
	
		
			
				|  |  | +        cancelButtonText: "取消",
 | 
	
		
			
				|  |  | +        type: "warning"
 | 
	
		
			
				|  |  | +      }).then(function() {
 | 
	
		
			
				|  |  | +        return exportUser(queryParams);
 | 
	
		
			
				|  |  | +      }).then(response => {
 | 
	
		
			
				|  |  | +        console.log(response)
 | 
	
		
			
				|  |  | +        this.download(response.msg);
 | 
	
		
			
				|  |  | +      }).catch(function() {});
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    ,handleShow(row){
 | 
	
		
			
				|  |  | +      var that=this;
 | 
	
		
			
				|  |  | +      that.show.open=true;
 | 
	
		
			
				|  |  | +      setTimeout(() => {
 | 
	
		
			
				|  |  | +        that.$refs.storeUserDetails.getDetails(row.userId);
 | 
	
		
			
				|  |  | +      }, 200);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 更换会员归属按钮操作 */
 | 
	
		
			
				|  |  | +    handleChangeCompanyUser() {
 | 
	
		
			
				|  |  | +      // 获取公司下拉列表
 | 
	
		
			
				|  |  | +      getCompanyList().then(response => {
 | 
	
		
			
				|  |  | +        if (response.code === 200) {
 | 
	
		
			
				|  |  | +          this.companyOptions = response.data;
 | 
	
		
			
				|  |  | +          // 重置表单和销售列表
 | 
	
		
			
				|  |  | +          this.resetCompanyUserForm();
 | 
	
		
			
				|  |  | +          this.companyUserOptions = [];
 | 
	
		
			
				|  |  | +          this.changeCompanyUserOpen = true;
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          this.$message.error(response.msg || '获取公司列表失败');
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }).catch(() => {
 | 
	
		
			
				|  |  | +        this.$message.error('获取公司列表失败');
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 销售选择变化 */
 | 
	
		
			
				|  |  | +    handleCompanyUserChange(userId) {
 | 
	
		
			
				|  |  | +      if (!this.changeCompanyUserForm.companyId) {
 | 
	
		
			
				|  |  | +        this.$message.warning('请先选择公司');
 | 
	
		
			
				|  |  | +        this.changeCompanyUserForm.companyUserId = null;
 | 
	
		
			
				|  |  | +        return;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 重置更换会员归属表单 */
 | 
	
		
			
				|  |  | +    resetCompanyUserForm() {
 | 
	
		
			
				|  |  | +      this.changeCompanyUserForm = {
 | 
	
		
			
				|  |  | +        companyId: null,
 | 
	
		
			
				|  |  | +        companyUserId: null,
 | 
	
		
			
				|  |  | +        userIds: []
 | 
	
		
			
				|  |  | +      };
 | 
	
		
			
				|  |  | +      this.resetForm("changeCompanyUserForm");
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    handleCompanyChange(companyId) {
 | 
	
		
			
				|  |  | +      // 清空已选择的销售
 | 
	
		
			
				|  |  | +      this.changeCompanyUserForm.companyUserId = null;
 | 
	
		
			
				|  |  | +      // 根据公司ID获取对应的销售列表
 | 
	
		
			
				|  |  | +      if (companyId) {
 | 
	
		
			
				|  |  | +        getCompanyUserList({ companyId: companyId }).then(response => {
 | 
	
		
			
				|  |  | +          if (response.code === 200) {
 | 
	
		
			
				|  |  | +            this.companyUserOptions = response.data;
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            this.$message.error(response.msg || '获取销售列表失败');
 | 
	
		
			
				|  |  | +            this.companyUserOptions = [];
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }).catch(() => {
 | 
	
		
			
				|  |  | +          this.$message.error('获取销售列表失败');
 | 
	
		
			
				|  |  | +          this.companyUserOptions = [];
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        this.companyUserOptions = [];
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 取消更换会员归属 */
 | 
	
		
			
				|  |  | +    cancelChangeCompanyUser() {
 | 
	
		
			
				|  |  | +      this.changeCompanyUserOpen = false;
 | 
	
		
			
				|  |  | +      this.resetCompanyUserForm();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 提交更换会员归属 */
 | 
	
		
			
				|  |  | +    submitChangeCompanyUserForm() {
 | 
	
		
			
				|  |  | +      this.$refs["changeCompanyUserForm"].validate(valid => {
 | 
	
		
			
				|  |  | +        if (valid) {
 | 
	
		
			
				|  |  | +          // 调用更换会员归属接口
 | 
	
		
			
				|  |  | +          // 检查companyId是否已设置
 | 
	
		
			
				|  |  | +          if (!this.changeCompanyUserForm.companyId) {
 | 
	
		
			
				|  |  | +            this.$message.error('请选择公司');
 | 
	
		
			
				|  |  | +            return;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          changeCompanyUser(this.selectedUser, {
 | 
	
		
			
				|  |  | +            companyUserId: this.changeCompanyUserForm.companyUserId,
 | 
	
		
			
				|  |  | +            companyId: this.changeCompanyUserForm.companyId
 | 
	
		
			
				|  |  | +          }).then(response => {
 | 
	
		
			
				|  |  | +            if (response.code === 200) {
 | 
	
		
			
				|  |  | +              this.msgSuccess("操作成功");
 | 
	
		
			
				|  |  | +              this.changeCompanyUserOpen = false;
 | 
	
		
			
				|  |  | +              this.getList();
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +              this.$message.error(response.msg || '操作失败');
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          }).catch(() => {
 | 
	
		
			
				|  |  | +            this.$message.error('操作失败');
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 获取项目对应名称 */
 | 
	
		
			
				|  |  | +    getProjectLabel(projectId) {
 | 
	
		
			
				|  |  | +      return this.projectOptions.find(item => parseInt(item.dictValue) === projectId)?.dictLabel;
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +</script>
 |