rabin преди 3 години
родител
ревизия
f58afaf511
променени са 6 файла, в които са добавени 135 реда и са изтрити 30 реда
  1. 23 13
      database/admin.php
  2. 19 1
      database/company.php
  3. 48 9
      database/group.php
  4. 11 3
      src/Auth.php
  5. 14 1
      src/Company.php
  6. 20 3
      src/Database.php

+ 23 - 13
database/admin.php

@@ -55,6 +55,18 @@ $group = function()
 	return Dever::load('manage/group-all');
 };
 
+$company_group = function() 
+{
+	$data = Dever::load('manage/company-all');
+	if ($data) {
+		foreach ($data as $k => $v) {
+			$data[$k]['child'] = Dever::db('manage/group')->all(array('company_id' => $v['id']));
+		}
+		$data['state'] = 1;
+	}
+	return $data;
+};
+
 $config = function()
 {
 	return Dever::load('manage/config-all');
@@ -612,11 +624,9 @@ return array
 		(
 			'type' 		=> 'varchar-2000',
 			'name' 		=> '选择公司',
-			'default' 	=> '',
+			'default' 	=> '1',
 			'desc' 		=> '选择公司',
 			'match' 	=> 'is_string',
-			'update'	=> 'checkbox',
-			'option'	=> $company,
 		),
 		
 		'role'		=> array
@@ -633,15 +643,14 @@ return array
 
 		'group'		=> array
 		(
-			'type' 		=> 'int-11',
+			'type' 		=> 'varchar-2000',
 			'name' 		=> '所属部门',
-			'default' 	=> '1',
+			'default' 	=> '',
 			'desc' 		=> '请选择所属部门',
-			'match' 	=> 'is_numeric',
-			'option' 	=> $group,
-			'update'	=> 'select',
-			'list'		=> true,
-			'edit'		=> true,
+			'match' 	=> 'is_string',
+			'option' 	=> $company_group,
+			'update'	=> 'checkbox',
+			//'list'		=> true,
 			# 取代option,从接口里读取选项
 			//'update_search' => 'goods/lib/manage.search_sku',
 		),
@@ -767,6 +776,7 @@ return array
 		'button' => array
         (
             //'新增兑换码' => array('fast', 1, 'config&where_id=1'),
+            '公司设置' => array('list', 'company&oper_parent=admin'),
             '部门设置' => array('list', 'group&oper_parent=admin'),
         ),
 	),
@@ -774,12 +784,12 @@ return array
 	# 更新表结构
 	'alter' => array
 	(
-		2 => array
+		5 => array
 		(
-			//array('update', 'role', 'role', 'varchar-100 1 角色'),
+			array('update', 'group', 'group', 'varchar-1000 {} 部门'),
 			//array('add', 'config', 'config', 'int-11 1 配置'),
 		),
-		'version' => 2,
+		'version' => 5,
 	),
 
 	/*

+ 19 - 1
database/company.php

@@ -9,6 +9,11 @@ return array
     # 显示给用户看的名称
     'lang' => '公司管理',
     'order' => 7,
+    'menu' => false,
+    'end' => array
+    (
+        'update' => 'manage/company.update',
+    ),
 
     # 数据结构
     'struct' => array
@@ -68,7 +73,20 @@ return array
     # 管理功能
     'manage' => array
     (
-       'delete' => false,
+        'delete' => false,
+        'insert' => false,
+        'edit' => false,
+
+        # 自定义快捷新增和编辑
+        'button' => array
+        (
+        '新增' => array('fast'),
+        ),
+        # 快捷更新
+        'list_button' => array
+        (
+        'edit' => array('编辑'),
+        ),
     ),
 
     'request' => array

+ 48 - 9
database/group.php

@@ -10,7 +10,16 @@ $option = array
 	1 => '可用',
 	2 => '不可用',
 );
-
+$company = function()
+{
+    $array = array();
+    $data = Dever::db('manage/company')->state();
+    if($data)
+    {
+        $array += $data;
+    }
+    return $array;
+};
 $area = function()
 {
 	return Dever::load('setting/area-getAll', array('where_area_id_parent' => 0));
@@ -39,6 +48,20 @@ $config = array
 			'search'	=> 'order',
 			'list'		=> true,
 		),
+
+		'company_id'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '选择公司',
+            'default'   => '',
+            'desc'      => '公司名称',
+            'match'     => 'is_numeric',
+            'update'    => 'radio',
+            'list_name' => '公司名称',
+            'option'    => $company,
+            'list'      => true,
+            'search'    => 'select',
+        ),
 		
 		'name'		=> array
 		(
@@ -89,11 +112,18 @@ $config = array
 	# 默认值
 	'default' => array
 	(
-		'col' => 'name,state,cdate',
+		'col' => 'company_id,name,state,cdate',
 		'value' => array
 		(
-			'"默认部门",1,' . DEVER_TIME,
+			'1, "默认部门",1,' . DEVER_TIME,
 		),
+		
+	),
+
+	
+	# 后台管理 此处的功能全部开放
+	'manage' => array
+	(
 		'insert' => false,
 		'edit' => false,
 
@@ -109,12 +139,21 @@ $config = array
 		),
 	),
 
-	
-	# 后台管理 此处的功能全部开放
-	'manage' => array
-	(
-		
-	),
+	'request' => array
+    (
+        'getCompanyIds' => array
+        (
+            'type' => 'all',
+            'option' => array
+            (
+                'ids' => array('yes-id', 'in'),
+                'state' => 1,
+            ),
+            'order' => array('id' => 'desc'),
+            'group' => 'company_id',
+            'col' => '*|id',
+        ),
+    ),
 );
 
 return $config;

+ 11 - 3
src/Auth.php

@@ -199,6 +199,7 @@ class Auth
             if ($admin['top']) {
                 $info['top'] = $admin['top'];
             }
+            $info['company'] = false;
             if ($admin['company']) {
                 $info['company'] = $admin['company'];
             }
@@ -362,15 +363,22 @@ class Auth
         }
     }
 
-    public function update($id)
+    public function update($id, $name, $data)
     {
-        $id = Dever::input('update_where_id');
-
         $admin = $this->info();
         if ($id > 0 && $id == $admin['id']) {
             $user = Dever::db('manage/admin')->one($id);
             $this->save($user);
         }
+        $group = Dever::param('group', $data);
+        if ($group) {
+            $company = Dever::db('manage/group')->getCompanyIds(array('ids' => $group));
+            if ($company) {
+                $update['where_id'] = $id;
+                $update['company'] = implode(',', array_keys($company));
+                Dever::db('manage/admin')->update($update);
+            }
+        }
     }
 
     public function save(&$user)

+ 14 - 1
src/Company.php

@@ -25,7 +25,10 @@ class Company extends Save
         $company_id = $company_id ? $company_id : Dever::input('company_id');
         $auth = $this->getAuth();
         if ($auth) {
-            $auth = explode(',', $auth);
+            if (is_string($auth)) {
+                $auth = explode(',', $auth);
+            }
+            
             if (in_array($company_id, $auth)) {
                 return $this->_add('company', $company_id, 3600 * 24 * 365);
             }
@@ -98,4 +101,14 @@ class Company extends Save
             return array();
         }
     }
+
+    public function update($id, $name, $data)
+    {
+        $group = Dever::db('manage/group')->one(array('company_id' => $id));
+        if (!$group) {
+            $data['company_id'] = $id;
+            $data['name'] = '默认部门';
+            Dever::db('manage/group')->insert($data);
+        }
+    }
 }

+ 20 - 3
src/Database.php

@@ -3602,14 +3602,31 @@ class Database
                     if (isset($param['value']) && $param['value']) {
                         $value = Dever::array_decode($param['value']);
                         $param['value'] = array();
-                        foreach ($param['option'] as $k => $v) {
-                            foreach ($value[$k-1] as $k1 => $v1) {
-                                $param['value'][$v][$k1] = $v1;
+                        if (!$value) {
+                            foreach ($param['option'] as $k => $v) {
+                                if (isset($v['name'])) {
+                                    $v = $v['name'];
+                                }
+                                $param['value'][$v][$key] = $k;
+                            }
+                        } else {
+                            foreach ($param['option'] as $k => $v) {
+                                if (isset($v['name'])) {
+                                    $v = $v['name'];
+                                }
+                                foreach ($value[$k-1] as $k1 => $v1) {
+                                    $param['value'][$v][$k1] = $v1;
+                                }
                             }
                         }
+                        
+                        
                     } else {
                         $param['value'] = array();
                         foreach ($param['option'] as $k => $v) {
+                            if (isset($v['name'])) {
+                                $v = $v['name'];
+                            }
                             $param['value'][$v][$key] = $k;
                         }
                     }