@@ -150,7 +150,7 @@ public class ModelForm extends DefaultEntity { | |||||
} | } | ||||
public void setContent(String mfContent) { | public void setContent(String mfContent) { | ||||
put("mf_content", mfContent); | |||||
put("mf_content", mfContent == null ? "{}" :mfContent.replaceAll("\\s*", "")); | |||||
} | } | ||||
public String getOption() { | public String getOption() { | ||||
@@ -432,14 +432,25 @@ public class ModelFormHelper { | |||||
} | } | ||||
/** | /** | ||||
* 根据向导生成model | |||||
* | * | ||||
* @param form | * @param form | ||||
* @param tmplId | * @param tmplId | ||||
*/ | */ | ||||
public static void buildSaveModelByTmpl(ModelForm form, String tmplId) { | public static void buildSaveModelByTmpl(ModelForm form, String tmplId) { | ||||
buildSaveModelByTmplExt(form, new SwMap(), tmplId); | |||||
} | |||||
/** | |||||
* 根据向导生成model | |||||
* | |||||
* @param form | |||||
* @param tmplId | |||||
* @param modelExt 额外的属性配置 | |||||
*/ | |||||
public static void buildSaveModelByTmplExt(ModelForm form,SwMap modelExt, String tmplId) { | |||||
PageDatasets datasets = form.getDatasets(); | PageDatasets datasets = form.getDatasets(); | ||||
SwMap tmplModel = JsonUtil.parse(form.getTmpl(), SwMap.class); | SwMap tmplModel = JsonUtil.parse(form.getTmpl(), SwMap.class); | ||||
tmplModel.putAll(modelExt); | |||||
tmplModel.put("title", form.getTitle()); | tmplModel.put("title", form.getTitle()); | ||||
tmplModel.put("name", form.getName()); | tmplModel.put("name", form.getName()); | ||||
tmplModel.put("datasets", JsonUtil.bean2MapList(form.getDatasets().list)); | tmplModel.put("datasets", JsonUtil.bean2MapList(form.getDatasets().list)); | ||||
@@ -16,6 +16,7 @@ import java.util.List; | |||||
/** | /** | ||||
* @Author:lip | * @Author:lip | ||||
* @Date : 2022/9/14 11:27 | * @Date : 2022/9/14 11:27 | ||||
* 自定义模型-生成一个空白页面 | |||||
*/ | */ | ||||
public class EmptyWorker extends BaseModelWorker{ | public class EmptyWorker extends BaseModelWorker{ | ||||
private final static String template = "model_empty"; | private final static String template = "model_empty"; | ||||
@@ -5,6 +5,7 @@ import cc.smtweb.system.bpm.web.design.form.ModelForm; | |||||
/** | /** | ||||
* @Author:lip | * @Author:lip | ||||
* @Date : 2022/9/1 16:05 | * @Date : 2022/9/1 16:05 | ||||
* 左列表-右列表(含编辑弹窗、左列表可编辑) | |||||
*/ | */ | ||||
public class LcLc1Worker extends LcSingleWorker { | public class LcLc1Worker extends LcSingleWorker { | ||||
private final static String tmpl = "model_list_list_1"; | private final static String tmpl = "model_list_list_1"; | ||||
@@ -5,6 +5,7 @@ import cc.smtweb.system.bpm.web.design.form.ModelForm; | |||||
/** | /** | ||||
* @Author:lip | * @Author:lip | ||||
* @Date : 2022/9/1 16:05 | * @Date : 2022/9/1 16:05 | ||||
* 左列表-右列表(含编辑弹窗、左列表不可编辑) | |||||
*/ | */ | ||||
public class LcLc2Worker extends LcSingleWorker { | public class LcLc2Worker extends LcSingleWorker { | ||||
private final static String tmpl = "model_list_list_2"; | private final static String tmpl = "model_list_list_2"; | ||||
@@ -5,6 +5,7 @@ import cc.smtweb.system.bpm.web.design.form.ModelForm; | |||||
/** | /** | ||||
* @Author:lip | * @Author:lip | ||||
* @Date : 2022/9/13 10:06 | * @Date : 2022/9/13 10:06 | ||||
* 左树-列表(含编辑弹窗) | |||||
*/ | */ | ||||
public class LcLt2Worker extends LcSingleWorker { | public class LcLt2Worker extends LcSingleWorker { | ||||
private final static String template = "model_tree_list_dialog"; | private final static String template = "model_tree_list_dialog"; | ||||
@@ -7,6 +7,7 @@ import cc.smtweb.system.bpm.web.design.form.ModelForm; | |||||
/** | /** | ||||
* @Author:lip | * @Author:lip | ||||
* @Date : 2022/8/28 22:57 | * @Date : 2022/8/28 22:57 | ||||
* 左树-主子列表(含编辑卡片) | |||||
*/ | */ | ||||
public class LcLtMsWorker extends LcMsWorker { | public class LcLtMsWorker extends LcMsWorker { | ||||
private final static String templateList = "model_tree_list"; | private final static String templateList = "model_tree_list"; | ||||
@@ -7,6 +7,7 @@ import cc.smtweb.system.bpm.web.design.form.ModelForm; | |||||
/** | /** | ||||
* @Author:lip | * @Author:lip | ||||
* @Date : 2022/8/26 10:20 | * @Date : 2022/8/26 10:20 | ||||
* 左树-列表(含编辑卡片) | |||||
*/ | */ | ||||
public class LcLtWorker extends LcNormalWorker { | public class LcLtWorker extends LcNormalWorker { | ||||
private final static String templateList = "model_tree_list"; | private final static String templateList = "model_tree_list"; | ||||
@@ -1,8 +1,12 @@ | |||||
package cc.smtweb.system.bpm.web.design.form.model; | package cc.smtweb.system.bpm.web.design.form.model; | ||||
import cc.smtweb.framework.core.common.SwEnum; | import cc.smtweb.framework.core.common.SwEnum; | ||||
import cc.smtweb.framework.core.common.SwMap; | |||||
import cc.smtweb.framework.core.exception.SwException; | |||||
import cc.smtweb.framework.core.util.StringUtil; | import cc.smtweb.framework.core.util.StringUtil; | ||||
import cc.smtweb.system.bpm.web.design.form.ModelForm; | import cc.smtweb.system.bpm.web.design.form.ModelForm; | ||||
import cc.smtweb.system.bpm.web.design.form.ModelFormHelper; | |||||
import org.apache.commons.lang3.StringUtils; | |||||
/** | /** | ||||
* @Author:lip | * @Author:lip | ||||
@@ -22,4 +26,21 @@ public class LcMsWorker extends LcNormalWorker { | |||||
} | } | ||||
return super.getTmplId(bean); | return super.getTmplId(bean); | ||||
} | } | ||||
/** | |||||
* 根据模型生成页面 | |||||
* | |||||
* @param bean | |||||
*/ | |||||
public void buildSaveModel(ModelForm bean) { | |||||
String tmplId = getTmplId(bean); | |||||
if (StringUtils.isEmpty(tmplId)) throw new SwException("此类型页面没有找到对应的模板文件!"); | |||||
SwMap model = new SwMap(); | |||||
SwMap opts = bean.getOpts(); | |||||
SwMap cfg = opts.readMap(ModelFormHelper.OPT_CONFIG); | |||||
// | |||||
model.put("subIndSave",cfg.readMap("props").readBool("subIndSave")); | |||||
ModelFormHelper.buildSaveModelByTmplExt(bean, model, tmplId); | |||||
} | |||||
} | } |
@@ -15,6 +15,7 @@ import java.util.List; | |||||
/** | /** | ||||
* @Author:lip | * @Author:lip | ||||
* @Date : 2022/8/26 10:20 | * @Date : 2022/8/26 10:20 | ||||
* 普通列表(含编辑卡片) | |||||
*/ | */ | ||||
public class LcNormalWorker extends BaseModelWorker { | public class LcNormalWorker extends BaseModelWorker { | ||||
private final static String templateList = "model_list_normal"; | private final static String templateList = "model_list_normal"; | ||||
@@ -13,6 +13,7 @@ import java.util.List; | |||||
/** | /** | ||||
* Created by Akmm at 2022-08-14 12:17 | * Created by Akmm at 2022-08-14 12:17 | ||||
* 简单列表(含编辑弹窗) | |||||
*/ | */ | ||||
public class LcSingleWorker extends BaseModelWorker { | public class LcSingleWorker extends BaseModelWorker { | ||||
private final static String tmpl = "model_list_card"; | private final static String tmpl = "model_list_card"; | ||||
@@ -5,7 +5,7 @@ import cc.smtweb.framework.core.common.SwEnum; | |||||
import cc.smtweb.framework.core.exception.SwException; | import cc.smtweb.framework.core.exception.SwException; | ||||
import cc.smtweb.system.bpm.web.design.form.ModelForm; | import cc.smtweb.system.bpm.web.design.form.ModelForm; | ||||
import cc.smtweb.system.bpm.web.design.form.ModelFormHelper; | import cc.smtweb.system.bpm.web.design.form.ModelFormHelper; | ||||
import cc.smtweb.system.bpm.web.design.form.model.flow.FlowSingleWorker; | |||||
import cc.smtweb.system.bpm.web.design.form.model.flow.*; | |||||
import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
import java.util.HashMap; | import java.util.HashMap; | ||||
@@ -33,6 +33,11 @@ public class ModelFactory { | |||||
mapWorker.put(SwEnum.ModelType.LC_LC_1.value, new LcLc1Worker()); | mapWorker.put(SwEnum.ModelType.LC_LC_1.value, new LcLc1Worker()); | ||||
mapWorker.put(SwEnum.ModelType.LC_LC_2.value, new LcLc2Worker()); | mapWorker.put(SwEnum.ModelType.LC_LC_2.value, new LcLc2Worker()); | ||||
mapWorker.put(SwEnum.ModelType.FLOW_SINGLE.value, new FlowSingleWorker()); | mapWorker.put(SwEnum.ModelType.FLOW_SINGLE.value, new FlowSingleWorker()); | ||||
mapWorker.put(SwEnum.ModelType.FLOW_LC_LC_1.value, new FlowLcLc1Worker()); | |||||
mapWorker.put(SwEnum.ModelType.FLOW_LC_LC_2.value, new FlowLcLc2Worker()); | |||||
mapWorker.put(SwEnum.ModelType.FLOW_LC_LT.value, new FlowLcLtWorker()); | |||||
mapWorker.put(SwEnum.ModelType.FLOW_LC_MS.value, new FlowLcMsWorker()); | |||||
mapWorker.put(SwEnum.ModelType.FLOW_LT_MS.value, new FlowLtMsWorker()); | |||||
mapWorker.put(SwEnum.ModelType.EMPTY.value, new EmptyWorker()); | mapWorker.put(SwEnum.ModelType.EMPTY.value, new EmptyWorker()); | ||||
} | } | ||||
@@ -0,0 +1,27 @@ | |||||
package cc.smtweb.system.bpm.web.design.form.model.flow; | |||||
import cc.smtweb.framework.core.common.SwEnum; | |||||
import cc.smtweb.framework.core.util.StringUtil; | |||||
import cc.smtweb.system.bpm.web.design.form.ModelForm; | |||||
import cc.smtweb.system.bpm.web.design.form.model.LcNormalWorker; | |||||
/** | |||||
* @Author:lip | |||||
* @Date : 2022/9/15 16:49 | |||||
* 左列表-右列表(含编辑卡片、工作流、左列表可编辑) | |||||
*/ | |||||
public class FlowLcLc1Worker extends LcNormalWorker { | |||||
private final static String templateList = "model_list_flow_ll1"; | |||||
private final static String templateCard = "model_card_flow_ll"; | |||||
@Override | |||||
protected String getTmplId(ModelForm bean) { | |||||
if (bean.getName().endsWith(StringUtil.upFirst(SwEnum.PageType.LIST.value))) { | |||||
return templateList; | |||||
} | |||||
if (bean.getName().endsWith(StringUtil.upFirst(SwEnum.PageType.CARD.value))) { | |||||
return templateCard; | |||||
} | |||||
return super.getTmplId(bean); | |||||
} | |||||
} |
@@ -0,0 +1,27 @@ | |||||
package cc.smtweb.system.bpm.web.design.form.model.flow; | |||||
import cc.smtweb.framework.core.common.SwEnum; | |||||
import cc.smtweb.framework.core.util.StringUtil; | |||||
import cc.smtweb.system.bpm.web.design.form.ModelForm; | |||||
import cc.smtweb.system.bpm.web.design.form.model.LcNormalWorker; | |||||
/** | |||||
* @Author:lip | |||||
* @Date : 2022/9/15 16:49 | |||||
* 左列表-右列表(含编辑卡片、工作流、左列表不可编辑) | |||||
*/ | |||||
public class FlowLcLc2Worker extends LcNormalWorker { | |||||
private final static String templateList = "model_list_flow_ll2"; | |||||
private final static String templateCard = "model_card_flow_ll"; | |||||
@Override | |||||
protected String getTmplId(ModelForm bean) { | |||||
if (bean.getName().endsWith(StringUtil.upFirst(SwEnum.PageType.LIST.value))) { | |||||
return templateList; | |||||
} | |||||
if (bean.getName().endsWith(StringUtil.upFirst(SwEnum.PageType.CARD.value))) { | |||||
return templateCard; | |||||
} | |||||
return super.getTmplId(bean); | |||||
} | |||||
} |
@@ -0,0 +1,27 @@ | |||||
package cc.smtweb.system.bpm.web.design.form.model.flow; | |||||
import cc.smtweb.framework.core.common.SwEnum; | |||||
import cc.smtweb.framework.core.util.StringUtil; | |||||
import cc.smtweb.system.bpm.web.design.form.ModelForm; | |||||
import cc.smtweb.system.bpm.web.design.form.model.LcNormalWorker; | |||||
/** | |||||
* @Author:lip | |||||
* @Date : 2022/9/15 16:45 | |||||
* 左树-列表(含编辑卡片、工作流) | |||||
*/ | |||||
public class FlowLcLtWorker extends LcNormalWorker { | |||||
private final static String templateList = "model_tree_list"; | |||||
private final static String templateCard = "model_card_flow"; | |||||
@Override | |||||
protected String getTmplId(ModelForm bean) { | |||||
if (bean.getName().endsWith(StringUtil.upFirst(SwEnum.PageType.LIST.value))) { | |||||
return templateList; | |||||
} | |||||
if (bean.getName().endsWith(StringUtil.upFirst(SwEnum.PageType.CARD.value))) { | |||||
return templateCard; | |||||
} | |||||
return super.getTmplId(bean); | |||||
} | |||||
} |
@@ -0,0 +1,27 @@ | |||||
package cc.smtweb.system.bpm.web.design.form.model.flow; | |||||
import cc.smtweb.framework.core.common.SwEnum; | |||||
import cc.smtweb.framework.core.util.StringUtil; | |||||
import cc.smtweb.system.bpm.web.design.form.ModelForm; | |||||
import cc.smtweb.system.bpm.web.design.form.model.LcMsWorker; | |||||
/** | |||||
* @Author:lip | |||||
* @Date : 2022/9/15 16:49 | |||||
* 普通主子列表(含编辑卡片、工作流) | |||||
*/ | |||||
public class FlowLcMsWorker extends LcMsWorker { | |||||
private final static String templateList = "model_list_normal"; | |||||
private final static String templateCard = "model_card_flow_lms"; | |||||
@Override | |||||
protected String getTmplId(ModelForm bean) { | |||||
if (bean.getName().endsWith(StringUtil.upFirst(SwEnum.PageType.LIST.value))) { | |||||
return templateList; | |||||
} | |||||
if (bean.getName().endsWith(StringUtil.upFirst(SwEnum.PageType.CARD.value))) { | |||||
return templateCard; | |||||
} | |||||
return super.getTmplId(bean); | |||||
} | |||||
} |
@@ -0,0 +1,27 @@ | |||||
package cc.smtweb.system.bpm.web.design.form.model.flow; | |||||
import cc.smtweb.framework.core.common.SwEnum; | |||||
import cc.smtweb.framework.core.util.StringUtil; | |||||
import cc.smtweb.system.bpm.web.design.form.ModelForm; | |||||
import cc.smtweb.system.bpm.web.design.form.model.LcMsWorker; | |||||
/** | |||||
* @Author:lip | |||||
* @Date : 2022/9/15 16:49 | |||||
* 左树-主子列表(含编辑卡片、工作流) | |||||
*/ | |||||
public class FlowLtMsWorker extends LcMsWorker { | |||||
private final static String templateList = "model_tree_list"; | |||||
private final static String templateCard = "model_card_flow_lms"; | |||||
@Override | |||||
protected String getTmplId(ModelForm bean) { | |||||
if (bean.getName().endsWith(StringUtil.upFirst(SwEnum.PageType.LIST.value))) { | |||||
return templateList; | |||||
} | |||||
if (bean.getName().endsWith(StringUtil.upFirst(SwEnum.PageType.CARD.value))) { | |||||
return templateCard; | |||||
} | |||||
return super.getTmplId(bean); | |||||
} | |||||
} |
@@ -17,7 +17,7 @@ import java.util.List; | |||||
/** | /** | ||||
* @Author: tanghp | * @Author: tanghp | ||||
* @Date: 2022-08-26 9:48 | * @Date: 2022-08-26 9:48 | ||||
* @Desc: 列表卡片(含工作流) | |||||
* @Desc: 普通列表(含编辑卡片、工作流) | |||||
*/ | */ | ||||
public class FlowSingleWorker extends BaseModelWorker { | public class FlowSingleWorker extends BaseModelWorker { | ||||
private final static String listTmpl = "model_list_flow"; | private final static String listTmpl = "model_list_flow"; | ||||
@@ -1,12 +1,10 @@ | |||||
package cc.smtweb.system.bpm.web.engine.model.common; | package cc.smtweb.system.bpm.web.engine.model.common; | ||||
import cc.smtweb.framework.core.common.SwMap; | |||||
import cc.smtweb.framework.core.db.EntityHelper; | import cc.smtweb.framework.core.db.EntityHelper; | ||||
import cc.smtweb.framework.core.mvc.service.SqlNamedPara; | import cc.smtweb.framework.core.mvc.service.SqlNamedPara; | ||||
import cc.smtweb.framework.core.mvc.service.SqlPara; | import cc.smtweb.framework.core.mvc.service.SqlPara; | ||||
import cc.smtweb.system.bpm.web.design.form.define.PageDataset; | import cc.smtweb.system.bpm.web.design.form.define.PageDataset; | ||||
import cc.smtweb.system.bpm.web.engine.dynPage.DynPageHelper; | import cc.smtweb.system.bpm.web.engine.dynPage.DynPageHelper; | ||||
import cc.smtweb.system.bpm.web.engine.dynPage.DynPageListHandler; | |||||
import cc.smtweb.system.bpm.web.engine.dynPage.IBuildSqlListener; | import cc.smtweb.system.bpm.web.engine.dynPage.IBuildSqlListener; | ||||
import cc.smtweb.system.bpm.web.engine.flow.entity.ProcInst; | import cc.smtweb.system.bpm.web.engine.flow.entity.ProcInst; | ||||
@@ -1,5 +1,6 @@ | |||||
package cc.smtweb.system.bpm.web.engine.model.common; | package cc.smtweb.system.bpm.web.engine.model.common; | ||||
import cc.smtweb.framework.core.common.SwConsts; | |||||
import cc.smtweb.framework.core.common.SwMap; | import cc.smtweb.framework.core.common.SwMap; | ||||
import cc.smtweb.framework.core.db.impl.DefaultEntity; | import cc.smtweb.framework.core.db.impl.DefaultEntity; | ||||
import cc.smtweb.framework.core.mvc.service.SwListData; | import cc.smtweb.framework.core.mvc.service.SwListData; | ||||
@@ -33,6 +34,7 @@ public class FlowModelLoadHandler<T extends DefaultEntity> extends ModelLoadHand | |||||
//过滤条件 | //过滤条件 | ||||
long id = params.readLong("id"); | long id = params.readLong("id"); | ||||
if (id <= 0) id = filter.readLong(SwConsts.NAME_ID); | |||||
long taskId = params.readLong("taskId"); | long taskId = params.readLong("taskId"); | ||||
PageDataset cardDataset = findCardDataset(ModelHelper.DATASET_NAME_CARD); | PageDataset cardDataset = findCardDataset(ModelHelper.DATASET_NAME_CARD); | ||||
@@ -15,6 +15,13 @@ import cc.smtweb.system.bpm.web.engine.flow.FlowListener; | |||||
* 带流程的简单卡片之保存 | * 带流程的简单卡片之保存 | ||||
*/ | */ | ||||
public class FlowModelSaveHandler<T extends DefaultEntity> extends ModelSaveHandler<T> implements FlowListener { | public class FlowModelSaveHandler<T extends DefaultEntity> extends ModelSaveHandler<T> implements FlowListener { | ||||
public FlowModelSaveHandler() { | |||||
} | |||||
public FlowModelSaveHandler(String cardDsName) { | |||||
super(cardDsName); | |||||
} | |||||
protected FlowInstance flowInstance; | protected FlowInstance flowInstance; | ||||
@Override | @Override | ||||
protected void readFromPage(SwMap pageData, SwMap filter) { | protected void readFromPage(SwMap pageData, SwMap filter) { | ||||
@@ -4,7 +4,6 @@ import cc.smtweb.framework.core.annotation.SwBody; | |||||
import cc.smtweb.framework.core.annotation.SwService; | import cc.smtweb.framework.core.annotation.SwService; | ||||
import cc.smtweb.framework.core.common.R; | import cc.smtweb.framework.core.common.R; | ||||
import cc.smtweb.framework.core.common.SwMap; | import cc.smtweb.framework.core.common.SwMap; | ||||
import cc.smtweb.framework.core.db.impl.DefaultEntity; | |||||
import cc.smtweb.framework.core.mvc.service.AbstractHandler; | import cc.smtweb.framework.core.mvc.service.AbstractHandler; | ||||
import cc.smtweb.framework.core.mvc.service.IWorker; | import cc.smtweb.framework.core.mvc.service.IWorker; | ||||
import cc.smtweb.framework.core.session.UserSession; | import cc.smtweb.framework.core.session.UserSession; | ||||
@@ -24,9 +23,9 @@ public class FlowModelService extends LCSingleService { | |||||
case TYPE_MODEL_LIST: | case TYPE_MODEL_LIST: | ||||
return new FlowModelListHandler(); | return new FlowModelListHandler(); | ||||
case TYPE_MODEL_LOAD: | case TYPE_MODEL_LOAD: | ||||
return new FlowModelLoadHandler<DefaultEntity>(); | |||||
return new FlowModelLoadHandler<>(); | |||||
case TYPE_MODEL_SAVE: | case TYPE_MODEL_SAVE: | ||||
return new FlowModelSaveHandler<DefaultEntity>(); | |||||
return new FlowModelSaveHandler<>(); | |||||
case TYPE_MODEL_DEL: | case TYPE_MODEL_DEL: | ||||
return new FlowModelDelHandler(); | return new FlowModelDelHandler(); | ||||
} | } | ||||
@@ -109,16 +109,18 @@ public class ModelDetail<T extends DefaultEntity> { | |||||
if (table == null) throw new BizException("没有找到待保存的表定义:" + pageDataset.name); | if (table == null) throw new BizException("没有找到待保存的表定义:" + pageDataset.name); | ||||
SwMap details = pageData.readMap(pageDataset.name); | SwMap details = pageData.readMap(pageDataset.name); | ||||
if (details == null) throw new BizException("没有找到待保存的表数据:" + pageDataset.name); | if (details == null) throw new BizException("没有找到待保存的表数据:" + pageDataset.name); | ||||
EntityDao<T> dao = DbEngine.getInstance().findDao(table.getTableName()); | |||||
EntityDao<T> dao = DbEngine.getInstance().findDao(table.getName()); | |||||
List<Map<String,Object>> inserted = details.readListMap("inserted"); | List<Map<String,Object>> inserted = details.readListMap("inserted"); | ||||
if(!CommUtil.isEmpty(inserted)){ | if(!CommUtil.isEmpty(inserted)){ | ||||
inserted.forEach((row)-> { | inserted.forEach((row)-> { | ||||
T bean = dao.createBean(); | T bean = dao.createBean(); | ||||
bean.init(); | bean.init(); | ||||
bean.getData().putAll(row); | bean.getData().putAll(row); | ||||
bean.setEntityId(DbEngine.getInstance().nextId()); | |||||
if(consumer!=null){ | if(consumer!=null){ | ||||
consumer.accept(true,bean); | consumer.accept(true,bean); | ||||
} | } | ||||
insertList.add(bean); | |||||
}); | }); | ||||
} | } | ||||
List<Map<String,Object>> updated = details.readListMap("updated"); | List<Map<String,Object>> updated = details.readListMap("updated"); | ||||
@@ -130,6 +132,7 @@ public class ModelDetail<T extends DefaultEntity> { | |||||
if(consumer!=null){ | if(consumer!=null){ | ||||
consumer.accept(false,bean); | consumer.accept(false,bean); | ||||
} | } | ||||
updateList.add(bean); | |||||
}); | }); | ||||
} | } | ||||
Set<Long> deleted = details.readLongSet("deleted"); | Set<Long> deleted = details.readLongSet("deleted"); | ||||
@@ -141,7 +144,7 @@ public class ModelDetail<T extends DefaultEntity> { | |||||
public void batchSave(PageDataset pageDataset) { | public void batchSave(PageDataset pageDataset) { | ||||
ModelTable table = ModelTableCache.getInstance().get(pageDataset.masterTable); | ModelTable table = ModelTableCache.getInstance().get(pageDataset.masterTable); | ||||
if (table == null) throw new BizException("没有找到待保存的表定义:" + pageDataset.name); | if (table == null) throw new BizException("没有找到待保存的表定义:" + pageDataset.name); | ||||
EntityDao<T> dao = DbEngine.getInstance().findDao(table.getTableName()); | |||||
EntityDao<T> dao = DbEngine.getInstance().findDao(table.getName()); | |||||
batchSave(dao); | batchSave(dao); | ||||
} | } | ||||
} | } |
@@ -66,7 +66,9 @@ public class ModelLoadHandler<T extends DefaultEntity> extends AbstractDynPageHa | |||||
//从数据库加载bean,并设到返回值 | //从数据库加载bean,并设到返回值 | ||||
protected void load(SwMap ret, SwMap filter) { | protected void load(SwMap ret, SwMap filter) { | ||||
PageDataset cardDataset = findCardDataset(cardDsName); | PageDataset cardDataset = findCardDataset(cardDsName); | ||||
bean = provider.loadBean(cardDataset, filter.readLong(SwConsts.NAME_ID)); | |||||
long id = params.readLong(SwConsts.NAME_ID); | |||||
if (id <= 0) id = filter.readLong(SwConsts.NAME_ID); | |||||
bean = provider.loadBean(cardDataset, id); | |||||
ret.put(cardDsName, DynRetBean.createBean(bean)); | ret.put(cardDsName, DynRetBean.createBean(bean)); | ||||
} | } | ||||
@@ -0,0 +1,92 @@ | |||||
package cc.smtweb.system.bpm.web.engine.model.flow.listcard.lclc1; | |||||
import cc.smtweb.framework.core.annotation.SwBody; | |||||
import cc.smtweb.framework.core.annotation.SwService; | |||||
import cc.smtweb.framework.core.common.R; | |||||
import cc.smtweb.framework.core.common.SwMap; | |||||
import cc.smtweb.framework.core.mvc.service.AbstractHandler; | |||||
import cc.smtweb.framework.core.session.UserSession; | |||||
import cc.smtweb.system.bpm.web.engine.model.common.*; | |||||
import cc.smtweb.system.bpm.web.engine.model.listcard.lclc1.LCLC1Service; | |||||
/** | |||||
* @Author:lip | |||||
* @Date : 2022/9/16 18:53 | |||||
* 模型:FLOW_LC_LC_1 服务类 | |||||
*/ | |||||
@SwService | |||||
public class FlowLcLc1Service extends FlowModelService { | |||||
private LCLC1Service worker = new LCLC1Service(); | |||||
@Override | |||||
protected AbstractHandler createHandler(String type) { | |||||
switch (type) { | |||||
case TYPE_MODEL_LIST: | |||||
case TYPE_MODEL_LOAD: | |||||
case TYPE_MODEL_SAVE: | |||||
case TYPE_MODEL_DEL: | |||||
return super.createHandler(type); | |||||
} | |||||
return worker.createHandler(type); | |||||
} | |||||
/** | |||||
* 左列表保存 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelLSave(@SwBody SwMap params, UserSession us) { | |||||
return worker.modelLSave(params,us); | |||||
} | |||||
/** | |||||
* 左表编辑 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelLLoad(@SwBody SwMap params, UserSession us) { | |||||
return worker.modelLLoad(params,us); | |||||
} | |||||
/** | |||||
* 左表新增初始化 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelLAdd(@SwBody SwMap params, UserSession us) { | |||||
return worker.modelLAdd(params,us); | |||||
} | |||||
/** | |||||
* 左表删除 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelLDel(@SwBody SwMap params, UserSession us) { | |||||
return worker.modelLDel(params,us); | |||||
} | |||||
/** | |||||
* 加载左表列表数据 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelLList(@SwBody SwMap params, UserSession us) { | |||||
return worker.modelLList(params,us); | |||||
} | |||||
/** | |||||
* 加载左表列表总记录数及合计栏 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelLListTotal(@SwBody SwMap params, UserSession us) { | |||||
return worker.modelLListTotal(params,us); | |||||
} | |||||
} |
@@ -0,0 +1,13 @@ | |||||
package cc.smtweb.system.bpm.web.engine.model.flow.listcard.lclc2; | |||||
import cc.smtweb.framework.core.annotation.SwService; | |||||
import cc.smtweb.system.bpm.web.engine.model.flow.listcard.lclc1.FlowLcLc1Service; | |||||
/** | |||||
* @Author:lip | |||||
* @Date : 2022/9/16 19:01 | |||||
* 模型:FLOW_LC_LC_2 服务类 | |||||
*/ | |||||
@SwService | |||||
public class FlowLcLc2Service extends FlowLcLc1Service { | |||||
} |
@@ -0,0 +1,13 @@ | |||||
package cc.smtweb.system.bpm.web.engine.model.flow.listcard.lclt; | |||||
import cc.smtweb.framework.core.annotation.SwService; | |||||
import cc.smtweb.system.bpm.web.engine.model.common.FlowModelService; | |||||
/** | |||||
* @Author:lip | |||||
* @Date : 2022/9/16 18:41 | |||||
* 模型:FLOW_LC_LT 服务类 | |||||
*/ | |||||
@SwService | |||||
public class FlowLcLtService extends FlowModelService { | |||||
} |
@@ -0,0 +1,13 @@ | |||||
package cc.smtweb.system.bpm.web.engine.model.flow.listcard.lcltms; | |||||
import cc.smtweb.framework.core.annotation.SwService; | |||||
import cc.smtweb.system.bpm.web.engine.model.flow.listcard.lcms.FlowLcMsService; | |||||
/** | |||||
* @Author:lip | |||||
* @Date : 2022/9/17 21:20 | |||||
* 模型:FLOW_LT_MS 服务类 | |||||
*/ | |||||
@SwService | |||||
public class FlowLcLtMs extends FlowLcMsService { | |||||
} |
@@ -0,0 +1,47 @@ | |||||
package cc.smtweb.system.bpm.web.engine.model.flow.listcard.lcms; | |||||
import cc.smtweb.framework.core.db.DbEngine; | |||||
import cc.smtweb.framework.core.db.EntityDao; | |||||
import cc.smtweb.framework.core.db.cache.ModelTableCache; | |||||
import cc.smtweb.framework.core.db.vo.ModelTable; | |||||
import cc.smtweb.system.bpm.web.design.form.define.PageDataset; | |||||
import cc.smtweb.system.bpm.web.engine.model.common.FlowModelDelHandler; | |||||
import cc.smtweb.system.bpm.web.engine.model.listcard.lcms.LCMsConfig; | |||||
/** | |||||
* @Author:lip | |||||
* @Date : 2022/9/16 19:45 | |||||
* 主子表模型删除处理类 | |||||
*/ | |||||
public class FlowLcMsDelHandler extends FlowModelDelHandler { | |||||
@Override | |||||
protected void checkDel(PageDataset pageDataSet, long id) { | |||||
super.checkDel(pageDataSet, id); | |||||
// 子表删除校验 | |||||
} | |||||
@Override | |||||
protected void localDel(long id, ModelTable table) { | |||||
super.localDel(id, table); | |||||
// 获取主子表模型配置 | |||||
LCMsConfig.Config config = new LCMsConfig.Config(form); | |||||
// 子表删除 | |||||
batchDelDetail(config.getSubTableId(),config.getSubFKField(),id); | |||||
} | |||||
/** | |||||
* 批量删除明细 供子类调用 | |||||
* @param tableId 表定义ID | |||||
* @param fk 关联字段 | |||||
* @param id 主表ID | |||||
*/ | |||||
protected void batchDelDetail(long tableId, String fk, long id) { | |||||
if (tableId <= 0L) return; | |||||
ModelTable table = ModelTableCache.getInstance().get(tableId); | |||||
if (table == null) return; | |||||
EntityDao dao = DbEngine.getInstance().findDao(table.getName()); | |||||
if (dao != null) { | |||||
dao.deleteEntity(String.format(" where %s = ? ", fk), id); | |||||
} | |||||
} | |||||
} |
@@ -0,0 +1,75 @@ | |||||
package cc.smtweb.system.bpm.web.engine.model.flow.listcard.lcms; | |||||
import cc.smtweb.framework.core.common.SwMap; | |||||
import cc.smtweb.framework.core.db.DbEngine; | |||||
import cc.smtweb.framework.core.db.impl.DefaultEntity; | |||||
import cc.smtweb.system.bpm.web.design.form.define.PageDataset; | |||||
import cc.smtweb.system.bpm.web.engine.model.common.FlowModelSaveHandler; | |||||
import cc.smtweb.system.bpm.web.engine.model.common.ModelDetail; | |||||
import cc.smtweb.system.bpm.web.engine.model.listcard.lcms.LCMsConfig; | |||||
import java.util.function.BiConsumer; | |||||
/** | |||||
* @Author:lip | |||||
* @Date : 2022/9/16 19:25 | |||||
* 主子表模型保存处理类 | |||||
*/ | |||||
public class FlowLcMsSaveHandler extends FlowModelSaveHandler { | |||||
// 子表明细 | |||||
protected ModelDetail subDetail; | |||||
@Override | |||||
public void readFromPage(SwMap pageData, SwMap filter) { | |||||
super.readFromPage(pageData, filter); | |||||
LCMsConfig.Config config = new LCMsConfig.Config(form); | |||||
// 读取子表 | |||||
subDetail = readDetailFromPage(LCMsConfig.dsSList,pageData,filter,(isNew,item) -> { | |||||
if(isNew){ | |||||
item.setEntityId(DbEngine.getInstance().nextId()); | |||||
item.put(config.getSubFKField(),bean.getEntityId()); | |||||
} | |||||
}); | |||||
} | |||||
@Override | |||||
protected void checkValid() { | |||||
super.checkValid(); | |||||
// 校验子表明细 | |||||
} | |||||
@Override | |||||
public void doSave() { | |||||
super.doSave(); | |||||
// 保存子表 | |||||
saveDetail(LCMsConfig.dsSList,subDetail); | |||||
} | |||||
/** | |||||
* 读取明细 供子类调用 | |||||
* @param dsName 数据集名称 | |||||
* @param pageData 数据对象 | |||||
* @param filter 数据集的filter参数 | |||||
* @param afterReadBean 读取明细之后的接口 | |||||
* @return | |||||
* @param <E> | |||||
*/ | |||||
protected <E extends DefaultEntity> ModelDetail<E> readDetailFromPage(String dsName, SwMap pageData, SwMap filter, BiConsumer<Boolean,E> afterReadBean) { | |||||
ModelDetail<E> modelDetail = new ModelDetail<>(); | |||||
PageDataset pageDataset = findDataset(dsName); | |||||
modelDetail.readFromMap(pageDataset,pageData,afterReadBean); | |||||
return modelDetail; | |||||
} | |||||
/** | |||||
* 保存明细 供子类调用 | |||||
* @param dsName | |||||
* @param modelDetail | |||||
* @param <E> | |||||
*/ | |||||
protected <E extends DefaultEntity> void saveDetail(String dsName, ModelDetail<E> modelDetail){ | |||||
PageDataset pageDataset = findDataset(dsName); | |||||
modelDetail.batchSave(pageDataset); | |||||
} | |||||
} |
@@ -0,0 +1,93 @@ | |||||
package cc.smtweb.system.bpm.web.engine.model.flow.listcard.lcms; | |||||
import cc.smtweb.framework.core.annotation.SwBody; | |||||
import cc.smtweb.framework.core.annotation.SwService; | |||||
import cc.smtweb.framework.core.common.R; | |||||
import cc.smtweb.framework.core.common.SwMap; | |||||
import cc.smtweb.framework.core.mvc.service.AbstractHandler; | |||||
import cc.smtweb.framework.core.session.UserSession; | |||||
import cc.smtweb.system.bpm.web.engine.model.common.FlowModelService; | |||||
import cc.smtweb.system.bpm.web.engine.model.listcard.lcms.LCMsService; | |||||
/** | |||||
* @Author:lip | |||||
* @Date : 2022/9/16 18:53 | |||||
* 模型:FLOW_LT_MS 服务类 | |||||
*/ | |||||
@SwService | |||||
public class FlowLcMsService extends FlowModelService { | |||||
private LCMsService worker = new LCMsService(); | |||||
protected AbstractHandler createHandler(String type) { | |||||
switch (type) { | |||||
case TYPE_MODEL_LIST: | |||||
case TYPE_MODEL_LOAD: | |||||
return super.createHandler(type); | |||||
case TYPE_MODEL_SAVE: | |||||
return new FlowLcMsSaveHandler(); | |||||
case TYPE_MODEL_DEL: | |||||
return new FlowLcMsDelHandler(); | |||||
} | |||||
return worker.createHandler(type); | |||||
} | |||||
/** | |||||
* 子表单独保存 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelSubSave(@SwBody SwMap params, UserSession us) { | |||||
return worker.modelSubSave(params,us); | |||||
} | |||||
/** | |||||
* 子表编辑 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelSubLoad(@SwBody SwMap params, UserSession us) { | |||||
return worker.modelSubLoad(params,us); | |||||
} | |||||
/** | |||||
* 子表新增初始化 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelSubAdd(@SwBody SwMap params, UserSession us) { | |||||
return worker.modelSubAdd(params,us); | |||||
} | |||||
/** | |||||
* 子表单独删除 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelSubDel(@SwBody SwMap params, UserSession us) { | |||||
return worker.modelSubDel(params,us); | |||||
} | |||||
/** | |||||
* 子表列表数据 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelSubList(@SwBody SwMap params, UserSession us) { | |||||
return worker.modelSubList(params,us); | |||||
} | |||||
/** | |||||
* 列子表表总记录数及合计栏 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelSubListTotal(@SwBody SwMap params, UserSession us) { | |||||
return worker.modelSubListTotal(params,us); | |||||
} | |||||
} |
@@ -1,25 +0,0 @@ | |||||
package cc.smtweb.system.bpm.web.engine.model.listcard; | |||||
import cc.smtweb.framework.core.common.SwMap; | |||||
import cc.smtweb.system.bpm.web.design.form.define.PageDataset; | |||||
import cc.smtweb.system.bpm.web.design.form.define.PageDatasets; | |||||
import cc.smtweb.system.bpm.web.engine.dynPage.DynRetBean; | |||||
import org.springframework.util.Assert; | |||||
/** | |||||
* @Author:lip | |||||
* @Date : 2022/9/2 15:22 | |||||
*/ | |||||
public class ModelUtils { | |||||
public static SwMap buildRetData(String dsName, SwMap data) { | |||||
SwMap mapRet = new SwMap(); | |||||
mapRet.put(dsName, DynRetBean.createBean(data)); | |||||
return mapRet; | |||||
} | |||||
public static PageDataset findPageDatasetByName(PageDatasets dataSets, String dsName) { | |||||
PageDataset pageDataset = dataSets.findByName(dsName); | |||||
Assert.notNull(pageDataset, "未获取到数据集:" + dsName); | |||||
return pageDataset; | |||||
} | |||||
} |
@@ -5,8 +5,12 @@ package cc.smtweb.system.bpm.web.engine.model.listcard.lclc1; | |||||
* @Date : 2022/9/2 12:00 | * @Date : 2022/9/2 12:00 | ||||
*/ | */ | ||||
public class LCLC1Config { | public class LCLC1Config { | ||||
// 左列表数据集 | |||||
public static final String dsLList = "lList"; | public static final String dsLList = "lList"; | ||||
// 左表编辑数据集 | |||||
public static final String dsLCard = "lCard"; | public static final String dsLCard = "lCard"; | ||||
// 右表(主表)列表数据集 | |||||
public static final String dsRList = "list"; | public static final String dsRList = "list"; | ||||
// 右表(主表)编辑数据集 | |||||
public static final String dsRCard = "card"; | public static final String dsRCard = "card"; | ||||
} | } |
@@ -4,7 +4,6 @@ import cc.smtweb.framework.core.annotation.SwBody; | |||||
import cc.smtweb.framework.core.annotation.SwService; | import cc.smtweb.framework.core.annotation.SwService; | ||||
import cc.smtweb.framework.core.common.R; | import cc.smtweb.framework.core.common.R; | ||||
import cc.smtweb.framework.core.common.SwMap; | import cc.smtweb.framework.core.common.SwMap; | ||||
import cc.smtweb.framework.core.db.impl.DefaultEntity; | |||||
import cc.smtweb.framework.core.mvc.service.AbstractHandler; | import cc.smtweb.framework.core.mvc.service.AbstractHandler; | ||||
import cc.smtweb.framework.core.session.UserSession; | import cc.smtweb.framework.core.session.UserSession; | ||||
import cc.smtweb.system.bpm.web.engine.model.common.*; | import cc.smtweb.system.bpm.web.engine.model.common.*; | ||||
@@ -12,6 +11,7 @@ import cc.smtweb.system.bpm.web.engine.model.common.*; | |||||
/** | /** | ||||
* @Author:lip | * @Author:lip | ||||
* @Date : 2022/9/2 11:34 | * @Date : 2022/9/2 11:34 | ||||
* 模型LC_LC_1(左列表-右列表(含编辑弹窗、左列表可编辑)) 服务类 | |||||
*/ | */ | ||||
@SwService | @SwService | ||||
public class LCLC1Service extends ModelService { | public class LCLC1Service extends ModelService { | ||||
@@ -21,44 +21,76 @@ public class LCLC1Service extends ModelService { | |||||
public final static String TYPE_MODEL_LEFT_DEL = "modelLDel"; | public final static String TYPE_MODEL_LEFT_DEL = "modelLDel"; | ||||
@Override | @Override | ||||
protected AbstractHandler createHandler(String type) { | |||||
public AbstractHandler createHandler(String type) { | |||||
switch (type) { | switch (type) { | ||||
case TYPE_MODEL_LEFT_LIST: | case TYPE_MODEL_LEFT_LIST: | ||||
return new ModelListHandler(LCLC1Config.dsLList); | return new ModelListHandler(LCLC1Config.dsLList); | ||||
case TYPE_MODEL_LEFT_LOAD: | case TYPE_MODEL_LEFT_LOAD: | ||||
return new ModelLoadHandler<DefaultEntity>(LCLC1Config.dsLCard); | |||||
return new ModelLoadHandler<>(LCLC1Config.dsLCard); | |||||
case TYPE_MODEL_LEFT_SAVE: | case TYPE_MODEL_LEFT_SAVE: | ||||
return new ModelSaveHandler<DefaultEntity>(LCLC1Config.dsLCard); | |||||
return new ModelSaveHandler<>(LCLC1Config.dsLCard); | |||||
case TYPE_MODEL_LEFT_DEL: | case TYPE_MODEL_LEFT_DEL: | ||||
return new ModelDelHandler(LCLC1Config.dsLCard); | return new ModelDelHandler(LCLC1Config.dsLCard); | ||||
} | } | ||||
return super.createHandler(type); | return super.createHandler(type); | ||||
} | } | ||||
//左表保存 | |||||
/** | |||||
* 左表保存 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelLSave(@SwBody SwMap params, UserSession us) { | public R modelLSave(@SwBody SwMap params, UserSession us) { | ||||
return pageHandler(params, us, TYPE_MODEL_LEFT_SAVE, handler -> ((ModelSaveHandler) handler).save()); | return pageHandler(params, us, TYPE_MODEL_LEFT_SAVE, handler -> ((ModelSaveHandler) handler).save()); | ||||
} | } | ||||
//左表读取 | |||||
/** | |||||
* 左表编辑 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelLLoad(@SwBody SwMap params, UserSession us) { | public R modelLLoad(@SwBody SwMap params, UserSession us) { | ||||
return pageHandler(params, us, TYPE_MODEL_LEFT_LOAD, handler -> ((ModelLoadHandler) handler).load()); | return pageHandler(params, us, TYPE_MODEL_LEFT_LOAD, handler -> ((ModelLoadHandler) handler).load()); | ||||
} | } | ||||
//左表读取 | |||||
/** | |||||
* 左表新增初始化 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelLAdd(@SwBody SwMap params, UserSession us) { | public R modelLAdd(@SwBody SwMap params, UserSession us) { | ||||
return pageHandler(params, us, TYPE_MODEL_LEFT_LOAD, handler -> ((ModelLoadHandler) handler).add()); | return pageHandler(params, us, TYPE_MODEL_LEFT_LOAD, handler -> ((ModelLoadHandler) handler).add()); | ||||
} | } | ||||
//左表删除 | |||||
/** | |||||
* 左表删除 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelLDel(@SwBody SwMap params, UserSession us) { | public R modelLDel(@SwBody SwMap params, UserSession us) { | ||||
return pageHandler(params, us, TYPE_MODEL_LEFT_DEL, handler -> ((ModelDelHandler) handler).del()); | return pageHandler(params, us, TYPE_MODEL_LEFT_DEL, handler -> ((ModelDelHandler) handler).del()); | ||||
} | } | ||||
//左表列表数据 | |||||
/** | |||||
* 左表列表数据 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelLList(@SwBody SwMap params, UserSession us) { | public R modelLList(@SwBody SwMap params, UserSession us) { | ||||
return pageHandler(params, us, TYPE_MODEL_LEFT_LIST, handler -> ((ModelListHandler) handler).data()); | return pageHandler(params, us, TYPE_MODEL_LEFT_LIST, handler -> ((ModelListHandler) handler).data()); | ||||
} | } | ||||
//左表列表总记录数及合计栏 | |||||
/** | |||||
* 左表列表总记录数及合计栏 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelLListTotal(@SwBody SwMap params, UserSession us) { | public R modelLListTotal(@SwBody SwMap params, UserSession us) { | ||||
return pageHandler(params, us, TYPE_MODEL_LEFT_LIST, handler -> ((ModelListHandler) handler).getTotal()); | return pageHandler(params, us, TYPE_MODEL_LEFT_LIST, handler -> ((ModelListHandler) handler).getTotal()); | ||||
} | } | ||||
@@ -6,6 +6,7 @@ import cc.smtweb.system.bpm.web.engine.model.listcard.lclc1.LCLC1Service; | |||||
/** | /** | ||||
* @Author:lip | * @Author:lip | ||||
* @Date : 2022/9/13 15:28 | * @Date : 2022/9/13 15:28 | ||||
* 模型LC_LC_2(左列表-右列表(含编辑弹窗、左列表不可编辑)) 服务类 | |||||
*/ | */ | ||||
@SwService | @SwService | ||||
public class LCLC2Service extends LCLC1Service { | public class LCLC2Service extends LCLC1Service { | ||||
@@ -6,6 +6,7 @@ import cc.smtweb.system.bpm.web.engine.model.listcard.normal.LCNormalService; | |||||
/** | /** | ||||
* @Author:lip | * @Author:lip | ||||
* @Date : 2022/9/13 15:30 | * @Date : 2022/9/13 15:30 | ||||
* 模型LC_LT(左树-列表(含编辑卡片)) 服务类 | |||||
*/ | */ | ||||
@SwService | @SwService | ||||
public class LCLTService extends LCNormalService { | public class LCLTService extends LCNormalService { | ||||
@@ -6,6 +6,7 @@ import cc.smtweb.system.bpm.web.engine.model.common.ModelService; | |||||
/** | /** | ||||
* @Author:lip | * @Author:lip | ||||
* @Date : 2022/8/27 13:54 | * @Date : 2022/8/27 13:54 | ||||
* 模型LC_LT_2(左树-列表(含编辑弹窗)) 服务类 | |||||
*/ | */ | ||||
@SwService | @SwService | ||||
public class LCLT2Service extends ModelService { | public class LCLT2Service extends ModelService { | ||||
@@ -6,6 +6,7 @@ import cc.smtweb.system.bpm.web.engine.model.listcard.lcms.LCMsService; | |||||
/** | /** | ||||
* @Author:lip | * @Author:lip | ||||
* @Date : 2022/9/13 15:32 | * @Date : 2022/9/13 15:32 | ||||
* 模型LC_LT_MS(左树-主子列表(含编辑卡片)) 服务类 | |||||
*/ | */ | ||||
@SwService | @SwService | ||||
public class LCLtMsService extends LCMsService { | public class LCLtMsService extends LCMsService { | ||||
@@ -19,7 +19,7 @@ public class LCMsConfig { | |||||
//卡片子表卡片数据集 | //卡片子表卡片数据集 | ||||
public static final String dsSCard = "cardSub"; | public static final String dsSCard = "cardSub"; | ||||
// 模型的配置信息类 | // 模型的配置信息类 | ||||
static class Config{ | |||||
public static class Config{ | |||||
private final ModelForm modelForm; | private final ModelForm modelForm; | ||||
public Config(ModelForm modelForm) { | public Config(ModelForm modelForm) { | ||||
@@ -38,7 +38,7 @@ public class LCMsDelHandler extends ModelDelHandler { | |||||
if(tableId<=0L)return; | if(tableId<=0L)return; | ||||
ModelTable table = ModelTableCache.getInstance().get(tableId); | ModelTable table = ModelTableCache.getInstance().get(tableId); | ||||
if(table == null) return; | if(table == null) return; | ||||
EntityDao dao =DbEngine.getInstance().findDao(table.getTableName()); | |||||
EntityDao dao =DbEngine.getInstance().findDao(table.getName()); | |||||
if(dao!=null){ | if(dao!=null){ | ||||
dao.deleteEntity(String.format(" where %s = ? ",fk),id); | dao.deleteEntity(String.format(" where %s = ? ",fk),id); | ||||
} | } | ||||
@@ -15,11 +15,18 @@ import java.util.function.BiConsumer; | |||||
* 主子表保存handler | * 主子表保存handler | ||||
*/ | */ | ||||
public class LCMsSaveHandler<T extends DefaultEntity> extends ModelSaveHandler<T> { | public class LCMsSaveHandler<T extends DefaultEntity> extends ModelSaveHandler<T> { | ||||
public LCMsSaveHandler() { | |||||
} | |||||
public LCMsSaveHandler(String cardDsName) { | |||||
super(cardDsName); | |||||
} | |||||
// 子表明细 | // 子表明细 | ||||
protected ModelDetail subDetail; | protected ModelDetail subDetail; | ||||
@Override | @Override | ||||
protected void readFromPage(SwMap pageData, SwMap filter) { | |||||
public void readFromPage(SwMap pageData, SwMap filter) { | |||||
super.readFromPage(pageData, filter); | super.readFromPage(pageData, filter); | ||||
LCMsConfig.Config config = new LCMsConfig.Config(form); | LCMsConfig.Config config = new LCMsConfig.Config(form); | ||||
// 读取子表 | // 读取子表 | ||||
@@ -38,7 +45,7 @@ public class LCMsSaveHandler<T extends DefaultEntity> extends ModelSaveHandler<T | |||||
} | } | ||||
@Override | @Override | ||||
protected void doSave() { | |||||
public void doSave() { | |||||
super.doSave(); | super.doSave(); | ||||
// 保存子表 | // 保存子表 | ||||
saveDetail(LCMsConfig.dsSList,subDetail); | saveDetail(LCMsConfig.dsSList,subDetail); | ||||
@@ -12,7 +12,7 @@ import cc.smtweb.system.bpm.web.engine.model.common.*; | |||||
/** | /** | ||||
* @Author:lip | * @Author:lip | ||||
* @Date : 2022/8/28 20:38 | * @Date : 2022/8/28 20:38 | ||||
* 卡片列表(主子表)接口服务类 | |||||
* 模型LC_LT_MS(普通主子列表(含编辑卡片)) 服务类 | |||||
*/ | */ | ||||
@SwService | @SwService | ||||
public class LCMsService extends ModelService { | public class LCMsService extends ModelService { | ||||
@@ -20,51 +20,83 @@ public class LCMsService extends ModelService { | |||||
public final static String TYPE_MODEL_SUB_LOAD = "modelSubLoad"; | public final static String TYPE_MODEL_SUB_LOAD = "modelSubLoad"; | ||||
public final static String TYPE_MODEL_SUB_SAVE = "modelSubSave"; | public final static String TYPE_MODEL_SUB_SAVE = "modelSubSave"; | ||||
public final static String TYPE_MODEL_SUB_DEL = "modelSubDel"; | public final static String TYPE_MODEL_SUB_DEL = "modelSubDel"; | ||||
protected AbstractHandler createHandler(String type) { | |||||
public AbstractHandler createHandler(String type) { | |||||
switch (type) { | switch (type) { | ||||
case TYPE_MODEL_LOAD: | case TYPE_MODEL_LOAD: | ||||
return new LCMsLoadHandler<DefaultEntity>(); | |||||
return new LCMsLoadHandler<>(); | |||||
case TYPE_MODEL_SAVE: | case TYPE_MODEL_SAVE: | ||||
return new LCMsSaveHandler<DefaultEntity>(); | |||||
return new LCMsSaveHandler<>(); | |||||
case TYPE_MODEL_DEL: | case TYPE_MODEL_DEL: | ||||
return new LCMsDelHandler(); | return new LCMsDelHandler(); | ||||
case TYPE_MODEL_SUB_LIST: | case TYPE_MODEL_SUB_LIST: | ||||
return new ModelListHandler(LCMsConfig.dsSList); | return new ModelListHandler(LCMsConfig.dsSList); | ||||
case TYPE_MODEL_SUB_LOAD: | case TYPE_MODEL_SUB_LOAD: | ||||
return new ModelLoadHandler<DefaultEntity>(LCMsConfig.dsSCard); | |||||
return new ModelLoadHandler<>(LCMsConfig.dsSCard); | |||||
case TYPE_MODEL_SUB_SAVE: | case TYPE_MODEL_SUB_SAVE: | ||||
return new ModelSaveHandler<DefaultEntity>(LCMsConfig.dsSCard); | |||||
return new ModelSaveHandler<>(LCMsConfig.dsSCard); | |||||
case TYPE_MODEL_SUB_DEL: | case TYPE_MODEL_SUB_DEL: | ||||
return new ModelDelHandler(LCMsConfig.dsSCard); | return new ModelDelHandler(LCMsConfig.dsSCard); | ||||
} | } | ||||
return super.createHandler(type); | return super.createHandler(type); | ||||
} | } | ||||
//子表单独保存 | |||||
/** | |||||
* 子表单独保存 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelSubSave(@SwBody SwMap params, UserSession us) { | public R modelSubSave(@SwBody SwMap params, UserSession us) { | ||||
return pageHandler(params, us, TYPE_MODEL_SUB_SAVE, handler -> ((ModelSaveHandler) handler).save()); | return pageHandler(params, us, TYPE_MODEL_SUB_SAVE, handler -> ((ModelSaveHandler) handler).save()); | ||||
} | } | ||||
//子表读取 | |||||
/** | |||||
* 子表编辑 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelSubLoad(@SwBody SwMap params, UserSession us) { | public R modelSubLoad(@SwBody SwMap params, UserSession us) { | ||||
return pageHandler(params, us, TYPE_MODEL_SUB_LOAD, handler -> ((ModelLoadHandler) handler).load()); | return pageHandler(params, us, TYPE_MODEL_SUB_LOAD, handler -> ((ModelLoadHandler) handler).load()); | ||||
} | } | ||||
//子表新增初始化 | |||||
/** | |||||
* 子表新增初始化 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelSubAdd(@SwBody SwMap params, UserSession us) { | public R modelSubAdd(@SwBody SwMap params, UserSession us) { | ||||
return pageHandler(params, us, TYPE_MODEL_SUB_LOAD, handler -> ((ModelLoadHandler) handler).add()); | return pageHandler(params, us, TYPE_MODEL_SUB_LOAD, handler -> ((ModelLoadHandler) handler).add()); | ||||
} | } | ||||
//子表删除 | |||||
/** | |||||
* 子表单独删除 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelSubDel(@SwBody SwMap params, UserSession us) { | public R modelSubDel(@SwBody SwMap params, UserSession us) { | ||||
return pageHandler(params, us, TYPE_MODEL_SUB_DEL, handler -> ((ModelDelHandler) handler).del()); | return pageHandler(params, us, TYPE_MODEL_SUB_DEL, handler -> ((ModelDelHandler) handler).del()); | ||||
} | } | ||||
//子表列表数据 | |||||
/** | |||||
* 子表列表数据 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelSubList(@SwBody SwMap params, UserSession us) { | public R modelSubList(@SwBody SwMap params, UserSession us) { | ||||
return pageHandler(params, us, TYPE_MODEL_SUB_LIST, handler -> ((ModelListHandler) handler).data()); | return pageHandler(params, us, TYPE_MODEL_SUB_LIST, handler -> ((ModelListHandler) handler).data()); | ||||
} | } | ||||
//列子表表总记录数及合计栏 | |||||
/** | |||||
* 列子表表总记录数及合计栏 | |||||
* @param params | |||||
* @param us | |||||
* @return | |||||
*/ | |||||
public R modelSubListTotal(@SwBody SwMap params, UserSession us) { | public R modelSubListTotal(@SwBody SwMap params, UserSession us) { | ||||
return pageHandler(params, us, TYPE_MODEL_SUB_LIST, handler -> ((ModelListHandler) handler).getTotal()); | return pageHandler(params, us, TYPE_MODEL_SUB_LIST, handler -> ((ModelListHandler) handler).getTotal()); | ||||
} | } | ||||
@@ -6,6 +6,7 @@ import cc.smtweb.system.bpm.web.engine.model.common.ModelService; | |||||
/** | /** | ||||
* @Author:lip | * @Author:lip | ||||
* @Date : 2022/8/27 13:54 | * @Date : 2022/8/27 13:54 | ||||
* 模型LC_NORMAL(普通列表(含编辑卡片)) 服务类 | |||||
*/ | */ | ||||
@SwService | @SwService | ||||
public class LCNormalService extends ModelService { | public class LCNormalService extends ModelService { | ||||
@@ -0,0 +1,97 @@ | |||||
<#--group当前分组--> | |||||
<#--colNum卡片列数--> | |||||
<#assign field = group.fields> | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "0", | |||||
<#if colNum lte 1> | |||||
"gridTemplateColumns": "1fr 2fr", | |||||
<#elseif colNum gte 2> | |||||
"gridTemplateColumns": "1fr 1fr 1fr", | |||||
</#if> | |||||
"paddingTop": 32 | |||||
}, | |||||
"children": [ | |||||
<#list group.fields as fields> | |||||
{ | |||||
"id": "id${newId()}", | |||||
<#if (fields.readonly = true)> | |||||
"type": "fx-text", | |||||
<#else> | |||||
"type": "${fields.editor}", | |||||
</#if> | |||||
"props": { | |||||
"label": "${fields.label}", | |||||
"dataset": "${fields.dataset}", | |||||
"required": "${fields.required}", | |||||
"field": "${fields.id}", | |||||
<#if fields.maxlength gt 0> | |||||
"maxlength": ${fields.maxlength}, | |||||
</#if> | |||||
<#if fields.lookup??> | |||||
"lookup": { | |||||
<#list fields.lookup as k, v> | |||||
"${k}": "${v}" <#if k_has_next>,</#if> | |||||
</#list> | |||||
}, | |||||
</#if> | |||||
"placeholder": "请输入内容", | |||||
<#if (colNum = 2)> | |||||
"tips": "${fields.desc}", | |||||
</#if> | |||||
"labelWidth": 100, | |||||
<#if (fields.readonly = true)> | |||||
"readonly": true, | |||||
<#else> | |||||
"readonly": false, | |||||
</#if> | |||||
"affixError": true | |||||
}, | |||||
"events": {} | |||||
} | |||||
<#if fields_has_next> | |||||
<#if (colNum lte 1 )> | |||||
<#if (fields.desc != "")> | |||||
,{ | |||||
"id": "${newId()}", | |||||
"type": "fx-label", | |||||
"props": { | |||||
"label": "${fields.desc}", | |||||
"labelWidth": 0, | |||||
"affixError": true, | |||||
"labelAlign": "left" | |||||
} | |||||
} | |||||
<#else> | |||||
,{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-placeholder", | |||||
"props": { | |||||
"label": "占位" | |||||
}, | |||||
"layout": { | |||||
"row": 1 | |||||
} | |||||
} | |||||
</#if> | |||||
</#if> | |||||
<#if (colNum = 2 && ((fields_index+1) % 2 = 0 ) )> | |||||
,{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-placeholder", | |||||
"props": { | |||||
"label": "占位" | |||||
}, | |||||
"layout": { | |||||
"row": 1 | |||||
} | |||||
} | |||||
</#if> | |||||
, | |||||
</#if> | |||||
</#list> | |||||
] | |||||
} |
@@ -0,0 +1,534 @@ | |||||
<#--这里放主数据集内容--> | |||||
<#list layout.flow as group> | |||||
<#--流程数据集--> | |||||
,{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "16", | |||||
"backgroundColor": "--color-transparent" | |||||
}, | |||||
"children": [] | |||||
}, | |||||
<#include "incModel/inc_card_fields_only.ftl"/> | |||||
</#list> | |||||
,{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": {}, | |||||
"children": [] | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "16", | |||||
"backgroundColor": "--color-transparent" | |||||
}, | |||||
"children": [] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "56", | |||||
"alignY": "center", | |||||
"alignX": "center" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-button-group", | |||||
"props": { | |||||
"menus": [] | |||||
}, | |||||
"slots": { | |||||
"default": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-button", | |||||
"props": { | |||||
"name": "button:new", | |||||
"label": "新增", | |||||
"type": "primary", | |||||
"action": "button:addCard" | |||||
}, | |||||
"vars": { | |||||
"$ref": "$ref" | |||||
} | |||||
}, | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"name": "button:save-and-new", | |||||
"label": "保存并新增", | |||||
"type": "primary", | |||||
"action": "button:saveAddCard", | |||||
"linkType": "curr" | |||||
}, | |||||
"id": "${newId()}", | |||||
"vars": { | |||||
"$ref": "$ref" | |||||
} | |||||
}, | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"name": "button:save", | |||||
"label": "保存", | |||||
"type": "success", | |||||
"action": "button:saveCard" | |||||
}, | |||||
"id": "${newId()}", | |||||
"vars": { | |||||
"$ref": "$ref" | |||||
} | |||||
}, | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"name": "button:submit", | |||||
"label": "提交", | |||||
"type": "primary", | |||||
"action": "button:submit" | |||||
}, | |||||
"id": "${newId()}", | |||||
"vars": { | |||||
"$ref": "$ref" | |||||
} | |||||
}, | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"name": "button:retake", | |||||
"label": "取回", | |||||
"action": "button:retake" | |||||
}, | |||||
"id": "${newId()}", | |||||
"vars": { | |||||
"$ref": "$ref" | |||||
} | |||||
}, | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"name": "button:reject", | |||||
"label": "驳回", | |||||
"type": "warning", | |||||
"action": "button:reject" | |||||
}, | |||||
"id": "${newId()}", | |||||
"vars": { | |||||
"$ref": "$ref" | |||||
} | |||||
}, | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"name": "button:disuse", | |||||
"label": "作废", | |||||
"type": "danger", | |||||
"action": "button:disuse" | |||||
}, | |||||
"id": "${newId()}", | |||||
"vars": { | |||||
"$ref": "$ref" | |||||
} | |||||
}, | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"name": "button:interrupt", | |||||
"label": "终止", | |||||
"type": "danger", | |||||
"action": "button:interrupt" | |||||
}, | |||||
"id": "${newId()}", | |||||
"vars": { | |||||
"$ref": "$ref" | |||||
} | |||||
}, | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"name": "button:delete", | |||||
"label": "删除", | |||||
"type": "danger", | |||||
"action": "button:delCard" | |||||
}, | |||||
"id": "${newId()}", | |||||
"vars": { | |||||
"$ref": "$ref" | |||||
} | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-button", | |||||
"props": { | |||||
"name": "button:return", | |||||
"label": "返回", | |||||
"size": "default", | |||||
"action": "button:backList" | |||||
}, | |||||
"events": {}, | |||||
"vars": { | |||||
"$ref": "$ref" | |||||
} | |||||
} | |||||
] | |||||
} | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "16", | |||||
"backgroundColor": "--color-transparent" | |||||
}, | |||||
"children": [] | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"page": { | |||||
"id": "${newId()}", | |||||
"type": "fx-dialog", | |||||
"props": { | |||||
"title": "审批意见", | |||||
"key": "dlgOpt", | |||||
"width": "450px", | |||||
"height": "260px", | |||||
"showPrefix": true | |||||
}, | |||||
"events": {} | |||||
}, | |||||
"graph": { | |||||
"shape": "panel", | |||||
"id": "${newId()}", | |||||
"type": "fx-split-panel", | |||||
"props": { | |||||
"horizontal": false, | |||||
"shadow": "never" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-split-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"horizontal": false | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"shape": "panel", | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"props": { | |||||
"name": "dlgOptForm", | |||||
"colNum": 1, | |||||
"paddingTop": 24, | |||||
"size": "0" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-select", | |||||
"props": { | |||||
"name":"flowSelCommentRef", | |||||
"label": "备选意见", | |||||
"clearable": true, | |||||
"labelWidth": 100, | |||||
"affixError": true, | |||||
"dataset": "dlgOpt", | |||||
"field": "selComment", | |||||
"size": "default" | |||||
}, | |||||
"events": { | |||||
"on-change": "onSelCommentChange" | |||||
}, | |||||
"vars": { | |||||
"$ref": "$ref" | |||||
} | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-textarea", | |||||
"props": { | |||||
"label": "处理意见", | |||||
"maxlength": 200, | |||||
"placeholder": "请输入内容", | |||||
"labelWidth": 100, | |||||
"affixError": true, | |||||
"size": "default", | |||||
"dataset": "dlgOpt", | |||||
"field": "comment", | |||||
"rows": 4 | |||||
}, | |||||
"events": {} | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": {}, | |||||
"children": [] | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "0" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-divider", | |||||
"props": { | |||||
"label": "", | |||||
"contentPosition": "center", | |||||
"direction": "horizontal" | |||||
} | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "50", | |||||
"alignX": "end", | |||||
"alignY": "center", | |||||
"paddingRight": 10 | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-button-group", | |||||
"props": { | |||||
"showDropdown": false | |||||
}, | |||||
"slots": { | |||||
"default": [ | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "确认", | |||||
"leftIcon": "correct", | |||||
"type": "primary", | |||||
"action": "button:dlgDynConfirm", | |||||
"linkType": "" | |||||
}, | |||||
"id": "${newId()}", | |||||
"events": {} | |||||
}, | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "取消", | |||||
"leftIcon": "error", | |||||
"action": "button:closeDialog" | |||||
}, | |||||
"id": "${newId()}", | |||||
"events": {} | |||||
} | |||||
], | |||||
"dropdown": [] | |||||
} | |||||
} | |||||
] | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"page": { | |||||
"id": "${newId()}", | |||||
"type": "fx-dialog", | |||||
"props": { | |||||
"title": "驳回", | |||||
"key": "dlgReject", | |||||
"width": "450px", | |||||
"height": "300px", | |||||
"showPrefix": true | |||||
}, | |||||
"events": {} | |||||
}, | |||||
"graph": { | |||||
"shape": "panel", | |||||
"id": "${newId()}", | |||||
"type": "fx-split-panel", | |||||
"props": { | |||||
"horizontal": false, | |||||
"shadow": "never" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-split-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"horizontal": false | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"shape": "panel", | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"props": { | |||||
"name": "dlgOptForm", | |||||
"colNum": 1, | |||||
"paddingTop": 24, | |||||
"size": "0" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-select", | |||||
"props": { | |||||
"name":"flowToTaskRef", | |||||
"label": "驳回到", | |||||
"clearable": true, | |||||
"labelWidth": 100, | |||||
"affixError": true, | |||||
"size": "default", | |||||
"multiple": true, | |||||
"dataset": "dlgOpt", | |||||
"field": "toTaskId" | |||||
}, | |||||
"events": {}, | |||||
"vars": { | |||||
"$ref": "$ref" | |||||
} | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-select", | |||||
"props": { | |||||
"name":"flowSelCommentRef", | |||||
"label": "备选意见", | |||||
"clearable": true, | |||||
"labelWidth": 100, | |||||
"affixError": true, | |||||
"dataset": "dlgOpt", | |||||
"field": "selComment", | |||||
"size": "default" | |||||
}, | |||||
"events": { | |||||
"on-change": "onSelCommentChange" | |||||
}, | |||||
"vars": { | |||||
"$ref": "$ref" | |||||
} | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-textarea", | |||||
"props": { | |||||
"label": "处理意见", | |||||
"maxlength": 200, | |||||
"placeholder": "请输入内容", | |||||
"labelWidth": 100, | |||||
"affixError": true, | |||||
"size": "default", | |||||
"dataset": "dlgOpt", | |||||
"field": "comment", | |||||
"rows": 4 | |||||
}, | |||||
"events": {} | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": {}, | |||||
"children": [] | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "0" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-divider", | |||||
"props": { | |||||
"label": "", | |||||
"contentPosition": "center", | |||||
"direction": "horizontal" | |||||
} | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "50", | |||||
"alignX": "end", | |||||
"alignY": "center", | |||||
"paddingRight": 10 | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-button-group", | |||||
"props": { | |||||
"showDropdown": false | |||||
}, | |||||
"slots": { | |||||
"default": [ | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "确认", | |||||
"leftIcon": "correct", | |||||
"type": "primary", | |||||
"action": "button:dlgDynConfirm", | |||||
"linkType": "" | |||||
}, | |||||
"id": "${newId()}", | |||||
"events": {} | |||||
}, | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "取消", | |||||
"leftIcon": "error", | |||||
"action": "button:closeDialog" | |||||
}, | |||||
"id": "${newId()}", | |||||
"events": {} | |||||
} | |||||
], | |||||
"dropdown": [] | |||||
} | |||||
} | |||||
] | |||||
} | |||||
] | |||||
} | |||||
} |
@@ -0,0 +1,131 @@ | |||||
{ | |||||
"version": 6, | |||||
"form": [ | |||||
{ | |||||
"page": { | |||||
"id": "id${newId()}", | |||||
"type": "fx-page", | |||||
"props": { | |||||
"title": "编辑", | |||||
"key": "${newId()}", | |||||
"tipsExpand": false | |||||
} | |||||
}, | |||||
"graph": { | |||||
"shape": "panel", | |||||
"id": "root_panel", | |||||
"type": "fx-split-panel", | |||||
"props": { | |||||
"horizontal": false, | |||||
"shadow": "", | |||||
"scroll": false, | |||||
"size": "", | |||||
"name": "s0" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-split-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "56", | |||||
"horizontal": true, | |||||
"scroll": false, | |||||
"name": "s11" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"alignY": "center", | |||||
"size": "200", | |||||
"paddingLeft": 16 | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-title", | |||||
"props": { | |||||
"label": "${title}", | |||||
"showPrefix": true | |||||
} | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": {}, | |||||
"children": [] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"alignY": "center", | |||||
"size": "75" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-title", | |||||
"props": { | |||||
"label": "单据状态:", | |||||
"fontWeight": "bold", | |||||
"color": "#F56C6C", | |||||
"showPrefix": false | |||||
} | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"alignY": "center", | |||||
"size": "200", | |||||
"colNum": 1 | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-select", | |||||
"props": { | |||||
"name":"flowTaskRef", | |||||
"label": "当前任务", | |||||
"clearable": true, | |||||
"labelWidth": 100, | |||||
"affixError": false, | |||||
"size": "default", | |||||
"hideLabel": true, | |||||
"dataset": "flow", | |||||
"field": "selTaskId" | |||||
}, | |||||
"events": { | |||||
"on-change": "onTaskChange" | |||||
}, | |||||
"vars": { | |||||
"$ref": "$ref" | |||||
} | |||||
} | |||||
] | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-split-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "", | |||||
"horizontal": false, | |||||
"scroll": true, | |||||
"name": "s12" | |||||
}, | |||||
"children": [ | |||||
<#--这里放主数据集内容--> |
@@ -22,7 +22,14 @@ | |||||
"type": "${dfield.editor}", | "type": "${dfield.editor}", | ||||
"dataset": "${dfield.dataset}", | "dataset": "${dfield.dataset}", | ||||
"field": "${dfield.id}", | "field": "${dfield.id}", | ||||
"required": "${field.required}", | |||||
"required": "${dfield.required}", | |||||
<#if dfield.lookup??> | |||||
"lookup": { | |||||
<#list dfield.lookup as k, v> | |||||
"${k}": "${v}" <#if k_has_next>,</#if> | |||||
</#list> | |||||
}, | |||||
</#if> | |||||
<#if dfield.maxlength gt 0> | <#if dfield.maxlength gt 0> | ||||
"maxlength": ${dfield.maxlength}, | "maxlength": ${dfield.maxlength}, | ||||
</#if> | </#if> | ||||
@@ -0,0 +1,27 @@ | |||||
<#include "incModel/inc_card_flow_body_h.ftl"/> | |||||
<#assign colNum = param.rCardCol> | |||||
<#list layout.rCard as group> | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "16", | |||||
"backgroundColor": "--color-transparent" | |||||
}, | |||||
"children": [] | |||||
}, | |||||
<#include "incModel/inc_card_fields_only.ftl"/> | |||||
</#list> | |||||
<#include "incModel/inc_card_flow_body_b.ftl"/> | |||||
], | |||||
"model": [ | |||||
<#list datasets as dataset> | |||||
<#include "incModel/inc_model.ftl"/><#if dataset_has_next>,</#if> | |||||
</#list> | |||||
], | |||||
"option": { | |||||
"widgetRef": [${widgetRef}], | |||||
"vars": [] | |||||
} | |||||
} |
@@ -0,0 +1,301 @@ | |||||
<#include "incModel/inc_card_flow_body_h.ftl"/> | |||||
<#list layout.cardMaster as group> | |||||
<#assign colNum = param.rCardCol> | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "16", | |||||
"backgroundColor": "--color-transparent" | |||||
}, | |||||
"children": [] | |||||
}, | |||||
<#include "incModel/inc_card_fields_only.ftl"/> | |||||
</#list> | |||||
,{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "16", | |||||
"backgroundColor": "--color-transparent" | |||||
}, | |||||
"children": [] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-split-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "56", | |||||
"horizontal": true | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "", | |||||
"label": "", | |||||
"colNum": 2, | |||||
"alignY": "center", | |||||
"paddingLeft": 16, | |||||
"shadow": "" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-title", | |||||
"props": { | |||||
"label": "子表列表配置", | |||||
"fontSize": 16, | |||||
"color": "#01070D", | |||||
"fontWeight": "bold", | |||||
"showPrefix": false, | |||||
"prefixWidth": 5, | |||||
"prefixHeight": 24, | |||||
"prefixColor": "#1E90FF" | |||||
} | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"alignX": "right", | |||||
"size": "150", | |||||
"alignY": "center", | |||||
"paddingRight": 16 | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "新增", | |||||
"type": "primary", | |||||
"action": "button:addRow", | |||||
"size": "default", | |||||
"linkType": "dialog", | |||||
"leftIcon": "plus", | |||||
"fxLink": "dialog:cardSubDialog", | |||||
"fxLink_text": "子表编辑卡片", | |||||
"preAction": "", | |||||
"dataset": "${layout.listSub[0].dataset}" | |||||
}, | |||||
"events": {} | |||||
} | |||||
] | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "400", | |||||
"label": "子表列表", | |||||
"colNum": 0, | |||||
"paddingLeft": 16, | |||||
"paddingRight": 16, | |||||
"shadow": "", | |||||
"paddingTop": 0 | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-table", | |||||
"props": { | |||||
"label": "子表表格", | |||||
"border": true, | |||||
"stripe": true, | |||||
"showHeader": true, | |||||
"fit": true, | |||||
"dataset": "${layout.listSub[0].dataset}", | |||||
"actionWidth": 150 | |||||
}, | |||||
"slots": { | |||||
"default": [ | |||||
<#list layout.listSub[0].fields as field> | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-table-column", | |||||
"props": { | |||||
"field": "${field.id}", | |||||
"label": "${field.label}" | |||||
} | |||||
} | |||||
<#if field_has_next>,</#if> | |||||
</#list> | |||||
], | |||||
"button": [ | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "编辑", | |||||
"type": "text", | |||||
"leftIcon": "edit", | |||||
"action": "button:loadRow", | |||||
"dataset": "${layout.listSub[0].dataset}", | |||||
"linkType": "dialog", | |||||
"fxLink": "dialog:cardSubDialog", | |||||
"fxLink_text": "子表编辑卡片" | |||||
} | |||||
}, | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "删除", | |||||
"type": "text", | |||||
"leftIcon": "delete-themes", | |||||
"action": "button:delRow", | |||||
"dataset": "${layout.listSub[0].dataset}", | |||||
"preAction": "", | |||||
"link": true, | |||||
"confirm": "" | |||||
} | |||||
} | |||||
] | |||||
}, | |||||
"events": {} | |||||
} | |||||
] | |||||
} | |||||
<#include "incModel/inc_card_flow_body_b.ftl"/> | |||||
<#--子表编辑弹窗--> | |||||
<#list layout.listSub as group> | |||||
,{ | |||||
"page": { | |||||
"id": "id${newId()}", | |||||
"type": "fx-dialog", | |||||
"props": { | |||||
<#if (param.cardSubTitle == "")> | |||||
"title": "子表编辑卡片", | |||||
<#else> | |||||
"title": "${param.cardSubTitle}", | |||||
</#if> | |||||
"key": "cardSubDialog", | |||||
"closeOnClickModal": false | |||||
}, | |||||
"events": {} | |||||
}, | |||||
"graph": { | |||||
"shape": "panel", | |||||
"id": "root_panel", | |||||
"type": "fx-split-panel", | |||||
"props": { | |||||
"horizontal": false, | |||||
"shadow": "never" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-split-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"horizontal": false, | |||||
"scroll": true, | |||||
"backgroundColor": "--color-white" | |||||
}, | |||||
"children": [ | |||||
<#assign colNum = param.subCol> | |||||
<#include "incModel/inc_card_fields_only.ftl"/> | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "0" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-divider", | |||||
"props": { | |||||
"label": "", | |||||
"contentPosition": "center", | |||||
"direction": "horizontal" | |||||
} | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "56", | |||||
"paddingRight": 10, | |||||
"alignY": "center" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-button-group", | |||||
"props": { | |||||
"menus": [], | |||||
"textAlign": "right" | |||||
}, | |||||
"slots": { | |||||
"default": [ | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "保存", | |||||
"leftIcon": "save", | |||||
"type": "success", | |||||
"action": "button:saveRow", | |||||
"dataset": "${group.dataset}" | |||||
}, | |||||
"id": "id${newId()}" | |||||
}, | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "保存行并新增", | |||||
"type": "primary", | |||||
"action": "button:saveAddRow", | |||||
"dataset": "${group.dataset}" | |||||
}, | |||||
"id": "${newId()}", | |||||
"events": {} | |||||
}, | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "关闭", | |||||
"leftIcon": "close", | |||||
"type": "", | |||||
"action": "button:closeDialog" | |||||
}, | |||||
"id": "id${newId()}" | |||||
} | |||||
] | |||||
} | |||||
} | |||||
] | |||||
} | |||||
] | |||||
} | |||||
} | |||||
</#list> | |||||
], | |||||
"model": [ | |||||
<#list datasets as dataset> | |||||
<#include "incModel/inc_model.ftl"/><#if dataset_has_next>,</#if> | |||||
</#list> | |||||
], | |||||
"option": { | |||||
"widgetRef": [${widgetRef}], | |||||
"vars": [] | |||||
} | |||||
} |
@@ -77,10 +77,21 @@ | |||||
"label": "${field.label}", | "label": "${field.label}", | ||||
"dataset": "${field.dataset}", | "dataset": "${field.dataset}", | ||||
"required": "${field.required}", | "required": "${field.required}", | ||||
<#if field.lookup??> | |||||
"lookup": { | |||||
<#list field.lookup as k, v> | |||||
"${k}": "${v}" <#if k_has_next>,</#if> | |||||
</#list> | |||||
}, | |||||
</#if> | |||||
"field": "${field.id}", | "field": "${field.id}", | ||||
"placeholder": "请输入内容", | "placeholder": "请输入内容", | ||||
"labelWidth": 150, | "labelWidth": 150, | ||||
"readonly": "${field.readonly}", | |||||
<#if (field.readonly = true)> | |||||
"readonly": true, | |||||
<#else> | |||||
"readonly": false, | |||||
</#if> | |||||
"affixError": true | "affixError": true | ||||
}, | }, | ||||
"events": {} | "events": {} | ||||
@@ -213,7 +224,7 @@ | |||||
"props": { | "props": { | ||||
"label": "新增", | "label": "新增", | ||||
"type": "primary", | "type": "primary", | ||||
"action": "button:addRow", | |||||
"action": "button:addSubRow", | |||||
"size": "default", | "size": "default", | ||||
"linkType": "dialog", | "linkType": "dialog", | ||||
"leftIcon": "plus", | "leftIcon": "plus", | ||||
@@ -276,7 +287,7 @@ | |||||
"label": "编辑", | "label": "编辑", | ||||
"type": "text", | "type": "text", | ||||
"leftIcon": "edit", | "leftIcon": "edit", | ||||
"action": "button:loadRow", | |||||
"action": "button:loadSubRow", | |||||
"dataset": "${layout.listSub[0].dataset}", | "dataset": "${layout.listSub[0].dataset}", | ||||
"linkType": "dialog", | "linkType": "dialog", | ||||
"fxLink": "dialog:cardSubDialog", | "fxLink": "dialog:cardSubDialog", | ||||
@@ -290,7 +301,7 @@ | |||||
"label": "删除", | "label": "删除", | ||||
"type": "text", | "type": "text", | ||||
"leftIcon": "delete-themes", | "leftIcon": "delete-themes", | ||||
"action": "button:delRow", | |||||
"action": "button:delSubRow", | |||||
"dataset": "${layout.listSub[0].dataset}", | "dataset": "${layout.listSub[0].dataset}", | ||||
"preAction": "", | "preAction": "", | ||||
"link": true, | "link": true, | ||||
@@ -391,7 +402,12 @@ | |||||
] | ] | ||||
} | } | ||||
}, | }, | ||||
<#list layout.listSub as assist_dialog> | |||||
<#if (subIndSave = true || subIndSave = "true")> | |||||
<#assign datasetSub = layout.cardSub> | |||||
<#else> | |||||
<#assign datasetSub = layout.listSub> | |||||
</#if> | |||||
<#list datasetSub as assist_dialog> | |||||
{ | { | ||||
"page": { | "page": { | ||||
"id": "id${newId()}", | "id": "id${newId()}", | ||||
@@ -475,7 +491,7 @@ | |||||
"label": "保存", | "label": "保存", | ||||
"leftIcon": "save", | "leftIcon": "save", | ||||
"type": "success", | "type": "success", | ||||
"action": "button:saveRow", | |||||
"action": "button:saveSubRow", | |||||
"dataset": "${assist_dialog.dataset}" | "dataset": "${assist_dialog.dataset}" | ||||
}, | }, | ||||
"id": "id${newId()}" | "id": "id${newId()}" | ||||
@@ -162,6 +162,13 @@ | |||||
"dataset": "${field.dataset}", | "dataset": "${field.dataset}", | ||||
"required": "${field.required}", | "required": "${field.required}", | ||||
"field": "${field.id}", | "field": "${field.id}", | ||||
<#if field.lookup??> | |||||
"lookup": { | |||||
<#list field.lookup as k, v> | |||||
"${k}": "${v}" <#if k_has_next>,</#if> | |||||
</#list> | |||||
}, | |||||
</#if> | |||||
<#if field.maxlength gt 0> | <#if field.maxlength gt 0> | ||||
"maxlength": ${field.maxlength}, | "maxlength": ${field.maxlength}, | ||||
</#if> | </#if> | ||||
@@ -0,0 +1,633 @@ | |||||
{ | |||||
"version": 6, | |||||
"form": [ | |||||
{ | |||||
"page": { | |||||
"id": "id${newId()}", | |||||
"type": "fx-page", | |||||
"props": { | |||||
"title": "${title}", | |||||
"key": "${newId()}" | |||||
} | |||||
}, | |||||
"graph": { | |||||
"shape": "panel", | |||||
"id": "root_panel", | |||||
"type": "fx-split-panel", | |||||
"props": { | |||||
"shadow": "" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"shape": "panel", | |||||
"id": "root_panel", | |||||
"type": "fx-split-panel", | |||||
"props": { | |||||
"horizontal": true, | |||||
"shadow": "" | |||||
}, | |||||
"children": [ | |||||
<#list layout.lList as assist> | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-split-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"horizontal": false, | |||||
"size": "420" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "56", | |||||
"alignY": "center", | |||||
"paddingLeft": 16, | |||||
"colNum": 2, | |||||
"gridTemplateColumns": "", | |||||
"paddingRight": 16 | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-title", | |||||
"props": { | |||||
"label": "${param.lListTitle}" | |||||
} | |||||
}, | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-button-group", | |||||
"props": { | |||||
"menus": [], | |||||
"textAlign": "right", | |||||
"dataset": "${assist.dataset}" | |||||
}, | |||||
"slots": { | |||||
"default": [ | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "新增", | |||||
"leftIcon": "plus", | |||||
"type": "primary", | |||||
"action": "button:addCard", | |||||
"linkType": "dialog", | |||||
"link": false, | |||||
"fxLink": "dialog:lCardDialog", | |||||
"fxLink_text": "${param.lCardTitle}" | |||||
}, | |||||
"id": "id${newId()}" | |||||
} | |||||
] | |||||
} | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id":"${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "0" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-divider", | |||||
"props": { | |||||
"label": "", | |||||
"contentPosition": "center", | |||||
"direction": "horizontal" | |||||
} | |||||
} | |||||
] | |||||
}, | |||||
<#if (assist.cfilters?size>0)> | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"alignY": "center", | |||||
"size": "50", | |||||
"gridTemplateColumns": "1fr 50px", | |||||
"paddingLeft": 16, | |||||
"paddingRight": 16 | |||||
}, | |||||
"children": [ | |||||
<#list assist.cfilters as cfilters> | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "${cfilters.editor}", | |||||
"props": { | |||||
"label": "${cfilters.label}", | |||||
"maxlength": 50, | |||||
"placeholder": "请输入${cfilters.label}", | |||||
"labelWidth": 150, | |||||
"affixError": false, | |||||
"hideLabel": true, | |||||
"leftIcon": "", | |||||
"dataset": "${cfilters.dataset}", | |||||
"field": "${cfilters.id}" | |||||
}, | |||||
"events": {} | |||||
}, | |||||
</#list> | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-button-group", | |||||
"props": { | |||||
"menus": [], | |||||
"textAlign": "right", | |||||
"dataset": "${assist.dataset}" | |||||
}, | |||||
"slots": { | |||||
"default": [ | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "查询", | |||||
"leftIcon": "", | |||||
"action": "button:loadList", | |||||
"link": false, | |||||
"type": "primary" | |||||
}, | |||||
"id": "id${newId()}" | |||||
} | |||||
] | |||||
} | |||||
} | |||||
] | |||||
}, | |||||
</#if> | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "", | |||||
"colNum": 0, | |||||
"paddingLeft": 16, | |||||
"paddingRight": 16 | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-table", | |||||
"props": { | |||||
"label": "${param.lListTitle}", | |||||
"border": true, | |||||
"stripe": true, | |||||
"showHeader": false, | |||||
"fit": true, | |||||
"hideOp": false, | |||||
"hideNo": true, | |||||
"dataset": "${assist.dataset}", | |||||
"hidePagination": true, | |||||
"name":"leftTb" | |||||
}, | |||||
"slots": { | |||||
"button": [ | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "编辑", | |||||
"type": "primary", | |||||
"leftIcon": "edit", | |||||
"action": "button:editCard", | |||||
"linkType": "dialog", | |||||
"dataset": "${assist.dataset}", | |||||
"fxLink": "dialog:lCardDialog", | |||||
"fxLink_text": "${param.lCardTitle}", | |||||
"link": true | |||||
}, | |||||
"id": "id${newId()}" | |||||
}, | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "删除", | |||||
"type": "primary", | |||||
"leftIcon": "delete", | |||||
"action": "button:delCard", | |||||
"link": true, | |||||
"text": false, | |||||
"dataset": "${assist.dataset}", | |||||
"confirm": "" | |||||
}, | |||||
"id": "id${newId()}" | |||||
} | |||||
], | |||||
"default": [ | |||||
<#list assist.fields as field> | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-table-column", | |||||
"props": { | |||||
"field": "${field.id}", | |||||
"label": "${field.label}" | |||||
} | |||||
}<#if field_has_next>,</#if> | |||||
</#list> | |||||
] | |||||
}, | |||||
"events": {}, | |||||
"vars": { | |||||
"$ref": "$ref" | |||||
} | |||||
} | |||||
] | |||||
} | |||||
] | |||||
}, | |||||
</#list> | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "16", | |||||
"backgroundColor": "--color-transparent" | |||||
}, | |||||
"children": [] | |||||
}, | |||||
<#list layout.rList as main> | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-split-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"horizontal": false | |||||
}, | |||||
"children": [ | |||||
<#if (main.cfilters?size>0)> | |||||
{ | |||||
"shape": "panel", | |||||
"id": "form_panel", | |||||
"type": "fx-form-panel", | |||||
"props": { | |||||
"colNum": 3, | |||||
"label": "查询条件", | |||||
"paddingLeft": 16, | |||||
"paddingRight": 16, | |||||
"size": "56", | |||||
"alignY": "center" | |||||
}, | |||||
"children": [ | |||||
<#list main.cfilters as cfilters> | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "${cfilters.editor}", | |||||
"props": { | |||||
"label": "${cfilters.label}", | |||||
"maxlength": 50, | |||||
"placeholder": "请输入${cfilters.label}", | |||||
"labelWidth": 100, | |||||
"affixError": false | |||||
}, | |||||
"events": {} | |||||
}, | |||||
</#list> | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-button-group", | |||||
"props": { | |||||
"menus": [], | |||||
"dataset": "${main.dataset}" | |||||
}, | |||||
"slots": { | |||||
"default": [ | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "重置", | |||||
"leftIcon": "clear", | |||||
"action": "button:reset" | |||||
}, | |||||
"id": "id${newId()}" | |||||
}, | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "查询", | |||||
"leftIcon": "search", | |||||
"type": "primary", | |||||
"action": "button:loadList", | |||||
"linkType": "" | |||||
}, | |||||
"id": "id${newId()}" | |||||
} | |||||
<#if (main.sfilters?size>0)> | |||||
,{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "高级筛选", | |||||
"leftIcon": "hamburger-button", | |||||
"action": "button:link", | |||||
"link": true, | |||||
"linkType": "drawer", | |||||
"fxLink": "dialog:rQueryDialog" | |||||
} | |||||
} | |||||
</#if> | |||||
] | |||||
} | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"label": "间隔", | |||||
"size": "16", | |||||
"backgroundColor": "--color-transparent" | |||||
}, | |||||
"children": [] | |||||
}, | |||||
</#if> | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"label": "${param.rListTitle}", | |||||
"size": "50", | |||||
"colNum": 2, | |||||
"alignY": "center", | |||||
"paddingLeft": 16, | |||||
"paddingRight": 16 | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-title", | |||||
"props": { | |||||
"label": "${param.rListTitle}" | |||||
} | |||||
}, | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-button-group", | |||||
"props": { | |||||
"menus": [], | |||||
"textAlign": "right", | |||||
"dataset": "${main.dataset}" | |||||
}, | |||||
"slots": { | |||||
"default": [ | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "新增", | |||||
"leftIcon": "plus", | |||||
"type": "primary", | |||||
"action": "button:addCard", | |||||
"link": false, | |||||
"linkType": "curr", | |||||
<#if name?has_content && name?ends_with("List")> | |||||
"fxLink": "bpm.${name?replace("List","Card")}", | |||||
<#else> | |||||
"fxLink": "", | |||||
</#if> | |||||
"fxLink_text": "编辑卡片", | |||||
"preAction": "" | |||||
}, | |||||
"id": "id${newId()}" | |||||
} | |||||
] | |||||
} | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"label": "表格区", | |||||
"colNum": 0, | |||||
"paddingLeft": 16, | |||||
"paddingRight": 16 | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-table", | |||||
"props": { | |||||
"label": "表格", | |||||
"border": true, | |||||
"stripe": true, | |||||
"showHeader": true, | |||||
"fit": true, | |||||
"dataset": "${main.dataset}" | |||||
}, | |||||
"slots": { | |||||
"button": [ | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "编辑", | |||||
"type": "primary", | |||||
"leftIcon": "edit", | |||||
"action": "button:editCard", | |||||
"link": false, | |||||
"linkType": "curr", | |||||
<#if name?has_content && name?ends_with("List")> | |||||
"fxLink": "bpm.${name?replace("List","Card")}", | |||||
<#else> | |||||
"fxLink": "", | |||||
</#if> | |||||
"fxLink_text": "编辑卡片" | |||||
}, | |||||
"id": "id${newId()}" | |||||
}, | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "删除", | |||||
"type": "danger", | |||||
"leftIcon": "delete", | |||||
"action": "button:delCard", | |||||
"link": false, | |||||
"text": true, | |||||
"preAction": "" | |||||
}, | |||||
"id": "id${newId()}" | |||||
} | |||||
], | |||||
"default": [ | |||||
<#list main.fields as field> | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-table-column", | |||||
"props": { | |||||
"field": "${field.id}", | |||||
"label": "${field.label}" | |||||
} | |||||
}<#if field_has_next>,</#if> | |||||
</#list> | |||||
] | |||||
}, | |||||
"events": {} | |||||
} | |||||
] | |||||
} | |||||
] | |||||
} | |||||
</#list> | |||||
] | |||||
}, | |||||
{ | |||||
"shape": "panel", | |||||
"id": "fx-form-panel", | |||||
"type": "fx-split-panel", | |||||
"props": { | |||||
"shadow": "", | |||||
"size": 24 | |||||
}, | |||||
"children": [] | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
<#list layout.lCard as lDialog> | |||||
{ | |||||
"page": { | |||||
"id": "id${newId()}", | |||||
"type": "fx-dialog", | |||||
"props": { | |||||
<#if (param.lCardTitle == "")> | |||||
"title": "左表卡片", | |||||
<#else> | |||||
"title": "${param.lCardTitle}", | |||||
</#if> | |||||
"key": "lCardDialog", | |||||
"closeOnClickModal": false | |||||
}, | |||||
"events": {} | |||||
}, | |||||
"graph": { | |||||
"shape": "panel", | |||||
"id": "root_panel", | |||||
"type": "fx-split-panel", | |||||
"props": { | |||||
"horizontal": false, | |||||
"shadow": "never" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-split-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"horizontal": false, | |||||
"scroll": true, | |||||
"backgroundColor": "--color-white" | |||||
}, | |||||
"children": [ | |||||
<#assign dfields = lDialog.fields> | |||||
<#assign col = param.lCardCol> | |||||
<#include "incModel/inc_list_dialog.ftl"/> | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "0" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-divider", | |||||
"props": { | |||||
"label": "", | |||||
"contentPosition": "center", | |||||
"direction": "horizontal" | |||||
} | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "56", | |||||
"paddingRight": 10, | |||||
"alignY": "center" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-button-group", | |||||
"props": { | |||||
"menus": [], | |||||
"textAlign": "right", | |||||
"dataset": "${lDialog.dataset}" | |||||
}, | |||||
"slots": { | |||||
"default": [ | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "保存", | |||||
"leftIcon": "save", | |||||
"type": "success", | |||||
"action": "button:saveCard" | |||||
}, | |||||
"id": "id${newId()}" | |||||
}, | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "关闭", | |||||
"leftIcon": "close", | |||||
"type": "", | |||||
"action": "button:closeDialog" | |||||
}, | |||||
"id": "id${newId()}" | |||||
} | |||||
] | |||||
} | |||||
} | |||||
] | |||||
} | |||||
] | |||||
} | |||||
} | |||||
</#list> | |||||
<#list layout.lList as lQDialog> | |||||
<#assign group = lQDialog > | |||||
<#assign dialogKey = "lQueryDialog"> | |||||
<#assign dialogTitle = "左列表高级筛选"> | |||||
<#if (group.sfilters?size>0)> | |||||
,<#include "incModel/inc_query_sfilters.ftl"/> | |||||
</#if> | |||||
</#list> | |||||
<#list layout.rList as rQDialog> | |||||
<#assign group = rQDialog > | |||||
<#assign dialogKey = "rQueryDialog"> | |||||
<#assign dialogTitle = "右列表高级筛选"> | |||||
<#if (group.sfilters?size>0)> | |||||
,<#include "incModel/inc_query_sfilters.ftl"/> | |||||
</#if> | |||||
</#list> | |||||
], | |||||
"model": [ | |||||
<#list datasets as dataset> | |||||
<#include "incModel/inc_model.ftl"/><#if dataset_has_next>,</#if> | |||||
</#list> | |||||
], | |||||
"option": { | |||||
"widgetRef": [${widgetRef}], | |||||
"vars": [] | |||||
} | |||||
} |
@@ -0,0 +1,468 @@ | |||||
{ | |||||
"version": 6, | |||||
"form": [ | |||||
{ | |||||
"page": { | |||||
"id": "id${newId()}", | |||||
"type": "fx-page", | |||||
"props": { | |||||
"title": "${title}", | |||||
"key": "${newId()}" | |||||
} | |||||
}, | |||||
"graph": { | |||||
"shape": "panel", | |||||
"id": "root_panel", | |||||
"type": "fx-split-panel", | |||||
"props": { | |||||
"shadow": "" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"shape": "panel", | |||||
"id": "root_panel", | |||||
"type": "fx-split-panel", | |||||
"props": { | |||||
"horizontal": true, | |||||
"shadow": "" | |||||
}, | |||||
"children": [ | |||||
<#list layout.lList as assist> | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-split-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"horizontal": false, | |||||
"size": "420" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "56", | |||||
"alignY": "center", | |||||
"paddingLeft": 16, | |||||
"colNum": 2, | |||||
"gridTemplateColumns": "", | |||||
"paddingRight": 16 | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-title", | |||||
"props": { | |||||
"label": "${param.lListTitle}" | |||||
} | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id":"${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "0" | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-divider", | |||||
"props": { | |||||
"label": "", | |||||
"contentPosition": "center", | |||||
"direction": "horizontal" | |||||
} | |||||
} | |||||
] | |||||
}, | |||||
<#if (assist.cfilters?size>0)> | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"alignY": "center", | |||||
"size": "50", | |||||
"gridTemplateColumns": "1fr 50px", | |||||
"paddingLeft": 16, | |||||
"paddingRight": 16 | |||||
}, | |||||
"children": [ | |||||
<#list assist.cfilters as cfilters> | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "${cfilters.editor}", | |||||
"props": { | |||||
"label": "${cfilters.label}", | |||||
"maxlength": 50, | |||||
"placeholder": "请输入${cfilters.label}", | |||||
"labelWidth": 150, | |||||
"affixError": false, | |||||
"hideLabel": true, | |||||
"leftIcon": "", | |||||
"dataset": "${cfilters.dataset}", | |||||
"field": "${cfilters.id}" | |||||
}, | |||||
"events": {} | |||||
}, | |||||
</#list> | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-button-group", | |||||
"props": { | |||||
"menus": [], | |||||
"textAlign": "right", | |||||
"dataset": "${assist.dataset}" | |||||
}, | |||||
"slots": { | |||||
"default": [ | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "查询", | |||||
"leftIcon": "", | |||||
"action": "button:loadList", | |||||
"link": false, | |||||
"type": "primary" | |||||
}, | |||||
"id": "id${newId()}" | |||||
} | |||||
] | |||||
} | |||||
} | |||||
] | |||||
}, | |||||
</#if> | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "", | |||||
"colNum": 0, | |||||
"paddingLeft": 16, | |||||
"paddingRight": 16 | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-table", | |||||
"props": { | |||||
"label": "${param.lListTitle}", | |||||
"border": true, | |||||
"stripe": true, | |||||
"showHeader": false, | |||||
"fit": true, | |||||
"hideOp": false, | |||||
"hideNo": true, | |||||
"dataset": "${assist.dataset}", | |||||
"hidePagination": true, | |||||
"name":"leftTb" | |||||
}, | |||||
"slots": { | |||||
"button": [], | |||||
"default": [ | |||||
<#list assist.fields as field> | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-table-column", | |||||
"props": { | |||||
"field": "${field.id}", | |||||
"label": "${field.label}" | |||||
} | |||||
}<#if field_has_next>,</#if> | |||||
</#list> | |||||
] | |||||
}, | |||||
"events": {}, | |||||
"vars": { | |||||
"$ref": "$ref" | |||||
} | |||||
} | |||||
] | |||||
} | |||||
] | |||||
}, | |||||
</#list> | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "16", | |||||
"backgroundColor": "--color-transparent" | |||||
}, | |||||
"children": [] | |||||
}, | |||||
<#list layout.rList as main> | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-split-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"horizontal": false | |||||
}, | |||||
"children": [ | |||||
<#if (main.cfilters?size>0)> | |||||
{ | |||||
"shape": "panel", | |||||
"id": "form_panel", | |||||
"type": "fx-form-panel", | |||||
"props": { | |||||
"colNum": 3, | |||||
"label": "查询条件", | |||||
"size": "56", | |||||
"paddingLeft": 16, | |||||
"paddingRight": 16, | |||||
"alignY": "center" | |||||
}, | |||||
"children": [ | |||||
<#list main.cfilters as cfilters> | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "${cfilters.editor}", | |||||
"props": { | |||||
"label": "${cfilters.label}", | |||||
"maxlength": 50, | |||||
"placeholder": "请输入${cfilters.label}", | |||||
"labelWidth": 100, | |||||
"affixError": false, | |||||
"hideLabel": true | |||||
}, | |||||
"events": {} | |||||
}, | |||||
</#list> | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-button-group", | |||||
"props": { | |||||
"menus": [], | |||||
"dataset": "${main.dataset}" | |||||
}, | |||||
"slots": { | |||||
"default": [ | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "重置", | |||||
"leftIcon": "clear", | |||||
"action": "button:reset" | |||||
}, | |||||
"id": "id${newId()}" | |||||
}, | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "查询", | |||||
"leftIcon": "search", | |||||
"type": "primary", | |||||
"action": "button:loadList", | |||||
"linkType": "" | |||||
}, | |||||
"id": "id${newId()}" | |||||
} | |||||
<#if (main.sfilters?size>0)> | |||||
,{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "高级筛选", | |||||
"leftIcon": "hamburger-button", | |||||
"action": "button:link", | |||||
"link": true, | |||||
"linkType": "drawer", | |||||
"fxLink": "dialog:rQueryDialog" | |||||
} | |||||
} | |||||
</#if> | |||||
] | |||||
} | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"size": "16", | |||||
"backgroundColor": "--color-transparent" | |||||
}, | |||||
"children": [] | |||||
}, | |||||
</#if> | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"label": "${param.rListTitle}", | |||||
"size": "50", | |||||
"colNum": 2, | |||||
"alignY": "center", | |||||
"paddingLeft": 16, | |||||
"paddingRight": 16 | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-title", | |||||
"props": { | |||||
"label": "${param.rListTitle}" | |||||
} | |||||
}, | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-button-group", | |||||
"props": { | |||||
"menus": [], | |||||
"textAlign": "right", | |||||
"dataset": "${main.dataset}" | |||||
}, | |||||
"slots": { | |||||
"default": [ | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "新增", | |||||
"leftIcon": "plus", | |||||
"type": "primary", | |||||
"action": "button:addCard", | |||||
"link": false, | |||||
"linkType": "curr", | |||||
<#if name?has_content && name?ends_with("List")> | |||||
"fxLink": "bpm.${name?replace("List","Card")}", | |||||
<#else> | |||||
"fxLink": "", | |||||
</#if> | |||||
"fxLink_text": "编辑卡片", | |||||
"preAction": "" | |||||
}, | |||||
"id": "id${newId()}" | |||||
} | |||||
] | |||||
} | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"id": "${newId()}", | |||||
"type": "fx-form-panel", | |||||
"shape": "panel", | |||||
"props": { | |||||
"label": "表格区", | |||||
"colNum": 0, | |||||
"paddingLeft": 16, | |||||
"paddingRight": 16 | |||||
}, | |||||
"children": [ | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-table", | |||||
"props": { | |||||
"label": "表格", | |||||
"border": true, | |||||
"stripe": true, | |||||
"showHeader": true, | |||||
"fit": true, | |||||
"dataset": "${main.dataset}" | |||||
}, | |||||
"slots": { | |||||
"button": [ | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "编辑", | |||||
"type": "primary", | |||||
"leftIcon": "edit", | |||||
"action": "button:editCard", | |||||
"link": false, | |||||
"linkType": "curr", | |||||
<#if name?has_content && name?ends_with("List")> | |||||
"fxLink": "bpm.${name?replace("List","Card")}", | |||||
<#else> | |||||
"fxLink": "", | |||||
</#if> | |||||
"fxLink_text": "编辑卡片" | |||||
}, | |||||
"id": "id${newId()}" | |||||
}, | |||||
{ | |||||
"type": "fx-button", | |||||
"props": { | |||||
"label": "删除", | |||||
"type": "danger", | |||||
"leftIcon": "delete", | |||||
"action": "button:delCard", | |||||
"link": false, | |||||
"text": true, | |||||
"preAction": "" | |||||
}, | |||||
"id": "id${newId()}" | |||||
} | |||||
], | |||||
"default": [ | |||||
<#list main.fields as field> | |||||
{ | |||||
"id": "id${newId()}", | |||||
"type": "fx-table-column", | |||||
"props": { | |||||
"field": "${field.id}", | |||||
"label": "${field.label}" | |||||
} | |||||
}<#if field_has_next>,</#if> | |||||
</#list> | |||||
] | |||||
}, | |||||
"events": {} | |||||
} | |||||
] | |||||
} | |||||
] | |||||
} | |||||
</#list> | |||||
] | |||||
}, | |||||
{ | |||||
"shape": "panel", | |||||
"id": "fx-form-panel", | |||||
"type": "fx-split-panel", | |||||
"props": { | |||||
"shadow": "", | |||||
"size": 24 | |||||
}, | |||||
"children": [] | |||||
} | |||||
] | |||||
} | |||||
} | |||||
<#list layout.lList as lQDialog> | |||||
<#assign group = lQDialog > | |||||
<#assign dialogKey = "lQueryDialog"> | |||||
<#assign dialogTitle = "左列表高级筛选"> | |||||
<#if (group.sfilters?size>0)> | |||||
,<#include "incModel/inc_query_sfilters.ftl"/> | |||||
</#if> | |||||
</#list> | |||||
<#list layout.rList as rQDialog> | |||||
<#assign group = rQDialog > | |||||
<#assign dialogKey = "rQueryDialog"> | |||||
<#assign dialogTitle = "右列表高级筛选"> | |||||
<#if (group.sfilters?size>0)> | |||||
,<#include "incModel/inc_query_sfilters.ftl"/> | |||||
</#if> | |||||
</#list> | |||||
], | |||||
"model": [ | |||||
<#list datasets as dataset> | |||||
<#include "incModel/inc_model.ftl"/><#if dataset_has_next>,</#if> | |||||
</#list> | |||||
], | |||||
"option": { | |||||
"widgetRef": [${widgetRef}], | |||||
"vars": [] | |||||
} | |||||
} |
@@ -347,7 +347,12 @@ public interface SwEnum { | |||||
public static StrEnumBean LC_LC_1 = instance.addEnum("LC_LC_1", "左列表-右列表(含编辑弹窗、左列表可编辑)"); | public static StrEnumBean LC_LC_1 = instance.addEnum("LC_LC_1", "左列表-右列表(含编辑弹窗、左列表可编辑)"); | ||||
public static StrEnumBean LC_LC_2 = instance.addEnum("LC_LC_2", "左列表-右列表(含编辑弹窗、左列表不可编辑)"); | public static StrEnumBean LC_LC_2 = instance.addEnum("LC_LC_2", "左列表-右列表(含编辑弹窗、左列表不可编辑)"); | ||||
public static StrEnumBean EMPTY = instance.addEnum("EMPTY", "自定义模型"); | public static StrEnumBean EMPTY = instance.addEnum("EMPTY", "自定义模型"); | ||||
public static StrEnumBean FLOW_SINGLE = instance.addEnum("FLOW_SINGLE", "普通工作流列表(含编辑卡片)"); | |||||
public static StrEnumBean FLOW_SINGLE = instance.addEnum("FLOW_SINGLE", "普通列表(含编辑卡片、工作流)"); | |||||
public static StrEnumBean FLOW_LC_LT = instance.addEnum("FLOW_LC_LT", "左树-列表(含编辑卡片、工作流)"); | |||||
public static StrEnumBean FLOW_LC_LC_1 = instance.addEnum("FLOW_LC_LC_1", "左列表-右列表(含编辑卡片、工作流、左列表可编辑)"); | |||||
public static StrEnumBean FLOW_LC_LC_2 = instance.addEnum("FLOW_LC_LC_2", "左列表-右列表(含编辑卡片、工作流、左列表不可编辑)"); | |||||
public static StrEnumBean FLOW_LC_MS = instance.addEnum("FLOW_LC_MS", "普通主子列表(含编辑卡片、工作流)"); | |||||
public static StrEnumBean FLOW_LT_MS = instance.addEnum("FLOW_LT_MS", "左树-主子列表(含编辑卡片、工作流)"); | |||||
} | } | ||||
// 权限类型 | // 权限类型 | ||||