提交 2c50201c 编写于 作者: 偏锋书生's avatar 偏锋书生

字典组与字典值管理

上级 87e5bcfe
package net.wicp.tams.app.duckula.controller.bean.constant;
import org.apache.commons.lang3.StringUtils;
import net.wicp.tams.common.constant.dic.intf.IEnumCombobox;
public enum OptGroupStatus implements IEnumCombobox {
DEL("已删除"), MOV("已移动"), UNUSE("未启用");
private final String desc;
private OptGroupStatus(String desc) {
this.desc = desc;
}
@Override
public String getDesc() {
return this.desc;
}
@Override
public String getDesc_en() {
return this.desc;
}
@Override
public String getDesc_zh() {
return this.desc;
}
@Override
public String getName() {
return this.name();
}
public static OptGroupStatus find(String name) {
if (StringUtils.isEmpty(name)) {
return null;
}
for (OptGroupStatus ele : OptGroupStatus.values()) {
if (name.equalsIgnoreCase(ele.name())) {
return ele;
}
}
return null;
}
}
......@@ -24,6 +24,11 @@ public class SysOptitem {
* @mbg.generated
*/
private Long parentId;
/**
* Database Column Remarks: 在对应的组被移动时临时保存 This field was generated by MyBatis Generator. This field corresponds to the database column sys_optitem.parent_id_old
* @mbg.generated
*/
private Long parentIdOld;
/**
* This field was generated by MyBatis Generator. This field corresponds to the database column sys_optitem.group_code
* @mbg.generated
......@@ -70,10 +75,15 @@ public class SysOptitem {
*/
private String remark;
/**
* This field was generated by MyBatis Generator. This field corresponds to the database column sys_optitem.isValid
* This field was generated by MyBatis Generator. This field corresponds to the database column sys_optitem.status
* @mbg.generated
*/
private String isvalid;
private String status;
/**
* This field was generated by MyBatis Generator. This field corresponds to the database column sys_optitem.status_parent
* @mbg.generated
*/
private String statusParent;
/**
* This field was generated by MyBatis Generator. This field corresponds to the database column sys_optitem.create_time
* @mbg.generated
......@@ -84,12 +94,13 @@ public class SysOptitem {
* This method was generated by MyBatis Generator. This method corresponds to the database table sys_optitem
* @mbg.generated
*/
public SysOptitem(Long id, String itemCode, Long parentId, String groupCode, String nameZh, String nameEn,
Integer orderNo, String field1, String field2, String field3, String field4, String remark, String isvalid,
Date createTime) {
public SysOptitem(Long id, String itemCode, Long parentId, Long parentIdOld, String groupCode, String nameZh,
String nameEn, Integer orderNo, String field1, String field2, String field3, String field4, String remark,
String status, String statusParent, Date createTime) {
this.id = id;
this.itemCode = itemCode;
this.parentId = parentId;
this.parentIdOld = parentIdOld;
this.groupCode = groupCode;
this.nameZh = nameZh;
this.nameEn = nameEn;
......@@ -99,7 +110,8 @@ public class SysOptitem {
this.field3 = field3;
this.field4 = field4;
this.remark = remark;
this.isvalid = isvalid;
this.status = status;
this.statusParent = statusParent;
this.createTime = createTime;
}
......@@ -165,6 +177,24 @@ public class SysOptitem {
this.parentId = parentId;
}
/**
* This method was generated by MyBatis Generator. This method returns the value of the database column sys_optitem.parent_id_old
* @return the value of sys_optitem.parent_id_old
* @mbg.generated
*/
public Long getParentIdOld() {
return parentIdOld;
}
/**
* This method was generated by MyBatis Generator. This method sets the value of the database column sys_optitem.parent_id_old
* @param parentIdOld the value for sys_optitem.parent_id_old
* @mbg.generated
*/
public void setParentIdOld(Long parentIdOld) {
this.parentIdOld = parentIdOld;
}
/**
* This method was generated by MyBatis Generator. This method returns the value of the database column sys_optitem.group_code
* @return the value of sys_optitem.group_code
......@@ -328,21 +358,39 @@ public class SysOptitem {
}
/**
* This method was generated by MyBatis Generator. This method returns the value of the database column sys_optitem.isValid
* @return the value of sys_optitem.isValid
* This method was generated by MyBatis Generator. This method returns the value of the database column sys_optitem.status
* @return the value of sys_optitem.status
* @mbg.generated
*/
public String getStatus() {
return status;
}
/**
* This method was generated by MyBatis Generator. This method sets the value of the database column sys_optitem.status
* @param status the value for sys_optitem.status
* @mbg.generated
*/
public void setStatus(String status) {
this.status = status;
}
/**
* This method was generated by MyBatis Generator. This method returns the value of the database column sys_optitem.status_parent
* @return the value of sys_optitem.status_parent
* @mbg.generated
*/
public String getIsvalid() {
return isvalid;
public String getStatusParent() {
return statusParent;
}
/**
* This method was generated by MyBatis Generator. This method sets the value of the database column sys_optitem.isValid
* @param isvalid the value for sys_optitem.isValid
* This method was generated by MyBatis Generator. This method sets the value of the database column sys_optitem.status_parent
* @param statusParent the value for sys_optitem.status_parent
* @mbg.generated
*/
public void setIsvalid(String isvalid) {
this.isvalid = isvalid;
public void setStatusParent(String statusParent) {
this.statusParent = statusParent;
}
/**
......
......@@ -353,6 +353,66 @@ public class SysOptitemExample {
return (Criteria) this;
}
public Criteria andParentIdOldIsNull() {
addCriterion("parent_id_old is null");
return (Criteria) this;
}
public Criteria andParentIdOldIsNotNull() {
addCriterion("parent_id_old is not null");
return (Criteria) this;
}
public Criteria andParentIdOldEqualTo(Long value) {
addCriterion("parent_id_old =", value, "parentIdOld");
return (Criteria) this;
}
public Criteria andParentIdOldNotEqualTo(Long value) {
addCriterion("parent_id_old <>", value, "parentIdOld");
return (Criteria) this;
}
public Criteria andParentIdOldGreaterThan(Long value) {
addCriterion("parent_id_old >", value, "parentIdOld");
return (Criteria) this;
}
public Criteria andParentIdOldGreaterThanOrEqualTo(Long value) {
addCriterion("parent_id_old >=", value, "parentIdOld");
return (Criteria) this;
}
public Criteria andParentIdOldLessThan(Long value) {
addCriterion("parent_id_old <", value, "parentIdOld");
return (Criteria) this;
}
public Criteria andParentIdOldLessThanOrEqualTo(Long value) {
addCriterion("parent_id_old <=", value, "parentIdOld");
return (Criteria) this;
}
public Criteria andParentIdOldIn(List<Long> values) {
addCriterion("parent_id_old in", values, "parentIdOld");
return (Criteria) this;
}
public Criteria andParentIdOldNotIn(List<Long> values) {
addCriterion("parent_id_old not in", values, "parentIdOld");
return (Criteria) this;
}
public Criteria andParentIdOldBetween(Long value1, Long value2) {
addCriterion("parent_id_old between", value1, value2, "parentIdOld");
return (Criteria) this;
}
public Criteria andParentIdOldNotBetween(Long value1, Long value2) {
addCriterion("parent_id_old not between", value1, value2, "parentIdOld");
return (Criteria) this;
}
public Criteria andGroupCodeIsNull() {
addCriterion("group_code is null");
return (Criteria) this;
......@@ -973,73 +1033,143 @@ public class SysOptitemExample {
return (Criteria) this;
}
public Criteria andIsvalidIsNull() {
addCriterion("isValid is null");
public Criteria andStatusIsNull() {
addCriterion("status is null");
return (Criteria) this;
}
public Criteria andStatusIsNotNull() {
addCriterion("status is not null");
return (Criteria) this;
}
public Criteria andStatusEqualTo(String value) {
addCriterion("status =", value, "status");
return (Criteria) this;
}
public Criteria andStatusNotEqualTo(String value) {
addCriterion("status <>", value, "status");
return (Criteria) this;
}
public Criteria andStatusGreaterThan(String value) {
addCriterion("status >", value, "status");
return (Criteria) this;
}
public Criteria andStatusGreaterThanOrEqualTo(String value) {
addCriterion("status >=", value, "status");
return (Criteria) this;
}
public Criteria andStatusLessThan(String value) {
addCriterion("status <", value, "status");
return (Criteria) this;
}
public Criteria andStatusLessThanOrEqualTo(String value) {
addCriterion("status <=", value, "status");
return (Criteria) this;
}
public Criteria andStatusLike(String value) {
addCriterion("status like", value, "status");
return (Criteria) this;
}
public Criteria andStatusNotLike(String value) {
addCriterion("status not like", value, "status");
return (Criteria) this;
}
public Criteria andStatusIn(List<String> values) {
addCriterion("status in", values, "status");
return (Criteria) this;
}
public Criteria andStatusNotIn(List<String> values) {
addCriterion("status not in", values, "status");
return (Criteria) this;
}
public Criteria andStatusBetween(String value1, String value2) {
addCriterion("status between", value1, value2, "status");
return (Criteria) this;
}
public Criteria andStatusNotBetween(String value1, String value2) {
addCriterion("status not between", value1, value2, "status");
return (Criteria) this;
}
public Criteria andStatusParentIsNull() {
addCriterion("status_parent is null");
return (Criteria) this;
}
public Criteria andIsvalidIsNotNull() {
addCriterion("isValid is not null");
public Criteria andStatusParentIsNotNull() {
addCriterion("status_parent is not null");
return (Criteria) this;
}
public Criteria andIsvalidEqualTo(String value) {
addCriterion("isValid =", value, "isvalid");
public Criteria andStatusParentEqualTo(String value) {
addCriterion("status_parent =", value, "statusParent");
return (Criteria) this;
}
public Criteria andIsvalidNotEqualTo(String value) {
addCriterion("isValid <>", value, "isvalid");
public Criteria andStatusParentNotEqualTo(String value) {
addCriterion("status_parent <>", value, "statusParent");
return (Criteria) this;
}
public Criteria andIsvalidGreaterThan(String value) {
addCriterion("isValid >", value, "isvalid");
public Criteria andStatusParentGreaterThan(String value) {
addCriterion("status_parent >", value, "statusParent");
return (Criteria) this;
}
public Criteria andIsvalidGreaterThanOrEqualTo(String value) {
addCriterion("isValid >=", value, "isvalid");
public Criteria andStatusParentGreaterThanOrEqualTo(String value) {
addCriterion("status_parent >=", value, "statusParent");
return (Criteria) this;
}
public Criteria andIsvalidLessThan(String value) {
addCriterion("isValid <", value, "isvalid");
public Criteria andStatusParentLessThan(String value) {
addCriterion("status_parent <", value, "statusParent");
return (Criteria) this;
}
public Criteria andIsvalidLessThanOrEqualTo(String value) {
addCriterion("isValid <=", value, "isvalid");
public Criteria andStatusParentLessThanOrEqualTo(String value) {
addCriterion("status_parent <=", value, "statusParent");
return (Criteria) this;
}
public Criteria andIsvalidLike(String value) {
addCriterion("isValid like", value, "isvalid");
public Criteria andStatusParentLike(String value) {
addCriterion("status_parent like", value, "statusParent");
return (Criteria) this;
}
public Criteria andIsvalidNotLike(String value) {
addCriterion("isValid not like", value, "isvalid");
public Criteria andStatusParentNotLike(String value) {
addCriterion("status_parent not like", value, "statusParent");
return (Criteria) this;
}
public Criteria andIsvalidIn(List<String> values) {
addCriterion("isValid in", values, "isvalid");
public Criteria andStatusParentIn(List<String> values) {
addCriterion("status_parent in", values, "statusParent");
return (Criteria) this;
}
public Criteria andIsvalidNotIn(List<String> values) {
addCriterion("isValid not in", values, "isvalid");
public Criteria andStatusParentNotIn(List<String> values) {
addCriterion("status_parent not in", values, "statusParent");
return (Criteria) this;
}
public Criteria andIsvalidBetween(String value1, String value2) {
addCriterion("isValid between", value1, value2, "isvalid");
public Criteria andStatusParentBetween(String value1, String value2) {
addCriterion("status_parent between", value1, value2, "statusParent");
return (Criteria) this;
}
public Criteria andIsvalidNotBetween(String value1, String value2) {
addCriterion("isValid not between", value1, value2, "isvalid");
public Criteria andStatusParentNotBetween(String value1, String value2) {
addCriterion("status_parent not between", value1, value2, "statusParent");
return (Criteria) this;
}
......
package net.wicp.tams.app.duckula.controller.dao;
import java.util.List;
import net.wicp.tams.app.duckula.controller.bean.models.SysOptgroup;
import net.wicp.tams.app.duckula.controller.bean.models.SysOptgroupExample;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
......@@ -10,7 +9,12 @@ import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
public interface SysOptgroupMapper {
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.wicp.tams.app.duckula.controller.bean.models.SysOptgroup;
import net.wicp.tams.app.duckula.controller.bean.models.SysOptgroupExample;
public interface SysOptgroupMapper extends BaseMapper<SysOptgroup> {
/**
* This method was generated by MyBatis Generator. This method corresponds to the database table sys_optgroup
......
package net.wicp.tams.app.duckula.controller.dao;
import java.util.List;
import net.wicp.tams.app.duckula.controller.bean.models.SysOptitem;
import net.wicp.tams.app.duckula.controller.bean.models.SysOptitemExample;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
......@@ -10,7 +9,12 @@ import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
public interface SysOptitemMapper {
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.wicp.tams.app.duckula.controller.bean.models.SysOptitem;
import net.wicp.tams.app.duckula.controller.bean.models.SysOptitemExample;
public interface SysOptitemMapper extends BaseMapper<SysOptitem> {
/**
* This method was generated by MyBatis Generator. This method corresponds to the database table sys_optitem
......@@ -35,15 +39,16 @@ public interface SysOptitemMapper {
* This method was generated by MyBatis Generator. This method corresponds to the database table sys_optitem
* @mbg.generated
*/
@Insert({ "insert into sys_optitem (id, item_code, ", "parent_id, group_code, ", "name_zh, name_en, ",
"order_no, field1, ", "field2, field3, ", "field4, remark, ", "isValid, create_time)",
"values (#{id,jdbcType=BIGINT}, #{itemCode,jdbcType=VARCHAR}, ",
"#{parentId,jdbcType=BIGINT}, #{groupCode,jdbcType=VARCHAR}, ",
"#{nameZh,jdbcType=VARCHAR}, #{nameEn,jdbcType=VARCHAR}, ",
"#{orderNo,jdbcType=INTEGER}, #{field1,jdbcType=VARCHAR}, ",
"#{field2,jdbcType=VARCHAR}, #{field3,jdbcType=VARCHAR}, ",
"#{field4,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, ",
"#{isvalid,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP})" })
@Insert({ "insert into sys_optitem (id, item_code, ", "parent_id, parent_id_old, ", "group_code, name_zh, ",
"name_en, order_no, ", "field1, field2, ", "field3, field4, ", "remark, status, ",
"status_parent, create_time)", "values (#{id,jdbcType=BIGINT}, #{itemCode,jdbcType=VARCHAR}, ",
"#{parentId,jdbcType=BIGINT}, #{parentIdOld,jdbcType=BIGINT}, ",
"#{groupCode,jdbcType=VARCHAR}, #{nameZh,jdbcType=VARCHAR}, ",
"#{nameEn,jdbcType=VARCHAR}, #{orderNo,jdbcType=INTEGER}, ",
"#{field1,jdbcType=VARCHAR}, #{field2,jdbcType=VARCHAR}, ",
"#{field3,jdbcType=VARCHAR}, #{field4,jdbcType=VARCHAR}, ",
"#{remark,jdbcType=VARCHAR}, #{status,jdbcType=VARCHAR}, ",
"#{statusParent,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP})" })
int insert(SysOptitem record);
/**
......@@ -62,8 +67,9 @@ public interface SysOptitemMapper {
* This method was generated by MyBatis Generator. This method corresponds to the database table sys_optitem
* @mbg.generated
*/
@Select({ "select", "id, item_code, parent_id, group_code, name_zh, name_en, order_no, field1, field2, ",
"field3, field4, remark, isValid, create_time", "from sys_optitem", "where id = #{id,jdbcType=BIGINT}" })
@Select({ "select", "id, item_code, parent_id, parent_id_old, group_code, name_zh, name_en, order_no, ",
"field1, field2, field3, field4, remark, status, status_parent, create_time", "from sys_optitem",
"where id = #{id,jdbcType=BIGINT}" })
@ResultMap("net.wicp.tams.app.duckula.controller.dao.SysOptitemMapper.BaseResultMap")
SysOptitem selectByPrimaryKey(Long id);
......@@ -90,12 +96,13 @@ public interface SysOptitemMapper {
* @mbg.generated
*/
@Update({ "update sys_optitem", "set item_code = #{itemCode,jdbcType=VARCHAR},",
"parent_id = #{parentId,jdbcType=BIGINT},", "group_code = #{groupCode,jdbcType=VARCHAR},",
"name_zh = #{nameZh,jdbcType=VARCHAR},", "name_en = #{nameEn,jdbcType=VARCHAR},",
"order_no = #{orderNo,jdbcType=INTEGER},", "field1 = #{field1,jdbcType=VARCHAR},",
"field2 = #{field2,jdbcType=VARCHAR},", "field3 = #{field3,jdbcType=VARCHAR},",
"field4 = #{field4,jdbcType=VARCHAR},", "remark = #{remark,jdbcType=VARCHAR},",
"isValid = #{isvalid,jdbcType=VARCHAR},", "create_time = #{createTime,jdbcType=TIMESTAMP}",
"parent_id = #{parentId,jdbcType=BIGINT},", "parent_id_old = #{parentIdOld,jdbcType=BIGINT},",
"group_code = #{groupCode,jdbcType=VARCHAR},", "name_zh = #{nameZh,jdbcType=VARCHAR},",
"name_en = #{nameEn,jdbcType=VARCHAR},", "order_no = #{orderNo,jdbcType=INTEGER},",
"field1 = #{field1,jdbcType=VARCHAR},", "field2 = #{field2,jdbcType=VARCHAR},",
"field3 = #{field3,jdbcType=VARCHAR},", "field4 = #{field4,jdbcType=VARCHAR},",
"remark = #{remark,jdbcType=VARCHAR},", "status = #{status,jdbcType=VARCHAR},",
"status_parent = #{statusParent,jdbcType=VARCHAR},", "create_time = #{createTime,jdbcType=TIMESTAMP}",
"where id = #{id,jdbcType=BIGINT}" })
int updateByPrimaryKey(SysOptitem record);
}
\ No newline at end of file
package net.wicp.tams.duckula.ops.convert;
import java.io.Serializable;
import org.apache.commons.beanutils.PropertyUtils;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import lombok.extern.slf4j.Slf4j;
import net.wicp.tams.common.apiext.StringUtil;
import net.wicp.tams.common.callback.IConvertValue;
/***
* 从数据库拿到解释(先只支持mysql),只支持主键为一个字段
*
* @author Administrator
*
*/
@Slf4j
public class ConvertValueMyBatis implements IConvertValue<Serializable> {
private final BaseMapper<?> baseMapper;
private final String retColNames;
public ConvertValueMyBatis(BaseMapper<?> baseMapper, String retColNames) {
this.baseMapper = baseMapper;
this.retColNames = retColNames;
}
@Override
public String getStr(Serializable keyObj) {
if (StringUtil.isNull(keyObj)) {
return "";
}
Object selectObj = this.baseMapper.selectById(keyObj);
if (selectObj == null) {
return "";
}
try {
StringBuffer buff = new StringBuffer();
for (String retColName : retColNames.split(",")) {
buff.append("^" + PropertyUtils.getProperty(selectObj, retColName));
}
return buff.substring(1);
} catch (Exception e) {
log.error("错误取字段", e);
}
return "";
}
}
package net.wicp.tams.duckula.ops.pages.cas;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.tapestry5.annotations.Import;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.SetupRender;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.json.JSONObject;
import org.apache.tapestry5.util.TextStreamResponse;
import org.springframework.dao.DuplicateKeyException;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import lombok.extern.slf4j.Slf4j;
import net.wicp.tams.app.duckula.controller.bean.constant.OptGroupStatus;
import net.wicp.tams.app.duckula.controller.bean.models.SysOptgroup;
import net.wicp.tams.app.duckula.controller.bean.models.SysOptgroupExample;
import net.wicp.tams.app.duckula.controller.bean.models.SysOptitem;
import net.wicp.tams.app.duckula.controller.bean.models.SysOptitemExample;
import net.wicp.tams.app.duckula.controller.bean.models.SysOptitemExample.Criteria;
import net.wicp.tams.app.duckula.controller.dao.SysOptgroupMapper;
import net.wicp.tams.app.duckula.controller.dao.SysOptitemMapper;
import net.wicp.tams.cas.convert.ConvertValueOpt;
import net.wicp.tams.common.Result;
import net.wicp.tams.common.apiext.CollectionUtil;
import net.wicp.tams.common.apiext.StringUtil;
import net.wicp.tams.common.apiext.json.EasyUiAssist;
import net.wicp.tams.common.apiext.json.JSONUtil;
import net.wicp.tams.common.apiext.json.easyuibean.EasyUINode;
import net.wicp.tams.common.apiext.json.easyuibean.EasyUINodeConf;
import net.wicp.tams.common.callback.IConvertValue;
import net.wicp.tams.common.callback.impl.convertvalue.ConvertValueEnum;
import net.wicp.tams.common.constant.dic.YesOrNo;
import net.wicp.tams.component.tools.TapestryAssist;
import net.wicp.tams.duckula.ops.convert.ConvertValueMyBatis;
import net.wicp.tams.duckula.ops.pages.ParentPage;
import net.wicp.tams.duckula.ops.pages.ParentPageBean;
import redis.clients.jedis.Jedis;
@Import(library = { "${path.jquery.plugin}/aop.min.js" })
@SuppressWarnings("all")
@Slf4j
public class OptionItemManager extends ParentPageBean<SysOptitem> {
@Inject
private SysOptitemMapper sysOptitemMapper;
@Inject
private SysOptgroupMapper sysOptgroupMapper;
@Override
public void packageQuery(SysOptitem t, QueryWrapper<SysOptitem> queryWrapper) {
if (StringUtils.isNotBlank(t.getItemCode())) {
queryWrapper.eq("item_code", t.getItemCode());
}
String itemName = request.getParameter("itemName");
if (StringUtils.isNotBlank(itemName)) {
String lan = supportedLocales.getCurLocale().getLanguage().substring(0, 1).toUpperCase()
+ supportedLocales.getCurLocale().getLanguage().substring(1);
if ("en".equals(lan)) {
queryWrapper.eq("name_en", itemName);
} else {
queryWrapper.eq("name_zh", itemName);
}
}
if (StringUtils.isNotBlank(t.getGroupCode())) {
queryWrapper.eq("group_code", t.getGroupCode());
}
if (t.getParentId() != null) {
queryWrapper.eq("parent_id", t.getParentId());
}
if (StringUtils.isNotBlank(t.getStatus())) {
queryWrapper.eq("status", t.getStatus());
}
}
@Override
protected Pair<String[], Map<String, IConvertValue>> packageConvert() {
String[] cols = new String[] { "status,status1", "groupCode,group1", getColLan("name"),
"parentId,parentId1"};
Map<String, IConvertValue> conv = new HashMap<String, IConvertValue>();
conv.put("status1", new ConvertValueEnum(YesOrNo.class));
conv.put("group1", new ConvertValueMyBatis(sysOptgroupMapper,"remark"));
conv.put("parentId1", new ConvertValueMyBatis(sysOptitemMapper,"nameZh"));
return Pair.of(cols, conv);
}
@Override
public void doSave(SysOptitem t, boolean isInsert) {
if (isInsert) {
t.setCreateTime(new Date());
sysOptitemMapper.insert(t);
} else {
//保留没有放到界面的信息
SysOptitem oriObj = sysOptitemMapper.selectByPrimaryKey(t.getId());
t.setCreateTime(oriObj.getCreateTime());
sysOptitemMapper.updateByPrimaryKey(t);
}
}
public TextStreamResponse onSaveGroup() {
SysOptgroup group = TapestryAssist.getBeanFromPage(SysOptgroup.class, request);
String isInsert = request.getParameter("isInsert");
try {
if("yes".equals(isInsert)) {
sysOptgroupMapper.insert(group);
}else {
sysOptgroupMapper.updateByPrimaryKey(group);
updateItemParentStatus(group.getId(),YesOrNo.yes);
}
}catch (DuplicateKeyException e) {
return TapestryAssist.getTextStreamResponse(Result.getError("选项组编码重复,有可能这个编码被设置为废弃"));
}
return TapestryAssist.getTextStreamResponse(Result.getSuc());
}
@SetupRender
void init() {
}
public TextStreamResponse onGroupTree() {
List<SysOptgroup> groups = sysOptgroupMapper.selectByExample(new SysOptgroupExample());
EasyUINodeConf conf = new EasyUINodeConf("id", "remark", "parentId");
conf.setAttrCols("isEdit", "isValid");
List<EasyUINode> roots = new ArrayList<>();
try {
roots = EasyUiAssist.getTreeRoot(groups, conf);
} catch (Exception e) {
}
return TapestryAssist.getTextStreamResponse(EasyUiAssist.getTreeFromList(roots));
}
public TextStreamResponse onDelGroup() {
String groupId = request.getParameter("groupId");
QueryWrapper<SysOptgroup> queryWrapper=new QueryWrapper<SysOptgroup>();
queryWrapper.eq("parent_id", groupId);
Integer count = sysOptgroupMapper.selectCount(queryWrapper);
if(count>0) {
return TapestryAssist.getTextStreamResponse(Result.getError("此组下面有子组,不允许删除。"));
}
SysOptgroup group = new SysOptgroup();
group.setIsValid(YesOrNo.no.name());
group.setId(groupId);
sysOptgroupMapper.updateByPrimaryKeySelective(group);
updateItemParentStatus(groupId,YesOrNo.no);
return TapestryAssist.getTextStreamResponse(Result.getSuc());
}
private void updateItemParentStatus(String groupId,YesOrNo status) {
//删除item相关
SysOptitemExample sysOptitemExample=new SysOptitemExample();
Criteria criteria = sysOptitemExample.createCriteria();
criteria.andGroupCodeEqualTo(groupId);
SysOptitem record=new SysOptitem();
record.setStatusParent(status.name());
sysOptitemMapper.updateByExampleSelective(record, sysOptitemExample);
}
/***
* 移动组要做的动作: 1、修改组缓存、旧parentIdOld的optionsubs删除选项、optionitem重新put 2、修改组父信息
* 3、把组下所有的opt字段设置为: parentId='',parentIdOld=parentId,parentStatus='MOV' 、
*
* @return
*/
public TextStreamResponse onDragGroup() {
String sourceId = request.getParameter("sourceId");
String targetId = request.getParameter("targetId");
// 1、修改组缓存、旧parentIdOld的optionsubs删除选项、optionitem重新put
SysOptgroup optGroup = sysOptgroupMapper.selectByPrimaryKey(sourceId);
optGroup.setParentId(targetId);
sysOptgroupMapper.updateByPrimaryKey(optGroup);// 2、修改组父信息
List<SysOptitem> alllist = sysOptitemMapper
.selectByMap(CollectionUtil.newMap("group_code", sourceId));
for (SysOptitem optionitem : alllist) {
SysOptitem newobj =null;
try {
newobj = (SysOptitem) BeanUtils.cloneBean(optionitem);
newobj.setParentId(null);
} catch (Exception e) {
log.error("移动时修改对应item错误",e);
return TapestryAssist.getTextStreamResponse(Result.getSuc());
}
if(optionitem.getParentId()==null) {//一种是曾经有parent但被移除了,另一种是从来就没有parent
if(optionitem.getParentIdOld()!=null) {//曾经有parent但被移除了
SysOptitem parentOld = sysOptitemMapper.selectByPrimaryKey(optionitem.getParentIdOld());
if(parentOld.getGroupCode().equals(targetId)) {//刚好移到之前的group下,恢复
newobj.setParentId(optionitem.getParentIdOld());
newobj.setParentIdOld(null);
}
}
}else {//防止两次移动冲掉此项,parent不为空,设置为ParentIdOld为parent的值
newobj.setParentId(null);
newobj.setParentIdOld(optionitem.getParentId());
}
sysOptitemMapper.updateByPrimaryKey(newobj);
}
return TapestryAssist.getTextStreamResponse(Result.getSuc());
}
public TextStreamResponse onQueryGroup() {
List<SysOptgroup> groups = sysOptgroupMapper.selectByExample(new SysOptgroupExample());
EasyUINodeConf conf = new EasyUINodeConf("id", "remark", "parentId");
conf.setFieldCols("isEdit", "isValid");
String str ="";
try {
List<EasyUINode> treeRoot = EasyUiAssist.getTreeRoot(groups, conf);
str = EasyUiAssist.getTreeFromList(treeRoot);
} catch (Exception e) {
log.error("组装选项组树失败");
}
return TapestryAssist.getTextStreamResponse(str);
}
public TextStreamResponse onQueryParentGroup() {
String groupid = request.getParameter("parent");
List<SysOptitem> optlist=new ArrayList<SysOptitem>();
if(StringUtil.isNotNull(groupid)) {
SysOptgroup group = sysOptgroupMapper.selectById(groupid);
if(StringUtil.isNotNull(group.getParentId())) {
optlist = sysOptitemMapper.selectByMap(CollectionUtil.newMap("group_code",group.getParentId()));
}
}
Map<String, IConvertValue<String>> conv = new HashMap<String, IConvertValue<String>>();
conv.put("status1", new ConvertValueEnum(YesOrNo.class));
// conv.put("group1", new ConvertValueOpt(supportedLocales));
String str = JSONUtil.getJsonForListAlias(optlist,new String[] { "status,status1", "groupCode,group1" },
conv);
return TapestryAssist.getTextStreamResponse(str);
}
@Override
public void doDel(String id) {
}
@Override
public BaseMapper<SysOptitem> getBaseMapper() {
return this.sysOptitemMapper;
}
}
......@@ -10,6 +10,7 @@
<idArg column="id" javaType="java.lang.Long" jdbcType="BIGINT" />
<arg column="item_code" javaType="java.lang.String" jdbcType="VARCHAR" />
<arg column="parent_id" javaType="java.lang.Long" jdbcType="BIGINT" />
<arg column="parent_id_old" javaType="java.lang.Long" jdbcType="BIGINT" />
<arg column="group_code" javaType="java.lang.String" jdbcType="VARCHAR" />
<arg column="name_zh" javaType="java.lang.String" jdbcType="VARCHAR" />
<arg column="name_en" javaType="java.lang.String" jdbcType="VARCHAR" />
......@@ -19,7 +20,8 @@
<arg column="field3" javaType="java.lang.String" jdbcType="VARCHAR" />
<arg column="field4" javaType="java.lang.String" jdbcType="VARCHAR" />
<arg column="remark" javaType="java.lang.String" jdbcType="VARCHAR" />
<arg column="isValid" javaType="java.lang.String" jdbcType="VARCHAR" />
<arg column="status" javaType="java.lang.String" jdbcType="VARCHAR" />
<arg column="status_parent" javaType="java.lang.String" jdbcType="VARCHAR" />
<arg column="create_time" javaType="java.util.Date" jdbcType="TIMESTAMP" />
</constructor>
</resultMap>
......@@ -94,8 +96,8 @@
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
id, item_code, parent_id, group_code, name_zh, name_en, order_no, field1, field2,
field3, field4, remark, isValid, create_time
id, item_code, parent_id, parent_id_old, group_code, name_zh, name_en, order_no,
field1, field2, field3, field4, remark, status, status_parent, create_time
</sql>
<select id="selectByExample" parameterType="net.wicp.tams.app.duckula.controller.bean.models.SysOptitemExample" resultMap="BaseResultMap">
<!--
......@@ -141,6 +143,9 @@
<if test="parentId != null">
parent_id,
</if>
<if test="parentIdOld != null">
parent_id_old,
</if>
<if test="groupCode != null">
group_code,
</if>
......@@ -168,8 +173,11 @@
<if test="remark != null">
remark,
</if>
<if test="isvalid != null">
isValid,
<if test="status != null">
status,
</if>
<if test="statusParent != null">
status_parent,
</if>
<if test="createTime != null">
create_time,
......@@ -185,6 +193,9 @@
<if test="parentId != null">
#{parentId,jdbcType=BIGINT},
</if>
<if test="parentIdOld != null">
#{parentIdOld,jdbcType=BIGINT},
</if>
<if test="groupCode != null">
#{groupCode,jdbcType=VARCHAR},
</if>
......@@ -212,8 +223,11 @@
<if test="remark != null">
#{remark,jdbcType=VARCHAR},
</if>
<if test="isvalid != null">
#{isvalid,jdbcType=VARCHAR},
<if test="status != null">
#{status,jdbcType=VARCHAR},
</if>
<if test="statusParent != null">
#{statusParent,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
......@@ -246,6 +260,9 @@
<if test="record.parentId != null">
parent_id = #{record.parentId,jdbcType=BIGINT},
</if>
<if test="record.parentIdOld != null">
parent_id_old = #{record.parentIdOld,jdbcType=BIGINT},
</if>
<if test="record.groupCode != null">
group_code = #{record.groupCode,jdbcType=VARCHAR},
</if>
......@@ -273,8 +290,11 @@
<if test="record.remark != null">
remark = #{record.remark,jdbcType=VARCHAR},
</if>
<if test="record.isvalid != null">
isValid = #{record.isvalid,jdbcType=VARCHAR},
<if test="record.status != null">
status = #{record.status,jdbcType=VARCHAR},
</if>
<if test="record.statusParent != null">
status_parent = #{record.statusParent,jdbcType=VARCHAR},
</if>
<if test="record.createTime != null">
create_time = #{record.createTime,jdbcType=TIMESTAMP},
......@@ -293,6 +313,7 @@
set id = #{record.id,jdbcType=BIGINT},
item_code = #{record.itemCode,jdbcType=VARCHAR},
parent_id = #{record.parentId,jdbcType=BIGINT},
parent_id_old = #{record.parentIdOld,jdbcType=BIGINT},
group_code = #{record.groupCode,jdbcType=VARCHAR},
name_zh = #{record.nameZh,jdbcType=VARCHAR},
name_en = #{record.nameEn,jdbcType=VARCHAR},
......@@ -302,7 +323,8 @@
field3 = #{record.field3,jdbcType=VARCHAR},
field4 = #{record.field4,jdbcType=VARCHAR},
remark = #{record.remark,jdbcType=VARCHAR},
isValid = #{record.isvalid,jdbcType=VARCHAR},
status = #{record.status,jdbcType=VARCHAR},
status_parent = #{record.statusParent,jdbcType=VARCHAR},
create_time = #{record.createTime,jdbcType=TIMESTAMP}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
......@@ -321,6 +343,9 @@
<if test="parentId != null">
parent_id = #{parentId,jdbcType=BIGINT},
</if>
<if test="parentIdOld != null">
parent_id_old = #{parentIdOld,jdbcType=BIGINT},
</if>
<if test="groupCode != null">
group_code = #{groupCode,jdbcType=VARCHAR},
</if>
......@@ -348,8 +373,11 @@
<if test="remark != null">
remark = #{remark,jdbcType=VARCHAR},
</if>
<if test="isvalid != null">
isValid = #{isvalid,jdbcType=VARCHAR},
<if test="status != null">
status = #{status,jdbcType=VARCHAR},
</if>
<if test="statusParent != null">
status_parent = #{statusParent,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
......
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd"
xmlns:r="tapestry-library:rjzjh"
xmlns:s="tapestry-library:tams"
xmlns:p="tapestry:parameter"
xmlns:c="tapestry-library:cas">
<head>
<title isMenu="true" module="3">字典管理</title>
</head>
<body class="easyui-layout">
<div data-options="region:'west'" style="width:300px" >
<r:tree id="groupTree" lines="true" params="{onContextMenu:showContextMenu,onBeforeDrop:beforeDrop,onDragEnter:dragEnter,onDblClick:queryGroupOpt}" url="/cas/OptionItemManager:groupTree"/>
<div id="mm" class="easyui-menu" style="width:120px;">
<div onclick="addgroup()" data-options="iconCls:'icon-add'">添加组</div>
<div id="updateGroup" onclick="updategroup()" data-options="iconCls:'icon-edit'">修改组</div>
<div id="delGroup" onclick="delgroup()" data-options="iconCls:'icon-remove'">删除组</div>
</div>
<r:dialog id="updateDialog" width="640" height="300" title="组操作" toolbar="[{id:'saveBut',iconCls:'icon-save',text:'保存'}]">
<form id="groupForm">
<table class="frame_table_list_2">
<tr>
<td class="frame_table_list_2_righttext">选项组编码</td>
<td><r:validatebox id="groupId" name="id" required="true"/>
<input id="groupParentId" name="parentId" type="hidden"/>
<!-- 是否更新标识 -->
<input id="isInsert" name="isInsert" type="hidden"/>
</td>
<td class="frame_table_list_2_righttext">选项组名称</td>
<td><r:validatebox id="groupRemark" name="remark" required="true"/>
</td>
</tr>
<tr>
<td class="frame_table_list_2_righttext">是否可编辑</td>
<td>
<r:comboboxenum id="groupIsEdit" name="isEdit" enumClass="net.wicp.tams.common.constant.dic.YesOrNo" required="true" panelHeight="120" value="literal:yes"></r:comboboxenum>
</td>
<td class="frame_table_list_2_righttext">是否启用</td>
<td>
<r:comboboxenum id="groupIsValid" name="isValid" enumClass="net.wicp.tams.common.constant.dic.YesOrNo" required="true" panelHeight="120" value="literal:yes"></r:comboboxenum>
</td>
</tr>
</table>
</form>
</r:dialog>
</div>
<div style="height:100%;padding-left:300px;" >
<r:query id="main" qBlock="query" queryUrl="/cas/OptionItemManager:query" saveUrl="/cas/OptionItemManager:save" uBlock="updateBlock"
columns="[[{field:'itemCode',width:110,title:'选项信息编码'},{field:'group1',width:110,title:'选项组'},{field:'name',width:110,title:'选项信息名称'},{field:'parentId1',width:110,title:'父信息'},{field:'status1',width:110,title:'是否可用'}]]"
dialogStyle="width:600px;height:350px;" initSaveHandle="initSaveHandle" initAddHandle="initAddHandle" style="overflow:hidden;height:1000px;" saveCheckHandle="savecheck"/>
<t:block id="query">
<table class="frame_table_list_4">
<tr>
<td class="frame_table_list_4_righttext">选项编码</td>
<td><r:validatebox name="itemCode"/></td>
<td class="frame_table_list_4_righttext">选项名称</td>
<td><r:validatebox name="itemName"/>
</td>
<td class="frame_table_list_4_righttext" >选项组</td>
<td>
<r:combotreegrid id="queryGroup" name="groupCode" columns="[[{field:'text',width:120,title:'组名字'},{field:'isValid',width:80,title:'是否可用'}]]"
url="/cas/OptionItemManager:queryGroup" multiple="false" pagination="false" panelWidth="220"></r:combotreegrid>
</td>
<td class="frame_table_list_4_righttext">是否可用</td>
<td><r:comboboxenum id="status" name="status" enumClass="net.wicp.tams.common.constant.dic.YesOrNo" required="true" panelHeight="120" value="literal:yes"></r:comboboxenum></td>
</tr>
<tr>
<td class="frame_table_list_4_righttext">父选项</td>
<td> <r:combobox name="parentId" textField="nameZh" valueField="id" url="/cas/OptionItemManager:queryParentGroup" panelHeight="180" parent="queryGroup"/></td>
<td class="frame_table_list_4_righttext">父可用</td>
<td>
<r:comboboxenum name="parentStatus" enumClass="net.wicp.tams.common.constant.dic.YesOrNo" panelHeight="120" value="literal:yes"/>
</td>
<td class="frame_table_list_4_righttext"></td>
<td></td>
<td class="frame_table_list_4_righttext"></td>
<td></td>
</tr>
</table>
</t:block>
<t:block id="updateBlock">
<table class="frame_table_list_2">
<tr>
<td class="frame_table_list_2_righttext">选项编码</td>
<td><r:validatebox name="itemCode" required="true"/>
<input type="hidden" id="id" name="id"/></td>
<td class="frame_table_list_2_righttext">选项组</td>
<td>
<r:combotreegrid id="groupSel" name="groupCode" columns="[[{field:'text',width:120,title:'组名字'},{field:'isValid',width:80,title:'是否可用'}]]"
url="/cas/OptionItemManager:queryGroup" multiple="false" pagination="false" required="true" panelWidth="220"></r:combotreegrid>
</td>
</tr>
<tr>
<td class="frame_table_list_2_righttext">中文名</td>
<td><r:validatebox name="nameZh" required="true"/></td>
<td class="frame_table_list_2_righttext">英文名</td>
<td><r:validatebox name="nameEn" required="true"/>
</td>
</tr>
<tr>
<td class="frame_table_list_2_righttext">排序</td>
<td>
<r:numberbox name="orderNo" required="false"></r:numberbox>
</td>
<td class="frame_table_list_2_righttext">是否可用</td>
<td><r:comboboxenum id="upIsValid" name="status" enumClass="net.wicp.tams.common.constant.dic.YesOrNo" required="true" panelHeight="120" value="literal:yes"></r:comboboxenum>
</td>
</tr>
<tr>
<td class="frame_table_list_2_righttext"></td>
<td>
<r:combobox id="parentId" name="parentId" textField="nameZh" valueField="id" url="/cas/OptionItemManager:queryParentGroup" panelHeight="180" parent="groupSel"/>
</td>
<td class="frame_table_list_2_righttext"></td>
<td></td>
</tr>
<tr>
<td class="frame_table_list_2_righttext">域一</td>
<td><r:validatebox name="field1" required="false"/></td>
<td class="frame_table_list_2_righttext">域二</td>
<td><r:validatebox name="field2" required="false"/></td>
</tr>
<tr>
<td class="frame_table_list_2_righttext">域三</td>
<td><r:validatebox name="field3" required="false"/>
</td>
<td class="frame_table_list_2_righttext">域四</td>
<td><r:validatebox name="field4" required="false"/></td>
</tr>
<tr>
<td class="frame_table_list_2_righttext">备注</td>
<td colspan="3"><r:validatebox name="remark" required="false" style="width:390px;"/>
</td>
</tr>
</table>
</t:block>
</div>
</body>
<script>
<!--
function savecheck(form){
var data= $('#parentId').combobox('getData');
if(data.length>0 &&form.parentId==''){
$.rjzjh.alert("父必选。");
return false;
}
return true;
}
-->
function initSaveHandle(rows){
// $('#groupSel').combogrid('readonly',true);
var url=$.rjzjh.packurl('/cas/OptionItemManager:queryParentGroup?parent='+rows.groupCode);
$('#parentId').combobox('reload',url);
}
function initAddHandle(){
// $('#groupSel').combobox('readonly',false);
$('#upIsValid').combobox('setValue','yes');
$('#parentId').combobox('loadData',[]);
}
//展示菜单
var rightClickNode;
function showContextMenu(e, node){
e.preventDefault();
rightClickNode=node;
//如果有子选项组则不能删除删除该选项
var delGroup = $('#delGroup')[0];
var updateGroup = $('#updateGroup')[0];
try{
var nodes = $('#groupTree').tree('getChildren',node.target); // get checked nodes
if(nodes){
if(gt(nodes.length,0)){
$('#mm').menu('hideItem',delGroup);
$('#mm').menu('hideItem',updateGroup);
}else{
$('#mm').menu('showItem',delGroup);
$('#mm').menu('showItem',updateGroup);
}
}
}catch(e){
$('#mm').menu('showItem',delGroup);
$('#mm').menu('showItem',updateGroup);
}
$('#mm').menu('show', {
left: e.pageX,
top: e.pageY
});
}
function addgroup(){
$('#groupForm').form('clear');
$('#isInsert').val('yes');
$('#groupIsEdit').combobox('setValue',"yes");
$('#groupIsValid').combobox('setValue',"yes");
$.rjzjh.opendialog2('updateDialog');
}
function updategroup(){
$('#isInsert').val('no');
$('#groupId').val(rightClickNode.id);
$('#groupRemark').val(rightClickNode.text);
$('#groupParentId').val(rightClickNode.parentId);
$('#groupIsEdit').combobox('setValue',rightClickNode.attributes["isEdit"]);
$('#groupIsValid').combobox('setValue',rightClickNode.attributes["isValid"]);
$.rjzjh.opendialog2('updateDialog');
}
function delgroup(){
$.rjzjh.confirm('你确定要删除此组['+rightClickNode.text+']吗?',function(){
$.post($.rjzjh.packurl('/cas/OptionItemManager:delGroup'),{groupId:rightClickNode.id},function(data){
$.rjzjh.opt2(data,function(){
$('#groupTree').tree('remove',rightClickNode.target);
});
},'json');
});
}
function queryGroupOpt(){
// alert(3);
var node = $('#groupTree').tree('getSelected');
$('#queryGroup').combotreegrid('setValue',node.id);
$('#main_grid').datagrid("load",$("#main_form").serializeObject());
}
//不能用init方法,但组件提供initPage调用
function initPage(){
$('#saveBut').unbind('click');
$('#saveBut').click(function(){
if(!jQuery('#groupForm').form('validate')){
return false;
}
$.post($.rjzjh.packurl('/cas/OptionItemManager:saveGroup'),$("#groupForm").serializeObject(),function(data){
$.rjzjh.opt2(data,function(){
$('#groupTree').tree('reload');
$('#updateDialog').dialog('close');
});
},'json');
});
$('#putRedisAll').unbind('click');
$('#putRedisAll').click(function(){
//$.post($.rjzjh.packurl('/cas/OptionItemManager:putRedisAll'),{},$.rjzjh.opt2,'json');
syn('/cas/OptionItemManager:putRedisAll');
});
$('#putRedisParent').unbind('click');
$('#putRedisParent').click(function(){
// $.post($.rjzjh.packurl('/cas/OptionItemManager:putRedisParent'),{},$.rjzjh.opt2,'json');
syn('/cas/OptionItemManager:putRedisParent');
});
$('#putRedisMembers').unbind('click');
$('#putRedisMembers').click(function(){
//$.post($.rjzjh.packurl('/cas/OptionItemManager:putRedisMembers'),{},$.rjzjh.opt2,'json');
syn('/cas/OptionItemManager:putRedisMembers');
});
$('#putRedisGroup').unbind('click');
$('#putRedisGroup').click(function(){
syn('/cas/OptionItemManager:putRedisGroup');
});
function syn(url){
$.messager.progress({
title:'${message:common.hint.waiting}',
msg:'${message:common.hint.handling}'
});
$.post($.rjzjh.packurl(url),{},function(data){
$.rjzjh.opt2(data,function(){
$.rjzjh.alert("同步成功");
$.messager.progress('close');
});
},'json');
}
}
//拖动效果
function dragEnter(target,source){
return true;
}
function beforeDrop(target,source,point){
var targetNode = $('#groupTree').tree('getNode',target);
var parent = $('#groupTree').tree('getParent', target);
var pareentIdTrue=targetNode.id;//真正的目标节点
if('top'===point||'bottom'===point){
pareentIdTrue=parent==null?'':parent.id;
}
if(confirm('你确定要拖动此组吗?')){
$.post($.rjzjh.packurl('/cas/OptionItemManager:dragGroup'),{sourceId:source.id,targetId:pareentIdTrue,point:point},function(data){
$.rjzjh.opt2(data,function(){
$.rjzjh.opt(data);
});
},'json');
return true;
}else{
return false;
}
}
</script>
</html>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册