Browse Source

<feat>:新增
1、新增支付大类入口的表单插件,处理点击图片后打开相应的新增页面。

wanghaiwu 1 day ago
parent
commit
ea2e697b58

+ 96 - 0
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/plugin/form/PayBigCategoryFormPlugin.java

@@ -0,0 +1,96 @@
+package nckd.jimin.jyyy.fi.plugin.form;
+
+import kd.bos.bill.BillOperationStatus;
+import kd.bos.bill.BillShowParameter;
+import kd.bos.bill.OperationStatus;
+import kd.bos.form.ShowType;
+import kd.bos.form.control.Control;
+import kd.bos.form.control.Image;
+import kd.bos.form.control.events.ItemClickEvent;
+import kd.bos.form.plugin.AbstractFormPlugin;
+import kd.bos.logging.Log;
+import kd.bos.logging.LogFactory;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import java.util.Arrays;
+import java.util.EventObject;
+import java.util.List;
+
+/**
+ * 插件说明:表单插件
+ * 表单标识:支付大类入口(nckd_category)
+ * @author wanghaiwu_kd
+ * @date 2025/04/27
+ */
+public class PayBigCategoryFormPlugin extends AbstractFormPlugin {
+    private static final Log logger = LogFactory.getLog(PayBigCategoryFormPlugin.class);
+    private static final List<String> operatorKeys = Arrays.asList(
+            "nckd_imageap5", "nckd_imageap51"
+    );
+
+    private static final List<String> neetDefaultFilterKeys = Arrays.asList(
+            ""
+    );
+
+    @Override
+    public void registerListener(EventObject e) {
+        super.registerListener(e);
+
+        this.addClickListeners(operatorKeys.toArray(new String[]{}));
+    }
+
+    @Override
+    public void click(EventObject evt) {
+        super.click(evt);
+        Control source = (Control)evt.getSource();
+        String imageKey = source.getKey();
+
+        //图片按钮
+        if(operatorKeys.contains(imageKey)){
+            String formId = getFormId(imageKey);
+            BillShowParameter parameter = new BillShowParameter();
+
+            parameter.setFormId(formId);
+            parameter.setBillStatus(BillOperationStatus.ADDNEW);
+            parameter.setStatus(OperationStatus.ADDNEW);
+
+            if(neetDefaultFilterKeys.contains(imageKey)) {
+                QFilter defaultFilter = getDefaultQFilter(imageKey);
+                parameter.setCustomParam("defaultFilter", defaultFilter);
+            }
+
+            parameter.getOpenStyle().setShowType(ShowType.MainNewTabPage);
+
+            this.getView().showForm(parameter);
+        }
+
+    }
+
+    @Override
+    public void itemClick(ItemClickEvent evt) {
+        super.itemClick(evt);
+    }
+
+    public String getFormId(String openType){
+        String formId = "";
+
+        switch(openType){
+            case "nckd_imageap5":
+                //出差申请单
+                formId = "er_tripreqbill";
+                break;
+            case "nckd_imageap51":
+                //差旅报销单
+                formId = "er_tripreimbursebill";
+                break;
+        }
+
+        return formId;
+    }
+
+    public QFilter getDefaultQFilter(String openType){
+        QFilter qFilter = new QFilter("enbale", QCP.equals, "1");
+
+        return qFilter;
+    }
+}