index.vue 7.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <template>
  2. <uni-shadow-root class="vant-radio-index"><view class="van-radio custom-class">
  3. <view v-if="labelPosition === 'left'" :class="'label-class '+(utils.bem('radio__label', [labelPosition, { disabled }]))" @click="onClickLabel">
  4. <slot></slot>
  5. </view>
  6. <view class="van-radio__icon-wrap" @click="onChange">
  7. <slot v-if="useIconSlot" name="icon"></slot>
  8. <van-icon v-else name="success" :class="utils.bem('radio__icon', [shape, { disabled, checked: value === name }])" :style="checkedColor && !disabled && value === name ? 'border-color:' + checkedColor + '; background-color:' + checkedColor : ''" custom-class="icon-class" custom-style="line-height: 20px;"></van-icon>
  9. </view>
  10. <view v-if="labelPosition === 'right'" :class="'label-class '+(utils.bem('radio__label', [labelPosition, { disabled }]))" @click="onClickLabel">
  11. <slot></slot>
  12. </view>
  13. </view></uni-shadow-root>
  14. </template>
  15. <wxs src="../wxs/utils.wxs" module="utils"></wxs>
  16. <script>
  17. import VanIcon from '../icon/index.vue'
  18. global['__wxVueOptions'] = {components:{'van-icon': VanIcon}}
  19. global['__wxRoute'] = 'vant/radio/index'
  20. "use strict";
  21. Object.defineProperty(exports, "__esModule", { value: true });
  22. var component_1 = require('./../common/component.js');
  23. component_1.VantComponent({
  24. field: true,
  25. relation: {
  26. name: 'radio-group',
  27. type: 'ancestor',
  28. linked: function linked(target) {
  29. this.parent = target;
  30. },
  31. unlinked: function unlinked() {
  32. this.parent = null;
  33. }
  34. },
  35. classes: ['icon-class', 'label-class'],
  36. props: {
  37. value: null,
  38. disabled: Boolean,
  39. useIconSlot: Boolean,
  40. checkedColor: String,
  41. labelPosition: {
  42. type: String,
  43. value: 'right'
  44. },
  45. labelDisabled: Boolean,
  46. shape: {
  47. type: String,
  48. value: 'round'
  49. }
  50. },
  51. methods: {
  52. emitChange: function emitChange(value) {
  53. var instance = this.parent || this;
  54. instance.$emit('input', value);
  55. instance.$emit('change', value);
  56. },
  57. onChange: function onChange(event) {
  58. console.log(event);
  59. this.emitChange(this.data.name);
  60. },
  61. onClickLabel: function onClickLabel() {
  62. var _a = this.data,
  63. disabled = _a.disabled,
  64. labelDisabled = _a.labelDisabled,
  65. name = _a.name;
  66. if (!disabled && !labelDisabled) {
  67. this.emitChange(name);
  68. }
  69. }
  70. }
  71. });
  72. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIk9iamVjdCIsInZhbHVlIiwiY29tcG9uZW50XzEiLCJyZXF1aXJlIiwiZmllbGQiLCJyZWxhdGlvbiIsIm5hbWUiLCJ0eXBlIiwibGlua2VkIiwidW5saW5rZWQiLCJjbGFzc2VzIiwicHJvcHMiLCJkaXNhYmxlZCIsInVzZUljb25TbG90IiwiY2hlY2tlZENvbG9yIiwibGFiZWxQb3NpdGlvbiIsImxhYmVsRGlzYWJsZWQiLCJzaGFwZSIsIm1ldGhvZHMiLCJlbWl0Q2hhbmdlIiwiaW5zdGFuY2UiLCJvbkNoYW5nZSIsImNvbnNvbGUiLCJvbkNsaWNrTGFiZWwiLCJfYSJdLCJtYXBwaW5ncyI6Ijs7QUFDQUEsT0FBQUEsY0FBQUEsQ0FBQUEsT0FBQUEsRUFBQUEsWUFBQUEsRUFBNkMsRUFBRUMsT0FBL0NELElBQTZDLEVBQTdDQTtBQUNBLElBQUlFLGNBQWNDLFFBQWxCLDBCQUFrQkEsQ0FBbEI7QUFDQUQsWUFBQUEsYUFBQUEsQ0FBMEI7QUFDdEJFLFdBRHNCLElBQUE7QUFFdEJDLGNBQVU7QUFDTkMsY0FETSxhQUFBO0FBRU5DLGNBRk0sVUFBQTtBQUdOQyxnQkFBUSxTQUFBLE1BQUEsQ0FBQSxNQUFBLEVBQWtCO0FBQ3RCLGlCQUFBLE1BQUEsR0FBQSxNQUFBO0FBSkUsU0FBQTtBQU1OQyxrQkFBVSxTQUFBLFFBQUEsR0FBWTtBQUNsQixpQkFBQSxNQUFBLEdBQUEsSUFBQTtBQUNIO0FBUkssS0FGWTtBQVl0QkMsYUFBUyxDQUFBLFlBQUEsRUFaYSxhQVliLENBWmE7QUFhdEJDLFdBQU87QUFDSFYsZUFERyxJQUFBO0FBRUhXLGtCQUZHLE9BQUE7QUFHSEMscUJBSEcsT0FBQTtBQUlIQyxzQkFKRyxNQUFBO0FBS0hDLHVCQUFlO0FBQ1hSLGtCQURXLE1BQUE7QUFFWE4sbUJBQU87QUFGSSxTQUxaO0FBU0hlLHVCQVRHLE9BQUE7QUFVSEMsZUFBTztBQUNIVixrQkFERyxNQUFBO0FBRUhOLG1CQUFPO0FBRko7QUFWSixLQWJlO0FBNEJ0QmlCLGFBQVM7QUFDTEMsb0JBQVksU0FBQSxVQUFBLENBQUEsS0FBQSxFQUFpQjtBQUN6QixnQkFBSUMsV0FBVyxLQUFBLE1BQUEsSUFBZixJQUFBO0FBQ0FBLHFCQUFBQSxLQUFBQSxDQUFBQSxPQUFBQSxFQUFBQSxLQUFBQTtBQUNBQSxxQkFBQUEsS0FBQUEsQ0FBQUEsUUFBQUEsRUFBQUEsS0FBQUE7QUFKQyxTQUFBO0FBTUxDLGtCQUFVLFNBQUEsUUFBQSxDQUFBLEtBQUEsRUFBaUI7QUFDdkJDLG9CQUFBQSxHQUFBQSxDQUFBQSxLQUFBQTtBQUNBLGlCQUFBLFVBQUEsQ0FBZ0IsS0FBQSxJQUFBLENBQWhCLElBQUE7QUFSQyxTQUFBO0FBVUxDLHNCQUFjLFNBQUEsWUFBQSxHQUFZO0FBQ3RCLGdCQUFJQyxLQUFLLEtBQVQsSUFBQTtBQUFBLGdCQUFvQlosV0FBV1ksR0FBL0IsUUFBQTtBQUFBLGdCQUE0Q1IsZ0JBQWdCUSxHQUE1RCxhQUFBO0FBQUEsZ0JBQThFbEIsT0FBT2tCLEdBQXJGLElBQUE7QUFDQSxnQkFBSSxDQUFBLFFBQUEsSUFBYSxDQUFqQixhQUFBLEVBQWlDO0FBQzdCLHFCQUFBLFVBQUEsQ0FBQSxJQUFBO0FBQ0g7QUFDSjtBQWZJO0FBNUJhLENBQTFCdEIiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBjb21wb25lbnRfMSA9IHJlcXVpcmUoXCIuLi9jb21tb24vY29tcG9uZW50XCIpO1xuY29tcG9uZW50XzEuVmFudENvbXBvbmVudCh7XG4gICAgZmllbGQ6IHRydWUsXG4gICAgcmVsYXRpb246IHtcbiAgICAgICAgbmFtZTogJ3JhZGlvLWdyb3VwJyxcbiAgICAgICAgdHlwZTogJ2FuY2VzdG9yJyxcbiAgICAgICAgbGlua2VkOiBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudCA9IHRhcmdldDtcbiAgICAgICAgfSxcbiAgICAgICAgdW5saW5rZWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMucGFyZW50ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgY2xhc3NlczogWydpY29uLWNsYXNzJywgJ2xhYmVsLWNsYXNzJ10sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgIGRpc2FibGVkOiBCb29sZWFuLFxuICAgICAgICB1c2VJY29uU2xvdDogQm9vbGVhbixcbiAgICAgICAgY2hlY2tlZENvbG9yOiBTdHJpbmcsXG4gICAgICAgIGxhYmVsUG9zaXRpb246IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHZhbHVlOiAncmlnaHQnXG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsRGlzYWJsZWQ6IEJvb2xlYW4sXG4gICAgICAgIHNoYXBlOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICB2YWx1ZTogJ3JvdW5kJ1xuICAgICAgICB9XG4gICAgfSxcbiAgICBtZXRob2RzOiB7XG4gICAgICAgIGVtaXRDaGFuZ2U6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gdGhpcy5wYXJlbnQgfHwgdGhpcztcbiAgICAgICAgICAgIGluc3RhbmNlLiRlbWl0KCdpbnB1dCcsIHZhbHVlKTtcbiAgICAgICAgICAgIGluc3RhbmNlLiRlbWl0KCdjaGFuZ2UnLCB2YWx1ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMuZW1pdENoYW5nZSh0aGlzLmRhdGEubmFtZSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uQ2xpY2tMYWJlbDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIF9hID0gdGhpcy5kYXRhLCBkaXNhYmxlZCA9IF9hLmRpc2FibGVkLCBsYWJlbERpc2FibGVkID0gX2EubGFiZWxEaXNhYmxlZCwgbmFtZSA9IF9hLm5hbWU7XG4gICAgICAgICAgICBpZiAoIWRpc2FibGVkICYmICFsYWJlbERpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKG5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSk7XG4iXSwiZmlsZSI6ImluZGV4LmpzIn0=
  73. export default global['__wxComponents']['vant/radio/index']
  74. </script>
  75. <style platform="mp-weixin">
  76. @import '../common/index.css';.van-radio{display:-webkit-flex;display:flex;overflow:hidden;-webkit-user-select:none;user-select:none}.van-radio__icon-wrap,.van-radio__label{line-height:20px}.van-radio__icon-wrap{-webkit-flex:none;flex:none}.van-radio__icon{display:block;width:20px;height:20px;font-size:14px;color:transparent;text-align:center;border:1px solid #e5e5e5;box-sizing:border-box;transition:.2s}.van-radio__icon--round{border-radius:100%}.van-radio__icon--checked{color:#fff;background-color:#1989fa;border-color:#1989fa}.van-radio__icon--disabled{background-color:#eee;border-color:#c9c9c9}.van-radio__icon--disabled.van-radio__icon--checked{color:#c9c9c9}.van-radio__label{margin-left:10px;color:#333;word-break:break-all}.van-radio__label--left{float:left;margin:0 10px 0 0}.van-radio__label--disabled{color:#c9c9c9}.van-radio__label:empty{margin:0}
  77. </style>