1 line
24 KiB
Plaintext
1 line
24 KiB
Plaintext
{"version":3,"file":"wd-col-picker.js","sources":["../../../../../../../node_modules/wot-design-uni/components/wd-col-picker/wd-col-picker.vue","../../../../../../../uniComponent:/RDovQXBwL1dvcmsvYWRkci9hY2RyLXVpL25vZGVfbW9kdWxlcy93b3QtZGVzaWduLXVuaS9jb21wb25lbnRzL3dkLWNvbC1waWNrZXIvd2QtY29sLXBpY2tlci52dWU"],"sourcesContent":["<template>\n <view :class=\"`wd-col-picker ${cell.border.value ? 'is-border' : ''} ${customClass}`\" :style=\"customStyle\">\n <view class=\"wd-col-picker__field\" @click=\"showPicker\">\n <slot v-if=\"useDefaultSlot\"></slot>\n <view\n v-else\n :class=\"`wd-col-picker__cell ${disabled && 'is-disabled'} ${readonly && 'is-readonly'} ${alignRight && 'is-align-right'} ${\n error && 'is-error'\n } ${size && 'is-' + size}`\"\n >\n <view\n v-if=\"label || useLabelSlot\"\n :class=\"`wd-col-picker__label ${isRequired && 'is-required'} ${customLabelClass}`\"\n :style=\"labelWidth ? 'min-width:' + labelWidth + ';max-width:' + labelWidth + ';' : ''\"\n >\n <template v-if=\"label\">{{ label }}</template>\n <slot v-else name=\"label\"></slot>\n </view>\n <view class=\"wd-col-picker__body\">\n <view class=\"wd-col-picker__value-wraper\">\n <view\n :class=\"`wd-col-picker__value ${ellipsis && 'is-ellipsis'} ${customValueClass} ${showValue ? '' : 'wd-col-picker__value--placeholder'}`\"\n >\n {{ showValue || placeholder || translate('placeholder') }}\n </view>\n <wd-icon v-if=\"!disabled && !readonly\" custom-class=\"wd-col-picker__arrow\" name=\"arrow-right\" />\n </view>\n <view v-if=\"errorMessage\" class=\"wd-col-picker__error-message\">{{ errorMessage }}</view>\n </view>\n </view>\n </view>\n <wd-action-sheet\n v-model=\"pickerShow\"\n :duration=\"250\"\n :title=\"title || translate('title')\"\n :close-on-click-modal=\"closeOnClickModal\"\n :z-index=\"zIndex\"\n :safe-area-inset-bottom=\"safeAreaInsetBottom\"\n @open=\"handlePickerOpend\"\n @close=\"handlePickerClose\"\n >\n <view class=\"wd-col-picker__selected\">\n <scroll-view :scroll-x=\"true\" scroll-with-animation :scroll-left=\"scrollLeft\">\n <view class=\"wd-col-picker__selected-container\">\n <view\n v-for=\"(select, colIndex) in selectList\"\n :key=\"colIndex\"\n :class=\"`wd-col-picker__selected-item ${colIndex === currentCol && 'is-selected'}`\"\n @click=\"handleColClick(colIndex)\"\n >\n {{ selectShowList[colIndex] || translate('select') }}\n </view>\n <view class=\"wd-col-picker__selected-line\" :style=\"lineStyle\"></view>\n </view>\n </scroll-view>\n </view>\n <view class=\"wd-col-picker__list-container\">\n <view\n v-for=\"(col, colIndex) in selectList\"\n :key=\"colIndex\"\n class=\"wd-col-picker__list\"\n :style=\"colIndex === currentCol ? 'display: block;' : 'display: none;'\"\n >\n <view\n v-for=\"(item, index) in col\"\n :key=\"index\"\n :class=\"`wd-col-picker__list-item ${pickerColSelected[colIndex] && item[valueKey] === pickerColSelected[colIndex] && 'is-selected'} ${\n item.disabled && 'is-disabled'\n }`\"\n @click=\"chooseItem(colIndex, index)\"\n >\n <view>\n <view class=\"wd-col-picker__list-item-label\">{{ item[labelKey] }}</view>\n <view v-if=\"item[tipKey]\" class=\"wd-col-picker__list-item-tip\">{{ item[tipKey] }}</view>\n </view>\n <wd-icon custom-class=\"wd-col-picker__checked\" name=\"check\"></wd-icon>\n </view>\n <view v-if=\"loading\" class=\"wd-col-picker__loading\">\n <wd-loading :color=\"loadingColor\" />\n </view>\n </view>\n </view>\n </wd-action-sheet>\n </view>\n</template>\n<script lang=\"ts\">\nexport default {\n name: 'wd-col-picker',\n options: {\n addGlobalClass: true,\n virtualHost: true,\n styleIsolation: 'shared'\n }\n}\n</script>\n\n<script lang=\"ts\" setup>\nimport { computed, getCurrentInstance, onMounted, ref, watch } from 'vue'\nimport { debounce, getRect, isArray, isBoolean, isFunction } from '../common/util'\nimport { useCell } from '../composables/useCell'\nimport { FORM_KEY, type FormItemRule } from '../wd-form/types'\nimport { useParent } from '../composables/useParent'\nimport { useTranslate } from '../composables/useTranslate'\nimport { colPickerProps, type ColPickerExpose } from './types'\n\nconst { translate } = useTranslate('col-picker')\n\nconst $container = '.wd-col-picker__selected-container'\nconst $item = '.wd-col-picker__selected-item'\n\nconst props = defineProps(colPickerProps)\nconst emit = defineEmits(['close', 'update:modelValue', 'confirm'])\n\nconst pickerShow = ref<boolean>(false)\nconst currentCol = ref<number>(0)\nconst selectList = ref<Record<string, any>[][]>([])\nconst pickerColSelected = ref<(string | number)[]>([])\nconst selectShowList = ref<Record<string, any>[]>([])\nconst loading = ref<boolean>(false)\nconst isChange = ref<boolean>(false)\nconst lastSelectList = ref<Record<string, any>[][]>([])\nconst lastPickerColSelected = ref<(string | number)[]>([])\nconst lineStyle = ref<string>('')\nconst scrollLeft = ref<number>(0)\nconst inited = ref<boolean>(false)\nconst isCompleting = ref<boolean>(false)\nconst { proxy } = getCurrentInstance() as any\n\nconst cell = useCell()\n\nconst updateLineAndScroll = debounce(function (animation = true) {\n setLineStyle(animation)\n lineScrollIntoView()\n}, 50)\n\nconst showValue = computed(() => {\n const selectedItems = (props.modelValue || []).map((item, colIndex) => {\n return getSelectedItem(item, colIndex, selectList.value)\n })\n\n if (props.displayFormat) {\n return props.displayFormat(selectedItems)\n } else {\n return selectedItems\n .map((item) => {\n return item[props.labelKey]\n })\n .join('')\n }\n})\n\nwatch(\n () => props.modelValue,\n (newValue) => {\n if (newValue === pickerColSelected.value) return\n pickerColSelected.value = newValue\n newValue.map((item, colIndex) => {\n return getSelectedItem(item, colIndex, selectList.value)[props.labelKey]\n })\n handleAutoComplete()\n },\n {\n deep: true,\n immediate: true\n }\n)\n\nwatch(\n () => props.columns,\n (newValue, oldValue) => {\n if (newValue.length && !isArray(newValue[0])) {\n console.error('[wot design] error(wd-col-picker): the columns props of wd-col-picker should be a two-dimensional array')\n return\n }\n if (newValue.length === 0 && !oldValue) return\n\n const newSelectedList = newValue.slice(0)\n\n selectList.value = newSelectedList\n\n selectShowList.value = pickerColSelected.value.map((item, colIndex) => {\n return getSelectedItem(item, colIndex, newSelectedList)[props.labelKey]\n })\n lastSelectList.value = newSelectedList\n\n if (newSelectedList.length > 0) {\n currentCol.value = newSelectedList.length - 1\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n\nwatch(\n () => props.columnChange,\n (fn) => {\n if (fn && !isFunction(fn)) {\n console.error('The type of columnChange must be Function')\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n\nwatch(\n () => props.displayFormat,\n (fn) => {\n if (fn && !isFunction(fn)) {\n console.error('The type of displayFormat must be Function')\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n\nwatch(\n () => props.beforeConfirm,\n (fn) => {\n if (fn && !isFunction(fn)) {\n console.error('The type of beforeConfirm must be Function')\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n\nconst { parent: form } = useParent(FORM_KEY)\n\n// 表单校验错误信息\nconst errorMessage = computed(() => {\n if (form && props.prop && form.errorMessages && form.errorMessages[props.prop]) {\n return form.errorMessages[props.prop]\n } else {\n return ''\n }\n})\n\n// 是否展示必填\nconst isRequired = computed(() => {\n let formRequired = false\n if (form && form.props.rules) {\n const rules = form.props.rules\n for (const key in rules) {\n if (Object.prototype.hasOwnProperty.call(rules, key) && key === props.prop && Array.isArray(rules[key])) {\n formRequired = rules[key].some((rule: FormItemRule) => rule.required)\n }\n }\n }\n return props.required || props.rules.some((rule) => rule.required) || formRequired\n})\n\nonMounted(() => {\n inited.value = true\n})\n\n// 打开弹框\nfunction open() {\n showPicker()\n}\n// 关闭弹框\nfunction close() {\n handlePickerClose()\n}\nfunction handlePickerOpend() {\n updateLineAndScroll(false)\n}\n\nfunction handlePickerClose() {\n pickerShow.value = false\n // 如果目前用户正在选择,需要在popup关闭时将数据重置回上次数据,popup 关闭时间 250\n if (isChange.value) {\n setTimeout(() => {\n selectList.value = lastSelectList.value.slice(0)\n pickerColSelected.value = lastPickerColSelected.value.slice(0)\n selectShowList.value = lastPickerColSelected.value.map((item, colIndex) => {\n return getSelectedItem(item, colIndex, lastSelectList.value)[props.labelKey]\n })\n currentCol.value = lastSelectList.value.length - 1\n isChange.value = false\n }, 250)\n }\n emit('close')\n}\nfunction showPicker() {\n const { disabled, readonly } = props\n\n if (disabled || readonly) return\n pickerShow.value = true\n lastPickerColSelected.value = pickerColSelected.value.slice(0)\n lastSelectList.value = selectList.value.slice(0)\n}\n\nfunction getSelectedItem(value: string | number, colIndex: number, selectList: Record<string, any>[][]) {\n const { valueKey, labelKey } = props\n if (selectList[colIndex]) {\n const selecteds = selectList[colIndex].filter((item) => {\n return item[valueKey] === value\n })\n\n if (selecteds.length > 0) {\n return selecteds[0]\n }\n }\n\n return {\n [valueKey]: value,\n [labelKey]: ''\n }\n}\n\nfunction chooseItem(colIndex: number, index: number) {\n const item = selectList.value[colIndex][index]\n if (item.disabled) return\n\n const newPickerColSelected = pickerColSelected.value.slice(0, colIndex)\n newPickerColSelected.push(item[props.valueKey])\n isChange.value = true\n pickerColSelected.value = newPickerColSelected\n selectList.value = selectList.value.slice(0, colIndex + 1)\n selectShowList.value = newPickerColSelected.map((item, colIndex) => {\n return getSelectedItem(item, colIndex, selectList.value)[props.labelKey]\n })\n handleColChange(colIndex, item, index)\n}\nfunction handleColChange(colIndex: number, item: Record<string, any>, index: number, callback?: () => void) {\n loading.value = true\n const { columnChange, beforeConfirm } = props\n columnChange &&\n columnChange({\n selectedItem: item,\n index: colIndex,\n rowIndex: index,\n resolve: (nextColumn: Record<string, any>[]) => {\n if (!isArray(nextColumn)) {\n console.error('[wot design] error(wd-col-picker): the data of each column of wd-col-picker should be an array')\n return\n }\n\n const newSelectList = selectList.value.slice(0)\n newSelectList[colIndex + 1] = nextColumn\n\n selectList.value = newSelectList\n loading.value = false\n currentCol.value = colIndex + 1\n\n updateLineAndScroll(true)\n if (typeof callback === 'function') {\n isCompleting.value = false\n selectShowList.value = pickerColSelected.value.map((item, colIndex) => {\n return getSelectedItem(item, colIndex, selectList.value)[props.labelKey]\n })\n callback()\n }\n },\n finish: (isOk?: boolean) => {\n // 每设置展示数据回显\n if (typeof callback === 'function') {\n loading.value = false\n isCompleting.value = false\n return\n }\n if (isBoolean(isOk) && !isOk) {\n loading.value = false\n return\n }\n\n if (beforeConfirm) {\n beforeConfirm(\n pickerColSelected.value,\n pickerColSelected.value.map((item, colIndex) => {\n return getSelectedItem(item, colIndex, selectList.value)\n }),\n (isPass: boolean) => {\n if (isPass) {\n onConfirm()\n } else {\n loading.value = false\n }\n }\n )\n } else {\n onConfirm()\n }\n }\n })\n}\nfunction onConfirm() {\n isChange.value = false\n loading.value = false\n pickerShow.value = false\n\n emit('update:modelValue', pickerColSelected.value)\n emit('confirm', {\n value: pickerColSelected.value,\n selectedItems: pickerColSelected.value.map((item, colIndex) => {\n return getSelectedItem(item, colIndex, selectList.value)\n })\n })\n}\nfunction handleColClick(index: number) {\n isChange.value = true\n currentCol.value = index\n updateLineAndScroll(true)\n}\n/**\n * @description 更新navBar underline的偏移量\n * @param {Boolean} animation 是否伴随动画\n */\nfunction setLineStyle(animation = true) {\n if (!inited.value) return\n getRect($item, true, proxy).then((rects) => {\n const rect = rects[currentCol.value]\n // const width = lineWidth || (slidableNum < items.length ? rect.width : (rect.width - 14))\n const width = 16\n let left = rects.slice(0, currentCol.value).reduce((prev: any, curr: any) => prev + curr.width, 0)\n left += (Number(rect.width) - width) / 2\n const transition = animation ? 'transition: width 300ms ease, transform 300ms ease;' : ''\n\n const lineStyleTemp = `\n transform: translateX(${left}px);\n ${transition}\n `\n // 防止重复绘制\n if (lineStyle.value !== lineStyleTemp) {\n lineStyle.value = lineStyleTemp\n }\n })\n}\n/**\n * @description scroll-view滑动到active的tab_nav\n */\nfunction lineScrollIntoView() {\n if (!inited.value) return\n Promise.all([getRect($item, true, proxy), getRect($container, false, proxy)]).then(([navItemsRects, navRect]) => {\n if (!isArray(navItemsRects) || navItemsRects.length === 0) return\n // 选中元素\n const selectItem = navItemsRects[currentCol.value]\n // 选中元素之前的节点的宽度总和\n const offsetLeft = navItemsRects.slice(0, currentCol.value).reduce((prev, curr) => prev + Number(curr.width), 0)\n // scroll-view滑动到selectItem的偏移量\n scrollLeft.value = offsetLeft - ((navRect as any).width - Number(selectItem.width)) / 2\n })\n}\n\n// 递归列数据补齐\nfunction diffColumns(colIndex: number) {\n // colIndex 为 -1 时,item 为空对象,>=0 时则具有 value 属性\n const item = colIndex === -1 ? {} : { [props.valueKey]: props.modelValue[colIndex] }\n handleColChange(colIndex, item, -1, () => {\n // 如果 columns 长度还小于 value 长度,colIndex + 1,继续递归补齐\n if (selectList.value.length < props.modelValue.length) {\n diffColumns(colIndex + 1)\n }\n })\n}\nfunction handleAutoComplete() {\n if (props.autoComplete) {\n // 如果 columns 数组长度为空,或者长度小于 value 的长度,自动触发 columnChange 来补齐数据\n if (selectList.value.length < props.modelValue.length || selectList.value.length === 0) {\n // isCompleting 是否在自动补全,锁操作\n if (!isCompleting.value) {\n // 如果 columns 长度为空,则传入的 colIndex 为 -1\n const colIndex = selectList.value.length === 0 ? -1 : selectList.value.length - 1\n diffColumns(colIndex)\n }\n isCompleting.value = true\n }\n }\n}\n\ndefineExpose<ColPickerExpose>({\n close,\n open\n})\n</script>\n\n<style lang=\"scss\" scoped>\n@import './index.scss';\n</style>\n","import Component from 'D:/App/Work/addr/acdr-ui/node_modules/wot-design-uni/components/wd-col-picker/wd-col-picker.vue'\nwx.createComponent(Component)"],"names":["useTranslate","ref","getCurrentInstance","useCell","debounce","computed","watch","isArray","isFunction","useParent","FORM_KEY","onMounted","selectList","item","colIndex","isBoolean","getRect"],"mappings":"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","x_google_ignoreList":[0]} |