gyyg-components 0.4.3 → 0.4.4
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.
|
@@ -359,7 +359,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */
|
|
|
359
359
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
360
360
|
|
|
361
361
|
"use strict";
|
|
362
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/core-js/modules/es.iterator.filter.js\");\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"MecSelect\",\n props: {\n value: {\n default: null,\n required: true\n },\n options: {\n required: true\n },\n multiple: {\n default: false\n },\n props: {\n default() {\n return {\n label: \"name\",\n value: \"id\"\n };\n }\n },\n placeholder: {\n type: String,\n default: \"请选择\"\n },\n clearable: {\n type: Boolean\n },\n disabled: {\n type: Boolean,\n
|
|
362
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/core-js/modules/es.iterator.filter.js\");\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.iterator.for-each.js */ \"./node_modules/core-js/modules/es.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.iterator.map.js */ \"./node_modules/core-js/modules/es.iterator.map.js\");\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"MecSelect\",\n props: {\n value: {\n default: null,\n required: true\n },\n options: {\n required: true\n },\n multiple: {\n type: Boolean,\n default: false\n },\n props: {\n type: Object,\n default() {\n return {\n label: \"name\",\n value: \"id\"\n };\n }\n },\n placeholder: {\n type: String,\n default: \"请选择\"\n },\n clearable: {\n type: Boolean,\n default: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n size: {\n type: String,\n default: undefined\n },\n filterable: {\n type: Boolean,\n default: false\n },\n isSelectFirst: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n selected: null,\n optionList: [],\n hasAutoSelected: false\n };\n },\n computed: {\n optionMap() {\n const map = new Map();\n this.optionList.forEach(item => {\n map.set(item[this.props.value], item);\n });\n return map;\n }\n },\n watch: {\n value: {\n handler(val) {\n this.selected = val;\n },\n immediate: true\n },\n options: {\n handler: function (newOptions) {\n this.processOptions(newOptions);\n },\n deep: true,\n immediate: true\n }\n },\n methods: {\n async processOptions(options) {\n try {\n let result = options;\n if (options instanceof Promise) {\n result = await options;\n } else if (typeof options === \"function\") {\n result = await options();\n }\n this.optionList = Array.isArray(result) ? result : result.data || [];\n if (this.isSelectFirst && !this.hasAutoSelected && !this.value && this.optionList.length > 0) {\n this.hasAutoSelected = true;\n this.handleChange(this.optionList[0][this.props.value]);\n }\n } catch (error) {\n console.error(\"Failed to process options:\", error);\n this.optionList = [];\n }\n },\n getItemKey(item) {\n return item[this.props.value];\n },\n getOptionInfo(value) {\n if (this.multiple && Array.isArray(value)) {\n return value.map(val => this.optionMap.get(val)).filter(Boolean);\n }\n return this.optionMap.get(value) || {};\n },\n handleChange(val) {\n this.selected = val;\n const info = this.getOptionInfo(val);\n this.$emit(\"change\", val, info);\n this.$emit(\"input\", val);\n this.$emit(\"update:value\", val);\n },\n handleClear() {\n this.selected = this.multiple ? [] : null;\n this.$emit(\"clear\");\n this.$emit(\"input\", this.selected);\n this.$emit(\"update:value\", this.selected);\n }\n }\n});\n\n//# sourceURL=webpack://gyyg-components/./src/components/MecSelect/MecSelect.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
363
363
|
|
|
364
364
|
/***/ }),
|
|
365
365
|
|
|
@@ -683,7 +683,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
683
683
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
684
684
|
|
|
685
685
|
"use strict";
|
|
686
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"el-select\", _vm._b({\n staticStyle: {\n width: \"100%\"\n },\n attrs: {\n placeholder: _vm.placeholder,\n multiple: _vm.multiple
|
|
686
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"el-select\", _vm._b({\n staticStyle: {\n width: \"100%\"\n },\n attrs: {\n placeholder: _vm.placeholder,\n multiple: _vm.multiple,\n clearable: _vm.clearable,\n disabled: _vm.disabled,\n size: _vm.size,\n filterable: _vm.filterable\n },\n on: {\n clear: _vm.handleClear,\n change: _vm.handleChange\n },\n model: {\n value: _vm.selected,\n callback: function ($$v) {\n _vm.selected = $$v;\n },\n expression: \"selected\"\n }\n }, \"el-select\", _vm.$attrs, false), _vm._l(_vm.optionList, function (item) {\n return _c(\"el-option\", {\n key: _vm.getItemKey(item),\n attrs: {\n label: item[_vm.props.label],\n value: item[_vm.props.value],\n disabled: item.disabled\n }\n });\n }), 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack://gyyg-components/./src/components/MecSelect/MecSelect.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%225bc9ad8c-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
687
687
|
|
|
688
688
|
/***/ }),
|
|
689
689
|
|
|
@@ -368,7 +368,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */
|
|
|
368
368
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
369
369
|
|
|
370
370
|
"use strict";
|
|
371
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/core-js/modules/es.iterator.filter.js\");\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"MecSelect\",\n props: {\n value: {\n default: null,\n required: true\n },\n options: {\n required: true\n },\n multiple: {\n default: false\n },\n props: {\n default() {\n return {\n label: \"name\",\n value: \"id\"\n };\n }\n },\n placeholder: {\n type: String,\n default: \"请选择\"\n },\n clearable: {\n type: Boolean\n },\n disabled: {\n type: Boolean,\n
|
|
371
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/core-js/modules/es.iterator.filter.js\");\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.iterator.for-each.js */ \"./node_modules/core-js/modules/es.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.iterator.map.js */ \"./node_modules/core-js/modules/es.iterator.map.js\");\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"MecSelect\",\n props: {\n value: {\n default: null,\n required: true\n },\n options: {\n required: true\n },\n multiple: {\n type: Boolean,\n default: false\n },\n props: {\n type: Object,\n default() {\n return {\n label: \"name\",\n value: \"id\"\n };\n }\n },\n placeholder: {\n type: String,\n default: \"请选择\"\n },\n clearable: {\n type: Boolean,\n default: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n size: {\n type: String,\n default: undefined\n },\n filterable: {\n type: Boolean,\n default: false\n },\n isSelectFirst: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n selected: null,\n optionList: [],\n hasAutoSelected: false\n };\n },\n computed: {\n optionMap() {\n const map = new Map();\n this.optionList.forEach(item => {\n map.set(item[this.props.value], item);\n });\n return map;\n }\n },\n watch: {\n value: {\n handler(val) {\n this.selected = val;\n },\n immediate: true\n },\n options: {\n handler: function (newOptions) {\n this.processOptions(newOptions);\n },\n deep: true,\n immediate: true\n }\n },\n methods: {\n async processOptions(options) {\n try {\n let result = options;\n if (options instanceof Promise) {\n result = await options;\n } else if (typeof options === \"function\") {\n result = await options();\n }\n this.optionList = Array.isArray(result) ? result : result.data || [];\n if (this.isSelectFirst && !this.hasAutoSelected && !this.value && this.optionList.length > 0) {\n this.hasAutoSelected = true;\n this.handleChange(this.optionList[0][this.props.value]);\n }\n } catch (error) {\n console.error(\"Failed to process options:\", error);\n this.optionList = [];\n }\n },\n getItemKey(item) {\n return item[this.props.value];\n },\n getOptionInfo(value) {\n if (this.multiple && Array.isArray(value)) {\n return value.map(val => this.optionMap.get(val)).filter(Boolean);\n }\n return this.optionMap.get(value) || {};\n },\n handleChange(val) {\n this.selected = val;\n const info = this.getOptionInfo(val);\n this.$emit(\"change\", val, info);\n this.$emit(\"input\", val);\n this.$emit(\"update:value\", val);\n },\n handleClear() {\n this.selected = this.multiple ? [] : null;\n this.$emit(\"clear\");\n this.$emit(\"input\", this.selected);\n this.$emit(\"update:value\", this.selected);\n }\n }\n});\n\n//# sourceURL=webpack://gyyg-components/./src/components/MecSelect/MecSelect.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
372
372
|
|
|
373
373
|
/***/ }),
|
|
374
374
|
|
|
@@ -692,7 +692,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
692
692
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
693
693
|
|
|
694
694
|
"use strict";
|
|
695
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"el-select\", _vm._b({\n staticStyle: {\n width: \"100%\"\n },\n attrs: {\n placeholder: _vm.placeholder,\n multiple: _vm.multiple
|
|
695
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"el-select\", _vm._b({\n staticStyle: {\n width: \"100%\"\n },\n attrs: {\n placeholder: _vm.placeholder,\n multiple: _vm.multiple,\n clearable: _vm.clearable,\n disabled: _vm.disabled,\n size: _vm.size,\n filterable: _vm.filterable\n },\n on: {\n clear: _vm.handleClear,\n change: _vm.handleChange\n },\n model: {\n value: _vm.selected,\n callback: function ($$v) {\n _vm.selected = $$v;\n },\n expression: \"selected\"\n }\n }, \"el-select\", _vm.$attrs, false), _vm._l(_vm.optionList, function (item) {\n return _c(\"el-option\", {\n key: _vm.getItemKey(item),\n attrs: {\n label: item[_vm.props.label],\n value: item[_vm.props.value],\n disabled: item.disabled\n }\n });\n }), 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack://gyyg-components/./src/components/MecSelect/MecSelect.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%225bc9ad8c-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
696
696
|
|
|
697
697
|
/***/ }),
|
|
698
698
|
|
|
@@ -368,7 +368,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */
|
|
|
368
368
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
369
369
|
|
|
370
370
|
"use strict";
|
|
371
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/core-js/modules/es.iterator.filter.js\");\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"MecSelect\",\n props: {\n value: {\n default: null,\n required: true\n },\n options: {\n required: true\n },\n multiple: {\n default: false\n },\n props: {\n default() {\n return {\n label: \"name\",\n value: \"id\"\n };\n }\n },\n placeholder: {\n type: String,\n default: \"请选择\"\n },\n clearable: {\n type: Boolean\n },\n disabled: {\n type: Boolean,\n
|
|
371
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ \"./node_modules/core-js/modules/es.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.iterator.filter.js */ \"./node_modules/core-js/modules/es.iterator.filter.js\");\n/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.iterator.for-each.js */ \"./node_modules/core-js/modules/es.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.iterator.map.js */ \"./node_modules/core-js/modules/es.iterator.map.js\");\n/* harmony import */ var core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"MecSelect\",\n props: {\n value: {\n default: null,\n required: true\n },\n options: {\n required: true\n },\n multiple: {\n type: Boolean,\n default: false\n },\n props: {\n type: Object,\n default() {\n return {\n label: \"name\",\n value: \"id\"\n };\n }\n },\n placeholder: {\n type: String,\n default: \"请选择\"\n },\n clearable: {\n type: Boolean,\n default: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n size: {\n type: String,\n default: undefined\n },\n filterable: {\n type: Boolean,\n default: false\n },\n isSelectFirst: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n selected: null,\n optionList: [],\n hasAutoSelected: false\n };\n },\n computed: {\n optionMap() {\n const map = new Map();\n this.optionList.forEach(item => {\n map.set(item[this.props.value], item);\n });\n return map;\n }\n },\n watch: {\n value: {\n handler(val) {\n this.selected = val;\n },\n immediate: true\n },\n options: {\n handler: function (newOptions) {\n this.processOptions(newOptions);\n },\n deep: true,\n immediate: true\n }\n },\n methods: {\n async processOptions(options) {\n try {\n let result = options;\n if (options instanceof Promise) {\n result = await options;\n } else if (typeof options === \"function\") {\n result = await options();\n }\n this.optionList = Array.isArray(result) ? result : result.data || [];\n if (this.isSelectFirst && !this.hasAutoSelected && !this.value && this.optionList.length > 0) {\n this.hasAutoSelected = true;\n this.handleChange(this.optionList[0][this.props.value]);\n }\n } catch (error) {\n console.error(\"Failed to process options:\", error);\n this.optionList = [];\n }\n },\n getItemKey(item) {\n return item[this.props.value];\n },\n getOptionInfo(value) {\n if (this.multiple && Array.isArray(value)) {\n return value.map(val => this.optionMap.get(val)).filter(Boolean);\n }\n return this.optionMap.get(value) || {};\n },\n handleChange(val) {\n this.selected = val;\n const info = this.getOptionInfo(val);\n this.$emit(\"change\", val, info);\n this.$emit(\"input\", val);\n this.$emit(\"update:value\", val);\n },\n handleClear() {\n this.selected = this.multiple ? [] : null;\n this.$emit(\"clear\");\n this.$emit(\"input\", this.selected);\n this.$emit(\"update:value\", this.selected);\n }\n }\n});\n\n//# sourceURL=webpack://gyyg-components/./src/components/MecSelect/MecSelect.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
372
372
|
|
|
373
373
|
/***/ }),
|
|
374
374
|
|
|
@@ -692,7 +692,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
692
692
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
693
693
|
|
|
694
694
|
"use strict";
|
|
695
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"el-select\", _vm._b({\n staticStyle: {\n width: \"100%\"\n },\n attrs: {\n placeholder: _vm.placeholder,\n multiple: _vm.multiple
|
|
695
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"el-select\", _vm._b({\n staticStyle: {\n width: \"100%\"\n },\n attrs: {\n placeholder: _vm.placeholder,\n multiple: _vm.multiple,\n clearable: _vm.clearable,\n disabled: _vm.disabled,\n size: _vm.size,\n filterable: _vm.filterable\n },\n on: {\n clear: _vm.handleClear,\n change: _vm.handleChange\n },\n model: {\n value: _vm.selected,\n callback: function ($$v) {\n _vm.selected = $$v;\n },\n expression: \"selected\"\n }\n }, \"el-select\", _vm.$attrs, false), _vm._l(_vm.optionList, function (item) {\n return _c(\"el-option\", {\n key: _vm.getItemKey(item),\n attrs: {\n label: item[_vm.props.label],\n value: item[_vm.props.value],\n disabled: item.disabled\n }\n });\n }), 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack://gyyg-components/./src/components/MecSelect/MecSelect.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%225bc9ad8c-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
|
|
696
696
|
|
|
697
697
|
/***/ }),
|
|
698
698
|
|
package/package.json
CHANGED
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<el-select
|
|
3
3
|
v-model="selected"
|
|
4
|
-
@clear="
|
|
4
|
+
@clear="handleClear"
|
|
5
5
|
@change="handleChange"
|
|
6
6
|
:placeholder="placeholder"
|
|
7
|
-
:multiple="multiple
|
|
7
|
+
:multiple="multiple"
|
|
8
8
|
:clearable="clearable"
|
|
9
9
|
:disabled="disabled"
|
|
10
10
|
:size="size"
|
|
11
11
|
v-bind="$attrs"
|
|
12
12
|
:filterable="filterable"
|
|
13
|
-
:value="selected"
|
|
14
13
|
style="width: 100%"
|
|
15
14
|
>
|
|
16
15
|
<el-option
|
|
17
|
-
v-for="item in
|
|
18
|
-
:key="item
|
|
16
|
+
v-for="item in optionList"
|
|
17
|
+
:key="getItemKey(item)"
|
|
19
18
|
:label="item[props.label]"
|
|
20
19
|
:value="item[props.value]"
|
|
21
20
|
:disabled="item.disabled"
|
|
@@ -35,9 +34,11 @@ export default {
|
|
|
35
34
|
required: true,
|
|
36
35
|
},
|
|
37
36
|
multiple: {
|
|
37
|
+
type: Boolean,
|
|
38
38
|
default: false,
|
|
39
39
|
},
|
|
40
40
|
props: {
|
|
41
|
+
type: Object,
|
|
41
42
|
default() {
|
|
42
43
|
return {
|
|
43
44
|
label: "name",
|
|
@@ -51,15 +52,19 @@ export default {
|
|
|
51
52
|
},
|
|
52
53
|
clearable: {
|
|
53
54
|
type: Boolean,
|
|
55
|
+
default: true,
|
|
54
56
|
},
|
|
55
57
|
disabled: {
|
|
56
58
|
type: Boolean,
|
|
57
|
-
|
|
59
|
+
default: false,
|
|
60
|
+
},
|
|
61
|
+
size: {
|
|
62
|
+
type: String,
|
|
63
|
+
default: undefined,
|
|
58
64
|
},
|
|
59
|
-
size: String,
|
|
60
65
|
filterable: {
|
|
61
66
|
type: Boolean,
|
|
62
|
-
|
|
67
|
+
default: false,
|
|
63
68
|
},
|
|
64
69
|
isSelectFirst: {
|
|
65
70
|
type: Boolean,
|
|
@@ -68,10 +73,20 @@ export default {
|
|
|
68
73
|
},
|
|
69
74
|
data() {
|
|
70
75
|
return {
|
|
71
|
-
selected:
|
|
72
|
-
|
|
76
|
+
selected: null,
|
|
77
|
+
optionList: [],
|
|
78
|
+
hasAutoSelected: false,
|
|
73
79
|
};
|
|
74
80
|
},
|
|
81
|
+
computed: {
|
|
82
|
+
optionMap() {
|
|
83
|
+
const map = new Map();
|
|
84
|
+
this.optionList.forEach((item) => {
|
|
85
|
+
map.set(item[this.props.value], item);
|
|
86
|
+
});
|
|
87
|
+
return map;
|
|
88
|
+
},
|
|
89
|
+
},
|
|
75
90
|
watch: {
|
|
76
91
|
value: {
|
|
77
92
|
handler(val) {
|
|
@@ -80,60 +95,61 @@ export default {
|
|
|
80
95
|
immediate: true,
|
|
81
96
|
},
|
|
82
97
|
options: {
|
|
83
|
-
handler: function () {
|
|
84
|
-
|
|
85
|
-
if (this.options instanceof Promise) {
|
|
86
|
-
this.options.then((val) => {
|
|
87
|
-
this.option = val.data || val;
|
|
88
|
-
if (this.isSelectFirst) {
|
|
89
|
-
if(this.option.length > 0){
|
|
90
|
-
this.handleChange(this.option[0][this.props.value]);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
if (typeof this.options == "function") {
|
|
96
|
-
this.options().then((val) => {
|
|
97
|
-
this.option = val.data || val;
|
|
98
|
-
if (this.isSelectFirst) {
|
|
99
|
-
if(this.option.length > 0){
|
|
100
|
-
this.handleChange(this.option[0][this.props.value]);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
} else {
|
|
106
|
-
this.option = this.options;
|
|
107
|
-
if (this.isSelectFirst) {
|
|
108
|
-
if(this.option.length > 0){
|
|
109
|
-
this.handleChange(this.option[0][this.props.value]);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
98
|
+
handler: function (newOptions) {
|
|
99
|
+
this.processOptions(newOptions);
|
|
113
100
|
},
|
|
114
101
|
deep: true,
|
|
115
102
|
immediate: true,
|
|
116
103
|
},
|
|
117
104
|
},
|
|
118
105
|
methods: {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
106
|
+
async processOptions(options) {
|
|
107
|
+
try {
|
|
108
|
+
let result = options;
|
|
109
|
+
|
|
110
|
+
if (options instanceof Promise) {
|
|
111
|
+
result = await options;
|
|
112
|
+
} else if (typeof options === "function") {
|
|
113
|
+
result = await options();
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
this.optionList = Array.isArray(result) ? result : (result.data || []);
|
|
117
|
+
|
|
118
|
+
if (this.isSelectFirst && !this.hasAutoSelected && !this.value && this.optionList.length > 0) {
|
|
119
|
+
this.hasAutoSelected = true;
|
|
120
|
+
this.handleChange(this.optionList[0][this.props.value]);
|
|
121
|
+
}
|
|
122
|
+
} catch (error) {
|
|
123
|
+
console.error("Failed to process options:", error);
|
|
124
|
+
this.optionList = [];
|
|
129
125
|
}
|
|
130
|
-
|
|
131
|
-
|
|
126
|
+
},
|
|
127
|
+
|
|
128
|
+
getItemKey(item) {
|
|
129
|
+
return item[this.props.value];
|
|
130
|
+
},
|
|
131
|
+
|
|
132
|
+
getOptionInfo(value) {
|
|
133
|
+
if (this.multiple && Array.isArray(value)) {
|
|
134
|
+
return value.map((val) => this.optionMap.get(val)).filter(Boolean);
|
|
135
|
+
}
|
|
136
|
+
return this.optionMap.get(value) || {};
|
|
137
|
+
},
|
|
138
|
+
|
|
139
|
+
handleChange(val) {
|
|
140
|
+
this.selected = val;
|
|
141
|
+
const info = this.getOptionInfo(val);
|
|
142
|
+
|
|
143
|
+
this.$emit("change", val, info);
|
|
144
|
+
this.$emit("input", val);
|
|
132
145
|
this.$emit("update:value", val);
|
|
133
146
|
},
|
|
134
|
-
|
|
135
|
-
|
|
147
|
+
|
|
148
|
+
handleClear() {
|
|
149
|
+
this.selected = this.multiple ? [] : null;
|
|
136
150
|
this.$emit("clear");
|
|
151
|
+
this.$emit("input", this.selected);
|
|
152
|
+
this.$emit("update:value", this.selected);
|
|
137
153
|
},
|
|
138
154
|
},
|
|
139
155
|
};
|
|
@@ -141,4 +157,4 @@ export default {
|
|
|
141
157
|
|
|
142
158
|
<style scoped>
|
|
143
159
|
/* 你可以在这里添加自定义样式 */
|
|
144
|
-
</style>
|
|
160
|
+
</style>
|