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 defalut: false\n },\n size: String,\n filterable: {\n type: Boolean,\n defalut: false\n },\n isSelectFirst: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n selected: \"\",\n option: []\n };\n },\n watch: {\n value: {\n handler(val) {\n this.selected = val;\n },\n immediate: true\n },\n options: {\n handler: function () {\n if (!Array.isArray(this.options) && this.options) {\n if (this.options instanceof Promise) {\n this.options.then(val => {\n this.option = val.data || val;\n if (this.isSelectFirst) {\n if (this.option.length > 0) {\n this.handleChange(this.option[0][this.props.value]);\n }\n }\n });\n }\n if (typeof this.options == \"function\") {\n this.options().then(val => {\n this.option = val.data || val;\n if (this.isSelectFirst) {\n if (this.option.length > 0) {\n this.handleChange(this.option[0][this.props.value]);\n }\n }\n });\n }\n } else {\n this.option = this.options;\n if (this.isSelectFirst) {\n if (this.option.length > 0) {\n this.handleChange(this.option[0][this.props.value]);\n }\n }\n }\n },\n deep: true,\n immediate: true\n }\n },\n methods: {\n handleChange(val) {\n console.log(val);\n if (this.multiple) {\n this.selected = val;\n let info = this.option.filter(item => val.includes(item[this.props.value]));\n this.$emit(\"change\", val, info);\n } else {\n this.selected = val;\n let info = this.option.filter(item => item[this.props.value] == val);\n this.$emit(\"change\", val, info.length > 0 ? info[0] : {});\n }\n this.$emit(\"input\", this.selected);\n this.$emit(\"update:value\", val);\n },\n clear() {\n this.selected = \"\";\n this.$emit(\"clear\");\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");
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 || false,\n clearable: _vm.clearable,\n disabled: _vm.disabled,\n size: _vm.size,\n filterable: _vm.filterable,\n value: _vm.selected\n },\n on: {\n clear: _vm.clear,\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.option, function (item) {\n return _c(\"el-option\", {\n key: item[_vm.props.value],\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");
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 defalut: false\n },\n size: String,\n filterable: {\n type: Boolean,\n defalut: false\n },\n isSelectFirst: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n selected: \"\",\n option: []\n };\n },\n watch: {\n value: {\n handler(val) {\n this.selected = val;\n },\n immediate: true\n },\n options: {\n handler: function () {\n if (!Array.isArray(this.options) && this.options) {\n if (this.options instanceof Promise) {\n this.options.then(val => {\n this.option = val.data || val;\n if (this.isSelectFirst) {\n if (this.option.length > 0) {\n this.handleChange(this.option[0][this.props.value]);\n }\n }\n });\n }\n if (typeof this.options == \"function\") {\n this.options().then(val => {\n this.option = val.data || val;\n if (this.isSelectFirst) {\n if (this.option.length > 0) {\n this.handleChange(this.option[0][this.props.value]);\n }\n }\n });\n }\n } else {\n this.option = this.options;\n if (this.isSelectFirst) {\n if (this.option.length > 0) {\n this.handleChange(this.option[0][this.props.value]);\n }\n }\n }\n },\n deep: true,\n immediate: true\n }\n },\n methods: {\n handleChange(val) {\n console.log(val);\n if (this.multiple) {\n this.selected = val;\n let info = this.option.filter(item => val.includes(item[this.props.value]));\n this.$emit(\"change\", val, info);\n } else {\n this.selected = val;\n let info = this.option.filter(item => item[this.props.value] == val);\n this.$emit(\"change\", val, info.length > 0 ? info[0] : {});\n }\n this.$emit(\"input\", this.selected);\n this.$emit(\"update:value\", val);\n },\n clear() {\n this.selected = \"\";\n this.$emit(\"clear\");\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");
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 || false,\n clearable: _vm.clearable,\n disabled: _vm.disabled,\n size: _vm.size,\n filterable: _vm.filterable,\n value: _vm.selected\n },\n on: {\n clear: _vm.clear,\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.option, function (item) {\n return _c(\"el-option\", {\n key: item[_vm.props.value],\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");
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 defalut: false\n },\n size: String,\n filterable: {\n type: Boolean,\n defalut: false\n },\n isSelectFirst: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n selected: \"\",\n option: []\n };\n },\n watch: {\n value: {\n handler(val) {\n this.selected = val;\n },\n immediate: true\n },\n options: {\n handler: function () {\n if (!Array.isArray(this.options) && this.options) {\n if (this.options instanceof Promise) {\n this.options.then(val => {\n this.option = val.data || val;\n if (this.isSelectFirst) {\n if (this.option.length > 0) {\n this.handleChange(this.option[0][this.props.value]);\n }\n }\n });\n }\n if (typeof this.options == \"function\") {\n this.options().then(val => {\n this.option = val.data || val;\n if (this.isSelectFirst) {\n if (this.option.length > 0) {\n this.handleChange(this.option[0][this.props.value]);\n }\n }\n });\n }\n } else {\n this.option = this.options;\n if (this.isSelectFirst) {\n if (this.option.length > 0) {\n this.handleChange(this.option[0][this.props.value]);\n }\n }\n }\n },\n deep: true,\n immediate: true\n }\n },\n methods: {\n handleChange(val) {\n console.log(val);\n if (this.multiple) {\n this.selected = val;\n let info = this.option.filter(item => val.includes(item[this.props.value]));\n this.$emit(\"change\", val, info);\n } else {\n this.selected = val;\n let info = this.option.filter(item => item[this.props.value] == val);\n this.$emit(\"change\", val, info.length > 0 ? info[0] : {});\n }\n this.$emit(\"input\", this.selected);\n this.$emit(\"update:value\", val);\n },\n clear() {\n this.selected = \"\";\n this.$emit(\"clear\");\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");
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 || false,\n clearable: _vm.clearable,\n disabled: _vm.disabled,\n size: _vm.size,\n filterable: _vm.filterable,\n value: _vm.selected\n },\n on: {\n clear: _vm.clear,\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.option, function (item) {\n return _c(\"el-option\", {\n key: item[_vm.props.value],\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");
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,6 +1,6 @@
1
1
  {
2
2
  "name": "gyyg-components",
3
- "version": "0.4.3",
3
+ "version": "0.4.4",
4
4
  "private": false,
5
5
  "main": "lib/gyyg-components.umd.js",
6
6
  "scripts": {
@@ -1,21 +1,20 @@
1
1
  <template>
2
2
  <el-select
3
3
  v-model="selected"
4
- @clear="clear"
4
+ @clear="handleClear"
5
5
  @change="handleChange"
6
6
  :placeholder="placeholder"
7
- :multiple="multiple || false"
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 option"
18
- :key="item[props.value]"
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
- defalut: false,
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
- defalut: false,
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
- option: [],
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
- if (!Array.isArray(this.options) && this.options) {
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
- handleChange(val) {
120
- console.log(val);
121
- if (this.multiple) {
122
- this.selected = val;
123
- let info = this.option.filter((item) => val.includes(item[this.props.value]));
124
- this.$emit("change", val, info);
125
- } else {
126
- this.selected = val;
127
- let info = this.option.filter((item) => item[this.props.value] == val);
128
- this.$emit("change", val, info.length > 0 ? info[0] : {});
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
- this.$emit("input", this.selected);
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
- clear() {
135
- this.selected = "";
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>