master
wangbing 5 years ago
parent 639a83c7d1
commit 619b0f55b4

@ -81,4 +81,8 @@ public class LocalData {
public static ApplicationContext getApplicationContext() {
return WebApplicationContextUtils.getWebApplicationContext(getRequest().getServletContext());
}
public static <T> T getBean(Class<T> t) {
return getApplicationContext().getBean(t);
}
}

@ -1,8 +1,15 @@
package ${basePackage}.frame.validation;
import ${basePackage}.frame.auth.LocalData;
import ${basePackage}.frame.utils.StringUtil;
import ${basePackage}.module.system.ent.DictItem;
import ${basePackage}.module.system.mgr.DictManager;
import ${basePackage}.module.system.req.DictLoadRequest;
import ${basePackage}.module.system.rsp.DictLoadResponse;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.HashSet;
import java.util.List;
public class DictValidator implements ConstraintValidator<Dict, String> {
@ -15,7 +22,7 @@ public class DictValidator implements ConstraintValidator<Dict, String> {
@Override
public boolean isValid(String o, ConstraintValidatorContext constraintValidatorContext) {
if (null == o) {
if (StringUtil.isEmpty(o)) {
return true;
} else if (name == null) {
constraintValidatorContext.disableDefaultConstraintViolation();
@ -23,8 +30,25 @@ public class DictValidator implements ConstraintValidator<Dict, String> {
return false;
} else {
// name 字典名称
HashSet<String> codeSet = new HashSet<>();
if (codeSet.contains(o)) {
DictLoadRequest dictLoadRequest = new DictLoadRequest();
dictLoadRequest.setDictName(name);
DictManager dictManager = LocalData.getBean(DictManager.class);
DictLoadResponse dictLoadResponse = dictManager.load(dictLoadRequest, LocalData.getSysToken());
if (dictLoadResponse.hasError()) {
constraintValidatorContext.disableDefaultConstraintViolation();
constraintValidatorContext.buildConstraintViolationWithTemplate("验证字典[" + name + "]值出现异常->" + dictLoadResponse.getErrors().get(0).getMessage()).addConstraintViolation();
}
List<DictItem> dictItems = dictLoadResponse.getDictItems();
int i = 0;
for (; i < dictItems.size(); i++) {
DictItem dictItem = dictItems.get(i);
if (o.equals(dictItem.getKey())) {
break;
}
}
if (i < dictItems.size()) {
return true;
} else {
constraintValidatorContext.disableDefaultConstraintViolation();

@ -4,7 +4,6 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="${basePackage}.module.${moduleName}.mpr.${table.getCName()}Mapper">
<#if dataBase == 'ORACLE'>
<sql id="table">"${module.modulePrefix?default("")}${table.tableName}"</sql>
<#elseif dataBase='MYSQL'>

@ -22,16 +22,16 @@ public class Dict extends BaseEntity {
@ColumnDescription("1-50长度的字典名称")
private String dictName;
/**
* DICT_CODE -
* DICT_COMMENT -
*/
@ColumnName("字典代码")
@ColumnDescription("1-50长度的字典代码")
private String dictCode;
@ColumnName("字典描述")
@ColumnDescription("1-50长度的字典描述")
private String dictComment;
/**
* VERSION -
* VERSION -
*/
@ColumnName("字典版本")
@ColumnDescription("字典版本.例如:yyyy-MM-dd HH:mm:ss")
@ColumnName("字典版本")
@ColumnDescription("字典版本.例如:yyyy-MM-dd HH:mm:ss")
private String version;
/**
* VALID -
@ -48,12 +48,12 @@ public class Dict extends BaseEntity {
this.dictName = dictName;
}
public String getDictCode() {
return this.dictCode;
public String getDictComment() {
return this.dictComment;
}
public void setDictCode(String dictCode) {
this.dictCode = dictCode;
public void setDictComment(String dictComment) {
this.dictComment = dictComment;
}
public String getVersion() {

@ -16,19 +16,19 @@ import ${basePackage}.frame.excel.annotation.SheetName;
public class DictItem extends BaseEntity {
/**
* DICT_ID - ID
* DICT_NAME -
*/
@ColumnName("字典主键")
@ColumnDescription("字典主键一般为一窜数字,可通过字典查询页获取字典主键")
private Long dictId;
@ColumnName("字典名称")
@ColumnDescription("字典名称,可为中文或英文,且不能出现重复")
private String dictName;
/**
* KEY - KEY
* KEY -
*/
@ColumnName("字典键")
@ColumnDescription("字典键一般使用数字或字母 01,02... A,B...")
private String key;
/**
* VALUE - VALUE
* VALUE -
*/
@ColumnName("字典值")
@ColumnDescription("字典值一般是实际意思字符或文字\n 长度在(1-100)之间")
@ -46,12 +46,12 @@ public class DictItem extends BaseEntity {
@ColumnDescription("用于标识该字典值是否有效")
private Boolean valid;
public Long getDictId() {
return this.dictId;
public String getDictName() {
return this.dictName;
}
public void setDictId(Long dictId) {
this.dictId = dictId;
public void setDictName(String dictName) {
this.dictName = dictName;
}
public String getKey() {

@ -180,20 +180,19 @@ public class DictManagerImpl implements DictManager {
}
DictFindRequest dictFindRequest = new DictFindRequest();
dictFindRequest.setDictCode(request.getDictCode());
dictFindRequest.setDictName(request.getDictName());
dictFindRequest.setValid(true);
List<Dict> dicts = dictMapper.find(dictFindRequest, token);
if (dicts.size() == 0) {
response.addError(ErrorType.BUSINESS_ERROR, "字典不存在");
return response;
} else if (dicts.size() > 1) {
response.addError(ErrorType.BUSINESS_ERROR, "字典库异常");
response.addError(ErrorType.BUSINESS_ERROR, "字典重复异常,请联系管理员");
return response;
}
response.setDict(dicts.get(0));
DictItemFindRequest dictItemFindRequest = new DictItemFindRequest();
dictItemFindRequest.setDictId(response.getDict().getId());
dictItemFindRequest.setDictName(request.getDictName());
DictItemFindResponse dictItemFindResponse = dictItemManager.find(dictItemFindRequest, token);
if (dictItemFindResponse.hasError()) {
response.addErrors(dictItemFindResponse.getErrors());

@ -2,19 +2,18 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="${basePackage}.module.system.mpr.DictItemMapper">
<mapper namespace="xyz.wbsite.module.system.mpr.DictItemMapper">
<sql id="table">`SYS_DICT_ITEM`</sql>
<sql id="entityColumnList">
`ID`,`DICT_ID`,`KEY`,`VALUE`,`SORT`,`VALID`,`ROW_VERSION`,`IS_DELETED`,`CREATE_BY`,`CREATE_TIME`,`LAST_UPDATE_BY`,`LAST_UPDATE_TIME`
`ID`,`DICT_NAME`,`KEY`,`VALUE`,`SORT`,`VALID`,`ROW_VERSION`,`IS_DELETED`,`CREATE_BY`,`CREATE_TIME`,`LAST_UPDATE_BY`,`LAST_UPDATE_TIME`
</sql>
<resultMap id="dictItem" type="${basePackage}.module.system.ent.DictItem">
<resultMap id="dictItem" type="xyz.wbsite.module.system.ent.DictItem">
<result column="ID" jdbcType="BIGINT" property="id"/>
<result column="DICT_ID" jdbcType="BIGINT" property="dictId"/>
<result column="KEY" jdbcType="CHAR" property="key"/>
<result column="DICT_NAME" jdbcType="VARCHAR" property="dictName"/>
<result column="KEY" jdbcType="VARCHAR" property="key"/>
<result column="VALUE" jdbcType="VARCHAR" property="value"/>
<result column="SORT" jdbcType="INTEGER" property="sort"/>
<result column="VALID" jdbcType="BIT" property="valid"/>
@ -36,8 +35,8 @@
<if test="request.id != null and request.id != ''">
AND `ID` = ${r"#{"}request.id}
</if>
<if test="request.dictId != null and request.dictId != ''">
AND `DICT_ID` = ${r"#{"}request.dictId}
<if test="request.dictName != null and request.dictName != ''">
AND `DICT_NAME` = ${r"#{"}request.dictName}
</if>
<if test="request.key != null and request.key != ''">
AND `KEY` = ${r"#{"}request.key}
@ -71,8 +70,8 @@
VALUES
(
${r"#{"}request.id},
${r"#{"}request.dictId,jdbcType=BIGINT},
${r"#{"}request.key,jdbcType=CHAR},
${r"#{"}request.dictName,jdbcType=VARCHAR},
${r"#{"}request.key,jdbcType=VARCHAR},
${r"#{"}request.value,jdbcType=VARCHAR},
${r"#{"}request.sort,jdbcType=INTEGER},
${r"#{"}request.valid,jdbcType=BIT},
@ -90,7 +89,7 @@
<include refid="table"/>
SET `IS_DELETED` = 1
WHERE `IS_DELETED` = 0
AND `ID` = ${r"#"}{request.id}
AND `ID` = ${r"#{"}request.id}
</update>
<update id="update">

@ -4,17 +4,16 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="${basePackage}.module.system.mpr.DictMapper">
<sql id="table">`SYS_DICT`</sql>
<sql id="entityColumnList">
`ID`,`DICT_NAME`,`DICT_CODE`,`VERSION`,`VALID`,`ROW_VERSION`,`IS_DELETED`,`CREATE_BY`,`CREATE_TIME`,`LAST_UPDATE_BY`,`LAST_UPDATE_TIME`
`ID`,`DICT_NAME`,`DICT_COMMENT`,`VERSION`,`VALID`,`ROW_VERSION`,`IS_DELETED`,`CREATE_BY`,`CREATE_TIME`,`LAST_UPDATE_BY`,`LAST_UPDATE_TIME`
</sql>
<resultMap id="dict" type="${basePackage}.module.system.ent.Dict">
<result column="ID" jdbcType="BIGINT" property="id"/>
<result column="DICT_NAME" jdbcType="VARCHAR" property="dictName"/>
<result column="DICT_CODE" jdbcType="VARCHAR" property="dictCode"/>
<result column="DICT_COMMENT" jdbcType="VARCHAR" property="dictComment"/>
<result column="VERSION" jdbcType="VARCHAR" property="version"/>
<result column="VALID" jdbcType="BIT" property="valid"/>
<result column="ROW_VERSION" jdbcType="BIGINT" property="rowVersion"/>
@ -38,8 +37,8 @@
<if test="request.dictName != null and request.dictName != ''">
AND `DICT_NAME` = ${r"#"}{request.dictName}
</if>
<if test="request.dictCode != null and request.dictCode != ''">
AND `DICT_CODE` = ${r"#"}{request.dictCode}
<if test="request.dictComment != null and request.dictComment != ''">
AND `DICT_COMMENT` = ${r"#"}{request.dictComment}
</if>
<if test="request.valid != null">
AND `VALID` = ${r"#"}{request.valid}
@ -68,7 +67,7 @@
(
${r"#{"}request.id},
${r"#{"}request.dictName,jdbcType=VARCHAR},
${r"#{"}request.dictCode,jdbcType=VARCHAR},
${r"#{"}request.dictComment,jdbcType=VARCHAR},
${r"#{"}request.version,jdbcType=VARCHAR},
${r"#{"}request.valid,jdbcType=BIT},
0,
@ -93,7 +92,7 @@
<include refid="table"/>
SET
`DICT_NAME` = ${r"#{"}request.dictName,jdbcType=VARCHAR},
`DICT_CODE` = ${r"#{"}request.dictCode,jdbcType=VARCHAR},
`DICT_COMMENT` = ${r"#{"}request.dictComment,jdbcType=VARCHAR},
`VERSION` = ${r"#{"}request.version,jdbcType=VARCHAR},
`VALID` = ${r"#{"}request.valid,jdbcType=BIT},
`ROW_VERSION` = `ROW_VERSION` + 1,

@ -24,15 +24,15 @@ public class DictCreateRequest extends BaseRequest {
/**
*
*/
@NotEmpty(message = "字典代码不能为空")
@Length(min = 1, max = 50, message = "字典代码长度不合法(1-50)")
private String dictCode;
@NotEmpty(message = "字典描述不能为空")
@Length(min = 1, max = 50, message = "字典描述长度不合法(1-50)")
private String dictComment;
/**
*
*
*/
@NotEmpty(message = "字典版本不能为空")
@Length(min = 1, max = 50, message = "字典版本长度不合法(1-50)")
@NotEmpty(message = "字典版本不能为空")
@Length(min = 1, max = 50, message = "字典版本长度不合法(1-50)")
private String version;
/**
@ -49,12 +49,12 @@ public class DictCreateRequest extends BaseRequest {
this.dictName = dictName;
}
public String getDictCode() {
return this.dictCode;
public String getDictComment() {
return this.dictComment;
}
public void setDictCode(String dictCode) {
this.dictCode = dictCode;
public void setDictComment(String dictComment) {
this.dictComment = dictComment;
}
public String getVersion() {

@ -23,7 +23,7 @@ public class DictFindRequest extends BaseFindRequest {
/**
*
*/
private String dictCode;
private String dictComment;
/**
*
@ -46,12 +46,12 @@ public class DictFindRequest extends BaseFindRequest {
this.dictName = dictName;
}
public String getDictCode() {
return this.dictCode;
public String getDictComment() {
return this.dictComment;
}
public void setDictCode(String dictCode) {
this.dictCode = dictCode;
public void setDictComment(String dictComment) {
this.dictComment = dictComment;
}
public Boolean getValid() {

@ -15,21 +15,21 @@ import javax.validation.constraints.NotNull;
public class DictItemCreateRequest extends BaseRequest {
/**
* ID
*
*/
@NotNull(message = "字典主键不能为空")
private Long dictId;
@NotNull(message = "字典名称不能为空")
private String dictName;
/**
* KEY
*
*/
@Length(min = 1, max = 10, message = "字典KEY长度不合法(1-10)")
@Length(min = 1, max = 10, message = "字典长度不合法(1-10)")
private String key;
/**
* VALUE
*
*/
@Length(min = 1, max = 100, message = "字典VALUE长度不合法(1-100)")
@Length(min = 1, max = 100, message = "字典长度不合法(1-100)")
private String value;
/**
@ -44,12 +44,12 @@ public class DictItemCreateRequest extends BaseRequest {
@NotNull(message = "是否有效不能为空")
private Boolean valid;
public Long getDictId() {
return this.dictId;
public String getDictName() {
return this.dictName;
}
public void setDictId(Long dictId) {
this.dictId = dictId;
public void setDictName(String dictName) {
this.dictName = dictName;
}
public String getKey() {

@ -16,17 +16,17 @@ public class DictItemFindRequest extends BaseFindRequest {
*/
private Long id;
/**
* ID
*
*/
private Long dictId;
private String dictName;
/**
* KEY
*
*/
private String key;
/**
* VALUE
*
*/
private String value;
@ -48,12 +48,12 @@ public class DictItemFindRequest extends BaseFindRequest {
this.id = id;
}
public Long getDictId() {
return this.dictId;
public String getDictName() {
return this.dictName;
}
public void setDictId(Long dictId) {
this.dictId = dictId;
public void setDictName(String dictName) {
this.dictName = dictName;
}
public String getKey() {

@ -21,15 +21,15 @@ public class DictItemUpdateRequest extends BaseUpdateRequest {
private Long id;
/**
* KEY
*
*/
@Length(min = 0, max = 10, message = "字典KEY长度不合法(0-10)")
@Length(min = 0, max = 10, message = "字典长度不合法(0-10)")
private String key;
/**
* VALUE
*
*/
@Length(min = 0, max = 100, message = "字典VALUE长度不合法(0-100)")
@Length(min = 0, max = 100, message = "字典长度不合法(0-100)")
private String value;
/**

@ -6,7 +6,7 @@ import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* DictGetRequest -
* DictLoadRequest -
*
* @author wangbing
* @version 0.0.1
@ -14,18 +14,14 @@ import javax.validation.constraints.NotNull;
*/
public class DictLoadRequest extends BaseRequest {
/**
*
*/
@NotNull(message = "字典名称不能为空")
@NotBlank(message = "字典名称不能为空")
private String dictCode;
private String dictName;
public String getDictCode() {
return dictCode;
public String getDictName() {
return dictName;
}
public void setDictCode(String dictCode) {
this.dictCode = dictCode;
public void setDictName(String dictName) {
this.dictName = dictName;
}
}

@ -31,15 +31,15 @@ public class DictUpdateRequest extends BaseUpdateRequest {
/**
*
*/
@NotEmpty(message = "字典代码不能为空")
@Length(min = 0, max = 50, message = "字典代码长度不合法(0-50)")
private String dictCode;
@NotEmpty(message = "字典描述不能为空")
@Length(min = 0, max = 50, message = "字典描述长度不合法(0-50)")
private String dictComment;
/**
*
*
*/
@NotEmpty(message = "字典版本不能为空")
@Length(min = 0, max = 50, message = "字典版本长度不合法(0-50)")
@NotEmpty(message = "字典版本不能为空")
@Length(min = 0, max = 50, message = "字典版本长度不合法(0-50)")
private String version;
/**
@ -64,12 +64,12 @@ public class DictUpdateRequest extends BaseUpdateRequest {
this.dictName = dictName;
}
public String getDictCode() {
return this.dictCode;
public String getDictComment() {
return this.dictComment;
}
public void setDictCode(String dictCode) {
this.dictCode = dictCode;
public void setDictComment(String dictComment) {
this.dictComment = dictComment;
}
public String getVersion() {

@ -1,7 +1,7 @@
/*
Target : MYSQL
Author
Date: 2019-10-08
Date: 2019-11-23
*/
-- ----------------------------
@ -11,8 +11,8 @@ Date: 2019-10-08
CREATE TABLE `SYS_DICT` (
`ID` BIGINT(20) NOT NULL COMMENT '主键',
`DICT_NAME` VARCHAR(50) NOT NULL COMMENT '字典名称',
`DICT_CODE` VARCHAR(50) NOT NULL COMMENT '字典代码',
`VERSION` VARCHAR(50) NOT NULL COMMENT '字典版本',
`DICT_COMMENT` VARCHAR(50) NOT NULL COMMENT '字典描述',
`VERSION` VARCHAR(50) NOT NULL COMMENT '字典版本',
`VALID` TINYINT(1) NOT NULL COMMENT '是否有效',
`ROW_VERSION` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '行版本',
`IS_DELETED` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已删除',

@ -1,7 +1,7 @@
/*
Target : MYSQL
Author
Date: 2019-10-08
Date: 2019-11-23
*/
-- ----------------------------
@ -10,9 +10,9 @@ Date: 2019-10-08
CREATE TABLE `SYS_DICT_ITEM` (
`ID` BIGINT(20) NOT NULL COMMENT '主键',
`DICT_ID` BIGINT(20) NOT NULL COMMENT '字典ID',
`KEY` CHAR(10) NOT NULL COMMENT '字典KEY',
`VALUE` VARCHAR(100) NOT NULL COMMENT '字典VALUE',
`DICT_NAME` VARCHAR(50) NOT NULL COMMENT '字典名称',
`KEY` VARCHAR(50) NOT NULL COMMENT '字典',
`VALUE` VARCHAR(100) NOT NULL COMMENT '字典',
`SORT` INTEGER(10) NOT NULL COMMENT '排序',
`VALID` TINYINT(1) NOT NULL COMMENT '是否有效',
`ROW_VERSION` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '行版本',

@ -512,9 +512,57 @@
},
filters: {},
watch: {}
}
};
// 实例化工具
window.nav = new Vue({
mixins: [mixin]
});
//字典组件
Vue.component('el-input-dict', {
data: function () {
return {
options: []
}
},
props: {
value: {
type: String,
default: ''
},
dictName: {
type: String,
default: ''
},
size: {
type: String,
default: 'small'
},
placeholder: {
type: String,
default: ''
},
},
methods: {
input: function (value) {
this.$emit('input', value);
}
},
created: function () {
if (this.dictName) {
this.$ajax.load("system", "dict", {dictName: this.dictName}).then(function (response) {
if (response.errors.length > 0) {
this.e(response.errors[0].message)
} else {
this.options = response.dictItems;
}
}.bind(this))
}
},
template: '' +
'<el-select :value="value" @input="input" filterable placeholder="请选择" :size="size" :placeholder="placeholder">' +
' <el-option v-for="item in options" :key="item.key" :label="item.value" :value="item.key">' +
' <span style="float:left">[{{ item.key }}]{{ item.value }}</span>' +
' </el-option>' +
'</el-select>'
})
</script>

@ -2,49 +2,51 @@
<el-card class="box-card search">
<el-form :inline="true" :model="vm" ref="vm" label-width="90px">
<#list fields as item>
<#if item.isQuery>
<#if item.fieldType.javaType() =="Boolean">
<#if item.isQuery>
<#if item.fieldType.javaType() =="Boolean">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-radio-group v-model="vm.${item.getFName()}" clearable>
<el-radio-group v-model="vm.${item.getFName()}" clearable size="small">
<el-radio :label="true">是</el-radio>
<el-radio :label="false">否</el-radio>
</el-radio-group>
</el-form-item>
<#elseif item.fieldType.javaType() =="String" && item.fieldType != "Dict">
<#elseif item.fieldType.javaType() =="String" && item.fieldType != "Dict">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input v-model="vm.${item.getFName()}" clearable size="small" placeholder="请输入${item.fieldComment?default("")}"></el-input>
</el-form-item>
<#elseif item.fieldType.javaType() =="String" && item.fieldType == "Dict">
<#elseif item.fieldType.javaType() =="Byte">
<#elseif item.fieldType.javaType() =="String" && item.fieldType == "Dict">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}"clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :min="-128" :max="127" :step="1" step-strictly></el-input-number>
<el-input-dict v-model="vm.${item.getFName()}" clearable size="small" placeholder="请输入${item.fieldComment?default("")}" dict-name="${item.getFName()}" ></el-input-dict>
</el-form-item>
<#elseif item.fieldType.javaType() =="Short">
<#elseif item.fieldType.javaType() =="Byte">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}"clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :min="-32768" :max="32767" :step="1" step-strictly></el-input-number>
<el-input-number v-model="vm.${item.getFName()}" clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :min="-128" :max="127" :step="1" step-strictly></el-input-number>
</el-form-item>
<#elseif item.fieldType.javaType() =="Integer">
<#elseif item.fieldType.javaType() =="Short">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}"clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :min="-2147483648" :max="2147483647" :step="1" step-strictly></el-input-number>
<el-input-number v-model="vm.${item.getFName()}" clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :min="-32768" :max="32767" :step="1" step-strictly></el-input-number>
</el-form-item>
<#elseif item.fieldType.javaType() =="Long">
<#elseif item.fieldType.javaType() =="Integer">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}"clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :step="1" step-strictly></el-input-number>
<el-input-number v-model="vm.${item.getFName()}" clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :min="-2147483648" :max="2147483647" :step="1" step-strictly></el-input-number>
</el-form-item>
<#elseif item.fieldType.javaType() =="Float">
<#elseif item.fieldType.javaType() =="Long">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}"clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :step="0.01" step-strictly :precision="2"></el-input-number>
<el-input-number v-model="vm.${item.getFName()}" clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :step="1" step-strictly></el-input-number>
</el-form-item>
<#elseif item.fieldType.javaType() =="Float">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}" clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :step="0.01" step-strictly :precision="2"></el-input-number>
</el-form-item>
<#elseif item.fieldType.javaType() =="Double">
<#elseif item.fieldType.javaType() =="Double">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}"clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :step="0.01" step-strictly :precision="2"></el-input-number>
</el-form-item>
<#elseif item.fieldType.javaType() =="Character">
<#elseif item.fieldType.javaType() =="Character">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input v-model="vm.${item.getFName()}" clearable size="small" placeholder="请输入${item.fieldComment?default("")}" minlength="0" maxlength="1"></el-input>
</el-form-item>
<#elseif item.fieldType.javaType() =="Date">
<#elseif item.fieldType.javaType() =="Date">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-date-picker
size="small"
@ -53,12 +55,12 @@
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<#elseif item.fieldType.javaType() =="BigDecimal">
<#elseif item.fieldType.javaType() =="BigDecimal">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}"clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :step="1" step-strictly :precision="2" :step="0.01"></el-input-number>
</el-form-item>
</#if>
</#if>
</#if>
</#if>
</#list>
<el-form-item>
<el-button type="primary" size="small" icon="el-icon-search" @click="onSearch">搜索</el-button>
@ -80,57 +82,59 @@
<#if !item.isSystem>
<#if item.fieldType.javaType() =="Boolean">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-radio-group v-model="vm.${item.getFName()}" clearable>
<el-radio-group v-model="form.${item.getFName()}" clearable size="small">
<el-radio :label="true">是</el-radio>
<el-radio :label="false">否</el-radio>
</el-radio-group>
</el-form-item>
<#elseif item.fieldType.javaType() =="String" && item.fieldType != "Dict">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input v-model="vm.${item.getFName()}" clearable size="small" placeholder="请输入${item.fieldComment?default("")}"></el-input>
<el-input v-model="form.${item.getFName()}" clearable size="small" placeholder="请输入${item.fieldComment?default("")}"></el-input>
</el-form-item>
<#elseif item.fieldType.javaType() =="String" && item.fieldType == "Dict">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-dict v-model="form.${item.getFName()}" clearable size="small" placeholder="请输入${item.fieldComment?default("")}" dict-name="${item.getFName()}" ></el-input-dict>
</el-form-item>
<#elseif item.fieldType.javaType() =="Byte">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}"clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :min="-128" :max="127" :step="1" step-strictly></el-input-number>
<el-input-number v-model="form.${item.getFName()}"clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :min="-128" :max="127" :step="1" step-strictly></el-input-number>
</el-form-item>
<#elseif item.fieldType.javaType() =="Short">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}"clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :min="-32768" :max="32767" :step="1" step-strictly></el-input-number>
<el-input-number v-model="form.${item.getFName()}" clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :min="-32768" :max="32767" :step="1" step-strictly></el-input-number>
</el-form-item>
<#elseif item.fieldType.javaType() =="Integer">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}"clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :min="-2147483648" :max="2147483647" :step="1" step-strictly></el-input-number>
<el-input-number v-model="form.${item.getFName()}" clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :min="-2147483648" :max="2147483647" :step="1" step-strictly></el-input-number>
</el-form-item>
<#elseif item.fieldType.javaType() =="Long">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}"clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :step="1" step-strictly></el-input-number>
<el-input-number v-model="form.${item.getFName()}" clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :step="1" step-strictly></el-input-number>
</el-form-item>
<#elseif item.fieldType.javaType() =="Float">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}"clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :step="0.01" step-strictly :precision="2"></el-input-number>
<el-input-number v-model="form.${item.getFName()}" clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :step="0.01" step-strictly :precision="2"></el-input-number>
</el-form-item>
<#elseif item.fieldType.javaType() =="Double">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}"clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :step="0.01" step-strictly :precision="2"></el-input-number>
<el-input-number v-model="form.${item.getFName()}" clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :step="0.01" step-strictly :precision="2"></el-input-number>
</el-form-item>
<#elseif item.fieldType.javaType() =="Character">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input v-model="vm.${item.getFName()}" clearable size="small" placeholder="请输入${item.fieldComment?default("")}" minlength="0" maxlength="1"></el-input>
<el-input v-model="form.${item.getFName()}" clearable size="small" placeholder="请输入${item.fieldComment?default("")}" minlength="0" maxlength="1"></el-input>
</el-form-item>
<#elseif item.fieldType.javaType() =="Date">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-date-picker
size="small"
v-model="vm.${item.getFName()}"
v-model="form.${item.getFName()}"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<#elseif item.fieldType.javaType() =="BigDecimal">
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}"clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :step="1" step-strictly :precision="2" :step="0.01"></el-input-number>
<el-input-number v-model="form.${item.getFName()}"clearable size="small" placeholder="请输入${item.fieldComment?default("")}" :step="1" step-strictly :precision="2" :step="0.01"></el-input-number>
</el-form-item>
</#if>
</#if>
@ -282,9 +286,9 @@
</#list>
},
onCommand: function (arg) {
const action = arg[0];
const cmd = arg[0];
const item = arg[1];
switch (action) {
switch (cmd) {
case "edit":
this.form.title = "${table.tableComment?default("")}编辑";
this.form.dialog = true;

@ -2,17 +2,16 @@
<el-card class="box-card search">
<el-form :inline="true" :model="vm" ref="vm" label-width="90px">
<el-form-item label="字典名称" prop="dictName">
<el-input v-model="vm.dictName" clearable size="small" placeholder=""></el-input>
<el-input v-model="vm.dictName" clearable size="small" placeholder="请输入字典名称"></el-input>
</el-form-item>
<el-form-item label="字典代码" prop="dictCode">
<el-input v-model="vm.dictCode" clearable size="small" placeholder=""></el-input>
<el-form-item label="字典描述" prop="dictComment">
<el-input v-model="vm.dictComment" clearable size="small" placeholder="请输入字典描述"></el-input>
</el-form-item>
<el-form-item label="是否有效" prop="valid">
<el-select v-model="vm.valid" size="small" placeholder="">
<el-option label="所有" value=""></el-option>
<el-option label="有效" value="true"></el-option>
<el-option label="无效" value="false"></el-option>
</el-select>
<el-radio-group v-model="vm.valid">
<el-radio :label="true">是</el-radio>
<el-radio :label="false">否</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item>
<el-button type="primary" size="small" icon="el-icon-search" @click="onSearch">搜索</el-button>
@ -30,13 +29,13 @@
<el-dialog class="form" :title="form.title" :visible.sync="form.dialog">
<el-form :model="form" :inline="true" :rules="formRules" ref="form" label-width="90px">
<el-form-item label="字典名称" prop="dictName">
<el-input size="small" v-model="form.dictName"></el-input>
<el-form-item label="字典名称" prop="dictName" required>
<el-input v-model="form.dictName" clearable size="small" placeholder="请输入字典名称"></el-input>
</el-form-item>
<el-form-item label="字典代码" prop="dictCode">
<el-input size="small" v-model="form.dictCode"></el-input>
<el-form-item label="字典描述" prop="dictComment">
<el-input v-model="form.dictComment" clearable size="small" placeholder="请输入字典描述"></el-input>
</el-form-item>
<el-form-item label="字典版本" required>
<el-form-item label="字典版本" prop="version" required>
<el-date-picker size="small"
v-model="form.version"
type="datetime"
@ -46,7 +45,10 @@
</el-date-picker>
</el-form-item>
<el-form-item label="是否有效" prop="valid">
<el-switch size="small" v-model="form.valid"></el-switch>
<el-radio-group v-model="form.valid" clearable size="small">
<el-radio :label="true">是</el-radio>
<el-radio :label="false">否</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
@ -91,7 +93,7 @@
<el-table-column
align="center"
type="selection"
width="50">
width="40">
</el-table-column>
<el-table-column
align="center"
@ -115,8 +117,8 @@
</el-table-column>
<el-table-column
align="center"
prop="dictCode"
label="字典代码">
prop="dictComment"
label="字典描述">
</el-table-column>
<el-table-column
align="center"
@ -169,7 +171,7 @@
vm: {
id: '',
dictName: '',
dictCode: '',
dictComment: '',
valid: "",
pageNumber: 1,
pageSize: 10,
@ -184,7 +186,7 @@
dialog: false,
id: '',
dictName: '',
dictCode: '',
dictComment: '',
version: '',
valid: false,
rowVersion: '',
@ -194,38 +196,42 @@
{required: true, message: '请输入字典名称', trigger: 'blur'},
{min: 1, max: 50, message: '长度在 3 到 5 个字符', trigger: 'blur'}
],
dictCode: [
{required: true, message: '请输入字典代码', trigger: 'blur'},
{min: 1, max: 50, message: '长度在 1 到 50 个字符', trigger: 'blur'}
dictComment: [
{required: true, message: '字典描述不能为空', trigger: 'blur'},
{min: 1, max: 50, message: '字典描述长度在 1 到 50 个字符', trigger: 'blur'}
],
version: [
{type: 'date', required: true, message: '字典版本不能为空', trigger: 'change'}
{required: true, message: '字典版本不能为空', trigger: 'blur'},
{min: 1, max: 50, message: '字典版本长度在 1 到 50 个字符', trigger: 'blur'}
],
valid: [
{required: true, message: '是否有效不能为空', trigger: 'blur'},
],
},
},
methods: {
onCreate: function () {
this.form.title = '新增字典';
this.form.dialog = true;
this.form.id = '';
this.form.dictName = '';
this.form.dictCode = '';
this.form.dictComment = '';
this.form.version = '';
this.form.valid = true;
this.form.dialog = true;
},
onCommand: function (args) {
const cmd = args[0];
const item = args[1];
switch (cmd) {
case "edit":
this.form.title = '编辑字典';
this.form.title = '字典编辑';
this.form.dialog = true;
this.form.id = item.id;
this.form.dictName = item.dictName;
this.form.dictCode = item.dictCode;
this.form.dictComment = item.dictComment;
this.form.version = item.version;
this.form.valid = item.valid;
this.form.rowVersion = item.rowVersion;
this.form.dialog = true;
break;
case "delete":
this.onDelete(item);
@ -236,8 +242,8 @@
} else {
parent.index.addTab({
title: "字典项管理",
name: "dictItem" + item.id,
url: "${context}/system/dictItem.htm?dictId=" + item.id
name: "dictItem" + item.dictName,
url: "${context}/system/dictItem.htm?dictName=" + item.dictName
});
}
break;

@ -1,21 +1,20 @@
<div id="app" v-cloak>
<el-card class="box-card search">
<el-form :inline="true" :model="vm" ref="vm" label-width="90px">
<el-form-item label="字典名称">
<el-input disabled v-model="vm.dictName" clearable size="small"></el-input>
<el-form-item label="字典名称" prop="dictName">
<el-input v-model="vm.dictName" clearable size="small" placeholder="请输入字典名称" readonly></el-input>
</el-form-item>
<el-form-item label="字典键" prop="key">
<el-input v-model="vm.key" clearable size="small" placeholder=""></el-input>
<el-input v-model="vm.key" clearable size="small" placeholder="请输入字典键"></el-input>
</el-form-item>
<el-form-item label="字典值" prop="value">
<el-input v-model="vm.value" clearable size="small" placeholder=""></el-input>
<el-input v-model="vm.value" clearable size="small" placeholder="请输入字典值"></el-input>
</el-form-item>
<el-form-item label="是否有效" prop="valid">
<el-select v-model="vm.valid" size="small" placeholder="">
<el-option label="所有" value=""></el-option>
<el-option label="有效" value="true"></el-option>
<el-option label="无效" value="false"></el-option>
</el-select>
<el-radio-group v-model="vm.valid" clearable>
<el-radio :label="true">是</el-radio>
<el-radio :label="false">否</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item>
<el-button type="primary" size="small" icon="el-icon-search" @click="onSearch">搜索</el-button>
@ -33,18 +32,24 @@
<el-dialog class="form" :title="form.title" :visible.sync="form.dialog">
<el-form :model="form" :inline="true" :rules="formRules" ref="form" label-width="90px">
<el-form-item label="字典名称" prop="dictName">
<el-input v-model="form.dictName" clearable size="small" placeholder="请输入字典名称" readonly></el-input>
</el-form-item>
<el-form-item label="字典键" prop="dictName">
<el-input size="small" v-model="form.key"></el-input>
<el-input v-model="form.key" clearable size="small" placeholder="请输入字典键"></el-input>
</el-form-item>
<el-form-item label="字典值" prop="dictCode">
<el-input size="small" v-model="form.value"></el-input>
<el-input v-model="form.value" clearable size="small" placeholder="请输入字典值"></el-input>
</el-form-item>
<el-form-item label="排序值" prop="dictCode">
<el-input-number size="small" v-model="form.sort" :min="0" :max="10000"
label="描述文字"></el-input-number>
</el-form-item>
<el-form-item label="是否有效" prop="valid">
<el-switch size="small" v-model="form.valid"></el-switch>
<el-radio-group v-model="form.valid" clearable>
<el-radio :label="true">是</el-radio>
<el-radio :label="false">否</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
@ -88,7 +93,7 @@
<el-table-column
align="center"
type="selection"
width="50">
width="40">
</el-table-column>
<el-table-column
align="center"
@ -163,9 +168,7 @@
module: 'system',
target: 'dictItem',
vm: {
id: '',
dictId: location.getParam("dictId"),
dictName: '',
dictName: location.getParam("dictName"),
key: '',
value: '',
valid: '',
@ -179,13 +182,18 @@
title: "",
dialog: false,
id: '',
dictId: location.getParam("dictId"),
dictName: '',
key: '',
value: '',
sort: 0,
valid: true
valid: true,
rowVersion: ""
},
formRules: {
dictName: [
{required: true, message: '字典名称不能为空', trigger: 'blur'},
{min: 1, max: 50, message: '字典名称长度在 1 到 50 个字符', trigger: 'blur'}
],
key: [
{required: true, message: '请输入字典名称', trigger: 'blur'},
{min: 1, max: 50, message: '长度在 3 到 5 个字符', trigger: 'blur'}
@ -194,40 +202,38 @@
{required: true, message: '请输入字典代码', trigger: 'blur'},
{min: 1, max: 50, message: '长度在 1 到 50 个字符', trigger: 'blur'}
],
sort: [
{required: true, message: '排序不能为空', trigger: 'blur'},
],
valid: [
{required: true, message: '是否有效不能为空', trigger: 'blur'},
],
},
},
methods: {
getDict: function () {
this.$ajax.get("system", "dict", {id: location.getParam("dictId")}).then(function (response) {
if (response.errors.length > 0) {
this.e(response.errors[0].message);
} else {
this.vm.dictName = response.dict.dictName;
}
}.bind(this))
},
onCreate: function () {
this.form.title = '新增字典项';
this.form.id = '';
this.form.dialog = true;
this.form.dictName = location.getParam("dictName");
this.form.key = '';
this.form.value = '';
this.form.sort = this.vm.totalCount;
this.form.valid = true;
this.form.dialog = true;
},
onCommand: function (arg) {
const cmd = arg[0];
const item = arg[1];
switch (cmd) {
case "edit":
this.form.title = '编辑字典项';
this.form.title = '字典项编辑';
this.form.dialog = true;
this.form.id = item.id;
this.form.dictName = item.dictName;
this.form.key = item.key;
this.form.value = item.value;
this.form.valid = item.valid;
this.form.sort = item.sort;
this.form.valid = item.valid;
this.form.rowVersion = item.rowVersion;
this.form.dialog = true;
break;
case "delete":
this.onDelete(item);
@ -239,7 +245,6 @@
}
},
mounted: function () {
this.getDict();
this.onFind();
}
})

Loading…
Cancel
Save

Powered by TurnKey Linux.