|  | @@ -22,24 +22,24 @@
 | 
	
		
			
				|  |  |                          </el-input>
 | 
	
		
			
				|  |  |                      </div>
 | 
	
		
			
				|  |  |                      <div class="search-item">
 | 
	
		
			
				|  |  | -                        <label>账户类型</label>
 | 
	
		
			
				|  |  | -                        <el-select v-model="searchType" @change="getList(1)" placeholder="请选择">
 | 
	
		
			
				|  |  | +                        <label>状态</label>
 | 
	
		
			
				|  |  | +                        <el-select v-model="searchStatus" @change="getList(1)" placeholder="请选择">
 | 
	
		
			
				|  |  |                              <el-option
 | 
	
		
			
				|  |  | -                                v-for="item in typeList"
 | 
	
		
			
				|  |  | -                                :key="item.account_type"
 | 
	
		
			
				|  |  | -                                :label="item.account_type_name"
 | 
	
		
			
				|  |  | -                                :value="item.account_type">
 | 
	
		
			
				|  |  | +                                v-for="item in statusList"
 | 
	
		
			
				|  |  | +                                :key="item.value"
 | 
	
		
			
				|  |  | +                                :label="item.label"
 | 
	
		
			
				|  |  | +                                :value="item.value">
 | 
	
		
			
				|  |  |                              </el-option>
 | 
	
		
			
				|  |  |                          </el-select>
 | 
	
		
			
				|  |  |                      </div>
 | 
	
		
			
				|  |  |                      <div class="search-item">
 | 
	
		
			
				|  |  | -                        <label>状态</label>
 | 
	
		
			
				|  |  | -                        <el-select v-model="searchStatus" @change="getList(1)" placeholder="请选择">
 | 
	
		
			
				|  |  | +                        <label>类型</label>
 | 
	
		
			
				|  |  | +                        <el-select v-model="searchType" @change="getList(1)" placeholder="请选择">
 | 
	
		
			
				|  |  |                              <el-option
 | 
	
		
			
				|  |  | -                                v-for="item in $searchStatusList"
 | 
	
		
			
				|  |  | -                                :key="item.status"
 | 
	
		
			
				|  |  | -                                :label="item.status_name"
 | 
	
		
			
				|  |  | -                                :value="item.status">
 | 
	
		
			
				|  |  | +                                v-for="item in typeList"
 | 
	
		
			
				|  |  | +                                :key="item.value"
 | 
	
		
			
				|  |  | +                                :label="item.label"
 | 
	
		
			
				|  |  | +                                :value="item.value">
 | 
	
		
			
				|  |  |                              </el-option>
 | 
	
		
			
				|  |  |                          </el-select>
 | 
	
		
			
				|  |  |                      </div>
 | 
	
	
		
			
				|  | @@ -53,94 +53,121 @@
 | 
	
		
			
				|  |  |                      :max-height="tableHeight"
 | 
	
		
			
				|  |  |                      v-loading="tableLoading">
 | 
	
		
			
				|  |  |                      <el-table-column
 | 
	
		
			
				|  |  | -                        prop="user_name"
 | 
	
		
			
				|  |  | -                        label="用户名"
 | 
	
		
			
				|  |  | +                        type="index"
 | 
	
		
			
				|  |  | +                        label="#"
 | 
	
		
			
				|  |  | +                        sortable
 | 
	
		
			
				|  |  | +                        width="54"
 | 
	
		
			
				|  |  | +                        :index="(pageNumber-1)*pageSize+1">
 | 
	
		
			
				|  |  | +                    </el-table-column>
 | 
	
		
			
				|  |  | +                    <el-table-column
 | 
	
		
			
				|  |  | +                        prop="name"
 | 
	
		
			
				|  |  | +                        label="兑换码名称"
 | 
	
		
			
				|  |  |                          sortable="custom"
 | 
	
		
			
				|  |  | -                        width="200"
 | 
	
		
			
				|  |  | -                        class-name="user-info">
 | 
	
		
			
				|  |  | +                        width="163">
 | 
	
		
			
				|  |  | +                    </el-table-column>
 | 
	
		
			
				|  |  | +                    <el-table-column
 | 
	
		
			
				|  |  | +                        prop="code"
 | 
	
		
			
				|  |  | +                        label="兑换码"
 | 
	
		
			
				|  |  | +                        sortable="custom"
 | 
	
		
			
				|  |  | +                        width="160">
 | 
	
		
			
				|  |  | +                    </el-table-column>
 | 
	
		
			
				|  |  | +                    <el-table-column
 | 
	
		
			
				|  |  | +                        prop="type"
 | 
	
		
			
				|  |  | +                        label="类型"
 | 
	
		
			
				|  |  | +                        sortable="custom"
 | 
	
		
			
				|  |  | +                        width="92" >
 | 
	
		
			
				|  |  |                          <template slot-scope="scope">
 | 
	
		
			
				|  |  | -                            <el-image
 | 
	
		
			
				|  |  | -                                class="touxiang"
 | 
	
		
			
				|  |  | -                                :src="scope.row.image_url?scope.row.image_url:require('../../assets/avatar.png')"
 | 
	
		
			
				|  |  | -                                fit="cover" style="width:24px;height:24px;margin-right:8px">
 | 
	
		
			
				|  |  | -                            </el-image>
 | 
	
		
			
				|  |  | -                            <!-- <img class="touxiang" :src="scope.row.image_url?scope.row.image_url:require('../../assets/avatar.png')" /> -->
 | 
	
		
			
				|  |  | -                            <span class="name">{{scope.row.user_name}}</span>
 | 
	
		
			
				|  |  | +                            {{scope.row.type===0?'普通兑换码':'批量兑换码'}}
 | 
	
		
			
				|  |  |                          </template>
 | 
	
		
			
				|  |  |                      </el-table-column>
 | 
	
		
			
				|  |  |                      <el-table-column
 | 
	
		
			
				|  |  | -                        prop="real_name"
 | 
	
		
			
				|  |  | -                        label="真实姓名"
 | 
	
		
			
				|  |  | -                        width="112">
 | 
	
		
			
				|  |  | +                        prop="goods_count"
 | 
	
		
			
				|  |  | +                        label="内容数"
 | 
	
		
			
				|  |  | +                        min-width="80">
 | 
	
		
			
				|  |  |                      </el-table-column>
 | 
	
		
			
				|  |  |                      <el-table-column
 | 
	
		
			
				|  |  | -                        prop="sex_name"
 | 
	
		
			
				|  |  | -                        label="性别"
 | 
	
		
			
				|  |  | -                        width="56">
 | 
	
		
			
				|  |  | +                        prop="phone"
 | 
	
		
			
				|  |  | +                        label="使用情况"
 | 
	
		
			
				|  |  | +                        width="96">
 | 
	
		
			
				|  |  | +                        <template slot-scope="scope">
 | 
	
		
			
				|  |  | +                            {{scope.row.person_count_use+'/'+scope.row.person_count_max}}
 | 
	
		
			
				|  |  | +                        </template>
 | 
	
		
			
				|  |  |                      </el-table-column>
 | 
	
		
			
				|  |  |                      <el-table-column
 | 
	
		
			
				|  |  | -                        prop="account_type_name"
 | 
	
		
			
				|  |  | -                        label="账户类型"
 | 
	
		
			
				|  |  | -                        width="120" >
 | 
	
		
			
				|  |  | +                        prop="creator_name"
 | 
	
		
			
				|  |  | +                        label="创建人"
 | 
	
		
			
				|  |  | +                        width="88">
 | 
	
		
			
				|  |  |                      </el-table-column>
 | 
	
		
			
				|  |  |                      <el-table-column
 | 
	
		
			
				|  |  | -                        prop="email"
 | 
	
		
			
				|  |  | -                        label="邮箱"
 | 
	
		
			
				|  |  | -                        min-width="200">
 | 
	
		
			
				|  |  | +                        prop="create_time"
 | 
	
		
			
				|  |  | +                        label="创建时间"
 | 
	
		
			
				|  |  | +                        sortable="custom"
 | 
	
		
			
				|  |  | +                        width="164">
 | 
	
		
			
				|  |  |                      </el-table-column>
 | 
	
		
			
				|  |  |                      <el-table-column
 | 
	
		
			
				|  |  | -                        prop="phone"
 | 
	
		
			
				|  |  | -                        label="手机号"
 | 
	
		
			
				|  |  | -                        width="144">
 | 
	
		
			
				|  |  | +                        prop="end_date"
 | 
	
		
			
				|  |  | +                        label="到期日期"
 | 
	
		
			
				|  |  | +                        sortable="custom"
 | 
	
		
			
				|  |  | +                        width="126" >
 | 
	
		
			
				|  |  |                      </el-table-column>
 | 
	
		
			
				|  |  |                      <el-table-column
 | 
	
		
			
				|  |  | -                        prop="status"
 | 
	
		
			
				|  |  | +                        prop="valid_status"
 | 
	
		
			
				|  |  |                          label="状态"
 | 
	
		
			
				|  |  | -                        width="96" >
 | 
	
		
			
				|  |  | +                        width="88" >
 | 
	
		
			
				|  |  |                          <template slot-scope="scope">
 | 
	
		
			
				|  |  |                              <div class="status-box">
 | 
	
		
			
				|  |  | -                                <span :style="{background:statusList[scope.row.status].bg}"></span>
 | 
	
		
			
				|  |  | -                                <b :style="{color:statusList[scope.row.status].color}">{{statusList[scope.row.status].text}}</b>
 | 
	
		
			
				|  |  | +                                <span :style="{background:statusListCss[scope.row.valid_status].bg}"></span>
 | 
	
		
			
				|  |  | +                                <b :style="{color:statusListCss[scope.row.valid_status].color}">{{statusListCss[scope.row.valid_status].text}}</b>
 | 
	
		
			
				|  |  |                              </div>
 | 
	
		
			
				|  |  |                          </template>
 | 
	
		
			
				|  |  |                      </el-table-column>
 | 
	
		
			
				|  |  |                      <el-table-column
 | 
	
		
			
				|  |  | -                        prop="create_time"
 | 
	
		
			
				|  |  | -                        label="创建时间"
 | 
	
		
			
				|  |  | -                        sortable="custom"
 | 
	
		
			
				|  |  | -                        width="160">
 | 
	
		
			
				|  |  | -                        <template slot-scope="scope">
 | 
	
		
			
				|  |  | -                            {{scope.row.create_time?scope.row.create_time.substring(0,16):'-'}}
 | 
	
		
			
				|  |  | -                        </template>
 | 
	
		
			
				|  |  | +                        prop="momo"
 | 
	
		
			
				|  |  | +                        label="备注"
 | 
	
		
			
				|  |  | +                        width="120">
 | 
	
		
			
				|  |  |                      </el-table-column>
 | 
	
		
			
				|  |  |                      <el-table-column
 | 
	
		
			
				|  |  |                          fixed="right"
 | 
	
		
			
				|  |  |                          label="操作"
 | 
	
		
			
				|  |  | -                        width="120">
 | 
	
		
			
				|  |  | +                        width="180">
 | 
	
		
			
				|  |  |                          <template slot-scope="scope">
 | 
	
		
			
				|  |  |                              <el-button
 | 
	
		
			
				|  |  |                                  @click.native.prevent="handleEdit(scope.row)"
 | 
	
		
			
				|  |  |                                  type="text"
 | 
	
		
			
				|  |  |                                  size="small"
 | 
	
		
			
				|  |  |                                  class="primary-btn">
 | 
	
		
			
				|  |  | -                                编辑
 | 
	
		
			
				|  |  | +                                查看
 | 
	
		
			
				|  |  |                              </el-button>
 | 
	
		
			
				|  |  |                              <el-button
 | 
	
		
			
				|  |  |                                  @click.native.prevent="handleUp(scope.row, scope.$index)"
 | 
	
		
			
				|  |  |                                  type="text"
 | 
	
		
			
				|  |  |                                  size="small"
 | 
	
		
			
				|  |  |                                  class="primary-btn"
 | 
	
		
			
				|  |  | -                                v-if="scope.row.status===0">
 | 
	
		
			
				|  |  | -                                开启
 | 
	
		
			
				|  |  | +                                v-if="scope.row.valid_status===0">
 | 
	
		
			
				|  |  | +                                启用
 | 
	
		
			
				|  |  |                              </el-button>
 | 
	
		
			
				|  |  |                              <el-button
 | 
	
		
			
				|  |  |                                  @click.native.prevent="handleUp(scope.row, scope.$index)"
 | 
	
		
			
				|  |  |                                  type="text"
 | 
	
		
			
				|  |  |                                  size="small"
 | 
	
		
			
				|  |  |                                  class="red-btn"
 | 
	
		
			
				|  |  | -                                v-else-if="scope.row.status===1">
 | 
	
		
			
				|  |  | +                                v-else-if="scope.row.valid_status===1">
 | 
	
		
			
				|  |  |                                  停用
 | 
	
		
			
				|  |  |                              </el-button>
 | 
	
		
			
				|  |  | +                            <el-button
 | 
	
		
			
				|  |  | +                                @click.native.prevent="handleRevoca(scope.row)"
 | 
	
		
			
				|  |  | +                                type="text"
 | 
	
		
			
				|  |  | +                                size="small"
 | 
	
		
			
				|  |  | +                                class="primary-btn">
 | 
	
		
			
				|  |  | +                                撤回
 | 
	
		
			
				|  |  | +                            </el-button>
 | 
	
		
			
				|  |  | +                            <el-button
 | 
	
		
			
				|  |  | +                                @click.native.prevent="handleDelete(scope.row, scope.$index)"
 | 
	
		
			
				|  |  | +                                type="text"
 | 
	
		
			
				|  |  | +                                size="small"
 | 
	
		
			
				|  |  | +                                class="red-btn">
 | 
	
		
			
				|  |  | +                                删除
 | 
	
		
			
				|  |  | +                            </el-button>
 | 
	
		
			
				|  |  |                          </template>
 | 
	
		
			
				|  |  |                      </el-table-column>
 | 
	
		
			
				|  |  |                  </el-table>
 | 
	
	
		
			
				|  | @@ -167,7 +194,6 @@ import Header from "../../components/Header.vue";
 | 
	
		
			
				|  |  |  import NavMenu from "../../components/NavMenu.vue"
 | 
	
		
			
				|  |  |  import Breadcrumb from '../../components/Breadcrumb.vue';
 | 
	
		
			
				|  |  |  import { getLogin } from "@/api/ajax";
 | 
	
		
			
				|  |  | -import { mapState } from 'vuex';
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  export default {
 | 
	
		
			
				|  |  |    //import引入的组件需要注入到对象中才能使用
 | 
	
	
		
			
				|  | @@ -194,20 +220,51 @@ export default {
 | 
	
		
			
				|  |  |          searchStatus: -1,
 | 
	
		
			
				|  |  |          typeList:[
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  | -                account_type:-1,
 | 
	
		
			
				|  |  | -                account_type_name:'全部'
 | 
	
		
			
				|  |  | +                value:-1,
 | 
	
		
			
				|  |  | +                label:'全部'
 | 
	
		
			
				|  |  | +            },
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                value:0,
 | 
	
		
			
				|  |  | +                label:'普通兑换码'
 | 
	
		
			
				|  |  | +            },
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                value:1,
 | 
	
		
			
				|  |  | +                label:'批量兑换码'
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          ],
 | 
	
		
			
				|  |  | -        statusList:{
 | 
	
		
			
				|  |  | +        statusList:[
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                label: '全部',
 | 
	
		
			
				|  |  | +                value: -1
 | 
	
		
			
				|  |  | +            },
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                label: '使用中',
 | 
	
		
			
				|  |  | +                value: 1
 | 
	
		
			
				|  |  | +            },
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                label: '已停用',
 | 
	
		
			
				|  |  | +                value: 0
 | 
	
		
			
				|  |  | +            },
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                label: '已到期',
 | 
	
		
			
				|  |  | +                value: 2
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        statusListCss:{
 | 
	
		
			
				|  |  |              1:{
 | 
	
		
			
				|  |  | -                text:'正常',
 | 
	
		
			
				|  |  | +                text:'使用中',
 | 
	
		
			
				|  |  |                  bg:'#165DFF',
 | 
	
		
			
				|  |  |                  color:''
 | 
	
		
			
				|  |  |              },
 | 
	
		
			
				|  |  |              0:{
 | 
	
		
			
				|  |  | -                text:'停用',
 | 
	
		
			
				|  |  | +                text:'已停用',
 | 
	
		
			
				|  |  |                  bg:'#F53F3F',
 | 
	
		
			
				|  |  | -                color:'#F53F3F'
 | 
	
		
			
				|  |  | +                color:''
 | 
	
		
			
				|  |  | +            },
 | 
	
		
			
				|  |  | +            2:{
 | 
	
		
			
				|  |  | +                text:'已过期',
 | 
	
		
			
				|  |  | +                bg:'#FF7D00',
 | 
	
		
			
				|  |  | +                color:''
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  |          tableData:[
 | 
	
	
		
			
				|  | @@ -234,7 +291,6 @@ export default {
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    //计算属性 类似于data概念
 | 
	
		
			
				|  |  |    computed: {
 | 
	
		
			
				|  |  | -    ...mapState(['$searchStatusList']),
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    //监控data中数据变化
 | 
	
		
			
				|  |  |    watch: {},
 | 
	
	
		
			
				|  | @@ -248,6 +304,40 @@ export default {
 | 
	
		
			
				|  |  |          this.dataSort = dataSort
 | 
	
		
			
				|  |  |          this.getList()
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | +    // 撤回
 | 
	
		
			
				|  |  | +    handleRevoca(row){
 | 
	
		
			
				|  |  | +        this.$confirm('确定撤回吗?', '提示', {
 | 
	
		
			
				|  |  | +          confirmButtonText: '确定',
 | 
	
		
			
				|  |  | +          cancelButtonText: '取消',
 | 
	
		
			
				|  |  | +          type: 'warning'
 | 
	
		
			
				|  |  | +        }).then(() => {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }).catch(() => {
 | 
	
		
			
				|  |  | +               
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    // 删除
 | 
	
		
			
				|  |  | +    handleDelete(row){
 | 
	
		
			
				|  |  | +        this.$confirm('确定删除吗?', '提示', {
 | 
	
		
			
				|  |  | +          confirmButtonText: '确定',
 | 
	
		
			
				|  |  | +          cancelButtonText: '取消',
 | 
	
		
			
				|  |  | +          type: 'warning'
 | 
	
		
			
				|  |  | +        }).then(() => {
 | 
	
		
			
				|  |  | +            let Mname = "/CourseServer/Manager/ZBCourseManager/DeleteZBCourse";
 | 
	
		
			
				|  |  | +            let data = {
 | 
	
		
			
				|  |  | +                id: row.id
 | 
	
		
			
				|  |  | +            };
 | 
	
		
			
				|  |  | +            getLogin(Mname, data).then(res => {
 | 
	
		
			
				|  |  | +                this.$message({
 | 
	
		
			
				|  |  | +                    type: 'success',
 | 
	
		
			
				|  |  | +                    message: '删除成功!'
 | 
	
		
			
				|  |  | +                });
 | 
	
		
			
				|  |  | +                this.getList()
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +        }).catch(() => {
 | 
	
		
			
				|  |  | +               
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |      // 查询列表
 | 
	
		
			
				|  |  |      getList(page){
 | 
	
		
			
				|  |  |          this.tableLoading = true
 | 
	
	
		
			
				|  | @@ -269,9 +359,9 @@ export default {
 | 
	
		
			
				|  |  |              order_column_list = ['create_time:desc']
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          let data = {
 | 
	
		
			
				|  |  | -            search_content:this.searchInput.trim(),
 | 
	
		
			
				|  |  | -            account_type:this.searchType,
 | 
	
		
			
				|  |  | -            status:this.searchStatus,
 | 
	
		
			
				|  |  | +            content:this.searchInput.trim(),
 | 
	
		
			
				|  |  | +            type:this.searchType,
 | 
	
		
			
				|  |  | +            valid_status:this.searchStatus,
 | 
	
		
			
				|  |  |              page_capacity:this.pageSize,
 | 
	
		
			
				|  |  |              cur_page:this.pageNumber,
 | 
	
		
			
				|  |  |              order_column_list: order_column_list
 | 
	
	
		
			
				|  | @@ -349,24 +439,10 @@ export default {
 | 
	
		
			
				|  |  |          this.tableHeight = window.innerHeight - tableH;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    // 用户类型列表
 | 
	
		
			
				|  |  | -    getUserAccountTypeList(){
 | 
	
		
			
				|  |  | -        let MethodName = "/OrgServer/DictManager/GetSysUserAccountTypeList";
 | 
	
		
			
				|  |  | -        getLogin(MethodName, {})
 | 
	
		
			
				|  |  | -        .then((res) => {
 | 
	
		
			
				|  |  | -            if(res.status===1){
 | 
	
		
			
				|  |  | -                this.typeList = this.typeList.concat(res.account_type_list)
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | -        .catch(() => {
 | 
	
		
			
				|  |  | -            this.loading = false
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    //生命周期 - 创建完成(可以访问当前this实例)
 | 
	
		
			
				|  |  |    created() {
 | 
	
		
			
				|  |  |      this.getTableHeight();
 | 
	
		
			
				|  |  | -    this.getUserAccountTypeList()
 | 
	
		
			
				|  |  |      this.getList()
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    //生命周期 - 挂载完成(可以访问DOM元素)
 |