一些测试bug修改
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/RoleFunctionDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/RoleFunctionDao.java
index d1f2d37..e125f7a 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/RoleFunctionDao.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/dao/RoleFunctionDao.java
@@ -18,11 +18,12 @@
 
     List<TRoleFunction> findByRoleId(String roleId);
 
-    @Query(value = " select f.id||'' as id ,f.parentid||'' as pid,f.name,case when rf.id is null then 0 else 1 end as checked,case when f.parentid=-1 then 1 else 0 end as open from tb_function f " +
+    @Query(value = "select tt.id,tt.pid,tt.name,tt.checked,tt.open from  " +
+            " ( select f.id||'' as id ,f.parentid||'' as pid,f.name,case when rf.id is null then 0 else 1 end as checked,case when f.parentid=-1 then 1 else 0 end as open from tb_function f " +
             " left join tb_role_function rf on rf.functionid = f.id and rf.roleid=?1  " +
             " union all " +
             " select r.id||'_res' as id,r.function_id||'' as pid,r.name,case when p.id is null then 0 else 1 end as checked,0 as open from tb_resource  r " +
-            " left join tb_permission p on p.resid = r.id and p.roleid=?1 " , nativeQuery = true)
+            " left join tb_permission p on p.resid = r.id and p.roleid=?1 ) tt order by tt.id " , nativeQuery = true)
     List<NodeData> findByRoleIdNative(String roleId);
 
     void deleteByRoleId(String roleId);
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java
index 9d250ac..22fadc9 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java
@@ -61,6 +61,10 @@
   @NotNull
   private String tenantId;
 
+  @Column(name = "thirdadmin", length = 20)
+  @NotNull
+  private String thirdadmin;
+
   @Transient
   private Collection<? extends GrantedAuthority> authorities;  //权限
 
@@ -228,4 +232,12 @@
   public void setTenantId(String tenantId) {
     this.tenantId = tenantId;
   }
+
+  public String getThirdadmin() {
+    return thirdadmin;
+  }
+
+  public void setThirdadmin(String thirdadmin) {
+    this.thirdadmin = thirdadmin;
+  }
 }
diff --git a/src/main/java/com/supwisdom/dlpay/framework/tenant/HibernateConfig.java b/src/main/java/com/supwisdom/dlpay/framework/tenant/HibernateConfig.java
index 5070d62..5c28d84 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/tenant/HibernateConfig.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/tenant/HibernateConfig.java
@@ -1,23 +1,10 @@
 package com.supwisdom.dlpay.framework.tenant;
 
-import lombok.extern.slf4j.Slf4j;
-import org.hibernate.MultiTenancyStrategy;
-import org.hibernate.cfg.Environment;
-import org.hibernate.context.spi.CurrentTenantIdentifierResolver;
-import org.hibernate.engine.jdbc.connections.spi.MultiTenantConnectionProvider;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.orm.jpa.HibernateProperties;
-import org.springframework.boot.autoconfigure.orm.jpa.HibernateSettings;
-import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.orm.jpa.JpaVendorAdapter;
-import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
-import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
-
-import javax.sql.DataSource;
 import java.util.HashMap;
 import java.util.Map;
+import javax.sql.DataSource;
+import org.springframework.beans.factory.annotation.Autowired;
+
 
 @Configuration
 @Slf4j
@@ -57,6 +44,7 @@
     em.setPackagesToScan("com.supwisdom");
     em.setJpaPropertyMap(properties);
     em.setJpaVendorAdapter(getJpaVendorAdapter());
+    log.info("setup multi-tenant entityManagerFactor");
     return em;
   }
 
diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java b/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java
index dc0ef57..3769118 100644
--- a/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java
+++ b/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java
@@ -5,6 +5,7 @@
 import com.supwisdom.dlpay.framework.security.OperUtil;
 import com.supwisdom.dlpay.framework.util.PageResult;
 import com.supwisdom.dlpay.framework.util.StringUtil;
+import com.supwisdom.dlpay.framework.util.TradeDict;
 import com.supwisdom.dlpay.framework.util.WebConstant;
 import com.supwisdom.dlpay.system.bean.FunctionSearchBean;
 import com.supwisdom.dlpay.system.bean.LogBean;
@@ -95,7 +96,8 @@
     public JsonResult add(@RequestParam("operid") String operid, @RequestParam("opercode") String opercode,
                           @RequestParam("opername") String opername, @RequestParam("sex") String sex,
                           @RequestParam("mobile") String mobile, @RequestParam("email") String email,
-                          @RequestParam("roleId") String roleId, Model map) {
+                          @RequestParam("roleId") String roleId, @RequestParam(value = "thirdadmin", required = false) String thirdadmin,
+                          Model map) {
         if (operatorService.checkOpercodeExists(opercode, operid)) {
             return JsonResult.error("账号重复");
         }
@@ -106,6 +108,7 @@
         operator.setMobile(mobile);
         operator.setEmail(email);
         operator.setSex(sex);
+        operator.setThirdadmin("yes".equalsIgnoreCase(thirdadmin) ? "yes" : "no");
         boolean ret = operatorService.saveOperator(operator, roleId);
         if (ret) {
             return JsonResult.ok("操作成功");
diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java b/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java
index 7a16f3b..cdc4a4a 100644
--- a/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java
+++ b/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java
@@ -230,11 +230,11 @@
   @PreAuthorize("hasPermission('/param/load4addapiclient','')")
   public String load4AddApiclientPara(Model model) {
     Map<String, String> roles = new HashMap<>(0);
-    roles.put("ROLE_THIRD_COMMON", "ROLE_THIRD_COMMON");
-    roles.put("ROLE_THIRD_CONSUME", "ROLE_THIRD_CONSUME");
-    roles.put("ROLE_THIRD_DEPOSIT", "ROLE_THIRD_DEPOSIT");
-    roles.put("ROLE_THIRD_SHOP", "ROLE_THIRD_SHOP");
-    roles.put("ROLE_THIRD_ADMIN", "ROLE_THIRD_ADMIN");
+    roles.put("ROLE_THIRD_COMMON", "调用通用接口权限");
+    roles.put("ROLE_THIRD_CONSUME", "调用消费接口权限");
+    roles.put("ROLE_THIRD_DEPOSIT", "调用充值接口权限");
+    roles.put("ROLE_THIRD_SHOP", "调用商户接口权限");
+    roles.put("ROLE_THIRD_ADMIN", "调用用户接口权限");
     model.addAttribute("rolelist", roles);
     return "system/param/apiclientform";
   }
@@ -389,7 +389,7 @@
                                        @RequestParam("state") Boolean state,
                                        @RequestParam(value = "optype", required = false) String optype) {
     if (StringUtil.isEmpty(paytype)
-        || (!StringUtil.isEmpty(optype) && !"charge".equals(optype) && !"consume".equals(optype) && !"anonymous".equals(optype))) {
+        || (!StringUtil.isEmpty(optype) && !"charge".equals(optype) && !"consume".equals(optype) && !"anonymous".equals(optype) && !"reversable".equals(optype) && !"checkable".equals(optype))) {
       return JsonResult.error("参数传递错误");
     }
     try {
@@ -412,7 +412,17 @@
           return JsonResult.error("状态错误,请重新查询后操作");
         }
         tPaytype.setAnonymousEnable(state);
-      } else {
+      } else if("reversable".equals(optype)){
+        if(state.equals(tPaytype.getReversable())){
+          return JsonResult.error("状态错误,请重新查询后操作");
+        }
+        tPaytype.setReversable(state);
+      }else if("checkable".equals(optype)){
+        if(state.equals(tPaytype.getCheckable())){
+          return JsonResult.error("状态错误,请重新查询后操作");
+        }
+        tPaytype.setCheckable(state);
+      }else{
         if (state.equals(tPaytype.getEnable())) {
           return JsonResult.error("状态错误,请重新查询后操作");
         }
@@ -483,6 +493,8 @@
                                @RequestParam(value = "chargeEnable", required = false, defaultValue = "no") String chargeEnable,
                                @RequestParam(value = "consumeEnable", required = false, defaultValue = "no") String consumeEnable,
                                @RequestParam(value = "anonymousEnable", required = false, defaultValue = "no") String anonymousEnable,
+                               @RequestParam(value = "reversable", required = false, defaultValue = "no") String reversable,
+                               @RequestParam(value = "checkable", required = false, defaultValue = "no") String checkable,
                                @RequestParam("paydesc") String paydesc) {
     try {
       TSourceType tPaytype = paramService.getSourceType(paytype);
@@ -497,6 +509,8 @@
       tPaytype.setChargeEnable(ConstantUtil.ENABLE_YES.equalsIgnoreCase(chargeEnable));
       tPaytype.setConsumeEnable(ConstantUtil.ENABLE_YES.equalsIgnoreCase(consumeEnable));
       tPaytype.setAnonymousEnable(ConstantUtil.ENABLE_YES.equalsIgnoreCase(anonymousEnable));
+      tPaytype.setReversable(ConstantUtil.ENABLE_YES.equalsIgnoreCase(reversable));
+      tPaytype.setCheckable(ConstantUtil.ENABLE_YES.equalsIgnoreCase(checkable));
       if (paramService.saveOrUpdateSourceType(tPaytype)) {
         return JsonResult.ok("新增成功");
       } else {
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java
index 0842e66..8a5a1c1 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/OperatorServiceImpl.java
@@ -101,7 +101,7 @@
       op.setMobile(operator.getMobile());
       op.setOpername(operator.getOpername());
       op.setOpercode(operator.getOpercode());
-      op.setTenantId(operator.getTenantId());
+      op.setThirdadmin(operator.getThirdadmin());
       operatorDao.save(op);
       operRoleDao.deleteByOperid(op.getOperid());
       String[] roleids = roles.split(",");
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/ParamServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/ParamServiceImpl.java
index f45beb7..a0f86cd 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/impl/ParamServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/ParamServiceImpl.java
@@ -178,9 +178,10 @@
   }
 
   @Override
-  @Cacheable(cacheNames = "source_type_cache", key = "#paytype.sourceType")
+  @CacheEvict(cacheNames = "source_type_cache", key = "#paytype.sourceType")
   public boolean saveOrUpdateSourceType(TSourceType paytype) {
     if (null != paytype) {
+      paytype.setTenantid(TenantContext.getTenantSchema());
       sourceTypeDao.save(paytype);
       return true;
     }
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java
index 88178c8..3d83ae5 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java
@@ -139,6 +139,7 @@
         permission.setTenantId(TenantContext.getTenantSchema());
         permissionDao.save(permission);
       } else {
+        if("-1".equals(func)) continue; //全选排除
         TRoleFunction roleFunction = new TRoleFunction();
         roleFunction.setFunctionId(Integer.valueOf(func));
         roleFunction.setRoleId(roleId);
@@ -153,15 +154,24 @@
   public List<ZTreeNode> findByRoleIdNative(String roleId) {
     List<NodeData> nodeData = roleFunctionDao.findByRoleIdNative(roleId);
     List<ZTreeNode> ret = new ArrayList<>();
+    boolean allChecked = true;
     for (NodeData data : nodeData) {
       ZTreeNode zTreeNode = new ZTreeNode();
       zTreeNode.setpId(data.getPid());
       zTreeNode.setId(data.getId());
       zTreeNode.setName(data.getName());
       zTreeNode.setChecked(data.getChecked() == 0 ? false : true);
+      if (allChecked && !zTreeNode.isChecked()) allChecked = false;
       zTreeNode.setOpen(data.getOpen() == 0 ? false : true);
       ret.add(zTreeNode);
     }
+    ZTreeNode root = new ZTreeNode();
+    root.setId("-1");
+    root.setpId("-99");
+    root.setName("选择全部功能");
+    root.setChecked(allChecked);
+    root.setOpen(true);
+    ret.add(root);
     return ret;
   }
 
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index e434042..37daf22 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -1,8 +1,8 @@
 INSERT INTO tb_tenantconfig(cfgid, tenantid, datacenter_id)
 values ('main', '{tenantid}', '01');
 
-INSERT INTO tb_operator(operid, closedate, opendate, opercode, opername, operpwd, opertype, status, tenantid)
-VALUES ('LOR2IwRkbOjp+sVG9KR2BpHZbwGKepS4', '20500101', '20190101', 'system', '系统管理员', '$2a$10$Ex9xp11.vCaD8D0a7ahiUOKqDij1TcCUBwRAmrqXeDvAkmzLibn4.', 'oper', 'normal', '{tenantid}');
+INSERT INTO tb_operator(operid, closedate, opendate, opercode, opername, operpwd, opertype, status, thirdadmin, tenantid)
+VALUES ('LOR2IwRkbOjp+sVG9KR2BpHZbwGKepS4', '20500101', '20190101', 'system', '系统管理员', '$2a$10$Ex9xp11.vCaD8D0a7ahiUOKqDij1TcCUBwRAmrqXeDvAkmzLibn4.', 'oper', 'normal', 'no', '{tenantid}');
 
 
 INSERT INTO tb_role(roleid, createtime, editflag, lastsaved, rolecode, roledesc, rolename, tenantid)
@@ -367,6 +367,10 @@
 VALUES ('ff8080816b7947ed016b795577370087', 45, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
 INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
 VALUES ('ff8080816b7947ed016b795577370088', 43, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816bbb130c016bbb6ea2f700c9', 76, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
+INSERT INTO  "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid")
+VALUES ('ff8080816bbb130c016bbb6ea2f600b3', 26, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
 
 
 INSERT INTO "tb_subject" ("subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid")
diff --git a/src/main/resources/templates/home/console.html b/src/main/resources/templates/home/console.html
index 94a54a5..63cb260 100755
--- a/src/main/resources/templates/home/console.html
+++ b/src/main/resources/templates/home/console.html
@@ -1,48 +1,5 @@
 <div class="layui-row layui-col-space15">

-    <div class="layui-col-xs6 layui-col-md3">

-        <div class="layui-card">

-            <div class="layui-card-header">

-                访问量<span class="layui-badge layui-bg-blue pull-right">周</span>

-            </div>

-            <div class="layui-card-body">

-                <p class="lay-big-font">9,999,666</p>

-                <p>总计访问量<span class="pull-right">88万 <i class="layui-icon layui-icon-flag"></i></span></p>

-            </div>

-        </div>

-    </div>

-    <div class="layui-col-xs6 layui-col-md3">

-        <div class="layui-card">

-            <div class="layui-card-header">

-                下载<span class="layui-badge layui-bg-black pull-right">月</span>

-            </div>

-            <div class="layui-card-body">

-                <p class="lay-big-font">33,555</p>

-                <p>新下载<span class="pull-right">10% <i class="layui-icon layui-icon-download-circle"></i></span></p>

-            </div>

-        </div>

-    </div>

-    <div class="layui-col-xs6 layui-col-md3">

-        <div class="layui-card">

-            <div class="layui-card-header">

-                Start<span class="layui-badge layui-bg-green pull-right">周</span>

-            </div>

-            <div class="layui-card-body">

-                <p class="lay-big-font">999,666</p>

-                <p>总Start数<span class="pull-right">88万 <i class="layui-icon layui-icon-rate"></i></span></p>

-            </div>

-        </div>

-    </div>

-    <div class="layui-col-xs6 layui-col-md3">

-        <div class="layui-card">

-            <div class="layui-card-header">

-                活跃用户<span class="layui-badge layui-bg-orange pull-right">月</span>

-            </div>

-            <div class="layui-card-body">

-                <p class="lay-big-font">66,666</p>

-                <p>最近一个月<span class="pull-right">15% <i class="layui-icon layui-icon-user"></i></span></p>

-            </div>

-        </div>

-    </div>

+

 </div>

 

 

diff --git a/src/main/resources/templates/home/theme.html b/src/main/resources/templates/home/theme.html
index 67cb12a..392a02a 100755
--- a/src/main/resources/templates/home/theme.html
+++ b/src/main/resources/templates/home/theme.html
@@ -7,8 +7,8 @@
 

 <div class="layui-card-header"><h2 class="header-title">设置主题:</h2></div>

 <div class="layui-card-body layui-text">

-    <a href="/home/setTheme" class="layui-btn" style="background-color: #009688;">默认主题</a>

-    <a href="/home/setTheme?themeName=blue" class="layui-btn layui-btn-normal">蓝色主题</a>

+    <a th:href="@{/home/setTheme}" class="layui-btn" style="background-color: #009688;">默认主题</a>

+    <a th:href="@{/home/setTheme?themeName=blue}" class="layui-btn layui-btn-normal">蓝色主题</a>

     <br><br><br>

   

 </div>

diff --git a/src/main/resources/templates/system/dtl/shopdtl.html b/src/main/resources/templates/system/dtl/shopdtl.html
index 92e7f60..644a6a7 100644
--- a/src/main/resources/templates/system/dtl/shopdtl.html
+++ b/src/main/resources/templates/system/dtl/shopdtl.html
@@ -1,4 +1,4 @@
-<div class="layui-card">
+<div class="layui-card" style="width: 1100px">
     <div class="layui-card-header">
         <h2 class="header-title">商户流水查询</h2>
         <span class="layui-breadcrumb pull-right">
@@ -8,7 +8,7 @@
     </div>
     <div class="layui-card-body">
         <div class="layui-form" lay-filter="shopdtl-search-form">
-            <div class="layui-form-item" style="margin-bottom: 0;">
+            <div class="layui-form-item" style="margin-bottom: 10px;">
                 <div class="layui-inline">
                     <label class="layui-form-label">记账日期</label>
                     <div class="layui-input-inline" style="width: 120px;">
@@ -24,17 +24,9 @@
                     </div>
                 </div>
 
-                <div class="layui-inline" style="width: 298px;">
-                    <label class="layui-form-label">商户名称</label>
-                    <div class="layui-input-block">
-                        <input type="text" name="shopname" id="shopdtl-search-shopname" placeholder="商户名称"
-                               autocomplete="off" class="layui-input" maxlength="20"/>
-                    </div>
-                </div>
-
                 <div class="layui-inline">
                     <label class="layui-form-label">支付方式</label>
-                    <div class="layui-input-block">
+                    <div class="layui-input-block" style="height: 38px;">
                         <select name="sourcetype" id="shopdtl-search-sourcetype" class="layui-select">
                             <option value=""> 全部</option>
                             <option th:each="pt:${paytypeList}" th:value="${pt.sourceType}"
@@ -45,7 +37,7 @@
 
                 <div class="layui-inline">
                     <label class="layui-form-label">状态</label>
-                    <div class="layui-input-block">
+                    <div class="layui-input-block" style="height: 38px;">
                         <select name="transStatus" id="shopdtl-search-transStatus" class="layui-select">
                             <option value=""> 全部</option>
                             <option th:each="st:${dtlStatusList}" th:value="${st.dictval}"
@@ -55,7 +47,7 @@
                 </div>
             </div>
 
-            <div class="layui-form-item" style="margin-bottom: 0;">
+            <div class="layui-form-item" style="margin-bottom: 10px;">
                 <div class="layui-inline">
                     <label class="layui-form-label">交易日期</label>
                     <div class="layui-input-inline" style="width: 120px;">
@@ -73,7 +65,7 @@
 
                 <div class="layui-inline">
                     <label class="layui-form-label">选择商户</label>
-                    <div class="layui-input-block">
+                    <div class="layui-input-block" style="height: 38px;">
                         <input type="text" name="shopaccno" id="shopdtl-search-shopaccno" placeholder="选择商户"
                                lay-filter="shopdtl-search-shopaccno-filter"
                                autocomplete="off" class="layui-input"/>
@@ -82,7 +74,7 @@
 
                 <div class="layui-inline">
                     <label class="layui-form-label">类型</label>
-                    <div class="layui-input-block">
+                    <div class="layui-input-block" style="height: 38px;">
                         <select name="tradeflag" id="shopdtl-search-tradeflag" class="layui-select">
                             <option value=""> 全部</option>
                             <option value="in">收入</option>
@@ -90,10 +82,20 @@
                         </select>&emsp;
                     </div>
                 </div>
+            </div>
+
+            <div class="layui-form-item" style="margin-bottom: 0;">
+                <div class="layui-inline" style="margin-right: 20px;">
+                    <label class="layui-form-label">商户名称</label>
+                    <div class="layui-input-block" style="width: 265px;">
+                        <input type="text" name="shopname" id="shopdtl-search-shopname" placeholder="商户名称"
+                               autocomplete="off" class="layui-input" maxlength="20"/>
+                    </div>
+                </div>
 
                 <div class="layui-inline">
                     <label class="layui-form-label">交易码</label>
-                    <div class="layui-input-block">
+                    <div class="layui-input-block" style="height: 38px;">
                         <select name="transcode" id="shopdtl-search-transcode" class="layui-select">
                             <option value=""> 全部</option>
                             <option th:each="tc:${transcodeList}" th:value="${tc.transcode}"
diff --git a/src/main/resources/templates/system/dtl/userdtl.html b/src/main/resources/templates/system/dtl/userdtl.html
index a2e9d96..ead6ab2 100644
--- a/src/main/resources/templates/system/dtl/userdtl.html
+++ b/src/main/resources/templates/system/dtl/userdtl.html
@@ -8,7 +8,7 @@
     </div>
     <div class="layui-card-body">
         <div class="layui-form" lay-filter="userdtl-search-form">
-            <div class="layui-form-item" style="margin-bottom: 0;">
+            <div class="layui-form-item" style="margin-bottom: 10px;">
                 <div class="layui-inline">
                     <label class="layui-form-label">记账日期</label>
                     <div class="layui-input-inline" style="width: 120px;">
@@ -26,7 +26,7 @@
 
                 <div class="layui-inline">
                     <label class="layui-form-label">姓名</label>
-                    <div class="layui-input-block">
+                    <div class="layui-input-block" style="width: 211px;">
                         <input type="text" name="personname" id="userdtl-search-personname" placeholder="姓名"
                                autocomplete="off" class="layui-input" maxlength="20"/>
                     </div>
@@ -34,7 +34,7 @@
 
                 <div class="layui-inline">
                     <label class="layui-form-label">支付方式</label>
-                    <div class="layui-input-block">
+                    <div class="layui-input-block" style="height: 38px;">
                         <select name="sourcetype" id="userdtl-search-sourcetype" class="layui-select">
                             <option value=""> 全部</option>
                             <option th:each="pt:${paytypelist}" th:value="${pt.sourceType}"
@@ -42,20 +42,9 @@
                         </select>&emsp;
                     </div>
                 </div>
-
-                <div class="layui-inline">
-                    <label class="layui-form-label">状态</label>
-                    <div class="layui-input-block">
-                        <select name="transStatus" id="userdtl-search-transStatus" class="layui-select">
-                            <option value=""> 全部</option>
-                            <option th:each="st:${dtlStatusList}" th:value="${st.dictval}"
-                                    th:text="${st.dictcaption}"></option>
-                        </select>&emsp;
-                    </div>
-                </div>
             </div>
 
-            <div class="layui-form-item" style="margin-bottom: 0;">
+            <div class="layui-form-item" style="margin-bottom: 10px;">
                 <div class="layui-inline">
                     <label class="layui-form-label">交易日期</label>
                     <div class="layui-input-inline" style="width: 120px;">
@@ -72,16 +61,19 @@
                 </div>
 
                 <div class="layui-inline">
-                    <label class="layui-form-label">市民卡号</label>
-                    <div class="layui-input-block">
-                        <input type="text" name="cardno" id="userdtl-search-cardno" placeholder="市民卡号"
-                               autocomplete="off" class="layui-input"/>
+                    <label class="layui-form-label">状态</label>
+                    <div class="layui-input-block" style="height:38px;">
+                        <select name="transStatus" id="userdtl-search-transStatus" class="layui-select">
+                            <option value=""> 全部</option>
+                            <option th:each="st:${dtlStatusList}" th:value="${st.dictval}"
+                                    th:text="${st.dictcaption}"></option>
+                        </select>&emsp;
                     </div>
                 </div>
 
                 <div class="layui-inline">
                     <label class="layui-form-label">类型</label>
-                    <div class="layui-input-block">
+                    <div class="layui-input-block" style="height: 38px;">
                         <select name="tradeflag" id="userdtl-search-tradeflag" class="layui-select">
                             <option value=""> 全部</option>
                             <option value="in">收入</option>
@@ -89,7 +81,16 @@
                         </select>&emsp;
                     </div>
                 </div>
+            </div>
 
+            <div class="layui-form-item" style="margin-bottom: 0;">
+                <div class="layui-inline" style="margin-right: 20px;">
+                    <label class="layui-form-label">市民卡号</label>
+                    <div class="layui-input-block" style="width: 265px;">
+                        <input type="text" name="cardno" id="userdtl-search-cardno" placeholder="市民卡号"
+                               autocomplete="off" class="layui-input"/>
+                    </div>
+                </div>
                 <div class="layui-inline">
                     <label class="layui-form-label">交易码</label>
                     <div class="layui-input-block">
diff --git a/src/main/resources/templates/system/function/index.html b/src/main/resources/templates/system/function/index.html
index 93d53ac..2e85a8c 100755
--- a/src/main/resources/templates/system/function/index.html
+++ b/src/main/resources/templates/system/function/index.html
@@ -54,7 +54,7 @@
                         }

                     },

                     {

-                        field: 'id', align: 'center', title: '操作', fixed: 'right', templet: function (item) {

+                        field: 'id', align: 'center', title: '操作', fixed: 'right', width:350, templet: function (item) {

                             if (item.isLeaf == 0) {

                                 return ' <a class="layui-btn  layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a> ' +

                                     ' <a class="layui-btn layui-btn-normal  layui-btn-xs" lay-event="addsub"><i class="layui-icon layui-icon-set-sm"></i>添加子功能</a> ' +

diff --git a/src/main/resources/templates/system/operator/index.html b/src/main/resources/templates/system/operator/index.html
index 96ba2bc..49e4ab1 100644
--- a/src/main/resources/templates/system/operator/index.html
+++ b/src/main/resources/templates/system/operator/index.html
@@ -31,10 +31,10 @@
 <script type="text/html" id="oper-tpl-state">
     {{# if(d.opercode == 'system') { }}
     <input type="checkbox" lay-filter="oper-tpl-state" value="{{d.operid}}" lay-skin="switch" lay-text="正常|注销"
-           {{d.transStatus=='normal'?'checked':''}} disabled/>
+           {{d.status=='normal'?'checked':''}} disabled/>
     {{# }else{ }}
     <input type="checkbox" lay-filter="oper-tpl-state" value="{{d.operid}}" lay-skin="switch" lay-text="正常|注销"
-           {{d.transStatus=='normal'?'checked':''}} />
+           {{d.status=='normal'?'checked':''}} />
     {{# } }}
 </script>
 
@@ -61,8 +61,8 @@
             page: true,
             cols: [
                 [
-                    {type: 'numbers', fixed: 'left'},
-                    {field: 'opercode', title: '管理员账号', fixed: 'left', sort: true},
+                    {type: 'numbers', fixed: 'left', width: 50},
+                    {field: 'opercode', title: '管理员账号', fixed: 'left',width: 150,  sort: true},
                     {field: 'opername', title: '管理员名称', sort: true},
                     {field: 'transStatus', title: '状态', sort: true, width: 100, templet: '#oper-tpl-state'},
                     {
@@ -78,8 +78,10 @@
                     },
                     {field: 'mobile', sort: true, title: '手机号'},
                     {field: 'email', sort: true, title: '电子邮箱'},
-                    {field: 'opendate', sort: true, width: 120, title: '注册日期'},
-                    {align: 'center', toolbar: '#oper-table-bar', title: '操作', fixed: 'right'}
+                    {field: 'opendate', sort: true, width: 120, title: '注册日期', align: 'center', templet: function (d) {
+                        return admin.formatDate(d.opendate);
+                        }},
+                    {align: 'center', toolbar: '#oper-table-bar', title: '操作',width: 160, fixed: 'right'}
                 ]
             ]
         });
@@ -100,7 +102,7 @@
         // 显示表单弹窗
         var showEditModel = function (data) {
             var title = data ? '修改用户' : '添加用户';
-            admin.putTempData('t_user', data);
+            admin.putTempData('tmp_user', data);
             admin.popupCenter({
                 title: title,
                 path: '[[@{/operator/load4add}]]',
diff --git a/src/main/resources/templates/system/operator/logs.html b/src/main/resources/templates/system/operator/logs.html
index 207b4ea..3f6f6ff 100644
--- a/src/main/resources/templates/system/operator/logs.html
+++ b/src/main/resources/templates/system/operator/logs.html
@@ -9,8 +9,8 @@
     <div class="layui-card-body">
         <div class="layui-form toolbar">
             搜索:
-            <input id="search-value" class="layui-input search-input" type="text" placeholder="输入管理员账号"/>&emsp;
-            <button id="btn-search" class="layui-btn icon-btn" data-type="search"><i class="layui-icon">&#xe615;</i>搜索
+            <input id="search-operlog-value" class="layui-input search-input" type="text" placeholder="输入管理员账号"/>&emsp;
+            <button id="btn-operlog-search" class="layui-btn icon-btn" data-type="search"><i class="layui-icon">&#xe615;</i>搜索
             </button>
         </div>
         <table class="layui-table" id="logtable" lay-filter="logtable"></table>
@@ -30,11 +30,11 @@
             cols: [
                 [
                     {field: 'opername', title: '管理员账号', width: 160,fixed: 'left', sort: true},
-                    {field: 'functionname', title: '所属功能', width: 160,fixed: 'left', sort: true},
-                    {field: 'resname', title: '操作内容', width: 160,fixed: 'left', sort: true},
-                    {field: 'respath', title: '操作路径', width: 200,},
+                    {field: 'functionname', title: '所属功能', sort: true},
+                    {field: 'resname', title: '操作内容', sort: true},
+                    {field: 'respath', title: '操作路径'},
                     {
-                        field: 'logdate', align: 'center', title: '操作时间', fixed: 'right', templet: function (item) {
+                        field: 'logdate', align: 'center', title: '操作时间', width: 200, fixed: 'right', templet: function (item) {
                             return admin.formatDate(item.logdate);
                         }
                     }
@@ -42,8 +42,8 @@
             ]
         });
         // 搜索按钮点击事件
-        $('#btn-search').click(function () {
-            let key = $('#search-value').val();
+        $('#btn-operlog-search').click(function () {
+            let key = $('#search-operlog-value').val();
             table.reload('logtable', {where: {searchkey: key}, page: {curr: 1}});
         });
     });
diff --git a/src/main/resources/templates/system/operator/operator.html b/src/main/resources/templates/system/operator/operator.html
index 682e6c4..0a50551 100644
--- a/src/main/resources/templates/system/operator/operator.html
+++ b/src/main/resources/templates/system/operator/operator.html
@@ -16,9 +16,9 @@
         </div>
     </div>
     <div class="layui-form-item">
-        <label class="layui-form-label" title="用于第三方授权登录,但不能访问本系统资源">授权登录用户</label>
+        <label class="layui-form-label" title="用于第三方授权登录,但不能访问本系统资源" style="width: 90px;">授权登录用户</label>
         <div class="layui-input-block">
-            <input type="checkbox" name="thirdadmin" value="yes"  />
+            <input type="checkbox" name="thirdadmin" lay-skin="switch" lay-text="启用|关闭" value="yes" />
         </div>
     </div>
     <div class="layui-form-item">
@@ -65,6 +65,7 @@
         var formSelects = layui.formSelects;
 
         form.render('radio');
+        form.render('checkbox');
         form.verify({
             "mobile": function (e) {
                 if (null != e && e.length > 0 && !(/^1\d{10}$/.test(e))) {
@@ -107,7 +108,7 @@
 
         var url = '[[@{/operator/add}]]';
         // 回显user数据
-        var user = admin.getTempData('t_user');
+        var user = admin.getTempData('tmp_user');
         if (user) {
             $('input[name="opercode"]').attr('readonly', 'readonly');
             form.val('oper-form', user);
@@ -119,6 +120,7 @@
         }
         // 表单提交事件
         form.on('submit(oper-form-submit)', function (data) {
+            debugger
             layer.load(2);
             var token_name = $("meta[name='_csrf_token']").attr("content");
             var token = $("meta[name='_csrf_token']").attr("value");
diff --git a/src/main/resources/templates/system/operator/setpwd.html b/src/main/resources/templates/system/operator/setpwd.html
index 53f4fef..7b77f60 100644
--- a/src/main/resources/templates/system/operator/setpwd.html
+++ b/src/main/resources/templates/system/operator/setpwd.html
@@ -41,7 +41,7 @@
         $('#cancelBtn').click(function () {
             admin.closeThisTabs()
         });
-        form.render('select');
+
         let url = '[[@{/operator/dosetpwd}]]';
         // 表单提交事件
         form.on('submit(setmypass)', function (data) {
diff --git a/src/main/resources/templates/system/operator/userinfor.html b/src/main/resources/templates/system/operator/userinfor.html
index 1193ef3..7cb1bce 100644
--- a/src/main/resources/templates/system/operator/userinfor.html
+++ b/src/main/resources/templates/system/operator/userinfor.html
@@ -55,7 +55,7 @@
         $('#cancelBtn').click(function () {
             admin.closeThisTabs()
         });
-        form.render('select');
+        form.render('radio');
         let url = '[[@{/operator/updateinfor}]]';
         // 表单提交事件
         form.on('submit(infor-form-submit)', function (data) {
diff --git a/src/main/resources/templates/system/param/apiclientform.html b/src/main/resources/templates/system/param/apiclientform.html
index 94353f7..16ace93 100644
--- a/src/main/resources/templates/system/param/apiclientform.html
+++ b/src/main/resources/templates/system/param/apiclientform.html
@@ -7,7 +7,7 @@
         </div>
     </div>
     <div class="layui-form-item">
-        <label class="layui-form-label">角色</label>
+        <label class="layui-form-label">权限</label>
         <div class="layui-input-block">
             <select name="roles" xm-select="roles" lay-verify="required">
                 <option th:each="role : ${rolelist}" th:value="${role.key}">[[${role.value}]]</option>
diff --git a/src/main/resources/templates/system/param/apiclientpara.html b/src/main/resources/templates/system/param/apiclientpara.html
index d8292d7..9f18342 100644
--- a/src/main/resources/templates/system/param/apiclientpara.html
+++ b/src/main/resources/templates/system/param/apiclientpara.html
@@ -22,14 +22,14 @@
 
 <!-- 表格操作列 -->
 <script type="text/html" id="apiclient-table-bar">
-    <a class="layui-btn layui-btn-xs" lay-event="editRole">修改角色</a>
+    <a class="layui-btn layui-btn-xs" lay-event="editRole">修改</a>
     <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
 </script>
 
 <!-- 表格状态列 -->
 <script type="text/html" id="api-tpl-state">
     <input type="checkbox" lay-filter="api-tpl-state" value="{{d.appid}}" lay-skin="switch" lay-text="启用|关闭"
-           {{d.transStatus=='normal'?'checked':''}} />
+           {{d.status=='normal'?'checked':''}} />
 </script>
 
 <script>
@@ -47,8 +47,8 @@
                 [
                     {field: 'appid', title: 'APPID', width: 120, align: 'right', fixed: 'left', sort: true},
                     {field: 'secret', title: '密钥', align: 'center', edit: 'text'},
-                    {field: 'transStatus', title: '状态', width: 100, templet: '#api-tpl-state',sort: true},
-                    {field: 'roles', title: '角色', align: 'center' },
+                    {field: 'status', title: '状态', width: 100, templet: '#api-tpl-state',sort: true},
+                    {field: 'roles', title: '权限', align: 'center' },
                     {align: 'center', title: '操作', width: 150, toolbar: '#apiclient-table-bar',  fixed: 'right'}
                 ]
             ]
@@ -68,7 +68,7 @@
         });
 
         function showEditModel(data) {
-            var title = data ? '修改角色' : '新增应用';
+            var title = data ? '修改应用' : '新增应用';
             admin.putTempData('t_appclient', data);
             admin.popupCenter({
                 title: title,
diff --git a/src/main/resources/templates/system/param/paytype.html b/src/main/resources/templates/system/param/paytype.html
index 94ce96a..8c5d102 100644
--- a/src/main/resources/templates/system/param/paytype.html
+++ b/src/main/resources/templates/system/param/paytype.html
@@ -56,6 +56,28 @@
            {{(d.enable==true && d.anonymousEnable==true)?'checked':''}} disabled/>
     {{# } }}
 </script>
+<script type="text/html" id="reversable-tpl-state">
+    {{# if(d.enable == true ){ }}
+    <input type="checkbox" lay-filter="reversable-tpl-state" value="{{d.sourceType}}" lay-skin="switch"
+           lay-text="启用|关闭"
+           {{(d.enable==true && d.reversable==true)?'checked':''}}/>
+    {{# }else{ }}
+    <input type="checkbox" lay-filter="reversable-tpl-state" value="{{d.sourceType}}" lay-skin="switch"
+           lay-text="启用|关闭"
+           {{(d.enable==true && d.reversable==true)?'checked':''}} disabled/>
+    {{# } }}
+</script>
+<script type="text/html" id="checkable-tpl-state">
+    {{# if(d.enable == true ){ }}
+    <input type="checkbox" lay-filter="checkable-tpl-state" value="{{d.sourceType}}" lay-skin="switch"
+           lay-text="启用|关闭"
+           {{(d.enable==true && d.checkable==true)?'checked':''}}/>
+    {{# }else{ }}
+    <input type="checkbox" lay-filter="checkable-tpl-state" value="{{d.sourceType}}" lay-skin="switch"
+           lay-text="启用|关闭"
+           {{(d.enable==true && d.checkable==true)?'checked':''}} disabled/>
+    {{# } }}
+</script>
 
 <script>
     layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {
@@ -94,6 +116,20 @@
                         sort: true
                     },
                     {
+                        field: 'reversable',
+                        title: '能否冲正',
+                        align: 'center',
+                        templet: '#reversable-tpl-state',
+                        sort: true
+                    },
+                    {
+                        field: 'checkable',
+                        title: '是否清算',
+                        align: 'center',
+                        templet: '#anonymousenable-tpl-state',
+                        sort: true
+                    },
+                    {
                         align: 'center', title: '操作', width: 150, fixed: 'right', templet: function (item) {
                             if (item.sourceType != 'balance') {
                                 return '<a class="layui-btn layui-btn-xs" lay-event="config">配置</a> <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>';
@@ -167,6 +203,16 @@
             updatePaytypeState(obj, "anonymous", token);
         });
 
+        form.on('switch(reversable-tpl-state)', function (obj) {
+            var token = $("meta[name='_csrf_token']").attr("value");
+            updatePaytypeState(obj, "reversable", token);
+        });
+
+        form.on('switch(checkable-tpl-state)', function (obj) {
+            var token = $("meta[name='_csrf_token']").attr("value");
+            updatePaytypeState(obj, "checkable", token);
+        });
+
 
         function updatePaytypeState(obj, optype, token) {
             admin.go('[[@{/param/updatepaytypestate}]]', {
diff --git a/src/main/resources/templates/system/param/paytypeform.html b/src/main/resources/templates/system/param/paytypeform.html
index e3a2d5a..1ec0c3d 100644
--- a/src/main/resources/templates/system/param/paytypeform.html
+++ b/src/main/resources/templates/system/param/paytypeform.html
@@ -41,6 +41,20 @@
         </div>
     </div>
 
+    <div class="layui-form-item">
+        <label class="layui-form-label">能否冲正</label>
+        <div class="layui-input-block">
+            <input name="reversable" type="checkbox" lay-skin="switch" lay-text="启用|关闭" value="yes" lay-verify="required" checked/>
+        </div>
+    </div>
+
+    <div class="layui-form-item">
+        <label class="layui-form-label">是否清算</label>
+        <div class="layui-input-block">
+            <input name="checkable" type="checkbox" lay-skin="switch" lay-text="启用|关闭" value="yes" lay-verify="required" checked/>
+        </div>
+    </div>
+
     <div class="layui-form-item model-form-footer">
         <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
         <button class="layui-btn" lay-filter="form-submit" lay-submit  id="submitbtn">保存</button>
diff --git a/src/main/resources/templates/system/role/func.html b/src/main/resources/templates/system/role/func.html
index aeca844..f3ebd5e 100755
--- a/src/main/resources/templates/system/role/func.html
+++ b/src/main/resources/templates/system/role/func.html
@@ -54,6 +54,7 @@
             let treeObj = $.fn.zTree.getZTreeObj("funclist");

             let nodes = treeObj.getCheckedNodes(true);

             for (let i = 0; i < nodes.length; i++) {

+

                 ids.push(nodes[i].id);//存功能ID

             }

             if (ids.length < 1) {

diff --git a/src/main/resources/templates/system/role/index.html b/src/main/resources/templates/system/role/index.html
index f92912f..535ecf3 100644
--- a/src/main/resources/templates/system/role/index.html
+++ b/src/main/resources/templates/system/role/index.html
@@ -31,11 +31,11 @@
             page: true,
             cols: [
                 [
-                    {field: 'roleName', title: '角色名称', width: 160,fixed: 'left', sort: true},
-                    {field: 'roleCode', title: '角色代码', width: 160,fixed: 'left', sort: true},
+                    {field: 'roleName', title: '角色名称', width: 200,fixed: 'left', sort: true},
+                    {field: 'roleCode', title: '角色代码', width: 200,fixed: 'left', sort: true},
                     {field: 'roleDesc', title: '描述'},
                     {
-                        field: 'roleId', align: 'center', title: '操作', fixed: 'right', templet: function (item) {
+                        field: 'roleId', align: 'center', title: '操作', width: 300, fixed: 'right', templet: function (item) {
                             let html =  ' <a class="layui-btn  layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a> ' +
                                 ' <a class="layui-btn layui-btn-warm layui-btn-xs" lay-event="addfunc"><i class="layui-icon layui-icon-set-sm"></i>分配功能</a> ';
                             if(item.editflag===1){
diff --git a/src/main/resources/templates/system/shop/config.html b/src/main/resources/templates/system/shop/config.html
index b80ec4f..56400e7 100644
--- a/src/main/resources/templates/system/shop/config.html
+++ b/src/main/resources/templates/system/shop/config.html
@@ -13,9 +13,8 @@
                     <div class="layui-card-header">
                         商户树<span style="font-size: 12px;">(双击结算商户查询)</span>
                     </div>
-                    <div class="layui-card-body layui-show"
-                         style="background-color: #D7F9F7;max-height: 560px;overflow:auto;">
-                        <ul id="shopacctree" class="ztree"></ul>
+                    <div class="layui-card-body layui-show">
+                        <ul id="shopacctree" class="ztree" style="background-color: #D7F9F7;max-height: 560px;overflow:auto;"></ul>
                     </div>
                 </div>
             </div>
diff --git a/src/main/resources/templates/system/shop/index.html b/src/main/resources/templates/system/shop/index.html
index 000ef7d..5e441ae 100644
--- a/src/main/resources/templates/system/shop/index.html
+++ b/src/main/resources/templates/system/shop/index.html
@@ -10,9 +10,8 @@
         <div class="layui-row">
             <div class="layui-col-xs5 layui-col-md3">
                 <div class="layui-card">
-                    <div class="layui-card-body layui-show"
-                         style="background-color: #D7F9F7;max-height: 560px;overflow:auto;">
-                        <ul id="shoptree" class="ztree"></ul>
+                    <div class="layui-card-body layui-show">
+                        <ul id="shoptree" class="ztree" style="background-color: #D7F9F7;max-height: 560px;overflow:auto;"></ul>
                     </div>
                 </div>
             </div>
diff --git a/src/main/resources/templates/system/user/add.html b/src/main/resources/templates/system/user/add.html
index e2f2c81..d04999d 100755
--- a/src/main/resources/templates/system/user/add.html
+++ b/src/main/resources/templates/system/user/add.html
@@ -19,7 +19,7 @@
         <label class="layui-form-label">证件类型*</label>

         <div class="layui-input-block">

             <select name="idtype" id="idtype" lay-verify="required">

-                <option th:each="bean : ${idtypes}" th:value="${bean.idtype}">[[${bean.typename}]]</option>

+                <option th:each="bean : ${idtypeList}" th:value="${bean.dictval}">[[${bean.dictcaption}]]</option>

             </select>

         </div>

     </div>

diff --git a/src/main/resources/templates/system/user/index.html b/src/main/resources/templates/system/user/index.html
index 8e13364..5507955 100644
--- a/src/main/resources/templates/system/user/index.html
+++ b/src/main/resources/templates/system/user/index.html
@@ -10,7 +10,8 @@
         <div class="layui-form toolbar">
             搜索:
             <input id="search-value-user" class="layui-input search-input" type="text" placeholder="输入用户名称"/>&emsp;
-            <button id="btn-search-user" class="layui-btn icon-btn" data-type="search"><i class="layui-icon">&#xe615;</i>搜索
+            <button id="btn-search-user" class="layui-btn icon-btn" data-type="search"><i
+                    class="layui-icon">&#xe615;</i>搜索
             </button>
             <button id="btn-add-user" class="layui-btn icon-btn" data-type="add"><i class="layui-icon"></i>添加用户
             </button>
@@ -31,44 +32,45 @@
             page: true,
             cols: [
                 [
-                    {field: 'name', title: '名称', width: 80, fixed: 'left', sort: true},
-                    {
-                        field: 'sex', title: '性别', fixed: 'left', width: 80,
-                        templet: function (item) {
+                    {field: 'name', title: '名称', width: 150, fixed: 'left', sort: true},
+                    {field: 'sex', title: '性别', align: 'center', width: 80, templet: function(item){
                             return getTempDictValue('sexList', item.sex);
-                        }
-                    },
+                        }},
                     {
-                        field: 'status', title: '状态', fixed: 'left', width: 80, templet: function (item) {
-                            let desc = getTempDictValue('accountStatusList', item.status)
+                        field: 'status', title: '状态', align: 'center',  width: 80, templet: function (item) {
+                            let desc = getTempDictValue('accountStatusList', item.status);
                             if (item.status === 'normal') {
-                                return '<span class="layui-badge layui-bg-green">' + desc + '</span>'
+                                return '<span class="layui-badge layui-bg-green">' + desc + '</span>';
                             } else if (item.status === 'closed') {
-                                return '<span class="layui-badge">' + desc + '</span>'
+                                return '<span class="layui-badge">' + desc + '</span>';
                             } else if (item.status === 'locked') {
-                                return '<span class="layui-badge layui-bg-orange">' + desc + '</span>'
+                                return '<span class="layui-badge layui-bg-orange">' + desc + '</span>';
                             } else {
-                                return '异常'
+                                return '异常';
                             }
                         }
                     },
                     {
-                        field: 'idtype', align: 'center', width: 100, title: '证件类型', fixed: 'left',
+                        field: 'idtype', align: 'center', width: 100, title: '证件类型',
                         templet: function (item) {
                             return getTempDictValue('idtypeList', item.idtype);
                         }
                     },
-                    {field: 'idno', title: '证件号', width: 120, fixed: 'left', sort: true},
-                    {field: 'email', title: '邮箱', width: 100, fixed: 'left', sort: true},
-                    {field: 'mobile', title: '手机', width: 120, fixed: 'left', sort: true},
-                    {field: 'tel', title: '电话', width: 100, fixed: 'left', sort: true},
-                    {field: 'addr', title: '地址', width: 200, fixed: 'left', sort: true},
-                    {field: 'lastsaved', title: '最后修改时间', width: 140, fixed: 'left', sort: true},
+                    {field: 'idno', title: '证件号', width: 120, align: 'center', sort: true},
+                    {field: 'email', title: '邮箱', width: 100, align: 'center',  sort: true},
+                    {field: 'mobile', title: '手机', width: 120, align: 'center', sort: true},
+                    {field: 'tel', title: '电话', align: 'center'},
+                    {field: 'addr', title: '地址', align: 'center' },
                     {
-                        field: 'userid',
+                        field: 'lastsaved', title: '最后修改时间', width: 180, sort: true, templet: function (d) {
+                            return admin.formatDate(d.lastsaved);
+                        }
+                    },
+                    {
                         align: 'center',
                         title: '操作',
                         fixed: 'right',
+                        width: 170,
                         templet: function (item) {
                             let html = ' <a class="layui-btn  layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a> ';
                             html += '<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>';