<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # CAP4無流程表單應用綁定自定義按鈕開發文檔 # ---------- ## 概要說明 ## 自V7.1版本開始,CAP4無流程表單應用綁定設置可以支持自定義按鈕(*以下簡稱按鈕*),客開伙伴可以用此通路在CAP4無流程數據列表頁面開發一些想要的功能。 總體來說,應用綁定自定義按鈕開發模式和表單編輯器中的自定義控件類似,是以插件或者組件的形式融入產品,插件或者組件開發規范請見[http://open.seeyon.com/book/ctp/sdk/ctpbackendspec.html#插件化](http://open.seeyon.com/book/ctp/sdk/ctpbackendspec.html#插件化) ## 應用綁定自定義按鈕代碼目錄結構說明 ## 開發按鈕第一步自然是創建項目,創建項目之后目錄結構可以參照以下示例創建各目錄(以下目錄結構是一個自定義按鈕的示例): ─seeyon ..├─apps_res ..│..└─cap ..│......└─customCtrlResources ..│..........└─newFormDataBtnResources ..│..............├─css ..│..............│......setTargetFormInfo.css ..│..............│ ..│..............├─html ..│..............│......setTargetFormInfo.html ..│..............│ ..│..............├─images ..│..............│......dash-arrow.png ..│..............│ ..│..............└─js ..│......................customBtn8714694276131171133.common.js ..│......................customBtn8714694276131171133.umd.js ..│......................customBtn8714694276131171133.umd.min.js ..│......................setTargetFormInfo.js ..│ ..└─WEB-INF ......├─cfgHome ......│..└─component ......│......└─newFormDataBtn ......│..........│..pluginCfg.xml ......│..........│ ......│..........├─i18n ......│..........│......newFormDataBtn_en.properties ......│..........│......newFormDataBtn_zh_CN.properties ......│..........│......newFormDataBtn_zh_TW.properties ......│..........│ ......│..........└─spring ......│..................spring-newformdatabtn-manager.xml ......│ ......├─classes ......│..└─com ......│......└─seeyon ......│..........└─cap4 ......│..............└─form ......│..................└─bean ......│......................└─button ......│..............................NewFormDataBtn.class ......│ ......└─jsp ## 后端開發說明 ## 要實現一個自定義按鈕,需要寫一個java類繼承com.seeyon.cap4.form.bean.button.CommonBtn,并且實現/重寫其中的接口,例如: package com.seeyon.cap4.form.bean.button; import com.seeyon.cap4.form.bean.FormBean; import com.seeyon.cap4.form.bean.FormSaveAsBean; import com.seeyon.cap4.form.modules.importandexport.BusinessDataBean; import com.seeyon.cap4.form.util.Enums; import com.seeyon.ctp.common.i18n.ResourceUtil; import com.seeyon.ctp.util.Strings; import com.seeyon.ctp.util.json.JSONUtil; import java.util.HashMap; import java.util.Map; /** * Created by weijh on 2018-12-26. * 應用綁定新建按鈕實現類 */ public class NewFormDataBtn extends CommonBtn { @Override public void init() { this.setPluginId("newFormDataBtn");//設置插件或者組件id,和pluginCfg.xml中的id一致 this.setIcon("cap-icon-custom-button"); BtnParamDefinition targetFormInfoParam = new BtnParamDefinition(); targetFormInfoParam.setDialogUrl("apps_res/cap/customCtrlResources/newFormDataBtnResources/html/setTargetFormInfo.html"); targetFormInfoParam.setDisplay("com.cap.btn.newFormDataBtn.param1.display"); targetFormInfoParam.setName("targetFormInfo"); targetFormInfoParam.setParamType(Enums.BtnParamType.button); targetFormInfoParam.setDialogWidth("640"); targetFormInfoParam.setDialogHeight("415"); addDefinition(targetFormInfoParam); } @Override public String getKey() { return "8714694276131171133";//給按鈕設置一個key,可以隨便取,只是不要和已有按鈕沖突 } @Override public String getNameSpace() { return "customBtn" + this.getKey(); } @Override public String getText() { return ResourceUtil.getString("com.cap.btn.newFormDataBtn.text");//設置按鈕名稱 } /* /** * 獲取PC端自定義控件運行態資源注入信息 * jsUri:定義PC端表單運行態加載第三方JavaScript的路徑 * cssUri:定義PC端表單運行態加載第三方CSS的路徑 * initMethod:定義PC端表單運行態第三方js入口方法名稱 * * @return */ @Override public String getPCInjectionInfo() { return "{\"path\":\"apps_res/cap/customCtrlResources/newFormDataBtnResources/\",\"jsUri\":\"js/" + this.getNameSpace() + ".umd.min.js\",\"initMethod\":\"init\",\"nameSpace\":\"" + this.getNameSpace() + "\"}"; } @Override public String getMBInjectionInfo() { return null; } /** * 導出的擴展接口,應用綁定自定義按鈕用,有需要的重寫該方法 * * @param formBean 當前表單 * @param businessDataBean 導出中間對象,如果有附件,可以放到對象中的unifiedExportAttachment中 * @param resultMap 按鈕json */ @SuppressWarnings("unchecked") @Override public void getJson4Export(FormBean formBean, String customParam, BusinessDataBean businessDataBean, Map<String, Object> resultMap) { if (Strings.isNotEmpty(customParam)) { Map<String, Object> customParamMap = (Map<String, Object>) JSONUtil.parseJSONString(customParam); if(customParamMap.size() > 0){ resultMap.putAll(customParamMap); Map<String, Object> targetFormInfo = (Map<String, Object>) customParamMap.get("targetFormInfo"); Map<String, Object> targetFormMap = (Map<String, Object>) targetFormInfo.get("targetForm"); String formId = (String) targetFormMap.get("formId"); targetFormMap.put("formId", businessDataBean.getRealId4Export(Long.valueOf(formId)).toString()); String bindId = (String) targetFormMap.get("bindId"); targetFormMap.put("bindId", businessDataBean.getRealId4Export(Long.valueOf(bindId)).toString()); } } } /** * 在業務導入完之后,應用綁定自定義按鈕的處理接口 * @param formBean * @param customParam * @param businessDataBean * @param btnInfoMap */ @Override public void importInfoAfterBizImport(FormBean formBean, String customParam, BusinessDataBean businessDataBean, Map<String, Object> btnInfoMap) { if (Strings.isNotEmpty(customParam)) { Map<String, Object> customParamMap = (Map<String, Object>) JSONUtil.parseJSONString(customParam); btnInfoMap.putAll(customParamMap); Map<String, Object> targetFormInfo = (Map<String, Object>) customParamMap.get("targetFormInfo"); Map<String, Object> targetFormMap = (Map<String, Object>) targetFormInfo.get("targetForm"); int targetType = Integer.parseInt(String.valueOf(targetFormMap.get("targetType"))); if (targetType == 0) { //業務內表單新建 String formId = (String) targetFormMap.get("formId"); targetFormMap.put("formId", businessDataBean.getNewIdByOldId(Long.valueOf(formId)).toString()); String bindId = (String) targetFormMap.get("bindId"); targetFormMap.put("bindId", businessDataBean.getNewIdByOldId(Long.valueOf(bindId)).toString()); } else { btnInfoMap.putAll(new HashMap<String, Object>()); } } else { btnInfoMap.putAll(new HashMap<String, Object>()); } } /** * 表單另存為應用綁定自定義按鈕另存為接口,各個應用綁定自定義按鈕需要處理自己的邏輯 * @param formSaveAsBean * @param formBean * @param btnInfoMap */ public void otherSave(FormSaveAsBean formSaveAsBean, FormBean formBean, Map<String, Object> btnInfoMap){ Long saveToBizId = formSaveAsBean.getSaveToBizId(); Long oldBizId = formSaveAsBean.getOldBizId(); //另存為選擇為空說明是存為單表 if(null == saveToBizId){ //原來是應用中的表,清空 if(null != oldBizId){ btnInfoMap.put("customParam",""); } }else{//存為應用中的表單 if(null == oldBizId){//原來是單表 btnInfoMap.put("customParam",""); }else{//原來是應用中的表單 if(!saveToBizId.equals(oldBizId)){//跨應用另存,清空 btnInfoMap.put("customParam",""); } } } } }
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看