diff --git a/src/main/resources/static/custom/module/index.js b/src/main/resources/static/custom/module/index.js
index 992d4d9..101d6b9 100755
--- a/src/main/resources/static/custom/module/index.js
+++ b/src/main/resources/static/custom/module/index.js
@@ -28,7 +28,7 @@
 
             // 主页
             Q.init({
-                index: 'home_console'
+                index: '!_home_console'
             });
             // tab选项卡切换监听
             element.on('tab(admin-pagetabs)', function (data) {
diff --git a/src/main/resources/templates/home/password.html b/src/main/resources/templates/home/password.html
index 931eb25..e9e8aee 100755
--- a/src/main/resources/templates/home/password.html
+++ b/src/main/resources/templates/home/password.html
@@ -30,7 +30,7 @@
         // 监听提交
         form.on('submit(submit-psw)', function (data) {
             layer.load(2);
-            $.post('/system/user/updatePsw', data.field, function (data) {
+            $.post('[[@{/system/user/updatePsw}]]', data.field, function (data) {
                 if (data.code == 200) {
                     layer.closeAll('loading');
                     admin.closePopupRight();
diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html
index 5128026..b5099b3 100755
--- a/src/main/resources/templates/index.html
+++ b/src/main/resources/templates/index.html
@@ -155,7 +155,7 @@
         index.bindEvent();  // 绑定事件
 
         var dictpool = DictPoolToolkit();
-        dictpool.initAll("/dictpool"); //加载字典
+        dictpool.initAll("[[@{/dictpool}]]"); //加载字典
     });
 </script>
 </body>
diff --git a/src/main/resources/templates/system/dtl/shopdtl.html b/src/main/resources/templates/system/dtl/shopdtl.html
index 94fc668..8cb48e7 100644
--- a/src/main/resources/templates/system/dtl/shopdtl.html
+++ b/src/main/resources/templates/system/dtl/shopdtl.html
@@ -139,7 +139,7 @@
 
         treeSelect.render({
             elem: '#shopdtl-search-shopaccno',
-            data: '/dtl/shoptreeselect',
+            data: '[[@{/dtl/shoptreeselect}]]',
             type: 'get',
             placeholder: '选择商户',
             search: false,
@@ -206,7 +206,7 @@
         // 渲染表格
         table.render({
             elem: '#shopdtlSearchTable',
-            url: '/dtl/shopdtllist',
+            url: '[[@{/dtl/shopdtllist}]]',
             page: true,
             cols: [
                 [
diff --git a/src/main/resources/templates/system/dtl/userdtl.html b/src/main/resources/templates/system/dtl/userdtl.html
index e7ebaff..943588e 100644
--- a/src/main/resources/templates/system/dtl/userdtl.html
+++ b/src/main/resources/templates/system/dtl/userdtl.html
@@ -171,7 +171,7 @@
         // 渲染表格
         table.render({
             elem: '#userdtlSearchTable',
-            url: '/dtl/userdtllist',
+            url: '[[@{/dtl/userdtllist}]]',
             page: true,
             cols: [
                 [
diff --git a/src/main/resources/templates/system/function/form.html b/src/main/resources/templates/system/function/form.html
index 94ef8cc..fa382a5 100755
--- a/src/main/resources/templates/system/function/form.html
+++ b/src/main/resources/templates/system/function/form.html
@@ -51,7 +51,7 @@
                 var msg = "";
                 $.ajax({
                     type: "GET",
-                    url: '/function/checkname',
+                    url: '[[@{/function/checkname}]]',
                     async: false,
                     data: {
                         name: e,
@@ -69,7 +69,7 @@
             }
         });
 
-        var url = '/function/add';
+        var url = '[[@{/function/add}]]';
         // 回显user数据
         var func = admin.getTempData('t_func');
         if (func) {
diff --git a/src/main/resources/templates/system/function/index.html b/src/main/resources/templates/system/function/index.html
index 4071d7d..650ec8b 100755
--- a/src/main/resources/templates/system/function/index.html
+++ b/src/main/resources/templates/system/function/index.html
@@ -29,7 +29,7 @@
         // 渲染表格
         table.render({
             elem: '#table',
-            url: '/function/list',
+            url: '[[@{/function/list}]]',
             page: true,
             cols: [
                 [
@@ -83,7 +83,7 @@
             admin.putTempData('t_func', data);
             admin.popupCenter({
                 title: title,
-                path: '/function/loadadd',
+                path: '[[@{/function/loadadd}]]',
                 finish: function () {
                     table.reload('table', {});
                 }
@@ -95,7 +95,7 @@
             admin.putTempData('t_func', data);
             admin.popupCenter({
                 title: title,
-                path: '/function/loadsubadd',
+                path: '[[@{/function/loadsubadd}]]',
                 finish: function () {
                     table.reload('table', {});
                 }
@@ -108,7 +108,7 @@
             admin.popupCenter({
                 title: title,
                 area:'70%',
-                path: '/function/loadres?functionid='+functionid
+                path: '[[@{/function/loadres}]]?functionid='+functionid
             });
         };
         let showAddResModelSub = function (functionid) {
@@ -116,7 +116,7 @@
             admin.putTempData('functionid', functionid);
             admin.popupCenter({
                 title: title,
-                path: '/function/loadresadd',
+                path: '[[@{/function/loadresadd}]]',
                 finish: function () {
                     table.reload('table', {});
                 }
@@ -146,7 +146,7 @@
                 layer.close(i);
                 layer.load(2);
                 let token = $("meta[name='_csrf_token']").attr("value");
-                admin.go('/function/delfunc', {
+                admin.go('[[@{/function/delfunc}]]', {
                     funcid: data.id,
                     _csrf:token
                 }, function (data) {
diff --git a/src/main/resources/templates/system/function/resform.html b/src/main/resources/templates/system/function/resform.html
index 78f7747..1d83363 100755
--- a/src/main/resources/templates/system/function/resform.html
+++ b/src/main/resources/templates/system/function/resform.html
@@ -42,7 +42,7 @@
         var form = layui.form;
         form.render('select');
         form.render('radio');
-        var url = '/function/addres';
+        var url = '[[@{/function/addres}]]';
         // 回显user数据
         var func = admin.getTempData('t_res');
         if (func) {
diff --git a/src/main/resources/templates/system/function/reslist.html b/src/main/resources/templates/system/function/reslist.html
index d95cbfe..e7241f6 100755
--- a/src/main/resources/templates/system/function/reslist.html
+++ b/src/main/resources/templates/system/function/reslist.html
@@ -13,7 +13,7 @@
         let func = admin.getTempData('functionid');
         table.render({
             elem: '#restable',
-            url: '/function/reslist?functionid=' + func,
+            url: '[[@{/function/reslist}]]?functionid=' + func,
             cols: [
                 [
                     {field: 'id', title: '资源ID', width: 80, fixed: 'left', sort: true},
@@ -50,7 +50,7 @@
             admin.putTempData('t_data',data);
             admin.popupCenter({
                 title: title,
-                path: '/function/loadresadd',
+                path: '[[@{/function/loadresadd}]]',
                 finish: function () {
                     table.reload('table', {});
                 }
@@ -61,7 +61,7 @@
                 layer.close(i);
                 layer.load(2);
                 let token = $("meta[name='_csrf_token']").attr("value");
-                admin.go('/function/delres', {
+                admin.go('[[@{/function/delres}]]', {
                     resid: data.id,
                     _csrf:token
                 }, function (data) {
diff --git a/src/main/resources/templates/system/function/subform.html b/src/main/resources/templates/system/function/subform.html
index 479452c..a687f33 100755
--- a/src/main/resources/templates/system/function/subform.html
+++ b/src/main/resources/templates/system/function/subform.html
@@ -54,7 +54,7 @@
         var form = layui.form;
         form.render('select');
         form.render('radio');
-        var url = '/function/add';
+        var url = '[[@{/function/add}]]';
         // 回显user数据
         var func = admin.getTempData('t_func');
         if (func) {
diff --git a/src/main/resources/templates/system/operator/index.html b/src/main/resources/templates/system/operator/index.html
index 09b5f2e..8608ac5 100644
--- a/src/main/resources/templates/system/operator/index.html
+++ b/src/main/resources/templates/system/operator/index.html
@@ -57,7 +57,7 @@
         // 渲染表格
         table.render({
             elem: '#oper-table',
-            url: '/operator/list',
+            url: '[[@{/operator/list}]]',
             page: true,
             cols: [
                 [
@@ -103,7 +103,7 @@
             admin.putTempData('t_user', data);
             admin.popupCenter({
                 title: title,
-                path: '/operator/load4add',
+                path: '[[@{/operator/load4add}]]',
                 finish: function () {
                     table.reload('oper-table', {});
                 }
@@ -119,7 +119,7 @@
             if (layEvent === 'edit') { // 修改
                 layer.load(2);
                 let token = $("meta[name='_csrf_token']").attr("value");
-                admin.go('/operator/getoperatorrole', {
+                admin.go('[[@{/operator/getoperatorrole}]]', {
                     operid: data.operid,
                     _csrf: token
                 }, function (ret) {
@@ -146,7 +146,7 @@
                     layer.close(i);
                     layer.load(2);
                     let token = $("meta[name='_csrf_token']").attr("value");
-                    admin.go('/operator/resetpwd', {
+                    admin.go('[[@{/operator/resetpwd}]]', {
                         operid: data.operid,
                         _csrf: token
                     }, function (ret) {
@@ -175,7 +175,7 @@
         form.on('switch(oper-tpl-state)', function (obj) {
             layer.load(2);
             let token = $("meta[name='_csrf_token']").attr("value");
-            admin.go('/operator/updatestate', {
+            admin.go('[[@{/operator/updatestate}]]', {
                 operid: obj.elem.value,
                 _csrf: token,
                 state: obj.elem.checked ? 'normal' : 'closed'
diff --git a/src/main/resources/templates/system/operator/logs.html b/src/main/resources/templates/system/operator/logs.html
index 125ce8d..207b4ea 100644
--- a/src/main/resources/templates/system/operator/logs.html
+++ b/src/main/resources/templates/system/operator/logs.html
@@ -25,7 +25,7 @@
         // 渲染表格
         table.render({
             elem: '#logtable',
-            url: '/operator/logslist',
+            url: '[[@{/operator/logslist}]]',
             page: true,
             cols: [
                 [
diff --git a/src/main/resources/templates/system/operator/operator.html b/src/main/resources/templates/system/operator/operator.html
index 74bc462..250bdeb 100644
--- a/src/main/resources/templates/system/operator/operator.html
+++ b/src/main/resources/templates/system/operator/operator.html
@@ -84,7 +84,7 @@
                 var msg = "";
                 $.ajax({
                     type: "GET",
-                    url: '/operator/checkopercode',
+                    url: '[[@{/operator/checkopercode}]]',
                     async: false, //同步提交。不设置则默认异步，异步的话，最后执行ajax
                     data: {
                         opercode: e,
@@ -105,7 +105,7 @@
             }
         });
 
-        var url = '/operator/add';
+        var url = '[[@{/operator/add}]]';
         // 回显user数据
         var user = admin.getTempData('t_user');
         if (user) {
diff --git a/src/main/resources/templates/system/operator/setpwd.html b/src/main/resources/templates/system/operator/setpwd.html
index d549946..2e9085e 100644
--- a/src/main/resources/templates/system/operator/setpwd.html
+++ b/src/main/resources/templates/system/operator/setpwd.html
@@ -42,7 +42,7 @@
             admin.closeThisTabs()
         });
         form.render('select');
-        let url = '/operator/dosetpwd';
+        let url = '[[@{/operator/dosetpwd}]]';
         // 表单提交事件
         form.on('submit(setmypass)', function (data) {
             layer.load(2);
diff --git a/src/main/resources/templates/system/operator/userinfor.html b/src/main/resources/templates/system/operator/userinfor.html
index 8ca3c10..7dd159a 100644
--- a/src/main/resources/templates/system/operator/userinfor.html
+++ b/src/main/resources/templates/system/operator/userinfor.html
@@ -56,7 +56,7 @@
             admin.closeThisTabs()
         });
         form.render('select');
-        let url = '/operator/updateinfor';
+        let url = '[[@{/operator/updateinfor}]]';
         // 表单提交事件
         form.on('submit(infor-form-submit)', function (data) {
             layer.load(2);
diff --git a/src/main/resources/templates/system/param/apiclientform.html b/src/main/resources/templates/system/param/apiclientform.html
index e243672..6f9ed72 100644
--- a/src/main/resources/templates/system/param/apiclientform.html
+++ b/src/main/resources/templates/system/param/apiclientform.html
@@ -29,12 +29,12 @@
         var form = layui.form;
         var formSelects = layui.formSelects;
 
-        var url = '/param/addapiclientpara';
+        var url = '[[@{/param/addapiclientpara}]]';
         // 回显user数据
         var apiparam = admin.getTempData('t_appclient');
         debugger
         if (undefined != apiparam && null != apiparam) {
-            url = '/param/updateapiclientpara';
+            url = '[[@{/param/updateapiclientpara}]]';
             $('input[name="appid"]').attr('readonly', 'readonly');
             $('input[name="appid"]').val(apiparam.appid);
             var rds = apiparam.roles.split(";");
diff --git a/src/main/resources/templates/system/param/apiclientpara.html b/src/main/resources/templates/system/param/apiclientpara.html
index 4cc2ade..a6965b2 100644
--- a/src/main/resources/templates/system/param/apiclientpara.html
+++ b/src/main/resources/templates/system/param/apiclientpara.html
@@ -40,7 +40,7 @@
         // 渲染表格
         table.render({
             elem: '#apiClientTable',
-            url: '/param/apiclientparalist',
+            url: '[[@{/param/apiclientparalist}]]',
             toolbar:'',
             page: true,
             cols: [
@@ -72,7 +72,7 @@
             admin.putTempData('t_appclient', data);
             admin.popupCenter({
                 title: title,
-                path: '/param/load4addapiclient',
+                path: '[[@{/param/load4addapiclient}]]',
                 finish: function () {
                     table.reload('apiClientTable');
                 }
@@ -82,7 +82,7 @@
         // 修改user状态
         form.on('switch(api-tpl-state)', function (obj) {
             var token = $("meta[name='_csrf_token']").attr("value");
-            admin.go('/param/updateapiclientstate', {
+            admin.go('[[@{/param/updateapiclientstate}]]', {
                 appid: obj.elem.value,
                 state: obj.elem.checked ? 'normal' : 'closed',
                 _csrf: token
@@ -112,7 +112,7 @@
             if('del' == obj.event){
                 if(confirm("确定要删除应用参数["+data.appid+"]吗？")){
                     layer.load(2);
-                    admin.go('/param/deleteapiclient', {
+                    admin.go('[[@{/param/deleteapiclient}]]', {
                         appid: data.appid,
                         _csrf: $("meta[name='_csrf_token']").attr("value")
                     }, function (data) {
@@ -143,7 +143,7 @@
         table.on('edit(apiClientTable-filter)', function (obj) {
             var row = obj.data; //得到所在行所有键值
             var newval = obj.value; //得到修改后的值
-            admin.go('/param/updateapiclientpara', {
+            admin.go('[[@{/param/updateapiclientpara}]]', {
                 appid: row.appid,
                 secret: newval,
                 _csrf: $("meta[name='_csrf_token']").attr("value"),
diff --git a/src/main/resources/templates/system/param/businesspara.html b/src/main/resources/templates/system/param/businesspara.html
index 0caaab0..4fa6a23 100644
--- a/src/main/resources/templates/system/param/businesspara.html
+++ b/src/main/resources/templates/system/param/businesspara.html
@@ -33,7 +33,7 @@
         // 渲染表格
         table.render({
             elem: '#businessparaTable',
-            url: '/param/businessparalist',
+            url: '[[@{/param/businessparalist}]]',
             page: true,
             cols: [
                 [
@@ -53,7 +53,7 @@
             admin.popupCenter({
                 title: "新增业务参数",
                 area:["600px","300px"],
-                path: '/param/load4addbuspara',
+                path: '[[@{/param/load4addbuspara}]]',
                 finish: function () {
                     table.reload('businessparaTable');
                 }
@@ -70,7 +70,7 @@
             if('del' == obj.event){
                 if(confirm("确定要删除业务参数["+data.parakey+"]吗？")){
                     layer.load(2);
-                    admin.go('/param/deletebusinesspara', {
+                    admin.go('[[@{/param/deletebusinesspara}]]', {
                         parakey: data.parakey,
                         _csrf: $("meta[name='_csrf_token']").attr("value")
                     }, function (data) {
@@ -102,7 +102,7 @@
                     value: data.paraval
                 }, function(value, index){
                     layer.close(index);
-                    admin.go('/param/businessparaupdate', {
+                    admin.go('[[@{/param/businessparaupdate}]]', {
                         parakey: data.parakey,
                         paraval: value,
                         _csrf: $("meta[name='_csrf_token']").attr("value"),
diff --git a/src/main/resources/templates/system/param/busparaform.html b/src/main/resources/templates/system/param/busparaform.html
index 2c4aebf..b9d48c2 100644
--- a/src/main/resources/templates/system/param/busparaform.html
+++ b/src/main/resources/templates/system/param/busparaform.html
@@ -31,7 +31,7 @@
                 var msg = "";
                 $.ajax({
                     type: "GET",
-                    url: '/param/checkbusname',
+                    url: '[[@{/param/checkbusname}]]',
                     async: false,
                     data: {
                         parakey: e
@@ -51,7 +51,7 @@
             }
         });
 
-        var url = '/param/addbusinesspara';
+        var url = '[[@{/param/addbusinesspara}]]';
         // 表单提交事件
         form.on('submit(form-submit)', function (data) {
             layer.load(2);
diff --git a/src/main/resources/templates/system/param/paytype.html b/src/main/resources/templates/system/param/paytype.html
index 06fc5f2..32ceb04 100644
--- a/src/main/resources/templates/system/param/paytype.html
+++ b/src/main/resources/templates/system/param/paytype.html
@@ -65,7 +65,7 @@
         // 渲染表格
         table.render({
             elem: '#paytypeTable',
-            url: '/param/paytypelist',
+            url: '[[@{/param/paytypelist}]]',
             page: true,
             cols: [
                 [
@@ -113,7 +113,7 @@
         $('#btn-add-param').click(function () {
             admin.popupCenter({
                 title: "新增支付能力",
-                path: '/param/load4addpaytype',
+                path: '[[@{/param/load4addpaytype}]]',
                 finish: function () {
                     table.reload('paytypeTable');
                 }
@@ -127,7 +127,7 @@
         // 修改总状态
         form.on('switch(enable-tpl-state)', function (obj) {
             var token = $("meta[name='_csrf_token']").attr("value");
-            admin.go('/param/updatepaytypestate', {
+            admin.go('[[@{/param/updatepaytypestate}]]', {
                 paytype: obj.elem.value,
                 state: obj.elem.checked,
                 _csrf: token
@@ -169,7 +169,7 @@
 
 
         function updatePaytypeState(obj, optype, token) {
-            admin.go('/param/updatepaytypestate', {
+            admin.go('[[@{/param/updatepaytypestate}]]', {
                 paytype: obj.elem.value,
                 state: obj.elem.checked,
                 optype: optype,
@@ -197,7 +197,7 @@
         table.on('edit(paytypeTable-filter)', function (obj) {
             var row = obj.data; //得到所在行所有键值
             var newval = obj.value; //得到修改后的值
-            admin.go('/param/updatepaytypename', {
+            admin.go('[[@{/param/updatepaytypename}]]', {
                 paytype: row.sourceType,
                 paydesc: newval,
                 _csrf: $("meta[name='_csrf_token']").attr("value"),
@@ -225,7 +225,7 @@
             if('del' == obj.event){
                 if (confirm("确定要删除支付方式[" + data.sourceType + "_" + data.paydesc + "]吗？")) {
                     layer.load(2);
-                    admin.go('/param/deletepaytype', {
+                    admin.go('[[@{/param/deletepaytype}]]', {
                         paytype: data.sourceType,
                         _csrf: $("meta[name='_csrf_token']").attr("value")
                     }, function (data) {
@@ -251,7 +251,7 @@
             }else if('config' ==obj.event){
                 admin.popupCenter({
                     title: "配置参数【" + data.sourceType + "_" + data.paydesc + "】",
-                    path: '/param/load4paytypeconfig?paytype='+data.sourceType,
+                    path: '[[@{/param/load4paytypeconfig}]]?paytype='+data.sourceType,
                     area: '800px',
                     finish: function () {
                         table.reload('paytypeTable');
diff --git a/src/main/resources/templates/system/param/paytypeconfig.html b/src/main/resources/templates/system/param/paytypeconfig.html
index cc7b38e..47df096 100644
--- a/src/main/resources/templates/system/param/paytypeconfig.html
+++ b/src/main/resources/templates/system/param/paytypeconfig.html
@@ -44,7 +44,7 @@
             $.ajax({
                 type : "POST",
                 dataType : "json",
-                url : '/param/addpaytypeconfig',
+                url : '[[@{/param/addpaytypeconfig}]]',
                 headers: {
                     'Accept': 'application/json',
                     'Content-Type': 'application/json',
diff --git a/src/main/resources/templates/system/param/paytypeform.html b/src/main/resources/templates/system/param/paytypeform.html
index e47d48d..4e65d26 100644
--- a/src/main/resources/templates/system/param/paytypeform.html
+++ b/src/main/resources/templates/system/param/paytypeform.html
@@ -59,7 +59,7 @@
                 var msg = "";
                 $.ajax({
                     type: "GET",
-                    url: '/param/checkpaytype',
+                    url: '[[@{/param/checkpaytype}]]',
                     async: false,
                     data: {
                         paytype: e
@@ -87,7 +87,7 @@
             $.ajax({
                 type : "POST",
                 dataType : "json",
-                url : '/param/addpaytype',
+                url : '[[@{/param/addpaytype}]]',
                 data : vdata,
                 success : function(result) {
                     layer.closeAll('loading');
diff --git a/src/main/resources/templates/system/param/syspara.html b/src/main/resources/templates/system/param/syspara.html
index 56f7755..98a622d 100644
--- a/src/main/resources/templates/system/param/syspara.html
+++ b/src/main/resources/templates/system/param/syspara.html
@@ -26,7 +26,7 @@
         // 渲染表格
         table.render({
             elem: '#sysparaTable',
-            url: '/param/sysparalist',
+            url: '[[@{/param/sysparalist}]]',
             page: true,
             cols: [
                 [
@@ -70,7 +70,7 @@
         table.on('edit(sysparaTable-filter)', function (obj) {
             var row = obj.data; //得到所在行所有键值
             var newval = obj.value; //得到修改后的值
-            admin.go('/param/sysparaupdate', {
+            admin.go('[[@{/param/sysparaupdate}]]', {
                 paraid: row.paraid,
                 paraval: newval,
                 _csrf: $("meta[name='_csrf_token']").attr("value"),
diff --git a/src/main/resources/templates/system/report/shopbusiness.html b/src/main/resources/templates/system/report/shopbusiness.html
index 47ac319..c1c042e 100644
--- a/src/main/resources/templates/system/report/shopbusiness.html
+++ b/src/main/resources/templates/system/report/shopbusiness.html
@@ -80,7 +80,7 @@
 
         treeSelect.render({
             elem: '#shopbusiness-search-shopid',
-            data: '/report/selectshoptree',
+            data: '[[@{/report/selectshoptree}]]',
             type: 'get',
             placeholder: '选择商户',
             search: false,
@@ -118,7 +118,7 @@
                 treeDefaultClose: false,
                 treeLinkage: false,
                 elem: '#shopbusinessTable',
-                url: '/report/shopbusinesslist',
+                url: '[[@{/report/shopbusinesslist}]]',
                 page: false,
                 where: obj,
                 showicon: false,
diff --git a/src/main/resources/templates/system/report/subjectday.html b/src/main/resources/templates/system/report/subjectday.html
index f376baf..41cdf17 100644
--- a/src/main/resources/templates/system/report/subjectday.html
+++ b/src/main/resources/templates/system/report/subjectday.html
@@ -83,7 +83,7 @@
                 treeDefaultClose: false,
                 treeLinkage: false,
                 elem: '#subjectDayTable',
-                url: '/report/subjectdaylist',
+                url: '[[@{/report/subjectdaylist}]]',
                 page: false,
                 where: obj,
                 showicon: false,
diff --git a/src/main/resources/templates/system/report/subjectdetail.html b/src/main/resources/templates/system/report/subjectdetail.html
index 7b3bb58..7776301 100644
--- a/src/main/resources/templates/system/report/subjectdetail.html
+++ b/src/main/resources/templates/system/report/subjectdetail.html
@@ -71,7 +71,7 @@
 
         treeSelect.render({
             elem: '#subjectdetail-search-subjno',
-            data: '/report/subjectselecttree',
+            data: '[[@{/report/subjectselecttree}]]',
             type: 'get',
             placeholder: '选择科目',
             search: false,
@@ -106,7 +106,7 @@
                 id: 'SubjectDetailReport',
                 title: '科目明细账',
                 elem: '#subjectDetailTable',
-                url: '/report/subjectdetaillist',
+                url: '[[@{/report/subjectdetaillist}]]',
                 page: true,
                 where: obj,
                 toolbar: '#subjectdetail-toolbar',
diff --git a/src/main/resources/templates/system/role/form.html b/src/main/resources/templates/system/role/form.html
index fcfcbf3..2595cd6 100755
--- a/src/main/resources/templates/system/role/form.html
+++ b/src/main/resources/templates/system/role/form.html
@@ -26,7 +26,7 @@
         var layer = layui.layer;
         var admin = layui.admin;
         var form = layui.form;
-        var url = '/role/add';
+        var url = '[[@{/role/add}]]';
         // 回显user数据
         var func = admin.getTempData('t_func');
         if (func) {
diff --git a/src/main/resources/templates/system/role/func.html b/src/main/resources/templates/system/role/func.html
index 61cc1b1..48d6dff 100755
--- a/src/main/resources/templates/system/role/func.html
+++ b/src/main/resources/templates/system/role/func.html
@@ -31,7 +31,7 @@
             };
             $.fn.zTree.init($("#funclist"), menuSetting, nodes);
         }
-        admin.dgo('/role/func', {
+        admin.dgo('[[@{/role/func}]]', {
             roleId: func,
         }, function (data) {
             layer.closeAll('loading');
@@ -61,7 +61,7 @@
             }
             let idStr = ids.toString();
             let token = $("meta[name='_csrf_token']").attr("value");
-            admin.go('/role/addfunc', {
+            admin.go('[[@{/role/addfunc}]]', {
                 roleId: func,
                 funcs: idStr,
                 _csrf: token,
diff --git a/src/main/resources/templates/system/role/index.html b/src/main/resources/templates/system/role/index.html
index 029e3ef..ac290f7 100644
--- a/src/main/resources/templates/system/role/index.html
+++ b/src/main/resources/templates/system/role/index.html
@@ -27,7 +27,7 @@
         // 渲染表格
         table.render({
             elem: '#roletable',
-            url: '/role/list',
+            url: '[[@{/role/list}]]',
             page: true,
             cols: [
                 [
@@ -60,7 +60,7 @@
             admin.putTempData('t_func', data);
             admin.popupCenter({
                 title: title,
-                path: '/role/loadadd',
+                path: '[[@{/role/loadadd}]]',
                 finish: function () {
                     table.reload('roletable', {});
                 }
@@ -72,7 +72,7 @@
             admin.popupCenter({
                 title: title,
                 area:['400px','600px'],
-                path: '/role/loadfunc'
+                path: '[[@{/role/loadfunc}]]'
             });
         };
         // 工具条点击事件
@@ -93,7 +93,7 @@
                 layer.close(i);
                 layer.load(2);
                 let token = $("meta[name='_csrf_token']").attr("value");
-                admin.go('/role/del', {
+                admin.go('[[@{/role/del}]]', {
                     roleid: data.roleId,
                     _csrf: token
                 }, function (data) {
diff --git a/src/main/resources/templates/system/shop/config.html b/src/main/resources/templates/system/shop/config.html
index 9bc1ccc..0ef4224 100644
--- a/src/main/resources/templates/system/shop/config.html
+++ b/src/main/resources/templates/system/shop/config.html
@@ -92,7 +92,7 @@
             };
             $.fn.zTree.init($("#shopacctree"), menuSetting, nodes);
         }
-        admin.dgo('/shop/shopacctree', {}, function (data) {
+        admin.dgo('[[@{/shop/shopacctree}]]', {}, function (data) {
             if (data.code == 200) {
                 initTree(data.data);
             } else if (data.code == 401) {
@@ -129,7 +129,7 @@
         // 渲染表格
         table.render({
             elem: '#shopPaytypeTable',
-            url: '/shop/shoppaytypelist',
+            url: '[[@{/shop/shoppaytypelist}]]',
             page: true,
             width: 1010,
             cols: [
@@ -175,7 +175,7 @@
         // 修改总状态
         form.on('switch(shop-consumeenable-tpl-state)', function (obj) {
             var token = $("meta[name='_csrf_token']").attr("value");
-            admin.go('/shop/updatepaytypestat', {
+            admin.go('[[@{/shop/updatepaytypestat}]]', {
                 shopaccno: obj.elem.value,
                 paytype: $(obj.elem).attr("def-sourceType"),
                 optype: "consume",
@@ -213,7 +213,7 @@
         });
 
         function updateShopPaytypeState(obj, optype, token) {
-            admin.go('/shop/updatepaytypestat', {
+            admin.go('[[@{/shop/updatepaytypestat}]]', {
                 shopaccno: obj.elem.value,
                 paytype: $(obj.elem).attr("def-sourceType"),
                 state: obj.elem.checked ? 'yes' : 'no',
@@ -257,7 +257,7 @@
             });
             admin.popupCenter({
                 title: "新增支付能力",
-                path: '/shop/load4addpaytype',
+                path: '[[@{/shop/load4addpaytype}]]',
                 finish: function () {
                     table.reload('shopPaytypeTable', {
                         where: {paytype: "", shopaccno: shopNode.shopaccno},
@@ -273,7 +273,7 @@
             if ('config' == obj.event) {
                 admin.popupCenter({
                     title: "配置参数【" + data.shopname + "_" + data.paydesc + "】",
-                    path: '/shop/load4paytypepara?shopaccno=' + data.shopaccno + '&paytype=' + data.paytype,
+                    path: '[[@{/shop/load4paytypepara}]]?shopaccno=' + data.shopaccno + '&paytype=' + data.paytype,
                     area: '800px',
                     finish: function () {
                         table.reload('shopPaytypeTable');
diff --git a/src/main/resources/templates/system/shop/configform.html b/src/main/resources/templates/system/shop/configform.html
index 9d0bb94..b67a791 100644
--- a/src/main/resources/templates/system/shop/configform.html
+++ b/src/main/resources/templates/system/shop/configform.html
@@ -73,7 +73,7 @@
             $.ajax({
                 type : "POST",
                 dataType : "json",
-                url : '/shop/addshoppaytype',
+                url : '[[@{/shop/addshoppaytype}]]',
                 data : vdata,
                 success : function(result) {
                     layer.closeAll('loading');
diff --git a/src/main/resources/templates/system/shop/configpara.html b/src/main/resources/templates/system/shop/configpara.html
index a4ff319..a657d7c 100644
--- a/src/main/resources/templates/system/shop/configpara.html
+++ b/src/main/resources/templates/system/shop/configpara.html
@@ -46,7 +46,7 @@
             $.ajax({
                 type : "POST",
                 dataType : "json",
-                url : '/shop/addpaytypepara',
+                url : '[[@{/shop/addpaytypepara}]]',
                 headers: {
                     'Accept': 'application/json',
                     'Content-Type': 'application/json',
diff --git a/src/main/resources/templates/system/shop/index.html b/src/main/resources/templates/system/shop/index.html
index 8407b4c..f5e1b7b 100644
--- a/src/main/resources/templates/system/shop/index.html
+++ b/src/main/resources/templates/system/shop/index.html
@@ -213,7 +213,7 @@
                 $.ajax({
                     type: "POST",
                     dataType: "json",
-                    url: '/shop/deleteshop',
+                    url: '[[@{/shop/deleteshop}]]',
                     async: false,  //必须同步
                     data: {
                         shopid: treeNode.id,
@@ -259,7 +259,7 @@
             $.ajax({
                 type: "POST",
                 dataType: "json",
-                url: '/shop/saveorupdate',
+                url: '[[@{/shop/saveorupdate}]]',
                 data: vdata,
                 success: function (result) {
                     layer.closeAll('loading');
@@ -341,7 +341,7 @@
         }
 
         function ondblclick(event, treeId, treeNode) {
-            admin.dgo('/shop/getshopinfo', {
+            admin.dgo('[[@{/shop/getshopinfo}]]', {
                 "shopid": treeNode.id
             }, function (data) {
                 console.log("getshopinfo返回",data);
@@ -366,7 +366,7 @@
             });
         }
 
-        admin.dgo('/shop/shoptree', {}, function (data) {
+        admin.dgo('[[@{/shop/shoptree}]]', {}, function (data) {
             if (data.code == 200) {
                 initTree(data.data);
             } else if (data.code == 401) {
diff --git a/src/main/resources/templates/system/user/account.html b/src/main/resources/templates/system/user/account.html
index db0e644..eed369f 100644
--- a/src/main/resources/templates/system/user/account.html
+++ b/src/main/resources/templates/system/user/account.html
@@ -25,7 +25,7 @@
         // 渲染表格
         table.render({
             elem: '#accounttable',
-            url: '/user/account',
+            url: '[[@{/user/account}]]',
             page: true,
             cols: [
                 [
@@ -87,7 +87,7 @@
                 layer.close(i);
                 layer.load(2);
                 let token = $("meta[name='_csrf_token']").attr("value");
-                admin.go('/user/delacc', {
+                admin.go('[[@{/user/delacc}]]', {
                     accno: data.accno,
                     _csrf: token
                 }, function (data) {
diff --git a/src/main/resources/templates/system/user/add.html b/src/main/resources/templates/system/user/add.html
index d2893e6..e137c48 100755
--- a/src/main/resources/templates/system/user/add.html
+++ b/src/main/resources/templates/system/user/add.html
@@ -62,7 +62,7 @@
         var layer = layui.layer;
         var admin = layui.admin;
         var form = layui.form;
-        var url = '/user/add';
+        var url = '[[@{/user/add}]]';
         form.render('radio');
         form.render('select');
         // 回显user数据
diff --git a/src/main/resources/templates/system/user/bind.html b/src/main/resources/templates/system/user/bind.html
index dd5561e..96bca04 100755
--- a/src/main/resources/templates/system/user/bind.html
+++ b/src/main/resources/templates/system/user/bind.html
@@ -12,7 +12,7 @@
         let userid = admin.getTempData('userid');
         table.render({
             elem: '#userbindtable',
-            url: '/user/bind?userid=' + userid,
+            url: '[[@{/user/bind}]]?userid=' + userid,
             cols: [
                 [
                     {field: 'id', title: '资源ID', width: 80, fixed: 'left', sort: true},
@@ -47,7 +47,7 @@
                 layer.close(i);
                 layer.load(2);
                 let token = $("meta[name='_csrf_token']").attr("value");
-                admin.go('/user/delbind', {
+                admin.go('[[@{/user/delbind}]]', {
                     resid: data.id,
                     _csrf:token
                 }, function (data) {
diff --git a/src/main/resources/templates/system/user/index.html b/src/main/resources/templates/system/user/index.html
index 3a9d6fa..122bbbb 100644
--- a/src/main/resources/templates/system/user/index.html
+++ b/src/main/resources/templates/system/user/index.html
@@ -26,7 +26,7 @@
         // 渲染表格
         table.render({
             elem: '#usertable',
-            url: '/user/list',
+            url: '[[@{/user/list}]]',
             page: true,
             cols: [
                 [
@@ -99,7 +99,7 @@
             admin.putTempData('t_bean', data);
             admin.popupCenter({
                 title: title,
-                path: '/user/loadadd',
+                path: '[[@{/user/loadadd}]]',
                 finish: function () {
                     table.reload('usertable', {});
                 }
@@ -122,7 +122,7 @@
                 layer.close(i);
                 layer.load(2);
                 let token = $("meta[name='_csrf_token']").attr("value");
-                admin.go('/user/del', {
+                admin.go('[[@{/user/del}]]', {
                     userid: data.userid,
                     _csrf: token
                 }, function (data) {
diff --git a/src/main/resources/templates/system/user/point.html b/src/main/resources/templates/system/user/point.html
index 036815c..618145b 100644
--- a/src/main/resources/templates/system/user/point.html
+++ b/src/main/resources/templates/system/user/point.html
@@ -25,7 +25,7 @@
         // 渲染表格
         table.render({
             elem: '#pointtable',
-            url: '/user/pointlist',
+            url: '[[@{/user/pointlist}]]',
             page: true,
             cols: [
                 [
@@ -64,7 +64,7 @@
                 layer.close(i);
                 layer.load(2);
                 let token = $("meta[name='_csrf_token']").attr("value");
-                admin.go('/user/delpoint', {
+                admin.go('[[@{/user/delpoint}]]', {
                     userid: data.userid,
                     _csrf: token
                 }, function (data) {
diff --git a/src/main/resources/templates/system/user/pointdtl.html b/src/main/resources/templates/system/user/pointdtl.html
index 522063b..e5f6378 100644
--- a/src/main/resources/templates/system/user/pointdtl.html
+++ b/src/main/resources/templates/system/user/pointdtl.html
@@ -26,7 +26,7 @@
         // 渲染表格
         table.render({
             elem: '#pointtable',
-            url: '/user/pointlist',
+            url: '[[@{/user/pointlist}]]',
             page: true,
             cols: [
                 [
@@ -40,7 +40,7 @@
                     {
                         field: 'userid', align: 'center', title: '操作', fixed: 'right', templet: function (item) {
                             let html ='<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>';
-                            html +=  '<a class="layui-btn  layui-btn-xs" th:lay-href="/user/pointdtl?userid="'+item.userid+'><i class="layui-icon layui-icon-link"></i>交易记录</a> ';
+                            html +=  '<a class="layui-btn  layui-btn-xs" th:lay-href="[[@{/user/pointdtl}]]?userid="'+item.userid+'><i class="layui-icon layui-icon-link"></i>交易记录</a> ';
                             return html;
                         }
                     }
@@ -65,7 +65,7 @@
                 layer.close(i);
                 layer.load(2);
                 let token = $("meta[name='_csrf_token']").attr("value");
-                admin.go('/user/delpoint', {
+                admin.go('[[@{/user/delpoint}]]', {
                     userid: data.userid,
                     _csrf: token
                 }, function (data) {
