Переглянути джерело

接口选择器新增事件配置功能

宿命的风 4 місяців тому
батько
коміт
aa197a6fd6

+ 19 - 1
src/components/FormCreate/src/components/useApiSelect.tsx

@@ -69,11 +69,24 @@ export const useApiSelect = (option: ApiSelectProps) => {
         if (isEmpty(props.url)) {
           return
         }
+
         switch (props.method) {
           case 'GET':
             let url: string = props.url
             if (props.remote) {
-              url = `${url}?${props.remoteField}=${queryParam.value}`
+              if(queryParam.value!=undefined)
+              {
+                if(checkUrl(url))
+                {
+                  url = `${url}&${props.remoteField}=${queryParam.value}`
+                }else
+                {
+                  url = `${url}?${props.remoteField}=${queryParam.value}`
+                }
+              }else
+              {
+                url = `${url}`
+              }
             }
             parseOptions(await request.get({ url: url }))
             break
@@ -87,6 +100,11 @@ export const useApiSelect = (option: ApiSelectProps) => {
         }
       }
 
+      function checkUrl(url)
+      {
+          return url.includes('?')
+      }
+
       function parseOptions(data: any) {
         //  情况一:如果有自定义解析函数优先使用自定义解析
         if (!isEmpty(props.parseFunc)) {

+ 1 - 0
src/components/FormCreate/src/config/useSelectRule.ts

@@ -17,6 +17,7 @@ export const useSelectRule = (option: SelectRuleOption) => {
     icon: option.icon,
     label,
     name,
+    event: option.event,
     rule() {
       return {
         type: name,

+ 2 - 1
src/components/FormCreate/src/type/index.ts

@@ -46,5 +46,6 @@ export interface SelectRuleOption {
   label: string // label 名称
   name: string // 组件名称
   icon: string // 组件图标
-  props?: any[] // 组件规则
+  props?: any[], // 组件规则
+  event?: any[] // 事件
 }

+ 2 - 1
src/components/FormCreate/src/useFormCreateDesigner.ts

@@ -63,7 +63,8 @@ export const useFormCreateDesigner = async (designer: Ref) => {
     name: 'ApiSelect',
     label: '接口选择器',
     icon: 'icon-server',
-    props: [...apiSelectRule]
+    props: [...apiSelectRule],
+    event:['click','change','visibleChange','clear','blur','focus']
   })
 
   /**