rabin há 7 anos atrás
pai
commit
ecb31855b6
2 ficheiros alterados com 26 adições e 1 exclusões
  1. 2 0
      assets/public/main.js
  2. 24 1
      src/Database.php

+ 2 - 0
assets/public/main.js

@@ -1591,6 +1591,8 @@ var dever_update =
 		content = '<div id="'+id+'" style="display:none;" class="'+n.attr('class')+' dever_form_add_child">' + content + '</div>';
 		
 		p.append(content);
+
+		$('#update_' + key +'_c_' + (self.index[key]-1) + '_i_' + 'order_value').val(parseInt($('#update_' + key +'_c_' + (self.index[key]-2) + '_i_' + 'order_value').val())+1);
 		
 		self.del();
 

+ 24 - 1
src/Database.php

@@ -1943,6 +1943,17 @@ class Database
 
                 $tab = '';
 
+                $order = array
+                (
+                    'col'       => 'order',
+                    'name'      => '排序-按照数字正序排列',
+                    'default'   => '1',
+                    'desc'      => '排序',
+                    'match'     => 'is_string',
+                    'update'    => 'text',
+                );
+                array_unshift($method, $order);
+
                 $this->update_child(array(), $method, $key, $result, -1);
 
                 if (isset($param['value']) && $param['value']) {
@@ -2001,6 +2012,10 @@ class Database
                 $v['ext'] = $key . '_c_' . $index . '_i_' . $v['col'];
             }
 
+            if ($v['col'] == 'order') {
+                $v['default'] = $index+1;
+            }
+
             $this->update_html($v, $key, $v['col'], $data, $result);
 
             $result[$key] .= '</div>';
@@ -2072,7 +2087,7 @@ class Database
             $prefix = 'add';
         }
         if ($method && $input) {
-            $update = array();
+            $update = $order = array();
             $i = 0;
             $c = array();
             foreach ($input as $k => $v) {
@@ -2106,6 +2121,9 @@ class Database
                         $num = $c[$k][$temp[1]];
 
                         $update[$i][$k][$num][$temp[1]] = $v;
+                        if ($temp[1] == 'order') {
+                            $order[$i][$k][$num] = $v;
+                        }
                     } else {
                         //$update[$i][$k][$c][$temp[1]] = $v;
                     }
@@ -2182,6 +2200,11 @@ class Database
                     $method = 'update';
                     $old = $this->load('one', $v['where_id']);
                 }
+                if (isset($order[$k])) {
+                    foreach ($order[$k] as $i => $j) {
+                        array_multisort($j, SORT_ASC, $v[$i]);
+                    }
+                }
                 $id = $this->load($method, $v);
 
                 if ($id) {