diff --git a/application/admin/controller/Ajax.php b/application/admin/controller/Ajax.php
index ffb17a0..f033339 100644
--- a/application/admin/controller/Ajax.php
+++ b/application/admin/controller/Ajax.php
@@ -179,14 +179,12 @@ class Ajax extends Backend
     public function upload()
     {
         $this->code = -1;
-        $this->data = NULL;
         $file = $this->request->file('file');
-        dump($file);
         $uploaddir = '/public/uploads/';
         $info = $file->move(ROOT_PATH . $uploaddir);
         if ($info)
         {
-            $this->code = 1;
+            $this->code = 200;
             $this->data = $uploaddir . $info->getSaveName();
         }
         else
diff --git a/application/common/controller/Backend.php b/application/common/controller/Backend.php
index d5f4244..57a3a8e 100644
--- a/application/common/controller/Backend.php
+++ b/application/common/controller/Backend.php
@@ -217,7 +217,7 @@ class Backend extends Controller
         //判断是否设置code值,如果有则变动response对象的正文
         if (!is_null($this->code))
         {
-            $this->result($this->data, $this->code, $this->msg);
+            $this->result($this->data, $this->code, $this->msg, 'json');
         }
     }
 
diff --git a/public/assets/build/build-backend.js b/public/assets/build/build-backend.js
index 5e3c0aa..b49d5b2 100644
--- a/public/assets/build/build-backend.js
+++ b/public/assets/build/build-backend.js
@@ -3,19 +3,14 @@
     optimizeCss: 'standard',
     optimize: 'none',
     removeCombined: false,
-    name: "require-frontend",
+    name: "require-backend",
     include: ['css', 'layer', 'toastr', 'frontend', 'table', 'form', 'dragsort', 'drag', 'drop', 'addtabs'],
-    out: "../js/require-frontend.min.js",
+    out: "../js/require-backend.min.js",
     packages: [{
             name: 'moment',
             location: '../libs/moment',
             main: 'moment'
         }],
-    map: {
-        '*': {
-            'css': '../libs/require-css/css.min'
-        }
-    },
     paths: {
         'lang': "empty:",
         'config': 'require-config',
@@ -44,23 +39,25 @@
         'bootstrap-table-mobile': '../libs/bootstrap-table/dist/extensions/mobile/bootstrap-table-mobile',
         'bootstrap-table-advancedsearch': 'bootstrap-table-advancedsearch',
         'bootstrap-table-lang': '../libs/bootstrap-table/dist/locale/bootstrap-table-zh-CN',
+        'typeahead': '../libs/typeahead.js/dist/typeahead.jquery.min',
+        'bloodhound': '../libs/typeahead.js/dist/bloodhound.min',
         'tableexport': '../libs/tableExport.jquery.plugin/tableExport.min',
         'dropzone': '../libs/dropzone/dist/min/dropzone-amd-module.min',
         'less': '../libs/less/dist/less.min',
         'dragsort': '../libs/dragsort/jquery.dragsort',
+        'sortable': '../libs/Sortable/Sortable.min',
         'addtabs': '../libs/jquery-addtabs/jquery.addtabs',
         'slimscroll': '../libs/jquery-slimscroll/jquery.slimscroll',
-        'crontab': '../libs/jqcron/src/jqCron',
-        'crontab-lang': '../libs/jqcron/src/jqCron.cn',
-        'validate': '../libs/jquery-validation/dist/jquery.validate.min',
+        'crontab': '../libs/jqcron/src/jqCron.cn',
+        'summernote': '../libs/summernote/dist/lang/summernote-zh-CN.min',
+        'validator': '../libs/nice-validator/dist/local/zh-CN',
         'plupload': '../libs/plupload/js/plupload.min',
-        'summernote': '../libs/summernote/dist/summernote.min',
-        'summernote-lang': '../libs/summernote/dist/lang/summernote-zh-CN.min',
-        'toastr': '../libs/toastr/toastr',
+        'toastr': '../libs/toastr/toastr.min',
         'jstree': '../libs/jstree/dist/jstree.min',
         'layer': '../libs/layer/src/layer',
         'echarts': '../libs/echarts/dist/echarts.min',
         'cookie': '../libs/jquery.cookie/jquery.cookie',
+        'template': '../libs/art-template/dist/template-native',
     },
     // shim依赖配置
     shim: {
@@ -103,8 +100,7 @@
                 return require.s.contexts._.registry['typeahead.js'].factory($);
             }
         },
-        'crontab': ['css!../libs/jqcron/src/jqCron.css'],
-        'crontab-lang': ['crontab'],
+        'crontab': ['../libs/jqcron/src/jqCron', 'css!../libs/jqcron/src/jqCron.css'],
         'bootstrap-checkbox': ['jquery'],
         'bootstrap-radio': ['jquery'],
         'bootstrap-switch': ['jquery'],
@@ -120,8 +116,7 @@
             'typeahead'
         ],
         'bootstrap-select': ['css!../libs/bootstrap-select/dist/css/bootstrap-select.min.css', ],
-        'summernote': ['css!../libs/summernote/dist/summernote.css'],
-        'summernote-lang': ['summernote'],
+        'summernote': ['../libs/summernote/dist/summernote.min', 'css!../libs/summernote/dist/summernote.css'],
 //        'toastr': ['css!../libs/toastr/toastr.min.css'],
         'jstree': ['css!../libs/jstree/dist/themes/default/style.css', ],
         'plupload': {
@@ -131,5 +126,14 @@
             exports: "plupload"
         },
 //        'layer': ['css!../libs/layer/build/skin/default/layer.css'],
+        validator: {
+            deps: ['../libs/nice-validator/dist/jquery.validator', 'css!../libs/nice-validator/dist/jquery.validator.css']
+        }
+    },
+    map: {
+        '*': {
+            'css': '../libs/require-css/css.min'
+        }
     },
-})
+    charset: 'utf-8' // 文件编码
+});
\ No newline at end of file
diff --git a/public/assets/build/build-frontend.js b/public/assets/build/build-frontend.js
index 892456d..b76f056 100644
--- a/public/assets/build/build-frontend.js
+++ b/public/assets/build/build-frontend.js
@@ -3,19 +3,14 @@
     optimizeCss: 'standard',
     optimize: 'none',
     removeCombined: false,
-    name: "require-backend",
-    include: ['css', 'layer', 'toastr', 'backend', 'table', 'form', 'dragsort', 'drag', 'drop', 'addtabs'],
-    out: "../js/require-backend.min.js",
+    name: "require-frontend",
+    include: ['css', 'layer', 'toastr', 'frontend'],
+    out: "../js/require-frontend.min.js",
     packages: [{
             name: 'moment',
             location: '../libs/moment',
             main: 'moment'
         }],
-    map: {
-        '*': {
-            'css': '../libs/require-css/css.min'
-        }
-    },
     paths: {
         'lang': "empty:",
         'config': 'require-config',
@@ -44,23 +39,25 @@
         'bootstrap-table-mobile': '../libs/bootstrap-table/dist/extensions/mobile/bootstrap-table-mobile',
         'bootstrap-table-advancedsearch': 'bootstrap-table-advancedsearch',
         'bootstrap-table-lang': '../libs/bootstrap-table/dist/locale/bootstrap-table-zh-CN',
+        'typeahead': '../libs/typeahead.js/dist/typeahead.jquery.min',
+        'bloodhound': '../libs/typeahead.js/dist/bloodhound.min',
         'tableexport': '../libs/tableExport.jquery.plugin/tableExport.min',
         'dropzone': '../libs/dropzone/dist/min/dropzone-amd-module.min',
         'less': '../libs/less/dist/less.min',
         'dragsort': '../libs/dragsort/jquery.dragsort',
+        'sortable': '../libs/Sortable/Sortable.min',
         'addtabs': '../libs/jquery-addtabs/jquery.addtabs',
         'slimscroll': '../libs/jquery-slimscroll/jquery.slimscroll',
-        'crontab': '../libs/jqcron/src/jqCron',
-        'crontab-lang': '../libs/jqcron/src/jqCron.cn',
-        'validate': '../libs/jquery-validation/dist/jquery.validate.min',
+        'crontab': '../libs/jqcron/src/jqCron.cn',
+        'summernote': '../libs/summernote/dist/lang/summernote-zh-CN.min',
+        'validator': '../libs/nice-validator/dist/local/zh-CN',
         'plupload': '../libs/plupload/js/plupload.min',
-        'summernote': '../libs/summernote/dist/summernote.min',
-        'summernote-lang': '../libs/summernote/dist/lang/summernote-zh-CN.min',
-        'toastr': '../libs/toastr/toastr',
+        'toastr': '../libs/toastr/toastr.min',
         'jstree': '../libs/jstree/dist/jstree.min',
         'layer': '../libs/layer/src/layer',
         'echarts': '../libs/echarts/dist/echarts.min',
         'cookie': '../libs/jquery.cookie/jquery.cookie',
+        'template': '../libs/art-template/dist/template-native',
     },
     // shim依赖配置
     shim: {
@@ -103,8 +100,7 @@
                 return require.s.contexts._.registry['typeahead.js'].factory($);
             }
         },
-        'crontab': ['css!../libs/jqcron/src/jqCron.css'],
-        'crontab-lang': ['crontab'],
+        'crontab': ['../libs/jqcron/src/jqCron', 'css!../libs/jqcron/src/jqCron.css'],
         'bootstrap-checkbox': ['jquery'],
         'bootstrap-radio': ['jquery'],
         'bootstrap-switch': ['jquery'],
@@ -120,8 +116,7 @@
             'typeahead'
         ],
         'bootstrap-select': ['css!../libs/bootstrap-select/dist/css/bootstrap-select.min.css', ],
-        'summernote': ['css!../libs/summernote/dist/summernote.css'],
-        'summernote-lang': ['summernote'],
+        'summernote': ['../libs/summernote/dist/summernote.min', 'css!../libs/summernote/dist/summernote.css'],
 //        'toastr': ['css!../libs/toastr/toastr.min.css'],
         'jstree': ['css!../libs/jstree/dist/themes/default/style.css', ],
         'plupload': {
@@ -131,5 +126,14 @@
             exports: "plupload"
         },
 //        'layer': ['css!../libs/layer/build/skin/default/layer.css'],
+        validator: {
+            deps: ['../libs/nice-validator/dist/jquery.validator', 'css!../libs/nice-validator/dist/jquery.validator.css']
+        }
+    },
+    map: {
+        '*': {
+            'css': '../libs/require-css/css.min'
+        }
     },
-})
+    charset: 'utf-8' // 文件编码
+});
\ No newline at end of file
diff --git a/public/assets/js/require-frontend.js b/public/assets/js/require-frontend.js
index df47d09..878fb07 100644
--- a/public/assets/js/require-frontend.js
+++ b/public/assets/js/require-frontend.js
@@ -41,16 +41,16 @@ require.config({
         'sortable': '../libs/Sortable/Sortable.min',
         'addtabs': '../libs/jquery-addtabs/jquery.addtabs',
         'slimscroll': '../libs/jquery-slimscroll/jquery.slimscroll',
-        'crontab': '../libs/jqcron/src/jqCron',
-        'crontab-lang': '../libs/jqcron/src/jqCron.cn',
+        'crontab': '../libs/jqcron/src/jqCron.cn',
+        'summernote': '../libs/summernote/dist/lang/summernote-zh-CN.min',
+        'validator': '../libs/nice-validator/dist/local/zh-CN',
         'plupload': '../libs/plupload/js/plupload.min',
-        'summernote': '../libs/summernote/dist/summernote.min',
-        'summernote-lang': '../libs/summernote/dist/lang/summernote-zh-CN.min',
         'toastr': '../libs/toastr/toastr.min',
         'jstree': '../libs/jstree/dist/jstree.min',
         'layer': '../libs/layer/src/layer',
         'echarts': '../libs/echarts/dist/echarts.min',
         'cookie': '../libs/jquery.cookie/jquery.cookie',
+        'template': '../libs/art-template/dist/template-native',
     },
     // shim依赖配置
     shim: {
@@ -93,8 +93,7 @@ require.config({
                 return require.s.contexts._.registry['typeahead.js'].factory($);
             }
         },
-        'crontab': ['css!../libs/jqcron/src/jqCron.css'],
-        'crontab-lang': ['crontab'],
+        'crontab': ['../libs/jqcron/src/jqCron', 'css!../libs/jqcron/src/jqCron.css'],
         'bootstrap-checkbox': ['jquery'],
         'bootstrap-radio': ['jquery'],
         'bootstrap-switch': ['jquery'],
@@ -110,8 +109,7 @@ require.config({
             'typeahead'
         ],
         'bootstrap-select': ['css!../libs/bootstrap-select/dist/css/bootstrap-select.min.css', ],
-        'summernote': ['css!../libs/summernote/dist/summernote.css'],
-        'summernote-lang': ['summernote'],
+        'summernote': ['../libs/summernote/dist/summernote.min', 'css!../libs/summernote/dist/summernote.css'],
 //        'toastr': ['css!../libs/toastr/toastr.min.css'],
         'jstree': ['css!../libs/jstree/dist/themes/default/style.css', ],
         'plupload': {
@@ -121,6 +119,9 @@ require.config({
             exports: "plupload"
         },
 //        'layer': ['css!../libs/layer/build/skin/default/layer.css'],
+        validator: {
+            deps: ['../libs/nice-validator/dist/jquery.validator', 'css!../libs/nice-validator/dist/jquery.validator.css']
+        }
     },
     baseUrl: requirejs.s.contexts._.config.config.config.site.cdnurl + '/assets/js/', //资源基础路径
     map: {
@@ -134,15 +135,15 @@ require.config({
 require(['jquery', 'bootstrap', 'config'], function ($, undefined, Config) {
     // 配置语言包的路径
     var paths = {};
-    paths['lang'] = (Config.subdomain == "1" ? '' : '/' + Config.modulename) + '/ajax/lang?callback=define&controllername=' + Config.controllername;
+    paths['lang'] = (Config.subdomain == "1" ? '' : '/index') + '/ajax/lang?callback=define&controllername=' + Config.controllername;
 
     // 避免目录冲突
-    paths[Config.modulename + '/'] = Config.modulename + '/';
+    paths['frontend/'] = 'frontend/';
     require.config({paths: paths});
 
     // 初始化
     $(function () {
-        require([Config.modulename], function (Module) {
+        require(['frontend'], function (Module) {
             // 对相对地址进行处理
             $.ajaxSetup({
                 beforeSend: function (xhr, setting) {