You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							93 lines
						
					
					
						
							3.0 KiB
						
					
					
				
			
		
		
	
	
							93 lines
						
					
					
						
							3.0 KiB
						
					
					
				| "use strict"; | |
| var __assign = (this && this.__assign) || function () { | |
|     __assign = Object.assign || function(t) { | |
|         for (var s, i = 1, n = arguments.length; i < n; i++) { | |
|             s = arguments[i]; | |
|             for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | |
|                 t[p] = s[p]; | |
|         } | |
|         return t; | |
|     }; | |
|     return __assign.apply(this, arguments); | |
| }; | |
| Object.defineProperty(exports, "__esModule", { value: true }); | |
| var utils_1 = require("../common/utils"); | |
| var component_1 = require("../common/component"); | |
| var version_1 = require("../common/version"); | |
| (0, component_1.VantComponent)({ | |
|     field: true, | |
|     classes: ['icon-class'], | |
|     props: { | |
|         value: { | |
|             type: Number, | |
|             observer: function (value) { | |
|                 if (value !== this.data.innerValue) { | |
|                     this.setData({ innerValue: value }); | |
|                 } | |
|             }, | |
|         }, | |
|         readonly: Boolean, | |
|         disabled: Boolean, | |
|         allowHalf: Boolean, | |
|         size: null, | |
|         icon: { | |
|             type: String, | |
|             value: 'star', | |
|         }, | |
|         voidIcon: { | |
|             type: String, | |
|             value: 'star-o', | |
|         }, | |
|         color: String, | |
|         voidColor: String, | |
|         disabledColor: String, | |
|         count: { | |
|             type: Number, | |
|             value: 5, | |
|             observer: function (value) { | |
|                 this.setData({ innerCountArray: Array.from({ length: value }) }); | |
|             }, | |
|         }, | |
|         gutter: null, | |
|         touchable: { | |
|             type: Boolean, | |
|             value: true, | |
|         }, | |
|     }, | |
|     data: { | |
|         innerValue: 0, | |
|         innerCountArray: Array.from({ length: 5 }), | |
|     }, | |
|     methods: { | |
|         onSelect: function (event) { | |
|             var _this = this; | |
|             var data = this.data; | |
|             var score = event.currentTarget.dataset.score; | |
|             if (!data.disabled && !data.readonly) { | |
|                 this.setData({ innerValue: score + 1 }); | |
|                 if ((0, version_1.canIUseModel)()) { | |
|                     this.setData({ value: score + 1 }); | |
|                 } | |
|                 wx.nextTick(function () { | |
|                     _this.$emit('input', score + 1); | |
|                     _this.$emit('change', score + 1); | |
|                 }); | |
|             } | |
|         }, | |
|         onTouchMove: function (event) { | |
|             var _this = this; | |
|             var touchable = this.data.touchable; | |
|             if (!touchable) | |
|                 return; | |
|             var clientX = event.touches[0].clientX; | |
|             (0, utils_1.getAllRect)(this, '.van-rate__icon').then(function (list) { | |
|                 var target = list | |
|                     .sort(function (cur, next) { return cur.dataset.score - next.dataset.score; }) | |
|                     .find(function (item) { return clientX >= item.left && clientX <= item.right; }); | |
|                 if (target != null) { | |
|                     _this.onSelect(__assign(__assign({}, event), { currentTarget: target })); | |
|                 } | |
|             }); | |
|         }, | |
|     }, | |
| });
 | |
| 
 |