{"version":3,"file":"custom-sorter.vue2.mjs","sources":["../../../../../../packages/components/custom-sorter/src/custom-sorter.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=\"sortIcon || 'icon-sort'\"\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\r\n    <template #title>设置排序条件</template>\r\n\r\n    <template #content>\r\n      <a-form-item-rest>\r\n        <draggable\r\n          v-model=\"sortList\"\r\n          :animation=\"200\"\r\n          :class=\"bem.e('content')\"\r\n          style=\"min-width: 350px\"\r\n          item-key=\"key\"\r\n          handle=\".handle\"\r\n        >\r\n          <template #item=\"{ element, index }\">\r\n            <div :class=\"bem.e('list-item')\">\r\n              <!-- 拖拽图标 -->\r\n              <div :class=\"['handle', bem.e('drag-icon')]\">\r\n                <ll-icon icon-name=\"icon-drag\" />\r\n              </div>\r\n\r\n              <!-- 字段名 -->\r\n              <ll-select\r\n                v-model:value=\"element.key\"\r\n                style=\"width: 180px\"\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:any) => ({\r\n                ...i,\r\n                disabled: sortList.some((y) => y.key === i.key),\r\n              }))\r\n            \"\r\n                @select=\"handleField\"\r\n              />\r\n\r\n              <!-- 排序 -->\r\n              <ll-segmented\r\n                v-model:value=\"element.orderBy\"\r\n                :class=\"bem.e('segmented')\"\r\n                size=\"small\"\r\n                :options=\"steps\"\r\n              />\r\n\r\n              <!-- 移除图标 -->\r\n              <ll-icon\r\n                icon-name=\"icon-remove\"\r\n                :class=\"bem.e('remove-icon')\"\r\n                :size=\"14\"\r\n                @click=\"handleRemove(index)\"\r\n              />\r\n            </div>\r\n          </template>\r\n        </draggable>\r\n\r\n        <ll-empty\r\n          v-if=\"sortList.length === 0\"\r\n          :style=\"{ margin: '12px 0' }\"\r\n          image-width=\"120px\"\r\n        />\r\n\r\n        <div :class=\"bem.e('operate')\">\r\n          <ll-button\r\n            :class=\"bem.e('operate-btn')\"\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            {{ addSortText || '添加排序条件 ' }}\r\n          </ll-button>\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      </a-form-item-rest>\r\n    </template>\r\n  </a-popover>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { createNamespace } from '@ll-plus/utils'\r\nimport { computed, ref, useAttrs, watch } from 'vue'\r\nimport { customSorterProps } from './custom-sorter'\r\n\r\nimport draggable from 'vuedraggable'\r\n\r\ndefineOptions({ name: 'LlCustomSorter' })\r\n\r\nconst props = defineProps(customSorterProps)\r\nconst emits = defineEmits(['update:open', 'field-select'])\r\n\r\nconst bem = createNamespace('custom-sorter')\r\n\r\nconst attrs = useAttrs()\r\n\r\n// desc / asc\r\nconst sortList = ref([] as any)\r\n\r\nconst localList = computed(() => [...props.fieldList])\r\n\r\nconst steps = computed(() => [\r\n  {\r\n    title: props.ascText || '升序',\r\n    key: 'asc',\r\n    value: 'asc',\r\n  },\r\n  {\r\n    title: props.descText || '降序',\r\n    key: 'desc',\r\n    value: 'desc',\r\n  },\r\n])\r\n\r\nconst newOpen = computed({\r\n  get() {\r\n    return props.open\r\n  },\r\n  set(o: boolean) {\r\n    emits('update:open', o)\r\n  },\r\n})\r\n\r\n// 禁用新增\r\nconst disabledAdd = computed(() => {\r\n  return (\r\n    localList.value.length === sortList.value.length ||\r\n    (props.maxSearchCount > 0 && props.maxSearchCount <= sortList.value.length)\r\n  )\r\n})\r\n\r\n// 新增\r\nconst handleAdd = () => {\r\n  sortList.value.push({ key: null, orderBy: 'asc' })\r\n}\r\n\r\n// 移除\r\nconst handleRemove = (idx: number) => {\r\n  sortList.value.splice(idx, 1)\r\n}\r\n\r\n// 切换字段\r\nconst handleField = (value: string, option: any[]) => {\r\n  emits('field-select', value, option)\r\n}\r\n\r\n// 获取当前查询值\r\nconst getValue = () => {\r\n  return sortList.value\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 = sortList.value.length - 1; i >= 0; i--) {\r\n        if (fields.includes(sortList.value[i].key)) {\r\n          sortList.value.splice(i, 1)\r\n        }\r\n      }\r\n    }\r\n  } else {\r\n    sortList.value.length = 0\r\n  }\r\n}\r\n\r\nwatch(\r\n  () => props.fieldList,\r\n  () => {\r\n    clearValue('all')\r\n  },\r\n  { deep: true }\r\n)\r\n\r\ndefineExpose({ getValue, clearValue })\r\n</script>\r\n"],"names":["_createBlock","_mergeProps","_unref","placement","_createVNode","_normalizeClass","_withCtx","_createElementVNode","_createCommentVNode","_createTextVNode","addSortText","_renderSlot","useBadge","activeState","sortIcon","size","label"],"mappings":"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"}