@10yun/cv-mobile-ui 0.3.24 → 0.3.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/package.json +5 -2
  2. package/plugins/request.js +14 -2
  3. package/ui-cv/cv-banner/cv-banner.vue +23 -14
  4. package/ui-cv/cv-banner-card/cv-banner-card.vue +24 -16
  5. package/ui-cv/cv-block/cv-block.vue +6 -6
  6. package/ui-cv/cv-box/cv-box.vue +6 -7
  7. package/ui-cv/cv-button/cv-button.vue +32 -13
  8. package/ui-cv/cv-cell/cv-cell.vue +21 -25
  9. package/ui-cv/cv-checkbox/cv-checkbox.vue +22 -22
  10. package/ui-cv/cv-checkbox-tag/cv-checkbox-tag.vue +30 -25
  11. package/ui-cv/cv-code-sms/cv-code-sms.vue +60 -38
  12. package/ui-cv/cv-dialog-bottom/cv-dialog-bottom.vue +14 -18
  13. package/ui-cv/cv-dialog-full/cv-dialog-full.vue +14 -18
  14. package/ui-cv/cv-dialog-loading/cv-dialog-loading.vue +10 -17
  15. package/ui-cv/cv-dialog-share/cv-dialog-share.vue +4 -5
  16. package/ui-cv/cv-draw-barcode/cv-draw-barcode.vue +54 -51
  17. package/ui-cv/cv-draw-posters/cv-draw-posters.vue +53 -71
  18. package/ui-cv/cv-draw-progress/cv-draw-progress.vue +44 -39
  19. package/ui-cv/cv-draw-qrcode/cv-draw-qrcode.vue +48 -45
  20. package/ui-cv/cv-editor/compressImage.vue +47 -40
  21. package/ui-cv/cv-editor/cv-editor.vue +234 -124
  22. package/ui-cv/cv-editor-parse/cv-editor-parse.vue +21 -30
  23. package/ui-cv/cv-editor-parse/u-parse.vue +21 -30
  24. package/ui-cv/cv-filter-hm/cv-filter-hm.vue +140 -74
  25. package/ui-cv/cv-form-group/cv-form-group.vue +11 -13
  26. package/ui-cv/cv-form-item/cv-form-item.vue +35 -20
  27. package/ui-cv/cv-form-merge/cv-form-merge.vue +5 -10
  28. package/ui-cv/cv-geo-local/cv-geo-local.vue +50 -27
  29. package/ui-cv/cv-icons/cv-icons.vue +24 -19
  30. package/ui-cv/cv-info/cv-info.vue +9 -11
  31. package/ui-cv/cv-input-btn/cv-input-btn.vue +34 -13
  32. package/ui-cv/cv-input-digit/cv-input-digit.vue +31 -18
  33. package/ui-cv/cv-input-idcard/cv-input-idcard.vue +31 -21
  34. package/ui-cv/cv-input-number/cv-input-number.vue +29 -14
  35. package/ui-cv/cv-input-password/cv-input-password.vue +31 -20
  36. package/ui-cv/cv-input-text/cv-input-text.vue +32 -17
  37. package/ui-cv/cv-link/cv-link.vue +7 -7
  38. package/ui-cv/cv-lists-base/cv-lists-base.vue +148 -114
  39. package/ui-cv/cv-lists-swiper/cv-lists-swipe2r.vue +24 -15
  40. package/ui-cv/cv-lists-swiper/cv-lists-swiper.vue +85 -63
  41. package/ui-cv/cv-load-more/cv-load-more.vue +60 -28
  42. package/ui-cv/cv-message/cv-message.vue +5 -6
  43. package/ui-cv/cv-nav-col/cv-nav-col.vue +9 -13
  44. package/ui-cv/cv-nav-group/cv-nav-group.vue +6 -8
  45. package/ui-cv/cv-nav-row/cv-nav-row.vue +21 -25
  46. package/ui-cv/cv-picker-date/cv-picker-date.vue +28 -12
  47. package/ui-cv/cv-picker-datetime/cv-picker-datetime.vue +43 -21
  48. package/ui-cv/cv-picker-datetime5/cv-picker-datetime5.vue +108 -60
  49. package/ui-cv/cv-picker-region/cv-picker-region.vue +46 -32
  50. package/ui-cv/cv-picker-time/cv-picker-time.vue +26 -11
  51. package/ui-cv/cv-picker1/cv-picker1.vue +32 -17
  52. package/ui-cv/cv-picker2/cv-picker2.vue +46 -28
  53. package/ui-cv/cv-picker3/cv-picker3.vue +77 -44
  54. package/ui-cv/cv-radio/cv-radio.vue +17 -10
  55. package/ui-cv/cv-radio-sex/cv-radio-sex.vue +20 -21
  56. package/ui-cv/cv-radio-tag/cv-radio-tag.vue +22 -11
  57. package/ui-cv/cv-rate/cv-rate.vue +17 -13
  58. package/ui-cv/cv-search/cv-search.vue +17 -12
  59. package/ui-cv/cv-skeleton/cv-skeleton.vue +32 -27
  60. package/ui-cv/cv-skeleton/cv-skeleton2.vue +56 -33
  61. package/ui-cv/cv-skeleton-group/cv-skeleton-group.vue +4 -6
  62. package/ui-cv/cv-specs/cv-specs.vue +31 -30
  63. package/ui-cv/cv-switch/cv-switch.vue +4 -5
  64. package/ui-cv/cv-tab-lists/cv-tab-lists.vue +189 -128
  65. package/ui-cv/cv-textarea/cv-textarea.vue +31 -13
  66. package/ui-cv/cv-treaty/cv-treaty.vue +8 -8
  67. package/ui-cv/cv-update-app/cv-update-app.vue +68 -53
  68. package/ui-cv/cv-upload-avatar/cv-upload-avatar.vue +33 -31
  69. package/ui-cv/cv-upload-img/cv-upload-img.vue +97 -70
  70. package/ui-cv/dict/area-city.js +612 -612
  71. package/ui-cv/dict/area-county.js +3392 -3392
  72. package/ui-cv/dict/area-province.js +35 -35
  73. package/ui-cv/mixins/mixins-checkbox.js +9 -15
  74. package/ui-cv/mixins/mixins-common.js +7 -7
  75. package/ui-cv/mixins/mixins-input.js +11 -12
  76. package/ui-cv/mixins/mixins-picker.js +9 -13
  77. package/ui-cv/mixins/mixins-radio.js +10 -14
@@ -9,7 +9,7 @@
9
9
  <template>
10
10
  <!--基础元素-->
11
11
  <div class="wxParse" :class="className" v-if="!loading">
12
- <block v-for="(node,index) of nodes" :key="index">
12
+ <block v-for="(node, index) of nodes" :key="index">
13
13
  <wxParseTemplate :node="node" />
14
14
  </block>
15
15
  </div>
@@ -24,19 +24,19 @@ export default {
24
24
  props: {
25
25
  loading: {
26
26
  type: Boolean,
27
- default: false,
27
+ default: false
28
28
  },
29
29
  className: {
30
30
  type: String,
31
- default: '',
31
+ default: ''
32
32
  },
33
33
  content: {
34
34
  type: String,
35
- default: '',
35
+ default: ''
36
36
  },
37
37
  noData: {
38
38
  type: String,
39
- default: '<div style="color: red;">数据不能为空</div>',
39
+ default: '<div style="color: red;">数据不能为空</div>'
40
40
  },
41
41
  startHandler: {
42
42
  type: Function,
@@ -45,15 +45,15 @@ export default {
45
45
  node.attr.class = null;
46
46
  node.attr.style = null;
47
47
  };
48
- },
48
+ }
49
49
  },
50
50
  endHandler: {
51
51
  type: Function,
52
- default: null,
52
+ default: null
53
53
  },
54
54
  charsHandler: {
55
55
  type: Function,
56
- default: null,
56
+ default: null
57
57
  },
58
58
  imageProp: {
59
59
  type: Object,
@@ -62,39 +62,32 @@ export default {
62
62
  mode: 'aspectFit',
63
63
  padding: 0,
64
64
  lazyLoad: false,
65
- domain: '',
65
+ domain: ''
66
66
  };
67
- },
68
- },
67
+ }
68
+ }
69
69
  },
70
70
  components: {
71
- wxParseTemplate,
71
+ wxParseTemplate
72
72
  },
73
73
  data() {
74
74
  return {
75
- imageUrls: [],
75
+ imageUrls: []
76
76
  };
77
77
  },
78
78
  computed: {
79
79
  nodes() {
80
- const {
81
- content,
82
- noData,
83
- imageProp,
84
- startHandler,
85
- endHandler,
86
- charsHandler,
87
- } = this;
80
+ const { content, noData, imageProp, startHandler, endHandler, charsHandler } = this;
88
81
  const parseData = content || noData;
89
82
  const customHandler = {
90
83
  start: startHandler,
91
84
  end: endHandler,
92
- chars: charsHandler,
85
+ chars: charsHandler
93
86
  };
94
87
  const results = HtmlToJson(parseData, customHandler, imageProp, this);
95
88
  this.imageUrls = results.imageUrls;
96
89
  return results.nodes;
97
- },
90
+ }
98
91
  },
99
92
  methods: {
100
93
  navigate(href, $event) {
@@ -104,19 +97,17 @@ export default {
104
97
  if (!this.imageUrls.length) return;
105
98
  uni.previewImage({
106
99
  current: src,
107
- urls: this.imageUrls,
100
+ urls: this.imageUrls
108
101
  });
109
102
  this.$emit('preview', src, $event);
110
103
  },
111
104
  removeImageUrl(src) {
112
- const {
113
- imageUrls
114
- } = this;
105
+ const { imageUrls } = this;
115
106
  imageUrls.splice(imageUrls.indexOf(src), 1);
116
- },
117
- },
107
+ }
108
+ }
118
109
  };
119
110
  </script>
120
111
  <style>
121
- @import "u-parse.css";
112
+ @import 'u-parse.css';
122
113
  </style>
@@ -9,7 +9,7 @@
9
9
  <template>
10
10
  <!--基础元素-->
11
11
  <div class="wxParse" :class="className" v-if="!loading">
12
- <block v-for="(node,index) of nodes" :key="index">
12
+ <block v-for="(node, index) of nodes" :key="index">
13
13
  <wxParseTemplate :node="node" />
14
14
  </block>
15
15
  </div>
@@ -24,19 +24,19 @@ export default {
24
24
  props: {
25
25
  loading: {
26
26
  type: Boolean,
27
- default: false,
27
+ default: false
28
28
  },
29
29
  className: {
30
30
  type: String,
31
- default: '',
31
+ default: ''
32
32
  },
33
33
  content: {
34
34
  type: String,
35
- default: '',
35
+ default: ''
36
36
  },
37
37
  noData: {
38
38
  type: String,
39
- default: '<div style="color: red;">数据不能为空</div>',
39
+ default: '<div style="color: red;">数据不能为空</div>'
40
40
  },
41
41
  startHandler: {
42
42
  type: Function,
@@ -45,15 +45,15 @@ export default {
45
45
  node.attr.class = null;
46
46
  node.attr.style = null;
47
47
  };
48
- },
48
+ }
49
49
  },
50
50
  endHandler: {
51
51
  type: Function,
52
- default: null,
52
+ default: null
53
53
  },
54
54
  charsHandler: {
55
55
  type: Function,
56
- default: null,
56
+ default: null
57
57
  },
58
58
  imageProp: {
59
59
  type: Object,
@@ -62,39 +62,32 @@ export default {
62
62
  mode: 'aspectFit',
63
63
  padding: 0,
64
64
  lazyLoad: false,
65
- domain: '',
65
+ domain: ''
66
66
  };
67
- },
68
- },
67
+ }
68
+ }
69
69
  },
70
70
  components: {
71
- wxParseTemplate,
71
+ wxParseTemplate
72
72
  },
73
73
  data() {
74
74
  return {
75
- imageUrls: [],
75
+ imageUrls: []
76
76
  };
77
77
  },
78
78
  computed: {
79
79
  nodes() {
80
- const {
81
- content,
82
- noData,
83
- imageProp,
84
- startHandler,
85
- endHandler,
86
- charsHandler,
87
- } = this;
80
+ const { content, noData, imageProp, startHandler, endHandler, charsHandler } = this;
88
81
  const parseData = content || noData;
89
82
  const customHandler = {
90
83
  start: startHandler,
91
84
  end: endHandler,
92
- chars: charsHandler,
85
+ chars: charsHandler
93
86
  };
94
87
  const results = HtmlToJson(parseData, customHandler, imageProp, this);
95
88
  this.imageUrls = results.imageUrls;
96
89
  return results.nodes;
97
- },
90
+ }
98
91
  },
99
92
  methods: {
100
93
  navigate(href, $event) {
@@ -104,19 +97,17 @@ export default {
104
97
  if (!this.imageUrls.length) return;
105
98
  uni.previewImage({
106
99
  current: src,
107
- urls: this.imageUrls,
100
+ urls: this.imageUrls
108
101
  });
109
102
  this.$emit('preview', src, $event);
110
103
  },
111
104
  removeImageUrl(src) {
112
- const {
113
- imageUrls
114
- } = this;
105
+ const { imageUrls } = this;
115
106
  imageUrls.splice(imageUrls.indexOf(src), 1);
116
- },
117
- },
107
+ }
108
+ }
118
109
  };
119
110
  </script>
120
111
  <style>
121
- @import "u-parse.css";
112
+ @import 'u-parse.css';
122
113
  </style>
@@ -1,47 +1,85 @@
1
1
  <template>
2
- <view class="cv-filter-hm" :class="{'setDropdownBottom':maskVisibility}" :style="{'top':menuTop+'rpx'}" @touchmove.stop.prevent="discard"
3
- @tap.stop="discard">
2
+ <view
3
+ class="cv-filter-hm"
4
+ :class="{ setDropdownBottom: maskVisibility }"
5
+ :style="{ top: menuTop + 'rpx' }"
6
+ @touchmove.stop.prevent="discard"
7
+ @tap.stop="discard"
8
+ >
4
9
  <view class="nav">
5
- <block v-for="(item,index) in menu" :key="index">
6
- <view class="first-menu" :class="{'on':showPage==index}" @tap="togglePage(index)">
7
- <text class="name">{{item.name}}</text>
10
+ <block v-for="(item, index) in menu" :key="index">
11
+ <view class="first-menu" :class="{ on: showPage == index }" @tap="togglePage(index)">
12
+ <text class="name">{{ item.name }}</text>
8
13
  <!-- <text class="iconfont triangle" :style="'transform:rotate('+triangleDeg[index]+'deg);'"></text> -->
9
- <cv-icons type="arrow-type1-down" size="12" color="#aaa" :style="'transform:rotate('+triangleDeg[index]+'deg);'" />
14
+ <cv-icons type="arrow-type1-down" size="12" color="#aaa" :style="'transform:rotate(' + triangleDeg[index] + 'deg);'" />
10
15
  </view>
11
16
  </block>
12
17
  </view>
13
- <view class="mask" :class="{'show':isShowMask,'hide':maskVisibility!=true}" @tap="togglePage(showPage)"></view>
14
- <block v-for="(page,page_index) in subData" :key="page_index">
15
- <view class="sub-menu-class" :class="{'show':showPage==page_index,'hide':pageState[page_index]!=true}">
16
- <block v-if="page.type=='hierarchy'&& page.submenu.length>0">
17
- <scroll-view class="sub-menu-list" :class="[activeMenuArr[page_index].length>1?'first':'alone']" :scroll-y="true"
18
- :scroll-into-view="'first_id'+firstScrollInto">
19
- <block v-for="(sub,index) in page.submenu" :key="index">
20
- <view class="sub-menu" :id="'first_id'+index" :class="{'on':activeMenuArr[page_index][0]==index}"
21
- @tap="selectHierarchyMenu(page_index,index,null,null)">
18
+ <view class="mask" :class="{ show: isShowMask, hide: maskVisibility != true }" @tap="togglePage(showPage)"></view>
19
+ <block v-for="(page, page_index) in subData" :key="page_index">
20
+ <view class="sub-menu-class" :class="{ show: showPage == page_index, hide: pageState[page_index] != true }">
21
+ <block v-if="page.type == 'hierarchy' && page.submenu.length > 0">
22
+ <scroll-view
23
+ class="sub-menu-list"
24
+ :class="[activeMenuArr[page_index].length > 1 ? 'first' : 'alone']"
25
+ :scroll-y="true"
26
+ :scroll-into-view="'first_id' + firstScrollInto"
27
+ >
28
+ <block v-for="(sub, index) in page.submenu" :key="index">
29
+ <view
30
+ class="sub-menu"
31
+ :id="'first_id' + index"
32
+ :class="{ on: activeMenuArr[page_index][0] == index }"
33
+ @tap="selectHierarchyMenu(page_index, index, null, null)"
34
+ >
22
35
  <view class="menu-name">
23
- <text>{{sub.name}}</text>
36
+ <text>{{ sub.name }}</text>
24
37
  <!-- <text class="iconfont selected"></text> -->
25
38
  </view>
26
39
  </view>
27
40
  </block>
28
41
  </scroll-view>
29
- <block v-for="(sub,index) in page.submenu" :key="index">
30
- <scroll-view class="sub-menu-list not-first" :scroll-y="true" v-if="activeMenuArr[page_index][0]==index&&sub.submenu.length>0"
31
- :scroll-into-view="'second_id'+secondScrollInto">
32
- <block v-for="(sub_second,second_index) in sub.submenu" :key="second_index">
33
- <view class="sub-menu" :id="'second_id'+second_index" :class="{'on':activeMenuArr[page_index][1]==second_index}">
34
- <view class="menu-name" @tap="selectHierarchyMenu(page_index,activeMenuArr[page_index][0],second_index,null)">
35
- <text>{{sub_second.name}}</text>
42
+ <block v-for="(sub, index) in page.submenu" :key="index">
43
+ <scroll-view
44
+ class="sub-menu-list not-first"
45
+ :scroll-y="true"
46
+ v-if="activeMenuArr[page_index][0] == index && sub.submenu.length > 0"
47
+ :scroll-into-view="'second_id' + secondScrollInto"
48
+ >
49
+ <block v-for="(sub_second, second_index) in sub.submenu" :key="second_index">
50
+ <view
51
+ class="sub-menu"
52
+ :id="'second_id' + second_index"
53
+ :class="{ on: activeMenuArr[page_index][1] == second_index }"
54
+ >
55
+ <view
56
+ class="menu-name"
57
+ @tap="selectHierarchyMenu(page_index, activeMenuArr[page_index][0], second_index, null)"
58
+ >
59
+ <text>{{ sub_second.name }}</text>
36
60
  <!-- <text class="iconfont selected"></text> -->
37
61
  </view>
38
- <view class="more-sub-menu" v-if="sub_second.submenu&&sub.submenu.length>0&&sub_second.submenu.length>0">
39
- <block v-for="(sub2,sub2_index) in sub_second.submenu" :key="sub2_index">
40
- <text v-if="sub_second.showAllSub || (sub2_index<8)"
41
- :class="{'on':activeMenuArr[page_index][1]==second_index&&activeMenuArr[page_index][2]==sub2_index}"
42
- @tap="selectHierarchyMenu(page_index,activeMenuArr[page_index][0],second_index,sub2_index)">{{sub2.name}}</text>
43
- <text v-if="sub_second.showAllSub!=true && sub2_index==8 && sub_second.submenu.length>9"
44
- @tap="showMoreSub(second_index)">更多<text class="iconfont triangle"></text></text>
62
+ <view
63
+ class="more-sub-menu"
64
+ v-if="sub_second.submenu && sub.submenu.length > 0 && sub_second.submenu.length > 0"
65
+ >
66
+ <block v-for="(sub2, sub2_index) in sub_second.submenu" :key="sub2_index">
67
+ <text
68
+ v-if="sub_second.showAllSub || sub2_index < 8"
69
+ :class="{
70
+ on: activeMenuArr[page_index][1] == second_index && activeMenuArr[page_index][2] == sub2_index
71
+ }"
72
+ @tap="selectHierarchyMenu(page_index, activeMenuArr[page_index][0], second_index, sub2_index)"
73
+ >
74
+ {{ sub2.name }}
75
+ </text>
76
+ <text
77
+ v-if="sub_second.showAllSub != true && sub2_index == 8 && sub_second.submenu.length > 9"
78
+ @tap="showMoreSub(second_index)"
79
+ >
80
+ 更多
81
+ <text class="iconfont triangle"></text>
82
+ </text>
45
83
  </block>
46
84
  </view>
47
85
  </view>
@@ -49,14 +87,20 @@
49
87
  </scroll-view>
50
88
  </block>
51
89
  </block>
52
- <block v-if="page.type=='filter'">
90
+ <block v-if="page.type == 'filter'">
53
91
  <view class="filter">
54
92
  <scroll-view class="menu-box" :scroll-y="true">
55
- <view class="box" v-for="(box,box_index) in page.submenu" :key="box_index">
56
- <view class="title">{{box.name}}</view>
93
+ <view class="box" v-for="(box, box_index) in page.submenu" :key="box_index">
94
+ <view class="title">{{ box.name }}</view>
57
95
  <view class="labels">
58
- <view v-for="(label,label_index) in box.submenu" :key="label_index" @tap="selectFilterLabel(page_index,box_index,label_index)"
59
- :class="{'on':label.selected}">{{label.name}}</view>
96
+ <view
97
+ v-for="(label, label_index) in box.submenu"
98
+ :key="label_index"
99
+ @tap="selectFilterLabel(page_index, box_index, label_index)"
100
+ :class="{ on: label.selected }"
101
+ >
102
+ {{ label.name }}
103
+ </view>
60
104
  </view>
61
105
  </view>
62
106
  </scroll-view>
@@ -66,14 +110,20 @@
66
110
  </view>
67
111
  </view>
68
112
  </block>
69
- <block v-if="page.type=='radio'">
113
+ <block v-if="page.type == 'radio'">
70
114
  <view class="filter">
71
115
  <scroll-view class="menu-box" :scroll-y="true">
72
- <view class="box" v-for="(box,box_index) in page.submenu" :key="box_index">
73
- <view class="title">{{box.name}}</view>
116
+ <view class="box" v-for="(box, box_index) in page.submenu" :key="box_index">
117
+ <view class="title">{{ box.name }}</view>
74
118
  <view class="labels">
75
- <view v-for="(label,label_index) in box.submenu" :key="label_index" @tap="selectRadioLabel(page_index,box_index,label_index)"
76
- :class="{'on':label.selected}">{{label.name}}</view>
119
+ <view
120
+ v-for="(label, label_index) in box.submenu"
121
+ :key="label_index"
122
+ @tap="selectRadioLabel(page_index, box_index, label_index)"
123
+ :class="{ on: label.selected }"
124
+ >
125
+ {{ label.name }}
126
+ </view>
77
127
  </view>
78
128
  </view>
79
129
  </scroll-view>
@@ -90,7 +140,7 @@
90
140
  <script>
91
141
  export default {
92
142
  component: true,
93
- name: "cvFilterHm",
143
+ name: 'cvFilterHm',
94
144
  data() {
95
145
  return {
96
146
  subData: [], //菜单数据
@@ -106,9 +156,9 @@ export default {
106
156
  //滚动区域定位
107
157
  firstScrollInto: 0,
108
158
  secondScrollInto: 0,
109
- componentTop: 0,//组件top
159
+ componentTop: 0, //组件top
110
160
  isReadNewSelect: false
111
- }
161
+ };
112
162
  },
113
163
  props: {
114
164
  menuTop: {
@@ -140,7 +190,6 @@ export default {
140
190
  immediate: true
141
191
  },
142
192
  defaultSelected(newVal) {
143
-
144
193
  if (newVal.length == 0) {
145
194
  return;
146
195
  }
@@ -154,14 +203,13 @@ export default {
154
203
  },
155
204
  methods: {
156
205
  initMenu() {
157
-
158
206
  let tmpMenuActiveArr = [];
159
207
  let tmpMenu = [];
160
208
  for (let i = 0; i < this.filterData.length; i++) {
161
209
  let tmpitem = this.filterData[i];
162
210
  tmpMenu.push({
163
211
  //如果没有设置name,则取第一个菜单作为menu.name,filter类型则将"筛选"作为menu.name
164
- name: tmpitem.name || (tmpitem.type == "filter" ? "筛选" : tmpitem.submenu[0].name),
212
+ name: tmpitem.name || (tmpitem.type == 'filter' ? '筛选' : tmpitem.submenu[0].name),
165
213
  type: tmpitem.type
166
214
  });
167
215
  //初始化选中项数组-ui状态
@@ -176,7 +224,12 @@ export default {
176
224
  }
177
225
  this.menu = tmpMenu;
178
226
  //初始化选中项数组
179
- tmpMenuActiveArr = this.defaultActive.length > 0 ? this.defaultActive : this.activeMenuArr.length > 0 ? this.activeMenuArr : tmpMenuActiveArr;
227
+ tmpMenuActiveArr =
228
+ this.defaultActive.length > 0
229
+ ? this.defaultActive
230
+ : this.activeMenuArr.length > 0
231
+ ? this.activeMenuArr
232
+ : tmpMenuActiveArr;
180
233
  this.defaultActive = [];
181
234
  this.activeMenuArr = JSON.parse(JSON.stringify(tmpMenuActiveArr));
182
235
  this.shadowActiveMenuArr = JSON.parse(JSON.stringify(tmpMenuActiveArr));
@@ -191,7 +244,7 @@ export default {
191
244
  for (var i = 0; i < this.activeMenuArr.length; i++) {
192
245
  let row = this.activeMenuArr[i];
193
246
  if (this.subData[i].type == 'hierarchy') {
194
- if (typeof (row[0]) == 'number') {
247
+ if (typeof row[0] == 'number') {
195
248
  let tmpsub = this.subData[i].submenu[row[0]];
196
249
  if (row.length > 1) {
197
250
  tmpsub = tmpsub.submenu[row[1]];
@@ -214,20 +267,34 @@ export default {
214
267
  //选中
215
268
  selectHierarchyMenu(page_index, level1_index, level2_index, level3_index) {
216
269
  //读取记录
217
- if (level1_index != null && level2_index == null && level3_index == null && this.shadowActiveMenuArr[page_index][0] ==
218
- level1_index) {
270
+ if (
271
+ level1_index != null &&
272
+ level2_index == null &&
273
+ level3_index == null &&
274
+ this.shadowActiveMenuArr[page_index][0] == level1_index
275
+ ) {
219
276
  this.activeMenuArr.splice(page_index, 1, JSON.parse(JSON.stringify(this.shadowActiveMenuArr[page_index])));
220
277
  } else {
221
278
  this.activeMenuArr[page_index].splice(0, 1, level1_index);
222
- (level2_index != null || this.activeMenuArr[page_index].length >= 2) && this.activeMenuArr[page_index].splice(1, 1, level2_index) || this.activeMenuArr[page_index].splice(1, 1);
223
- (level3_index != null || this.activeMenuArr[page_index].length >= 3) && this.activeMenuArr[page_index].splice(2, 1, level3_index) || this.activeMenuArr[page_index].splice(2, 1);
279
+ ((level2_index != null || this.activeMenuArr[page_index].length >= 2) &&
280
+ this.activeMenuArr[page_index].splice(1, 1, level2_index)) ||
281
+ this.activeMenuArr[page_index].splice(1, 1);
282
+ ((level3_index != null || this.activeMenuArr[page_index].length >= 3) &&
283
+ this.activeMenuArr[page_index].splice(2, 1, level3_index)) ||
284
+ this.activeMenuArr[page_index].splice(2, 1);
224
285
  }
225
286
  //写入结果
226
- if (level3_index != null || level2_index != null || (level1_index != null && this.subData[page_index].submenu[level1_index].submenu.length == 0)
287
+ if (
288
+ level3_index != null ||
289
+ level2_index != null ||
290
+ (level1_index != null && this.subData[page_index].submenu[level1_index].submenu.length == 0)
227
291
  ) {
228
292
  let sub = this.subData[page_index].submenu[level1_index].submenu[level2_index];
229
293
  if (this.updateMenuName) {
230
- this.menu[page_index].name = (level3_index != null && sub.submenu[level3_index].name) || (level2_index != null && sub.name) || this.subData[page_index].submenu[level1_index].name;
294
+ this.menu[page_index].name =
295
+ (level3_index != null && sub.submenu[level3_index].name) ||
296
+ (level2_index != null && sub.name) ||
297
+ this.subData[page_index].submenu[level1_index].name;
231
298
  }
232
299
  this.shadowActiveMenuArr[page_index] = JSON.parse(JSON.stringify(this.activeMenuArr[page_index]));
233
300
  this.togglePage(this.showPage);
@@ -267,7 +334,6 @@ export default {
267
334
  },
268
335
  //选中单选类label-UI状态
269
336
  selectRadioLabel(page_index, box_index, label_index) {
270
-
271
337
  let activeIndex = this.activeMenuArr[page_index][box_index][0];
272
338
  if (activeIndex == label_index) {
273
339
  this.subData[page_index].submenu[box_index].submenu[activeIndex].selected = false;
@@ -310,7 +376,7 @@ export default {
310
376
  setTimeout(() => {
311
377
  this.isShowMask = true;
312
378
  }, 0);
313
- })
379
+ });
314
380
  },
315
381
  //hide菜单页
316
382
  hidePageLayer(isAnimation) {
@@ -322,7 +388,7 @@ export default {
322
388
  }, 200);
323
389
  this.confirm();
324
390
  } else {
325
- this.pageState.splice(tmpIndex, 1, false)
391
+ this.pageState.splice(tmpIndex, 1, false);
326
392
  }
327
393
  this.firstScrollInto = null;
328
394
  this.secondScrollInto = null;
@@ -333,7 +399,7 @@ export default {
333
399
 
334
400
  //对结果做一下处理
335
401
  index.forEach((item, i) => {
336
- if (typeof (item[0]) == 'object') {
402
+ if (typeof item[0] == 'object') {
337
403
  //针对筛选结果过一个排序
338
404
  item.forEach((s, j) => {
339
405
  if (s != null) {
@@ -342,7 +408,10 @@ export default {
342
408
  });
343
409
  item[j] = s;
344
410
  s.forEach((v, k) => {
345
- value[i][j][k] = (v == null || v >= this.subData[i].submenu[j].submenu.length) ? null : this.subData[i].submenu[j].submenu[v].value;
411
+ value[i][j][k] =
412
+ v == null || v >= this.subData[i].submenu[j].submenu.length
413
+ ? null
414
+ : this.subData[i].submenu[j].submenu[v].value;
346
415
  if (this.subData[i].type == 'radio' && value[i][j][k] == null) {
347
416
  value[i][j] = [];
348
417
  index[i][j] = [];
@@ -358,7 +427,7 @@ export default {
358
427
  submenu = submenu.submenu[item[1]];
359
428
  value[i][1] = submenu.hasOwnProperty('value') ? submenu.value : null;
360
429
  } else {
361
- value[i][1] = null
430
+ value[i][1] = null;
362
431
  }
363
432
  if (value[i].length >= 3 && item[2] != null) {
364
433
  if (submenu.submenu.length > 0) {
@@ -371,7 +440,6 @@ export default {
371
440
  }
372
441
  }
373
442
  index[i] = item;
374
-
375
443
  });
376
444
  // 输出
377
445
  this.$emit('confirm', {
@@ -387,7 +455,7 @@ export default {
387
455
  setTimeout(() => {
388
456
  this.showPage = index;
389
457
  }, 0);
390
- })
458
+ });
391
459
  this.triangleDeg[index] = 180;
392
460
  },
393
461
  reloadActiveMenuArr() {
@@ -429,7 +497,7 @@ export default {
429
497
  this.firstScrollInto = parseInt(this.activeMenuArr[index][0]);
430
498
  this.secondScrollInto = parseInt(this.activeMenuArr[index][1]);
431
499
  }, 0);
432
- })
500
+ });
433
501
  } else if (this.menu[index].type == 'radio') {
434
502
  //重载筛选页选中状态
435
503
  let level = this.shadowActiveMenuArr[index].length;
@@ -446,7 +514,7 @@ export default {
446
514
  }
447
515
  },
448
516
  processActive(tmpitem) {
449
- let tmpArr = []
517
+ let tmpArr = [];
450
518
  if (tmpitem.type == 'hierarchy' && tmpitem.hasOwnProperty('submenu') && tmpitem.submenu.length > 0) {
451
519
  let level = this.getMaxFloor(tmpitem.submenu);
452
520
  while (level > 0) {
@@ -480,24 +548,22 @@ export default {
480
548
  },
481
549
  //计算菜单层级
482
550
  getMaxFloor(treeData) {
483
- let floor = 0
484
- let max = 0
551
+ let floor = 0;
552
+ let max = 0;
485
553
  function each(data, floor) {
486
- data.forEach(e => {
554
+ data.forEach((e) => {
487
555
  max = floor > max ? floor : max;
488
556
  if (e.hasOwnProperty('submenu') && e.submenu.length > 0) {
489
- each(e.submenu, floor + 1)
557
+ each(e.submenu, floor + 1);
490
558
  }
491
- })
559
+ });
492
560
  }
493
- each(treeData, 1)
561
+ each(treeData, 1);
494
562
  return max;
495
563
  },
496
- discard() {
497
-
498
- }
564
+ discard() {}
499
565
  }
500
- }
566
+ };
501
567
  </script>
502
568
  <style>
503
569
  .cv-filter-hm {