wux-weapp
Version:
一套组件化、可复用、易扩展的微信小程序 UI 组件库
1 lines • 4.77 kB
JavaScript
var _baseComponent=_interopRequireDefault(require("../helpers/baseComponent")),_classNames3=_interopRequireDefault(require("../helpers/libs/classNames")),_styleToCssString=_interopRequireDefault(require("../helpers/libs/styleToCssString")),_fieldNamesBehavior=_interopRequireDefault(require("../helpers/mixins/fieldNamesBehavior")),_eventsMixin=_interopRequireDefault(require("../helpers/mixins/eventsMixin")),common=_interopRequireWildcard(require("../helpers/wxs/common"));function _interopRequireWildcard(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,r):{};n.get||n.set?Object.defineProperty(t,r,n):t[r]=e[r]}return t.default=e,t}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function ownKeys(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(r,!0).forEach(function(e){_defineProperty(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ownKeys(r).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function _iterableToArray(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}var cssVarPattern=/^--/;function getCheckedValues(t){var e=_toConsumableArray(1<arguments.length&&void 0!==arguments[1]?arguments[1]:[]);return e=-1!==e.indexOf(t)?e.filter(function(e){return e!==t}):[].concat(_toConsumableArray(e),[t])}var getOptions=function(e,t){return common.getOptions(e,t)};(0,_baseComponent.default)({useField:!0,behaviors:[_fieldNamesBehavior.default,(0,_eventsMixin.default)()],relations:{"../field/index":{type:"ancestor"}},properties:{prefixCls:{type:String,value:"wux-selector-group"},theme:{type:String,value:"balanced"},shape:{type:String,value:"default"},columns:{type:Number,value:3},gap:{type:Number,value:8},options:{type:Array,value:[]},defaultValue:{type:Array,value:[]},value:{type:Array,value:[],observer:function(e){this.data.controlled&&this.updated(e)}},controlled:{type:Boolean,value:!1},multiple:{type:Boolean,value:!1},showCheckMark:{type:Boolean,value:!0}},data:{extStyle:"",inputValue:[]},observers:_defineProperty({},"columns, gap",function(e,t){this.updateStyle(e,t)}),computed:{classes:["prefixCls, theme, shape",function(e,t,r){var n=["rounded","rectangular"].includes(r)?r:"";return{wrap:(0,_classNames3.default)(e,_defineProperty({},"".concat(e,"--").concat(t),t)),grid:"".concat(e,"__grid"),gridItem:(0,_classNames3.default)("".concat(e,"__grid-item"),_defineProperty({},"".concat(e,"__grid-item--").concat(r),n)),desc:"".concat(e,"__desc"),checkMark:"".concat(e,"__check-mark"),checkMarkIcon:"".concat(e,"__check-mark-icon"),selectable:"".concat(e,"__selectable")}}]},methods:{updated:function(e){this.hasFieldDecorator||this.data.inputValue!==e&&this.setData({inputValue:e})},updateStyle:function(e,t){var r=(0,_styleToCssString.default)({"--selector-group-columns":e,"--selector-group-column-gap":"".concat(2*t,"rpx")},{exclude:cssVarPattern});r!==this.data.extStyle&&this.setData({extStyle:r})},onCheckboxChange:function(e){var t=e.detail,r=t.value,n=t.checked,a=this.data,o=a.inputValue,i=a.multiple?getCheckedValues(r,o):n?[r]:[];this.data.controlled||this.updated(i),this.triggerEvent("change",_objectSpread({},this.getValue(i)))},getValue:function(e,t){var r=0<arguments.length&&void 0!==e?e:this.data.inputValue,n=1<arguments.length&&void 0!==t?t:this.data.options,a=this.getFieldNames(),o=a.label,i=a.value,l=getOptions(n,a),u=r.reduce(function(e,t){return[].concat(_toConsumableArray(e),_toConsumableArray(l.filter(function(e){return e[i]===t})))},[]).map(function(e){return e[o]}),c=l.map(function(e){return e[i]}),s=r.map(function(e){return c.indexOf(e)});return{value:r,displayValue:u,selectedIndex:s,selectedValue:r,cols:l}}},attached:function(){var e=this.data,t=e.defaultValue,r=e.value,n=e.controlled?r:t;this.updated(n)}});
;