dever 2 年 前
コミット
0949ce1e7c
3 ファイル変更47 行追加19 行削除
  1. 2 1
      database/admin.php
  2. 44 17
      src/Database.php
  3. 1 1
      src/Lib/Input.php

+ 2 - 1
database/admin.php

@@ -241,6 +241,7 @@ return array
 			'match' 	=> Dever::rule('email'),
 			'update'	=> 'text',
 			/*
+			//'option_add' => array('[添加新单位]', 'scm_product/lib/unit.add'),
 			* search_name:检索名称
 			* search_order:检索排序
 			* search_after:展示当前检索之后需要展示什么,默认为<br />
@@ -741,7 +742,7 @@ return array
 			'match' 	=> array('is_numeric', DEVER_TIME),
 			'desc' 		=> '',
 			# 只有insert时才生效
-			//'search'    => 'month_eq',//month 是月份区间搜索,year是年份区间搜索,eq是相等月份搜索
+			//'search'    => 'month_eq',//month 是月份区间搜索,year是年份区间搜索,eq是相等月份搜索,start是只有开始时间,end是只有结束时间,eqs是月份开始天和结束天搜索
 			'insert'	=> true,
 			'list'		=> 'date("Y-m-d H:i:s", {cdate})',
 		),

+ 44 - 17
src/Database.php

@@ -1073,7 +1073,7 @@ class Database
     public function list_search_time(&$result, $search, $prefix, $key, $config, $type = 'time')
     {
         $start = $end = true;
-        $eq = false;
+        $eq = $eqs = false;
         if (is_array($config)) {
             $lang = $config['lang'];
             $search_key = $config['key'];
@@ -1087,6 +1087,8 @@ class Database
                         $end = true;
                     } elseif ($temp[1] == 'eq') {
                         $eq = true;
+                    } elseif ($temp[1] == 'eqs') {
+                        $eqs = true;
                     }
                 }
             }
@@ -1094,34 +1096,59 @@ class Database
             $lang = $config;
         }
 
-        if ($eq) {
+        if ($eqs) {
+
             $value['name'] = $prefix . 'option_' . $key;
+            Dever::setInput($value['name'], '', 'search_');
             $value['lang'] = $lang;
             if (isset($search[$value['name']])) {
                 $value['value'] = Dever::maketime($search[$value['name']]);
-                Dever::setInput($value['name'], $value['value'], 'search_');
+                $start_value = $end_value = $value['value'];
+                if ($type == 'time' || $type == 'day' || $type == 'date') {
+                    $start_value = Dever::maketime($search[$value['name']] . ' 00:00:00');
+                    $end_value = Dever::maketime($search[$value['name']] . ' 23:59:59');
+                } elseif ($type == 'month') {
+                    $start_value = Dever::maketime($search[$value['name']] . '-01 00:00:00');
+                    $end_value = date('t', $start_value);
+                    $end_value = Dever::maketime($search[$value['name']] . '-'.$end_value.' 23:59:59');
+                } elseif ($type == 'year') {
+                    $start_value = Dever::maketime($search[$value['name']] . '-01-01 00:00:00');
+                    $end_value = date('12-t', $start_value);
+                    $end_value = Dever::maketime($search[$value['name']] . '-'.$end_value.' 23:59:59');
+                }
+                
+                Dever::setInput($prefix . 'option_start_' . $key, $start_value, 'search_');
+                Dever::setInput($prefix . 'option_end_' . $key, $end_value, 'search_');
             }
             $result .= Html::$type($value, false);
-        }
-        
-        if ($start) {
-            $value['name'] = $prefix . 'option_start_' . $key;
-            $value['lang'] = '>=' . $lang;
+        } elseif ($eq) {
+            $value['name'] = $prefix . 'option_' . $key;
+            $value['lang'] = $lang;
             if (isset($search[$value['name']])) {
                 $value['value'] = Dever::maketime($search[$value['name']]);
                 Dever::setInput($value['name'], $value['value'], 'search_');
             }
             $result .= Html::$type($value, false);
-        }
-        
-        if ($end) {
-            $value['name'] = $prefix . 'option_end_' . $key;
-            $value['lang'] = '<=' . $lang;
-            if (isset($search[$value['name']])) {
-                $value['value'] = Dever::maketime($search[$value['name']]);
-                Dever::setInput($value['name'], $value['value'], 'search_');
+        } else {
+            if ($start) {
+                $value['name'] = $prefix . 'option_start_' . $key;
+                $value['lang'] = '>=' . $lang;
+                if (isset($search[$value['name']])) {
+                    $value['value'] = Dever::maketime($search[$value['name']]);
+                    Dever::setInput($value['name'], $value['value'], 'search_');
+                }
+                $result .= Html::$type($value, false);
+            }
+            
+            if ($end) {
+                $value['name'] = $prefix . 'option_end_' . $key;
+                $value['lang'] = '<=' . $lang;
+                if (isset($search[$value['name']])) {
+                    $value['value'] = Dever::maketime($search[$value['name']]);
+                    Dever::setInput($value['name'], $value['value'], 'search_');
+                }
+                $result .= Html::$type($value, false);
             }
-            $result .= Html::$type($value, false);
         }
     }
 

+ 1 - 1
src/Lib/Input.php

@@ -1467,6 +1467,6 @@ class Input
     public static function _show($param, $class = '')
     {
         $value = (isset($param['value']) ? $param['value'] : (isset($param['default']) ? $param['default'] : ''));
-        return $value;
+        return '<div id="' . $param['name'] . '">' . $value . '</div>';
     }
 }