| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894 | 
							- <template>
 
-   <view class="uni-data-checklist" :style="{ 'margin-top': isTop + 'px' }">
 
-     <template v-if="!isLocal">
 
-       <view class="uni-data-loading">
 
-         <uni-load-more
 
-           v-if="!mixinDatacomErrorMessage"
 
-           status="loading"
 
-           iconType="snow"
 
-           :iconSize="18"
 
-           :content-text="contentText"
 
-         ></uni-load-more>
 
-         <text v-else>{{ mixinDatacomErrorMessage }}</text>
 
-       </view>
 
-     </template>
 
-     <template v-else>
 
-       <checkbox-group
 
-         v-if="multiple"
 
-         class="checklist-group"
 
-         :class="{ 'is-list': mode === 'list' || wrap }"
 
-         @change="chagne"
 
-       >
 
-         <label
 
-           class="checklist-box"
 
-           :class="[
 
-             'is--' + mode,
 
-             item.selected ? 'is-checked' : '',
 
-             disabled || !!item.disabled ? 'is-disable' : '',
 
-             index !== 0 && mode === 'list' ? 'is-list-border' : '',
 
-           ]"
 
-           :style="item.styleBackgroud"
 
-           v-for="(item, index) in dataList"
 
-           :key="index"
 
-         >
 
-           <checkbox
 
-             class="hidden"
 
-             hidden
 
-             :disabled="disabled || !!item.disabled"
 
-             :value="item[map.value] + ''"
 
-             :checked="item.selected"
 
-           />
 
-           <view
 
-             v-if="(mode !== 'tag' && mode !== 'list') || (mode === 'list' && icon === 'left')"
 
-             class="checkbox__inner"
 
-             :style="item.styleIcon"
 
-           >
 
-             <view class="checkbox__inner-icon"></view>
 
-           </view>
 
-           <view
 
-             class="checklist-content"
 
-             :class="{ 'list-content': mode === 'list' && icon === 'left' }"
 
-           >
 
-             <text class="checklist-text" :style="item.styleIconText">{{ item[map.text] }}</text>
 
-             <view
 
-               v-if="mode === 'list' && icon === 'right'"
 
-               class="checkobx__list"
 
-               :style="item.styleBackgroud"
 
-             ></view>
 
-           </view>
 
-         </label>
 
-       </checkbox-group>
 
-       <radio-group
 
-         v-else
 
-         class="checklist-group"
 
-         :class="{ 'is-list': mode === 'list', 'is-wrap': wrap }"
 
-         @change="chagne"
 
-       >
 
-         <!-- -->
 
-         <label
 
-           class="checklist-box"
 
-           :class="[
 
-             'is--' + mode,
 
-             item.selected ? 'is-checked' : '',
 
-             disabled || !!item.disabled ? 'is-disable' : '',
 
-             index !== 0 && mode === 'list' ? 'is-list-border' : '',
 
-           ]"
 
-           :style="item.styleBackgroud"
 
-           v-for="(item, index) in dataList"
 
-           :key="index"
 
-         >
 
-           <radio
 
-             class="hidden"
 
-             hidden
 
-             :disabled="disabled || item.disabled"
 
-             :value="item[map.value] + ''"
 
-             :checked="item.selected"
 
-           />
 
-           <view
 
-             v-if="(mode !== 'tag' && mode !== 'list') || (mode === 'list' && icon === 'left')"
 
-             class="radio__inner"
 
-             :style="item.styleBackgroud"
 
-           >
 
-             <view class="radio__inner-icon" :style="item.styleIcon"></view>
 
-           </view>
 
-           <view
 
-             class="checklist-content"
 
-             :class="{ 'list-content': mode === 'list' && icon === 'left' }"
 
-           >
 
-             <text class="checklist-text" :style="item.styleIconText">{{ item[map.text] }}</text>
 
-             <view
 
-               v-if="mode === 'list' && icon === 'right'"
 
-               :style="item.styleRightIcon"
 
-               class="checkobx__list"
 
-             ></view>
 
-           </view>
 
-         </label>
 
-       </radio-group>
 
-     </template>
 
-   </view>
 
- </template>
 
- <script>
 
-   /**
 
-    * DataChecklist 数据选择器
 
-    * @description 通过数据渲染 checkbox 和 radio
 
-    * @tutorial https://ext.dcloud.net.cn/plugin?id=xxx
 
-    * @property {String} mode = [default| list | button | tag] 显示模式
 
-    * @value default  	默认横排模式
 
-    * @value list		列表模式
 
-    * @value button	按钮模式
 
-    * @value tag 		标签模式
 
-    * @property {Boolean} multiple = [true|false] 是否多选
 
-    * @property {Array|String|Number} value 默认值
 
-    * @property {Array} localdata 本地数据 ,格式 [{text:'',value:''}]
 
-    * @property {Number|String} min 最小选择个数 ,multiple为true时生效
 
-    * @property {Number|String} max 最大选择个数 ,multiple为true时生效
 
-    * @property {Boolean} wrap 是否换行显示
 
-    * @property {String} icon = [left|right]  list 列表模式下icon显示位置
 
-    * @property {Boolean} selectedColor 选中颜色
 
-    * @property {Boolean} emptyText 没有数据时显示的文字 ,本地数据无效
 
-    * @property {Boolean} selectedTextColor 选中文本颜色,如不填写则自动显示
 
-    * @property {Object} map 字段映射, 默认 map={text:'text',value:'value'}
 
-    * @value left 左侧显示
 
-    * @value right 右侧显示
 
-    * @event {Function} change  选中发生变化触发
 
-    */
 
-   export default {
 
-     name: 'uniDataChecklist',
 
-     mixins: [uniCloud.mixinDatacom || {}],
 
-     emits: ['input', 'update:modelValue', 'change'],
 
-     props: {
 
-       mode: {
 
-         type: String,
 
-         default: 'default',
 
-       },
 
-       multiple: {
 
-         type: Boolean,
 
-         default: false,
 
-       },
 
-       value: {
 
-         type: [Array, String, Number],
 
-         default() {
 
-           return '';
 
-         },
 
-       },
 
-       // TODO vue3
 
-       modelValue: {
 
-         type: [Array, String, Number],
 
-         default() {
 
-           return '';
 
-         },
 
-       },
 
-       localdata: {
 
-         type: Array,
 
-         default() {
 
-           return [];
 
-         },
 
-       },
 
-       min: {
 
-         type: [Number, String],
 
-         default: '',
 
-       },
 
-       max: {
 
-         type: [Number, String],
 
-         default: '',
 
-       },
 
-       wrap: {
 
-         type: Boolean,
 
-         default: false,
 
-       },
 
-       icon: {
 
-         type: String,
 
-         default: 'left',
 
-       },
 
-       selectedColor: {
 
-         type: String,
 
-         default: '',
 
-       },
 
-       selectedTextColor: {
 
-         type: String,
 
-         default: '',
 
-       },
 
-       emptyText: {
 
-         type: String,
 
-         default: '暂无数据',
 
-       },
 
-       disabled: {
 
-         type: Boolean,
 
-         default: false,
 
-       },
 
-       map: {
 
-         type: Object,
 
-         default() {
 
-           return {
 
-             text: 'text',
 
-             value: 'value',
 
-           };
 
-         },
 
-       },
 
-     },
 
-     watch: {
 
-       localdata: {
 
-         handler(newVal) {
 
-           this.range = newVal;
 
-           this.dataList = this.getDataList(this.getSelectedValue(newVal));
 
-         },
 
-         deep: true,
 
-       },
 
-       mixinDatacomResData(newVal) {
 
-         this.range = newVal;
 
-         this.dataList = this.getDataList(this.getSelectedValue(newVal));
 
-       },
 
-       value(newVal) {
 
-         this.dataList = this.getDataList(newVal);
 
-         // fix by mehaotian is_reset 在 uni-forms 中定义
 
-         if (!this.is_reset) {
 
-           this.is_reset = false;
 
-           this.formItem && this.formItem.setValue(newVal);
 
-         }
 
-       },
 
-       modelValue(newVal) {
 
-         this.dataList = this.getDataList(newVal);
 
-         if (!this.is_reset) {
 
-           this.is_reset = false;
 
-           this.formItem && this.formItem.setValue(newVal);
 
-         }
 
-       },
 
-     },
 
-     data() {
 
-       return {
 
-         dataList: [],
 
-         range: [],
 
-         contentText: {
 
-           contentdown: '查看更多',
 
-           contentrefresh: '加载中',
 
-           contentnomore: '没有更多',
 
-         },
 
-         isLocal: true,
 
-         styles: {
 
-           selectedColor: '#2979ff',
 
-           selectedTextColor: '#666',
 
-         },
 
-         isTop: 0,
 
-       };
 
-     },
 
-     computed: {
 
-       dataValue() {
 
-         if (this.value === '') return this.modelValue;
 
-         if (this.modelValue === '') return this.value;
 
-         return this.value;
 
-       },
 
-     },
 
-     created() {
 
-       this.form = this.getForm('uniForms');
 
-       this.formItem = this.getForm('uniFormsItem');
 
-       // this.formItem && this.formItem.setValue(this.value)
 
-       if (this.formItem) {
 
-         this.isTop = 6;
 
-         if (this.formItem.name) {
 
-           // 如果存在name添加默认值,否则formData 中不存在这个字段不校验
 
-           if (!this.is_reset) {
 
-             this.is_reset = false;
 
-             this.formItem.setValue(this.dataValue);
 
-           }
 
-           this.rename = this.formItem.name;
 
-           this.form.inputChildrens.push(this);
 
-         }
 
-       }
 
-       if (this.localdata && this.localdata.length !== 0) {
 
-         this.isLocal = true;
 
-         this.range = this.localdata;
 
-         this.dataList = this.getDataList(this.getSelectedValue(this.range));
 
-       } else {
 
-         if (this.collection) {
 
-           this.isLocal = false;
 
-           this.loadData();
 
-         }
 
-       }
 
-     },
 
-     methods: {
 
-       loadData() {
 
-         this.mixinDatacomGet()
 
-           .then((res) => {
 
-             this.mixinDatacomResData = res.result.data;
 
-             if (this.mixinDatacomResData.length === 0) {
 
-               this.isLocal = false;
 
-               this.mixinDatacomErrorMessage = this.emptyText;
 
-             } else {
 
-               this.isLocal = true;
 
-             }
 
-           })
 
-           .catch((err) => {
 
-             this.mixinDatacomErrorMessage = err.message;
 
-           });
 
-       },
 
-       /**
 
-        * 获取父元素实例
 
-        */
 
-       getForm(name = 'uniForms') {
 
-         let parent = this.$parent;
 
-         let parentName = parent.$options.name;
 
-         while (parentName !== name) {
 
-           parent = parent.$parent;
 
-           if (!parent) return false;
 
-           parentName = parent.$options.name;
 
-         }
 
-         return parent;
 
-       },
 
-       chagne(e) {
 
-         const values = e.detail.value;
 
-         let detail = {
 
-           value: [],
 
-           data: [],
 
-         };
 
-         if (this.multiple) {
 
-           this.range.forEach((item) => {
 
-             if (values.includes(item[this.map.value] + '')) {
 
-               detail.value.push(item[this.map.value]);
 
-               detail.data.push(item);
 
-             }
 
-           });
 
-         } else {
 
-           const range = this.range.find((item) => item[this.map.value] + '' === values);
 
-           if (range) {
 
-             detail = {
 
-               value: range[this.map.value],
 
-               data: range,
 
-             };
 
-           }
 
-         }
 
-         this.formItem && this.formItem.setValue(detail.value);
 
-         // TODO 兼容 vue2
 
-         this.$emit('input', detail.value);
 
-         // // TOTO 兼容 vue3
 
-         this.$emit('update:modelValue', detail.value);
 
-         this.$emit('change', {
 
-           detail,
 
-         });
 
-         if (this.multiple) {
 
-           // 如果 v-model 没有绑定 ,则走内部逻辑
 
-           // if (this.value.length === 0) {
 
-           this.dataList = this.getDataList(detail.value, true);
 
-           // }
 
-         } else {
 
-           this.dataList = this.getDataList(detail.value);
 
-         }
 
-       },
 
-       /**
 
-        * 获取渲染的新数组
 
-        * @param {Object} value 选中内容
 
-        */
 
-       getDataList(value) {
 
-         // 解除引用关系,破坏原引用关系,避免污染源数据
 
-         let dataList = JSON.parse(JSON.stringify(this.range));
 
-         let list = [];
 
-         if (this.multiple) {
 
-           if (!Array.isArray(value)) {
 
-             value = [];
 
-           }
 
-         }
 
-         dataList.forEach((item, index) => {
 
-           item.disabled = item.disable || item.disabled || false;
 
-           if (this.multiple) {
 
-             if (value.length > 0) {
 
-               let have = value.find((val) => val === item[this.map.value]);
 
-               item.selected = have !== undefined;
 
-             } else {
 
-               item.selected = false;
 
-             }
 
-           } else {
 
-             item.selected = value === item[this.map.value];
 
-           }
 
-           list.push(item);
 
-         });
 
-         return this.setRange(list);
 
-       },
 
-       /**
 
-        * 处理最大最小值
 
-        * @param {Object} list
 
-        */
 
-       setRange(list) {
 
-         let selectList = list.filter((item) => item.selected);
 
-         let min = Number(this.min) || 0;
 
-         let max = Number(this.max) || '';
 
-         list.forEach((item, index) => {
 
-           if (this.multiple) {
 
-             if (selectList.length <= min) {
 
-               let have = selectList.find((val) => val[this.map.value] === item[this.map.value]);
 
-               if (have !== undefined) {
 
-                 item.disabled = true;
 
-               }
 
-             }
 
-             if (selectList.length >= max && max !== '') {
 
-               let have = selectList.find((val) => val[this.map.value] === item[this.map.value]);
 
-               if (have === undefined) {
 
-                 item.disabled = true;
 
-               }
 
-             }
 
-           }
 
-           this.setStyles(item, index);
 
-           list[index] = item;
 
-         });
 
-         return list;
 
-       },
 
-       /**
 
-        * 设置 class
 
-        * @param {Object} item
 
-        * @param {Object} index
 
-        */
 
-       setStyles(item, index) {
 
-         //  设置自定义样式
 
-         item.styleBackgroud = this.setStyleBackgroud(item);
 
-         item.styleIcon = this.setStyleIcon(item);
 
-         item.styleIconText = this.setStyleIconText(item);
 
-         item.styleRightIcon = this.setStyleRightIcon(item);
 
-       },
 
-       /**
 
-        * 获取选中值
 
-        * @param {Object} range
 
-        */
 
-       getSelectedValue(range) {
 
-         if (!this.multiple) return this.dataValue;
 
-         let selectedArr = [];
 
-         range.forEach((item) => {
 
-           if (item.selected) {
 
-             selectedArr.push(item[this.map.value]);
 
-           }
 
-         });
 
-         return this.dataValue && this.dataValue.length > 0 ? this.dataValue : selectedArr;
 
-       },
 
-       /**
 
-        * 设置背景样式
 
-        */
 
-       setStyleBackgroud(item) {
 
-         let styles = {};
 
-         let selectedColor = this.selectedColor ? this.selectedColor : '#2979ff';
 
-         if (this.mode !== 'list') {
 
-           styles['border-color'] = item.selected ? selectedColor : '#DCDFE6';
 
-         }
 
-         if (this.mode === 'tag') {
 
-           styles['background-color'] = item.selected ? selectedColor : '#f5f5f5';
 
-         }
 
-         let classles = '';
 
-         for (let i in styles) {
 
-           classles += `${i}:${styles[i]};`;
 
-         }
 
-         return classles;
 
-       },
 
-       setStyleIcon(item) {
 
-         let styles = {};
 
-         let classles = '';
 
-         let selectedColor = this.selectedColor ? this.selectedColor : '#2979ff';
 
-         styles['background-color'] = item.selected ? selectedColor : '#fff';
 
-         styles['border-color'] = item.selected ? selectedColor : '#DCDFE6';
 
-         if (!item.selected && item.disabled) {
 
-           styles['background-color'] = '#F2F6FC';
 
-           styles['border-color'] = item.selected ? selectedColor : '#DCDFE6';
 
-         }
 
-         for (let i in styles) {
 
-           classles += `${i}:${styles[i]};`;
 
-         }
 
-         return classles;
 
-       },
 
-       setStyleIconText(item) {
 
-         let styles = {};
 
-         let classles = '';
 
-         let selectedColor = this.selectedColor ? this.selectedColor : '#2979ff';
 
-         if (this.mode === 'tag') {
 
-           styles.color = item.selected
 
-             ? this.selectedTextColor
 
-               ? this.selectedTextColor
 
-               : '#fff'
 
-             : '#666';
 
-         } else {
 
-           styles.color = item.selected
 
-             ? this.selectedTextColor
 
-               ? this.selectedTextColor
 
-               : selectedColor
 
-             : '#666';
 
-         }
 
-         if (!item.selected && item.disabled) {
 
-           styles.color = '#999';
 
-         }
 
-         for (let i in styles) {
 
-           classles += `${i}:${styles[i]};`;
 
-         }
 
-         return classles;
 
-       },
 
-       setStyleRightIcon(item) {
 
-         let styles = {};
 
-         let classles = '';
 
-         if (this.mode === 'list') {
 
-           styles['border-color'] = item.selected ? this.styles.selectedColor : '#DCDFE6';
 
-         }
 
-         for (let i in styles) {
 
-           classles += `${i}:${styles[i]};`;
 
-         }
 
-         return classles;
 
-       },
 
-     },
 
-   };
 
- </script>
 
- <style lang="scss">
 
-   $checked-color: var(--ui-BG-Main);
 
-   $border-color: #dcdfe6;
 
-   $disable: 0.4;
 
-   @mixin flex {
 
-     /* #ifndef APP-NVUE */
 
-     display: flex;
 
-     /* #endif */
 
-   }
 
-   .uni-data-loading {
 
-     @include flex;
 
-     flex-direction: row;
 
-     justify-content: center;
 
-     align-items: center;
 
-     height: 36px;
 
-     padding-left: 10px;
 
-     color: #999;
 
-   }
 
-   .uni-data-checklist {
 
-     position: relative;
 
-     z-index: 0;
 
-     flex: 1;
 
-     // 多选样式
 
-     .checklist-group {
 
-       @include flex;
 
-       flex-direction: row;
 
-       flex-wrap: wrap;
 
-       &.is-list {
 
-         flex-direction: column;
 
-       }
 
-       .checklist-box {
 
-         @include flex;
 
-         flex-direction: row;
 
-         align-items: center;
 
-         position: relative;
 
-         margin: 5px 0;
 
-         margin-right: 25px;
 
-         .hidden {
 
-           position: absolute;
 
-           opacity: 0;
 
-         }
 
-         // 文字样式
 
-         .checklist-content {
 
-           @include flex;
 
-           flex: 1;
 
-           flex-direction: row;
 
-           align-items: center;
 
-           justify-content: space-between;
 
-           .checklist-text {
 
-             font-size: 14px;
 
-             color: #666;
 
-             margin-left: 5px;
 
-             line-height: 14px;
 
-           }
 
-           .checkobx__list {
 
-             border-right-width: 1px;
 
-             border-right-color: #007aff;
 
-             border-right-style: solid;
 
-             border-bottom-width: 1px;
 
-             border-bottom-color: #007aff;
 
-             border-bottom-style: solid;
 
-             height: 12px;
 
-             width: 6px;
 
-             left: -5px;
 
-             transform-origin: center;
 
-             transform: rotate(45deg);
 
-             opacity: 0;
 
-           }
 
-         }
 
-         // 多选样式
 
-         .checkbox__inner {
 
-           /* #ifndef APP-NVUE */
 
-           flex-shrink: 0;
 
-           box-sizing: border-box;
 
-           /* #endif */
 
-           position: relative;
 
-           width: 16px;
 
-           height: 16px;
 
-           border: 1px solid $border-color;
 
-           border-radius: 4px;
 
-           background-color: #fff;
 
-           z-index: 1;
 
-           .checkbox__inner-icon {
 
-             position: absolute;
 
-             /* #ifdef APP-NVUE */
 
-             top: 2px;
 
-             /* #endif */
 
-             /* #ifndef APP-NVUE */
 
-             top: 1px;
 
-             /* #endif */
 
-             left: 5px;
 
-             height: 8px;
 
-             width: 4px;
 
-             border-right-width: 1px;
 
-             border-right-color: #fff;
 
-             border-right-style: solid;
 
-             border-bottom-width: 1px;
 
-             border-bottom-color: #fff;
 
-             border-bottom-style: solid;
 
-             opacity: 0;
 
-             transform-origin: center;
 
-             transform: rotate(40deg);
 
-           }
 
-         }
 
-         // 单选样式
 
-         .radio__inner {
 
-           @include flex;
 
-           /* #ifndef APP-NVUE */
 
-           flex-shrink: 0;
 
-           box-sizing: border-box;
 
-           /* #endif */
 
-           justify-content: center;
 
-           align-items: center;
 
-           position: relative;
 
-           width: 16px;
 
-           height: 16px;
 
-           border: 1px solid $border-color;
 
-           border-radius: 16px;
 
-           background-color: #fff;
 
-           z-index: 1;
 
-           .radio__inner-icon {
 
-             width: 8px;
 
-             height: 8px;
 
-             border-radius: 10px;
 
-             opacity: 0;
 
-           }
 
-         }
 
-         // 默认样式
 
-         &.is--default {
 
-           // 禁用
 
-           &.is-disable {
 
-             /* #ifdef H5 */
 
-             cursor: not-allowed;
 
-             /* #endif */
 
-             .checkbox__inner {
 
-               background-color: #f2f6fc;
 
-               border-color: $border-color;
 
-               /* #ifdef H5 */
 
-               cursor: not-allowed;
 
-               /* #endif */
 
-             }
 
-             .radio__inner {
 
-               background-color: #f2f6fc;
 
-               border-color: $border-color;
 
-             }
 
-             .checklist-text {
 
-               color: #999;
 
-             }
 
-           }
 
-           // 选中
 
-           &.is-checked {
 
-             .checkbox__inner {
 
-               border-color: $checked-color;
 
-               background-color: $checked-color;
 
-               .checkbox__inner-icon {
 
-                 opacity: 1;
 
-                 transform: rotate(45deg);
 
-               }
 
-             }
 
-             .radio__inner {
 
-               border-color: $checked-color;
 
-               .radio__inner-icon {
 
-                 opacity: 1;
 
-                 background-color: $checked-color;
 
-               }
 
-             }
 
-             .checklist-text {
 
-               color: $checked-color;
 
-             }
 
-             // 选中禁用
 
-             &.is-disable {
 
-               .checkbox__inner {
 
-                 opacity: $disable;
 
-               }
 
-               .checklist-text {
 
-                 opacity: $disable;
 
-               }
 
-               .radio__inner {
 
-                 opacity: $disable;
 
-               }
 
-             }
 
-           }
 
-         }
 
-         // 按钮样式
 
-         &.is--button {
 
-           margin-right: 10px;
 
-           padding: 5px 10px;
 
-           border: 1px $border-color solid;
 
-           border-radius: 3px;
 
-           transition: border-color 0.2s;
 
-           // 禁用
 
-           &.is-disable {
 
-             /* #ifdef H5 */
 
-             cursor: not-allowed;
 
-             /* #endif */
 
-             border: 1px #eee solid;
 
-             opacity: $disable;
 
-             .checkbox__inner {
 
-               background-color: #f2f6fc;
 
-               border-color: $border-color;
 
-               /* #ifdef H5 */
 
-               cursor: not-allowed;
 
-               /* #endif */
 
-             }
 
-             .radio__inner {
 
-               background-color: #f2f6fc;
 
-               border-color: $border-color;
 
-               /* #ifdef H5 */
 
-               cursor: not-allowed;
 
-               /* #endif */
 
-             }
 
-             .checklist-text {
 
-               color: #999;
 
-             }
 
-           }
 
-           &.is-checked {
 
-             border-color: $checked-color;
 
-             .checkbox__inner {
 
-               border-color: $checked-color;
 
-               background-color: $checked-color;
 
-               .checkbox__inner-icon {
 
-                 opacity: 1;
 
-                 transform: rotate(45deg);
 
-               }
 
-             }
 
-             .radio__inner {
 
-               border-color: $checked-color;
 
-               .radio__inner-icon {
 
-                 opacity: 1;
 
-                 background-color: $checked-color;
 
-               }
 
-             }
 
-             .checklist-text {
 
-               color: $checked-color;
 
-             }
 
-             // 选中禁用
 
-             &.is-disable {
 
-               opacity: $disable;
 
-             }
 
-           }
 
-         }
 
-         // 标签样式
 
-         &.is--tag {
 
-           margin-right: 10px;
 
-           padding: 5px 10px;
 
-           border: 1px $border-color solid;
 
-           border-radius: 3px;
 
-           background-color: #f5f5f5;
 
-           .checklist-text {
 
-             margin: 0;
 
-             color: #666;
 
-           }
 
-           // 禁用
 
-           &.is-disable {
 
-             /* #ifdef H5 */
 
-             cursor: not-allowed;
 
-             /* #endif */
 
-             opacity: $disable;
 
-           }
 
-           &.is-checked {
 
-             background-color: $checked-color;
 
-             border-color: $checked-color;
 
-             .checklist-text {
 
-               color: #fff;
 
-             }
 
-           }
 
-         }
 
-         // 列表样式
 
-         &.is--list {
 
-           /* #ifndef APP-NVUE */
 
-           display: flex;
 
-           /* #endif */
 
-           padding: 10px 15px;
 
-           padding-left: 0;
 
-           margin: 0;
 
-           &.is-list-border {
 
-             border-top: 1px #eee solid;
 
-           }
 
-           // 禁用
 
-           &.is-disable {
 
-             /* #ifdef H5 */
 
-             cursor: not-allowed;
 
-             /* #endif */
 
-             .checkbox__inner {
 
-               background-color: #f2f6fc;
 
-               border-color: $border-color;
 
-               /* #ifdef H5 */
 
-               cursor: not-allowed;
 
-               /* #endif */
 
-             }
 
-             .checklist-text {
 
-               color: #999;
 
-             }
 
-           }
 
-           &.is-checked {
 
-             .checkbox__inner {
 
-               border-color: $checked-color;
 
-               background-color: $checked-color;
 
-               .checkbox__inner-icon {
 
-                 opacity: 1;
 
-                 transform: rotate(45deg);
 
-               }
 
-             }
 
-             .radio__inner {
 
-               .radio__inner-icon {
 
-                 opacity: 1;
 
-               }
 
-             }
 
-             .checklist-text {
 
-               color: $checked-color;
 
-             }
 
-             .checklist-content {
 
-               .checkobx__list {
 
-                 opacity: 1;
 
-                 border-color: $checked-color;
 
-               }
 
-             }
 
-             // 选中禁用
 
-             &.is-disable {
 
-               .checkbox__inner {
 
-                 opacity: $disable;
 
-               }
 
-               .checklist-text {
 
-                 opacity: $disable;
 
-               }
 
-             }
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
- </style>
 
 
  |