rabin 3 年之前
父节点
当前提交
a2126a4273

+ 12 - 4
service/agent/assets/pc/html/index.html

@@ -14,7 +14,7 @@
     </head>
     <!-- style="background-color: #009688;color:#FFFFFF;" style="color:#FFFFFF;" -->
     <body style="height: 100%; margin: 0">
-    	 <a class="mini-button"  onclick="location.href='<{$link}>'">返回上一页</a>
+    	 <a class="mini-button"  onclick="location.href='<{$link}>'" style="margin: 10px;position: absolute;z-index: 99999;">返回上一页</a>
         <div id="container" style="height: 100%"></div>
 
         <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
@@ -50,10 +50,15 @@ var searchURL = window.location.search;
 	var id = searchURL.split("?")[0].split("=")[1];
 	
 myChart.showLoading();
-$.getJSON(ROOT_PATH + 'l=children.home?mid='+'<{$mid}>',function (data) {
+$.getJSON(ROOT_PATH + 'l=children.home?json=1&mid='+'<{$mid}>',function (data) {
 	
   myChart.hideLoading();
-  data.children.forEach(function (datum, index) {
+  if (data.status != 1) {
+    alert(data.msg);
+    return;
+  }
+  
+  data.data.children.forEach(function (datum, index) {
     // index % 2 === 0 && (datum.collapsed = true);
   });
   myChart.setOption(
@@ -64,12 +69,15 @@ $.getJSON(ROOT_PATH + 'l=children.home?mid='+'<{$mid}>',function (data) {
         textStyle:{
           color:'blue',
         },
+        formatter: function (data) {
+          return data.value;
+        },
       },   
 
       series: [
         {
           type: 'tree',
-          data: [data],
+          data: [data.data],
           top: '1%',
           left: '12%',
           bottom: '1%',

+ 3 - 2
service/agent/assets/pc/html/setGoods.html

@@ -24,7 +24,7 @@
                 <div class="top">
                     <i class="layui-icon layui-icon-app"></i>商品列表
 
-                    <a class="mini-button" onclick="javascript:history.back()">返回上一页</a>
+                    <a class="mini-button" onclick="location.href='<{$link}>'">返回上一页</a>
                 </div>
                 <div class="left_main">
                     <input id="key" class="mini-textbox" placeholder="请输入商品名称" onenter="onKeyEnter"/>
@@ -99,13 +99,14 @@
         $("#settlement").click(function(){
             var url = '<{$submit}>';
             var role_id = '<{$role_id}>';
+            var link = '<{$link}>';
             var give = $('#give').val();
 
             layui.layer.confirm('确定进行此项设置吗?', function() {
                 var goods_string = JSON.stringify(goods);
 
                 var data = {};
-                data = {role_id:role_id, give:give, goods:goods_string};
+                data = {role_id:role_id, give:give, goods:goods_string,link:link};
                 $.post(url, data, function(t) {
                     t = JSON.parse(t);
                     if (t.status == 1) {

+ 3 - 2
service/agent/assets/pc/html/setMemberGoods.html

@@ -24,7 +24,7 @@
                 <div class="top">
                     <i class="layui-icon layui-icon-app"></i>商品列表
 
-                    <a class="mini-button" onclick="javascript:history.back()">返回上一页</a>
+                    <a class="mini-button" onclick="location.href='<{$link}>'">返回上一页</a>
                 </div>
                 <div class="left_main">
                     <input id="key" class="mini-textbox" placeholder="请输入商品名称" onenter="onKeyEnter"/>
@@ -94,6 +94,7 @@
         $("#settlement").click(function(){
             var url = '<{$submit}>';
             var mid = '<{$mid}>';
+            var link = '<{$link}>';
             var search_api_mid = '<{$search_api_mid}>';
 
             layui.layer.confirm('确定进行此项设置吗?', function() {
@@ -101,7 +102,7 @@
                 var goods_string = JSON.stringify(goods);
 
                 var data = {};
-                data = {mid:mid,search_api_mid:search_api_mid, desc:desc, goods:goods_string};
+                data = {mid:mid,search_api_mid:search_api_mid, desc:desc, goods:goods_string,link:link};
                 $.post(url, data, function(t) {
                     t = JSON.parse(t);
                     if (t.status == 1) {

+ 3 - 2
service/agent/assets/pc/html/setOrderGoods.html

@@ -26,7 +26,7 @@
                 <div class="top">
                     <i class="layui-icon layui-icon-app"></i>商品列表
                     
-                    <a class="mini-button" onclick="javascript:history.back()">返回上一页</a>
+                    <a class="mini-button" onclick="location.href='<{$link}>'">返回上一页</a>
                 </div>
                 <div class="left_main">
                     <input id="key" class="mini-textbox" placeholder="请输入商品名称" onenter="onKeyEnter"/>
@@ -90,12 +90,13 @@
             var url = '<{$submit}>';
             var role_id = '<{$role_id}>';
             var order_id = '<{$order_id}>';
+            var link = '<{$link}>';
 
             layui.layer.confirm('确定进行此项设置吗?', function() {
                 var goods_string = JSON.stringify(goods);
 
                 var data = {};
-                data = {role_id:role_id, order_id:order_id, goods:goods_string};
+                data = {role_id:role_id, order_id:order_id, goods:goods_string,link:link};
                 $.post(url, data, function(t) {
                     t = JSON.parse(t);
                     if (t.status == 1) {

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

@@ -80,7 +80,7 @@ $button = array();
 $list_button = array();
 $list_button['list'] = array('查看详情', '"member_area&mid={id}&page_type=1&[refer]"');
 if (Dever::load('manage/auth')->checkFunc('agent.member', 'edit6', '查看上下级')) {
-    $list_button['list1'] = array('查看上下级',Dever::url('lib/manage.relation?mid={id}&[refer]', 'agent'));
+    $list_button['list1'] = array('查看上下级',Dever::url('lib/manage.relation?mid={id}&[refer].manage', 'agent'));
 }
 
 # id小于50000为导入的数据
@@ -525,6 +525,17 @@ return array
         'version' => 3,
     ),
 
+    'index' => array
+    (
+        1 => array
+        (
+            'parent_mid' => 'parent_mid',
+        ),
+        
+        # 版本号 更改版本号会更新当前表的索引
+        'version' => 1,
+    ),
+
     'manage' => array
     (
         'insert' => false,

+ 4 - 4
service/agent/database/member_goods.php

@@ -17,9 +17,9 @@ $search_api_mid = Dever::input('search_api_mid');
 if ($search_api_mid) {
     $member = Dever::db('agent/member')->find(array('mobile' => $search_api_mid));
     if (Dever::load('manage/auth')->checkFunc('agent.member_goods', 'edit', '手动调整权益')) {
-        $button['手动调整权益'] = array('location', 'agent/lib/member_set.home?mid=' . $member['id'] . '&search_api_mid=' . $search_api_mid);
+        $button['手动调整权益'] = array('location', 'agent/lib/member_set.home?mid=' . $member['id'] . '&search_api_mid=' . $search_api_mid . '&[refer]');
     }
-    $button['权益操作记录'] = array('location', 'l=project/database/list&project=agent&table=member_goods_log&search_option_mid='.$member['id'].'&search_api_mid=' . $search_api_mid);
+    $button['权益操作记录'] = array('location', 'l=project/database/list&project=agent&table=member_goods_log&search_option_mid='.$member['id'].'&search_api_mid=' . $search_api_mid . '&[refer]');
     // $button = array
     // (
     //     '手动调整权益' => array('location', 'agent/lib/member_set.home?mid=' . $member['id'] . '&search_api_mid=' . $search_api_mid),
@@ -31,9 +31,9 @@ if ($search_api_mid) {
     if ($mid) {
         $button['返回上一页'] = array('location', 'l=project/database/list&project=agent&table=member_area&page_type=1&mid=' . $mid);
         if (Dever::load('manage/auth')->checkFunc('agent.member_goods', 'edit', '手动调整权益')) {
-            $button['手动调整权益'] = array('location', 'agent/lib/member_set.home?mid=' . $mid);
+            $button['手动调整权益'] = array('location', 'agent/lib/member_set.home?mid=' . $mid . '&[refer]');
         }
-        $button['权益操作记录'] = array('location', 'l=project/database/list&project=agent&table=member_goods_log&search_option_mid=' . $mid);
+        $button['权益操作记录'] = array('location', 'l=project/database/list&project=agent&table=member_goods_log&search_option_mid=' . $mid . '&[refer]');
 
         // $button = array
         // (

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

@@ -75,7 +75,7 @@ class Dhorder
     # 获取订单详细信息
     public function getInfo($info, $view = true)
     {
-        $info['status_name'] = $this->config['status'][$info['status']];
+        $info['status_name'] = Dever::status($this->config['status'], $info['status']);
 
         $info['cdate'] = date('Y-m-d H:i', $info['cdate']);
 

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

@@ -23,6 +23,7 @@ class Member_set
     public function home_api()
     {
         $data = array();
+        $data['link'] = Dever::decode(Dever::input('refer'));
         $data['mid'] = Dever::input('mid');
         $data['search_api_mid'] = Dever::input('search_api_mid');
         $data['host'] = Dever::url('lib/member_set.home?mid=' . $data['mid'], 'agent');
@@ -170,6 +171,11 @@ class Member_set
             # 记录日志
         }
 
+        $link = Dever::input('link');
+        if ($link) {
+            return $link;
+        }
+        
         if ($search_api_mid) {
             return Dever::url('project/database/list&table=member_goods&project=agent&search_option_state=1&search_api_mid='.$search_api_mid, 'manage');
         } else {

+ 3 - 4
service/agent/lib/Order.php

@@ -961,11 +961,10 @@ class Order
         } else {
             $t = 1;
         }
-        
+        $process_button = array();
         if (isset($process[3]['type']) && is_array($process[3]['type']) && in_array(2, $process[3]['type'])) {
             $process_status = 1;
             $process_title = '(已发放权益)';
-            $process_button = array();
         } else {
             $process_status = 2;
             $process_title = '(未发放权益)';
@@ -1029,10 +1028,10 @@ class Order
         $table['body'] = array();
         $agreement_type = Dever::db('setting/agreement')->config['config_type'];
         $agreement_status = Dever::db('agent/member_agreement')->config['status'];
+        $agreement_button = array();
         if ((isset($process[3]['type']) && is_array($process[3]['type']) && in_array(5, $process[3]['type'])) || $info['import'] > 1) {
             $agreement_title = '(已生成合同)';
-            $agreement_button = array();
-
+            
             $agreement = Dever::db('agent/member_agreement')->getData(array('order_id' => $info['id']));
             if ($agreement) {
                 foreach ($agreement as $k => $v) {

+ 6 - 0
service/agent/lib/Order_set.php

@@ -23,6 +23,7 @@ class Order_set
     public function home_api()
     {
         $data = array();
+        $data['link'] = Dever::decode(Dever::input('refer'));
         $data['total'] = Dever::input('total', 1);
         $data['order_id'] = Dever::input('order_id');
         $data['role_id'] = Dever::input('role_id', 1);
@@ -106,6 +107,11 @@ class Order_set
             }
         }
 
+        $link = Dever::input('link');
+        if ($link) {
+            return $link;
+        }
+
         return Dever::url('project/database/list&table=order_process&project=agent&order_id='.$order_id.'&page_type=1', 'manage');
     }
 }

+ 1 - 0
service/agent/lib/Set.php

@@ -131,6 +131,7 @@ class Set
     public function home_api()
     {
         $data = array();
+        $data['link'] = Dever::decode(Dever::input('refer'));
         $data['role_id'] = Dever::input('id', 1);
         $data['give'] = Dever::input('give', 1);
         $data['host'] = Dever::url('lib/set.home?id=' . $data['role_id'], 'agent');

+ 78 - 113
service/agent/src/Children.php

@@ -6,135 +6,100 @@ use Dever;
 
 class Children
 {
+	# 当前节点颜色
+	private $cur_color = 'blue';
+	# 父级节点颜色
+	private $parent_color = '#d71345';
+	# 直属子节点颜色
+	private $child_color = 'green';
+	# 默认节点颜色
+	private $color = '#bababa';
+
 	public function home()
 	{
 		$cur = Dever::input('mid');
-		$result = $index = array();
-		$k = -1;
+		$parent = Dever::load('invite/api')->getParentAll($cur, 5, 2);
+
+		$data = array();
+		$parents = array();
 
-		$parent = Dever::load('invite/api')->getParentAll($cur, 5);
 		if ($parent) {
-			foreach($parent as $k => $v) {
-				$uid = $v['uid'];
-				$v = $this->button($v['uid'], $v['uid']);
-				if ($k == 0) {
-					$result = $v;
-				}
-				$this->handle($result, $index, $k, $uid, $parent, $cur);
+			foreach ($parent as $k => $v) {
+				$parents[] = $v['uid'];
 			}
-		}
-		$k = $k+1;
-		$child = $this->handle($result, $index, $k, $cur, array(), false);
 
-		if ($child) {
-			$k = $k+1;
-			foreach ($child as $i => $v) {
-				$c = $this->handle($result, $index, $k, $v['mid'], array(), false, $i);
-				if ($c) {
-					foreach ($c as $j => $v1) {
-						//$d = $this->handle($result, $index, $k+1, $v['mid'], array(), false, $j);
-					}
-				}
-			}
-		}
-		
-		exit(Dever::json_encode($result));
-	}
-
-	public function handle(&$result, &$index, $k, $uid, $parent, $cur, $i = -1)
-	{
-		if (isset($parent[$k+1]['uid']) && $parent[$k+1]['uid']) {
-			$cur = $parent[$k+1]['uid'];
-			$color = 2;
+			$top = Dever::db('agent/member')->find($parent[0]['uid']);
+			$color = $this->parent_color;
+			# 状态记录 为1时是父级别 2是子级别
+			$state = 1;
 		} else {
-			$color = 1;
-		}
-		list($data, $index[$k]) = $this->child($uid, $cur, $color);
-
-		if (!$data) {
-			return false;
+			Dever::alert('根用户无法查询');
+			$top = Dever::db('agent/member')->find($cur);
+			$color = $this->cur_color;
+			# 状态记录 为1时是父级别 2是子级别
+			$state = 2;
 		}
+		
+		$i = 0;
+		$data[$i]['id'] = $top['id'];
+		$data[$i]['name'] = $top['name'];
+		$data[$i]['parent_id'] = 0;
+		$data[$i]['itemStyle']['color'] = $color;
 
-		# 这里后续优化吧
-		if ($i < 0 && $k > 0) {
-			$i = $index[$k-1];
-		}
-		if ($k == 0) {
-			$result['children'] = $data;
-		} elseif ($k == 1) {
-			$result['children'][$i]['children'] = $data;
-		} elseif ($k == 2) {
-			$result['children'][$index[$k-2]]['children'][$i]['children'] = $data;
-		} elseif ($k == 3) {
-			$result['children'][$index[$k-3]]['children'][$index[$k-2]]['children'][$i]['children'] = $data;
-		} elseif ($k == 4) {
-			$result['children'][$index[$k-4]]['children'][$index[$k-3]]['children'][$index[$k-2]]['children'][$i]['children'] = $data;
-		} elseif ($k == 5) {
-			$result['children'][$index[$k-5]]['children'][$index[$k-4]]['children'][$index[$k-3]]['children'][$index[$k-2]]['children'][$i]['children'] = $data;
-		} elseif ($k == 6) {
-			$result['children'][$index[$k-6]]['children'][$index[$k-5]]['children'][$index[$k-4]]['children'][$index[$k-3]]['children'][$index[$k-2]]['children'][$i]['children'] = $data;
-		} elseif ($k == 7) {
-			$result['children'][$index[$k-7]]['children'][$index[$k-6]]['children'][$index[$k-5]]['children'][$index[$k-4]]['children'][$index[$k-3]]['children'][$index[$k-2]]['children'][$i]['children'] = $data;
-		} elseif ($k == 8) {
-			$result['children'][$index[$k-8]]['children'][$index[$k-7]]['children'][$index[$k-6]]['children'][$index[$k-5]]['children'][$index[$k-4]]['children'][$index[$k-3]]['children'][$index[$k-2]]['children'][$i]['children'] = $data;
-		} elseif ($k == 9) {
-			$result['children'][$index[$k-9]]['children'][$index[$k-8]]['children'][$index[$k-7]]['children'][$index[$k-6]]['children'][$index[$k-5]]['children'][$index[$k-4]]['children'][$index[$k-3]]['children'][$index[$k-3]]['children'][$i]['children'] = $data;
-		}
+		$this->getChild($data, $i, $top['id'], $parents, $cur, $state);
+		
+		$result = Dever::walk($data, 0);
 
-		return $data;
+		return $result[0];
 	}
 
-	public function child($parent, $cur = false, $color = 2)
+	public function getChild(&$data, &$i, $uid, $parents, $cur, $state, $next = true)
 	{
-		$result = array();
-		$index = 0;
-		$child = Dever::load('invite/api')->getChild($parent, 1, false);
-		$num = intval(count($child) / 2);
-		foreach ($child as $k => $v) {
-			$result[] = $this->button($v['to_uid'], $cur, $color);
-			if ($v['to_uid'] == $cur) {
-				$index = $k;
-			}
-		}
-		if ($cur) {
-			$old = $result;
-			$result[$index] = $result[$num];
-			$result[$num] = $old[$index];
-			$index = $num;
-		}
-		
- 		return array($result, $index);
-	}
-	
-	# 获取当前信息
-	public function button($mid, $cur = false, $color = 2)
-	{
-		$child = Dever::db('agent/member')->find($mid);
-		$role = Dever::db('setting/role')->find($child['role']);
-		$result = array();
-		$result['mid'] = $mid;
-		$result['name'] = $child['name'];
-		$result['value'] = $child['name']."\r\n".$child['mobile']."\r\n".$role['name'];
-		if (isset($child['level_id']) && $child['level_id'] && $child['level_id'] > 0) {
-			$level = Dever::db('setting/level')->find($child['level_id']);
-			$result['value'].= '('.$level['name'].')';
-		}
-		if(isset($child['source_id']) && $child['source_id'] && $child['source_id']>0){
-			$source=Dever::db('setting/source')->one(array('id'=>$child['source_id'],'state'=>1));
-            if($source){
-                $result['value'] .= "\r\n".$source['name'];
-            }
-		}
+		$child = Dever::db('agent/member')->select(array('parent_mid' => $uid));
+		if ($child) {
+			foreach ($child as $k => $v) {
+				$i++;
+				$data[$i]['id'] = $v['id'];
+				$data[$i]['name'] = $v['name'] . substr($v['mobile'], -4);
+				$data[$i]['parent_id'] = $v['parent_mid'];
+				$data[$i]['itemStyle']['color'] = $this->color;
 
-		if ($cur && $mid == $cur) {
-			if ($color == 1) {
-				$result['itemStyle']['color'] = 'green';
-			} else {
-				$result['itemStyle']['color'] = 'blue';
+				$data[$i]['value'] = $v['name'] . '<br />' . $v['mobile'];
+				if ($v['role']) {
+					$role = Dever::db('setting/role')->find($v['role']);
+					if ($role) {
+						$data[$i]['value'] .= '<br />角色:' . $role['name'];
+					}
+				}
+				if ($v['level_id'] && $v['level_id'] > 0) {
+					$level = Dever::db('setting/level')->find($v['level_id']);
+					if ($level) {
+						$data[$i]['value'] .= '<br />等级:' . $level['name'];
+					}
+				}
+				
+
+				if ($cur == $uid) {
+					$data[$i]['itemStyle']['color'] = $this->child_color;
+				} 
+				if ($cur == $v['id']) {
+					$data[$i]['itemStyle']['color'] = $this->cur_color;
+					$next = true;
+					$state = 2;
+				} elseif ($parents && in_array($v['id'], $parents)) {
+					$data[$i]['itemStyle']['color'] = $this->parent_color;
+					$next = false;
+					$this->getChild($data, $i, $v['id'], $parents, $cur, $state, $next);
+				} elseif ($state == 1) {
+					$next = false;
+				} else {
+					$next = true;
+				}
+
+				if ($next) {
+					$this->getChild($data, $i, $v['id'], $parents, $cur, $state, $next);
+				}
 			}
 		}
-		
-		return $result;
 	}
-	
 }