dever 3 years ago
parent
commit
14dce9f8ad

+ 0 - 1
app/factory/assets/pc/html/cashier.html

@@ -195,7 +195,6 @@
 			var url = '<{$submit}>';
 			var factory_id = '<{$factory_id}>';
 			var store_id = $('.xm-select-parent[fs_id="store_id"] span[fsw="xm-select"]').attr('value');
-			console.info(store_id);
 			if (!store_id) {
 				layui.layer.alert('请先选择仓库');
 				return;

+ 9 - 0
app/shop/src/My.php

@@ -243,4 +243,13 @@ class My extends Core
 	{
 		
 	}
+
+	# 绑定代理商
+	public function bind()
+	{
+		$type = Dever::input('type');
+
+
+		$info = Dever::db('agent/user_bind')->find(array('uid' => $this->uid));
+	}
 }

+ 272 - 0
service/agent/assets/pc/html/setMemberGoods.html

@@ -0,0 +1,272 @@
+<!doctype html>
+<html>
+<head>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0" />
+<meta name="author" content="siweiyong 2602812659@qq.com"/>
+<title>设置商品</title>
+<link rel="stylesheet" href="../script/lib/miniui/themes/default/miniui.css">
+<link rel="stylesheet" href="../script/lib/layui/css/layui.css" />
+<link rel="stylesheet" href="../script/lib/cashier/common.css">
+<link rel="stylesheet" href="../script/lib/layui/admin/modules/plugin/formselects/formselects.css" media="all" />
+<script src="../script/lib/jquery/jquery.min.js"></script>
+<script src="../script/lib/miniui/miniui.js"></script>
+<script src="../script/lib/layui/layui.js"></script>
+<script><{Dever::script()}></script>
+<script src="../script/dever/core.js"></script>
+</head>
+<body style="background: #F6F7F9;">
+<div class="main">
+<form class="layui-form" lay-filter="form">
+    <div class="layui-row">
+        <div class="main_left layui-col-xs12 layui-col-md3">
+            <div class="layui-row">
+                <div class="top">
+                    <i class="layui-icon layui-icon-app"></i>商品列表
+                </div>
+                <div class="left_main">
+                    <input id="key" class="mini-textbox" placeholder="请输入商品名称" onenter="onKeyEnter"/>
+                    <a class="mini-button" onclick="search()">查询</a> 
+                    <ul id="tree1" class="mini-tree" url="<{$url}>" showTreeIcon="true" textField="name" idField="id" expandOnLoad="true" onNodeClick="onNodeClick">
+                    </ul>
+                </div>
+            </div>
+        </div>
+        <div class="main_right layui-col-xs12 layui-col-md9">
+            <div class="layui-row">
+                <div class="goods_list" style="height:645px;">
+                    <table class="layui-table">
+                        <thead>
+                            <tr>
+                                <th lay-data="{field:'id'}">商品编码</th>
+                                <th lay-data="{field:'name'}">商品名称</th>
+                                <th lay-data="{field:'price', edit: 'text'}">销售价(元)</th>
+                                <th lay-data="{field:'number', edit: 'text'}">更改数量</th>
+                                <th lay-data="{field:'operation'}">操作</th>
+                            </tr>
+                        </thead>
+                        <tbody id="goods">
+                            
+                        </tbody>
+                    </table>
+                </div>
+                <div class="total ft16">
+                    合计:【<span> 当前总数量:<i class="totalNum">0</i> </span>
+                </div>
+                <table class="reading layui-table" lay-even="">
+                    <tbody>
+                        <tr>
+                            <td>备注(本次调整说明):</td>
+                            <td><textarea class="layui-textarea" name="desc" id="desc" rows="" cols="" maxlength="200" placeholder="请输入备注"></textarea></td>
+                        </tr>
+                    </tbody>
+                </table>
+                <div class="towbtn">
+                    <input type="button" id="settlement" value="确认修改权益">
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+</form>
+</div>
+<script>
+    var form;
+    layui.config(
+    {
+        base: '../script/lib/layui/admin/' //静态资源所在路径
+        ,version: true
+    }).extend(
+    {
+        index: 'lib/index', //主入口模块
+        formSelects: 'plugin/formselects/formselects'
+    }).use(['index', 'contlist', 'table', 'form', 'formSelects','layer'], function()
+    {
+        var table = layui.table;
+        form = layui.form; 
+        var formSelects = layui.formSelects;
+        form.render(); 
+    });
+
+    $(function()
+    {
+        $("#settlement").click(function(){
+            var url = '<{$submit}>';
+            var mid = '<{$mid}>';
+
+            layui.layer.confirm('确定进行此项设置吗?', function() {
+                var desc = $('#desc').val();
+                var goods_string = JSON.stringify(goods);
+
+                var data = {};
+                data = {mid:mid, desc:desc, goods:goods_string};
+                $.post(url, data, function(t) {
+                    t = JSON.parse(t);
+                    if (t.status == 1) {
+                        layui.layer.alert('权益调整成功', function(index){
+                          location.href = t.data;
+                          layer.close(index);
+                        });
+                    } else {
+                        layui.layer.alert(t.msg);
+                    }
+                });
+            });
+        })
+
+        $("#goods").on("keyup", ".goods_num", function() {
+            var num = parseInt($(this).val());
+            if (!num || num <= 0) {
+                num = 0;
+                $(this).val(0);
+            }
+            var id = $(this).parent().attr('value');
+            goods[id].total = num;
+            setTotal();
+        });
+    })
+    var goods = {};
+    var del_goods = {};
+    mini.parse();
+    var tree = mini.get("tree1");
+    for (var i in tree.data) {
+        if (typeof(tree.data[i].children) == 'object') {
+            if (tree.data[i].children.length > 0) {
+                for (var j in tree.data[i].children) {
+                    if(tree.data[i].children[j].select == 1) {
+                        setGoods(tree.data[i].children[j]);
+                    }
+                }
+            } else if(tree.data[i].select == 1) {
+                setGoods(tree.data[i]);
+            }
+        }
+    }
+    function search() 
+    {
+        var key = mini.get("key").getValue();
+        if (key == "") {
+            tree.clearFilter();
+        } else {
+            key = key.toLowerCase();                
+            tree.filter(function (node) {
+                var name = node.name ? node.name.toLowerCase() : "";
+                if (name.indexOf(key) != -1) {
+                    return true;
+                }
+            });
+        }
+    }
+    function onKeyEnter(e)
+    {
+        search();
+    }
+
+    function onNodeClick()
+    {
+        var tree=mini.get("tree1");
+        node=tree.getSelectedNode();
+        if(node.end) {
+            setGoods(node);
+        }
+    }
+
+    function setGoods(node)
+    {
+        if (node.id) {
+            var key = node.id;
+            if (!goods[key] || (goods[key] && goods[key].del == 2)) {
+                goods[key] = node;
+                goods[key].price = parseFloat(goods[key].price);
+                goods[key].price_type = parseInt(goods[key].price_type);
+                goods[key].total = parseFloat(goods[key].total);
+                goods[key].total = goods[key].total > 0 ? goods[key].total : 1;
+                goods[key].num = 0;
+                goods[key].del = 1;
+                create(node);
+                setTotal();
+            } else if(node.price_type < 4) {
+                add(key);
+            }
+        }
+    }
+
+    function get(key)
+    {
+        return $('#goods_' + key);
+    }
+
+    function create(node)
+    {
+        if (!get(node.id).length) {
+            var addtr = '<tr class="mytr" id="goods_'+node.id+'">';
+            addtr += '<td class="goods_id">'+node.id+'</td>';
+            addtr += '<td class="goods_name">'+node.name+'</td>';     
+            addtr += '<td class="goods_price">'+node.price+'</td>';     
+            addtr += '<td><div class="jiajian" value='+node.id+'><span class="jian" onclick="dec(\''+node.id+'\')">-</span><input type="text" value="'+node.total+'" class="goods_num"><span class="jia" onclick="add(\''+node.id+'\')">+</span></div></td>'; 
+            
+            if (node.total <= 0) {
+                addtr += '<td><a class="delete_btn" onclick="del(\''+node.id+'\')">删除</a></td>';
+            } else {
+                addtr += '<td></td>';
+            }
+                                  
+            addtr += '</tr>';
+            $("#goods").append(addtr);
+        }
+    }
+
+    function add(id)
+    {
+        goods[id].total += 1;
+        get(id).find('.goods_num').val(goods[id].total);
+        setTotal();
+    }
+    
+    function dec(id)
+    {
+        goods[id].total -= 1;
+        if (goods[id].total < 1) {
+            goods[id].total = 0;
+        }
+
+        get(id).find('.goods_num').val(goods[id].total);
+        setTotal();
+    }
+
+    function del(id)
+    {
+        if (confirm('确定删除吗?')) {
+            goods[id].del = 2;
+            get(id).remove();
+            setTotal();
+        }
+    }
+
+    function setTotal()
+    {
+        var cash = 0;
+        var num = 0;
+        var total = 0;
+        for (var i in goods) {
+            //num += goods[i].num;
+            total += goods[i].total;
+        }
+        //$(".totalQuantity").html(num);
+        $(".totalNum").html(total);
+    }
+
+    function setShop()
+    {
+        var give = $('#give').val();
+        if (!give) {
+            layui.layer.alert('请选择赠送类型');
+            return;
+        }
+        layui.layer.confirm('确定切换赠送类型吗?切换后现在选择的商品都将清空', function() {
+            location.href = '<{$host}>&give=' + give;
+        });
+    }
+</script>
+</body>
+</html>

+ 11 - 5
service/agent/database/dh_order.php

@@ -17,6 +17,15 @@ $dh_type = array
 	2 => '自动发放',
 );
 
+$mid = Dever::input('search_option_mid');
+$button = array();
+if ($mid) {
+    $button = array
+    (
+        '返回上一页' => array('location', 'l=project/database/list&project=agent&table=member_area&page_type=1&mid=' . $mid),
+    );
+}
+
 $status = array
 (
     1 => '待支付',
@@ -302,7 +311,7 @@ return array
             'desc'      => '',
             # 只有insert时才生效
             'insert'    => true,
-            'search'    => 'sdate',
+            'search'    => 'date',
             'list'        => 'date("Y-m-d H:i", {cdate})',
             //'list'      => 'Dever::load("service/lib/manage.showOrderTime", "{id}")',
             'list_order' => 2,
@@ -315,10 +324,7 @@ return array
         'edit' => false,
         'insert' => false,
 
-        'button' => array
-        (
-            //'导出订单明细' => array('excel', 'shop/excel.sell_order'),
-        ),
+        'button' => $button,
 
         'list_button' => array
         (

+ 23 - 12
service/agent/database/member.php

@@ -13,7 +13,7 @@ $role = function()
 
 $status = array
 (
-    1 => '申请中',
+    1 => '未认证',
     2 => '正常',
     3 => '驳回',
     4 => '已删除',
@@ -43,7 +43,13 @@ $level = function()
 	}
 	return $array;
 };
+$parent_mid = Dever::input('search_option_parent_mid');
+$getInfo = Dever::input('getInfo');
 
+$info = '';
+if ($parent_mid && $parent_mid > 0 && $getInfo != 1) {
+    $info = Dever::load('agent/lib/member')->getInfoString($parent_mid);
+}
 return array
 (
     # 表名
@@ -54,6 +60,7 @@ return array
     'auto' => 1000000,
     'config_type' => $type,
     'config_status' => $status,
+    'info' => $info,
     # 数据结构
     'struct' => array
     (
@@ -162,18 +169,19 @@ return array
         'parent_mid'      => array
         (
             'type'      => 'int-11',
-            'name'      => '邀请人',
+            'name'      => '邀请人手机号',
             'default'   => '-1',
             'desc'      => '邀请人',
             'match'     => 'is_string',
             'update'    => 'text',
-            'search'    => array
+            'search'    => $parent_mid ? 'hidden' : array
             (
                 'api' => 'agent/member-select',
-                'col' => 'name',
+                'col' => 'mobile',
                 'result' => 'id',
             ),
-            'list'      => 'Dever::load("agent/member-find#name", {parent_mid})',
+            'list_name' => '邀请人',
+            'list'      => $parent_mid ? false : 'Dever::load("agent/member-find#name", {parent_mid})',
         ),
 
         'code'        => array
@@ -184,7 +192,7 @@ return array
             'desc'      => '邀请码',
             'match'     => 'option',
             //'update'    => 'text',
-            'list'      => 'Dever::load("invite/api.code", {id})',
+            'list'      => $parent_mid ? false : 'Dever::load("invite/api.code", {id})',
         ),
 
         'role'      => array
@@ -235,7 +243,7 @@ return array
             'match'     => 'is_numeric',
             'update'    => 'select',
             'update_search' => 'shop/lib/manage.search',
-            'list'      => '{shop_id} > 0 ? Dever::load("shop/info-one#name", {shop_id}) : "无"',
+            'list'      => $parent_mid ? false : '{shop_id} > 0 ? Dever::load("shop/info-one#name", {shop_id}) : "无"',
         ),
 
         'type'        => array
@@ -340,26 +348,29 @@ return array
             'desc'      => '余额',
             'match'     => 'is_numeric',
             'update'    => 'text',
+            'list'      => true,
         ),
 
         'sell'      => array
         (
             'type'      => 'float-11,2',
-            'name'      => '销售业绩-直推业绩',
+            'name'      => '直推业绩',
             'default'   => '0',
             'desc'      => '销售业绩',
             'match'     => 'is_numeric',
             'update'    => 'text',
+            'list'      => $parent_mid ? true : false,
         ),
 
         'group_sell'      => array
         (
             'type'      => 'float-11,2',
-            'name'      => '团队销售业绩',
+            'name'      => '团队业绩',
             'default'   => '0',
             'desc'      => '团队销售业绩',
             'match'     => 'is_numeric',
             'update'    => 'text',
+            'list'      => $parent_mid ? true : false,
         ),
 
         'status'        => array
@@ -386,13 +397,13 @@ return array
         'cdate'     => array
         (
             'type'      => 'int-11',
-            'name'      => '创建时间',
+            'name'      => '加入日期',
             'match'     => array('is_numeric', time()),
             'desc'      => '',
             # 只有insert时才生效
             //'insert'    => true,
-            'search'    => 'date',
-            'list'      => 'date("Y-m-d H:i:s", {cdate})',
+            //'search'    => 'date',
+            //'list'      => 'date("Y-m-d H:i:s", {cdate})',
         ),
     ),
 

+ 58 - 7
service/agent/database/member_goods.php

@@ -1,6 +1,16 @@
 <?php
 
 $type = Dever::db('setting/role_goods')->config['set']['type'];
+$mid = Dever::input('search_option_mid');
+$button = array();
+if ($mid) {
+    $button = array
+    (
+        '返回上一页' => array('location', 'l=project/database/list&project=agent&table=member_area&page_type=1&mid=' . $mid),
+        '手动调整权益' => array('location', 'agent/lib/member_set.home?mid=' . $mid),
+        '权益操作记录' => array('location', 'l=project/database/list&project=agent&table=member_goods_log&search_option_mid=' . $mid),
+    );
+}
 
 return array
 (
@@ -28,18 +38,44 @@ return array
         'mid'      => array
         (
             'type'      => 'int-11',
-            'name'      => '代理商',
+            'name'      => '手机号',
             'default'   => '-1',
             'desc'      => '代理商',
             'match'     => 'is_string',
             'update'    => 'text',
-            'searchs'    => array
+            'search'    => $mid ? 'hidden' : array
             (
                 'api' => 'agent/member-select',
-                'col' => 'name',
+                'col' => 'mobile',
                 'result' => 'id',
             ),
-            //'list'      => 'Dever::load("agent/member-find#name", {mid})',
+            'list_name' => '手机号',
+            'list'      => $mid ? false : 'Dever::load("agent/member-find#mobile", {mid})',
+            'list_order' => 2,
+        ),
+
+        'agent-member-name'=> array
+        (
+            'name'      => '姓名',
+            'default'   => '',
+            'desc'      => '姓名',
+            'match'     => 'option',
+            # 读取另外表的关联方式
+            'sync'      => array('mid', 'id'),
+            'list'      => $mid ? false : true,
+            'list_order' => 1,
+        ),
+
+        'agent-member-role'=> array
+        (
+            'name'      => '代理角色',
+            'default'   => '',
+            'desc'      => '代理角色',
+            'match'     => 'option',
+            # 读取另外表的关联方式
+            'sync'      => array('mid', 'id'),
+            //'list'      => 'Dever::load("setting/role-find#name", "{agent-member-role}")',
+            'list_order' => 3,
         ),
 
         'type'        => array
@@ -51,6 +87,9 @@ return array
             'match'     => 'is_numeric',
             'update'  	=> 'radio',
             'option'    => $type,
+            'search'    => 'select',
+            'list'      => true,
+            'list_order' => 4,
         ),
 
         'type_id'      => array
@@ -60,6 +99,9 @@ return array
             'default'   => '-1',
             'desc'      => '类型id',
             'match'     => 'is_numeric',
+            'list_name' => '权益名称',
+            'list'      => 'Dever::load("agent/lib/manage.getGoods#name", "{type}", "{type_id}", "{sku_id}")',
+            'list_order' => 5,
         ),
 
         'sku_id'      => array
@@ -78,6 +120,9 @@ return array
             'default'   => '0',
             'desc'      => '总数量',
             'match'     => 'is_numeric',
+            'list_name' => '数量',
+            'list'      => '{total_num} - {sell_num}',
+            'list_order' => 6,
         ),
 
         'sell_num'      => array
@@ -87,6 +132,9 @@ return array
             'default'   => '0',
             'desc'      => '已兑换数量',
             'match'     => 'option',
+            'list_name' => '单价价值(元)',
+            'list'      => 'Dever::load("agent/lib/manage.getGoods#price", "{type}", "{type_id}", "{sku_id}")',
+            'list_order' => 7,
         ),
 
         'state'     => array
@@ -106,14 +154,17 @@ return array
             'desc'      => '',
             # 只有insert时才生效
             //'insert'    => true,
-            'search'    => 'date',
-            'list'      => 'date("Y-m-d H:i:s", {cdate})',
+            //'search'    => 'date',
+            //'list'      => 'date("Y-m-d H:i:s", {cdate})',
         ),
     ),
 
     'manage' => array
     (
-        
+        'edit' => false,
+        'insert' => false,
+        'delete' => false,
+        'button' => $button,
     ),
 
     'request' => array

+ 229 - 0
service/agent/database/member_goods_log.php

@@ -0,0 +1,229 @@
+<?php
+
+$type = Dever::db('setting/role_goods')->config['set']['type'];
+$mid = Dever::input('search_option_mid');
+$button = array();
+if ($mid) {
+    $button = array
+    (
+        '返回上一页' => array('location', 'l=project/database/list&project=agent&table=member_goods&search_option_mid=' . $mid),
+    );
+}
+
+return array
+(
+    # 表名
+    'name' => 'member_goods_log',
+    # 显示给用户看的名称
+    'lang' => '代理商权益日志',
+    'menu' => false,
+    # 数据结构
+    'struct' => array
+    (
+    
+        'id'        => array
+        (
+            'type'      => 'int-11',
+            'name'      => 'ID',
+            'default'   => '',
+            'desc'      => '',
+            'match'     => 'is_numeric',
+            'search'    => 'order',
+            'update'    => 'hidden',
+            //'list'        => true,
+        ),
+
+        'mid'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '手机号',
+            'default'   => '-1',
+            'desc'      => '代理商',
+            'match'     => 'is_string',
+            'update'    => 'text',
+            'search'    => $mid ? 'hidden' : array
+            (
+                'api' => 'agent/member-select',
+                'col' => 'mobile',
+                'result' => 'id',
+            ),
+            'list_name' => '手机号',
+            'list'      => $mid ? false : 'Dever::load("agent/member-find#mobile", {mid})',
+            'list_order' => 4,
+        ),
+
+        'parent_order_num'      => array
+        (
+            'type'      => 'varchar-100',
+            'name'      => '关联订单',
+            'default'   => '',
+            'desc'      => '关联订单',
+            'match'     => 'is_string',
+            'list'		=> true,
+            'list_order' => 11,
+        ),
+
+        'agent-member-name'=> array
+        (
+            'name'      => '代理商',
+            'default'   => '',
+            'desc'      => '代理商',
+            'match'     => 'option',
+            # 读取另外表的关联方式
+            'sync'      => array('mid', 'id'),
+            'list'      => $mid ? false : true,
+            'list_order' => 3,
+        ),
+
+        'agent-member-role'=> array
+        (
+            'name'      => '角色',
+            'default'   => '',
+            'desc'      => '角色',
+            'match'     => 'option',
+            # 读取另外表的关联方式
+            'sync'      => array('mid', 'id'),
+            //'list'      => 'Dever::load("setting/role-find#name", "{agent-member-role}")',
+            'list_order' => 5,
+        ),
+
+        'order_num'      => array
+        (
+            'type'      => 'varchar-100',
+            'name'      => '日志单号',
+            'default'   => '',
+            'desc'      => '日志单号',
+            'match'     => 'is_string',
+            'update'    => 'text',
+            'search'    => 'fulltext',
+            'list'      => true,
+            'list_order'  => 1,
+        ),
+
+        'type'        => array
+        (
+            'type'      => 'tinyint-1',
+            'name'      => '权益类型',
+            'default'   => '1',
+            'desc'      => '类型',
+            'match'     => 'is_numeric',
+            'update'  	=> 'radio',
+            'option'    => $type,
+            'search'    => 'select',
+            'list'      => true,
+            'list_order' => 6,
+        ),
+
+        'type_id'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '类型id',
+            'default'   => '-1',
+            'desc'      => '类型id',
+            'match'     => 'is_numeric',
+            'list_name' => '权益名称',
+            'list'      => 'Dever::load("agent/lib/manage.getGoods#name", "{type}", "{type_id}", "{sku_id}")',
+            'list_order' => 7,
+        ),
+
+        'sku_id'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => 'sku_id',
+            'default'   => '-1',
+            'desc'      => 'sku_id',
+            'match'     => 'is_numeric',
+        ),
+
+        'num'        => array
+        (
+            'type'      => 'varchar-11',
+            'name'      => '数量',
+            'default'   => '0',
+            'desc'      => '数量',
+            'match'     => 'is_string',
+            'list'      => true,
+            'list_order' => 8,
+        ),
+
+        'pnum'      => array
+        (
+            'type'      => 'varchar-11',
+            'name'      => '操作前数量',
+            'default'   => '0',
+            'desc'      => '操作前数量',
+            'match'     => 'option',
+            'list_name' => '操作前/后',
+            'list'      => '"{pnum}/{fnum}"',
+            'list_order' => 9,
+        ),
+
+        'fnum'      => array
+        (
+            'type'      => 'varchar-11',
+            'name'      => '操作后数量',
+            'default'   => '0',
+            'desc'      => '操作后数量',
+            'match'     => 'option',
+        ),
+
+        'desc'      => array
+        (
+            'type'      => 'varchar-600',
+            'name'      => '备注',
+            'default'   => '',
+            'desc'      => '备注',
+            'match'     => 'is_string',
+            'update'    => 'text',
+            'list'		=> true,
+            'list_order' => 10,
+        ),
+
+        'state'     => array
+        (
+            'type'      => 'tinyint-1',
+            'name'      => '状态',
+            'default'   => '1',
+            'desc'      => '请选择状态',
+            'match'     => 'is_numeric',
+        ),
+        
+        'cdate'     => array
+        (
+            'type'      => 'int-11',
+            'name'      => '操作时间',
+            'match'     => array('is_numeric', time()),
+            'desc'      => '',
+            # 只有insert时才生效
+            'insert'    => true,
+            'search'    => 'date',
+            'list'      => 'date("Y-m-d H:i", {cdate})',
+            'list_order' => 2,
+        ),
+    ),
+
+    'manage' => array
+    (
+        'edit' => false,
+        'insert' => false,
+        'delete' => false,
+        'button' => $button,
+    ),
+
+    'request' => array
+    (
+        'getData' => array
+        (
+            # 匹配的正则或函数 选填项
+            'option' => array
+            (
+                'mid' => 'yes',
+                'type' => 'yes',
+                'state' => 1,
+            ),
+            'order' => array('type' => 'asc', 'id' => 'desc'),
+            'type' => 'all',
+            'col' => '*, total_num-sell_num as num',
+        ),
+    ),
+);

+ 242 - 0
service/agent/database/user_bind.php

@@ -0,0 +1,242 @@
+<?php
+$status = array
+(
+    1 => '未核实',
+    2 => '已核实',
+    3 => '驳回',
+);
+
+$type = array
+(
+    1 => '个人',
+    2 => '公司',
+);
+
+return array
+(
+    # 表名
+    'name' => 'user_bind',
+    # 显示给用户看的名称
+    'lang' => '零售绑定认证',
+    'order' => 1,
+    # 数据结构
+    'struct' => array
+    (
+    
+        'id'        => array
+        (
+            'type'      => 'int-11',
+            'name'      => 'ID',
+            'default'   => '',
+            'desc'      => '',
+            'match'     => 'is_numeric',
+            'search'    => 'order',
+            //'list'        => true,
+        ),
+
+        'uid'       => array
+        (
+            'type'      => 'int-11',
+            'name'      => '绑定用户',
+            'default'   => '',
+            'desc'      => '绑定用户',
+            'match'     => 'is_numeric',
+            'update'    => 'text',
+            'list_name' => '昵称',
+            'list'      => '{uid} > 0 ? Dever::load("passport/user-find#username", {uid}) : "匿名用户"',
+            'list_order' => 1,
+        ),
+
+        'name'      => array
+        (
+            'type'      => 'varchar-100',
+            'name'      => '绑定姓名',
+            'default'   => '',
+            'desc'      => '姓名',
+            'match'     => 'is_string',
+            'update'    => 'text',
+            'search'    => 'fulltext',
+            'list'      => true,
+            'list_order' => 4,
+        ),
+
+        'mobile'      => array
+        (
+            'type'      => 'bigint-11',
+            'name'      => '手机号',
+            'default'   => '',
+            'desc'      => '请输入手机号',
+            'match'     => Dever::rule('mobile'),
+            'update'    => 'text',
+            'search'    => 'fulltext',
+            'list'      => true,
+            'list_order' => 2,
+        ),
+
+        'type'        => array
+        (
+            'type'      => 'tinyint-1',
+            'name'      => '类型',
+            'default'   => '1',
+            'desc'      => '类型',
+            'match'     => 'is_numeric',
+            'option'    => $type,
+            'update'    => 'radio',
+            'control'   => 'type',
+        ),
+
+        'idcard'      => array
+        (
+            'type'      => 'varchar-32',
+            'name'      => '身份证号码',
+            'default'   => '',
+            'desc'      => '身份证号码',
+            'match'     => 'is_string',
+            'update'    => 'text',
+            'list'		=> true,
+            'list_order' => 5,
+        ),
+
+        'idcard_front'     => array
+        (
+            'type'      => 'varchar-150',
+            'name'      => '身份证正面',
+            'default'   => '',
+            'desc'      => '身份证正面',
+            'match'     => 'option',
+            'update'    => 'image',
+            'key'       => '8',
+            'place'     => '660*660',
+        ),
+
+        'idcard_back'     => array
+        (
+            'type'      => 'varchar-150',
+            'name'      => '身份证背面',
+            'default'   => '',
+            'desc'      => '身份证背面',
+            'match'     => 'option',
+            'update'    => 'image',
+            'key'       => '8',
+            'place'     => '660*660',
+        ),
+
+        'company_name'      => array
+        (
+            'type'      => 'varchar-100',
+            'name'      => '公司名称',
+            'default'   => '',
+            'desc'      => '公司名称',
+            'match'     => 'is_string',
+            'update'    => 'text',
+            //'search'    => 'fulltext',
+            //'list'      => true,
+            'show'      => 'type=2',
+        ),
+
+        'company_pic'      => array
+        (
+            'type'      => 'varchar-150',
+            'name'      => '营业执照',
+            'default'   => '',
+            'desc'      => '营业执照',
+            'match'     => 'option',
+            'update'    => 'image',
+            'key'       => '8',
+            'place'     => '660*660',
+            'show'      => 'type=2',
+        ),
+
+        'company_number'      => array
+        (
+            'type'      => 'varchar-80',
+            'name'      => '营业执照号码',
+            'default'   => '',
+            'desc'      => '营业执照号码',
+            'match'     => 'is_string',
+            'update'    => 'text',
+            'show'      => 'type=2',
+        ),
+
+        'status'        => array
+        (
+            'type'      => 'tinyint-1',
+            'name'      => '状态',
+            'default'   => '1',
+            'desc'      => '状态',
+            'match'     => 'is_numeric',
+            'option'    => $status,
+            'search'    => 'select',
+            'list'      => true,
+        ),
+
+        'state'     => array
+        (
+            'type'      => 'tinyint-1',
+            'name'      => '状态',
+            'default'   => '1',
+            'desc'      => '请选择状态',
+            'match'     => 'is_numeric',
+        ),
+        
+        'cdate'     => array
+        (
+            'type'      => 'int-11',
+            'name'      => '申请日期',
+            'match'     => array('is_numeric', time()),
+            'desc'      => '',
+            # 只有insert时才生效
+            'insert'    => true,
+            'search'    => 'date',
+            'list'      => 'date("Y-m-d H:i", {cdate})',
+            'list_order' => 3,
+        ),
+    ),
+
+    'manage' => array
+    (
+        'insert' => false,
+        'delete' => false,
+        'edit' => false,
+
+        'list_button' => array
+        (
+            'list' => array('查看详情', '"member_area&mid={id}&page_type=1"'),
+
+            //'edit' => array('退款', 'status,tk_time,tk_pic,tk_desc,tk_admin,tk_status', '{status} == 6'),
+            //'delete' => array('删除', '', '{status} == 1'),
+        ),
+    ),
+
+    'request' => array
+    (
+        'getInfo' => array
+        (
+            # 匹配的正则或函数 选填项
+            'option' => array
+            (
+                'status' => 2,
+                'state' => 1,
+            ),
+            'order' => array('id' => 'desc'),
+            'type' => 'one',
+            'col' => '*',
+        ),
+
+        'getData' => array
+        (
+            # 匹配的正则或函数 选填项
+            'option' => array
+            (
+                'idcard' => 'yes',
+                'id' => array('yes', '!='),
+                'status' => 2,
+                'state' => 1,
+            ),
+            'order' => array('id' => 'desc'),
+            'type' => 'all',
+            'page' => array(20, 'list'),
+            'col' => '*',
+        ),
+    ),
+);

+ 33 - 2
service/agent/lib/Manage.php

@@ -92,6 +92,7 @@ class Manage
                     $update['where_id'] = $order['mid'];
                     if ($member && $member['status'] == 1) {
                         $update['status'] = 2;
+                        $update['rdate'] = time();
                     }
                     $update['area'] = $order['area'];
                     $update['role'] = $order['role'];
@@ -205,11 +206,19 @@ class Manage
                 if ($info) {
                     $up['where_id'] = $info['id'];
                     $up['total_num'] = $info['total_num'] + $v['num'];
-                    Dever::db('agent/member_goods')->update($up);
+                    $state = Dever::db('agent/member_goods')->update($up);
+
+                    if ($state) {
+                        Dever::load('agent/lib/member_set')->log($order['mid'], $order['order_num'], $v['type'], $v['type_id'], $v['sku_id'], $v['num'], $info['total_num'], $up['total_num']);
+                    }
+                    
                 } else {
                     $up = $where;
                     $up['total_num'] = $v['num'];
-                    Dever::db('agent/member_goods')->insert($up);
+                    $state = Dever::db('agent/member_goods')->insert($up);
+                    if ($state) {
+                        Dever::load('agent/lib/member_set')->log($order['mid'], $order['order_num'], $v['type'], $v['type_id'], $v['sku_id'], $v['num'], 0, $up['total_num']);
+                    }
                 }
             }
         }
@@ -276,4 +285,26 @@ class Manage
             Dever::alert('错误的订单号');
         }
     }
+
+    # 获取权益名称
+    public function getGoods($type, $type_id, $sku_id)
+    {
+        if ($type == 1) {
+            $goods_info = Dever::load('goods/lib/info')->getInfoBySku($type_id, $sku_id);
+            if (isset($goods_info['sku'])) {
+                $sku = '-' . $goods_info['sku']['string'];
+            } else {
+                $sku = '';
+            }
+
+            return array('name' => $goods_info['name'] . $sku, 'price' => $goods_info['price']);
+        } elseif ($type == 2) {
+            $card = Dever::db('card/info')->find($type_id);
+            return array('name' => $card['name'], 'price' => $card['price']);
+        } elseif ($type == 3) {
+            $prize = Dever::db('setting/role_goods')->config['set']['prize'];
+
+            return array('name' => $prize[$type_id], 'price' => 0);
+        }
+    }
 }

+ 72 - 31
service/agent/lib/Member.php

@@ -6,8 +6,24 @@ use Dever;
 
 class Member
 {
+    public function getInfoString($member)
+    {
+        $member = $this->getInfo($member);
+
+        $info = '代理商信息:'.$member['name'].' '.$member['mobile'].' ' . $member['role']['name'];
+        if ($member) {
+            $info .= '('.$member['level']['name'].')';
+        }
+
+        return $info;
+    }
+
     public function getInfo($member)
     {
+        Dever::setInput('getInfo', 1);
+        if (is_numeric($member)) {
+            $member = Dever::db('agent/member')->find($member);
+        }
         $member['area_string'] = Dever::load("area/api.string", $member['area'], '/');
         $member['role'] = Dever::db('setting/role')->find($member['role']);
         $member['level'] = Dever::db('setting/level')->find($member['level_id']);
@@ -167,13 +183,13 @@ class Member
         );
 
         $button = array();
-        $button[] = array
+        $button[0]['btn'][] = array
         (
             'type' => 'edit',
             'link' => Dever::url('project/database/update?project=agent&table=member&where_id='.$member['id'].'&status=1&col=name,mobile,password,email,shop_id,area,role,level_id', 'manage'),
             'name' => '修改基础资料',
         );
-        $button[] = array
+        $button[0]['btn'][] = array
         (
             'type' => 'edit',
             'link' => Dever::url('project/database/update?project=agent&table=member&where_id='.$member['id'].'&status=1&col=type,idcard,idcard_front,idcard_back,company_name,company_pic,company_number', 'manage'),
@@ -190,78 +206,103 @@ class Member
         */
         $url = '';
         if ($member['status'] == 5) {
-            $button[] = array
+            $button[0]['btn'][] = array
             (
                 'type' => 'action',
                 'link' => Dever::url('lib/member.setStatus?id=' . $member['id'] . '&value=2', 'agent'),
                 'name' => '恢复账号',
             );
         } elseif ($member['status'] == 2) {
-            $button[] = array
+            $button[0]['btn'][] = array
             (
                 'type' => 'action',
                 'link' => Dever::url('lib/member.setStatus?id=' . $member['id'] . '&value=5', 'agent'),
                 'name' => '禁用账号',
             );
         }
-        
-        $button[] = array
-        (
-            'type' => 'action',
-            'link' => Dever::url('lib/member.setStatus?id=' . $member['id'] . '&value=5', 'agent'),
-            'name' => '设置邀请关系',
-        );
 
-        $button[] = array
+        $button[1]['btn'][] = array
         (
             'type' => 'edit',
             'link' => Dever::url('project/database/update?project=bill&table=push_cash&search_option_mid='.$member['id'], 'manage'),
             'name' => '发放资金',
         );
 
-        $button[] = array
-        (
-            'type' => 'link',
-            'link' => Dever::url('project/database/list?project=bill&table=cash&search_option_mid='.$member['id'].'', 'manage'),
-            'name' => '资金账户',
-        );
-
-        $button[] = array
+        $button[1]['btn'][] = array
         (
             'type' => 'edit',
             'link' => Dever::url('project/database/update?project=bill&table=push_sell&search_option_mid='.$member['id'], 'manage'),
             'name' => '发放业绩',
         );
 
-        $button[] = array
+        $button[1]['btn'][] = array
+        (
+            'type' => 'link',
+            'link' => Dever::url('project/database/list?project=bill&table=cash&search_option_mid='.$member['id'].'', 'manage'),
+            'name' => '资金账户',
+        );
+
+        $button[1]['btn'][] = array
         (
             'type' => 'link',
             'link' => Dever::url('project/database/list?project=bill&table=sell&search_option_mid='.$member['id'].'', 'manage'),
-            'name' => '业绩查询',
+            'name' => '业绩流水',
         );
 
-        $button[] = array
+        $button[1]['btn'][] = array
         (
             'type' => 'link',
             'link' => Dever::url('project/database/list?project=agent&table=member_goods&search_option_mid='.$member['id'].'', 'manage'),
             'name' => '代理商权益',
         );
 
-        $button[] = array
+        $button[1]['btn'][] = array
         (
             'type' => 'link',
             'link' => Dever::url('project/database/list?project=agent&table=dh_order&search_option_mid='.$member['id'].'', 'manage'),
             'name' => '权益订单',
         );
 
-        $head = array
+        $button[2]['btn'][] = array
         (
-            'name' => '基本信息',
+            'type' => 'link',
+            'link' => Dever::url('project/database/list?project=agent&table=dh_order&search_option_mid='.$member['id'].'', 'manage'),
+            'name' => '代理商合同',
+        );
+
+        $button[2]['btn'][] = array
+        (
+            'type' => 'link',
+            'link' => Dever::url('lib/member.setStatus?id=' . $member['id'] . '&value=5', 'agent'),
+            'name' => '查看直推团队',
+        );
+
+        $button[2]['btn'][] = array
+        (
+            'type' => 'edit',
+            'link' => Dever::url('lib/member.setStatus?id=' . $member['id'] . '&value=5', 'agent'),
+            'name' => '查看邀请关系',
+        );
+
+        $button[2]['btn'][] = array
+        (
+            'type' => 'edit',
+            'link' => Dever::url('lib/member.setStatus?id=' . $member['id'] . '&value=5', 'agent'),
+            'name' => '设置直推上级',
         );
-        $foot = array
+
+        $head_btn[] = array
         (
-            'btn' => $button,
+            'type' => 'link',
+            'link' => Dever::url('project/database/list?project=agent&table=member', 'manage'),
+            'name' => '返回上一页',
+        );
+        $head = array
+        (
+            'name' => '基本信息',
+            'btn' => $head_btn,
         );
+        $foot = $button;
         $html = Dever::show($head, $result, $foot);
 
         return $html;
@@ -320,9 +361,9 @@ class Member
 
                 array
                 (
-                    array('资金余额', '¥' . $member['cash'] . '元'),
-                    array('直推业绩', '¥' . $member['sell'] . '元'),
-                    array('团队业绩', '¥' . $member['group_sell'] . '元'),
+                    array('资金余额', '<span style="color:blue">¥' . $member['cash'] . '元</span>'),
+                    array('直推业绩', '<span style="color:blue">¥' . $member['sell'] . '元</span>'),
+                    array('团队业绩', '<span style="color:blue">¥' . $member['group_sell'] . '元</span>'),
                 ),
             ),
         );

+ 198 - 0
service/agent/lib/Member_set.php

@@ -0,0 +1,198 @@
+<?php
+
+namespace Agent\Lib;
+
+use Dever;
+
+# 批量设置商品
+class Member_set
+{
+    public function __construct()
+    {
+        Dever::load('manage/auth.init');
+    }
+
+    # 获取商品列表
+    public function goods_api()
+    {
+        $mid = Dever::input('mid');
+        $col = 'mid';
+        $table = 'agent/member_goods';
+        $value = $mid;
+
+        $data = array();
+
+        /*
+        $prize = Dever::db('setting/role_goods')->config['set']['prize'];
+
+        $data[0]['id'] = -1;
+        $data[0]['name'] = '名额';
+        $data[0]['price'] = 0;
+        $data[0]['price_type'] = 2;
+        $data[0]['select'] = 2;
+        $data[0]['del'] = 1;
+        $data[0]['total'] = 0;
+        foreach ($prize as $k => $v) {
+            $data[0]['children'][$k-1]['id'] = $k . '_3';
+            $data[0]['children'][$k-1]['name'] = $v;
+            $data[0]['children'][$k-1]['price'] = 0;
+            $data[0]['children'][$k-1]['price_type'] = 2;
+            $data[0]['children'][$k-1]['select'] = 2;
+            $data[0]['children'][$k-1]['del'] = 1;
+            $data[0]['children'][$k-1]['total'] = 0;
+            $data[0]['children'][$k-1]['end'] = true;
+
+            $info = Dever::db($table)->find(array('type' => 3, 'type_id' => $k, $col => $value));
+            if ($info) {
+                $data[0]['children'][$k-1]['select'] = 1;
+                $data[0]['children'][$k-1]['total'] = $info['num'];
+            }
+        }
+
+        $card = Dever::db('card/info')->select(array('status' => 1));
+        if ($card) {
+            $data[1]['id'] = -2;
+            $data[1]['name'] = '厨人E卡';
+            $data[1]['price'] = 0;
+            $data[1]['price_type'] = 2;
+            $data[1]['select'] = 2;
+            $data[1]['del'] = 1;
+            $data[1]['total'] = 0;
+            foreach ($card as $k => $v) {
+                $data[1]['children'][$k]['id'] = $v['id'] . '_2';
+                $data[1]['children'][$k]['name'] = $v['name'];
+                $data[1]['children'][$k]['price'] = $v['price'];
+                $data[1]['children'][$k]['price_type'] = 2;
+                $data[1]['children'][$k]['select'] = 2;
+                $data[1]['children'][$k]['del'] = 1;
+                $data[1]['children'][$k]['total'] = 0;
+                $data[1]['children'][$k]['end'] = true;
+
+                $info = Dever::db($table)->find(array('type' => 2, 'type_id' => $k, $col => $value));
+                if ($info) {
+                    $data[1]['children'][$k]['select'] = 1;
+                    $data[1]['children'][$k]['total'] = $info['num'];
+                }
+            }
+        }*/
+
+        $data = array_merge($data, Dever::load('goods/lib/set.getGoodsList', $value, $col, $table, 'type_id'));
+
+        return Dever::outDiy($data);
+    }
+
+    # 设置商品
+    public function home_api()
+    {
+        $data = array();
+        $data['mid'] = Dever::input('mid');
+        $data['host'] = Dever::url('lib/member_set.home?mid=' . $data['mid'], 'agent');
+        $data['url'] = Dever::url('lib/member_set.goods?mid=' . $data['mid'], 'agent');
+        $data['submit'] = Dever::url('lib/member_set.action_cmmmit?json=1', 'agent');
+
+        return Dever::render('setMemberGoods', $data);
+    }
+
+    # 设置生产能力
+    public function action_cmmmit_api()
+    {
+        $goods = Dever::input('goods');
+        if (!$goods) {
+            Dever::alert('请传入商品');
+        }
+        $goods = Dever::json_decode($goods);
+        $mid = Dever::input('mid');
+        $desc = Dever::input('desc');
+
+        $where['option_mid'] = $mid;
+        $where['set_state'] = 2;
+        Dever::db('agent/member_goods')->updates($where);
+
+        foreach ($goods as $k => $v) {
+            $type = 1;
+            $type_id = $k;
+            $sku_id = -1;
+            if (strstr($k, '_')) {
+                $temp = explode('_', $k);
+                $type_id = $temp[0];
+                $type = $temp[1];
+            } elseif (strstr($k, '-')) {
+                $temp = explode('-', $k);
+                $type_id = $temp[0];
+                $sku_id = $temp[1];
+            }
+            
+            if ($v['total'] <= 0) {
+                continue;
+            }
+            $w = array();
+            $w['type'] = $type;
+            $w['type_id'] = $type_id;
+            $w['sku_id'] = $sku_id;
+            $w['mid'] = $mid;
+            
+            $info = Dever::db('agent/member_goods')->one($w);
+            if ($v['del'] == 2) {
+                if ($info) {
+                    Dever::db('agent/member_goods')->update(array('where_id' => $info['id'], 'state' => 2));
+                }
+            } else {
+                $w['total_num'] = $v['total'];
+                
+                if (!$info) {
+                    $state = Dever::db('agent/member_goods')->insert($w);
+                    if ($state) {
+                    	Dever::load('agent/lib/member_set')->log($w['mid'], '', $w['type'], $w['type_id'], $w['sku_id'], $v['total'], 0, $w['total_num'], $desc);
+                    }
+                } else {
+                    $w['where_id'] = $info['id'];
+                    $w['state'] = 1;
+                    $state = Dever::db('agent/member_goods')->update($w);
+                    $num = $w['total_num']-$info['total_num'];
+                    if ($state && $num > 0) {
+                    	Dever::load('agent/lib/member_set')->log($w['mid'], '', $w['type'], $w['type_id'], $w['sku_id'], $num, $info['total_num'], $w['total_num'], $desc);
+                    }
+                }
+            }
+
+            # 记录日志
+        }
+
+        return Dever::url('project/database/list&table=member_goods&project=agent&search_option_mid='.$mid, 'manage');
+    }
+
+    # 记录日志
+    public function log($mid, $parent_order_num, $type, $type_id, $sku_id, $num, $pnum, $fnum, $desc = '')
+    {
+    	$data['mid'] = $mid;
+    	$data['parent_order_num'] = $parent_order_num;
+    	$data['type'] = $type;
+    	$data['type_id'] = $type_id;
+    	$data['sku_id'] = $sku_id;
+    	$data['num'] = $num;
+    	$data['pnum'] = $pnum;
+    	$data['fnum'] = $fnum;
+    	$data['desc'] = $desc;
+    	$data['order_num'] = $this->getOrderId();
+
+    	$id = Dever::db('agent/member_goods_log')->insert($data);
+
+    	return $id;
+    }
+
+    /**
+     * 生成日志订单号
+     *
+     * @return mixed
+     */
+    public function getOrderId()
+    {
+        $where['order_num'] = Dever::order('QY');
+        $state = Dever::db('agent/member_goods_log')->one($where);
+        if (!$state) {
+            return $where['order_num'];
+        } else {
+            return $this->getOrderId();
+        }
+    }
+}

+ 1 - 1
service/agent/lib/Order_set.php

@@ -176,6 +176,6 @@ class Order_set
             }
         }
 
-        return Dever::url('project/database/list&project=factory&table=order_process&project=agent&order_id='.$order_id.'&page_type=1', 'manage');
+        return Dever::url('project/database/list&table=order_process&project=agent&order_id='.$order_id.'&page_type=1', 'manage');
     }
 }

+ 36 - 1
service/agent/src/Auth.php

@@ -7,7 +7,7 @@ use Dever;
 class Auth
 {
 	/**
-     * 登录
+     * 验证码登录
      *
      * @return mixed
      */
@@ -30,6 +30,33 @@ class Auth
         }
     }
 
+    /**
+     * 密码登录
+     *
+     * @return mixed
+     */
+    public function plogin()
+    {
+        $mobile = Dever::input('mobile');
+        $pass = Dever::input('pass');
+        $where['mobile'] = Dever::load('agent/lib/member')->checkMobile($mobile);
+        $user = Dever::db('agent/member')->find($where);
+
+        if (!$user) {
+            Dever::alert('登录失败,手机号错误,请重新输入');
+        }
+        if ($user['password'] != sha1($pass)) {
+            Dever::alert('登录失败,密码错误,请重新输入');
+        }
+
+        if ($user && $user['status'] == 2) {
+            $data = Dever::load('passport/reg')->getSign($user['id']);
+            return $data;
+        } else {
+            Dever::alert('登录失败,您还未通过审核');
+        }
+    }
+
     /**
      * 注册
      *
@@ -111,4 +138,12 @@ class Auth
         $this->data['config'] = Dever::db('setting/base')->one();
         return $this->data;
     }
+
+    # 根据角色获取打款金额
+    public function getPrice()
+    {
+        $this->data = Dever::load('agent/lib/order')->getPrice();
+
+        return $this->data;
+    }
 }

+ 9 - 1
service/agent/src/My.php

@@ -172,6 +172,14 @@ class My extends Core
         return $this->data;
     }
 
+    # 根据角色获取打款金额
+    public function getPrice()
+    {
+        $this->data = Dever::load('agent/lib/order')->getPrice($this->uid);
+
+        return $this->data;
+    }
+
     # 购买新区域 & 账号升级
     public function buyArea()
     {
@@ -503,7 +511,7 @@ class My extends Core
         }
 
         $where['where_id'] = $this->uid;
-        $where['password'] = sha1($pass);
+        $where['password'] = $pass;
 
         Dever::db('agent/member')->update($where);
 

+ 1 - 0
service/bill/database/cash.php

@@ -40,6 +40,7 @@ $button = array();
 if ($mid) {
     $button = array
     (
+        '返回上一页' => array('location', 'l=project/database/list&project=agent&table=member_area&page_type=1&mid=' . $mid),
         '发放资金' => array('fast', '', 'push_cash&search_option_mid=' . $mid),
     );
 }

+ 1 - 0
service/bill/database/sell.php

@@ -15,6 +15,7 @@ $button = array();
 if ($mid) {
     $button = array
     (
+        '返回上一页' => array('location', 'l=project/database/list&project=agent&table=member_area&page_type=1&mid=' . $mid),
         '发放业绩' => array('fast', '', 'push_sell&search_option_mid=' . $mid),
     );
 }

+ 1 - 1
service/setting/database/role.php

@@ -231,7 +231,7 @@ return array
                 'state' => 1,
             ),
             'type' => 'all',
-            'col' => 'id,short_name as name,area',
+            'col' => 'id,short_name as name,area,type',
         ),
     ),
 );