{"version":3,"file":"custom-searcher.vue2.mjs","sources":["../../../../../../packages/components/custom-searcher/src/custom-searcher.vue"],"sourcesContent":["<template>\r\n  <a-popover\r\n    v-bind=\"attrs\"\r\n    v-model:open=\"newOpen\"\r\n    :arrow=\"false\"\r\n    trigger=\"click\"\r\n    :placement=\"placement\"\r\n    :overlay-class-name=\"`${bem.b()}`\"\r\n  >\r\n    <a-badge :dot=\"useBadge && activeState\" :offset=\"[-2, 2]\">\r\n      <ll-icon-base-pro\r\n        :class=\"`${bem.e('icon')} ${bem.is(\r\n          newOpen || activeState ? 'active' : '',\r\n        )}`\"\r\n        :show-tip=\"false\"\r\n        :icon-name=\"searchIcon || 'icon-screen'\"\r\n        bg-color=\"var(--color-fill-tertiary)\"\r\n        hover-bg-color=\"var(--color-fill-secondary)\"\r\n        :size=\"size\"\r\n        :label=\"label\"\r\n        :icon-size=\"16\"\r\n      />\r\n    </a-badge>\r\n    <template #content>\r\n      <a-form-item-rest>\r\n        <div :class=\"bem.e('content')\">\r\n          <div\r\n            v-for=\"(item, idx) in searchList\"\r\n            :key=\"idx\"\r\n            :class=\"bem.e('list-item')\"\r\n          >\r\n            <!-- 字段名 -->\r\n            <ll-select\r\n              v-model:value=\"item.key\"\r\n              style=\"width: 150px\"\r\n              placeholder=\"请选择字段\"\r\n              size=\"small\"\r\n              :field-names=\"{\r\n                label: 'title',\r\n                value: 'key',\r\n                options: 'options',\r\n              }\"\r\n              :options=\"\r\n                localList.map((i) => ({\r\n                  ...i,\r\n                  disabled: searchList.some((y) => y.key === i.key),\r\n                }))\r\n              \"\r\n              @select=\"handleField\"\r\n            />\r\n            <!-- 运算符 -->\r\n            <ll-select\r\n              v-model:value=\"item.operator\"\r\n              style=\"width: 150px\"\r\n              :disabled=\"!operatorSelectable\"\r\n              placeholder=\"请选择运算符\"\r\n              :options=\"\r\n                item.key ? [...ops.base, ...ops.text, ...ops.compare] : []\r\n              \"\r\n              size=\"small\"\r\n              @select=\"(value) => handleOperator(value, item)\"\r\n            />\r\n\r\n            <!-- 值 -->\r\n            <template\r\n              v-if=\"\r\n                item.operator !== 'isEmpty' &&\r\n                item.operator !== 'isNotEmpty' &&\r\n                item.operator !== 'isNull' &&\r\n                item.operator !== 'isNotNull' &&\r\n                item.operator !== 'isNullOrEmpty'\r\n              \"\r\n            >\r\n              <ll-input\r\n                v-if=\"!item.key\"\r\n                v-model:value=\"item.value\"\r\n                placeholder=\"请输入\"\r\n                :style=\"{ minWidth: '250px', flex: 1 }\"\r\n                size=\"small\"\r\n              />\r\n              <component\r\n                :is=\"configMap[item.key].type\"\r\n                v-else\r\n                v-bind=\"\r\n                  Object.fromEntries(\r\n                    Object.entries(configMap[item.key].props).filter(\r\n                      ([key]) => !key.toLowerCase().includes('formcreate'),\r\n                    ),\r\n                  )\r\n                \"\r\n                v-model:value=\"item.value\"\r\n                :style=\"{ minWidth: '250px', flex: 1 }\"\r\n                size=\"small\"\r\n              />\r\n            </template>\r\n            <div v-else :style=\"{ minWidth: '250px', flex: 1 }\"></div>\r\n\r\n            <!-- 移除图标 -->\r\n            <ll-icon\r\n              v-if=\"searchList.length > 1\"\r\n              icon-name=\"icon-remove\"\r\n              :class=\"bem.e('remove-icon')\"\r\n              :size=\"14\"\r\n              @click=\"handleRemove(idx)\"\r\n            />\r\n          </div>\r\n        </div>\r\n\r\n        <div :class=\"bem.e('operate')\">\r\n          <div :class=\"bem.e('operate-btn')\">\r\n            <ll-button\r\n              :disabled=\"disabledAdd\"\r\n              type=\"text\"\r\n              size=\"small\"\r\n              :icon-space=\"8\"\r\n              @click=\"handleAdd\"\r\n            >\r\n              <ll-icon icon-name=\"icon-list-add\" />\r\n              {{ addSearchText || '添加筛选条件' }}\r\n            </ll-button>\r\n\r\n            <ll-button\r\n              v-if=\"useLocalStorage && localKey\"\r\n              :disabled=\"!searchList.some((item) => item.key)\"\r\n              :class=\"bem.e('operate-btn')\"\r\n              type=\"text\"\r\n              size=\"small\"\r\n              :icon-space=\"8\"\r\n              @click=\"nameOpen = true\"\r\n            >\r\n              <ll-icon icon-name=\"icon-add\" />\r\n              {{ saveSchemeText || '保存方案' }}\r\n            </ll-button>\r\n          </div>\r\n\r\n          <!-- 操作区插槽 -->\r\n          <div :class=\"bem.e('operate-slot')\">\r\n            <slot name=\"operate\" />\r\n          </div>\r\n        </div>\r\n\r\n        <!-- 本地方案展示区 -->\r\n        <div\r\n          v-if=\"useLocalStorage && localKey && localScheme.length > 0\"\r\n          :class=\"bem.e('local-scheme')\"\r\n        >\r\n          <ll-tag\r\n            v-for=\"(item, idx) in localScheme\"\r\n            :key=\"idx\"\r\n            shape=\"round\"\r\n            @click=\"useScheme(idx)\"\r\n          >\r\n            {{ item.name }}\r\n            <ll-icon icon-name=\"icon-close2\" @click.stop=\"clearScheme(idx)\" />\r\n          </ll-tag>\r\n        </div>\r\n      </a-form-item-rest>\r\n    </template>\r\n  </a-popover>\r\n  <scheme-name\r\n    v-if=\"nameOpen\"\r\n    v-model:open=\"nameOpen\"\r\n    @cancel=\"handleCancel\"\r\n    @ok=\"handleOk\"\r\n  />\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { createNamespace, getRandomCode } from '@ll-plus/utils'\r\nimport { cloneDeep } from 'lodash-es'\r\nimport {\r\n  computed,\r\n  onMounted,\r\n  onUnmounted,\r\n  reactive,\r\n  ref,\r\n  useAttrs,\r\n  watch,\r\n} from 'vue'\r\nimport { ops } from './config'\r\nimport { customSearcherFieldItem, customSearcherProps } from './custom-searcher'\r\n\r\nimport SchemeName from './scheme-name.vue'\r\n\r\ndefineOptions({ name: 'LlCustomSearcher' })\r\n\r\nconst props = defineProps(customSearcherProps)\r\nconst emits = defineEmits(['update:open', 'field-select'])\r\n\r\nconst bem = createNamespace('custom-searcher')\r\n\r\nconst attrs = useAttrs()\r\n\r\nconst searchList = reactive([\r\n  { key: null, operator: null, value: undefined },\r\n] as any)\r\n\r\nconst localList = computed(() => [...props.fieldList])\r\nconst storageVersion = ref(0)\r\nconst nameOpen = ref(false)\r\n\r\n// 本地存储的方案\r\nconst localScheme = computed({\r\n  get: () => {\r\n    storageVersion.value // 手动触发响应式\r\n    if (props.useLocalStorage && props.localKey) {\r\n      try {\r\n        const item = localStorage.getItem(props.localKey)\r\n        return item ? JSON.parse(item) : [] // 确保返回数组\r\n      } catch {\r\n        return [] // 解析失败时返回默认值\r\n      }\r\n    } else {\r\n      return []\r\n    }\r\n  },\r\n  set: (value: any) => {\r\n    storageVersion.value // 手动触发响应式\r\n    if (props.useLocalStorage && props.localKey) {\r\n      try {\r\n        return localStorage.setItem(props.localKey, JSON.stringify(value))\r\n      } catch (error) {\r\n        return console.error('保存到本地存储失败:', error)\r\n      }\r\n    }\r\n  },\r\n})\r\n\r\nconst newOpen = computed({\r\n  get() {\r\n    return nameOpen.value || props.open\r\n  },\r\n  set(o: boolean) {\r\n    if (!nameOpen.value) {\r\n      emits('update:open', o)\r\n    }\r\n  },\r\n})\r\n\r\n// 禁用新增\r\nconst disabledAdd = computed(() => {\r\n  return (\r\n    localList.value.length === searchList.length ||\r\n    (props.maxSearchCount > 0 && props.maxSearchCount <= searchList.length)\r\n  )\r\n})\r\n\r\n// 运算符映射\r\n// const operatorConfigMap = computed(() => {\r\n//   const map = {} // 创建一个空对象来存映射关系\r\n\r\n//   // 遍历所有筛选字段(localList)\r\n//   localList.value.forEach((fieldConfig) => {\r\n//     map[fieldConfig.key] = typeMapOperator[fieldConfig.dataType] || []\r\n//   })\r\n\r\n//   return map // 返回完整的映射表\r\n// })\r\n\r\n// 配置映射\r\nconst configMap = computed(() => {\r\n  const map = {} // 创建一个空对象来存映射关系\r\n\r\n  // 遍历所有筛选字段(localList)\r\n  localList.value.forEach((fieldConfig) => {\r\n    map[fieldConfig.key] = fieldConfig\r\n  })\r\n\r\n  return map as any // 返回完整的映射表\r\n})\r\n\r\n// 新增\r\nconst handleAdd = () => {\r\n  searchList.push({ key: null, operator: null, value: undefined })\r\n}\r\n\r\nconst handleCancel = () => {\r\n  setTimeout(() => {\r\n    nameOpen.value = false\r\n  }, 100)\r\n}\r\n// 获取方案名称\r\nconst handleOk = (name: string) => {\r\n  setTimeout(() => {\r\n    nameOpen.value = false\r\n  }, 100)\r\n  localScheme.value = [\r\n    ...localScheme.value,\r\n    {\r\n      key: getRandomCode(),\r\n      name: name,\r\n      value: searchList.filter((item) => item.key),\r\n    },\r\n  ]\r\n  storageVersion.value++\r\n}\r\n\r\n// 使用方案\r\nconst useScheme = (idx: number) => {\r\n  searchList.length = 0\r\n  searchList.push(...cloneDeep(localScheme.value[idx].value))\r\n\r\n  filterSearchList()\r\n}\r\n\r\n// 移除方案\r\nconst clearScheme = (idx: number) => {\r\n  const copyArr = cloneDeep(localScheme.value)\r\n\r\n  copyArr.splice(idx, 1)\r\n  localScheme.value = [...copyArr]\r\n  storageVersion.value++\r\n}\r\n\r\n// 移除\r\nconst handleRemove = (idx: number) => {\r\n  searchList.splice(idx, 1)\r\n}\r\n\r\n// 切换字段\r\nconst handleField = (value: string, option: customSearcherFieldItem) => {\r\n  const target = searchList.find((item) => item.key === value)\r\n\r\n  if (target) {\r\n    if (!props.operatorSelectable) {\r\n      target.operator = option.conditionType || null\r\n    }\r\n\r\n    if (option?.props?.value) {\r\n      target.value = option.props.value\r\n    } else {\r\n      target.value = undefined\r\n    }\r\n  }\r\n\r\n  emits('field-select', value, option)\r\n}\r\n\r\n// 切换运算符\r\nconst handleOperator = (value: string, item: any) => {\r\n  if (\r\n    item.operator === 'isEmpty' ||\r\n    item.operator === 'isNotEmpty' ||\r\n    item.operator === 'isNull' ||\r\n    item.operator === 'isNotNull' ||\r\n    item.operator === 'isNullOrEmpty'\r\n  ) {\r\n    item.value = undefined\r\n  }\r\n}\r\n\r\n// 获取当前查询值\r\nconst getValue = () => {\r\n  return searchList\r\n}\r\n\r\n// 清除查询字段\r\nconst clearValue = (range: 'all' | 'field', fields?: string[]) => {\r\n  if (range === 'field') {\r\n    if (fields && fields?.length > 0) {\r\n      for (let i = searchList.length - 1; i >= 0; i--) {\r\n        if (fields.includes(searchList[i].key)) {\r\n          searchList.splice(i, 1)\r\n        }\r\n      }\r\n    }\r\n  } else {\r\n    searchList.length = 0\r\n  }\r\n\r\n  if (searchList.length === 0) {\r\n    searchList.push({ key: null, operator: null, value: undefined })\r\n  }\r\n}\r\n\r\n// 修改查询值\r\nconst setValue = (config: Record<string, Record<string, any>>) => {\r\n  Object.entries(config).forEach(([key, updates]) => {\r\n    const targetItem = searchList.find((item: any) => item.key === key)\r\n    if (targetItem && updates) {\r\n      Object.assign(targetItem, updates)\r\n    }\r\n  })\r\n}\r\n\r\n// 调整组件配置\r\nconst handleConfig = (config: Record<string, Record<string, any>>) => {\r\n  Object.entries(config).forEach(([key, updates]) => {\r\n    const targetObj = localList.value.find((i: any) => i.key === key) as any\r\n    if (targetObj && updates) {\r\n      Object.assign(targetObj.props, updates)\r\n    }\r\n  })\r\n}\r\n\r\n// 过滤多余查询条件（不存在字段列表时）\r\nconst filterSearchList = () => {\r\n  // 提取 fieldList 中所有有效的 key 值\r\n  const validFields = localList.value.map((item) => item.key).filter(Boolean)\r\n\r\n  // 从后往前遍历，避免删除元素时索引错乱\r\n  for (let i = searchList.length - 1; i >= 0; i--) {\r\n    // 如果当前项的 key 不在有效字段列表中，则删除\r\n    if (!validFields.includes(searchList[i].key && searchList[i].key)) {\r\n      searchList.splice(i, 1)\r\n    }\r\n  }\r\n  if (searchList.length === 0) {\r\n    searchList.push({ key: null, operator: null, value: undefined })\r\n  }\r\n}\r\n\r\nwatch(() => localList.value, filterSearchList, { deep: true })\r\n\r\nwatch(\r\n  () => props.operatorSelectable,\r\n  () => {\r\n    searchList.length = 0\r\n    searchList.push({ key: null, operator: null, value: undefined })\r\n  },\r\n)\r\n\r\ndefineExpose({ getValue, clearValue, setValue, handleConfig })\r\n\r\nonMounted(() => {\r\n  nameOpen.value = false\r\n})\r\n// 组件卸载时执行\r\nonUnmounted(() => {\r\n  if (props.localKey && localScheme.value.length === 0) {\r\n    localStorage.removeItem(props.localKey)\r\n  }\r\n})\r\n</script>\r\n"],"names":["_createVNode","_mergeProps","_unref","placement","_createElementVNode","_normalizeClass","_openBlock","_createElementBlock","_Fragment","_renderList","_createCommentVNode","operatorSelectable","_createBlock","_resolveDynamicComponent","_createTextVNode","addSearchText","useLocalStorage","localKey","saveSchemeText","_renderSlot","_withModifiers","useBadge","activeState","searchIcon","size","label","SchemeName"],"mappings":"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"}