suochencheng před 7 roky
rodič
revize
5704b3ecb2

+ 5 - 1
src/main/java/com/izouma/awesomeadmin/dao/SysRoleMapper.xml

@@ -223,7 +223,11 @@
 		order by id desc
 	</select>
 	<select id="queryAllSysRole" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.SysRole">
-		select <include refid="Base_Column_List"/> from sys_role
+		select <include refid="Base_Column_List"/>
+		<if test="menuId != null and !&quot;&quot;.equals(menuId)">
+			,  FIND_IN_SET(#{menuId}, menu_ids) as  menu_flag
+		</if>
+		from sys_role
 		<where>
 			and del_flag = 'N'
 			<if test="id != null and !&quot;&quot;.equals(id)">

+ 139 - 114
src/main/java/com/izouma/awesomeadmin/model/SysRole.java

@@ -10,168 +10,193 @@ import java.util.Date;
 /**
  * sys_role 实体类
  * Tue Apr 10 18:09:56 CST 2018  Suo Chen Cheng
- */ 
+ */
 @JsonAutoDetect
 @JsonInclude(JsonInclude.Include.NON_NULL)
-public class SysRole{
+public class SysRole {
 
-	private Integer id;
+    private Integer id;
 
-	private String officeId;
+    private String officeId;
 
-	private String name;
+    private String name;
 
-	private String enname;
+    private String enname;
 
-	private String roleType;
+    private String roleType;
 
-	private String isSys;
+    private String isSys;
 
-	private String useable;
+    private String useable;
 
-	private String createBy;
+    private String createBy;
 
-	private Date createDate;
+    private Date createDate;
 
-	private String updateBy;
+    private String updateBy;
 
-	private Date updateDate;
+    private Date updateDate;
 
-	private String remarks;
+    private String remarks;
 
-	private String delFlag;
-	private String idStr;
+    private String delFlag;
+    private String idStr;
 
-	private String menuIds;
-	private String permission;
+    private String menuIds;
+    private String permission;
 
-	public String getMenuIds() {
-		return menuIds;
-	}
+    /**
+     * 菜单ID查询是否有权限
+     */
+    private String menuId;
 
-	public void setMenuIds(String menuIds) {
-		this.menuIds = menuIds;
-	}
+    /**
+     * 菜单权限
+     */
+    private Integer menuFlag;
 
-	public String getPermission() {
-		return permission;
-	}
+    public String getMenuIds() {
+        return menuIds;
+    }
 
-	public void setPermission(String permission) {
-		this.permission = permission;
-	}
+    public void setMenuIds(String menuIds) {
+        this.menuIds = menuIds;
+    }
 
-	public String getIdStr() {
-		return idStr;
-	}
+    public String getPermission() {
+        return permission;
+    }
 
-	public void setIdStr(String idStr) {
-		this.idStr = idStr;
-	}
+    public void setPermission(String permission) {
+        this.permission = permission;
+    }
 
-	public void setId(Integer id){
-		this.id=id;
-	}
+    public String getIdStr() {
+        return idStr;
+    }
 
-	public Integer getId(){
-		return id;
-	}
+    public void setIdStr(String idStr) {
+        this.idStr = idStr;
+    }
 
-	public void setOfficeId(String officeId){
-		this.officeId=officeId;
-	}
+    public void setId(Integer id) {
+        this.id = id;
+    }
 
-	public String getOfficeId(){
-		return officeId;
-	}
+    public Integer getId() {
+        return id;
+    }
 
-	public void setName(String name){
-		this.name=name;
-	}
+    public void setOfficeId(String officeId) {
+        this.officeId = officeId;
+    }
 
-	public String getName(){
-		return name;
-	}
+    public String getOfficeId() {
+        return officeId;
+    }
 
-	public void setEnname(String enname){
-		this.enname=enname;
-	}
+    public void setName(String name) {
+        this.name = name;
+    }
 
-	public String getEnname(){
-		return enname;
-	}
+    public String getName() {
+        return name;
+    }
 
-	public void setRoleType(String roleType){
-		this.roleType=roleType;
-	}
+    public void setEnname(String enname) {
+        this.enname = enname;
+    }
 
-	public String getRoleType(){
-		return roleType;
-	}
+    public String getEnname() {
+        return enname;
+    }
 
-	public void setIsSys(String isSys){
-		this.isSys=isSys;
-	}
+    public void setRoleType(String roleType) {
+        this.roleType = roleType;
+    }
 
-	public String getIsSys(){
-		return isSys;
-	}
+    public String getRoleType() {
+        return roleType;
+    }
 
-	public void setUseable(String useable){
-		this.useable=useable;
-	}
+    public void setIsSys(String isSys) {
+        this.isSys = isSys;
+    }
 
-	public String getUseable(){
-		return useable;
-	}
+    public String getIsSys() {
+        return isSys;
+    }
 
-	public void setCreateBy(String createBy){
-		this.createBy=createBy;
-	}
+    public void setUseable(String useable) {
+        this.useable = useable;
+    }
 
-	public String getCreateBy(){
-		return createBy;
-	}
+    public String getUseable() {
+        return useable;
+    }
 
-	public void setCreateDate(Date createDate){
-		this.createDate=createDate;
-	}
+    public void setCreateBy(String createBy) {
+        this.createBy = createBy;
+    }
 
-	public Date getCreateDate(){
-		return createDate;
-	}
+    public String getCreateBy() {
+        return createBy;
+    }
+
+    public void setCreateDate(Date createDate) {
+        this.createDate = createDate;
+    }
+
+    public Date getCreateDate() {
+        return createDate;
+    }
+
+    public void setUpdateBy(String updateBy) {
+        this.updateBy = updateBy;
+    }
 
-	public void setUpdateBy(String updateBy){
-		this.updateBy=updateBy;
-	}
+    public String getUpdateBy() {
+        return updateBy;
+    }
 
-	public String getUpdateBy(){
-		return updateBy;
-	}
+    public void setUpdateDate(Date updateDate) {
+        this.updateDate = updateDate;
+    }
 
-	public void setUpdateDate(Date updateDate){
-		this.updateDate=updateDate;
-	}
+    public Date getUpdateDate() {
+        return updateDate;
+    }
 
-	public Date getUpdateDate(){
-		return updateDate;
-	}
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
 
-	public void setRemarks(String remarks){
-		this.remarks=remarks;
-	}
+    public String getRemarks() {
+        return remarks;
+    }
 
-	public String getRemarks(){
-		return remarks;
-	}
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
 
-	public void setDelFlag(String delFlag){
-		this.delFlag=delFlag;
-	}
+    public String getDelFlag() {
+        return delFlag;
+    }
 
-	public String getDelFlag(){
-		return delFlag;
-	}
+    public String getMenuId() {
+        return menuId;
+    }
 
+    public void setMenuId(String menuId) {
+        this.menuId = menuId;
+    }
+
+    public Integer getMenuFlag() {
+        return menuFlag;
+    }
+
+    public void setMenuFlag(Integer menuFlag) {
+        this.menuFlag = menuFlag;
+    }
 }
 

+ 1 - 0
src/main/java/com/izouma/awesomeadmin/service/SysMenuService.java

@@ -33,5 +33,6 @@ public interface SysMenuService {
 
     List<TreeNode> getMenuTree(boolean all, Integer userId);
 
+    boolean copySysMenu(SysMenu record);
 }
 

+ 1 - 0
src/main/java/com/izouma/awesomeadmin/service/SysRoleService.java

@@ -35,5 +35,6 @@ public interface SysRoleService {
     boolean addUserRole(Integer userId, Integer roleId);
 
     boolean removeUserRole(Integer userId, Integer roleId);
+
 }
 

+ 51 - 2
src/main/java/com/izouma/awesomeadmin/service/impl/SysMenuServiceImpl.java

@@ -31,11 +31,11 @@ public class SysMenuServiceImpl implements SysMenuService {
     private static Logger logger = Logger.getLogger(SysMenuServiceImpl.class);
 
     @Autowired
-    private SysMenuMapper   sysMenuMapper;
+    private SysMenuMapper sysMenuMapper;
     @Autowired
     private UserInfoService userInfoService;
     @Autowired
-    private SysRoleService  sysRoleService;
+    private SysRoleService sysRoleService;
 
     @Override
     public List<SysMenu> getSysMenuList(SysMenu record) {
@@ -151,6 +151,55 @@ public class SysMenuServiceImpl implements SysMenuService {
         return false;
     }
 
+    @Override
+    public boolean copySysMenu(SysMenu record) {
+
+        logger.info("copySysMenu");
+        try {
+            record.setId(null);
+            record.setCreateDate(new Date());
+            record.setUpdateDate(new Date());
+
+            int updates = sysMenuMapper.insertSelective(record);
+
+            if (updates > 0) {
+
+                if (CollectionUtils.isNotEmpty(record.getChildren())) {
+                    copyChildren(record);
+                }
+
+
+                return true;
+            }
+        } catch (Exception e) {
+            logger.error("copySysMenu", e);
+        }
+
+        return false;
+    }
+
+    /**
+     * 保存子集菜单
+     *
+     * @param record
+     */
+    private void copyChildren(SysMenu record) {
+
+        List<SysMenu> children = record.getChildren();
+        for (SysMenu sysMenu : children) {
+            sysMenu.setParentId(record.getId());
+            sysMenu.setId(null);
+            sysMenu.setCreateDate(new Date());
+            sysMenu.setUpdateDate(new Date());
+
+            sysMenuMapper.insertSelective(sysMenu);
+
+            if (CollectionUtils.isNotEmpty(sysMenu.getChildren())) {
+                copyChildren(sysMenu);
+            }
+        }
+    }
+
     @Override
     public List<SysMenu> getMenuTree() {
         logger.info("getMenuTree");

+ 1 - 0
src/main/java/com/izouma/awesomeadmin/service/impl/SysRoleServiceImpl.java

@@ -6,6 +6,7 @@ import com.izouma.awesomeadmin.dao.SysRoleMapper;
 import com.izouma.awesomeadmin.dto.Page;
 import com.izouma.awesomeadmin.model.SysRole;
 import com.izouma.awesomeadmin.service.SysRoleService;
+import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;

+ 12 - 0
src/main/java/com/izouma/awesomeadmin/util/DatabaseUtil.java

@@ -152,6 +152,11 @@ public class DatabaseUtil {
                     tableField.setSortable(true);
                     tableField.setSearchable("varchar".equalsIgnoreCase(tableField.getJdbcType()) ? true : false);
                     tableField.setFormType("singleLineText");
+                    tableField.setRequired("NO".equals(rs.getString("IS_NULLABLE")) ? true : false);
+                    if ("varchar".equalsIgnoreCase(tableField.getJdbcType())) {
+
+                        tableField.setMaxLength(rs.getInt("CHARACTER_MAXIMUM_LENGTH"));
+                    }
 
                 } else if ("SqlServer".equals(dataSourceInfo.getDatabaseType())) {
                     tableField.setName(rs.getString("COLUMN_NAME"));
@@ -164,6 +169,13 @@ public class DatabaseUtil {
                     tableField.setSortable(true);
                     tableField.setSearchable("varchar".equalsIgnoreCase(tableField.getJdbcType()) ? true : false);
                     tableField.setFormType("singleLineText");
+                    if ("varchar".equalsIgnoreCase(tableField.getJdbcType())) {
+
+                        tableField.setMaxLength(rs.getInt("PRECISION"));
+                    }
+
+                    tableField.setRequired("NO".equals(rs.getString("IS_NULLABLE")) ? true : false);
+
                 }
 
 

+ 18 - 4
src/main/java/com/izouma/awesomeadmin/web/SysMenuController.java

@@ -8,10 +8,7 @@ import com.izouma.awesomeadmin.service.SysMenuService;
 import org.apache.shiro.authz.annotation.RequiresAuthentication;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.HashMap;
 import java.util.List;
@@ -106,6 +103,23 @@ public class SysMenuController {
         return new Result(false, "保存异常");
     }
 
+    /**
+     * 复制菜单
+     *
+     * @param record
+     * @return
+     */
+    @RequestMapping(value = "/copy", method = RequestMethod.POST)
+    @ResponseBody
+    public Result copySysMenu(@RequestBody SysMenu record) {
+
+        boolean num = sysMenuService.copySysMenu(record);
+        if (num) {
+            return new Result(true, "复制成功");
+        }
+        return new Result(false, "复制异常");
+    }
+
     /**
      * <p>删除。</p>
      */

+ 97 - 96
src/main/java/com/izouma/awesomeadmin/web/SysRoleController.java

@@ -20,106 +20,107 @@ import java.util.Map;
 /**
  * sys_role controller类
  * Tue Apr 10 18:09:56 CST 2018  Suo Chen Cheng
- */ 
+ */
 @Controller
 @RequestMapping("/sysRole")
 public class SysRoleController {
 
-	@Autowired
-	private SysRoleService sysRoleService;
-
-
-	/**
-	 * <p>获取全部记录。</p>
-	 */ 
-	@RequestMapping(value = "/all", method = RequestMethod.GET)
-	@ResponseBody
-	public Result all(SysRole record) {
-
-		List<SysRole> pp = sysRoleService.getSysRoleList(record);
-		return new Result(true, pp);
-	}
-
-	/**
-	 * <p>根据Id。</p>
-	 */ 
-	@RequestMapping(value = "/getSysRole", method = RequestMethod.GET)
-	@ResponseBody
-	public Result getSysRole(@RequestParam(required = false, value = "id") String id) {
-
-		SysRole data = sysRoleService.getSysRoleById(id);
-		return new Result(true, data);
-	}
-
-	/**
-	 * <p>根据条件获取。</p>
-	 */ 
-	@RequestMapping(value = "/getOne", method = RequestMethod.GET)
-	@ResponseBody
-	public Result getOne(SysRole record) {
-
-		SysRole data = sysRoleService.getSysRole(record);
-		return new Result(true, data);
-	}
-
-	/**
-	 * <p>分页查询。</p>
-	 */ 
-	@RequestMapping(value = "/page", method = RequestMethod.GET)
-	@ResponseBody
-	public Result page(Page page, SysRole record) {
-
-		Map<String, Object> result = new HashMap<>();
-
-		List<SysRole> pp = sysRoleService.getSysRoleByPage(page, record);
-
-		result.put(AppConstant.PAGE, page);
-		result.put("pp", pp);
-		return new Result(true, result);
-	}
-
-	/**
-	 * <p>保存。</p>
-	 */ 
-	@RequestMapping(value = "/save", method = RequestMethod.POST)
-	@ResponseBody
-	public Result save(SysRole record) {
-
-		boolean num = sysRoleService.createSysRole(record);
-
-		if (num) {
-			return new Result(true, record.getId());
-		}
-		return new Result(false, "保存异常");
-	}
-
-	/**
-	 * <p>更新信息。</p>
-	 */ 
-	@RequestMapping(value = "/update", method = RequestMethod.POST)
-	@ResponseBody
-	public Result updateSysRole(SysRole record) {
-
-		boolean num = sysRoleService.updateSysRole(record);
-		if (num) {
-			return new Result(true, "保存成功");
-		}
-		return new Result(false, "保存异常");
-	}
-
-	/**
-	 * <p>删除。</p>
-	 */ 
-	@RequestMapping(value = "/del", method = RequestMethod.POST)
-	@ResponseBody
-	public Result deleteSysRole(@RequestParam(required = true, value = "id") String id) {
-
-		boolean num = sysRoleService.deleteSysRole(id);
-		if (num) {
-			return new Result(true, "删除成功");
-		}
-		return new Result(false, "删除异常");
-	}
+    @Autowired
+    private SysRoleService sysRoleService;
+
+
+    /**
+     * <p>获取全部记录。</p>
+     */
+    @RequestMapping(value = "/all", method = RequestMethod.GET)
+    @ResponseBody
+    public Result all(SysRole record) {
+
+        List<SysRole> pp = sysRoleService.getSysRoleList(record);
+        return new Result(true, pp);
+    }
+
+    /**
+     * <p>根据Id。</p>
+     */
+    @RequestMapping(value = "/getSysRole", method = RequestMethod.GET)
+    @ResponseBody
+    public Result getSysRole(@RequestParam(required = false, value = "id") String id) {
+
+        SysRole data = sysRoleService.getSysRoleById(id);
+        return new Result(true, data);
+    }
+
+    /**
+     * <p>根据条件获取。</p>
+     */
+    @RequestMapping(value = "/getOne", method = RequestMethod.GET)
+    @ResponseBody
+    public Result getOne(SysRole record) {
+
+        SysRole data = sysRoleService.getSysRole(record);
+        return new Result(true, data);
+    }
+
+    /**
+     * <p>分页查询。</p>
+     */
+    @RequestMapping(value = "/page", method = RequestMethod.GET)
+    @ResponseBody
+    public Result page(Page page, SysRole record) {
+
+        Map<String, Object> result = new HashMap<>();
+
+        List<SysRole> pp = sysRoleService.getSysRoleByPage(page, record);
+
+        result.put(AppConstant.PAGE, page);
+        result.put("pp", pp);
+        return new Result(true, result);
+    }
+
+    /**
+     * <p>保存。</p>
+     */
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @ResponseBody
+    public Result save(SysRole record) {
+
+        boolean num = sysRoleService.createSysRole(record);
+
+        if (num) {
+            return new Result(true, record.getId());
+        }
+        return new Result(false, "保存异常");
+    }
+
+    /**
+     * <p>更新信息。</p>
+     */
+    @RequestMapping(value = "/update", method = RequestMethod.POST)
+    @ResponseBody
+    public Result updateSysRole(SysRole record) {
+
+        boolean num = sysRoleService.updateSysRole(record);
+        if (num) {
+            return new Result(true, "保存成功");
+        }
+        return new Result(false, "保存异常");
+    }
+
+    /**
+     * <p>删除。</p>
+     */
+    @RequestMapping(value = "/del", method = RequestMethod.POST)
+    @ResponseBody
+    public Result deleteSysRole(@RequestParam(required = true, value = "id") String id) {
+
+        boolean num = sysRoleService.deleteSysRole(id);
+        if (num) {
+            return new Result(true, "删除成功");
+        }
+        return new Result(false, "删除异常");
+    }
+
 
 }
 

+ 27 - 22
src/main/vue/package-lock.json

@@ -456,6 +456,11 @@
         "postcss-value-parser": "3.3.0"
       }
     },
+    "awe-dnd": {
+      "version": "0.3.1",
+      "resolved": "http://registry.npm.taobao.org/awe-dnd/download/awe-dnd-0.3.1.tgz",
+      "integrity": "sha1-TKsR0zgDwQQ1+bP0ow2DiottinQ="
+    },
     "aws-sign2": {
       "version": "0.7.0",
       "resolved": "http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz",
@@ -4205,7 +4210,7 @@
           "dev": true,
           "optional": true,
           "requires": {
-            "safer-buffer": "^2.1.0"
+            "safer-buffer": "2.1.2"
           }
         },
         "ignore-walk": {
@@ -4214,7 +4219,7 @@
           "dev": true,
           "optional": true,
           "requires": {
-            "minimatch": "^3.0.4"
+            "minimatch": "3.0.4"
           }
         },
         "inflight": {
@@ -4243,7 +4248,7 @@
           "bundled": true,
           "dev": true,
           "requires": {
-            "number-is-nan": "^1.0.0"
+            "number-is-nan": "1.0.1"
           }
         },
         "isarray": {
@@ -4257,7 +4262,7 @@
           "bundled": true,
           "dev": true,
           "requires": {
-            "brace-expansion": "^1.1.7"
+            "brace-expansion": "1.1.11"
           }
         },
         "minimist": {
@@ -4303,9 +4308,9 @@
           "dev": true,
           "optional": true,
           "requires": {
-            "debug": "^2.1.2",
-            "iconv-lite": "^0.4.4",
-            "sax": "^1.2.4"
+            "debug": "2.6.9",
+            "iconv-lite": "0.4.21",
+            "sax": "1.2.4"
           }
         },
         "node-pre-gyp": {
@@ -4332,8 +4337,8 @@
           "dev": true,
           "optional": true,
           "requires": {
-            "abbrev": "1",
-            "osenv": "^0.1.4"
+            "abbrev": "1.1.1",
+            "osenv": "0.1.5"
           }
         },
         "npm-bundled": {
@@ -4348,8 +4353,8 @@
           "dev": true,
           "optional": true,
           "requires": {
-            "ignore-walk": "^3.0.1",
-            "npm-bundled": "^1.0.1"
+            "ignore-walk": "3.0.1",
+            "npm-bundled": "1.0.3"
           }
         },
         "npmlog": {
@@ -4401,8 +4406,8 @@
           "dev": true,
           "optional": true,
           "requires": {
-            "os-homedir": "^1.0.0",
-            "os-tmpdir": "^1.0.0"
+            "os-homedir": "1.0.2",
+            "os-tmpdir": "1.0.2"
           }
         },
         "path-is-absolute": {
@@ -4423,10 +4428,10 @@
           "dev": true,
           "optional": true,
           "requires": {
-            "deep-extend": "^0.5.1",
-            "ini": "~1.3.0",
-            "minimist": "^1.2.0",
-            "strip-json-comments": "~2.0.1"
+            "deep-extend": "0.5.1",
+            "ini": "1.3.5",
+            "minimist": "1.2.0",
+            "strip-json-comments": "2.0.1"
           },
           "dependencies": {
             "minimist": {
@@ -4501,9 +4506,9 @@
           "bundled": true,
           "dev": true,
           "requires": {
-            "code-point-at": "^1.0.0",
-            "is-fullwidth-code-point": "^1.0.0",
-            "strip-ansi": "^3.0.0"
+            "code-point-at": "1.1.0",
+            "is-fullwidth-code-point": "1.0.0",
+            "strip-ansi": "3.0.1"
           }
         },
         "string_decoder": {
@@ -4512,7 +4517,7 @@
           "dev": true,
           "optional": true,
           "requires": {
-            "safe-buffer": "~5.1.0"
+            "safe-buffer": "5.1.1"
           }
         },
         "strip-ansi": {
@@ -4520,7 +4525,7 @@
           "bundled": true,
           "dev": true,
           "requires": {
-            "ansi-regex": "^2.0.0"
+            "ansi-regex": "2.1.1"
           }
         },
         "strip-json-comments": {

+ 1 - 0
src/main/vue/package.json

@@ -15,6 +15,7 @@
     "@fortawesome/fontawesome": "^1.1.8",
     "@fortawesome/fontawesome-free-solid": "^5.0.13",
     "@fortawesome/vue-fontawesome": "0.0.22",
+    "awe-dnd": "^0.3.1",
     "axios": "^0.18.0",
     "chart.js": "^2.7.2",
     "date-fns": "^1.29.0",

+ 3 - 0
src/main/vue/src/entries/admin.js

@@ -9,6 +9,8 @@ import RichText from '../components/RichText'
 import VueI18n from 'vue-i18n'
 import VueAMap from 'vue-amap'
 
+import VueDND from 'awe-dnd';
+
 import 'normalize.css/normalize.css'
 import 'element-ui/lib/theme-chalk/index.css'
 import '../main.less'
@@ -24,6 +26,7 @@ VueAMap.initAMapApiLoader({
 Vue.config.productionTip = false;
 Vue.use(ElementUI);
 Vue.use(VueI18n);
+Vue.use(VueDND);
 Vue.component('multi-upload', MultiUpload);
 Vue.component('single-upload', SingleUpload);
 Vue.component('rich-text', RichText);

+ 83 - 15
src/main/vue/src/pages/GenCode.vue

@@ -77,7 +77,16 @@
 			<el-form-item prop="fields" label="数据">
 				<el-tabs value="1" type="border-card">
 					<el-tab-pane label="字段" name="1">
-						<el-table :data="fields">
+						<el-table :data="fields" border ref="fieldsTable">
+							<el-table-column v-if="multipleMode" align="center" type="selection" width="50">
+							</el-table-column>
+							<el-table-column width="130" align="center">
+								<template slot-scope="{ row, column, $index }" v-if="$index>1||formData.dataBaseType!='Mysql'">
+									<!-- <el-button @click="moveUp($index)" size="small" type="text">上移</el-button>
+									<el-button @click="moveDown($index)" size="small" type="text">下移</el-button> -->
+									<el-button @click="removeField($index)" size="small" type="text">删除</el-button>
+								</template>
+							</el-table-column>
 							<el-table-column prop="name" label="字段名" min-width="150" align="center">
 								<template slot-scope="{row}">
 									<el-input v-model="row.name"></el-input>
@@ -125,18 +134,20 @@
 									<el-checkbox v-model="row.autoIncrease"></el-checkbox>
 								</template>
 							</el-table-column>
-							<el-table-column width="130" align="center">
-								<template slot-scope="{ row, column, $index }" v-if="$index>1||formData.dataBaseType!='Mysql'">
-									<el-button @click="moveUp($index)" size="small" type="text">上移</el-button>
-									<el-button @click="moveDown($index)" size="small" type="text">下移</el-button>
-									<el-button @click="removeField($index)" size="small" type="text">删除</el-button>
-								</template>
-							</el-table-column>
+
 						</el-table>
 						<el-button @click="addField" type="text" icon="el-icon-plus">添加</el-button>
+						<el-button size="small" v-if="!multipleMode" @click="toggleMultipleMode(true)">批量编辑</el-button>
+						<el-button-group v-else>
+							<el-button size="small" @click="operation1" type="danger" plain>批量删除</el-button>
+							<el-button size="small" @click="operation2" v-if="0">批量上移</el-button>
+							<el-button size="small" @click="toggleMultipleMode(false)">取消</el-button>
+						</el-button-group>
+						<el-button  @click="changeRankDialog = !changeRankDialog" type="primary" size="small" icon="el-icon-sort" class="filter-item">排序
+						</el-button>
 					</el-tab-pane>
 					<el-tab-pane label="页面属性" name="2">
-						<el-table :data="editableFields">
+						<el-table :data="editableFields" border>
 							<el-table-column prop="name" label="字段" align="center">
 							</el-table-column>
 							<el-table-column prop="showInList" label="列表" width="50" align="center">
@@ -192,10 +203,16 @@
 						</el-table>
 					</el-tab-pane>
 					<el-tab-pane label="表单校验" name="3">
-						<el-table :data="fields">
+						<el-table :data="fields" border>
 							<el-table-column prop="name" label="字段" align="center">
 							</el-table-column>
-							<el-table-column prop="logicalKey" label="逻辑关键字" align="center">
+							<el-table-column prop="remark" label="描述" min-width="150" align="center">
+							</el-table-column>
+							<el-table-column prop="jdbcType" label="类型" width="150" align="center">
+							</el-table-column>
+							<el-table-column prop="length" label="长度" width="80" align="center">
+							</el-table-column>
+							<el-table-column prop="logicalKey" label="逻辑关键字" width="50" align="center">
 								<template slot-scope="{row}">
 									<el-checkbox v-model="row.logicalKey"></el-checkbox>
 								</template>
@@ -240,7 +257,7 @@
 						</el-table>
 					</el-tab-pane>
 					<el-tab-pane label="子表" name="4">
-						<el-table :data="subtables">
+						<el-table :data="subtables" border>
 
 							<el-table-column prop="name" label="控件名" width="150" align="center">
 								<template slot-scope="{row}">
@@ -286,7 +303,7 @@
 						<el-button @click="addSubtable" type="text" icon="el-icon-plus">添加</el-button>
 					</el-tab-pane>
 					<el-tab-pane label="排序" name="5">
-						<el-table :data="tableSortFields">
+						<el-table :data="tableSortFields" border>
 
 							<el-table-column prop="name" label="字段" align="center">
 								<template slot-scope="{row}">
@@ -315,7 +332,7 @@
 						<el-button @click="addSortField" type="text" icon="el-icon-plus">添加</el-button>
 					</el-tab-pane>
 					<el-tab-pane label="默认条件" name="6">
-						<el-table :data="advancedQueryFields">
+						<el-table :data="advancedQueryFields" border>
 
 							<el-table-column prop="link" label="链接符" align="center">
 								<template slot-scope="{row}">
@@ -440,11 +457,15 @@
 
 		</el-dialog>
 
+		<el-dialog title="调整顺序" :visible.sync="changeRankDialog">
+			<div class="color-item" v-for="color in fields" v-dragging="{ item: color, list: fields, group: 'color' }" :key="color.name">{{color.name}}——{{color.remark}}</div>
+		</el-dialog>
+
 	</div>
 </template>
 
 <script>
-import axios from 'axios'
+import axios from 'axios';
 
 export default {
 	created() {
@@ -678,6 +699,8 @@ export default {
 			optionsFields: [],
 			tableSortFields: [],
 			advancedQueryFields: [],
+			multipleMode: false,
+			changeRankDialog: false,
 		}
 	},
 	computed: {
@@ -687,6 +710,18 @@ export default {
 			});
 		},
 
+		selection() {
+			return this.$refs.fieldsTable.selection.map(i => i.name);
+		}
+
+
+	},
+	mounted() {
+		this.$dragging.$on('dragged', ({ value }) => {
+			console.log(value.item)
+			console.log(value.list)
+			console.log(value.otherData)
+		})
 	},
 	methods: {
 		onSave() {
@@ -746,6 +781,17 @@ export default {
 				this.fields.splice(i, 1);
 			}
 		},
+		removeFieldByName(name) {
+			var that = this;
+			that.fields.forEach(function (value, index) {
+				//只有为true时才删除
+				if (value.name === name) {
+					that.fields.splice(index, 1);
+					// console.log(index);
+				}
+			});
+		},
+
 		updateReadTable() {
 			this.formData.readTable = !this.formData.readTable;
 			this.formData.genTable = !this.formData.readTable;
@@ -983,6 +1029,28 @@ export default {
 
 
 		},
+		operation1() {
+			if (this.selection.length > 0) {
+				this.selection.forEach(item => {
+					this.removeFieldByName(item);
+				}
+
+				);
+			}
+
+
+		},
+		operation2() {
+
+
+
+		},
+		toggleMultipleMode(multipleMode) {
+			this.multipleMode = multipleMode;
+			if (!multipleMode) {
+				this.$refs.fieldsTable.clearSelection();
+			}
+		},
 
 
 	}

+ 428 - 507
src/main/vue/src/pages/TestAaas.vue

@@ -1,27 +1,24 @@
 <template>
     <div>
         <div class="filters-container">
-        
+
             <el-input v-if="isModulesShow('search')" placeholder="关键字" size="small" v-model="filter1" clearable class="filter-item"></el-input>
             <el-button v-if="isModulesShow('search')" @click="searchData" type="primary" size="small" icon="el-icon-search" class="filter-item">搜索
             </el-button>
-            <el-button v-if="isModulesShow('query')" @click="showAdvancedQueryDialog = !showAdvancedQueryDialog" type="primary" size="small"
-                       icon="el-icon-search" class="filter-item">高级查询
+            <el-button v-if="isModulesShow('query')" @click="showAdvancedQueryDialog = !showAdvancedQueryDialog" type="primary" size="small" icon="el-icon-search" class="filter-item">高级查询
             </el-button>
-            <el-button v-if="isModulesShow('orders')" @click="showTableSortDialog = !showTableSortDialog" type="primary" size="small"
-                       icon="el-icon-sort" class="filter-item">排序
+            <el-button v-if="isModulesShow('orders')" @click="showTableSortDialog = !showTableSortDialog" type="primary" size="small" icon="el-icon-sort" class="filter-item">排序
             </el-button>
-            <el-button v-if="isModulesShow('add')" @click="editRow({id:0,column:$route.query.column})" type="primary"
-                       size="small" icon="el-icon-edit"
-                       class="filter-item">添加
+            <el-button v-if="isModulesShow('add')" @click="editRow({id:0,column:$route.query.column})" type="primary" size="small" icon="el-icon-edit" class="filter-item">添加
             </el-button>
             <el-button v-if="isModulesShow('excel')" @click="exportExcel" type="primary" size="small" icon="el-icon-share" class="filter-item">导出EXCEL
             </el-button>
-            <el-button  @click="goBack" type="primary" size="small"  class="filter-item">返回
+            <el-button @click="goBack" type="primary" size="small" class="filter-item">返回
             </el-button>
             <el-dropdown trigger="click" size="medium" class="table-column-filter">
                 <span>
-                  筛选数据<i class="el-icon-arrow-down el-icon--right"></i>
+                    筛选数据
+                    <i class="el-icon-arrow-down el-icon--right"></i>
                 </span>
                 <el-dropdown-menu slot="dropdown" class="table-column-filter-wrapper">
                     <el-checkbox v-for="item in tableColumns" :key="item.value" v-model="item.show">{{item.label}}
@@ -29,151 +26,79 @@
                 </el-dropdown-menu>
             </el-dropdown>
         </div>
-        <el-table
-                :data="tableData"
-                :height="tableHeight"
-                row-key="id"
-                ref="table"
-                size="small">
-            <el-table-column label="test_aaa" align="center" >
-            <el-table-column
-                    v-if="multipleMode"
-                    align="center"
-                    type="selection"
-                    width="50">
-            </el-table-column>
-                <el-table-column
-                        label="操作"
-                        align="center"
-                        fixed="left"
-                        min-width="150"
-                >
+        <el-table :data="tableData" :height="tableHeight" row-key="id" ref="table" size="small">
+            <el-table-column label="test_aaa" align="center">
+                <el-table-column v-if="multipleMode" align="center" type="selection" width="50">
+                </el-table-column>
+                <el-table-column label="操作" align="center" fixed="left" min-width="150">
                     <template slot-scope="scope">
 
-                        <el-button v-if="isModulesShow('edit')"  @click="editRow(scope.row)" type="primary" size="mini" plain>编辑</el-button>
-                                                    <el-dropdown>
-                                <el-button type="primary" size="mini" plain>
-                                    更多
-                                    <i class="el-icon-arrow-down el-icon--right"></i>
+                        <el-button v-if="isModulesShow('edit')" @click="editRow(scope.row)" type="primary" size="mini" plain>编辑</el-button>
+                        <el-dropdown>
+                            <el-button type="primary" size="mini" plain>
+                                更多
+                                <i class="el-icon-arrow-down el-icon--right"></i>
+                            </el-button>
+                            <el-dropdown-menu slot="dropdown">
+                                <el-button @click="$router.push({path:'/TestBbbs',query:{column:scope.row.testName+',nameAaa'}})" type="primary" size="small" plain>子表bbb
                                 </el-button>
-                                <el-dropdown-menu slot="dropdown">
-                                                                            <el-button @click="$router.push({path:'/TestBbbs',query:{column:scope.row.testName+',nameAaa'}})" type="primary" size="small" plain>子表bbb
-                                        </el-button>
-                                                                    </el-dropdown-menu>
-                            </el-dropdown>
-                        
+                            </el-dropdown-menu>
+                        </el-dropdown>
+
                     </template>
                 </el-table-column>
-            <el-table-column
-                    type="index"
-                    min-width="50"
-                    align="center">
-            </el-table-column>
-                            
-                                            <el-table-column
-                                v-if="isColumnShow('id')"
-                                prop="id"
-                                label="id"
-                                min-width="100">
-                        </el-table-column>
-                                                                                            
-                                            <el-table-column
-                                v-if="isColumnShow('imageUrl')"
-                                prop="imageUrl"
-                                label="图片"
-                                min-width="100">
-                            <template slot-scope="{row}">
-                                <img :src="row.imageUrl" @click="showImg(row.imageUrl)" style="width: 100px;height: 100px;vertical-align: middle;" />
-                            </template>
-
-                        </el-table-column>
-                                                                    
-                                            <el-table-column
-                                v-if="isColumnShow('testName')"
-                                prop="testName"
-                                label="枚举单选"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('remark')"
-                                prop="remark"
-                                label="接口单选"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('multiSelect')"
-                                prop="multiSelect"
-                                label="表多选"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('testTime')"
-                                prop="testTime"
-                                label="时间"
-                                :formatter="DateFormatter"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('loginUser')"
-                                prop="loginUser"
-                                label="登录名"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('testcTime')"
-                                prop="testcTime"
-                                label="当前时间"
-                                :formatter="DateTimeFormatter"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('testcDate')"
-                                prop="testcDate"
-                                label="当前日期"
-                                :formatter="DateFormatter"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('workNumber')"
-                                prop="workNumber"
-                                label="工号"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('departId')"
-                                prop="departId"
-                                label="部门"
-                                min-width="100">
-                        </el-table-column>
-                                                
+                <el-table-column type="index" min-width="50" align="center">
+                </el-table-column>
+
+                <el-table-column v-if="isColumnShow('id')" prop="id" label="id" min-width="100">
+                </el-table-column>
+
+                <el-table-column v-if="isColumnShow('imageUrl')" prop="imageUrl" label="图片" min-width="100">
+                    <template slot-scope="{row}">
+                        <img :src="row.imageUrl" @click="showImg(row.imageUrl)" style="width: 100px;height: 100px;vertical-align: middle;" />
+                    </template>
+
+                </el-table-column>
+
+                <el-table-column v-if="isColumnShow('testName')" prop="testName" label="枚举单选" min-width="100">
+                </el-table-column>
+
+                <el-table-column v-if="isColumnShow('remark')" prop="remark" label="接口单选" min-width="100">
+                </el-table-column>
+
+                <el-table-column v-if="isColumnShow('multiSelect')" prop="multiSelect" label="表多选" min-width="100">
+                </el-table-column>
+
+                <el-table-column v-if="isColumnShow('testTime')" prop="testTime" label="时间" :formatter="DateFormatter" min-width="100">
+                </el-table-column>
+
+                <el-table-column v-if="isColumnShow('loginUser')" prop="loginUser" label="登录名" min-width="100">
+                </el-table-column>
+
+                <el-table-column v-if="isColumnShow('testcTime')" prop="testcTime" label="当前时间" :formatter="DateTimeFormatter" min-width="100">
+                </el-table-column>
+
+                <el-table-column v-if="isColumnShow('testcDate')" prop="testcDate" label="当前日期" :formatter="DateFormatter" min-width="100">
+                </el-table-column>
+
+                <el-table-column v-if="isColumnShow('workNumber')" prop="workNumber" label="工号" min-width="100">
+                </el-table-column>
+
+                <el-table-column v-if="isColumnShow('departId')" prop="departId" label="部门" min-width="100">
+                </el-table-column>
+
             </el-table-column>
         </el-table>
         <div class="pagination-wrapper">
             <div class="multiple-mode-wrapper">
                 <el-button size="small" v-if="!multipleMode" @click="toggleMultipleMode(true)">批量编辑</el-button>
                 <el-button-group v-else>
-                    <el-button size="small" v-if="isModulesShow('del')"  @click="operation1" type="danger" plain>批量删除</el-button>
+                    <el-button size="small" v-if="isModulesShow('del')" @click="operation1" type="danger" plain>批量删除</el-button>
                     <el-button size="small" @click="operation2" v-if="0">批量操作2</el-button>
                     <el-button size="small" @click="toggleMultipleMode(false)">取消</el-button>
                 </el-button-group>
             </div>
-            <el-pagination
-                    background
-                    @size-change="pageSizeChange"
-                    @current-change="currentPageChange"
-                    :current-page="currentPage"
-                    :page-sizes="[10, 20, 30, 40, 50]"
-                    :page-size="pageSize"
-                    layout="total, sizes, prev, pager, next, jumper"
-                    :total="totalNumber">
+            <el-pagination background @size-change="pageSizeChange" @current-change="currentPageChange" :current-page="currentPage" :page-sizes="[10, 20, 30, 40, 50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="totalNumber">
             </el-pagination>
         </div>
         <el-dialog title="高级查询" :visible.sync="showAdvancedQueryDialog">
@@ -194,21 +119,19 @@
                     <template slot-scope="{row}">
                         <el-select v-model="row.name" :disabled="row.noChange">
 
-                            <el-option v-for="item in advancedQueryColumns" :label="item.label" :value="item.value"
-                                       :key="item.value"></el-option>
+                            <el-option v-for="item in advancedQueryColumns" :label="item.label" :value="item.value" :key="item.value"></el-option>
                         </el-select>
                     </template>
                 </el-table-column>
                 <el-table-column prop="searchMethod" label="搜索方式" width="150" align="center">
                     <template slot-scope="{row}">
                         <el-select v-model="row.searchMethod" :disabled="row.noChange">
-                            <el-option v-for="item in searchMethods" :label="item" :value="item"
-                                       :key="item"></el-option>
+                            <el-option v-for="item in searchMethods" :label="item" :value="item" :key="item"></el-option>
                         </el-select>
                     </template>
                 </el-table-column>
                 <el-table-column prop="value" label="参数" align="center">
-                    <template slot-scope="{row}" >
+                    <template slot-scope="{row}">
                         <el-input v-model="row.value" :disabled="row.noChange"></el-input>
                     </template>
                 </el-table-column>
@@ -233,8 +156,7 @@
                     <template slot-scope="{row}">
                         <el-select v-model="row.name">
 
-                            <el-option v-for="item in advancedQueryColumns" :label="item.label" :value="item.value"
-                                       :key="item.value"></el-option>
+                            <el-option v-for="item in advancedQueryColumns" :label="item.label" :value="item.value" :key="item.value"></el-option>
                         </el-select>
                     </template>
                 </el-table-column>
@@ -272,390 +194,316 @@
     </div>
 </template>
 <script>
-    import {mapState} from 'vuex'
-    import {format} from 'date-fns'
-    import zh from 'date-fns/locale/zh_cn'
-    import testAaa from '../pages/TestAaa'
-    export default {
-        created() {
+import { mapState } from 'vuex'
+import { format } from 'date-fns'
+import zh from 'date-fns/locale/zh_cn'
+import testAaa from '../pages/TestAaa'
+export default {
+    created() {
+        this.getData();
+    },
+    data() {
+        return {
+            editRowInfo: {
+
+                multiSelect: [],
+
+                loginUser: '',
+
+                testcTime: format(new Date(), 'YYYY/MM/DD HH:mm', { locale: zh }),
+
+                testcDate: format(new Date(), 'YYYY/MM/DD', { locale: zh }),
+
+                workNumber: '',
+
+                departId: '',
+
+            },
+            editDialogVisible: false,
+            totalNumber: 0,
+            totalPage: 10,
+            currentPage: 1,
+            pageSize: 20,
+            tableData: [],
+            filter1: '',
+            filter2: '',
+            tableColumns: [
+                {
+                    label: 'id',
+                    value: 'id',
+                    show: true
+                },
+                {
+                    label: '图片',
+                    value: 'imageUrl',
+                    show: true
+                },
+                {
+                    label: '枚举单选',
+                    value: 'testName',
+                    show: true
+                },
+                {
+                    label: '接口单选',
+                    value: 'remark',
+                    show: true
+                },
+                {
+                    label: '表多选',
+                    value: 'multiSelect',
+                    show: true
+                },
+                {
+                    label: '时间',
+                    value: 'testTime',
+                    show: true
+                },
+                {
+                    label: '登录名',
+                    value: 'loginUser',
+                    show: true
+                },
+                {
+                    label: '当前时间',
+                    value: 'testcTime',
+                    show: true
+                },
+                {
+                    label: '当前日期',
+                    value: 'testcDate',
+                    show: true
+                },
+                {
+                    label: '工号',
+                    value: 'workNumber',
+                    show: true
+                },
+                {
+                    label: '部门',
+                    value: 'departId',
+                    show: true
+                },
+            ],
+            modules: 'search,query,orders,edit,excel,add,del'.split(',').map(i => String(i))
+            ,
+            multipleMode: false,
+            showAdvancedQueryDialog: false,
+            advancedQueryFields: [
+                {
+                    link: 'AND',
+                    name: 'del_flag',
+                    searchMethod: '=',
+                    value: 'N',
+                    noChange: true,
+                },
+                {
+                    link: 'AND',
+                    name: 'del_flag',
+                    searchMethod: '=',
+                    value: 'N',
+                },
+            ],
+            showTableSortDialog: false,
+            tableSortFields: [
+                {
+                    name: 'remark',
+                    order: 'asc'
+                },
+                {
+                    name: 'test_time',
+                    order: 'desc'
+                },
+            ],
+            searchMethods: ['=', '!=', '>', '>=', '<', '<=', 'like'],
+            advancedQueryColumns: [
+                {
+                    label: 'id',
+                    value: 'id'
+                },
+                {
+                    label: '图片',
+                    value: 'image_url'
+                },
+                {
+                    label: '枚举单选',
+                    value: 'test_name'
+                },
+                {
+                    label: '接口单选',
+                    value: 'remark'
+                },
+                {
+                    label: '表多选',
+                    value: 'multi_select'
+                },
+                {
+                    label: '时间',
+                    value: 'test_time'
+                },
+                {
+                    label: '登录名',
+                    value: 'login_user'
+                },
+                {
+                    label: '当前时间',
+                    value: 'testc_time'
+                },
+                {
+                    label: '当前日期',
+                    value: 'testc_date'
+                },
+                {
+                    label: '工号',
+                    value: 'work_number'
+                },
+                {
+                    label: '部门',
+                    value: 'depart_id'
+                },
+            ],
+            advancedQuerySearchKey: '',
+            orderByStr: '',
+            imgSrc: '',
+            imageDialogVisible: false,
+        }
+    },
+    computed: {
+        ...mapState(['tableHeight', 'userInfo']),
+        selection() {
+            return this.$refs.table.selection.map(i => i.id);
+        }
+    },
+    methods: {
+        changeEditDialogVisible(value) {
+            this.editDialogVisible = value
+        },
+        changeEdit() {
+            this.editDialogVisible = false
             this.getData();
         },
-        data() {
-            return {
-                editRowInfo: {
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
-                    multiSelect : [],
-
-                                                                                                                                                                                                                                                                                                            loginUser : '',
-
-                                                                                                                testcTime : format(new Date(), 'YYYY/MM/DD HH:mm', { locale: zh }),
-
-                                                                                                                                                                testcDate : format(new Date(), 'YYYY/MM/DD', { locale: zh }),
-
-                                                                                                                                                                                workNumber : '',
-
-                                                                                                                                                                departId :'',
-
-                                            },
-                editDialogVisible: false,
-                totalNumber: 0,
-                totalPage: 10,
-                currentPage: 1,
-                pageSize: 20,
-                tableData: [],
-                filter1: '',
-                filter2: '',
-                tableColumns: [
-                                                                        {
-                                label: 'id',
-                                value: 'id',
-                                show: true
-                            },
-                                                                                                                                            {
-                                label: '图片',
-                                value: 'imageUrl',
-                                show: true
-                            },
-                                                                                                {
-                                label: '枚举单选',
-                                value: 'testName',
-                                show: true
-                            },
-                                                                                                {
-                                label: '接口单选',
-                                value: 'remark',
-                                show: true
-                            },
-                                                                                                {
-                                label: '表多选',
-                                value: 'multiSelect',
-                                show: true
-                            },
-                                                                                                {
-                                label: '时间',
-                                value: 'testTime',
-                                show: true
-                            },
-                                                                                                {
-                                label: '登录名',
-                                value: 'loginUser',
-                                show: true
-                            },
-                                                                                                {
-                                label: '当前时间',
-                                value: 'testcTime',
-                                show: true
-                            },
-                                                                                                {
-                                label: '当前日期',
-                                value: 'testcDate',
-                                show: true
-                            },
-                                                                                                {
-                                label: '工号',
-                                value: 'workNumber',
-                                show: true
-                            },
-                                                                                                {
-                                label: '部门',
-                                value: 'departId',
-                                show: true
-                            },
-                                                            ],
-                modules:                'search,query,orders,edit,excel,add,del'.split(',').map(i => String(i))
-             ,
-                multipleMode: false,
-                showAdvancedQueryDialog: false,
-                advancedQueryFields: [
-                                                            {
-                            link: 'AND',
-                            name: 'del_flag',
-                            searchMethod: '=',
-                            value: 'N',
-                                                            noChange: true,
-                                                    },
-                                                                                {
-                            link: 'AND',
-                            name: 'del_flag',
-                            searchMethod: '=',
-                            value: 'N',
-                                                    },
-                                                ],
-                showTableSortDialog: false,
-                tableSortFields: [
-                                                            {
-                            name: 'remark',
-                            order: 'asc'
-                        },
-                                                                                {
-                            name: 'test_time',
-                            order: 'desc'
-                        },
-                                                ],
-                searchMethods: ['=', '!=', '>', '>=', '<', '<=', 'like'],
-                advancedQueryColumns: [
-                                                                        {
-                                label: 'id',
-                                value: 'id'
-                            },
-                                                                                                                                            {
-                                label: '图片',
-                                value: 'image_url'
-                            },
-                                                                                                {
-                                label: '枚举单选',
-                                value: 'test_name'
-                            },
-                                                                                                {
-                                label: '接口单选',
-                                value: 'remark'
-                            },
-                                                                                                {
-                                label: '表多选',
-                                value: 'multi_select'
-                            },
-                                                                                                {
-                                label: '时间',
-                                value: 'test_time'
-                            },
-                                                                                                {
-                                label: '登录名',
-                                value: 'login_user'
-                            },
-                                                                                                {
-                                label: '当前时间',
-                                value: 'testc_time'
-                            },
-                                                                                                {
-                                label: '当前日期',
-                                value: 'testc_date'
-                            },
-                                                                                                {
-                                label: '工号',
-                                value: 'work_number'
-                            },
-                                                                                                {
-                                label: '部门',
-                                value: 'depart_id'
-                            },
-                                                            ],
-                advancedQuerySearchKey: '',
-                orderByStr: '',
-                imgSrc: '',
-                imageDialogVisible: false,
-            }
+        pageSizeChange(size) {
+            this.currentPage = 1;
+            this.pageSize = size;
+            this.getData();
         },
-        computed: {
-            ...mapState(['tableHeight','userInfo']),
-            selection() {
-                return this.$refs.table.selection.map(i => i.id);
-            }
+        currentPageChange(page) {
+            this.currentPage = page;
+            this.getData();
         },
-        methods: {
-            changeEditDialogVisible(value) {
-                this.editDialogVisible = value
-            },
-            changeEdit() {
-                this.editDialogVisible = false
-                this.getData();
-            },
-            pageSizeChange(size) {
-                this.currentPage = 1;
-                this.pageSize = size;
-                this.getData();
-            },
-            currentPageChange(page) {
-                this.currentPage = page;
-                this.getData();
-            },
-            getData() {
+        getData() {
 
-                if (this.advancedQueryFields.length > 0) {
+            if (this.advancedQueryFields.length > 0) {
 
-                    var templist = [];
+                var templist = [];
 
-                    this.advancedQueryFields.forEach(item => {
-                        if (item.link && item.name && item.searchMethod && item.value) {
+                this.advancedQueryFields.forEach(item => {
+                    if (item.link && item.name && item.searchMethod && item.value) {
                         var tempItem = item.link + '_,' + item.name + '_,' + item.searchMethod + '_,' + item.value;
                         templist.push(tempItem);
                     }
                 })
 
-                    if (templist.length > 0) {
+                if (templist.length > 0) {
 
-                        this.advancedQuerySearchKey = templist.join('_;');
-                    }
+                    this.advancedQuerySearchKey = templist.join('_;');
                 }
+            }
 
 
-                if (this.tableSortFields.length > 0) {
+            if (this.tableSortFields.length > 0) {
 
-                    var templist = [];
+                var templist = [];
 
-                    this.tableSortFields.forEach(item => {
-                        if (item.name && item.order) {
+                this.tableSortFields.forEach(item => {
+                    if (item.name && item.order) {
                         var tempItem = item.name + '_,' + item.order;
                         templist.push(tempItem);
                     }
                 })
 
-                    if (templist.length > 0) {
+                if (templist.length > 0) {
 
-                        this.orderByStr = templist.join('_;');
-                    }
+                    this.orderByStr = templist.join('_;');
                 }
+            }
 
 
-                var data = {
-                    currentPage: this.currentPage,
-                    pageNumber: this.pageSize,
-                    searchKey: this.filter1,
-                    advancedQuery: this.advancedQuerySearchKey,
-                    orderByStr: this.orderByStr,
-                }
+            var data = {
+                currentPage: this.currentPage,
+                pageNumber: this.pageSize,
+                searchKey: this.filter1,
+                advancedQuery: this.advancedQuerySearchKey,
+                orderByStr: this.orderByStr,
+            }
 
-                if (this.$route.query.column) {
-                    var tempColumn = this.$route.query.column;
-                    data[tempColumn.split(',')[1]] = tempColumn.split(',')[0];
-                }
+            if (this.$route.query.column) {
+                var tempColumn = this.$route.query.column;
+                data[tempColumn.split(',')[1]] = tempColumn.split(',')[0];
+            }
 
-                this.$http.get({
-                    url: '/testAaa/page',
-                    data: data
-                }).then(res => {
-                    if (res.success) {
-                        this.totalNumber = res.data.page.totalNumber;
-                        this.tableData = res.data.pp;
-                    }
-                })
-            },
-            isColumnShow(column) {
-                var row = this.tableColumns.find(i => i.value === column);
-                return row ? row.show : false;
-            },
-            isModulesShow(column) {
-                var row = this.modules.find(i => i === column);
-                return row ? true : false;
-            },
-            toggleMultipleMode(multipleMode) {
-                this.multipleMode = multipleMode;
-                if (!multipleMode) {
-                    this.$refs.table.clearSelection();
+            this.$http.get({
+                url: '/testAaa/page',
+                data: data
+            }).then(res => {
+                if (res.success) {
+                    this.totalNumber = res.data.page.totalNumber;
+                    this.tableData = res.data.pp;
                 }
-            },
-            editRow(row) {
-                var jsonp = { ...row }
-
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
-                        if(jsonp.multiSelect){
-                            jsonp.multiSelect = jsonp.multiSelect.split(',');
-                        }else{
-                            jsonp.multiSelect = [];
-                        }
-
-                                                                                                                                                                                                                                                                                                                                                                                        jsonp.loginUser = this.userInfo.username;
-
-                                                                                                                                            jsonp.testcTime = format(new Date(), 'YYYY/MM/DD HH:mm', { locale: zh });
-
-                                                                                                                                                                                                        jsonp.testcDate = format(new Date(), 'YYYY/MM/DD', { locale: zh });
-
-                                                                                                                                                                                                                            jsonp.workNumber = this.userInfo.workNumber;
+            })
+        },
+        isColumnShow(column) {
+            var row = this.tableColumns.find(i => i.value === column);
+            return row ? row.show : false;
+        },
+        isModulesShow(column) {
+            var row = this.modules.find(i => i === column);
+            return row ? true : false;
+        },
+        toggleMultipleMode(multipleMode) {
+            this.multipleMode = multipleMode;
+            if (!multipleMode) {
+                this.$refs.table.clearSelection();
+            }
+        },
+        editRow(row) {
+            var jsonp = { ...row }
 
-                                                                                                                                                                                                        jsonp.departId = this.userInfo.departId;
 
-                                    
-                if (this.$route.query.column) {
-                    jsonp.subColumn = this.$route.query.column.split(',')[1];
-                    jsonp.subValue = this.$route.query.column.split(',')[0];
-                }
+            if (jsonp.multiSelect) {
+                jsonp.multiSelect = jsonp.multiSelect.split(',');
+            } else {
+                jsonp.multiSelect = [];
+            }
 
-                if (this.$route.query.column) {
-                    jsonp[jsonp.subColumn] = jsonp.subValue;
-                }
+            jsonp.loginUser = this.userInfo.username;
 
-                this.editRowInfo = jsonp
-                this.editDialogVisible = true
-            },
-            operation1() {
-                if (this.selection.length > 0) {
-                    this.$alert('删除将无法恢复,确认要删除么?', '警告', {type: 'error'}).then(() => {
-                        return this.$http.post({
-                            url: '/testAaa/del',
-                            data: {idStr: this.selection.join()}
-                        })
-                    }).then(() => {
-                        this.$message.success('删除成功');
-                    this.getData();
-                }).catch(action => {
-                        if (action === 'cancel') {
-                        this.$message.info('删除取消');
-                    } else {
-                        this.$message.error('删除失败');
-                    }
-                })
-                }
+            jsonp.testcTime = format(new Date(), 'YYYY/MM/DD HH:mm', { locale: zh });
 
+            jsonp.testcDate = format(new Date(), 'YYYY/MM/DD', { locale: zh });
 
-            },
-            operation2() {
-                this.$notify({
-                    title: '提示',
-                    message: this.selection
-                });
+            jsonp.workNumber = this.userInfo.workNumber;
 
-                this.$message('操作2');
-            },
-            addField() {
-                this.advancedQueryFields.push({
-                    link: 'AND',
-                    name: '',
-                    searchMethod: '=',
-                    value: '',
-                });
-            },
-            removeField(i) {
-                if (this.advancedQueryFields.length > 0) {
-                    this.advancedQueryFields.splice(i, 1);
-                }
-            },
-            advancedQuery() {
+            jsonp.departId = this.userInfo.departId;
 
-                this.advancedQuerySearchKey = '';
 
-                this.getData();
-                this.showAdvancedQueryDialog = false;
-            },
-            addSortField() {
-                this.tableSortFields.push({
-                    name: '',
-                    order: 'asc',
-                });
-            },
-            removeSortField(i) {
-                if (this.tableSortFields.length > 0) {
-                    this.tableSortFields.splice(i, 1);
-                }
-            },
-            tableSortQuery() {
+            if (this.$route.query.column) {
+                jsonp.subColumn = this.$route.query.column.split(',')[1];
+                jsonp.subValue = this.$route.query.column.split(',')[0];
+            }
 
-                this.orderByStr = '';
+            if (this.$route.query.column) {
+                jsonp[jsonp.subColumn] = jsonp.subValue;
+            }
 
-                this.getData();
-                this.showTableSortDialog = false;
-            },
-            exportExcel() {
-                window.location.href = this.$baseUrl + "/testAaa/exportExcel?searchKey="
-                        + this.filter1 + "&advancedQuery=" + this.advancedQuerySearchKey+"&orderByStr=" + this.orderByStr;
-            },
-            searchData() {
-                this.currentPage = 1;
-                this.getData();
-            },
-            deleteRow(row) {
-                this.$alert('删除将无法恢复,确认要删除么?', '警告', {type: 'error'}).then(() => {
+            this.editRowInfo = jsonp
+            this.editDialogVisible = true
+        },
+        operation1() {
+            if (this.selection.length > 0) {
+                this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' }).then(() => {
                     return this.$http.post({
                         url: '/testAaa/del',
-                        data: {id: row.id}
+                        data: { idStr: this.selection.join() }
                     })
                 }).then(() => {
                     this.$message.success('删除成功');
@@ -667,33 +515,106 @@
                         this.$message.error('删除失败');
                     }
                 })
-            },
-            DateTimeFormatter(row, column, cellValue) {
-                if (cellValue) {
-                    return format(cellValue, 'YYYY/MM/DD HH:mm', {locale: zh})
-                }
+            }
 
-            },
-            DateFormatter(row, column, cellValue) {
-                if (cellValue) {
-                    return format(cellValue, 'YYYY/MM/DD', {locale: zh})
+
+        },
+        operation2() {
+            this.$notify({
+                title: '提示',
+                message: this.selection
+            });
+
+            this.$message('操作2');
+        },
+        addField() {
+            this.advancedQueryFields.push({
+                link: 'AND',
+                name: '',
+                searchMethod: '=',
+                value: '',
+            });
+        },
+        removeField(i) {
+            if (this.advancedQueryFields.length > 0) {
+                this.advancedQueryFields.splice(i, 1);
+            }
+        },
+        advancedQuery() {
+
+            this.advancedQuerySearchKey = '';
+
+            this.getData();
+            this.showAdvancedQueryDialog = false;
+        },
+        addSortField() {
+            this.tableSortFields.push({
+                name: '',
+                order: 'asc',
+            });
+        },
+        removeSortField(i) {
+            if (this.tableSortFields.length > 0) {
+                this.tableSortFields.splice(i, 1);
+            }
+        },
+        tableSortQuery() {
+
+            this.orderByStr = '';
+
+            this.getData();
+            this.showTableSortDialog = false;
+        },
+        exportExcel() {
+            window.location.href = this.$baseUrl + "/testAaa/exportExcel?searchKey="
+                + this.filter1 + "&advancedQuery=" + this.advancedQuerySearchKey + "&orderByStr=" + this.orderByStr;
+        },
+        searchData() {
+            this.currentPage = 1;
+            this.getData();
+        },
+        deleteRow(row) {
+            this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' }).then(() => {
+                return this.$http.post({
+                    url: '/testAaa/del',
+                    data: { id: row.id }
+                })
+            }).then(() => {
+                this.$message.success('删除成功');
+                this.getData();
+            }).catch(action => {
+                if (action === 'cancel') {
+                    this.$message.info('删除取消');
+                } else {
+                    this.$message.error('删除失败');
                 }
+            })
+        },
+        DateTimeFormatter(row, column, cellValue) {
+            if (cellValue) {
+                return format(cellValue, 'YYYY/MM/DD HH:mm', { locale: zh })
+            }
 
-            },
-            showImg(img) {
-                this.imgSrc = img;
-                this.imageDialogVisible = true;
-            },
-            goBack() {
-                this.$router.go(-1);
-            },
+        },
+        DateFormatter(row, column, cellValue) {
+            if (cellValue) {
+                return format(cellValue, 'YYYY/MM/DD', { locale: zh })
+            }
 
         },
+        showImg(img) {
+            this.imgSrc = img;
+            this.imageDialogVisible = true;
+        },
+        goBack() {
+            this.$router.go(-1);
+        },
+
+    },
     components: {
         testAaa
     }
-    }
+}
 </script>
 <style lang="less" scoped>
-
 </style>

+ 0 - 2
src/main/vue/src/router/index.js

@@ -344,7 +344,6 @@ const router = new Router({
                         title: '离场登记'
                     }
                 },
-                /**INSERT_LOCATION**/
 
                 {
                     path: '/handleEstrusEvent',
@@ -356,7 +355,6 @@ const router = new Router({
                         title: '发情事件'
                     }
                 },
-                /**INSERT_LOCATION**/
 
                 {
                     path: '/handleMatch',

+ 10 - 0
src/main/webapp/WEB-INF/html/testpay.html

@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>Title</title>
+</head>
+<body>
+<img src="/images/20181116092439.jpg">
+</body>
+</html>

binární
src/main/webapp/images/20181116092439.jpg