moonsflyer преди 2 месеца
родител
ревизия
489d72b184

+ 0 - 89
app/admin/controller/user/Level.php

@@ -1,89 +0,0 @@
-<?php
-namespace app\admin\controller\user;
-
-
-use app\common\basics\AdminBase;
-use app\common\server\ConfigServer;
-use app\common\server\JsonServer;
-use think\exception\ValidateException;
-use app\admin\validate\user\LevelValidate;
-use app\admin\logic\user\LevelLogic;
-
-class Level extends AdminBase
-{
-    public function lists()
-    {
-        if($this->request->isAjax()){
-            $get = $this->request->get();
-            $lists = LevelLogic::lists($get);
-            return JsonServer::success('', $lists);
-        }
-        return view();
-    }
-
-    public function add()
-    {
-        if($this->request->isAjax()) {
-            try{
-                $post = $this->request->post();
-                validate(LevelValidate::class)->scene('add')->check($post);
-            }catch(ValidateException $e) {
-                return JsonServer::error($e->getError());
-            }
-            $result = LevelLogic::add($post);
-            if($result === true) {
-                return JsonServer::success('添加成功');
-            }
-            return JsonServer::error(LevelLogic::getError());
-        }
-        return view();
-    }
-
-    public function edit(){
-        if($this->request->isAjax()){
-            try{
-                $post = $this->request->post();
-                validate(LevelValidate::class)->scene('edit')->check($post);
-            }catch(ValidateException $e) {
-                return JsonServer::error($e->getError());
-            }
-            $result = LevelLogic::edit($post);
-            if($result === true) {
-                return JsonServer::success('编辑成功');
-            }
-            return JsonServer::error(LevelLogic::getError());
-        }
-
-        $id = $this->request->get('id', '', 'intval');
-        $detail = LevelLogic::getUserLevel($id);
-        return view('', [
-            'detail' => $detail
-        ]);
-    }
-
-    public function del()
-    {
-        $id = $this->request->post('id', '',  'intval');
-        $result = LevelLogic::del($id);
-        if($result === true) {
-            return JsonServer::success('删除成功');
-        }
-        return JsonServer::error(LevelLogic::getError());
-    }
-
-    public function set()
-    {
-        if($this->request->isAjax()) {
-            $post = $this->request->post();
-            ConfigServer::set('user_level', 'intro', $post['intro']);
-            return JsonServer::success('设置成功');
-        }
-        $intro = ConfigServer::get('user_level', 'intro');
-        $intro_default = config('default.user_level.intro');
-
-        return view('', [
-            'intro' => $intro,
-            'intro_default' => $intro_default
-        ]);
-    }
-}

+ 0 - 72
app/admin/controller/user/Tag.php

@@ -1,72 +0,0 @@
-<?php
-namespace app\admin\controller\user;
-
-use app\admin\logic\user\TagLogic;
-use app\common\basics\AdminBase;
-use app\common\server\JsonServer;
-use think\exception\ValidateException;
-use app\admin\validate\user\TagValidate;
-
-class Tag extends AdminBase
-{
-    public function lists()
-    {
-        if($this->request->isAjax()) {
-            $get = $this->request->get();
-            $data = TagLogic::lists($get);
-            return JsonServer::success('', $data);
-        }
-        return view();
-    }
-
-    public function add()
-    {
-        if($this->request->isPost()) {
-            $post = $this->request->post();
-            try{
-                validate(TagValidate::class)->scene('add')->check($post);
-            }catch(ValidateException $e) {
-                return JsonServer::error($e->getError());
-            }
-            $result = TagLogic::add($post);
-            if($result === true) {
-                return JsonServer::success('添加成功');
-            }
-            return JsonServer::error(TagLogic::getError());
-        }
-        return view();
-    }
-
-    public function edit()
-    {
-        if($this->request->isPost()) {
-            $post = $this->request->post();
-            try{
-                validate(TagValidate::class)->scene('edit')->check($post);
-            }catch(ValidateException $e) {
-                return JsonServer::error($e->getError());
-            }
-            $result = TagLogic::edit($post);
-            if($result === true) {
-                return JsonServer::success('编辑成功');
-            }
-            return JsonServer::error(TagLogic::getError());
-        }
-
-        $id = $this->request->get('id', '', 'intval');
-        $detail = TagLogic::detail($id);
-        return view('', [
-            'detail' => $detail
-        ]);
-    }
-
-    public function del()
-    {
-        $id = $this->request->post('id', '', 'intval');
-        $result = TagLogic::del($id);
-        if($result === true) {
-            return JsonServer::success('删除成功');
-        }
-        return JsonServer::error(TagLogic::getError());
-    }
-}

+ 0 - 171
app/admin/controller/user/User.php

@@ -1,171 +0,0 @@
-<?php
-namespace app\admin\controller\user;
-
-use app\admin\logic\user\TagLogic;
-use app\common\basics\AdminBase;
-use app\admin\logic\user\LevelLogic;
-use app\admin\logic\user\UserLogic;
-use app\common\model\user\UserLevel;
-use app\common\server\JsonServer;
-use app\common\enum\ClientEnum;
-use app\admin\validate\user\UserValidate;
-use think\exception\ValidateException;
-
-class User extends  AdminBase
-{
-    public function lists(){
-        if ($this->request->isAjax()) {
-            $get = $this->request->get();
-            return JsonServer::success('', UserLogic::lists($get));
-        }
-
-        return view('', [
-            'level_list' => LevelLogic::getLevelList(),
-            'tag_list' => TagLogic::getTagList(),
-            'client_list' => ClientEnum::getClient(true)
-        ]);
-    }
-
-    public function setTag(){
-        if($this->request->isAjax()){
-            $post = $this->request->post();
-            try{
-                validate(UserValidate::class)->scene('setTag')->check($post);
-            }catch(ValidateException $e) {
-                return JsonServer::error($e->getMessage());
-            }
-            $result = UserLogic::setTag($post);
-            if($result === true) {
-                return JsonServer::success('设置成功');
-            }
-            return JsonServer::error(UserLogic::getError());
-        }
-        return view('', [
-            'tag_list' => json_encode(TagLogic::getTagList())
-        ]);
-    }
-
-    public function edit(){
-        if($this->request->isAjax()){
-            $post = $this->request->post();
-            try{
-                validate(UserValidate::class)->scene('edit')->check($post);
-            }catch(ValidateException $e) {
-                return JsonServer::error($e->getMessage());
-            }
-            $result = UserLogic::edit($post);
-            if($result === true) {
-                return JsonServer::success('编辑成功');
-            }
-            return JsonServer::error(UserLogic::getError());
-        }
-
-        $id = $this->request->get('id', '', 'intval');
-        $detail = UserLogic::getUser($id);
-
-        return view('', [
-            'info' => $detail,
-            'tag_list' => json_encode(TagLogic::getTagList())
-        ]);
-    }
-
-    public function info(){
-        $id = $this->request->get('id', '', 'intval');
-        $detail = UserLogic::getInfo($id);
-        return view('', [
-            'detail' => $detail
-        ]);
-    }
-
-    public function adjustAccount(){
-        if ($this->request->isAjax()) {
-            $post = $this->request->post();
-            try{
-                validate(UserValidate::class)->scene('adjustAccount')->check($post);
-            }catch(ValidateException $e) {
-                return JsonServer::error($e->getError());
-            }
-
-            $result = UserLogic::adjustAccount($post);
-            if($result === true) {
-                return JsonServer::success('调整成功');
-            }
-            return JsonServer::error(UserLogic::getError());
-
-        }
-        $id = $this->request->get('id', '', 'intval');
-        return view('', [
-            'info' => UserLogic::getUser($id)
-        ]);
-    }
-
-    public function adjustLevel(){
-        if ($this->request->isPost()) {
-            $params = $this->request->post();
-            $result = UserLogic::adjustLevel($params);
-            if ($result) {
-                return JsonServer::success('调整成功');
-            }
-            return JsonServer::error(UserLogic::getError());
-        }
-
-        $id = $this->request->get('id/d');
-        $levels = UserLevel::where('del', 0)->order('growth_value', 'asc')->column('id,name', 'id');
-        $userLevel = \app\common\model\user\User::where('id', $id)->value('level');
-        $userLevelName = isset($levels[$userLevel]) ? $levels[$userLevel]['name'] : '无等级';
-        return view('', [
-            'levels' => $levels,
-            'user_level_name' => $userLevelName,
-            'user_id' => $id
-        ]);
-    }
-
-    public function adjustFirstLeader()
-    {
-        if($this->request->isPost()) {
-            $params = $this->request->post();
-            $result = UserLogic::adjustFirstLeader($params);
-            if ($result) {
-                return JsonServer::success('调整成功');
-            }
-            return JsonServer::error(UserLogic::getError());
-        }
-
-        $id = $this->request->get('id/d');
-        $user =  \app\common\model\user\User::field('id,sn,nickname,first_leader')->findOrEmpty($id)->toArray();
-        $firstLeader = \app\common\model\user\User::getUserInfo($user['first_leader']);
-        return view('', [
-            'user_id' => $id,
-            'user' => $user,
-            'first_leader' => $firstLeader
-        ]);
-    }
-
-    public function userLists()
-    {
-        if ($this->request->isPost()) {
-            $params = $this->request->post();
-            $lists = UserLogic::userLists($params);
-            return JsonServer::success('', $lists);
-        }
-        return view();
-    }
-
-    /**
-     * @notes 推荐下级
-     * @return \think\response\View
-     * @author Tab
-     * @date 2021/9/8 20:40
-     */
-    public function fans()
-    {
-        if ($this->request->isPost()) {
-            $params = $this->request->post();
-            $result = UserLogic::fans($params);
-            return JsonServer::success('', $result);
-        }
-
-        $id = $this->request->get('id/d');
-        return view('', ['id' => $id]);
-    }
-}

+ 0 - 210
app/admin/logic/user/LevelLogic.php

@@ -1,210 +0,0 @@
-<?php
-namespace app\admin\logic\user;
-
-use app\common\basics\Logic;
-use app\common\model\user\User;
-use app\common\model\user\UserLevel;
-use app\common\server\UrlServer;
-use think\facade\Db;
-
-class LevelLogic extends Logic
-{
-    public static function lists($get)
-    {
-        $count = UserLevel::where(['del'=>0])->count();
-        $lists = UserLevel::where(['del'=>0])->order('growth_value', 'asc')->page($get['page'], $get['limit'])->select()->toArray();
-
-        foreach ($lists as &$item){
-            $item['image'] = UrlServer::getFileUrl($item['image']);
-            $item['background_image'] = UrlServer::getFileUrl($item['background_image']);
-        }
-        return ['count' => $count, 'lists' => $lists];
-    }
-
-    public static function add($post)
-    {
-        Db::startTrans();
-        try{
-            $userLevel = UserLevel::where(['name'=>trim($post['name']), 'del'=>0])->findOrEmpty();
-            if(!$userLevel->isEmpty()) {
-                throw new \think\Exception('等级名称已被使用,请更换后重试');
-            }
-            $userLevel = UserLevel::where(['growth_value'=>intval($post['growth_value']), 'del'=>0])->findOrEmpty();
-            if(!$userLevel->isEmpty()) {
-                throw new \think\Exception('指定成长值的等级已存在');
-            }
-            $time = time();
-            $data = [
-                'name' => trim($post['name']),
-                'growth_value' => intval($post['growth_value']),
-                'image' => clearDomain($post['image']),
-                'background_image' => clearDomain($post['background_image']),
-                'remark' => trim($post['remark']),
-                'discount' => $post['discount'],
-                'create_time' => $time,
-                'update_time' => $time,
-                'del' => 0
-            ];
-            UserLevel::create($data);
-            // 更新会员等级
-            $userArr = User::field('id,level,user_growth')->where('del', 0)->select()->toArray();
-            self::updateUserLevel($userArr);
-            Db::commit();
-            return true;
-        }catch(\Exception $e) {
-            Db::rollback();
-            self::$error = $e->getMessage();
-            return false;
-        }
-    }
-
-    public static function getUserLevel($id){
-        $detail = UserLevel::where(['id'=>$id,'del'=>0])->findOrEmpty();
-        if($detail->isEmpty()) {
-            return [];
-        }
-        $detail = $detail->toArray();
-        $detail['image'] = UrlServer::getFileUrl($detail['image']);
-        $detail['background_image'] = UrlServer::getFileUrl($detail['background_image']);
-        return $detail;
-    }
-
-    public static function edit($post)
-    {
-        if(empty($post['discount']) || $post['discount'] === ''){
-            $post['discount'] = 10;
-        }
-        Db::startTrans();
-        try{
-            $userLevel = UserLevel::where([
-                ['name', '=', trim($post['name'])],
-                ['del', '=', 0],
-                ['id', '<>', $post['id']]
-            ])->findOrEmpty();
-            if(!$userLevel->isEmpty()) {
-                throw new \think\Exception('等级名称已被使用,请更换后重试');
-            }
-            $userLevel = UserLevel::where([
-                ['growth_value', '=', intval($post['growth_value'])],
-                ['del', '=', 0],
-                ['id', '<>', $post['id']]
-            ])->findOrEmpty();
-            if(!$userLevel->isEmpty()) {
-                throw new \think\Exception('指定成长值的等级已存在');
-            }
-            $time = time();
-            $data = [
-                'id' => $post['id'],
-                'name' => trim($post['name']),
-                'growth_value' => intval($post['growth_value']),
-                'image' => clearDomain($post['image']),
-                'background_image' => clearDomain($post['background_image']),
-                'discount' => $post['discount'],
-                'remark' => trim($post['remark']),
-                'update_time' => $time,
-                'del' => 0
-            ];
-            UserLevel::update($data);
-            // 更新会员等级
-            $userArr = User::field('id,level,user_growth')->where('del', 0)->select()->toArray();
-            self::updateUserLevel($userArr);
-            Db::commit();
-            return true;
-        }catch(\Exception $e) {
-            Db::rollback();
-            self::$error = $e->getMessage();
-            return false;
-        }
-    }
-
-    public static function del($id)
-    {
-        Db::startTrans();
-        try{
-            $data = [
-                'id' => $id,
-                'del' => 1,
-                'update_time' => time()
-            ];
-            UserLevel::update($data);
-            // 更新会员等级
-            $userArr = User::field('id,level,user_growth')->where('del', 0)->select()->toArray();
-            self::updateUserLevel($userArr);
-            Db::commit();
-            return true;
-        }catch(\Exception $e) {
-            Db::rollback();
-            self::$error = $e->getMessage();
-            return false;
-        }
-    }
-
-    /**
-     * 更新会员等级
-     * 原则:只升不降
-     * $userArr 需要更新会员等级的用户数组,必须的字段:id,level,user_growth
-     */
-    public static function updateUserLevel($userArr)
-    {
-        // 所有会员等级
-        $userLevelArr = UserLevel::field('id,growth_value')->where('del', 0)
-            ->order('growth_value', 'desc')
-            ->select()
-            ->toArray();
-        if(empty($userLevelArr)) { // 未设置会员等级
-            // 全部会员等级统一更新为0
-            User::where('del', 0)->update([
-                'level' => 0,
-                'update_time' => time()
-            ]);
-        }
-        // 转格式,变为id为数组下标
-        $levelArr = [];
-        foreach($userLevelArr as $item) {
-            $levelArr[$item['id']] = $item;
-        }
-
-        $updateData = [];
-        foreach($levelArr as $level) {
-            $filterIds = []; // 本轮结束已处理的会员id
-            foreach($userArr as $user) {
-                if($user['user_growth'] >= $level['growth_value']) {
-                    $targetLevelGrwothValue = $level['growth_value']; // 目标会员等级成长值
-                    // 原会员等级成长值
-                    $originLevelGrowthValue = isset($levelArr[$user['level']]) ? $levelArr[$user['level']]['growth_value'] : 0;
-                    // 降级或等级一样,不处理直接下一轮循环
-                    if($originLevelGrowthValue > $targetLevelGrwothValue) {
-                        $filterIds[] = $user['id'];
-                        continue;
-                    }
-                    $updateData[] = ['id'=>$user['id'], 'level'=>$level['id']];
-                    $filterIds[] = $user['id'];
-                }
-            }
-            // 过滤已处理过的用户,避免重复更新
-            $userArr = array_filter($userArr, function($item) use ($filterIds){
-                return !in_array($item['id'], $filterIds);
-            });
-        }
-
-        // 剩余未处理的会员,若原有等级已被删除掉,直接置为0
-        foreach($userArr as $user) {
-            if(!isset($levelArr[$user['level']])) {
-                $updateData[] = ['id'=>$user['id'], 'level'=>0];
-            }
-        }
-        $userModel = new User();
-        $userModel->saveAll($updateData);
-    }
-
-    public static function getLevelList()
-    {
-        $levelArr = UserLevel::field('id,name')
-            ->where('del', 0)
-            ->order('growth_value', 'asc')
-            ->select()
-            ->toArray();
-        $levelArr[0] = ['id'=>0, 'name'=>'暂无等级'];
-        return $levelArr;
-    }
-}

+ 0 - 108
app/admin/logic/user/TagLogic.php

@@ -1,108 +0,0 @@
-<?php
-namespace app\admin\logic\user;
-
-use app\common\basics\Logic;
-use app\common\model\user\UserTag;
-use app\common\model\user\User;
-
-class TagLogic extends Logic
-{
-    public static function lists($get)
-    {
-        $lists = UserTag::where(['del'=>0])->page($get['page'], $get['limit'])->select()->toArray();
-        $count = UserTag::where(['del'=>0])->count();
-        return [
-            'lists' => $lists,
-            'count' => $count
-        ];
-    }
-
-    public static function add($post)
-    {
-        try{
-            // 判断新标签名称是否已被占用
-            $userTag = UserTag::where(['name'=>trim($post['name']), 'del'=>0])->findOrEmpty();
-            if(!$userTag->isEmpty()) {
-                throw new \think\Exception('标签名称已被使用,请换个名称重试');
-            }
-            $time = time();
-            $data = [
-                'name' => trim($post['name']),
-                'remark' => trim($post['remark']),
-                'create_time' => $time,
-                'update_time' => $time,
-                'del' => 0
-            ];
-            UserTag::create($data);
-            return true;
-        }catch(\Exception $e) {
-            self::$error = $e->getMessage();
-            return false;
-        }
-    }
-
-    public static function detail($id)
-    {
-       $userTag =  UserTag::where(['id'=>$id])->findOrEmpty();
-       if($userTag->isEmpty()) {
-           return [];
-       }
-       return $userTag->toArray();
-    }
-
-    public static function edit($post)
-    {
-        try{
-            $userTag = UserTag::where([
-                ['name', '=', trim($post['name'])],
-                ['id', '<>', trim($post['id'])],
-            ])->findOrEmpty();
-            if(!$userTag->isEmpty()){
-                throw new \think\Exception('标签名称已被使用,请换个名称重试');
-            }
-            $data = [
-                'id' => $post['id'],
-                'name' => trim($post['name']),
-                'remark' => trim($post['remark']),
-                'update_time' => time()
-            ];
-            UserTag::update($data);
-            return true;
-        }catch(\Exception $e) {
-            self::$error = $e->getMessage();
-            return false;
-        }
-    }
-
-    public static function del($id)
-    {
-        try{
-            // 查看是否有会员正在使用该标签,若有则不允许删除
-            $users = User::whereFindInSet('tag_ids',$id)->where('del',0)->count();
-            if($users) {
-                throw new \think\Exception('有会员正在使用该标签,无法删除');
-            }
-            $data = [
-                'id' => $id,
-                'update_time' => time(),
-                'del' => 1
-            ];
-            UserTag::update($data);
-            return true;
-        }catch(\Exception $e){
-            self::$error = $e->getMessage();
-            return false;
-        }
-    }
-
-    public static function getTagList()
-    {
-        $tagArr = UserTag::field('id,name')
-            ->where('del', 0)
-            ->order('id', 'desc')
-            ->select()
-            ->toArray();
-
-        return $tagArr;
-    }
-}

+ 0 - 549
app/admin/logic/user/UserLogic.php

@@ -1,549 +0,0 @@
-<?php
-namespace app\admin\logic\user;
-
-use app\admin\validate\user\UserValidate;
-use app\api\cache\TokenCache;
-use app\common\basics\Logic;
-use app\common\enum\ClientEnum;
-use app\common\enum\OrderEnum;
-use app\common\logic\AccountLogLogic;
-use app\common\model\AccountLog;
-use app\common\model\Session;
-use app\common\model\user\User;
-use app\common\model\user\UserLevel;
-use app\common\model\user\UserTag;
-use app\common\server\UrlServer;
-use app\common\model\order\Order;
-use think\facade\Db;
-
-class UserLogic extends Logic
-{
-    public static function lists($get)
-    {
-        $where[] = ['del','=', '0'];
-
-        //查询
-        if(isset($get['keyword']) && $get['keyword']){
-            $where[] = [$get['keyword_type'],'like', '%'. trim($get['keyword']) . '%'];
-        }
-
-        //用户状态
-        if(isset($get['disable']) && $get['disable'] !== ''){
-            $where[] = ['disable', '=', $get['disable']];
-        }
-
-        //等级查询
-        if(isset($get['level']) && $get['level'] !== ''){
-            $where[] = ['level','=',$get['level']];
-        }
-
-        // 标签查询
-        if(isset($get['tag']) && $get['tag']){
-            $where[] = ['tag_ids','find in set',$get['tag']];
-        }
-
-        //注册来源
-        if(isset($get['client']) && $get['client']){
-            $where[] = ['client','=',$get['client']];
-        }
-
-        //消费金额
-        if(isset($get['total_amount_start']) && $get['total_amount_start']){
-            $where[] = ['total_order_amount','>=',$get['total_amount_start']];
-        }
-        if(isset($get['total_amount_end']) && $get['total_amount_end']){
-            $where[] = ['total_order_amount','<=',$get['total_amount_end']];
-        }
-
-        //注册时间
-        if(isset($get['start_time']) && $get['start_time']!=''){
-            $where[] = ['create_time','>=',strtotime($get['start_time'])];
-        }
-        if(isset($get['end_time']) && $get['end_time']!=''){
-            $where[] = ['create_time','<=',strtotime($get['end_time'])];
-        }
-
-        $user_count = User::where($where)->count();
-
-        $user_list = User::where($where)
-            ->field('id,sn,nickname,avatar,level,total_order_amount,tag_ids,client,login_time,create_time,user_growth,user_money,earnings,first_leader,disable,user_delete')
-            ->page($get['page'],$get['limit'])
-            ->order('id desc')
-            ->select()
-            ->toArray();
-
-        //会员等级
-        $user_level = UserLevel::where(['del'=>0])->column('name','id');
-        // 会员标签
-        $user_tag = UserTag::where(['del'=>0])->column('name', 'id');
-        // 注册来源
-        $client_list = ClientEnum::getClient(true);
-
-        foreach ($user_list as &$item){
-            // $item['nickname'] = htmlspecialchars($item['nickname']);
-            // 可提现金额
-            $item['earnings'] = empty($item['earnings']) ? 0 :  $item['earnings'];
-            // 总资产
-            $item['total_amount'] = $item['user_money'] + $item['earnings'];
-            // 会员等级
-            $item['level_name'] = '暂无等级';
-            if(isset($user_level[$item['level']])){
-                $item['level_name'] = $user_level[$item['level']];
-            }
-            // 头像
-            if ($item['avatar'] != '/static/common/image/default/user.png') {
-                $item['abs_avatar'] = $item['avatar'] ? UrlServer::getFileUrl($item['avatar']) : '';
-            } else {
-                $item['abs_avatar'] = '/static/common/image/default/user.png';
-            }
-            // 会员标签
-            $item['tag_str'] = '';
-            if(!empty($item['tag_ids'])) {
-                $tempArr = explode(',',$item['tag_ids']);
-                foreach($tempArr as $v) {
-                    $item['tag_str'] .= $user_tag[$v] . ',';
-                }
-                $item['tag_str'] = trim( $item['tag_str'], ',');
-            }
-            // 注册来源
-            $item['client_desc'] = $client_list[$item['client']];
-
-            // 上级推荐人
-            $item['first_leader_info'] = User::getUserInfo($item['first_leader']);
-
-            //推荐下级人数
-            $item['fans'] = User::where([
-                ['first_leader|second_leader', '=', $item['id']],
-                ['del', '=', 0]
-            ])->count();
-        }
-
-        return ['count'=>$user_count , 'lists'=>$user_list];
-    }
-
-    public static function setTag($post)
-    {
-        try{
-            User::where([
-                ['id', 'in', $post['user_ids']]
-            ])->update([
-                'tag_ids' => $post['tag_ids'],
-                'update_time' => time()
-            ]);
-            return true;
-        }catch(\Exception $e) {
-            self::$error = $e->getMessage();
-            return false;
-        }
-    }
-
-    public static function getUser($id)
-    {
-        $field = [
-            'id', 'sn','nickname','avatar','mobile','sex','birthday','tag_ids',
-            'remark','user_money','user_growth','user_integral','earnings', 'disable'
-        ];
-        $user = User::field($field)->where(['del' => 0, 'id' => $id])->findOrEmpty();
-
-        if($user->isEmpty()) {
-            return [];
-        }
-        // 头像
-        if($user['avatar']) {
-            $user['avatar'] = UrlServer::getFileUrl($user['avatar']);
-        }
-        // 会员标签
-        $user['tag_ids'] = json_encode(explode(',', $user['tag_ids']));
-
-        return $user->toArray();
-    }
-
-    public static function edit($post)
-    {
-        try{
-            $data = [
-                'id' => $post['id'],
-                'nickname' => $post['nickname'],
-                'avatar' => clearDomain($post['avatar']),
-                'mobile' => $post['mobile'],
-                'birthday' => strtotime($post['birthday']),
-                'tag_ids' => $post['select'],
-                'remark' => $post['remark'],
-                'disable' => $post['disable'],
-                'update_time' => time()
-            ];
-            User::update($data);
-
-            if ($post['disable']) {
-                $tokens = Session::where(['user_id' => $post['id']])->select()->toArray();
-                if(count($tokens) > 0) {
-                    foreach ($tokens as $item) {
-                        (new TokenCache($item['token']))->del();
-                    }
-                    Session::where(['user_id' => $post['id']])->update([
-                        'expire_time' => time(),
-                        'update_time' => time(),
-                    ]);
-                }
-            }
-
-            return true;
-        }catch(\Exception $e) {
-            self::$error = $e->getMessage();
-            return false;
-        }
-    }
-
-    public static function getInfo($id)
-    {
-        $field = [
-            'id', 'sn', 'nickname', 'avatar', 'birthday', 'sex', 'mobile', 'client',
-            'create_time','login_time', 'user_money', 'tag_ids', 'user_growth', 'earnings',
-            'first_leader', 'disable', 'user_delete'
-        ];
-        $user =  User::field($field)->findOrEmpty($id);
-
-        if($user->isEmpty()) {
-            return [];
-        }
-        $user =$user->toArray();
-        $orderWhere = [
-            'user_id' => $id,
-            'del' => 0,
-            'pay_status' => OrderEnum::PAY_STATUS_PAID
-        ];
-        // 上级推荐人
-        $user['first_leader_info'] = User::getUserInfo($user['first_leader']);
-        // 推荐下级人数
-        $user['fans'] = User::where([
-            ['first_leader|second_leader', '=', $user['id']],
-            ['del', '=', 0],
-        ])->count();
-        // 总资产
-        $user['assets'] = $user['user_money'] + $user['earnings'];
-        // 总订单数
-        $user['order_num'] = Order::where($orderWhere)->count();
-        // 总消费金额
-        $user['total_amount'] = Order::where($orderWhere)->sum('order_amount');
-        $user['total_amount'] = round($user['total_amount'] ,2);
-        // 平均消费单价
-        $user['avg_amount'] = Order::where($orderWhere)->avg('order_amount');
-        $user['avg_amount'] = round($user['avg_amount'], 2);
-        // 头像
-        $user['avatar'] = UrlServer::getFileUrl($user['avatar']);
-        // 客户端
-        $user['client_desc'] = ClientEnum::getClient($user['client']);
-        // 会员标签
-        $user_tag = UserTag::where(['del'=>0])->column('name', 'id');
-        $user['tag_str'] = '';
-        if(!empty($user['tag_ids'])) {
-            $tempArr = explode(',',$user['tag_ids']);
-            foreach($tempArr as $v) {
-                $user['tag_str'] .= $user_tag[$v] . ',';
-            }
-            $user['tag_str'] = trim( $user['tag_str'], ',');
-        }
-
-        return $user;
-    }
-
-    public static function adjustAccount($post)
-    {
-        Db::startTrans();
-        try{
-            $user = User::findOrEmpty($post['id']);
-            if($user->isEmpty()) {
-                throw new \Exception('用户不存在');
-            }
-            // 余额调整
-            if($post['type'] == 'money') {
-                if(empty($post['money'])) {
-                    throw new \Exception('请输入调整的余额');
-                }
-                if(empty($post['money_remark'])) {
-                    throw new \Exception('请输入余额备注');
-                }
-                if($post['money_handle'] == 1) { // 增加
-                    $user->user_money = $user->user_money + $post['money'];
-                    $user->save();
-                    AccountLogLogic::AccountRecord($user['id'], $post['money'],1,AccountLog::admin_add_money, $post['money_remark']);
-                }else{
-                    $user->user_money = $user->user_money - $post['money'];
-                    $user->save();
-                    AccountLogLogic::AccountRecord($user['id'], $post['money'],0,AccountLog::admin_reduce_money, $post['money_remark']);
-                }
-            }
-
-            // 成长值调整
-            if($post['type'] == 'growth') {
-                if(empty($post['growth'])) {
-                    throw new \Exception('请输入调整的成长值');
-                }
-                if(empty($post['growth_remark'])) {
-                    throw new \Exception('请输入成长值备注');
-                }
-                if($post['growth_handle'] == 1) { // 增加
-                    $user->user_growth = $user->user_growth + $post['growth'];
-                    $user->save();
-                    AccountLogLogic::AccountRecord($user['id'], $post['growth'],1,AccountLog::admin_add_growth, $post['growth_remark']);
-                }else{
-                    $user->user_growth = $user->user_growth - $post['growth'];
-                    $user->save();
-                    AccountLogLogic::AccountRecord($user['id'], $post['growth'],0,AccountLog::admin_reduce_growth, $post['growth_remark']);
-                }
-            }
-
-            // 积分调整
-            if($post['type'] == 'integral') {
-                if(empty($post['integral'])) {
-                    throw new \Exception('请输入调整的积分');
-                }
-                if(empty($post['integral_remark'])) {
-                    throw new \Exception('请输入积分调整备注');
-                }
-                if($post['integral_handle'] == 1) { // 增加
-                    $user->user_integral = $user->user_integral + $post['integral'];
-                    $user->save();
-                    AccountLogLogic::AccountRecord($user['id'], $post['integral'],1,AccountLog::admin_add_integral, $post['integral_remark']);
-                }else{
-                    $user->user_integral = $user->user_integral - $post['integral'];
-                    $user->save();
-                    AccountLogLogic::AccountRecord($user['id'], $post['integral'],0,AccountLog::admin_reduce_integral, $post['integral_remark']);
-                }
-            }
-
-
-            // 佣金调整
-            if($post['type'] == 'earnings') {
-                if(empty($post['earnings'])) {
-                    throw new \Exception('请输入调整的佣金');
-                }
-                if(empty($post['earnings_remark'])) {
-                    throw new \Exception('请输入佣金调整备注');
-                }
-                if($post['earnings_handle'] == 1) { // 增加
-                    $user->earnings = $user->earnings + $post['earnings'];
-                    $user->save();
-                    AccountLogLogic::AccountRecord($user['id'], $post['earnings'],1,AccountLog::admin_inc_earnings, $post['earnings_remark']);
-                }else{
-                    $user->earnings = $user->earnings - $post['earnings'];
-                    $user->save();
-                    AccountLogLogic::AccountRecord($user['id'], $post['earnings'],0,AccountLog::admin_reduce_earnings, $post['earnings_remark']);
-                }
-            }
-
-
-            Db::commit();
-            return true;
-        }catch(\Exception $e) {
-            Db::rollback();
-            self::$error = $e->getMessage();
-            return false;
-        }
-    }
-
-    public static function  fans($params)
-    {
-        $where = [];
-        // 一级
-        if ($params['type'] == 'one') {
-            $where[] = ['first_leader', '=', $params['id']];
-        }
-        // 二级粉丝
-        if ($params['type'] == 'two') {
-            $where[] = ['second_leader', '=', $params['id']];
-        }
-        if(isset($params['keyword']) && !empty($params['keyword'])) {
-            $where[] = [$params['field'], 'like', '%'. $params['keyword'] . '%'];
-        }
-        $lists = User::field('id,sn,nickname,avatar,first_leader')
-            ->where($where)
-            ->page($params['page'], $params['limit'])
-            ->select()
-            ->toArray();
-
-        $count = User::field('id,sn,nickname,avatar,first_leader')
-            ->where($where)
-            ->count();
-
-        foreach($lists as &$item) {
-            $item['avatar'] = empty($item['avatar']) ? '' : UrlServer::getFileUrl($item['avatar']);
-            $item['first_leader_info'] = User::getUserInfo($item['first_leader']);
-            $item['fans'] = User::where([
-                ['first_leader|second_leader', '=', $item['id']],
-                ['del', '=', 0]
-            ])->count();
-        }
-        return [
-            'lists' => $lists,
-            'count' => $count,
-        ];
-    }
-
-    public static function adjustLevel($params)
-    {
-       try {
-            $user = User::findOrEmpty($params['id']);
-            if ($user->isEmpty()) {
-                throw new \Exception('用户不存在');
-            }
-           if (User::UserIsDelete($params['id'])) {
-               throw new \Exception('用户已注销');
-           }
-            $user->level = $params['level'];
-            $user->remark = $params['remark'];
-            $user->save();
-
-           return true;
-       } catch(\Exception $e) {
-            self::$error = $e->getMessage();
-            return false;
-       }
-    }
-
-    public static function adjustFirstLeader($params)
-    {
-        Db::startTrans();
-        try {
-            if (User::UserIsDelete($params['id'])) {
-                throw new \Exception('用户已注销');
-            }
-            switch($params['type']) {
-                // 指定推荐人
-                case 'assign':
-                    $formatData = self::assignFirstLeader($params);
-                    break;
-                // 设置推荐人为系统,即清空上级
-                case 'system':
-                    $formatData = self::clearFirstLeader($params);
-                    break;
-            }
-
-            $user = User::findOrEmpty($params['id']);
-            // 旧关系链
-            if (!empty($user->ancestor_relation)) {
-                $old_ancestor_relation = $user->id . ',' .$user->ancestor_relation;
-            } else {
-                $old_ancestor_relation = $user->id;
-            }
-
-
-            // 更新当前用户的分销关系
-            User::where(['id' => $params['id']])->update($formatData);
-
-            //更新当前用户下级的分销关系
-            $data = [
-                'second_leader' => $formatData['first_leader'],
-                'third_leader' => $formatData['second_leader'],
-                'update_time'  => time()
-            ];
-            User::where(['first_leader' => $params['id']])->update($data);
-
-            //更新当前用户下下级的分销关系
-            $data = [
-                'third_leader' => $formatData['first_leader'],
-                'update_time'  => time()
-            ];
-            User::where(['second_leader' => $params['id']])->update($data);
-
-            //更新当前用户所有后代的关系链
-            $posterityArr = User::field('id,ancestor_relation')
-                ->whereFindInSet('ancestor_relation', $params['id'])
-                ->select()
-                ->toArray();
-            $updateData = [];
-            $replace_ancestor_relation = $params['id'] . ','. $formatData['ancestor_relation'];
-            foreach($posterityArr as $item) {
-                $updateData[] = [
-                    'id' => $item['id'],
-                    'ancestor_relation' => trim(str_replace($old_ancestor_relation, $replace_ancestor_relation, $item['ancestor_relation']), ',')
-                ];
-            }
-            // 批量更新
-            (new User())->saveAll($updateData);
-
-            Db::commit();
-            return true;
-        } catch(\Exception $e) {
-            Db::rollback();
-            self::$error = $e->getMessage();
-            return false;
-        }
-    }
-
-    public static function assignFirstLeader($params)
-    {
-        if (empty($params['first_id'])) {
-            throw new \think\Exception('请选择推荐人');
-        }
-        $firstLeader = User::field(['id', 'first_leader', 'second_leader', 'third_leader', 'ancestor_relation'])
-            ->where('id', $params['first_id'])
-            ->findOrEmpty()
-            ->toArray();
-        if(empty($firstLeader)) {
-            throw new \think\Exception('推荐人不存在');
-        }
-
-        if ($params['first_id'] == $params['id']) {
-            throw new \think\Exception('不能指定上级是自己');
-        }
-        $ancestorArr = explode(',', trim($firstLeader['ancestor_relation']));
-        if(!empty($ancestorArr) && in_array($params['id'], $ancestorArr)) {
-            throw new \think\Exception('不能指定推荐人为自己的下级');
-        }
-
-        // 上级
-        $first_leader_id = $firstLeader['id'];
-        // 上上级
-        $second_leader_id = $firstLeader['first_leader'];
-        // 上上上级
-        $third_leader_id = $firstLeader['second_leader'];
-        // 拼接关系链
-        $firstLeader['ancestor_relation'] = $firstLeader['ancestor_relation'] ?? ''; // 清空null值及0
-        $my_ancestor_relation = $first_leader_id. ',' . $firstLeader['ancestor_relation'];
-        // 去除两端逗号
-        $my_ancestor_relation = trim($my_ancestor_relation, ',');
-        $data = [
-            'first_leader' => $first_leader_id,
-            'second_leader' => $second_leader_id,
-            'third_leader' => $third_leader_id,
-            'ancestor_relation' => $my_ancestor_relation,
-            'update_time'  => time()
-        ];
-        return $data;
-    }
-
-    public static function clearFirstLeader($params)
-    {
-        $data = [
-            'first_leader' => 0,
-            'second_leader' => 0,
-            'third_leader' => 0,
-            'ancestor_relation' => '',
-            'update_time'  => time()
-        ];
-        return $data;
-    }
-
-    public static function userLists()
-    {
-        $where[] = ['del', '=', 0];
-        $where[] = ['user_delete', '=', 0];
-        // 用户信息
-        if (isset($params['keyword']) && !empty($params['keyword'])) {
-            $where[] = ['sn|nickname', 'like', '%'. $params['keyword'] .'%'];
-        }
-
-        $lists = User::field('id,sn,nickname,id as distribution,user_delete')
-            ->where($where)
-            ->page($params['page'], $params['limit'])
-            ->select()
-            ->toArray();
-        $count = User::where($where)->count();
-
-        return [
-            'count' => $count,
-            'lists' => $lists,
-        ];
-    }
-}

+ 0 - 35
app/admin/validate/user/LevelValidate.php

@@ -1,35 +0,0 @@
-<?php
-namespace app\admin\validate\user;
-
-use think\Validate;
-
-class LevelValidate extends Validate
-{
-    protected $rule = [
-        'id' => 'require',
-        'name' => 'require',
-        'growth_value' => 'require|integer|egt:0',
-        'image' => 'require',
-        'background_image' => 'require',
-        'discount' => 'between:0,10'
-    ];
-
-    protected $message = [
-        'id.require' => '参数缺失',
-        'name.require' => '请输入等级名称',
-        'growth_value.require' => '请输入成长值',
-        'growth_value.integer' => '成长值必须为整数',
-        'growth_value.egt' => '成长值必须大于或等于0',
-        'image.require' => '请选择等级图标',
-        'background_image.require' => '请选择等级背景图',
-        'discount.between' => '会员折扣必须在0-10之前',
-    ];
-
-    public function sceneAdd() {
-        return $this->only(['name', 'growth_value', 'image', 'background_image', 'discount']);
-    }
-
-    public function sceneEdit() {
-        return $this->only(['id', 'name', 'growth_value', 'image', 'background_image', 'discount']);
-    }
-}

+ 0 - 30
app/admin/validate/user/TagValidate.php

@@ -1,30 +0,0 @@
-<?php
-namespace app\admin\validate\user;
-
-use think\Validate;
-
-class TagValidate extends Validate
-{
-    protected  $rule = [
-        'name' => 'require|max:16',
-        'remark' => 'max:6',
-        'id'     => 'require'
-    ];
-
-    protected  $message = [
-        'name.require' => '请输入标签名称',
-        'name.max' => '标签长度不能超过16个字符',
-        'remark.max' => '备注长度不能超过64个字符',
-        'id.require' => '标签id不能为空',
-    ];
-
-    public function sceneAdd()
-    {
-        return $this->only(['name', 'remark']);
-    }
-
-    public function sceneEdit()
-    {
-        return $this->only(['name', 'remark', 'id']);
-    }
-}

+ 0 - 242
app/admin/validate/user/UserValidate.php

@@ -1,242 +0,0 @@
-<?php
-namespace app\admin\validate\user;
-
-use app\common\model\user\User;
-use think\Validate;
-
-class UserValidate extends Validate
-{
-    protected $rule = [
-        'tag_ids' => 'require',
-        'user_ids' => 'require|checkIds',
-        'nickname' => 'require',
-        'avatar' => 'require',
-        'mobile' => 'mobile',
-        'id' => 'require|checkId',
-        'type' => 'require|checkData',
-        'integral_remark' => 'max:100',
-        'earnings_remark' => 'max:100',
-        'money_remark' => 'max:100',
-        'growth_remark' => 'max:100',
-        'disable'=> 'require|in:0,1'
-    ];
-
-    protected $message = [
-        'tag_ids.require' => '请选择会员标签',
-        'user_ids.require' => '请先选择用户',
-        'nickname.require' => '请填写用户昵称',
-        'avatar.require' => '请选择用户头像',
-        'mobile.mobile' => '手机号码格式错误',
-        'id.require' => '请选择要调整的用户',
-        'type.require' => '调整类型参数缺失',
-        'integral_remark.max' => '备注不能超过100个字符',
-        'earnings_remark.max' => '备注不能超过100个字符',
-        'money_remark.max' => '备注不能超过100个字符',
-        'growth_remark.max' => '备注不能超过100个字符',
-        'disable.require'  => '请选择禁用状态',
-        'disable.in'       => '禁用状态参数错误',
-    ];
-
-    public function sceneSetTag()
-    {
-        return $this->only(['tag_ids', 'user_ids']);
-    }
-
-    public function sceneEdit()
-    {
-        return $this->only(['id','nickname', 'avatar', 'mobile', 'disable']);
-    }
-
-    public function sceneAdjustAccount()
-    {
-        return $this->only([
-             'type','id', 'money_remark', 'growth_remark', 'integral_remark', 'earnings_remark',
-        ]);
-    }
-    
-    function checkId($value, $rule, $data)
-    {
-        if (User::UserIsDelete($value) && (request()->isAjax() || request()->isPost())) {
-            return '用户已注销,不能操作';
-        }
-        
-        return true;
-    }
-    
-    function checkIds($ids, $rule, $data)
-    {
-        foreach ($ids as $id) {
-            if (User::UserIsDelete($id) && (request()->isAjax() || request()->isPost())) {
-                return '用户已注销,不能操作';
-            }
-        }
-        
-        return true;
-    }
-
-
-    /**
-     * @notes 验证调整数据
-     * @param $value
-     * @param $rule
-     * @param $data
-     * @return bool|string
-     * @throws \think\db\exception\DataNotFoundException
-     * @throws \think\db\exception\DbException
-     * @throws \think\db\exception\ModelNotFoundException
-     * @author 段誉
-     * @date 2022/3/16 10:49
-     */
-    protected function checkData($value, $rule, $data)
-    {
-        $user = User::where(['del' => 0, 'id' => $data['id']])->find();
-        if (empty($user)) {
-            return '该用户不存在';
-        }
-
-        if (!isset($data['money_handle']) && !isset($data['integral_handle'])
-            && !isset($data['growth_handle']) && !isset($data['earnings_handle'])) {
-            return '请选择调整的类型';
-        }
-
-        switch ($value) {
-            case 'money':
-                $result = $this->checkMoney($data, $user);
-                break;
-            case 'integral':
-                $result = $this->checkIntegral($data, $user);
-                break;
-            case 'growth':
-                $result = $this->checkGrowth($data, $user);
-                break;
-            case 'earnings':
-                $result = $this->checkEarnings($data, $user);
-                break;
-            default:
-                $result = '账户调整类型错误';
-        }
-        return $result;
-    }
-
-
-
-
-    /**
-     * @notes 验证金额
-     * @param $data
-     * @param $user
-     * @return bool|string
-     * @author 段誉
-     * @date 2022/3/16 10:49
-     */
-    protected function checkMoney($data, $user)
-    {
-        if (empty($data['money'])) {
-            return '请输入大于0的调整余额';
-        }
-        if ($data['money'] < 0) {
-            return '调整余额必须大于零';
-        }
-        //验证扣减余额操作
-        if ($data['money_handle'] == 0) {
-            //用户余额不足
-            if ($data['money'] > $user['user_money']) {
-                return '用户余额仅剩下' . $user['user_money'] . '元';
-            }
-        }
-        if (empty($data['money_remark'])) {
-            return '请输入调整余额备注';
-        }
-        return true;
-    }
-
-    /**
-     * @notes 验证积分
-     * @param $data
-     * @param $user
-     * @return bool|string
-     * @author 段誉
-     * @date 2022/3/16 10:49
-     */
-    protected function checkIntegral($data, $user)
-    {
-        if (empty($data['integral'])) {
-            return '请输入大于0的调整积分';
-        }
-        if ($data['integral'] < 0) {
-            return '调整积分必须大于零';
-        }
-        //验证扣减积分操作
-        if ($data['integral_handle'] == 0) {
-            //用户积分不足
-            if ($data['integral'] > $user['user_integral']) {
-                return '用户积分仅剩下' . $user['user_integral'] . '分';
-            }
-        }
-
-        if (empty($data['integral_remark'])) {
-            return '请输入调整积分备注';
-        }
-        return true;
-    }
-
-    /**
-     * @notes 验证成长值
-     * @param $data
-     * @param $user
-     * @return bool|string
-     * @author 段誉
-     * @date 2022/3/16 10:50
-     */
-    protected function checkGrowth($data, $user)
-    {
-        if (empty($data['growth'])) {
-            return '请输入大于0的调整成长值';
-        }
-        if ($data['growth'] < 0) {
-            return '成长值必须大于零';
-        }
-        //验证扣减成长值操作
-        if ($data['growth_handle'] == 0) {
-            //用户成长值不足
-            if ($data['growth'] > $user['user_growth']) {
-                return '用户成长值仅剩下' . $user['user_growth'];
-            }
-        }
-        if (empty($data['growth_remark'])) {
-            return '请输入调整成长值备注';
-        }
-        return true;
-    }
-
-    /**
-     * @notes 验证佣金
-     * @param $data
-     * @param $user
-     * @return bool|string
-     * @author 段誉
-     * @date 2022/3/16 10:50
-     */
-    protected function checkEarnings($data, $user)
-    {
-        if (empty($data['earnings'])) {
-            return '请输入大于0的调整佣金';
-        }
-        if ($data['earnings'] < 0) {
-            return '调整佣金必须大于零';
-        }
-        if (empty($user['earnings'])) {
-            $user['earnings'] = 0;
-        }
-        //验证扣减余额操作
-        if ($data['earnings_handle'] == 0) {
-            if ($data['earnings'] > $user['earnings']) {
-                return '用户佣金仅剩下' . $user['earnings'] . '元';
-            }
-        }
-        if (empty($data['earnings_remark'])) {
-            return '请输入调整佣金备注';
-        }
-        return true;
-    }
-}

+ 0 - 94
app/admin/view/user/level/add.html

@@ -1,94 +0,0 @@
-{layout name="layout2" /}
-<style>
-    .layui-form-label {
-        color: #6a6f6c;
-        width: 100px;
-    }
-    .layui-input-block {
-        margin-left: 130px;
-    }
-    .tips{
-        color: red;
-        margin-right: 5px;
-    }
-</style>
-<div class="layui-form" lay-filter="layuiadmin-form-user_level" id="layuiadmin-form-user_level" style="padding: 20px 30px 0 0;">
-    <div class="layui-form-item">
-        <label class="layui-form-label"><span class="tips">*</span>等级名称:</label>
-        <div class="layui-input-inline">
-            <input type="text" name="name" lay-verify="required" lay-verType="tips"  autocomplete="off" class="layui-input">
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"><span class="tips">*</span>成长值:</label>
-        <div class="layui-input-inline">
-            <input type="number" name="growth_value" min="0" lay-verify="required" lay-verType="tips"  autocomplete="off" class="layui-input">
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"><span class="tips">*</span>等级图标:</label>
-        <div class="layui-input-inline">
-            <div class="like-upload-image">
-                <div class="upload-image-elem"><a class="add-upload-image" id="image"> + 添加图片</a></div>
-            </div>
-            <div class=" layui-form-mid layui-word-aux"  style="white-space: nowrap">建议尺寸:100*100像素,jpg,jpeg,png图片类型</div>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"><span class="tips">*</span>等级背景图:</label>
-        <div class="layui-input-inline">
-            <div class="like-upload-image">
-                <div class="upload-image-elem"><a class="add-upload-image" id="background_image"> + 添加图片</a></div>
-            </div>
-            <div class=" layui-form-mid layui-word-aux"  style="white-space: nowrap">建议尺寸:800*500像素,jpg,jpeg,png图片类型</div>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">会员折扣:</label>
-        <div class="layui-input-inline">
-            <input type="number" name="discount" min="0" max="10"  autocomplete="off" class="layui-input">
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"></label>
-        <div class=" layui-form-mid layui-word-aux"  style="white-space: nowrap">等级享受的折扣,填写0~10,例如7.5折表示100元商品只需支付75元。留空或者填0表示不打折</div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">等级说明:</label>
-        <div class="layui-input-block">
-            <textarea name="remark"  class="layui-textarea"></textarea>
-        </div>
-    </div>
-    <div class="layui-form-item layui-hide">
-        <input type="button" lay-submit lay-filter="add-user_level-submit" id="add-user_level-submit" value="确认">
-    </div>
-</div>
-<script>
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/' //静态资源所在路径
-    }).use(['form'], function(){
-        var $ = layui.$
-            ,form = layui.form;
-
-        // 图片上传
-        like.delUpload();
-        // 图标
-        $(document).on("click", "#image", function () {
-            like.imageUpload({
-                limit: 1,
-                field: "image",
-                that: $(this)
-            });
-        })
-        // 背景图
-        $(document).on("click", "#background_image", function () {
-            like.imageUpload({
-                limit: 1,
-                field: "background_image",
-                that: $(this)
-            });
-        })
-
-    })
-</script>

+ 0 - 148
app/admin/view/user/level/edit.html

@@ -1,148 +0,0 @@
-{layout name="layout2" /}
-<style>
-    .layui-form-label {
-        color: #6a6f6c;
-        width: 100px;
-    }
-    .layui-input-block {
-        margin-left: 130px;
-    }
-    .tips{
-        color: red;
-    }
-    .goods-li {
-        float: left;
-        opacity: 1;
-        position: relative;
-    }
-
-    .goods-img {
-        width: 80px;
-        height: 80px;
-        padding: 4px;
-    }
-    .goods-img-del-x {
-        position: absolute;
-        z-index: 100;
-        top: -4px;
-        right: -2px;
-        width: 20px;
-        height: 20px;
-        font-size: 16px;
-        line-height: 16px;
-        color: #fff;
-        text-align: center;
-        cursor: pointer;
-        background: hsla(0, 0%, 60%, .6);
-        border-radius: 10px;
-    }
-</style>
-<div class="layui-form" lay-filter="layuiadmin-form-user_level" id="layuiadmin-form-user_level" style="padding: 20px 30px 0 0;">
-    <input type="hidden" name="id" value="{$detail.id}">
-    <div class="layui-form-item">
-        <label class="layui-form-label"><span class="tips">*</span>等级名称:</label>
-        <div class="layui-input-inline">
-            <input type="text" name="name" value="{$detail.name}" lay-verify="required" lay-verType="tips"  autocomplete="off" class="layui-input">
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"><span class="tips">*</span>成长值:</label>
-        <div class="layui-input-inline">
-            <input type="text" name="growth_value"  value="{$detail.growth_value}"  lay-verify="required" lay-verType="tips"  autocomplete="off" class="layui-input">
-        </div>
-    </div>
-    <div class="layui-form-item ">
-        <label class="layui-form-label"><span class="tips">*</span>等级图标:</label>
-        <div class="layui-inline" >
-            <div class="like-upload-image">
-                {if $detail.image}
-                <div class="upload-image-div">
-                    <img src="{$detail.image}" alt="img">
-                    <input type="hidden" name="image" value="{$detail.image}">
-                    <div class="del-upload-btn">x</div>
-                </div>
-                <div class="upload-image-elem" style="display:none;"><a class="add-upload-image" id="image"> + 添加图片</a></div>
-                {else}
-                <div class="upload-image-elem"><a class="add-upload-image" id="image"> + 添加图片</a></div>
-                {/if}
-            </div>
-            <div class=" layui-form-mid layui-word-aux" style="white-space: nowrap">建议尺寸:100*100像素,jpg,jpeg,png图片类型</div>
-
-        </div>
-    </div>
-    <div class="layui-form-item ">
-        <label class="layui-form-label"><span class="tips">*</span>等级背景图片:</label>
-        <div class="layui-inline" >
-            <div class="like-upload-image">
-                {if $detail.background_image}
-                <div class="upload-image-div">
-                    <img src="{$detail.background_image}" alt="img">
-                    <input type="hidden" name="background_image" value="{$detail.background_image}">
-                    <div class="del-upload-btn">x</div>
-                </div>
-                <div class="upload-image-elem" style="display:none;"><a class="add-upload-image" id="background_image"> + 添加图片</a></div>
-                {else}
-                <div class="upload-image-elem"><a class="add-upload-image" id="background_image"> + 添加图片</a></div>
-                {/if}
-            </div>
-            <div class=" layui-form-mid layui-word-aux" style="white-space: nowrap">建议尺寸:800*500像素,jpg,jpeg,png图片类型</div>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">会员折扣:</label>
-        <div class="layui-input-inline">
-            <input type="number" name="discount" value="{$detail.discount}" min="0" max="10"  autocomplete="off" class="layui-input">
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"></label>
-        <div class=" layui-form-mid layui-word-aux"  style="white-space: nowrap">等级享受的折扣,填写0~10,例如7.5折表示100元商品只需支付75元。留空或者填0表示不打折</div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">等级说明:</label>
-        <div class="layui-input-block">
-            <textarea name="remark"  class="layui-textarea">{$detail.remark}</textarea>
-        </div>
-    </div>
-    <div class="layui-form-item layui-hide">
-        <input type="button" lay-submit lay-filter="edit-user_level-submit" id="edit-user_level-submit" value="确认">
-    </div>
-</div>
-<style>
-    .layui-form-label {
-        width: 100px;
-    }
-    .layui-input-block {
-        margin-left: 130px;
-    }
-</style>
-<script>
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/' //静态资源所在路径
-    }).use(['form'], function(){
-        var $ = layui.$
-            ,form = layui.form;
-
-        // 图片上传
-        like.delUpload();
-        // 图标
-        $(document).on("click", "#image", function () {
-            like.imageUpload({
-                limit: 1,
-                field: "image",
-                that: $(this)
-            });
-        })
-        // 背景图
-        $(document).on("click", "#background_image", function () {
-            like.imageUpload({
-                limit: 1,
-                field: "background_image",
-                that: $(this)
-            });
-        })
-
-    })
-
-</script>

+ 0 - 262
app/admin/view/user/level/lists.html

@@ -1,262 +0,0 @@
-{layout name="layout1" /}
-<div class="wrapper">
-    <div class="layui-card">
-        <div class="layui-card-body">
-            <div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
-                <div class="layui-colla-item">
-                    <h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
-                    <div class="layui-colla-content layui-show">
-                        <p>*会员根据设定好的等级成长值升级,等级成长值通过日常消费积累;</p>
-                        <p>*删除会员等级时会重新调整对应会员的等级,请谨慎操作。</p>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <div class="layui-tab layui-tab-card" lay-filter="tab-all">
-            <div class="layui-card">
-
-                <div class="layui-card-body">
-                    <div style="padding-bottom: 10px;" class="add">
-                        <button class="layui-btn layui-btn-sm layuiadmin-btn-user_level {$view_theme_color}" data-type="add">新增会员等级</button>
-                        <button class="layui-btn layui-btn-sm layuiadmin-btn-user_level layui-btn-primary" data-type="set">设置等级说明</button>
-                    </div>
-
-                    <table id="user_level-lists" lay-filter="user_level-lists"></table>
-                    <script type="text/html" id="image">
-                        <img src="{{d.image}}" style="height:auto;width: auto" class="image-show">
-                    </script>
-                    <script type="text/html" id="background">
-                        <img src="{{d.background_image}}" style="height:auto;width: auto" class="image-show">
-                    </script>
-                    <script type="text/html" id="user_level-operation">
-                        <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">编辑</a>
-                        <a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</a>
-                    </script>
-
-                </div>
-            </div>
-
-        </div>
-
-    </div>
-</div>
-<script type="text/html" id="discount-info">
-{{d.discount}}折
-</script>
-<style>
-    .layui-table-cell {
-        height: auto;
-    }
-</style>
-<script>
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/' //静态资源所在路径
-    }).use(['table','form'], function(){
-        var $ = layui.$
-            ,form = layui.form
-            ,table = layui.table
-            ,element = layui.element;
-
-        //图片放大
-        $(document).on('click', '.image-show', function () {
-            var src = $(this).attr('src');
-            like.showImg(src,600);
-        });
-
-        $('.layui-btn.layuiadmin-btn-user_level').on('click', function(){
-            var type = $(this).data('type');
-            active[type] ? active[type].call(this) : '';
-        });
-        layui.define(['table', 'form'], function(exports){
-            var $ = layui.$
-                ,table = layui.table
-                ,form = layui.form;
-
-            table.render({
-                id:'user_level-lists'
-                ,elem: '#user_level-lists'
-                ,url: '{:url("user.level/lists")}'  //模拟接口
-                ,cols: [[
-                    {field: 'name', title: '等级名称',width:160}
-                    ,{field: 'growth_value',width:160, title: '成长值'}
-                    ,{field: 'icon',width:160, title: '等级图标',toolbar:'#image'}
-                    ,{field: 'background_image',width:160, title: '等级背景图片',toolbar:'#background'}
-                    ,{width:160, title:'等级折扣', templet: '#discount-info'}
-                    ,{field: 'remark',width:160, title:'等级说明'}
-                    ,{fixed: 'right', title: '操作', width:160,align: 'center', toolbar: '#user_level-operation'}
-                ]]
-                ,page:true
-                ,text: {none: '暂无数据!'}
-                ,parseData: function(res){ //将原始数据解析成 table 组件所规定的数据
-                    return {
-                        "code":res.code,
-                        "msg":res.msg,
-                        "count": res.data.count, //解析数据长度
-                        "data": res.data.lists, //解析数据列表
-                    };
-                }
-                ,response: {
-                    statusCode: 1
-                }
-                ,done: function(res, curr, count){
-                    // 解决操作栏因为内容过多换行问题
-                    $(".layui-table-main tr").each(function (index, val) {
-                        $($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
-                        $($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
-                    });
-                }
-            });
-
-        });
-
-
-        //事件
-        var active = {
-            add: function(){
-                var index = layer.open({
-                    type: 2
-                    ,title: '新增等级'
-                    ,content: '{:url("user.level/add")}'
-                    ,area: ['90%', '90%']
-                    ,btn: ['保存', '取消']
-                    ,maxmin: true
-                    ,yes: function(index, layero){
-                        var iframeWindow = window['layui-layer-iframe'+ index]
-                            ,submitID = 'add-user_level-submit'
-                            ,submit = layero.find('iframe').contents().find('#'+ submitID);
-                        //监听提交
-                        iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
-                            var field = data.field;
-                            like.ajax({
-                                url:'{:url("user.level/add")}',
-                                data:field,
-                                type:"post",
-                                success:function(res)
-                                {
-                                    if(res.code == 1)
-                                    {
-                                        layui.layer.msg(res.msg, {
-                                            offset: '15px'
-                                            , icon: 1
-                                            , time: 1000
-                                        });
-                                        layer.close(index); //关闭弹层
-                                        table.reload('user_level-lists'); //数据刷新
-                                    }
-                                }
-                            });
-                        });
-
-                        submit.trigger('click');
-                    }
-                });
-            },
-            set: function() {
-                var index = layer.open({
-                    type: 2
-                    ,title: '设置等级说明'
-                    ,content: '{:url("user.level/set")}'
-                    ,area: ['60%', '60%']
-                    ,btn: ['保存', '取消']
-                    ,maxmin: true
-                    ,yes: function(index, layero){
-                        var iframeWindow = window['layui-layer-iframe'+ index]
-                            ,submitID = 'add-user_intro-submit'
-                            ,submit = layero.find('iframe').contents().find('#'+ submitID);
-                        //监听提交
-                        iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
-                            var field = data.field;
-                            like.ajax({
-                                url:'{:url("user.level/set")}',
-                                data:field,
-                                type:"post",
-                                success:function(res)
-                                {
-                                    if(res.code == 1)
-                                    {
-                                        layui.layer.msg(res.msg, {
-                                            offset: '15px'
-                                            , icon: 1
-                                            , time: 1000
-                                        });
-                                        layer.close(index); //关闭弹层
-                                        table.reload('user_level-lists'); //数据刷新
-                                    }
-                                }
-                            });
-                        });
-
-                        submit.trigger('click');
-                    }
-                });
-            }
-        }
-
-        table.on('tool(user_level-lists)', function(obj) {
-            var id = obj.data.id;
-            if (obj.event === 'edit') {
-                var index = layer.open({
-                    type: 2
-                    , title: '编辑等级'
-                    , content: '{:url("user.level/edit")}?id=' + id
-                    , area: ['90%', '90%']
-                    , btn: ['保存', '取消']
-                    , maxmin: true
-                    , yes: function (index, layero) {
-                        var iframeWindow = window['layui-layer-iframe' + index]
-                            , submitID = 'edit-user_level-submit'
-                            , submit = layero.find('iframe').contents().find('#' + submitID);
-                        //监听提交
-                        iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) {
-                            var field = data.field;
-                            like.ajax({
-                                url: '{:url("user.level/edit")}',
-                                data: field,
-                                type: "post",
-                                success: function (res) {
-                                    if (res.code == 1) {
-                                        layui.layer.msg(res.msg, {
-                                            offset: '15px'
-                                            , icon: 1
-                                            , time: 1000
-                                        });
-                                        layer.close(index); //关闭弹层
-                                        table.reload('user_level-lists'); //数据刷新
-                                    }
-                                }
-                            });
-                        });
-
-                        submit.trigger('click');
-                    }
-                });
-
-            }
-            if (obj.event === 'del') {
-                var name = obj.data.name;
-                layer.confirm('确定删除会员等级:<span style="color: red">' + name + '</span>', function (index) {
-                    like.ajax({
-                        url: '{:url("user.level/del")}',
-                        data: {id: id},
-                        type: "post",
-                        success: function (res) {
-                            if (res.code == 1) {
-                                layui.layer.msg(res.msg, {
-                                    offset: '15px'
-                                    , icon: 1
-                                    , time: 1000
-                                });
-                                layer.close(index); //关闭弹层
-                                table.reload('user_level-lists'); //数据刷新
-                            }
-                        }
-                    });
-                    layer.close(index);
-                })
-
-            }
-        })
-
-    });
-</script>

+ 0 - 50
app/admin/view/user/level/set.html

@@ -1,50 +0,0 @@
-{layout name="layout2" /}
-<style>
-    .layui-form-label {
-        color: #6a6f6c;
-        width: 100px;
-    }
-    .layui-input-block {
-        margin-left: 130px;
-    }
-    .tips{
-        color: red;
-        margin-right: 5px;
-    }
-</style>
-<div class="layui-form" lay-filter="layuiadmin-form-user_level" id="layuiadmin-form-user_level" style="padding: 20px 30px 0 0;">
-    <input type="hidden" id="intro_default" value="{$intro_default}" />
-    <div class="layui-form-item">
-        <label class="layui-form-label">等级说明:</label>
-        <div class="layui-input-block">
-            <textarea name="intro" id="intro"  class="layui-textarea" style="height:160px;">{$intro}</textarea>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <div class="layui-inline">
-            <label class="layui-form-label"></label>
-            <div class=" layui-form-mid layui-word-aux"  style="white-space: nowrap">在会员中心显示的等级说明</div>
-        </div>
-        <div class="layui-inline">
-           <button class="layui-btn layui-btn-primary layui-btn-sm" id="use-default">使用默认说明</button>
-        </div>
-    </div>
-    <div class="layui-form-item layui-hide">
-        <input type="button" lay-submit lay-filter="add-user_intro-submit" id="add-user_intro-submit" value="确认">
-    </div>
-</div>
-<script>
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/' //静态资源所在路径
-    }).use(['form'], function(){
-        var $ = layui.$
-            ,form = layui.form;
-
-        $('#use-default').click(function() {
-            var intro_default = $('#intro_default').val();
-            $('#intro').html(intro_default);
-        });
-
-    })
-</script>

+ 0 - 63
app/admin/view/user/tag/add.html

@@ -1,63 +0,0 @@
-{layout name="layout1" /}
-<style>
-    .reqRed::before {
-        content: '*';
-        color: red;
-        margin-right: 5px;
-    }
-</style>
-<div class="layui-form" style="margin-top: 15px;">
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">标签名称</label>
-        <div class="layui-input-block" style="width: 380px;">
-            <input type="text" name="name" lay-verify="required"  class="layui-input" />
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">备注</label>
-        <div class="layui-input-block" style="width: 380px;">
-            <textarea name="remark" class="layui-textarea"></textarea>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"></label>
-        <div class="layui-input-block">
-            <button class="layui-btn layui-btn-normal" lay-submit lay-filter="add">确定</button>
-            <button class="layui-btn layui-btn-primary" id="back">返回</button>
-        </div>
-    </div>
-</div>
-<script>
-    layui.config({
-        version: "{$front_version}",
-        base: '/static/lib/'
-    }).use(['layer', 'table', 'form'], function () {
-        var $ = layui.jquery;
-        var layer = layui.layer;
-        var form = layui.form;
-
-        // 确定
-        form.on('submit(add)', function(data) {
-            like.ajax({
-                url:'{:url("user.tag/add")}',
-                type:'post',
-                data: data.field,
-                success:function (res) {
-                    if(res.code == 1) {
-                        layer.msg(res.msg,{time:1000}, function() {
-                            var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
-                            parent.layer.close(index); //再执行关闭
-                            parent.location.reload(); // 重置父页面
-                        });
-                    }
-                }
-            })
-        });
-
-        // 返回
-        $('#back').click(function() {
-            var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
-            parent.layer.close(index); //再执行关闭
-        });
-    });
-</script>

+ 0 - 64
app/admin/view/user/tag/edit.html

@@ -1,64 +0,0 @@
-{layout name="layout1" /}
-<style>
-    .reqRed::before {
-        content: '*';
-        color: red;
-        margin-right: 5px;
-    }
-</style>
-<div class="layui-form" style="margin-top: 15px;">
-    <input type="hidden" name="id" value="{$detail.id}" />
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">标签名称</label>
-        <div class="layui-input-block" style="width: 380px;">
-            <input type="text" name="name" lay-verify="required" value="{$detail.name}"  class="layui-input" />
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">备注</label>
-        <div class="layui-input-block" style="width: 380px;">
-            <textarea name="remark" class="layui-textarea">{$detail.remark}</textarea>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"></label>
-        <div class="layui-input-block">
-            <button class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">确定</button>
-            <button class="layui-btn layui-btn-primary" id="back">返回</button>
-        </div>
-    </div>
-</div>
-<script>
-    layui.config({
-        version: "{$front_version}",
-        base: '/static/lib/'
-    }).use(['layer', 'table', 'form'], function () {
-        var $ = layui.jquery;
-        var layer = layui.layer;
-        var form = layui.form;
-
-        // 确定
-        form.on('submit(edit)', function(data) {
-            like.ajax({
-                url:'{:url("user.tag/edit")}',
-                type:'post',
-                data: data.field,
-                success:function (res) {
-                    if(res.code == 1) {
-                        layer.msg(res.msg,{time:1000}, function() {
-                            var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
-                            parent.layer.close(index); //再执行关闭
-                            parent.location.reload(); // 重置父页面
-                        });
-                    }
-                }
-            })
-        });
-
-        // 返回
-        $('#back').click(function() {
-            var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
-            parent.layer.close(index); //再执行关闭
-        });
-    });
-</script>

+ 0 - 118
app/admin/view/user/tag/lists.html

@@ -1,118 +0,0 @@
-{layout name="layout1" /}
-<!-- 样式 -->
-<style>
-    .layui-table-cell {
-        height: auto;
-    }
-</style>
-<!-- 操作提示 -->
-<div class="layui-fluid">
-    <div class="layui-card" style="margin-top: 15px;">
-        <div class="layui-card-body">
-            <div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
-                <div class="layui-colla-item">
-                    <h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
-                    <div class="layui-colla-content layui-show">
-                        <p>*平台可以根据会员特征、消费行为等要素给会员分配标签,进行针对性管理;</p>
-                        <p>*会员可以同时打上多个标签;</p>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <!-- 功能按钮 -->
-        <div class="layui-card-header layuiadmin-card-header-auto">
-            <button class="layui-btn layui-btn-sm {$view_theme_color}"
-                    id="add-user-tag">新增会员标签</button>
-        </div>
-
-        <div class="layui-card-body">
-            <!-- 树形表格 -->
-            <table id="user-tag-lists" lay-filter="user-tag-lists"></table>
-        </div>
-    </div>
-</div>
-<script type="text/html" id="operate">
-    <button class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">编辑</button>
-    <button class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</button>
-</script>
-
-<script>
-    layui.config({
-        version: "{$front_version}",
-        base: '/static/lib/'
-    }).use(['layer', 'table'], function () {
-        var $ = layui.jquery;
-        var layer = layui.layer;
-        var table = layui.table;
-
-        table.render({
-            id: 'user-tag-lists'
-            ,elem: '#user-tag-lists'
-            ,url: "{:url('user.tag/lists')}"
-            , parseData: function(res) { // res 原始返回数据
-                return {
-                    'code' : res.code  // 0 代表正常返回
-                    , 'msg' : res.msg  // 提示消息
-                    , 'count' : res.data.count // 数据长度
-                    , 'data' : res.data.lists  // 数据列表
-                }
-            }
-            , response: { // 重新设定返回的数据格式
-                statusCode: 1, // 成功的状态码,默认0
-            }
-            , page: true // 开启分页
-            , limit: 10
-            , limits: [10, 20, 30, 40, 50]
-            , text: {
-                none: '暂无数据'
-            }
-            , cols: [[ // 设置表头,二维数组,方法渲染必填
-                { field: 'name', title: '标签名称', width: 200, align: 'center' },
-                { field: 'remark', title: '备注', width: 380, align: 'center' },
-                { title: '操作', width: 380, align: 'center', toolbar: '#operate'}
-            ]]
-        });
-
-        // 添加
-        $('#add-user-tag').click(function() {
-            layer.open({
-                type: 2,
-                title: '新增',
-                content: "{:url('user.tag/add')}",
-                area: ['60%', '60%']
-            });
-        });
-
-        table.on('tool(user-tag-lists)', function(obj) {
-            var id = obj.data.id;
-            switch(obj.event) {
-                case 'edit':
-                    layer.open({
-                        type: 2,
-                        title: '编辑',
-                        content: "{:url('user.tag/edit')}?id=" + id,
-                        area: ['60%', '60%']
-                    });
-                    break;
-
-                case 'del':
-                    layer.confirm('确定删除会员标签?<span style="color:red;">' + obj.data.name + '</span>', {icon: 3, title:'提示'}, function(index){
-                        like.ajax({
-                            url:'{:url("user.tag/del")}',
-                            type:'post',
-                            data: {id:id},
-                            success:function (res) {
-                                if(res.code == 1) {
-                                    layer.msg(res.msg,{time:1000}, function() {
-                                        layer.close(index);
-                                        window.location.reload();
-                                    });
-                                }
-                            }
-                        })
-                    });
-                    break;
-            }
-        });
-    });
-</script>

+ 0 - 171
app/admin/view/user/user/adjust_account.html

@@ -1,171 +0,0 @@
-{layout name="layout2" /}
-<style>
-    .layui-form-label{
-        width: 90px;
-    }
-    .reqRed::before {
-        content: '*';
-        color: red;
-        margin-right: 5px;
-    }
-</style>
-<div class="layui-form" lay-filter="adjust" id="layuiadmin-form-user" style="padding: 20px 30px 0 0;">
-    <input type="hidden" value="{$info.id}" name="id">
-    <input type="hidden" value="money" name="type" id="type">
-    <div class="layui-fluid">
-        <div class="layui-card">
-            <div class="layui-tab layui-tab-card"  lay-filter="adjust">
-                <ul class="layui-tab-title">
-                    <li data-type="money" class="layui-this">不可提现金额调整</li>
-                    <li data-type="growth" >成长值调整</li>
-                    <li data-type="integral" >积分调整</li>
-                    <li data-type="earnings" >佣金调整</li>
-                </ul>
-                <div class="layui-tab-content" >
-                    <!--不可提现金额调整-->
-                    <div class="layui-tab-item  layui-show " >
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">当前余额:</label>
-                            <div class="layui-input-inline">
-                                <label class="layui-form-mid">{$info.user_money}</label>
-                            </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label reqRed">余额增减:</label>
-                            <div class="layui-input-block">
-                                <input type="radio" name="money_handle" value="1" title="增加余额">
-                                <input type="radio" name="money_handle" value="0" title="扣减余额">
-                            </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label reqRed">调整余额:</label>
-                            <div class="layui-input-inline">
-                                <input type="number" min="0" name="money" value="" lay-verify="" lay-vertype="tips" placeholder="" autocomplete="off" class="layui-input">
-                                <label class="layui-form-mid layui-word-aux">请输入调整的余额金额</label>
-                            </div>
-                            <label class="layui-form-mid">元</label>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label reqRed">备注:</label>
-                            <div class="layui-input-block">
-                                <textarea type="text" name="money_remark" autocomplete="off" class="layui-textarea" style="width: 30%;"></textarea>
-                                <label class="layui-form-mid layui-word-aux" style="margin-left: 10px;">不超过100字</label>
-                            </div>
-                        </div>
-
-                    </div>
-                    <!--成长值调整-->
-                    <div class="layui-tab-item">
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">当前成长值:</label>
-                            <div class="layui-input-inline">
-                                <label class="layui-form-mid">{$info.user_growth}</label>
-                            </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label reqRed">成长值增减:</label>
-                            <div class="layui-input-block">
-                                <input type="radio" name="growth_handle" value="1" title="增加成长值">
-                                <input type="radio" name="growth_handle" value="0" title="扣减成长值">
-                            </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label reqRed">调整成长值:</label>
-                            <div class="layui-input-inline">
-                                <input type="number" min="0" name="growth" value="" lay-verify="" lay-vertype="tips" placeholder="" autocomplete="off" class="layui-input">
-                                <label class="layui-form-mid layui-word-aux">请输入调整的成长值</label>
-                            </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label reqRed">备注:</label>
-                            <div class="layui-input-block">
-                                <textarea type="text" name="growth_remark" autocomplete="off" class="layui-textarea" style="width: 30%;"></textarea>
-                                <label class="layui-form-mid layui-word-aux" style="margin-left: 10px;">不超过100字</label>
-                            </div>
-                        </div>
-                    </div>
-                    <!--积分调整-->
-                    <div class="layui-tab-item">
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">当前积分:</label>
-                            <div class="layui-input-inline">
-                                <label class="layui-form-mid">{$info.user_integral}</label>
-                                <input type="hidden" value="{$info.user_integral}" name="now_integral">
-                            </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">积分增减:</label>
-                            <div class="layui-input-block">
-                                <input type="radio" name="integral_handle" value="1" title="增加积分">
-                                <input type="radio" name="integral_handle" value="0" title="扣减积分">
-                            </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">调整积分:</label>
-                            <div class="layui-input-inline">
-                                <input type="text" name="integral" value="" lay-verify="" lay-vertype="tips" placeholder="" autocomplete="off" class="layui-input">
-                                <label class="layui-form-mid layui-word-aux">请输入调整的积分数量</label>
-                            </div>
-                            <label class="layui-form-mid">分</label>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">备注:</label>
-                            <div class="layui-input-block">
-                                <textarea type="text" name="integral_remark" autocomplete="off" class="layui-textarea" style="width: 30%;"></textarea>
-                                <label class="layui-form-mid layui-word-aux" style="margin-left: 10px;">不超过100字</label>
-                            </div>
-                        </div>
-                    </div>
-                    <!--佣金调整-->
-                    <div class="layui-tab-item " >
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">当前佣金:</label>
-                            <div class="layui-input-inline">
-                                <label class="layui-form-mid">{$info.earnings}</label>
-                            </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">佣金增减:</label>
-                            <div class="layui-input-block">
-                                <input type="radio" name="earnings_handle" value="1" title="增加佣金">
-                                <input type="radio" name="earnings_handle" value="0" title="扣减佣金">
-                            </div>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">调整佣金:</label>
-                            <div class="layui-input-inline">
-                                <input type="text" name="earnings" value="" lay-verify="" lay-vertype="tips" placeholder="" autocomplete="off" class="layui-input">
-                                <label class="layui-form-mid layui-word-aux">请输入调整的金额</label>
-                            </div>
-                            <label class="layui-form-mid">元</label>
-                        </div>
-                        <div class="layui-form-item">
-                            <label class="layui-form-label">备注:</label>
-                            <div class="layui-input-block">
-                                <textarea type="text" name="earnings_remark" autocomplete="off" class="layui-textarea" style="width: 30%;"></textarea>
-                                <label class="layui-form-mid layui-word-aux" style="margin-left: 10px;">不超过100字</label>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-
-    <div class="layui-form-item layui-hide">
-        <input type="button" lay-submit lay-filter="adjust_user-submit" id="adjust_user-submit" value="确认">
-    </div>
-</div>
-<script>
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/' //静态资源所在路径
-    }).use(['form', 'element'], function(){
-        var $ = layui.$,form = layui.form ;
-        var element = layui.element;
-
-        element.on('tab(adjust)', function(){
-            $('#type').val($(this).attr('data-type'));
-        });
-    })
-</script>

+ 0 - 87
app/admin/view/user/user/adjust_first_leader.html

@@ -1,87 +0,0 @@
-{layout name="layout2" /}
-<style>
-    .layui-form-label{
-        width: 120px;
-        text-align: left;
-    }
-    .reqRed::before {
-        content: '*';
-        color: red;
-        margin-right: 5px;
-    }
-</style>
-<div class="layui-form" style="padding: 20px 30px 0 0;">
-    <div class="layui-form-item">
-        <label class="layui-form-label">用户编号:</label>
-        <div class="layui-input-block">
-            <label class="layui-form-label">{$user.sn}</label>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">用户昵称:</label>
-        <div class="layui-input-block">
-            <label class="layui-form-label">{$user.nickname}</label>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">当前推荐人:</label>
-        <div class="layui-input-block">
-            {if is_array($first_leader)}
-            <label class="layui-form-label">{$first_leader.nickname}({$first_leader.sn})</label>
-            {else}
-            <label class="layui-form-label">{$first_leader}</label>
-            {/if}
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">调整方式:</label>
-        <div class="layui-input-inline">
-            <input type="radio" name="type" value="assign" title="指定推荐人" checked>
-        </div>
-        <div class="layui-input-inline">
-            <input type="radio" name="type" value="system" title="设置推荐人为系统">
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">选择推荐人:</label>
-        <div class="layui-inline">
-            <span id="user_selected"></span>
-        </div>
-        <div class="layui-inline">
-            <button class="layui-btn layui-btn-sm layui-bg-blue" id="show-user">选择用户</button>
-        </div>
-    </div>
-
-    <input type="hidden" value="{$user_id}" name="id">
-    <input type="hidden"  name="first_id" id="first_id">
-    <div class="layui-form-item layui-hide">
-        <input type="button" lay-submit lay-filter="formSubmit" id="formSubmit" value="确认">
-    </div>
-</div>
-<script>
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/' //静态资源所在路径
-    }).use(['form', 'element'], function(){
-        var $ = layui.$,form = layui.form ;
-        var element = layui.element;
-
-        $('#show-user').click(function() {
-            layer.open({
-                type: 2
-                ,title: "选择用户"
-                ,content: "{:url('user.user/userLists')}"
-                ,area: ["90%", "90%"]
-                ,btn: ["确定", "取消"]
-                ,yes: function(index, layero){
-                    var iframeWindow = window["layui-layer-iframe" + index];
-                    let user_selected = iframeWindow.user_selected();
-                    $('#user_selected').html(user_selected.nickname + '(' + user_selected.sn + ')');
-                    $('#first_id').val(user_selected.id);
-                    layer.close(index);
-                }
-            });
-            return false;
-        });
-    })
-</script>

+ 0 - 52
app/admin/view/user/user/adjust_level.html

@@ -1,52 +0,0 @@
-{layout name="layout2" /}
-<style>
-    .layui-form-label{
-        width: 90px;
-        text-align: left;
-    }
-    .reqRed::before {
-        content: '*';
-        color: red;
-        margin-right: 5px;
-    }
-</style>
-<div class="layui-form" style="padding: 20px 30px 0 0;">
-    <div class="layui-form-item">
-        <label class="layui-form-label">当前等级:</label>
-        <div class="layui-input-block">
-            <label class="layui-form-label">{$user_level_name}</label>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">调整等级:</label>
-        <div class="layui-input-inline">
-            <select name="level">
-                {foreach $levels as $item}
-                <option value="{$item.id}">{$item.name}</option>
-                {/foreach}
-            </select>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">备注:</label>
-        <div class="layui-input-block">
-            <textarea type="text" name="remark" autocomplete="off" class="layui-textarea" style="width: 30%;"></textarea>
-            <label class="layui-form-mid layui-word-aux" style="margin-left: 10px;">不超过100字</label>
-        </div>
-    </div>
-
-    <input type="hidden" value="{$user_id}" name="id">
-    <div class="layui-form-item layui-hide">
-        <input type="button" lay-submit lay-filter="formSubmit" id="formSubmit" value="确认">
-    </div>
-</div>
-<script>
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/' //静态资源所在路径
-    }).use(['form', 'element'], function(){
-        var $ = layui.$,form = layui.form ;
-        var element = layui.element;
-
-    })
-</script>

+ 0 - 130
app/admin/view/user/user/edit.html

@@ -1,130 +0,0 @@
-{layout name="layout2" /}
-<style>
-    .reqRed::before {
-        content: '*';
-        color: red;
-    }
-</style>
-<div class="layui-form" lay-filter="layuiadmin-form-user" id="layuiadmin-form-user" style="padding: 20px 30px 0 0;">
-    <input type="hidden" name="id" value="{$info.id}">
-    <div class="layui-form-item">
-        <label class="layui-form-label">用户编号:</label>
-        <div class="layui-input-inline" style="margin-top:10px">
-            {$info.sn}
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">用户昵称:</label>
-        <div class="layui-input-inline" style="width: 380px;">
-            <input class="layui-input" value="{$info.nickname}" name="nickname" type="text" placeholder="请输入会员昵称" >
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">用户头像:</label>
-        <div class="layui-input-block">
-            <div class="like-upload-image">
-                {if $info.avatar}
-                <div class="upload-image-div">
-                    <img src="{$info.avatar}" alt="img">
-                    <input type="hidden" name="avatar" value="{$info.avatar}">
-                    <div class="del-upload-btn">x</div>
-                </div>
-                <div class="upload-image-elem" style="display:none;"><a class="add-upload-image" id="avatar"> + 添加图片</a></div>
-                {else}
-                <div class="upload-image-elem"><a class="add-upload-image" id="avatar"> + 添加图片</a></div>
-                {/if}
-            </div>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"></label>
-        <span style="color: #a3a3a3;font-size: 9px">建议尺寸:宽200像素*高200像素的jpg,jpeg,png图片</span>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">手机号码:</label>
-        <div class="layui-input-inline" style="width: 380px;">
-            <input class="layui-input" value="{$info.mobile}" name="mobile" type="text" placeholder="请输入手机号码" >
-        </div>
-    </div>
-
-    <div class="layui-form-item">
-        <label class="layui-form-label">性别:</label>
-        <div class="layui-input-block">
-            <input type="radio" name="sex" value="0" title="未知" {if $info.sex == 0}checked{/if} >
-            <input type="radio" name="sex" value="1" title="男"  {if $info.sex == 1}checked{/if} >
-            <input type="radio" name="sex" value="2" title="女"  {if $info.sex == 2}checked{/if} >
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">禁用状态:</label>
-        <div class="layui-input-block">
-            <input type="radio" name="disable" value="0" title="启用" {if $info.disable == 0}checked{/if} >
-            <input type="radio" name="disable" value="1" title="禁用"  {if $info.disable == 1}checked{/if} >
-        </div>
-        <div class=" layui-form-mid layui-word-aux">禁用后用户将无法正常登录</div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">生日:</label>
-        <div class="layui-input-inline" style="width: 380px;">
-            <input class="layui-input" value="{$info.birthday}" autocomplete="off"   name="birthday" id="birthday" type="text" placeholder="请输入生日" >
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">会员标签</label>
-        <div class="layui-input-block" style="width: 380px;">
-            <div id="tagList"></div>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">备注</label>
-        <div class="layui-input-block" style="width: 380px">
-            <textarea name="remark" class="layui-textarea"></textarea>
-        </div>
-    </div>
-    <div class="layui-form-item layui-hide">
-        <input type="button" lay-submit lay-filter="edit-submit"  id="edit-submit" value="确认">
-    </div>
-</div>
-</div>
-
-<script>
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/' //静态资源所在路径
-    }).extend({
-        xmSelect: 'xmSelect/xm-select'
-    }).use(['form','laydate', 'xmSelect'], function(){
-        var $ = layui.$,form = layui.form,laydate = layui.laydate;
-        var xmSelect = layui.xmSelect;
-        var tag_list = '{$tag_list|raw}';
-        var initValue = '{$info.tag_ids | raw}';
-
-        laydate.render({
-            elem: '#birthday'
-            ,format: 'yyyy-MM-dd'
-            ,value: "{$info['birthday']}"
-            ,trigger: 'click'
-        });
-
-        var xmIns = xmSelect.render({
-            el: '#tagList',
-            language: 'zn',
-            data: JSON.parse(tag_list),
-            prop: {
-                value: 'id'
-            },
-            initValue: JSON.parse(initValue)
-        })
-
-        // 图片上传
-        like.delUpload();
-        $(document).on("click", "#avatar", function () {
-            like.imageUpload({
-                limit: 1,
-                field: "avatar",
-                that: $(this)
-            });
-        })
-
-    })
-</script>

+ 0 - 158
app/admin/view/user/user/fans.html

@@ -1,158 +0,0 @@
-{layout name="layout1" /}
-<style>
-    .search {
-        margin-top: 15px;
-    }
-    .search .layui-form-label {
-        width: 80px;
-        text-align: left;
-    }
-    .btns {
-        margin-top: 15px;
-    }
-</style>
-<div class="layui-fluid">
-    <div class="layui-card">
-        <div class="layui-card-body">
-            <div class="layui-tab" lay-filter="fansTab">
-                <ul class="layui-tab-title">
-                    <li class="layui-this" type="one">下一级</li>
-                    <li type="two">下二级</li>
-                </ul>
-            </div>
-            <!--搜索区域-->
-            <div class="search layui-form">
-                <div class="layui-inline">
-                    <div class="layui-form-label">用户信息</div>
-                    <div class="layui-inline">
-                        <select name="field" id="field"  placeholder="请选择" >
-                            <option value="sn">用户编号</option>
-                            <option value="nickname">用户昵称</option>
-                        </select>
-                </div>
-                <div class="layui-inline">
-                    <input type="text" id="keyword" name="keyword" class="layui-input" />
-                </div>
-                <div class="layui-inline">
-                    <button class="layui-btn layui-btn-primary layui-bg-blue" lay-submit lay-filter="search">搜索</button>
-                    <button class="layui-btn layui-btn-primary" lay-submit lay-filter="reset">重置</button>
-                </div>
-            </div>
-            <!--数据表格-->
-            <table id="lists" lay-filter="lists"></table>
-            <!--自定义模板-->
-            <script type="text/html" id="user-info">
-                <img src="{{d.avatar}}" style="height:60px;width: 60px" class="image-show">
-                <div class="layui-input-inline"  style="text-align: left;">
-                    <p>用户编号:{{d.sn}}</p>
-                    <p style="width: 300px;text-overflow:ellipsis;overflow: hidden">用户昵称:{{d.nickname}}</p>
-                </div>
-            </script>
-                <script type="text/html" id="first-info">
-                    {{# if(d.first_leader_info != '系统'){}}
-                    <img src="{{d.first_leader_info.avatar}}" style="height:80px;width: 80px;margin-right: 10px;" class="image-show">
-                    <div class="layui-input-inline" style="text-align:left;width: 240px">
-                        <p>用户编号:{{d.first_leader_info.sn}}</p>
-                        <p style="width: 180px;text-overflow:ellipsis;overflow: hidden">用户昵称:{{d.first_leader_info.nickname}}</p>
-                    </div>
-                    {{# }else{ }}
-                    {{d.first_leader_info}}
-                    {{# } }}
-                </script>
-        </div>
-    </div>
-</div>
-
-
-<script>
-
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/'
-    }).use(['table', 'form'], function () {
-        let $ = layui.$
-            , form = layui.form
-            , element = layui.element
-            , table = layui.table;
-
-        let type = 'one';
-
-        //监听Tab切换
-        element.on('tab(fansTab)', function(data){
-            type = $(this).attr('type');
-            // 重载表格
-            table.reload('lists', {
-                where: {
-                    "type": type,
-                    id: "{$id}"
-                },
-                page: {curr: 1}
-            });
-        });
-
-        //监听搜索
-        form.on('submit(search)', function(data){
-            var field = data.field;
-            field.type = type;
-            field.id = "{$id}";
-            //执行重载
-            table.reload('lists', {
-                where: field,
-                page: {curr: 1}
-            });
-        });
-
-        //清空查询
-        form.on('submit(reset)', function(){
-            $('#keyword').val('');
-            $('#field').val('sn');
-            form.render('select');
-            //刷新列表
-            table.reload('lists', {
-                where: {
-                    "type": type,
-                    id: "{$id}"
-                }, page: {curr: 1}
-            });
-        });
-
-        // 数据表格渲染
-        table.render({
-            elem: '#lists'
-            ,url: '{:url("user.user/fans")}' //数据接口
-            ,where: {
-                type: type,
-                id: "{$id}"
-            }
-            ,method: 'post'
-            ,page: true //开启分页
-            ,cols: [[ //表头
-                {title: '用户信息', width:380, templet: '#user-info'}
-                ,{title: '上级推荐人', width:380, templet: '#first-info'}
-                ,{field: 'fans', title: '推荐下级人数'}
-            ]]
-            , text: {none: '暂无数据!'}
-            , parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
-                return {
-                    "code": res.code,
-                    "msg": res.msg,
-                    "count": res.data.count, //解析数据长度
-                    "data": res.data.lists, //解析数据列表
-                };
-            },
-            response: {
-                statusCode: 1
-            }
-            ,done: function(res, curr, count){
-                // 解决操作栏因为内容过多换行问题
-                $(".layui-table-main tr").each(function (index, val) {
-                    $($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
-                    $($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
-                });
-            }
-        });
-
-    });
-
-
-</script>

+ 0 - 184
app/admin/view/user/user/info.html

@@ -1,184 +0,0 @@
-{layout name="layout2" /}
-<style>
-    .layui-form-label{
-        width: 120px;
-    }
-    .layui-card .layui-tab{
-        margin-left: 7px;
-    }
-    .layui-form-label{
-        margin-left: 20px;
-        width: 98px;
-    }
-    .layui-input-inline{
-        width:160px;
-    }
-    .layui-table-cell {
-        height: auto;
-    }
-
-</style>
-<div class="layui-form" lay-filter="layuiadmin-form-user_group" id="layuiadmin-form-user_group" style="padding: 20px 30px 0 0;">
-    <div class="layui-form-item div-flex">
-        <fieldset class="layui-elem-field layui-field-title">
-            <legend>基础信息</legend>
-        </fieldset>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">用户编号:</label>
-        <div class="layui-input-inline">
-            <label class="layui-form-mid">{$detail.sn}</label>
-        </div>
-        <label class="layui-form-label">用户昵称:</label>
-        <div class="layui-input-inline">
-            <label class="layui-form-mid">{$detail.nickname}</label>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">会员头像:</label>
-        <div class="layui-input-inline">
-            <label class="layui-form-mid">
-                <img class="image-show" src="{$detail.avatar}" width="80px" height="80px">
-            </label>
-        </div>
-        <label class="layui-form-label">手机号码:</label>
-        <div class="layui-input-inline">
-            <label class="layui-form-mid">{$detail.mobile}</label>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">用户标签:</label>
-        <div class="layui-input-inline">
-            <label class="layui-form-mid">{$detail.tag_str}</label>
-        </div>
-        <label class="layui-form-label">成长值:</label>
-        <div class="layui-input-inline">
-            <label class="layui-form-mid">{$detail.user_growth}</label>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">性别:</label>
-        <div class="layui-input-inline">
-            <label class="layui-form-mid">{$detail.sex}</label>
-        </div>
-        <label class="layui-form-label">生日:</label>
-        <div class="layui-input-inline">
-            <label class="layui-form-mid">{$detail.birthday}</label>
-        </div>
-    </div>
-    <div class="layui-input-item">
-
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">注册来源:</label>
-        <div class="layui-input-inline">
-            <label class="layui-form-mid">{$detail.client_desc}</label>
-        </div>
-        <label class="layui-form-label">注册时间:</label>
-        <div class="layui-input-inline">
-            <label class="layui-form-mid">{$detail.create_time}</label>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">最后登录:</label>
-        <div class="layui-input-inline">
-            <label class="layui-form-mid">{$detail.login_time}</label>
-        </div>
-        <label class="layui-form-label">用户状态:</label>
-        <div class="layui-input-inline">
-            <label class="layui-form-mid">
-                {$detail.disable ? '禁用' : '正常'}
-                {$detail.user_delete ? '(<span style="color: red">已注销</span>)' : ''}
-            </label>
-        </div>
-    </div>
-    <div class="layui-form-item div-flex">
-        <fieldset class="layui-elem-field layui-field-title">
-            <legend>钱包信息</legend>
-        </fieldset>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">总资产:</label>
-        <div class="layui-input-inline">
-            <label class="layui-form-mid">¥ {$detail.assets}</label>
-        </div>
-        <label class="layui-form-label">不可提现余额:</label>
-        <div class="layui-input-inline">
-            <label class="layui-form-mid">¥ {$detail.user_money}</label>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">可提现余额:</label>
-        <div class="layui-input-inline">
-            <label class="layui-form-mid">¥ {$detail.earnings}</label>
-        </div>
-    </div>
-    <div class="layui-form-item div-flex">
-        <fieldset class="layui-elem-field layui-field-title">
-            <legend>消费能力</legend>
-        </fieldset>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">成交订单笔数:</label>
-        <div class="layui-input-inline">
-            <label class="layui-form-mid">{$detail.order_num}</label>
-        </div>
-        <label class="layui-form-label">消费金额:</label>
-        <div class="layui-input-inline">
-            <label class="layui-form-mid">¥ {$detail.total_amount}</label>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">客单价:</label>
-        <div class="layui-input-inline">
-            <label class="layui-form-mid">¥ {$detail.avg_amount}</label>
-        </div>
-    </div>
-    <div class="layui-form-item div-flex">
-        <fieldset class="layui-elem-field layui-field-title">
-            <legend>推荐信息</legend>
-        </fieldset>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">上级推荐人:</label>
-        <div class="layui-input-inline" style="width: 100px;">
-            {if $detail.first_leader_info != '系统'}
-            <label class="layui-form-mid" style="width:300px">{$detail.first_leader_info.nickname}({$detail.first_leader_info.sn})</label>
-            {else}
-            <label class="layui-form-mid">{$detail.first_leader_info}</label>
-            {/if}
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">推荐下级人数:</label>
-        <div class="layui-input-inline">
-            <label class="layui-form-mid">{$detail.fans}人</label>
-        </div>
-        <div class="layui-input-inline">
-            <button class="layui-btn layui-btn-sm layui-bg-blue" id="showFans" data-id="{$detail.id}">查看推荐下级</button>
-        </div>
-    </div>
-</div>
-
-<script>
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/' //静态资源所在路径
-    }).use(['jquery', 'layer'], function(){
-        let $ = layui.jquery;
-        let layer = layui.layer;
-
-        // 查看推荐下级
-        $('#showFans').click(function() {
-            let id = $(this).data('id');
-            // 弹窗显示添加页
-            layer.open({
-                type: 2
-                ,title: "查看下级推荐"
-                ,content: "{:url('user.user/fans')}?id=" + id
-                ,area: ["90%", "90%"]
-                ,btn: ["返回"]
-            });
-        });
-    });
-</script>

+ 0 - 604
app/admin/view/user/user/lists.html

@@ -1,604 +0,0 @@
-{layout name="layout1" /}
-<div class="wrapper">
-    <div class="layui-card">
-        <div class="layui-card-body">
-            <div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
-                <div class="layui-colla-item">
-                    <h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
-                    <div class="layui-colla-content layui-show">
-                        <p>*平台管理会员信息,平台可对会员进行编辑,账户调整,等级调整和资料查看等操作</p>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <div class="layui-form layui-card-header layuiadmin-card-header-auto" style="height:auto !important;">
-            <div class="layui-form-item">
-                <div class="layui-inline">
-                    <label class="layui-form-label">会员信息:</label>
-                    <div class="layui-input-inline" style="width: 200px;">
-                        <select name="keyword_type" id="keyword_type">
-                            <option value="sn">会员编号</option>
-                            <option value="nickname">会员昵称</option>
-                        </select>
-                    </div>
-                    <div class="layui-input-inline" style="width: 200px;">
-                        <input type="text" id="keyword" name="keyword" placeholder="请输入关键词" autocomplete="off" class="layui-input">
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <label class="layui-form-label">会员等级:</label>
-                    <div class="layui-input-inline">
-                        <select id="level" name="level"   style="height:80px;width: 80px" >
-                            <option value="">全部</option>
-                            {foreach $level_list as $item }
-                            <option value="{$item.id}">{$item.name}</option>
-                            {/foreach}
-                        </select>
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <label class="layui-form-label">会员标签:</label>
-                    <div class="layui-input-inline">
-                        <select id="tag" name="tag"   style="height:80px;width: 80px" >
-                            <option value="">全部</option>
-                            {foreach $tag_list as $item }
-                            <option value="{$item.id}">{$item.name}</option>
-                            {/foreach}
-                        </select>
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <label class="layui-form-label">注册来源:</label>
-                    <div class="layui-input-inline">
-                        <select id="client" name="client"   style="height:80px;width: 80px" >
-                            <option value="">全部</option>
-                            {foreach $client_list as $key => $value }
-                            <option value="{$key}">{$value}</option>
-                            {/foreach}
-                        </select>
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <label class="layui-form-label">用户状态:</label>
-                    <div class="layui-input-inline">
-                        <select id="disable" name="disable"   style="height:80px;width: 80px" >
-                            <option value="">全部</option>
-                            <option value="0">正常</option>
-                            <option value="1">禁用</option>
-                        </select>
-                    </div>
-                </div>
-            </div>
-            <div class="layui-form-item">
-                <div class="layui-inline">
-                    <label class="layui-form-label">消费金额:</label>
-                    <div class="layui-input-inline">
-                        <input type="text" class="layui-input" id="total_amount_start" name="total_amount_start"  autocomplete="off">
-                    </div>
-                    <div class="layui-input-inline" style="margin-right: 5px;width: 10px;">
-                        <label class="layui-form-mid">-</label>
-                    </div>
-                    <div class="layui-input-inline">
-                        <input type="text" class="layui-input" id="total_amount_end" name="total_amount_end"  autocomplete="off">
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <label class="layui-form-label">注册时间:</label>
-                    <div class="layui-input-inline">
-                        <input type="text" class="layui-input" id="start_time" name="start_time"  autocomplete="off">
-                    </div>
-                    <div class="layui-input-inline" style="margin-right: 5px;width: 10px;">
-                        <label class="layui-form-mid">-</label>
-                    </div>
-                    <div class="layui-input-inline">
-                        <input type="text" class="layui-input" id="end_time" name="end_time"  autocomplete="off">
-                    </div>
-                </div>
-
-                <div class="layui-inline">
-                    <button class="layui-btn layui-btn-sm layuiadmin-btn-user {$view_theme_color}" lay-submit lay-filter="user-search">查询</button>
-                    <button class="layui-btn layui-btn-sm layuiadmin-btn-user layui-btn-primary " lay-submit lay-filter="user-clear-search">重置</button>
-                </div>
-            </div>
-        </div>
-
-        <div class="layui-card-body">
-            <div style="padding-bottom: 10px;">
-<!--                <button class="layui-btn layui-btn-sm layuiadmin-btn-user {$view_theme_color}" data-type="send_coupon">发放优惠券</button>-->
-                <button class="layui-btn layui-btn-sm layuiadmin-btn-user {$view_theme_color}" data-type="set_tag">设置会员标签</button>
-            </div>
-
-            <table id="user-lists" lay-filter="user-lists"></table>
-
-            <script type="text/html" id="user-info">
-                <img src="{{d.abs_avatar}}" style="height:80px;width: 80px;margin-right: 10px;" class="image-show">
-                <div class="layui-input-inline" style="text-align:left;width: 240px">
-                    <p>用户编号:{{d.sn}}</p>
-                    <p style="width: 180px;text-overflow:ellipsis;overflow: hidden">用户昵称:{{d.nickname}}</p>
-                    <p>用户状态:
-                        {{# if(d.disable){}}
-                            禁用
-                        {{# }else{ }}
-                            正常
-                        {{# } }}
-                        {{# if(d.user_delete==1){ }}
-                        (<span style="color: red">已注销</span>)
-                        {{# } }}
-                    </p>
-                </div>
-            </script>
-
-            <script type="text/html" id="wallet-info">
-                <div class="layui-input-inline" style="text-align:left;width: 240px">
-                    <p>总资产:{{d.total_amount}}</p>
-                    <p>可提现金额:{{d.earnings}}</p>
-                    <p>不可提现金额:{{d.user_money}}</p>
-                </div>
-            </script>
-
-            <script type="text/html" id="register-info">
-                <div class="layui-input-inline" style="text-align:left;width: 240px">
-                    <p>注册来源:{{d.client_desc}}</p>
-                    <p>注册时间:{{d.create_time}}</p>
-                </div>
-            </script>
-
-            <script type="text/html" id="first-info">
-                {{# if(d.first_leader_info != '系统'){}}
-                <img src="{{d.first_leader_info.avatar}}" style="height:80px;width: 80px;margin-right: 10px;" class="image-show">
-                <div class="layui-input-inline" style="text-align:left;width: 240px">
-                    <p>用户编号:{{d.first_leader_info.sn}}</p>
-                    <p style="width: 180px;text-overflow:ellipsis;overflow: hidden">用户昵称:{{d.first_leader_info.nickname}}</p>
-                </div>
-                {{# }else{ }}
-                {{d.first_leader_info}}
-                {{# } }}
-            </script>
-
-            <script type="text/html" id="account">
-                <div class="layui-input-inline">
-                    <label>余额:{{d.user_money}}</label>
-                    <br/>
-                    <label>积分:{{d.user_integral}}</label>
-                </div>
-            </script>
-
-            <script type="text/html" id="user-operation">
-                <a class="layui-btn layui-btn-primary layui-btn-sm" lay-event="info">资料</a>
-                <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">编辑</a>
-                <a class="layui-btn layui-btn-normal layui-btn-sm"  id="adjust_user" lay-event="adjust_user">账户调整</a>
-                <a class="layui-btn layui-btn-normal layui-btn-sm"  id="adjust_level" lay-event="adjust_level">等级调整</a>
-                <a class="layui-btn layui-btn-normal layui-btn-sm"  id="adjust_first_leader" lay-event="adjust_first_leader">推荐人调整</a>
-
-            </script>
-        </div>
-    </div>
-</div>
-<style>
-    .layui-table-cell {
-        height: auto;
-    }
-</style>
-<script>
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/' //静态资源所在路径
-    }).use(['table','laydate'], function(){
-        var $ = layui.$
-            ,form = layui.form
-            ,table = layui.table
-            , laydate = layui.laydate;
-
-        //监听搜索
-        form.on('submit(user-search)', function(data){
-            var field = data.field;
-            //执行重载
-            table.reload('user-lists', {
-                where: field,
-                page: {
-                    curr: 1 //重新从第 1 页开始
-                }
-            });
-        });
-        //日期时间范围
-        laydate.render({
-            elem: '#start_time'
-            ,type: 'datetime'
-            ,trigger: 'click'
-        });
-
-        //日期时间范围
-        laydate.render({
-            elem: '#end_time'
-            ,type: 'datetime'
-            ,trigger: 'click'
-        });
-
-        //清空查询
-        form.on('submit(user-clear-search)', function(){
-            $('#keyword_type').val('sn');
-            $('#keyword').val('');  //清空输入框
-            $('#level').val('');  //清空输入框
-            $('#tag').val('');  //清空输入框
-            $('#client').val('');  //清空输入框
-            $('#disable').val('');  //清空禁用状态
-            $('#total_amount_start').val('');  //清空输入框
-            $('#total_amount_end').val('');  //清空输入框
-            $('#start_time').val('');  //清空输入框
-            $('#end_time').val('');  //清空输入框
-            form.render('select');
-            //刷新列表
-            table.reload('user-lists', {
-                where: [],
-                page: {
-                    curr: 1 //重新从第 1 页开始
-                }
-            });
-        });
-
-
-        //事件
-        var active = {
-            send_coupon:function() { //发放优惠券
-                var check_status = table.checkStatus('user-lists')
-                    ,user_list = check_status.data; //得到选中的数据
-
-                //是否已选数据
-                if(0 === user_list.length ){
-                    return layer.msg('请选择用户');
-                }
-                //获取所选id
-                ids = [];
-                for (var i in user_list){
-                    ids.push(user_list[i]['id']);
-                }
-                layer.open({
-                    type: 2
-                    ,title: '发放优惠券'
-                    ,content: '{:url("coupon/sendCouponList")}'
-                    ,area: ['90%','90%']
-                    ,btn: ['确定发放', '取消']
-                    ,yes: function(index, layero){
-                        var iframeWindow = window['layui-layer-iframe'+ index]
-                            ,submitID = 'send-submit'
-                            ,submit = layero.find('iframe').contents().find('#'+ submitID);
-                        //监听提交
-                        iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
-                            var coupon_list = window["layui-layer-iframe" + index].callbackdata();
-                            if(coupon_list.length === 0){
-                                return layer.msg('请选择优惠券');
-                            }
-                            coupon_ids = [];
-                            for (var i in coupon_list){
-                                coupon_ids.push(coupon_list[i]['id']);
-                            }
-                            like.ajax({
-                                url:'{:url("coupon/sendCoupon")}',
-                                data:{coupon_ids:coupon_ids,user_ids:ids},
-                                type:"post",
-                                success:function(res)
-                                {
-                                    if(res.code == 1)
-                                    {
-                                        layui.layer.msg(res.msg, {
-                                            offset: '15px'
-                                            , icon: 1
-                                            , time: 1000
-                                        });
-                                        layer.close(index); //关闭弹层
-                                        table.reload('goods_brand-lists'); //数据刷新
-                                    }
-
-                                }
-                            });
-                        });
-
-                        submit.trigger('click');
-                    }
-                });
-            }
-            ,set_tag:function() { //设置会员标签
-                var check_status = table.checkStatus('user-lists')
-                    ,user_list = check_status.data; //得到选中的数据
-
-                //是否已选数据
-                if( user_list.length === 0){
-                    return layer.msg('请选择用户');
-                }
-                //获取所选id
-                ids = [];
-                for (var i in user_list){
-                    ids.push(user_list[i]['id']);
-                }
-
-                layer.open({
-                    type: 2
-                    ,title: '设置会员标签'
-                    ,content: '{:url("user.user/setTag")}'
-                    ,area: ['60%', '60%']
-                    ,btn: ['确定', '取消']
-                    ,yes: function(index, layero){
-                        var iframeWindow = window['layui-layer-iframe'+ index]
-                            ,submitID = 'set_tag-submit'
-                            ,submit = layero.find('iframe').contents().find("#set_tag-submit");
-                        //监听提交
-                        iframeWindow.layui.form.on('submit(set_tag-submit)', function(data){
-                            $.ajax({
-                                url:'{:url("user.user/setTag")}',
-                                data:{tag_ids:data.field.select,user_ids:ids},
-                                type:"post",
-                                success:function(res)
-                                {
-                                    if(res.code == 1)
-                                    {
-                                        layui.layer.msg(res.msg, {
-                                            offset: '15px'
-                                            , icon: 1
-                                            , time: 1000
-                                        });
-                                        layer.close(index); //关闭弹层
-                                        table.reload('user-lists'); //数据刷新
-                                    }
-                                }
-                            });
-                        });
-                        submit.trigger('click');
-                    }
-                });
-
-            }
-        }
-        $('.layui-btn.layuiadmin-btn-user').on('click', function(){
-            var type = $(this).data('type');
-            active[type] ? active[type].call(this) : '';
-        });
-
-        $(document).on('click', '.image-show', function () {
-            var src = $(this).attr('src');
-            like.showImg(src,600);
-        });
-    });
-
-
-
-    layui.define(['table', 'form'], function(exports){
-        var $ = layui.$
-            ,table = layui.table
-            ,form = layui.form;
-
-        table.render({
-            id:'user-lists'
-            ,elem: '#user-lists'
-            ,url: '{:url("user.user/lists")}' //模拟接口
-            ,cols: [[
-                {type: 'checkbox'}
-                ,{title: '用户信息',width: 370,align: 'center', templet: '#user-info'}
-                ,{field: 'level_name', title: '用户等级',width: 120,align: 'center'}
-                ,{field: 'tag_str', title: '用户标签',width: 220,align: 'center'}
-                ,{field: 'user_growth', title: '成长值',width: 120,align: 'center'}
-                ,{title: '钱包信息',width: 350,align: 'center', templet: '#wallet-info'}
-                ,{field: 'total_order_amount', title: '消费金额',width: 90,align: 'center'}
-                ,{title: '上级推荐人',width: 90,align: 'center',width: 350, templet: '#first-info'}
-                ,{field: 'fans', title: '推荐下级人数',width: 120,align: 'center'}
-                ,{title: '注册信息',width: 300,align: 'center', templet: '#register-info'}
-                ,{fixed: 'right', title: '操作', width: 420,toolbar: '#user-operation',align: 'center'}
-            ]]
-            ,page:true
-            ,text: {none: '暂无数据!'}
-            ,parseData: function(res){ //将原始数据解析成 table 组件所规定的数据
-                return {
-                    "code":res.code,
-                    "msg":res.msg,
-                    "count": res.data.count, //解析数据长度
-                    "data": res.data.lists, //解析数据列表
-                };
-            },
-            response: {
-                statusCode: 1
-            }
-            , done: function fix() {
-                $(".layui-table-main tr").each(function (index, val) {
-                    $(".layui-table-fixed").each(function () {
-                        $($(this).find(".layui-table-body tbody tr")[index]).height($(val).height());
-                    });
-                });
-                $(".layui-table-header tr").each(function (index, val) {
-                    $(".layui-table-fixed").each(function () {
-                        $($(this).find(".layui-table-header thead tr")[index]).height($(val).height());
-                    });
-                });
-                window.onresize = function () {
-                    fix()
-                }
-            }
-        });
-
-        var moreShow = 0;
-        //监听工具条
-        table.on('tool(user-lists)', function(obj){
-            if(obj.event === 'edit'){
-                var id = obj.data.id;
-                layer.open({
-                    type: 2
-                    ,title: '编辑会员'
-                    ,content: '{:url("user.user/edit")}?id='+id
-                    ,area: ['90%', '90%']
-                    ,btn: ['确定', '取消']
-                    ,yes: function(index, layero){
-                        var iframeWindow = window['layui-layer-iframe'+ index]
-                            ,submit = layero.find('iframe').contents().find('#edit-submit');
-                        //监听提交
-                        iframeWindow.layui.form.on('submit(edit-submit)', function(data){
-                            var field = data.field;
-                            $.ajax({
-                                url:'{:url("user.user/edit")}',
-                                data:field,
-                                type:"post",
-                                success:function(res)
-                                {
-                                    if(res.code == 1)
-                                    {
-                                        layui.layer.msg(res.msg, {
-                                            offset: '15px'
-                                            , icon: 1
-                                            , time: 1000
-                                        });
-                                        layer.close(index); //关闭弹层
-                                        table.reload('user-lists'); //数据刷新
-                                    }else{
-                                        layer.msg(res.msg, {
-                                            offset: '15px'
-                                            , icon: 2
-                                            , time: 1000
-                                        });
-                                    }
-                                }
-                            });
-                        });
-                        submit.trigger('click');
-                    }
-                })
-
-            }
-            if(obj.event === 'info'){
-                var id = obj.data.id;
-                layer.open({
-                    type: 2
-                    ,title: '会员资料'
-                    ,content: '{:url("user.user/info")}?id='+id
-                    ,area: ['90%','90%']
-                    ,btn: ['返回']
-                })
-            }
-            if(obj.event === 'adjust_user'){
-                var id = obj.data.id;
-                layer.open({
-                    type: 2
-                    ,title: '账户调整'
-                    ,content: '{:url("user.user/adjustAccount")}?id='+id
-                    ,area: ['90%', '90%']
-                    ,btn: ['确定', '取消']
-                    ,yes: function(index, layero){
-                        var iframeWindow = window['layui-layer-iframe'+ index]
-                            ,submit = layero.find('iframe').contents().find('#adjust_user-submit');
-                        //监听提交
-                        iframeWindow.layui.form.on('submit(adjust_user-submit)', function(data){
-                            var field = data.field;
-                            $.ajax({
-                                url:'{:url("user.user/adjustAccount")}',
-                                data:field,
-                                type:"post",
-                                success:function(res)
-                                {
-                                    if(res.code == 1)
-                                    {
-                                        layui.layer.msg(res.msg, {
-                                            offset: '15px'
-                                            , icon: 1
-                                            , time: 1000
-                                        });
-                                        layer.close(index); //关闭弹层
-                                        table.reload('user-lists'); //数据刷新
-                                    }else{
-                                        layer.msg(res.msg, {
-                                            offset: '15px'
-                                            , icon: 2
-                                            , time: 1000
-                                        });
-                                    }
-                                }
-                            });
-                        });
-                        submit.trigger('click');
-                    }
-                })
-            }
-            if(obj.event === 'adjust_level'){
-                var id = obj.data.id;
-                layer.open({
-                    type: 2
-                    ,title: '等级调整'
-                    ,content: '{:url("user.user/adjustLevel")}?id='+ id
-                    ,area: ['90%', '90%']
-                    ,btn: ['确定', '取消']
-                    ,yes: function(index, layero){
-                        var iframeWindow = window['layui-layer-iframe'+ index]
-                            ,submit = layero.find('iframe').contents().find('#formSubmit');
-                        //监听提交
-                        iframeWindow.layui.form.on('submit(formSubmit)', function(data){
-                            var field = data.field;
-                            $.ajax({
-                                url:'{:url("user.user/adjustLevel")}',
-                                data:field,
-                                type:"post",
-                                success:function(res)
-                                {
-                                    if(res.code == 1)
-                                    {
-                                        layui.layer.msg(res.msg, {
-                                            offset: '15px'
-                                            , icon: 1
-                                            , time: 1000
-                                        });
-                                        layer.close(index); //关闭弹层
-                                        table.reload('user-lists'); //数据刷新
-                                    }else{
-                                        layer.msg(res.msg, {
-                                            offset: '15px'
-                                            , icon: 2
-                                            , time: 1000
-                                        });
-                                    }
-                                }
-                            });
-                        });
-                        submit.trigger('click');
-                    }
-                })
-            }
-            if(obj.event === 'adjust_first_leader'){
-                var id = obj.data.id;
-                layer.open({
-                    type: 2
-                    ,title: '推荐人调整'
-                    ,content: '{:url("user.user/adjustFirstLeader")}?id='+ id
-                    ,area: ['90%', '90%']
-                    ,btn: ['确定', '取消']
-                    ,yes: function(index, layero){
-                        var iframeWindow = window['layui-layer-iframe'+ index]
-                            ,submit = layero.find('iframe').contents().find('#formSubmit');
-                        //监听提交
-                        iframeWindow.layui.form.on('submit(formSubmit)', function(data){
-                            var field = data.field;
-                            $.ajax({
-                                url:'{:url("user.user/adjustFirstLeader")}',
-                                data:field,
-                                type:"post",
-                                success:function(res)
-                                {
-                                    if(res.code == 1)
-                                    {
-                                        layui.layer.msg(res.msg, {
-                                            offset: '15px'
-                                            , icon: 1
-                                            , time: 1000
-                                        });
-                                        layer.close(index); //关闭弹层
-                                        table.reload('user-lists'); //数据刷新
-                                    }else{
-                                        layer.msg(res.msg, {
-                                            offset: '15px'
-                                            , icon: 2
-                                            , time: 1000
-                                        });
-                                    }
-                                }
-                            });
-                        });
-                        submit.trigger('click');
-                    }
-                })
-            }
-        });
-    });
-</script>

+ 0 - 34
app/admin/view/user/user/set_tag.html

@@ -1,34 +0,0 @@
-{layout name="layout2" /}
-<div class="layui-form" lay-filter="layuiadmin-form-user" id="layuiadmin-form-user" style="padding: 20px 30px 0 0;">
-
-    <div class="layui-form-item">
-        <label class="layui-form-label" style="width: 180px">选择会员标签:</label>
-        <div class="layui-input-inline" style="width: 420px">
-            <div id="tagList"></div>
-        </div>
-    </div>
-    <div class="layui-form-item layui-hide">
-        <input type="button" lay-submit lay-filter="set_tag-submit" id="set_tag-submit" value="确认">
-    </div>
-</div>
-<script>
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/' //静态资源所在路径
-    }).extend({
-        xmSelect: 'xmSelect/xm-select'
-    }).use(['xmSelect', 'form'], function(){
-        var $ = layui.$,form = layui.form ;
-        var xmSelect = layui.xmSelect;
-        var tag_list = '{$tag_list|raw}';
-
-        var xmIns = xmSelect.render({
-            el: '#tagList',
-            language: 'zn',
-            data: JSON.parse(tag_list),
-            prop: {
-                value: 'id'
-            }
-        })
-    })
-</script>

+ 0 - 121
app/admin/view/user/user/user_lists.html

@@ -1,121 +0,0 @@
-{layout name="layout1" /}
-<style>
-    .search {
-        margin-top: 15px;
-    }
-    .search .layui-form-label {
-        width: 120px;
-        text-align: left;
-    }
-    .btns {
-        margin-top: 15px;
-    }
-</style>
-<div class="layui-fluid">
-    <div class="layui-card">
-        <div class="layui-card-body">
-            <!--搜索区域-->
-            <div class="search layui-form">
-                <div class="layui-inline">
-                    <div class="layui-form-label">用户信息</div>
-                    <div class="layui-input-inline">
-                        <input type="text" id="keyword" name="keyword" class="layui-input" />
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <button class="layui-btn layui-btn-primary layui-bg-blue" lay-submit lay-filter="search">搜索</button>
-                    <button class="layui-btn layui-btn-primary" lay-submit lay-filter="reset">重置</button>
-                </div>
-            </div>
-            <!--数据表格-->
-            <table id="lists" lay-filter="lists"></table>
-            <!--自定义模板-->
-            <script type="text/html" id="user-info">
-                <img src="{{d.avatar}}" style="height:60px;width: 60px" class="image-show">
-                <div class="layui-input-inline"  style="text-align: left;">
-                    <p>用户编号:{{d.user_sn}}</p>
-                    <p style="width: 300px;text-overflow:ellipsis;overflow: hidden">用户昵称:{{d.nickname}}</p>
-                </div>
-            </script>
-            <script type="text/html" id="level-info">
-                {{d.level_name}}({{d.weights}})级
-            </script>
-        </div>
-    </div>
-</div>
-
-
-<script>
-
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/'
-    }).use(['table', 'form'], function () {
-        let $ = layui.$
-            , form = layui.form
-            , table = layui.table;
-
-        //监听搜索
-        form.on('submit(search)', function(data){
-            var field = data.field;
-            //执行重载
-            table.reload('lists', {
-                where: field,
-                page: {curr: 1}
-            });
-        });
-
-        // 获取选中的用户信息
-        window.user_selected = function user_selected()
-        {
-            var checkStatus = table.checkStatus('lists');
-            return checkStatus.data[0]; //获取选中行的数据
-        }
-
-        //清空查询
-        form.on('submit(reset)', function(){
-            $('#keyword').val('');
-            $('#is_distribution').val('all');
-            form.render('select');
-            //刷新列表
-            table.reload('lists', {
-                where: [], page: {curr: 1}
-            });
-        });
-
-        // 数据表格渲染
-        table.render({
-            elem: '#lists'
-            ,url: '{:url("distribution.distribution_member/userLists")}' //数据接口
-            ,method: 'post'
-            ,page: true //开启分页
-            ,cols: [[ //表头
-                {type: 'radio'}
-                ,{field: 'sn', title: '用户编号', width:380}
-                ,{field: 'nickname', title: '用户昵称', width:180}
-            ]]
-            , text: {none: '暂无数据!'}
-            , parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
-                return {
-                    "code": res.code,
-                    "msg": res.msg,
-                    "count": res.data.count, //解析数据长度
-                    "data": res.data.lists, //解析数据列表
-                };
-            },
-            response: {
-                statusCode: 1
-            }
-            ,done: function(res, curr, count){
-                // 解决操作栏因为内容过多换行问题
-                $(".layui-table-main tr").each(function (index, val) {
-                    $($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
-                    $($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
-                });
-            }
-        });
-
-    });
-
-
-</script>