Przeglądaj źródła

后端会员列表最高聘级

York 3 lat temu
rodzic
commit
a9728f4fc8

+ 623 - 623
backendApi/modules/v1/models/lists/user/IndexList.php

@@ -1,624 +1,624 @@
-<?php
-namespace backendApi\modules\v1\models\lists\user;
-
-use common\helpers\Cache;
-use common\helpers\http\BackendToFrontendApi;
-use common\helpers\user\Info;
-use common\libs\dataList\DataListInterface;
-use common\models\DecRole;
-use common\models\OpenBank;
-use common\models\Region;
-use common\models\User;
-use common\models\UserInfo;
-use common\libs\dataList\column\DateTime;
-use common\libs\dataList\column\YesNo;
-use common\models\UserNetwork;
-use common\models\UserSystem;
-use Yii;
-
-class IndexList extends \common\libs\dataList\DataList implements DataListInterface
-{
-    /**
-     * 列表名称
-     * @return string
-     */
-    public function getListName(){
-        return '会员列表';
-    }
-
-    /**
-     * 列表筛选到的数据
-     */
-    public function dataHandle()
-    {
-        $this->condition .= ' AND UN.USER_ID=UI.USER_ID AND UN.PARENT_UID=UI.CON_UID';
-        $this->listData = User::lists($this->condition, $this->params, [
-            'select' => 'U.*,
-                UI.USER_ID, UI.ZC_PV, UI.CON_UID, UI.REC_UID, UI.CON_NUM, UI.REC_NUM, UI.NETWORK_DEEP, 
-                UI.RELATION_DEEP, UI.SYSTEM_ID, UI.IS_GROUP_LEADER, UI.IS_SYSTEM_LEADER, UI.IS_TEAM, UI.IS_BIND, 
-                UI.IS_TEAM_MAIN, UI.IS_BIND_MAIN, UI.IS_AUTO_WITHDRAW, UI.CLOSE_LOGIN, UI.REG_TYPE, UI.SHOULD_REG_TYPE, 
-                UI.REG_NAME, UI.CREDIT_CODE, UI.PREMISES, UI.LEGAL_PERSON, UI.REG_EXPIRES, UI.STORE_TYPE, UI.INVOICE_BALANCE, 
-                UI.HIGHEST_EMP_LV, UI.CLOSE_LOGIN_AT, UI.PULLED_AT, 
-                UI.GROUP_LEADER_AT, UI.ALLOW_TRANSFER, UI.ALLOW_RECONSUME_SMS, UI.ALLOW_RECONSUME_SMS_TO, 
-                UI.HIGHEST_EMP_LV_PERIOD, UI.TRANSFER_PROP, UI.LOGIN_NUMS, UI.FAIL_NUMS, UI.LAST_LOGIN_IP, 
-                UI.LAST_LOGIN_AT, UI.SHOW_EMP_LV,UN.RELATIVE_LOCATION,
-                CU.USER_NAME CON_USER_NAME,CU.REAL_NAME CON_REAL_NAME,
-                RU.USER_NAME REC_USER_NAME,RU.REAL_NAME REC_REAL_NAME,
-                DU.USER_NAME DEC_USER_NAME
-                ',
-            'orderBy' => 'UI.CREATED_AT DESC, UI.ID DESC',
-            'from' => User::tableName() . ' AS U',
-            'join' => [
-                ['LEFT JOIN', UserInfo::tableName() . ' AS UI', 'UI.USER_ID=U.ID'],
-                ['LEFT JOIN', UserNetwork::tableName() . ' AS UN', 'UI.USER_ID=UN.USER_ID'],
-                ['LEFT JOIN', User::tableName() . ' AS CU', 'UI.CON_UID=CU.ID'],
-                ['LEFT JOIN', User::tableName() . ' AS RU', 'UI.REC_UID=RU.ID'],
-                ['LEFT JOIN', User::tableName() . ' AS DU', 'U.DEC_ID=DU.ID'],
-            ],
-            'page' => $this->page,
-            'pageSize' => $this->pageSize,
-        ]);
-        foreach ($this->listData['list'] as $key => $value) {
-            // 后台访问前台的请求参数
-            if (!$this->isExport && Yii::$app->user->validateAdminAction('user', 'login-to-frontend')) {
-                $urlParams = BackendToFrontendApi::paramsFormat(['id' => $value['USER_ID']]);
-                $urlParamStr = '';
-                foreach ($urlParams as $pKey => $pValue) {
-                    $urlParamStr .= $pKey . '=' . $pValue . '&';
-                }
-                $urlParamStr = substr($urlParamStr, 0, -1);
-                $this->listData['list'][$key]['BTF_URL'] = $urlParamStr;
-            } else {
-                $this->listData['list'][$key]['BTF_URL'] = null;
-            }
-        }
-    }
-
-    /**
-     * 要展示和导出的所有字段
-     * @return array
-     */
-    public function getColumn(){
-        $decLevelConfig = Cache::getDecLevelConfig();
-        $empLevelConfig = Cache::getEmpLevelConfig();
-        $decRoleConfig = DecRole::getAllData();
-        $systemConfig = UserSystem::getAllSystems();
-        $openBankConfig = OpenBank::getAllOpenBank();
-        $regionConfig = Cache::getRegionConfig();
-        if(!$this->columns){
-            $this->columns = [
-                'USER_ID' => null, // 这种传输方式主要是用于索引,因为过滤后的字段可能没有这种ID,但是一些功能的操作还需要用这种ID去关联,例如前台会员列表中的勾选批量状态管理,这里需要的就是USER_ID
-                'BTF_URL' => null,
-                'USER_NAME' => [
-                    'header' => '会员编号',
-                    'headerOther' => ['width' => '150'],
-                ],
-                'REAL_NAME' => [
-                    'header' => '会员姓名',
-                    'headerOther' => [
-                        'width' => '120',
-                    ],
-                    'valueOther' => [
-                        'tag'=>['type'=>'success', 'size' => 'small', 'class'=>'no-border']
-                    ],
-                ],
-                'LOGIN_STATUS_NAME' => [
-                    'header' => '登录状态',
-                    'value' => function($row) {
-                        return $row['ALLOW_LOGIN'] == 1 ? '允许登录' : '禁止登录';
-                    },
-                    'headerOther' => ['width' => '110'],
-                ],
-                'STATUS' => [
-                    'header' => '状态',
-                    'value' => function($row) {
-                        return $row['STATUS'] == 1 ? '激活' : '锁定';
-                    },
-                    'headerOther' => ['width' => '110'],
-                ],
-                'ALLOW_LOGIN' => ['header' => '筛选允许登录','hidden'=>true],
-                'CREATED_AT' => [
-                    'header' => '加入日期',
-                    'value' => function($row) {
-                        return (new DateTime([
-                            'value' => $row['CREATED_AT'],
-                        ]))->result();
-                    },
-                    'headerOther' => ['width' => '170'],
-                ],
-                'PERIOD_AT' => '加入期数',
-                'DEC_LV_NAME' => [
-                    'header' => '实时会员级别',
-                    'headerOther' => [
-                        'width' => '110',
-                    ],
-                    'value' => function($row) use($decLevelConfig) {
-                        return $decLevelConfig[$row['DEC_LV']]['LEVEL_NAME'];
-                    },
-                    'valueOther' => [
-                        'tag'=>['type'=>'warning', 'size' => 'small', 'class'=>'no-border']
-                    ],
-                ],
-                'DEC_LV_UPDATED_AT' => [
-                    'header' => '实时调整日期',
-                    'value' => function($row) {
-                        return (new DateTime([
-                            'value' => $row['DEC_LV_UPDATED_AT'],
-                        ]))->result();
-                    },
-                    'headerOther' => ['width' => '170'],
-                ],
-                'LAST_DEC_LV_NAME' => [
-                    'header' => '结算时会员级别',
-                    'headerOther' => [
-                        'width' => '120',
-                    ],
-                    'value' => function($row) use($decLevelConfig) {
-                        if (!$row['LAST_DEC_LV']) {
-                            return $decLevelConfig[$row['DEC_LV']]['LEVEL_NAME'];
-                        } else {
-                            return $decLevelConfig[$row['LAST_DEC_LV']]['LEVEL_NAME'];
-                        }
-                    },
-                    'valueOther' => [
-                        'tag'=>['type'=>'warning', 'size' => 'small', 'class'=>'no-border']
-                    ],
-                ],
-                'EMP_LV_NAME' => [
-                    'header' => '实时聘级',
-                    'headerOther' => [
-                        'width' => '130',
-                    ],
-                    'value' => function($row) use($empLevelConfig) {
-                        return isset($empLevelConfig[$row['EMP_LV']])?$empLevelConfig[$row['EMP_LV']]['LEVEL_NAME']:'';
-                    },
-                    'valueOther' => [
-                        'tag'=>['type'=>'warning', 'size' => 'small', 'class'=>'no-border']
-                    ],
-                ],
-//                'HIGHEST_EMP_LV_NAME' => [
-//                    'header' => '历史最高聘级',
-//                    'value' => function($row) use($empLevelConfig) {
-//                        if (!$row['HIGHEST_EMP_LV']){
-//                            return $empLevelConfig[$row['EMP_LV']]['LEVEL_NAME'];
-//                        } else {
-//                            return $empLevelConfig[$row['HIGHEST_EMP_LV']]['LEVEL_NAME'];
-//                        }
-//                    },
-//                    'headerOther' => ['width' => '130'],
-//                ],
-//                'HIGHEST_EMP_LV_PERIOD' => [
-//                    'header' => '首次达到历史最高聘级的期数',
-//                    'headerOther' => ['width' => '210'],
-//                ],
-                'REC_USER_NAME' => [
-                    'header' => '推荐编号',
-                    'headerOther' => ['width' => '150'],
-                ],
-                'REC_REAL_NAME' => [
-                    'header' => '推荐姓名',
-                    'headerOther' => ['width' => '100'],
-                ],
-                'CON_USER_NAME' => [
-                    'header' => '安置编号',
-                    'headerOther' => ['width' => '150'],
-                ],
-                'CON_REAL_NAME' => [
-                    'header' => '安置姓名',
-                    'headerOther' => ['width' => '100'],
-                ],
-                'RELATIVE_LOCATION' => [
-                    'header' => '安置区域',
-                    'headerOther' => ['width' => '100'],
-                ],
-                'ID_TYPE' => [
-                    'header' => '证件类型',
-                    'value' => function($row) {
-                        return $row['ID_TYPE'] == 0 ? '身份证' : '';
-                    },
-                ],
-                'ID_CARD' => [
-                    'header' => '证件号码',
-                    'value' => function($row) {
-                        return "\t".$row['ID_CARD'];
-                    },
-                    'headerOther' => ['width' => '180'],
-                ],
-//                'SPOUSE_NAME' => [
-//                    'header' => '配偶姓名',
-//                    'headerOther' => ['width' => '100'],
-//                ],
-//                'SPOUSE_IDCARD' => [
-//                    'header' => '配偶身份证号',
-//                    'value' => function($row) {
-//                        return "\t".$row['SPOUSE_IDCARD'];
-//                    },
-//                    'headerOther' => ['width' => '180'],
-//                ],
-//                'SYSTEM_NAME' => [
-//                    'header' => '体系名称',
-//                    'headerOther' => ['width' => '150'],
-//                    'value' => function($row) use($systemConfig) {
-//                        return $systemConfig[$row['SYSTEM_ID']]['SYSTEM_NAME'] ?? '';
-//                    },
-//                ],
-                'MOBILE' => [
-                    'header' => '手机号码',
-                    'value' => function($row) {
-                        return "\t".$row['MOBILE'];
-                    },
-                    'headerOther' => ['width' => '120'],
-                ],
-                'TEL' => [
-                    'header' => '备用手机号码',
-                    'value' => function($row) {
-                        return "\t".$row['TEL'];
-                    },
-                    'headerOther' => ['width' => '120'],
-                ],
-                'DEC_USER_NAME' => [
-                    'header' => '所属报单中心编号',
-                    'headerOther' => ['width' => '150'],
-                ],
-                'IS_DEC' => [
-                    'header' => '是否报单中心',
-                    'value' => function($row) {
-                        return (new YesNo([
-                            'value' => $row['IS_DEC'],
-                        ]))->result();
-                    },
-                    'headerOther' => function($row) {
-                        return [
-                            'width' => '120',
-                        ];
-                    },
-                    'valueOther' => function($row) {
-                        return [
-                            'tag'=>['type'=>(isset($row['IS_DEC']) && $row['IS_DEC'] )? 'success' : 'info', 'size' => 'small']
-                        ];
-                    },
-                ],
-                'IS_STUDIO' => [
-                    'header' => '是否工作室',
-                    'value' => function($row) {
-                        return (new YesNo([
-                            'value' => $row['IS_STUDIO'],
-                        ]))->result();
-                    },
-                    'headerOther' => function($row) {
-                        return [
-                            'width' => '120',
-                        ];
-                    },
-                    'valueOther' => function($row) {
-                        return [
-                            'tag'=>['type'=>(isset($row['IS_STUDIO']) && $row['IS_STUDIO'] )? 'success' : 'info', 'size' => 'small']
-                        ];
-                    },
-                ],
-                'IS_ATLAS' => [
-                    'header' => '是否显示图谱',
-                    'value' => function($row) {
-                        return (new YesNo([
-                            'value' => $row['IS_ATLAS'],
-                        ]))->result();
-                    },
-                    'headerOther' => function($row) {
-                        return [
-                            'width' => '120',
-                        ];
-                    },
-                    'valueOther' => function($row) {
-                        return [
-                            'tag'=>['type'=>(isset($row['IS_ATLAS']) && $row['IS_ATLAS'] )? 'success' : 'info', 'size' => 'small']
-                        ];
-                    },
-                ],
-                'IS_RECHARGE' => [
-                    'header' => '是否显示充值',
-                    'value' => function($row) {
-                        return (new YesNo([
-                            'value' => $row['IS_RECHARGE'],
-                        ]))->result();
-                    },
-                    'headerOther' => function($row) {
-                        return [
-                            'width' => '120',
-                        ];
-                    },
-                    'valueOther' => function($row) {
-                        return [
-                            'tag'=>['type'=>(isset($row['IS_RECHARGE']) && $row['IS_RECHARGE'] )? 'success' : 'info', 'size' => 'small']
-                        ];
-                    },
-                ],
-                'DEC_ROLE_NAME' => [
-                    'header' => '报单中心级别',
-                    'headerOther' => ['width' => '110'],
-                    'value' => function($row) use($decRoleConfig) {
-                        return $decRoleConfig[$row['DEC_ROLE_ID']]['ROLE_NAME'] ?? '';
-                    },
-                ],
-                'OPEN_BANK_NAME' => [
-                    'header' => '开户银行',
-                    'headerOther' => ['width' => '110'],
-                    'value' => function($row) use($openBankConfig) {
-                        return $openBankConfig[$row['OPEN_BANK']]['BANK_NAME'] ?? '';
-                    },
-                ],
-                'BANK_AREA' => [
-                    'header' => '银行地区',
-                    'value' => function($row) use($regionConfig) {
-                        $province = $regionConfig[$row['BANK_PROVINCE']]['REGION_NAME'] ?? '';
-                        $city = $regionConfig[$row['BANK_CITY']]['REGION_NAME'] ?? '';
-                        $county = $regionConfig[$row['BANK_COUNTY']]['REGION_NAME'] ?? '';
-                        return $province.$city.$county;
-                    },
-                    'showValue' => function($row) use($regionConfig) {
-                        $province = $regionConfig[$row['BANK_PROVINCE']]['REGION_NAME'] ?? '';
-                        $city = $regionConfig[$row['BANK_CITY']]['REGION_NAME'] ?? '';
-                        $county = $regionConfig[$row['BANK_COUNTY']]['REGION_NAME'] ?? '';
-                        return '<div class="addr" title='.$province.$city.$county.'>'.$province.$city.$county.'</div>';
-                    },
-                    'headerOther' => [
-                        'width' => '200'
-                    ],
-                ],
-                'BANK_ADDRESS' => [
-                    'header' => '开户地址',
-                    'headerOther' => ['width' => '250'],
-                    'showValue' => function($row) {
-                        return '<div class="addr" title='.$row['BANK_ADDRESS'].'>'.$row['BANK_ADDRESS'].'</div>';
-                    },
-                ],
-                'BANK_NO' => [
-                    'header' => '银行帐号',
-                    'headerOther' => ['width' => '220'],
-                    'value' => function($row) {
-                        return "\t".$row['BANK_NO'];
-                    },
-                ],
-                'SEX' => '性别',
-                'NATION_NAME' => [
-                    'header' => '民族',
-                    'value' => function($row) {
-                        return \Yii::$app->params['nation'][$row['NATION']]['name'] ?? '';
-                    },
-                ],
-                'AREA' => [
-                    'header' => '常用地址',
-                    'value' => function($row) use($regionConfig) {
-                        $province = $regionConfig[$row['PROVINCE']]['REGION_NAME'] ?? '';
-                        $city = $regionConfig[$row['CITY']]['REGION_NAME'] ?? '';
-                        $county = $regionConfig[$row['COUNTY']]['REGION_NAME'] ?? '';
-                        return $province.$city.$county;
-                    },
-                    'showValue' => function($row) {
-                        $province = $regionConfig[$row['PROVINCE']]['REGION_NAME'] ?? '';
-                        $city = $regionConfig[$row['CITY']]['REGION_NAME'] ?? '';
-                        $county = $regionConfig[$row['COUNTY']]['REGION_NAME'] ?? '';
-                        return '<div class="addr" title='.$province.$city.$county.'>'.$province.$city.$county.'</div>';
-                    },
-                    'headerOther' => [
-                        'width' => '200'
-                    ],
-                ],
-                'ADDRESS' => [
-                    'header' => '身份证地址',
-                    'value' => function($row) {
-                        return $row['ADDRESS'];
-                    },
-                    'showValue' => function($row) {
-                        return '<div class="addr" title='.$row['ADDRESS'].'>'.$row['ADDRESS'].'</div>';
-                    },
-                    'headerOther' => ['width' => '250'],
-                ],
-//                'IS_AUTO_WITHDRAW' => [
-//                    'header' => '提现方式',
-//                    'value' => function($row) {
-//                        return $row['IS_AUTO_WITHDRAW']==0?'手动':'自动';
-//                    },
-//                ],
-                'VERIFIED' => [
-                    'header' => '实名认证',
-                    'value' => function($row) {
-                        return (new YesNo([
-                            'value' => $row['VERIFIED'],
-                        ]))->result();
-                    },
-                    'headerOther' => function($row) {
-                        return [
-                            'width' => '120',
-                        ];
-                    },
-                    'valueOther' => function($row) {
-                        return [
-                            'tag'=>['type'=>(isset($row['VERIFIED']) && $row['VERIFIED']) ? 'success' : 'info', 'size' => 'small']
-                        ];
-                    },
-                ],
-                'VERIFIED_AT' => [
-                    'header' => '实名认证日期',
-                    'value' => function($row) {
-                        return (new DateTime([
-                            'value' => $row['VERIFIED_AT'],
-                        ]))->result();
-                    },
-                    'headerOther' => ['width' => '170'],
-                ],
-//                'IS_DIRECT_SELLER' => [
-//                    'header' => '是否直销员',
-//                    'value' => function($row) {
-//                        return (new YesNo([
-//                            'value' => $row['IS_DIRECT_SELLER'],
-//                        ]))->result();
-//                    },
-//                    'valueOther' => function($row) {
-//                        return [
-//                            'tag'=>['type'=>(isset($row['IS_DIRECT_SELLER']) && $row['IS_DIRECT_SELLER']) ? 'success' : 'info', 'size' => 'small']
-//                        ];
-//                    },
-//                    'headerOther' => function($row) {
-//                        return [
-//                            'width' => '120',
-//                        ];
-//                    },
-//                ],
-//                'IS_SYSTEM_LEADER' => [
-//                    'header' => '是否体系领导人',
-//                    'value' => function($row) {
-//                        return (new YesNo([
-//                            'value' => $row['IS_SYSTEM_LEADER'],
-//                        ]))->result();
-//                    },
-//                    'headerOther' => function($row) {
-//                        return [
-//                            'width' => '120',
-//                        ];
-//                    },
-//                    'valueOther' => function($row) {
-//                        return [
-//                            'tag'=>['type'=>(isset($row['IS_SYSTEM_LEADER']) && $row['IS_SYSTEM_LEADER']) ? 'success' : 'info', 'size' => 'small']
-//                        ];
-//                    },
-//                ],
-//                'IS_GROUP_LEADER' => [
-//                    'header' => '是否团队领导人',
-//                    'value' => function($row) {
-//                        return (new YesNo([
-//                            'value' => $row['IS_GROUP_LEADER'],
-//                        ]))->result();
-//                    },
-//                    'headerOther' => function($row) {
-//                        return [
-//                            'width' => '120',
-//                        ];
-//                    },
-//                    'valueOther' => function($row) {
-//                        return [
-//                            'tag'=>['type'=>(isset($row['IS_GROUP_LEADER']) && $row['IS_GROUP_LEADER'] ) ? 'success' : 'info', 'size' => 'small']
-//                        ];
-//                    },
-//                ],
-                'BIRTHDAY' => [
-                    'header' => '生日',
-                    'value' => function($row) {
-                        return date('Y-m-d', strtotime($row['BIRTHDAY']));
-                    },
-                    'headerOther' => ['width' => '110'],
-                ],
-                'ALLOW_TRANSFER' => [
-                    'header' => '转账功能开启',
-                    'value' => function($row) {
-                        return $row['ALLOW_TRANSFER'] == 1 ? '开启' : '关闭';
-                    },
-                    'headerOther' => function($row) {
-                        return [
-                            'width' => '120',
-                        ];
-                    },
-                    'valueOther' => function($row) {
-                        return [
-                            'tag'=>['type'=>(isset($row['ALLOW_TRANSFER']) && $row['ALLOW_TRANSFER']) ? 'success' : 'info', 'size' => 'small']
-                        ];
-                    },
-                ],
-                'DEC_CLOSED' => [
-                    'header' => '是否关闭报单',
-                    'value' => function($row) {
-                        return (new YesNo([
-                            'value' => $row['DEC_CLOSED'],
-                        ]))->result();
-                    },
-                    'headerOther' => function($row) {
-                        return [
-                            'width' => '120',
-                        ];
-                    },
-                    'valueOther' => function($row) {
-                        return [
-                            'tag'=>['type'=>(isset($row['DEC_CLOSED']) && $row['DEC_CLOSED']) ? 'info' : 'success', 'size' => 'small']
-                        ];
-                    },
-                ],
-                'IS_MODIFY_PASSWORD' => [
-                    'header' => '密码修改状态',
-                    'value' => function($row) {
-                        return $row['IS_MODIFY_PASSWORD'] == 1 ? '开启' : '关闭';
-                    },
-                    'headerOther' => function($row) {
-                        return [
-                            'width' => '120',
-                        ];
-                    },
-                    'valueOther' => function($row) {
-                        return [
-                            'tag'=>['type'=>(isset($row['IS_MODIFY_PASSWORD']) && $row['IS_MODIFY_PASSWORD'] )? 'success' : 'info', 'size' => 'small']
-                        ];
-                    },
-                ],
-            ];
-        }
-        return $this->columns;
-    }
-
-    /**
-     * 前台用于筛选的类型集合
-     * @return mixed
-     */
-    public function getFilterTypes()
-    {
-        if(!$this->filterTypes){
-            $this->filterTypes = [
-                'USER_NAME'=> ['name'=> '会员编号'],
-                'REAL_NAME'=> ['name'=> '会员姓名'],
-//                'ALLOW_LOGIN'=> ['name'=> '允许登录', 'other'=> 'yesOrNo'],
-                'CREATED_AT'=> ['name'=> '加入日期', 'other'=> 'date'],
-                'PERIOD_AT'=> ['name'=> '加入期数'],
-                'DEC_LV_NAME'=> ['name'=> '实时会员级别', 'other'=> 'decLevel'],
-//                'DEC_LV_UPDATED_AT'=> ['name'=> '实时调整日期', 'other'=> 'date'],
-//                'LAST_DEC_LV_NAME'=> ['name'=> '结算时会员级别', 'other'=> 'decLevel'],
-                'EMP_LV_NAME'=> ['name'=> '实时聘级', 'other'=> 'empLevel'],
-//                'HIGHEST_EMP_LV_NAME'=> ['name'=> '历史最高聘级', 'other'=> 'empLevel'],
-//                'HIGHEST_EMP_LV_PERIOD'=> ['name'=> '首次达到历史最高聘级的期数'],
-                'REC_USER_NAME'=> ['name'=> '推荐编号'],
-                'CON_USER_NAME'=> ['name'=> '安置编号'],
-                //'ID_TYPE'=> ['name'=> '证件类型', 'other'=> 'select', 'selectData'=> [['id'=> 0, 'name'=> '身份证']]],
-                'ID_CARD'=> ['name'=> '证件号码'],
-//                'SPOUSE_NAME'=> ['name'=> '配偶姓名'],
-//                'SPOUSE_IDCARD'=> ['name'=> '配偶身份证号'],
-//                'SYSTEM_NAME'=> ['name'=> '体系名称', 'other'=> 'systems'],
-//                'SUB_COM_NAME'=> ['name'=> '所属分公司', 'other'=> 'subCompany'],
-                'MOBILE'=> ['name'=> '手机号码'],
-//                'TEL'=> ['name'=> '备用手机号码'],
-                'DEC_USER_NAME'=> ['name'=> '所属报单中心编号'],
-                'IS_DEC'=> ['name'=> '是否报单中心', 'other'=> 'yesOrNo'],
-                'IS_STUDIO'=> ['name'=> '是否工作室', 'other'=> 'yesOrNo'],
-                'DEC_ROLE_NAME'=> ['name'=> '报单中心级别', 'other'=> 'decRole'],
-//                'OPEN_BANK_NAME'=> ['name'=> '开户银行', 'other'=> 'banks'],
-//                'BANK_AREA'=> ['name'=> '银行地区', 'other'=> 'area'],
-//                'BANK_ADDRESS'=> ['name'=> '开户地址'],
-//                'BANK_NO'=> ['name'=> '银行账号'],
-//                'SEX'=> ['name'=> '性别', 'other'=> 'sex'],
-//                'NATION_NAME'=> ['name'=> '民族', 'other'=> 'nations'],
-                'AREA'=> ['name'=> '常用地址', 'other'=> 'area'],
-                'STATUS'=> ['name'=> '激活状态', 'other'=> 'select', 'selectData'=> [['id'=> 0, 'name'=> '锁定'],['id'=> 1, 'name'=> '激活']]],
-//                'ADDRESS'=> ['name'=> '身份证地址'],
-//                'IS_AUTO_WITHDRAW'=> [
-//                    'isUserTable'=> false,
-//                    'name'=> '提现方式',
-//                    'other'=> 'select',
-//                    'selectData'=> [['id'=> 0, 'name'=> '手动'], ['id'=> 1, 'name'=> '自动']]
-//                ],
-//                'VERIFIED'=> ['name'=> '实名认证', 'other'=> 'yesOrNo'],
-//                'VERIFIED_AT'=> ['name'=> '实名认证日期', 'other'=> 'date'],
-//                'IS_DIRECT_SELLER'=> ['name'=> '是否直销员', 'other'=> 'yesOrNo'],
-//                'IS_SYSTEM_LEADER'=> ['name'=> '是否体系领导人', 'other'=> 'yesOrNo'],
-//                'IS_GROUP_LEADER'=> ['name'=> '是否团队领导人', 'other'=> 'yesOrNo'],
-//                'ALLOW_TRANSFER'=> ['name'=> '转账功能开启', 'other'=> 'select', 'selectData'=> [['id'=> 0, 'name'=> '关闭'],['id'=> 1, 'name'=> '开启']]],
-//                'DEC_CLOSED'=> ['name'=> '是否关闭报单', 'other'=> 'yesOrNo'],
-            ];
-        }
-        return $this->filterTypes;
-    }
+<?php
+namespace backendApi\modules\v1\models\lists\user;
+
+use common\helpers\Cache;
+use common\helpers\http\BackendToFrontendApi;
+use common\helpers\user\Info;
+use common\libs\dataList\DataListInterface;
+use common\models\DecRole;
+use common\models\OpenBank;
+use common\models\Region;
+use common\models\User;
+use common\models\UserInfo;
+use common\libs\dataList\column\DateTime;
+use common\libs\dataList\column\YesNo;
+use common\models\UserNetwork;
+use common\models\UserSystem;
+use Yii;
+
+class IndexList extends \common\libs\dataList\DataList implements DataListInterface
+{
+    /**
+     * 列表名称
+     * @return string
+     */
+    public function getListName(){
+        return '会员列表';
+    }
+
+    /**
+     * 列表筛选到的数据
+     */
+    public function dataHandle()
+    {
+        $this->condition .= ' AND UN.USER_ID=UI.USER_ID AND UN.PARENT_UID=UI.CON_UID';
+        $this->listData = User::lists($this->condition, $this->params, [
+            'select' => 'U.*,
+                UI.USER_ID, UI.ZC_PV, UI.CON_UID, UI.REC_UID, UI.CON_NUM, UI.REC_NUM, UI.NETWORK_DEEP, 
+                UI.RELATION_DEEP, UI.SYSTEM_ID, UI.IS_GROUP_LEADER, UI.IS_SYSTEM_LEADER, UI.IS_TEAM, UI.IS_BIND, 
+                UI.IS_TEAM_MAIN, UI.IS_BIND_MAIN, UI.IS_AUTO_WITHDRAW, UI.CLOSE_LOGIN, UI.REG_TYPE, UI.SHOULD_REG_TYPE, 
+                UI.REG_NAME, UI.CREDIT_CODE, UI.PREMISES, UI.LEGAL_PERSON, UI.REG_EXPIRES, UI.STORE_TYPE, UI.INVOICE_BALANCE, 
+                UI.HIGHEST_EMP_LV, UI.CLOSE_LOGIN_AT, UI.PULLED_AT, 
+                UI.GROUP_LEADER_AT, UI.ALLOW_TRANSFER, UI.ALLOW_RECONSUME_SMS, UI.ALLOW_RECONSUME_SMS_TO, 
+                UI.HIGHEST_EMP_LV_PERIOD, UI.TRANSFER_PROP, UI.LOGIN_NUMS, UI.FAIL_NUMS, UI.LAST_LOGIN_IP, 
+                UI.LAST_LOGIN_AT, UI.SHOW_EMP_LV,UN.RELATIVE_LOCATION,
+                CU.USER_NAME CON_USER_NAME,CU.REAL_NAME CON_REAL_NAME,
+                RU.USER_NAME REC_USER_NAME,RU.REAL_NAME REC_REAL_NAME,
+                DU.USER_NAME DEC_USER_NAME
+                ',
+            'orderBy' => 'UI.CREATED_AT DESC, UI.ID DESC',
+            'from' => User::tableName() . ' AS U',
+            'join' => [
+                ['LEFT JOIN', UserInfo::tableName() . ' AS UI', 'UI.USER_ID=U.ID'],
+                ['LEFT JOIN', UserNetwork::tableName() . ' AS UN', 'UI.USER_ID=UN.USER_ID'],
+                ['LEFT JOIN', User::tableName() . ' AS CU', 'UI.CON_UID=CU.ID'],
+                ['LEFT JOIN', User::tableName() . ' AS RU', 'UI.REC_UID=RU.ID'],
+                ['LEFT JOIN', User::tableName() . ' AS DU', 'U.DEC_ID=DU.ID'],
+            ],
+            'page' => $this->page,
+            'pageSize' => $this->pageSize,
+        ]);
+        foreach ($this->listData['list'] as $key => $value) {
+            // 后台访问前台的请求参数
+            if (!$this->isExport && Yii::$app->user->validateAdminAction('user', 'login-to-frontend')) {
+                $urlParams = BackendToFrontendApi::paramsFormat(['id' => $value['USER_ID']]);
+                $urlParamStr = '';
+                foreach ($urlParams as $pKey => $pValue) {
+                    $urlParamStr .= $pKey . '=' . $pValue . '&';
+                }
+                $urlParamStr = substr($urlParamStr, 0, -1);
+                $this->listData['list'][$key]['BTF_URL'] = $urlParamStr;
+            } else {
+                $this->listData['list'][$key]['BTF_URL'] = null;
+            }
+        }
+    }
+
+    /**
+     * 要展示和导出的所有字段
+     * @return array
+     */
+    public function getColumn(){
+        $decLevelConfig = Cache::getDecLevelConfig();
+        $empLevelConfig = Cache::getEmpLevelConfig();
+        $decRoleConfig = DecRole::getAllData();
+        $systemConfig = UserSystem::getAllSystems();
+        $openBankConfig = OpenBank::getAllOpenBank();
+        $regionConfig = Cache::getRegionConfig();
+        if(!$this->columns){
+            $this->columns = [
+                'USER_ID' => null, // 这种传输方式主要是用于索引,因为过滤后的字段可能没有这种ID,但是一些功能的操作还需要用这种ID去关联,例如前台会员列表中的勾选批量状态管理,这里需要的就是USER_ID
+                'BTF_URL' => null,
+                'USER_NAME' => [
+                    'header' => '会员编号',
+                    'headerOther' => ['width' => '150'],
+                ],
+                'REAL_NAME' => [
+                    'header' => '会员姓名',
+                    'headerOther' => [
+                        'width' => '120',
+                    ],
+                    'valueOther' => [
+                        'tag'=>['type'=>'success', 'size' => 'small', 'class'=>'no-border']
+                    ],
+                ],
+                'LOGIN_STATUS_NAME' => [
+                    'header' => '登录状态',
+                    'value' => function($row) {
+                        return $row['ALLOW_LOGIN'] == 1 ? '允许登录' : '禁止登录';
+                    },
+                    'headerOther' => ['width' => '110'],
+                ],
+                'STATUS' => [
+                    'header' => '状态',
+                    'value' => function($row) {
+                        return $row['STATUS'] == 1 ? '激活' : '锁定';
+                    },
+                    'headerOther' => ['width' => '110'],
+                ],
+                'ALLOW_LOGIN' => ['header' => '筛选允许登录','hidden'=>true],
+                'CREATED_AT' => [
+                    'header' => '加入日期',
+                    'value' => function($row) {
+                        return (new DateTime([
+                            'value' => $row['CREATED_AT'],
+                        ]))->result();
+                    },
+                    'headerOther' => ['width' => '170'],
+                ],
+                'PERIOD_AT' => '加入期数',
+                'DEC_LV_NAME' => [
+                    'header' => '实时会员级别',
+                    'headerOther' => [
+                        'width' => '110',
+                    ],
+                    'value' => function($row) use($decLevelConfig) {
+                        return $decLevelConfig[$row['DEC_LV']]['LEVEL_NAME'];
+                    },
+                    'valueOther' => [
+                        'tag'=>['type'=>'warning', 'size' => 'small', 'class'=>'no-border']
+                    ],
+                ],
+                'DEC_LV_UPDATED_AT' => [
+                    'header' => '实时调整日期',
+                    'value' => function($row) {
+                        return (new DateTime([
+                            'value' => $row['DEC_LV_UPDATED_AT'],
+                        ]))->result();
+                    },
+                    'headerOther' => ['width' => '170'],
+                ],
+                'LAST_DEC_LV_NAME' => [
+                    'header' => '结算时会员级别',
+                    'headerOther' => [
+                        'width' => '120',
+                    ],
+                    'value' => function($row) use($decLevelConfig) {
+                        if (!$row['LAST_DEC_LV']) {
+                            return $decLevelConfig[$row['DEC_LV']]['LEVEL_NAME'];
+                        } else {
+                            return $decLevelConfig[$row['LAST_DEC_LV']]['LEVEL_NAME'];
+                        }
+                    },
+                    'valueOther' => [
+                        'tag'=>['type'=>'warning', 'size' => 'small', 'class'=>'no-border']
+                    ],
+                ],
+                'EMP_LV_NAME' => [
+                    'header' => '最高聘级',
+                    'headerOther' => [
+                        'width' => '130',
+                    ],
+                    'value' => function($row) use($empLevelConfig) {
+                        return isset($empLevelConfig[$row['EMP_LV']])?$empLevelConfig[$row['EMP_LV']]['LEVEL_NAME']:'';
+                    },
+                    'valueOther' => [
+                        'tag'=>['type'=>'warning', 'size' => 'small', 'class'=>'no-border']
+                    ],
+                ],
+//                'HIGHEST_EMP_LV_NAME' => [
+//                    'header' => '历史最高聘级',
+//                    'value' => function($row) use($empLevelConfig) {
+//                        if (!$row['HIGHEST_EMP_LV']){
+//                            return $empLevelConfig[$row['EMP_LV']]['LEVEL_NAME'];
+//                        } else {
+//                            return $empLevelConfig[$row['HIGHEST_EMP_LV']]['LEVEL_NAME'];
+//                        }
+//                    },
+//                    'headerOther' => ['width' => '130'],
+//                ],
+//                'HIGHEST_EMP_LV_PERIOD' => [
+//                    'header' => '首次达到历史最高聘级的期数',
+//                    'headerOther' => ['width' => '210'],
+//                ],
+                'REC_USER_NAME' => [
+                    'header' => '推荐编号',
+                    'headerOther' => ['width' => '150'],
+                ],
+                'REC_REAL_NAME' => [
+                    'header' => '推荐姓名',
+                    'headerOther' => ['width' => '100'],
+                ],
+                'CON_USER_NAME' => [
+                    'header' => '安置编号',
+                    'headerOther' => ['width' => '150'],
+                ],
+                'CON_REAL_NAME' => [
+                    'header' => '安置姓名',
+                    'headerOther' => ['width' => '100'],
+                ],
+                'RELATIVE_LOCATION' => [
+                    'header' => '安置区域',
+                    'headerOther' => ['width' => '100'],
+                ],
+                'ID_TYPE' => [
+                    'header' => '证件类型',
+                    'value' => function($row) {
+                        return $row['ID_TYPE'] == 0 ? '身份证' : '';
+                    },
+                ],
+                'ID_CARD' => [
+                    'header' => '证件号码',
+                    'value' => function($row) {
+                        return "\t".$row['ID_CARD'];
+                    },
+                    'headerOther' => ['width' => '180'],
+                ],
+//                'SPOUSE_NAME' => [
+//                    'header' => '配偶姓名',
+//                    'headerOther' => ['width' => '100'],
+//                ],
+//                'SPOUSE_IDCARD' => [
+//                    'header' => '配偶身份证号',
+//                    'value' => function($row) {
+//                        return "\t".$row['SPOUSE_IDCARD'];
+//                    },
+//                    'headerOther' => ['width' => '180'],
+//                ],
+//                'SYSTEM_NAME' => [
+//                    'header' => '体系名称',
+//                    'headerOther' => ['width' => '150'],
+//                    'value' => function($row) use($systemConfig) {
+//                        return $systemConfig[$row['SYSTEM_ID']]['SYSTEM_NAME'] ?? '';
+//                    },
+//                ],
+                'MOBILE' => [
+                    'header' => '手机号码',
+                    'value' => function($row) {
+                        return "\t".$row['MOBILE'];
+                    },
+                    'headerOther' => ['width' => '120'],
+                ],
+                'TEL' => [
+                    'header' => '备用手机号码',
+                    'value' => function($row) {
+                        return "\t".$row['TEL'];
+                    },
+                    'headerOther' => ['width' => '120'],
+                ],
+                'DEC_USER_NAME' => [
+                    'header' => '所属报单中心编号',
+                    'headerOther' => ['width' => '150'],
+                ],
+                'IS_DEC' => [
+                    'header' => '是否报单中心',
+                    'value' => function($row) {
+                        return (new YesNo([
+                            'value' => $row['IS_DEC'],
+                        ]))->result();
+                    },
+                    'headerOther' => function($row) {
+                        return [
+                            'width' => '120',
+                        ];
+                    },
+                    'valueOther' => function($row) {
+                        return [
+                            'tag'=>['type'=>(isset($row['IS_DEC']) && $row['IS_DEC'] )? 'success' : 'info', 'size' => 'small']
+                        ];
+                    },
+                ],
+                'IS_STUDIO' => [
+                    'header' => '是否工作室',
+                    'value' => function($row) {
+                        return (new YesNo([
+                            'value' => $row['IS_STUDIO'],
+                        ]))->result();
+                    },
+                    'headerOther' => function($row) {
+                        return [
+                            'width' => '120',
+                        ];
+                    },
+                    'valueOther' => function($row) {
+                        return [
+                            'tag'=>['type'=>(isset($row['IS_STUDIO']) && $row['IS_STUDIO'] )? 'success' : 'info', 'size' => 'small']
+                        ];
+                    },
+                ],
+                'IS_ATLAS' => [
+                    'header' => '是否显示图谱',
+                    'value' => function($row) {
+                        return (new YesNo([
+                            'value' => $row['IS_ATLAS'],
+                        ]))->result();
+                    },
+                    'headerOther' => function($row) {
+                        return [
+                            'width' => '120',
+                        ];
+                    },
+                    'valueOther' => function($row) {
+                        return [
+                            'tag'=>['type'=>(isset($row['IS_ATLAS']) && $row['IS_ATLAS'] )? 'success' : 'info', 'size' => 'small']
+                        ];
+                    },
+                ],
+                'IS_RECHARGE' => [
+                    'header' => '是否显示充值',
+                    'value' => function($row) {
+                        return (new YesNo([
+                            'value' => $row['IS_RECHARGE'],
+                        ]))->result();
+                    },
+                    'headerOther' => function($row) {
+                        return [
+                            'width' => '120',
+                        ];
+                    },
+                    'valueOther' => function($row) {
+                        return [
+                            'tag'=>['type'=>(isset($row['IS_RECHARGE']) && $row['IS_RECHARGE'] )? 'success' : 'info', 'size' => 'small']
+                        ];
+                    },
+                ],
+                'DEC_ROLE_NAME' => [
+                    'header' => '报单中心级别',
+                    'headerOther' => ['width' => '110'],
+                    'value' => function($row) use($decRoleConfig) {
+                        return $decRoleConfig[$row['DEC_ROLE_ID']]['ROLE_NAME'] ?? '';
+                    },
+                ],
+                'OPEN_BANK_NAME' => [
+                    'header' => '开户银行',
+                    'headerOther' => ['width' => '110'],
+                    'value' => function($row) use($openBankConfig) {
+                        return $openBankConfig[$row['OPEN_BANK']]['BANK_NAME'] ?? '';
+                    },
+                ],
+                'BANK_AREA' => [
+                    'header' => '银行地区',
+                    'value' => function($row) use($regionConfig) {
+                        $province = $regionConfig[$row['BANK_PROVINCE']]['REGION_NAME'] ?? '';
+                        $city = $regionConfig[$row['BANK_CITY']]['REGION_NAME'] ?? '';
+                        $county = $regionConfig[$row['BANK_COUNTY']]['REGION_NAME'] ?? '';
+                        return $province.$city.$county;
+                    },
+                    'showValue' => function($row) use($regionConfig) {
+                        $province = $regionConfig[$row['BANK_PROVINCE']]['REGION_NAME'] ?? '';
+                        $city = $regionConfig[$row['BANK_CITY']]['REGION_NAME'] ?? '';
+                        $county = $regionConfig[$row['BANK_COUNTY']]['REGION_NAME'] ?? '';
+                        return '<div class="addr" title='.$province.$city.$county.'>'.$province.$city.$county.'</div>';
+                    },
+                    'headerOther' => [
+                        'width' => '200'
+                    ],
+                ],
+                'BANK_ADDRESS' => [
+                    'header' => '开户地址',
+                    'headerOther' => ['width' => '250'],
+                    'showValue' => function($row) {
+                        return '<div class="addr" title='.$row['BANK_ADDRESS'].'>'.$row['BANK_ADDRESS'].'</div>';
+                    },
+                ],
+                'BANK_NO' => [
+                    'header' => '银行帐号',
+                    'headerOther' => ['width' => '220'],
+                    'value' => function($row) {
+                        return "\t".$row['BANK_NO'];
+                    },
+                ],
+                'SEX' => '性别',
+                'NATION_NAME' => [
+                    'header' => '民族',
+                    'value' => function($row) {
+                        return \Yii::$app->params['nation'][$row['NATION']]['name'] ?? '';
+                    },
+                ],
+                'AREA' => [
+                    'header' => '常用地址',
+                    'value' => function($row) use($regionConfig) {
+                        $province = $regionConfig[$row['PROVINCE']]['REGION_NAME'] ?? '';
+                        $city = $regionConfig[$row['CITY']]['REGION_NAME'] ?? '';
+                        $county = $regionConfig[$row['COUNTY']]['REGION_NAME'] ?? '';
+                        return $province.$city.$county;
+                    },
+                    'showValue' => function($row) {
+                        $province = $regionConfig[$row['PROVINCE']]['REGION_NAME'] ?? '';
+                        $city = $regionConfig[$row['CITY']]['REGION_NAME'] ?? '';
+                        $county = $regionConfig[$row['COUNTY']]['REGION_NAME'] ?? '';
+                        return '<div class="addr" title='.$province.$city.$county.'>'.$province.$city.$county.'</div>';
+                    },
+                    'headerOther' => [
+                        'width' => '200'
+                    ],
+                ],
+                'ADDRESS' => [
+                    'header' => '身份证地址',
+                    'value' => function($row) {
+                        return $row['ADDRESS'];
+                    },
+                    'showValue' => function($row) {
+                        return '<div class="addr" title='.$row['ADDRESS'].'>'.$row['ADDRESS'].'</div>';
+                    },
+                    'headerOther' => ['width' => '250'],
+                ],
+//                'IS_AUTO_WITHDRAW' => [
+//                    'header' => '提现方式',
+//                    'value' => function($row) {
+//                        return $row['IS_AUTO_WITHDRAW']==0?'手动':'自动';
+//                    },
+//                ],
+                'VERIFIED' => [
+                    'header' => '实名认证',
+                    'value' => function($row) {
+                        return (new YesNo([
+                            'value' => $row['VERIFIED'],
+                        ]))->result();
+                    },
+                    'headerOther' => function($row) {
+                        return [
+                            'width' => '120',
+                        ];
+                    },
+                    'valueOther' => function($row) {
+                        return [
+                            'tag'=>['type'=>(isset($row['VERIFIED']) && $row['VERIFIED']) ? 'success' : 'info', 'size' => 'small']
+                        ];
+                    },
+                ],
+                'VERIFIED_AT' => [
+                    'header' => '实名认证日期',
+                    'value' => function($row) {
+                        return (new DateTime([
+                            'value' => $row['VERIFIED_AT'],
+                        ]))->result();
+                    },
+                    'headerOther' => ['width' => '170'],
+                ],
+//                'IS_DIRECT_SELLER' => [
+//                    'header' => '是否直销员',
+//                    'value' => function($row) {
+//                        return (new YesNo([
+//                            'value' => $row['IS_DIRECT_SELLER'],
+//                        ]))->result();
+//                    },
+//                    'valueOther' => function($row) {
+//                        return [
+//                            'tag'=>['type'=>(isset($row['IS_DIRECT_SELLER']) && $row['IS_DIRECT_SELLER']) ? 'success' : 'info', 'size' => 'small']
+//                        ];
+//                    },
+//                    'headerOther' => function($row) {
+//                        return [
+//                            'width' => '120',
+//                        ];
+//                    },
+//                ],
+//                'IS_SYSTEM_LEADER' => [
+//                    'header' => '是否体系领导人',
+//                    'value' => function($row) {
+//                        return (new YesNo([
+//                            'value' => $row['IS_SYSTEM_LEADER'],
+//                        ]))->result();
+//                    },
+//                    'headerOther' => function($row) {
+//                        return [
+//                            'width' => '120',
+//                        ];
+//                    },
+//                    'valueOther' => function($row) {
+//                        return [
+//                            'tag'=>['type'=>(isset($row['IS_SYSTEM_LEADER']) && $row['IS_SYSTEM_LEADER']) ? 'success' : 'info', 'size' => 'small']
+//                        ];
+//                    },
+//                ],
+//                'IS_GROUP_LEADER' => [
+//                    'header' => '是否团队领导人',
+//                    'value' => function($row) {
+//                        return (new YesNo([
+//                            'value' => $row['IS_GROUP_LEADER'],
+//                        ]))->result();
+//                    },
+//                    'headerOther' => function($row) {
+//                        return [
+//                            'width' => '120',
+//                        ];
+//                    },
+//                    'valueOther' => function($row) {
+//                        return [
+//                            'tag'=>['type'=>(isset($row['IS_GROUP_LEADER']) && $row['IS_GROUP_LEADER'] ) ? 'success' : 'info', 'size' => 'small']
+//                        ];
+//                    },
+//                ],
+                'BIRTHDAY' => [
+                    'header' => '生日',
+                    'value' => function($row) {
+                        return date('Y-m-d', strtotime($row['BIRTHDAY']));
+                    },
+                    'headerOther' => ['width' => '110'],
+                ],
+                'ALLOW_TRANSFER' => [
+                    'header' => '转账功能开启',
+                    'value' => function($row) {
+                        return $row['ALLOW_TRANSFER'] == 1 ? '开启' : '关闭';
+                    },
+                    'headerOther' => function($row) {
+                        return [
+                            'width' => '120',
+                        ];
+                    },
+                    'valueOther' => function($row) {
+                        return [
+                            'tag'=>['type'=>(isset($row['ALLOW_TRANSFER']) && $row['ALLOW_TRANSFER']) ? 'success' : 'info', 'size' => 'small']
+                        ];
+                    },
+                ],
+                'DEC_CLOSED' => [
+                    'header' => '是否关闭报单',
+                    'value' => function($row) {
+                        return (new YesNo([
+                            'value' => $row['DEC_CLOSED'],
+                        ]))->result();
+                    },
+                    'headerOther' => function($row) {
+                        return [
+                            'width' => '120',
+                        ];
+                    },
+                    'valueOther' => function($row) {
+                        return [
+                            'tag'=>['type'=>(isset($row['DEC_CLOSED']) && $row['DEC_CLOSED']) ? 'info' : 'success', 'size' => 'small']
+                        ];
+                    },
+                ],
+                'IS_MODIFY_PASSWORD' => [
+                    'header' => '密码修改状态',
+                    'value' => function($row) {
+                        return $row['IS_MODIFY_PASSWORD'] == 1 ? '开启' : '关闭';
+                    },
+                    'headerOther' => function($row) {
+                        return [
+                            'width' => '120',
+                        ];
+                    },
+                    'valueOther' => function($row) {
+                        return [
+                            'tag'=>['type'=>(isset($row['IS_MODIFY_PASSWORD']) && $row['IS_MODIFY_PASSWORD'] )? 'success' : 'info', 'size' => 'small']
+                        ];
+                    },
+                ],
+            ];
+        }
+        return $this->columns;
+    }
+
+    /**
+     * 前台用于筛选的类型集合
+     * @return mixed
+     */
+    public function getFilterTypes()
+    {
+        if(!$this->filterTypes){
+            $this->filterTypes = [
+                'USER_NAME'=> ['name'=> '会员编号'],
+                'REAL_NAME'=> ['name'=> '会员姓名'],
+//                'ALLOW_LOGIN'=> ['name'=> '允许登录', 'other'=> 'yesOrNo'],
+                'CREATED_AT'=> ['name'=> '加入日期', 'other'=> 'date'],
+                'PERIOD_AT'=> ['name'=> '加入期数'],
+                'DEC_LV_NAME'=> ['name'=> '实时会员级别', 'other'=> 'decLevel'],
+//                'DEC_LV_UPDATED_AT'=> ['name'=> '实时调整日期', 'other'=> 'date'],
+//                'LAST_DEC_LV_NAME'=> ['name'=> '结算时会员级别', 'other'=> 'decLevel'],
+                'EMP_LV_NAME'=> ['name'=> '最高聘级', 'other'=> 'empLevel'],
+//                'HIGHEST_EMP_LV_NAME'=> ['name'=> '历史最高聘级', 'other'=> 'empLevel'],
+//                'HIGHEST_EMP_LV_PERIOD'=> ['name'=> '首次达到历史最高聘级的期数'],
+                'REC_USER_NAME'=> ['name'=> '推荐编号'],
+                'CON_USER_NAME'=> ['name'=> '安置编号'],
+                //'ID_TYPE'=> ['name'=> '证件类型', 'other'=> 'select', 'selectData'=> [['id'=> 0, 'name'=> '身份证']]],
+                'ID_CARD'=> ['name'=> '证件号码'],
+//                'SPOUSE_NAME'=> ['name'=> '配偶姓名'],
+//                'SPOUSE_IDCARD'=> ['name'=> '配偶身份证号'],
+//                'SYSTEM_NAME'=> ['name'=> '体系名称', 'other'=> 'systems'],
+//                'SUB_COM_NAME'=> ['name'=> '所属分公司', 'other'=> 'subCompany'],
+                'MOBILE'=> ['name'=> '手机号码'],
+//                'TEL'=> ['name'=> '备用手机号码'],
+                'DEC_USER_NAME'=> ['name'=> '所属报单中心编号'],
+                'IS_DEC'=> ['name'=> '是否报单中心', 'other'=> 'yesOrNo'],
+                'IS_STUDIO'=> ['name'=> '是否工作室', 'other'=> 'yesOrNo'],
+                'DEC_ROLE_NAME'=> ['name'=> '报单中心级别', 'other'=> 'decRole'],
+//                'OPEN_BANK_NAME'=> ['name'=> '开户银行', 'other'=> 'banks'],
+//                'BANK_AREA'=> ['name'=> '银行地区', 'other'=> 'area'],
+//                'BANK_ADDRESS'=> ['name'=> '开户地址'],
+//                'BANK_NO'=> ['name'=> '银行账号'],
+//                'SEX'=> ['name'=> '性别', 'other'=> 'sex'],
+//                'NATION_NAME'=> ['name'=> '民族', 'other'=> 'nations'],
+                'AREA'=> ['name'=> '常用地址', 'other'=> 'area'],
+                'STATUS'=> ['name'=> '激活状态', 'other'=> 'select', 'selectData'=> [['id'=> 0, 'name'=> '锁定'],['id'=> 1, 'name'=> '激活']]],
+//                'ADDRESS'=> ['name'=> '身份证地址'],
+//                'IS_AUTO_WITHDRAW'=> [
+//                    'isUserTable'=> false,
+//                    'name'=> '提现方式',
+//                    'other'=> 'select',
+//                    'selectData'=> [['id'=> 0, 'name'=> '手动'], ['id'=> 1, 'name'=> '自动']]
+//                ],
+//                'VERIFIED'=> ['name'=> '实名认证', 'other'=> 'yesOrNo'],
+//                'VERIFIED_AT'=> ['name'=> '实名认证日期', 'other'=> 'date'],
+//                'IS_DIRECT_SELLER'=> ['name'=> '是否直销员', 'other'=> 'yesOrNo'],
+//                'IS_SYSTEM_LEADER'=> ['name'=> '是否体系领导人', 'other'=> 'yesOrNo'],
+//                'IS_GROUP_LEADER'=> ['name'=> '是否团队领导人', 'other'=> 'yesOrNo'],
+//                'ALLOW_TRANSFER'=> ['name'=> '转账功能开启', 'other'=> 'select', 'selectData'=> [['id'=> 0, 'name'=> '关闭'],['id'=> 1, 'name'=> '开启']]],
+//                'DEC_CLOSED'=> ['name'=> '是否关闭报单', 'other'=> 'yesOrNo'],
+            ];
+        }
+        return $this->filterTypes;
+    }
 }

+ 253 - 253
backendEle/src/utils/network.js

@@ -1,253 +1,253 @@
-import {ACCESS_TOKEN_PREFIX} from './config'
-import userInfo from './userInfo'
-import tool from './tool'
-import axiosObj from './axiosPlugin'
-import ElementUI from 'element-ui'
-import baseInfo from './baseInfo'
-
-const updateToken = function (callback, errorBack) {
-  if (!userInfo.hasLogin()) {
-    //console.log('尚未登录');
-    //userInfo.clear();
-    errorBack('E40004')
-    return false
-  }
-  // 比较本地accessToken是否还有效
-  if (userInfo.accessToken() && userInfo.accessTokenExpiresIn() && parseInt(userInfo.accessTokenExpiresIn()) + parseInt(userInfo.accessTokenUpdateAt()) - 30 > parseInt(tool.getTimestamp())) {
-    // 有效
-    //console.log('accessToken有效');
-    callback(userInfo.accessToken())
-    return true
-  } else {
-    // 已失效,去更新
-    let refreshToken = userInfo.refreshToken()
-    let refreshTokenExpiresIn = userInfo.refreshTokenExpiresIn()
-    let refreshTokenUpdateAt = userInfo.refreshTokenUpdateAt()
-    if (refreshToken && refreshTokenExpiresIn && parseInt(refreshTokenExpiresIn) - 30 + parseInt(refreshTokenUpdateAt) > parseInt(tool.getTimestamp())) {
-      // 有效,去更新
-      axiosObj.get(`oauth/refresh-token?refresh-token=${refreshToken}`).then(response => {
-        // 更新本地accessToken
-        userInfo.accessToken(response.accessToken)
-        userInfo.accessTokenExpiresIn(response.accessTokenExpiresIn)
-        userInfo.accessTokenUpdateAt(response.accessTokenUpdateAt)
-        userInfo.refreshToken(response.refreshToken)
-        userInfo.refreshTokenExpiresIn(response.refreshTokenExpiresIn)
-        userInfo.refreshTokenUpdateAt(response.refreshTokenUpdateAt)
-        // 成功
-        //console.log('accessToken更新成功,refreshToken更新为:'+userInfo.refreshToken());
-        //console.log('accessToken更新成功,refreshToken的更新时间为:'+tool.formatDate(userInfo.refreshTokenUpdateAt()));
-        //console.log('accessToken更新成功,refreshToken的有效时间为:'+userInfo.refreshTokenExpiresIn());
-        callback(userInfo.accessToken())
-        return true
-      }).catch(error => {
-        //userInfo.clear();
-        //console.log(error);
-        errorBack('E40001')
-        return false
-      })
-    } else {
-      //console.log('refreshToken已失效');
-      userInfo.clear()
-      // 失效
-      errorBack('E40003')
-      return false
-    }
-  }
-}
-
-const network = {
-  loginGetAccessToken(adminName, password, verifyCode, pageId) {
-    let promise = new Promise((resolve, reject) => {
-      // if(userInfo.hasLogin()){
-      //     reject('E40005');
-      //     return false;
-      // }
-      axiosObj.post(`oauth/login?page_id=${pageId}`, {
-        LoginForm: {
-          adminName,
-          password,
-          verifyCode,
-        }
-      }).then(response => {
-        // 更新本地accessToken
-        userInfo.updateLoginAllInfo(response)
-        // 成功
-        resolve(response)
-      }).catch(error => {
-        //console.log('登录获取数据错误');
-        userInfo.clear()
-        reject(error)
-      })
-    })
-    return promise
-  },
-  updateToken() {
-    let promise = new Promise((resolve, reject) => {
-      updateToken(function (accessToken) {
-        resolve(accessToken)
-      }, function (error) {
-        reject(error)
-      })
-    })
-    return promise
-  },
-  getUserInfo() {
-    let promise = new Promise((resolve, reject) => {
-      updateToken(function (accessToken) {
-        axiosObj.get(`oauth/info`, {
-          headers: {
-            'Authorization': ACCESS_TOKEN_PREFIX + accessToken,
-          }
-        }).then(response => {
-          // 更新本地userInfo
-          userInfo.userId(response.ID)
-          userInfo.adminName(response.ADMIN_NAME)
-          userInfo.baseData({roleId: response.ROLE_ID})
-          // 成功
-          resolve(response)
-        }).catch(error => {
-          reject(error)
-        })
-      }, function (error) {
-        reject(error)
-      })
-    })
-    return promise
-  },
-  getBaseInfo() {
-    let promise = new Promise((resolve, reject) => {
-      updateToken(function (accessToken) {
-        axiosObj.get(`site/base-info`, {
-          headers: {
-            'Authorization': ACCESS_TOKEN_PREFIX + accessToken,
-          }
-        }).then(response => {
-          // 更新本地baseInfo
-          baseInfo.set(response)
-          // 成功
-          resolve(response)
-        }).catch(error => {
-          reject(error)
-        })
-      }, function (error) {
-        reject(error)
-      })
-    })
-    return promise
-  },
-  getData(route, data = null) {
-    if (data === null) {
-      data = {}
-    }
-    let promise = new Promise((resolve, reject) => {
-      updateToken(function (accessToken) {
-        axiosObj.get(`${route}`, {
-          params: data,
-          headers: {
-            'Authorization': ACCESS_TOKEN_PREFIX + accessToken,
-          }
-        }).then(response => {
-          // 成功
-          resolve(response)
-        }).catch(error => {
-          error = tool.errorHandle(error)
-          ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
-          reject(error)
-        })
-      }, function (error) {
-        error = tool.errorHandle(error)
-        ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
-        reject(error)
-      })
-    })
-    return promise
-  },
-  postData(route, data) {
-    let promise = new Promise((resolve, reject) => {
-      updateToken(function (accessToken) {
-        axiosObj.post(`${route}`, data, {
-          headers: {
-            'Authorization': ACCESS_TOKEN_PREFIX + accessToken,
-          }
-        }).then(response => {
-          // 成功
-          resolve(response)
-        }).catch(error => {
-          error = tool.errorHandle(error)
-          ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
-          reject(error)
-        })
-      }, function (error) {
-        error = tool.errorHandle(error)
-        ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
-        reject(error)
-      })
-    })
-    return promise
-  },
-  getPageData(obj, path, page = null, pageSize = null, data = null, callback = null, isLoading = null, percentFieldName = null) {
-    if (isLoading === false) {
-      obj.loading = isLoading
-    } else {
-      obj.loading = true
-    }
-    if (page === null) page = 1
-    if (pageSize === null) pageSize = 20
-    let paramsData = {
-      page: page,
-      pageSize: pageSize,
-    }
-    if (data === null || tool.isEmptyObject(data)) {
-      // 查看地址栏中的内容,如果有内容则把地址栏中的参数给拿到
-      if(window.location.href.indexOf('filter') !== -1){
-        let nowUrl = tool.parseURL(window.location.href)
-        if(nowUrl.params.filter){
-          data = JSON.parse(unescape(nowUrl.params.filter))
-          if(obj.filterModel){
-            obj.filterModel = data
-          }
-        }
-      }
-    }
-    paramsData = Object.assign(paramsData, data)
-    network.getData(path, paramsData).then(response => {
-      obj.tableData = response.list
-      obj.tableHeaders = response.columnsShow ? response.columnsShow : []
-      obj.loading = false
-      obj.currentPage = page
-      obj.totalPages = parseInt(response.totalPages)
-      obj.totalCount = parseInt(response.totalCount)
-      obj.pageSize = pageSize
-      if (percentFieldName !== null) {
-        if(percentFieldName.length > 0){
-          for(let i in obj.tableData){
-            for(let j in percentFieldName){
-              obj.$set(obj.percentList[percentFieldName[j]], obj.tableData[i].ID, obj.tableData[i][percentFieldName[j]])
-            }
-          }
-        }
-      }
-      if (callback !== null) {
-        callback(response)
-      }
-    }).catch(response => {
-      obj.loading = false
-    })
-  },
-  getDaysDiff() {
-    let promise = new Promise((resolve, reject) => {
-      axiosObj.get(`site/days-diff`).then(response => {
-        // 更新本地baseInfo
-        baseInfo.setDaysDiff(response.daysDiff)
-        // 成功
-        resolve(response)
-      }).catch(error => {
-        reject(error)
-      })
-    })
-    return promise
-  }
-
-}
-
-export default network
+import {ACCESS_TOKEN_PREFIX} from './config'
+import userInfo from './userInfo'
+import tool from './tool'
+import axiosObj from './axiosPlugin'
+import ElementUI from 'element-ui'
+import baseInfo from './baseInfo'
+
+const updateToken = function (callback, errorBack) {
+  if (!userInfo.hasLogin()) {
+    //console.log('尚未登录');
+    //userInfo.clear();
+    errorBack('E40004')
+    return false
+  }
+  // 比较本地accessToken是否还有效
+  if (userInfo.accessToken() && userInfo.accessTokenExpiresIn() && parseInt(userInfo.accessTokenExpiresIn()) + parseInt(userInfo.accessTokenUpdateAt()) - 30 > parseInt(tool.getTimestamp())) {
+    // 有效
+    //console.log('accessToken有效');
+    callback(userInfo.accessToken())
+    return true
+  } else {
+    // 已失效,去更新
+    let refreshToken = userInfo.refreshToken()
+    let refreshTokenExpiresIn = userInfo.refreshTokenExpiresIn()
+    let refreshTokenUpdateAt = userInfo.refreshTokenUpdateAt()
+    if (refreshToken && refreshTokenExpiresIn && parseInt(refreshTokenExpiresIn) - 30 + parseInt(refreshTokenUpdateAt) > parseInt(tool.getTimestamp())) {
+      // 有效,去更新
+      axiosObj.get(`oauth/refresh-token?refresh-token=${refreshToken}`).then(response => {
+        // 更新本地accessToken
+        userInfo.accessToken(response.accessToken)
+        userInfo.accessTokenExpiresIn(response.accessTokenExpiresIn)
+        userInfo.accessTokenUpdateAt(response.accessTokenUpdateAt)
+        userInfo.refreshToken(response.refreshToken)
+        userInfo.refreshTokenExpiresIn(response.refreshTokenExpiresIn)
+        userInfo.refreshTokenUpdateAt(response.refreshTokenUpdateAt)
+        // 成功
+        //console.log('accessToken更新成功,refreshToken更新为:'+userInfo.refreshToken());
+        //console.log('accessToken更新成功,refreshToken的更新时间为:'+tool.formatDate(userInfo.refreshTokenUpdateAt()));
+        //console.log('accessToken更新成功,refreshToken的有效时间为:'+userInfo.refreshTokenExpiresIn());
+        callback(userInfo.accessToken())
+        return true
+      }).catch(error => {
+        //userInfo.clear();
+        //console.log(error);
+        errorBack('E40001')
+        return false
+      })
+    } else {
+      //console.log('refreshToken已失效');
+      userInfo.clear()
+      // 失效
+      errorBack('E40003')
+      return false
+    }
+  }
+}
+
+const network = {
+  loginGetAccessToken(adminName, password, verifyCode, pageId) {
+    let promise = new Promise((resolve, reject) => {
+      // if(userInfo.hasLogin()){
+      //     reject('E40005');
+      //     return false;
+      // }
+      axiosObj.post(`oauth/login?page_id=${pageId}`, {
+        LoginForm: {
+          adminName,
+          password,
+          verifyCode,
+        }
+      }).then(response => {
+        // 更新本地accessToken
+        userInfo.updateLoginAllInfo(response)
+        // 成功
+        resolve(response)
+      }).catch(error => {
+        //console.log('登录获取数据错误');
+        userInfo.clear()
+        reject(error)
+      })
+    })
+    return promise
+  },
+  updateToken() {
+    let promise = new Promise((resolve, reject) => {
+      updateToken(function (accessToken) {
+        resolve(accessToken)
+      }, function (error) {
+        reject(error)
+      })
+    })
+    return promise
+  },
+  getUserInfo() {
+    let promise = new Promise((resolve, reject) => {
+      updateToken(function (accessToken) {
+        axiosObj.get(`oauth/info`, {
+          headers: {
+            'Authorization': ACCESS_TOKEN_PREFIX + accessToken,
+          }
+        }).then(response => {
+          // 更新本地userInfo
+          userInfo.userId(response.ID)
+          userInfo.adminName(response.ADMIN_NAME)
+          userInfo.baseData({roleId: response.ROLE_ID})
+          // 成功
+          resolve(response)
+        }).catch(error => {
+          reject(error)
+        })
+      }, function (error) {
+        reject(error)
+      })
+    })
+    return promise
+  },
+  getBaseInfo() {
+    let promise = new Promise((resolve, reject) => {
+      updateToken(function (accessToken) {
+        axiosObj.get(`site/base-info`, {
+          headers: {
+            'Authorization': ACCESS_TOKEN_PREFIX + accessToken,
+          }
+        }).then(response => {
+          // 更新本地baseInfo
+          baseInfo.set(response)
+          // 成功
+          resolve(response)
+        }).catch(error => {
+          reject(error)
+        })
+      }, function (error) {
+        reject(error)
+      })
+    })
+    return promise
+  },
+  getData(route, data = null) {
+    if (data === null) {
+      data = {}
+    }
+    let promise = new Promise((resolve, reject) => {
+      updateToken(function (accessToken) {
+        axiosObj.get(`${route}`, {
+          params: data,
+          headers: {
+            'Authorization': ACCESS_TOKEN_PREFIX + accessToken,
+          }
+        }).then(response => {
+          // 成功
+          resolve(response)
+        }).catch(error => {
+          error = tool.errorHandle(error)
+          ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
+          reject(error)
+        })
+      }, function (error) {
+        error = tool.errorHandle(error)
+        ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
+        reject(error)
+      })
+    })
+    return promise
+  },
+  postData(route, data) {
+    let promise = new Promise((resolve, reject) => {
+      updateToken(function (accessToken) {
+        axiosObj.post(`${route}`, data, {
+          headers: {
+            'Authorization': ACCESS_TOKEN_PREFIX + accessToken,
+          }
+        }).then(response => {
+          // 成功
+          resolve(response)
+        }).catch(error => {
+          error = tool.errorHandle(error)
+          ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
+          reject(error)
+        })
+      }, function (error) {
+        error = tool.errorHandle(error)
+        ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
+        reject(error)
+      })
+    })
+    return promise
+  },
+  getPageData(obj, path, page = null, pageSize = null, data = null, callback = null, isLoading = null, percentFieldName = null) {
+    if (isLoading === false) {
+      obj.loading = isLoading
+    } else {
+      obj.loading = true
+    }
+    if (page === null) page = 1
+    if (pageSize === null) pageSize = 20
+    let paramsData = {
+      page: page,
+      pageSize: pageSize,
+    }
+    if (data === null || tool.isEmptyObject(data)) {
+      // 查看地址栏中的内容,如果有内容则把地址栏中的参数给拿到
+      if(window.location.href.indexOf('filter') !== -1){
+        let nowUrl = tool.parseURL(window.location.href)
+        if(nowUrl.params.filter){
+          data = JSON.parse(unescape(nowUrl.params.filter))
+          if(obj.filterModel){
+            obj.filterModel = data
+          }
+        }
+      }
+    }
+    paramsData = Object.assign(paramsData, data)
+    network.getData(path, paramsData).then(response => {
+      obj.tableData = response.list
+      obj.tableHeaders = response.columnsShow ? response.columnsShow : []
+      obj.loading = false
+      obj.currentPage = page
+      obj.totalPages = parseInt(response.totalPages)
+      obj.totalCount = parseInt(response.totalCount)
+      obj.pageSize = pageSize
+      if (percentFieldName !== null) {
+        if(percentFieldName.length > 0){
+          for(let i in obj.tableData){
+            for(let j in percentFieldName){
+              obj.$set(obj.percentList[percentFieldName[j]], obj.tableData[i].ID, obj.tableData[i][percentFieldName[j]])
+            }
+          }
+        }
+      }
+      if (callback !== null) {
+        callback(response)
+      }
+    }).catch(response => {
+      obj.loading = false
+    })
+  },
+  getDaysDiff() {
+    let promise = new Promise((resolve, reject) => {
+      axiosObj.get(`site/days-diff`).then(response => {
+        // 更新本地baseInfo
+        baseInfo.setDaysDiff(response.daysDiff)
+        // 成功
+        resolve(response)
+      }).catch(error => {
+        reject(error)
+      })
+    })
+    return promise
+  }
+
+}
+
+export default network

+ 181 - 181
backendEle/src/views/reconsume/pool-list.vue

@@ -1,181 +1,181 @@
-<template>
-  <div v-loading="loading">
-    <div class="white-box">
-      <div class="filter-box">
-        <filter-user :filter-types="filterTypes" @select-value="handleFilterUser"></filter-user>
-      </div>
-      <el-table :data="tableData" stripe style="width: 100%;" :height="tool.getTableHeight()">
-        <el-table-column v-for="(tableHeader, key) in tableHeaders" :key="key" :label="tableHeader.header" :width="tableHeader.other.width ? tableHeader.other.width : ''">
-          <template slot-scope="scope">
-            <template v-if="scope.row[tableHeader.index].other.tag" >
-              <el-tag :type="scope.row[tableHeader.index].other.tag.type ? scope.row[tableHeader.index].other.tag.type : null" :size="scope.row[tableHeader.index].other.tag.size ? scope.row[tableHeader.index].other.tag.size : null" :class="scope.row[tableHeader.index].other.tag.class ? scope.row[tableHeader.index].other.tag.class : null" >{{scope.row[tableHeader.index].value}}</el-tag>
-            </template>
-            <template v-else-if="scope.row[tableHeader.index].other.progress" >
-              <el-progress type="circle" :percentage="Number.parseInt(percentList['MOVE_PERCENT'][scope.row.ID])"
-                           :width="50"
-                           :stroke-width="3"></el-progress>
-            </template>
-            <template v-else>
-              <div v-html="scope.row[tableHeader.index].value"></div>
-            </template>
-          </template>
-        </el-table-column>
-        <el-table-column label="操作" width="150" v-if="tableHeaders">
-          <template slot-scope="scope">
-            <el-button type="primary" size="small" @click.native="handleChangeUserName(scope.row.USER_NAME.value)" v-show="permission.hasPermission(`reconsume/change-audit-add`)">调整复销池余额</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-      <div class="white-box-footer">
-        <el-button type="primary" size="small" @click="handleChange" icon="el-icon-plus" v-show="permission.hasPermission(`reconsume/change-audit-add`)">申请调整复销池余额</el-button>
-        <el-button type="primary" size="small" @click="handleDeduct" icon="el-icon-plus" v-show="permission.hasPermission(`reconsume/deduct-audit-add`)">手动扣除月复销</el-button>
-        <el-button type="success" size="small" @click="handleExport"
-                   v-show="permission.hasPermission(`reconsume/pool-list-export`)">导出Excel
-        </el-button>
-        <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange" @current-change="handleCurrentChange"></pagination>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import network from '@/utils/network'
-import tool from '@/utils/tool'
-import FilterUser from '@/components/FilterUser'
-import baseInfo from '@/utils/baseInfo'
-import Pagination from '@/components/Pagination'
-import permission from '@/utils/permission'
-import filterHelper from '../../utils/filterHelper'
-
-export default {
-  name: 'reconsume_pool-list',
-  components: {FilterUser,Pagination},
-  mounted () {
-    this.getData()
-  },
-  data () {
-    return {
-      tableHeaders: null,
-      allData: null,
-      tableData: null,
-      loading: true,
-      multipleSelection: [],
-      currentPage: 1,
-      totalPages: 1,
-      totalCount: 1,
-      pageSize: 20,
-      tool: tool,
-      permission: permission,
-      filterTypes: {
-        'USER_NAME': {isUserTable: true, name: '会员编号'},
-        'REAL_NAME': {isUserTable: true, name: '会员姓名'},
-        'STATUS': {isUserTable: true, name: '会员状态', other: 'status'},
-        'DEC_LV': {isUserTable: true, name: '实时会员级别', other: 'decLevel'},
-        'LAST_DEC_LV': {isUserTable: true, name: '结算时会员级别', other: 'decLevel'},
-        'EMP_LV': {isUserTable: true, name: '实时聘级', other: 'empLevel'},
-        'UNUSED_PV': {isUserTable: false, name: '复销池余额'},
-        'UNUSED_MONTH': {isUserTable: false, name: '赠送优惠期剩余月数'},
-        'CREATED_AT': {isUserTable: true, name: '加入时间', other: 'date'},
-        'PERIOD_AT': {isUserTable: true, name: '加入期数'},
-      },
-      filterModel: {},
-      baseInfo: baseInfo,
-    }
-  },
-  methods: {
-    handleSelectionChange (val) {
-      this.multipleSelection = val
-    },
-    handleCurrentChange (page) {
-      this.getData(page, this.pageSize)
-    },
-    handleSizeChange (pageSize) {
-      this.getData(this.currentPage, pageSize)
-    },
-    handlePass(row){
-      this.$confirm('确定要为该会员扣除复销并设为合格吗?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        return network.postData(`reconsume/deduct`, {
-          userName: row.USER_NAME.value,
-          isPass: true,
-        })
-      }).then(response => {
-        this.$message({
-          message: response,
-          type: 'success'
-        })
-        this.getData(this.currentPage, this.pageSize)
-      }).catch(response => {
-
-      })
-    },
-    handleNotPass(row){
-      this.$confirm('确定要为该会员扣除复销并设为不合格吗?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        return network.postData(`reconsume/deduct`, {
-          userName: row.USER_NAME.value,
-          isPass: false,
-        })
-      }).then(response => {
-        this.$message({
-          message: response,
-          type: 'success'
-        })
-        this.getData(this.currentPage, this.pageSize)
-      }).catch(response => {
-
-      })
-    },
-    handleDeduct() {
-      this.$router.push(`/reconsume/deduct-audit-add`)
-    },
-    handleChangeUserName(userName) {
-      this.$router.push({path:`/reconsume/change-audit-add/${userName}`})
-    },
-    handleChange() {
-      this.$router.push({path:`/reconsume/change-audit-add`})
-    },
-    handleFilterUser(filterData) {
-      filterHelper.handleFilterUser(this, filterData)
-    },
-    handleFilter() {
-      this.getData()
-    },
-    getData(page, pageSize) {
-      let filterData = this.filterModel
-      let vueObj=this
-      network.getPageData(this, 'reconsume/pool-list', page, pageSize, filterData, function (response) {
-        vueObj.allData = response
-        vueObj.filterTypes = response.filterTypes
-      })
-    },
-    handleExport(){
-      this.$confirm(`确定要导出当前数据吗?`, '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        return network.getData(`reconsume/pool-list-export`, this.filterModel)
-      }).then(response => {
-        this.$message({
-          message: response,
-          type: 'success'
-        })
-      }).catch(response => {
-
-      })
-    },
-  }
-}
-
-</script>
-
-<style scoped>
-
-</style>
+<template>
+  <div v-loading="loading">
+    <div class="white-box">
+      <div class="filter-box">
+        <filter-user :filter-types="filterTypes" @select-value="handleFilterUser"></filter-user>
+      </div>
+      <el-table :data="tableData" stripe style="width: 100%;" :height="tool.getTableHeight()">
+        <el-table-column v-for="(tableHeader, key) in tableHeaders" :key="key" :label="tableHeader.header" :width="tableHeader.other.width ? tableHeader.other.width : ''">
+          <template slot-scope="scope">
+            <template v-if="scope.row[tableHeader.index].other.tag" >
+              <el-tag :type="scope.row[tableHeader.index].other.tag.type ? scope.row[tableHeader.index].other.tag.type : null" :size="scope.row[tableHeader.index].other.tag.size ? scope.row[tableHeader.index].other.tag.size : null" :class="scope.row[tableHeader.index].other.tag.class ? scope.row[tableHeader.index].other.tag.class : null" >{{scope.row[tableHeader.index].value}}</el-tag>
+            </template>
+            <template v-else-if="scope.row[tableHeader.index].other.progress" >
+              <el-progress type="circle" :percentage="Number.parseInt(percentList['MOVE_PERCENT'][scope.row.ID])"
+                           :width="50"
+                           :stroke-width="3"></el-progress>
+            </template>
+            <template v-else>
+              <div v-html="scope.row[tableHeader.index].value"></div>
+            </template>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="150" v-if="tableHeaders">
+          <template slot-scope="scope">
+            <el-button type="primary" size="small" @click.native="handleChangeUserName(scope.row.USER_NAME.value)" v-show="permission.hasPermission(`reconsume/change-audit-add`)">调整复销池余额</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <div class="white-box-footer">
+        <el-button type="primary" size="small" @click="handleChange" icon="el-icon-plus" v-show="permission.hasPermission(`reconsume/change-audit-add`)">申请调整复销池余额</el-button>
+        <el-button type="primary" size="small" @click="handleDeduct" icon="el-icon-plus" v-show="permission.hasPermission(`reconsume/deduct-audit-add`)">手动扣除月复销</el-button>
+        <el-button type="success" size="small" @click="handleExport"
+                   v-show="permission.hasPermission(`reconsume/pool-list-export`)">导出Excel
+        </el-button>
+        <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange" @current-change="handleCurrentChange"></pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import network from '@/utils/network'
+import tool from '@/utils/tool'
+import FilterUser from '@/components/FilterUser'
+import baseInfo from '@/utils/baseInfo'
+import Pagination from '@/components/Pagination'
+import permission from '@/utils/permission'
+import filterHelper from '../../utils/filterHelper'
+
+export default {
+  name: 'reconsume_pool-list',
+  components: {FilterUser,Pagination},
+  mounted () {
+    this.getData()
+  },
+  data () {
+    return {
+      tableHeaders: null,
+      allData: null,
+      tableData: null,
+      loading: true,
+      multipleSelection: [],
+      currentPage: 1,
+      totalPages: 1,
+      totalCount: 1,
+      pageSize: 20,
+      tool: tool,
+      permission: permission,
+      filterTypes: {
+        'USER_NAME': {isUserTable: true, name: '会员编号'},
+        'REAL_NAME': {isUserTable: true, name: '会员姓名'},
+        'STATUS': {isUserTable: true, name: '会员状态', other: 'status'},
+        'DEC_LV': {isUserTable: true, name: '实时会员级别', other: 'decLevel'},
+        'LAST_DEC_LV': {isUserTable: true, name: '结算时会员级别', other: 'decLevel'},
+        'EMP_LV': {isUserTable: true, name: '实时聘级', other: 'empLevel'},
+        'UNUSED_PV': {isUserTable: false, name: '复销池余额'},
+        'UNUSED_MONTH': {isUserTable: false, name: '赠送优惠期剩余月数'},
+        'CREATED_AT': {isUserTable: true, name: '加入时间', other: 'date'},
+        'PERIOD_AT': {isUserTable: true, name: '加入期数'},
+      },
+      filterModel: {},
+      baseInfo: baseInfo,
+    }
+  },
+  methods: {
+    handleSelectionChange (val) {
+      this.multipleSelection = val
+    },
+    handleCurrentChange (page) {
+      this.getData(page, this.pageSize)
+    },
+    handleSizeChange (pageSize) {
+      this.getData(this.currentPage, pageSize)
+    },
+    handlePass(row){
+      this.$confirm('确定要为该会员扣除复销并设为合格吗?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        return network.postData(`reconsume/deduct`, {
+          userName: row.USER_NAME.value,
+          isPass: true,
+        })
+      }).then(response => {
+        this.$message({
+          message: response,
+          type: 'success'
+        })
+        this.getData(this.currentPage, this.pageSize)
+      }).catch(response => {
+
+      })
+    },
+    handleNotPass(row){
+      this.$confirm('确定要为该会员扣除复销并设为不合格吗?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        return network.postData(`reconsume/deduct`, {
+          userName: row.USER_NAME.value,
+          isPass: false,
+        })
+      }).then(response => {
+        this.$message({
+          message: response,
+          type: 'success'
+        })
+        this.getData(this.currentPage, this.pageSize)
+      }).catch(response => {
+
+      })
+    },
+    handleDeduct() {
+      this.$router.push(`/reconsume/deduct-audit-add`)
+    },
+    handleChangeUserName(userName) {
+      this.$router.push({path:`/reconsume/change-audit-add/${userName}`})
+    },
+    handleChange() {
+      this.$router.push({path:`/reconsume/change-audit-add`})
+    },
+    handleFilterUser(filterData) {
+      filterHelper.handleFilterUser(this, filterData)
+    },
+    handleFilter() {
+      this.getData()
+    },
+    getData(page, pageSize) {
+      let filterData = this.filterModel
+      let vueObj=this
+      network.getPageData(this, 'reconsume/pool-list', page, pageSize, filterData, function (response) {
+        vueObj.allData = response
+        vueObj.filterTypes = response.filterTypes
+      })
+    },
+    handleExport(){
+      this.$confirm(`确定要导出当前数据吗?`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        return network.getData(`reconsume/pool-list-export`, this.filterModel)
+      }).then(response => {
+        this.$message({
+          message: response,
+          type: 'success'
+        })
+      }).catch(response => {
+
+      })
+    },
+  }
+}
+
+</script>
+
+<style scoped>
+
+</style>

+ 846 - 845
backendEle/src/views/user/index.vue

@@ -1,847 +1,848 @@
-<template>
-  <div v-loading="loading">
-    <div class="white-box">
-      <div class="filter-box">
-        <filter-user :filter-types="filterTypes" @select-value="handleFilterUser"></filter-user>
-      </div>
-      <el-table ref="wrapper" :data="tableData" stripe style="width: 100%;" @selection-change="handleSelectionChange"
-                :height="tool.getTableHeight()">
-        <el-table-column fixed type="selection" width="55" v-if="tableHeaders"></el-table-column>
-        <el-table-column v-for="(tableHeader, key) in tableHeaders" :key="key" :label="tableHeader.header"
-                         :width="tableHeader.other.width ? tableHeader.other.width : ''" :fixed="tableHeader.index=='USER_NAME' || tableHeader.index=='REAL_NAME' ?true:false">
-          <template slot-scope="scope">
-            <template v-if="scope.row[tableHeader.index].other.tag">
-              <el-tag
-                  :type="scope.row[tableHeader.index].other.tag.type ? scope.row[tableHeader.index].other.tag.type : null"
-                  :size="scope.row[tableHeader.index].other.tag.size ? scope.row[tableHeader.index].other.tag.size : null"
-                  :class="scope.row[tableHeader.index].other.tag.class ? scope.row[tableHeader.index].other.tag.class : null">
-                {{scope.row[tableHeader.index].value}}
-              </el-tag>
-            </template>
-            <template v-else>
-              <template v-if="tableHeader.index === 'USER_NAME'">
-                <el-dropdown v-if="permission.hasPermission(`user/login-to-frontend`)">
-  <span class="el-dropdown-link">
-    {{scope.row.USER_NAME.value}} <i class="el-icon-arrow-down el-icon--right"></i>
-  </span>
-                  <el-dropdown-menu slot="dropdown">
-                    <el-dropdown-item command="login" v-show="scope.row.BTF_URL !== null">
-                      <a :href="`${frontendServer}/#/login-by-backend?${scope.row.BTF_URL}`" target="_blank"
-                         style="color:#606266;">快速登录</a>
-                    </el-dropdown-item>
-                  </el-dropdown-menu>
-                </el-dropdown>
-                <el-tag type="primary" size="small" class="no-border"
-                        v-if="!permission.hasPermission(`user/login-to-frontend`)">{{scope.row.USER_NAME.value}}
-                </el-tag>
-              </template>
-              <template v-else>
-                <div v-html="scope.row[tableHeader.index].value"></div>
-              </template>
-            </template>
-          </template>
-        </el-table-column>
-        <el-table-column fixed="right" label="操作" width="180">
-          <template slot-scope="scope">
-            <el-dropdown size="small" trigger="click">
-              <el-button type="primary" size="small" @click.stop="">
-                操作该数据<i class="el-icon-arrow-down el-icon--right"></i>
-              </el-button>
-              <el-dropdown-menu slot="dropdown">
-                <el-dropdown-item @click.native="handleModifyPassword(scope.row)"
-                                  v-if="permission.hasPermission(`user/modify-password`)">修改密码
-                </el-dropdown-item>
-                <el-dropdown-item @click.native="handleModifyProfile(scope.row)"
-                                  v-if="permission.hasPermission(`user/modify-profile`)">修改个人资料
-                </el-dropdown-item>
-                <el-dropdown-item @click.native="handleStatusActive(scope.row)" v-if="permission.hasPermission(`user/modify-status`)">状态激活 </el-dropdown-item>
-                <el-dropdown-item @click.native="handleStatusLock(scope.row)" v-if="permission.hasPermission(`user/modify-status`)">状态锁定 </el-dropdown-item>
-                <el-dropdown-item @click.native="handleIsModifyPassword(scope.row, 1)" v-if="permission.hasPermission(`user/is-modify-password-status`)">开启密码修改</el-dropdown-item>
-                <el-dropdown-item @click.native="handleIsModifyPassword(scope.row, 0)" v-if="permission.hasPermission(`user/is-modify-password-status`)">关闭密码修改</el-dropdown-item>
-              </el-dropdown-menu>
-            </el-dropdown>
-          </template>
-        </el-table-column>
-      </el-table>
-      <div class="white-box-footer">
-        <!--<el-dropdown size="small" trigger="click"-->
-                     <!--v-show="permission.hasPermission(`user/close-login`)||permission.hasPermission(`user/close-area-login`)||permission.hasPermission(`user/batch-close-login`)">-->
-          <!--<el-button type="primary" size="small" @click.stop="">-->
-            <!--登录管理<i class="el-icon-arrow-down el-icon&#45;&#45;right"></i>-->
-          <!--</el-button>-->
-          <!--<el-dropdown-menu slot="dropdown">-->
-            <!--<el-dropdown-item command="closeLogin" @click.native="handleLoginManage(1)"-->
-                              <!--v-show="permission.hasPermission(`user/batch-close-login`)">按指定会员管理登录-->
-            <!--</el-dropdown-item>-->
-            <!--<el-dropdown-item command="closeLogin" @click.native="handleLoginManage(2)"-->
-                              <!--v-show="permission.hasPermission(`user/close-login`)">按开拓网络管理登录-->
-            <!--</el-dropdown-item>-->
-            <!--<el-dropdown-item command="closeLogin" @click.native="handleLoginManage(3)"-->
-                              <!--v-show="permission.hasPermission(`user/close-login`)">按安置网络管理登录-->
-            <!--</el-dropdown-item>-->
-            <!--<el-dropdown-item command="closeLogin" @click.native="handleLoginManage(4)"-->
-                              <!--v-show="permission.hasPermission(`user/close-login`)">按会员体系管理登录-->
-            <!--</el-dropdown-item>-->
-            <!--<el-dropdown-item command="closeLogin" @click.native="handleLoginManage(5)"-->
-                              <!--v-show="permission.hasPermission(`user/close-area-login`)">按省份地区管理登录-->
-            <!--</el-dropdown-item>-->
-            <!--<el-dropdown-item command="closeLogin" @click.native="handleCloseLogin(1, 1)" v-show="false">禁止商城系统登录-->
-            <!--</el-dropdown-item>-->
-            <!--<el-dropdown-item command="allowLogin" @click.native="handleCloseLogin(0, 1)" v-show="false">允许商城系统登录-->
-            <!--</el-dropdown-item>-->
-            <!--<el-dropdown-item command="closeLogin" @click.native="handleCloseLogin(1, 2)" v-show="false">禁止结算系统登录-->
-            <!--</el-dropdown-item>-->
-            <!--<el-dropdown-item command="allowLogin" @click.native="handleCloseLogin(0, 2)" v-show="false">允许结算系统登录-->
-            <!--</el-dropdown-item>-->
-            <!--<el-dropdown-item command="closeLogin" @click.native="handleCloseLogin(1, 3)" v-show="false">全部禁止登录-->
-            <!--</el-dropdown-item>-->
-            <!--<el-dropdown-item command="allowLogin" @click.native="handleCloseLogin(0, 3)" v-show="false">全部允许登录-->
-            <!--</el-dropdown-item>-->
-          <!--</el-dropdown-menu>-->
-        <!--</el-dropdown>-->
-        <!--<el-dropdown size="small" trigger="click" v-show="permission.hasPermission(`user/is-group`)">-->
-          <!--<el-button type="primary" size="small" @click.stop="">-->
-            <!--团队管理<i class="el-icon-arrow-down el-icon&#45;&#45;right"></i>-->
-          <!--</el-button>-->
-          <!--<el-dropdown-menu slot="dropdown">-->
-            <!--<el-dropdown-item command="isGroup" @click.native="handleGroupManage(true)">设为团队领导人</el-dropdown-item>-->
-            <!--<el-dropdown-item command="notGroup" @click.native="handleGroupManage(false)">取消团队领导人-->
-            <!--</el-dropdown-item>-->
-          <!--</el-dropdown-menu>-->
-        <!--</el-dropdown>-->
-        <el-dropdown size="small" trigger="click" v-show="permission.hasPermission(`user/is-dec`)">
-          <el-button type="primary" size="small" @click.stop="">
-            报单中心管理<i class="el-icon-arrow-down el-icon--right"></i>
-          </el-button>
-          <el-dropdown-menu slot="dropdown">
-            <el-dropdown-item command="isDec" @click.native="handleIsDecManage(true)">设为报单中心</el-dropdown-item>
-            <el-dropdown-item command="notDec" @click.native="handleIsDecManage(false)">取消报单中心
-            </el-dropdown-item>
-          </el-dropdown-menu>
-        </el-dropdown>
-
-        <el-dropdown size="small" trigger="click" v-show="permission.hasPermission(`user/is-studio`)">
-          <el-button type="primary" size="small" @click.stop="">
-            工作室管理<i class="el-icon-arrow-down el-icon--right"></i>
-          </el-button>
-          <el-dropdown-menu slot="dropdown">
-            <el-dropdown-item command="isStudio" @click.native="handleIsStudioManage(true)">设为工作室</el-dropdown-item>
-            <el-dropdown-item command="notStudio" @click.native="handleIsStudioManage(false)">取消工作室
-            </el-dropdown-item>
-          </el-dropdown-menu>
-        </el-dropdown>
-
-        <el-dropdown size="small" trigger="click" v-show="permission.hasPermission(`user/is-atlas`)">
-          <el-button type="primary" size="small" @click.stop="">
-            图谱管理<i class="el-icon-arrow-down el-icon--right"></i>
-          </el-button>
-          <el-dropdown-menu slot="dropdown">
-            <el-dropdown-item command="isAtlas" @click.native="handleIsAtlasManage(true)">显示图谱</el-dropdown-item>
-            <el-dropdown-item command="notAtlas" @click.native="handleIsAtlasManage(false)">隐藏图谱
-            </el-dropdown-item>
-          </el-dropdown-menu>
-        </el-dropdown>
-
-        <el-dropdown size="small" trigger="click" v-show="permission.hasPermission(`user/is-recharge`)">
-          <el-button type="primary" size="small" @click.stop="">
-            充值管理<i class="el-icon-arrow-down el-icon--right"></i>
-          </el-button>
-          <el-dropdown-menu slot="dropdown">
-            <el-dropdown-item command="isAtlas" @click.native="handleIsRechargeManage(true)">显示充值</el-dropdown-item>
-            <el-dropdown-item command="notAtlas" @click.native="handleIsRechargeManage(false)">隐藏充值
-            </el-dropdown-item>
-          </el-dropdown-menu>
-        </el-dropdown>
-        <!--<el-dropdown size="small" trigger="click"-->
-                     <!--v-show="permission.hasPermission(`user/close-dec`)||permission.hasPermission(`user/close-area-dec`)||permission.hasPermission(`user/batch-close-dec`)">-->
-          <!--<el-button type="primary" size="small" @click.stop="">-->
-            <!--报单管理<i class="el-icon-arrow-down el-icon&#45;&#45;right"></i>-->
-          <!--</el-button>-->
-          <!--<el-dropdown-menu slot="dropdown">-->
-            <!--<el-dropdown-item command="closeDec" @click.native="handleDecManage(1)"-->
-                              <!--v-show="permission.hasPermission(`user/batch-close-dec`)">按指定会员管理报单-->
-            <!--</el-dropdown-item>-->
-            <!--<el-dropdown-item command="closeDec" @click.native="handleDecManage(2)"-->
-                              <!--v-show="permission.hasPermission(`user/close-dec`)">按开拓网络管理报单-->
-            <!--</el-dropdown-item>-->
-            <!--<el-dropdown-item command="closeDec" @click.native="handleDecManage(3)"-->
-                              <!--v-show="permission.hasPermission(`user/close-dec`)">按安置网络管理报单-->
-            <!--</el-dropdown-item>-->
-            <!--<el-dropdown-item command="closeDec" @click.native="handleDecManage(4)"-->
-                              <!--v-show="permission.hasPermission(`user/close-dec`)">按会员体系管理报单-->
-            <!--</el-dropdown-item>-->
-            <!--<el-dropdown-item command="closeDec" @click.native="handleDecManage(5)"-->
-                              <!--v-show="permission.hasPermission(`user/close-area-dec`)">按省份地区管理报单-->
-            <!--</el-dropdown-item>-->
-          <!--</el-dropdown-menu>-->
-        <!--</el-dropdown>-->
-        <el-button type="success" size="small" @click="handleExport"
-                   v-show="permission.hasPermission(`user/index-export`)">导出Excel
-        </el-button>
-        <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange"
-                    @current-change="handleCurrentChange"></pagination>
-      </div>
-    </div>
-    <el-dialog :title="formModifyPassword.typeName" :visible.sync="dialogModifyPasswordVisible" width="50%">
-      <el-form ref="form" :model="formModifyPassword" label-width="120px" class="form-dialog">
-        <el-form-item label="类型">
-          <el-select v-model="formModifyPassword.passwordType" placeholder="请选择类型">
-            <el-option v-for="(item,key) in passwordType" :label="item.label" :value="item.type"
-                       :key="key"></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="密码">
-          <el-input placeholder="密码" v-model="formModifyPassword.password">
-          </el-input>
-        </el-form-item>
-        <!--<el-form-item label="备注">-->
-          <!--<el-input type="text" :rows="2" placeholder="备注" v-model="formModifyPassword.remark">-->
-          <!--</el-input>-->
-        <!--</el-form-item>-->
-        <el-form-item>
-          <el-button type="primary" @click="handleModifyPasswordSubmit" :loading="submitPasswordButtonStat">提交</el-button>
-        </el-form-item>
-      </el-form>
-    </el-dialog>
-
-    <el-dialog :title="formModifyProfile.typeName" :visible.sync="dialogModifyProfileVisible" width="50%">
-      <el-form ref="form" :model="formModifyProfile" label-width="120px" class="form-dialog">
-        <el-form-item label="民族">
-          <el-select v-model="formModifyProfile.nation" placeholder="请选择民族">
-            <el-option v-for="(item,index) in allNation" :key="index" :label="item.name"
-                       :value="item.id"></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="会员姓名">
-          <el-input v-model="formModifyProfile.realName"></el-input>
-        </el-form-item>
-        <el-form-item label="身份证号">
-          <el-input v-model="formModifyProfile.idCard"></el-input>
-        </el-form-item>
-        <el-form-item label="手机号">
-          <el-input v-model="formModifyProfile.mobile"></el-input>
-        </el-form-item>
-        <el-form-item label="银行名称">
-          <el-select v-model="formModifyProfile.openBank" placeholder="请选择银行名称">
-            <el-option v-for="(item,index) in allOpenBank" :key="index" :label="item.BANK_NAME"
-                       :value="item.BANK_CODE"></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="开户行地址">
-          <el-input v-model="formModifyProfile.bankAddress"></el-input>
-        </el-form-item>
-        <el-form-item label="银行帐号">
-          <el-input v-model="formModifyProfile.bankNo"></el-input>
-        </el-form-item>
-        <el-form-item>
-          <el-button type="primary" @click="handleModifyProfileSubmit" :loading="submitProfileButtonStat">提交</el-button>
-        </el-form-item>
-      </el-form>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-  import network from './../../utils/network'
-  import tool from './../../utils/tool'
-  import {FRONTEND_SERVER} from '@/utils/config'
-  import baseInfo from '@/utils/baseInfo'
-  import FilterUser from '../../components/FilterUser'
-  import store from './../../utils/vuexStore'
-  import permission from '@/utils/permission'
-  import Pagination from '@/components/Pagination'
-  import filterHelper from '../../utils/filterHelper'
-
-  export default {
-    name: 'user_index',
-    components: {FilterUser, Pagination},
-    mounted() {
-      let _this = this
-      if (permission.hasPermission(`user/close-login`) || permission.hasPermission(`user/close-area-login`) || permission.hasPermission(`user/batch-close-login`)) {
-        network.getData('user/close-login-get').then(response => {
-          _this.apps = response.apps
-          _this.closeSwitch = response.closeSwitch
-          if (permission.hasPermission(`user/close-dec`) || permission.hasPermission(`user/close-area-dec`) || permission.hasPermission(`user/batch-close-dec`)) {
-            network.getData('user/close-dec-get').then(response => {
-              _this.closeDecSwitch = response.closeSwitch
-              _this.getData()
-            }).catch(error => {
-            })
-          } else {
-            _this.getData()
-          }
-        }).catch(error => {
-        })
-      } else {
-        if (permission.hasPermission(`user/close-dec`) || permission.hasPermission(`user/close-area-dec`) || permission.hasPermission(`user/batch-close-dec`)) {
-          network.getData('user/close-dec-get').then(response => {
-            _this.closeDecSwitch = response.closeSwitch
-            _this.getData()
-          }).catch(error => {
-          })
-        } else {
-          _this.getData()
-        }
-      }
-      store.state.socket.onMessageCallback = this.onMessageCallback
-    },
-    data() {
-      return {
-        tableHeaders: null,
-        tableData: null,
-        loading: true,
-        multipleSelection: [],
-        currentPage: 1,
-        totalPages: 1,
-        totalCount: 1,
-        pageSize: 20,
-        frontendServer: FRONTEND_SERVER,
-        baseDecLevels: baseInfo.decLevels(),
-        baseEmpLevels: baseInfo.empLevels(),
-        tool: tool,
-        permission: permission,
-        filterTypes: null,
-        filterModel: {},
-        dialogVisible: false,
-        formCloseLogin: {
-          userName: null,
-          typeName: '登录管理',
-          type: null,
-          isClose: 0,
-          remark: '',
-          areaSelected: null,
-        },
-        regionDataPlus: store.state.regionInfo.regionData,
-        apps: null,
-        closeSwitch: null,
-        submitButtonStat: false,
-        dialogDecVisible: false,
-        dialogModifyPasswordVisible: false,
-        dialogModifyProfileVisible: false,
-        formCloseDec: {
-          userName: null,
-          typeName: '管理报单',
-          type: null,
-          isClose: 0,
-          remark: '',
-          areaSelected: null,
-        },
-        formModifyPassword: {
-            userId:'',
-            password: '',
-            typeName: '修改密码',
-            passwordType: 'password',
-            // remark: '',
-        },
-        formModifyProfile: {
-            userId:'',
-            typeName: '修改个人资料',
-            nation: '',
-            realName: '',
-            idCard: '',
-            mobile: '',
-            openBank: '',
-            bankAddress: '',
-            bankNo: '',
-        },
-        passwordType: [
-            {
-                type:"password",
-                label:"登录密码"
-            },
-            {
-                type:"payPassword",
-                label:"支付密码"
-            },
-        ],
-        allOpenBank:null,
-        allNation:null,
-        submitDecButtonStat: false,
-        submitPasswordButtonStat: false,
-        submitProfileButtonStat: false,
-        transferPropForm: {
-          userIds: [],
-          allowTransfer: true,
-          transferProp: 100,
-          withdrawProp: 0,
-          remark: '',
-        },
-        closeUserData: null,
-      }
-    },
-    methods: {
+<template>
+  <div v-loading="loading">
+    <div class="white-box">
+      <div class="filter-box">
+        <filter-user :filter-types="filterTypes" @select-value="handleFilterUser"></filter-user>
+      </div>
+      <el-table ref="wrapper" :data="tableData" stripe style="width: 100%;" @selection-change="handleSelectionChange"
+                :height="tool.getTableHeight()">
+        <el-table-column fixed type="selection" width="55" v-if="tableHeaders"></el-table-column>
+        <el-table-column v-for="(tableHeader, key) in tableHeaders" :key="key" :label="tableHeader.header"
+                         :width="tableHeader.other.width ? tableHeader.other.width : ''" :fixed="tableHeader.index=='USER_NAME' || tableHeader.index=='REAL_NAME' ?true:false">
+          <template slot-scope="scope">
+            <template v-if="scope.row[tableHeader.index].other.tag">
+              <el-tag
+                  :type="scope.row[tableHeader.index].other.tag.type ? scope.row[tableHeader.index].other.tag.type : null"
+                  :size="scope.row[tableHeader.index].other.tag.size ? scope.row[tableHeader.index].other.tag.size : null"
+                  :class="scope.row[tableHeader.index].other.tag.class ? scope.row[tableHeader.index].other.tag.class : null">
+                {{scope.row[tableHeader.index].value}}
+              </el-tag>
+            </template>
+            <template v-else>
+              <template v-if="tableHeader.index === 'USER_NAME'">
+                <el-dropdown v-if="permission.hasPermission(`user/login-to-frontend`)">
+  <span class="el-dropdown-link">
+    {{scope.row.USER_NAME.value}} <i class="el-icon-arrow-down el-icon--right"></i>
+  </span>
+                  <el-dropdown-menu slot="dropdown">
+                    <el-dropdown-item command="login" v-show="scope.row.BTF_URL !== null">
+                      <a :href="`${frontendServer}/#/login-by-backend?${scope.row.BTF_URL}`" target="_blank"
+                         style="color:#606266;">快速登录</a>
+                    </el-dropdown-item>
+                  </el-dropdown-menu>
+                </el-dropdown>
+                <el-tag type="primary" size="small" class="no-border"
+                        v-if="!permission.hasPermission(`user/login-to-frontend`)">{{scope.row.USER_NAME.value}}
+                </el-tag>
+              </template>
+              <template v-else>
+                <div v-html="scope.row[tableHeader.index].value"></div>
+              </template>
+            </template>
+          </template>
+        </el-table-column>
+        <el-table-column fixed="right" label="操作" width="180">
+          <template slot-scope="scope">
+            <el-dropdown size="small" trigger="click">
+              <el-button type="primary" size="small" @click.stop="">
+                操作该数据<i class="el-icon-arrow-down el-icon--right"></i>
+              </el-button>
+              <el-dropdown-menu slot="dropdown">
+                <el-dropdown-item @click.native="handleModifyPassword(scope.row)"
+                                  v-if="permission.hasPermission(`user/modify-password`)">修改密码
+                </el-dropdown-item>
+                <el-dropdown-item @click.native="handleModifyProfile(scope.row)"
+                                  v-if="permission.hasPermission(`user/modify-profile`)">修改个人资料
+                </el-dropdown-item>
+                <el-dropdown-item @click.native="handleStatusActive(scope.row)" v-if="permission.hasPermission(`user/modify-status`)">状态激活 </el-dropdown-item>
+                <el-dropdown-item @click.native="handleStatusLock(scope.row)" v-if="permission.hasPermission(`user/modify-status`)">状态锁定 </el-dropdown-item>
+                <el-dropdown-item @click.native="handleIsModifyPassword(scope.row, 1)" v-if="permission.hasPermission(`user/is-modify-password-status`)">开启密码修改</el-dropdown-item>
+                <el-dropdown-item @click.native="handleIsModifyPassword(scope.row, 0)" v-if="permission.hasPermission(`user/is-modify-password-status`)">关闭密码修改</el-dropdown-item>
+              </el-dropdown-menu>
+            </el-dropdown>
+          </template>
+        </el-table-column>
+      </el-table>
+      <div class="white-box-footer">
+        <!--<el-dropdown size="small" trigger="click"-->
+                     <!--v-show="permission.hasPermission(`user/close-login`)||permission.hasPermission(`user/close-area-login`)||permission.hasPermission(`user/batch-close-login`)">-->
+          <!--<el-button type="primary" size="small" @click.stop="">-->
+            <!--登录管理<i class="el-icon-arrow-down el-icon&#45;&#45;right"></i>-->
+          <!--</el-button>-->
+          <!--<el-dropdown-menu slot="dropdown">-->
+            <!--<el-dropdown-item command="closeLogin" @click.native="handleLoginManage(1)"-->
+                              <!--v-show="permission.hasPermission(`user/batch-close-login`)">按指定会员管理登录-->
+            <!--</el-dropdown-item>-->
+            <!--<el-dropdown-item command="closeLogin" @click.native="handleLoginManage(2)"-->
+                              <!--v-show="permission.hasPermission(`user/close-login`)">按开拓网络管理登录-->
+            <!--</el-dropdown-item>-->
+            <!--<el-dropdown-item command="closeLogin" @click.native="handleLoginManage(3)"-->
+                              <!--v-show="permission.hasPermission(`user/close-login`)">按安置网络管理登录-->
+            <!--</el-dropdown-item>-->
+            <!--<el-dropdown-item command="closeLogin" @click.native="handleLoginManage(4)"-->
+                              <!--v-show="permission.hasPermission(`user/close-login`)">按会员体系管理登录-->
+            <!--</el-dropdown-item>-->
+            <!--<el-dropdown-item command="closeLogin" @click.native="handleLoginManage(5)"-->
+                              <!--v-show="permission.hasPermission(`user/close-area-login`)">按省份地区管理登录-->
+            <!--</el-dropdown-item>-->
+            <!--<el-dropdown-item command="closeLogin" @click.native="handleCloseLogin(1, 1)" v-show="false">禁止商城系统登录-->
+            <!--</el-dropdown-item>-->
+            <!--<el-dropdown-item command="allowLogin" @click.native="handleCloseLogin(0, 1)" v-show="false">允许商城系统登录-->
+            <!--</el-dropdown-item>-->
+            <!--<el-dropdown-item command="closeLogin" @click.native="handleCloseLogin(1, 2)" v-show="false">禁止结算系统登录-->
+            <!--</el-dropdown-item>-->
+            <!--<el-dropdown-item command="allowLogin" @click.native="handleCloseLogin(0, 2)" v-show="false">允许结算系统登录-->
+            <!--</el-dropdown-item>-->
+            <!--<el-dropdown-item command="closeLogin" @click.native="handleCloseLogin(1, 3)" v-show="false">全部禁止登录-->
+            <!--</el-dropdown-item>-->
+            <!--<el-dropdown-item command="allowLogin" @click.native="handleCloseLogin(0, 3)" v-show="false">全部允许登录-->
+            <!--</el-dropdown-item>-->
+          <!--</el-dropdown-menu>-->
+        <!--</el-dropdown>-->
+        <!--<el-dropdown size="small" trigger="click" v-show="permission.hasPermission(`user/is-group`)">-->
+          <!--<el-button type="primary" size="small" @click.stop="">-->
+            <!--团队管理<i class="el-icon-arrow-down el-icon&#45;&#45;right"></i>-->
+          <!--</el-button>-->
+          <!--<el-dropdown-menu slot="dropdown">-->
+            <!--<el-dropdown-item command="isGroup" @click.native="handleGroupManage(true)">设为团队领导人</el-dropdown-item>-->
+            <!--<el-dropdown-item command="notGroup" @click.native="handleGroupManage(false)">取消团队领导人-->
+            <!--</el-dropdown-item>-->
+          <!--</el-dropdown-menu>-->
+        <!--</el-dropdown>-->
+        <el-dropdown size="small" trigger="click" v-show="permission.hasPermission(`user/is-dec`)">
+          <el-button type="primary" size="small" @click.stop="">
+            报单中心管理<i class="el-icon-arrow-down el-icon--right"></i>
+          </el-button>
+          <el-dropdown-menu slot="dropdown">
+            <el-dropdown-item command="isDec" @click.native="handleIsDecManage(true)">设为报单中心</el-dropdown-item>
+            <el-dropdown-item command="notDec" @click.native="handleIsDecManage(false)">取消报单中心
+            </el-dropdown-item>
+          </el-dropdown-menu>
+        </el-dropdown>
+
+        <el-dropdown size="small" trigger="click" v-show="permission.hasPermission(`user/is-studio`)">
+          <el-button type="primary" size="small" @click.stop="">
+            工作室管理<i class="el-icon-arrow-down el-icon--right"></i>
+          </el-button>
+          <el-dropdown-menu slot="dropdown">
+            <el-dropdown-item command="isStudio" @click.native="handleIsStudioManage(true)">设为工作室</el-dropdown-item>
+            <el-dropdown-item command="notStudio" @click.native="handleIsStudioManage(false)">取消工作室
+            </el-dropdown-item>
+          </el-dropdown-menu>
+        </el-dropdown>
+
+        <el-dropdown size="small" trigger="click" v-show="permission.hasPermission(`user/is-atlas`)">
+          <el-button type="primary" size="small" @click.stop="">
+            图谱管理<i class="el-icon-arrow-down el-icon--right"></i>
+          </el-button>
+          <el-dropdown-menu slot="dropdown">
+            <el-dropdown-item command="isAtlas" @click.native="handleIsAtlasManage(true)">显示图谱</el-dropdown-item>
+            <el-dropdown-item command="notAtlas" @click.native="handleIsAtlasManage(false)">隐藏图谱
+            </el-dropdown-item>
+          </el-dropdown-menu>
+        </el-dropdown>
+
+        <el-dropdown size="small" trigger="click" v-show="permission.hasPermission(`user/is-recharge`)">
+          <el-button type="primary" size="small" @click.stop="">
+            充值管理<i class="el-icon-arrow-down el-icon--right"></i>
+          </el-button>
+          <el-dropdown-menu slot="dropdown">
+            <el-dropdown-item command="isAtlas" @click.native="handleIsRechargeManage(true)">显示充值</el-dropdown-item>
+            <el-dropdown-item command="notAtlas" @click.native="handleIsRechargeManage(false)">隐藏充值
+            </el-dropdown-item>
+          </el-dropdown-menu>
+        </el-dropdown>
+        <!--<el-dropdown size="small" trigger="click"-->
+                     <!--v-show="permission.hasPermission(`user/close-dec`)||permission.hasPermission(`user/close-area-dec`)||permission.hasPermission(`user/batch-close-dec`)">-->
+          <!--<el-button type="primary" size="small" @click.stop="">-->
+            <!--报单管理<i class="el-icon-arrow-down el-icon&#45;&#45;right"></i>-->
+          <!--</el-button>-->
+          <!--<el-dropdown-menu slot="dropdown">-->
+            <!--<el-dropdown-item command="closeDec" @click.native="handleDecManage(1)"-->
+                              <!--v-show="permission.hasPermission(`user/batch-close-dec`)">按指定会员管理报单-->
+            <!--</el-dropdown-item>-->
+            <!--<el-dropdown-item command="closeDec" @click.native="handleDecManage(2)"-->
+                              <!--v-show="permission.hasPermission(`user/close-dec`)">按开拓网络管理报单-->
+            <!--</el-dropdown-item>-->
+            <!--<el-dropdown-item command="closeDec" @click.native="handleDecManage(3)"-->
+                              <!--v-show="permission.hasPermission(`user/close-dec`)">按安置网络管理报单-->
+            <!--</el-dropdown-item>-->
+            <!--<el-dropdown-item command="closeDec" @click.native="handleDecManage(4)"-->
+                              <!--v-show="permission.hasPermission(`user/close-dec`)">按会员体系管理报单-->
+            <!--</el-dropdown-item>-->
+            <!--<el-dropdown-item command="closeDec" @click.native="handleDecManage(5)"-->
+                              <!--v-show="permission.hasPermission(`user/close-area-dec`)">按省份地区管理报单-->
+            <!--</el-dropdown-item>-->
+          <!--</el-dropdown-menu>-->
+        <!--</el-dropdown>-->
+        <el-button type="success" size="small" @click="handleExport"
+                   v-show="permission.hasPermission(`user/index-export`)">导出Excel
+        </el-button>
+        <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange"
+                    @current-change="handleCurrentChange"></pagination>
+      </div>
+    </div>
+    <el-dialog :title="formModifyPassword.typeName" :visible.sync="dialogModifyPasswordVisible" width="50%">
+      <el-form ref="form" :model="formModifyPassword" label-width="120px" class="form-dialog">
+        <el-form-item label="类型">
+          <el-select v-model="formModifyPassword.passwordType" placeholder="请选择类型">
+            <el-option v-for="(item,key) in passwordType" :label="item.label" :value="item.type"
+                       :key="key"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="密码">
+          <el-input placeholder="密码" v-model="formModifyPassword.password">
+          </el-input>
+        </el-form-item>
+        <!--<el-form-item label="备注">-->
+          <!--<el-input type="text" :rows="2" placeholder="备注" v-model="formModifyPassword.remark">-->
+          <!--</el-input>-->
+        <!--</el-form-item>-->
+        <el-form-item>
+          <el-button type="primary" @click="handleModifyPasswordSubmit" :loading="submitPasswordButtonStat">提交</el-button>
+        </el-form-item>
+      </el-form>
+    </el-dialog>
+
+    <el-dialog :title="formModifyProfile.typeName" :visible.sync="dialogModifyProfileVisible" width="50%">
+      <el-form ref="form" :model="formModifyProfile" label-width="120px" class="form-dialog">
+        <el-form-item label="民族">
+          <el-select v-model="formModifyProfile.nation" placeholder="请选择民族">
+            <el-option v-for="(item,index) in allNation" :key="index" :label="item.name"
+                       :value="item.id"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="会员姓名">
+          <el-input v-model="formModifyProfile.realName"></el-input>
+        </el-form-item>
+        <el-form-item label="身份证号">
+          <el-input v-model="formModifyProfile.idCard"></el-input>
+        </el-form-item>
+        <el-form-item label="手机号">
+          <el-input v-model="formModifyProfile.mobile"></el-input>
+        </el-form-item>
+        <el-form-item label="银行名称">
+          <el-select v-model="formModifyProfile.openBank" placeholder="请选择银行名称">
+            <el-option v-for="(item,index) in allOpenBank" :key="index" :label="item.BANK_NAME"
+                       :value="item.BANK_CODE"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="开户行地址">
+          <el-input v-model="formModifyProfile.bankAddress"></el-input>
+        </el-form-item>
+        <el-form-item label="银行帐号">
+          <el-input v-model="formModifyProfile.bankNo"></el-input>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="handleModifyProfileSubmit" :loading="submitProfileButtonStat">提交</el-button>
+        </el-form-item>
+      </el-form>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+  import network from './../../utils/network'
+  import tool from './../../utils/tool'
+  import {FRONTEND_SERVER} from '@/utils/config'
+  import baseInfo from '@/utils/baseInfo'
+  import FilterUser from '../../components/FilterUser'
+  import store from './../../utils/vuexStore'
+  import permission from '@/utils/permission'
+  import Pagination from '@/components/Pagination'
+  import filterHelper from '../../utils/filterHelper'
+
+  export default {
+    name: 'user_index',
+    components: {FilterUser, Pagination},
+    mounted() {
+      let _this = this
+      if (permission.hasPermission(`user/close-login`) || permission.hasPermission(`user/close-area-login`) || permission.hasPermission(`user/batch-close-login`)) {
+        network.getData('user/close-login-get').then(response => {
+          _this.apps = response.apps
+          _this.closeSwitch = response.closeSwitch
+          if (permission.hasPermission(`user/close-dec`) || permission.hasPermission(`user/close-area-dec`) || permission.hasPermission(`user/batch-close-dec`)) {
+            network.getData('user/close-dec-get').then(response => {
+              _this.closeDecSwitch = response.closeSwitch
+              _this.getData()
+            }).catch(error => {
+            })
+          } else {
+            _this.getData()
+          }
+        }).catch(error => {
+        })
+      } else {
+        if (permission.hasPermission(`user/close-dec`) || permission.hasPermission(`user/close-area-dec`) || permission.hasPermission(`user/batch-close-dec`)) {
+          network.getData('user/close-dec-get').then(response => {
+            _this.closeDecSwitch = response.closeSwitch
+            _this.getData()
+          }).catch(error => {
+          })
+        } else {
+          _this.getData()
+        }
+      }
+      store.state.socket.onMessageCallback = this.onMessageCallback
+    },
+    data() {
+      return {
+        tableHeaders: null,
+        tableData: null,
+        loading: true,
+        multipleSelection: [],
+        currentPage: 1,
+        totalPages: 1,
+        totalCount: 1,
+        pageSize: 20,
+        frontendServer: FRONTEND_SERVER,
+        baseDecLevels: baseInfo.decLevels(),
+        baseEmpLevels: baseInfo.empLevels(),
+        tool: tool,
+        permission: permission,
+        filterTypes: null,
+        filterModel: {},
+        dialogVisible: false,
+        formCloseLogin: {
+          userName: null,
+          typeName: '登录管理',
+          type: null,
+          isClose: 0,
+          remark: '',
+          areaSelected: null,
+        },
+        regionDataPlus: store.state.regionInfo.regionData,
+        apps: null,
+        closeSwitch: null,
+        submitButtonStat: false,
+        dialogDecVisible: false,
+        dialogModifyPasswordVisible: false,
+        dialogModifyProfileVisible: false,
+        formCloseDec: {
+          userName: null,
+          typeName: '管理报单',
+          type: null,
+          isClose: 0,
+          remark: '',
+          areaSelected: null,
+        },
+        formModifyPassword: {
+            userId:'',
+            password: '',
+            typeName: '修改密码',
+            passwordType: 'password',
+            // remark: '',
+        },
+        formModifyProfile: {
+            userId:'',
+            typeName: '修改个人资料',
+            nation: '',
+            realName: '',
+            idCard: '',
+            mobile: '',
+            openBank: '',
+            bankAddress: '',
+            bankNo: '',
+        },
+        passwordType: [
+            {
+                type:"password",
+                label:"登录密码"
+            },
+            {
+                type:"payPassword",
+                label:"支付密码"
+            },
+        ],
+        allOpenBank:null,
+        allNation:null,
+        submitDecButtonStat: false,
+        submitPasswordButtonStat: false,
+        submitProfileButtonStat: false,
+        transferPropForm: {
+          userIds: [],
+          allowTransfer: true,
+          transferProp: 100,
+          withdrawProp: 0,
+          remark: '',
+        },
+        closeUserData: null,
+      }
+    },
+    methods: {
       handleSelectionChange(val) {
-        this.multipleSelection = val
-      },
-      handleCurrentChange(page) {
-        this.getData(page, this.pageSize)
-      },
-      handleSizeChange(pageSize) {
-        this.getData(this.currentPage, pageSize)
-      },
-      handleAdd() {
-        this.$router.push('/user/user-add')
-      },
-      handleFilterUser(filterData) {
-        filterHelper.handleFilterUser(this, filterData)
-      },
-      handleFilter() {
-        this.getData()
-      },
-      getData(page, pageSize, isLoading = true) {
+
+        this.multipleSelection = val
+      },
+      handleCurrentChange(page) {
+        this.getData(page, this.pageSize)
+      },
+      handleSizeChange(pageSize) {
+        this.getData(this.currentPage, pageSize)
+      },
+      handleAdd() {
+        this.$router.push('/user/user-add')
+      },
+      handleFilterUser(filterData) {
+        filterHelper.handleFilterUser(this, filterData)
+      },
+      handleFilter() {
+        this.getData()
+      },
+      getData(page, pageSize, isLoading = true) {
         network.getPageData(this, 'user/index', page, pageSize, this.filterModel, response => {
-          this.filterTypes = response.filterTypes
-        }, isLoading)
-      },
-      handleGroupManage(isGroup) {
-        if (this.multipleSelection.length < 1) {
-          this.$message({
-            message: '请勾选要操作的会员',
-            type: 'warning'
-          })
-          return
-        }
-        let groupTip = isGroup === true ? '设为团队领导人' : '取消团队领导人'
-        this.$confirm(`确定要对所选会员【${groupTip}】吗?`, '提示', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          type: 'warning'
-        }).then(() => {
-          let selectedIds = []
-          for (let val of this.multipleSelection) {
-            selectedIds.push(val.USER_ID)
-          }
-          return network.postData(`user/is-group`, {userIds: selectedIds, isGroup: isGroup})
-        }).then(response => {
-          this.$message({
-            message: response,
-            type: 'success'
-          })
-          this.getData(this.currentPage, this.pageSize)
-        }).catch(response => {
-
-        })
-      },
-      handleIsDecManage(isDec) {
-          if (this.multipleSelection.length < 1) {
-              this.$message({
-                  message: '请勾选要操作的会员',
-                  type: 'warning'
-              })
-              return
-          }
-          let isDecTip = isDec === true ? '设为报单中心' : '取消报单中心'
-          this.$confirm(`确定要对所选会员【${isDecTip}】吗?`, '提示', {
-              confirmButtonText: '确定',
-              cancelButtonText: '取消',
-              type: 'warning'
-          }).then(() => {
-              let selectedIds = []
-              for (let val of this.multipleSelection) {
-                  selectedIds.push(val.USER_ID)
-              }
-              return network.postData(`user/is-dec`, {userIds: selectedIds, isDec: isDec})
-          }).then(response => {
-              this.$message({
-                  message: response,
-                  type: 'success'
-              })
-              this.getData(this.currentPage, this.pageSize)
-          }).catch(response => {
-
-          })
-      },
-        handleIsStudioManage(isStudio) {
-            if (this.multipleSelection.length < 1) {
-                this.$message({
-                    message: '请勾选要操作的会员',
-                    type: 'warning'
-                })
-                return
-            }
-            let isStudioTip = isStudio === true ? '设为工作室' : '取消工作室'
-            this.$confirm(`确定要对所选会员【${isStudioTip}】吗?`, '提示', {
-                confirmButtonText: '确定',
-                cancelButtonText: '取消',
-                type: 'warning'
-            }).then(() => {
-                let selectedIds = []
-                for (let val of this.multipleSelection) {
-                    selectedIds.push(val.USER_ID)
-                }
-                return network.postData(`user/is-studio`, {userIds: selectedIds, isStudio: isStudio})
-            }).then(response => {
-                this.$message({
-                    message: response,
-                    type: 'success'
-                })
-                this.getData(this.currentPage, this.pageSize)
-            }).catch(response => {
-
-            })
-        },
-        handleIsAtlasManage(isAtlas) {
-            if (this.multipleSelection.length < 1) {
-                this.$message({
-                    message: '请勾选要操作的会员',
-                    type: 'warning'
-                })
-                return
-            }
-            let isAtlasTip = isAtlas === true ? '显示图谱' : '隐藏图谱'
-            this.$confirm(`确定要对所选会员【${isAtlasTip}】吗?`, '提示', {
-                confirmButtonText: '确定',
-                cancelButtonText: '取消',
-                type: 'warning'
-            }).then(() => {
-                let selectedIds = []
-                for (let val of this.multipleSelection) {
-                    selectedIds.push(val.USER_ID)
-                }
-                return network.postData(`user/is-atlas`, {userIds: selectedIds, isAtlas: isAtlas})
-            }).then(response => {
-                this.$message({
-                    message: response,
-                    type: 'success'
-                })
-                this.getData(this.currentPage, this.pageSize)
-            }).catch(response => {
-
-            })
-        },
-        handleIsRechargeManage(isRecharge) {
-            if (this.multipleSelection.length < 1) {
-                this.$message({
-                    message: '请勾选要操作的会员',
-                    type: 'warning'
-                })
-                return
-            }
-            let isRechargeTip = isRecharge === true ? '显示充值' : '隐藏充值'
-            this.$confirm(`确定要对所选会员【${isRechargeTip}】吗?`, '提示', {
-                confirmButtonText: '确定',
-                cancelButtonText: '取消',
-                type: 'warning'
-            }).then(() => {
-                let selectedIds = []
-                for (let val of this.multipleSelection) {
-                    selectedIds.push(val.USER_ID)
-                }
-                return network.postData(`user/is-recharge`, {userIds: selectedIds, isRecharge: isRecharge})
-            }).then(response => {
-                this.$message({
-                    message: response,
-                    type: 'success'
-                })
-                this.getData(this.currentPage, this.pageSize)
-            }).catch(response => {
-
-            })
-        },
-      getTypeName(type) {
-        switch (type) {
-          case 1:
-            return '按指定会员'
-          case 2:
-            return '按开拓网络'
-          case 3:
-            return '按安置网络'
-          case 4:
-            return '按会员体系'
-          case 5:
-            return '按省份地区'
-          default:
-            return ''
-        }
-      },
-      handleLoginManage(type) {
-        if (type === 2 || type === 3 || type === 4) {
-          if (this.multipleSelection.length > 1) {
-            this.$message({
-              message: '此登录管理不允许勾选多名会员',
-              type: 'warning'
-            })
-            return;
-          } else if (this.multipleSelection.length < 1) {
-            this.$message({
-              message: '请选择会员编号',
-              type: 'warning'
-            })
-            return;
-          }
-        }
-        if (type === 1 && this.multipleSelection.length <= 0) {
-          this.$message({
-            message: '请选择会员编号',
-            type: 'warning'
-          })
-          return;
-        }
-        if (type === 5 && this.multipleSelection.length > 0) {
-          this.$message({
-            message: '按照地区关闭登录无需勾选会员',
-            type: 'warning'
-          })
-          return;
-        }
-        this.formCloseLogin = {
-          userName: null,
-          typeName: '登录管理',
-          type: null,
-          isClose: 0,
-          remark: '',
-          areaSelected: null,
-        },
-          this.formCloseLogin.typeName = this.getTypeName(type) + '管理登录'
-        this.formCloseLogin.type = type
-        this.dialogVisible = true
-      },
-      handleCloseLoginSubmit() {
-        this.submitButtonStat = true
-        // 获取所购选的会员,如果是批量关闭指定会员,则走批量关闭方法
-        if (this.formCloseLogin.type === 1) {
-          this.handleCloseLogin(this.formCloseLogin.isClose, this.formCloseLogin.remark)
-        } else {
-          for (let val of this.multipleSelection) {
-            this.formCloseLogin.userName = val.USER_NAME.value
-          }
-          let path = 'user/close-login'
-          if (this.formCloseLogin.type === 5) {
-            path = 'user/close-area-login'
-          }
-          network.postData(path, this.formCloseLogin).then(response => {
-            this.$message({
-              message: response,
-              type: 'success'
-            })
-            this.getData(this.currentPage, this.pageSize)
-            this.submitButtonStat = false
-            this.dialogVisible = false
-          }).catch(response => {
-            this.submitButtonStat = false
-          })
-        }
-      },
-      handleCloseLogin(isClose, remark = '') {
-        let selectedIds = []
-        for (let val of this.multipleSelection) {
-          selectedIds.push(val.USER_ID)
-        }
-        console.log(selectedIds);
-        network.postData(`user/batch-close-login`, {
-          userIds: selectedIds,
-          isClose: isClose,
-          remark: remark,
-          type: 1,
-        }).then(response => {
-          this.$message({
-            message: response,
-            type: 'success'
-          })
-          this.getData(this.currentPage, this.pageSize)
-          this.submitButtonStat = false
-          this.dialogVisible = false
-        }).catch(response => {
-          this.submitButtonStat = false
-        })
-        // let tipStr = isClose ? '禁止' : '允许'
-        // this.$confirm(`确定要${tipStr}所选会员登录?`, '提示', {
-        //   confirmButtonText: '确定',
-        //   cancelButtonText: '取消',
-        //   type: 'warning'
-        // }).then(() => {
-        //   return network.postData(`user/batch-close-login`, {userIds: selectedIds, isClose: isClose})
-        // }).then(response => {
-        //   this.$message({
-        //     message: response,
-        //     type: 'success'
-        //   })
-        //   this.getData(this.currentPage, this.pageSize)
-        // }).catch(response => {
-        //
-        // })
-      },
-      handleExport() {
-        this.$confirm(`确定要导出当前数据吗?`, '提示', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          type: 'warning'
-        }).then(() => {
-          return network.getData(`user/index-export`, this.filterModel)
-        }).then(response => {
-          this.$message({
-            message: response,
-            type: 'success'
-          })
-        }).catch(response => {
-
-        })
-      },
-      onMessageCallback(data) {
-        //this.getData(this.currentPage, this.pageSize, false)
-      },
-      handleDecManage(type) {
-        if (type === 2 || type === 3 || type === 4) {
-          if (this.multipleSelection.length > 1) {
-            this.$message({
-              message: '此报单管理不允许勾选多名会员',
-              type: 'warning'
-            })
-            return;
-          } else if (this.multipleSelection.length < 1) {
-            this.$message({
-              message: '请勾选要管理报单的会员',
-              type: 'warning'
-            })
-            return;
-          }
-        }
-        if (type === 1 && this.multipleSelection.length <= 0) {
-          this.$message({
-            message: '请勾选要管理报单的会员',
-            type: 'warning'
-          })
-          return;
-        }
-        if (type === 5 && this.multipleSelection.length > 0) {
-          this.$message({
-            message: '按照地区关闭报单无需勾选会员',
-            type: 'warning'
-          })
-          return;
-        }
-        this.formCloseDec = {
-          userName: null,
-          typeName: '管理报单',
-          type: null,
-          isClose: 0,
-          remark: '',
-          areaSelected: null,
-        },
-          this.formCloseDec.typeName = this.getTypeName(type) + '管理报单'
-        this.formCloseDec.type = type
-        this.dialogDecVisible = true
-      },
-      handleModifyPassword(row){
-        this.formModifyPassword.userId = row.USER_ID;
-        this.dialogModifyPasswordVisible = true
-      },
-      handleModifyProfile(row){
-          this.dialogModifyProfileVisible = true
-          let vueObj = this
-          network.getData('user/profile-get', {id: row.USER_ID}).then(response => {
-              vueObj.formModifyProfile = response.userInfo
-              vueObj.allOpenBank = response.allOpenBank
-              vueObj.allNation = response.allNation
-          })
-      },
-      handleCloseDecSubmit() {
-        this.submitDecButtonStat = true
-        // 获取所购选的会员,如果是批量关闭指定会员,则走批量关闭方法
-        if (this.formCloseDec.type === 1) {
-          this.handleCloseDec(this.formCloseDec.isClose, this.formCloseDec.remark)
-        } else {
-          for (let val of this.multipleSelection) {
-            this.formCloseDec.userName = val.USER_NAME.value
-          }
-          let path = 'user/close-dec'
-          if (this.formCloseDec.type === 5) {
-            path = 'user/close-area-dec'
-          }
-          network.postData(path, this.formCloseDec).then(response => {
-            this.$message({
-              message: response,
-              type: 'success'
-            })
-            this.getData(this.currentPage, this.pageSize)
-            this.submitDecButtonStat = false
-            this.dialogDecVisible = false
-          }).catch(response => {
-            this.submitDecButtonStat = false
-          })
-        }
-      },
-      handleCloseDec(isClose, remark = '') {
-        let selectedIds = []
-        for (let val of this.multipleSelection) {
-          selectedIds.push(val.USER_ID)
-        }
-        network.postData(`user/batch-close-dec`, {
-          userIds: selectedIds,
-          isClose: isClose,
-          remark: remark,
-          type: 1,
-        }).then(response => {
-          this.$message({
-            message: response,
-            type: 'success'
-          })
-          this.getData(this.currentPage, this.pageSize)
-          this.submitDecButtonStat = false
-          this.dialogDecVisible = false
-        }).catch(response => {
-          this.submitDecButtonStat = false
-        })
-      },
-        handleStatusActive(row){
-            network.postData('user/modify-status',{userId:row.USER_ID,status:1}).then(response=>{
-                    this.$message({
-                        message: response,
-                        type: 'success'
-                    })
-                    this.getData(this.currentPage, this.pageSize)
-                })
-        },
-        handleStatusLock(row){
-            network.postData('user/modify-status',{userId:row.USER_ID,status:0}).then(response=>{
-                    this.$message({
-                        message: response,
-                        type: 'success'
-                    })
-                    this.getData(this.currentPage, this.pageSize)
-                })
-        },
-        handleIsModifyPassword(row, status){
-          network.postData('user/is-modify-password-status',{userId:row.USER_ID,status:status}).then(response=>{
-            this.$message({
-              message: response,
-              type: 'success'
-            })
-            this.getData(this.currentPage, this.pageSize)
-          })
-        },
-      handleModifyPasswordSubmit() {
-            this.submitPasswordButtonStat = true
-              let path = 'user/modify-password'
-              network.postData(path, this.formModifyPassword).then(response => {
-                  this.$message({
-                      message: response,
-                      type: 'success'
-                  })
-                  this.getData(this.currentPage, this.pageSize)
-                  this.submitPasswordButtonStat = false
-                  this.dialogModifyPasswordVisible = false
-              }).catch(response => {
-                  this.submitPasswordButtonStat = false
-              })
-        },
-        handleModifyProfileSubmit() {
-            this.submitProfileButtonStat = true
-            let path = 'user/modify-profile'
-            network.postData(path, this.formModifyProfile).then(response => {
-                this.$message({
-                    message: response,
-                    type: 'success'
-                })
-                this.getData(this.currentPage, this.pageSize)
-                this.submitProfileButtonStat = false
-                this.dialogModifyProfileVisible = false
-            }).catch(response => {
-                this.submitProfileButtonStat = false
-            })
-        },
-    }
-  }
-
-</script>
-
+          console.log(response.filterTypes);
+          this.filterTypes = response.filterTypes
+        }, isLoading)
+      },
+      handleGroupManage(isGroup) {
+        if (this.multipleSelection.length < 1) {
+          this.$message({
+            message: '请勾选要操作的会员',
+            type: 'warning'
+          })
+          return
+        }
+        let groupTip = isGroup === true ? '设为团队领导人' : '取消团队领导人'
+        this.$confirm(`确定要对所选会员【${groupTip}】吗?`, '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          let selectedIds = []
+          for (let val of this.multipleSelection) {
+            selectedIds.push(val.USER_ID)
+          }
+          return network.postData(`user/is-group`, {userIds: selectedIds, isGroup: isGroup})
+        }).then(response => {
+          this.$message({
+            message: response,
+            type: 'success'
+          })
+          this.getData(this.currentPage, this.pageSize)
+        }).catch(response => {
+
+        })
+      },
+      handleIsDecManage(isDec) {
+          if (this.multipleSelection.length < 1) {
+              this.$message({
+                  message: '请勾选要操作的会员',
+                  type: 'warning'
+              })
+              return
+          }
+          let isDecTip = isDec === true ? '设为报单中心' : '取消报单中心'
+          this.$confirm(`确定要对所选会员【${isDecTip}】吗?`, '提示', {
+              confirmButtonText: '确定',
+              cancelButtonText: '取消',
+              type: 'warning'
+          }).then(() => {
+              let selectedIds = []
+              for (let val of this.multipleSelection) {
+                  selectedIds.push(val.USER_ID)
+              }
+              return network.postData(`user/is-dec`, {userIds: selectedIds, isDec: isDec})
+          }).then(response => {
+              this.$message({
+                  message: response,
+                  type: 'success'
+              })
+              this.getData(this.currentPage, this.pageSize)
+          }).catch(response => {
+
+          })
+      },
+        handleIsStudioManage(isStudio) {
+            if (this.multipleSelection.length < 1) {
+                this.$message({
+                    message: '请勾选要操作的会员',
+                    type: 'warning'
+                })
+                return
+            }
+            let isStudioTip = isStudio === true ? '设为工作室' : '取消工作室'
+            this.$confirm(`确定要对所选会员【${isStudioTip}】吗?`, '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                let selectedIds = []
+                for (let val of this.multipleSelection) {
+                    selectedIds.push(val.USER_ID)
+                }
+                return network.postData(`user/is-studio`, {userIds: selectedIds, isStudio: isStudio})
+            }).then(response => {
+                this.$message({
+                    message: response,
+                    type: 'success'
+                })
+                this.getData(this.currentPage, this.pageSize)
+            }).catch(response => {
+
+            })
+        },
+        handleIsAtlasManage(isAtlas) {
+            if (this.multipleSelection.length < 1) {
+                this.$message({
+                    message: '请勾选要操作的会员',
+                    type: 'warning'
+                })
+                return
+            }
+            let isAtlasTip = isAtlas === true ? '显示图谱' : '隐藏图谱'
+            this.$confirm(`确定要对所选会员【${isAtlasTip}】吗?`, '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                let selectedIds = []
+                for (let val of this.multipleSelection) {
+                    selectedIds.push(val.USER_ID)
+                }
+                return network.postData(`user/is-atlas`, {userIds: selectedIds, isAtlas: isAtlas})
+            }).then(response => {
+                this.$message({
+                    message: response,
+                    type: 'success'
+                })
+                this.getData(this.currentPage, this.pageSize)
+            }).catch(response => {
+
+            })
+        },
+        handleIsRechargeManage(isRecharge) {
+            if (this.multipleSelection.length < 1) {
+                this.$message({
+                    message: '请勾选要操作的会员',
+                    type: 'warning'
+                })
+                return
+            }
+            let isRechargeTip = isRecharge === true ? '显示充值' : '隐藏充值'
+            this.$confirm(`确定要对所选会员【${isRechargeTip}】吗?`, '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                let selectedIds = []
+                for (let val of this.multipleSelection) {
+                    selectedIds.push(val.USER_ID)
+                }
+                return network.postData(`user/is-recharge`, {userIds: selectedIds, isRecharge: isRecharge})
+            }).then(response => {
+                this.$message({
+                    message: response,
+                    type: 'success'
+                })
+                this.getData(this.currentPage, this.pageSize)
+            }).catch(response => {
+
+            })
+        },
+      getTypeName(type) {
+        switch (type) {
+          case 1:
+            return '按指定会员'
+          case 2:
+            return '按开拓网络'
+          case 3:
+            return '按安置网络'
+          case 4:
+            return '按会员体系'
+          case 5:
+            return '按省份地区'
+          default:
+            return ''
+        }
+      },
+      handleLoginManage(type) {
+        if (type === 2 || type === 3 || type === 4) {
+          if (this.multipleSelection.length > 1) {
+            this.$message({
+              message: '此登录管理不允许勾选多名会员',
+              type: 'warning'
+            })
+            return;
+          } else if (this.multipleSelection.length < 1) {
+            this.$message({
+              message: '请选择会员编号',
+              type: 'warning'
+            })
+            return;
+          }
+        }
+        if (type === 1 && this.multipleSelection.length <= 0) {
+          this.$message({
+            message: '请选择会员编号',
+            type: 'warning'
+          })
+          return;
+        }
+        if (type === 5 && this.multipleSelection.length > 0) {
+          this.$message({
+            message: '按照地区关闭登录无需勾选会员',
+            type: 'warning'
+          })
+          return;
+        }
+        this.formCloseLogin = {
+          userName: null,
+          typeName: '登录管理',
+          type: null,
+          isClose: 0,
+          remark: '',
+          areaSelected: null,
+        },
+          this.formCloseLogin.typeName = this.getTypeName(type) + '管理登录'
+        this.formCloseLogin.type = type
+        this.dialogVisible = true
+      },
+      handleCloseLoginSubmit() {
+        this.submitButtonStat = true
+        // 获取所购选的会员,如果是批量关闭指定会员,则走批量关闭方法
+        if (this.formCloseLogin.type === 1) {
+          this.handleCloseLogin(this.formCloseLogin.isClose, this.formCloseLogin.remark)
+        } else {
+          for (let val of this.multipleSelection) {
+            this.formCloseLogin.userName = val.USER_NAME.value
+          }
+          let path = 'user/close-login'
+          if (this.formCloseLogin.type === 5) {
+            path = 'user/close-area-login'
+          }
+          network.postData(path, this.formCloseLogin).then(response => {
+            this.$message({
+              message: response,
+              type: 'success'
+            })
+            this.getData(this.currentPage, this.pageSize)
+            this.submitButtonStat = false
+            this.dialogVisible = false
+          }).catch(response => {
+            this.submitButtonStat = false
+          })
+        }
+      },
+      handleCloseLogin(isClose, remark = '') {
+        let selectedIds = []
+        for (let val of this.multipleSelection) {
+          selectedIds.push(val.USER_ID)
+        }
+        console.log(selectedIds);
+        network.postData(`user/batch-close-login`, {
+          userIds: selectedIds,
+          isClose: isClose,
+          remark: remark,
+          type: 1,
+        }).then(response => {
+          this.$message({
+            message: response,
+            type: 'success'
+          })
+          this.getData(this.currentPage, this.pageSize)
+          this.submitButtonStat = false
+          this.dialogVisible = false
+        }).catch(response => {
+          this.submitButtonStat = false
+        })
+        // let tipStr = isClose ? '禁止' : '允许'
+        // this.$confirm(`确定要${tipStr}所选会员登录?`, '提示', {
+        //   confirmButtonText: '确定',
+        //   cancelButtonText: '取消',
+        //   type: 'warning'
+        // }).then(() => {
+        //   return network.postData(`user/batch-close-login`, {userIds: selectedIds, isClose: isClose})
+        // }).then(response => {
+        //   this.$message({
+        //     message: response,
+        //     type: 'success'
+        //   })
+        //   this.getData(this.currentPage, this.pageSize)
+        // }).catch(response => {
+        //
+        // })
+      },
+      handleExport() {
+        this.$confirm(`确定要导出当前数据吗?`, '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          return network.getData(`user/index-export`, this.filterModel)
+        }).then(response => {
+          this.$message({
+            message: response,
+            type: 'success'
+          })
+        }).catch(response => {
+
+        })
+      },
+      onMessageCallback(data) {
+        //this.getData(this.currentPage, this.pageSize, false)
+      },
+      handleDecManage(type) {
+        if (type === 2 || type === 3 || type === 4) {
+          if (this.multipleSelection.length > 1) {
+            this.$message({
+              message: '此报单管理不允许勾选多名会员',
+              type: 'warning'
+            })
+            return;
+          } else if (this.multipleSelection.length < 1) {
+            this.$message({
+              message: '请勾选要管理报单的会员',
+              type: 'warning'
+            })
+            return;
+          }
+        }
+        if (type === 1 && this.multipleSelection.length <= 0) {
+          this.$message({
+            message: '请勾选要管理报单的会员',
+            type: 'warning'
+          })
+          return;
+        }
+        if (type === 5 && this.multipleSelection.length > 0) {
+          this.$message({
+            message: '按照地区关闭报单无需勾选会员',
+            type: 'warning'
+          })
+          return;
+        }
+        this.formCloseDec = {
+          userName: null,
+          typeName: '管理报单',
+          type: null,
+          isClose: 0,
+          remark: '',
+          areaSelected: null,
+        },
+          this.formCloseDec.typeName = this.getTypeName(type) + '管理报单'
+        this.formCloseDec.type = type
+        this.dialogDecVisible = true
+      },
+      handleModifyPassword(row){
+        this.formModifyPassword.userId = row.USER_ID;
+        this.dialogModifyPasswordVisible = true
+      },
+      handleModifyProfile(row){
+          this.dialogModifyProfileVisible = true
+          let vueObj = this
+          network.getData('user/profile-get', {id: row.USER_ID}).then(response => {
+              vueObj.formModifyProfile = response.userInfo
+              vueObj.allOpenBank = response.allOpenBank
+              vueObj.allNation = response.allNation
+          })
+      },
+      handleCloseDecSubmit() {
+        this.submitDecButtonStat = true
+        // 获取所购选的会员,如果是批量关闭指定会员,则走批量关闭方法
+        if (this.formCloseDec.type === 1) {
+          this.handleCloseDec(this.formCloseDec.isClose, this.formCloseDec.remark)
+        } else {
+          for (let val of this.multipleSelection) {
+            this.formCloseDec.userName = val.USER_NAME.value
+          }
+          let path = 'user/close-dec'
+          if (this.formCloseDec.type === 5) {
+            path = 'user/close-area-dec'
+          }
+          network.postData(path, this.formCloseDec).then(response => {
+            this.$message({
+              message: response,
+              type: 'success'
+            })
+            this.getData(this.currentPage, this.pageSize)
+            this.submitDecButtonStat = false
+            this.dialogDecVisible = false
+          }).catch(response => {
+            this.submitDecButtonStat = false
+          })
+        }
+      },
+      handleCloseDec(isClose, remark = '') {
+        let selectedIds = []
+        for (let val of this.multipleSelection) {
+          selectedIds.push(val.USER_ID)
+        }
+        network.postData(`user/batch-close-dec`, {
+          userIds: selectedIds,
+          isClose: isClose,
+          remark: remark,
+          type: 1,
+        }).then(response => {
+          this.$message({
+            message: response,
+            type: 'success'
+          })
+          this.getData(this.currentPage, this.pageSize)
+          this.submitDecButtonStat = false
+          this.dialogDecVisible = false
+        }).catch(response => {
+          this.submitDecButtonStat = false
+        })
+      },
+        handleStatusActive(row){
+            network.postData('user/modify-status',{userId:row.USER_ID,status:1}).then(response=>{
+                    this.$message({
+                        message: response,
+                        type: 'success'
+                    })
+                    this.getData(this.currentPage, this.pageSize)
+                })
+        },
+        handleStatusLock(row){
+            network.postData('user/modify-status',{userId:row.USER_ID,status:0}).then(response=>{
+                    this.$message({
+                        message: response,
+                        type: 'success'
+                    })
+                    this.getData(this.currentPage, this.pageSize)
+                })
+        },
+        handleIsModifyPassword(row, status){
+          network.postData('user/is-modify-password-status',{userId:row.USER_ID,status:status}).then(response=>{
+            this.$message({
+              message: response,
+              type: 'success'
+            })
+            this.getData(this.currentPage, this.pageSize)
+          })
+        },
+      handleModifyPasswordSubmit() {
+            this.submitPasswordButtonStat = true
+              let path = 'user/modify-password'
+              network.postData(path, this.formModifyPassword).then(response => {
+                  this.$message({
+                      message: response,
+                      type: 'success'
+                  })
+                  this.getData(this.currentPage, this.pageSize)
+                  this.submitPasswordButtonStat = false
+                  this.dialogModifyPasswordVisible = false
+              }).catch(response => {
+                  this.submitPasswordButtonStat = false
+              })
+        },
+        handleModifyProfileSubmit() {
+            this.submitProfileButtonStat = true
+            let path = 'user/modify-profile'
+            network.postData(path, this.formModifyProfile).then(response => {
+                this.$message({
+                    message: response,
+                    type: 'success'
+                })
+                this.getData(this.currentPage, this.pageSize)
+                this.submitProfileButtonStat = false
+                this.dialogModifyProfileVisible = false
+            }).catch(response => {
+                this.submitProfileButtonStat = false
+            })
+        },
+    }
+  }
+
+</script>