{"version":3,"file":"ApiSelect2.mjs","sources":["../../../../../../../../packages/components/form/src/components/ApiSelect.vue"],"sourcesContent":["<template>\n  <Select\n    v-model:value=\"state\"\n    :disabled=\"disabled\"\n    :placeholder=\"placeholder\"\n    :options=\"selectState.allList\"\n    :mode=\"mode\"\n    :filter-option=\"filterHandle\"\n    show-search\n    @change=\"handleChange\"\n  >\n    <template v-for=\"item in Object.keys($slots)\" #[item]=\"data\">\n      <slot :name=\"item\" v-bind=\"data || {}\" />\n    </template>\n    <template v-if=\"loading\" #suffixIcon>\n      <LoadingOutlined spin />\n    </template>\n    <template v-if=\"loading\" #notFoundContent>\n      <span>\n        <LoadingOutlined spin class=\"mr-1\" />\n        {{ tavI18n('Tav.common.loadingText') }}\n      </span>\n    </template>\n  </Select>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, nextTick, reactive, ref, unref, watch } from 'vue'\nimport { Select } from 'ant-design-vue'\nimport { LoadingOutlined } from '@ant-design/icons-vue'\nimport { useRuleFormItem } from '@tav-ui/hooks/component/useFormItem'\nimport { useAttrs } from '@tav-ui/hooks/core/useAttrs'\nimport { isFunction } from '@tav-ui/utils/is'\nimport { propTypes } from '@tav-ui/utils/propTypes'\nimport { tavI18n } from '@tav-ui/locales'\nimport type { PropType } from 'vue'\ntype OptionsItem = { label: string; value: string; disabled?: boolean }\ntype TypeItems = 'multiple' | 'tags' | 'SECRET_COMBOBOX_MODE_DO_NOT_USE' | undefined\ntype Recordable = Record<string, any>\nexport default defineComponent({\n  name: 'TaApiSelect',\n  components: {\n    Select,\n    LoadingOutlined,\n  },\n  inheritAttrs: true,\n  props: {\n    value: [Array, Object, String, Number],\n    numberToString: propTypes.bool,\n    api: {\n      type: Function as PropType<(arg?: Recordable) => Promise<any>>,\n      default: null,\n    },\n    placeholder: {\n      type: String,\n      default: '',\n    },\n    // api params\n    params: {\n      type: Object as PropType<Recordable>,\n      default: () => ({}),\n    },\n    // // 是否开启远程搜索\n    // remote: {\n    //   type: Boolean,\n    //   default: false\n    // },\n    // 搜索的key\n    showSearchKey: {\n      type: String,\n      default: 'searchValue',\n    },\n    // 是否允许自定义输入\n    custom: {\n      type: Boolean,\n      default: false,\n    },\n    mode: {\n      type: String as PropType<TypeItems>,\n      default: undefined,\n    },\n    disabled: {\n      type: Boolean,\n      default: false,\n    },\n    resultField: propTypes.string.def(''),\n    labelField: propTypes.string.def('name'),\n    valueField: propTypes.string.def('id'),\n  },\n  emits: ['options-change', 'change'],\n  setup(props, { emit }) {\n    const selectState = reactive({\n      searchValue: '',\n      allList: [] as OptionsItem[],\n    })\n    const loading = ref(false)\n    const isFirstLoad = ref(true)\n    const emitData = ref<any[]>([])\n    const attrs = useAttrs()\n    // Embedded in the form, just use the hook binding to perform form verification\n    // const [state] = useRuleFormItem(props, 'value', 'change', emitData)\n    const [state] = useRuleFormItem(props, 'value', 'change', emitData)\n    watch(\n      () => props.params,\n      () => {\n        console.log('apiSelect params改变')\n        !unref(isFirstLoad) && fetch()\n      },\n      { deep: true }\n    )\n    // 发请求\n    async function fetch() {\n      const api = props.api\n      if (!api || !isFunction(api)) return\n      selectState.allList = []\n      try {\n        loading.value = true\n        const params = { ...props.params }\n        params[props.showSearchKey] = selectState.searchValue\n        const res = await api({ ...params })\n        const data: any[] = Array.isArray(res.data) ? res.data : res.data.result\n        let list: OptionsItem[] = []\n        data.forEach((v) => {\n          list.push({\n            label: v[props.labelField],\n            value: v[props.valueField],\n          })\n        })\n        // 允许自定义就给list最前面插入当前插入的数据\n        if (props.custom && selectState.searchValue != '') {\n          list = [{ label: selectState.searchValue, value: '0' }, ...list]\n        }\n        selectState.allList = list\n        nextTick(() => {\n          emitChange()\n        })\n      } catch (error) {\n      } finally {\n        loading.value = false\n      }\n    }\n\n    function emitChange() {\n      emit('options-change', unref(selectState.allList))\n    }\n\n    function handleChange(_, ...args) {\n      emitData.value = args\n      emit('change', state.value, ...args)\n    }\n    const filterHandle = (keyword: string, item: OptionsItem) => {\n      return item.label.indexOf(keyword) > -1\n    }\n    const pageInit = () => {\n      fetch()\n    }\n    pageInit()\n    return {\n      state: state as unknown as string,\n      filterHandle,\n      tavI18n,\n      attrs,\n      selectState,\n      loading,\n      handleChange,\n    }\n  },\n})\n</script>\n"],"names":["_resolveComponent","_createSlots","_renderList","_withCtx","_normalizeProps","_guardReactiveProps","_createVNode","_createTextVNode","_toDisplayString"],"mappings":"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"}