rabin 8 months ago
parent
commit
50767c0d57
2 changed files with 13 additions and 71 deletions
  1. 8 71
      api/Data.php
  2. 5 0
      manage/county.php

+ 8 - 71
api/Data.php

@@ -3,18 +3,6 @@ namespace Area\Api;
 use Dever;
 class Data
 {
-    private $default = array
-    (
-        'id' => -1,
-        'name' => '请选择',
-    );
-
-    private $search_default = array
-    (
-        'id' => -1,
-        'name' => '地区选择',
-    );
-
 	/**
      * 获取地区数据
      *
@@ -22,71 +10,20 @@ class Data
      */
     public function get()
     {
-        # 联动总数,默认到县区
-        $total = Dever::input('total');
-        if (!$total) {
-            $total = 3;
-        }
-        # 当前联动级别
-        $level = Dever::input('level');
-        if (!$level) {
-            $level = 1;
-        }
-        # 当前联动的上级id
-        $parent = Dever::input('parent');
-        if (!$parent) {
-            $parent = 0;
-        }
-
-        # 是否是搜索列表页
-        $search = Dever::input('search');
-        if ($search) {
-            $default = $this->search_default;
+        return Dever::load('common', 'manage')->cascader(3, function($level, $parent) {
             if ($level == 1) {
-                $default['name'] = '省份选择';
+                $data = Dever::load('data', 'area')->getProvince();
             } elseif ($level == 2) {
-                $default['name'] = '城市选择';
+                $data = Dever::load('data', 'area')->getCity($parent);
             } elseif ($level == 3) {
-                $default['name'] = '县区选择';
+                $data = Dever::load('data', 'area')->getCounty($parent);
             } elseif ($level == 4) {
-                $default['name'] = '街道选择';
+                $data = Dever::load('data', 'area')->getTown($parent);
             } else {
-                $default['name'] = '社区选择';
+                $data = Dever::load('data', 'area')->getVillage($parent);
             }
-        } else {
-            $default = $this->default;
-        }
-        if ($parent < 0) {
-            Dever::error('error');
-        }
-        # 四级联动
-        if ($level == 1) {
-            $data = Dever::load('data', 'area')->getProvince();
-        } elseif ($level == 2) {
-            $data = Dever::load('data', 'area')->getCity($parent);
-        } elseif ($level == 3) {
-            $data = Dever::load('data', 'area')->getCounty($parent);
-        } elseif ($level == 4) {
-            $data = Dever::load('data', 'area')->getTown($parent);
-        } else {
-            $data = Dever::load('data', 'area')->getVillage($parent);
-        }
-
-        if (!$data) {
-            Dever::error('error');
-        }
-
-        if ($search) {
-            array_unshift($data, $default);
-        }
-        if ($level >= $total) {
-            foreach ($data as &$v) {
-                $v['leaf'] = true;
-            }
-        }
-        $result['total'] = $total;
-        $result['list'] = $data;
-        return $result;
+            return $data;
+        });
     }
 
     # 获取区域状态

+ 5 - 0
manage/county.php

@@ -37,6 +37,11 @@ return array
         (
             'name',
             'status',
+            'area' => array
+            (
+                'type' => 'cascader',
+                'remote'    => 'area/data.get&total=2',
+            ),
         ),
     ),
     'update' => array