dever 7 年之前
父節點
當前提交
7d2151151a
共有 5 個文件被更改,包括 78 次插入6 次删除
  1. 5 0
      assets/moltran/html/inc/script.html
  2. 39 1
      assets/public/main.js
  3. 1 1
      assets/public/ueditor/ueditor.config.js
  4. 26 2
      src/Database.php
  5. 7 2
      src/Lib/Input.php

+ 5 - 0
assets/moltran/html/inc/script.html

@@ -75,6 +75,11 @@
 <script type="text/javascript" src="../public/simditor/plugins/html/beautify-html.js"></script>
 <script type="text/javascript" src="../public/simditor/plugins/html/simditor-html.js"></script>
 <script type="text/javascript" src="../public/simditor/plugins/dropzone/simditor-dropzone.js"></script>
+<!-- 加载文本编辑器 -->
+<!--
+<script type="text/javascript" src="../public/ueditor/ueditor.config.js"></script>
+<script type="text/javascript" src="../public/ueditor/ueditor.all.js"></script>
+-->
 
 <script type="text/javascript" src="../public/layui/upload.js"></script>
 <script type="text/javascript" src="../public/layui/layui.js"></script>

+ 39 - 1
assets/public/main.js

@@ -2,7 +2,7 @@
 
 var editors = [];
 var tables = [];
-
+var select = '';
 $(document).ready(function()
 {
 	//init();
@@ -10,6 +10,7 @@ $(document).ready(function()
 
 function init()
 {
+	select = '';
 	edit();
 	del();
 	checkbox();
@@ -71,6 +72,42 @@ function initMenu()
 	}
 }
 
+function setOption(e, id)
+{
+	var s = $("select[name="+id+"]");
+
+	var v = s.val();
+
+	if (!select) {
+		select = s.clone();
+	}
+	
+	s.find('option[parent]').remove();
+
+	//查找出需要显示的option并复制
+	var options = select.find("option[parent="+e.val()+"]").clone();
+
+	//将需要显示的option添加到select中
+	s.append(options);
+
+	//因为option.remove()不会刷新控件,需要将新的option切换上去
+	//这里排除了options.size() == 0的情况
+	var state = 2;
+	s.find('option').each(function()
+	{
+		var val = $(this).val();
+		if (v == val) {
+			state = 1;
+		}
+	});
+	if (state == 1) {
+		s.val(v);
+	} else {
+		s.val(0);
+	}
+	
+}
+
 function table()
 {
 	$('.table-responsive[data-pattern]').each(function()
@@ -135,6 +172,7 @@ function initEditor()
 				return;
 			}
 			loadEditor($(this));
+			//loadUEditor($(this));
 		})
 	}
 }

+ 1 - 1
assets/public/ueditor/ueditor.config.js

@@ -240,7 +240,7 @@
 
         //,initialContent:'欢迎使用ueditor!'    //初始化编辑器的内容,也可以通过textarea/script给值,看官网例子
 
-        ,initialFrameWidth:700  //初始化编辑器宽度,默认1000
+        ,initialFrameWidth:'100%'  //初始化编辑器宽度,默认1000
         ,initialFrameHeight:500  //初始化编辑器高度,默认320
 
         //,autoClearinitialContent:true //是否自动清除编辑器初始内容,注意:如果focus属性设置为true,这个也为真,那么编辑器一上来就会触发导致初始化的内容看不到了

+ 26 - 2
src/Database.php

@@ -432,6 +432,12 @@ class Database
                 if (isset($v['level'])) {
                     $config['level'] = 3;
                 }
+
+                if (isset($v['search_parent'])) {
+                    $config['manage']['search_parent'][$v['search_parent']] = $k;
+                    $config['manage']['search_child'][$k] = $v['search_parent'];
+                }
+
                 if (isset($v['search'])) {
                     /*
                     if(strpos($v['search'], 'order') !== false)
@@ -691,7 +697,7 @@ class Database
      *
      * @return array
      */
-    public function list_search_select(&$result, $search, $name, $lang, $option, $default = false)
+    public function list_search_select(&$result, $search, $name, $lang, $option, $default = false, $bind = array(), $parent = '')
     {
         $value = array();
         if (strpos($lang, '-')) {
@@ -707,6 +713,10 @@ class Database
         if ($default) {
             //$value['default'] = $default;
         }
+        if ($bind) {
+            $value['bind'] = $bind;
+        }
+        $value['parent'] = $parent;
         $result .= Html::select($value, false) . '&nbsp;&nbsp;&nbsp;';
     }
 
@@ -920,7 +930,21 @@ class Database
 
             if (isset($config['manage']['search']['select'])) {
                 foreach ($config['manage']['search']['select'] as $k => $v) {
-                    $this->list_search_select($result, $search, $prefix . 'option_' . $k, $v['lang'], $this->option($v['option']), $v['default']);
+                    $bind = array();
+                    $parent = '';
+                    $option = $this->option($v['option']);
+                    if (isset($config['manage']['search_parent'][$k])) {
+                        $bind = array
+                        (
+                            'onchange',
+                            'setOption',
+                            'search_option_' . $config['manage']['search_parent'][$k]
+                        );
+                    }
+                    elseif (isset($config['manage']['search_child'][$k])) {
+                        $parent = $config['manage']['search_child'][$k];
+                    }
+                    $this->list_search_select($result, $search, $prefix . 'option_' . $k, $v['lang'], $option, $v['default'], $bind, $parent);
                 }
             }
 

+ 7 - 2
src/Lib/Input.php

@@ -175,7 +175,7 @@ class Input
      */
     public static function editor($param)
     {
-        return '<textarea update_type="value" class="form-control update_value editor" id="' . $param['name'] . '_editor" key="' . (isset($param['key']) ? $param['key'] : 1) . '" name="' . $param['name'] . '" rows="18" cols="100" >' . (isset($param['value']) ? $param['value'] : (isset($param['default']) ? $param['default'] : '')) . '</textarea>';
+        return '<textarea style="width:100%;display: inline"  update_type="value" class=" update_value editor" id="' . $param['name'] . '_editor" key="' . (isset($param['key']) ? $param['key'] : 1) . '" name="' . $param['name'] . '" rows="18" cols="100" >' . (isset($param['value']) ? $param['value'] : (isset($param['default']) ? $param['default'] : '')) . '</textarea>';
     }
 
     /**
@@ -495,13 +495,18 @@ class Input
                     $check = 'selected';
                 }
 
+                $parent = '';
+                if (isset($param['parent']) && $param['parent'] && isset($v[$param['parent']])) {
+                    $parent = $v[$param['parent']];
+                }
+
                 if (is_array($v)) {
                     $value = isset($v['name']) ? $v['name'] : $v['lang'];
                 } else {
                     $value = $v;
                 }
 
-                $html .= '<option value="' . $k . '" ' . $check . '>' . $value . '</option>';
+                $html .= '<option parent="'.$parent.'" value="' . $k . '" ' . $check . '>' . $value . '</option>';
             }
         }