فهرست منبع

“部门”选择器 选择后,触发 数据模板的“查询” 按钮功能

ZhuJiaHao 2 روز پیش
والد
کامیت
6439ad94c1

+ 28 - 0
src/business/platform/data/components/search-form/index.vue

@@ -247,6 +247,7 @@
           :filter="item.field_options.filter || []"
           :filtrate="true"
           :temp-search="true"
+          @selector-confirm="handleSelectorConfirm"
         />
         <!--自定义对话框-->
         <ibps-custom-dialog
@@ -271,6 +272,7 @@
           :temp-search="true"
           :previous-data-template="previousDataTemplate"
           @close="handleRenderDialogClose"
+          @selector-confirm="handleSelectorConfirm"
         />
         <!-- 关联数据-->
         <ibps-link-data
@@ -457,8 +459,34 @@ export default {
   methods: {
     /**
      * 处理回车
+     * 当在搜索表单中输入框中按回车键时触发查询
+     * 参考全局回车键功能,需要keyboardEnterForsearch配置为true时才启用
      */
     handleEnter() {
+      // 检查是否启用键盘回车查询功能(通过t_ipcc的setting里的内容)
+      // 参考查询按钮回车键功能的实现
+      const keyboardEnterEnabled = this.setting?.system?.keyboardEnterForsearch === true
+      
+      if (!keyboardEnterEnabled) {
+        return // 未启用键盘回车查询功能,直接返回
+      }
+      
+      this.$emit('search')
+    },
+    /**
+     * 处理选择器确认事件
+     * 当选择器选择完成后触发查询
+     * 参考回车键功能,需要keyboardEnterForsearch配置为true时才启用
+     */
+    handleSelectorConfirm() {
+      // 检查是否启用键盘回车查询功能(通过t_ipcc的setting里的内容)
+      // 参考查询按钮回车键功能的实现
+      const keyboardEnterEnabled = this.setting?.system?.keyboardEnterForsearch === true
+      
+      if (!keyboardEnterEnabled) {
+        return // 未启用键盘回车查询功能,直接返回
+      }
+      
       this.$emit('search')
     },
     isArray(value) {

+ 5 - 0
src/business/platform/data/components/search-form/props.js

@@ -37,6 +37,11 @@ export const formProps = {
   },
   previousDataTemplate: {
     type: Object
+  },
+  // 系统配置,用于控制功能开关
+  setting: {
+    type: Object,
+    default: () => ({})
   }
 }
 

+ 4 - 0
src/business/platform/data/templaterender/custom-dialog/index.vue

@@ -529,6 +529,10 @@ export default {
           val = this.getValue()
           this.handleInput(val)
           this.emitChange(val)
+          // 2025-06-09新增:自定义对话框确认后触发selector-confirm事件
+          // 无论值是否变化,只要用户点击了确认按钮,就触发此事件
+          // 用于在搜索表单中触发查询
+          this.$emit('selector-confirm', val, this.selectorValue)
           break
         case 'cleanClose': // 清空关闭
           this.selectorVisible = false

+ 4 - 0
src/business/platform/org/selector/index.vue

@@ -507,6 +507,10 @@ export default {
           this.handleInput()
           val = this.getValue()
           this.emitChangeLinkData(val, type)
+          // 2025-06-09新增:选择器确认后触发selector-confirm事件
+          // 无论值是否变化,只要用户点击了确认按钮,就触发此事件
+          // 用于在搜索表单中触发查询
+          this.$emit('selector-confirm', val, this.selectorValue, type)
           break
       }
     },