rabin 6 anos atrás
pai
commit
fdf50ee61c

+ 3 - 3
assets/layadmin/html/inc/script.html

@@ -25,9 +25,6 @@
 <!-- 加载highlight.min.js -->
 <script type="text/javascript" src="../script/lib/highlight/highlight.min.js"></script>
 
-<!-- 加载主要js,很乱,后续优化 -->
-<script type="text/javascript" src="../script/lib/manage/main.js?v7"></script>
-
 <!-- 加载valid -->
 <script type="text/javascript" src="../script/lib/valid/jquery.validationEngine.min.js?v3"></script>
 
@@ -40,3 +37,6 @@
 
 <script type="text/javascript" src="../script/lib/layui/upload.js?v1"></script>
 <script type="text/javascript" src="../script/lib/layui/layui.js"></script>
+
+<!-- 加载主要js,很乱,后续优化 -->
+<script type="text/javascript" src="../script/lib/manage/main.js?v7"></script>

+ 1 - 1
assets/moltran/html/inc/script.html

@@ -45,7 +45,7 @@
 <script type="text/javascript" src="../script/lib/highlight/highlight.min.js"></script>
 
 <!-- 加载主要js,很乱,后续优化 -->
-<script type="text/javascript" src="../script/lib/manage/main.js?v7"></script>
+<script type="text/javascript" src="../script/lib/manage/main.js?v8"></script>
 
 <!-- 加载一些模板自带效果 -->
 <script>

+ 18 - 3
database/admin.php

@@ -85,13 +85,13 @@ return array
 
 	# 检测email必须唯一
 	'check' => 'email',
-	# 同步更新另外一个或多个表的数据
+	# 同步更新另外一个或多个表的多条关联数据,以逗号隔开
 	'sync' => array
 	(
 		'manage/admin_role' => array
 		(
-			# 更新另外一个表的字段 => 本表的字段
-			'where' => array('admin_id', 'id'),
+			# 更新时的条件,另外一个表的字段 => 本表的字段
+			'where' => array('admin_id' => 'id'),
 			# 要更新的数据
 			'update' => array('role_id' => 'role'),
 			# 同步更新的类型,delete为先删再插入,update为先查询是否存在,存在直接更新,不存在则插入, only为仅更新
@@ -99,6 +99,21 @@ return array
 		)
 	),
 
+
+	# 同步更新另外一个或多个表的一条关联数据
+	/*
+	'syncone' => array
+	(
+		'manage/admin_role' => array
+		(
+			# 更新另外一个表的字段 => 本表的字段
+			'where' => array('admin_id' => 'id'),
+			# 要更新的数据
+			'update' => array('role_id' => 'role'),
+		)
+	),
+	*/
+
 	/*该方法用check替代
 	'start' => array
 	(

+ 9 - 5
src/Database.php

@@ -2156,19 +2156,19 @@ class Database
 
             $option = array
             (
-                1 => '选中的数据',
+                1 => '本页选中的数据',
             );
 
             # 只有当有搜索条件时才会出现
             if (Dever::load('manage/auth.oper', 2) && $this->search == true) {
-                $option[2] = '所有数据';
+                $option[2] = '所有页面的数据';
                 $default = 2;
             }
 
-            $this->list_search_select($result, $mul, $prefix . 'type' . '" id="' . $prefix . 'type', '请选择更新方式', $option, $default);
+            $this->list_search_select($result, $mul, $prefix . 'type' . '" id="' . $prefix . 'type', '请选择要更新的数据', $option, $default);
 
             foreach ($config['struct'] as $k => $v) {
-                if ($k == 'state') {
+                if ($k == 'state' && (!isset($config['manage']['delete']) || (isset($config['manage']['delete']) && $config['manage']['delete']))) {
                     $v['option'] = Dever::config('base')->state;
                     if ($this->getState() == 2) {
                         unset($v['option'][2]);
@@ -2179,6 +2179,7 @@ class Database
                     $v['edit'] = true;
                 }
                 if (isset($v['edit']) && isset($v['option']) && (is_array($v['option']) || is_object($v['option']))) {
+                    $result .= '&nbsp;&nbsp;';
                     $this->list_search_select($result, $mul, $prefix . 'set_' . $k, $v['name'], $this->option($v['option']), $v['default']);
                 }
             }
@@ -2209,7 +2210,10 @@ class Database
             # 这里用到了/e,注意这里无论如何不能传入$_GET之类的用户参数 2015/7/21更新为callback方式
             //$eval = '$value = ' . preg_replace('/{(.*?)}/e', "\$data['$1']", $value) . ';';
             $func = function ($r) use ($data) {
-                return $data[$r[1]];
+                if (isset($data[$r[1]])) {
+                    return $data[$r[1]];
+                }
+                return false;
             };
             $eval = '$value = ' . preg_replace_callback('/{(.*?)}/', $func, $value) . ';';
 

+ 9 - 5
src/Lib/Input.php

@@ -308,13 +308,14 @@ class Input
 
             foreach ($param['editor']['button'] as $k => $v) {
                 if (isset($v['type'])) {
-                    $v['type'] = 'editor_tool" tool="' . $v['type'];
-
                     if ($v['type'] == 'image') {
                         $param['key'] = $v['key'];
                     } elseif ($v['type'] == 'media') {
                         $param['media'] = $v['key'];
                     }
+
+                    $v['type'] = 'editor_tool" tool="' . $v['type'];
+                    
                 } else {
                     $v['type'] = 'upload_show';
                 }
@@ -323,6 +324,8 @@ class Input
                 $html .= '<input type="button" style="width:100px;display:inline;padding-left:0px;margin:5px;" class="form-control layui-input '.$v['type'].'" editor_id="' . $param['name'] . '_editor" key="'.$v['key'].'" value="'.$v['name'].'">';
             }
 
+
+
             $html .= '</div></div>';
         }
         return $html . '<textarea style="'.$width.';display: inline"  update_type="value" class=" update_value editor" id="' . $param['name'] . '_editor" key="' . (isset($param['key']) ? $param['key'] : 1) . '" media="' . (isset($param['media']) ? $param['media'] : "") . '" name="' . $param['name'] . '" rows="18" cols="100" >' . (isset($param['value']) ? $param['value'] : (isset($param['default']) ? $param['default'] : '')) . '</textarea>';
@@ -649,11 +652,12 @@ class Input
         if ($change) {
             $xm = '';
         } else {
-            $xm = 'xm-select="' . $param['name'] . '" xm-select-skin="normal"';
+            
         }
         
-        if (isset($param['update'])) {
-            
+        if (!$change && isset($param['update'])) {
+            $xm = 'xm-select="' . $param['name'] . '" xm-select-skin="normal"';
+
             if ($param['update'] == 'selects') {
                 $xm .= 'xm-select-search="" xm-select-search-type="dl"';
             } else {