UNPKG

zcloud-ui

Version:

A Component Library for Vue.js.

825 lines (760 loc) 22.6 kB
module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = "/"; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 75); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call( this, (options.functional ? this.parent : this).$root.$options.shadowRoot ) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functional component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /***/ 49: /***/ (function(module, exports) { module.exports = require("zcloud-ui/lib/utils/china-map"); /***/ }), /***/ 6: /***/ (function(module, exports) { module.exports = require("zcloud-ui/lib/mixins/emitter"); /***/ }), /***/ 75: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/region-picker/src/main.vue?vue&type=template&id=f25c4460& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "div", { staticClass: "zl-region-picker" }, [ _c( "my-address", _vm._b( { attrs: { regions: _vm.chinaAddr, province: _vm.province, city: _vm.city, district: _vm.district, classx: _vm.className, disabled: _vm.disabled }, on: { onchange: _vm.change } }, "my-address", _vm.$attrs, false ) ) ], 1 ) } var staticRenderFns = [] render._withStripped = true // CONCATENATED MODULE: ./packages/region-picker/src/main.vue?vue&type=template&id=f25c4460& // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/region-picker/src/address.vue?vue&type=template&id=14dad62d& var addressvue_type_template_id_14dad62d_render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c("div", { staticClass: "region-picker" }, [ _c( "label", { staticClass: "province" }, [ _vm._t("province"), _c( "el-select", { ref: "provinceSelected", staticClass: "province-select", class: _vm.classx, attrs: { size: "small", placeholder: _vm.placeholder.province, required: _vm.required, disabled: _vm.disabled }, on: { change: _vm.change1 }, model: { value: _vm.value_provinces, callback: function($$v) { _vm.value_provinces = $$v }, expression: "value_provinces" } }, _vm._l(_vm.provinces, function(item) { return _c("el-option", { key: item.label, attrs: { label: item.label, value: item.value } }) }), 1 ) ], 2 ), _c( "label", { directives: [ { name: "show", rawName: "v-show", value: !_vm.auto || _vm.cities.length, expression: "!auto || cities.length" } ], ref: "citySelected", staticClass: "city" }, [ _vm._t("city"), _c( "el-select", { staticClass: "city-select", class: _vm.classx, attrs: { size: "small", required: _vm.required && _vm.cities.length > 0, disabled: _vm.disabled }, on: { change: _vm.change2 }, model: { value: _vm.value_city, callback: function($$v) { _vm.value_city = $$v }, expression: "value_city" } }, _vm._l(_vm.cities, function(item) { return _c("el-option", { key: item.label, attrs: { label: item.label, value: item.value } }) }), 1 ) ], 2 ), !_vm.twoSelect ? _c( "label", { directives: [ { name: "show", rawName: "v-show", value: !_vm.auto || _vm.districts.length, expression: "!auto || districts.length" } ], staticClass: "district" }, [ _vm._t("district"), _c( "el-select", { ref: "districtSelected", staticClass: "district-select", class: _vm.classx, attrs: { size: "small", required: _vm.required && _vm.districts.length > 0, disabled: _vm.disabled }, on: { change: _vm.change3 }, model: { value: _vm.value_district, callback: function($$v) { _vm.value_district = $$v }, expression: "value_district" } }, _vm._l(_vm.districts, function(item) { return _c("el-option", { key: item.label, attrs: { label: item.label, value: item.value } }) }), 1 ) ], 2 ) : _vm._e() ]) } var addressvue_type_template_id_14dad62d_staticRenderFns = [] addressvue_type_template_id_14dad62d_render._withStripped = true // CONCATENATED MODULE: ./packages/region-picker/src/address.vue?vue&type=template&id=14dad62d& // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/region-picker/src/address.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ var addressvue_type_script_lang_js_ = ({ name: 'my-address', data: function data() { return { current: { province: '', city: '', district: '' }, value_provinces: '', // 省 value_city: '', // 市 value_district: '' // 区 }; }, beforeMount: function beforeMount() { this.value_provinces = this.provinceSelected[0]; this.value_city = this.citySelected[0] && this.citySelected[0]; this.value_district = this.districtSelected[0] && this.districtSelected[0]; }, watch: { 'district': function district(val) { this.setAddress(); }, 'city': function city(val) { if (this.twoSelect) { this.setAddress(); } } }, props: { province: {}, city: {}, district: {}, regions: { type: Object }, // 地区源josn twoSelect: Boolean, auto: Boolean, required: Boolean, disabled: Boolean, rootCode: { default: '86' }, classx: {}, placeholder: { type: Object, default: function _default() { return { province: '请选择', city: '请选择', district: '请选择' }; } } }, methods: { // 省改变 change1: function change1(val) { this.provinceSelected = val; var cities = this.cities[0]; this.citySelected = cities && cities.value; var districts = this.districts[0]; this.districtSelected = districts && districts.value; this.setAddress(); }, // 市改变 change2: function change2(val) { this.citySelected = val; this.districtSelected = this.districts[0] && this.districts[0].value; this.setAddress(); }, // 区改变 change3: function change3(val) { this.districtSelected = val; this.setAddress(); }, // 设置地址 setAddress: function setAddress() { this.value_provinces = this.provinceSelected[1]; this.value_city = this.citySelected[1]; this.value_district = this.districtSelected[1]; this.$emit('onchange', { provinceName: this.provinceSelected[1], provinceCode: this.provinceSelected[0], cityName: this.citySelected[1], cityCode: this.citySelected[0], townName: this.districtSelected[1], townCode: this.districtSelected[0] }); }, // 过滤地址 _filter: function _filter(pid) { var _ref; var result = []; var items = this.regions[pid] || (_ref = {}, _ref[pid + 1] = '市辖区', _ref); for (var code in items) { result.push([parseInt(code, 10), items[code]]); } return result; }, _searchIndex: function _searchIndex(items, model, by) { if (!model) return -1; // by name if (by === 1) { for (var key in items) { if (items[key][by].indexOf(model) > -1) { return key; } } // by code } else { for (var _key in items) { if (items[_key][by] === model) { return _key; } } } }, _selected: function _selected(pid, model) { var items = this._filter(pid); var index = -1; if (typeof model === 'string') { index = this._searchIndex(items, model, 1); } else if (typeof model === 'number') { index = this._searchIndex(items, Number(model), 0); } else if (Array.isArray(model)) { index = this._searchIndex(items, Number(model[0]), 0); } return items[index] || []; } }, computed: { provinces: function provinces() { return this._filter(this.rootCode).map(function (item, index) { return { value: item[0], label: item[1] }; }); }, cities: function cities() { return this._filter(this.provinceSelected[0]).map(function (item, index) { return { value: item[0], label: item[1] }; }); }, districts: function districts() { var list = this._filter(this.citySelected[0]).map(function (item, index) { return { value: item[0], label: item[1] }; }); if (this.citySelected[0] && list.length === 0) { var code = this.citySelected[0]; if (code) { code += 1; } list = [{ label: '市辖区', value: code }]; } return list; }, provinceSelected: { get: function get() { return this._selected(this.rootCode, this.current.province || this.province); }, set: function set(value) { this.current.province = value; } }, citySelected: { get: function get() { return this._selected(this.provinceSelected[0], this.current.city || this.city); }, set: function set(value) { this.current.city = value; } }, districtSelected: { get: function get() { return this._selected(this.citySelected[0], this.current.district || this.district); }, set: function set(value) { this.current.district = value; } } } }); // CONCATENATED MODULE: ./packages/region-picker/src/address.vue?vue&type=script&lang=js& /* harmony default export */ var src_addressvue_type_script_lang_js_ = (addressvue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); // CONCATENATED MODULE: ./packages/region-picker/src/address.vue /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( src_addressvue_type_script_lang_js_, addressvue_type_template_id_14dad62d_render, addressvue_type_template_id_14dad62d_staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var api; } component.options.__file = "packages/region-picker/src/address.vue" /* harmony default export */ var address = (component.exports); // EXTERNAL MODULE: external "zcloud-ui/lib/mixins/emitter" var emitter_ = __webpack_require__(6); var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_); // EXTERNAL MODULE: external "zcloud-ui/lib/utils/china-map" var china_map_ = __webpack_require__(49); var china_map_default = /*#__PURE__*/__webpack_require__.n(china_map_); // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/region-picker/src/main.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // 元数据的文案要改,只能把数据文件本地化 /* harmony default export */ var mainvue_type_script_lang_js_ = ({ name: 'ZlRegionPicker', mixins: [emitter_default.a], data: function data() { return { chinaAddr: china_map_default.a, province: '', city: '', district: '', selectedData: null }; }, props: { // 省市区编码 codes: { type: [String, Number], default: '' }, validate: { type: Boolean, default: true }, disabled: { type: Boolean, default: false } }, watch: { codes: function codes(val) { this._initData(val); } }, created: function created() { this.codes && this._initData(this.codes); }, computed: { className: function className() { return this.$attrs.twoSelect ? 'towCol' : 'threeCol'; } }, methods: { // 初始化数据 _initData: function _initData(val) { if (val) { var province = val.toString().slice(0, 2) + '0000', city = '', district = ''; if (this.$attrs.twoSelect) { city = val.toString(); } else { district = val.toString(); city = district.slice(0, 4) + '00'; if (this.chinaAddr[city]) { this.district = this.chinaAddr[city][district] || ''; } else { this.district = '市辖区'; } } this.province = this.chinaAddr[86][province]; this.city = this.chinaAddr[province][city] || ''; this.selectedData = { provinceName: this.province, provinceCode: province, cityName: this.city, cityCode: city, townName: this.district, townCode: district }; } else { this.province = ''; this.city = ''; this.district = ''; } }, change: function change(msg) { var names = ''; var vals = ''; if (this.$attrs.twoSelect) { // 2级联动 names = [msg.provinceName, msg.cityName].join(''); vals = msg.cityCode; } else { names = [msg.provinceName, msg.cityName, msg.townName].join(''); vals = msg.townCode; } this.selectedData = msg; this.$emit('input', names); this.$emit('update:codes', vals); this.$emit('change', this.selectedData); if (this.validate) { this.dispatch('ElFormItem', 'el.form.change', names); } }, getSelectedData: function getSelectedData() { return this.selectedData; } }, components: { myAddress: address } }); // CONCATENATED MODULE: ./packages/region-picker/src/main.vue?vue&type=script&lang=js& /* harmony default export */ var src_mainvue_type_script_lang_js_ = (mainvue_type_script_lang_js_); // CONCATENATED MODULE: ./packages/region-picker/src/main.vue /* normalize component */ var main_component = Object(componentNormalizer["a" /* default */])( src_mainvue_type_script_lang_js_, render, staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var main_api; } main_component.options.__file = "packages/region-picker/src/main.vue" /* harmony default export */ var main = (main_component.exports); // CONCATENATED MODULE: ./packages/region-picker/index.js /* istanbul ignore next */ main.install = function (Vue) { Vue.component(main.name, main); }; /* harmony default export */ var region_picker = __webpack_exports__["default"] = (main); /***/ }) /******/ });