rabin 6 months ago
parent
commit
54c312c1bf

+ 5 - 2
api/Page/Update.php

@@ -30,7 +30,7 @@ class Update extends Page
                 }
             }
             if (isset($v['spec_data'])) {
-                $spec[$v['key']] = array($k, $v['spec_data'], $v['key'] . '_spec');
+                $spec[$v['key']] = array($k, $v['spec_data'], $v['key'] . '_spec', $v['spec'], $v['spec_field']);
             }
             if (isset($v['show']) && is_string($v['show'])) {
                 $show[$v['key']] = array($k, $v['show']);
@@ -72,7 +72,7 @@ class Update extends Page
             if ($spec) {
                 foreach ($spec as $k => $v) {
                     $data['update'][$spec[$k][0]]['remote'] = Dever::url($spec[$k][1]);
-                    $result = Dever::call($spec[$k][1], array($this->info['id']));
+                    $result = Dever::call($spec[$k][1], array($spec[$k][3], $spec[$k][4], $this->info['id']));
                     if ($result) {
                         $data['field'][$spec[$k][2]] = $result;
                     }
@@ -566,6 +566,9 @@ class Update extends Page
     private function sku($rid, $data, $sku)
     {
         if ($sku) {
+            if (isset($data['spec_type']) && $data['spec_type'] <= 2) {
+                return;
+            }
             foreach ($sku as $k => $v) {
                 if (strpos($k, '#')) {
                     $k = str_replace('#', '', $k);

+ 1 - 0
lib/Auth.php

@@ -34,6 +34,7 @@ class Auth
         if (!$this->user) {
             Dever::error('请先登录');
         }
+        $this->user['table'] = $this->system['user_table'];
         $this->user['auth'] = array('module' => '', 'menu' => '', 'func' => '');
         if ($this->user['role']) {
             $role = Dever::db($this->system['role_table'])->select(array('id' => array('in', $this->user['role'])));

+ 29 - 9
lib/Common.php

@@ -56,7 +56,7 @@ class Common
     }
 
     # 获取当前使用的系统 一般为数据库隔离使用
-    public function system($info = false, $module = true)
+    public function system($info = false, $module = true, $field = false)
     {
         if (!$info) {
             $info = $this->extend();
@@ -78,32 +78,52 @@ class Common
             } else {
                 $result = array($info['partition'] => $value);
             }
+            if ($field) {
+                $result['field'] = Dever::call($field);
+            }
             return $result;
         }
         return false;
     }
 
+    # 获取token需要用到的key
+    public function getToken()
+    {
+        $extend = $this->extend();
+        if ($extend) {
+            return implode('-', array_values($extend));
+        }
+        return '';
+    }
+
+    # 将token设置到route权限中,方便后续读取
+    public function setAuth($partition, $system_id, $info_id, $module_id, $data_id)
+    {
+        $token = Dever::load('common', 'manage')->token(-1, '', $partition, $system_id, $info_id, $module_id, $data_id);
+        \Dever\Route::$data['authorization'] = Secure::encode($token['token']);
+    }
+
     # 生成token
     public function token($uid, $mobile, $partition, $system_id, $info_id, $module_id, $data_id)
     {
-        $extand['partition'] = $partition;
-        $extand['system_id'] = $system_id;
-        $extand['info_id'] = $info_id;
-        $extand['module_id'] = $module_id;
-        $extand['data_id'] = $data_id;
-        if ($uid) {
+        $extend['partition'] = $partition;
+        $extend['system_id'] = $system_id;
+        $extend['info_id'] = $info_id;
+        $extend['module_id'] = $module_id;
+        $extend['data_id'] = $data_id;
+        if ($uid && $uid > 0) {
             $select['uid'] = $uid;
             $select['system_id'] = $system_id;
             $select['info_id'] = $info_id;
             $info = Dever::db('system_user', 'manage')->find($select);
-            $select += $extand;
+            $select += $extend;
             if (!$info) {
                 Dever::db('system_user', 'manage')->insert($select);
             } else {
                 Dever::db('system_user', 'manage')->update($info['id'], $select);
             }
         }
-        return array('token' => Secure::login($uid, $extand));
+        return array('token' => Secure::login($uid, $extend));
     }
 
     # 生成密码

+ 22 - 3
lib/Page.php

@@ -380,9 +380,28 @@ class Page extends Auth
             $value['width'] = 'auto';
         }
         if (isset($value['upload']) && Dever::project('upload')) {
-            $value['url'] = Dever::url('upload/save.act', array('id' => $value['upload']));
-            $value['config'] = Dever::load('save', 'upload')->get($value['upload']);
-            $value['set'] = Dever::url('image/manage.set', array('id' => $value['upload'], 'wh' => $value['wh'] ?? '500*500'));
+            $upload['cate_id'] = 1;
+            $upload['group_key'] = $this->db->config['table'] . '-' . $value['key'];
+            $upload['group_name'] = $this->db->config['name'];
+            $upload['user_token'] = Dever::load('common', 'manage')->getToken();
+            $upload['user_table'] = $this->user['table'];
+            $upload['user_id'] = $this->user['id'];
+            if (is_array($value['upload'])) {
+                $upload += $value['upload'];
+            } else {
+                $upload += array('id' => $value['upload']);
+            }
+            if (empty($upload['id'])) {
+                Dever::error('上传配置错误');
+            }
+            $value['config'] = Dever::load('save', 'upload')->get($upload['id']);
+            $value['yun'] = false;
+            if ($value['config']['method'] == 2) {
+                $value['yun'] = true;
+            }
+            $value['url'] = Dever::url('upload/save.act', $upload);
+            $upload['wh'] = $value['wh'] ?? '500*500';
+            $value['set'] = Dever::url('image/manage.set', $upload);
             if (isset($value['multiple']) && $value['multiple']) {
                 $value['limit'] = 10;
             } else {

+ 2 - 2
lib/System.php

@@ -18,10 +18,10 @@ class System extends Auth
     }
 
     # 创建管理员
-    public function update($db, $data)
+    public function update($db, $data, $param = array())
     {
         if (isset($data['mobile']) && $data['mobile']) {
-            $system = Dever::db('system', 'manage')->find(array('key' => $data['system']));
+            $system = Dever::db('system', 'manage')->find(array('key' => $param['system']));
             $data['system_id'] = $system['id'];
             $data['info_id'] = $data['id'];
             $data['partition'] = $system['partition'];

+ 3 - 5
manage/admin.php

@@ -241,18 +241,16 @@ return array
             'avatar' => array
             (
                 'type' => 'upload',
-                # 这里传入上传规则id
+                # 这里传入上传规则
                 'upload' => '1',
-                # 如果上传规则是上传到云端,配置了这个将直接上传至云端,不做本地上传
-                'yun' => false,
                 # 是否支持多选
                 'multiple' => false,
-                # 仅上传一条
-                'limit' => 1,
                 # 提示
                 'tip' => '2222',
                 # 展示类型 默认为list 列表 input 可输入地址 pic图片模式
                 'style' => 'pic',
+                # 裁剪时的默认宽度高度
+                'wh' => '500*500',
                 # 上传后影响的字段 这个目前仅有name字段
                 //'upload_name' => 'name',
             ),

+ 1 - 1
table/admin.php

@@ -44,7 +44,7 @@ return array
         'avatar' => array
         (
             'name'      => '头像',
-            'type'      => 'varchar(300)',
+            'type'      => 'varchar(150)',
         ),
         'status' => array
         (

+ 1 - 1
table/cron.php

@@ -19,7 +19,7 @@ return array
         
         'interface'     => array
         (
-            'type'      => 'varchar(500)',
+            'type'      => 'varchar(300)',
             'name'      => '接口地址',
         ),
 

+ 2 - 2
table/group.php

@@ -8,12 +8,12 @@ return array
         'name' => array
         (
             'name'      => '集团名称',
-            'type'      => 'varchar(200)',
+            'type'      => 'varchar(32)',
         ),
         'number' => array
         (
             'name'      => '集团号',
-            'type'      => 'varchar(60)',
+            'type'      => 'varchar(32)',
         ),
         'mobile' => array
         (

+ 1 - 1
table/group_org.php

@@ -9,7 +9,7 @@ return array
         'name' => array
         (
             'name'      => '组织名称',
-            'type'      => 'varchar(200)',
+            'type'      => 'varchar(32)',
         ),
         'sort' => array
         (

+ 1 - 1
table/group_org_job.php

@@ -14,7 +14,7 @@ return array
         'name' => array
         (
             'name'      => '职位名称',
-            'type'      => 'varchar(100)',
+            'type'      => 'varchar(32)',
         ),
         'sort' => array
         (

+ 1 - 1
table/group_user.php

@@ -40,7 +40,7 @@ return array
         'avatar' => array
         (
             'name'      => '头像',
-            'type'      => 'varchar(300)',
+            'type'      => 'varchar(150)',
         ),
         'status' => array
         (

+ 1 - 1
table/icon.php

@@ -7,7 +7,7 @@ return array
         'key' => array
         (
             'name'      => 'icon',
-            'type'      => 'varchar(100)',
+            'type'      => 'varchar(20)',
         ),
     ),
 

+ 2 - 2
table/menu.php

@@ -13,12 +13,12 @@ return array
         'key' => array
         (
             'name'      => '标识',
-            'type'      => 'varchar(60)',
+            'type'      => 'varchar(32)',
         ),
         'app' => array
         (
             'name'      => '项目',
-            'type'      => 'varchar(60)',
+            'type'      => 'varchar(32)',
             'value'     => '\\Dever\\Project::read()',
         ),
         'parent_id' => array

+ 2 - 2
table/platform.php

@@ -9,12 +9,12 @@ return array
         'name' => array
         (
             'name'      => '平台名称',
-            'type'      => 'varchar(200)',
+            'type'      => 'varchar(32)',
         ),
         'number' => array
         (
             'name'      => '集团号',
-            'type'      => 'varchar(60)',
+            'type'      => 'varchar(32)',
         ),
         'sort' => array
         (

+ 1 - 1
table/recycler.php

@@ -7,7 +7,7 @@ return array
         'table' => array
         (
             'name'      => '表名',
-            'type'      => 'varchar(200)',
+            'type'      => 'varchar(80)',
         ),
         'table_id' => array
         (

+ 4 - 4
table/system.php

@@ -13,7 +13,7 @@ return array
         'key' => array
         (
             'name'      => '系统标识',
-            'type'      => 'varchar(60)',
+            'type'      => 'varchar(32)',
         ),
         'partition' => array
         (
@@ -32,17 +32,17 @@ return array
         'info_table' => array
         (
             'name'      => '基本信息表名',
-            'type'      => 'varchar(200)',
+            'type'      => 'varchar(100)',
         ),
         'user_table' => array
         (
             'name'      => '用户表表名',
-            'type'      => 'varchar(200)',
+            'type'      => 'varchar(100)',
         ),
         'role_table' => array
         (
             'name'      => '角色表表名',
-            'type'      => 'varchar(200)',
+            'type'      => 'varchar(100)',
         ),
         'sort' => array
         (

+ 3 - 3
table/system_module.php

@@ -13,17 +13,17 @@ return array
         'key' => array
         (
             'name'      => '模块标识',
-            'type'      => 'varchar(60)',
+            'type'      => 'varchar(32)',
         ),
         'system' => array
         (
             'name'      => '系统标识',
-            'type'      => 'varchar(200)',
+            'type'      => 'varchar(100)',
         ),
         'data_table' => array
         (
             'name'      => '模块下数据表名',
-            'type'      => 'varchar(200)',
+            'type'      => 'varchar(100)',
         ),
         'data_where' => array
         (