Your Name 3 年之前
父節點
當前提交
898dc169a2
共有 3 個文件被更改,包括 353 次插入4 次删除
  1. 130 0
      service/agent/assets/pc/html/index.html
  2. 8 4
      service/agent/database/member.php
  3. 215 0
      service/agent/src/Children.php

+ 130 - 0
service/agent/assets/pc/html/index.html

@@ -0,0 +1,130 @@
+<!DOCTYPE html>
+<html style="height: 100%">
+    <head>
+        <meta charset="utf-8">
+         <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>
+    <!-- style="background-color: #009688;color:#FFFFFF;" style="color:#FFFFFF;" -->
+    <body style="height: 100%; margin: 0">
+    	 <a class="mini-button"  onclick="location.href='<{$link}>'">返回上一页</a>
+        <div id="container" style="height: 100%"></div>
+
+        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
+        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5.3.2/dist/echarts.min.js"></script>
+        <!-- Uncomment this line if you want to dataTool extension
+        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5.3.2/dist/extension/dataTool.min.js"></script>
+        -->
+        <!-- Uncomment this line if you want to use gl extension
+        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-gl@2/dist/echarts-gl.min.js"></script>
+        -->
+        <!-- Uncomment this line if you want to echarts-stat extension
+        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-stat@latest/dist/ecStat.min.js"></script>
+        -->
+        <!-- Uncomment this line if you want to use map
+        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5.3.2/map/js/china.js"></script>
+        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5.3.2/map/js/world.js"></script>
+        -->
+        <!-- Uncomment these two lines if you want to use bmap extension
+        <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=<Your Key Here>"></script>
+        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@{{version}}/dist/extension/bmap.min.js"></script>
+        -->
+        <script type="text/javascript">
+var dom = document.getElementById("container");
+var myChart = echarts.init(dom);
+var app = {};
+
+var option;
+
+var ROOT_PATH = config.host;
+
+var searchURL = window.location.search;
+	searchURL = searchURL.substring(1, searchURL.length);
+	var id = searchURL.split("?")[0].split("=")[1];
+	
+myChart.showLoading();
+$.getJSON(ROOT_PATH + 'l=children.home?mid='+'<{$mid}>',function (data) {
+	
+  myChart.hideLoading();
+  data.children.forEach(function (datum, index) {
+    // index % 2 === 0 && (datum.collapsed = true);
+  });
+  myChart.setOption(
+    (option = {
+      tooltip: {
+        trigger: 'item',
+        triggerOn: 'mousemove',
+        textStyle:{
+          color:'blue',
+        },
+      },   
+
+      series: [
+        {
+          type: 'tree',
+          data: [data],
+          top: '1%',
+          left: '12%',
+          bottom: '1%',
+          right: '20%',
+          symbolSize: 7,
+          initialTreeDepth: 10,
+          // color: '#FF7853',
+          itemStyle: {
+            color: '#FF7853'
+          },
+          
+          
+          label: {
+            position: 'left',
+            verticalAlign: 'middle',
+            align: 'right',
+            fontSize: 9,
+            fontColor:'#FF7853',
+            show: true
+          },
+           label: {
+            position: 'left',
+            verticalAlign: 'middle',
+            align: 'right',
+            fontSize: 9,
+            color:'#000000'
+          },
+          leaves: {
+            label: {
+              position: 'right',
+              verticalAlign: 'middle',
+              align: 'left',
+              color: '#000000'
+
+            }
+          },
+
+          emphasis: {
+            focus: 'descendant',
+
+          },
+          expandAndCollapse: true,
+          animationDuration: 550,
+          animationDurationUpdate: 750
+        }
+      ]
+    })
+  );
+});
+
+if (option && typeof option === 'object') {
+    myChart.setOption(option);
+}
+
+        </script>
+    </body>
+</html>
+    

+ 8 - 4
service/agent/database/member.php

@@ -97,11 +97,15 @@ if ($search_api_parent_mid && $getInfo != 1) {
         //'返回上一页' => array('onclick', 'history.back()'),
     );
 }
+ $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}', 'agent'));
+}
 
-$list_button = array
-(
-    'list' => array('查看详情', '"member_area&mid={id}&page_type=1&[refer]"'),
-);
+// (
+//     'list' => array('查看详情', '"member_area&mid={id}&page_type=1&[refer]"'),
+// );
 
 # id小于50000为导入的数据
 return array

+ 215 - 0
service/agent/src/Children.php

@@ -0,0 +1,215 @@
+<?php
+
+namespace Agent\Src;
+
+use Dever;
+
+class Children
+{
+	public function text(){
+		echo "<font style='color: yellow'>12312323</font>";
+	}
+	#uid 邀请人 to_uid=mid 被邀请人(要查的人) level 等级
+	#invite/relation
+	public function home($mid){
+		$invite = Dever::load('invite/api')->getParentAll($mid);
+		if($invite){
+			foreach($invite as $k => $v){
+				if($v['level'] == 5){
+					$info = $this->index($v['uid']); 
+				}else{
+					if($v['level'] == 4){
+						$info = $this->index($v['uid']);
+					}else{
+						if($v['level'] == 3){
+							$info = $this->index($v['uid']);
+						}else{
+							if($v['level'] == 2){
+								$info = $this->index($v['uid']);
+							}else{
+								if($v['level'] == 1){
+									$info = $this->index($v['uid']);
+								}
+							}
+						}
+					}
+				}
+			}
+		}else{
+			$info = $this->index($mid);
+		}
+		exit(Dever::json_encode($info));
+	}
+	#查询所有下级
+	public function index($mid){
+		$uid = Dever::input('mid',$mid);
+		
+		#自己的所有直属下级
+		$invite = $this->invite($mid);
+		if($invite){
+			foreach($invite as $k =>$v){
+				$member = $this->button($mid);
+				if($mid == $uid){
+					$info['name'] = $member['value'];
+					$info['itemStyle']['color'] = 'blue';
+					// $info['tooltip']['valueFormatter']= $member['value'];
+
+				}else{
+					$info['name'] = $member['value'];
+				}
+				
+				$m1 = $this->button($v['to_uid']);
+				if($v['to_uid']==$uid){
+					$info['children'][$k]['name'] = $m1['value'];
+					$info['children'][$k]['itemStyle']['color'] = 'blue';
+				}else{
+					$info['children'][$k]['name'] = $m1['value'];
+				}
+				
+				$i1 = $this->invite($v['to_uid']);
+				if($i1){
+					foreach($i1 as $k1 => $v1){
+						$m2 = $this->button($v1['to_uid']);
+						if($v1['to_uid'] == $uid){
+							$info['children'][$k]['children'][$k1]['name'] = $m2['value'];
+							$info['children'][$k]['children'][$k1]['itemStyle']['color'] = 'blue';
+						}else{
+							$info['children'][$k]['children'][$k1]['name'] = $m2['value'];
+						}
+						
+						$i2 = $this->invite($v1['to_uid']);
+						if($i2){
+							foreach($i2 as $k2 => $v2){
+								$m3 = $this->button($v2['to_uid']);
+								if($v2['to_uid'] == $uid){
+									$info['children'][$k]['children'][$k1]['children'][$k2]['name'] = $m3['value'];
+									$info['children'][$k]['children'][$k1]['children'][$k2]['itemStyle']['color'] = 'blue';
+								}else{
+									$info['children'][$k]['children'][$k1]['children'][$k2]['name'] = $m3['value'];
+								}
+								
+								$i3 = $this->invite($v2['to_uid']);
+								if($i3){
+									foreach($i3 as $k3 => $v3){
+										$m4 = $this->button($v3['to_uid']);
+										if($v3['to_uid'] == $uid){
+											$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['name'] = $m4['value'];
+											$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['itemStyle']['color'] = 'blue';
+										}else{
+											$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['name'] = $m4['value'];
+										}
+								
+									$i4 = $this->invite($v3['to_uid']);
+										if($i4){
+											foreach($i4 as $k4 => $v4){
+												$m5 = $this->button($v4['to_uid']);
+												if($v4['to_uid'] == $uid){
+													$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['children'][$k4]['name'] = $m5['value'];
+													$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['children'][$k4]['itemStyle']['color'] = 'blue';
+												}else{
+													$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['children'][$k4]['name'] = $m5['value'];
+												}
+								
+								$i5 = $this->invite($v4['to_uid']);
+								if($i5){
+									foreach($i5 as $k5 => $v5){
+										$m6 = $this->button($v5['to_uid']);
+										if($v5['to_uid']==$uid){
+											$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['children'][$k4]['children'][$k5]['name'] = $m6['value'];
+											$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['children'][$k4]['children'][$k5]['itemStyle']['color'] = 'blue';
+										}else{
+											$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['children'][$k4]['children'][$k5]['name'] = $m6['value'];
+										}
+								
+								$i6 = $this->invite($v5['to_uid']);
+								if($i6){
+									foreach($i6 as $k6 => $v6){
+										$m7 = $this->button($v6['to_uid']);
+										if($v6['to_uid'] == $uid){
+											$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['children'][$k4]['children'][$k5]['children'][$k6]['name'] = $m7['value'];
+											$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['children'][$k4]['children'][$k5]['children'][$k6]['itemStyle']['color'] = 'blue';
+										}else{
+											$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['children'][$k4]['children'][$k5]['children'][$k6]['name'] = $m7['value'];
+										}
+								
+								$i7 = $this->invite($v6['to_uid']);
+								if($i7){
+									foreach($i7 as $k7 => $v7){
+										$m8 = $this->button($v7['to_uid']);
+										if($v7['to_uid'] == $uid){
+											$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['children'][$k4]['children'][$k5]['children'][$k6]['children'][$k7]['name'] = $m8['value'];
+											$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['children'][$k4]['children'][$k5]['children'][$k6]['children'][$k7]['itemStyle']['color'] = 'blue';
+										}else{
+											$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['children'][$k4]['children'][$k5]['children'][$k6]['children'][$k7]['name'] = $m8['value'];
+										}
+								
+								$i8 = $this->invite($v7['to_uid']);
+								if($i8){
+									foreach($i8 as $k8 => $v8){
+										$m9 = $this->button($v8['to_uid']);
+										if($v8['to_uid'] == $uid){
+											$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['children'][$k4]['children'][$k5]['children'][$k6]['children'][$k7]['children'][$k8]['name'] = $m9['value'];
+											$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['children'][$k4]['children'][$k5]['children'][$k6]['children'][$k7]['children'][$k8]['name']['itemStyle']['color'] = 'blue';
+										}else{
+											$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['children'][$k4]['children'][$k5]['children'][$k6]['children'][$k7]['children'][$k8]['name'] = $m9['value'];
+										}
+								
+								$i9 = $this->invite($v8['to_uid']);
+								if($i9){
+									foreach($i9 as $k9 => $v9){
+										$m10 = $this->button($v9['to_uid']);
+										if($v9['to_uid'] == $uid){
+											$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['children'][$k4]['children'][$k5]['children'][$k6]['children'][$k7]['children'][$k8]['children'][$k9]['name'] = $m10['value'];
+											$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['children'][$k4]['children'][$k5]['children'][$k6]['children'][$k7]['children'][$k8]['children'][$k9]['itemStyle']['color'] = 'blue';
+										}else{
+											$info['children'][$k]['children'][$k1]['children'][$k2]['children'][$k3]['children'][$k4]['children'][$k5]['children'][$k6]['children'][$k7]['children'][$k8]['children'][$k9]['name'] = $m10['value'];
+										}
+								
+																					}
+																				}else{}
+																			}
+																		}
+																	}
+																}else{}
+															}
+														}
+													}
+												}else{}
+											}
+										}
+									}
+								}else{}
+							}
+						}
+					}
+				}else{}
+			}
+		}else{}
+		// print_R($info);die;
+		// return Dever::render('index', $info);
+		exit(Dever::json_encode($info));
+	}
+	
+	#获取所有直属下级
+	public function invite($mid){
+		$invite = Dever::load('invite/api')->getChild($mid,$level_id = 1);
+		// print_R($invite);die;
+		return $invite;
+	}
+	#非顶级
+	public function button($mid){
+		$child = Dever::db('agent/member')->find($mid);
+		$role = Dever::db('setting/role')->find($child['role']);
+		$child['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']);
+			$child['value'].= '('.$level['name'].')';
+		}
+		$source=Dever::db('setting/source')->one(array('id'=>$child['source_id'],'state'=>1));
+            if($source){
+                $child['value'] .= "\r\n".$source['name'];
+            }
+		return $child;
+	}
+	
+}