1 |
- {"version":3,"sources":["webpack:///E:/盈通/sulibao-mini/components/w-select/w-select.vue?2723","webpack:///E:/盈通/sulibao-mini/components/w-select/w-select.vue?8a11","webpack:///E:/盈通/sulibao-mini/components/w-select/w-select.vue?a1f8","webpack:///E:/盈通/sulibao-mini/components/w-select/w-select.vue?d34d","uni-app:///components/w-select/w-select.vue","webpack:///E:/盈通/sulibao-mini/components/w-select/w-select.vue?6f73","webpack:///E:/盈通/sulibao-mini/components/w-select/w-select.vue?b36d"],"names":["props","width","type","default","height","bgColor","multiple","filterable","showClose","list","value","defaultValue","valueName","keyName","fontSize","watch","immediate","deep","handler","isItem","computed","multiLength","bottomDistance","data","inputData","multiSelectList","isShow","optionsShow","windowHeight","curHeight","distanceTop","showPosition","filterList","refreshUrl","mounted","uni","createSelectorQuery","in","select","boundingClientRect","exec","methods","showPositon","changeShow","setTimeout","closeContentSelect","setValue","inputChange","item","blurChange","refreshValue","handleClickItem","multiSelect"],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiI;AACjI;AAC4D;AACL;AACsC;;;AAG7F;AAC+M;AAC/M,gBAAgB,uNAAU;AAC1B,EAAE,8EAAM;AACR,EAAE,+FAAM;AACR,EAAE,wGAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,mGAAU;AACZ;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC/CA;AAAA;AAAA;AAAA;AAAozB,CAAgB,o0BAAG,EAAC,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCmIx0B;EACAA;IACAC;MACAC;MACAC;IACA;IACAC;MACAF;MACAC;IACA;IACAE;MACAH;MACAC;IACA;IACA;IACAG;MACAJ;MACAC;IACA;IACA;IACAI;MACAL;MACAC;IACA;IACA;IACAK;MACAN;MACAC;IACA;IACA;IACAM;MACAP;MACAC;QAAA;MAAA;IACA;IASA;IACAO;MACAR;MACAC;IACA;IAEA;IACAQ;MACAT;MACAC;IACA;IACA;IACAS;MACAV;MACAC;IACA;IACA;IACAU;MACAX;MACAC;IACA;IACAW;MACAZ;MACAC;IACA;EACA;EAIAY;IACAN;MACAO;MACAC;MACAC;QAAA;QACA;QACA;UACA;UAUA;YACAC;UACA;YACAA;UACA;UAEA;QACA;QACA;UACA;QACA;MACA;IACA;EACA;EACAC;IACAC;MACA;MACA;IACA;IACAC;MACA,OACA,sDACA;IACA;EACA;EACAC;IACA;MACAC;MAKAC;MAEAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;IACA;EACA;EACAC;IAAA;IACA;MACA;MACA;MACAC,IACAC,sBACAC,WACAC,mBACAC;QACA;QACA;MACA,GACAC;IACA;EACA;EACAC;IACAC;MACA;MACA;QACA;MACA;IACA;IACAC;MAAA;MACA;MACA;QACA;QACAC;UACA;QACA;MACA;QACA;QACA;MACA;IACA;IACAC;MAAA;MACA;MACAD;QACA;MACA;IACA;IACAE;MAAA;MAMA;IAEA;IACAC;MAAA;MACA;MACA;QACA;MACA;QACA;QACA;MACA;MAEA;QAAA,OACAC;MAAA,EACA;IACA;IACAC;MACA;MAEA;QAAA;QACA,yEACA,+DACA,kCACA;QACA;MACA;IACA;IACAC;MACA;MACA;MACA;MACA;MACA;QACA;MACA;IACA;IACAC;MACA;QACA;MACA;QACA;QACA;QACA;QACA;MACA;IACA;IACAC;MAAA;MACA,2CACA;QAAA;MAAA,EACA;MACA;QACA;MACA;QACA;MACA;MACA;MACA;MACA;MACA;IACA;EACA;AACA;AAAA,4B;;;;;;;;;;;;;AClXA;AAAA;AAAA;AAAA;AAA+hD,CAAgB,m/CAAG,EAAC,C;;;;;;;;;;;ACAnjD;AACA,OAAO,KAAU,EAAE,kBAKd","file":"components/w-select/w-select.js","sourcesContent":["import { render, staticRenderFns, recyclableRender, components } from \"./w-select.vue?vue&type=template&id=5fdefe44&scoped=true&\"\nvar renderjs\nimport script from \"./w-select.vue?vue&type=script&lang=js&\"\nexport * from \"./w-select.vue?vue&type=script&lang=js&\"\nimport style0 from \"./w-select.vue?vue&type=style&index=0&id=5fdefe44&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\runtime\\\\componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5fdefe44\",\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"components/w-select/w-select.vue\"\nexport default component.exports","export * from \"-!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\templateLoader.js??vue-loader-options!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--17-0!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\template.js!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-uni-app-loader\\\\page-meta.js!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./w-select.vue?vue&type=template&id=5fdefe44&scoped=true&\"","var components\nvar render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n var g0 = _vm.multiple\n ? _vm.multiSelectList.length === 0 && !_vm.filterable\n : null\n var g1 = _vm.multiple ? _vm.multiSelectList.length : null\n var g2 = _vm.multiple ? _vm.multiSelectList.length : null\n var g3 =\n (!_vm.multiple || _vm.filterable) && _vm.multiple\n ? _vm.multiSelectList.length\n : null\n var g4 = _vm.showClose && (_vm.multiple ? _vm.value.length > 0 : _vm.value)\n var g5 = _vm.value.length <= 0 || !_vm.showClose\n var l0 = _vm.__map(_vm.filterList, function (item, __i0__) {\n var $orig = _vm.__get_orig(item)\n var g6 =\n _vm.multiple &&\n _vm.multiSelectList.find(function (res) {\n return res[_vm.keyName] === item[_vm.keyName]\n })\n return {\n $orig: $orig,\n g6: g6,\n }\n })\n var g7 = _vm.filterList.length\n _vm.$mp.data = Object.assign(\n {},\n {\n $root: {\n g0: g0,\n g1: g1,\n g2: g2,\n g3: g3,\n g4: g4,\n g5: g5,\n l0: l0,\n g7: g7,\n },\n }\n )\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--13-1!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./w-select.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--13-1!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./w-select.vue?vue&type=script&lang=js&\"","<template>\r\n\t<view\r\n\t class=\"w-select\"\r\n\t id=\"wSelect\"\r\n\t :style=\"{\r\n\t\t'--select-wrap-width': width,\r\n\t\t'--select-wrap-height': height,\r\n\t\t'--select-bg-color': bgColor\r\n\t }\"\r\n\t>\r\n\t <view :class=\"isShow ? 'select-wrap-active' : ''\" class=\"select-wrap\" @click=\"changeShow\" style=\"height: 35px;\">\r\n\t\t<view v-if=\"multiple\" class=\"select-content\">\r\n\t\t <view class=\"select-content-item-default\" v-if=\"multiSelectList.length === 0 && !filterable\">\r\n\t\t\t{{ defaultValue }}\r\n\t\t </view>\r\n\t\t <view class=\"select-content-item\" v-if=\"multiSelectList.length > 0\">\r\n\t\t\t{{ multiSelectList[0][valueName] }}\r\n\t\t </view>\r\n\t\t <view class=\"select-content-item\" v-if=\"multiSelectList.length > 1\">\r\n\t\t\t{{ multiLength }}\r\n\t\t </view>\r\n\t\t</view>\r\n\t\t<input\r\n\t\t v-if=\"!multiple || filterable\"\r\n\t\t type=\"text\"\r\n\t\t @input=\"inputChange\"\r\n\t\t @blur=\"blurChange\"\r\n\t\t :placeholder=\"multiple ? multiSelectList.length === 0 ? defaultValue : '' : defaultValue\"\r\n\t\t :disabled=\"!filterable\"\r\n\t\t :style=\"!filterable ? 'pointer-events: none' : 'font-size:'+fontSize\"\r\n\t\t :value=\"inputData\"\r\n\t\t style=\"font-size: 14px;font-weight: bold;\"\r\n\t\t>\r\n\t\t<!-- #ifdef VUE2 -->\r\n\t\t<view\r\n\t\t @click.stop=\"refreshValue\"\r\n\t\t class=\"close-icon\"\r\n\t\t v-if=\"showClose && (multiple ? value.length > 0 : value)\"\r\n\t\t>\r\n\t\t <image :src=\"refreshUrl\" mode=\"\" />\r\n\t\t</view>\r\n\t\t<view\r\n\t\t v-if=\"value.length <= 0 || !showClose\"\r\n\t\t :class=\"isShow ? 'w-select-arrow-up' : ''\"\r\n\t\t class=\"w-select-arrow \"\r\n\t\t/>\r\n\t\t<!-- #endif -->\r\n\t\t<!-- #ifdef VUE3 -->\r\n\t\t<view\r\n\t\t @click.stop=\"refreshValue\"\r\n\t\t class=\"close-icon\"\r\n\t\t v-if=\"showClose && (multiple ? modelValue.length > 0 : modelValue)\"\r\n\t\t>\r\n\t\t <image :src=\"refreshUrl\" mode=\"\" />\r\n\t\t</view>\r\n\t\t<view\r\n\t\t v-if=\"modelValue.length <= 0 || !showClose\"\r\n\t\t :class=\"isShow ? 'w-select-arrow-up' : ''\"\r\n\t\t class=\"w-select-arrow \"\r\n\t\t/>\r\n\t\t<!-- #endif -->\r\n \r\n\t\t<scroll-view\r\n\t\t scroll-y\r\n\t\t v-show=\"optionsShow\"\r\n\t\t :class=\"[\r\n\t\t\tisShow\r\n\t\t\t ? showPosition === 'bottom'\r\n\t\t\t\t? 'animation-bottom-in'\r\n\t\t\t\t: 'animation-top-in'\r\n\t\t\t : showPosition === 'bottom'\r\n\t\t\t\t? 'animation-bottom-out'\r\n\t\t\t\t: 'animation-top-out',\r\n\t\t\tshowPosition === 'bottom'\r\n\t\t\t ? 'position-bottom'\r\n\t\t\t : 'position-top'\r\n\t\t ]\"\r\n\t\t class=\"select-options\"\r\n\t\t>\r\n\t\t <!-- #ifdef VUE2 -->\r\n\t\t <view\r\n\t\t\t@click.stop=\"handleClickItem(item)\"\r\n\t\t\t:class=\"\r\n\t\t\t multiple &&\r\n\t\t\t\tmultiSelectList.find(\r\n\t\t\t\t res => res[keyName] === item[keyName]\r\n\t\t\t\t)\r\n\t\t\t\t? 'item-active'\r\n\t\t\t\t: value === item[keyName]\r\n\t\t\t\t ? 'item-active'\r\n\t\t\t\t : ''\r\n\t\t\t\"\r\n\t\t\tv-for=\"item in filterList\"\r\n\t\t\t:key=\"item[keyName]\"\r\n\t\t\tclass=\"select-option-item\"\r\n\t\t >\r\n\t\t\t{{ item[valueName] }}\r\n\t\t </view>\r\n\t\t <!-- #endif -->\r\n\t\t <!-- #ifdef VUE3 -->\r\n\t\t <view\r\n\t\t\t@click.stop=\"handleClickItem(item)\"\r\n\t\t\t:class=\"\r\n\t\t\t multiple &&\r\n\t\t\t\tmultiSelectList.find(\r\n\t\t\t\t res => res[keyName] === item[keyName]\r\n\t\t\t\t)\r\n\t\t\t\t? 'item-active'\r\n\t\t\t\t: modelValue === item[keyName]\r\n\t\t\t\t ? 'item-active'\r\n\t\t\t\t : ''\r\n\t\t\t\"\r\n\t\t\tv-for=\"item in filterList\"\r\n\t\t\t:key=\"item[keyName]\"\r\n\t\t\tclass=\"select-option-item\"\r\n\t\t\t:style=\"{fontSize:fontSize}\"\r\n\t\t >\r\n\t\t\t{{ item[valueName] }}\r\n\t\t </view>\r\n\t\t <!-- #endif -->\r\n \r\n\t\t <view class=\"options-no-data\" v-if=\"filterList.length < 1\" :style=\"{fontSize:fontSize}\">\r\n\t\t\t无匹配数据~\r\n\t\t </view>\r\n\t\t</scroll-view>\r\n\t </view>\r\n\t <view v-if=\"isShow\" @click=\"closeContentSelect\" class=\"contentMask\" />\r\n\t</view>\r\n </template>\r\n \r\n <script>\r\n export default {\r\n\tprops: {\r\n\t width: {\r\n\t\ttype: String,\r\n\t\tdefault: '100%'\r\n\t },\r\n\t height: {\r\n\t\ttype: String,\r\n\t\tdefault: '30px'\r\n\t },\r\n\t bgColor: {\r\n\t\ttype: String,\r\n\t\tdefault: '#fff'\r\n\t },\r\n\t // 是否多选\r\n\t multiple: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t },\r\n\t // 是否可搜索\r\n\t filterable: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t },\r\n\t // 是否显示关闭按钮\r\n\t showClose: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t },\r\n\t // 渲染列表\r\n\t list: {\r\n\t\ttype: Array,\r\n\t\tdefault: () => []\r\n\t },\r\n\t // #ifdef VUE3\r\n\t // 双向绑定的值\r\n\t modelValue: {\r\n\t\ttype: [Array, String, Number],\r\n\t\tdefault: ''\r\n\t },\r\n\t // #endif\r\n\t // #ifdef VUE2\r\n\t // 双向绑定的值\r\n\t value: {\r\n\t\ttype: [Array, String, Number],\r\n\t\tdefault: ''\r\n\t },\r\n\t // #endif\r\n\t // 默认显示的内容\r\n\t defaultValue: {\r\n\t\ttype: String,\r\n\t\tdefault: '请输入所在公司名称,至少四个字'\r\n\t },\r\n\t // 显示的内容\r\n\t valueName: {\r\n\t\ttype: String,\r\n\t\tdefault: 'label'\r\n\t },\r\n\t // 绑定的内容\r\n\t keyName: {\r\n\t\ttype: String,\r\n\t\tdefault: 'value'\r\n\t },\r\n\t fontSize:{\r\n\t\t type: String,\r\n\t\t default:'14px'\r\n\t }\r\n\t},\r\n\t// #ifdef VUE3\r\n\temits: ['update:modelValue', 'change'],\r\n\t// #endif\r\n\twatch: {\r\n\t list: {\r\n\t\timmediate: true,\r\n\t\tdeep: true,\r\n\t\thandler (news) {\r\n\t\t this.filterList = news\r\n\t\t const findItem = news.find(item => {\r\n\t\t\tlet isItem = ''\r\n\t\t\t// #ifdef VUE3\r\n\t\t\tif (item[this.keyName] === this.modelValue) {\r\n\t\t\t isItem = true\r\n\t\t\t} else {\r\n\t\t\t isItem = false\r\n\t\t\t}\r\n\t\t\t// #endif\r\n \r\n\t\t\t// #ifdef VUE2\r\n\t\t\tif (item[this.keyName] === this.value) {\r\n\t\t\t isItem = true\r\n\t\t\t} else {\r\n\t\t\t isItem = false\r\n\t\t\t}\r\n\t\t\t// #endif\r\n\t\t\treturn isItem\r\n\t\t })\r\n\t\t if (findItem) {\r\n\t\t\tthis.inputData = findItem[this.valueName]\r\n\t\t }\r\n\t\t}\r\n\t }\r\n\t},\r\n\tcomputed: {\r\n\t multiLength () {\r\n\t\tconst length = this.multiSelectList.length - 1\r\n\t\treturn '+' + length\r\n\t },\r\n\t bottomDistance () {\r\n\t\treturn (\r\n\t\t this.windowHeight - this.distanceTop - this.curHeight\r\n\t\t) // 当前元素距离可视屏幕底部的距离\r\n\t }\r\n\t},\r\n\tdata () {\r\n\t return {\r\n\t\tinputData: '',\r\n\t\t// #ifdef VUE3\r\n\t\tmultiSelectList: this.multiple ? this.modelValue : [],\r\n\t\t// #endif\r\n\t\t// #ifdef VUE2\r\n\t\tmultiSelectList: this.multiple ? this.value : [],\r\n\t\t// #endif\r\n\t\tisShow: false,\r\n\t\toptionsShow: false,\r\n\t\twindowHeight: null,\r\n\t\tcurHeight: null,\r\n\t\tdistanceTop: null,\r\n\t\tshowPosition: 'bottom',\r\n\t\tfilterList: [],\r\n\t\trefreshUrl: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4wMSIvPjxwYXRoIGQ9Ik0yNCA0NEMzNS4wNDU3IDQ0IDQ0IDM1LjA0NTcgNDQgMjRDNDQgMTIuOTU0MyAzNS4wNDU3IDQgMjQgNEMxMi45NTQzIDQgNCAxMi45NTQzIDQgMjRDNCAzNS4wNDU3IDEyLjk1NDMgNDQgMjQgNDRaIiBmaWxsPSJub25lIiBzdHJva2U9IiM3YzZlNmUiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik0yOS42NTY5IDE4LjM0MzFMMTguMzQzMiAyOS42NTY4IiBzdHJva2U9IiM3YzZlNmUiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PHBhdGggZD0iTTE4LjM0MzIgMTguMzQzMUwyOS42NTY5IDI5LjY1NjgiIHN0cm9rZT0iIzdjNmU2ZSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4='\r\n\t }\r\n\t},\r\n\tmounted () {\r\n\t this.$nextTick(() => {\r\n\t\tconst res = uni.getSystemInfoSync()\r\n\t\tthis.windowHeight = res.windowHeight // 当前设备屏幕高度\r\n\t\tuni\r\n\t\t .createSelectorQuery()\r\n\t\t .in(this)\r\n\t\t .select('#wSelect')\r\n\t\t .boundingClientRect(data => {\r\n\t\t\tthis.distanceTop = data.top // 当前元素距离顶部的距离\r\n\t\t\tthis.curHeight = data.height\r\n\t\t })\r\n\t\t .exec()\r\n\t })\r\n\t},\r\n\tmethods: {\r\n\t showPositon () {\r\n\t\tthis.showPosition = 'bottom'\r\n\t\tif (this.bottomDistance < this.windowHeight / 3) {\r\n\t\t this.showPosition = 'top'\r\n\t\t}\r\n\t },\r\n\t changeShow () {\r\n\t\tthis.isShow = !this.isShow\r\n\t\tif (this.isShow === false) {\r\n\t\t this.filterList = this.list\r\n\t\t setTimeout(() => {\r\n\t\t\tthis.optionsShow = false\r\n\t\t }, 200)\r\n\t\t} else {\r\n\t\t this.showPositon()\r\n\t\t this.optionsShow = this.isShow\r\n\t\t}\r\n\t },\r\n\t closeContentSelect () {\r\n\t\tthis.isShow = false\r\n\t\tsetTimeout(() => {\r\n\t\t this.optionsShow = false\r\n\t\t}, 200)\r\n\t },\r\n\t setValue (value = '') {\r\n\t\t// #ifdef VUE3\r\n\t\tthis.$emit('update:modelValue', value)\r\n\t\t// #endif\r\n \r\n\t\t// #ifdef VUE2\r\n\t\tthis.$emit('input', value)\r\n\t\t// #endif\r\n\t },\r\n\t inputChange (e) {\r\n\t\tconst value = e.detail.value\r\n\t\tif(this.multiple && this.filterable) {\r\n\t\t\tthis.inputData = value\r\n\t\t}else {\r\n\t\t\tthis.setValue(value)\r\n\t\t\tthis.inputData = value\r\n\t\t}\r\n\t\t\r\n\t\tthis.filterList = this.list.filter(item =>\r\n\t\t item[this.valueName].includes(value)\r\n\t\t)\r\n\t },\r\n\t blurChange(e) {\r\n\t\tconst value = e.detail.value\r\n\r\n\t\tif(this.multiple && this.filterable && value) {\r\n\t\t\tlet curValue ={\r\n\t\t\t\t[this.keyName]:value,\r\n\t\t\t\t[this.valueName]:value\r\n\t\t\t}\r\n\t\t\tthis.multiSelect(curValue)\r\n\t\t}\r\n\t },\r\n\t refreshValue () {\r\n\t\tthis.setValue('')\r\n\t\tthis.inputData = ''\r\n\t\tthis.$emit('change', '')\r\n\t\tthis.filterList = this.list\r\n\t\tif (this.multiple) {\r\n\t\t this.multiSelectList = []\r\n\t\t}\r\n\t },\r\n\t handleClickItem (e) {\r\n\t\tif (this.multiple) {\r\n\t\t this.multiSelect(e)\r\n\t\t} else {\r\n\t\t this.setValue(e[this.keyName])\r\n\t\t this.inputData = e[this.valueName]\r\n\t\t this.$emit('change', e)\r\n\t\t this.changeShow()\r\n\t\t}\r\n\t },\r\n\t multiSelect (item) {\r\n\t\tconst index = this.multiSelectList.findIndex(\r\n\t\t res => res[this.valueName] === item[this.valueName]\r\n\t\t)\r\n\t\tif (index > -1) {\r\n\t\t this.multiSelectList.splice(index, 1)\r\n\t\t} else {\r\n\t\t this.multiSelectList.push(item)\r\n\t\t}\r\n\t\tthis.inputData = ''\r\n\t\tthis.filterList = this.list\r\n\t\tthis.setValue(this.multiSelectList)\r\n\t\tthis.$emit('change', item)\r\n\t }\r\n\t}\r\n }\r\n </script>\r\n <style lang=\"scss\" scoped>\r\n .w-select {\r\n\t--select-wrap-width: 100%;\r\n\t--select-wrap-height: 30px;\r\n\t--select-border-radius: 4px;\r\n\t--select-border: 1px solid #dcdfe6;\r\n\t--select-active-border: 1px solid #409eff;\r\n\t--select-options-max-height: 70vh;\r\n\t--select-option-item-font-size: 14px;\r\n\t--select-input-font-size: 14px;\r\n\t--no-data-default-color: #999999;\r\n\t--select-options-box-shadow: 0px 0px 12px rgb(0 0 0 / 12%);\r\n\t--select-bg-color: #ffffff;\r\n\t.select-wrap {\r\n\t position: relative;\r\n\t display: flex;\r\n\t justify-content: space-between;\r\n\t align-items: center;\r\n\t width: var(--select-wrap-width);\r\n\t height: var(--select-wrap-height);\r\n\t border: var(--select-border);\r\n\t border-radius: var(--select-border-radius);\r\n\t background-color: var(--select-bg-color);\r\n\t transition: all 0.2s;\r\n\t input {\r\n\t\tpadding: 0 10px;\r\n\t\twidth: 100%;\r\n\t\tmin-width: 0;\r\n\t\theight: 100%;\r\n\t\tfont-size: var(--select-input-font-size);\r\n\t\tflex: 1;\r\n\t }\r\n\t .select-content {\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t\tfont-size: var(--select-option-item-font-size);\r\n\t\t.select-content-item {\r\n\t\t margin-left: 5px;\r\n\t\t padding: 2px 6px;\r\n\t\t border-radius: var(--select-border-radius);\r\n\t\t color: #aa93b1;\r\n\t\t background-color: #f4f4f5;\r\n\t\t}\r\n\t\t.select-content-item-default {\r\n\t\t margin-left: 5px;\r\n\t\t color: var(--no-data-default-color);\r\n\t\t}\r\n\t }\r\n\t .close-icon {\r\n\t\tposition: absolute;\r\n\t\ttop: 50%;\r\n\t\tright: 7px;\r\n\t\tz-index: 1000;\r\n\t\twidth: 15px;\r\n\t\theight: 15px;\r\n\t\ttransform: translateY(-50%);\r\n\t\timage {\r\n\t\t width: 100%;\r\n\t\t height: 100%;\r\n\t\t}\r\n\t }\r\n\t .position-bottom {\r\n\t\ttop: calc(var(--select-wrap-height) + 10px);\r\n\t }\r\n\t .position-top {\r\n\t\tbottom: calc(var(--select-wrap-height) + 10px);\r\n\t }\r\n\t .select-options {\r\n\t\tposition: absolute;\r\n\t\tright: 0;\r\n\t\tleft: 0;\r\n\t\tz-index: 9999;\r\n\t\toverflow: scroll;\r\n\t\tpadding: 10px 0 10px 0px;\r\n\t\tmax-height: var(--select-options-max-height);\r\n\t\tborder-radius: var(--select-border-radius);\r\n\t\tbackground-color: var(--select-bg-color);\r\n\t\tbox-shadow: var(--select-options-box-shadow);\r\n\t\t.select-option-item {\r\n\t\t margin-bottom: 5px;\r\n\t\t padding: 10px;\r\n\t\t font-size: var(--select-option-item-font-size);\r\n\t\t transition: background-color 0.2s;\r\n\t\t}\r\n\t\t.item-active {\r\n\t\t font-weight: 700;\r\n\t\t color: #409eff;\r\n\t\t background-color: #f5f7fa;\r\n\t\t}\r\n\t\t.options-no-data {\r\n\t\t font-size: var(--select-option-item-font-size);\r\n\t\t text-align: center;\r\n\t\t color: var(--no-data-default-color);\r\n\t\t}\r\n\t }\r\n\t .w-select-arrow {\r\n\t\tdisplay: inline-block;\r\n\t\tmargin: 3px 10px 0;\r\n\t\twidth: 8px;\r\n\t\theight: 8px;\r\n\t\tborder-top: 1px solid transparent;\r\n\t\tborder-right: 1px solid transparent;\r\n\t\tborder-bottom: 1px solid #999999;\r\n\t\tborder-left: 1px solid #999999;\r\n\t\ttransition: all 0.3s;\r\n\t\ttransform: translateY(-50%) rotate(-45deg);\r\n\t }\r\n\t .w-select-arrow-up {\r\n\t\ttransform: rotate(-225deg);\r\n\t }\r\n\t}\r\n\t.select-wrap-active {\r\n\t border: var(--select-active-border);\r\n\t}\r\n\t.animation-bottom-in {\r\n\t animation-name: bottom-in;\r\n\t animation-duration: 0.4s;\r\n\t animation-timing-function: ease-out;\r\n\t animation-fill-mode: both;\r\n\t}\r\n\t.animation-bottom-out {\r\n\t animation-name: bottom-out;\r\n\t animation-duration: 0.2s;\r\n\t animation-timing-function: ease-out;\r\n\t animation-fill-mode: both;\r\n\t}\r\n\t.animation-top-in {\r\n\t animation-name: top-in;\r\n\t animation-duration: 0.4s;\r\n\t animation-timing-function: ease-out;\r\n\t animation-fill-mode: both;\r\n\t}\r\n\t.animation-top-out {\r\n\t animation-name: top-out;\r\n\t animation-duration: 0.2s;\r\n\t animation-timing-function: ease-out;\r\n\t animation-fill-mode: both;\r\n\t}\r\n \r\n\t@keyframes bottom-in {\r\n\t 0% {\r\n\t\topacity: 0;\r\n\t\ttransform: translateY(-15%);\r\n\t }\r\n\t 100% {\r\n\t\topacity: 1;\r\n\t\ttransform: translateY(0);\r\n\t }\r\n\t}\r\n \r\n\t@keyframes bottom-out {\r\n\t 0% {\r\n\t\topacity: 1;\r\n\t\ttransform: translateY(0);\r\n\t }\r\n\t 100% {\r\n\t\topacity: 0;\r\n\t\ttransform: translateY(-20%);\r\n\t }\r\n\t}\r\n \r\n\t@keyframes top-in {\r\n\t 0% {\r\n\t\topacity: 0;\r\n\t\ttransform: translateY(15%);\r\n\t }\r\n\t 100% {\r\n\t\topacity: 1;\r\n\t\ttransform: translateY(0);\r\n\t }\r\n\t}\r\n \r\n\t@keyframes top-out {\r\n\t 0% {\r\n\t\topacity: 1;\r\n\t\ttransform: translateY(0);\r\n\t }\r\n\t 100% {\r\n\t\topacity: 0;\r\n\t\ttransform: translateY(20%);\r\n\t }\r\n\t}\r\n\t.contentMask {\r\n\t position: fixed;\r\n\t top: 0;\r\n\t right: 0;\r\n\t bottom: 0;\r\n\t left: 0;\r\n\t z-index: 998;\r\n\t width: 100%;\r\n\t height: 100%;\r\n\t}\r\n }\r\n </style>\r\n ","import mod from \"-!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./w-select.vue?vue&type=style&index=0&id=5fdefe44&lang=scss&scoped=true&\"; export default mod; export * from \"-!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\self software\\\\HBuilderX.3.99.2023122611\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./w-select.vue?vue&type=style&index=0&id=5fdefe44&lang=scss&scoped=true&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1741746226963\n var cssReload = require(\"D:/self software/HBuilderX.3.99.2023122611/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"/\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""}
|