{"version":3,"file":"select-group.vue2.mjs","sources":["../../../../../../packages/components/select-group/src/select-group.vue"],"sourcesContent":["<template>\r\n  <div :class=\"bem.b()\">\r\n    <div :class=\"bemContainer.b()\">\r\n      <a-input-group compact>\r\n        <!-- 左侧select -->\r\n        <a-select\r\n          v-model:value=\"selectType\"\r\n          class=\"select-group-left-select-container\"\r\n          :style=\"{ minWidth: leftSelectWidth }\"\r\n          @change=\"handleSelectChange\"\r\n        >\r\n          <a-select-option\r\n            v-for=\"item in newList\"\r\n            :key=\"item.name\"\r\n            :value=\"item.value\"\r\n            :item=\"item\"\r\n          >\r\n            {{ item.name }}\r\n          </a-select-option>\r\n        </a-select>\r\n        <!-- 右侧组合表单 -->\r\n        <!-- input输入框 -->\r\n        <template\r\n          v-if=\"\r\n            !selectItem?.showFormType || selectItem?.showFormType === 'input'\r\n          \"\r\n        >\r\n          <a-input\r\n            v-model:value=\"value\"\r\n            :class=\"bem.e('right-input')\"\r\n            :placeholder=\"selectItem?.placeholder\"\r\n            allow-clear\r\n            @press-enter=\"handleChange\"\r\n          >\r\n            <template #suffix>\r\n              <ll-icon :icon-name=\"`icon-search`\" @click=\"handleChange\" />\r\n            </template>\r\n          </a-input>\r\n        </template>\r\n        <!-- select下拉框 -->\r\n        <template v-else-if=\"selectItem?.showFormType === 'select'\">\r\n          <a-select\r\n            v-bind=\"selectItem\"\r\n            v-model:value=\"value\"\r\n            :class=\"bem.e('right-select')\"\r\n            popup-class-name=\"select-group-right-select\"\r\n            @change=\"handleChange\"\r\n          >\r\n            <a-select-option\r\n              v-for=\"item in selectItem.list\"\r\n              :key=\"item.value\"\r\n              :value=\"item.value\"\r\n            >\r\n              {{ item.name }}\r\n            </a-select-option>\r\n          </a-select>\r\n        </template>\r\n        <!-- 日期选择 -->\r\n        <template v-else-if=\"selectItem?.showFormType === 'range-picker'\">\r\n          <a-range-picker\r\n            v-model:value=\"value\"\r\n            :class=\"bem.e('right-range-picker')\"\r\n            @change=\"handleChange\"\r\n          />\r\n        </template>\r\n        <!-- 树选择 -->\r\n        <template v-else-if=\"selectItem?.showFormType === 'treeSelect'\">\r\n          <a-tree-select\r\n            v-model:value=\"value\"\r\n            :class=\"bem.e('right-tree-select')\"\r\n            :field-names=\"selectItem.fieldNames\"\r\n            :placeholder=\"selectItem?.placeholder\"\r\n            :tree-data=\"selectItem.list\"\r\n            @select=\"handleChange\"\r\n          ></a-tree-select>\r\n        </template>\r\n        <template v-else>\r\n          <slot name=\"extra\" v-bind=\"selectItem\" />\r\n        </template>\r\n      </a-input-group>\r\n    </div>\r\n  </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { has } from 'lodash-es'\r\nimport { computed, ref, watch } from 'vue'\r\n\r\nimport { createNamespace, hasValue } from '@ll-plus/utils'\r\nimport {\r\n  LEFT_SELECT_MIN_WIDTH,\r\n  selectGroupEmits,\r\n  selectGroupProps,\r\n} from './select-group'\r\n\r\nimport type { SelectGroupData } from './select-group'\r\n\r\n// 1.defineOptions\r\ndefineOptions({ name: 'LlSelectGroup' })\r\n\r\n// 1.props/emits\r\nconst props = defineProps(selectGroupProps)\r\nconst emits = defineEmits(selectGroupEmits)\r\n\r\n// 3.ref/const\r\nconst selectType = ref() // selectinput组合select的值\r\nconst value = ref<any>('') // 左边的value\r\n// const selectItem = ref<SelectGroupData>() // 选中表单的类型\r\nconst newList = ref<SelectGroupData[]>([]) // 处理后的数据，比如select的类型前面加个全部\r\nconst bem = createNamespace('select-group')\r\nconst bemContainer = createNamespace('select-group-container')\r\n\r\nconst selectItem = computed(() => {\r\n  return newList.value.find((e) => e.value === selectType.value)\r\n})\r\n\r\n// 动态计算左边文字最长的宽度\r\nconst leftSelectWidth = computed(() => {\r\n  const names = newList.value.map((item) => item.name.length)\r\n  const maxNameLength = Math.max(...names)\r\n  if (maxNameLength <= 3) {\r\n    return LEFT_SELECT_MIN_WIDTH + 'px'\r\n  }\r\n  const width = LEFT_SELECT_MIN_WIDTH + (maxNameLength - 3) * 14\r\n  return width + 'px'\r\n})\r\n\r\n// 4.methods\r\n// 第一个select的change\r\nconst handleSelectChange = (_: string, options: any) => {\r\n  const item = options.item\r\n  const formType = item.showFormType\r\n  // 如果\r\n  if (!formType || formType === 'input' || formType === 'treeSelect') {\r\n    value.value = ''\r\n  } else if (formType === 'range-picker') {\r\n    value.value = [undefined, undefined]\r\n  } else if (formType === 'select') {\r\n    value.value = item.noFirstAddAll ? undefined : -1\r\n  }\r\n  // selectItem.value = options.item\r\n  selectType.value = _\r\n\r\n  emits('onSelectChange', _, item)\r\n}\r\n// 整合处理change\r\nconst handleChange = () => {\r\n  // 过滤-1的下拉全部\r\n  emits(\r\n    'change',\r\n    selectItem.value?.value as string,\r\n    value.value === -1 ? null : value.value\r\n  )\r\n}\r\nconst setSelectGroup = (selectValue: string, currentValue: any) => {\r\n  selectType.value = selectValue\r\n  value.value = currentValue\r\n}\r\n\r\n// 5.watch\r\n// 已第一个为标准\r\nwatch(\r\n  () => props.data as SelectGroupData[],\r\n  (newData) => {\r\n    let list: SelectGroupData[] = []\r\n    if (newData && newData.length) {\r\n      list = newData.map((item) => {\r\n        const newItem = { ...item }\r\n        if (newItem.showFormType === 'select') {\r\n          if (has(newItem, 'options') && !newItem.noFirstAddAll) {\r\n            newItem.options = [\r\n              {\r\n                label: '全部',\r\n                value: -1,\r\n              },\r\n              ...newItem.options!,\r\n            ]\r\n          } else if (has(newItem, 'list') && !newItem.noFirstAddAll) {\r\n            newItem.list = [\r\n              {\r\n                name: '全部',\r\n                value: -1,\r\n              },\r\n              ...newItem.list!,\r\n            ]\r\n          }\r\n        }\r\n        return newItem\r\n      })\r\n\r\n      newList.value = list\r\n      if (newList.value.length && !props.selectValue) {\r\n        selectType.value = newList.value[0].value\r\n      }\r\n    }\r\n  },\r\n  {\r\n    deep: true,\r\n    immediate: true,\r\n  }\r\n)\r\n\r\nwatch(\r\n  () => [props.value, props.selectValue] as [any, string],\r\n  ([currentValue, selectValue]) => {\r\n    selectType.value = selectValue\r\n      ? selectValue\r\n      : newList.value.length\r\n      ? newList.value[0].value\r\n      : ''\r\n    if (selectType.value) {\r\n      const find = newList.value.find((e) => e.value === selectType.value)\r\n      // selectItem.value = find\r\n      if (find && find.showFormType === 'select' && !find.noFirstAddAll) {\r\n        value.value = !hasValue(currentValue) ? -1 : currentValue\r\n      } else {\r\n        value.value = currentValue\r\n      }\r\n    }\r\n  },\r\n  {\r\n    immediate: true,\r\n  }\r\n)\r\n\r\ndefineExpose({ setSelectGroup, selectType, value })\r\n</script>\r\n"],"names":["_createElementBlock","_normalizeClass","_unref","_createElementVNode","_createVNode","_createCommentVNode","_Fragment","_renderList","_createBlock","_createTextVNode","_toDisplayString","_mergeProps","_openBlock","_renderSlot"],"mappings":"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"}