yh-mobile-components 1.6.2 → 1.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.es.js.map +1 -1
- package/package.json +1 -1
package/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../info/yhmList.vue","../info/yhmDropdownItem.vue","../info/yhmTabs.vue","../info/yhmInfoItem.vue","../info/yhmTable.vue","../form/yhm-form.vue","../../../node_modules/dayjs/dayjs.min.js","../form/yhmDateTime/chooseDate.vue","../form/yhmDateTime/chooseTime.vue","../form/yhmDateTime/inputDateTime.vue","../form/yhmDatetime.vue","../form/yhmRadio.vue","../form/yhmCheckbox.vue","../form/yhmSelect.vue","../form/yhmInput.vue","../form/yhmSwitch.vue","../form/yhmPassword.vue","../form/yhmCascader.vue","../form/yhmRate.vue","../form/yhmSignature.vue","../form/yhmSlider.vue","../form/yhmStepper.vue","../functional/yhmScanAndSelect.vue","../extensions/loading.js","../index.ts"],"sourcesContent":["<template>\r\n <section class=\"yhm-list-container\">\r\n <section class=\"list-condition-container\">\r\n <yhm-tabs\r\n v-for=\"conf in tabsParamsConfig\"\r\n :valueObj=\"params\"\r\n :value=\"conf.value\"\r\n :optionData=\"conf.optionData\"></yhm-tabs>\r\n <van-search\r\n v-if=\"hasSearch\"\r\n v-model=\"keyword\"\r\n :placeholder=\"searchPlaceholder\"\r\n @update:model-value=\"onSearch('update')\"\r\n @search=\"onSearch('search')\"\r\n :clearable=\"false\"></van-search>\r\n <van-dropdown-menu v-if=\"(dropdownParamsConfig && dropdownParamsConfig.length) || (customParamsConfig && customParamsConfig.length)\">\r\n <yhm-dropdown-item\r\n :valueObj=\"params\"\r\n :value=\"conf.value\"\r\n :optionData=\"conf.optionData\"\r\n v-for=\"conf in dropdownParamsConfig\"></yhm-dropdown-item>\r\n <van-dropdown-item\r\n title=\"筛选\"\r\n class=\"custom-param-container\"\r\n v-if=\"customParamsConfig && customParamsConfig.length\">\r\n <yhm-form\r\n :formData=\"params\"\r\n :options=\"customParamsConfig\"></yhm-form>\r\n </van-dropdown-item>\r\n </van-dropdown-menu>\r\n </section>\r\n <van-pull-refresh\r\n v-model=\"refreshing\"\r\n @refresh=\"getList(true)\">\r\n <van-list\r\n v-model:loading=\"listLoading\"\r\n :finished=\"finished\"\r\n :error=\"listError\"\r\n error-text=\"遇到错误了,点击重试\"\r\n finished-text=\"没有更多了\"\r\n ref=\"scrollContent\"\r\n @load=\"getList\">\r\n <template v-for=\"row in renderCustom\">\r\n <yhm-info has-top>\r\n <template v-for=\"col in row.cols\">\r\n <slot\r\n v-if=\"col.slot\"\r\n :name=\"col.slot\"\r\n :row=\"row\"></slot>\r\n <yhm-info-item\r\n v-else\r\n :label=\"col.label\"\r\n regular-value\r\n :span=\"col.span\"\r\n :align=\"col.align || align\"\r\n :desc-align=\"col.descAlign || descAlign\"\r\n :font-size=\"col.fontSize || fontSize\"\r\n :status=\"col.status\"\r\n :description=\"col.description\"\r\n :value=\"col.value\"></yhm-info-item>\r\n </template>\r\n </yhm-info>\r\n <yhm-info\r\n class=\"yhm-list-item-actions\"\r\n v-if=\"listConfig.btns && listConfig.btns.length > 0\">\r\n <template v-for=\"btn in listConfig.btns\">\r\n <div\r\n v-if=\"!btn.show || (btn.show && btn.show(row.data))\"\r\n :class=\"`yhm-list-btn${btn.type ? ' ' + btn.type : ''}${btn.size ? ' ' + btn.size : ''}`\"\r\n @click=\"() => btn.callback(row.data)\">\r\n {{ btn.text }}\r\n </div>\r\n </template>\r\n </yhm-info>\r\n </template>\r\n </van-list>\r\n </van-pull-refresh>\r\n </section>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport type { ListConfig, ParamConfig } from \"../types\";\r\nimport type { ListInstance } from \"vant\";\r\nimport { ref, reactive, computed, watch, onMounted, onActivated, nextTick } from \"vue\";\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n /** 是否有关键字筛选 */\r\n hasSearch?: boolean;\r\n /** 筛选搜索触发类型 默认 update当输入框内容发生变化时触发 search点击键盘上的搜索/回车按钮后触发 */\r\n searchType?: string;\r\n /** 关键字筛选提示语 */\r\n searchPlaceholder?: string;\r\n paramType?: \"dropdown\" | \"tabs\";\r\n align?: \"left\" | \"center\" | \"right\";\r\n descAlign?: \"left\" | \"center\" | \"right\";\r\n fontSize?: number;\r\n /** 下拉筛选条件配置 */\r\n paramConfig?: ParamConfig[];\r\n /** 列表项目筛选 */\r\n listConfig: ListConfig<any>;\r\n /**\r\n * 获取数据的方法实现\r\n * @param pageIndex 当前页面\r\n * @param pageSize 页面条数\r\n * @param params 下拉选择后的结果\r\n * @param keyword 搜索关键字\r\n * @returns 返回一个对象 对象包括 data: 列表的数据,total: 总数\r\n */\r\n getData: (pageIndex, pageSize, params, keyword) => Promise<any>;\r\n }>(),\r\n {\r\n hasSearch: false,\r\n searchType: \"update\",\r\n searchPlaceholder: \"输入关键词搜索\",\r\n align: \"right\",\r\n descAlign: \"left\",\r\n }\r\n);\r\n\r\nconst scrollContent = ref<ListInstance>();\r\nconst keyword = ref(\"\");\r\nfunction setKeyowrd(k) {\r\n keyword.value = k;\r\n nextTick(() => {\r\n getList(true);\r\n });\r\n}\r\nconst params = reactive({});\r\nconst list = ref<any[]>([]);\r\nconst listLoading = ref(false);\r\nconst listError = ref(false);\r\nconst pageIndex = ref(1);\r\nconst pageSize = ref(15);\r\nconst refreshing = ref(false);\r\nconst finished = ref(false);\r\n\r\nconst tabsParamsConfig = computed(() => {\r\n return props.paramConfig?.filter((config) => {\r\n return config.type === \"tabs\";\r\n });\r\n});\r\n\r\nconst dropdownParamsConfig = computed(() => {\r\n return props.paramConfig?.filter((config) => {\r\n return config.type === \"dropdown\";\r\n });\r\n});\r\n\r\nconst customParamsConfig = computed(() => {\r\n return props.paramConfig\r\n ?.filter((config) => {\r\n return config.type === \"custom\";\r\n })\r\n .map((item) => {\r\n return item.custom;\r\n });\r\n});\r\n\r\nlet timer: number | null = null;\r\nasync function getList(isClear = false) {\r\n if (timer) {\r\n clearTimeout(timer);\r\n }\r\n listError.value = false;\r\n timer = setTimeout(async () => {\r\n listLoading.value = true;\r\n if (isClear) {\r\n list.value = [];\r\n finished.value = false;\r\n refreshing.value = true;\r\n pageIndex.value = 1;\r\n }\r\n let { data: l, total: t } = await props.getData(pageIndex.value, pageSize.value, params, keyword);\r\n try {\r\n if (isClear) {\r\n list.value = l;\r\n } else {\r\n list.value = list.value.concat(l);\r\n }\r\n if (list.value.length >= t) {\r\n finished.value = true;\r\n }\r\n timer = null;\r\n pageIndex.value++;\r\n refreshing.value = false;\r\n listLoading.value = false;\r\n } catch (error) {\r\n timer = null;\r\n listError.value = true;\r\n refreshing.value = false;\r\n listLoading.value = false;\r\n }\r\n\r\n if (!finished.value && !listError.value) {\r\n scrollContent.value?.check();\r\n }\r\n }, 500);\r\n}\r\n\r\nfunction onSearch(type) {\r\n if (props.searchType == type) {\r\n getList(true);\r\n }\r\n}\r\n\r\nwatch(\r\n () => params,\r\n () => {\r\n getList(true);\r\n },\r\n {\r\n deep: true,\r\n immediate: true,\r\n }\r\n);\r\n\r\nconst renderCustom = computed(() => {\r\n return list.value.map((row) => {\r\n let cols = props.listConfig.items\r\n .filter((item) => !item.show || (item.show && item.show(row)))\r\n .map(({ label, span, align, descAlign, fontSize, status, description, defaultDescription, slot, value, defaultValue }) => {\r\n return {\r\n label,\r\n span,\r\n align,\r\n descAlign: descAlign || props.descAlign,\r\n fontSize: fontSize || props.fontSize,\r\n status: status ? status(row) : \"\",\r\n description: description ? row[description] || defaultDescription : \"\",\r\n value: value ? row[value] || defaultValue : \"\",\r\n slot,\r\n };\r\n });\r\n\r\n return {\r\n cols,\r\n data: row,\r\n };\r\n });\r\n});\r\n\r\nonMounted(() => {\r\n if (props.paramConfig && props.paramConfig.length) {\r\n for (let i = 0; i < props.paramConfig.length; i++) {\r\n const paramItem = props.paramConfig[i];\r\n params[paramItem.value] = paramItem.defaultValue;\r\n }\r\n }\r\n});\r\n\r\nonActivated(() => {});\r\n\r\ndefineExpose({\r\n getList,\r\n setKeyowrd,\r\n});\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-list-container {\r\n .list-condition-container {\r\n position: relative;\r\n z-index: 12;\r\n box-shadow: 0 3px 5px -5px #000;\r\n .van-search {\r\n padding: 7px 12px;\r\n }\r\n .van-dropdown-menu__bar {\r\n box-shadow: none;\r\n }\r\n }\r\n .custom-param-container {\r\n .yhm-form-container {\r\n padding: 0;\r\n border-top: 1px solid var(--van-border-color);\r\n }\r\n }\r\n .yhm-list-item-actions {\r\n justify-content: flex-end;\r\n font-size: var(--van-font-size-sm);\r\n .yhm-list-btn {\r\n padding: 6px;\r\n color: var(--van-primary-color);\r\n font-size: 1em;\r\n cursor: pointer;\r\n &.mini {\r\n font-size: 0.8em;\r\n }\r\n &.medium {\r\n font-size: 1.1em;\r\n }\r\n &.lager {\r\n font-size: 1.3em;\r\n }\r\n &.success {\r\n color: var(--van-success-color);\r\n }\r\n &.danger {\r\n color: var(--van-danger-color);\r\n }\r\n &.warning {\r\n color: var(--van-warning-color);\r\n }\r\n &.cyan {\r\n color: var(--van-cyan);\r\n }\r\n &.purple {\r\n color: var(--van-purple);\r\n }\r\n &.yellow {\r\n color: var(--van-yellow);\r\n }\r\n &.pink {\r\n color: var(--van-pink);\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-dropdown-item\r\n :model-value=\"modelValue\"\r\n @update:model-value=\"updateHandler\"\r\n :options=\"optionData\"></van-dropdown-item>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport type { vanOption } from \"../types\";\r\nimport { computed } from \"vue\";\r\n\r\nconst props = defineProps<{\r\n valueObj: any;\r\n value: string;\r\n optionData: vanOption[];\r\n}>();\r\n\r\nconst emits = defineEmits<{\r\n (e: \"change\");\r\n}>();\r\n\r\nconst modelValue = computed({\r\n get() {\r\n return props.valueObj[props.value];\r\n },\r\n set(val) {\r\n props.valueObj[props.value] = val;\r\n },\r\n});\r\nfunction updateHandler(val: string | number) {\r\n modelValue.value = val;\r\n emits(\"change\");\r\n}\r\n</script>\r\n<style lang=\"scss\"></style>\r\n../types\r\n","<template>\r\n <section\r\n class=\"yhm-tabs\"\r\n ref=\"yhmTabsRef\">\r\n <div\r\n class=\"yhm-tab-item\"\r\n :class=\"{ active: option.value === modelValue }\"\r\n @click=\"updateHandler($event, option.value)\"\r\n v-for=\"option in optionData\">\r\n {{ option.text }}\r\n </div>\r\n </section>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport type { vanOption } from \"../types\";\r\nimport { computed, watch, ref } from \"vue\";\r\n\r\nconst props = defineProps<{\r\n valueObj: any;\r\n value: string;\r\n optionData: vanOption[];\r\n}>();\r\n\r\nconst emits = defineEmits<{\r\n (e: \"change\");\r\n}>();\r\n\r\nconst modelValue = computed({\r\n get() {\r\n return props.valueObj[props.value];\r\n },\r\n set(val) {\r\n props.valueObj[props.value] = val;\r\n },\r\n});\r\nconst yhmTabsRef = ref();\r\nwatch(\r\n () => modelValue.value,\r\n (val) => {\r\n let optionVals = props.optionData.map((item) => item.value);\r\n if (optionVals && optionVals.length && yhmTabsRef.value) {\r\n let items: HTMLDivElement[] = Array.from(yhmTabsRef.value.querySelectorAll(\".yhm-tab-item\"));\r\n let index = optionVals.indexOf(val);\r\n items[index]?.scrollIntoView({ behavior: \"smooth\", block: \"center\", inline: \"center\" });\r\n }\r\n }\r\n);\r\n\r\nfunction updateHandler(e, val: string | number) {\r\n modelValue.value = val;\r\n emits(\"change\");\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-tabs {\r\n display: flex;\r\n background-color: var(--van-white);\r\n padding-bottom: 5px;\r\n padding-left: 5px;\r\n padding-right: 5px;\r\n width: 100%;\r\n box-sizing: border-box;\r\n overflow: auto;\r\n &:first-child {\r\n padding-top: 5px;\r\n }\r\n .yhm-tab-item {\r\n flex: 1 0 auto;\r\n text-align: center;\r\n font-size: 14px;\r\n line-height: 18px;\r\n padding: 3px 15px;\r\n color: var(--van-primary-color);\r\n border: 1px solid var(--van-primary-color);\r\n &:first-child {\r\n border-top-left-radius: 6px;\r\n border-bottom-left-radius: 6px;\r\n }\r\n &:last-child {\r\n border-top-right-radius: 6px;\r\n border-bottom-right-radius: 6px;\r\n }\r\n &.active {\r\n color: var(--van-white);\r\n background-color: var(--van-primary-color);\r\n }\r\n }\r\n .yhm-tab-item + .yhm-tab-item {\r\n border-left: 0;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <section :class=\"`yhm-info-item-container${status ? ' ' + status : ''}`\">\r\n <div :class=\"`yhm-info-item${regularValue ? ' regular-value' : ''}`\">\r\n <div class=\"yhm-info-item-label\">\r\n <slot name=\"label\">{{ label }}</slot>\r\n </div>\r\n <div class=\"yhm-info-item-value\">\r\n <slot name=\"value\">{{ value }}</slot>\r\n </div>\r\n </div>\r\n <div\r\n class=\"yhm-info-description\"\r\n v-if=\"description\">\r\n <slot name=\"description\">{{ description }}</slot>\r\n </div>\r\n </section>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { computed } from \"vue\";\r\nconst props = withDefaults(\r\n defineProps<{\r\n span: number;\r\n label?: string;\r\n value?: string;\r\n description?: string;\r\n regularValue?: boolean;\r\n fontSize?: number;\r\n align?: \"left\" | \"center\" | \"right\";\r\n descAlign?: \"left\" | \"center\" | \"right\";\r\n status?: \"primary\" | \"success\" | \"danger\" | \"warning\" | \"cyan\" | \"purple\" | \"yellow\" | \"pink\";\r\n }>(),\r\n {\r\n span: 24,\r\n fontSize: 14,\r\n align: \"right\",\r\n descAlign: \"left\",\r\n }\r\n);\r\n\r\nconst fontSize = computed(() => {\r\n return `${props.fontSize}px`;\r\n});\r\n\r\nconst widthCount = computed(() => {\r\n return 24 / props.span;\r\n});\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-info-item-container {\r\n width: calc((100% - (8px * v-bind(widthCount))) / v-bind(widthCount));\r\n font-size: v-bind(fontSize);\r\n padding: 4px 0;\r\n margin-right: 8px;\r\n .yhm-info-item {\r\n display: flex;\r\n padding: 4px 0;\r\n line-height: 1.3em;\r\n .yhm-info-item-value {\r\n flex: 1;\r\n color: var(--van-text-color-2);\r\n text-align: v-bind(\"$props.align\");\r\n padding-left: 5px;\r\n }\r\n &.regular-value {\r\n .yhm-info-item-value {\r\n color: var(--van-text-color);\r\n }\r\n }\r\n }\r\n .yhm-info-description {\r\n color: var(--van-text-color-2);\r\n padding: 2px 0;\r\n line-height: 1.3em;\r\n text-align: v-bind(\"$props.descAlign\");\r\n }\r\n &.primary {\r\n .yhm-info-item {\r\n .yhm-info-item-value {\r\n color: var(--van-primary-color) !important;\r\n }\r\n }\r\n }\r\n &.success {\r\n .yhm-info-item {\r\n .yhm-info-item-value {\r\n color: var(--van-success-color) !important;\r\n }\r\n }\r\n }\r\n &.danger {\r\n .yhm-info-item {\r\n .yhm-info-item-value {\r\n color: var(--van-danger-color) !important;\r\n }\r\n }\r\n }\r\n &.warning {\r\n .yhm-info-item {\r\n .yhm-info-item-value {\r\n color: var(--van-warning-color) !important;\r\n }\r\n }\r\n }\r\n &.cyan {\r\n .yhm-info-item {\r\n .yhm-info-item-value {\r\n color: var(--van-cyan) !important;\r\n }\r\n }\r\n }\r\n &.purple {\r\n .yhm-info-item {\r\n .yhm-info-item-value {\r\n color: var(--van-purple) !important;\r\n }\r\n }\r\n }\r\n &.yellow {\r\n .yhm-info-item {\r\n .yhm-info-item-value {\r\n color: var(--van-yellow) !important;\r\n }\r\n }\r\n }\r\n &.pink {\r\n .yhm-info-item {\r\n .yhm-info-item-value {\r\n color: var(--van-pink) !important;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <section class=\"yhm-table-container\">\r\n <table class=\"yhm-table\">\r\n <colgroup>\r\n <col\r\n v-if=\"hasIndex\"\r\n width=\"50\" />\r\n <col\r\n v-for=\"col in columns\"\r\n :width=\"col.width\"\r\n :align=\"col.align\" />\r\n </colgroup>\r\n <tr>\r\n <th v-if=\"hasIndex\">#</th>\r\n <th\r\n v-for=\"column in columns\"\r\n :align=\"column.align\">\r\n {{ column.label }}\r\n </th>\r\n </tr>\r\n <tr v-for=\"(row, index) in data\">\r\n <td\r\n aling=\"center\"\r\n v-if=\"hasIndex\">\r\n {{ index + 1 }}\r\n </td>\r\n <td\r\n v-for=\"column in columns\"\r\n :align=\"column.align\">\r\n {{ row[column.prop] }}\r\n </td>\r\n </tr>\r\n </table>\r\n </section>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { computed } from \"vue\";\r\nimport { ColumnItem } from \"../types\";\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n data: any[];\r\n hasIndex?: boolean;\r\n columns: ColumnItem[];\r\n }>(),\r\n // @ts-ignore\r\n {\r\n // @ts-ignore\r\n data: [],\r\n hasIndex: false,\r\n // @ts-ignore\r\n columns: [],\r\n }\r\n);\r\n\r\nconst tableWidth = computed(() => {\r\n let width = props.columns.reduce((accumulator, column) => {\r\n let w = parseInt(column.width);\r\n if (!isNaN(w)) {\r\n w = 0;\r\n }\r\n return accumulator + w;\r\n }, 0);\r\n if (props.hasIndex) {\r\n return width === 0 ? \"100%\" : `${width + 50}px`;\r\n } else {\r\n return width === 0 ? \"100%\" : `${width}px`;\r\n }\r\n});\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-table-container {\r\n width: 100%;\r\n overflow-x: auto;\r\n .yhm-table {\r\n table-layout: fixed;\r\n border-collapse: collapse;\r\n border-spacing: 0;\r\n min-width: 100%;\r\n width: v-bind(tableWidth);\r\n position: relative;\r\n background-color: var(--van-white);\r\n th,\r\n td {\r\n box-sizing: border-box;\r\n padding: 10px 16px;\r\n line-height: 24px;\r\n font-size: var(--van-font-size-md);\r\n }\r\n th {\r\n color: var(--van-text-color);\r\n font-weight: 400;\r\n }\r\n td {\r\n color: var(--van-text-color-2);\r\n }\r\n tr + tr {\r\n border-top: 1px solid var(--van-gray-1);\r\n }\r\n }\r\n}\r\n</style>\r\n","<style lang=\"scss\">\r\n.yhm-form-container {\r\n padding: 16px 0;\r\n .van-form {\r\n margin-bottom: 16px;\r\n }\r\n .yhm-form-actions {\r\n padding: 0 16px;\r\n }\r\n}\r\n</style>\r\n<template>\r\n <section class=\"yhm-form-container\">\r\n <van-form>\r\n <template v-for=\"item in optionsConfig\">\r\n <component\r\n :is=\"item.component\"\r\n v-bind=\"item.attrs\"\r\n :error=\"item.error\"\r\n :error-message=\"item.errorMessage\"\r\n :model-value=\"formData[item.name]\"\r\n @update:modelValue=\"handlerChange($event, item)\"></component>\r\n </template>\r\n </van-form>\r\n <div class=\"yhm-form-actions\">\r\n <slot></slot>\r\n </div>\r\n </section>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { computed, watch, reactive, onMounted } from \"vue\";\r\nimport { ConfigFormItem, SwitchConfig } from \"../types\";\r\n\r\nconst props = defineProps<{\r\n options: ConfigFormItem[];\r\n formData: any;\r\n verification: boolean;\r\n}>();\r\n\r\ninterface ConfigItem {\r\n component: string;\r\n rex: ConfigFormItem[\"rex\"];\r\n rexMsg: ConfigFormItem[\"rexMsg\"];\r\n name: ConfigFormItem[\"name\"];\r\n defaultValue: ConfigFormItem[\"defaultValue\"];\r\n error: boolean;\r\n errorMessage: string;\r\n attrs: Record<string, any>;\r\n itemChange?: (val, data) => void;\r\n}\r\n\r\nconst optionsConfig = computed<ConfigItem[]>(() => {\r\n return props.options.map((item) => {\r\n let { label, required, name, defaultValue, disabled, placeholder, type, rexMsg, rex, itemChange, labelAlign, config } = item;\r\n let error = false;\r\n let errorMessage = \"\";\r\n let component = \"yhm-input\";\r\n switch (type) {\r\n case \"year\":\r\n case \"month\":\r\n case \"datetime\":\r\n case \"date\":\r\n case \"time\":\r\n component = \"yhm-datetime\";\r\n if (!defaultValue) defaultValue = \"\";\r\n break;\r\n case \"radio\":\r\n component = \"yhm-radio\";\r\n if (!defaultValue) defaultValue = \"\";\r\n break;\r\n case \"select\":\r\n component = \"yhm-select\";\r\n if (!defaultValue) defaultValue = \"\";\r\n break;\r\n case \"switch\":\r\n component = \"yhm-switch\";\r\n if (!defaultValue) defaultValue = (config as SwitchConfig).activeValue || \"\";\r\n break;\r\n case \"checkbox\":\r\n component = \"yhm-checkbox\";\r\n if (!defaultValue) defaultValue = [];\r\n break;\r\n }\r\n return {\r\n component,\r\n rex,\r\n rexMsg,\r\n name,\r\n defaultValue,\r\n error,\r\n errorMessage,\r\n attrs: {\r\n label,\r\n required,\r\n disabled,\r\n placeholder,\r\n type,\r\n labelAlign,\r\n ...config,\r\n },\r\n itemChange,\r\n };\r\n });\r\n});\r\n\r\nconst emits = defineEmits<{\r\n (e: \"update:verification\", val: boolean);\r\n}>();\r\n\r\nconst verificationResult = reactive<any>({});\r\n\r\nwatch(\r\n () => verificationResult,\r\n (val) => {\r\n let vals = Object.values(val);\r\n let flag = !(vals && vals.includes(true));\r\n emits(\"update:verification\", flag);\r\n },\r\n {\r\n deep: true,\r\n immediate: true,\r\n }\r\n);\r\n\r\nfunction handlerChange(val, item) {\r\n let {\r\n name,\r\n itemChange,\r\n rex,\r\n rexMsg,\r\n attrs: { required },\r\n } = item;\r\n\r\n props.formData[name] = val;\r\n\r\n if (itemChange && typeof itemChange === \"function\") {\r\n itemChange(val, props.formData);\r\n }\r\n let valFlag = false;\r\n if (val instanceof Array) {\r\n valFlag = val.length > 0;\r\n } else if (typeof val === \"number\") {\r\n valFlag = !isNaN(val);\r\n } else {\r\n valFlag = !!val;\r\n }\r\n let flag = true;\r\n if (rex && rex instanceof RegExp) {\r\n flag = rex.test(val);\r\n if (!flag) {\r\n item.error = true;\r\n item.errorMessage = rexMsg;\r\n }\r\n }\r\n if (rex === undefined && typeof required === \"boolean\" && required && !valFlag) {\r\n flag = false;\r\n item.error = true;\r\n item.errorMessage = `${item.attrs.label}不能为空`;\r\n }\r\n if (flag) {\r\n verificationResult[name] = false;\r\n item.error = false;\r\n item.errorMessage = \"\";\r\n } else {\r\n verificationResult[name] = true;\r\n }\r\n}\r\n\r\nonMounted(() => {\r\n optionsConfig.value.forEach((option) => {\r\n handlerChange(option.defaultValue || \"\", option);\r\n });\r\n});\r\n</script>\r\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","<style lang=\"scss\">\r\n.yh-calendar {\r\n width: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n padding-bottom: 16px;\r\n .yh-calendar-btn {\r\n display: inline-block;\r\n margin-right: 10px;\r\n padding: 0 5px;\r\n cursor: pointer;\r\n user-select: none;\r\n }\r\n .top-bar {\r\n height: 45px;\r\n line-height: 45px;\r\n display: flex;\r\n .moment {\r\n flex: 1;\r\n font-size: 24px;\r\n text-align: center;\r\n }\r\n .prev,\r\n .next {\r\n width: 45px;\r\n height: 45px;\r\n }\r\n }\r\n .yh-calendar-row {\r\n display: flex;\r\n .yh-calendar-item {\r\n flex: 1;\r\n height: 100%;\r\n text-align: center;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n .solar-info {\r\n font-size: 24px;\r\n line-height: 60px;\r\n }\r\n &.not-moment {\r\n opacity: 0.5;\r\n }\r\n &.choose {\r\n color: var(--van-primary-color);\r\n text-shadow: 1px 1px 1px var(--van-gray-4), 2px 2px 1px var(--van-gray-4);\r\n }\r\n &.year {\r\n .solar-info {\r\n font-size: 24px;\r\n }\r\n }\r\n }\r\n &.week {\r\n .yh-calendar-item {\r\n height: 40px;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n<template>\r\n <div class=\"yh-calendar\">\r\n <div class=\"top-bar\">\r\n <div\r\n class=\"prev\"\r\n @click=\"prev\">\r\n <svg\r\n class=\"icon\"\r\n viewBox=\"0 0 1000 1000\"\r\n version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"100%\"\r\n height=\"100%\">\r\n <path\r\n d=\"M600 300 L 400 500 L 600 700\"\r\n fill=\"transparent\"\r\n stroke=\"black\"\r\n stroke-width=\"40\"></path>\r\n </svg>\r\n </div>\r\n <div class=\"moment\">\r\n <span\r\n class=\"yh-calendar-btn\"\r\n @click=\"divType = 'year'\">\r\n {{ momentYear }}年\r\n </span>\r\n <span\r\n class=\"yh-calendar-btn\"\r\n v-show=\"['month', 'date', 'datetime'].includes(type)\"\r\n @click=\"divType = 'month'\">\r\n {{ momentMonth }}月\r\n </span>\r\n <span\r\n class=\"yh-calendar-btn\"\r\n v-show=\"['date', 'datetime'].includes(type)\"\r\n @click=\"divType = 'day'\">\r\n {{ momentDay }}日\r\n </span>\r\n </div>\r\n <div\r\n class=\"next\"\r\n @click=\"next\">\r\n <svg\r\n class=\"icon\"\r\n viewBox=\"0 0 1000 1000\"\r\n version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"100%\"\r\n height=\"100%\">\r\n <path\r\n d=\"M400 300 L 600 500 L 400 700\"\r\n fill=\"transparent\"\r\n stroke=\"black\"\r\n stroke-width=\"40\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n <div\r\n class=\"yh-calendar-row week\"\r\n v-if=\"divType === 'day'\">\r\n <div class=\"yh-calendar-item\">\r\n <div class=\"bottom-info\">周一</div>\r\n </div>\r\n <div class=\"yh-calendar-item\">\r\n <div class=\"bottom-info\">周二</div>\r\n </div>\r\n <div class=\"yh-calendar-item\">\r\n <div class=\"bottom-info\">周三</div>\r\n </div>\r\n <div class=\"yh-calendar-item\">\r\n <div class=\"bottom-info\">周四</div>\r\n </div>\r\n <div class=\"yh-calendar-item\">\r\n <div class=\"bottom-info\">周五</div>\r\n </div>\r\n <div class=\"yh-calendar-item\">\r\n <div class=\"bottom-info\">周六</div>\r\n </div>\r\n <div class=\"yh-calendar-item\">\r\n <div class=\"bottom-info\">周日</div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"yh-calendar-row\"\r\n v-for=\"(row, index) in rows\"\r\n :key=\"index\">\r\n <template v-if=\"divType === 'day'\">\r\n <div\r\n class=\"yh-calendar-item\"\r\n :class=\"{'not-moment': day.month() !== modelValue.month(), choose: day.year() === modelValue.year() && day.month() === modelValue.month() && day.date() === modelValue.date()}\"\r\n v-for=\"(day, index) in row\"\r\n @click=\"chooseDay(day)\"\r\n :key=\"index\">\r\n <div class=\"solar-info\">\r\n {{ day.date() }}\r\n </div>\r\n </div>\r\n </template>\r\n <template v-if=\"divType === 'month'\">\r\n <div\r\n class=\"yh-calendar-item month\"\r\n :class=\"{choose: day.year() === modelValue.year() && day.month() === modelValue.month() && day.date() === modelValue.date()}\"\r\n v-for=\"(day, index) in row\"\r\n @click=\"chooseMonth(day)\"\r\n :key=\"index\">\r\n <div class=\"solar-info\">{{ day.month() + 1 }}月</div>\r\n </div>\r\n </template>\r\n <template v-if=\"divType === 'year'\">\r\n <div\r\n class=\"yh-calendar-item year\"\r\n :class=\"{choose: day.year() === modelValue.year() && day.month() === modelValue.month() && day.date() === modelValue.date()}\"\r\n v-for=\"(day, index) in row\"\r\n @click=\"chooseYear(day)\"\r\n :key=\"index\">\r\n <div class=\"solar-info\">\r\n {{ day.year() }}\r\n </div>\r\n </div>\r\n </template>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport dayjs from 'dayjs';\r\nimport {ref, computed, watch, onMounted} from 'vue';\r\nimport {cloneDeep} from 'lodash-es';\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n type: 'year' | 'month' | 'date' | 'datetime' | 'time';\r\n modelValue: dayjs.Dayjs;\r\n }>(),\r\n {}\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', date: dayjs.Dayjs);\r\n (e: 'change', date: dayjs.Dayjs);\r\n}>();\r\n\r\nconst divType = ref('day');\r\n\r\nwatch(\r\n () => props.type,\r\n (type) => {\r\n switch (type) {\r\n case 'year':\r\n divType.value = 'year';\r\n break;\r\n case 'month':\r\n divType.value = 'month';\r\n break;\r\n case 'date':\r\n case 'datetime':\r\n divType.value = 'day';\r\n break;\r\n }\r\n },\r\n {\r\n deep: true,\r\n immediate: true,\r\n }\r\n);\r\n\r\nconst viewDate = ref(dayjs());\r\n\r\nconst momentYear = computed(() => {\r\n return viewDate.value.format('YYYY');\r\n});\r\n\r\nconst momentMonth = computed(() => {\r\n return viewDate.value.format('MM');\r\n});\r\n\r\nconst momentDay = computed(() => {\r\n return viewDate.value.format('DD');\r\n});\r\nconst changeType = computed(() => {\r\n return divType.value === 'day' ? 'month' : 'year';\r\n});\r\nconst rows = computed<dayjs.Dayjs[][]>(() => {\r\n if (divType.value === 'day') {\r\n // 指定月份第一天\r\n let mMFD = viewDate.value.date(1);\r\n let mMDays = mMFD.endOf('month').date();\r\n let firstIndex = 1 - (mMFD.day() === 0 ? 7 : mMFD.day());\r\n let mMLW = viewDate.value.date(mMDays).day();\r\n let lastIndex = 0;\r\n if (mMLW === 0) {\r\n lastIndex = mMDays;\r\n } else {\r\n lastIndex = mMDays - (mMLW - 7);\r\n }\r\n let items: dayjs.Dayjs[] = [];\r\n for (let i = firstIndex; i < lastIndex; i++) {\r\n let day = mMFD.add(i, 'day');\r\n items.push(day);\r\n }\r\n let powLen = Math.ceil(items.length / 7);\r\n let result: dayjs.Dayjs[][] = [];\r\n for (let j = 0; j < powLen; j++) {\r\n result.push(items.splice(0, 7));\r\n }\r\n return result;\r\n } else if (divType.value === 'month') {\r\n let mMFD = viewDate.value.month();\r\n let firstIndex = 0 - mMFD;\r\n let lastIndex = -(mMFD - 12);\r\n let items: dayjs.Dayjs[] = [];\r\n for (let i = firstIndex; i < lastIndex; i++) {\r\n let month = viewDate.value.add(i, 'month');\r\n items.push(month);\r\n }\r\n let result: dayjs.Dayjs[][] = [];\r\n for (let j = 0; j < 4; j++) {\r\n result.push(items.splice(0, 3));\r\n }\r\n return result;\r\n } else {\r\n let items: dayjs.Dayjs[] = [];\r\n for (let i = -11; i < 13; i++) {\r\n let year = viewDate.value.add(i, 'year');\r\n items.push(year);\r\n }\r\n let result: dayjs.Dayjs[][] = [];\r\n for (let j = 0; j < 4; j++) {\r\n result.push(items.splice(0, 3));\r\n }\r\n return result;\r\n }\r\n});\r\n\r\nfunction chooseDay(day) {\r\n viewDate.value = day;\r\n emits('update:modelValue', day);\r\n emits('change', day);\r\n}\r\nfunction chooseMonth(day) {\r\n chooseDay(day);\r\n if (['date', 'datetime'].includes(props.type)) {\r\n divType.value = 'day';\r\n }\r\n}\r\nfunction chooseYear(day) {\r\n chooseDay(day);\r\n if (['month', 'date', 'datetime'].includes(props.type)) {\r\n divType.value = 'month';\r\n }\r\n}\r\nfunction prev() {\r\n let count = -1;\r\n if (changeType.value === 'year') {\r\n count = -12;\r\n }\r\n let newDate = props.modelValue.add(count, changeType.value).date(1);\r\n viewDate.value = newDate;\r\n chooseDay(newDate);\r\n}\r\nfunction next() {\r\n let count = 1;\r\n if (changeType.value === 'year') {\r\n count = 12;\r\n }\r\n let newDate = props.modelValue.add(count, changeType.value).date(1);\r\n viewDate.value = newDate;\r\n chooseDay(newDate);\r\n}\r\nfunction syncModelValue() {\r\n if (props.modelValue.isValid()) {\r\n viewDate.value = props.modelValue.clone();\r\n }\r\n}\r\n\r\nwatch(\r\n () => props.modelValue,\r\n () => {\r\n syncModelValue;\r\n }\r\n);\r\n\r\ndefineExpose({\r\n syncModelValue,\r\n});\r\n\r\nonMounted(() => {\r\n syncModelValue;\r\n});\r\n</script>\r\n","<template>\r\n <van-time-picker\r\n :show-toolbar=\"false\"\r\n :columns-type=\"['hour', 'minute', 'second']\"\r\n v-model=\"pickerIndexs\"\r\n @change=\"changeHandler\" />\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport {Dayjs} from 'dayjs';\r\nimport {ref, onMounted, watch} from 'vue';\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n type: 'year' | 'month' | 'date' | 'datetime' | 'time';\r\n modelValue: Dayjs;\r\n }>(),\r\n {}\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: Dayjs);\r\n}>();\r\n\r\nconst pickerIndexs = ref(['00', '00', '00']);\r\n\r\nfunction syncModelValue() {\r\n if (props.modelValue.isValid()) {\r\n let hour = props.modelValue.format('HH');\r\n let minute = props.modelValue.format('mm');\r\n let second = props.modelValue.format('ss');\r\n pickerIndexs.value[0] = hour;\r\n pickerIndexs.value[1] = minute;\r\n pickerIndexs.value[2] = second;\r\n }\r\n}\r\n\r\nfunction changeHandler({selectedIndexes}) {\r\n let [hour, minute, second] = selectedIndexes as number[];\r\n let newDate = props.modelValue.clone().hour(hour).minute(minute).second(second);\r\n emits('update:modelValue', newDate);\r\n}\r\n\r\nwatch(\r\n () => props.modelValue,\r\n () => {\r\n syncModelValue();\r\n }\r\n);\r\n\r\ndefineExpose({\r\n syncModelValue,\r\n});\r\n\r\nonMounted(() => {\r\n syncModelValue();\r\n});\r\n</script>\r\n","<style lang=\"scss\">\r\n.yhm-datetime-input-container {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n line-height: 35px;\r\n input {\r\n border: 0;\r\n border-bottom: 1px solid var(--van-gray-3);\r\n width: 20px;\r\n padding: 0 5px;\r\n min-width: auto;\r\n margin: 0 5px;\r\n &:first-child {\r\n width: 40px;\r\n }\r\n &:focus {\r\n border-bottom-color: var(--van-primary-color);\r\n color: var(--van-primary-color);\r\n }\r\n }\r\n}\r\n</style>\r\n<template>\r\n <van-cell :title=\"statusText\"></van-cell>\r\n <div class=\"yhm-datetime-input-container\">\r\n <input\r\n type=\"digit\"\r\n v-model=\"year\"\r\n ref=\"yearRef\"\r\n @input=\"yearChangeHandler\"\r\n @focus=\"inputFocusHandler\"\r\n max-length=\"4\" />\r\n -\r\n <input\r\n type=\"digit\"\r\n v-model=\"month\"\r\n ref=\"monthRef\"\r\n @input=\"monthChangeHandler\"\r\n @focus=\"inputFocusHandler\"\r\n max-length=\"2\" />\r\n -\r\n <input\r\n type=\"digit\"\r\n v-model=\"date\"\r\n ref=\"dateRef\"\r\n @input=\"dateChangeHandler\"\r\n @focus=\"inputFocusHandler\"\r\n max-length=\"2\" />\r\n \r\n <input\r\n type=\"digit\"\r\n v-model=\"hour\"\r\n ref=\"hourRef\"\r\n @input=\"hourChangeHandler\"\r\n @focus=\"inputFocusHandler\"\r\n max-length=\"2\" />\r\n :\r\n <input\r\n type=\"digit\"\r\n v-model=\"minute\"\r\n ref=\"minuteRef\"\r\n @input=\"minuteChangeHandler\"\r\n @focus=\"inputFocusHandler\"\r\n max-length=\"2\" />\r\n :\r\n <input\r\n type=\"digit\"\r\n v-model=\"second\"\r\n ref=\"secondRef\"\r\n @input=\"secondChangeHandler\"\r\n @focus=\"inputFocusHandler\"\r\n max-length=\"2\" />\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport {Dayjs} from 'dayjs';\r\nimport {ref, onMounted, nextTick, watch} from 'vue';\r\nconst props = withDefaults(\r\n defineProps<{\r\n format: string;\r\n type: 'year' | 'month' | 'date' | 'datetime' | 'time';\r\n typeName: string;\r\n modelValue: Dayjs;\r\n }>(),\r\n {}\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', date: Dayjs);\r\n (e: 'change', date: Dayjs);\r\n}>();\r\n\r\nconst statusText = ref('');\r\n\r\nconst year = ref('1900');\r\nconst yearRef = ref();\r\nconst month = ref('01');\r\nconst monthRef = ref();\r\nconst date = ref('01');\r\nconst dateRef = ref();\r\nconst hour = ref('00');\r\nconst hourRef = ref();\r\nconst minute = ref('00');\r\nconst minuteRef = ref();\r\nconst second = ref('00');\r\nconst secondRef = ref();\r\n\r\nfunction yearChangeHandler(e) {\r\n let val = e.target.value;\r\n if (val.length === 4) {\r\n changeModelValue(props.modelValue.year(parseInt(val)));\r\n monthRef.value?.focus();\r\n monthRef.value?.select();\r\n }\r\n}\r\n\r\nfunction inputFocusHandler(e) {\r\n (e.target as HTMLInputElement).select();\r\n}\r\n\r\nfunction monthChangeHandler(e) {\r\n let val = e.target.value;\r\n if (val.length === 2 && !isNaN(parseInt(val))) {\r\n val = parseInt(val);\r\n if (val > 12) {\r\n val = 12;\r\n month.value = '12';\r\n } else if (val < 1) {\r\n val = 1;\r\n month.value = '01';\r\n }\r\n nextTick(() => {\r\n changeModelValue(props.modelValue.month(val - 1));\r\n dateRef.value?.focus();\r\n dateRef.value?.select();\r\n });\r\n } else if (val.length === 0) {\r\n month.value = props.modelValue.format('MM');\r\n yearRef.value?.focus();\r\n yearRef.value?.select();\r\n }\r\n}\r\n\r\nfunction dateChangeHandler(e) {\r\n let val = e.target.value;\r\n if (val.length === 2 && !isNaN(parseInt(val))) {\r\n val = parseInt(val);\r\n if (val > 31) {\r\n val = 31;\r\n date.value = '31';\r\n } else if (val < 1) {\r\n val = 1;\r\n date.value = '01';\r\n }\r\n nextTick(() => {\r\n changeModelValue(props.modelValue.date(val));\r\n hourRef.value?.focus();\r\n hourRef.value?.select();\r\n });\r\n } else if (val.length === 0) {\r\n date.value = props.modelValue.format('DD');\r\n monthRef.value?.focus();\r\n monthRef.value?.select();\r\n }\r\n}\r\n\r\nfunction hourChangeHandler(e) {\r\n let val = e.target.value;\r\n if (val.length === 2 && !isNaN(parseInt(val))) {\r\n val = parseInt(val);\r\n if (val > 24) {\r\n val = 24;\r\n hour.value = '24';\r\n } else if (val < 1) {\r\n val = 1;\r\n hour.value = '01';\r\n }\r\n nextTick(() => {\r\n changeModelValue(props.modelValue.hour(val));\r\n minuteRef.value?.focus();\r\n minuteRef.value?.select();\r\n });\r\n } else if (val.length === 0) {\r\n hour.value = props.modelValue.format('HH');\r\n dateRef.value?.focus();\r\n dateRef.value?.select();\r\n }\r\n}\r\n\r\nfunction minuteChangeHandler(e) {\r\n let val = e.target.value;\r\n if (val.length === 2 && !isNaN(parseInt(val))) {\r\n val = parseInt(val);\r\n if (val > 59) {\r\n val = 59;\r\n minute.value = '59';\r\n } else if (val < 1) {\r\n val = 1;\r\n minute.value = '01';\r\n }\r\n nextTick(() => {\r\n changeModelValue(props.modelValue.minute(val));\r\n secondRef.value?.focus();\r\n secondRef.value?.select();\r\n });\r\n } else if (val.length === 0) {\r\n minute.value = props.modelValue.format('mm');\r\n hourRef.value?.focus();\r\n hourRef.value?.select();\r\n }\r\n}\r\n\r\nfunction secondChangeHandler(e) {\r\n let val = e.target.value;\r\n if (val.length === 2 && !isNaN(parseInt(val))) {\r\n val = parseInt(val);\r\n if (val > 59) {\r\n val = 59;\r\n second.value = '59';\r\n } else if (val < 1) {\r\n val = 1;\r\n second.value = '01';\r\n }\r\n nextTick(() => {\r\n changeModelValue(props.modelValue.second(val));\r\n });\r\n } else if (val.length === 0) {\r\n second.value = props.modelValue.format('ss');\r\n minuteRef.value?.focus();\r\n minuteRef.value?.select();\r\n }\r\n}\r\n\r\nfunction changeModelValue(date) {\r\n emits('update:modelValue', date);\r\n emits('change', date);\r\n statusText.value = date.format(props.format);\r\n}\r\n\r\nfunction syncModelValue() {\r\n if (props.modelValue.isValid()) {\r\n year.value = props.modelValue.format('YYYY');\r\n month.value = props.modelValue.format('MM');\r\n date.value = props.modelValue.format('DD');\r\n hour.value = props.modelValue.format('HH');\r\n minute.value = props.modelValue.format('mm');\r\n second.value = props.modelValue.format('ss');\r\n statusText.value = props.modelValue.format(props.format);\r\n yearRef.value?.focus();\r\n yearRef.value?.select();\r\n }\r\n}\r\n\r\nwatch(\r\n () => props.modelValue,\r\n () => {\r\n syncModelValue();\r\n }\r\n);\r\n\r\ndefineExpose({\r\n syncModelValue,\r\n});\r\nonMounted(() => {\r\n syncModelValue();\r\n});\r\n</script>\r\n","<template>\r\n <van-field class=\"yhm-datetime-container\" :disabled=\" disabled \" v-bind=\" $attrs \" :modelValue=\" modelValue \"\r\n :error=\" error \" :error-message=\" errorMessage \">\r\n <template #input>\r\n <div class=\"yhm-datetime-value\" :class=\" valueClass \" @click=\" toChoose \">\r\n {{ valueString }}\r\n </div>\r\n </template>\r\n </van-field>\r\n <van-popup v-model:show=\" show \" class=\"yhm-datetime-container\" lazy-render teleport=\"body\" position=\"bottom\">\r\n <van-nav-bar left-text=\"清除\" @click-left=\" cancelChoose \" :title=\" `请选择${ typeName }` \" right-text=\"确认\"\r\n @click-right=\" commitChoose \"></van-nav-bar>\r\n <van-tabs v-model:active=\" activeTab \">\r\n <van-tab title=\"日期选择\" v-if=\" [ 'year', 'month', 'date', 'datetime' ].includes( type ) \">\r\n <choose-date ref=\"chooseDateRef\" :type=\" type \" v-model=\" ownValue \"></choose-date>\r\n </van-tab>\r\n <van-tab title=\"时间选择\" v-if=\" [ 'datetime', 'time' ].includes( type ) \">\r\n <choose-time ref=\"chooseTimeRef\" :type=\" type \" v-model=\" ownValue \"></choose-time>\r\n </van-tab>\r\n <van-tab :title=\" `${ typeName }输入` \">\r\n <input-date-time ref=\"inputDateTimeRef\" :format=\" format || typeFormat \" :type=\" type \" :type-name=\" typeName \"\r\n v-model=\" ownValue \"></input-date-time>\r\n </van-tab>\r\n </van-tabs>\r\n </van-popup>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport chooseDate from './yhmDateTime/chooseDate.vue';\r\nimport chooseTime from './yhmDateTime/chooseTime.vue';\r\nimport inputDateTime from './yhmDateTime/inputDateTime.vue';\r\nimport dayjs from 'dayjs';\r\nimport { ref, computed, watch, nextTick } from 'vue';\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n type: 'year' | 'month' | 'date' | 'datetime' | 'time';\r\n error?: boolean;\r\n errorMessage?: string;\r\n format?: string;\r\n disabled?: boolean;\r\n modelValue?: any;\r\n placeholder?: string;\r\n }>(),\r\n {\r\n type: 'datetime',\r\n disabled: false,\r\n placeholder: '请选择日期',\r\n }\r\n);\r\n\r\nconst emits = defineEmits<{\r\n ( e: 'update:modelValue', val: string );\r\n ( e: 'change', val: string );\r\n}>();\r\n\r\nconst chooseDateRef = ref();\r\nconst chooseTimeRef = ref();\r\nconst inputDateTimeRef = ref();\r\n\r\nconst ownValue = ref( dayjs() );\r\n\r\nwatch(\r\n () => props.modelValue,\r\n ( val ) => {\r\n let date = dayjs( val );\r\n if ( date.isValid() && date.valueOf() !== ownValue.value.valueOf() ) {\r\n ownValue.value = date;\r\n }\r\n }\r\n);\r\n\r\nconst valueString = computed( () => {\r\n return props.modelValue || props.placeholder;\r\n} );\r\n\r\nconst valueClass = computed( () => {\r\n return {\r\n placeholder: !props.modelValue,\r\n };\r\n} );\r\n\r\nconst typeFormat = ref( 'YYYY-MM-DD HH:mm:ss' );\r\nconst typeName = computed( () => {\r\n switch ( props.type ) {\r\n case 'year':\r\n typeFormat.value = 'YYYY-01-01 00:00:00';\r\n return '年';\r\n case 'month':\r\n typeFormat.value = 'YYYY-MM-01 00:00:00';\r\n return '年月';\r\n case 'date':\r\n typeFormat.value = 'YYYY-MM-DD 00:00:00';\r\n return '日期';\r\n case 'time':\r\n typeFormat.value = 'HH:mm:ss';\r\n return '时间';\r\n case 'datetime':\r\n typeFormat.value = 'YYYY-MM-DD HH:mm:ss';\r\n return '日期时间';\r\n }\r\n} );\r\n\r\nconst show = ref( false );\r\n\r\nfunction toChoose () {\r\n if ( props.disabled ) {\r\n return false;\r\n }\r\n show.value = true;\r\n let date = dayjs( props.modelValue );\r\n if ( date.isValid() && date.valueOf() !== ownValue.value.valueOf() ) {\r\n ownValue.value = date;\r\n }\r\n nextTick( () => {\r\n chooseDateRef.value?.syncModelValue();\r\n chooseTimeRef.value?.syncModelValue();\r\n inputDateTimeRef.value?.syncModelValue();\r\n } );\r\n}\r\nfunction cancelChoose () {\r\n show.value = false;\r\n ownValue.value = dayjs();\r\n emits( 'update:modelValue', '' );\r\n}\r\n\r\nfunction commitChoose () {\r\n let val = ownValue.value.format( props.format || typeFormat.value );\r\n emits( 'update:modelValue', val );\r\n show.value = false;\r\n}\r\n\r\nconst activeTab = ref( 0 );\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-datetime-container {\r\n --van-switch-width: calc(3em + 4px);\r\n\r\n .yhm-datetime-value {\r\n flex: 1;\r\n width: 100%;\r\n text-align: right;\r\n\r\n &.placeholder {\r\n color: var(--van-text-color-3);\r\n }\r\n }\r\n\r\n &.van-popup {\r\n height: 560px;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-radio-container\"\r\n v-bind=\"$attrs\"\r\n :disabled=\"disabled\"\r\n :modelValue=\"modelValue\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\">\r\n <template #input>\r\n <div class=\"yhm-radio-list\">\r\n <van-radio-group\r\n :disabled=\"disabled\"\r\n :model-value=\"modelValue\"\r\n @update:modelValue=\"changeHandler\">\r\n <van-radio\r\n v-for=\"option in optionData\"\r\n :name=\"option.value\">\r\n {{ option.text }}\r\n </van-radio>\r\n </van-radio-group>\r\n </div>\r\n </template>\r\n </van-field>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {vanOption} from '../types';\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any;\r\n disabled?: boolean;\r\n optionData: vanOption[];\r\n }>(),\r\n {}\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: any);\r\n (e: 'change', val: string);\r\n}>();\r\n\r\nfunction changeHandler(val) {\r\n emits('update:modelValue', val);\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-radio-container {\r\n .yhm-radio-list {\r\n flex: 1;\r\n .van-radio {\r\n padding-bottom: 5px;\r\n &:first-child {\r\n padding-top: 5px;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-radio-container\"\r\n v-bind=\"$attrs\"\r\n :modelValue=\"modelValue\"\r\n :disabled=\"disabled\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\">\r\n <template #input>\r\n <div class=\"yhm-radio-list\">\r\n <van-checkbox-group\r\n shape=\"square\"\r\n :disabled=\"disabled\"\r\n :model-value=\"modelValue\"\r\n @update:modelValue=\"changeHandler\">\r\n <van-checkbox\r\n v-for=\"option in optionData\"\r\n :name=\"option.value\">\r\n {{ option.text }}\r\n </van-checkbox>\r\n </van-checkbox-group>\r\n </div>\r\n </template>\r\n </van-field>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {vanOption} from '../types';\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any[];\r\n disabled?: boolean;\r\n optionData: vanOption[];\r\n }>(),\r\n {}\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: any);\r\n (e: 'change', val: string);\r\n}>();\r\n\r\nfunction changeHandler(val) {\r\n emits('update:modelValue', val);\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-radio-container {\r\n .yhm-radio-list {\r\n flex: 1;\r\n .van-checkbox {\r\n padding-bottom: 5px;\r\n &:first-child {\r\n padding-top: 5px;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-select-container\"\r\n :disabled=\"disabled\"\r\n v-bind=\"$attrs\"\r\n :error=\"error\"\r\n :modelValue=\"modelValue\"\r\n :error-message=\"errorMessage\">\r\n <template #input>\r\n <div\r\n class=\"yhm-select-value\"\r\n :class=\"valueClass\"\r\n @click=\"toChoose\">\r\n {{ valueString }}\r\n </div>\r\n </template>\r\n </van-field>\r\n <van-popup\r\n v-model:show=\"show\"\r\n class=\"yhm-select-container\"\r\n position=\"bottom\">\r\n <van-picker\r\n :title=\"palceholder\"\r\n :columns=\"filterOptionData\"\r\n :modelValue=\"[modelValue]\"\r\n ref=\"pickerRef\"\r\n @confirm=\"onComfirm\"\r\n @cancel=\"onCancel\">\r\n <template\r\n #title\r\n v-if=\"filterabled\">\r\n <input\r\n class=\"yhm-select-filter-input\"\r\n placeholder=\"输入关键词筛选\"\r\n type=\"text\"\r\n v-model=\"filterKeyword\"\r\n @input=\"filterChange\" />\r\n </template>\r\n </van-picker>\r\n </van-popup>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {ref, computed} from 'vue';\r\n\r\nconst props = withDefaults(defineProps<{error?: boolean; errorMessage?: string; modelValue?: any; disabled?: boolean; palceholder?: string; optionData: any[]; filterabled?: boolean; remoteFilter?: boolean}>(), {\r\n disabled: false,\r\n filterabled: false,\r\n remoteFilter: false,\r\n palceholder: '请选择',\r\n});\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: string);\r\n (e: 'change', val: string);\r\n (e: 'filter', val: string);\r\n}>();\r\n\r\nconst valueString = computed(() => {\r\n if (props.modelValue) {\r\n let option = props.optionData.filter((item) => item.value === props.modelValue)[0];\r\n return option ? option.text : props.modelValue;\r\n } else {\r\n return props.palceholder || '请选择';\r\n }\r\n});\r\n\r\nconst valueClass = computed(() => {\r\n return {\r\n placeholder: !props.modelValue,\r\n };\r\n});\r\n\r\nconst show = ref(false);\r\nconst pickerRef = ref();\r\n\r\nconst filterKeyword = ref('');\r\nconst filterOptionData = computed(() => {\r\n if (props.filterabled && !props.remoteFilter) {\r\n return props.optionData.filter(({text, value}) => {\r\n return text.indexOf(filterKeyword.value) > -1 || value.indexOf(filterKeyword.value) > -1;\r\n });\r\n } else {\r\n return props.optionData;\r\n }\r\n});\r\nlet filterTimer = null;\r\nfunction filterChange() {\r\n if (filterTimer) {\r\n clearTimeout(filterTimer);\r\n filterTimer = null;\r\n }\r\n // @ts-ignore\r\n filterTimer = setTimeout(() => {\r\n emits('filter', filterKeyword.value);\r\n }, 300);\r\n}\r\n\r\nfunction toChoose() {\r\n if (props.disabled) {\r\n return false;\r\n }\r\n show.value = true;\r\n}\r\n\r\n// function onChange({ selectedValues }) {\r\n// emits(\"update:modelValue\", selectedValues[0]);\r\n// }\r\nfunction onCancel() {\r\n show.value = false;\r\n}\r\n\r\nfunction onComfirm({selectedValues}) {\r\n emits('update:modelValue', selectedValues[0]);\r\n onCancel();\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-select-container {\r\n --van-switch-width: calc(3em + 4px);\r\n .yhm-select-value {\r\n flex: 1;\r\n width: 100%;\r\n text-align: right;\r\n &.placeholder {\r\n color: var(--van-text-color-3);\r\n }\r\n }\r\n &.van-popup {\r\n height: 560px;\r\n .yhm-select-filter-input {\r\n flex: 1;\r\n line-height: 30px;\r\n font-size: 12px;\r\n border: 1px solid var(--van-border-color);\r\n padding: 0 8px;\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-input-container\"\r\n v-bind=\"$attrs\"\r\n :model-value=\"modelValue\"\r\n @update:modelValue=\"changeHandler\"\r\n @keydown=\"keydownHandler\"\r\n :type=\"inputType\"\r\n :error=\"error\"\r\n ref=\"fieldRef\"\r\n :error-message=\"errorMessage\">\r\n <template\r\n #right-icon\r\n v-if=\"props.type === 'scan'\">\r\n <svg\r\n width=\"20px\"\r\n height=\"20px\"\r\n style=\"vertical-align: middle\"\r\n viewBox=\"0 0 1000 1000\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n stroke=\"var(--van-field-right-icon-color)\"\r\n stroke-width=\"60\"\r\n stroke-linejoin=\"round\"\r\n fill=\"none\"\r\n d=\"M200,350 L200,200 L400,200 M600,200 L800,200 L800,400 M800,600 L800,800 L600,800 M400,800 L200,800 L200,600 M0,500 L1000,500\"></path>\r\n </svg>\r\n </template>\r\n </van-field>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { computed, ref } from \"vue\";\r\nconst props = withDefaults(\r\n defineProps<{\r\n type?: string;\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any;\r\n precision?: number;\r\n scanCallback?: (val) => void;\r\n }>(),\r\n {\r\n type: \"text\",\r\n }\r\n);\r\n\r\nconst inputType = computed(() => {\r\n if (props.type === \"scan\") {\r\n return \"text\";\r\n } else {\r\n return props.type;\r\n }\r\n});\r\n\r\nconst emits = defineEmits<{\r\n (e: \"update:modelValue\", val: any);\r\n (e: \"change\", val: any);\r\n (e: \"scan\", val: any);\r\n}>();\r\n\r\nfunction changeHandler(val) {\r\n if (props.type === \"number\" && props.precision && !isNaN(props.precision)) {\r\n let valArr = val.split(\".\");\r\n if (valArr[1] && valArr[1].length && valArr[1].length > props.precision) {\r\n val = `${valArr[0]}.${valArr[1].substring(0, props.precision)}`;\r\n }\r\n }\r\n emits(\"update:modelValue\", val);\r\n emits(\"change\", val);\r\n}\r\n\r\nfunction keydownHandler(e: KeyboardEvent) {\r\n let key = e.key;\r\n if (key === \"Enter\" && props.type === \"scan\") {\r\n if (props.scanCallback && typeof props.scanCallback === \"function\") {\r\n props.scanCallback(props.modelValue);\r\n }\r\n }\r\n}\r\n\r\nconst fieldRef = ref();\r\nfunction focus() {\r\n fieldRef.value?.focus();\r\n}\r\n\r\nfunction blur() {\r\n fieldRef.value?.blur();\r\n}\r\ndefineExpose({ fieldRef, focus, blur });\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-input-container {\r\n .van-field__control {\r\n text-align: right;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-switch-container\"\r\n v-bind=\"$attrs\"\r\n :modelValue=\"modelValue\"\r\n :disabled=\"disabled\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\">\r\n <template #input>\r\n <div class=\"yhm-switch-value\">\r\n <van-switch\r\n :disabled=\"disabled\"\r\n :model-value=\"modelValue\"\r\n :active-value=\"activeValue\"\r\n :inactive-value=\"inactiveValue\"\r\n :size=\"size\"\r\n @update:modelValue=\"changeHandler\">\r\n <template #background>\r\n <div class=\"yhm-switch-value-text\">\r\n {{ modelValue === activeValue ? activeText : inactiveText }}\r\n </div>\r\n </template>\r\n </van-switch>\r\n </div>\r\n </template>\r\n </van-field>\r\n</template>\r\n<script setup lang=\"ts\">\r\nconst props = withDefaults(\r\n defineProps<{\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any;\r\n disabled?: boolean;\r\n size?: number;\r\n activeValue?: boolean;\r\n inactiveValue?: boolean;\r\n activeText?: string;\r\n inactiveText?: string;\r\n }>(),\r\n {\r\n disabled: false,\r\n size: 18,\r\n activeValue: true,\r\n inactiveValue: false,\r\n activeText: '',\r\n inactiveText: '',\r\n }\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: any);\r\n (e: 'change', val: any);\r\n}>();\r\n\r\nfunction changeHandler(val) {\r\n emits('update:modelValue', val);\r\n emits('change', val);\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-switch-container {\r\n .yhm-switch-value {\r\n flex: 1;\r\n display: flex;\r\n justify-content: flex-end;\r\n .van-switch {\r\n width: auto;\r\n .yhm-switch-value-text {\r\n transition: padding 0.3s ease 0s;\r\n padding: 0 0.5em 0 2em;\r\n font-size: 0.8em;\r\n color: var(--van-white);\r\n height: 22px;\r\n line-height: 22px;\r\n }\r\n &.van-switch--on {\r\n .van-switch__node {\r\n transform: none;\r\n left: auto;\r\n right: 2px;\r\n }\r\n .yhm-switch-value-text {\r\n padding: 0 2em 0 0.5em;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-password-container\"\r\n ref=\"passwordRef\"\r\n v-bind=\"$attrs\"\r\n :model-value=\"modelValue\"\r\n @update:modelValue=\"changeHandler\"\r\n :type=\"inputType\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\">\r\n <template #right-icon>\r\n <svg\r\n width=\"40px\"\r\n height=\"20px\"\r\n style=\"vertical-align: middle\"\r\n viewBox=\"0 0 2000 1000\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n @click=\"changeShowPassword\">\r\n <path\r\n d=\"M100,500 L100,200 S100,100 200,100 L1800,100 S1900,100 1900,200 L1900,800 S1900,900 1800,900 L200,900 S100,900 100,800 Z\"\r\n stroke=\"var(--van-field-right-icon-color)\"\r\n stroke-width=\"50\"\r\n fill=\"none\"></path>\r\n pa\r\n <g v-if=\"!showPassword\">\r\n <circle\r\n r=\"150\"\r\n stroke-width=\"0\"\r\n fill=\"var(--van-field-right-icon-color)\"\r\n cx=\"500\"\r\n cy=\"500\"></circle>\r\n <circle\r\n r=\"150\"\r\n stroke-width=\"0\"\r\n fill=\"var(--van-field-right-icon-color)\"\r\n cx=\"1000\"\r\n cy=\"500\"></circle>\r\n <circle\r\n r=\"150\"\r\n stroke-width=\"0\"\r\n fill=\"var(--van-field-right-icon-color)\"\r\n cx=\"1500\"\r\n cy=\"500\"></circle>\r\n </g>\r\n <g v-else>\r\n <polyline\r\n points=\"350,300 650,300 500,300 500 700\"\r\n stroke=\"var(--van-field-right-icon-color)\"\r\n stroke-width=\"60\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n fill=\"none\"></polyline>\r\n <polyline\r\n points=\"850,300 1150,300 1000,300 1000 700\"\r\n stroke=\"var(--van-field-right-icon-color)\"\r\n stroke-width=\"60\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n fill=\"none\"></polyline>\r\n <polyline\r\n points=\"1350,300 1650,300 1500,300 1500 700\"\r\n stroke=\"var(--van-field-right-icon-color)\"\r\n stroke-width=\"60\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n fill=\"none\"></polyline>\r\n </g>\r\n </svg>\r\n </template>\r\n </van-field>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { computed, ref } from \"vue\";\r\nconst props = withDefaults(\r\n defineProps<{\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any;\r\n }>(),\r\n {}\r\n);\r\n\r\nconst showPassword = ref(false);\r\n\r\nconst inputType = computed(() => {\r\n if (showPassword.value) {\r\n return \"text\";\r\n } else {\r\n return \"password\";\r\n }\r\n});\r\n\r\nconst emits = defineEmits<{\r\n (e: \"update:modelValue\", val: any);\r\n (e: \"change\", val: any);\r\n}>();\r\n\r\nfunction changeHandler(val) {\r\n emits(\"update:modelValue\", val);\r\n emits(\"change\", val);\r\n}\r\n\r\nconst passwordRef = ref();\r\nfunction changeShowPassword() {\r\n showPassword.value = !showPassword.value;\r\n passwordRef.value?.focus();\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-password-container {\r\n .van-field__control {\r\n text-align: right;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-cascader-container\"\r\n v-bind=\"$attrs\"\r\n :modelValue=\"modelValue\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\"\r\n :disabled=\"disabled\">\r\n <template #input>\r\n <div @click=\"showSignature\">\r\n <span :class=\"{placeholder: !modelValue}\">\r\n {{ modelText || placeholder }}\r\n </span>\r\n </div>\r\n </template>\r\n </van-field>\r\n <van-popup\r\n class=\"yhm-cascader-container\"\r\n v-model:show=\"isShow\"\r\n position=\"bottom\">\r\n <van-cascader\r\n :value-model=\"modelValue\"\r\n :title=\"placeholder\"\r\n :options=\"optionData\"\r\n @close=\"onCancel\"\r\n @finish=\"onFinish\" />\r\n </van-popup>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {ref} from 'vue';\r\nimport {vanOption} from '../types';\r\nconst props = withDefaults(\r\n defineProps<{\r\n placeholder?: string;\r\n disabled?: boolean;\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any;\r\n optionData: vanOption[];\r\n }>(),\r\n {\r\n disabled: false,\r\n placeholder: '请选择',\r\n }\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: any);\r\n (e: 'change', val: any);\r\n}>();\r\n\r\nconst isShow = ref(false);\r\nconst modelText = ref('');\r\nfunction showSignature() {\r\n if (!props.disabled) {\r\n isShow.value = true;\r\n }\r\n}\r\nfunction changeHandler(val) {\r\n emits('update:modelValue', val);\r\n emits('change', val);\r\n}\r\n\r\nfunction onFinish({selectedOptions}) {\r\n let value = selectedOptions.map((option) => option.value).join('/');\r\n modelText.value = selectedOptions.map((option) => option.text).join('/');\r\n changeHandler(value);\r\n isShow.value = false;\r\n}\r\nfunction onCancel() {\r\n changeHandler('');\r\n isShow.value = false;\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-cascader-container {\r\n .van-field__control {\r\n justify-content: flex-end;\r\n\r\n .placeholder {\r\n color: var(--van-text-color-3);\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-rate-container\"\r\n v-bind=\"$attrs\"\r\n :modelValue=\"modelValue\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\"\r\n :disabled=\"disabled\">\r\n <template #input>\r\n <van-rate\r\n :disabled=\"disabled\"\r\n :model-value=\"modelValue\"\r\n @update:modelValue=\"changeHandler\"\r\n :count=\"count\"\r\n :size=\"size\"\r\n :gutter=\"gutter\"\r\n :color=\"color\"\r\n :allow-half=\"allowHalf\"\r\n :clearable=\"clearable\"></van-rate>\r\n </template>\r\n </van-field>\r\n</template>\r\n<script setup lang=\"ts\">\r\nconst props = withDefaults(\r\n defineProps<{\r\n disabled?: boolean;\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any;\r\n count?: number;\r\n size?: number;\r\n gutter?: number;\r\n color?: string;\r\n allowHalf?: boolean;\r\n clearable?: boolean;\r\n }>(),\r\n {\r\n disabled: false,\r\n step: 1,\r\n min: 1,\r\n barHeight: '2px',\r\n buttonSize: '24px',\r\n }\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: any);\r\n (e: 'change', val: any);\r\n}>();\r\n\r\nfunction changeHandler(val) {\r\n emits('update:modelValue', val);\r\n emits('change', val);\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-rate-container {\r\n .van-field__control {\r\n justify-content: flex-end;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-signature-container\"\r\n v-bind=\"$attrs\"\r\n :modelValue=\"modelValue\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\"\r\n :disabled=\"disabled\">\r\n <template #input>\r\n <span\r\n @click=\"showSignature\"\r\n class=\"placeholder\"\r\n v-if=\"!modelValue\">\r\n 点击进行签名\r\n </span>\r\n <img\r\n v-else\r\n class=\"signature-image\"\r\n @click=\"showSignature\"\r\n :src=\"modelValue\"\r\n alt=\"签名\" />\r\n </template>\r\n </van-field>\r\n <van-popup\r\n class=\"yhm-signature-container\"\r\n v-model:show=\"isShow\"\r\n position=\"bottom\">\r\n <van-signature\r\n @submit=\"onSubmit\"\r\n @clear=\"onClear\"></van-signature>\r\n </van-popup>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {ref} from 'vue';\r\nconst props = withDefaults(\r\n defineProps<{\r\n disabled?: boolean;\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any;\r\n }>(),\r\n {\r\n disabled: false,\r\n }\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: any);\r\n (e: 'change', val: any);\r\n}>();\r\n\r\nconst isShow = ref(false);\r\nfunction showSignature() {\r\n if (!props.disabled) {\r\n isShow.value = true;\r\n }\r\n}\r\nfunction changeHandler(val) {\r\n emits('update:modelValue', val);\r\n emits('change', val);\r\n}\r\n\r\nfunction onSubmit({image}) {\r\n changeHandler(image);\r\n isShow.value = false;\r\n}\r\nfunction onClear() {\r\n changeHandler('');\r\n isShow.value = false;\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-signature-container {\r\n .van-field__control {\r\n justify-content: flex-end;\r\n .placeholder {\r\n color: var(--van-text-color-3);\r\n }\r\n .signature-image {\r\n width: auto;\r\n max-height: 60px;\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-slider-container\"\r\n v-bind=\"$attrs\"\r\n :modelValue=\"modelValue\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\"\r\n :disabled=\"disabled\">\r\n <template #input>\r\n <van-slider\r\n :disabled=\"disabled\"\r\n :model-value=\"modelValue\"\r\n @update:modelValue=\"changeHandler\"\r\n :step=\"step\"\r\n :min=\"min\"\r\n :max=\"max\"\r\n :bar-height=\"barHeight\"\r\n :button-size=\"buttonSize\"></van-slider>\r\n </template>\r\n </van-field>\r\n</template>\r\n<script setup lang=\"ts\">\r\nconst props = withDefaults(\r\n defineProps<{\r\n disabled?: boolean;\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any;\r\n step?: number;\r\n min?: number;\r\n max?: number;\r\n barHeight?: string;\r\n buttonSize?: string;\r\n }>(),\r\n {\r\n disabled: false,\r\n step: 1,\r\n min: 1,\r\n barHeight: '2px',\r\n buttonSize: '24px',\r\n }\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: any);\r\n (e: 'change', val: any);\r\n}>();\r\n\r\nfunction changeHandler(val) {\r\n emits('update:modelValue', val);\r\n emits('change', val);\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-slider-container {\r\n .van-field__control {\r\n justify-content: flex-end;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-stepper-container\"\r\n v-bind=\"$attrs\"\r\n :modelValue=\"modelValue\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\"\r\n :disabled=\"disabled\">\r\n <template #input>\r\n <van-stepper\r\n :disabled=\"disabled\"\r\n :model-value=\"modelValue\"\r\n @update:modelValue=\"changeHandler\"\r\n :step=\"step\"\r\n :min=\"min\"\r\n :max=\"max\"\r\n :decimalLength=\"decimalLength\"></van-stepper>\r\n </template>\r\n </van-field>\r\n</template>\r\n<script setup lang=\"ts\">\r\nconst props = withDefaults(\r\n defineProps<{\r\n disabled?: boolean;\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any;\r\n step?: number;\r\n min?: number;\r\n max?: number;\r\n decimalLength?: number;\r\n }>(),\r\n {\r\n disabled: false,\r\n step: 1,\r\n min: 1,\r\n decimalLength: 0,\r\n }\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: any);\r\n (e: 'change', val: any);\r\n}>();\r\n\r\nfunction changeHandler(val) {\r\n emits('update:modelValue', val);\r\n emits('change', val);\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-stepper-container {\r\n .van-field__control {\r\n justify-content: flex-end;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-scan-and-select-container\"\r\n :disabled=\"disabled\"\r\n v-bind=\"$attrs\"\r\n v-model=\"modelValue\"\r\n @keydown=\"keydownHandler\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\">\r\n <template #right-icon>\r\n <svg\r\n width=\"20px\"\r\n height=\"20px\"\r\n style=\"vertical-align: middle\"\r\n viewBox=\"0 0 1000 1000\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n stroke=\"var(--van-field-right-icon-color)\"\r\n stroke-width=\"60\"\r\n stroke-linejoin=\"round\"\r\n fill=\"none\"\r\n d=\"M200,350 L200,200 L400,200 M600,200 L800,200 L800,400 M800,600 L800,800 L600,800 M400,800 L200,800 L200,600 M0,500 L1000,500\"></path>\r\n </svg>\r\n <svg\r\n width=\"20px\"\r\n height=\"20px\"\r\n style=\"vertical-align: middle; margin-left: 5px\"\r\n viewBox=\"0 0 1000 1000\"\r\n @click=\"toChoose\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n stroke=\"none\"\r\n fill=\"var(--van-gray-8)\"\r\n class=\"select-icon\"\r\n :d=\"selectIconPath\"></path>\r\n </svg>\r\n </template>\r\n </van-field>\r\n <van-popup\r\n v-model:show=\"show\"\r\n class=\"yhm-select-container\"\r\n position=\"bottom\">\r\n <van-picker\r\n :title=\"palceholder\"\r\n :columns=\"filterOptionData\"\r\n :modelValue=\"[modelValue]\"\r\n ref=\"pickerRef\"\r\n @confirm=\"onComfirm\"\r\n @cancel=\"onCancel\">\r\n <template\r\n #title\r\n v-if=\"filterabled\">\r\n <input\r\n class=\"yhm-select-filter-input\"\r\n placeholder=\"输入关键词筛选\"\r\n type=\"text\"\r\n v-model=\"filterKeyword\" />\r\n </template>\r\n </van-picker>\r\n </van-popup>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { ref, computed } from \"vue\";\r\n\r\nconst props = withDefaults(defineProps<{ error?: boolean; errorMessage?: string; disabled?: boolean; palceholder?: string; optionData: any[]; filterabled?: boolean; remoteFilter?: boolean }>(), {\r\n disabled: false,\r\n filterabled: false,\r\n remoteFilter: false,\r\n palceholder: \"请选择\",\r\n});\r\n\r\nconst emits = defineEmits<{\r\n (e: \"scan\", val: string);\r\n}>();\r\n\r\nconst modelValue = ref();\r\n\r\nconst selectIconPath = computed(() => {\r\n return !show.value ? \"M100,300 L500,300 L900,300 L500,700 Z\" : \"M100,700 L500,300 L900,700 L500,700 Z\";\r\n});\r\n\r\nconst show = ref(false);\r\nconst pickerRef = ref();\r\n\r\nconst filterKeyword = ref(\"\");\r\nconst filterOptionData = computed(() => {\r\n if (props.filterabled && !props.remoteFilter) {\r\n return props.optionData.filter(({ text, value }) => {\r\n return text.indexOf(filterKeyword.value) > -1 || value.indexOf(filterKeyword.value) > -1;\r\n });\r\n } else {\r\n return props.optionData;\r\n }\r\n});\r\n\r\nfunction keydownHandler(e: KeyboardEvent) {\r\n let key = e.key;\r\n if (key === \"Enter\") {\r\n changeHandler();\r\n }\r\n}\r\n\r\nfunction changeHandler() {\r\n emits(\"scan\", modelValue.value);\r\n}\r\n\r\nfunction toChoose() {\r\n if (props.disabled) {\r\n return false;\r\n }\r\n show.value = true;\r\n}\r\n\r\n// function onChange({ selectedValues }) {\r\n// emits(\"update:modelValue\", selectedValues[0]);\r\n// }\r\nfunction onCancel() {\r\n show.value = false;\r\n}\r\n\r\nfunction onComfirm({ selectedValues }) {\r\n modelValue.value = selectedValues[0];\r\n emits(\"scan\", modelValue.value);\r\n onCancel();\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-scan-and-select-container {\r\n --van-switch-width: calc(3em + 4px);\r\n .select-icon {\r\n transition: all 0.3s ease-in-out 0s;\r\n }\r\n &.van-popup {\r\n height: 560px;\r\n .yhm-select-filter-input {\r\n flex: 1;\r\n line-height: 30px;\r\n font-size: 12px;\r\n border: 1px solid var(--van-border-color);\r\n padding: 0 8px;\r\n }\r\n }\r\n}\r\n</style>\r\n","/**\r\n *\r\n * @param {HTMLElement} el\r\n * @param {Boolean} value\r\n * @param {String} color\r\n * @param {String} bgColor\r\n * @returns\r\n */\r\nfunction initLoading({el, value, color = 'rgb(25, 137, 250)', bgColor = 'rgba(255,255,255,0.5)', zIndex = 10, text = '加载中......'}) {\r\n const id = `yhmLoading-${Date.now()}`;\r\n el.setAttribute('data-loadingid', id);\r\n\r\n el.style.position = 'relative';\r\n\r\n const isVanBtn = el.classList.contains('van-button');\r\n const elStyles = window.getComputedStyle(el);\r\n const elZIndex = parseInt(elStyles.getPropertyValue('z-index'));\r\n if (!isNaN(elZIndex)) {\r\n zindex = elZIndex + 10;\r\n }\r\n const vLoading = document.createElement('div');\r\n vLoading.setAttribute('id', id);\r\n vLoading.className = `van-loading van-loading--circular`;\r\n let style = `display: none; flex-direction: column; position: absolute; left: 0px; top: 0px; width: calc(100% - ${isVanBtn ? 2 : 0}px); height: calc(100% + ${isVanBtn ? 2 : 0}px);justify-content: center;align-items: center;background-color: ${bgColor}; z-index: ${zindex};`;\r\n if (isVanBtn) {\r\n style += 'margin: -1px;';\r\n }\r\n vLoading.setAttribute('style', style);\r\n const vLoadingSpiner = document.createElement('span');\r\n vLoadingSpiner.className = `van-loading__spinner van-loading__spinner--circular`;\r\n vLoadingSpiner.style.color = color;\r\n vLoadingSpiner.innerHTML = `<svg class=\"van-loading__circular\" viewBox=\"25 25 50 50\"><circle cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\"></circle></svg>`;\r\n vLoading.appendChild(vLoadingSpiner);\r\n const vLoadingText = document.createElement('span');\r\n vLoadingText.className = `van-loading__text`;\r\n vLoadingText.style.color = color;\r\n vLoadingText.innerText = text;\r\n vLoading.appendChild(vLoadingText);\r\n el.appendChild(vLoading);\r\n syncLoadingStatus(el, vLoading, value);\r\n return vLoading;\r\n}\r\n\r\nfunction syncLoadingStatus(el, vLoading, value) {\r\n if (value) {\r\n el.style.opacity = '0.5';\r\n el.style.overflow = 'hidden';\r\n vLoading.style.display = 'flex';\r\n vLoading.style.top = el.scrollTop + 'px';\r\n } else {\r\n el.style.opacity = '1';\r\n el.style.overflow = '';\r\n vLoading.style.display = 'none';\r\n }\r\n}\r\nexport const directives = {\r\n created(el, {value, instance}) {\r\n let {color, bgcolor: bgColor, text, zindex: zIndex} = el.dataset;\r\n instance.$nextTick(() => {\r\n initLoading({el, value, color, bgColor, text, zIndex});\r\n });\r\n },\r\n updated(el, {value}) {\r\n let id = el.dataset.loadingid;\r\n const vLoading = document.getElementById(id);\r\n syncLoadingStatus(el, vLoading, value);\r\n },\r\n unmounted(el, binding) {},\r\n};\r\n\r\n/**\r\n * loading 服务\r\n * @param {Object} param\r\n * @param {HTMLElement} [param.el = document.body] loading 挂载的dom对象, 默认为 body\r\n * @param {string} [param.color = 'rgb(25, 137, 250)'] 加载图片和文字的颜色\r\n * @param {string} [param.bgColor = 'rgba(255,255,255,0.5)'] 加载遮罩的背景色\r\n * @param {number} [param.zindex = 10] 遮罩的 Z 轴层级\r\n * @param {string} [param.text = '加载中......'] 加载文字提示内容\r\n */\r\nexport function services(param) {\r\n let {el} = param;\r\n if (!el instanceof HTMLElement) {\r\n throw new Error('el 参数不是文档对象');\r\n }\r\n let vLoading = initLoading(param);\r\n return {\r\n close() {\r\n el.style.position = '';\r\n el.style.opacity = '';\r\n el.style.overflow = '';\r\n vLoading.remove();\r\n },\r\n };\r\n}\r\n","import yhmList from \"./info/yhmList.vue\";\r\nimport yhmDropdownItem from \"./info/yhmDropdownItem.vue\";\r\nimport yhmTabs from \"./info/yhmTabs.vue\";\r\nimport yhmInfo from \"./info/yhmInfo.vue\";\r\nimport yhmInfoItem from \"./info/yhmInfoItem.vue\";\r\nimport yhmTable from \"./info/yhmTable.vue\";\r\nimport yhmForm from \"./form/yhm-form.vue\";\r\nimport yhmDatetime from \"./form/yhmDatetime.vue\";\r\nimport yhmRadio from \"./form/yhmRadio.vue\";\r\nimport yhmCheckbox from \"./form/yhmCheckbox.vue\";\r\nimport yhmSelect from \"./form/yhmSelect.vue\";\r\nimport yhmInput from \"./form/yhmInput.vue\";\r\nimport yhmSwitch from \"./form/yhmSwitch.vue\";\r\nimport yhmPassword from \"./form/yhmPassword.vue\";\r\nimport yhmCascader from \"./form/yhmCascader.vue\";\r\nimport yhmRate from \"./form/yhmRate.vue\";\r\nimport yhmSignature from \"./form/yhmSignature.vue\";\r\nimport yhmSlider from \"./form/yhmSlider.vue\";\r\nimport yhmStepper from \"./form/yhmStepper.vue\";\r\nimport yhmScanAndSelect from \"./functional/yhmScanAndSelect.vue\";\r\nimport { directives as loadingDirectives, services as loadingServices } from \"./extensions/loading\";\r\n\r\nexport default {\r\n install ( app ) {\r\n app.directive( \"loading\", loadingDirectives );\r\n app.config.globalProperties.$loading = loadingDirectives;\r\n app.component( \"yhm-list\", yhmList );\r\n app.component( \"yhm-dropdown-item\", yhmDropdownItem );\r\n app.component( \"yhm-tabs\", yhmTabs );\r\n app.component( \"yhm-info\", yhmInfo );\r\n app.component( \"yhm-info-item\", yhmInfoItem );\r\n app.component( \"yhm-table\", yhmTable );\r\n app.component( \"yhm-form\", yhmForm );\r\n app.component( \"yhm-datetime\", yhmDatetime );\r\n app.component( \"yhm-radio\", yhmRadio );\r\n app.component( \"yhm-checkbox\", yhmCheckbox );\r\n app.component( \"yhm-input\", yhmInput );\r\n app.component( \"yhm-select\", yhmSelect );\r\n app.component( \"yhm-switch\", yhmSwitch );\r\n app.component( \"yhm-password\", yhmPassword );\r\n app.component( \"yhm-cascader\", yhmCascader );\r\n app.component( \"yhm-rate\", yhmRate );\r\n app.component( \"yhm-signature\", yhmSignature );\r\n app.component( \"yhm-slider\", yhmSlider );\r\n app.component( \"yhm-stepper\", yhmStepper );\r\n app.component( \"yhm-scan-and-select\", yhmScanAndSelect );\r\n },\r\n};\r\n"],"names":["scrollContent","ref","keyword","setKeyowrd","k","nextTick","getList","params","reactive","list","listLoading","listError","pageIndex","pageSize","refreshing","finished","tabsParamsConfig","computed","_a","props","config","dropdownParamsConfig","customParamsConfig","item","timer","isClear","l","t","onSearch","type","watch","renderCustom","row","label","span","align","descAlign","fontSize","status","description","defaultDescription","slot","value","defaultValue","onMounted","i","paramItem","onActivated","expose","modelValue","val","updateHandler","emits","yhmTabsRef","optionVals","items","index","e","widthCount","tableWidth","width","accumulator","column","w","optionsConfig","required","name","disabled","placeholder","rexMsg","rex","itemChange","labelAlign","error","errorMessage","component","verificationResult","vals","flag","handlerChange","valFlag","option","module","this","n","r","s","u","a","o","c","f","h","d","$","y","M","m","v","g","D","p","S","_","O","b","divType","viewDate","dayjs","momentYear","momentMonth","momentDay","changeType","rows","mMFD","mMDays","firstIndex","mMLW","lastIndex","day","powLen","result","j","month","year","chooseDay","chooseMonth","chooseYear","prev","count","newDate","next","syncModelValue","pickerIndexs","hour","minute","second","changeHandler","selectedIndexes","statusText","yearRef","monthRef","date","dateRef","hourRef","minuteRef","secondRef","yearChangeHandler","changeModelValue","_b","inputFocusHandler","monthChangeHandler","dateChangeHandler","hourChangeHandler","minuteChangeHandler","secondChangeHandler","chooseDateRef","chooseTimeRef","inputDateTimeRef","ownValue","valueString","valueClass","typeFormat","typeName","show","toChoose","_c","cancelChoose","commitChoose","activeTab","pickerRef","filterKeyword","filterOptionData","text","filterTimer","filterChange","onCancel","onComfirm","selectedValues","inputType","valArr","keydownHandler","fieldRef","focus","blur","showPassword","passwordRef","changeShowPassword","isShow","modelText","showSignature","onFinish","selectedOptions","onSubmit","image","onClear","selectIconPath","initLoading","el","color","bgColor","zIndex","id","isVanBtn","elStyles","elZIndex","vLoading","style","vLoadingSpiner","vLoadingText","syncLoadingStatus","directives","instance","binding","app","loadingDirectives","yhmList","yhmDropdownItem","yhmTabs","yhmInfo","yhmInfoItem","yhmTable","yhmForm","yhmDatetime","yhmRadio","yhmCheckbox","yhmInput","yhmSelect","yhmSwitch","yhmPassword","yhmCascader","yhmRate","yhmSignature","yhmSlider","yhmStepper","yhmScanAndSelect"],"mappings":"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","x_google_ignoreList":[6]}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../info/yhmList.vue","../info/yhmDropdownItem.vue","../info/yhmTabs.vue","../info/yhmInfoItem.vue","../info/yhmTable.vue","../form/yhm-form.vue","../../../node_modules/dayjs/dayjs.min.js","../form/yhmDateTime/chooseDate.vue","../form/yhmDateTime/chooseTime.vue","../form/yhmDateTime/inputDateTime.vue","../form/yhmDatetime.vue","../form/yhmRadio.vue","../form/yhmCheckbox.vue","../form/yhmSelect.vue","../form/yhmInput.vue","../form/yhmSwitch.vue","../form/yhmPassword.vue","../form/yhmCascader.vue","../form/yhmRate.vue","../form/yhmSignature.vue","../form/yhmSlider.vue","../form/yhmStepper.vue","../functional/yhmScanAndSelect.vue","../extensions/loading.js","../index.ts"],"sourcesContent":["<template>\r\n <section class=\"yhm-list-container\">\r\n <section class=\"list-condition-container\">\r\n <yhm-tabs\r\n v-for=\"conf in tabsParamsConfig\"\r\n :valueObj=\"params\"\r\n :value=\"conf.value\"\r\n :optionData=\"conf.optionData\"></yhm-tabs>\r\n <van-search\r\n v-if=\"hasSearch\"\r\n v-model=\"keyword\"\r\n :placeholder=\"searchPlaceholder\"\r\n @update:model-value=\"onSearch('update')\"\r\n @search=\"onSearch('search')\"\r\n :clearable=\"false\"></van-search>\r\n <van-dropdown-menu v-if=\"(dropdownParamsConfig && dropdownParamsConfig.length) || (customParamsConfig && customParamsConfig.length)\">\r\n <yhm-dropdown-item\r\n :valueObj=\"params\"\r\n :value=\"conf.value\"\r\n :optionData=\"conf.optionData\"\r\n v-for=\"conf in dropdownParamsConfig\"></yhm-dropdown-item>\r\n <van-dropdown-item\r\n title=\"筛选\"\r\n class=\"custom-param-container\"\r\n v-if=\"customParamsConfig && customParamsConfig.length\">\r\n <yhm-form\r\n :formData=\"params\"\r\n :options=\"customParamsConfig\"></yhm-form>\r\n </van-dropdown-item>\r\n </van-dropdown-menu>\r\n </section>\r\n <van-pull-refresh\r\n v-model=\"refreshing\"\r\n @refresh=\"getList(true)\">\r\n <van-list\r\n v-model:loading=\"listLoading\"\r\n :finished=\"finished\"\r\n :error=\"listError\"\r\n error-text=\"遇到错误了,点击重试\"\r\n finished-text=\"没有更多了\"\r\n ref=\"scrollContent\"\r\n @load=\"getList\">\r\n <template v-for=\"row in renderCustom\">\r\n <yhm-info has-top>\r\n <template v-for=\"col in row.cols\">\r\n <slot\r\n v-if=\"col.slot\"\r\n :name=\"col.slot\"\r\n :row=\"row\"></slot>\r\n <yhm-info-item\r\n v-else\r\n :label=\"col.label\"\r\n regular-value\r\n :span=\"col.span\"\r\n :align=\"col.align || align\"\r\n :desc-align=\"col.descAlign || descAlign\"\r\n :font-size=\"col.fontSize || fontSize\"\r\n :status=\"col.status\"\r\n :description=\"col.description\"\r\n :value=\"col.value\"></yhm-info-item>\r\n </template>\r\n </yhm-info>\r\n <yhm-info\r\n class=\"yhm-list-item-actions\"\r\n v-if=\"listConfig.btns && listConfig.btns.length > 0\">\r\n <template v-for=\"btn in listConfig.btns\">\r\n <div\r\n v-if=\"!btn.show || (btn.show && btn.show(row.data))\"\r\n :class=\"`yhm-list-btn${btn.type ? ' ' + btn.type : ''}${btn.size ? ' ' + btn.size : ''}`\"\r\n @click=\"() => btn.callback(row.data)\">\r\n {{ btn.text }}\r\n </div>\r\n </template>\r\n </yhm-info>\r\n </template>\r\n </van-list>\r\n </van-pull-refresh>\r\n </section>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport type { ListConfig, ParamConfig } from \"../types\";\r\nimport type { ListInstance } from \"vant\";\r\nimport { ref, reactive, computed, watch, onMounted, onActivated, nextTick } from \"vue\";\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n /** 是否有关键字筛选 */\r\n hasSearch?: boolean;\r\n /** 筛选搜索触发类型 默认 update当输入框内容发生变化时触发 search点击键盘上的搜索/回车按钮后触发 */\r\n searchType?: string;\r\n /** 关键字筛选提示语 */\r\n searchPlaceholder?: string;\r\n paramType?: \"dropdown\" | \"tabs\";\r\n align?: \"left\" | \"center\" | \"right\";\r\n descAlign?: \"left\" | \"center\" | \"right\";\r\n fontSize?: number;\r\n /** 下拉筛选条件配置 */\r\n paramConfig?: ParamConfig[];\r\n /** 列表项目筛选 */\r\n listConfig: ListConfig<any>;\r\n /**\r\n * 获取数据的方法实现\r\n * @param pageIndex 当前页面\r\n * @param pageSize 页面条数\r\n * @param params 下拉选择后的结果\r\n * @param keyword 搜索关键字\r\n * @returns 返回一个对象 对象包括 data: 列表的数据,total: 总数\r\n */\r\n getData: (pageIndex, pageSize, params, keyword) => Promise<any>;\r\n }>(),\r\n {\r\n hasSearch: false,\r\n searchType: \"update\",\r\n searchPlaceholder: \"输入关键词搜索\",\r\n align: \"right\",\r\n descAlign: \"left\",\r\n }\r\n);\r\n\r\nconst scrollContent = ref<ListInstance>();\r\nconst keyword = ref(\"\");\r\nfunction setKeyowrd(k) {\r\n keyword.value = k;\r\n nextTick(() => {\r\n getList(true);\r\n });\r\n}\r\nconst params = reactive({});\r\nconst list = ref<any[]>([]);\r\nconst listLoading = ref(false);\r\nconst listError = ref(false);\r\nconst pageIndex = ref(1);\r\nconst pageSize = ref(15);\r\nconst refreshing = ref(false);\r\nconst finished = ref(false);\r\n\r\nconst tabsParamsConfig = computed(() => {\r\n return props.paramConfig?.filter((config) => {\r\n return config.type === \"tabs\";\r\n });\r\n});\r\n\r\nconst dropdownParamsConfig = computed(() => {\r\n return props.paramConfig?.filter((config) => {\r\n return config.type === \"dropdown\";\r\n });\r\n});\r\n\r\nconst customParamsConfig = computed(() => {\r\n return props.paramConfig\r\n ?.filter((config) => {\r\n return config.type === \"custom\";\r\n })\r\n .map((item) => {\r\n return item.custom;\r\n });\r\n});\r\n\r\nlet timer: number | null = null;\r\nasync function getList(isClear = false) {\r\n if (timer) {\r\n clearTimeout(timer);\r\n }\r\n listError.value = false;\r\n timer = setTimeout(async () => {\r\n listLoading.value = true;\r\n if (isClear) {\r\n list.value = [];\r\n finished.value = false;\r\n refreshing.value = true;\r\n pageIndex.value = 1;\r\n }\r\n let { data: l, total: t } = await props.getData(pageIndex.value, pageSize.value, params, keyword);\r\n try {\r\n if (isClear) {\r\n list.value = l;\r\n } else {\r\n list.value = list.value.concat(l);\r\n }\r\n if (list.value.length >= t) {\r\n finished.value = true;\r\n }\r\n timer = null;\r\n pageIndex.value++;\r\n refreshing.value = false;\r\n listLoading.value = false;\r\n } catch (error) {\r\n timer = null;\r\n listError.value = true;\r\n refreshing.value = false;\r\n listLoading.value = false;\r\n }\r\n\r\n if (!finished.value && !listError.value) {\r\n scrollContent.value?.check();\r\n }\r\n }, 500);\r\n}\r\n\r\nfunction onSearch(type) {\r\n if (props.searchType == type) {\r\n getList(true);\r\n }\r\n}\r\n\r\nwatch(\r\n () => params,\r\n () => {\r\n getList(true);\r\n },\r\n {\r\n deep: true,\r\n immediate: true,\r\n }\r\n);\r\n\r\nconst renderCustom = computed(() => {\r\n return list.value.map((row) => {\r\n let cols = props.listConfig.items\r\n .filter((item) => !item.show || (item.show && item.show(row)))\r\n .map(({ label, span, align, descAlign, fontSize, status, description, defaultDescription, slot, value, defaultValue }) => {\r\n return {\r\n label,\r\n span,\r\n align,\r\n descAlign: descAlign || props.descAlign,\r\n fontSize: fontSize || props.fontSize,\r\n status: status ? status(row) : \"\",\r\n description: description ? row[description] || defaultDescription : \"\",\r\n value: value ? row[value] || defaultValue : \"\",\r\n slot,\r\n };\r\n });\r\n\r\n return {\r\n cols,\r\n data: row,\r\n };\r\n });\r\n});\r\n\r\nonMounted(() => {\r\n if (props.paramConfig && props.paramConfig.length) {\r\n for (let i = 0; i < props.paramConfig.length; i++) {\r\n const paramItem = props.paramConfig[i];\r\n params[paramItem.value] = paramItem.defaultValue;\r\n }\r\n }\r\n});\r\n\r\nonActivated(() => {});\r\n\r\ndefineExpose({\r\n getList,\r\n setKeyowrd,\r\n});\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-list-container {\r\n .list-condition-container {\r\n position: relative;\r\n z-index: 12;\r\n box-shadow: 0 3px 5px -5px #000;\r\n .van-search {\r\n padding: 7px 12px;\r\n }\r\n .van-dropdown-menu__bar {\r\n box-shadow: none;\r\n }\r\n }\r\n .custom-param-container {\r\n .yhm-form-container {\r\n padding: 0;\r\n border-top: 1px solid var(--van-border-color);\r\n }\r\n }\r\n .yhm-list-item-actions {\r\n justify-content: flex-end;\r\n font-size: var(--van-font-size-sm);\r\n .yhm-list-btn {\r\n padding: 6px;\r\n color: var(--van-primary-color);\r\n font-size: 1em;\r\n cursor: pointer;\r\n &.mini {\r\n font-size: 0.8em;\r\n }\r\n &.medium {\r\n font-size: 1.1em;\r\n }\r\n &.lager {\r\n font-size: 1.3em;\r\n }\r\n &.success {\r\n color: var(--van-success-color);\r\n }\r\n &.danger {\r\n color: var(--van-danger-color);\r\n }\r\n &.warning {\r\n color: var(--van-warning-color);\r\n }\r\n &.cyan {\r\n color: var(--van-cyan);\r\n }\r\n &.purple {\r\n color: var(--van-purple);\r\n }\r\n &.yellow {\r\n color: var(--van-yellow);\r\n }\r\n &.pink {\r\n color: var(--van-pink);\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-dropdown-item\r\n :model-value=\"modelValue\"\r\n @update:model-value=\"updateHandler\"\r\n :options=\"optionData\"></van-dropdown-item>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport type { vanOption } from \"../types\";\r\nimport { computed } from \"vue\";\r\n\r\nconst props = defineProps<{\r\n valueObj: any;\r\n value: string;\r\n optionData: vanOption[];\r\n}>();\r\n\r\nconst emits = defineEmits<{\r\n (e: \"change\");\r\n}>();\r\n\r\nconst modelValue = computed({\r\n get() {\r\n return props.valueObj[props.value];\r\n },\r\n set(val) {\r\n props.valueObj[props.value] = val;\r\n },\r\n});\r\nfunction updateHandler(val: string | number) {\r\n modelValue.value = val;\r\n emits(\"change\");\r\n}\r\n</script>\r\n<style lang=\"scss\"></style>\r\n../types\r\n","<template>\r\n <section\r\n class=\"yhm-tabs\"\r\n ref=\"yhmTabsRef\">\r\n <div\r\n class=\"yhm-tab-item\"\r\n :class=\"{ active: option.value === modelValue }\"\r\n @click=\"updateHandler($event, option.value)\"\r\n v-for=\"option in optionData\">\r\n {{ option.text }}\r\n </div>\r\n </section>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport type { vanOption } from \"../types\";\r\nimport { computed, watch, ref } from \"vue\";\r\n\r\nconst props = defineProps<{\r\n valueObj: any;\r\n value: string;\r\n optionData: vanOption[];\r\n}>();\r\n\r\nconst emits = defineEmits<{\r\n (e: \"change\");\r\n}>();\r\n\r\nconst modelValue = computed({\r\n get() {\r\n return props.valueObj[props.value];\r\n },\r\n set(val) {\r\n props.valueObj[props.value] = val;\r\n },\r\n});\r\nconst yhmTabsRef = ref();\r\nwatch(\r\n () => modelValue.value,\r\n (val) => {\r\n let optionVals = props.optionData.map((item) => item.value);\r\n if (optionVals && optionVals.length && yhmTabsRef.value) {\r\n let items: HTMLDivElement[] = Array.from(yhmTabsRef.value.querySelectorAll(\".yhm-tab-item\"));\r\n let index = optionVals.indexOf(val);\r\n items[index]?.scrollIntoView({ behavior: \"smooth\", block: \"center\", inline: \"center\" });\r\n }\r\n }\r\n);\r\n\r\nfunction updateHandler(e, val: string | number) {\r\n modelValue.value = val;\r\n emits(\"change\");\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-tabs {\r\n display: flex;\r\n background-color: var(--van-white);\r\n padding-bottom: 5px;\r\n padding-left: 5px;\r\n padding-right: 5px;\r\n width: 100%;\r\n box-sizing: border-box;\r\n overflow: auto;\r\n &:first-child {\r\n padding-top: 5px;\r\n }\r\n .yhm-tab-item {\r\n flex: 1 0 auto;\r\n text-align: center;\r\n font-size: 14px;\r\n line-height: 18px;\r\n padding: 3px 15px;\r\n color: var(--van-primary-color);\r\n border: 1px solid var(--van-primary-color);\r\n &:first-child {\r\n border-top-left-radius: 6px;\r\n border-bottom-left-radius: 6px;\r\n }\r\n &:last-child {\r\n border-top-right-radius: 6px;\r\n border-bottom-right-radius: 6px;\r\n }\r\n &.active {\r\n color: var(--van-white);\r\n background-color: var(--van-primary-color);\r\n }\r\n }\r\n .yhm-tab-item + .yhm-tab-item {\r\n border-left: 0;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <section :class=\"`yhm-info-item-container${status ? ' ' + status : ''}`\">\r\n <div :class=\"`yhm-info-item${regularValue ? ' regular-value' : ''}`\">\r\n <div class=\"yhm-info-item-label\">\r\n <slot name=\"label\">{{ label }}</slot>\r\n </div>\r\n <div class=\"yhm-info-item-value\">\r\n <slot name=\"value\">{{ value }}</slot>\r\n </div>\r\n </div>\r\n <div\r\n class=\"yhm-info-description\"\r\n v-if=\"description\">\r\n <slot name=\"description\">{{ description }}</slot>\r\n </div>\r\n </section>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { computed } from \"vue\";\r\nconst props = withDefaults(\r\n defineProps<{\r\n span: number;\r\n label?: string;\r\n value?: string;\r\n description?: string;\r\n regularValue?: boolean;\r\n fontSize?: number;\r\n align?: \"left\" | \"center\" | \"right\";\r\n descAlign?: \"left\" | \"center\" | \"right\";\r\n status?: \"primary\" | \"success\" | \"danger\" | \"warning\" | \"cyan\" | \"purple\" | \"yellow\" | \"pink\";\r\n }>(),\r\n {\r\n span: 24,\r\n fontSize: 14,\r\n align: \"right\",\r\n descAlign: \"left\",\r\n }\r\n);\r\n\r\nconst fontSize = computed(() => {\r\n return `${props.fontSize}px`;\r\n});\r\n\r\nconst widthCount = computed(() => {\r\n return 24 / props.span;\r\n});\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-info-item-container {\r\n width: calc((100% - (8px * v-bind(widthCount))) / v-bind(widthCount));\r\n font-size: v-bind(fontSize);\r\n padding: 4px 0;\r\n margin-right: 8px;\r\n .yhm-info-item {\r\n display: flex;\r\n padding: 4px 0;\r\n line-height: 1.3em;\r\n .yhm-info-item-value {\r\n flex: 1;\r\n color: var(--van-text-color-2);\r\n text-align: v-bind(\"$props.align\");\r\n padding-left: 5px;\r\n }\r\n &.regular-value {\r\n .yhm-info-item-value {\r\n color: var(--van-text-color);\r\n }\r\n }\r\n }\r\n .yhm-info-description {\r\n color: var(--van-text-color-2);\r\n padding: 2px 0;\r\n line-height: 1.3em;\r\n text-align: v-bind(\"$props.descAlign\");\r\n }\r\n &.primary {\r\n .yhm-info-item {\r\n .yhm-info-item-value {\r\n color: var(--van-primary-color) !important;\r\n }\r\n }\r\n }\r\n &.success {\r\n .yhm-info-item {\r\n .yhm-info-item-value {\r\n color: var(--van-success-color) !important;\r\n }\r\n }\r\n }\r\n &.danger {\r\n .yhm-info-item {\r\n .yhm-info-item-value {\r\n color: var(--van-danger-color) !important;\r\n }\r\n }\r\n }\r\n &.warning {\r\n .yhm-info-item {\r\n .yhm-info-item-value {\r\n color: var(--van-warning-color) !important;\r\n }\r\n }\r\n }\r\n &.cyan {\r\n .yhm-info-item {\r\n .yhm-info-item-value {\r\n color: var(--van-cyan) !important;\r\n }\r\n }\r\n }\r\n &.purple {\r\n .yhm-info-item {\r\n .yhm-info-item-value {\r\n color: var(--van-purple) !important;\r\n }\r\n }\r\n }\r\n &.yellow {\r\n .yhm-info-item {\r\n .yhm-info-item-value {\r\n color: var(--van-yellow) !important;\r\n }\r\n }\r\n }\r\n &.pink {\r\n .yhm-info-item {\r\n .yhm-info-item-value {\r\n color: var(--van-pink) !important;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <section class=\"yhm-table-container\">\r\n <table class=\"yhm-table\">\r\n <colgroup>\r\n <col\r\n v-if=\"hasIndex\"\r\n width=\"50\" />\r\n <col\r\n v-for=\"col in columns\"\r\n :width=\"col.width\"\r\n :align=\"col.align\" />\r\n </colgroup>\r\n <tr>\r\n <th v-if=\"hasIndex\">#</th>\r\n <th\r\n v-for=\"column in columns\"\r\n :align=\"column.align\">\r\n {{ column.label }}\r\n </th>\r\n </tr>\r\n <tr v-for=\"(row, index) in data\">\r\n <td\r\n aling=\"center\"\r\n v-if=\"hasIndex\">\r\n {{ index + 1 }}\r\n </td>\r\n <td\r\n v-for=\"column in columns\"\r\n :align=\"column.align\">\r\n {{ row[column.prop] }}\r\n </td>\r\n </tr>\r\n </table>\r\n </section>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { computed } from \"vue\";\r\nimport { ColumnItem } from \"../types\";\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n data: any[];\r\n hasIndex?: boolean;\r\n columns: ColumnItem[];\r\n }>(),\r\n // @ts-ignore\r\n {\r\n // @ts-ignore\r\n data: [],\r\n hasIndex: false,\r\n // @ts-ignore\r\n columns: [],\r\n }\r\n);\r\n\r\nconst tableWidth = computed(() => {\r\n let width = props.columns.reduce((accumulator, column) => {\r\n let w = parseInt(column.width);\r\n if (!isNaN(w)) {\r\n w = 0;\r\n }\r\n return accumulator + w;\r\n }, 0);\r\n if (props.hasIndex) {\r\n return width === 0 ? \"100%\" : `${width + 50}px`;\r\n } else {\r\n return width === 0 ? \"100%\" : `${width}px`;\r\n }\r\n});\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-table-container {\r\n width: 100%;\r\n overflow-x: auto;\r\n .yhm-table {\r\n table-layout: fixed;\r\n border-collapse: collapse;\r\n border-spacing: 0;\r\n min-width: 100%;\r\n width: v-bind(tableWidth);\r\n position: relative;\r\n background-color: var(--van-white);\r\n th,\r\n td {\r\n box-sizing: border-box;\r\n padding: 10px 16px;\r\n line-height: 24px;\r\n font-size: var(--van-font-size-md);\r\n }\r\n th {\r\n color: var(--van-text-color);\r\n font-weight: 400;\r\n }\r\n td {\r\n color: var(--van-text-color-2);\r\n }\r\n tr + tr {\r\n border-top: 1px solid var(--van-gray-1);\r\n }\r\n }\r\n}\r\n</style>\r\n","<style lang=\"scss\">\r\n.yhm-form-container {\r\n padding: 16px 0;\r\n .van-form {\r\n margin-bottom: 16px;\r\n }\r\n .yhm-form-actions {\r\n padding: 0 16px;\r\n }\r\n}\r\n</style>\r\n<template>\r\n <section class=\"yhm-form-container\">\r\n <van-form>\r\n <template v-for=\"item in optionsConfig\">\r\n <component\r\n :is=\"item.component\"\r\n v-bind=\"item.attrs\"\r\n :error=\"item.error\"\r\n :error-message=\"item.errorMessage\"\r\n :model-value=\"formData[item.name]\"\r\n @update:modelValue=\"handlerChange($event, item)\"></component>\r\n </template>\r\n </van-form>\r\n <div class=\"yhm-form-actions\">\r\n <slot></slot>\r\n </div>\r\n </section>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { computed, watch, reactive, onMounted } from \"vue\";\r\nimport { ConfigFormItem, SwitchConfig } from \"../types\";\r\n\r\nconst props = defineProps<{\r\n options: ConfigFormItem[];\r\n formData: any;\r\n verification: boolean;\r\n}>();\r\n\r\ninterface ConfigItem {\r\n component: string;\r\n rex: ConfigFormItem[\"rex\"];\r\n rexMsg: ConfigFormItem[\"rexMsg\"];\r\n name: ConfigFormItem[\"name\"];\r\n defaultValue: ConfigFormItem[\"defaultValue\"];\r\n error: boolean;\r\n errorMessage: string;\r\n attrs: Record<string, any>;\r\n itemChange?: (val, data) => void;\r\n}\r\n\r\nconst optionsConfig = computed<ConfigItem[]>(() => {\r\n return props.options.map((item) => {\r\n let { label, required, name, defaultValue, disabled, placeholder, type, rexMsg, rex, itemChange, labelAlign, config } = item;\r\n let error = false;\r\n let errorMessage = \"\";\r\n let component = \"yhm-input\";\r\n switch (type) {\r\n case \"year\":\r\n case \"month\":\r\n case \"datetime\":\r\n case \"date\":\r\n case \"time\":\r\n component = \"yhm-datetime\";\r\n if (!defaultValue) defaultValue = \"\";\r\n break;\r\n case \"radio\":\r\n component = \"yhm-radio\";\r\n if (!defaultValue) defaultValue = \"\";\r\n break;\r\n case \"select\":\r\n component = \"yhm-select\";\r\n if (!defaultValue) defaultValue = \"\";\r\n break;\r\n case \"switch\":\r\n component = \"yhm-switch\";\r\n if (!defaultValue) defaultValue = (config as SwitchConfig).activeValue || \"\";\r\n break;\r\n case \"checkbox\":\r\n component = \"yhm-checkbox\";\r\n if (!defaultValue) defaultValue = [];\r\n break;\r\n }\r\n return {\r\n component,\r\n rex,\r\n rexMsg,\r\n name,\r\n defaultValue,\r\n error,\r\n errorMessage,\r\n attrs: {\r\n label,\r\n required,\r\n disabled,\r\n placeholder,\r\n type,\r\n labelAlign,\r\n ...config,\r\n },\r\n itemChange,\r\n };\r\n });\r\n});\r\n\r\nconst emits = defineEmits<{\r\n (e: \"update:verification\", val: boolean);\r\n}>();\r\n\r\nconst verificationResult = reactive<any>({});\r\n\r\nwatch(\r\n () => verificationResult,\r\n (val) => {\r\n let vals = Object.values(val);\r\n let flag = !(vals && vals.includes(true));\r\n emits(\"update:verification\", flag);\r\n },\r\n {\r\n deep: true,\r\n immediate: true,\r\n }\r\n);\r\n\r\nfunction handlerChange(val, item) {\r\n let {\r\n name,\r\n itemChange,\r\n rex,\r\n rexMsg,\r\n attrs: { required },\r\n } = item;\r\n\r\n props.formData[name] = val;\r\n\r\n if (itemChange && typeof itemChange === \"function\") {\r\n itemChange(val, props.formData);\r\n }\r\n let valFlag = false;\r\n if (val instanceof Array) {\r\n valFlag = val.length > 0;\r\n } else if (typeof val === \"number\") {\r\n valFlag = !isNaN(val);\r\n } else {\r\n valFlag = !!val;\r\n }\r\n let flag = true;\r\n if (rex && rex instanceof RegExp) {\r\n flag = rex.test(val);\r\n if (!flag) {\r\n item.error = true;\r\n item.errorMessage = rexMsg;\r\n }\r\n }\r\n if (rex === undefined && typeof required === \"boolean\" && required && !valFlag) {\r\n flag = false;\r\n item.error = true;\r\n item.errorMessage = `${item.attrs.label}不能为空`;\r\n }\r\n if (flag) {\r\n verificationResult[name] = false;\r\n item.error = false;\r\n item.errorMessage = \"\";\r\n } else {\r\n verificationResult[name] = true;\r\n }\r\n}\r\n\r\nonMounted(() => {\r\n optionsConfig.value.forEach((option) => {\r\n handlerChange(option.defaultValue || \"\", option);\r\n });\r\n});\r\n</script>\r\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","<style lang=\"scss\">\r\n.yh-calendar {\r\n width: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n padding-bottom: 16px;\r\n .yh-calendar-btn {\r\n display: inline-block;\r\n margin-right: 10px;\r\n padding: 0 5px;\r\n cursor: pointer;\r\n user-select: none;\r\n }\r\n .top-bar {\r\n height: 45px;\r\n line-height: 45px;\r\n display: flex;\r\n .moment {\r\n flex: 1;\r\n font-size: 24px;\r\n text-align: center;\r\n }\r\n .prev,\r\n .next {\r\n width: 45px;\r\n height: 45px;\r\n }\r\n }\r\n .yh-calendar-row {\r\n display: flex;\r\n .yh-calendar-item {\r\n flex: 1;\r\n height: 100%;\r\n text-align: center;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n .solar-info {\r\n font-size: 24px;\r\n line-height: 60px;\r\n }\r\n &.not-moment {\r\n opacity: 0.5;\r\n }\r\n &.choose {\r\n color: var(--van-primary-color);\r\n text-shadow: 1px 1px 1px var(--van-gray-4), 2px 2px 1px var(--van-gray-4);\r\n }\r\n &.year {\r\n .solar-info {\r\n font-size: 24px;\r\n }\r\n }\r\n }\r\n &.week {\r\n .yh-calendar-item {\r\n height: 40px;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n<template>\r\n <div class=\"yh-calendar\">\r\n <div class=\"top-bar\">\r\n <div\r\n class=\"prev\"\r\n @click=\"prev\">\r\n <svg\r\n class=\"icon\"\r\n viewBox=\"0 0 1000 1000\"\r\n version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"100%\"\r\n height=\"100%\">\r\n <path\r\n d=\"M600 300 L 400 500 L 600 700\"\r\n fill=\"transparent\"\r\n stroke=\"black\"\r\n stroke-width=\"40\"></path>\r\n </svg>\r\n </div>\r\n <div class=\"moment\">\r\n <span\r\n class=\"yh-calendar-btn\"\r\n @click=\"divType = 'year'\">\r\n {{ momentYear }}年\r\n </span>\r\n <span\r\n class=\"yh-calendar-btn\"\r\n v-show=\"['month', 'date', 'datetime'].includes(type)\"\r\n @click=\"divType = 'month'\">\r\n {{ momentMonth }}月\r\n </span>\r\n <span\r\n class=\"yh-calendar-btn\"\r\n v-show=\"['date', 'datetime'].includes(type)\"\r\n @click=\"divType = 'day'\">\r\n {{ momentDay }}日\r\n </span>\r\n </div>\r\n <div\r\n class=\"next\"\r\n @click=\"next\">\r\n <svg\r\n class=\"icon\"\r\n viewBox=\"0 0 1000 1000\"\r\n version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"100%\"\r\n height=\"100%\">\r\n <path\r\n d=\"M400 300 L 600 500 L 400 700\"\r\n fill=\"transparent\"\r\n stroke=\"black\"\r\n stroke-width=\"40\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n <div\r\n class=\"yh-calendar-row week\"\r\n v-if=\"divType === 'day'\">\r\n <div class=\"yh-calendar-item\">\r\n <div class=\"bottom-info\">周一</div>\r\n </div>\r\n <div class=\"yh-calendar-item\">\r\n <div class=\"bottom-info\">周二</div>\r\n </div>\r\n <div class=\"yh-calendar-item\">\r\n <div class=\"bottom-info\">周三</div>\r\n </div>\r\n <div class=\"yh-calendar-item\">\r\n <div class=\"bottom-info\">周四</div>\r\n </div>\r\n <div class=\"yh-calendar-item\">\r\n <div class=\"bottom-info\">周五</div>\r\n </div>\r\n <div class=\"yh-calendar-item\">\r\n <div class=\"bottom-info\">周六</div>\r\n </div>\r\n <div class=\"yh-calendar-item\">\r\n <div class=\"bottom-info\">周日</div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"yh-calendar-row\"\r\n v-for=\"(row, index) in rows\"\r\n :key=\"index\">\r\n <template v-if=\"divType === 'day'\">\r\n <div\r\n class=\"yh-calendar-item\"\r\n :class=\"{'not-moment': day.month() !== modelValue.month(), choose: day.year() === modelValue.year() && day.month() === modelValue.month() && day.date() === modelValue.date()}\"\r\n v-for=\"(day, index) in row\"\r\n @click=\"chooseDay(day)\"\r\n :key=\"index\">\r\n <div class=\"solar-info\">\r\n {{ day.date() }}\r\n </div>\r\n </div>\r\n </template>\r\n <template v-if=\"divType === 'month'\">\r\n <div\r\n class=\"yh-calendar-item month\"\r\n :class=\"{choose: day.year() === modelValue.year() && day.month() === modelValue.month() && day.date() === modelValue.date()}\"\r\n v-for=\"(day, index) in row\"\r\n @click=\"chooseMonth(day)\"\r\n :key=\"index\">\r\n <div class=\"solar-info\">{{ day.month() + 1 }}月</div>\r\n </div>\r\n </template>\r\n <template v-if=\"divType === 'year'\">\r\n <div\r\n class=\"yh-calendar-item year\"\r\n :class=\"{choose: day.year() === modelValue.year() && day.month() === modelValue.month() && day.date() === modelValue.date()}\"\r\n v-for=\"(day, index) in row\"\r\n @click=\"chooseYear(day)\"\r\n :key=\"index\">\r\n <div class=\"solar-info\">\r\n {{ day.year() }}\r\n </div>\r\n </div>\r\n </template>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport dayjs from 'dayjs';\r\nimport {ref, computed, watch, onMounted} from 'vue';\r\nimport {cloneDeep} from 'lodash-es';\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n type: 'year' | 'month' | 'date' | 'datetime' | 'time';\r\n modelValue: dayjs.Dayjs;\r\n }>(),\r\n {}\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', date: dayjs.Dayjs);\r\n (e: 'change', date: dayjs.Dayjs);\r\n}>();\r\n\r\nconst divType = ref('day');\r\n\r\nwatch(\r\n () => props.type,\r\n (type) => {\r\n switch (type) {\r\n case 'year':\r\n divType.value = 'year';\r\n break;\r\n case 'month':\r\n divType.value = 'month';\r\n break;\r\n case 'date':\r\n case 'datetime':\r\n divType.value = 'day';\r\n break;\r\n }\r\n },\r\n {\r\n deep: true,\r\n immediate: true,\r\n }\r\n);\r\n\r\nconst viewDate = ref(dayjs());\r\n\r\nconst momentYear = computed(() => {\r\n return viewDate.value.format('YYYY');\r\n});\r\n\r\nconst momentMonth = computed(() => {\r\n return viewDate.value.format('MM');\r\n});\r\n\r\nconst momentDay = computed(() => {\r\n return viewDate.value.format('DD');\r\n});\r\nconst changeType = computed(() => {\r\n return divType.value === 'day' ? 'month' : 'year';\r\n});\r\nconst rows = computed<dayjs.Dayjs[][]>(() => {\r\n if (divType.value === 'day') {\r\n // 指定月份第一天\r\n let mMFD = viewDate.value.date(1);\r\n let mMDays = mMFD.endOf('month').date();\r\n let firstIndex = 1 - (mMFD.day() === 0 ? 7 : mMFD.day());\r\n let mMLW = viewDate.value.date(mMDays).day();\r\n let lastIndex = 0;\r\n if (mMLW === 0) {\r\n lastIndex = mMDays;\r\n } else {\r\n lastIndex = mMDays - (mMLW - 7);\r\n }\r\n let items: dayjs.Dayjs[] = [];\r\n for (let i = firstIndex; i < lastIndex; i++) {\r\n let day = mMFD.add(i, 'day');\r\n items.push(day);\r\n }\r\n let powLen = Math.ceil(items.length / 7);\r\n let result: dayjs.Dayjs[][] = [];\r\n for (let j = 0; j < powLen; j++) {\r\n result.push(items.splice(0, 7));\r\n }\r\n return result;\r\n } else if (divType.value === 'month') {\r\n let mMFD = viewDate.value.month();\r\n let firstIndex = 0 - mMFD;\r\n let lastIndex = -(mMFD - 12);\r\n let items: dayjs.Dayjs[] = [];\r\n for (let i = firstIndex; i < lastIndex; i++) {\r\n let month = viewDate.value.add(i, 'month');\r\n items.push(month);\r\n }\r\n let result: dayjs.Dayjs[][] = [];\r\n for (let j = 0; j < 4; j++) {\r\n result.push(items.splice(0, 3));\r\n }\r\n return result;\r\n } else {\r\n let items: dayjs.Dayjs[] = [];\r\n for (let i = -11; i < 13; i++) {\r\n let year = viewDate.value.add(i, 'year');\r\n items.push(year);\r\n }\r\n let result: dayjs.Dayjs[][] = [];\r\n for (let j = 0; j < 4; j++) {\r\n result.push(items.splice(0, 3));\r\n }\r\n return result;\r\n }\r\n});\r\n\r\nfunction chooseDay(day) {\r\n viewDate.value = day;\r\n emits('update:modelValue', day);\r\n emits('change', day);\r\n}\r\nfunction chooseMonth(day) {\r\n chooseDay(day);\r\n if (['date', 'datetime'].includes(props.type)) {\r\n divType.value = 'day';\r\n }\r\n}\r\nfunction chooseYear(day) {\r\n chooseDay(day);\r\n if (['month', 'date', 'datetime'].includes(props.type)) {\r\n divType.value = 'month';\r\n }\r\n}\r\nfunction prev() {\r\n let count = -1;\r\n if (changeType.value === 'year') {\r\n count = -12;\r\n }\r\n let newDate = props.modelValue.add(count, changeType.value).date(1);\r\n viewDate.value = newDate;\r\n chooseDay(newDate);\r\n}\r\nfunction next() {\r\n let count = 1;\r\n if (changeType.value === 'year') {\r\n count = 12;\r\n }\r\n let newDate = props.modelValue.add(count, changeType.value).date(1);\r\n viewDate.value = newDate;\r\n chooseDay(newDate);\r\n}\r\nfunction syncModelValue() {\r\n if (props.modelValue.isValid()) {\r\n viewDate.value = props.modelValue.clone();\r\n }\r\n}\r\n\r\nwatch(\r\n () => props.modelValue,\r\n () => {\r\n syncModelValue;\r\n }\r\n);\r\n\r\ndefineExpose({\r\n syncModelValue,\r\n});\r\n\r\nonMounted(() => {\r\n syncModelValue;\r\n});\r\n</script>\r\n","<template>\r\n <van-time-picker\r\n :show-toolbar=\"false\"\r\n :columns-type=\"['hour', 'minute', 'second']\"\r\n v-model=\"pickerIndexs\"\r\n @change=\"changeHandler\" />\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport {Dayjs} from 'dayjs';\r\nimport {ref, onMounted, watch} from 'vue';\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n type: 'year' | 'month' | 'date' | 'datetime' | 'time';\r\n modelValue: Dayjs;\r\n }>(),\r\n {}\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: Dayjs);\r\n}>();\r\n\r\nconst pickerIndexs = ref(['00', '00', '00']);\r\n\r\nfunction syncModelValue() {\r\n if (props.modelValue.isValid()) {\r\n let hour = props.modelValue.format('HH');\r\n let minute = props.modelValue.format('mm');\r\n let second = props.modelValue.format('ss');\r\n pickerIndexs.value[0] = hour;\r\n pickerIndexs.value[1] = minute;\r\n pickerIndexs.value[2] = second;\r\n }\r\n}\r\n\r\nfunction changeHandler({selectedIndexes}) {\r\n let [hour, minute, second] = selectedIndexes as number[];\r\n let newDate = props.modelValue.clone().hour(hour).minute(minute).second(second);\r\n emits('update:modelValue', newDate);\r\n}\r\n\r\nwatch(\r\n () => props.modelValue,\r\n () => {\r\n syncModelValue();\r\n }\r\n);\r\n\r\ndefineExpose({\r\n syncModelValue,\r\n});\r\n\r\nonMounted(() => {\r\n syncModelValue();\r\n});\r\n</script>\r\n","<style lang=\"scss\">\r\n.yhm-datetime-input-container {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n line-height: 35px;\r\n input {\r\n border: 0;\r\n border-bottom: 1px solid var(--van-gray-3);\r\n width: 20px;\r\n padding: 0 5px;\r\n min-width: auto;\r\n margin: 0 5px;\r\n &:first-child {\r\n width: 40px;\r\n }\r\n &:focus {\r\n border-bottom-color: var(--van-primary-color);\r\n color: var(--van-primary-color);\r\n }\r\n }\r\n}\r\n</style>\r\n<template>\r\n <van-cell :title=\"statusText\"></van-cell>\r\n <div class=\"yhm-datetime-input-container\">\r\n <input\r\n type=\"digit\"\r\n v-model=\"year\"\r\n ref=\"yearRef\"\r\n @input=\"yearChangeHandler\"\r\n @focus=\"inputFocusHandler\"\r\n max-length=\"4\" />\r\n -\r\n <input\r\n type=\"digit\"\r\n v-model=\"month\"\r\n ref=\"monthRef\"\r\n @input=\"monthChangeHandler\"\r\n @focus=\"inputFocusHandler\"\r\n max-length=\"2\" />\r\n -\r\n <input\r\n type=\"digit\"\r\n v-model=\"date\"\r\n ref=\"dateRef\"\r\n @input=\"dateChangeHandler\"\r\n @focus=\"inputFocusHandler\"\r\n max-length=\"2\" />\r\n \r\n <input\r\n type=\"digit\"\r\n v-model=\"hour\"\r\n ref=\"hourRef\"\r\n @input=\"hourChangeHandler\"\r\n @focus=\"inputFocusHandler\"\r\n max-length=\"2\" />\r\n :\r\n <input\r\n type=\"digit\"\r\n v-model=\"minute\"\r\n ref=\"minuteRef\"\r\n @input=\"minuteChangeHandler\"\r\n @focus=\"inputFocusHandler\"\r\n max-length=\"2\" />\r\n :\r\n <input\r\n type=\"digit\"\r\n v-model=\"second\"\r\n ref=\"secondRef\"\r\n @input=\"secondChangeHandler\"\r\n @focus=\"inputFocusHandler\"\r\n max-length=\"2\" />\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport {Dayjs} from 'dayjs';\r\nimport {ref, onMounted, nextTick, watch} from 'vue';\r\nconst props = withDefaults(\r\n defineProps<{\r\n format: string;\r\n type: 'year' | 'month' | 'date' | 'datetime' | 'time';\r\n typeName: string;\r\n modelValue: Dayjs;\r\n }>(),\r\n {}\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', date: Dayjs);\r\n (e: 'change', date: Dayjs);\r\n}>();\r\n\r\nconst statusText = ref('');\r\n\r\nconst year = ref('1900');\r\nconst yearRef = ref();\r\nconst month = ref('01');\r\nconst monthRef = ref();\r\nconst date = ref('01');\r\nconst dateRef = ref();\r\nconst hour = ref('00');\r\nconst hourRef = ref();\r\nconst minute = ref('00');\r\nconst minuteRef = ref();\r\nconst second = ref('00');\r\nconst secondRef = ref();\r\n\r\nfunction yearChangeHandler(e) {\r\n let val = e.target.value;\r\n if (val.length === 4) {\r\n changeModelValue(props.modelValue.year(parseInt(val)));\r\n monthRef.value?.focus();\r\n monthRef.value?.select();\r\n }\r\n}\r\n\r\nfunction inputFocusHandler(e) {\r\n (e.target as HTMLInputElement).select();\r\n}\r\n\r\nfunction monthChangeHandler(e) {\r\n let val = e.target.value;\r\n if (val.length === 2 && !isNaN(parseInt(val))) {\r\n val = parseInt(val);\r\n if (val > 12) {\r\n val = 12;\r\n month.value = '12';\r\n } else if (val < 1) {\r\n val = 1;\r\n month.value = '01';\r\n }\r\n nextTick(() => {\r\n changeModelValue(props.modelValue.month(val - 1));\r\n dateRef.value?.focus();\r\n dateRef.value?.select();\r\n });\r\n } else if (val.length === 0) {\r\n month.value = props.modelValue.format('MM');\r\n yearRef.value?.focus();\r\n yearRef.value?.select();\r\n }\r\n}\r\n\r\nfunction dateChangeHandler(e) {\r\n let val = e.target.value;\r\n if (val.length === 2 && !isNaN(parseInt(val))) {\r\n val = parseInt(val);\r\n if (val > 31) {\r\n val = 31;\r\n date.value = '31';\r\n } else if (val < 1) {\r\n val = 1;\r\n date.value = '01';\r\n }\r\n nextTick(() => {\r\n changeModelValue(props.modelValue.date(val));\r\n hourRef.value?.focus();\r\n hourRef.value?.select();\r\n });\r\n } else if (val.length === 0) {\r\n date.value = props.modelValue.format('DD');\r\n monthRef.value?.focus();\r\n monthRef.value?.select();\r\n }\r\n}\r\n\r\nfunction hourChangeHandler(e) {\r\n let val = e.target.value;\r\n if (val.length === 2 && !isNaN(parseInt(val))) {\r\n val = parseInt(val);\r\n if (val > 24) {\r\n val = 24;\r\n hour.value = '24';\r\n } else if (val < 1) {\r\n val = 1;\r\n hour.value = '01';\r\n }\r\n nextTick(() => {\r\n changeModelValue(props.modelValue.hour(val));\r\n minuteRef.value?.focus();\r\n minuteRef.value?.select();\r\n });\r\n } else if (val.length === 0) {\r\n hour.value = props.modelValue.format('HH');\r\n dateRef.value?.focus();\r\n dateRef.value?.select();\r\n }\r\n}\r\n\r\nfunction minuteChangeHandler(e) {\r\n let val = e.target.value;\r\n if (val.length === 2 && !isNaN(parseInt(val))) {\r\n val = parseInt(val);\r\n if (val > 59) {\r\n val = 59;\r\n minute.value = '59';\r\n } else if (val < 1) {\r\n val = 1;\r\n minute.value = '01';\r\n }\r\n nextTick(() => {\r\n changeModelValue(props.modelValue.minute(val));\r\n secondRef.value?.focus();\r\n secondRef.value?.select();\r\n });\r\n } else if (val.length === 0) {\r\n minute.value = props.modelValue.format('mm');\r\n hourRef.value?.focus();\r\n hourRef.value?.select();\r\n }\r\n}\r\n\r\nfunction secondChangeHandler(e) {\r\n let val = e.target.value;\r\n if (val.length === 2 && !isNaN(parseInt(val))) {\r\n val = parseInt(val);\r\n if (val > 59) {\r\n val = 59;\r\n second.value = '59';\r\n } else if (val < 1) {\r\n val = 1;\r\n second.value = '01';\r\n }\r\n nextTick(() => {\r\n changeModelValue(props.modelValue.second(val));\r\n });\r\n } else if (val.length === 0) {\r\n second.value = props.modelValue.format('ss');\r\n minuteRef.value?.focus();\r\n minuteRef.value?.select();\r\n }\r\n}\r\n\r\nfunction changeModelValue(date) {\r\n emits('update:modelValue', date);\r\n emits('change', date);\r\n statusText.value = date.format(props.format);\r\n}\r\n\r\nfunction syncModelValue() {\r\n if (props.modelValue.isValid()) {\r\n year.value = props.modelValue.format('YYYY');\r\n month.value = props.modelValue.format('MM');\r\n date.value = props.modelValue.format('DD');\r\n hour.value = props.modelValue.format('HH');\r\n minute.value = props.modelValue.format('mm');\r\n second.value = props.modelValue.format('ss');\r\n statusText.value = props.modelValue.format(props.format);\r\n yearRef.value?.focus();\r\n yearRef.value?.select();\r\n }\r\n}\r\n\r\nwatch(\r\n () => props.modelValue,\r\n () => {\r\n syncModelValue();\r\n }\r\n);\r\n\r\ndefineExpose({\r\n syncModelValue,\r\n});\r\nonMounted(() => {\r\n syncModelValue();\r\n});\r\n</script>\r\n","<template>\r\n <van-field class=\"yhm-datetime-container\" :disabled=\" disabled \" v-bind=\" $attrs \" :modelValue=\" modelValue \"\r\n :error=\" error \" :error-message=\" errorMessage \">\r\n <template #input>\r\n <div class=\"yhm-datetime-value\" :class=\" valueClass \" @click=\" toChoose \">\r\n {{ valueString }}\r\n </div>\r\n </template>\r\n </van-field>\r\n <van-popup v-model:show=\" show \" class=\"yhm-datetime-container\" lazy-render teleport=\"body\" position=\"bottom\">\r\n <van-nav-bar left-text=\"清除\" @click-left=\" cancelChoose \" :title=\" `请选择${ typeName }` \" right-text=\"确认\"\r\n @click-right=\" commitChoose \"></van-nav-bar>\r\n <van-tabs v-model:active=\" activeTab \">\r\n <van-tab title=\"日期选择\" v-if=\" [ 'year', 'month', 'date', 'datetime' ].includes( type ) \">\r\n <choose-date ref=\"chooseDateRef\" :type=\" type \" v-model=\" ownValue \"></choose-date>\r\n </van-tab>\r\n <van-tab title=\"时间选择\" v-if=\" [ 'datetime', 'time' ].includes( type ) \">\r\n <choose-time ref=\"chooseTimeRef\" :type=\" type \" v-model=\" ownValue \"></choose-time>\r\n </van-tab>\r\n <van-tab :title=\" `${ typeName }输入` \">\r\n <input-date-time ref=\"inputDateTimeRef\" :format=\" format || typeFormat \" :type=\" type \" :type-name=\" typeName \"\r\n v-model=\" ownValue \"></input-date-time>\r\n </van-tab>\r\n </van-tabs>\r\n </van-popup>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport chooseDate from './yhmDateTime/chooseDate.vue';\r\nimport chooseTime from './yhmDateTime/chooseTime.vue';\r\nimport inputDateTime from './yhmDateTime/inputDateTime.vue';\r\nimport dayjs from 'dayjs';\r\nimport { ref, computed, watch, nextTick } from 'vue';\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n type: 'year' | 'month' | 'date' | 'datetime' | 'time';\r\n error?: boolean;\r\n errorMessage?: string;\r\n format?: string;\r\n disabled?: boolean;\r\n modelValue?: any;\r\n placeholder?: string;\r\n }>(),\r\n {\r\n type: 'datetime',\r\n disabled: false,\r\n placeholder: '请选择日期',\r\n }\r\n);\r\n\r\nconst emits = defineEmits<{\r\n ( e: 'update:modelValue', val: string );\r\n ( e: 'change', val: string );\r\n}>();\r\n\r\nconst chooseDateRef = ref();\r\nconst chooseTimeRef = ref();\r\nconst inputDateTimeRef = ref();\r\n\r\nconst ownValue = ref( dayjs() );\r\n\r\nwatch(\r\n () => props.modelValue,\r\n ( val ) => {\r\n let date = dayjs( val );\r\n if ( date.isValid() && date.valueOf() !== ownValue.value.valueOf() ) {\r\n ownValue.value = date;\r\n }\r\n }\r\n);\r\n\r\nconst valueString = computed( () => {\r\n return props.modelValue || props.placeholder;\r\n} );\r\n\r\nconst valueClass = computed( () => {\r\n return {\r\n placeholder: !props.modelValue,\r\n };\r\n} );\r\n\r\nconst typeFormat = ref( 'YYYY-MM-DD HH:mm:ss' );\r\nconst typeName = computed( () => {\r\n switch ( props.type ) {\r\n case 'year':\r\n typeFormat.value = 'YYYY-01-01 00:00:00';\r\n return '年';\r\n case 'month':\r\n typeFormat.value = 'YYYY-MM-01 00:00:00';\r\n return '年月';\r\n case 'date':\r\n typeFormat.value = 'YYYY-MM-DD 00:00:00';\r\n return '日期';\r\n case 'time':\r\n typeFormat.value = 'HH:mm:ss';\r\n return '时间';\r\n case 'datetime':\r\n typeFormat.value = 'YYYY-MM-DD HH:mm:ss';\r\n return '日期时间';\r\n }\r\n} );\r\n\r\nconst show = ref( false );\r\n\r\nfunction toChoose () {\r\n if ( props.disabled ) {\r\n return false;\r\n }\r\n show.value = true;\r\n let date = dayjs( props.modelValue );\r\n if ( date.isValid() && date.valueOf() !== ownValue.value.valueOf() ) {\r\n ownValue.value = date;\r\n }\r\n nextTick( () => {\r\n chooseDateRef.value?.syncModelValue();\r\n chooseTimeRef.value?.syncModelValue();\r\n inputDateTimeRef.value?.syncModelValue();\r\n } );\r\n}\r\nfunction cancelChoose () {\r\n show.value = false;\r\n ownValue.value = dayjs();\r\n emits( 'update:modelValue', '' );\r\n}\r\n\r\nfunction commitChoose () {\r\n let val = ownValue.value.format( props.format || typeFormat.value );\r\n emits( 'update:modelValue', val );\r\n show.value = false;\r\n}\r\n\r\nconst activeTab = ref( 0 );\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-datetime-container {\r\n --van-switch-width: calc(3em + 4px);\r\n\r\n .yhm-datetime-value {\r\n flex: 1;\r\n width: 100%;\r\n text-align: right;\r\n\r\n &.placeholder {\r\n color: var(--van-text-color-3);\r\n }\r\n }\r\n\r\n &.van-popup {\r\n height: 560px;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-radio-container\"\r\n v-bind=\"$attrs\"\r\n :disabled=\"disabled\"\r\n :modelValue=\"modelValue\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\">\r\n <template #input>\r\n <div class=\"yhm-radio-list\">\r\n <van-radio-group\r\n :disabled=\"disabled\"\r\n :model-value=\"modelValue\"\r\n @update:modelValue=\"changeHandler\">\r\n <van-radio\r\n v-for=\"option in optionData\"\r\n :name=\"option.value\">\r\n {{ option.text }}\r\n </van-radio>\r\n </van-radio-group>\r\n </div>\r\n </template>\r\n </van-field>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {vanOption} from '../types';\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any;\r\n disabled?: boolean;\r\n optionData: vanOption[];\r\n }>(),\r\n {}\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: any);\r\n (e: 'change', val: string);\r\n}>();\r\n\r\nfunction changeHandler(val) {\r\n emits('update:modelValue', val);\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-radio-container {\r\n .yhm-radio-list {\r\n flex: 1;\r\n .van-radio {\r\n padding-bottom: 5px;\r\n &:first-child {\r\n padding-top: 5px;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-radio-container\"\r\n v-bind=\"$attrs\"\r\n :modelValue=\"modelValue\"\r\n :disabled=\"disabled\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\">\r\n <template #input>\r\n <div class=\"yhm-radio-list\">\r\n <van-checkbox-group\r\n shape=\"square\"\r\n :disabled=\"disabled\"\r\n :model-value=\"modelValue\"\r\n @update:modelValue=\"changeHandler\">\r\n <van-checkbox\r\n v-for=\"option in optionData\"\r\n :name=\"option.value\">\r\n {{ option.text }}\r\n </van-checkbox>\r\n </van-checkbox-group>\r\n </div>\r\n </template>\r\n </van-field>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {vanOption} from '../types';\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any[];\r\n disabled?: boolean;\r\n optionData: vanOption[];\r\n }>(),\r\n {}\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: any);\r\n (e: 'change', val: string);\r\n}>();\r\n\r\nfunction changeHandler(val) {\r\n emits('update:modelValue', val);\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-radio-container {\r\n .yhm-radio-list {\r\n flex: 1;\r\n .van-checkbox {\r\n padding-bottom: 5px;\r\n &:first-child {\r\n padding-top: 5px;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-select-container\"\r\n :disabled=\"disabled\"\r\n v-bind=\"$attrs\"\r\n :error=\"error\"\r\n :modelValue=\"modelValue\"\r\n :error-message=\"errorMessage\">\r\n <template #input>\r\n <div\r\n class=\"yhm-select-value\"\r\n :class=\"valueClass\"\r\n @click=\"toChoose\">\r\n {{ valueString }}\r\n </div>\r\n </template>\r\n </van-field>\r\n <van-popup\r\n v-model:show=\"show\"\r\n class=\"yhm-select-container\"\r\n position=\"bottom\">\r\n <van-picker\r\n :title=\"palceholder\"\r\n :columns=\"filterOptionData\"\r\n :modelValue=\"[modelValue]\"\r\n ref=\"pickerRef\"\r\n @confirm=\"onComfirm\"\r\n @cancel=\"onCancel\">\r\n <template\r\n #title\r\n v-if=\"filterabled\">\r\n <input\r\n class=\"yhm-select-filter-input\"\r\n placeholder=\"输入关键词筛选\"\r\n type=\"text\"\r\n v-model=\"filterKeyword\"\r\n @input=\"filterChange\" />\r\n </template>\r\n </van-picker>\r\n </van-popup>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {ref, computed} from 'vue';\r\n\r\nconst props = withDefaults(defineProps<{error?: boolean; errorMessage?: string; modelValue?: any; disabled?: boolean; palceholder?: string; optionData: any[]; filterabled?: boolean; remoteFilter?: boolean}>(), {\r\n disabled: false,\r\n filterabled: false,\r\n remoteFilter: false,\r\n palceholder: '请选择',\r\n});\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: string);\r\n (e: 'change', val: string);\r\n (e: 'filter', val: string);\r\n}>();\r\n\r\nconst valueString = computed(() => {\r\n if (props.modelValue) {\r\n let option = props.optionData.filter((item) => item.value === props.modelValue)[0];\r\n return option ? option.text : props.modelValue;\r\n } else {\r\n return props.palceholder || '请选择';\r\n }\r\n});\r\n\r\nconst valueClass = computed(() => {\r\n return {\r\n placeholder: !props.modelValue,\r\n };\r\n});\r\n\r\nconst show = ref(false);\r\nconst pickerRef = ref();\r\n\r\nconst filterKeyword = ref('');\r\nconst filterOptionData = computed(() => {\r\n if (props.filterabled && !props.remoteFilter) {\r\n return props.optionData.filter(({text, value}) => {\r\n return text.indexOf(filterKeyword.value) > -1 || value.indexOf(filterKeyword.value) > -1;\r\n });\r\n } else {\r\n return props.optionData;\r\n }\r\n});\r\nlet filterTimer = null;\r\nfunction filterChange() {\r\n if (filterTimer) {\r\n clearTimeout(filterTimer);\r\n filterTimer = null;\r\n }\r\n // @ts-ignore\r\n filterTimer = setTimeout(() => {\r\n emits('filter', filterKeyword.value);\r\n }, 300);\r\n}\r\n\r\nfunction toChoose() {\r\n if (props.disabled) {\r\n return false;\r\n }\r\n show.value = true;\r\n}\r\n\r\n// function onChange({ selectedValues }) {\r\n// emits(\"update:modelValue\", selectedValues[0]);\r\n// }\r\nfunction onCancel() {\r\n show.value = false;\r\n}\r\n\r\nfunction onComfirm({selectedValues}) {\r\n emits('update:modelValue', selectedValues[0]);\r\n onCancel();\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-select-container {\r\n --van-switch-width: calc(3em + 4px);\r\n .yhm-select-value {\r\n flex: 1;\r\n width: 100%;\r\n text-align: right;\r\n &.placeholder {\r\n color: var(--van-text-color-3);\r\n }\r\n }\r\n &.van-popup {\r\n height: 560px;\r\n .yhm-select-filter-input {\r\n flex: 1;\r\n line-height: 30px;\r\n font-size: 12px;\r\n border: 1px solid var(--van-border-color);\r\n padding: 0 8px;\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-input-container\"\r\n v-bind=\"$attrs\"\r\n :model-value=\"modelValue\"\r\n @update:modelValue=\"changeHandler\"\r\n @keydown=\"keydownHandler\"\r\n :type=\"inputType\"\r\n :error=\"error\"\r\n ref=\"fieldRef\"\r\n :error-message=\"errorMessage\">\r\n <template\r\n #right-icon\r\n v-if=\"props.type === 'scan'\">\r\n <svg\r\n width=\"20px\"\r\n height=\"20px\"\r\n style=\"vertical-align: middle\"\r\n viewBox=\"0 0 1000 1000\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n stroke=\"var(--van-field-right-icon-color)\"\r\n stroke-width=\"60\"\r\n stroke-linejoin=\"round\"\r\n fill=\"none\"\r\n d=\"M200,350 L200,200 L400,200 M600,200 L800,200 L800,400 M800,600 L800,800 L600,800 M400,800 L200,800 L200,600 M0,500 L1000,500\"></path>\r\n </svg>\r\n </template>\r\n </van-field>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { computed, ref } from \"vue\";\r\nconst props = withDefaults(\r\n defineProps<{\r\n type?: string;\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any;\r\n precision?: number;\r\n scanCallback?: (val) => void;\r\n }>(),\r\n {\r\n type: \"text\",\r\n }\r\n);\r\n\r\nconst inputType = computed(() => {\r\n if (props.type === \"scan\") {\r\n return \"text\";\r\n } else {\r\n return props.type;\r\n }\r\n});\r\n\r\nconst emits = defineEmits<{\r\n (e: \"update:modelValue\", val: any);\r\n (e: \"change\", val: any);\r\n (e: \"scan\", val: any);\r\n}>();\r\n\r\nfunction changeHandler(val) {\r\n if (props.type === \"number\" && props.precision && !isNaN(props.precision)) {\r\n let valArr = val.split(\".\");\r\n if (valArr[1] && valArr[1].length && valArr[1].length > props.precision) {\r\n val = `${valArr[0]}.${valArr[1].substring(0, props.precision)}`;\r\n }\r\n }\r\n emits(\"update:modelValue\", val);\r\n emits(\"change\", val);\r\n}\r\n\r\nfunction keydownHandler(e: KeyboardEvent) {\r\n let key = e.key;\r\n if (key === \"Enter\" && props.type === \"scan\") {\r\n if (props.scanCallback && typeof props.scanCallback === \"function\") {\r\n props.scanCallback(props.modelValue);\r\n }\r\n }\r\n}\r\n\r\nconst fieldRef = ref();\r\nfunction focus() {\r\n fieldRef.value?.focus();\r\n}\r\n\r\nfunction blur() {\r\n fieldRef.value?.blur();\r\n}\r\ndefineExpose({ fieldRef, focus, blur });\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-input-container {\r\n .van-field__control {\r\n text-align: right;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-switch-container\"\r\n v-bind=\"$attrs\"\r\n :modelValue=\"modelValue\"\r\n :disabled=\"disabled\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\">\r\n <template #input>\r\n <div class=\"yhm-switch-value\">\r\n <van-switch\r\n :disabled=\"disabled\"\r\n :model-value=\"modelValue\"\r\n :active-value=\"activeValue\"\r\n :inactive-value=\"inactiveValue\"\r\n :size=\"size\"\r\n @update:modelValue=\"changeHandler\">\r\n <template #background>\r\n <div class=\"yhm-switch-value-text\">\r\n {{ modelValue === activeValue ? activeText : inactiveText }}\r\n </div>\r\n </template>\r\n </van-switch>\r\n </div>\r\n </template>\r\n </van-field>\r\n</template>\r\n<script setup lang=\"ts\">\r\nconst props = withDefaults(\r\n defineProps<{\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any;\r\n disabled?: boolean;\r\n size?: number;\r\n activeValue?: boolean;\r\n inactiveValue?: boolean;\r\n activeText?: string;\r\n inactiveText?: string;\r\n }>(),\r\n {\r\n disabled: false,\r\n size: 18,\r\n activeValue: true,\r\n inactiveValue: false,\r\n activeText: '',\r\n inactiveText: '',\r\n }\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: any);\r\n (e: 'change', val: any);\r\n}>();\r\n\r\nfunction changeHandler(val) {\r\n emits('update:modelValue', val);\r\n emits('change', val);\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-switch-container {\r\n .yhm-switch-value {\r\n flex: 1;\r\n display: flex;\r\n justify-content: flex-end;\r\n .van-switch {\r\n width: auto;\r\n .yhm-switch-value-text {\r\n transition: padding 0.3s ease 0s;\r\n padding: 0 0.5em 0 2em;\r\n font-size: 0.8em;\r\n color: var(--van-white);\r\n height: 22px;\r\n line-height: 22px;\r\n }\r\n &.van-switch--on {\r\n .van-switch__node {\r\n transform: none;\r\n left: auto;\r\n right: 2px;\r\n }\r\n .yhm-switch-value-text {\r\n padding: 0 2em 0 0.5em;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-password-container\"\r\n ref=\"passwordRef\"\r\n v-bind=\"$attrs\"\r\n :model-value=\"modelValue\"\r\n @update:modelValue=\"changeHandler\"\r\n :type=\"inputType\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\">\r\n <template #right-icon>\r\n <svg\r\n width=\"40px\"\r\n height=\"20px\"\r\n style=\"vertical-align: middle\"\r\n viewBox=\"0 0 2000 1000\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n @click=\"changeShowPassword\">\r\n <path\r\n d=\"M100,500 L100,200 S100,100 200,100 L1800,100 S1900,100 1900,200 L1900,800 S1900,900 1800,900 L200,900 S100,900 100,800 Z\"\r\n stroke=\"var(--van-field-right-icon-color)\"\r\n stroke-width=\"50\"\r\n fill=\"none\"></path>\r\n pa\r\n <g v-if=\"!showPassword\">\r\n <circle\r\n r=\"150\"\r\n stroke-width=\"0\"\r\n fill=\"var(--van-field-right-icon-color)\"\r\n cx=\"500\"\r\n cy=\"500\"></circle>\r\n <circle\r\n r=\"150\"\r\n stroke-width=\"0\"\r\n fill=\"var(--van-field-right-icon-color)\"\r\n cx=\"1000\"\r\n cy=\"500\"></circle>\r\n <circle\r\n r=\"150\"\r\n stroke-width=\"0\"\r\n fill=\"var(--van-field-right-icon-color)\"\r\n cx=\"1500\"\r\n cy=\"500\"></circle>\r\n </g>\r\n <g v-else>\r\n <polyline\r\n points=\"350,300 650,300 500,300 500 700\"\r\n stroke=\"var(--van-field-right-icon-color)\"\r\n stroke-width=\"60\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n fill=\"none\"></polyline>\r\n <polyline\r\n points=\"850,300 1150,300 1000,300 1000 700\"\r\n stroke=\"var(--van-field-right-icon-color)\"\r\n stroke-width=\"60\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n fill=\"none\"></polyline>\r\n <polyline\r\n points=\"1350,300 1650,300 1500,300 1500 700\"\r\n stroke=\"var(--van-field-right-icon-color)\"\r\n stroke-width=\"60\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n fill=\"none\"></polyline>\r\n </g>\r\n </svg>\r\n </template>\r\n </van-field>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { computed, ref } from \"vue\";\r\nconst props = withDefaults(\r\n defineProps<{\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any;\r\n }>(),\r\n {}\r\n);\r\n\r\nconst showPassword = ref(false);\r\n\r\nconst inputType = computed(() => {\r\n if (showPassword.value) {\r\n return \"text\";\r\n } else {\r\n return \"password\";\r\n }\r\n});\r\n\r\nconst emits = defineEmits<{\r\n (e: \"update:modelValue\", val: any);\r\n (e: \"change\", val: any);\r\n}>();\r\n\r\nfunction changeHandler(val) {\r\n emits(\"update:modelValue\", val);\r\n emits(\"change\", val);\r\n}\r\n\r\nconst passwordRef = ref();\r\nfunction changeShowPassword() {\r\n showPassword.value = !showPassword.value;\r\n passwordRef.value?.focus();\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-password-container {\r\n .van-field__control {\r\n text-align: right;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-cascader-container\"\r\n v-bind=\"$attrs\"\r\n :modelValue=\"modelValue\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\"\r\n :disabled=\"disabled\">\r\n <template #input>\r\n <div @click=\"showSignature\">\r\n <span :class=\"{placeholder: !modelValue}\">\r\n {{ modelText || placeholder }}\r\n </span>\r\n </div>\r\n </template>\r\n </van-field>\r\n <van-popup\r\n class=\"yhm-cascader-container\"\r\n v-model:show=\"isShow\"\r\n position=\"bottom\">\r\n <van-cascader\r\n :value-model=\"modelValue\"\r\n :title=\"placeholder\"\r\n :options=\"optionData\"\r\n @close=\"onCancel\"\r\n @finish=\"onFinish\" />\r\n </van-popup>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {ref} from 'vue';\r\nimport {vanOption} from '../types';\r\nconst props = withDefaults(\r\n defineProps<{\r\n placeholder?: string;\r\n disabled?: boolean;\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any;\r\n optionData: vanOption[];\r\n }>(),\r\n {\r\n disabled: false,\r\n placeholder: '请选择',\r\n }\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: any);\r\n (e: 'change', val: any);\r\n}>();\r\n\r\nconst isShow = ref(false);\r\nconst modelText = ref('');\r\nfunction showSignature() {\r\n if (!props.disabled) {\r\n isShow.value = true;\r\n }\r\n}\r\nfunction changeHandler(val) {\r\n emits('update:modelValue', val);\r\n emits('change', val);\r\n}\r\n\r\nfunction onFinish({selectedOptions}) {\r\n let value = selectedOptions.map((option) => option.value).join('/');\r\n modelText.value = selectedOptions.map((option) => option.text).join('/');\r\n changeHandler(value);\r\n isShow.value = false;\r\n}\r\nfunction onCancel() {\r\n changeHandler('');\r\n isShow.value = false;\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-cascader-container {\r\n .van-field__control {\r\n justify-content: flex-end;\r\n\r\n .placeholder {\r\n color: var(--van-text-color-3);\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-rate-container\"\r\n v-bind=\"$attrs\"\r\n :modelValue=\"modelValue\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\"\r\n :disabled=\"disabled\">\r\n <template #input>\r\n <van-rate\r\n :disabled=\"disabled\"\r\n :model-value=\"modelValue\"\r\n @update:modelValue=\"changeHandler\"\r\n :count=\"count\"\r\n :size=\"size\"\r\n :gutter=\"gutter\"\r\n :color=\"color\"\r\n :allow-half=\"allowHalf\"\r\n :clearable=\"clearable\"></van-rate>\r\n </template>\r\n </van-field>\r\n</template>\r\n<script setup lang=\"ts\">\r\nconst props = withDefaults(\r\n defineProps<{\r\n disabled?: boolean;\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any;\r\n count?: number;\r\n size?: number;\r\n gutter?: number;\r\n color?: string;\r\n allowHalf?: boolean;\r\n clearable?: boolean;\r\n }>(),\r\n {\r\n disabled: false,\r\n step: 1,\r\n min: 1,\r\n barHeight: '2px',\r\n buttonSize: '24px',\r\n }\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: any);\r\n (e: 'change', val: any);\r\n}>();\r\n\r\nfunction changeHandler(val) {\r\n emits('update:modelValue', val);\r\n emits('change', val);\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-rate-container {\r\n .van-field__control {\r\n justify-content: flex-end;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-signature-container\"\r\n v-bind=\"$attrs\"\r\n :modelValue=\"modelValue\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\"\r\n :disabled=\"disabled\">\r\n <template #input>\r\n <span\r\n @click=\"showSignature\"\r\n class=\"placeholder\"\r\n v-if=\"!modelValue\">\r\n 点击进行签名\r\n </span>\r\n <img\r\n v-else\r\n class=\"signature-image\"\r\n @click=\"showSignature\"\r\n :src=\"modelValue\"\r\n alt=\"签名\" />\r\n </template>\r\n </van-field>\r\n <van-popup\r\n class=\"yhm-signature-container\"\r\n v-model:show=\"isShow\"\r\n position=\"bottom\">\r\n <van-signature\r\n @submit=\"onSubmit\"\r\n @clear=\"onClear\"></van-signature>\r\n </van-popup>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {ref} from 'vue';\r\nconst props = withDefaults(\r\n defineProps<{\r\n disabled?: boolean;\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any;\r\n }>(),\r\n {\r\n disabled: false,\r\n }\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: any);\r\n (e: 'change', val: any);\r\n}>();\r\n\r\nconst isShow = ref(false);\r\nfunction showSignature() {\r\n if (!props.disabled) {\r\n isShow.value = true;\r\n }\r\n}\r\nfunction changeHandler(val) {\r\n emits('update:modelValue', val);\r\n emits('change', val);\r\n}\r\n\r\nfunction onSubmit({image}) {\r\n changeHandler(image);\r\n isShow.value = false;\r\n}\r\nfunction onClear() {\r\n changeHandler('');\r\n isShow.value = false;\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-signature-container {\r\n .van-field__control {\r\n justify-content: flex-end;\r\n .placeholder {\r\n color: var(--van-text-color-3);\r\n }\r\n .signature-image {\r\n width: auto;\r\n max-height: 60px;\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-slider-container\"\r\n v-bind=\"$attrs\"\r\n :modelValue=\"modelValue\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\"\r\n :disabled=\"disabled\">\r\n <template #input>\r\n <van-slider\r\n :disabled=\"disabled\"\r\n :model-value=\"modelValue\"\r\n @update:modelValue=\"changeHandler\"\r\n :step=\"step\"\r\n :min=\"min\"\r\n :max=\"max\"\r\n :bar-height=\"barHeight\"\r\n :button-size=\"buttonSize\"></van-slider>\r\n </template>\r\n </van-field>\r\n</template>\r\n<script setup lang=\"ts\">\r\nconst props = withDefaults(\r\n defineProps<{\r\n disabled?: boolean;\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any;\r\n step?: number;\r\n min?: number;\r\n max?: number;\r\n barHeight?: string;\r\n buttonSize?: string;\r\n }>(),\r\n {\r\n disabled: false,\r\n step: 1,\r\n min: 1,\r\n barHeight: '2px',\r\n buttonSize: '24px',\r\n }\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: any);\r\n (e: 'change', val: any);\r\n}>();\r\n\r\nfunction changeHandler(val) {\r\n emits('update:modelValue', val);\r\n emits('change', val);\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-slider-container {\r\n .van-field__control {\r\n justify-content: flex-end;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-stepper-container\"\r\n v-bind=\"$attrs\"\r\n :modelValue=\"modelValue\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\"\r\n :disabled=\"disabled\">\r\n <template #input>\r\n <van-stepper\r\n :disabled=\"disabled\"\r\n :model-value=\"modelValue\"\r\n @update:modelValue=\"changeHandler\"\r\n :step=\"step\"\r\n :min=\"min\"\r\n :max=\"max\"\r\n :decimalLength=\"decimalLength\"></van-stepper>\r\n </template>\r\n </van-field>\r\n</template>\r\n<script setup lang=\"ts\">\r\nconst props = withDefaults(\r\n defineProps<{\r\n disabled?: boolean;\r\n error?: boolean;\r\n errorMessage?: string;\r\n modelValue?: any;\r\n step?: number;\r\n min?: number;\r\n max?: number;\r\n decimalLength?: number;\r\n }>(),\r\n {\r\n disabled: false,\r\n step: 1,\r\n min: 1,\r\n decimalLength: 0,\r\n }\r\n);\r\n\r\nconst emits = defineEmits<{\r\n (e: 'update:modelValue', val: any);\r\n (e: 'change', val: any);\r\n}>();\r\n\r\nfunction changeHandler(val) {\r\n emits('update:modelValue', val);\r\n emits('change', val);\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-stepper-container {\r\n .van-field__control {\r\n justify-content: flex-end;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <van-field\r\n class=\"yhm-scan-and-select-container\"\r\n :disabled=\"disabled\"\r\n v-bind=\"$attrs\"\r\n v-model=\"modelValue\"\r\n @keydown=\"keydownHandler\"\r\n :error=\"error\"\r\n :error-message=\"errorMessage\">\r\n <template #right-icon>\r\n <svg\r\n width=\"20px\"\r\n height=\"20px\"\r\n style=\"vertical-align: middle\"\r\n viewBox=\"0 0 1000 1000\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n stroke=\"var(--van-field-right-icon-color)\"\r\n stroke-width=\"60\"\r\n stroke-linejoin=\"round\"\r\n fill=\"none\"\r\n d=\"M200,350 L200,200 L400,200 M600,200 L800,200 L800,400 M800,600 L800,800 L600,800 M400,800 L200,800 L200,600 M0,500 L1000,500\"></path>\r\n </svg>\r\n <svg\r\n width=\"20px\"\r\n height=\"20px\"\r\n style=\"vertical-align: middle; margin-left: 5px\"\r\n viewBox=\"0 0 1000 1000\"\r\n @click=\"toChoose\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n stroke=\"none\"\r\n fill=\"var(--van-gray-8)\"\r\n class=\"select-icon\"\r\n :d=\"selectIconPath\"></path>\r\n </svg>\r\n </template>\r\n </van-field>\r\n <van-popup\r\n v-model:show=\"show\"\r\n class=\"yhm-select-container\"\r\n position=\"bottom\">\r\n <van-picker\r\n :title=\"palceholder\"\r\n :columns=\"filterOptionData\"\r\n :modelValue=\"[modelValue]\"\r\n ref=\"pickerRef\"\r\n @confirm=\"onComfirm\"\r\n @cancel=\"onCancel\">\r\n <template\r\n #title\r\n v-if=\"filterabled\">\r\n <input\r\n class=\"yhm-select-filter-input\"\r\n placeholder=\"输入关键词筛选\"\r\n type=\"text\"\r\n v-model=\"filterKeyword\" />\r\n </template>\r\n </van-picker>\r\n </van-popup>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { ref, computed } from \"vue\";\r\n\r\nconst props = withDefaults(defineProps<{ error?: boolean; errorMessage?: string; disabled?: boolean; palceholder?: string; optionData: any[]; filterabled?: boolean; remoteFilter?: boolean }>(), {\r\n disabled: false,\r\n filterabled: false,\r\n remoteFilter: false,\r\n palceholder: \"请选择\",\r\n});\r\n\r\nconst emits = defineEmits<{\r\n (e: \"scan\", val: string);\r\n}>();\r\n\r\nconst modelValue = ref();\r\n\r\nconst selectIconPath = computed(() => {\r\n return !show.value ? \"M100,300 L500,300 L900,300 L500,700 Z\" : \"M100,700 L500,300 L900,700 L500,700 Z\";\r\n});\r\n\r\nconst show = ref(false);\r\nconst pickerRef = ref();\r\n\r\nconst filterKeyword = ref(\"\");\r\nconst filterOptionData = computed(() => {\r\n if (props.filterabled && !props.remoteFilter) {\r\n return props.optionData.filter(({ text, value }) => {\r\n return text.indexOf(filterKeyword.value) > -1 || value.indexOf(filterKeyword.value) > -1;\r\n });\r\n } else {\r\n return props.optionData;\r\n }\r\n});\r\n\r\nfunction keydownHandler(e: KeyboardEvent) {\r\n let key = e.key;\r\n if (key === \"Enter\") {\r\n changeHandler();\r\n }\r\n}\r\n\r\nfunction changeHandler() {\r\n emits(\"scan\", modelValue.value);\r\n}\r\n\r\nfunction toChoose() {\r\n if (props.disabled) {\r\n return false;\r\n }\r\n show.value = true;\r\n}\r\n\r\n// function onChange({ selectedValues }) {\r\n// emits(\"update:modelValue\", selectedValues[0]);\r\n// }\r\nfunction onCancel() {\r\n show.value = false;\r\n}\r\n\r\nfunction onComfirm({ selectedValues }) {\r\n modelValue.value = selectedValues[0];\r\n emits(\"scan\", modelValue.value);\r\n onCancel();\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n.yhm-scan-and-select-container {\r\n --van-switch-width: calc(3em + 4px);\r\n .select-icon {\r\n transition: all 0.3s ease-in-out 0s;\r\n }\r\n &.van-popup {\r\n height: 560px;\r\n .yhm-select-filter-input {\r\n flex: 1;\r\n line-height: 30px;\r\n font-size: 12px;\r\n border: 1px solid var(--van-border-color);\r\n padding: 0 8px;\r\n }\r\n }\r\n}\r\n</style>\r\n","/**\r\n *\r\n * @param {HTMLElement} el\r\n * @param {Boolean} value\r\n * @param {String} color\r\n * @param {String} bgColor\r\n * @returns\r\n */\r\nfunction initLoading({el, value, color = 'rgb(25, 137, 250)', bgColor = 'rgba(255,255,255,0.5)', zIndex = 10, text = '加载中......'}) {\r\n const id = `yhmLoading-${Date.now()}`;\r\n el.setAttribute('data-loadingid', id);\r\n\r\n el.style.position = 'relative';\r\n\r\n const isVanBtn = el.classList.contains('van-button');\r\n const elStyles = window.getComputedStyle(el);\r\n const elZIndex = parseInt(elStyles.getPropertyValue('z-index'));\r\n if (!isNaN(elZIndex)) {\r\n zindex = elZIndex + 10;\r\n }\r\n const vLoading = document.createElement('div');\r\n vLoading.setAttribute('id', id);\r\n vLoading.className = `van-loading van-loading--circular`;\r\n let style = `display: none; flex-direction: column; position: absolute; left: 0px; top: 0px; width: calc(100% - ${isVanBtn ? 2 : 0}px); height: calc(100% + ${isVanBtn ? 2 : 0}px);justify-content: center;align-items: center;background-color: ${bgColor}; z-index: ${zindex};`;\r\n if (isVanBtn) {\r\n style += 'margin: -1px;';\r\n }\r\n vLoading.setAttribute('style', style);\r\n const vLoadingSpiner = document.createElement('span');\r\n vLoadingSpiner.className = `van-loading__spinner van-loading__spinner--circular`;\r\n vLoadingSpiner.style.color = color;\r\n vLoadingSpiner.innerHTML = `<svg class=\"van-loading__circular\" viewBox=\"25 25 50 50\"><circle cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\"></circle></svg>`;\r\n vLoading.appendChild(vLoadingSpiner);\r\n const vLoadingText = document.createElement('span');\r\n vLoadingText.className = `van-loading__text`;\r\n vLoadingText.style.color = color;\r\n vLoadingText.innerText = text;\r\n vLoading.appendChild(vLoadingText);\r\n el.appendChild(vLoading);\r\n syncLoadingStatus(el, vLoading, value);\r\n return vLoading;\r\n}\r\n\r\nfunction syncLoadingStatus(el, vLoading, value) {\r\n if (value) {\r\n el.style.opacity = '0.5';\r\n el.style.overflow = 'hidden';\r\n vLoading.style.display = 'flex';\r\n vLoading.style.top = el.scrollTop + 'px';\r\n } else {\r\n el.style.opacity = '1';\r\n el.style.overflow = '';\r\n vLoading.style.display = 'none';\r\n }\r\n}\r\nexport const directives = {\r\n created(el, {value, instance}) {\r\n let {color, bgcolor: bgColor, text, zindex: zIndex} = el.dataset;\r\n instance.$nextTick(() => {\r\n initLoading({el, value, color, bgColor, text, zIndex});\r\n });\r\n },\r\n updated(el, {value}) {\r\n let id = el.dataset.loadingid;\r\n const vLoading = document.getElementById(id);\r\n syncLoadingStatus(el, vLoading, value);\r\n },\r\n unmounted(el, binding) {},\r\n};\r\n\r\n/**\r\n * loading 服务\r\n * @param {Object} param\r\n * @param {HTMLElement} [param.el = document.body] loading 挂载的dom对象, 默认为 body\r\n * @param {string} [param.color = 'rgb(25, 137, 250)'] 加载图片和文字的颜色\r\n * @param {string} [param.bgColor = 'rgba(255,255,255,0.5)'] 加载遮罩的背景色\r\n * @param {number} [param.zIndex = 10] 遮罩的 Z 轴层级\r\n * @param {string} [param.text = '加载中......'] 加载文字提示内容\r\n */\r\nexport function services(param) {\r\n let {el} = param;\r\n if (!el instanceof HTMLElement) {\r\n throw new Error('el 参数不是文档对象');\r\n }\r\n let vLoading = initLoading(param);\r\n return {\r\n close() {\r\n el.style.position = '';\r\n el.style.opacity = '';\r\n el.style.overflow = '';\r\n vLoading.remove();\r\n },\r\n };\r\n}\r\n","import yhmList from \"./info/yhmList.vue\";\r\nimport yhmDropdownItem from \"./info/yhmDropdownItem.vue\";\r\nimport yhmTabs from \"./info/yhmTabs.vue\";\r\nimport yhmInfo from \"./info/yhmInfo.vue\";\r\nimport yhmInfoItem from \"./info/yhmInfoItem.vue\";\r\nimport yhmTable from \"./info/yhmTable.vue\";\r\nimport yhmForm from \"./form/yhm-form.vue\";\r\nimport yhmDatetime from \"./form/yhmDatetime.vue\";\r\nimport yhmRadio from \"./form/yhmRadio.vue\";\r\nimport yhmCheckbox from \"./form/yhmCheckbox.vue\";\r\nimport yhmSelect from \"./form/yhmSelect.vue\";\r\nimport yhmInput from \"./form/yhmInput.vue\";\r\nimport yhmSwitch from \"./form/yhmSwitch.vue\";\r\nimport yhmPassword from \"./form/yhmPassword.vue\";\r\nimport yhmCascader from \"./form/yhmCascader.vue\";\r\nimport yhmRate from \"./form/yhmRate.vue\";\r\nimport yhmSignature from \"./form/yhmSignature.vue\";\r\nimport yhmSlider from \"./form/yhmSlider.vue\";\r\nimport yhmStepper from \"./form/yhmStepper.vue\";\r\nimport yhmScanAndSelect from \"./functional/yhmScanAndSelect.vue\";\r\nimport { directives as loadingDirectives, services as loadingServices } from \"./extensions/loading\";\r\n\r\nexport default {\r\n install ( app ) {\r\n app.directive( \"loading\", loadingDirectives );\r\n app.config.globalProperties.$loading = loadingDirectives;\r\n app.component( \"yhm-list\", yhmList );\r\n app.component( \"yhm-dropdown-item\", yhmDropdownItem );\r\n app.component( \"yhm-tabs\", yhmTabs );\r\n app.component( \"yhm-info\", yhmInfo );\r\n app.component( \"yhm-info-item\", yhmInfoItem );\r\n app.component( \"yhm-table\", yhmTable );\r\n app.component( \"yhm-form\", yhmForm );\r\n app.component( \"yhm-datetime\", yhmDatetime );\r\n app.component( \"yhm-radio\", yhmRadio );\r\n app.component( \"yhm-checkbox\", yhmCheckbox );\r\n app.component( \"yhm-input\", yhmInput );\r\n app.component( \"yhm-select\", yhmSelect );\r\n app.component( \"yhm-switch\", yhmSwitch );\r\n app.component( \"yhm-password\", yhmPassword );\r\n app.component( \"yhm-cascader\", yhmCascader );\r\n app.component( \"yhm-rate\", yhmRate );\r\n app.component( \"yhm-signature\", yhmSignature );\r\n app.component( \"yhm-slider\", yhmSlider );\r\n app.component( \"yhm-stepper\", yhmStepper );\r\n app.component( \"yhm-scan-and-select\", yhmScanAndSelect );\r\n },\r\n};\r\n"],"names":["scrollContent","ref","keyword","setKeyowrd","k","nextTick","getList","params","reactive","list","listLoading","listError","pageIndex","pageSize","refreshing","finished","tabsParamsConfig","computed","_a","props","config","dropdownParamsConfig","customParamsConfig","item","timer","isClear","l","t","onSearch","type","watch","renderCustom","row","label","span","align","descAlign","fontSize","status","description","defaultDescription","slot","value","defaultValue","onMounted","i","paramItem","onActivated","expose","modelValue","val","updateHandler","emits","yhmTabsRef","optionVals","items","index","e","widthCount","tableWidth","width","accumulator","column","w","optionsConfig","required","name","disabled","placeholder","rexMsg","rex","itemChange","labelAlign","error","errorMessage","component","verificationResult","vals","flag","handlerChange","valFlag","option","module","this","n","r","s","u","a","o","c","f","h","d","$","y","M","m","v","g","D","p","S","_","O","b","divType","viewDate","dayjs","momentYear","momentMonth","momentDay","changeType","rows","mMFD","mMDays","firstIndex","mMLW","lastIndex","day","powLen","result","j","month","year","chooseDay","chooseMonth","chooseYear","prev","count","newDate","next","syncModelValue","pickerIndexs","hour","minute","second","changeHandler","selectedIndexes","statusText","yearRef","monthRef","date","dateRef","hourRef","minuteRef","secondRef","yearChangeHandler","changeModelValue","_b","inputFocusHandler","monthChangeHandler","dateChangeHandler","hourChangeHandler","minuteChangeHandler","secondChangeHandler","chooseDateRef","chooseTimeRef","inputDateTimeRef","ownValue","valueString","valueClass","typeFormat","typeName","show","toChoose","_c","cancelChoose","commitChoose","activeTab","pickerRef","filterKeyword","filterOptionData","text","filterTimer","filterChange","onCancel","onComfirm","selectedValues","inputType","valArr","keydownHandler","fieldRef","focus","blur","showPassword","passwordRef","changeShowPassword","isShow","modelText","showSignature","onFinish","selectedOptions","onSubmit","image","onClear","selectIconPath","initLoading","el","color","bgColor","zIndex","id","isVanBtn","elStyles","elZIndex","vLoading","style","vLoadingSpiner","vLoadingText","syncLoadingStatus","directives","instance","binding","app","loadingDirectives","yhmList","yhmDropdownItem","yhmTabs","yhmInfo","yhmInfoItem","yhmTable","yhmForm","yhmDatetime","yhmRadio","yhmCheckbox","yhmInput","yhmSelect","yhmSwitch","yhmPassword","yhmCascader","yhmRate","yhmSignature","yhmSlider","yhmStepper","yhmScanAndSelect"],"mappings":"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","x_google_ignoreList":[6]}
|