Commit a6c70228e8c3bb06ae1e9eb028a4cec1b819241f

Authored by Adam
Exists in master

Merge branch 'master' into 'master'

做一次整合

给项目加上package.json
让所有开发人员都可以和npm一起合并后,进行开发。
把原来的文件纳入到src文件夹中

See merge request !1
Showing 202 changed files   Show diff stats
1 <script> File was deleted
2 export default {
3 onLaunch: function() {
4 console.log('App Launch')
5 },
6 onShow: function() {
7 console.log('App Show')
8 },
9 onHide: function() {
10 console.log('App Hide')
11 }
12 }
13 </script>
14
15 <style>
16 /*每个页面公共css */
17 </style>
18 1 <script>
common/data.js
1 // 数据格式,数据中只需要包含以下字段和数据格式,可以添加字段,比如id等等,不影响组件显示, File was deleted
2 // 组件的返回结果是有菜单数组下标形式返回,
3 // 如果传入数据中有value,也会返回value,开发者可根据返回的下标获取所选中的菜单
4 /*
5 [
6 {
7 "name":"", //字符串类型 选填项 菜单名称,如不填,则取第一个子菜单的name值,filter和radio类型则将设置为"筛选"
8 "type":"" //字符串类型 必填项 可取值 hierarchy/filter/radio hierarchy单/多层级菜单(最多三级); filter筛选多选菜单; radio筛选单选菜单
9 "submenu":[ //对象数组类型 必填项 子菜单数据
10 {
11 "name":"", //字符串类型 必填项 菜单名称
12 "value":"", //字符串类型 选填项 自定义内容,比如id等等,如果填写了,confirm返回的结果中将返回对应选中的value,若菜单无value字段则返回null,filter类型此字段无效果
13 "submenu":[ //对象数组类型 必填项 子菜单数据
14 {
15 "name":"", //字符串类型 必填项 菜单名称
16 "value":"", //字符串类型 选填项 自定义内容,比如id等等,如果填写了,confirm返回的结果中将返回对应选中的value,若菜单无value字段则返回null
17 "submenu":[ //对象数组类型 必填项 子菜单数据 filter类型无效
18 {
19 "name":"", //字符串类型 必填项 菜单名称 hierarchy类型层级最多到此
20 "value":"", //字符串类型 选填项 自定义内容,比如id等等,如果填写了,confirm返回的结果中将返回对应选中的value,若菜单无value字段则返回null
21 }
22 ]
23 }
24 ]
25 }
26 ]
27 }
28 ]
29 */
30
31 //0.0.4版本起 返回结果将有两部分组成:
32 /*
33 {
34 index:[], //旧版本的下标数组形式
35 value:[] //菜单中的valve,结构和下标结果数组一样,只是把下标替换成了value而已
36 }
37 */
38 // 以下演示数据中,我故意把value设置成跟name一样,只是为了方便演示,使示例更加易懂,实际使用时候value应该是一个标识,给后台识别所用的.
39 // 数据较长,请仔细查看。
40 export default [
41 {
42 "name":'综合',
43 "type": 'filter',
44 "submenu": [{
45 "submenu": [
46
47 ]
48 },
49 ],
50 },
51 {
52 name:'品牌',
53 "type": 'filter',
54 "submenu": [{
55 "name": '品牌',
56 "value": "品牌",
57 "submenu": [{
58 "name": "帕森",
59 "value": "帕森",
60 },
61 {
62 "name": "海伦凯勒",
63 "value": "海伦凯勒",
64 },
65 ]
66 },
67 ]
68 },
69 {
70 "name":'功能',
71 "type": 'filter',
72 "submenu": [{
73 "name": "智能排序",
74 "value": "智能排序"
75 },
76 {
77 "name": "离我最近",
78 "value": "离我最近"
79 },
80 {
81 "name": "人均从高到低",
82 "value": "人均从高到低"
83 },
84 {
85 "name": "人均从低到高",
86 "value": "人均从低到高"
87 }
88 ]
89 },
90 {
91 "name":'材质',
92 "type": 'filter',
93 "submenu": [{
94 "submenu": [{
95 "name": "满减活动",
96 "value": "满减活动"
97 },
98 {
99 "name": "打折优惠",
100 "value": "打折优惠"
101 },
102 {
103 "name": "会员专享",
104 "value": "会员专享"
105 }
106 ]
107 }
108 ]
109 },
110 {
111 "name":'折扣',
112 "type": 'filter',
113 "submenu": [{
114 "name": "折扣(多选)",
115 "submenu": [{
116 "name": "满减活动",
117 "value": "满减活动"
118 },
119 {
120 "name": "打折优惠",
121 "value": "打折优惠"
122 },
123 {
124 "name": "会员专享",
125 "value": "会员专享"
126 }
127 ]
128 }
129 ]
130 }
131 ]
132
133 1 // 数据格式,数据中只需要包含以下字段和数据格式,可以添加字段,比如id等等,不影响组件显示,
components/HM-filterDropdown/HM-filterDropdown.vue
1 <template> File was deleted
2 <view class="HMfilterDropdown" @touchmove.stop.prevent="discard" @tap.stop="discard">
3 <view class="nav">
4 <block v-for="(item,index) in menu" :key="index">
5 <view class="first-menu" :class="{'on':showPage==index}" @tap="togglePage(index)">
6 <text class="name">{{item.name}}</text>
7 <text class="iconfont triangle" :style="'transform:rotate('+triangleDeg[index]+'deg);'"></text>
8 </view>
9 </block>
10 </view>
11 <view class="mask" :class="{'show':isShowMask,'hide':maskVisibility!=true}" @tap="togglePage(showPage)"></view>
12 <block v-for="(page,page_index) in subData" :key="page_index">
13 <view class="sub-menu-class" :class="{'show':showPage==page_index,'hide':pageState[page_index]!=true}">
14 <block v-if="page.type=='hierarchy'&& page.submenu.length>0">
15 <scroll-view class="sub-menu-list" :class="[activeMenuArr[page_index].length>1?'first':'alone']"
16 :scroll-y="true" :scroll-into-view="'first_id'+firstScrollInto">
17 <block v-for="(sub,index) in page.submenu" :key="index">
18 <view class="sub-menu" :id="'first_id'+index" :class="{'on':activeMenuArr[page_index][0]==index}" @tap="selectHierarchyMenu(page_index,index,null,null)">
19 <view class="menu-name">
20 <text>{{sub.name}}</text>
21 <text class="iconfont selected"></text>
22 </view>
23 </view>
24 </block>
25 </scroll-view>
26 <block v-for="(sub,index) in page.submenu" :key="index">
27 <scroll-view class="sub-menu-list not-first" :scroll-y="true" v-if="activeMenuArr[page_index][0]==index&&sub.submenu.length>0"
28 :scroll-into-view="'second_id'+secondScrollInto">
29 <block v-for="(sub_second,second_index) in sub.submenu" :key="second_index">
30 <view class="sub-menu" :id="'second_id'+second_index" :class="{'on':activeMenuArr[page_index][1]==second_index}">
31 <view class="menu-name" @tap="selectHierarchyMenu(page_index,activeMenuArr[page_index][0],second_index,null)">
32 <text>{{sub_second.name}}</text>
33 <text class="iconfont selected"></text>
34 </view>
35 <view class="more-sub-menu" v-if="sub_second.submenu&&sub.submenu.length>0&&sub_second.submenu.length>0">
36 <block v-for="(sub2,sub2_index) in sub_second.submenu" :key="sub2_index">
37 <text v-if="sub_second.showAllSub || (sub2_index<8)" :class="{'on':activeMenuArr[page_index][1]==second_index&&activeMenuArr[page_index][2]==sub2_index}"
38 @tap="selectHierarchyMenu(page_index,activeMenuArr[page_index][0],second_index,sub2_index)">{{sub2.name}}</text>
39 <text v-if="sub_second.showAllSub!=true && sub2_index==8 && sub_second.submenu.length>9" @tap="showMoreSub(second_index)">更多<text
40 class="iconfont triangle"></text></text>
41 </block>
42 </view>
43 </view>
44 </block>
45 </scroll-view>
46 </block>
47 </block>
48 <block v-if="page.type=='filter'">
49 <view class="filter">
50 <scroll-view class="menu-box" :scroll-y="true">
51 <view class="box" v-for="(box,box_index) in page.submenu" :key="box_index">
52 <view class="title">{{box.name}}</view>
53 <view class="labels">
54 <view v-for="(label,label_index) in box.submenu" :key="label_index" @tap="selectFilterLabel(page_index,box_index,label_index)"
55 :class="{'on':label.selected}">{{label.name}}</view>
56 </view>
57 </view>
58 </scroll-view>
59 <view class="btn-box">
60 <view class="reset" @tap="resetFilterData(page_index)">重置</view>
61 <view class="submit" @tap="setFilterData(page_index)">确定</view>
62 </view>
63 </view>
64 </block>
65 <block v-if="page.type=='radio'">
66 <view class="filter">
67 <scroll-view class="menu-box" :scroll-y="true">
68 <view class="box" v-for="(box,box_index) in page.submenu" :key="box_index">
69 <view class="title">{{box.name}}</view>
70 <view class="labels">
71 <view v-for="(label,label_index) in box.submenu" :key="label_index" @tap="selectRadioLabel(page_index,box_index,label_index)"
72 :class="{'on':label.selected}">{{label.name}}</view>
73 </view>
74 </view>
75 </scroll-view>
76 <view class="btn-box">
77 <view class="reset" @tap="resetFilterData(page_index)">重置</view>
78 <view class="submit" @tap="setFilterData(page_index)">确定</view>
79 </view>
80 </view>
81 </block>
82 </view>
83 </block>
84 </view>
85 </template>
86 <script>
87 export default {
88 data() {
89 return {
90 subData: [], //菜单数据
91 menu: [], //顶部横条数据
92 showPage: -1, //菜单页面显示/隐藏动画控制
93 pageState: [], //页面的状态
94 activeMenuArr: [], //UI状态
95 shadowActiveMenuArr: [], //记录选中
96 defaultActive:[],
97 triangleDeg: [], //小三角形的翻转动画控制
98 isShowMask: false, //遮罩层显示/隐藏动画控制
99 maskVisibility: false, //遮罩层显示/隐藏状态
100 //滚动区域定位
101 firstScrollInto: 0,
102 secondScrollInto: 0,
103 componentTop:0 ,//组件top
104 isReadNewSelect:false
105 }
106 },
107 props: {
108 filterData: {
109 value: Array,
110 default: []
111 },
112 defaultSelected:{
113 value: Array,
114 default: []
115 },
116 updateMenuName:{
117 value: Boolean,
118 default: true
119 },
120 dataFormat:{
121 value: String,
122 default: 'Array'
123 }
124 },
125 watch: {
126 filterData: {
127 handler() {
128 this.initMenu(); //filterData重新赋值初始化菜单
129 },
130 immediate: true
131 },
132 defaultSelected(newVal) {
133 if(newVal.length==0){
134 return;
135 }
136 this.defaultActive = JSON.parse(JSON.stringify(newVal));
137 this.activeMenuArr = JSON.parse(JSON.stringify(newVal));
138 this.shadowActiveMenuArr = JSON.parse(JSON.stringify(newVal));
139 if(this.updateMenuName){
140 this.setMenuName();
141 }
142 }
143 },
144 methods: {
145 initMenu() {
146 let tmpMenuActiveArr=[];
147 let tmpMenu=[];
148 for (let i = 0; i < this.filterData.length; i++) {
149 let tmpitem = this.filterData[i];
150 tmpMenu.push({
151 //如果没有设置name,则取第一个菜单作为menu.name,filter类型则将"筛选"作为menu.name
152 name: tmpitem.name || (tmpitem.type == "filter" ? "筛选" : tmpitem.submenu[0].name),
153 type: tmpitem.type
154 });
155 //初始化选中项数组-ui状态
156 tmpMenuActiveArr.push(this.processActive(tmpitem));
157 //初始化角度数组
158 this.triangleDeg.push(0);
159 //初始化控制显示状态数组
160 this.pageState.push(false);
161 //递归处理子菜单数据
162 tmpitem = this.processSubMenu(tmpitem);
163 this.filterData[i] = tmpitem;
164 }
165 this.menu = tmpMenu;
166 //初始化选中项数组
167 tmpMenuActiveArr = this.defaultActive.length>0?this.defaultActive:this.activeMenuArr.length>0?this.activeMenuArr:tmpMenuActiveArr;
168 this.defaultActive = [];
169 this.activeMenuArr = JSON.parse(JSON.stringify(tmpMenuActiveArr));
170 this.shadowActiveMenuArr = JSON.parse(JSON.stringify(tmpMenuActiveArr));
171 //加载菜单数据
172 this.subData = this.filterData;
173 //设定顶部菜单名字
174 if(this.updateMenuName){
175 this.setMenuName();
176 }
177 },
178 setMenuName(){
179 for(var i=0;i<this.activeMenuArr.length;i++){
180 let row = this.activeMenuArr[i];
181 if (typeof(row[0]) != 'object'){
182 var tmpsub = false;
183 if(row.length>0 && row[0]!=null){
184 tmpsub = this.subData[i].submenu[row[0]];
185 if(row.length>1 && row[1]!=null){
186 tmpsub = tmpsub.submenu[row[1]];
187 if(row.length>2 && row[2]!=null){
188 tmpsub = tmpsub.submenu[row[2]];
189 }
190 }
191 }else{
192 tmpsub = false;
193 }
194 if(tmpsub){
195 this.menu[i].name = tmpsub.name;
196 }
197 }
198 }
199 },
200 //展开更多
201 showMoreSub(index) {
202 this.subData[this.showPage].submenu[this.activeMenuArr[this.showPage][0]].submenu[index].showAllSub = true;
203 this.$forceUpdate();
204 },
205 //选中
206 selectHierarchyMenu(page_index, level1_index, level2_index, level3_index) {
207 //读取记录
208 if (level1_index != null && level2_index == null && level3_index == null && this.shadowActiveMenuArr[page_index][0] ==
209 level1_index) {
210 this.activeMenuArr.splice(page_index, 1, JSON.parse(JSON.stringify(this.shadowActiveMenuArr[page_index])));
211 } else {
212 this.activeMenuArr[page_index].splice(0, 1, level1_index);
213 (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);
214 (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);
215 }
216 //写入结果
217 if (level3_index != null || level2_index != null || (level1_index != null && this.subData[page_index].submenu[level1_index].submenu.length == 0)
218 ) {
219 let sub = this.subData[page_index].submenu[level1_index].submenu[level2_index];
220 if(this.updateMenuName){
221 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;
222 }
223 this.shadowActiveMenuArr[page_index] = JSON.parse(JSON.stringify(this.activeMenuArr[page_index]));
224 this.togglePage(this.showPage);
225 }
226 },
227 //写入结果,筛选
228 setFilterData(page_index) {
229 this.shadowActiveMenuArr[page_index] = JSON.parse(JSON.stringify(this.activeMenuArr[page_index]));
230 this.togglePage(this.showPage);
231 },
232 //重置结果和ui,筛选
233 resetFilterData(page_index) {
234 let tmpArr = [];
235 let level = this.shadowActiveMenuArr[page_index].length;
236 while (level > 0) {
237 tmpArr.push([]);
238 let box = this.subData[page_index].submenu[level - 1].submenu;
239 for (let i = 0; i < box.length; i++) {
240 this.subData[page_index].submenu[level - 1].submenu[i].selected = false;
241 }
242 level--;
243 }
244 this.activeMenuArr[page_index] = JSON.parse(JSON.stringify(tmpArr));
245 this.$forceUpdate();
246 },
247 //选中筛选类label-UI状态
248 selectFilterLabel(page_index, box_index, label_index) {
249 let find_index = this.activeMenuArr[page_index][box_index].indexOf(label_index);
250 if (find_index > -1) {
251 this.activeMenuArr[page_index][box_index].splice(find_index, 1);
252 this.subData[page_index].submenu[box_index].submenu[label_index].selected = false;
253 } else {
254 this.activeMenuArr[page_index][box_index].push(label_index);
255 this.subData[page_index].submenu[box_index].submenu[label_index].selected = true;
256 }
257 this.$forceUpdate();
258 },
259 //选中单选类label-UI状态
260 selectRadioLabel(page_index, box_index, label_index) {
261
262 let activeIndex = this.activeMenuArr[page_index][box_index][0];
263 if(activeIndex == label_index){
264 this.subData[page_index].submenu[box_index].submenu[activeIndex].selected = false;
265 this.activeMenuArr[page_index][box_index][0] = null;
266 }else{
267 if(activeIndex!=null && activeIndex<this.subData[page_index].submenu[box_index].submenu.length){
268 this.subData[page_index].submenu[box_index].submenu[activeIndex].selected = false;
269 }
270
271 this.subData[page_index].submenu[box_index].submenu[label_index].selected = true;
272 this.activeMenuArr[page_index][box_index][0] = label_index;
273 }
274 this.$forceUpdate();
275 },
276 //菜单开关
277 togglePage(index) {
278 if (index == this.showPage) {
279 this.hidePageLayer(true);
280 this.hideMask();
281 this.showPage = -1;
282 } else {
283 if (this.showPage > -1) {
284 this.hidePageLayer(false);
285 }
286 this.showPageLayer(index);
287 this.showMask();
288 }
289 },
290 //hide遮罩层
291 hideMask() {
292 this.isShowMask = false;
293 setTimeout(() => {
294 this.maskVisibility = false;
295 }, 200);
296 },
297 //show遮罩层
298 showMask() {
299 this.maskVisibility = true;
300 this.$nextTick(() => {
301 setTimeout(() => {
302 this.isShowMask = true;
303 }, 0);
304 })
305 },
306 //hide菜单页
307 hidePageLayer(isAnimation) {
308 this.triangleDeg[this.showPage] = 0;
309 let tmpIndex = this.showPage;
310 if (isAnimation) {
311 setTimeout(() => {
312 this.pageState.splice(tmpIndex, 1, false);
313 }, 200);
314 this.confirm();
315 } else {
316 this.pageState.splice(tmpIndex, 1, false)
317 }
318 this.firstScrollInto = null;
319 this.secondScrollInto = null;
320 },
321 confirm() {
322 let index = JSON.parse(JSON.stringify(this.shadowActiveMenuArr));
323 let value = JSON.parse(JSON.stringify(this.shadowActiveMenuArr));
324
325 //对结果做一下处理
326 index.forEach((item, i) => {
327 if (typeof(item[0]) == 'object') {
328 //针对筛选结果过一个排序
329 item.forEach((s, j) => {
330 if(s!=null){
331 s.sort((val1, val2) => {
332 return val1 - val2;
333 });
334 item[j] = s;
335 s.forEach((v, k) => {
336 value[i][j][k] = (v==null||v>=this.subData[i].submenu[j].submenu.length)?null:this.subData[i].submenu[j].submenu[v].value;
337 if(this.subData[i].type == 'radio' && value[i][j][k] == null){
338 value[i][j] = [];
339 index[i][j] = [];
340 }
341 });
342 }
343 });
344 }else{
345 let submenu = this.subData[i].submenu[item[0]];
346 value[i][0] = submenu.value;
347 if(value[i].length>=2 && item[1]!=null){
348 if(submenu.submenu.length>0){
349 submenu = submenu.submenu[item[1]];
350 value[i][1] = submenu.hasOwnProperty('value')?submenu.value:null;
351 }else{
352 value[i][1] = null
353 }
354 if(value[i].length>=3 && item[2]!=null){
355 if(submenu.submenu.length>0){
356 submenu = submenu.submenu[item[2]];
357 value[i][2] = submenu.hasOwnProperty('value')?submenu.value:null;
358 }else{
359 value[i][2] = null;
360 }
361 }
362 }
363 }
364 index[i] = item;
365
366 });
367 // 输出
368 this.$emit('confirm', {
369 index: index,
370 value: value
371 });
372 },
373 //show菜单页
374 showPageLayer(index) {
375 this.processPage(index);
376 this.pageState.splice(index, 1, true);
377 this.$nextTick(() => {
378 setTimeout(() => {
379 this.showPage = index;
380 }, 0);
381 })
382 this.triangleDeg[index] = 180;
383 },
384 reloadActiveMenuArr(){
385 for (let i = 0; i < this.filterData.length; i++) {
386 let tmpitem = this.filterData[i];
387 let tmpArr = this.processActive(tmpitem);
388 tmpitem = this.processSubMenu(tmpitem);
389 if(this.activeMenuArr[i].length!=tmpArr.length){
390 this.filterData[i] = tmpitem;
391 this.activeMenuArr.splice(i, 1, JSON.parse(JSON.stringify(tmpArr)));
392 this.shadowActiveMenuArr.splice(i, 1, JSON.parse(JSON.stringify(tmpArr)));
393 }
394 }
395 this.subData = this.filterData;
396 this.$forceUpdate();
397 },
398 processPage(index) {
399 //check UI控制数组,结果数组,防止传入数据层级和UI控制数组不同步
400 this.reloadActiveMenuArr();
401 //重置UI控制数组
402 this.activeMenuArr.splice(index, 1, JSON.parse(JSON.stringify(this.shadowActiveMenuArr[index])));
403 if (this.menu[index].type == 'filter') {
404 //重载筛选页选中状态
405 let level = this.shadowActiveMenuArr[index].length;
406 for (let i = 0; i < level; i++) {
407 let box = this.subData[index].submenu[i].submenu;
408 for (let j = 0; j < box.length; j++) {
409 if (this.shadowActiveMenuArr[index][i].indexOf(j) > -1) {
410 this.subData[index].submenu[i].submenu[j].selected = true;
411 } else {
412 this.subData[index].submenu[i].submenu[j].selected = false;
413 }
414 }
415 }
416 } else if (this.menu[index].type == 'hierarchy') {
417 this.$nextTick(() => {
418 setTimeout(() => {
419 //滚动到选中项
420 this.firstScrollInto = parseInt(this.activeMenuArr[index][0]);
421 this.secondScrollInto = parseInt(this.activeMenuArr[index][1]);
422 }, 0);
423 })
424 } else if (this.menu[index].type == 'radio') {
425 //重载筛选页选中状态
426 let level = this.shadowActiveMenuArr[index].length;
427 for (let i = 0; i < level; i++) {
428 let box = this.subData[index].submenu[i].submenu;
429 for (let j = 0; j < box.length; j++) {
430 if (this.shadowActiveMenuArr[index][i].indexOf(j) > -1) {
431 this.subData[index].submenu[i].submenu[j].selected = true;
432 } else {
433 this.subData[index].submenu[i].submenu[j].selected = false;
434 }
435 }
436 }
437 }
438 },
439 processActive(tmpitem) {
440 let tmpArr = []
441 if (tmpitem.type == 'hierarchy'&&tmpitem.hasOwnProperty('submenu')&&tmpitem.submenu.length>0) {
442 let level = this.getMaxFloor(tmpitem.submenu);
443 while (level > 0) {
444 tmpArr.push(0);
445 level--;
446 }
447 } else if (tmpitem.type == 'filter') {
448 let level = tmpitem.submenu.length;
449 while (level > 0) {
450 tmpArr.push([]);
451 level--;
452 }
453 } else if (tmpitem.type == 'radio') {
454 let level = tmpitem.submenu.length;
455 while (level > 0) {
456 tmpArr.push([]);
457 level--;
458 }
459 }
460 return tmpArr;
461 },
462 processSubMenu(menu) {
463 if (menu.hasOwnProperty('submenu') && menu.submenu.length > 0) {
464 for (let i = 0; i < menu.submenu.length; i++) {
465 menu.submenu[i] = this.processSubMenu(menu.submenu[i]);
466 }
467 } else {
468 menu.submenu = [];
469 }
470 return menu;
471 },
472 //计算菜单层级
473 getMaxFloor(treeData) {
474 let floor = 0
475 let max = 0
476 function each(data, floor) {
477 data.forEach(e => {
478 max = floor > max ? floor : max;
479 if (e.hasOwnProperty('submenu') && e.submenu.length > 0) {
480 each(e.submenu, floor + 1)
481 }
482 })
483 }
484 each(treeData, 1)
485 return max;
486 },
487 discard() {
488
489 }
490 }
491 }
492 </script>
493 <style lang="scss">
494 .HMfilterDropdown {
495 flex-shrink: 0;
496 width: 100%;
497 height: 44px;
498 position: fixed;
499 z-index: 997;
500 flex-wrap: nowrap;
501 display: flex;
502 flex-direction: row;
503 top: var(--window-top);
504 left:0;
505 view {
506 display: flex;
507 flex-wrap: nowrap;
508 }
509 }
510 .region {
511 flex: 1;
512 height: 44px;
513 }
514 .nav {
515 width: 100%;
516 height: 44px;
517 border-bottom: solid 1rpx #eee;
518 z-index: 12;
519 background-color: #ffffff;
520 flex-direction: row;
521 .first-menu {
522 width: 100%;
523 font-size: 13px;
524 color: #757575;
525 flex-direction: row;
526 align-items: center;
527 justify-content: center;
528 transition: color .2s linear;
529
530 &.on {
531 color: #ec652b;
532
533 .iconfont {
534 color: #ec652b;
535 }
536 }
537 .name {
538 height: 20px;
539 text-align: center;
540 text-overflow: clip;
541 overflow: hidden;
542 }
543 .iconfont {
544 width: 13px;
545 height: 13px;
546 align-items: center;
547 justify-content: center;
548 transition: transform .2s linear, color .2s linear;
549 }
550 }
551 }
552 .sub-menu-class {
553 width: 100%;
554 position: absolute;
555 left: 0;
556 transform: translate3d(0, - 100%, 0);
557 max-height: 345px;
558 background-color: #ffffff;
559 z-index: 11;
560 box-shadow: 0 5px 5px rgba(0, 0, 0, .1);
561 overflow: hidden;
562 flex-direction: row;
563 transition: transform .15s linear;
564 &.hide {
565 display: none;
566 }
567
568 &.show {
569 transform: translate3d(0, calc(44px + 1rpx), 0);
570 }
571 }
572 .sub-menu-list {
573 width: 100%;
574 height: 345px;
575 flex-direction: column;
576 .sub-menu {
577 min-height: 44px;
578 font-size: 13px;
579 flex-direction: column;
580 padding-right: 15px;
581 >.menu-name {
582 height: 44px;
583 flex-direction: row;
584 align-items: center;
585 justify-content: space-between;
586 >.iconfont {
587 display: none;
588 font-size: 18px;
589 color: #ec652b;
590 }
591 }
592 }
593 &.first {
594 flex-shrink: 0;
595 width: 236rpx;
596 background-color: #f0f0f0;
597 .sub-menu {
598 padding-left: 15px;
599
600 &.on {
601 background-color: #fff;
602 }
603 }
604 }
605 &.alone {
606 max-height: 345px;
607 min-height: 170px;
608 height: auto;
609 .sub-menu {
610 min-height: calc(44px - 1rpx);
611 margin-left: 15px;
612 border-bottom: solid 1rpx #e5e5e5;
613
614 &.on {
615 color: #ec652b;
616
617 >.menu-name {
618 >.iconfont {
619 display: block;
620 }
621 }
622 }
623 }
624 }
625 &.not-first {
626 .sub-menu {
627 min-height: calc(44px - 1rpx);
628 margin-left: 15px;
629 border-bottom: solid 1rpx #e5e5e5;
630 >.menu-name {
631 height: calc(44px - 1rpx);
632 >.iconfont {
633 display: none;
634 font-size: 18px;
635 color: #ec652b;
636 }
637 }
638 &.on {
639 color: #ec652b;
640 >.menu-name {
641 >.iconfont {
642 display: block;
643 }
644 }
645 }
646 .more-sub-menu {
647 flex-direction: row;
648 flex-wrap: wrap;
649 padding-bottom: 9px;
650 >text {
651 height: 30px;
652 border-radius: 3px;
653 background-color: #f5f5f5;
654 color: #9b9b9b;
655 margin-bottom: 6px;
656 margin-right: 6px;
657 text-align: center;
658 line-height: 30px;
659 border: solid #f5f5f5 1rpx;
660 flex: 0 0 calc(33.33% - 6px);
661 overflow: hidden;
662 font-size: 12px;
663 &:nth-child(3n) {
664 margin-right: 0;
665 }
666 &.on {
667 border-color: #f6c8ac;
668 color: #ec652b;
669 }
670 .iconfont {
671 color: #9b9b9b;
672 }
673 }
674 }
675 }
676 }
677 }
678 .filter {
679 width: 100%;
680 height: 345px;
681 display: flex;
682 flex-direction: column;
683 justify-content: space-between;
684 align-items: center;
685 .menu-box {
686 width: 698rpx;
687 height: calc(345px - 75px);
688 flex-shrink: 1;
689 .box {
690 width: 100%;
691 margin-top: 16px;
692 flex-direction: column;
693 .title {
694 width: 100%;
695 font-size: 13px;
696 color: #888;
697 }
698 .labels {
699 flex-direction: row;
700 flex-wrap: wrap;
701 .on {
702 border-color: #ec652b;
703 background-color: #ec652b;
704 color: #fff;
705 }
706 >view {
707 width: 148rpx;
708 height: 30px;
709 border: solid 1rpx #adadad;
710 border-radius: 2px;
711 margin-right: 15px;
712 margin-top: 8px;
713 font-size: 12px;
714 flex-direction: row;
715 justify-content: center;
716 align-items: center;
717 &:nth-child(4n) {
718 margin-right: 0;
719 }
720 }
721 }
722 }
723 }
724 .btn-box {
725 flex-shrink: 0;
726 width: 698rpx;
727 height: 75px;
728 flex-direction: row !important;
729 align-items: center;
730 justify-content: space-between;
731 >view {
732 width: 320rpx;
733 height: 40px;
734 border-radius: 40px;
735 border: solid 1rpx #ec652b;
736 align-items: center;
737 justify-content: center;
738 }
739 .reset {
740 color: #ec652b;
741 }
742 .submit {
743 color: #fff;
744 background-color: #ec652b;
745 }
746 }
747 }
748 .mask {
749 z-index: 10;
750 position: fixed;
751 top: 0;
752 left: 0;
753 right: 0;
754 bottom: 0;
755 background-color: rgba(0, 0, 0, 0);
756 transition: background-color .15s linear;
757 &.show {
758 background-color: rgba(0, 0, 0, 0.5);
759 }
760 &.hide {
761 display: none;
762 }
763 }
764 /* 字体图标 */
765 @font-face {
766 font-family: "HM-FD-font";
767 src: url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAALAAAsAAAAABpQAAAJzAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDBgp4gQIBNgIkAwwLCAAEIAWEbQc5G8sFERWMIbIfCbbzqA4hp7InSBibVsYGb4J42o82b3e/nJlHMw/NHbGOlwKJRCRpwzPtpAECCOZubdqxjYpQLMlVg+70/08edrgQOtx2ukpVyApZn+dyehPoQObHo3O85rYx9vOjXoBxQIHugW2yIkqIW2QXcScu4jwE8CSWbKSmrqUHFwOaJoCsLM5P4haSGIxRcRHshrUGucLCVcfqI3AZfV/+USguKCwNmtsxVztDxU/n55C+3W0Z4QQpEOTNFqCBbMCAjDUWB9CIwWk87aa70cYgqLkyd3dEmm+18R8eKATEBrV7A5CulBT8dKiWOYZk412XNcDdKSEKSGODnyKIDl+dmVt9/Dx4pu/xyeutkMlHISGPTsPCnoTNP9nOT6wTtDdlO6dPr47efvj942lkYuQzrhMKEjq9N6y98P3340gmlJ/RStUD6F31CAEEPtUW94/7rf+7XgaAz57X0ZHXAGsFFwVgw38yALuMb0IBbVyNamFYEw4oKMDTj3AHRQP5Pt4dci9VwSVkRNQh5r7CLskZadhsWHhRDBsXczk8ZYk3ewnCxmQeQKa3BOHvA8XXO2j+vqRhf7CE+sPmn4anvoL29JLa4qqaUQkmoK+QG2osCckq7txi2leK86aIPyJ3eQZ8xytXYmyQ51jQndJAxIJlqiGSLsOqImiZCjTiZCJt6Lq26U2OoXqwUo0hRaAE0K5AziANy/uLVeXzWyjVqyjcoeupjxDr5MMDn8MDkLG9Aenu5ZrOSSoghAUsRmogkkahSoWAtnlUARnCkY3It0Iu7mWhdmd9Z/19BwBP6GidEi0G56opckXTGZVSPxgAAAA=');
768 }
769 .iconfont {
770 font-family: "HM-FD-font" !important;
771 font-size: 13px;
772 font-style: normal;
773 color: #757575;
774 &.triangle {
775 &:before {
776 content: "\e65a";
777 }
778 }
779 &.selected {
780 &:before {
781 content: "\e607";
782 }
783 }
784 }
785 </style>
786 1 <template>
components/card.vue
1 <template> File was deleted
2 <view>
3
4 </view>
5 </template>
6
7 <script>
8 export default {
9 data() {
10 return {
11
12 };
13 }
14 }
15 </script>
16
17 <style lang="scss">
18
19 </style>
20 1 <template>
components/uni-drawer/uni-drawer.vue
1 <template> File was deleted
2 <view v-if="visibleSync" :class="{ 'uni-drawer--visible': showDrawer }" class="uni-drawer" @touchmove.stop.prevent="clear">
3 <view class="uni-drawer__mask" :class="{ 'uni-drawer__mask--visible': showDrawer && mask }" @tap="close('mask')" />
4 <view class="uni-drawer__content" :class="{'uni-drawer--right': rightMode,'uni-drawer--left': !rightMode, 'uni-drawer__content--visible': showDrawer}" :style="{width:drawerWidth+'px'}">
5 <slot />
6 </view>
7 </view>
8 </template>
9
10 <script>
11 /**
12 * Drawer 抽屉
13 * @description 抽屉侧滑菜单
14 * @tutorial https://ext.dcloud.net.cn/plugin?id=26
15 * @property {Boolean} mask = [true | false] 是否显示遮罩
16 * @property {Boolean} maskClick = [true | false] 点击遮罩是否关闭
17 * @property {Boolean} mode = [left | right] Drawer 滑出位置
18 * @value left 从左侧滑出
19 * @value right 从右侧侧滑出
20 * @property {Number} width 抽屉的宽度 ,仅 vue 页面生效
21 * @event {Function} close 组件关闭时触发事件
22 */
23 export default {
24 name: 'UniDrawer',
25 props: {
26 /**
27 * 显示模式(左、右),只在初始化生效
28 */
29 mode: {
30 type: String,
31 default: ''
32 },
33 /**
34 * 蒙层显示状态
35 */
36 mask: {
37 type: Boolean,
38 default: true
39 },
40 /**
41 * 遮罩是否可点击关闭
42 */
43 maskClick:{
44 type: Boolean,
45 default: true
46 },
47 /**
48 * 抽屉宽度
49 */
50 width: {
51 type: Number,
52 default: 220
53 }
54 },
55 data() {
56 return {
57 visibleSync: false,
58 showDrawer: false,
59 rightMode: false,
60 watchTimer: null,
61 drawerWidth: 220
62 }
63 },
64 created() {
65 // #ifndef APP-NVUE
66 this.drawerWidth = this.width
67 // #endif
68 this.rightMode = this.mode === 'right'
69 },
70 methods: {
71 clear(){},
72 close(type) {
73 // fixed by mehaotian 抽屉尚未完全关闭或遮罩禁止点击时不触发以下逻辑
74 if((type === 'mask' && !this.maskClick) || !this.visibleSync) return
75 this._change('showDrawer', 'visibleSync', false)
76 },
77 open() {
78 // fixed by mehaotian 处理重复点击打开的事件
79 if(this.visibleSync) return
80 this._change('visibleSync', 'showDrawer', true)
81 },
82 _change(param1, param2, status) {
83 this[param1] = status
84 if (this.watchTimer) {
85 clearTimeout(this.watchTimer)
86 }
87 this.watchTimer = setTimeout(() => {
88 this[param2] = status
89 this.$emit('change',status)
90 }, status ? 50 : 300)
91 }
92 }
93 }
94 </script>
95
96 <style lang="scss" scoped>
97 // 抽屉宽度
98 $drawer-width: 220px;
99
100 .uni-drawer {
101 /* #ifndef APP-NVUE */
102 display: block;
103 /* #endif */
104 position: fixed;
105 top: 0;
106 left: 0;
107 right: 0;
108 bottom: 0;
109 overflow: hidden;
110 z-index: 999;
111 }
112
113 .uni-drawer__content {
114 /* #ifndef APP-NVUE */
115 display: block;
116 /* #endif */
117 position: absolute;
118 top: 0;
119 width: $drawer-width;
120 bottom: 0;
121 background-color: $uni-bg-color;
122 transition: transform 0.3s ease;
123 }
124
125 .uni-drawer--left {
126 left: 0;
127 /* #ifdef APP-NVUE */
128 transform: translateX(-$drawer-width);
129 /* #endif */
130 /* #ifndef APP-NVUE */
131 transform: translateX(-100%);
132 /* #endif */
133 }
134
135 .uni-drawer--right {
136 right: 0;
137 /* #ifdef APP-NVUE */
138 transform: translateX($drawer-width);
139 /* #endif */
140 /* #ifndef APP-NVUE */
141 transform: translateX(100%);
142 /* #endif */
143 }
144
145 .uni-drawer__content--visible {
146 transform: translateX(0px);
147 }
148
149
150 .uni-drawer__mask {
151 /* #ifndef APP-NVUE */
152 display: block;
153 /* #endif */
154 opacity: 0;
155 position: absolute;
156 top: 0;
157 left: 0;
158 bottom: 0;
159 right: 0;
160 background-color: $uni-bg-color-mask;
161 transition: opacity 0.3s;
162 }
163
164 .uni-drawer__mask--visible {
165 /* #ifndef APP-NVUE */
166 display: block;
167 /* #endif */
168 opacity: 1;
169 }
170 </style>
171 1 <template>
1 import Vue from 'vue' File was deleted
2 import App from './App'
3
4 Vue.config.productionTip = false
5
6 App.mpType = 'app'
7
8 const app = new Vue({
9 ...App
10 })
11 app.$mount()
12 1 import Vue from 'vue'
manifest.json
1 { File was deleted
2 "name" : "gulu-vue",
3 "appid" : "",
4 "description" : "",
5 "versionName" : "1.0.0",
6 "versionCode" : "100",
7 "transformPx" : false,
8 /* 5+App特有相关 */
9 "app-plus" : {
10 "usingComponents" : true,
11 "nvueCompiler" : "uni-app",
12 "compilerVersion" : 3,
13 "splashscreen" : {
14 "alwaysShowBeforeRender" : true,
15 "waiting" : true,
16 "autoclose" : true,
17 "delay" : 0
18 },
19 /* 模块配置 */
20 "modules" : {},
21 /* 应用发布信息 */
22 "distribute" : {
23 /* android打包配置 */
24 "android" : {
25 "permissions" : [
26 "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
27 "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
28 "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
29 "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
30 "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
31 "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
32 "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
33 "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
34 "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
35 "<uses-permission android:name=\"android.permission.CAMERA\"/>",
36 "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
37 "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
38 "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
39 "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
40 "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
41 "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
42 "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
43 "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
44 "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
45 "<uses-feature android:name=\"android.hardware.camera\"/>",
46 "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
47 "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
48 ]
49 },
50 /* ios打包配置 */
51 "ios" : {},
52 /* SDK配置 */
53 "sdkConfigs" : {}
54 }
55 },
56 /* 快应用特有相关 */
57 "quickapp" : {},
58 /* 小程序特有相关 */
59 "mp-weixin" : {
60 "appid" : "",
61 "setting" : {
62 "urlCheck" : false
63 },
64 "usingComponents" : true
65 },
66 "mp-alipay" : {
67 "usingComponents" : true
68 },
69 "mp-baidu" : {
70 "usingComponents" : true
71 },
72 "mp-toutiao" : {
73 "usingComponents" : true
74 }
75 }
76 1 {
File was created 1 {
2 "name": "gulu-vue",
3 "version": "0.1.0",
4 "private": true,
5 "scripts": {
6 "serve": "npm run dev:h5",
7 "build": "npm run build:h5",
8 "build:app-plus": "cross-env NODE_ENV=production UNI_PLATFORM=app-plus vue-cli-service uni-build",
9 "build:custom": "cross-env NODE_ENV=production uniapp-cli custom",
10 "build:h5": "cross-env NODE_ENV=production UNI_PLATFORM=h5 vue-cli-service uni-build",
11 "build:mp-alipay": "cross-env NODE_ENV=production UNI_PLATFORM=mp-alipay vue-cli-service uni-build",
12 "build:mp-baidu": "cross-env NODE_ENV=production UNI_PLATFORM=mp-baidu vue-cli-service uni-build",
13 "build:mp-qq": "cross-env NODE_ENV=production UNI_PLATFORM=mp-qq vue-cli-service uni-build",
14 "build:mp-toutiao": "cross-env NODE_ENV=production UNI_PLATFORM=mp-toutiao vue-cli-service uni-build",
15 "build:mp-weixin": "cross-env NODE_ENV=production UNI_PLATFORM=mp-weixin vue-cli-service uni-build",
16 "build:quickapp-light": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-light vue-cli-service uni-build",
17 "build:quickapp-vue": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-vue vue-cli-service uni-build",
18 "dev:app-plus": "cross-env NODE_ENV=development UNI_PLATFORM=app-plus vue-cli-service uni-build --watch",
19 "dev:custom": "cross-env NODE_ENV=development uniapp-cli custom",
20 "dev:h5": "cross-env NODE_ENV=development UNI_PLATFORM=h5 vue-cli-service uni-serve",
21 "dev:mp-alipay": "cross-env NODE_ENV=development UNI_PLATFORM=mp-alipay vue-cli-service uni-build --watch",
22 "dev:mp-baidu": "cross-env NODE_ENV=development UNI_PLATFORM=mp-baidu vue-cli-service uni-build --watch",
23 "dev:mp-qq": "cross-env NODE_ENV=development UNI_PLATFORM=mp-qq vue-cli-service uni-build --watch",
24 "dev:mp-toutiao": "cross-env NODE_ENV=development UNI_PLATFORM=mp-toutiao vue-cli-service uni-build --watch",
25 "dev:mp-weixin": "cross-env NODE_ENV=development UNI_PLATFORM=mp-weixin vue-cli-service uni-build --watch",
26 "dev:quickapp-light": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-light vue-cli-service uni-build --watch",
27 "dev:quickapp-vue": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-vue vue-cli-service uni-build --watch",
28 "info": "node node_modules/@dcloudio/vue-cli-plugin-uni/commands/info.js",
29 "serve:quickapp-vue": "node node_modules/@dcloudio/uni-quickapp-vue/bin/serve.js"
30 },
31 "dependencies": {
32 "@dcloudio/uni-app-plus": "^2.0.0-26920200424005",
33 "@dcloudio/uni-h5": "^2.0.0-26920200424005",
34 "@dcloudio/uni-helper-json": "^1.0.5",
35 "@dcloudio/uni-mp-alipay": "^2.0.0-26920200424005",
36 "@dcloudio/uni-mp-baidu": "^2.0.0-26920200424005",
37 "@dcloudio/uni-mp-qq": "^2.0.0-26920200424005",
38 "@dcloudio/uni-mp-toutiao": "^2.0.0-26920200424005",
39 "@dcloudio/uni-mp-weixin": "^2.0.0-26920200424005",
40 "@dcloudio/uni-quickapp-light": "^2.0.0-26920200424005",
41 "@dcloudio/uni-quickapp-vue": "^2.0.0-26920200424005",
42 "@dcloudio/uni-stat": "^2.0.0-26920200424005",
43 "core-js": "^3.6.5",
44 "flyio": "^0.6.2",
45 "node-sass": "^4.14.0",
46 "regenerator-runtime": "^0.12.1",
47 "sass-loader": "^8.0.2",
48 "vue": "^2.6.11",
49 "vuex": "^3.0.1"
50 },
51 "devDependencies": {
52 "@dcloudio/uni-cli-shared": "^2.0.0-26920200424005",
53 "@dcloudio/uni-migration": "^2.0.0-26920200424005",
54 "@dcloudio/uni-template-compiler": "^2.0.0-26920200424005",
55 "@dcloudio/vue-cli-plugin-hbuilderx": "^2.0.0-26920200424005",
56 "@dcloudio/vue-cli-plugin-uni": "^2.0.0-26920200424005",
57 "@dcloudio/vue-cli-plugin-uni-optimize": "^2.0.0-26920200424005",
58 "@dcloudio/webpack-uni-mp-loader": "^2.0.0-26920200424005",
59 "@dcloudio/webpack-uni-pages-loader": "^2.0.0-26920200424005",
60 "@types/html5plus": "*",
61 "@types/uni-app": "*",
62 "@vue/cli-plugin-babel": "~4.3.0",
63 "@vue/cli-service": "~4.3.0",
64 "babel-plugin-import": "^1.11.0",
65 "cross-env": "^7.0.2",
66 "mini-types": "*",
67 "miniprogram-api-typings": "^2.8.0-2",
68 "postcss-comment": "^2.0.0",
69 "vue-template-compiler": "^2.6.11"
70 },
71 "browserslist": [
72 "Android >= 4",
73 "ios >= 8"
74 ],
75 "uni-app": {
76 "scripts": {}
77 }
78 }
79
pages.json
1 { File was deleted
2 "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
3 {
4 "path": "pages/index/index",
5 "style": {
6 "navigationBarTitleText": "商城一览"
7 }
8 },
9 {
10 "path": "pages/cart/cart",
11 "style": {
12 "navigationBarTitleText": "购物车"
13 }
14 },
15 {
16 "path": "pages/user/user",
17 "style": {
18 "navigationBarTitleText": "我的"
19 }
20 }
21 ],
22 "globalStyle": {
23 "navigationBarTextStyle": "black",
24 "navigationBarTitleText": "uni-app",
25 "navigationBarBackgroundColor": "#F8F8F8",
26 "backgroundColor": "#F8F8F8"
27 },
28 "tabBar": {
29 "color": "#C0C4CC",
30 "selectedColor": "#fa436a",
31 "borderStyle": "black",
32 "backgroundColor": "#ffffff",
33 "list": [{
34 "pagePath": "pages/index/index",
35 "iconPath": "static/tab-home.png",
36 "selectedIconPath": "static/tab-home-current.png",
37 "text": "首页"
38 },
39 {
40 "pagePath": "pages/cart/cart",
41 "iconPath": "static/tab-cart.png",
42 "selectedIconPath": "static/tab-cart-current.png",
43 "text": "购物车"
44 },
45 {
46 "pagePath": "pages/user/user",
47 "iconPath": "static/tab-my.png",
48 "selectedIconPath": "static/tab-my-current.png",
49 "text": "我的"
50 }
51 ]
52 }
53 }
54 1 {
pages/cart/cart.vue
1 <template> File was deleted
2 <view class="content">
3 <image class="logo" src="/static/logo.png"></image>
4 <view class="text-area">
5 <text class="title">{{title}}</text>
6 </view>
7 </view>
8 </template>
9
10 <script>
11 export default {
12 data() {
13 return {
14 title: 'Hello'
15 }
16 },
17 onLoad() {
18
19 },
20 methods: {
21
22 }
23 }
24 </script>
25
26 <style>
27 .content {
28 display: flex;
29 flex-direction: column;
30 align-items: center;
31 justify-content: center;
32 }
33
34 .logo {
35 height: 200rpx;
36 width: 200rpx;
37 margin-top: 200rpx;
38 margin-left: auto;
39 margin-right: auto;
40 margin-bottom: 50rpx;
41 }
42
43 .text-area {
44 display: flex;
45 justify-content: center;
46 }
47
48 .title {
49 font-size: 36rpx;
50 color: #8f8f94;
51 }
52 </style>
53 1 <template>
pages/index/index.vue
1 <template> File was deleted
2 <view class="content">
3 <view class="header">
4 <!-- 搜索-->
5 <view class="searchBar">
6 <icon class="searchIcon" type="search" size="14"></icon>
7 <input class="searchIpt" placeholder="老花镜" confirm-type="search"/>
8 </view>
9
10 <!-- 筛选栏-->
11 <view class="screenBar">
12 <view v-for="item in screenItems" :key="item.current" @click="onClickItem(item.current)" >
13 <view class="screenItem" v-bind:class="{ active: current === item.current }" v-if="item.current === 2" @click="dropDown">
14 {{ item.text }}<icon type="info" size="14"></icon>
15 </view>
16 <view class="screenItem" v-bind:class="{ active: current === item.current }" v-if="item.current === 4" @click="showDrawer('showRight')">
17 {{ item.text }}<icon type="info" size="14"></icon>
18 </view>
19 <view v-if="item.current !== 2&&item.current!==4">
20 <view class="screenItem" v-bind:class="{ active: current === item.current }">{{ item.text }}</view>
21 </view>
22 </view>
23 </view>
24 </view>
25 <uni-drawer ref="showRight" mask="true" maskClick=true mode="right" :width="320" @change="change($event,'showRight')">
26 <view class="close">
27 <view @click="closeDrawer('showRight')"><text class="word-btn-white">关闭</text></view>
28 </view>
29 </uni-drawer>
30
31
32
33 <!-- 筛选菜单-->
34 <view class="content-wrap">
35 <view>
36 <HMfilterDropdown :filterData="filterData" :defaultSelected ="filterDropdownValue" :updateMenuName="true" @confirm="confirm" dataFormat="Object"></HMfilterDropdown>
37 <!-- 占位 -->
38 <view class="place"></view>
39 <!-- 商品列表 -->
40 <view class="goods-list">
41 <view class="product-list">
42 <view class="product" v-for="(goods) in goodsList" :key="goods.goods_id" @tap="toGoods(goods)">
43 <image mode="widthFix" :src="goods.img"></image>
44 <view class="name">{{goods.name}}</view>
45 <view class="info">
46 <view class="price">{{goods.price}}</view>
47 <view class="slogan">{{goods.slogan}}</view>
48 </view>
49 </view>
50 </view>
51 <view class="loading-text">{{loadingText}}</view>
52 </view>
53
54 </view>
55 </view>
56 </view>
57 </template>
58
59 <script>
60 import uniDrawer from "@/components/uni-drawer/uni-drawer.vue";
61 import HMfilterDropdown from "../../components/HM-filterDropdown/HM-filterDropdown.vue";
62 import data from '@/common/data.js';//筛选菜单数据
63 export default {
64 components: {
65 uniDrawer,
66 'HMfilterDropdown':HMfilterDropdown
67 },
68 data() {
69 return {
70 screenItems: [
71 {current:0,text:'全部',hasIcon:false},
72 {current:1,text:'销量',hasIcon:false},
73 {current:2,text:'价格',hasIcon:true},
74 {current:3,text:'折扣',hasIcon:false},
75 {current:4,text:'筛选',hasIcon:true},
76 ],
77 current: 0,
78 showRight: false,
79 indexArr:'',
80 valueArr:'',
81 //商品数据
82 goodsList:[
83 { goods_id: 0, img: '/static/img/goods/p1.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },
84 { goods_id: 1, img: '/static/img/goods/p2.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },
85 { goods_id: 2, img: '/static/img/goods/p3.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },
86 { goods_id: 3, img: '/static/img/goods/p4.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },
87 { goods_id: 4, img: '/static/img/goods/p5.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },
88 { goods_id: 5, img: '/static/img/goods/p6.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },
89 { goods_id: 6, img: '/static/img/goods/p7.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },
90 { goods_id: 7, img: '/static/img/goods/p8.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },
91 { goods_id: 8, img: '/static/img/goods/p9.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },
92 { goods_id: 9, img: '/static/img/goods/p10.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' }
93 ],
94 loadingText:"正在加载...",
95 filterDropdownValue:[],
96 filterData:[]
97 }
98 },
99 filters: {
100   outData(value) {
101     return JSON.stringify(value);
102   }
103 },
104 onLoad: function () {
105 //定时器模拟ajax异步请求数据
106 setTimeout(()=>{
107 //传入defaultSelected的结构不能错,错了就报错运行异常。 不选中的项目传入null
108 this.filterDropdownValue = [
109 [1,1,0], //第0个菜单选中 一级菜单的第1项,二级菜单的第1项,三级菜单的第3项
110 [null,null], //第1个菜单选中 都不选中
111 [1], //第2个菜单选中 一级菜单的第1项
112 [[0],[1,2,7],[1,0]], //筛选菜单选中 第一个筛选的第0项,第二个筛选的第1,2,7项,第三个筛选的第1,0项
113 [[0],[1],[1]], //单选菜单选中 第一个筛选的第0项,第二个筛选的第1项,第三个筛选的第1项
114 ];
115 this.filterData = data;
116 },100);
117 //模拟ajax请求子菜单数据。
118 // setTimeout(()=>{
119 //this.filterData[1].submenu[0].submenu = [{"name": "附近","value": "附近"},{"name": "1km","value": "1km"},{"name": "2km","value": "2km"},{"name": "3km","value": "3km"},{"name": "4km","value": "4km"},{"name": "5km","value": "5km"}];
120 // },5000)
121 },
122 methods: {
123 showDrawer(e) {
124 this.$refs[e].open()
125 },
126 closeDrawer(e) {
127 this.$refs[e].close()
128 },
129 change(e, type) {
130 this[type] = e
131 },
132 onClickItem(e) {
133 if (this.current !== e) {
134 this.current = e;
135 }
136 },
137 dropDown(){
138 console.log('下拉')
139 },
140 //接收菜单结果
141 confirm(e){
142 this.indexArr = e.index;
143 this.valueArr = e.value;
144 return;
145 console.log('修改菜单');
146 this.filterData[4].submenu[1] = {
147 "name": "项目2",
148 "submenu": [
149
150 ]
151 }
152 }
153 },
154 onNavigationBarButtonTap(e) {
155 this.showRight = !this.showRight
156 },
157 //上拉加载,
158 onReachBottom(){
159 console.log('到底加载')
160 let len = this.goodsList.length;
161 if(len>=30){
162 this.loadingText="~~到底了~~";
163 return false;
164 }else{
165 this.loadingText="正在加载...";
166 }
167 let end_goods_id = this.goodsList[len-1].goods_id;
168 for(let i=1;i<=10;i++){
169 let goods_id = end_goods_id+i;
170 let p = { goods_id: goods_id, img: '/static/img/goods/p'+(goods_id%10==0?10:goods_id%10)+'.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' };
171 this.goodsList.push(p);
172 }
173 },
174 }
175 </script>
176
177 <style lang="scss">
178 .content {
179 display: flex;
180 flex-direction: column;
181 align-items: center;
182 justify-content: center;
183 background-color: #F7F6F6;
184 }
185 .header{
186 display: flex;
187 flex-direction: column;
188 align-items: center;
189 justify-content: center;
190 background-color: #F7F6F6;
191 height:178rpx ;
192 width: 100%;
193 z-index: 999;
194 position: fixed;
195 top: 0;
196 }
197 .searchBar {
198 width: 670rpx;
199 display: flex;
200 position: fixed;
201 top: 0;
202 justify-content: center;
203 align-items: center;
204 box-sizing: border-box;
205 padding: 0rpx 16rpx;
206 border: 1px solid #FF6B4A;
207 border-radius: 8rpx;
208 background-color: #ffffff;
209 }
210
211 .searchIpt {
212 height: 68rpx;
213 width: 670rpx;
214 padding: 16rpx;
215 font-size: 28rpx;
216 box-sizing: border-box;
217 }
218 .screenBar{
219 position: fixed;
220 top: 68rpx;
221 width: 670rpx;
222 height: 110rpx;
223 display: flex;
224 flex-direction: row;
225 justify-content: space-between;
226 align-items: center;
227 color: #333333;
228 font-size: 32rpx;
229 }
230 .active{
231 color: #FF6B4A;
232 }
233 .screenItem{
234 display: flex;
235 justify-content: center;
236 align-items: center;
237 }
238 .content-wrap{
239 width: 100%;
240 background-color: #FFFFFF;
241 }
242
243 .HMfilterDropdown{
244 position: fixed;
245 top: 178rpx !important;
246 }
247 .place{
248 background-color: #ffffff;
249 height: 266rpx;
250 }
251 .goods-list{
252 padding-top: 10px;
253 .loading-text{
254 width: 100%;
255 display: flex;
256 justify-content: center;
257 align-items: center;
258 height: 30px;
259 color: #979797;
260 font-size: 12px;
261 }
262 .product-list{
263 width: 92%;
264 padding: 0 4% 3vw 4%;
265 display: flex;
266 justify-content: space-between;
267 flex-wrap: wrap;
268 .product{
269 width: 48%;
270 border-radius: 10px;
271 background-color: #fff;
272 margin: 0 0 7px 0;
273 box-shadow: 0 3px 12px rgba(0,0,0,0.1);
274 image{
275 width: 100%;
276 border-radius: 10px 10px 0 0;
277 }
278 .name{
279 width: 92%;
280 padding: 5px 4%;
281 display: -webkit-box;
282 -webkit-box-orient: vertical;
283 -webkit-line-clamp: 2;
284 text-align: justify;
285 overflow: hidden;
286 font-size: 15px;
287 }
288 .info{
289 display: flex;
290 justify-content: space-between;
291 align-items: flex-end;
292 width: 92%;
293 padding: 5px 4% 5px 4%;
294 .price{
295 color: #e65339;
296 font-size: 15px;
297 font-weight: 600;
298 }
299 .slogan{
300 color: #807c87;
301 font-size: 12px;
302 }
303 }
304 }
305 }
306 }
307
308 </style>
309 1 <template>
pages/user/user.vue
1 <template> File was deleted
2 <view class="content">
3 <image class="logo" src="/static/logo.png"></image>
4 <view class="text-area">
5 <text class="title">{{title}}</text>
6 </view>
7 </view>
8 </template>
9
10 <script>
11 export default {
12 data() {
13 return {
14 title: 'Hello'
15 }
16 },
17 onLoad() {
18
19 },
20 methods: {
21
22 }
23 }
24 </script>
25
26 <style>
27 .content {
28 display: flex;
29 flex-direction: column;
30 align-items: center;
31 justify-content: center;
32 }
33
34 .logo {
35 height: 200rpx;
36 width: 200rpx;
37 margin-top: 200rpx;
38 margin-left: auto;
39 margin-right: auto;
40 margin-bottom: 50rpx;
41 }
42
43 .text-area {
44 display: flex;
45 justify-content: center;
46 }
47
48 .title {
49 font-size: 36rpx;
50 color: #8f8f94;
51 }
52 </style>
53 1 <template>
File was created 1 <script>
2 export default {
3 onLaunch: function() {
4 console.log('App Launch')
5 },
6 onShow: function() {
7 console.log('App Show')
8 },
9 onHide: function() {
10 console.log('App Hide')
11 }
12 }
13 </script>
14
15 <style>
16 /*每个页面公共css */
17 </style>
18
File was created 1 MIT License
2
3 Copyright (c) 2018 DCloud
4
5 Permission is hereby granted, free of charge, to any person obtaining a copy
6 of this software and associated documentation files (the "Software"), to deal
7 in the Software without restriction, including without limitation the rights
8 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 copies of the Software, and to permit persons to whom the Software is
10 furnished to do so, subject to the following conditions:
11
12 The above copyright notice and this permission notice shall be included in all
13 copies or substantial portions of the Software.
14
15 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 SOFTWARE.
22
File was created 1 thie is a new gulu project base on vue
2
File was created 1 # hello-uniapp
2
3 `uni-app`框架示例,一套代码,同时发行到iOS、Android、H5、小程序等多个平台,请使用手机扫码快速体验`uni-app`的强大功能。
4
5 <p align="center">
6 <a href="https://m3w.cn/uniapp" target="blank">
7 <img src="https://img-cdn-qiniu.dcloud.net.cn/uni-app-qr-all.jpg"/>
8 </a>
9 </p>
10
11 `uni-app`官网文档详见[https://uniapp.dcloud.io](https://uniapp.dcloud.io)
12
13 更多uni-app的模板、示例详见[插件市场](https://ext.dcloud.net.cn/)
14
15
src/common/data.js
File was created 1 // 数据格式,数据中只需要包含以下字段和数据格式,可以添加字段,比如id等等,不影响组件显示,
2 // 组件的返回结果是有菜单数组下标形式返回,
3 // 如果传入数据中有value,也会返回value,开发者可根据返回的下标获取所选中的菜单
4 /*
5 [
6 {
7 "name":"", //字符串类型 选填项 菜单名称,如不填,则取第一个子菜单的name值,filter和radio类型则将设置为"筛选"
8 "type":"" //字符串类型 必填项 可取值 hierarchy/filter/radio hierarchy单/多层级菜单(最多三级); filter筛选多选菜单; radio筛选单选菜单
9 "submenu":[ //对象数组类型 必填项 子菜单数据
10 {
11 "name":"", //字符串类型 必填项 菜单名称
12 "value":"", //字符串类型 选填项 自定义内容,比如id等等,如果填写了,confirm返回的结果中将返回对应选中的value,若菜单无value字段则返回null,filter类型此字段无效果
13 "submenu":[ //对象数组类型 必填项 子菜单数据
14 {
15 "name":"", //字符串类型 必填项 菜单名称
16 "value":"", //字符串类型 选填项 自定义内容,比如id等等,如果填写了,confirm返回的结果中将返回对应选中的value,若菜单无value字段则返回null
17 "submenu":[ //对象数组类型 必填项 子菜单数据 filter类型无效
18 {
19 "name":"", //字符串类型 必填项 菜单名称 hierarchy类型层级最多到此
20 "value":"", //字符串类型 选填项 自定义内容,比如id等等,如果填写了,confirm返回的结果中将返回对应选中的value,若菜单无value字段则返回null
21 }
22 ]
23 }
24 ]
25 }
26 ]
27 }
28 ]
29 */
30
31 //0.0.4版本起 返回结果将有两部分组成:
32 /*
33 {
34 index:[], //旧版本的下标数组形式
35 value:[] //菜单中的valve,结构和下标结果数组一样,只是把下标替换成了value而已
36 }
37 */
38 // 以下演示数据中,我故意把value设置成跟name一样,只是为了方便演示,使示例更加易懂,实际使用时候value应该是一个标识,给后台识别所用的.
39 // 数据较长,请仔细查看。
40 export default [
41 {
42 "name":'综合',
43 "type": 'filter',
44 "submenu": [{
45 "submenu": [
46
47 ]
48 },
49 ],
50 },
51 {
52 name:'品牌',
53 "type": 'filter',
54 "submenu": [{
55 "name": '品牌',
56 "value": "品牌",
57 "submenu": [{
58 "name": "帕森",
59 "value": "帕森",
60 },
61 {
62 "name": "海伦凯勒",
63 "value": "海伦凯勒",
64 },
65 ]
66 },
67 ]
68 },
69 {
70 "name":'功能',
71 "type": 'filter',
72 "submenu": [{
73 "name": "智能排序",
74 "value": "智能排序"
75 },
76 {
77 "name": "离我最近",
78 "value": "离我最近"
79 },
80 {
81 "name": "人均从高到低",
82 "value": "人均从高到低"
83 },
84 {
85 "name": "人均从低到高",
86 "value": "人均从低到高"
87 }
88 ]
89 },
90 {
91 "name":'材质',
92 "type": 'filter',
93 "submenu": [{
94 "submenu": [{
95 "name": "满减活动",
96 "value": "满减活动"
97 },
98 {
99 "name": "打折优惠",
100 "value": "打折优惠"
101 },
102 {
103 "name": "会员专享",
104 "value": "会员专享"
105 }
106 ]
107 }
108 ]
109 },
110 {
111 "name":'折扣',
112 "type": 'filter',
113 "submenu": [{
114 "name": "折扣(多选)",
115 "submenu": [{
116 "name": "满减活动",
117 "value": "满减活动"
118 },
119 {
120 "name": "打折优惠",
121 "value": "打折优惠"
122 },
123 {
124 "name": "会员专享",
125 "value": "会员专享"
126 }
127 ]
128 }
129 ]
130 }
131 ]
132
133
src/components/HM-filterDropdown/HM-filterDropdown.vue
File was created 1 <template>
2 <view class="HMfilterDropdown" @touchmove.stop.prevent="discard" @tap.stop="discard">
3 <view class="nav">
4 <block v-for="(item,index) in menu" :key="index">
5 <view class="first-menu" :class="{'on':showPage==index}" @tap="togglePage(index)">
6 <text class="name">{{item.name}}</text>
7 <text class="iconfont triangle" :style="'transform:rotate('+triangleDeg[index]+'deg);'"></text>
8 </view>
9 </block>
10 </view>
11 <view class="mask" :class="{'show':isShowMask,'hide':maskVisibility!=true}" @tap="togglePage(showPage)"></view>
12 <block v-for="(page,page_index) in subData" :key="page_index">
13 <view class="sub-menu-class" :class="{'show':showPage==page_index,'hide':pageState[page_index]!=true}">
14 <block v-if="page.type=='hierarchy'&& page.submenu.length>0">
15 <scroll-view class="sub-menu-list" :class="[activeMenuArr[page_index].length>1?'first':'alone']"
16 :scroll-y="true" :scroll-into-view="'first_id'+firstScrollInto">
17 <block v-for="(sub,index) in page.submenu" :key="index">
18 <view class="sub-menu" :id="'first_id'+index" :class="{'on':activeMenuArr[page_index][0]==index}" @tap="selectHierarchyMenu(page_index,index,null,null)">
19 <view class="menu-name">
20 <text>{{sub.name}}</text>
21 <text class="iconfont selected"></text>
22 </view>
23 </view>
24 </block>
25 </scroll-view>
26 <block v-for="(sub,index) in page.submenu" :key="index">
27 <scroll-view class="sub-menu-list not-first" :scroll-y="true" v-if="activeMenuArr[page_index][0]==index&&sub.submenu.length>0"
28 :scroll-into-view="'second_id'+secondScrollInto">
29 <block v-for="(sub_second,second_index) in sub.submenu" :key="second_index">
30 <view class="sub-menu" :id="'second_id'+second_index" :class="{'on':activeMenuArr[page_index][1]==second_index}">
31 <view class="menu-name" @tap="selectHierarchyMenu(page_index,activeMenuArr[page_index][0],second_index,null)">
32 <text>{{sub_second.name}}</text>
33 <text class="iconfont selected"></text>
34 </view>
35 <view class="more-sub-menu" v-if="sub_second.submenu&&sub.submenu.length>0&&sub_second.submenu.length>0">
36 <block v-for="(sub2,sub2_index) in sub_second.submenu" :key="sub2_index">
37 <text v-if="sub_second.showAllSub || (sub2_index<8)" :class="{'on':activeMenuArr[page_index][1]==second_index&&activeMenuArr[page_index][2]==sub2_index}"
38 @tap="selectHierarchyMenu(page_index,activeMenuArr[page_index][0],second_index,sub2_index)">{{sub2.name}}</text>
39 <text v-if="sub_second.showAllSub!=true && sub2_index==8 && sub_second.submenu.length>9" @tap="showMoreSub(second_index)">更多<text
40 class="iconfont triangle"></text></text>
41 </block>
42 </view>
43 </view>
44 </block>
45 </scroll-view>
46 </block>
47 </block>
48 <block v-if="page.type=='filter'">
49 <view class="filter">
50 <scroll-view class="menu-box" :scroll-y="true">
51 <view class="box" v-for="(box,box_index) in page.submenu" :key="box_index">
52 <view class="title">{{box.name}}</view>
53 <view class="labels">
54 <view v-for="(label,label_index) in box.submenu" :key="label_index" @tap="selectFilterLabel(page_index,box_index,label_index)"
55 :class="{'on':label.selected}">{{label.name}}</view>
56 </view>
57 </view>
58 </scroll-view>
59 <view class="btn-box">
60 <view class="reset" @tap="resetFilterData(page_index)">重置</view>
61 <view class="submit" @tap="setFilterData(page_index)">确定</view>
62 </view>
63 </view>
64 </block>
65 <block v-if="page.type=='radio'">
66 <view class="filter">
67 <scroll-view class="menu-box" :scroll-y="true">
68 <view class="box" v-for="(box,box_index) in page.submenu" :key="box_index">
69 <view class="title">{{box.name}}</view>
70 <view class="labels">
71 <view v-for="(label,label_index) in box.submenu" :key="label_index" @tap="selectRadioLabel(page_index,box_index,label_index)"
72 :class="{'on':label.selected}">{{label.name}}</view>
73 </view>
74 </view>
75 </scroll-view>
76 <view class="btn-box">
77 <view class="reset" @tap="resetFilterData(page_index)">重置</view>
78 <view class="submit" @tap="setFilterData(page_index)">确定</view>
79 </view>
80 </view>
81 </block>
82 </view>
83 </block>
84 </view>
85 </template>
86 <script>
87 export default {
88 data() {
89 return {
90 subData: [], //菜单数据
91 menu: [], //顶部横条数据
92 showPage: -1, //菜单页面显示/隐藏动画控制
93 pageState: [], //页面的状态
94 activeMenuArr: [], //UI状态
95 shadowActiveMenuArr: [], //记录选中
96 defaultActive:[],
97 triangleDeg: [], //小三角形的翻转动画控制
98 isShowMask: false, //遮罩层显示/隐藏动画控制
99 maskVisibility: false, //遮罩层显示/隐藏状态
100 //滚动区域定位
101 firstScrollInto: 0,
102 secondScrollInto: 0,
103 componentTop:0 ,//组件top
104 isReadNewSelect:false
105 }
106 },
107 props: {
108 filterData: {
109 value: Array,
110 default: []
111 },
112 defaultSelected:{
113 value: Array,
114 default: []
115 },
116 updateMenuName:{
117 value: Boolean,
118 default: true
119 },
120 dataFormat:{
121 value: String,
122 default: 'Array'
123 }
124 },
125 watch: {
126 filterData: {
127 handler() {
128 this.initMenu(); //filterData重新赋值初始化菜单
129 },
130 immediate: true
131 },
132 defaultSelected(newVal) {
133 if(newVal.length==0){
134 return;
135 }
136 this.defaultActive = JSON.parse(JSON.stringify(newVal));
137 this.activeMenuArr = JSON.parse(JSON.stringify(newVal));
138 this.shadowActiveMenuArr = JSON.parse(JSON.stringify(newVal));
139 if(this.updateMenuName){
140 this.setMenuName();
141 }
142 }
143 },
144 methods: {
145 initMenu() {
146 let tmpMenuActiveArr=[];
147 let tmpMenu=[];
148 for (let i = 0; i < this.filterData.length; i++) {
149 let tmpitem = this.filterData[i];
150 tmpMenu.push({
151 //如果没有设置name,则取第一个菜单作为menu.name,filter类型则将"筛选"作为menu.name
152 name: tmpitem.name || (tmpitem.type == "filter" ? "筛选" : tmpitem.submenu[0].name),
153 type: tmpitem.type
154 });
155 //初始化选中项数组-ui状态
156 tmpMenuActiveArr.push(this.processActive(tmpitem));
157 //初始化角度数组
158 this.triangleDeg.push(0);
159 //初始化控制显示状态数组
160 this.pageState.push(false);
161 //递归处理子菜单数据
162 tmpitem = this.processSubMenu(tmpitem);
163 this.filterData[i] = tmpitem;
164 }
165 this.menu = tmpMenu;
166 //初始化选中项数组
167 tmpMenuActiveArr = this.defaultActive.length>0?this.defaultActive:this.activeMenuArr.length>0?this.activeMenuArr:tmpMenuActiveArr;
168 this.defaultActive = [];
169 this.activeMenuArr = JSON.parse(JSON.stringify(tmpMenuActiveArr));
170 this.shadowActiveMenuArr = JSON.parse(JSON.stringify(tmpMenuActiveArr));
171 //加载菜单数据
172 this.subData = this.filterData;
173 //设定顶部菜单名字
174 if(this.updateMenuName){
175 this.setMenuName();
176 }
177 },
178 setMenuName(){
179 for(var i=0;i<this.activeMenuArr.length;i++){
180 let row = this.activeMenuArr[i];
181 if (typeof(row[0]) != 'object'){
182 var tmpsub = false;
183 if(row.length>0 && row[0]!=null){
184 tmpsub = this.subData[i].submenu[row[0]];
185 if(row.length>1 && row[1]!=null){
186 tmpsub = tmpsub.submenu[row[1]];
187 if(row.length>2 && row[2]!=null){
188 tmpsub = tmpsub.submenu[row[2]];
189 }
190 }
191 }else{
192 tmpsub = false;
193 }
194 if(tmpsub){
195 this.menu[i].name = tmpsub.name;
196 }
197 }
198 }
199 },
200 //展开更多
201 showMoreSub(index) {
202 this.subData[this.showPage].submenu[this.activeMenuArr[this.showPage][0]].submenu[index].showAllSub = true;
203 this.$forceUpdate();
204 },
205 //选中
206 selectHierarchyMenu(page_index, level1_index, level2_index, level3_index) {
207 //读取记录
208 if (level1_index != null && level2_index == null && level3_index == null && this.shadowActiveMenuArr[page_index][0] ==
209 level1_index) {
210 this.activeMenuArr.splice(page_index, 1, JSON.parse(JSON.stringify(this.shadowActiveMenuArr[page_index])));
211 } else {
212 this.activeMenuArr[page_index].splice(0, 1, level1_index);
213 (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);
214 (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);
215 }
216 //写入结果
217 if (level3_index != null || level2_index != null || (level1_index != null && this.subData[page_index].submenu[level1_index].submenu.length == 0)
218 ) {
219 let sub = this.subData[page_index].submenu[level1_index].submenu[level2_index];
220 if(this.updateMenuName){
221 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;
222 }
223 this.shadowActiveMenuArr[page_index] = JSON.parse(JSON.stringify(this.activeMenuArr[page_index]));
224 this.togglePage(this.showPage);
225 }
226 },
227 //写入结果,筛选
228 setFilterData(page_index) {
229 this.shadowActiveMenuArr[page_index] = JSON.parse(JSON.stringify(this.activeMenuArr[page_index]));
230 this.togglePage(this.showPage);
231 },
232 //重置结果和ui,筛选
233 resetFilterData(page_index) {
234 let tmpArr = [];
235 let level = this.shadowActiveMenuArr[page_index].length;
236 while (level > 0) {
237 tmpArr.push([]);
238 let box = this.subData[page_index].submenu[level - 1].submenu;
239 for (let i = 0; i < box.length; i++) {
240 this.subData[page_index].submenu[level - 1].submenu[i].selected = false;
241 }
242 level--;
243 }
244 this.activeMenuArr[page_index] = JSON.parse(JSON.stringify(tmpArr));
245 this.$forceUpdate();
246 },
247 //选中筛选类label-UI状态
248 selectFilterLabel(page_index, box_index, label_index) {
249 let find_index = this.activeMenuArr[page_index][box_index].indexOf(label_index);
250 if (find_index > -1) {
251 this.activeMenuArr[page_index][box_index].splice(find_index, 1);
252 this.subData[page_index].submenu[box_index].submenu[label_index].selected = false;
253 } else {
254 this.activeMenuArr[page_index][box_index].push(label_index);
255 this.subData[page_index].submenu[box_index].submenu[label_index].selected = true;
256 }
257 this.$forceUpdate();
258 },
259 //选中单选类label-UI状态
260 selectRadioLabel(page_index, box_index, label_index) {
261
262 let activeIndex = this.activeMenuArr[page_index][box_index][0];
263 if(activeIndex == label_index){
264 this.subData[page_index].submenu[box_index].submenu[activeIndex].selected = false;
265 this.activeMenuArr[page_index][box_index][0] = null;
266 }else{
267 if(activeIndex!=null && activeIndex<this.subData[page_index].submenu[box_index].submenu.length){
268 this.subData[page_index].submenu[box_index].submenu[activeIndex].selected = false;
269 }
270
271 this.subData[page_index].submenu[box_index].submenu[label_index].selected = true;
272 this.activeMenuArr[page_index][box_index][0] = label_index;
273 }
274 this.$forceUpdate();
275 },
276 //菜单开关
277 togglePage(index) {
278 if (index == this.showPage) {
279 this.hidePageLayer(true);
280 this.hideMask();
281 this.showPage = -1;
282 } else {
283 if (this.showPage > -1) {
284 this.hidePageLayer(false);
285 }
286 this.showPageLayer(index);
287 this.showMask();
288 }
289 },
290 //hide遮罩层
291 hideMask() {
292 this.isShowMask = false;
293 setTimeout(() => {
294 this.maskVisibility = false;
295 }, 200);
296 },
297 //show遮罩层
298 showMask() {
299 this.maskVisibility = true;
300 this.$nextTick(() => {
301 setTimeout(() => {
302 this.isShowMask = true;
303 }, 0);
304 })
305 },
306 //hide菜单页
307 hidePageLayer(isAnimation) {
308 this.triangleDeg[this.showPage] = 0;
309 let tmpIndex = this.showPage;
310 if (isAnimation) {
311 setTimeout(() => {
312 this.pageState.splice(tmpIndex, 1, false);
313 }, 200);
314 this.confirm();
315 } else {
316 this.pageState.splice(tmpIndex, 1, false)
317 }
318 this.firstScrollInto = null;
319 this.secondScrollInto = null;
320 },
321 confirm() {
322 let index = JSON.parse(JSON.stringify(this.shadowActiveMenuArr));
323 let value = JSON.parse(JSON.stringify(this.shadowActiveMenuArr));
324
325 //对结果做一下处理
326 index.forEach((item, i) => {
327 if (typeof(item[0]) == 'object') {
328 //针对筛选结果过一个排序
329 item.forEach((s, j) => {
330 if(s!=null){
331 s.sort((val1, val2) => {
332 return val1 - val2;
333 });
334 item[j] = s;
335 s.forEach((v, k) => {
336 value[i][j][k] = (v==null||v>=this.subData[i].submenu[j].submenu.length)?null:this.subData[i].submenu[j].submenu[v].value;
337 if(this.subData[i].type == 'radio' && value[i][j][k] == null){
338 value[i][j] = [];
339 index[i][j] = [];
340 }
341 });
342 }
343 });
344 }else{
345 let submenu = this.subData[i].submenu[item[0]];
346 value[i][0] = submenu.value;
347 if(value[i].length>=2 && item[1]!=null){
348 if(submenu.submenu.length>0){
349 submenu = submenu.submenu[item[1]];
350 value[i][1] = submenu.hasOwnProperty('value')?submenu.value:null;
351 }else{
352 value[i][1] = null
353 }
354 if(value[i].length>=3 && item[2]!=null){
355 if(submenu.submenu.length>0){
356 submenu = submenu.submenu[item[2]];
357 value[i][2] = submenu.hasOwnProperty('value')?submenu.value:null;
358 }else{
359 value[i][2] = null;
360 }
361 }
362 }
363 }
364 index[i] = item;
365
366 });
367 // 输出
368 this.$emit('confirm', {
369 index: index,
370 value: value
371 });
372 },
373 //show菜单页
374 showPageLayer(index) {
375 this.processPage(index);
376 this.pageState.splice(index, 1, true);
377 this.$nextTick(() => {
378 setTimeout(() => {
379 this.showPage = index;
380 }, 0);
381 })
382 this.triangleDeg[index] = 180;
383 },
384 reloadActiveMenuArr(){
385 for (let i = 0; i < this.filterData.length; i++) {
386 let tmpitem = this.filterData[i];
387 let tmpArr = this.processActive(tmpitem);
388 tmpitem = this.processSubMenu(tmpitem);
389 if(this.activeMenuArr[i].length!=tmpArr.length){
390 this.filterData[i] = tmpitem;
391 this.activeMenuArr.splice(i, 1, JSON.parse(JSON.stringify(tmpArr)));
392 this.shadowActiveMenuArr.splice(i, 1, JSON.parse(JSON.stringify(tmpArr)));
393 }
394 }
395 this.subData = this.filterData;
396 this.$forceUpdate();
397 },
398 processPage(index) {
399 //check UI控制数组,结果数组,防止传入数据层级和UI控制数组不同步
400 this.reloadActiveMenuArr();
401 //重置UI控制数组
402 this.activeMenuArr.splice(index, 1, JSON.parse(JSON.stringify(this.shadowActiveMenuArr[index])));
403 if (this.menu[index].type == 'filter') {
404 //重载筛选页选中状态
405 let level = this.shadowActiveMenuArr[index].length;
406 for (let i = 0; i < level; i++) {
407 let box = this.subData[index].submenu[i].submenu;
408 for (let j = 0; j < box.length; j++) {
409 if (this.shadowActiveMenuArr[index][i].indexOf(j) > -1) {
410 this.subData[index].submenu[i].submenu[j].selected = true;
411 } else {
412 this.subData[index].submenu[i].submenu[j].selected = false;
413 }
414 }
415 }
416 } else if (this.menu[index].type == 'hierarchy') {
417 this.$nextTick(() => {
418 setTimeout(() => {
419 //滚动到选中项
420 this.firstScrollInto = parseInt(this.activeMenuArr[index][0]);
421 this.secondScrollInto = parseInt(this.activeMenuArr[index][1]);
422 }, 0);
423 })
424 } else if (this.menu[index].type == 'radio') {
425 //重载筛选页选中状态
426 let level = this.shadowActiveMenuArr[index].length;
427 for (let i = 0; i < level; i++) {
428 let box = this.subData[index].submenu[i].submenu;
429 for (let j = 0; j < box.length; j++) {
430 if (this.shadowActiveMenuArr[index][i].indexOf(j) > -1) {
431 this.subData[index].submenu[i].submenu[j].selected = true;
432 } else {
433 this.subData[index].submenu[i].submenu[j].selected = false;
434 }
435 }
436 }
437 }
438 },
439 processActive(tmpitem) {
440 let tmpArr = []
441 if (tmpitem.type == 'hierarchy'&&tmpitem.hasOwnProperty('submenu')&&tmpitem.submenu.length>0) {
442 let level = this.getMaxFloor(tmpitem.submenu);
443 while (level > 0) {
444 tmpArr.push(0);
445 level--;
446 }
447 } else if (tmpitem.type == 'filter') {
448 let level = tmpitem.submenu.length;
449 while (level > 0) {
450 tmpArr.push([]);
451 level--;
452 }
453 } else if (tmpitem.type == 'radio') {
454 let level = tmpitem.submenu.length;
455 while (level > 0) {
456 tmpArr.push([]);
457 level--;
458 }
459 }
460 return tmpArr;
461 },
462 processSubMenu(menu) {
463 if (menu.hasOwnProperty('submenu') && menu.submenu.length > 0) {
464 for (let i = 0; i < menu.submenu.length; i++) {
465 menu.submenu[i] = this.processSubMenu(menu.submenu[i]);
466 }
467 } else {
468 menu.submenu = [];
469 }
470 return menu;
471 },
472 //计算菜单层级
473 getMaxFloor(treeData) {
474 let floor = 0
475 let max = 0
476 function each(data, floor) {
477 data.forEach(e => {
478 max = floor > max ? floor : max;
479 if (e.hasOwnProperty('submenu') && e.submenu.length > 0) {
480 each(e.submenu, floor + 1)
481 }
482 })
483 }
484 each(treeData, 1)
485 return max;
486 },
487 discard() {
488
489 }
490 }
491 }
492 </script>
493 <style lang="scss">
494 .HMfilterDropdown {
495 flex-shrink: 0;
496 width: 100%;
497 height: 44px;
498 position: fixed;
499 z-index: 997;
500 flex-wrap: nowrap;
501 display: flex;
502 flex-direction: row;
503 top: var(--window-top);
504 left:0;
505 view {
506 display: flex;
507 flex-wrap: nowrap;
508 }
509 }
510 .region {
511 flex: 1;
512 height: 44px;
513 }
514 .nav {
515 width: 100%;
516 height: 44px;
517 border-bottom: solid 1rpx #eee;
518 z-index: 12;
519 background-color: #ffffff;
520 flex-direction: row;
521 .first-menu {
522 width: 100%;
523 font-size: 13px;
524 color: #757575;
525 flex-direction: row;
526 align-items: center;
527 justify-content: center;
528 transition: color .2s linear;
529
530 &.on {
531 color: #ec652b;
532
533 .iconfont {
534 color: #ec652b;
535 }
536 }
537 .name {
538 height: 20px;
539 text-align: center;
540 text-overflow: clip;
541 overflow: hidden;
542 }
543 .iconfont {
544 width: 13px;
545 height: 13px;
546 align-items: center;
547 justify-content: center;
548 transition: transform .2s linear, color .2s linear;
549 }
550 }
551 }
552 .sub-menu-class {
553 width: 100%;
554 position: absolute;
555 left: 0;
556 transform: translate3d(0, - 100%, 0);
557 max-height: 345px;
558 background-color: #ffffff;
559 z-index: 11;
560 box-shadow: 0 5px 5px rgba(0, 0, 0, .1);
561 overflow: hidden;
562 flex-direction: row;
563 transition: transform .15s linear;
564 &.hide {
565 display: none;
566 }
567
568 &.show {
569 transform: translate3d(0, calc(44px + 1rpx), 0);
570 }
571 }
572 .sub-menu-list {
573 width: 100%;
574 height: 345px;
575 flex-direction: column;
576 .sub-menu {
577 min-height: 44px;
578 font-size: 13px;
579 flex-direction: column;
580 padding-right: 15px;
581 >.menu-name {
582 height: 44px;
583 flex-direction: row;
584 align-items: center;
585 justify-content: space-between;
586 >.iconfont {
587 display: none;
588 font-size: 18px;
589 color: #ec652b;
590 }
591 }
592 }
593 &.first {
594 flex-shrink: 0;
595 width: 236rpx;
596 background-color: #f0f0f0;
597 .sub-menu {
598 padding-left: 15px;
599
600 &.on {
601 background-color: #fff;
602 }
603 }
604 }
605 &.alone {
606 max-height: 345px;
607 min-height: 170px;
608 height: auto;
609 .sub-menu {
610 min-height: calc(44px - 1rpx);
611 margin-left: 15px;
612 border-bottom: solid 1rpx #e5e5e5;
613
614 &.on {
615 color: #ec652b;
616
617 >.menu-name {
618 >.iconfont {
619 display: block;
620 }
621 }
622 }
623 }
624 }
625 &.not-first {
626 .sub-menu {
627 min-height: calc(44px - 1rpx);
628 margin-left: 15px;
629 border-bottom: solid 1rpx #e5e5e5;
630 >.menu-name {
631 height: calc(44px - 1rpx);
632 >.iconfont {
633 display: none;
634 font-size: 18px;
635 color: #ec652b;
636 }
637 }
638 &.on {
639 color: #ec652b;
640 >.menu-name {
641 >.iconfont {
642 display: block;
643 }
644 }
645 }
646 .more-sub-menu {
647 flex-direction: row;
648 flex-wrap: wrap;
649 padding-bottom: 9px;
650 >text {
651 height: 30px;
652 border-radius: 3px;
653 background-color: #f5f5f5;
654 color: #9b9b9b;
655 margin-bottom: 6px;
656 margin-right: 6px;
657 text-align: center;
658 line-height: 30px;
659 border: solid #f5f5f5 1rpx;
660 flex: 0 0 calc(33.33% - 6px);
661 overflow: hidden;
662 font-size: 12px;
663 &:nth-child(3n) {
664 margin-right: 0;
665 }
666 &.on {
667 border-color: #f6c8ac;
668 color: #ec652b;
669 }
670 .iconfont {
671 color: #9b9b9b;
672 }
673 }
674 }
675 }
676 }
677 }
678 .filter {
679 width: 100%;
680 height: 345px;
681 display: flex;
682 flex-direction: column;
683 justify-content: space-between;
684 align-items: center;
685 .menu-box {
686 width: 698rpx;
687 height: calc(345px - 75px);
688 flex-shrink: 1;
689 .box {
690 width: 100%;
691 margin-top: 16px;
692 flex-direction: column;
693 .title {
694 width: 100%;
695 font-size: 13px;
696 color: #888;
697 }
698 .labels {
699 flex-direction: row;
700 flex-wrap: wrap;
701 .on {
702 border-color: #ec652b;
703 background-color: #ec652b;
704 color: #fff;
705 }
706 >view {
707 width: 148rpx;
708 height: 30px;
709 border: solid 1rpx #adadad;
710 border-radius: 2px;
711 margin-right: 15px;
712 margin-top: 8px;
713 font-size: 12px;
714 flex-direction: row;
715 justify-content: center;
716 align-items: center;
717 &:nth-child(4n) {
718 margin-right: 0;
719 }
720 }
721 }
722 }
723 }
724 .btn-box {
725 flex-shrink: 0;
726 width: 698rpx;
727 height: 75px;
728 flex-direction: row !important;
729 align-items: center;
730 justify-content: space-between;
731 >view {
732 width: 320rpx;
733 height: 40px;
734 border-radius: 40px;
735 border: solid 1rpx #ec652b;
736 align-items: center;
737 justify-content: center;
738 }
739 .reset {
740 color: #ec652b;
741 }
742 .submit {
743 color: #fff;
744 background-color: #ec652b;
745 }
746 }
747 }
748 .mask {
749 z-index: 10;
750 position: fixed;
751 top: 0;
752 left: 0;
753 right: 0;
754 bottom: 0;
755 background-color: rgba(0, 0, 0, 0);
756 transition: background-color .15s linear;
757 &.show {
758 background-color: rgba(0, 0, 0, 0.5);
759 }
760 &.hide {
761 display: none;
762 }
763 }
764 /* 字体图标 */
765 @font-face {
766 font-family: "HM-FD-font";
767 src: url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAALAAAsAAAAABpQAAAJzAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDBgp4gQIBNgIkAwwLCAAEIAWEbQc5G8sFERWMIbIfCbbzqA4hp7InSBibVsYGb4J42o82b3e/nJlHMw/NHbGOlwKJRCRpwzPtpAECCOZubdqxjYpQLMlVg+70/08edrgQOtx2ukpVyApZn+dyehPoQObHo3O85rYx9vOjXoBxQIHugW2yIkqIW2QXcScu4jwE8CSWbKSmrqUHFwOaJoCsLM5P4haSGIxRcRHshrUGucLCVcfqI3AZfV/+USguKCwNmtsxVztDxU/n55C+3W0Z4QQpEOTNFqCBbMCAjDUWB9CIwWk87aa70cYgqLkyd3dEmm+18R8eKATEBrV7A5CulBT8dKiWOYZk412XNcDdKSEKSGODnyKIDl+dmVt9/Dx4pu/xyeutkMlHISGPTsPCnoTNP9nOT6wTtDdlO6dPr47efvj942lkYuQzrhMKEjq9N6y98P3340gmlJ/RStUD6F31CAEEPtUW94/7rf+7XgaAz57X0ZHXAGsFFwVgw38yALuMb0IBbVyNamFYEw4oKMDTj3AHRQP5Pt4dci9VwSVkRNQh5r7CLskZadhsWHhRDBsXczk8ZYk3ewnCxmQeQKa3BOHvA8XXO2j+vqRhf7CE+sPmn4anvoL29JLa4qqaUQkmoK+QG2osCckq7txi2leK86aIPyJ3eQZ8xytXYmyQ51jQndJAxIJlqiGSLsOqImiZCjTiZCJt6Lq26U2OoXqwUo0hRaAE0K5AziANy/uLVeXzWyjVqyjcoeupjxDr5MMDn8MDkLG9Aenu5ZrOSSoghAUsRmogkkahSoWAtnlUARnCkY3It0Iu7mWhdmd9Z/19BwBP6GidEi0G56opckXTGZVSPxgAAAA=');
768 }
769 .iconfont {
770 font-family: "HM-FD-font" !important;
771 font-size: 13px;
772 font-style: normal;
773 color: #757575;
774 &.triangle {
775 &:before {
776 content: "\e65a";
777 }
778 }
779 &.selected {
780 &:before {
781 content: "\e607";
782 }
783 }
784 }
785 </style>
786
src/components/card.vue
File was created 1 <template>
2 <view>
3
4 </view>
5 </template>
6
7 <script>
8 export default {
9 data() {
10 return {
11
12 };
13 }
14 }
15 </script>
16
17 <style lang="scss">
18
19 </style>
20
src/components/uni-drawer/uni-drawer.vue
File was created 1 <template>
2 <view v-if="visibleSync" :class="{ 'uni-drawer--visible': showDrawer }" class="uni-drawer" @touchmove.stop.prevent="clear">
3 <view class="uni-drawer__mask" :class="{ 'uni-drawer__mask--visible': showDrawer && mask }" @tap="close('mask')" />
4 <view class="uni-drawer__content" :class="{'uni-drawer--right': rightMode,'uni-drawer--left': !rightMode, 'uni-drawer__content--visible': showDrawer}" :style="{width:drawerWidth+'px'}">
5 <slot />
6 </view>
7 </view>
8 </template>
9
10 <script>
11 /**
12 * Drawer 抽屉
13 * @description 抽屉侧滑菜单
14 * @tutorial https://ext.dcloud.net.cn/plugin?id=26
15 * @property {Boolean} mask = [true | false] 是否显示遮罩
16 * @property {Boolean} maskClick = [true | false] 点击遮罩是否关闭
17 * @property {Boolean} mode = [left | right] Drawer 滑出位置
18 * @value left 从左侧滑出
19 * @value right 从右侧侧滑出
20 * @property {Number} width 抽屉的宽度 ,仅 vue 页面生效
21 * @event {Function} close 组件关闭时触发事件
22 */
23 export default {
24 name: 'UniDrawer',
25 props: {
26 /**
27 * 显示模式(左、右),只在初始化生效
28 */
29 mode: {
30 type: String,
31 default: ''
32 },
33 /**
34 * 蒙层显示状态
35 */
36 mask: {
37 type: Boolean,
38 default: true
39 },
40 /**
41 * 遮罩是否可点击关闭
42 */
43 maskClick:{
44 type: Boolean,
45 default: true
46 },
47 /**
48 * 抽屉宽度
49 */
50 width: {
51 type: Number,
52 default: 220
53 }
54 },
55 data() {
56 return {
57 visibleSync: false,
58 showDrawer: false,
59 rightMode: false,
60 watchTimer: null,
61 drawerWidth: 220
62 }
63 },
64 created() {
65 // #ifndef APP-NVUE
66 this.drawerWidth = this.width
67 // #endif
68 this.rightMode = this.mode === 'right'
69 },
70 methods: {
71 clear(){},
72 close(type) {
73 // fixed by mehaotian 抽屉尚未完全关闭或遮罩禁止点击时不触发以下逻辑
74 if((type === 'mask' && !this.maskClick) || !this.visibleSync) return
75 this._change('showDrawer', 'visibleSync', false)
76 },
77 open() {
78 // fixed by mehaotian 处理重复点击打开的事件
79 if(this.visibleSync) return
80 this._change('visibleSync', 'showDrawer', true)
81 },
82 _change(param1, param2, status) {
83 this[param1] = status
84 if (this.watchTimer) {
85 clearTimeout(this.watchTimer)
86 }
87 this.watchTimer = setTimeout(() => {
88 this[param2] = status
89 this.$emit('change',status)
90 }, status ? 50 : 300)
91 }
92 }
93 }
94 </script>
95
96 <style lang="scss" scoped>
97 // 抽屉宽度
98 $drawer-width: 220px;
99
100 .uni-drawer {
101 /* #ifndef APP-NVUE */
102 display: block;
103 /* #endif */
104 position: fixed;
105 top: 0;
106 left: 0;
107 right: 0;
108 bottom: 0;
109 overflow: hidden;
110 z-index: 999;
111 }
112
113 .uni-drawer__content {
114 /* #ifndef APP-NVUE */
115 display: block;
116 /* #endif */
117 position: absolute;
118 top: 0;
119 width: $drawer-width;
120 bottom: 0;
121 background-color: $uni-bg-color;
122 transition: transform 0.3s ease;
123 }
124
125 .uni-drawer--left {
126 left: 0;
127 /* #ifdef APP-NVUE */
128 transform: translateX(-$drawer-width);
129 /* #endif */
130 /* #ifndef APP-NVUE */
131 transform: translateX(-100%);
132 /* #endif */
133 }
134
135 .uni-drawer--right {
136 right: 0;
137 /* #ifdef APP-NVUE */
138 transform: translateX($drawer-width);
139 /* #endif */
140 /* #ifndef APP-NVUE */
141 transform: translateX(100%);
142 /* #endif */
143 }
144
145 .uni-drawer__content--visible {
146 transform: translateX(0px);
147 }
148
149
150 .uni-drawer__mask {
151 /* #ifndef APP-NVUE */
152 display: block;
153 /* #endif */
154 opacity: 0;
155 position: absolute;
156 top: 0;
157 left: 0;
158 bottom: 0;
159 right: 0;
160 background-color: $uni-bg-color-mask;
161 transition: opacity 0.3s;
162 }
163
164 .uni-drawer__mask--visible {
165 /* #ifndef APP-NVUE */
166 display: block;
167 /* #endif */
168 opacity: 1;
169 }
170 </style>
171
src/hybrid/html/local.html
File was created 1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8" />
5 <meta name="viewport" content="width=device-width, initial-scale=1">
6 <title>本地网页</title>
7 <style type="text/css">
8 .btn {
9 display: block;
10 margin: 20px auto;
11 padding: 5px;
12 background-color: #007aff;
13 border: 0;
14 color: #ffffff;
15 height: 40px;
16 width: 200px;
17 }
18
19 .btn-red {
20 background-color: #dd524d;
21 }
22
23 .btn-yellow {
24 background-color: #f0ad4e;
25 }
26
27 .desc {
28 padding: 10px;
29 color: #999999;
30 }
31 </style>
32 </head>
33 <body>
34 <p class="desc">web-view 组件加载本地 html 示例,仅在 App 环境下生效。点击下列按钮,跳转至其它页面。</p>
35 <div class="btn-list">
36 <button class="btn" type="button" data-action="navigateTo">navigateTo</button>
37 <button class="btn" type="button" data-action="redirectTo">redirectTo</button>
38 <button class="btn" type="button" data-action="navigateBack">navigateBack</button>
39 <button class="btn" type="button" data-action="reLaunch">reLaunch</button>
40 <button class="btn" type="button" data-action="switchTab">switchTab</button>
41 </div>
42 <p class="desc">网页向应用发送消息。注意:小程序端应用会在此页面后退时接收到消息。</p>
43 <div class="btn-list">
44 <button class="btn btn-red" type="button" id="postMessage">postMessage</button>
45 </div>
46 <!-- uni 的 SDK -->
47 <script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script>
48 <script type="text/javascript">
49 document.addEventListener('UniAppJSBridgeReady', function() {
50 document.querySelector('.btn-list').addEventListener('click', function(evt) {
51 var target = evt.target;
52 if (target.tagName === 'BUTTON') {
53 var action = target.getAttribute('data-action');
54 switch (action) {
55 case 'switchTab':
56 uni.switchTab({
57 url: '/pages/tabBar/API/API'
58 });
59 break;
60 case 'reLaunch':
61 uni.reLaunch({
62 url: '/pages/tabBar/API/API'
63 });
64 break;
65 case 'navigateBack':
66 uni.navigateBack({
67 delta: 1
68 });
69 break;
70 default:
71 uni[action]({
72 url: '/pages/component/button/button'
73 });
74 break;
75 }
76 }
77 });
78 document.querySelector("#postMessage").addEventListener('click', function() {
79 uni.postMessage({
80 data: {
81 action: 'message'
82 }
83 });
84 })
85 });
86 </script>
87 </body>
88 </html>
89
File was created 1 import Vue from 'vue'
2 import App from './App'
3
4 Vue.config.productionTip = false
5
6 App.mpType = 'app'
7
8 const app = new Vue({
9 ...App
10 })
11 app.$mount()
12
src/manifest.json
File was created 1 {
2 "name" : "gulu-vue",
3 "appid" : "",
4 "description" : "",
5 "versionName" : "1.0.0",
6 "versionCode" : "100",
7 "transformPx" : false,
8 /* 5+App特有相关 */
9 "app-plus" : {
10 "usingComponents" : true,
11 "nvueCompiler" : "uni-app",
12 "compilerVersion" : 3,
13 "splashscreen" : {
14 "alwaysShowBeforeRender" : true,
15 "waiting" : true,
16 "autoclose" : true,
17 "delay" : 0
18 },
19 /* 模块配置 */
20 "modules" : {},
21 /* 应用发布信息 */
22 "distribute" : {
23 /* android打包配置 */
24 "android" : {
25 "permissions" : [
26 "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
27 "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
28 "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
29 "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
30 "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
31 "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
32 "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
33 "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
34 "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
35 "<uses-permission android:name=\"android.permission.CAMERA\"/>",
36 "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
37 "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
38 "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
39 "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
40 "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
41 "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
42 "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
43 "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
44 "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
45 "<uses-feature android:name=\"android.hardware.camera\"/>",
46 "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
47 "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
48 ]
49 },
50 /* ios打包配置 */
51 "ios" : {},
52 /* SDK配置 */
53 "sdkConfigs" : {}
54 }
55 },
56 /* 快应用特有相关 */
57 "quickapp" : {},
58 /* 小程序特有相关 */
59 "mp-weixin" : {
60 "appid" : "",
61 "setting" : {
62 "urlCheck" : false
63 },
64 "usingComponents" : true
65 },
66 "mp-alipay" : {
67 "usingComponents" : true
68 },
69 "mp-baidu" : {
70 "usingComponents" : true
71 },
72 "mp-toutiao" : {
73 "usingComponents" : true
74 }
75 }
76
File was created 1 {
2 "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
3 {
4 "path": "pages/index/index",
5 "style": {
6 "navigationBarTitleText": "商城一览"
7 }
8 },
9 {
10 "path": "pages/cart/cart",
11 "style": {
12 "navigationBarTitleText": "购物车"
13 }
14 },
15 {
16 "path": "pages/user/user",
17 "style": {
18 "navigationBarTitleText": "我的"
19 }
20 }
21 ],
22 "globalStyle": {
23 "navigationBarTextStyle": "black",
24 "navigationBarTitleText": "uni-app",
25 "navigationBarBackgroundColor": "#F8F8F8",
26 "backgroundColor": "#F8F8F8"
27 },
28 "tabBar": {
29 "color": "#C0C4CC",
30 "selectedColor": "#fa436a",
31 "borderStyle": "black",
32 "backgroundColor": "#ffffff",
33 "list": [{
34 "pagePath": "pages/index/index",
35 "iconPath": "static/tab-home.png",
36 "selectedIconPath": "static/tab-home-current.png",
37 "text": "首页"
38 },
39 {
40 "pagePath": "pages/cart/cart",
41 "iconPath": "static/tab-cart.png",
42 "selectedIconPath": "static/tab-cart-current.png",
43 "text": "购物车"
44 },
45 {
46 "pagePath": "pages/user/user",
47 "iconPath": "static/tab-my.png",
48 "selectedIconPath": "static/tab-my-current.png",
49 "text": "我的"
50 }
51 ]
52 }
53 }
54
src/pages/cart/cart.vue
File was created 1 <template>
2 <view class="content">
3 <image class="logo" src="/static/logo.png"></image>
4 <view class="text-area">
5 <text class="title">{{title}}</text>
6 </view>
7 </view>
8 </template>
9
10 <script>
11 export default {
12 data() {
13 return {
14 title: 'Hello'
15 }
16 },
17 onLoad() {
18
19 },
20 methods: {
21
22 }
23 }
24 </script>
25
26 <style>
27 .content {
28 display: flex;
29 flex-direction: column;
30 align-items: center;
31 justify-content: center;
32 }
33
34 .logo {
35 height: 200rpx;
36 width: 200rpx;
37 margin-top: 200rpx;
38 margin-left: auto;
39 margin-right: auto;
40 margin-bottom: 50rpx;
41 }
42
43 .text-area {
44 display: flex;
45 justify-content: center;
46 }
47
48 .title {
49 font-size: 36rpx;
50 color: #8f8f94;
51 }
52 </style>
53
src/pages/index/index.vue
File was created 1 <template>
2 <view class="content">
3 <view class="header">
4 <!-- 搜索-->
5 <view class="searchBar">
6 <icon class="searchIcon" type="search" size="14"></icon>
7 <input class="searchIpt" placeholder="老花镜" confirm-type="search"/>
8 </view>
9
10 <!-- 筛选栏-->
11 <view class="screenBar">
12 <view v-for="item in screenItems" :key="item.current" @click="onClickItem(item.current)" >
13 <view class="screenItem" v-bind:class="{ active: current === item.current }" v-if="item.current === 2" @click="dropDown">
14 {{ item.text }}<icon type="info" size="14"></icon>
15 </view>
16 <view class="screenItem" v-bind:class="{ active: current === item.current }" v-if="item.current === 4" @click="showDrawer('showRight')">
17 {{ item.text }}<icon type="info" size="14"></icon>
18 </view>
19 <view v-if="item.current !== 2&&item.current!==4">
20 <view class="screenItem" v-bind:class="{ active: current === item.current }">{{ item.text }}</view>
21 </view>
22 </view>
23 </view>
24 </view>
25 <uni-drawer ref="showRight" mask="true" maskClick=true mode="right" :width="320" @change="change($event,'showRight')">
26 <view class="close">
27 <view @click="closeDrawer('showRight')"><text class="word-btn-white">关闭</text></view>
28 </view>
29 </uni-drawer>
30
31
32
33 <!-- 筛选菜单-->
34 <view class="content-wrap">
35 <view>
36 <HMfilterDropdown :filterData="filterData" :defaultSelected ="filterDropdownValue" :updateMenuName="true" @confirm="confirm" dataFormat="Object"></HMfilterDropdown>
37 <!-- 占位 -->
38 <view class="place"></view>
39 <!-- 商品列表 -->
40 <view class="goods-list">
41 <view class="product-list">
42 <view class="product" v-for="(goods) in goodsList" :key="goods.goods_id" @tap="toGoods(goods)">
43 <image mode="widthFix" :src="goods.img"></image>
44 <view class="name">{{goods.name}}</view>
45 <view class="info">
46 <view class="price">{{goods.price}}</view>
47 <view class="slogan">{{goods.slogan}}</view>
48 </view>
49 </view>
50 </view>
51 <view class="loading-text">{{loadingText}}</view>
52 </view>
53
54 </view>
55 </view>
56 </view>
57 </template>
58
59 <script>
60 import uniDrawer from "@/components/uni-drawer/uni-drawer.vue";
61 import HMfilterDropdown from "../../components/HM-filterDropdown/HM-filterDropdown.vue";
62 import data from '@/common/data.js';//筛选菜单数据
63 export default {
64 components: {
65 uniDrawer,
66 'HMfilterDropdown':HMfilterDropdown
67 },
68 data() {
69 return {
70 screenItems: [
71 {current:0,text:'全部',hasIcon:false},
72 {current:1,text:'销量',hasIcon:false},
73 {current:2,text:'价格',hasIcon:true},
74 {current:3,text:'折扣',hasIcon:false},
75 {current:4,text:'筛选',hasIcon:true},
76 ],
77 current: 0,
78 showRight: false,
79 indexArr:'',
80 valueArr:'',
81 //商品数据
82 goodsList:[
83 { goods_id: 0, img: '/static/img/goods/p1.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },
84 { goods_id: 1, img: '/static/img/goods/p2.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },
85 { goods_id: 2, img: '/static/img/goods/p3.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },
86 { goods_id: 3, img: '/static/img/goods/p4.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },
87 { goods_id: 4, img: '/static/img/goods/p5.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },
88 { goods_id: 5, img: '/static/img/goods/p6.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },
89 { goods_id: 6, img: '/static/img/goods/p7.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },
90 { goods_id: 7, img: '/static/img/goods/p8.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },
91 { goods_id: 8, img: '/static/img/goods/p9.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },
92 { goods_id: 9, img: '/static/img/goods/p10.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' }
93 ],
94 loadingText:"正在加载...",
95 filterDropdownValue:[],
96 filterData:[]
97 }
98 },
99 filters: {
100   outData(value) {
101     return JSON.stringify(value);
102   }
103 },
104 onLoad: function () {
105 //定时器模拟ajax异步请求数据
106 setTimeout(()=>{
107 //传入defaultSelected的结构不能错,错了就报错运行异常。 不选中的项目传入null
108 this.filterDropdownValue = [
109 [1,1,0], //第0个菜单选中 一级菜单的第1项,二级菜单的第1项,三级菜单的第3项
110 [null,null], //第1个菜单选中 都不选中
111 [1], //第2个菜单选中 一级菜单的第1项
112 [[0],[1,2,7],[1,0]], //筛选菜单选中 第一个筛选的第0项,第二个筛选的第1,2,7项,第三个筛选的第1,0项
113 [[0],[1],[1]], //单选菜单选中 第一个筛选的第0项,第二个筛选的第1项,第三个筛选的第1项
114 ];
115 this.filterData = data;
116 },100);
117 //模拟ajax请求子菜单数据。
118 // setTimeout(()=>{
119 //this.filterData[1].submenu[0].submenu = [{"name": "附近","value": "附近"},{"name": "1km","value": "1km"},{"name": "2km","value": "2km"},{"name": "3km","value": "3km"},{"name": "4km","value": "4km"},{"name": "5km","value": "5km"}];
120 // },5000)
121 },
122 methods: {
123 showDrawer(e) {
124 this.$refs[e].open()
125 },
126 closeDrawer(e) {
127 this.$refs[e].close()
128 },
129 change(e, type) {
130 this[type] = e
131 },
132 onClickItem(e) {
133 if (this.current !== e) {
134 this.current = e;
135 }
136 },
137 dropDown(){
138 console.log('下拉')
139 },
140 //接收菜单结果
141 confirm(e){
142 this.indexArr = e.index;
143 this.valueArr = e.value;
144 return;
145 console.log('修改菜单');
146 this.filterData[4].submenu[1] = {
147 "name": "项目2",
148 "submenu": [
149
150 ]
151 }
152 }
153 },
154 onNavigationBarButtonTap(e) {
155 this.showRight = !this.showRight
156 },
157 //上拉加载,
158 onReachBottom(){
159 console.log('到底加载')
160 let len = this.goodsList.length;
161 if(len>=30){
162 this.loadingText="~~到底了~~";
163 return false;
164 }else{
165 this.loadingText="正在加载...";
166 }
167 let end_goods_id = this.goodsList[len-1].goods_id;
168 for(let i=1;i<=10;i++){
169 let goods_id = end_goods_id+i;
170 let p = { goods_id: goods_id, img: '/static/img/goods/p'+(goods_id%10==0?10:goods_id%10)+'.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' };
171 this.goodsList.push(p);
172 }
173 },
174 }
175 </script>
176
177 <style lang="scss">
178 .content {
179 display: flex;
180 flex-direction: column;
181 align-items: center;
182 justify-content: center;
183 background-color: #F7F6F6;
184 }
185 .header{
186 display: flex;
187 flex-direction: column;
188 align-items: center;
189 justify-content: center;
190 background-color: #F7F6F6;
191 height:178rpx ;
192 width: 100%;
193 z-index: 999;
194 position: fixed;
195 top: 0;
196 }
197 .searchBar {
198 width: 670rpx;
199 display: flex;
200 position: fixed;
201 top: 0;
202 justify-content: center;
203 align-items: center;
204 box-sizing: border-box;
205 padding: 0rpx 16rpx;
206 border: 1px solid #FF6B4A;
207 border-radius: 8rpx;
208 background-color: #ffffff;
209 }
210
211 .searchIpt {
212 height: 68rpx;
213 width: 670rpx;
214 padding: 16rpx;
215 font-size: 28rpx;
216 box-sizing: border-box;
217 }
218 .screenBar{
219 position: fixed;
220 top: 68rpx;
221 width: 670rpx;
222 height: 110rpx;
223 display: flex;
224 flex-direction: row;
225 justify-content: space-between;
226 align-items: center;
227 color: #333333;
228 font-size: 32rpx;
229 }
230 .active{
231 color: #FF6B4A;
232 }
233 .screenItem{
234 display: flex;
235 justify-content: center;
236 align-items: center;
237 }
238 .content-wrap{
239 width: 100%;
240 background-color: #FFFFFF;
241 }
242
243 .HMfilterDropdown{
244 position: fixed;
245 top: 178rpx !important;
246 }
247 .place{
248 background-color: #ffffff;
249 height: 266rpx;
250 }
251 .goods-list{
252 padding-top: 10px;
253 .loading-text{
254 width: 100%;
255 display: flex;
256 justify-content: center;
257 align-items: center;
258 height: 30px;
259 color: #979797;
260 font-size: 12px;
261 }
262 .product-list{
263 width: 92%;
264 padding: 0 4% 3vw 4%;
265 display: flex;
266 justify-content: space-between;
267 flex-wrap: wrap;
268 .product{
269 width: 48%;
270 border-radius: 10px;
271 background-color: #fff;
272 margin: 0 0 7px 0;
273 box-shadow: 0 3px 12px rgba(0,0,0,0.1);
274 image{
275 width: 100%;
276 border-radius: 10px 10px 0 0;
277 }
278 .name{
279 width: 92%;
280 padding: 5px 4%;
281 display: -webkit-box;
282 -webkit-box-orient: vertical;
283 -webkit-line-clamp: 2;
284 text-align: justify;
285 overflow: hidden;
286 font-size: 15px;
287 }
288 .info{
289 display: flex;
290 justify-content: space-between;
291 align-items: flex-end;
292 width: 92%;
293 padding: 5px 4% 5px 4%;
294 .price{
295 color: #e65339;
296 font-size: 15px;
297 font-weight: 600;
298 }
299 .slogan{
300 color: #807c87;
301 font-size: 12px;
302 }
303 }
304 }
305 }
306 }
307
308 </style>
309
src/pages/user/user.vue
File was created 1 <template>
2 <view class="content">
3 <image class="logo" src="/static/logo.png"></image>
4 <view class="text-area">
5 <text class="title">{{title}}</text>
6 </view>
7 </view>
8 </template>
9
10 <script>
11 export default {
12 data() {
13 return {
14 title: 'Hello'
15 }
16 },
17 onLoad() {
18
19 },
20 methods: {
21
22 }
23 }
24 </script>
25
26 <style>
27 .content {
28 display: flex;
29 flex-direction: column;
30 align-items: center;
31 justify-content: center;
32 }
33
34 .logo {
35 height: 200rpx;
36 width: 200rpx;
37 margin-top: 200rpx;
38 margin-left: auto;
39 margin-right: auto;
40 margin-bottom: 50rpx;
41 }
42
43 .text-area {
44 display: flex;
45 justify-content: center;
46 }
47
48 .title {
49 font-size: 36rpx;
50 color: #8f8f94;
51 }
52 </style>
53
src/platforms/app-plus/feedback/feedback.vue
File was created 1 <template>
2 <view class="page">
3 <view class='feedback-title'>
4 <text>问题和意见</text>
5 <text class="feedback-quick" @tap="chooseMsg">快速键入</text>
6 </view>
7 <view class="feedback-body">
8 <textarea placeholder="请详细描述你的问题和意见..." v-model="sendDate.content" class="feedback-textare"></textarea>
9 </view>
10 <view class='feedback-title'>
11 <text>图片(选填,提供问题截图,总大小10M以下)</text>
12 </view>
13 <view class="feedback-body feedback-uploader">
14 <view class="uni-uploader">
15 <view class="uni-uploader-head">
16 <view class="uni-uploader-title">点击预览图片</view>
17 <view class="uni-uploader-info">{{imageList.length}}/8</view>
18 </view>
19 <view class="uni-uploader-body">
20 <view class="uni-uploader__files">
21 <block v-for="(image,index) in imageList" :key="index">
22 <view class="uni-uploader__file" style="position: relative;">
23 <image class="uni-uploader__img" :src="image" @tap="previewImage(index)"></image>
24 <view class="close-view" @click="close(index)">x</view>
25 </view>
26 </block>
27 <view class="uni-uploader__input-box" v-show="imageList.length < 8">
28 <view class="uni-uploader__input" @tap="chooseImg"></view>
29 </view>
30 </view>
31 </view>
32 </view>
33 </view>
34 <view class='feedback-title'>
35 <text>QQ/邮箱</text>
36 </view>
37 <view class="feedback-body">
38 <input class="feedback-input" v-model="sendDate.contact" placeholder="(选填,方便我们联系你 )" />
39 </view>
40 <view class='feedback-title feedback-star-view'>
41 <text>应用评分</text>
42 <view class="feedback-star-view">
43 <text class="feedback-star" v-for="(value,key) in stars" :key="key" :class="key < sendDate.score ? 'active' : ''"
44 @tap="chooseStar(value)"></text>
45 </view>
46 </view>
47 <button type="default" class="feedback-submit" @tap="send">提交</button>
48 <view class='feedback-title'>
49 <text>用户反馈的结果可在app打包后于DCloud开发者中心查看</text>
50 </view>
51 </view>
52 </template>
53
54 <script>
55 export default {
56 data() {
57 return {
58 msgContents: ["界面显示错乱", "启动缓慢,卡出翔了", "UI无法直视,丑哭了", "偶发性崩溃"],
59 stars: [1, 2, 3, 4, 5],
60 imageList: [],
61 sendDate: {
62 score: 0,
63 content: "",
64 contact: ""
65 }
66 }
67 },
68 onLoad() {
69 let deviceInfo = {
70 appid: plus.runtime.appid,
71 imei: plus.device.imei, //设备标识
72 p: plus.os.name === "Android" ? "a" : "i", //平台类型,i表示iOS平台,a表示Android平台。
73 md: plus.device.model, //设备型号
74 app_version: plus.runtime.version,
75 plus_version: plus.runtime.innerVersion, //基座版本号
76 os: plus.os.version,
77 net: "" + plus.networkinfo.getCurrentType()
78 }
79 this.sendDate = Object.assign(deviceInfo, this.sendDate);
80 },
81 methods: {
82 close(e) {
83 this.imageList.splice(e, 1);
84 },
85 chooseMsg() { //快速输入
86 uni.showActionSheet({
87 itemList: this.msgContents,
88 success: (res) => {
89 this.sendDate.content = this.msgContents[res.tapIndex];
90 }
91 })
92 },
93 chooseImg() { //选择图片
94 uni.chooseImage({
95 sourceType: ["camera", "album"],
96 sizeType: "compressed",
97 count: 8 - this.imageList.length,
98 success: (res) => {
99 this.imageList = this.imageList.concat(res.tempFilePaths);
100 }
101 })
102 },
103 chooseStar(e) { //点击评星
104 this.sendDate.score = e;
105 },
106 previewImage(index) { //预览图片
107 uni.previewImage({
108 urls: this.imageList,
109 current: this.imageList[index]
110 });
111 },
112 send() { //发送反馈
113 console.log(JSON.stringify(this.sendDate));
114 if (this.imageList.length === 0) {
115 uni.showModal({
116 content: '至少选择一张图片',
117 showCancel: false
118 })
119 return
120 }
121 if (this.sendDate.content.length === 0) {
122 uni.showModal({
123 content: '请输入问题和意见',
124 showCancel: false
125 })
126 return
127 }
128 uni.showLoading({
129 title: '上传中...'
130 })
131 let imgs = this.imageList.map((value, index) => {
132 return {
133 name: "image" + index,
134 uri: value
135 }
136 })
137 uni.uploadFile({
138 url: "https://service.dcloud.net.cn/feedback",
139 files: imgs,
140 formData: this.sendDate,
141 success: (res) => {
142 if (typeof res.data === 'string') {
143 res.data = JSON.parse(res.data)
144 }
145 if (res.statusCode === 200 && res.data && res.data.ret === 0) {
146 uni.showModal({
147 content: '反馈成功',
148 showCancel: false
149 })
150 this.imageList = [];
151 this.sendDate = {
152 score: 0,
153 content: "",
154 contact: ""
155 }
156 } else if (res.statusCode !== 200){
157 uni.showModal({
158 content: '反馈失败,错误码为:' + res.statusCode,
159 showCancel: false
160 })
161 } else {
162 uni.showModal({
163 content: '反馈失败',
164 showCancel: false
165 })
166 }
167 },
168 fail: (res) => {
169 console.log(JSON.stringify(res))
170 },
171 complete() {
172 uni.hideLoading()
173 }
174 });
175 }
176 }
177 }
178 </script>
179
180 <style>
181 page {
182 background-color: #EFEFF4;
183 }
184
185 .input-view {
186 font-size: 28rpx;
187 }
188
189 .close-view {
190 text-align: center;
191 line-height: 14px;
192 height: 16px;
193 width: 16px;
194 border-radius: 50%;
195 background: #FF5053;
196 color: #FFFFFF;
197 position: absolute;
198 top: -6px;
199 right: -4px;
200 font-size: 12px;
201 }
202 </style>
203
src/platforms/app-plus/orientation/orientation.vue
File was created 1 <template>
2 <view>
3 <page-head :title="title"></page-head>
4 <view class="uni-padding-wrap uni-common-mt">
5 <view class="uni-btn-v">
6 <button type="primary" @tap="getOrient">获取设备的方向信息</button>
7 <button type="primary" @tap="watchOrient">监听设备的方向变化</button>
8 <button type="primary" @tap="watchStop">停止监听</button>
9 </view>
10 <view class="uni-textarea">
11 <textarea :value="value" />
12 </view>
13 </view>
14 </view>
15 </template>
16 <script>
17 var id = null
18 export default {
19 data() {
20 return {
21 title: 'orientation',
22 value: ''
23 }
24 },
25 methods: {
26 getOrient: function () {
27 var that = this;
28 plus.orientation.getCurrentOrientation(function (o) {
29 that.value = "alpha:" + o.alpha + "\nbeta:" + o.beta + "\ngamma:" + o.gamma;
30 }, function (e) {
31 console.log("获取失败:" + e.message);
32 });
33 },
34 watchOrient: function () {
35 var that = this;
36 if (id) {
37 return;
38 }
39 id = plus.orientation.watchOrientation(function (o) {
40 that.value = "监听设备方向变化信息\n" + "alpha:" + o.alpha + "\nbeta:" + o.beta + "\ngamma:" + o.gamma;
41 }, function (e) {
42 plus.orientation.clearWatch(id);
43 id = null;
44 console.log("监听失败:" + e.message);
45 });
46 },
47 watchStop: function () {
48 if (id) {
49 plus.orientation.clearWatch(id);
50 id = null;
51 } else {
52 console.log("没有监听设备方向变化");
53 }
54 }
55 }
56 }
57 </script>
58
59 <style>
60
61 </style>
src/platforms/app-plus/proximity/proximity.vue
File was created 1 <template>
2 <view>
3 <page-head :title="title"></page-head>
4 <view class="uni-padding-wrap uni-common-mt">
5 <view class="uni-hello-text">
6 手机顶部听筒处有传感器监听距离手机屏幕的障碍物,覆盖该传感器会触发本事件变化
7 </view>
8 <view class="uni-btn-v uni-common-mt">
9 <button type="primary" @tap="getProximity">获取距离传感器信息</button>
10 <button type="primary" @tap="watchProximity">监听距离传感器变化</button>
11 <button type="primary" @tap="watchStop">停止监听</button>
12 </view>
13 <view class="uni-textarea uni-common-mt">
14 <textarea :value="value" />
15 </view>
16 </view>
17 </view>
18 </template>
19 <script>
20 var id = null
21 var bright = null
22 export default {
23 data() {
24 return {
25 title: 'proximity',
26 value: ''
27 }
28 },
29 methods: {
30 getProximity: function () {
31 var that = this;
32 plus.proximity.getCurrentProximity(function (d) {
33 that.value = "距离为:" + d;
34 }, function (e) {
35 that.value = "获取失败:" + e.message;
36 });
37 },
38 watchProximity: function () {
39 var that = this;
40 if (id) {
41 return;
42 }
43 bright = plus.screen.getBrightness();
44 id = plus.proximity.watchProximity(function (d) {
45 that.value = "距离变化:" + d;
46 plus.screen.setBrightness((d < 1) ? 0.01 : bright);
47 }, function (e) {
48 plus.proximity.clearWatch(id);
49 id = null;
50 that.value = "监听失败:" + e.message;
51 });
52 },
53 watchStop: function () {
54 var that = this;
55 if (id) {
56 that.value = "停止监听设备距离传感器信息";
57 plus.proximity.clearWatch(id);
58 id = null;
59 } else {
60 that.value = "没有监听设备距离传感器";
61 }
62 }
63 }
64 }
65 </script>
66
67 <style>
68
69 </style>
70
src/platforms/app-plus/push/push.vue
File was created 1 <template>
2 <view>
3 <page-head :title="title"></page-head>
4 <view class="uni-padding-wrap" v-if="provider[0]">
5 <view class="uni-btn-v uni-common-mt">
6 <button type="primary" @tap="openPush">开启push</button>
7 <button type="primary" @tap="closePush">关闭push</button>
8 <button type="primary" @tap="listenTranMsg">监听透传数据</button>
9 <button type="primary" @tap="removeTranMsg">移除监听透传数据</button>
10 </view>
11 <view class="uni-btn-v uni-common-mt">
12 <button type="primary" @tap="requireTranMsg">发送"透传数据"消息</button>
13 </view>
14 <view class="uni-title uni-common-mt">透传内容:</view>
15 <view class="uni-textarea">
16 <textarea v-model="tranMsg" />
17 </view>
18 </view>
19 </view>
20 </template>
21 <script>
22 export default {
23 data() {
24 return {
25 title: 'push',
26 provider: [],
27 pushServer: 'http://demo.dcloud.net.cn/push/?',
28 tranMsg:''
29 }
30 },
31 onLoad: function () {
32 uni.getProvider({
33 service: "push",
34 success: (e) => {
35 console.log("success", e);
36 this.provider = e.provider;
37 },
38 fail: (e) => {
39 console.log("获取推送通道失败", e);
40 }
41 });
42 },
43 onUnload:function(){
44 this.tranMsg = ''
45 },
46 methods: {
47 openPush() {
48 uni.subscribePush({
49 provider: this.provider[0],
50 success: (e) => {
51 uni.showToast({
52 title: "已开启push接收"
53 })
54 }
55 })
56 },
57 closePush() {
58 uni.unsubscribePush({
59 provider: this.provider[0],
60 success: (e) => {
61 uni.showToast({
62 title: "已关闭push接收"
63 })
64 }
65 })
66 },
67 listenTranMsg() {
68 uni.onPush({
69 provider: this.provider[0],
70 success: (e) => {
71 uni.showToast({
72 title: "开始监听透传数据"
73 })
74 },
75 callback: (e) => {
76 uni.showToast({
77 title: "接收到透传数据"
78 });
79
80 this.tranMsg = JSON.stringify(e.data);
81 }
82 })
83 },
84 removeTranMsg() {
85 uni.offPush({
86 provider: this.provider[0],
87 success: (e) => {
88 console.log("移除监听透传数据");
89 uni.showToast({
90 title: "移除监听透传数据"
91 })
92 }
93 })
94 },
95 requireTranMsg() { //请求‘透传数据’推送消息
96 var inf = plus.push.getClientInfo();
97 var url = this.pushServer + 'type=tran&appid=' + encodeURIComponent(plus.runtime.appid);
98 inf.id && (url += '&id=' + inf.id);
99 url += ('&cid=' + encodeURIComponent(inf.clientid));
100 if (plus.os.name == 'iOS') {
101 url += ('&token=' + encodeURIComponent(inf.token));
102 }
103 url += ('&title=' + encodeURIComponent('Hello uniapp'));
104 url += ('&content=' + encodeURIComponent('带透传数据推送通知!'));
105 if(plus.os.name === 'iOS'){
106 url += ('&payload=' + encodeURIComponent('{"title":"Hello uniapp Test","content":"test content"}'));
107 }else{
108 url += ('&payload=' + encodeURIComponent('\'{"title":"Hello uniapp Test","content":"test content"}\''));
109 }
110 url += ('&version=' + encodeURIComponent(plus.runtime.version));
111 plus.runtime.openURL(url);
112 }
113 }
114 }
115 </script>
116
117 <style>
118
119 </style>
120
121
src/platforms/app-plus/shake/shake.vue
File was created 1 <template>
2 <view class="root" :style="{backgroundImage:'url('+img+')'}">
3 <view :class="[show ? 'up' : '','shake-up']">
4 <image mode="aspectFit" src="https://img-cdn-qiniu.dcloud.net.cn/uniapp/shake/shakeup.png"></image>
5 </view>
6 <view :class="[show ? 'down' : '','shake-down']">
7 <image mode="aspectFit" src="https://img-cdn-qiniu.dcloud.net.cn/uniapp/shake/shakedown.png"></image>
8 </view>
9 </view>
10 </template>
11 <script>
12 export default {
13 data() {
14 return {
15 img: 'https://img-cdn-qiniu.dcloud.net.cn/uniapp/shake/1.jpg',
16 show: false,
17 isOpened: false
18 }
19 },
20 onLoad: function () {
21 this.music = uni.createInnerAudioContext();
22 this.music.src = 'https://img-cdn-qiniu.dcloud.net.cn/uniapp/shake/shake.wav';
23
24 let index = 1,
25 t = null;
26 uni.onAccelerometerChange((res) => {
27 if (Math.abs(res.x) + Math.abs(res.y) + Math.abs(res.z) > 20 && !this.show && this.isOpened) {
28 this.music.play();
29 setTimeout(() => {
30 index++;
31 if (index > 4) {
32 index = 1
33 }
34 this.img = 'https://img-cdn-qiniu.dcloud.net.cn/uniapp/shake/' + index + '.jpg';
35 }, 2000);
36 this.show = true;
37 if (t) {
38 clearTimeout(t);
39 }
40 t = setTimeout(() => {
41 t = null;
42 this.show = false;
43 }, 600)
44 }
45 })
46 },
47 onShow() {
48 this.isOpened = true;
49 },
50 onUnload() {
51 this.show = false;
52 this.isOpened = false;
53 uni.stopAccelerometer();
54 this.music.destroy();
55 }
56 }
57 </script>
58
59 <style>
60 .root {
61 height: 100%;
62 display: flex;
63 flex-direction: column;
64 background-position: center center;
65 background-repeat: no-repeat;
66 }
67
68 .shake-up,
69 .shake-down {
70 height: 50%;
71 overflow: hidden;
72 transition: all .5s ease-in-out;
73 -webkit-transition: all .5s ease-in-out;
74 background: #333;
75 }
76
77 .up {
78 transform: translateY(-50%);
79 -webkit-transform: translateY(-50%);
80 }
81
82 .down {
83 transform: translateY(50%);
84 -webkit-transform: translateY(50%);
85 }
86
87 image {
88 height: 100%;
89 width: 100%;
90 }
91 </style>
92
src/platforms/app-plus/speech/speech.vue
File was created 1 <template>
2 <view>
3 <page-head :title="title"></page-head>
4 <view class="uni-padding-wrap uni-common-mt">
5 <view class="uni-textarea">
6 <textarea :value="value" placeholder="语音识别内容展示区域" disabled />
7 </view>
8 <view class="uni-common-mt uni-btn-v">
9 <button type="primary" @tap="startRecognize">开始语音识别</button>
10 <button type="primary" @tap="startRecognizeEnglish">开始语音识别(英语)</button>
11 </view>
12 </view>
13 </view>
14 </template>
15 <script>
16 import permision from "@/common/permission.js"
17 export default {
18 data() {
19 return {
20 title: 'speech',
21 value: ''
22 }
23 },
24 onUnload(){
25 this.value = ""
26 },
27 methods: {
28 async startRecognize () {
29 // #ifdef APP-PLUS
30 let status = await this.checkPermission();
31 if (status !== 1) {
32 return;
33 }
34 // #endif
35
36 // TODO ios 在没有请求过权限之前无法得知是否有相关权限,这种状态下需要直接调用语音,会弹出正在识别的toast
37 var options = {};
38 var that = this;
39 options.engine = 'baidu';
40 that.value = "";
41 plus.speech.startRecognize(options, function (s) {
42 console.log(s);
43 that.value += s;
44 }, function (e) {
45 console.log("语音识别失败:" + e.message);
46 });
47 },
48 async startRecognizeEnglish () {
49 // #ifdef APP-PLUS
50 let status = await this.checkPermission();
51 if (status !== 1) {
52 return;
53 }
54 // #endif
55
56 // TODO ios 在没有请求过权限之前无法得知是否有相关权限,这种状态下需要直接调用语音,会弹出正在识别的toast
57 var options = {};
58 var that = this;
59 options.engine = 'baidu';
60 options.lang = 'en-us';
61 that.value = "";
62 plus.speech.startRecognize(options, function (s) {
63 console.log(s);
64 that.value += s;
65 }, function (e) {
66 console.log("语音识别失败:" + e.message);
67 });
68 }
69 // #ifdef APP-PLUS
70 ,
71 async checkPermission() {
72 let status = permision.isIOS ? await permision.requestIOS('record') :
73 await permision.requestAndroid('android.permission.RECORD_AUDIO');
74
75 if (status === null || status === 1) {
76 status = 1;
77 } else if (status === 2) {
78 uni.showModal({
79 content: "系统麦克风已关闭",
80 confirmText: "确定",
81 showCancel: false,
82 success: function(res) {
83 }
84 })
85 } else {
86 uni.showModal({
87 content: "需要麦克风权限",
88 confirmText: "设置",
89 success: function(res) {
90 if (res.confirm) {
91 permision.gotoAppSetting();
92 }
93 }
94 })
95 }
96 return status;
97 }
98 // #endif
99 }
100 }
101 </script>
102
103 <style>
104
105 </style>
106
src/static/img/goods/p1.jpg

11.3 KB

src/static/img/goods/p10.jpg

22.6 KB

src/static/img/goods/p2.jpg

16.3 KB

src/static/img/goods/p3.jpg

15 KB

src/static/img/goods/p4.jpg

6.55 KB

src/static/img/goods/p5.jpg

29.6 KB

src/static/img/goods/p6.jpg

6.25 KB

src/static/img/goods/p7.jpg

20.1 KB

src/static/img/goods/p8.jpg

20.4 KB

src/static/img/goods/p9.jpg

24.1 KB

src/static/logo.png

3.93 KB

src/static/tab-cart-current.png

2.89 KB

src/static/tab-cart.png

2.85 KB

src/static/tab-home-current.png

3.97 KB

src/static/tab-home.png

3.87 KB

src/static/tab-my-current.png

1.31 KB

src/static/tab-my.png

2.89 KB

src/store/index.js
File was created 1 import Vue from 'vue'
2 import Vuex from 'vuex'
3
4 Vue.use(Vuex)
5
6 const store = new Vuex.Store({
7 state: {
8 hasLogin: false,
9 loginProvider: "",
10 openid: null,
11 testvuex:false,
12 colorIndex: 0,
13 colorList: ['#FF0000','#00FF00','#0000FF']
14 },
15 mutations: {
16 login(state, provider) {
17 state.hasLogin = true;
18 state.loginProvider = provider;
19 },
20 logout(state) {
21 state.hasLogin = false
22 state.openid = null
23 },
24 setOpenid(state, openid) {
25 state.openid = openid
26 },
27 setTestTrue(state){
28 state.testvuex = true
29 },
30 setTestFalse(state){
31 state.testvuex = false
32 },
33 setColorIndex(state,index){
34 state.colorIndex = index
35 }
36 },
37 getters:{
38 currentColor(state){
39 return state.colorList[state.colorIndex]
40 }
41 },
42 actions: {
43 // lazy loading openid
44 getUserOpenId: async function ({
45 commit,
46 state
47 }) {
48 return await new Promise((resolve, reject) => {
49 if (state.openid) {
50 resolve(state.openid)
51 } else {
52 uni.login({
53 success: (data) => {
54 commit('login')
55 setTimeout(function () { //模拟异步请求服务器获取 openid
56 const openid = '123456789'
57 console.log('uni.request mock openid[' + openid + ']');
58 commit('setOpenid', openid)
59 resolve(openid)
60 }, 1000)
61 },
62 fail: (err) => {
63 console.log('uni.login 接口调用失败,将无法正常使用开放接口等服务', err)
64 reject(err)
65 }
66 })
67 }
68 })
69 }
70 }
71 })
72
73 export default store
74
src/template.h5.html
File was created 1 <!DOCTYPE html>
2 <html lang="zh-CN">
3 <head>
4 <meta charset="utf-8">
5 <meta http-equiv="X-UA-Compatible" content="IE=edge">
6 <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
7 <title>
8 <%= htmlWebpackPlugin.options.title %>
9 </title>
10 <!-- 正式发布的时候使用,开发期间不启用。↓ -->
11 <!-- <script src="/h5/touch-emulator.js"></script>
12 <script>
13 TouchEmulator();
14 if (document.documentElement.clientWidth > 1024) {
15 window.location.href = '/h5/pcguide.html#'+location.pathname+location.search;
16 }
17 </script>
18 <style>
19 ::-webkit-scrollbar{
20 display: none;
21 }
22 </style>
23 <script>
24 var _hmt = _hmt || [];
25 (function() {
26 var hm = document.createElement("script");
27 hm.src = "https://hm.baidu.com/hm.js?";// 百度统计key
28 var s = document.getElementsByTagName("script")[0];
29 s.parentNode.insertBefore(hm, s);
30 })();
31 </script> -->
32 <!-- 正式发布的时候使用,开发期间不启用。↑ -->
33 <script>
34 document.addEventListener('DOMContentLoaded', function() {
35 document.documentElement.style.fontSize = document.documentElement.clientWidth / 20 + 'px'
36 })
37 </script>
38 <link rel="stylesheet" href="<%= BASE_URL %>static/index.css" />
39 </head>
40 <body>
41 <!-- 该文件为 H5 平台的模板 HTML,并非应用入口。 -->
42 <!-- 请勿在此文件编写页面代码或直接运行此文件。 -->
43 <!-- 详见文档:https://uniapp.dcloud.io/collocation/manifest?id=h5-template -->
44 <noscript>
45 <strong>Please enable JavaScript to continue.</strong>
46 </noscript>
47 <div id="app"></div>
48 <!-- built files will be auto injected -->
49 <script>
50 /*BAIDU_STAT*/
51 </script>
52 </body>
53 </html>
54
File was created 1 /**
2 * 这里是uni-app内置的常用样式变量
3 *
4 * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
5 * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
6 *
7 */
8
9 /**
10 * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
11 *
12 * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
13 */
14
15 /* 颜色变量 */
16
17 /* 行为相关颜色 */
18 $uni-color-primary: #007aff;
19 $uni-color-success: #4cd964;
20 $uni-color-warning: #f0ad4e;
21 $uni-color-error: #dd524d;
22
23 /* 文字基本颜色 */
24 $uni-text-color:#333;//基本色
25 $uni-text-color-inverse:#fff;//反色
26 $uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
27 $uni-text-color-placeholder: #808080;
28 $uni-text-color-disable:#c0c0c0;
29
30 /* 背景颜色 */
31 $uni-bg-color:#ffffff;
32 $uni-bg-color-grey:#f8f8f8;
33 $uni-bg-color-hover:#f1f1f1;//点击状态颜色
34 $uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
35
36 /* 边框颜色 */
37 $uni-border-color:#c8c7cc;
38
39 /* 尺寸变量 */
40
41 /* 文字尺寸 */
42 $uni-font-size-sm:24rpx;
43 $uni-font-size-base:28rpx;
44 $uni-font-size-lg:32rpx;
45
46 /* 图片尺寸 */
47 $uni-img-size-sm:40rpx;
48 $uni-img-size-base:52rpx;
49 $uni-img-size-lg:80rpx;
50
51 /* Border Radius */
52 $uni-border-radius-sm: 4rpx;
53 $uni-border-radius-base: 6rpx;
54 $uni-border-radius-lg: 12rpx;
55 $uni-border-radius-circle: 50%;
56
57 /* 水平间距 */
58 $uni-spacing-row-sm: 10px;
59 $uni-spacing-row-base: 20rpx;
60 $uni-spacing-row-lg: 30rpx;
61
62 /* 垂直间距 */
63 $uni-spacing-col-sm: 8rpx;
64 $uni-spacing-col-base: 16rpx;
65 $uni-spacing-col-lg: 24rpx;
66
67 /* 透明度 */
68 $uni-opacity-disabled: 0.3; // 组件禁用态的透明度
69
70 /* 文章场景相关 */
71 $uni-color-title: #2C405A; // 文章标题颜色
72 $uni-font-size-title:40rpx;
73 $uni-color-subtitle: #555555; // 二级标题颜色
74 $uni-font-size-subtitle:36rpx;
75 $uni-color-paragraph: #3F536E; // 文章段落颜色
76 $uni-font-size-paragraph:30rpx;
src/wxcomponents/vant/button/index.d.ts
File was created 1 export {};
2
src/wxcomponents/vant/button/index.js
File was created 1 import { VantComponent } from '../common/component';
2 import { button } from '../mixins/button';
3 import { openType } from '../mixins/open-type';
4 VantComponent({
5 mixins: [button, openType],
6 classes: ['hover-class', 'loading-class'],
7 data: {
8 style: ''
9 },
10 props: {
11 icon: String,
12 plain: Boolean,
13 block: Boolean,
14 round: Boolean,
15 square: Boolean,
16 loading: Boolean,
17 hairline: Boolean,
18 disabled: Boolean,
19 loadingText: String,
20 customStyle: String,
21 loadingType: {
22 type: String,
23 value: 'circular'
24 },
25 type: {
26 type: String,
27 value: 'default'
28 },
29 size: {
30 type: String,
31 value: 'normal'
32 },
33 loadingSize: {
34 type: String,
35 value: '20px'
36 },
37 color: {
38 type: String,
39 observer(color) {
40 let style = '';
41 if (color) {
42 style += `color: ${this.data.plain ? color : 'white'};`;
43 if (!this.data.plain) {
44 // Use background instead of backgroundColor to make linear-gradient work
45 style += `background: ${color};`;
46 }
47 // hide border when color is linear-gradient
48 if (color.indexOf('gradient') !== -1) {
49 style += 'border: 0;';
50 }
51 else {
52 style += `border-color: ${color};`;
53 }
54 }
55 if (style !== this.data.style) {
56 this.setData({ style });
57 }
58 }
59 }
60 },
61 methods: {
62 onClick() {
63 if (!this.data.disabled && !this.data.loading) {
64 this.$emit('click');
65 }
66 }
67 }
68 });
69
src/wxcomponents/vant/button/index.json
File was created 1 {
2 "component": true,
3 "usingComponents": {
4 "van-icon": "../icon/index",
5 "van-loading": "../loading/index"
6 }
7 }
8
src/wxcomponents/vant/button/index.vue
File was created 1 <template>
2 <uni-shadow-root class="vant-button-index"><button :id="id" :class="'custom-class '+(utils.bem('button', [type, size, { block, round, plain, square, loading, disabled, hairline, unclickable: disabled || loading }]))+' '+(hairline ? 'van-hairline--surround' : '')" hover-class="van-button--active hover-class" :lang="lang" :style="(style)+' '+(customStyle)" :open-type="openType" :business-id="businessId" :session-from="sessionFrom" :send-message-title="sendMessageTitle" :send-message-path="sendMessagePath" :send-message-img="sendMessageImg" :show-message-card="showMessageCard" :app-parameter="appParameter" :aria-label="ariaLabel" @click="onClick" @getuserinfo="bindGetUserInfo" @contact="bindContact" @getphonenumber="bindGetPhoneNumber" @error="bindError" @launchapp="bindLaunchApp" @opensetting="bindOpenSetting">
3 <block v-if="loading">
4 <van-loading custom-class="loading-class" :size="loadingSize" :type="loadingType" :color="type === 'default' ? '#c9c9c9' : 'white'"></van-loading>
5 <view v-if="loadingText" class="van-button__loading-text">
6 {{ loadingText }}
7 </view>
8 </block>
9 <block v-else>
10 <van-icon v-if="icon" size="1.2em" :name="icon" class="van-button__icon" custom-style="line-height: inherit;"></van-icon>
11 <view class="van-button__text">
12 <slot></slot>
13 </view>
14 </block>
15 </button></uni-shadow-root>
16 </template>
17 <wxs src="../wxs/utils.wxs" module="utils"></wxs>
18 <script>
19 import VanIcon from '../icon/index.vue'
20 import VanLoading from '../loading/index.vue'
21 global['__wxVueOptions'] = {components:{'van-icon': VanIcon,'van-loading': VanLoading}}
22
23 global['__wxRoute'] = 'vant/button/index'
24 import { VantComponent } from '../common/component';
25 import { button } from '../mixins/button';
26 import { openType } from '../mixins/open-type';
27 VantComponent({
28 mixins: [button, openType],
29 classes: ['hover-class', 'loading-class'],
30 data: {
31 style: ''
32 },
33 props: {
34 icon: String,
35 plain: Boolean,
36 block: Boolean,
37 round: Boolean,
38 square: Boolean,
39 loading: Boolean,
40 hairline: Boolean,
41 disabled: Boolean,
42 loadingText: String,
43 customStyle: String,
44 loadingType: {
45 type: String,
46 value: 'circular'
47 },
48 type: {
49 type: String,
50 value: 'default'
51 },
52 size: {
53 type: String,
54 value: 'normal'
55 },
56 loadingSize: {
57 type: String,
58 value: '20px'
59 },
60 color: {
61 type: String,
62 observer(color) {
63 let style = '';
64 if (color) {
65 style += `color: ${this.data.plain ? color : 'white'};`;
66 if (!this.data.plain) {
67 // Use background instead of backgroundColor to make linear-gradient work
68 style += `background: ${color};`;
69 }
70 // hide border when color is linear-gradient
71 if (color.indexOf('gradient') !== -1) {
72 style += 'border: 0;';
73 }
74 else {
75 style += `border-color: ${color};`;
76 }
77 }
78 if (style !== this.data.style) {
79 this.setData({ style });
80 }
81 }
82 }
83 },
84 methods: {
85 onClick() {
86 if (!this.data.disabled && !this.data.loading) {
87 this.$emit('click');
88 }
89 }
90 }
91 });
92 export default global['__wxComponents']['vant/button/index']
93 </script>
94 <style platform="mp-weixin">
95 @import '../common/index.css';.van-button{position:relative;display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;padding:0;line-height:20px;text-align:center;vertical-align:middle;-webkit-appearance:none;-webkit-text-size-adjust:100%;height:44px;height:var(--button-default-height,44px);font-size:16px;font-size:var(--button-default-font-size,16px);transition:opacity .2s;transition:opacity var(--animation-duration-fast,.2s);border-radius:2px;border-radius:var(--button-border-radius,2px)}.van-button:before{position:absolute;top:50%;left:50%;width:100%;height:100%;border:inherit;border-radius:inherit;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);opacity:0;content:" ";background-color:#000;background-color:var(--black,#000);border-color:#000;border-color:var(--black,#000)}.van-button:after{border-width:0}.van-button--active:before{opacity:.15}.van-button--unclickable:after{display:none}.van-button--default{color:#323233;color:var(--button-default-color,#323233);background-color:#fff;background-color:var(--button-default-background-color,#fff);border:1px solid #ebedf0;border:1px solid var(--button-default-border-color,#ebedf0)}.van-button--primary{color:#fff;color:var(--button-primary-color,#fff);background-color:#07c160;background-color:var(--button-primary-background-color,#07c160);border:1px solid #07c160;border:1px solid var(--button-primary-border-color,#07c160)}.van-button--info{color:#fff;color:var(--button-info-color,#fff);background-color:#1989fa;background-color:var(--button-info-background-color,#1989fa);border:1px solid #1989fa;border:1px solid var(--button-info-border-color,#1989fa)}.van-button--danger{color:#fff;color:var(--button-danger-color,#fff);background-color:#ee0a24;background-color:var(--button-danger-background-color,#ee0a24);border:1px solid #ee0a24;border:1px solid var(--button-danger-border-color,#ee0a24)}.van-button--warning{color:#fff;color:var(--button-warning-color,#fff);background-color:#ff976a;background-color:var(--button-warning-background-color,#ff976a);border:1px solid #ff976a;border:1px solid var(--button-warning-border-color,#ff976a)}.van-button--plain{background-color:#fff;background-color:var(--button-plain-background-color,#fff)}.van-button--plain.van-button--primary{color:#07c160;color:var(--button-primary-background-color,#07c160)}.van-button--plain.van-button--info{color:#1989fa;color:var(--button-info-background-color,#1989fa)}.van-button--plain.van-button--danger{color:#ee0a24;color:var(--button-danger-background-color,#ee0a24)}.van-button--plain.van-button--warning{color:#ff976a;color:var(--button-warning-background-color,#ff976a)}.van-button--large{width:100%;height:50px;height:var(--button-large-height,50px)}.van-button--normal{padding:0 15px;font-size:14px;font-size:var(--button-normal-font-size,14px)}.van-button--small{min-width:60px;min-width:var(--button-small-min-width,60px);height:30px;height:var(--button-small-height,30px);padding:0 8px;padding:0 var(--padding-xs,8px);font-size:12px;font-size:var(--button-small-font-size,12px)}.van-button--mini{display:inline-block;min-width:50px;min-width:var(--button-mini-min-width,50px);height:22px;height:var(--button-mini-height,22px);font-size:10px;font-size:var(--button-mini-font-size,10px)}.van-button--mini+.van-button--mini{margin-left:5px}.van-button--block{display:-webkit-flex;display:flex;width:100%}.van-button--round{border-radius:999px;border-radius:var(--button-round-border-radius,999px)}.van-button--square{border-radius:0}.van-button--disabled{opacity:.5;opacity:var(--button-disabled-opacity,.5)}.van-button__text{display:inline}.van-button__icon+.van-button__text:not(:empty),.van-button__loading-text{margin-left:4px}.van-button__icon{min-width:1em;line-height:inherit!important;vertical-align:top}.van-button--hairline{padding-top:1px;border-width:0}.van-button--hairline:after{border-color:inherit;border-width:1px;border-radius:4px;border-radius:calc(var(--button-border-radius, 2px)*2)}.van-button--hairline.van-button--round:after{border-radius:999px;border-radius:var(--button-round-border-radius,999px)}.van-button--hairline.van-button--square:after{border-radius:0}
96 </style>
src/wxcomponents/vant/button/index.wxml
File was created 1 <wxs src="../wxs/utils.wxs" module="utils" />
2
3 <button
4 id="{{ id }}"
5 class="custom-class {{ utils.bem('button', [type, size, { block, round, plain, square, loading, disabled, hairline, unclickable: disabled || loading }]) }} {{ hairline ? 'van-hairline--surround' : '' }}"
6 hover-class="van-button--active hover-class"
7 lang="{{ lang }}"
8 style="{{ style }} {{ customStyle }}"
9 open-type="{{ openType }}"
10 business-id="{{ businessId }}"
11 session-from="{{ sessionFrom }}"
12 send-message-title="{{ sendMessageTitle }}"
13 send-message-path="{{ sendMessagePath }}"
14 send-message-img="{{ sendMessageImg }}"
15 show-message-card="{{ showMessageCard }}"
16 app-parameter="{{ appParameter }}"
17 aria-label="{{ ariaLabel }}"
18 bindtap="onClick"
19 bindgetuserinfo="bindGetUserInfo"
20 bindcontact="bindContact"
21 bindgetphonenumber="bindGetPhoneNumber"
22 binderror="bindError"
23 bindlaunchapp="bindLaunchApp"
24 bindopensetting="bindOpenSetting"
25 >
26 <block wx:if="{{ loading }}">
27 <van-loading
28 custom-class="loading-class"
29 size="{{ loadingSize }}"
30 type="{{ loadingType }}"
31 color="{{ type === 'default' ? '#c9c9c9' : 'white' }}"
32 />
33 <view
34 wx:if="{{ loadingText }}"
35 class="van-button__loading-text"
36 >
37 {{ loadingText }}
38 </view>
39 </block>
40 <block wx:else>
41 <van-icon
42 wx:if="{{ icon }}"
43 size="1.2em"
44 name="{{ icon }}"
45 class="van-button__icon"
46 custom-style="line-height: inherit;"
47 />
48 <view class="van-button__text">
49 <slot />
50 </view>
51 </block>
52 </button>
53
src/wxcomponents/vant/button/index.wxss
File was created 1 @import '../common/index.wxss';.van-button{position:relative;display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;padding:0;line-height:20px;text-align:center;vertical-align:middle;-webkit-appearance:none;-webkit-text-size-adjust:100%;height:44px;height:var(--button-default-height,44px);font-size:16px;font-size:var(--button-default-font-size,16px);transition:opacity .2s;transition:opacity var(--animation-duration-fast,.2s);border-radius:2px;border-radius:var(--button-border-radius,2px)}.van-button:before{position:absolute;top:50%;left:50%;width:100%;height:100%;border:inherit;border-radius:inherit;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);opacity:0;content:" ";background-color:#000;background-color:var(--black,#000);border-color:#000;border-color:var(--black,#000)}.van-button:after{border-width:0}.van-button--active:before{opacity:.15}.van-button--unclickable:after{display:none}.van-button--default{color:#323233;color:var(--button-default-color,#323233);background-color:#fff;background-color:var(--button-default-background-color,#fff);border:1px solid #ebedf0;border:1px solid var(--button-default-border-color,#ebedf0)}.van-button--primary{color:#fff;color:var(--button-primary-color,#fff);background-color:#07c160;background-color:var(--button-primary-background-color,#07c160);border:1px solid #07c160;border:1px solid var(--button-primary-border-color,#07c160)}.van-button--info{color:#fff;color:var(--button-info-color,#fff);background-color:#1989fa;background-color:var(--button-info-background-color,#1989fa);border:1px solid #1989fa;border:1px solid var(--button-info-border-color,#1989fa)}.van-button--danger{color:#fff;color:var(--button-danger-color,#fff);background-color:#ee0a24;background-color:var(--button-danger-background-color,#ee0a24);border:1px solid #ee0a24;border:1px solid var(--button-danger-border-color,#ee0a24)}.van-button--warning{color:#fff;color:var(--button-warning-color,#fff);background-color:#ff976a;background-color:var(--button-warning-background-color,#ff976a);border:1px solid #ff976a;border:1px solid var(--button-warning-border-color,#ff976a)}.van-button--plain{background-color:#fff;background-color:var(--button-plain-background-color,#fff)}.van-button--plain.van-button--primary{color:#07c160;color:var(--button-primary-background-color,#07c160)}.van-button--plain.van-button--info{color:#1989fa;color:var(--button-info-background-color,#1989fa)}.van-button--plain.van-button--danger{color:#ee0a24;color:var(--button-danger-background-color,#ee0a24)}.van-button--plain.van-button--warning{color:#ff976a;color:var(--button-warning-background-color,#ff976a)}.van-button--large{width:100%;height:50px;height:var(--button-large-height,50px)}.van-button--normal{padding:0 15px;font-size:14px;font-size:var(--button-normal-font-size,14px)}.van-button--small{min-width:60px;min-width:var(--button-small-min-width,60px);height:30px;height:var(--button-small-height,30px);padding:0 8px;padding:0 var(--padding-xs,8px);font-size:12px;font-size:var(--button-small-font-size,12px)}.van-button--mini{display:inline-block;min-width:50px;min-width:var(--button-mini-min-width,50px);height:22px;height:var(--button-mini-height,22px);font-size:10px;font-size:var(--button-mini-font-size,10px)}.van-button--mini+.van-button--mini{margin-left:5px}.van-button--block{display:-webkit-flex;display:flex;width:100%}.van-button--round{border-radius:999px;border-radius:var(--button-round-border-radius,999px)}.van-button--square{border-radius:0}.van-button--disabled{opacity:.5;opacity:var(--button-disabled-opacity,.5)}.van-button__text{display:inline}.van-button__icon+.van-button__text:not(:empty),.van-button__loading-text{margin-left:4px}.van-button__icon{min-width:1em;line-height:inherit!important;vertical-align:top}.van-button--hairline{padding-top:1px;border-width:0}.van-button--hairline:after{border-color:inherit;border-width:1px;border-radius:4px;border-radius:calc(var(--button-border-radius, 2px)*2)}.van-button--hairline.van-button--round:after{border-radius:999px;border-radius:var(--button-round-border-radius,999px)}.van-button--hairline.van-button--square:after{border-radius:0}
src/wxcomponents/vant/common/color.d.ts
File was created 1 export declare const RED = "#ee0a24";
2 export declare const BLUE = "#1989fa";
3 export declare const WHITE = "#fff";
4 export declare const GREEN = "#07c160";
5 export declare const ORANGE = "#ff976a";
6 export declare const GRAY = "#323233";
7 export declare const GRAY_DARK = "#969799";
8
src/wxcomponents/vant/common/color.js
File was created 1 export const RED = '#ee0a24';
2 export const BLUE = '#1989fa';
3 export const WHITE = '#fff';
4 export const GREEN = '#07c160';
5 export const ORANGE = '#ff976a';
6 export const GRAY = '#323233';
7 export const GRAY_DARK = '#969799';
8
src/wxcomponents/vant/common/component.d.ts
File was created 1 import { VantComponentOptions, CombinedComponentInstance } from '../definitions/index';
2 declare function VantComponent<Data, Props, Methods>(vantOptions?: VantComponentOptions<Data, Props, Methods, CombinedComponentInstance<Data, Props, Methods>>): void;
3 export { VantComponent };
4
src/wxcomponents/vant/common/component.js
File was created 1 import { basic } from '../mixins/basic';
2 import { observe } from '../mixins/observer/index';
3 function mapKeys(source, target, map) {
4 Object.keys(map).forEach(key => {
5 if (source[key]) {
6 target[map[key]] = source[key];
7 }
8 });
9 }
10 function VantComponent(vantOptions = {}) {
11 const options = {};
12 mapKeys(vantOptions, options, {
13 data: 'data',
14 props: 'properties',
15 mixins: 'behaviors',
16 methods: 'methods',
17 beforeCreate: 'created',
18 created: 'attached',
19 mounted: 'ready',
20 relations: 'relations',
21 destroyed: 'detached',
22 classes: 'externalClasses'
23 });
24 const { relation } = vantOptions;
25 if (relation) {
26 options.relations = Object.assign(options.relations || {}, {
27 [`../${relation.name}/index`]: relation
28 });
29 }
30 // add default externalClasses
31 options.externalClasses = options.externalClasses || [];
32 options.externalClasses.push('custom-class');
33 // add default behaviors
34 options.behaviors = options.behaviors || [];
35 options.behaviors.push(basic);
36 // map field to form-field behavior
37 if (vantOptions.field) {
38 options.behaviors.push('wx://form-field');
39 }
40 // add default options
41 options.options = {
42 multipleSlots: true,
43 addGlobalClass: true
44 };
45 observe(vantOptions, options);
46 Component(options);
47 }
48 export { VantComponent };
49
src/wxcomponents/vant/common/index.css
File was created 1 .van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{-webkit-line-clamp:3}.van-clearfix:after{display:table;clear:both;content:""}.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{position:absolute;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid #eee;-webkit-transform:scale(.5);transform:scale(.5)}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px}
src/wxcomponents/vant/common/index.wxss
File was created 1 .van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{-webkit-line-clamp:3}.van-clearfix:after{display:table;clear:both;content:""}.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{position:absolute;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid #eee;-webkit-transform:scale(.5);transform:scale(.5)}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px}
src/wxcomponents/vant/common/style/clearfix.css
File was created 1 .van-clearfix:after{display:table;clear:both;content:""}
src/wxcomponents/vant/common/style/clearfix.wxss
File was created 1 .van-clearfix:after{display:table;clear:both;content:""}
src/wxcomponents/vant/common/style/ellipsis.css
File was created 1 .van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{-webkit-line-clamp:3}
src/wxcomponents/vant/common/style/ellipsis.wxss
File was created 1 .van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{-webkit-line-clamp:3}
src/wxcomponents/vant/common/style/hairline.css
File was created 1 .van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{position:absolute;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid #eee;-webkit-transform:scale(.5);transform:scale(.5)}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px}
src/wxcomponents/vant/common/style/hairline.wxss
File was created 1 .van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{position:absolute;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid #eee;-webkit-transform:scale(.5);transform:scale(.5)}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px}
src/wxcomponents/vant/common/style/mixins/clearfix.css
src/wxcomponents/vant/common/style/mixins/clearfix.wxss
src/wxcomponents/vant/common/style/mixins/ellipsis.css
src/wxcomponents/vant/common/style/mixins/ellipsis.wxss
src/wxcomponents/vant/common/style/mixins/hairline.css
src/wxcomponents/vant/common/style/mixins/hairline.wxss
src/wxcomponents/vant/common/style/theme.css
src/wxcomponents/vant/common/style/theme.wxss
src/wxcomponents/vant/common/style/var.css
src/wxcomponents/vant/common/style/var.wxss
src/wxcomponents/vant/common/utils.d.ts
File was created 1 /// <reference types="miniprogram-api-typings" />
2 export declare function isDef(value: any): boolean;
3 export declare function isObj(x: any): boolean;
4 export declare function isNumber(value: any): boolean;
5 export declare function range(num: number, min: number, max: number): number;
6 export declare function nextTick(fn: Function): void;
7 export declare function getSystemInfoSync(): WechatMiniprogram.GetSystemInfoSuccessCallbackResult;
8 export declare function addUnit(value?: string | number): string | undefined;
9
src/wxcomponents/vant/common/utils.js
File was created 1 export function isDef(value) {
2 return value !== undefined && value !== null;
3 }
4 export function isObj(x) {
5 const type = typeof x;
6 return x !== null && (type === 'object' || type === 'function');
7 }
8 export function isNumber(value) {
9 return /^\d+(\.\d+)?$/.test(value);
10 }
11 export function range(num, min, max) {
12 return Math.min(Math.max(num, min), max);
13 }
14 export function nextTick(fn) {
15 setTimeout(() => {
16 fn();
17 }, 1000 / 30);
18 }
19 let systemInfo = null;
20 export function getSystemInfoSync() {
21 if (systemInfo == null) {
22 systemInfo = wx.getSystemInfoSync();
23 }
24 return systemInfo;
25 }
26 export function addUnit(value) {
27 if (!isDef(value)) {
28 return undefined;
29 }
30 value = String(value);
31 return isNumber(value) ? `${value}px` : value;
32 }
33
src/wxcomponents/vant/icon/index.d.ts
File was created 1 export {};
2
src/wxcomponents/vant/icon/index.js
File was created 1 import { VantComponent } from '../common/component';
2 import { addUnit } from '../common/utils';
3 VantComponent({
4 props: {
5 dot: Boolean,
6 info: null,
7 size: {
8 type: null,
9 observer: 'setSizeWithUnit'
10 },
11 color: String,
12 customStyle: String,
13 classPrefix: {
14 type: String,
15 value: 'van-icon'
16 },
17 name: {
18 type: String,
19 observer(val) {
20 this.setData({
21 isImageName: val.indexOf('/') !== -1
22 });
23 }
24 }
25 },
26 data: {
27 sizeWithUnit: null,
28 },
29 methods: {
30 onClick() {
31 this.$emit('click');
32 },
33 setSizeWithUnit(size) {
34 this.setData({
35 sizeWithUnit: addUnit(size)
36 });
37 }
38 }
39 });
40
src/wxcomponents/vant/icon/index.json
File was created 1 {
2 "component": true,
3 "usingComponents": {
4 "van-info": "../info/index"
5 }
6 }
7
src/wxcomponents/vant/icon/index.vue
File was created 1 <template>
2 <uni-shadow-root class="vant-icon-index"><view :class="'custom-class '+(classPrefix)+' '+(isImageName ? 'van-icon--image' : classPrefix + '-' + name)" :style="(color ? 'color: ' + color + ';' : '')+(size ? 'font-size: ' + sizeWithUnit + ';' : '')+(customStyle)" @click="onClick">
3 <van-info v-if="info !== null || dot" :dot="dot" :info="info" custom-class="van-icon__info"></van-info>
4 <image v-if="isImageName" :src="name" mode="aspectFit" class="van-icon__image"></image>
5 </view></uni-shadow-root>
6 </template>
7
8 <script>
9 import VanInfo from '../info/index.vue'
10 global['__wxVueOptions'] = {components:{'van-info': VanInfo}}
11
12 global['__wxRoute'] = 'vant/icon/index'
13 import { VantComponent } from '../common/component';
14 import { addUnit } from '../common/utils';
15 VantComponent({
16 props: {
17 dot: Boolean,
18 info: null,
19 size: {
20 type: null,
21 observer: 'setSizeWithUnit'
22 },
23 color: String,
24 customStyle: String,
25 classPrefix: {
26 type: String,
27 value: 'van-icon'
28 },
29 name: {
30 type: String,
31 observer(val) {
32 this.setData({
33 isImageName: val.indexOf('/') !== -1
34 });
35 }
36 }
37 },
38 data: {
39 sizeWithUnit: null,
40 },
41 methods: {
42 onClick() {
43 this.$emit('click');
44 },
45 setSizeWithUnit(size) {
46 this.setData({
47 sizeWithUnit: addUnit(size)
48 });
49 }
50 }
51 });
52 export default global['__wxComponents']['vant/icon/index']
53 </script>
54 <style platform="mp-weixin">
55 @import '../common/index.css';
56
57 @font-face {
58 font-weight: 400;
59 font-family: vant-icon;
60 font-style: normal;
61 font-display: auto;
62 src: url(https://img.yzcdn.cn/vant/vant-icon-d3825a.woff2) format("woff2"), url(https://img.yzcdn.cn/vant/vant-icon-d3825a.woff) format("woff"), url(https://img.yzcdn.cn/vant/vant-icon-d3825a.ttf) format("truetype")
63 }
64
65 .van-icon {
66 position: relative;
67 font: normal normal normal 14px/1 vant-icon;
68 font-size: inherit;
69 text-rendering: auto;
70 -webkit-font-smoothing: antialiased
71 }
72
73 .van-icon,
74 .van-icon:before {
75 display: inline-block
76 }
77
78 .van-icon-add-o:before {
79 content: "\F000"
80 }
81
82 .van-icon-add-square:before {
83 content: "\F001"
84 }
85
86 .van-icon-add:before {
87 content: "\F002"
88 }
89
90 .van-icon-after-sale:before {
91 content: "\F003"
92 }
93
94 .van-icon-aim:before {
95 content: "\F004"
96 }
97
98 .van-icon-alipay:before {
99 content: "\F005"
100 }
101
102 .van-icon-apps-o:before {
103 content: "\F006"
104 }
105
106 .van-icon-arrow-down:before {
107 content: "\F007"
108 }
109
110 .van-icon-arrow-left:before {
111 content: "\F008"
112 }
113
114 .van-icon-arrow-up:before {
115 content: "\F009"
116 }
117
118 .van-icon-arrow:before {
119 content: "\F00A"
120 }
121
122 .van-icon-ascending:before {
123 content: "\F00B"
124 }
125
126 .van-icon-audio:before {
127 content: "\F00C"
128 }
129
130 .van-icon-award-o:before {
131 content: "\F00D"
132 }
133
134 .van-icon-award:before {
135 content: "\F00E"
136 }
137
138 .van-icon-bag-o:before {
139 content: "\F00F"
140 }
141
142 .van-icon-bag:before {
143 content: "\F010"
144 }
145
146 .van-icon-balance-list-o:before {
147 content: "\F011"
148 }
149
150 .van-icon-balance-list:before {
151 content: "\F012"
152 }
153
154 .van-icon-balance-o:before {
155 content: "\F013"
156 }
157
158 .van-icon-balance-pay:before {
159 content: "\F014"
160 }
161
162 .van-icon-bar-chart-o:before {
163 content: "\F015"
164 }
165
166 .van-icon-bars:before {
167 content: "\F016"
168 }
169
170 .van-icon-bell:before {
171 content: "\F017"
172 }
173
174 .van-icon-bill-o:before {
175 content: "\F018"
176 }
177
178 .van-icon-bill:before {
179 content: "\F019"
180 }
181
182 .van-icon-birthday-cake-o:before {
183 content: "\F01A"
184 }
185
186 .van-icon-bookmark-o:before {
187 content: "\F01B"
188 }
189
190 .van-icon-bookmark:before {
191 content: "\F01C"
192 }
193
194 .van-icon-browsing-history-o:before {
195 content: "\F01D"
196 }
197
198 .van-icon-browsing-history:before {
199 content: "\F01E"
200 }
201
202 .van-icon-brush-o:before {
203 content: "\F01F"
204 }
205
206 .van-icon-bulb-o:before {
207 content: "\F020"
208 }
209
210 .van-icon-bullhorn-o:before {
211 content: "\F021"
212 }
213
214 .van-icon-calender-o:before {
215 content: "\F022"
216 }
217
218 .van-icon-card:before {
219 content: "\F023"
220 }
221
222 .van-icon-cart-circle-o:before {
223 content: "\F024"
224 }
225
226 .van-icon-cart-circle:before {
227 content: "\F025"
228 }
229
230 .van-icon-cart-o:before {
231 content: "\F026"
232 }
233
234 .van-icon-cart:before {
235 content: "\F027"
236 }
237
238 .van-icon-cash-back-record:before {
239 content: "\F028"
240 }
241
242 .van-icon-cash-on-deliver:before {
243 content: "\F029"
244 }
245
246 .van-icon-cashier-o:before {
247 content: "\F02A"
248 }
249
250 .van-icon-certificate:before {
251 content: "\F02B"
252 }
253
254 .van-icon-chart-trending-o:before {
255 content: "\F02C"
256 }
257
258 .van-icon-chat-o:before {
259 content: "\F02D"
260 }
261
262 .van-icon-chat:before {
263 content: "\F02E"
264 }
265
266 .van-icon-checked:before {
267 content: "\F02F"
268 }
269
270 .van-icon-circle:before {
271 content: "\F030"
272 }
273
274 .van-icon-clear:before {
275 content: "\F031"
276 }
277
278 .van-icon-clock-o:before {
279 content: "\F032"
280 }
281
282 .van-icon-clock:before {
283 content: "\F033"
284 }
285
286 .van-icon-close:before {
287 content: "\F034"
288 }
289
290 .van-icon-closed-eye:before {
291 content: "\F035"
292 }
293
294 .van-icon-cluster-o:before {
295 content: "\F036"
296 }
297
298 .van-icon-cluster:before {
299 content: "\F037"
300 }
301
302 .van-icon-column:before {
303 content: "\F038"
304 }
305
306 .van-icon-comment-circle-o:before {
307 content: "\F039"
308 }
309
310 .van-icon-comment-circle:before {
311 content: "\F03A"
312 }
313
314 .van-icon-comment-o:before {
315 content: "\F03B"
316 }
317
318 .van-icon-comment:before {
319 content: "\F03C"
320 }
321
322 .van-icon-completed:before {
323 content: "\F03D"
324 }
325
326 .van-icon-contact:before {
327 content: "\F03E"
328 }
329
330 .van-icon-coupon-o:before {
331 content: "\F03F"
332 }
333
334 .van-icon-coupon:before {
335 content: "\F040"
336 }
337
338 .van-icon-credit-pay:before {
339 content: "\F041"
340 }
341
342 .van-icon-cross:before {
343 content: "\F042"
344 }
345
346 .van-icon-debit-pay:before {
347 content: "\F043"
348 }
349
350 .van-icon-delete:before {
351 content: "\F044"
352 }
353
354 .van-icon-descending:before {
355 content: "\F045"
356 }
357
358 .van-icon-description:before {
359 content: "\F046"
360 }
361
362 .van-icon-desktop-o:before {
363 content: "\F047"
364 }
365
366 .van-icon-diamond-o:before {
367 content: "\F048"
368 }
369
370 .van-icon-diamond:before {
371 content: "\F049"
372 }
373
374 .van-icon-discount:before {
375 content: "\F04A"
376 }
377
378 .van-icon-down:before {
379 content: "\F04B"
380 }
381
382 .van-icon-ecard-pay:before {
383 content: "\F04C"
384 }
385
386 .van-icon-edit:before {
387 content: "\F04D"
388 }
389
390 .van-icon-ellipsis:before {
391 content: "\F04E"
392 }
393
394 .van-icon-empty:before {
395 content: "\F04F"
396 }
397
398 .van-icon-envelop-o:before {
399 content: "\F050"
400 }
401
402 .van-icon-exchange:before {
403 content: "\F051"
404 }
405
406 .van-icon-expand-o:before {
407 content: "\F052"
408 }
409
410 .van-icon-expand:before {
411 content: "\F053"
412 }
413
414 .van-icon-eye-o:before {
415 content: "\F054"
416 }
417
418 .van-icon-eye:before {
419 content: "\F055"
420 }
421
422 .van-icon-fail:before {
423 content: "\F056"
424 }
425
426 .van-icon-failure:before {
427 content: "\F057"
428 }
429
430 .van-icon-filter-o:before {
431 content: "\F058"
432 }
433
434 .van-icon-fire-o:before {
435 content: "\F059"
436 }
437
438 .van-icon-fire:before {
439 content: "\F05A"
440 }
441
442 .van-icon-flag-o:before {
443 content: "\F05B"
444 }
445
446 .van-icon-flower-o:before {
447 content: "\F05C"
448 }
449
450 .van-icon-free-postage:before {
451 content: "\F05D"
452 }
453
454 .van-icon-friends-o:before {
455 content: "\F05E"
456 }
457
458 .van-icon-friends:before {
459 content: "\F05F"
460 }
461
462 .van-icon-gem-o:before {
463 content: "\F060"
464 }
465
466 .van-icon-gem:before {
467 content: "\F061"
468 }
469
470 .van-icon-gift-card-o:before {
471 content: "\F062"
472 }
473
474 .van-icon-gift-card:before {
475 content: "\F063"
476 }
477
478 .van-icon-gift-o:before {
479 content: "\F064"
480 }
481
482 .van-icon-gift:before {
483 content: "\F065"
484 }
485
486 .van-icon-gold-coin-o:before {
487 content: "\F066"
488 }
489
490 .van-icon-gold-coin:before {
491 content: "\F067"
492 }
493
494 .van-icon-good-job-o:before {
495 content: "\F068"
496 }
497
498 .van-icon-good-job:before {
499 content: "\F069"
500 }
501
502 .van-icon-goods-collect-o:before {
503 content: "\F06A"
504 }
505
506 .van-icon-goods-collect:before {
507 content: "\F06B"
508 }
509
510 .van-icon-graphic:before {
511 content: "\F06C"
512 }
513
514 .van-icon-home-o:before {
515 content: "\F06D"
516 }
517
518 .van-icon-hot-o:before {
519 content: "\F06E"
520 }
521
522 .van-icon-hot-sale-o:before {
523 content: "\F06F"
524 }
525
526 .van-icon-hot-sale:before {
527 content: "\F070"
528 }
529
530 .van-icon-hot:before {
531 content: "\F071"
532 }
533
534 .van-icon-hotel-o:before {
535 content: "\F072"
536 }
537
538 .van-icon-idcard:before {
539 content: "\F073"
540 }
541
542 .van-icon-info-o:before {
543 content: "\F074"
544 }
545
546 .van-icon-info:before {
547 content: "\F075"
548 }
549
550 .van-icon-invition:before {
551 content: "\F076"
552 }
553
554 .van-icon-label-o:before {
555 content: "\F077"
556 }
557
558 .van-icon-label:before {
559 content: "\F078"
560 }
561
562 .van-icon-like-o:before {
563 content: "\F079"
564 }
565
566 .van-icon-like:before {
567 content: "\F07A"
568 }
569
570 .van-icon-live:before {
571 content: "\F07B"
572 }
573
574 .van-icon-location-o:before {
575 content: "\F07C"
576 }
577
578 .van-icon-location:before {
579 content: "\F07D"
580 }
581
582 .van-icon-lock:before {
583 content: "\F07E"
584 }
585
586 .van-icon-logistics:before {
587 content: "\F07F"
588 }
589
590 .van-icon-manager-o:before {
591 content: "\F080"
592 }
593
594 .van-icon-manager:before {
595 content: "\F081"
596 }
597
598 .van-icon-map-marked:before {
599 content: "\F082"
600 }
601
602 .van-icon-medal-o:before {
603 content: "\F083"
604 }
605
606 .van-icon-medal:before {
607 content: "\F084"
608 }
609
610 .van-icon-more-o:before {
611 content: "\F085"
612 }
613
614 .van-icon-more:before {
615 content: "\F086"
616 }
617
618 .van-icon-music-o:before {
619 content: "\F087"
620 }
621
622 .van-icon-music:before {
623 content: "\F088"
624 }
625
626 .van-icon-new-arrival-o:before {
627 content: "\F089"
628 }
629
630 .van-icon-new-arrival:before {
631 content: "\F08A"
632 }
633
634 .van-icon-new-o:before {
635 content: "\F08B"
636 }
637
638 .van-icon-new:before {
639 content: "\F08C"
640 }
641
642 .van-icon-newspaper-o:before {
643 content: "\F08D"
644 }
645
646 .van-icon-notes-o:before {
647 content: "\F08E"
648 }
649
650 .van-icon-orders-o:before {
651 content: "\F08F"
652 }
653
654 .van-icon-other-pay:before {
655 content: "\F090"
656 }
657
658 .van-icon-paid:before {
659 content: "\F091"
660 }
661
662 .van-icon-passed:before {
663 content: "\F092"
664 }
665
666 .van-icon-pause-circle-o:before {
667 content: "\F093"
668 }
669
670 .van-icon-pause-circle:before {
671 content: "\F094"
672 }
673
674 .van-icon-pause:before {
675 content: "\F095"
676 }
677
678 .van-icon-peer-pay:before {
679 content: "\F096"
680 }
681
682 .van-icon-pending-payment:before {
683 content: "\F097"
684 }
685
686 .van-icon-phone-circle-o:before {
687 content: "\F098"
688 }
689
690 .van-icon-phone-circle:before {
691 content: "\F099"
692 }
693
694 .van-icon-phone-o:before {
695 content: "\F09A"
696 }
697
698 .van-icon-phone:before {
699 content: "\F09B"
700 }
701
702 .van-icon-photo-o:before {
703 content: "\F09C"
704 }
705
706 .van-icon-photo:before {
707 content: "\F09D"
708 }
709
710 .van-icon-photograph:before {
711 content: "\F09E"
712 }
713
714 .van-icon-play-circle-o:before {
715 content: "\F09F"
716 }
717
718 .van-icon-play-circle:before {
719 content: "\F0A0"
720 }
721
722 .van-icon-play:before {
723 content: "\F0A1"
724 }
725
726 .van-icon-plus:before {
727 content: "\F0A2"
728 }
729
730 .van-icon-point-gift-o:before {
731 content: "\F0A3"
732 }
733
734 .van-icon-point-gift:before {
735 content: "\F0A4"
736 }
737
738 .van-icon-points:before {
739 content: "\F0A5"
740 }
741
742 .van-icon-printer:before {
743 content: "\F0A6"
744 }
745
746 .van-icon-qr-invalid:before {
747 content: "\F0A7"
748 }
749
750 .van-icon-qr:before {
751 content: "\F0A8"
752 }
753
754 .van-icon-question-o:before {
755 content: "\F0A9"
756 }
757
758 .van-icon-question:before {
759 content: "\F0AA"
760 }
761
762 .van-icon-records:before {
763 content: "\F0AB"
764 }
765
766 .van-icon-refund-o:before {
767 content: "\F0AC"
768 }
769
770 .van-icon-replay:before {
771 content: "\F0AD"
772 }
773
774 .van-icon-scan:before {
775 content: "\F0AE"
776 }
777
778 .van-icon-search:before {
779 content: "\F0AF"
780 }
781
782 .van-icon-send-gift-o:before {
783 content: "\F0B0"
784 }
785
786 .van-icon-send-gift:before {
787 content: "\F0B1"
788 }
789
790 .van-icon-service-o:before {
791 content: "\F0B2"
792 }
793
794 .van-icon-service:before {
795 content: "\F0B3"
796 }
797
798 .van-icon-setting-o:before {
799 content: "\F0B4"
800 }
801
802 .van-icon-setting:before {
803 content: "\F0B5"
804 }
805
806 .van-icon-share:before {
807 content: "\F0B6"
808 }
809
810 .van-icon-shop-collect-o:before {
811 content: "\F0B7"
812 }
813
814 .van-icon-shop-collect:before {
815 content: "\F0B8"
816 }
817
818 .van-icon-shop-o:before {
819 content: "\F0B9"
820 }
821
822 .van-icon-shop:before {
823 content: "\F0BA"
824 }
825
826 .van-icon-shopping-cart-o:before {
827 content: "\F0BB"
828 }
829
830 .van-icon-shopping-cart:before {
831 content: "\F0BC"
832 }
833
834 .van-icon-shrink:before {
835 content: "\F0BD"
836 }
837
838 .van-icon-sign:before {
839 content: "\F0BE"
840 }
841
842 .van-icon-smile-comment-o:before {
843 content: "\F0BF"
844 }
845
846 .van-icon-smile-comment:before {
847 content: "\F0C0"
848 }
849
850 .van-icon-smile-o:before {
851 content: "\F0C1"
852 }
853
854 .van-icon-smile:before {
855 content: "\F0C2"
856 }
857
858 .van-icon-star-o:before {
859 content: "\F0C3"
860 }
861
862 .van-icon-star:before {
863 content: "\F0C4"
864 }
865
866 .van-icon-stop-circle-o:before {
867 content: "\F0C5"
868 }
869
870 .van-icon-stop-circle:before {
871 content: "\F0C6"
872 }
873
874 .van-icon-stop:before {
875 content: "\F0C7"
876 }
877
878 .van-icon-success:before {
879 content: "\F0C8"
880 }
881
882 .van-icon-thumb-circle-o:before {
883 content: "\F0C9"
884 }
885
886 .van-icon-thumb-circle:before {
887 content: "\F0CA"
888 }
889
890 .van-icon-todo-list-o:before {
891 content: "\F0CB"
892 }
893
894 .van-icon-todo-list:before {
895 content: "\F0CC"
896 }
897
898 .van-icon-tosend:before {
899 content: "\F0CD"
900 }
901
902 .van-icon-tv-o:before {
903 content: "\F0CE"
904 }
905
906 .van-icon-umbrella-circle:before {
907 content: "\F0CF"
908 }
909
910 .van-icon-underway-o:before {
911 content: "\F0D0"
912 }
913
914 .van-icon-underway:before {
915 content: "\F0D1"
916 }
917
918 .van-icon-upgrade:before {
919 content: "\F0D2"
920 }
921
922 .van-icon-user-circle-o:before {
923 content: "\F0D3"
924 }
925
926 .van-icon-user-o:before {
927 content: "\F0D4"
928 }
929
930 .van-icon-video-o:before {
931 content: "\F0D5"
932 }
933
934 .van-icon-video:before {
935 content: "\F0D6"
936 }
937
938 .van-icon-vip-card-o:before {
939 content: "\F0D7"
940 }
941
942 .van-icon-vip-card:before {
943 content: "\F0D8"
944 }
945
946 .van-icon-volume-o:before {
947 content: "\F0D9"
948 }
949
950 .van-icon-volume:before {
951 content: "\F0DA"
952 }
953
954 .van-icon-wap-home-o:before {
955 content: "\F0DB"
956 }
957
958 .van-icon-wap-home:before {
959 content: "\F0DC"
960 }
961
962 .van-icon-wap-nav:before {
963 content: "\F0DD"
964 }
965
966 .van-icon-warn-o:before {
967 content: "\F0DE"
968 }
969
970 .van-icon-warning-o:before {
971 content: "\F0DF"
972 }
973
974 .van-icon-warning:before {
975 content: "\F0E0"
976 }
977
978 .van-icon-weapp-nav:before {
979 content: "\F0E1"
980 }
981
982 .van-icon-wechat:before {
983 content: "\F0E2"
984 }
985
986 .van-icon-youzan-shield:before {
987 content: "\F0E3"
988 }
989
990 .vant-icon-index {
991 display: -webkit-inline-flex;
992 display: inline-flex;
993 -webkit-align-items: center;
994 align-items: center;
995 -webkit-justify-content: center;
996 justify-content: center
997 }
998
999 .van-icon--image {
1000 width: 1em;
1001 height: 1em
1002 }
1003
1004 .van-icon__image {
1005 width: 100%;
1006 height: 100%
1007 }
1008
1009 .van-icon__info {
1010 z-index: 1
1011 }
1012 </style>
src/wxcomponents/vant/icon/index.wxml
File was created 1 <view
2 class="custom-class {{ classPrefix }} {{ isImageName ? 'van-icon--image' : classPrefix + '-' + name }}"
3 style="{{ color ? 'color: ' + color + ';' : '' }}{{ size ? 'font-size: ' + sizeWithUnit + ';' : '' }}{{ customStyle }}"
4 bind:tap="onClick"
5 >
6 <van-info
7 wx:if="{{ info !== null || dot }}"
8 dot="{{ dot }}"
9 info="{{ info }}"
10 custom-class="van-icon__info"
11 />
12 <image
13 wx:if="{{ isImageName }}"
14 src="{{ name }}"
15 mode="aspectFit"
16 class="van-icon__image"
17 />
18 </view>
19
src/wxcomponents/vant/icon/index.wxss
File was created 1 @import '../common/index.wxss';
2
3 @font-face {
4 font-weight: 400;
5 font-family: vant-icon;
6 font-style: normal;
7 font-display: auto;
8 src: url(https://img.yzcdn.cn/vant/vant-icon-d3825a.woff2) format("woff2"), url(https://img.yzcdn.cn/vant/vant-icon-d3825a.woff) format("woff"), url(https://img.yzcdn.cn/vant/vant-icon-d3825a.ttf) format("truetype")
9 }
10
11 .van-icon {
12 position: relative;
13 font: normal normal normal 14px/1 vant-icon;
14 font-size: inherit;
15 text-rendering: auto;
16 -webkit-font-smoothing: antialiased
17 }
18
19 .van-icon,
20 .van-icon:before {
21 display: inline-block
22 }
23
24 .van-icon-add-o:before {
25 content: "\F000"
26 }
27
28 .van-icon-add-square:before {
29 content: "\F001"
30 }
31
32 .van-icon-add:before {
33 content: "\F002"
34 }
35
36 .van-icon-after-sale:before {
37 content: "\F003"
38 }
39
40 .van-icon-aim:before {
41 content: "\F004"
42 }
43
44 .van-icon-alipay:before {
45 content: "\F005"
46 }
47
48 .van-icon-apps-o:before {
49 content: "\F006"
50 }
51
52 .van-icon-arrow-down:before {
53 content: "\F007"
54 }
55
56 .van-icon-arrow-left:before {
57 content: "\F008"
58 }
59
60 .van-icon-arrow-up:before {
61 content: "\F009"
62 }
63
64 .van-icon-arrow:before {
65 content: "\F00A"
66 }
67
68 .van-icon-ascending:before {
69 content: "\F00B"
70 }
71
72 .van-icon-audio:before {
73 content: "\F00C"
74 }
75
76 .van-icon-award-o:before {
77 content: "\F00D"
78 }
79
80 .van-icon-award:before {
81 content: "\F00E"
82 }
83
84 .van-icon-bag-o:before {
85 content: "\F00F"
86 }
87
88 .van-icon-bag:before {
89 content: "\F010"
90 }
91
92 .van-icon-balance-list-o:before {
93 content: "\F011"
94 }
95
96 .van-icon-balance-list:before {
97 content: "\F012"
98 }
99
100 .van-icon-balance-o:before {
101 content: "\F013"
102 }
103
104 .van-icon-balance-pay:before {
105 content: "\F014"
106 }
107
108 .van-icon-bar-chart-o:before {
109 content: "\F015"
110 }
111
112 .van-icon-bars:before {
113 content: "\F016"
114 }
115
116 .van-icon-bell:before {
117 content: "\F017"
118 }
119
120 .van-icon-bill-o:before {
121 content: "\F018"
122 }
123
124 .van-icon-bill:before {
125 content: "\F019"
126 }
127
128 .van-icon-birthday-cake-o:before {
129 content: "\F01A"
130 }
131
132 .van-icon-bookmark-o:before {
133 content: "\F01B"
134 }
135
136 .van-icon-bookmark:before {
137 content: "\F01C"
138 }
139
140 .van-icon-browsing-history-o:before {
141 content: "\F01D"
142 }
143
144 .van-icon-browsing-history:before {
145 content: "\F01E"
146 }
147
148 .van-icon-brush-o:before {
149 content: "\F01F"
150 }
151
152 .van-icon-bulb-o:before {
153 content: "\F020"
154 }
155
156 .van-icon-bullhorn-o:before {
157 content: "\F021"
158 }
159
160 .van-icon-calender-o:before {
161 content: "\F022"
162 }
163
164 .van-icon-card:before {
165 content: "\F023"
166 }
167
168 .van-icon-cart-circle-o:before {
169 content: "\F024"
170 }
171
172 .van-icon-cart-circle:before {
173 content: "\F025"
174 }
175
176 .van-icon-cart-o:before {
177 content: "\F026"
178 }
179
180 .van-icon-cart:before {
181 content: "\F027"
182 }
183
184 .van-icon-cash-back-record:before {
185 content: "\F028"
186 }
187
188 .van-icon-cash-on-deliver:before {
189 content: "\F029"
190 }
191
192 .van-icon-cashier-o:before {
193 content: "\F02A"
194 }
195
196 .van-icon-certificate:before {
197 content: "\F02B"
198 }
199
200 .van-icon-chart-trending-o:before {
201 content: "\F02C"
202 }
203
204 .van-icon-chat-o:before {
205 content: "\F02D"
206 }
207
208 .van-icon-chat:before {
209 content: "\F02E"
210 }
211
212 .van-icon-checked:before {
213 content: "\F02F"
214 }
215
216 .van-icon-circle:before {
217 content: "\F030"
218 }
219
220 .van-icon-clear:before {
221 content: "\F031"
222 }
223
224 .van-icon-clock-o:before {
225 content: "\F032"
226 }
227
228 .van-icon-clock:before {
229 content: "\F033"
230 }
231
232 .van-icon-close:before {
233 content: "\F034"
234 }
235
236 .van-icon-closed-eye:before {
237 content: "\F035"
238 }
239
240 .van-icon-cluster-o:before {
241 content: "\F036"
242 }
243
244 .van-icon-cluster:before {
245 content: "\F037"
246 }
247
248 .van-icon-column:before {
249 content: "\F038"
250 }
251
252 .van-icon-comment-circle-o:before {
253 content: "\F039"
254 }
255
256 .van-icon-comment-circle:before {
257 content: "\F03A"
258 }
259
260 .van-icon-comment-o:before {
261 content: "\F03B"
262 }
263
264 .van-icon-comment:before {
265 content: "\F03C"
266 }
267
268 .van-icon-completed:before {
269 content: "\F03D"
270 }
271
272 .van-icon-contact:before {
273 content: "\F03E"
274 }
275
276 .van-icon-coupon-o:before {
277 content: "\F03F"
278 }
279
280 .van-icon-coupon:before {
281 content: "\F040"
282 }
283
284 .van-icon-credit-pay:before {
285 content: "\F041"
286 }
287
288 .van-icon-cross:before {
289 content: "\F042"
290 }
291
292 .van-icon-debit-pay:before {
293 content: "\F043"
294 }
295
296 .van-icon-delete:before {
297 content: "\F044"
298 }
299
300 .van-icon-descending:before {
301 content: "\F045"
302 }
303
304 .van-icon-description:before {
305 content: "\F046"
306 }
307
308 .van-icon-desktop-o:before {
309 content: "\F047"
310 }
311
312 .van-icon-diamond-o:before {
313 content: "\F048"
314 }
315
316 .van-icon-diamond:before {
317 content: "\F049"
318 }
319
320 .van-icon-discount:before {
321 content: "\F04A"
322 }
323
324 .van-icon-down:before {
325 content: "\F04B"
326 }
327
328 .van-icon-ecard-pay:before {
329 content: "\F04C"
330 }
331
332 .van-icon-edit:before {
333 content: "\F04D"
334 }
335
336 .van-icon-ellipsis:before {
337 content: "\F04E"
338 }
339
340 .van-icon-empty:before {
341 content: "\F04F"
342 }
343
344 .van-icon-envelop-o:before {
345 content: "\F050"
346 }
347
348 .van-icon-exchange:before {
349 content: "\F051"
350 }
351
352 .van-icon-expand-o:before {
353 content: "\F052"
354 }
355
356 .van-icon-expand:before {
357 content: "\F053"
358 }
359
360 .van-icon-eye-o:before {
361 content: "\F054"
362 }
363
364 .van-icon-eye:before {
365 content: "\F055"
366 }
367
368 .van-icon-fail:before {
369 content: "\F056"
370 }
371
372 .van-icon-failure:before {
373 content: "\F057"
374 }
375
376 .van-icon-filter-o:before {
377 content: "\F058"
378 }
379
380 .van-icon-fire-o:before {
381 content: "\F059"
382 }
383
384 .van-icon-fire:before {
385 content: "\F05A"
386 }
387
388 .van-icon-flag-o:before {
389 content: "\F05B"
390 }
391
392 .van-icon-flower-o:before {
393 content: "\F05C"
394 }
395
396 .van-icon-free-postage:before {
397 content: "\F05D"
398 }
399
400 .van-icon-friends-o:before {
401 content: "\F05E"
402 }
403
404 .van-icon-friends:before {
405 content: "\F05F"
406 }
407
408 .van-icon-gem-o:before {
409 content: "\F060"
410 }
411
412 .van-icon-gem:before {
413 content: "\F061"
414 }
415
416 .van-icon-gift-card-o:before {
417 content: "\F062"
418 }
419
420 .van-icon-gift-card:before {
421 content: "\F063"
422 }
423
424 .van-icon-gift-o:before {
425 content: "\F064"
426 }
427
428 .van-icon-gift:before {
429 content: "\F065"
430 }
431
432 .van-icon-gold-coin-o:before {
433 content: "\F066"
434 }
435
436 .van-icon-gold-coin:before {
437 content: "\F067"
438 }
439
440 .van-icon-good-job-o:before {
441 content: "\F068"
442 }
443
444 .van-icon-good-job:before {
445 content: "\F069"
446 }
447
448 .van-icon-goods-collect-o:before {
449 content: "\F06A"
450 }
451
452 .van-icon-goods-collect:before {
453 content: "\F06B"
454 }
455
456 .van-icon-graphic:before {
457 content: "\F06C"
458 }
459
460 .van-icon-home-o:before {
461 content: "\F06D"
462 }
463
464 .van-icon-hot-o:before {
465 content: "\F06E"
466 }
467
468 .van-icon-hot-sale-o:before {
469 content: "\F06F"
470 }
471
472 .van-icon-hot-sale:before {
473 content: "\F070"
474 }
475
476 .van-icon-hot:before {
477 content: "\F071"
478 }
479
480 .van-icon-hotel-o:before {
481 content: "\F072"
482 }
483
484 .van-icon-idcard:before {
485 content: "\F073"
486 }
487
488 .van-icon-info-o:before {
489 content: "\F074"
490 }
491
492 .van-icon-info:before {
493 content: "\F075"
494 }
495
496 .van-icon-invition:before {
497 content: "\F076"
498 }
499
500 .van-icon-label-o:before {
501 content: "\F077"
502 }
503
504 .van-icon-label:before {
505 content: "\F078"
506 }
507
508 .van-icon-like-o:before {
509 content: "\F079"
510 }
511
512 .van-icon-like:before {
513 content: "\F07A"
514 }
515
516 .van-icon-live:before {
517 content: "\F07B"
518 }
519
520 .van-icon-location-o:before {
521 content: "\F07C"
522 }
523
524 .van-icon-location:before {
525 content: "\F07D"
526 }
527
528 .van-icon-lock:before {
529 content: "\F07E"
530 }
531
532 .van-icon-logistics:before {
533 content: "\F07F"
534 }
535
536 .van-icon-manager-o:before {
537 content: "\F080"
538 }
539
540 .van-icon-manager:before {
541 content: "\F081"
542 }
543
544 .van-icon-map-marked:before {
545 content: "\F082"
546 }
547
548 .van-icon-medal-o:before {
549 content: "\F083"
550 }
551
552 .van-icon-medal:before {
553 content: "\F084"
554 }
555
556 .van-icon-more-o:before {
557 content: "\F085"
558 }
559
560 .van-icon-more:before {
561 content: "\F086"
562 }
563
564 .van-icon-music-o:before {
565 content: "\F087"
566 }
567
568 .van-icon-music:before {
569 content: "\F088"
570 }
571
572 .van-icon-new-arrival-o:before {
573 content: "\F089"
574 }
575
576 .van-icon-new-arrival:before {
577 content: "\F08A"
578 }
579
580 .van-icon-new-o:before {
581 content: "\F08B"
582 }
583
584 .van-icon-new:before {
585 content: "\F08C"
586 }
587
588 .van-icon-newspaper-o:before {
589 content: "\F08D"
590 }
591
592 .van-icon-notes-o:before {
593 content: "\F08E"
594 }
595
596 .van-icon-orders-o:before {
597 content: "\F08F"
598 }
599
600 .van-icon-other-pay:before {
601 content: "\F090"
602 }
603
604 .van-icon-paid:before {
605 content: "\F091"
606 }
607
608 .van-icon-passed:before {
609 content: "\F092"
610 }
611
612 .van-icon-pause-circle-o:before {
613 content: "\F093"
614 }
615
616 .van-icon-pause-circle:before {
617 content: "\F094"
618 }
619
620 .van-icon-pause:before {
621 content: "\F095"
622 }
623
624 .van-icon-peer-pay:before {
625 content: "\F096"
626 }
627
628 .van-icon-pending-payment:before {
629 content: "\F097"
630 }
631
632 .van-icon-phone-circle-o:before {
633 content: "\F098"
634 }
635
636 .van-icon-phone-circle:before {
637 content: "\F099"
638 }
639
640 .van-icon-phone-o:before {
641 content: "\F09A"
642 }
643
644 .van-icon-phone:before {
645 content: "\F09B"
646 }
647
648 .van-icon-photo-o:before {
649 content: "\F09C"
650 }
651
652 .van-icon-photo:before {
653 content: "\F09D"
654 }
655
656 .van-icon-photograph:before {
657 content: "\F09E"
658 }
659
660 .van-icon-play-circle-o:before {
661 content: "\F09F"
662 }
663
664 .van-icon-play-circle:before {
665 content: "\F0A0"
666 }
667
668 .van-icon-play:before {
669 content: "\F0A1"
670 }
671
672 .van-icon-plus:before {
673 content: "\F0A2"
674 }
675
676 .van-icon-point-gift-o:before {
677 content: "\F0A3"
678 }
679
680 .van-icon-point-gift:before {
681 content: "\F0A4"
682 }
683
684 .van-icon-points:before {
685 content: "\F0A5"
686 }
687
688 .van-icon-printer:before {
689 content: "\F0A6"
690 }
691
692 .van-icon-qr-invalid:before {
693 content: "\F0A7"
694 }
695
696 .van-icon-qr:before {
697 content: "\F0A8"
698 }
699
700 .van-icon-question-o:before {
701 content: "\F0A9"
702 }
703
704 .van-icon-question:before {
705 content: "\F0AA"
706 }
707
708 .van-icon-records:before {
709 content: "\F0AB"
710 }
711
712 .van-icon-refund-o:before {
713 content: "\F0AC"
714 }
715
716 .van-icon-replay:before {
717 content: "\F0AD"
718 }
719
720 .van-icon-scan:before {
721 content: "\F0AE"
722 }
723
724 .van-icon-search:before {
725 content: "\F0AF"
726 }
727
728 .van-icon-send-gift-o:before {
729 content: "\F0B0"
730 }
731
732 .van-icon-send-gift:before {
733 content: "\F0B1"
734 }
735
736 .van-icon-service-o:before {
737 content: "\F0B2"
738 }
739
740 .van-icon-service:before {
741 content: "\F0B3"
742 }
743
744 .van-icon-setting-o:before {
745 content: "\F0B4"
746 }
747
748 .van-icon-setting:before {
749 content: "\F0B5"
750 }
751
752 .van-icon-share:before {
753 content: "\F0B6"
754 }
755
756 .van-icon-shop-collect-o:before {
757 content: "\F0B7"
758 }
759
760 .van-icon-shop-collect:before {
761 content: "\F0B8"
762 }
763
764 .van-icon-shop-o:before {
765 content: "\F0B9"
766 }
767
768 .van-icon-shop:before {
769 content: "\F0BA"
770 }
771
772 .van-icon-shopping-cart-o:before {
773 content: "\F0BB"
774 }
775
776 .van-icon-shopping-cart:before {
777 content: "\F0BC"
778 }
779
780 .van-icon-shrink:before {
781 content: "\F0BD"
782 }
783
784 .van-icon-sign:before {
785 content: "\F0BE"
786 }
787
788 .van-icon-smile-comment-o:before {
789 content: "\F0BF"
790 }
791
792 .van-icon-smile-comment:before {
793 content: "\F0C0"
794 }
795
796 .van-icon-smile-o:before {
797 content: "\F0C1"
798 }
799
800 .van-icon-smile:before {
801 content: "\F0C2"
802 }
803
804 .van-icon-star-o:before {
805 content: "\F0C3"
806 }
807
808 .van-icon-star:before {
809 content: "\F0C4"
810 }
811
812 .van-icon-stop-circle-o:before {
813 content: "\F0C5"
814 }
815
816 .van-icon-stop-circle:before {
817 content: "\F0C6"
818 }
819
820 .van-icon-stop:before {
821 content: "\F0C7"
822 }
823
824 .van-icon-success:before {
825 content: "\F0C8"
826 }
827
828 .van-icon-thumb-circle-o:before {
829 content: "\F0C9"
830 }
831
832 .van-icon-thumb-circle:before {
833 content: "\F0CA"
834 }
835
836 .van-icon-todo-list-o:before {
837 content: "\F0CB"
838 }
839
840 .van-icon-todo-list:before {
841 content: "\F0CC"
842 }
843
844 .van-icon-tosend:before {
845 content: "\F0CD"
846 }
847
848 .van-icon-tv-o:before {
849 content: "\F0CE"
850 }
851
852 .van-icon-umbrella-circle:before {
853 content: "\F0CF"
854 }
855
856 .van-icon-underway-o:before {
857 content: "\F0D0"
858 }
859
860 .van-icon-underway:before {
861 content: "\F0D1"
862 }
863
864 .van-icon-upgrade:before {
865 content: "\F0D2"
866 }
867
868 .van-icon-user-circle-o:before {
869 content: "\F0D3"
870 }
871
872 .van-icon-user-o:before {
873 content: "\F0D4"
874 }
875
876 .van-icon-video-o:before {
877 content: "\F0D5"
878 }
879
880 .van-icon-video:before {
881 content: "\F0D6"
882 }
883
884 .van-icon-vip-card-o:before {
885 content: "\F0D7"
886 }
887
888 .van-icon-vip-card:before {
889 content: "\F0D8"
890 }
891
892 .van-icon-volume-o:before {
893 content: "\F0D9"
894 }
895
896 .van-icon-volume:before {
897 content: "\F0DA"
898 }
899
900 .van-icon-wap-home-o:before {
901 content: "\F0DB"
902 }
903
904 .van-icon-wap-home:before {
905 content: "\F0DC"
906 }
907
908 .van-icon-wap-nav:before {
909 content: "\F0DD"
910 }
911
912 .van-icon-warn-o:before {
913 content: "\F0DE"
914 }
915
916 .van-icon-warning-o:before {
917 content: "\F0DF"
918 }
919
920 .van-icon-warning:before {
921 content: "\F0E0"
922 }
923
924 .van-icon-weapp-nav:before {
925 content: "\F0E1"
926 }
927
928 .van-icon-wechat:before {
929 content: "\F0E2"
930 }
931
932 .van-icon-youzan-shield:before {
933 content: "\F0E3"
934 }
935
936 :host {
937 display: -webkit-inline-flex;
938 display: inline-flex;
939 -webkit-align-items: center;
940 align-items: center;
941 -webkit-justify-content: center;
942 justify-content: center
943 }
944
945 .van-icon--image {
946 width: 1em;
947 height: 1em
948 }
949
950 .van-icon__image {
951 width: 100%;
952 height: 100%
953 }
954
955 .van-icon__info {
956 z-index: 1
957 }
958
src/wxcomponents/vant/info/index.d.ts
File was created 1 export {};
2
src/wxcomponents/vant/info/index.js
File was created 1 import { VantComponent } from '../common/component';
2 VantComponent({
3 props: {
4 dot: Boolean,
5 info: null,
6 customStyle: String
7 }
8 });
9
src/wxcomponents/vant/info/index.json
File was created 1 {
2 "component": true
3 }
4
src/wxcomponents/vant/info/index.vue
File was created 1 <template>
2 <uni-shadow-root class="vant-info-index"><view v-if="info !== null && info !== '' || dot" :class="'custom-class van-info '+(utils.bem('info', { dot }))" :style="customStyle">{{ dot ? '' : info }}</view></uni-shadow-root>
3 </template>
4 <wxs src="../wxs/utils.wxs" module="utils"></wxs>
5 <script>
6
7 global['__wxRoute'] = 'vant/info/index'
8 import { VantComponent } from '../common/component';
9 VantComponent({
10 props: {
11 dot: Boolean,
12 info: null,
13 customStyle: String
14 }
15 });
16 export default global['__wxComponents']['vant/info/index']
17 </script>
18 <style platform="mp-weixin">
19 @import '../common/index.css';.van-info{position:absolute;top:0;right:0;box-sizing:border-box;white-space:nowrap;text-align:center;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%);-webkit-transform-origin:100%;transform-origin:100%;min-width:16px;min-width:var(--info-size,16px);padding:0 3px;padding:var(--info-padding,0 3px);color:#fff;color:var(--info-color,#fff);font-weight:500;font-weight:var(--info-font-weight,500);font-size:12px;font-size:var(--info-font-size,12px);font-family:PingFang SC,Helvetica Neue,Arial,sans-serif;font-family:var(--info-font-family,PingFang SC,Helvetica Neue,Arial,sans-serif);line-height:14px;line-height:calc(var(--info-size, 16px) - var(--info-border-width, 1px)*2);background-color:#ee0a24;background-color:var(--info-background-color,#ee0a24);border:1px solid #fff;border:var(--info-border-width,1px) solid var(--white,#fff);border-radius:16px;border-radius:var(--info-size,16px)}.van-info--dot{min-width:0;border-radius:100%;width:8px;width:var(--info-dot-size,8px);height:8px;height:var(--info-dot-size,8px);background-color:#ee0a24;background-color:var(--info-dot-color,#ee0a24)}
20 </style>
src/wxcomponents/vant/info/index.wxml
File was created 1 <wxs src="../wxs/utils.wxs" module="utils" />
2
3 <view
4 wx:if="{{ info !== null && info !== '' || dot }}"
5 class="custom-class van-info {{ utils.bem('info', { dot }) }}"
6 style="{{ customStyle }}"
7 >{{ dot ? '' : info }}</view>
8
src/wxcomponents/vant/info/index.wxss
File was created 1 @import '../common/index.wxss';.van-info{position:absolute;top:0;right:0;box-sizing:border-box;white-space:nowrap;text-align:center;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%);-webkit-transform-origin:100%;transform-origin:100%;min-width:16px;min-width:var(--info-size,16px);padding:0 3px;padding:var(--info-padding,0 3px);color:#fff;color:var(--info-color,#fff);font-weight:500;font-weight:var(--info-font-weight,500);font-size:12px;font-size:var(--info-font-size,12px);font-family:PingFang SC,Helvetica Neue,Arial,sans-serif;font-family:var(--info-font-family,PingFang SC,Helvetica Neue,Arial,sans-serif);line-height:14px;line-height:calc(var(--info-size, 16px) - var(--info-border-width, 1px)*2);background-color:#ee0a24;background-color:var(--info-background-color,#ee0a24);border:1px solid #fff;border:var(--info-border-width,1px) solid var(--white,#fff);border-radius:16px;border-radius:var(--info-size,16px)}.van-info--dot{min-width:0;border-radius:100%;width:8px;width:var(--info-dot-size,8px);height:8px;height:var(--info-dot-size,8px);background-color:#ee0a24;background-color:var(--info-dot-color,#ee0a24)}
src/wxcomponents/vant/loading/index.d.ts
File was created 1 export {};
2
src/wxcomponents/vant/loading/index.js
File was created 1 import { VantComponent } from '../common/component';
2 import { addUnit } from '../common/utils';
3 VantComponent({
4 props: {
5 color: String,
6 vertical: Boolean,
7 type: {
8 type: String,
9 value: 'circular'
10 },
11 size: {
12 type: String,
13 observer: 'setSizeWithUnit'
14 },
15 textSize: {
16 type: String,
17 observer: 'setTextSizeWithUnit'
18 }
19 },
20 methods: {
21 setSizeWithUnit(size) {
22 this.setData({
23 sizeWithUnit: addUnit(size)
24 });
25 },
26 setTextSizeWithUnit(size) {
27 this.set({
28 textSizeWithUnit: addUnit(size)
29 });
30 }
31 }
32 });
33
src/wxcomponents/vant/loading/index.json
File was created 1 {
2 "component": true
3 }
src/wxcomponents/vant/loading/index.vue
File was created 1 <template>
2 <uni-shadow-root class="vant-loading-index"><view :class="'custom-class van-loading '+(vertical ? 'van-loading--vertical' : '')">
3 <view :class="'van-loading__spinner van-loading__spinner--'+(type)" :style="'color: '+(color)+'; width: '+(sizeWithUnit)+'; height: '+(sizeWithUnit)">
4 <view v-for="(item,index) in ('item in 12')" :key="item.index" v-if="type === 'spinner'" class="van-loading__dot"></view>
5 </view>
6 <view class="van-loading__text" :style="'font-size: '+(textSizeWithUnit)+';'">
7 <slot></slot>
8 </view>
9 </view></uni-shadow-root>
10 </template>
11
12 <script>
13
14 global['__wxRoute'] = 'vant/loading/index'
15 import { VantComponent } from '../common/component';
16 import { addUnit } from '../common/utils';
17 VantComponent({
18 props: {
19 color: String,
20 vertical: Boolean,
21 type: {
22 type: String,
23 value: 'circular'
24 },
25 size: {
26 type: String,
27 observer: 'setSizeWithUnit'
28 },
29 textSize: {
30 type: String,
31 observer: 'setTextSizeWithUnit'
32 }
33 },
34 methods: {
35 setSizeWithUnit(size) {
36 this.setData({
37 sizeWithUnit: addUnit(size)
38 });
39 },
40 setTextSizeWithUnit(size) {
41 this.set({
42 textSizeWithUnit: addUnit(size)
43 });
44 }
45 }
46 });
47 export default global['__wxComponents']['vant/loading/index']
48 </script>
49 <style platform="mp-weixin">
50 @import '../common/index.css';.vant-loading-index{font-size:0;line-height:1}.van-loading{display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;color:#c8c9cc;color:var(--loading-spinner-color,#c8c9cc)}.van-loading__spinner{position:relative;box-sizing:border-box;width:30px;width:var(--loading-spinner-size,30px);max-width:100%;max-height:100%;height:30px;height:var(--loading-spinner-size,30px);-webkit-animation:van-rotate .8s linear infinite;animation:van-rotate .8s linear infinite;-webkit-animation:van-rotate var(--loading-spinner-animation-duration,.8s) linear infinite;animation:van-rotate var(--loading-spinner-animation-duration,.8s) linear infinite}.van-loading__spinner--spinner{-webkit-animation-timing-function:steps(12);animation-timing-function:steps(12)}.van-loading__spinner--circular{border:1px solid transparent;border-top-color:initial;border-radius:100%}.van-loading__text{margin-left:8px;margin-left:var(--padding-xs,8px);color:#969799;color:var(--loading-text-color,#969799);font-size:14px;font-size:var(--loading-text-font-size,14px);line-height:20px;line-height:var(--loading-text-line-height,20px)}.van-loading__text:empty{display:none}.van-loading--vertical{-webkit-flex-direction:column;flex-direction:column}.van-loading--vertical .van-loading__text{margin:8px 0 0;margin:var(--padding-xs,8px) 0 0}.van-loading__dot{position:absolute;top:0;left:0;width:100%;height:100%}.van-loading__dot:before{display:block;width:2px;height:25%;margin:0 auto;background-color:currentColor;border-radius:40%;content:" "}.van-loading__dot:first-of-type{-webkit-transform:rotate(30deg);transform:rotate(30deg);opacity:1}.van-loading__dot:nth-of-type(2){-webkit-transform:rotate(60deg);transform:rotate(60deg);opacity:.9375}.van-loading__dot:nth-of-type(3){-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:.875}.van-loading__dot:nth-of-type(4){-webkit-transform:rotate(120deg);transform:rotate(120deg);opacity:.8125}.van-loading__dot:nth-of-type(5){-webkit-transform:rotate(150deg);transform:rotate(150deg);opacity:.75}.van-loading__dot:nth-of-type(6){-webkit-transform:rotate(180deg);transform:rotate(180deg);opacity:.6875}.van-loading__dot:nth-of-type(7){-webkit-transform:rotate(210deg);transform:rotate(210deg);opacity:.625}.van-loading__dot:nth-of-type(8){-webkit-transform:rotate(240deg);transform:rotate(240deg);opacity:.5625}.van-loading__dot:nth-of-type(9){-webkit-transform:rotate(270deg);transform:rotate(270deg);opacity:.5}.van-loading__dot:nth-of-type(10){-webkit-transform:rotate(300deg);transform:rotate(300deg);opacity:.4375}.van-loading__dot:nth-of-type(11){-webkit-transform:rotate(330deg);transform:rotate(330deg);opacity:.375}.van-loading__dot:nth-of-type(12){-webkit-transform:rotate(1turn);transform:rotate(1turn);opacity:.3125}@-webkit-keyframes van-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes van-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}
51 </style>
src/wxcomponents/vant/loading/index.wxml
File was created 1 <view class="custom-class van-loading {{ vertical ? 'van-loading--vertical' : '' }}">
2 <view
3 class="van-loading__spinner van-loading__spinner--{{ type }}"
4 style="color: {{ color }}; width: {{ sizeWithUnit }}; height: {{ sizeWithUnit }}"
5 >
6 <view
7 wx:if="{{ type === 'spinner' }}"
8 wx:for="item in 12"
9 wx:key="index"
10 class="van-loading__dot"
11 />
12 </view>
13 <view class="van-loading__text" style="font-size: {{ textSizeWithUnit }};">
14 <slot />
15 </view>
16 </view>
17
src/wxcomponents/vant/loading/index.wxss
File was created 1 @import '../common/index.wxss';:host{font-size:0;line-height:1}.van-loading{display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;color:#c8c9cc;color:var(--loading-spinner-color,#c8c9cc)}.van-loading__spinner{position:relative;box-sizing:border-box;width:30px;width:var(--loading-spinner-size,30px);max-width:100%;max-height:100%;height:30px;height:var(--loading-spinner-size,30px);-webkit-animation:van-rotate .8s linear infinite;animation:van-rotate .8s linear infinite;-webkit-animation:van-rotate var(--loading-spinner-animation-duration,.8s) linear infinite;animation:van-rotate var(--loading-spinner-animation-duration,.8s) linear infinite}.van-loading__spinner--spinner{-webkit-animation-timing-function:steps(12);animation-timing-function:steps(12)}.van-loading__spinner--circular{border:1px solid transparent;border-top-color:initial;border-radius:100%}.van-loading__text{margin-left:8px;margin-left:var(--padding-xs,8px);color:#969799;color:var(--loading-text-color,#969799);font-size:14px;font-size:var(--loading-text-font-size,14px);line-height:20px;line-height:var(--loading-text-line-height,20px)}.van-loading__text:empty{display:none}.van-loading--vertical{-webkit-flex-direction:column;flex-direction:column}.van-loading--vertical .van-loading__text{margin:8px 0 0;margin:var(--padding-xs,8px) 0 0}.van-loading__dot{position:absolute;top:0;left:0;width:100%;height:100%}.van-loading__dot:before{display:block;width:2px;height:25%;margin:0 auto;background-color:currentColor;border-radius:40%;content:" "}.van-loading__dot:first-of-type{-webkit-transform:rotate(30deg);transform:rotate(30deg);opacity:1}.van-loading__dot:nth-of-type(2){-webkit-transform:rotate(60deg);transform:rotate(60deg);opacity:.9375}.van-loading__dot:nth-of-type(3){-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:.875}.van-loading__dot:nth-of-type(4){-webkit-transform:rotate(120deg);transform:rotate(120deg);opacity:.8125}.van-loading__dot:nth-of-type(5){-webkit-transform:rotate(150deg);transform:rotate(150deg);opacity:.75}.van-loading__dot:nth-of-type(6){-webkit-transform:rotate(180deg);transform:rotate(180deg);opacity:.6875}.van-loading__dot:nth-of-type(7){-webkit-transform:rotate(210deg);transform:rotate(210deg);opacity:.625}.van-loading__dot:nth-of-type(8){-webkit-transform:rotate(240deg);transform:rotate(240deg);opacity:.5625}.van-loading__dot:nth-of-type(9){-webkit-transform:rotate(270deg);transform:rotate(270deg);opacity:.5}.van-loading__dot:nth-of-type(10){-webkit-transform:rotate(300deg);transform:rotate(300deg);opacity:.4375}.van-loading__dot:nth-of-type(11){-webkit-transform:rotate(330deg);transform:rotate(330deg);opacity:.375}.van-loading__dot:nth-of-type(12){-webkit-transform:rotate(1turn);transform:rotate(1turn);opacity:.3125}@-webkit-keyframes van-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes van-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}
src/wxcomponents/vant/mixins/basic.d.ts
File was created 1 export declare const basic: string;
2
src/wxcomponents/vant/mixins/basic.js
File was created 1 export const basic = Behavior({
2 methods: {
3 $emit(...args) {
4 this.triggerEvent(...args);
5 },
6 getRect(selector, all) {
7 return new Promise(resolve => {
8 wx.createSelectorQuery()
9 .in(this)[all ? 'selectAll' : 'select'](selector)
10 .boundingClientRect(rect => {
11 if (all && Array.isArray(rect) && rect.length) {
12 resolve(rect);
13 }
14 if (!all && rect) {
15 resolve(rect);
16 }
17 })
18 .exec();
19 });
20 }
21 }
22 });
23
src/wxcomponents/vant/mixins/button.d.ts
File was created 1 export declare const button: string;
2
src/wxcomponents/vant/mixins/button.js
File was created 1 export const button = Behavior({
2 externalClasses: ['hover-class'],
3 properties: {
4 id: String,
5 lang: {
6 type: String,
7 value: 'en'
8 },
9 businessId: Number,
10 sessionFrom: String,
11 sendMessageTitle: String,
12 sendMessagePath: String,
13 sendMessageImg: String,
14 showMessageCard: Boolean,
15 appParameter: String,
16 ariaLabel: String
17 }
18 });
19
src/wxcomponents/vant/mixins/link.d.ts
File was created 1 export declare const link: string;
2
src/wxcomponents/vant/mixins/link.js
File was created 1 export const link = Behavior({
2 properties: {
3 url: String,
4 linkType: {
5 type: String,
6 value: 'navigateTo'
7 }
8 },
9 methods: {
10 jumpLink(urlKey = 'url') {
11 const url = this.data[urlKey];
12 if (url) {
13 wx[this.data.linkType]({ url });
14 }
15 }
16 }
17 });
18
src/wxcomponents/vant/mixins/observer/behavior.d.ts
File was created 1 export declare const behavior: string;
2
src/wxcomponents/vant/mixins/observer/behavior.js
File was created 1 export const behavior = Behavior({
2 methods: {
3 set(data, callback) {
4 return new Promise(resolve => {
5 this.setData(data, () => {
6 if (callback && typeof callback === 'function') {
7 callback.call(this);
8 }
9 resolve();
10 });
11 });
12 }
13 }
14 });
15
src/wxcomponents/vant/mixins/observer/index.d.ts
File was created 1 export declare function observe(vantOptions: any, options: any): void;
2
src/wxcomponents/vant/mixins/observer/index.js
File was created 1 import { behavior } from './behavior';
2 export function observe(vantOptions, options) {
3 const { watch } = vantOptions;
4 options.behaviors.push(behavior);
5 if (watch) {
6 const props = options.properties || {};
7 Object.keys(watch).forEach(key => {
8 if (key in props) {
9 let prop = props[key];
10 if (prop === null || !('type' in prop)) {
11 prop = { type: prop };
12 }
13 prop.observer = watch[key];
14 props[key] = prop;
15 }
16 });
17 options.properties = props;
18 }
19 }
20
src/wxcomponents/vant/mixins/open-type.d.ts
File was created 1 export declare const openType: string;
2
src/wxcomponents/vant/mixins/open-type.js
File was created 1 export const openType = Behavior({
2 properties: {
3 openType: String
4 },
5 methods: {
6 bindGetUserInfo(event) {
7 this.$emit('getuserinfo', event.detail);
8 },
9 bindContact(event) {
10 this.$emit('contact', event.detail);
11 },
12 bindGetPhoneNumber(event) {
13 this.$emit('getphonenumber', event.detail);
14 },
15 bindError(event) {
16 this.$emit('error', event.detail);
17 },
18 bindLaunchApp(event) {
19 this.$emit('launchapp', event.detail);
20 },
21 bindOpenSetting(event) {
22 this.$emit('opensetting', event.detail);
23 },
24 }
25 });
26
src/wxcomponents/vant/mixins/touch.d.ts
File was created 1 export declare const touch: string;
2
src/wxcomponents/vant/mixins/touch.js
File was created 1 const MIN_DISTANCE = 10;
2 function getDirection(x, y) {
3 if (x > y && x > MIN_DISTANCE) {
4 return 'horizontal';
5 }
6 if (y > x && y > MIN_DISTANCE) {
7 return 'vertical';
8 }
9 return '';
10 }
11 export const touch = Behavior({
12 methods: {
13 resetTouchStatus() {
14 this.direction = '';
15 this.deltaX = 0;
16 this.deltaY = 0;
17 this.offsetX = 0;
18 this.offsetY = 0;
19 },
20 touchStart(event) {
21 this.resetTouchStatus();
22 const touch = event.touches[0];
23 this.startX = touch.clientX;
24 this.startY = touch.clientY;
25 },
26 touchMove(event) {
27 const touch = event.touches[0];
28 this.deltaX = touch.clientX - this.startX;
29 this.deltaY = touch.clientY - this.startY;
30 this.offsetX = Math.abs(this.deltaX);
31 this.offsetY = Math.abs(this.deltaY);
32 this.direction = this.direction || getDirection(this.offsetX, this.offsetY);
33 }
34 }
35 });
36
src/wxcomponents/vant/mixins/transition.d.ts
File was created 1 export declare const transition: (showDefaultValue: boolean) => any;
2
src/wxcomponents/vant/mixins/transition.js
File was created 1 import { isObj } from '../common/utils';
2 const getClassNames = (name) => ({
3 enter: `van-${name}-enter van-${name}-enter-active enter-class enter-active-class`,
4 'enter-to': `van-${name}-enter-to van-${name}-enter-active enter-to-class enter-active-class`,
5 leave: `van-${name}-leave van-${name}-leave-active leave-class leave-active-class`,
6 'leave-to': `van-${name}-leave-to van-${name}-leave-active leave-to-class leave-active-class`
7 });
8 const nextTick = () => new Promise(resolve => setTimeout(resolve, 1000 / 30));
9 export const transition = function (showDefaultValue) {
10 return Behavior({
11 properties: {
12 customStyle: String,
13 // @ts-ignore
14 show: {
15 type: Boolean,
16 value: showDefaultValue,
17 observer: 'observeShow'
18 },
19 // @ts-ignore
20 duration: {
21 type: null,
22 value: 300,
23 observer: 'observeDuration'
24 },
25 name: {
26 type: String,
27 value: 'fade'
28 }
29 },
30 data: {
31 type: '',
32 inited: false,
33 display: false
34 },
35 attached() {
36 if (this.data.show) {
37 this.enter();
38 }
39 },
40 methods: {
41 observeShow(value) {
42 value ? this.enter() : this.leave();
43 },
44 enter() {
45 const { duration, name } = this.data;
46 const classNames = getClassNames(name);
47 const currentDuration = isObj(duration) ? duration.enter : duration;
48 this.status = 'enter';
49 this.$emit('before-enter');
50 Promise.resolve()
51 .then(nextTick)
52 .then(() => {
53 this.checkStatus('enter');
54 this.$emit('enter');
55 this.setData({
56 inited: true,
57 display: true,
58 classes: classNames.enter,
59 currentDuration
60 });
61 })
62 .then(nextTick)
63 .then(() => {
64 this.checkStatus('enter');
65 this.transitionEnded = false;
66 this.setData({
67 classes: classNames['enter-to']
68 });
69 })
70 .catch(() => { });
71 },
72 leave() {
73 if (!this.data.display) {
74 return;
75 }
76 const { duration, name } = this.data;
77 const classNames = getClassNames(name);
78 const currentDuration = isObj(duration) ? duration.leave : duration;
79 this.status = 'leave';
80 this.$emit('before-leave');
81 Promise.resolve()
82 .then(nextTick)
83 .then(() => {
84 this.checkStatus('leave');
85 this.$emit('leave');
86 this.setData({
87 classes: classNames.leave,
88 currentDuration
89 });
90 })
91 .then(nextTick)
92 .then(() => {
93 this.checkStatus('leave');
94 this.transitionEnded = false;
95 setTimeout(() => this.onTransitionEnd(), currentDuration);
96 this.setData({
97 classes: classNames['leave-to']
98 });
99 })
100 .catch(() => { });
101 },
102 checkStatus(status) {
103 if (status !== this.status) {
104 throw new Error(`incongruent status: ${status}`);
105 }
106 },
107 onTransitionEnd() {
108 if (this.transitionEnded) {
109 return;
110 }
111 this.transitionEnded = true;
112 this.$emit(`after-${this.status}`);
113 const { show, display } = this.data;
114 if (!show && display) {
115 this.setData({ display: false });
116 }
117 }
118 }
119 });
120 };
121
src/wxcomponents/vant/wxs/array.wxs
File was created 1 function isArray(array) {
2 return array && (array.constructor === 'Array' || (typeof Array !== 'undefined' && Array.isArray(array)));
3 }
4
5 module.exports.isArray = isArray;
6
src/wxcomponents/vant/wxs/bem.wxs
File was created 1 var array = require('./array.wxs');
2 var object = require('./object.wxs');
3 var PREFIX = 'van-';
4
5 function join(name, mods) {
6 name = PREFIX + name;
7 mods = mods.map(function(mod) {
8 return name + '--' + mod;
9 });
10 mods.unshift(name);
11 return mods.join(' ');
12 }
13
14 function traversing(mods, conf) {
15 if (!conf) {
16 return;
17 }
18
19 if (typeof conf === 'string' || typeof conf === 'number') {
20 mods.push(conf);
21 } else if (array.isArray(conf)) {
22 conf.forEach(function(item) {
23 traversing(mods, item);
24 });
25 } else if (typeof conf === 'object') {
26 object.keys(conf).forEach(function(key) {
27 conf[key] && mods.push(key);
28 });
29 }
30 }
31
32 function bem(name, conf) {
33 var mods = [];
34 traversing(mods, conf);
35 return join(name, mods);
36 }
37
38 module.exports.bem = bem;
39
src/wxcomponents/vant/wxs/memoize.wxs
File was created 1 /**
2 * Simple memoize
3 * wxs doesn't support fn.apply, so this memoize only support up to 2 args
4 */
5
6 function isPrimitive(value) {
7 var type = typeof value;
8 return (
9 type === 'boolean' ||
10 type === 'number' ||
11 type === 'string' ||
12 type === 'undefined' ||
13 value === null
14 );
15 }
16
17 // mock simple fn.call in wxs
18 function call(fn, args) {
19 if (args.length === 2) {
20 return fn(args[0], args[1]);
21 }
22
23 if (args.length === 1) {
24 return fn(args[0]);
25 }
26
27 return fn();
28 }
29
30 function serializer(args) {
31 if (args.length === 1 && isPrimitive(args[0])) {
32 return args[0];
33 }
34 var obj = {};
35 for (var i = 0; i < args.length; i++) {
36 obj['key' + i] = args[i];
37 }
38 return JSON.stringify(obj);
39 }
40
41 function memoize(fn) {
42 var cache = {};
43
44 return function() {
45 var key = serializer(arguments);
46 if (cache[key] === undefined) {
47 cache[key] = call(fn, arguments);
48 }
49
50 return cache[key];
51 };
52 }
53
54 module.exports.memoize = memoize;
55
src/wxcomponents/vant/wxs/object.wxs
File was created 1 /* eslint-disable */
2 var REGEXP = getRegExp('{|}|"', 'g');
3
4 function keys(obj) {
5 return JSON.stringify(obj)
6 .replace(REGEXP, '')
7 .split(',')
8 .map(function(item) {
9 return item.split(':')[0];
10 });
11 }
12
13 module.exports.keys = keys;
14
src/wxcomponents/vant/wxs/utils.wxs
File was created 1 var bem = require('./bem.wxs').bem;
2 var memoize = require('./memoize.wxs').memoize;
3
4 module.exports = {
5 bem: memoize(bem),
6 memoize: memoize
7 };
8
static/img/goods/p1.jpg

11.3 KB

static/img/goods/p10.jpg

22.6 KB

static/img/goods/p2.jpg

16.3 KB

static/img/goods/p3.jpg

15 KB

static/img/goods/p4.jpg

6.55 KB

static/img/goods/p5.jpg

29.6 KB

static/img/goods/p6.jpg

6.25 KB

static/img/goods/p7.jpg

20.1 KB

static/img/goods/p8.jpg

20.4 KB

static/img/goods/p9.jpg

24.1 KB

static/logo.png

3.93 KB

static/tab-cart-current.png

2.89 KB

static/tab-cart.png

2.85 KB

static/tab-home-current.png

3.97 KB

static/tab-home.png

3.87 KB

static/tab-my-current.png

1.31 KB

static/tab-my.png

2.89 KB

1 /** File was deleted
2 * 这里是uni-app内置的常用样式变量
3 *
4 * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
5 * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
6 *
7 */
8
9 /**
10 * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
11 *
12 * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
13 */
14
15 /* 颜色变量 */
16
17 /* 行为相关颜色 */
18 $uni-color-primary: #007aff;
19 $uni-color-success: #4cd964;
20 $uni-color-warning: #f0ad4e;
21 $uni-color-error: #dd524d;
22
23 /* 文字基本颜色 */
24 $uni-text-color:#333;//基本色
25 $uni-text-color-inverse:#fff;//反色
26 $uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
27 $uni-text-color-placeholder: #808080;
28 $uni-text-color-disable:#c0c0c0;
29
30 /* 背景颜色 */
31 $uni-bg-color:#ffffff;
32 $uni-bg-color-grey:#f8f8f8;
33 $uni-bg-color-hover:#f1f1f1;//点击状态颜色
34 $uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
35
36 /* 边框颜色 */
37 $uni-border-color:#c8c7cc;
38
39 /* 尺寸变量 */
40
41 /* 文字尺寸 */
42 $uni-font-size-sm:24rpx;
43 $uni-font-size-base:28rpx;
44 $uni-font-size-lg:32rpx;
45
46 /* 图片尺寸 */
47 $uni-img-size-sm:40rpx;
48 $uni-img-size-base:52rpx;
49 $uni-img-size-lg:80rpx;
50
51 /* Border Radius */
52 $uni-border-radius-sm: 4rpx;
53 $uni-border-radius-base: 6rpx;
54 $uni-border-radius-lg: 12rpx;
55 $uni-border-radius-circle: 50%;
56
57 /* 水平间距 */
58 $uni-spacing-row-sm: 10px;
59 $uni-spacing-row-base: 20rpx;
60 $uni-spacing-row-lg: 30rpx;
61
62 /* 垂直间距 */
63 $uni-spacing-col-sm: 8rpx;
64 $uni-spacing-col-base: 16rpx;
65 $uni-spacing-col-lg: 24rpx;
66
67 /* 透明度 */
68 $uni-opacity-disabled: 0.3; // 组件禁用态的透明度
69
70 /* 文章场景相关 */
71 $uni-color-title: #2C405A; // 文章标题颜色
72 $uni-font-size-title:40rpx;
73 $uni-color-subtitle: #555555; // 二级标题颜色
74 $uni-font-size-subtitle:36rpx;
75 $uni-color-paragraph: #3F536E; // 文章段落颜色
76 $uni-font-size-paragraph:30rpx;
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
1 {"version":3,"sources":["webpack:///C:/Users/Administrator/Desktop/gulu-vue/main.js","webpack:///C:/Users/Administrator/Desktop/gulu-vue/App.vue?888e","webpack:///C:/Users/Administrator/Desktop/gulu-vue/App.vue?3262","webpack:///C:/Users/Administrator/Desktop/gulu-vue/App.vue","webpack:///C:/Users/Administrator/Desktop/gulu-vue/App.vue?9752","webpack:///C:/Users/Administrator/Desktop/gulu-vue/App.vue?593a"],"names":["Vue","config","productionTip","App","mpType","app","$mount","onLaunch","console","log","onShow","onHide"],"mappings":";;;;;;;;;iDAAA,wCAAmB,iDAA4B;AAC/C,uE;;AAEAA,aAAIC,MAAJ,CAAWC,aAAX,GAA2B,KAA3B;;AAEAC,aAAIC,MAAJ,GAAa,KAAb;;AAEA,IAAMC,GAAG,GAAG,IAAIL,YAAJ;AACLG,YADK,EAAZ;;AAGA,UAAAE,GAAG,EAACC,MAAJ,G;;;;;;;;;;;;;;;;;;;;ACVA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACuD;AACL;AACa;;;AAG/D;AACqK;AACrK,gBAAgB,+KAAU;AAC1B,EAAE,yEAAM;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACe,gF;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAA6lB,CAAgB,unBAAG,EAAC,C;;;;;;;;;;;;ACClmB;AACdC,UAAQ,EAAE,oBAAW;AACpBC,WAAO,CAACC,GAAR,CAAY,YAAZ;AACA,GAHa;AAIdC,QAAM,EAAE,kBAAW;AAClBF,WAAO,CAACC,GAAR,CAAY,UAAZ;AACA,GANa;AAOdE,QAAM,EAAE,kBAAW;AAClBH,WAAO,CAACC,GAAR,CAAY,UAAZ;AACA,GATa,E;;;;;;;;;;;ACDf;AAAA;AAAA;AAAA;AAA+2B,CAAgB,g3BAAG,EAAC,C;;;;;;;;;;ACAn4B;AACA,OAAO,KAAU,EAAE,kBAKd","file":"common/main.js","sourcesContent":["import 'uni-pages';import '@dcloudio/uni-stat';import Vue from 'vue'\r\nimport App from './App'\r\n\r\nVue.config.productionTip = false\r\n\r\nApp.mpType = 'app'\r\n\r\nconst app = new Vue({\r\n ...App\r\n})\r\napp.$mount()","var render, staticRenderFns, recyclableRender, components\nvar renderjs\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\runtime\\\\componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"C:/Users/Administrator/Desktop/gulu-vue/App.vue\"\nexport default component.exports","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=script&lang=js&\"","\nexport default {\n\tonLaunch: function() {\n\t\tconsole.log('App Launch')\n\t},\n\tonShow: function() {\n\t\tconsole.log('App Show')\n\t},\n\tonHide: function() {\n\t\tconsole.log('App Hide')\n\t}\n}\n","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=style&index=0&lang=css&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1588056462167\n var cssReload = require(\"D:/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""} File was deleted
unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
1 {"version":3,"sources":["webpack:///webpack/bootstrap"],"names":[],"mappings":";QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;;;QAGA;QACA,oBAAoB;QACpB;QACA;QACA;QACA,uBAAuB,wKAAwK;QAC/L;QACA;QACA,mBAAmB,6BAA6B;QAChD;QACA;QACA;QACA;QACA;QACA,mBAAmB,8BAA8B;QACjD;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA,KAAK;QACL;QACA,KAAK;QACL;;QAEA;;QAEA;QACA,iCAAiC;;QAEjC;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,MAAM;QACN;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,wBAAwB,kCAAkC;QAC1D,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA,0CAA0C,oBAAoB,WAAW;;QAEzE;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA","file":"common/runtime.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"common/runtime\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"common/runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + chunkId + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"components/HM-filterDropdown/HM-filterDropdown\":1,\"components/uni-drawer/uni-drawer\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + ({\"components/HM-filterDropdown/HM-filterDropdown\":\"components/HM-filterDropdown/HM-filterDropdown\",\"components/uni-drawer/uni-drawer\":\"components/uni-drawer/uni-drawer\"}[chunkId]||chunkId) + \".wxss\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\tvar error = new Error('Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')');\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""} File was deleted
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
1 {"version":3,"sources":["webpack:///./node_modules/@dcloudio/uni-mp-weixin/dist/index.js","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/@dcloudio/uni-stat/dist/index.js","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages.json","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js","webpack:///C:/Users/Administrator/Desktop/gulu-vue/common/data.js"],"names":["_toString","Object","prototype","toString","hasOwnProperty","isFn","fn","isStr","str","isPlainObject","obj","call","hasOwn","key","noop","cached","cache","create","cachedFn","hit","camelizeRE","camelize","replace","_","c","toUpperCase","HOOKS","globalInterceptors","scopedInterceptors","mergeHook","parentVal","childVal","res","concat","Array","isArray","dedupeHooks","hooks","i","length","indexOf","push","removeHook","hook","index","splice","mergeInterceptorHook","interceptor","option","keys","forEach","removeInterceptorHook","addInterceptor","method","removeInterceptor","wrapperHook","data","isPromise","then","queue","promise","Promise","resolve","callback","wrapperOptions","options","name","oldCallback","callbackInterceptor","wrapperReturnValue","returnValue","returnValueHooks","getApiInterceptorHooks","slice","scopedInterceptor","invokeApi","api","params","invoke","promiseInterceptor","catch","SYNC_API_RE","CONTEXT_API_RE","CONTEXT_API_RE_EXC","ASYNC_API","CALLBACK_API_RE","isContextApi","test","isSyncApi","isCallbackApi","handlePromise","err","shouldPromise","finally","constructor","value","reason","promisify","promiseApi","success","fail","complete","reject","assign","EPS","BASE_DEVICE_WIDTH","isIOS","deviceWidth","deviceDPR","checkDeviceWidth","wx","getSystemInfoSync","platform","pixelRatio","windowWidth","upx2px","number","newDeviceWidth","Number","result","Math","floor","interceptors","baseApi","freeze","__proto__","previewImage","args","fromArgs","currentIndex","parseInt","current","isNaN","urls","len","filter","item","indicator","loop","addSafeAreaInsets","safeArea","safeAreaInsets","top","left","right","bottom","windowHeight","protocols","getSystemInfo","todos","canIUses","CALLBACKS","processCallback","methodName","processReturnValue","processArgs","argsOption","keepFromArgs","toArgs","keyOption","console","warn","keepReturnValue","wrapper","protocol","error","arg1","arg2","apply","todoApis","TODOS","createTodoApi","todoApi","errMsg","providers","oauth","share","payment","getProvider","service","provider","extraApi","getEmitter","getUniEmitter","Emitter","Vue","ctx","$on","arguments","$off","$once","$emit","eventApi","MPPage","Page","MPComponent","Component","customizeRE","customize","initTriggerEvent","mpInstance","canIUse","oldTriggerEvent","triggerEvent","event","initHook","oldHook","PAGE_EVENT_HOOKS","initMocks","vm","mocks","$mp","mpType","mock","hasHook","vueOptions","default","extendOptions","super","mixins","find","mixin","initHooks","mpOptions","$vm","__call_hook","initVueComponent","VueComponent","extend","initSlots","vueSlots","$slots","slotName","$scopedSlots","initVueIds","vueIds","split","_$vueId","_$vuePid","initData","context","methods","e","process","VUE_APP_DEBUG","JSON","parse","stringify","__lifecycle_hooks__","PROP_TYPES","String","Boolean","createObserver","observer","newVal","oldVal","initBehaviors","initBehavior","vueBehaviors","behaviors","vueExtends","extends","vueMixins","vueProps","props","behavior","type","Date","properties","initProperties","vueMixin","parsePropType","defaultValue","file","isBehavior","vueId","setData","opts","wrapper$1","mp","stopPropagation","preventDefault","target","detail","markerId","getExtraValue","dataPathsArray","dataPathArray","dataPath","propPath","valuePath","vFor","__get_value","isInteger","vForItem","vForKey","processEventExtra","extra","extraObj","getObjByArray","arr","element","processEventArgs","isCustom","isCustomMPEvent","currentTarget","dataset","comType","__args__","ret","arg","ONCE","CUSTOM","isMatchEventType","eventType","optType","handleEvent","eventOpts","eventOpt","eventsArray","charAt","isOnce","eventArray","handlerCtx","$options","generic","$parent","handler","Error","once","parseBaseApp","initRefs","store","$store","mpHost","beforeCreate","$scope","appOptions","onLaunch","app","globalData","_isMounted","findVmByVueId","vuePid","$children","childVm","parentVm","Behavior","isPage","route","initRelation","defineProperty","get","$refs","components","selectAllComponents","component","ref","forComponents","handleLink","parent","parseApp","createApp","App","parseBaseComponent","vueComponentOptions","multipleSlots","addGlobalClass","componentOptions","__file","lifetimes","attached","propsData","$mount","ready","detached","$destroy","pageLifetimes","show","hide","resize","size","__l","__e","wxsCallMethods","callMethod","parseComponent","hooks$1","parseBasePage","vuePageOptions","pageOptions","onLoad","query","parsePage","createPage","createComponent","canIUseApi","apiName","uni","Proxy","set","uni$1","STAT_VERSION","version","STAT_URL","STAT_H5_URL","PAGE_PVER_TIME","APP_PVER_TIME","OPERATING_TIME","UUID_KEY","UUID_VALUE","getUuid","uuid","getPlatformName","plus","runtime","getDCloudId","getStorageSync","now","random","setStorageSync","getSgin","statData","sortArr","sort","sgin","sginStr","sign","substr","getSplicing","getTime","platformList","getPackName","packName","getAccountInfoSync","miniProgram","appId","getVersion","getChannel","platformName","channel","getScene","scene","getLaunchOptionsSync","First__Visit__Time__KEY","Last__Visit__Time__KEY","getFirstVisitTime","timeStorge","time","removeStorageSync","getLastVisitTime","PAGE_RESIDENCE_TIME","First_Page_residence_time","Last_Page_residence_time","setPageResidenceTime","getPageResidenceTime","TOTAL__VISIT__COUNT","getTotalVisitCount","count","GetEncodeURIComponentOptions","prop","encodeURIComponent","Set__First__Time","Set__Last__Time","getFirstTime","getLastTime","getResidenceTime","residenceTime","overtime","getRoute","pages","getCurrentPages","page","_self","is","getPageRoute","self","_query","getPageTypes","calibration","eventName","PagesJson","require","statConfig","resultOptions","Util","_retry","_platform","_navigationBarTitle","config","report","lt","_operatingTime","_reportingRequestData","__prevent_triggering","__licationHide","__licationShow","_lastPageRoute","ut","mpn","ak","appid","usv","v","ch","cn","pn","ct","t","tt","p","brand","md","model","sv","system","mpsdk","SDKVersion","mpv","lang","language","pr","ww","wh","sw","screenWidth","sh","screenHeight","path","sc","_sendReportRequest","_sendHideRequest","urlref","urlref_ts","routepath","titleNView","titleText","navigationBarTitleText","_sendPageRequest","url","_sendEventRequest","fvts","lvts","tvc","getProperty","getNetworkInfo","opt","request","e_n","e_v","getNetworkType","net","networkType","getLocation","wgtinfo","geocode","address","country","province","city","lat","latitude","lng","longitude","title","ttn","ttpj","ttc","requestData","uniStatData","firstArr","contentArr","lastArr","rd","elm","newData","optionsData","requests","imageRequest","setTimeout","_sendRequest","image","Image","src","Stat","instance","addInterceptorInit","interceptLogin","interceptShare","interceptRequestPayment","_login","_share","_payment","_pageShow","_applicationShow","_pageHide","_applicationHide","em","info","emVal","message","stack","stat","getInstance","isHide","lifecycle","onReady","load","onShareAppMessage","oldShareAppMessage","onShow","onHide","onUnload","onError","main"],"mappings":"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ACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,sBAAsB,+BAA+B;AACrD,sBAAsB,iBAAiB;AACvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iCAAiC,EAAE;AACrF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,cAAc;;AAE3C;;AAEA;AACA;AACA;AACA,6BAA6B,UAAU;;AAEvC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,aAAoB;;AAErC;AACA;AACA;AACA,YAAY,aAAoB;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA,oCAAoC;AACpC;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA,iCAAiC;AACjC,uCAAuC,wBAAwB,EAAE;AACjE,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,wCAAwC,EAAE;AAC1C;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,+BAA+B,oBAAoB,EAAE;AACrD;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,SAAS,qBAAqB;;AAExD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD,iCAAiC,sBAAsB;AACvD;AACA,kBAAkB;AAClB,MAAM,IAAqC;AAC3C;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAoB;AACtC;AACA;AACA,mBAAmB;AACnB;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,OAAO,UAAU,IAAqC;AACtD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,mBAAmB;AACtC,+BAA+B;AAC/B;AACA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,oCAAoC;AACpC;AACA,qCAAqC;AACrC;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAEQ;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,qCAAqC,EAAE;AACpF;;AAEA;AACA;AACA;;AAEA,oCAAoC,yCAAyC,EAAE;AAC/E;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA,4BAA4B;AAC5B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAsD,EAAE;AACtF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;;AAEA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C,GAAG;AACH;AACA;AACA,iBAAiB,+BAA+B;AAChD;AACA;;AAEA;AACA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,qBAAqB;AAClC;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO,MAAM,EAEN;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,IAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,sBAAsB,mBAAmB;AACzC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC,uCAAuC;AACvC;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB,sCAAsC;AACtC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,OAAO;AACzC;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,4CAA4C,eAAe;AAC3D,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kDAAkD;AAClD,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA,KAAK,UAAU,KAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,qCAAqC,gEAAgE;AACrG;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,4BAA4B,+BAA+B;AAC3D,4BAA4B,+BAA+B;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C,kDAAkD;AAClD;AACA;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sEAAsE;;AAEtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,uFAAuF;AAC5F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,+BAA+B;AAClC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,oBAAoB;AACxC,sBAAsB,4BAA4B;AAClD;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB;AACnB,yBAAyB;AACzB;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6CAA6C;AAC9E;AACA;AACA,6CAA6C,4CAA4C;;AAEzF;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG,MAAM,EAGN;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAK,2CAA2C,8BAA8B,EAAE;;AAEhF;AACA,wCAAwC,OAAO;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAqC;AACrD;AACA,oBAAoB,SAAI;AACxB;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;;AAE1B,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB,EAAE;;AAEpD;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,oBAAoB;AACpB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,oBAAoB,KAAqC;AACzD;AACA,MAAM,SAAE;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C,qBAAqB,+BAA+B;AACpD;AACA;AACA,GAAG;AACH,yBAAyB;AACzB;AACA,sBAAsB,iCAAiC;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,UAAU,IAAqC;AACpD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,8BAA8B;AAC9B,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,sCAAsC;AACtC,8C;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,YAAY,KAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,0CAA0C,2BAA2B,EAAE;AACvE,KAAK;AACL;AACA,0CAA0C,4BAA4B,EAAE;AACxE,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,YAAY,gFAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,gCAAgC,EAAE;AAC5E;;AAEA;AACA;AACA;AACA;AACA,WAAW,gFAAW;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,gFAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,0CAA0C;;AAE1C;AACA;AACA;AACA,GAAG;AACH;AACA,sCAAsC;AACtC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,KAAK;AACL;AACA;AACA,UAAU,gFAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,qDAAqD,EAAE,SAAS;AACtH;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;AC14LnB;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;;;;;;;;;;;2CCnBA,6D;;AAEA,IAAMC,YAAY,GAAGC,gBAArB;AACA,IAAMC,QAAQ,GAAG,mCAAjB;AACA,IAAMC,WAAW,GAAG,uCAApB;AACA,IAAMC,cAAc,GAAG,IAAvB;AACA,IAAMC,aAAa,GAAG,GAAtB;AACA,IAAMC,cAAc,GAAG,EAAvB;;AAEA,IAAMC,QAAQ,GAAG,gBAAjB;AACA,IAAMC,UAAU,GAAG,iBAAnB;;AAEA,SAASC,OAAT,GAAmB;AACjB,MAAIC,IAAI,GAAG,EAAX;AACA,MAAIC,eAAe,OAAO,GAA1B,EAA+B;AAC7B,QAAI;AACFD,UAAI,GAAGE,IAAI,CAACC,OAAL,CAAaC,WAAb,EAAP;AACD,KAFD,CAEE,OAAO9K,CAAP,EAAU;AACV0K,UAAI,GAAG,EAAP;AACD;AACD,WAAOA,IAAP;AACD;;AAED,MAAI;AACFA,QAAI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;AACD,GAFD,MAEK,YAMJ;AACF;;AAEDqiB,IAAI,G;;;;;;;;;;;;;;;;;;;;;;sGCh3BW,EAAC,SAAQ,EAAC,qBAAoB,EAAC,0BAAyB,MAA1B,EAArB,EAAuD,mBAAkB,EAAC,0BAAyB,KAA1B,EAAzE,EAA0G,mBAAkB,EAAC,0BAAyB,IAA1B,EAA5H,EAAT,EAAsK,eAAc,EAAC,0BAAyB,OAA1B,EAAkC,0BAAyB,SAA3D,EAAqE,gCAA+B,SAApG,EAA8G,mBAAkB,SAAhI,EAApL,E;;;;;;;;;;;sGAAA,EAAC,SAAQ,EAAT,E;;;;;;;;;;;;;;;;ACAf;AAAA;AAAA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;wFClHA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA;AACA;;;;;;AAMA;AACA;eACe;AACd;AACC,UAAO,IADR;AAEC,UAAQ,QAFT;AAGC,aAAW,CAAC;AACV,eAAW,EADD,EAAD,CAHZ,EADc;;;;;;AAWd;AACCpiB,MAAI,EAAC,IADN;AAEC,UAAQ,QAFT;AAGC,aAAW,CAAC;AACV,YAAQ,IADE;AAEV,aAAS,IAFC;AAGV,eAAW,CAAC;AACV,cAAQ,IADE;AAEV,eAAS,IAFC,EAAD;;AAIV;AACC,cAAQ,MADT;AAEC,eAAS,MAFV,EAJU,CAHD,EAAD,CAHZ,EAXc;;;;;;AA6Bd;AACC,UAAO,IADR;AAEC,UAAQ,QAFT;AAGC,aAAW,CAAC;AACV,YAAQ,MADE;AAEV,aAAS,MAFC,EAAD;;AAIV;AACC,YAAQ,MADT;AAEC,aAAS,MAFV,EAJU;;AAQV;AACC,YAAQ,QADT;AAEC,aAAS,QAFV,EARU;;AAYV;AACC,YAAQ,QADT;AAEC,aAAS,QAFV,EAZU,CAHZ,EA7Bc;;;;AAkDd;AACC,UAAO,IADR;AAEC,UAAQ,QAFT;AAGC,aAAW,CAAC;AACV,eAAW,CAAC;AACV,cAAQ,MADE;AAEV,eAAS,MAFC,EAAD;;AAIV;AACC,cAAQ,MADT;AAEC,eAAS,MAFV,EAJU;;AAQV;AACC,cAAQ,MADT;AAEC,eAAS,MAFV,EARU,CADD,EAAD,CAHZ,EAlDc;;;;;;AAsEd;AACC,UAAO,IADR;AAEC,UAAQ,QAFT;AAGC,aAAW,CAAC;AACV,YAAQ,QADE;AAEV,eAAW,CAAC;AACV,cAAQ,MADE;AAEV,eAAS,MAFC,EAAD;;AAIV;AACC,cAAQ,MADT;AAEC,eAAS,MAFV,EAJU;;AAQV;AACC,cAAQ,MADT;AAEC,eAAS,MAFV,EARU,CAFD,EAAD,CAHZ,EAtEc,C","file":"common/vendor.js","sourcesContent":["import Vue from 'vue';\r\n\r\nconst _toString = Object.prototype.toString;\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\nfunction isFn (fn) {\r\n return typeof fn === 'function'\r\n}\r\n\r\nfunction isStr (str) {\r\n return typeof str === 'string'\r\n}\r\n\r\nfunction isPlainObject (obj) {\r\n return _toString.call(obj) === '[object Object]'\r\n}\r\n\r\nfunction hasOwn (obj, key) {\r\n return hasOwnProperty.call(obj, key)\r\n}\r\n\r\nfunction noop () {}\r\n\r\n/**\r\n * Create a cached version of a pure function.\r\n */\r\nfunction cached (fn) {\r\n const cache = Object.create(null);\r\n return function cachedFn (str) {\r\n const hit = cache[str];\r\n return hit || (cache[str] = fn(str))\r\n }\r\n}\r\n\r\n/**\r\n * Camelize a hyphen-delimited string.\r\n */\r\nconst camelizeRE = /-(\\w)/g;\r\nconst camelize = cached((str) => {\r\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\r\n});\r\n\r\nconst HOOKS = [\r\n 'invoke',\r\n 'success',\r\n 'fail',\r\n 'complete',\r\n 'returnValue'\r\n];\r\n\r\nconst globalInterceptors = {};\r\nconst scopedInterceptors = {};\r\n\r\nfunction mergeHook (parentVal, childVal) {\r\n const res = childVal\r\n ? parentVal\r\n ? parentVal.concat(childVal)\r\n : Array.isArray(childVal)\r\n ? childVal : [childVal]\r\n : parentVal;\r\n return res\r\n ? dedupeHooks(res)\r\n : res\r\n}\r\n\r\nfunction dedupeHooks (hooks) {\r\n const res = [];\r\n for (let i = 0; i < hooks.length; i++) {\r\n if (res.indexOf(hooks[i]) === -1) {\r\n res.push(hooks[i]);\r\n }\r\n }\r\n return res\r\n}\r\n\r\nfunction removeHook (hooks, hook) {\r\n const index = hooks.indexOf(hook);\r\n if (index !== -1) {\r\n hooks.splice(index, 1);\r\n }\r\n}\r\n\r\nfunction mergeInterceptorHook (interceptor, option) {\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n interceptor[hook] = mergeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction removeInterceptorHook (interceptor, option) {\r\n if (!interceptor || !option) {\r\n return\r\n }\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n removeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction addInterceptor (method, option) {\r\n if (typeof method === 'string' && isPlainObject(option)) {\r\n mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option);\r\n } else if (isPlainObject(method)) {\r\n mergeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction removeInterceptor (method, option) {\r\n if (typeof method === 'string') {\r\n if (isPlainObject(option)) {\r\n removeInterceptorHook(scopedInterceptors[method], option);\r\n } else {\r\n delete scopedInterceptors[method];\r\n }\r\n } else if (isPlainObject(method)) {\r\n removeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction wrapperHook (hook) {\r\n return function (data) {\r\n return hook(data) || data\r\n }\r\n}\r\n\r\nfunction isPromise (obj) {\r\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'\r\n}\r\n\r\nfunction queue (hooks, data) {\r\n let promise = false;\r\n for (let i = 0; i < hooks.length; i++) {\r\n const hook = hooks[i];\r\n if (promise) {\r\n promise = Promise.then(wrapperHook(hook));\r\n } else {\r\n const res = hook(data);\r\n if (isPromise(res)) {\r\n promise = Promise.resolve(res);\r\n }\r\n if (res === false) {\r\n return {\r\n then () {}\r\n }\r\n }\r\n }\r\n }\r\n return promise || {\r\n then (callback) {\r\n return callback(data)\r\n }\r\n }\r\n}\r\n\r\nfunction wrapperOptions (interceptor, options = {}) {\r\n ['success', 'fail', 'complete'].forEach(name => {\r\n if (Array.isArray(interceptor[name])) {\r\n const oldCallback = options[name];\r\n options[name] = function callbackInterceptor (res) {\r\n queue(interceptor[name], res).then((res) => {\r\n /* eslint-disable no-mixed-operators */\r\n return isFn(oldCallback) && oldCallback(res) || res\r\n });\r\n };\r\n }\r\n });\r\n return options\r\n}\r\n\r\nfunction wrapperReturnValue (method, returnValue) {\r\n const returnValueHooks = [];\r\n if (Array.isArray(globalInterceptors.returnValue)) {\r\n returnValueHooks.push(...globalInterceptors.returnValue);\r\n }\r\n const interceptor = scopedInterceptors[method];\r\n if (interceptor && Array.isArray(interceptor.returnValue)) {\r\n returnValueHooks.push(...interceptor.returnValue);\r\n }\r\n returnValueHooks.forEach(hook => {\r\n returnValue = hook(returnValue) || returnValue;\r\n });\r\n return returnValue\r\n}\r\n\r\nfunction getApiInterceptorHooks (method) {\r\n const interceptor = Object.create(null);\r\n Object.keys(globalInterceptors).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = globalInterceptors[hook].slice();\r\n }\r\n });\r\n const scopedInterceptor = scopedInterceptors[method];\r\n if (scopedInterceptor) {\r\n Object.keys(scopedInterceptor).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);\r\n }\r\n });\r\n }\r\n return interceptor\r\n}\r\n\r\nfunction invokeApi (method, api, options, ...params) {\r\n const interceptor = getApiInterceptorHooks(method);\r\n if (interceptor && Object.keys(interceptor).length) {\r\n if (Array.isArray(interceptor.invoke)) {\r\n const res = queue(interceptor.invoke, options);\r\n return res.then((options) => {\r\n return api(wrapperOptions(interceptor, options), ...params)\r\n })\r\n } else {\r\n return api(wrapperOptions(interceptor, options), ...params)\r\n }\r\n }\r\n return api(options, ...params)\r\n}\r\n\r\nconst promiseInterceptor = {\r\n returnValue (res) {\r\n if (!isPromise(res)) {\r\n return res\r\n }\r\n return res.then(res => {\r\n return res[1]\r\n }).catch(res => {\r\n return res[0]\r\n })\r\n }\r\n};\r\n\r\nconst SYNC_API_RE =\r\n /^\\$|sendNativeEvent|restoreGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/;\r\n\r\nconst CONTEXT_API_RE = /^create|Manager$/;\r\n\r\n// Context例外情况\r\nconst CONTEXT_API_RE_EXC = ['createBLEConnection'];\r\n\r\n// 同步例外情况\r\nconst ASYNC_API = ['createBLEConnection'];\r\n\r\nconst CALLBACK_API_RE = /^on|^off/;\r\n\r\nfunction isContextApi (name) {\r\n return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1\r\n}\r\nfunction isSyncApi (name) {\r\n return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1\r\n}\r\n\r\nfunction isCallbackApi (name) {\r\n return CALLBACK_API_RE.test(name) && name !== 'onPush'\r\n}\r\n\r\nfunction handlePromise (promise) {\r\n return promise.then(data => {\r\n return [null, data]\r\n })\r\n .catch(err => [err])\r\n}\r\n\r\nfunction shouldPromise (name) {\r\n if (\r\n isContextApi(name) ||\r\n isSyncApi(name) ||\r\n isCallbackApi(name)\r\n ) {\r\n return false\r\n }\r\n return true\r\n}\r\n\r\n/* eslint-disable no-extend-native */\r\nif (!Promise.prototype.finally) {\r\n Promise.prototype.finally = function (callback) {\r\n const promise = this.constructor;\r\n return this.then(\r\n value => promise.resolve(callback()).then(() => value),\r\n reason => promise.resolve(callback()).then(() => {\r\n throw reason\r\n })\r\n )\r\n };\r\n}\r\n\r\nfunction promisify (name, api) {\r\n if (!shouldPromise(name)) {\r\n return api\r\n }\r\n return function promiseApi (options = {}, ...params) {\r\n if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) {\r\n return wrapperReturnValue(name, invokeApi(name, api, options, ...params))\r\n }\r\n return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {\r\n invokeApi(name, api, Object.assign({}, options, {\r\n success: resolve,\r\n fail: reject\r\n }), ...params);\r\n })))\r\n }\r\n}\r\n\r\nconst EPS = 1e-4;\r\nconst BASE_DEVICE_WIDTH = 750;\r\nlet isIOS = false;\r\nlet deviceWidth = 0;\r\nlet deviceDPR = 0;\r\n\r\nfunction checkDeviceWidth () {\r\n const {\r\n platform,\r\n pixelRatio,\r\n windowWidth\r\n } = wx.getSystemInfoSync(); // uni=>wx runtime 编译目标是 uni 对象,内部不允许直接使用 uni\r\n\r\n deviceWidth = windowWidth;\r\n deviceDPR = pixelRatio;\r\n isIOS = platform === 'ios';\r\n}\r\n\r\nfunction upx2px (number, newDeviceWidth) {\r\n if (deviceWidth === 0) {\r\n checkDeviceWidth();\r\n }\r\n\r\n number = Number(number);\r\n if (number === 0) {\r\n return 0\r\n }\r\n let result = (number / BASE_DEVICE_WIDTH) * (newDeviceWidth || deviceWidth);\r\n if (result < 0) {\r\n result = -result;\r\n }\r\n result = Math.floor(result + EPS);\r\n if (result === 0) {\r\n if (deviceDPR === 1 || !isIOS) {\r\n return 1\r\n } else {\r\n return 0.5\r\n }\r\n }\r\n return number < 0 ? -result : result\r\n}\r\n\r\nconst interceptors = {\r\n promiseInterceptor\r\n};\r\n\r\nvar baseApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n upx2px: upx2px,\r\n addInterceptor: addInterceptor,\r\n removeInterceptor: removeInterceptor,\r\n interceptors: interceptors\r\n});\r\n\r\nvar previewImage = {\r\n args (fromArgs) {\r\n let currentIndex = parseInt(fromArgs.current);\r\n if (isNaN(currentIndex)) {\r\n return\r\n }\r\n const urls = fromArgs.urls;\r\n if (!Array.isArray(urls)) {\r\n return\r\n }\r\n const len = urls.length;\r\n if (!len) {\r\n return\r\n }\r\n if (currentIndex < 0) {\r\n currentIndex = 0;\r\n } else if (currentIndex >= len) {\r\n currentIndex = len - 1;\r\n }\r\n if (currentIndex > 0) {\r\n fromArgs.current = urls[currentIndex];\r\n fromArgs.urls = urls.filter(\r\n (item, index) => index < currentIndex ? item !== urls[currentIndex] : true\r\n );\r\n } else {\r\n fromArgs.current = urls[0];\r\n }\r\n return {\r\n indicator: false,\r\n loop: false\r\n }\r\n }\r\n};\r\n\r\nfunction addSafeAreaInsets (result) {\r\n if (result.safeArea) {\r\n const safeArea = result.safeArea;\r\n result.safeAreaInsets = {\r\n top: safeArea.top,\r\n left: safeArea.left,\r\n right: result.windowWidth - safeArea.right,\r\n bottom: result.windowHeight - safeArea.bottom\r\n };\r\n }\r\n}\r\nconst protocols = {\r\n previewImage,\r\n getSystemInfo: {\r\n returnValue: addSafeAreaInsets\r\n },\r\n getSystemInfoSync: {\r\n returnValue: addSafeAreaInsets\r\n }\r\n};\r\nconst todos = [\r\n 'vibrate'\r\n];\r\nconst canIUses = [];\r\n\r\nconst CALLBACKS = ['success', 'fail', 'cancel', 'complete'];\r\n\r\nfunction processCallback (methodName, method, returnValue) {\r\n return function (res) {\r\n return method(processReturnValue(methodName, res, returnValue))\r\n }\r\n}\r\n\r\nfunction processArgs (methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) {\r\n if (isPlainObject(fromArgs)) { // 一般 api 的参数解析\r\n const toArgs = keepFromArgs === true ? fromArgs : {}; // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值\r\n if (isFn(argsOption)) {\r\n argsOption = argsOption(fromArgs, toArgs) || {};\r\n }\r\n for (const key in fromArgs) {\r\n if (hasOwn(argsOption, key)) {\r\n let keyOption = argsOption[key];\r\n if (isFn(keyOption)) {\r\n keyOption = keyOption(fromArgs[key], fromArgs, toArgs);\r\n }\r\n if (!keyOption) { // 不支持的参数\r\n console.warn(`微信小程序 ${methodName}暂不支持${key}`);\r\n } else if (isStr(keyOption)) { // 重写参数 key\r\n toArgs[keyOption] = fromArgs[key];\r\n } else if (isPlainObject(keyOption)) { // {name:newName,value:value}可重新指定参数 key:value\r\n toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;\r\n }\r\n } else if (CALLBACKS.indexOf(key) !== -1) {\r\n toArgs[key] = processCallback(methodName, fromArgs[key], returnValue);\r\n } else {\r\n if (!keepFromArgs) {\r\n toArgs[key] = fromArgs[key];\r\n }\r\n }\r\n }\r\n return toArgs\r\n } else if (isFn(fromArgs)) {\r\n fromArgs = processCallback(methodName, fromArgs, returnValue);\r\n }\r\n return fromArgs\r\n}\r\n\r\nfunction processReturnValue (methodName, res, returnValue, keepReturnValue = false) {\r\n if (isFn(protocols.returnValue)) { // 处理通用 returnValue\r\n res = protocols.returnValue(methodName, res);\r\n }\r\n return processArgs(methodName, res, returnValue, {}, keepReturnValue)\r\n}\r\n\r\nfunction wrapper (methodName, method) {\r\n if (hasOwn(protocols, methodName)) {\r\n const protocol = protocols[methodName];\r\n if (!protocol) { // 暂不支持的 api\r\n return function () {\r\n console.error(`微信小程序 暂不支持${methodName}`);\r\n }\r\n }\r\n return function (arg1, arg2) { // 目前 api 最多两个参数\r\n let options = protocol;\r\n if (isFn(protocol)) {\r\n options = protocol(arg1);\r\n }\r\n\r\n arg1 = processArgs(methodName, arg1, options.args, options.returnValue);\r\n\r\n const args = [arg1];\r\n if (typeof arg2 !== 'undefined') {\r\n args.push(arg2);\r\n }\r\n const returnValue = wx[options.name || methodName].apply(wx, args);\r\n if (isSyncApi(methodName)) { // 同步 api\r\n return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName))\r\n }\r\n return returnValue\r\n }\r\n }\r\n return method\r\n}\r\n\r\nconst todoApis = Object.create(null);\r\n\r\nconst TODOS = [\r\n 'onTabBarMidButtonTap',\r\n 'subscribePush',\r\n 'unsubscribePush',\r\n 'onPush',\r\n 'offPush',\r\n 'share'\r\n];\r\n\r\nfunction createTodoApi (name) {\r\n return function todoApi ({\r\n fail,\r\n complete\r\n }) {\r\n const res = {\r\n errMsg: `${name}:fail:暂不支持 ${name} 方法`\r\n };\r\n isFn(fail) && fail(res);\r\n isFn(complete) && complete(res);\r\n }\r\n}\r\n\r\nTODOS.forEach(function (name) {\r\n todoApis[name] = createTodoApi(name);\r\n});\r\n\r\nvar providers = {\r\n oauth: ['weixin'],\r\n share: ['weixin'],\r\n payment: ['wxpay'],\r\n push: ['weixin']\r\n};\r\n\r\nfunction getProvider ({\r\n service,\r\n success,\r\n fail,\r\n complete\r\n}) {\r\n let res = false;\r\n if (providers[service]) {\r\n res = {\r\n errMsg: 'getProvider:ok',\r\n service,\r\n provider: providers[service]\r\n };\r\n isFn(success) && success(res);\r\n } else {\r\n res = {\r\n errMsg: 'getProvider:fail:服务[' + service + ']不存在'\r\n };\r\n isFn(fail) && fail(res);\r\n }\r\n isFn(complete) && complete(res);\r\n}\r\n\r\nvar extraApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n getProvider: getProvider\r\n});\r\n\r\nconst getEmitter = (function () {\r\n if (typeof getUniEmitter === 'function') {\r\n /* eslint-disable no-undef */\r\n return getUniEmitter\r\n }\r\n let Emitter;\r\n return function getUniEmitter () {\r\n if (!Emitter) {\r\n Emitter = new Vue();\r\n }\r\n return Emitter\r\n }\r\n})();\r\n\r\nfunction apply (ctx, method, args) {\r\n return ctx[method].apply(ctx, args)\r\n}\r\n\r\nfunction $on () {\r\n return apply(getEmitter(), '$on', [...arguments])\r\n}\r\nfunction $off () {\r\n return apply(getEmitter(), '$off', [...arguments])\r\n}\r\nfunction $once () {\r\n return apply(getEmitter(), '$once', [...arguments])\r\n}\r\nfunction $emit () {\r\n return apply(getEmitter(), '$emit', [...arguments])\r\n}\r\n\r\nvar eventApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n $on: $on,\r\n $off: $off,\r\n $once: $once,\r\n $emit: $emit\r\n});\r\n\r\nvar api = /*#__PURE__*/Object.freeze({\r\n __proto__: null\r\n});\r\n\r\nconst MPPage = Page;\r\nconst MPComponent = Component;\r\n\r\nconst customizeRE = /:/g;\r\n\r\nconst customize = cached((str) => {\r\n return camelize(str.replace(customizeRE, '-'))\r\n});\r\n\r\nfunction initTriggerEvent (mpInstance) {\r\n {\r\n if (!wx.canIUse('nextTick')) {\r\n return\r\n }\r\n }\r\n const oldTriggerEvent = mpInstance.triggerEvent;\r\n mpInstance.triggerEvent = function (event, ...args) {\r\n return oldTriggerEvent.apply(mpInstance, [customize(event), ...args])\r\n };\r\n}\r\n\r\nfunction initHook (name, options) {\r\n const oldHook = options[name];\r\n if (!oldHook) {\r\n options[name] = function () {\r\n initTriggerEvent(this);\r\n };\r\n } else {\r\n options[name] = function (...args) {\r\n initTriggerEvent(this);\r\n return oldHook.apply(this, args)\r\n };\r\n }\r\n}\r\n\r\nPage = function (options = {}) {\r\n initHook('onLoad', options);\r\n return MPPage(options)\r\n};\r\n\r\nComponent = function (options = {}) {\r\n initHook('created', options);\r\n return MPComponent(options)\r\n};\r\n\r\nconst PAGE_EVENT_HOOKS = [\r\n 'onPullDownRefresh',\r\n 'onReachBottom',\r\n 'onShareAppMessage',\r\n 'onPageScroll',\r\n 'onResize',\r\n 'onTabItemTap'\r\n];\r\n\r\nfunction initMocks (vm, mocks) {\r\n const mpInstance = vm.$mp[vm.mpType];\r\n mocks.forEach(mock => {\r\n if (hasOwn(mpInstance, mock)) {\r\n vm[mock] = mpInstance[mock];\r\n }\r\n });\r\n}\r\n\r\nfunction hasHook (hook, vueOptions) {\r\n if (!vueOptions) {\r\n return true\r\n }\r\n\r\n if (Vue.options && Array.isArray(Vue.options[hook])) {\r\n return true\r\n }\r\n\r\n vueOptions = vueOptions.default || vueOptions;\r\n\r\n if (isFn(vueOptions)) {\r\n if (isFn(vueOptions.extendOptions[hook])) {\r\n return true\r\n }\r\n if (vueOptions.super &&\r\n vueOptions.super.options &&\r\n Array.isArray(vueOptions.super.options[hook])) {\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n if (isFn(vueOptions[hook])) {\r\n return true\r\n }\r\n const mixins = vueOptions.mixins;\r\n if (Array.isArray(mixins)) {\r\n return !!mixins.find(mixin => hasHook(hook, mixin))\r\n }\r\n}\r\n\r\nfunction initHooks (mpOptions, hooks, vueOptions) {\r\n hooks.forEach(hook => {\r\n if (hasHook(hook, vueOptions)) {\r\n mpOptions[hook] = function (args) {\r\n return this.$vm && this.$vm.__call_hook(hook, args)\r\n };\r\n }\r\n });\r\n}\r\n\r\nfunction initVueComponent (Vue, vueOptions) {\r\n vueOptions = vueOptions.default || vueOptions;\r\n let VueComponent;\r\n if (isFn(vueOptions)) {\r\n VueComponent = vueOptions;\r\n vueOptions = VueComponent.extendOptions;\r\n } else {\r\n VueComponent = Vue.extend(vueOptions);\r\n }\r\n return [VueComponent, vueOptions]\r\n}\r\n\r\nfunction initSlots (vm, vueSlots) {\r\n if (Array.isArray(vueSlots) && vueSlots.length) {\r\n const $slots = Object.create(null);\r\n vueSlots.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n vm.$scopedSlots = vm.$slots = $slots;\r\n }\r\n}\r\n\r\nfunction initVueIds (vueIds, mpInstance) {\r\n vueIds = (vueIds || '').split(',');\r\n const len = vueIds.length;\r\n\r\n if (len === 1) {\r\n mpInstance._$vueId = vueIds[0];\r\n } else if (len === 2) {\r\n mpInstance._$vueId = vueIds[0];\r\n mpInstance._$vuePid = vueIds[1];\r\n }\r\n}\r\n\r\nfunction initData (vueOptions, context) {\r\n let data = vueOptions.data || {};\r\n const methods = vueOptions.methods || {};\r\n\r\n if (typeof data === 'function') {\r\n try {\r\n data = data.call(context); // 支持 Vue.prototype 上挂的数据\r\n } catch (e) {\r\n if (process.env.VUE_APP_DEBUG) {\r\n console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data);\r\n }\r\n }\r\n } else {\r\n try {\r\n // 对 data 格式化\r\n data = JSON.parse(JSON.stringify(data));\r\n } catch (e) {}\r\n }\r\n\r\n if (!isPlainObject(data)) {\r\n data = {};\r\n }\r\n\r\n Object.keys(methods).forEach(methodName => {\r\n if (context.__lifecycle_hooks__.indexOf(methodName) === -1 && !hasOwn(data, methodName)) {\r\n data[methodName] = methods[methodName];\r\n }\r\n });\r\n\r\n return data\r\n}\r\n\r\nconst PROP_TYPES = [String, Number, Boolean, Object, Array, null];\r\n\r\nfunction createObserver (name) {\r\n return function observer (newVal, oldVal) {\r\n if (this.$vm) {\r\n this.$vm[name] = newVal; // 为了触发其他非 render watcher\r\n }\r\n }\r\n}\r\n\r\nfunction initBehaviors (vueOptions, initBehavior) {\r\n const vueBehaviors = vueOptions.behaviors;\r\n const vueExtends = vueOptions.extends;\r\n const vueMixins = vueOptions.mixins;\r\n\r\n let vueProps = vueOptions.props;\r\n\r\n if (!vueProps) {\r\n vueOptions.props = vueProps = [];\r\n }\r\n\r\n const behaviors = [];\r\n if (Array.isArray(vueBehaviors)) {\r\n vueBehaviors.forEach(behavior => {\r\n behaviors.push(behavior.replace('uni://', `${\"wx\"}://`));\r\n if (behavior === 'uni://form-field') {\r\n if (Array.isArray(vueProps)) {\r\n vueProps.push('name');\r\n vueProps.push('value');\r\n } else {\r\n vueProps.name = {\r\n type: String,\r\n default: ''\r\n };\r\n vueProps.value = {\r\n type: [String, Number, Boolean, Array, Object, Date],\r\n default: ''\r\n };\r\n }\r\n }\r\n });\r\n }\r\n if (isPlainObject(vueExtends) && vueExtends.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueExtends.props, true)\r\n })\r\n );\r\n }\r\n if (Array.isArray(vueMixins)) {\r\n vueMixins.forEach(vueMixin => {\r\n if (isPlainObject(vueMixin) && vueMixin.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueMixin.props, true)\r\n })\r\n );\r\n }\r\n });\r\n }\r\n return behaviors\r\n}\r\n\r\nfunction parsePropType (key, type, defaultValue, file) {\r\n // [String]=>String\r\n if (Array.isArray(type) && type.length === 1) {\r\n return type[0]\r\n }\r\n return type\r\n}\r\n\r\nfunction initProperties (props, isBehavior = false, file = '') {\r\n const properties = {};\r\n if (!isBehavior) {\r\n properties.vueId = {\r\n type: String,\r\n value: ''\r\n };\r\n properties.vueSlots = { // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots\r\n type: null,\r\n value: [],\r\n observer: function (newVal, oldVal) {\r\n const $slots = Object.create(null);\r\n newVal.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n this.setData({\r\n $slots\r\n });\r\n }\r\n };\r\n }\r\n if (Array.isArray(props)) { // ['title']\r\n props.forEach(key => {\r\n properties[key] = {\r\n type: null,\r\n observer: createObserver(key)\r\n };\r\n });\r\n } else if (isPlainObject(props)) { // {title:{type:String,default:''},content:String}\r\n Object.keys(props).forEach(key => {\r\n const opts = props[key];\r\n if (isPlainObject(opts)) { // title:{type:String,default:''}\r\n let value = opts.default;\r\n if (isFn(value)) {\r\n value = value();\r\n }\r\n\r\n opts.type = parsePropType(key, opts.type);\r\n\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(opts.type) !== -1 ? opts.type : null,\r\n value,\r\n observer: createObserver(key)\r\n };\r\n } else { // content:String\r\n const type = parsePropType(key, opts);\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(type) !== -1 ? type : null,\r\n observer: createObserver(key)\r\n };\r\n }\r\n });\r\n }\r\n return properties\r\n}\r\n\r\nfunction wrapper$1 (event) {\r\n // TODO 又得兼容 mpvue 的 mp 对象\r\n try {\r\n event.mp = JSON.parse(JSON.stringify(event));\r\n } catch (e) {}\r\n\r\n event.stopPropagation = noop;\r\n event.preventDefault = noop;\r\n\r\n event.target = event.target || {};\r\n\r\n if (!hasOwn(event, 'detail')) {\r\n event.detail = {};\r\n }\r\n\r\n if (hasOwn(event, 'markerId')) {\r\n event.detail = typeof event.detail === 'object' ? event.detail : {};\r\n event.detail.markerId = event.markerId;\r\n }\r\n\r\n if (isPlainObject(event.detail)) {\r\n event.target = Object.assign({}, event.target, event.detail);\r\n }\r\n\r\n return event\r\n}\r\n\r\nfunction getExtraValue (vm, dataPathsArray) {\r\n let context = vm;\r\n dataPathsArray.forEach(dataPathArray => {\r\n const dataPath = dataPathArray[0];\r\n const value = dataPathArray[2];\r\n if (dataPath || typeof value !== 'undefined') { // ['','',index,'disable']\r\n const propPath = dataPathArray[1];\r\n const valuePath = dataPathArray[3];\r\n\r\n const vFor = dataPath ? vm.__get_value(dataPath, context) : context;\r\n\r\n if (Number.isInteger(vFor)) {\r\n context = value;\r\n } else if (!propPath) {\r\n context = vFor[value];\r\n } else {\r\n if (Array.isArray(vFor)) {\r\n context = vFor.find(vForItem => {\r\n return vm.__get_value(propPath, vForItem) === value\r\n });\r\n } else if (isPlainObject(vFor)) {\r\n context = Object.keys(vFor).find(vForKey => {\r\n return vm.__get_value(propPath, vFor[vForKey]) === value\r\n });\r\n } else {\r\n console.error('v-for 暂不支持循环数据:', vFor);\r\n }\r\n }\r\n\r\n if (valuePath) {\r\n context = vm.__get_value(valuePath, context);\r\n }\r\n }\r\n });\r\n return context\r\n}\r\n\r\nfunction processEventExtra (vm, extra, event) {\r\n const extraObj = {};\r\n\r\n if (Array.isArray(extra) && extra.length) {\r\n /**\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *'test'\r\n */\r\n extra.forEach((dataPath, index) => {\r\n if (typeof dataPath === 'string') {\r\n if (!dataPath) { // model,prop.sync\r\n extraObj['$' + index] = vm;\r\n } else {\r\n if (dataPath === '$event') { // $event\r\n extraObj['$' + index] = event;\r\n } else if (dataPath.indexOf('$event.') === 0) { // $event.target.value\r\n extraObj['$' + index] = vm.__get_value(dataPath.replace('$event.', ''), event);\r\n } else {\r\n extraObj['$' + index] = vm.__get_value(dataPath);\r\n }\r\n }\r\n } else {\r\n extraObj['$' + index] = getExtraValue(vm, dataPath);\r\n }\r\n });\r\n }\r\n\r\n return extraObj\r\n}\r\n\r\nfunction getObjByArray (arr) {\r\n const obj = {};\r\n for (let i = 1; i < arr.length; i++) {\r\n const element = arr[i];\r\n obj[element[0]] = element[1];\r\n }\r\n return obj\r\n}\r\n\r\nfunction processEventArgs (vm, event, args = [], extra = [], isCustom, methodName) {\r\n let isCustomMPEvent = false; // wxcomponent 组件,传递原始 event 对象\r\n if (isCustom) { // 自定义事件\r\n isCustomMPEvent = event.currentTarget &&\r\n event.currentTarget.dataset &&\r\n event.currentTarget.dataset.comType === 'wx';\r\n if (!args.length) { // 无参数,直接传入 event 或 detail 数组\r\n if (isCustomMPEvent) {\r\n return [event]\r\n }\r\n return event.detail.__args__ || event.detail\r\n }\r\n }\r\n\r\n const extraObj = processEventExtra(vm, extra, event);\r\n\r\n const ret = [];\r\n args.forEach(arg => {\r\n if (arg === '$event') {\r\n if (methodName === '__set_model' && !isCustom) { // input v-model value\r\n ret.push(event.target.value);\r\n } else {\r\n if (isCustom && !isCustomMPEvent) {\r\n ret.push(event.detail.__args__[0]);\r\n } else { // wxcomponent 组件或内置组件\r\n ret.push(event);\r\n }\r\n }\r\n } else {\r\n if (Array.isArray(arg) && arg[0] === 'o') {\r\n ret.push(getObjByArray(arg));\r\n } else if (typeof arg === 'string' && hasOwn(extraObj, arg)) {\r\n ret.push(extraObj[arg]);\r\n } else {\r\n ret.push(arg);\r\n }\r\n }\r\n });\r\n\r\n return ret\r\n}\r\n\r\nconst ONCE = '~';\r\nconst CUSTOM = '^';\r\n\r\nfunction isMatchEventType (eventType, optType) {\r\n return (eventType === optType) ||\r\n (\r\n optType === 'regionchange' &&\r\n (\r\n eventType === 'begin' ||\r\n eventType === 'end'\r\n )\r\n )\r\n}\r\n\r\nfunction handleEvent (event) {\r\n event = wrapper$1(event);\r\n\r\n // [['tap',[['handle',[1,2,a]],['handle1',[1,2,a]]]]]\r\n const dataset = (event.currentTarget || event.target).dataset;\r\n if (!dataset) {\r\n return console.warn('事件信息不存在')\r\n }\r\n const eventOpts = dataset.eventOpts || dataset['event-opts']; // 支付宝 web-view 组件 dataset 非驼峰\r\n if (!eventOpts) {\r\n return console.warn('事件信息不存在')\r\n }\r\n\r\n // [['handle',[1,2,a]],['handle1',[1,2,a]]]\r\n const eventType = event.type;\r\n\r\n const ret = [];\r\n\r\n eventOpts.forEach(eventOpt => {\r\n let type = eventOpt[0];\r\n const eventsArray = eventOpt[1];\r\n\r\n const isCustom = type.charAt(0) === CUSTOM;\r\n type = isCustom ? type.slice(1) : type;\r\n const isOnce = type.charAt(0) === ONCE;\r\n type = isOnce ? type.slice(1) : type;\r\n\r\n if (eventsArray && isMatchEventType(eventType, type)) {\r\n eventsArray.forEach(eventArray => {\r\n const methodName = eventArray[0];\r\n if (methodName) {\r\n let handlerCtx = this.$vm;\r\n if (\r\n handlerCtx.$options.generic &&\r\n handlerCtx.$parent &&\r\n handlerCtx.$parent.$parent\r\n ) { // mp-weixin,mp-toutiao 抽象节点模拟 scoped slots\r\n handlerCtx = handlerCtx.$parent.$parent;\r\n }\r\n if (methodName === '$emit') {\r\n handlerCtx.$emit.apply(handlerCtx,\r\n processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n ));\r\n return\r\n }\r\n const handler = handlerCtx[methodName];\r\n if (!isFn(handler)) {\r\n throw new Error(` _vm.${methodName} is not a function`)\r\n }\r\n if (isOnce) {\r\n if (handler.once) {\r\n return\r\n }\r\n handler.once = true;\r\n }\r\n ret.push(handler.apply(handlerCtx, processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n )));\r\n }\r\n });\r\n }\r\n });\r\n\r\n if (\r\n eventType === 'input' &&\r\n ret.length === 1 &&\r\n typeof ret[0] !== 'undefined'\r\n ) {\r\n return ret[0]\r\n }\r\n}\r\n\r\nconst hooks = [\r\n 'onShow',\r\n 'onHide',\r\n 'onError',\r\n 'onPageNotFound'\r\n];\r\n\r\nfunction parseBaseApp (vm, {\r\n mocks,\r\n initRefs\r\n}) {\r\n if (vm.$options.store) {\r\n Vue.prototype.$store = vm.$options.store;\r\n }\r\n\r\n Vue.prototype.mpHost = \"mp-weixin\";\r\n\r\n Vue.mixin({\r\n beforeCreate () {\r\n if (!this.$options.mpType) {\r\n return\r\n }\r\n\r\n this.mpType = this.$options.mpType;\r\n\r\n this.$mp = {\r\n data: {},\r\n [this.mpType]: this.$options.mpInstance\r\n };\r\n\r\n this.$scope = this.$options.mpInstance;\r\n\r\n delete this.$options.mpType;\r\n delete this.$options.mpInstance;\r\n\r\n if (this.mpType !== 'app') {\r\n initRefs(this);\r\n initMocks(this, mocks);\r\n }\r\n }\r\n });\r\n\r\n const appOptions = {\r\n onLaunch (args) {\r\n if (this.$vm) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前\r\n return\r\n }\r\n {\r\n if (!wx.canIUse('nextTick')) { // 事实 上2.2.3 即可,简单使用 2.3.0 的 nextTick 判断\r\n console.error('当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上');\r\n }\r\n }\r\n\r\n this.$vm = vm;\r\n\r\n this.$vm.$mp = {\r\n app: this\r\n };\r\n\r\n this.$vm.$scope = this;\r\n // vm 上也挂载 globalData\r\n this.$vm.globalData = this.globalData;\r\n\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted', args);\r\n\r\n this.$vm.__call_hook('onLaunch', args);\r\n }\r\n };\r\n\r\n // 兼容旧版本 globalData\r\n appOptions.globalData = vm.$options.globalData || {};\r\n // 将 methods 中的方法挂在 getApp() 中\r\n const methods = vm.$options.methods;\r\n if (methods) {\r\n Object.keys(methods).forEach(name => {\r\n appOptions[name] = methods[name];\r\n });\r\n }\r\n\r\n initHooks(appOptions, hooks);\r\n\r\n return appOptions\r\n}\r\n\r\nconst mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];\r\n\r\nfunction findVmByVueId (vm, vuePid) {\r\n const $children = vm.$children;\r\n // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n const childVm = $children[i];\r\n if (childVm.$scope._$vueId === vuePid) {\r\n return childVm\r\n }\r\n }\r\n // 反向递归查找\r\n let parentVm;\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n parentVm = findVmByVueId($children[i], vuePid);\r\n if (parentVm) {\r\n return parentVm\r\n }\r\n }\r\n}\r\n\r\nfunction initBehavior (options) {\r\n return Behavior(options)\r\n}\r\n\r\nfunction isPage () {\r\n return !!this.route\r\n}\r\n\r\nfunction initRelation (detail) {\r\n this.triggerEvent('__l', detail);\r\n}\r\n\r\nfunction initRefs (vm) {\r\n const mpInstance = vm.$scope;\r\n Object.defineProperty(vm, '$refs', {\r\n get () {\r\n const $refs = {};\r\n const components = mpInstance.selectAllComponents('.vue-ref');\r\n components.forEach(component => {\r\n const ref = component.dataset.ref;\r\n $refs[ref] = component.$vm || component;\r\n });\r\n const forComponents = mpInstance.selectAllComponents('.vue-ref-in-for');\r\n forComponents.forEach(component => {\r\n const ref = component.dataset.ref;\r\n if (!$refs[ref]) {\r\n $refs[ref] = [];\r\n }\r\n $refs[ref].push(component.$vm || component);\r\n });\r\n return $refs\r\n }\r\n });\r\n}\r\n\r\nfunction handleLink (event) {\r\n const {\r\n vuePid,\r\n vueOptions\r\n } = event.detail || event.value; // detail 是微信,value 是百度(dipatch)\r\n\r\n let parentVm;\r\n\r\n if (vuePid) {\r\n parentVm = findVmByVueId(this.$vm, vuePid);\r\n }\r\n\r\n if (!parentVm) {\r\n parentVm = this.$vm;\r\n }\r\n\r\n vueOptions.parent = parentVm;\r\n}\r\n\r\nfunction parseApp (vm) {\r\n return parseBaseApp(vm, {\r\n mocks,\r\n initRefs\r\n })\r\n}\r\n\r\nfunction createApp (vm) {\r\n App(parseApp(vm));\r\n return vm\r\n}\r\n\r\nfunction parseBaseComponent (vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n} = {}) {\r\n const [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions);\r\n\r\n const options = {\r\n multipleSlots: true,\r\n addGlobalClass: true,\r\n ...(vueOptions.options || {})\r\n };\r\n\r\n {\r\n // 微信 multipleSlots 部分情况有 bug,导致内容顺序错乱 如 u-list,提供覆盖选项\r\n if (vueOptions['mp-weixin'] && vueOptions['mp-weixin'].options) {\r\n Object.assign(options, vueOptions['mp-weixin'].options);\r\n }\r\n }\r\n\r\n const componentOptions = {\r\n options,\r\n data: initData(vueOptions, Vue.prototype),\r\n behaviors: initBehaviors(vueOptions, initBehavior),\r\n properties: initProperties(vueOptions.props, false, vueOptions.__file),\r\n lifetimes: {\r\n attached () {\r\n const properties = this.properties;\r\n\r\n const options = {\r\n mpType: isPage.call(this) ? 'page' : 'component',\r\n mpInstance: this,\r\n propsData: properties\r\n };\r\n\r\n initVueIds(properties.vueId, this);\r\n\r\n // 处理父子关系\r\n initRelation.call(this, {\r\n vuePid: this._$vuePid,\r\n vueOptions: options\r\n });\r\n\r\n // 初始化 vue 实例\r\n this.$vm = new VueComponent(options);\r\n\r\n // 处理$slots,$scopedSlots(暂不支持动态变化$slots)\r\n initSlots(this.$vm, properties.vueSlots);\r\n\r\n // 触发首次 setData\r\n this.$vm.$mount();\r\n },\r\n ready () {\r\n // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发\r\n // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800\r\n if (this.$vm) {\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted');\r\n this.$vm.__call_hook('onReady');\r\n }\r\n },\r\n detached () {\r\n this.$vm && this.$vm.$destroy();\r\n }\r\n },\r\n pageLifetimes: {\r\n show (args) {\r\n this.$vm && this.$vm.__call_hook('onPageShow', args);\r\n },\r\n hide () {\r\n this.$vm && this.$vm.__call_hook('onPageHide');\r\n },\r\n resize (size) {\r\n this.$vm && this.$vm.__call_hook('onPageResize', size);\r\n }\r\n },\r\n methods: {\r\n __l: handleLink,\r\n __e: handleEvent\r\n }\r\n };\r\n\r\n if (Array.isArray(vueOptions.wxsCallMethods)) {\r\n vueOptions.wxsCallMethods.forEach(callMethod => {\r\n componentOptions.methods[callMethod] = function (args) {\r\n return this.$vm[callMethod](args)\r\n };\r\n });\r\n }\r\n\r\n if (isPage) {\r\n return componentOptions\r\n }\r\n return [componentOptions, VueComponent]\r\n}\r\n\r\nfunction parseComponent (vueComponentOptions) {\r\n return parseBaseComponent(vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n })\r\n}\r\n\r\nconst hooks$1 = [\r\n 'onShow',\r\n 'onHide',\r\n 'onUnload'\r\n];\r\n\r\nhooks$1.push(...PAGE_EVENT_HOOKS);\r\n\r\nfunction parseBasePage (vuePageOptions, {\r\n isPage,\r\n initRelation\r\n}) {\r\n const pageOptions = parseComponent(vuePageOptions);\r\n\r\n initHooks(pageOptions.methods, hooks$1, vuePageOptions);\r\n\r\n pageOptions.methods.onLoad = function (args) {\r\n this.$vm.$mp.query = args; // 兼容 mpvue\r\n this.$vm.__call_hook('onLoad', args);\r\n };\r\n\r\n return pageOptions\r\n}\r\n\r\nfunction parsePage (vuePageOptions) {\r\n return parseBasePage(vuePageOptions, {\r\n isPage,\r\n initRelation\r\n })\r\n}\r\n\r\nfunction createPage (vuePageOptions) {\r\n {\r\n return Component(parsePage(vuePageOptions))\r\n }\r\n}\r\n\r\nfunction createComponent (vueOptions) {\r\n {\r\n return Component(parseComponent(vueOptions))\r\n }\r\n}\r\n\r\ntodos.forEach(todoApi => {\r\n protocols[todoApi] = false;\r\n});\r\n\r\ncanIUses.forEach(canIUseApi => {\r\n const apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name\r\n : canIUseApi;\r\n if (!wx.canIUse(apiName)) {\r\n protocols[canIUseApi] = false;\r\n }\r\n});\r\n\r\nlet uni = {};\r\n\r\nif (typeof Proxy !== 'undefined' && \"mp-weixin\" !== 'app-plus') {\r\n uni = new Proxy({}, {\r\n get (target, name) {\r\n if (target[name]) {\r\n return target[name]\r\n }\r\n if (baseApi[name]) {\r\n return baseApi[name]\r\n }\r\n if (api[name]) {\r\n return promisify(name, api[name])\r\n }\r\n {\r\n if (extraApi[name]) {\r\n return promisify(name, extraApi[name])\r\n }\r\n if (todoApis[name]) {\r\n return promisify(name, todoApis[name])\r\n }\r\n }\r\n if (eventApi[name]) {\r\n return eventApi[name]\r\n }\r\n if (!hasOwn(wx, name) && !hasOwn(protocols, name)) {\r\n return\r\n }\r\n return promisify(name, wrapper(name, wx[name]))\r\n },\r\n set (target, name, value) {\r\n target[name] = value;\r\n return true\r\n }\r\n });\r\n} else {\r\n Object.keys(baseApi).forEach(name => {\r\n uni[name] = baseApi[name];\r\n });\r\n\r\n {\r\n Object.keys(todoApis).forEach(name => {\r\n uni[name] = promisify(name, todoApis[name]);\r\n });\r\n Object.keys(extraApi).forEach(name => {\r\n uni[name] = promisify(name, todoApis[name]);\r\n });\r\n }\r\n\r\n Object.keys(eventApi).forEach(name => {\r\n uni[name] = eventApi[name];\r\n });\r\n\r\n Object.keys(api).forEach(name => {\r\n uni[name] = promisify(name, api[name]);\r\n });\r\n\r\n Object.keys(wx).forEach(name => {\r\n if (hasOwn(wx, name) || hasOwn(protocols, name)) {\r\n uni[name] = promisify(name, wrapper(name, wx[name]));\r\n }\r\n });\r\n}\r\n\r\nwx.createApp = createApp;\r\nwx.createPage = createPage;\r\nwx.createComponent = createComponent;\r\n\r\nvar uni$1 = uni;\r\n\r\nexport default uni$1;\r\nexport { createApp, createComponent, createPage };\r\n","/*!\n * Vue.js v2.6.11\n * (c) 2014-2020 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n {\n if(vm.$scope && vm.$scope.is){\n return vm.$scope.is\n }\n }\n if (vm.$root === vm) {\n return '<Root>'\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n // fixed by xxxxxx (nvue vuex)\n /* eslint-disable no-undef */\n if(typeof SharedObject !== 'undefined'){\n this.id = SharedObject.uid++;\n } else {\n this.id = uid++;\n }\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.SharedObject.target) {\n Dep.SharedObject.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\n// fixed by xxxxxx (nvue shared vuex)\n/* eslint-disable no-undef */\nDep.SharedObject = typeof SharedObject !== 'undefined' ? SharedObject : {};\nDep.SharedObject.target = null;\nDep.SharedObject.targetStack = [];\n\nfunction pushTarget (target) {\n Dep.SharedObject.targetStack.push(target);\n Dep.SharedObject.target = target;\n}\n\nfunction popTarget () {\n Dep.SharedObject.targetStack.pop();\n Dep.SharedObject.target = Dep.SharedObject.targetStack[Dep.SharedObject.targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n {// fixed by xxxxxx 微信小程序使用 plugins 之后,数组方法被直接挂载到了数组对象上,需要执行 copyAugment 逻辑\n if(value.push !== value.__proto__.push){\n copyAugment(value, arrayMethods, arrayKeys);\n } else {\n protoAugment(value, arrayMethods);\n }\n }\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.SharedObject.target) { // fixed by xxxxxx\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\n/* */\n\n// fixed by xxxxxx (mp properties)\r\nfunction extractPropertiesFromVNodeData(data, Ctor, res, context) {\r\n var propOptions = Ctor.options.mpOptions && Ctor.options.mpOptions.properties;\r\n if (isUndef(propOptions)) {\r\n return res\r\n }\n var externalClasses = Ctor.options.mpOptions.externalClasses || [];\r\n var attrs = data.attrs;\n var props = data.props;\r\n if (isDef(attrs) || isDef(props)) {\r\n for (var key in propOptions) {\r\n var altKey = hyphenate(key);\n var result = checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n // externalClass\n if (\n result &&\n res[key] &&\n externalClasses.indexOf(altKey) !== -1 &&\n context[camelize(res[key])]\n ) {\n // 赋值 externalClass 真正的值(模板里 externalClass 的值可能是字符串)\n res[key] = context[camelize(res[key])];\n }\r\n }\r\n }\r\n return res\r\n}\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag,\n context// fixed by xxxxxx\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, {}, context)\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, res, context)\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n}\n\nfunction isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, lastIndex, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n lastIndex = res.length - 1;\n last = res[lastIndex];\n // nested\n if (Array.isArray(c)) {\n if (c.length > 0) {\n c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n // merge adjacent text nodes\n if (isTextNode(c[0]) && isTextNode(last)) {\n res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n c.shift();\n }\n res.push.apply(res, c);\n }\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n res[lastIndex] = createTextVNode(last.text + c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[lastIndex] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n}\n\n/* */\n\nfunction initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n}\n\nfunction initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n toggleObserving(false);\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n } else {\n defineReactive$$1(vm, key, result[key]);\n }\n });\n toggleObserving(true);\n }\n}\n\nfunction resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject)\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n // #6574 in case the inject object is observed...\n if (key === '__ob__') { continue }\n var provideKey = inject[key].from;\n var source = vm;\n while (source) {\n if (source._provided && hasOwn(source._provided, provideKey)) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (!source) {\n if ('default' in inject[key]) {\n var provideDefault = inject[key].default;\n result[key] = typeof provideDefault === 'function'\n ? provideDefault.call(vm)\n : provideDefault;\n } else if (process.env.NODE_ENV !== 'production') {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n }\n return result\n }\n}\n\n/* */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n children,\n context\n) {\n if (!children || !children.length) {\n return {}\n }\n var slots = {};\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.fnContext === context) &&\n data && data.slot != null\n ) {\n var name = data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children || []);\n } else {\n slot.push(child);\n }\n } else {\n // fixed by xxxxxx 临时 hack 掉 uni-app 中的异步 name slot page\n if(child.asyncMeta && child.asyncMeta.data && child.asyncMeta.data.slot === 'page'){\n (slots['page'] || (slots['page'] = [])).push(child);\n }else{\n (slots.default || (slots.default = [])).push(child);\n }\n }\n }\n // ignore slots that contains only whitespace\n for (var name$1 in slots) {\n if (slots[name$1].every(isWhitespace)) {\n delete slots[name$1];\n }\n }\n return slots\n}\n\nfunction isWhitespace (node) {\n return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\n/* */\n\nfunction normalizeScopedSlots (\n slots,\n normalSlots,\n prevSlots\n) {\n var res;\n var hasNormalSlots = Object.keys(normalSlots).length > 0;\n var isStable = slots ? !!slots.$stable : !hasNormalSlots;\n var key = slots && slots.$key;\n if (!slots) {\n res = {};\n } else if (slots._normalized) {\n // fast path 1: child component re-render only, parent did not change\n return slots._normalized\n } else if (\n isStable &&\n prevSlots &&\n prevSlots !== emptyObject &&\n key === prevSlots.$key &&\n !hasNormalSlots &&\n !prevSlots.$hasNormal\n ) {\n // fast path 2: stable scoped slots w/ no normal slots to proxy,\n // only need to normalize once\n return prevSlots\n } else {\n res = {};\n for (var key$1 in slots) {\n if (slots[key$1] && key$1[0] !== '$') {\n res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);\n }\n }\n }\n // expose normal slots on scopedSlots\n for (var key$2 in normalSlots) {\n if (!(key$2 in res)) {\n res[key$2] = proxyNormalSlot(normalSlots, key$2);\n }\n }\n // avoriaz seems to mock a non-extensible $scopedSlots object\n // and when that is passed down this would cause an error\n if (slots && Object.isExtensible(slots)) {\n (slots)._normalized = res;\n }\n def(res, '$stable', isStable);\n def(res, '$key', key);\n def(res, '$hasNormal', hasNormalSlots);\n return res\n}\n\nfunction normalizeScopedSlot(normalSlots, key, fn) {\n var normalized = function () {\n var res = arguments.length ? fn.apply(null, arguments) : fn({});\n res = res && typeof res === 'object' && !Array.isArray(res)\n ? [res] // single vnode\n : normalizeChildren(res);\n return res && (\n res.length === 0 ||\n (res.length === 1 && res[0].isComment) // #9658\n ) ? undefined\n : res\n };\n // this is a slot using the new v-slot syntax without scope. although it is\n // compiled as a scoped slot, render fn users would expect it to be present\n // on this.$slots because the usage is semantically a normal slot.\n if (fn.proxy) {\n Object.defineProperty(normalSlots, key, {\n get: normalized,\n enumerable: true,\n configurable: true\n });\n }\n return normalized\n}\n\nfunction proxyNormalSlot(slots, key) {\n return function () { return slots[key]; }\n}\n\n/* */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n val,\n render\n) {\n var ret, i, l, keys, key;\n if (Array.isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i, i, i); // fixed by xxxxxx\n }\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i, i, i); // fixed by xxxxxx\n }\n } else if (isObject(val)) {\n if (hasSymbol && val[Symbol.iterator]) {\n ret = [];\n var iterator = val[Symbol.iterator]();\n var result = iterator.next();\n while (!result.done) {\n ret.push(render(result.value, ret.length, i++, i)); // fixed by xxxxxx\n result = iterator.next();\n }\n } else {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i, i); // fixed by xxxxxx\n }\n }\n }\n if (!isDef(ret)) {\n ret = [];\n }\n (ret)._isVList = true;\n return ret\n}\n\n/* */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n name,\n fallback,\n props,\n bindObject\n) {\n var scopedSlotFn = this.$scopedSlots[name];\n var nodes;\n if (scopedSlotFn) { // scoped slot\n props = props || {};\n if (bindObject) {\n if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\n warn(\n 'slot v-bind without argument expects an Object',\n this\n );\n }\n props = extend(extend({}, bindObject), props);\n }\n // fixed by xxxxxx app-plus scopedSlot\n nodes = scopedSlotFn(props, this, props._i) || fallback;\n } else {\n nodes = this.$slots[name] || fallback;\n }\n\n var target = props && props.slot;\n if (target) {\n return this.$createElement('template', { slot: target }, nodes)\n } else {\n return nodes\n }\n}\n\n/* */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/* */\n\nfunction isKeyNotMatch (expect, actual) {\n if (Array.isArray(expect)) {\n return expect.indexOf(actual) === -1\n } else {\n return expect !== actual\n }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n eventKeyCode,\n key,\n builtInKeyCode,\n eventKeyName,\n builtInKeyName\n) {\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName)\n } else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n } else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key\n }\n}\n\n/* */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n data,\n tag,\n value,\n asProp,\n isSync\n) {\n if (value) {\n if (!isObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-bind without argument expects an Object or Array value',\n this\n );\n } else {\n if (Array.isArray(value)) {\n value = toObject(value);\n }\n var hash;\n var loop = function ( key ) {\n if (\n key === 'class' ||\n key === 'style' ||\n isReservedAttribute(key)\n ) {\n hash = data;\n } else {\n var type = data.attrs && data.attrs.type;\n hash = asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n var camelizedKey = camelize(key);\n var hyphenatedKey = hyphenate(key);\n if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n hash[key] = value[key];\n\n if (isSync) {\n var on = data.on || (data.on = {});\n on[(\"update:\" + key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n\n for (var key in value) loop( key );\n }\n }\n return data\n}\n\n/* */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n index,\n isInFor\n) {\n var cached = this._staticTrees || (this._staticTrees = []);\n var tree = cached[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree.\n if (tree && !isInFor) {\n return tree\n }\n // otherwise, render a fresh tree.\n tree = cached[index] = this.$options.staticRenderFns[index].call(\n this._renderProxy,\n null,\n this // for render fns generated for functional component templates\n );\n markStatic(tree, (\"__static__\" + index), false);\n return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n tree,\n index,\n key\n) {\n markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n return tree\n}\n\nfunction markStatic (\n tree,\n key,\n isOnce\n) {\n if (Array.isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n }\n }\n } else {\n markStaticNode(tree, key, isOnce);\n }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n}\n\n/* */\n\nfunction bindObjectListeners (data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-on without argument expects an Object value',\n this\n );\n } else {\n var on = data.on = data.on ? extend({}, data.on) : {};\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(existing, ours) : ours;\n }\n }\n }\n return data\n}\n\n/* */\n\nfunction resolveScopedSlots (\n fns, // see flow/vnode\n res,\n // the following are added in 2.6\n hasDynamicKeys,\n contentHashKey\n) {\n res = res || { $stable: !hasDynamicKeys };\n for (var i = 0; i < fns.length; i++) {\n var slot = fns[i];\n if (Array.isArray(slot)) {\n resolveScopedSlots(slot, res, hasDynamicKeys);\n } else if (slot) {\n // marker for reverse proxying v-slot without scope on this.$slots\n if (slot.proxy) {\n slot.fn.proxy = true;\n }\n res[slot.key] = slot.fn;\n }\n }\n if (contentHashKey) {\n (res).$key = contentHashKey;\n }\n return res\n}\n\n/* */\n\nfunction bindDynamicKeys (baseObj, values) {\n for (var i = 0; i < values.length; i += 2) {\n var key = values[i];\n if (typeof key === 'string' && key) {\n baseObj[values[i]] = values[i + 1];\n } else if (process.env.NODE_ENV !== 'production' && key !== '' && key !== null) {\n // null is a special value for explicitly removing a binding\n warn(\n (\"Invalid value for dynamic directive argument (expected string or null): \" + key),\n this\n );\n }\n }\n return baseObj\n}\n\n// helper to dynamically append modifier runtime markers to event names.\n// ensure only append when value is already string, otherwise it will be cast\n// to string and cause the type check to miss.\nfunction prependModifier (value, symbol) {\n return typeof value === 'string' ? symbol + value : value\n}\n\n/* */\n\nfunction installRenderHelpers (target) {\n target._o = markOnce;\n target._n = toNumber;\n target._s = toString;\n target._l = renderList;\n target._t = renderSlot;\n target._q = looseEqual;\n target._i = looseIndexOf;\n target._m = renderStatic;\n target._f = resolveFilter;\n target._k = checkKeyCodes;\n target._b = bindObjectProps;\n target._v = createTextVNode;\n target._e = createEmptyVNode;\n target._u = resolveScopedSlots;\n target._g = bindObjectListeners;\n target._d = bindDynamicKeys;\n target._p = prependModifier;\n}\n\n/* */\n\nfunction FunctionalRenderContext (\n data,\n props,\n children,\n parent,\n Ctor\n) {\n var this$1 = this;\n\n var options = Ctor.options;\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var contextVm;\n if (hasOwn(parent, '_uid')) {\n contextVm = Object.create(parent);\n // $flow-disable-line\n contextVm._original = parent;\n } else {\n // the context vm passed in is a functional context as well.\n // in this case we want to make sure we are able to get a hold to the\n // real context instance.\n contextVm = parent;\n // $flow-disable-line\n parent = parent._original;\n }\n var isCompiled = isTrue(options._compiled);\n var needNormalization = !isCompiled;\n\n this.data = data;\n this.props = props;\n this.children = children;\n this.parent = parent;\n this.listeners = data.on || emptyObject;\n this.injections = resolveInject(options.inject, parent);\n this.slots = function () {\n if (!this$1.$slots) {\n normalizeScopedSlots(\n data.scopedSlots,\n this$1.$slots = resolveSlots(children, parent)\n );\n }\n return this$1.$slots\n };\n\n Object.defineProperty(this, 'scopedSlots', ({\n enumerable: true,\n get: function get () {\n return normalizeScopedSlots(data.scopedSlots, this.slots())\n }\n }));\n\n // support for compiled functional template\n if (isCompiled) {\n // exposing $options for renderStatic()\n this.$options = options;\n // pre-resolve slots for renderSlot()\n this.$slots = this.slots();\n this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);\n }\n\n if (options._scopeId) {\n this._c = function (a, b, c, d) {\n var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n if (vnode && !Array.isArray(vnode)) {\n vnode.fnScopeId = options._scopeId;\n vnode.fnContext = parent;\n }\n return vnode\n };\n } else {\n this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n Ctor,\n propsData,\n data,\n contextVm,\n children\n) {\n var options = Ctor.options;\n var props = {};\n var propOptions = options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n\n var renderContext = new FunctionalRenderContext(\n data,\n props,\n children,\n contextVm,\n Ctor\n );\n\n var vnode = options.render.call(null, renderContext._c, renderContext);\n\n if (vnode instanceof VNode) {\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)\n } else if (Array.isArray(vnode)) {\n var vnodes = normalizeChildren(vnode) || [];\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\n }\n return res\n }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {\n // #7817 clone node before setting fnContext, otherwise if the node is reused\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\n // that should not be matched to match.\n var clone = cloneVNode(vnode);\n clone.fnContext = contextVm;\n clone.fnOptions = options;\n if (process.env.NODE_ENV !== 'production') {\n (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;\n }\n if (data.slot) {\n (clone.data || (clone.data = {})).slot = data.slot;\n }\n return clone\n}\n\nfunction mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n}\n\n/* */\n\n/* */\n\n/* */\n\n/* */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n init: function init (vnode, hydrating) {\n if (\n vnode.componentInstance &&\n !vnode.componentInstance._isDestroyed &&\n vnode.data.keepAlive\n ) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n } else {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n callHook(componentInstance, 'onServiceCreated');\n callHook(componentInstance, 'onServiceAttached');\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n } else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n Ctor,\n data,\n context,\n children,\n tag\n) {\n if (isUndef(Ctor)) {\n return\n }\n\n var baseCtor = context.$options._base;\n\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n }\n return\n }\n\n // async component\n var asyncFactory;\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(\n asyncFactory,\n data,\n context,\n children,\n tag\n )\n }\n }\n\n data = data || {};\n\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n transformModel(Ctor.options, data);\n }\n\n // extract props\n var propsData = extractPropsFromVNodeData(data, Ctor, tag, context); // fixed by xxxxxx\n\n // functional component\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children)\n }\n\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n\n // install component management hooks onto the placeholder node\n installComponentHooks(data);\n\n // return a placeholder vnode\n var name = Ctor.options.name || tag;\n var vnode = new VNode(\n (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n data, undefined, undefined, undefined, context,\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n asyncFactory\n );\n\n return vnode\n}\n\nfunction createComponentInstanceForVnode (\n vnode, // we know it's MountedComponentVNode but flow doesn't\n parent // activeInstance in lifecycle state\n) {\n var options = {\n _isComponent: true,\n _parentVnode: vnode,\n parent: parent\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n var hooks = data.hook || (data.hook = {});\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n var existing = hooks[key];\n var toMerge = componentVNodeHooks[key];\n if (existing !== toMerge && !(existing && existing._merged)) {\n hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;\n }\n }\n}\n\nfunction mergeHook$1 (f1, f2) {\n var merged = function (a, b) {\n // flow complains about extra args which is why we use any\n f1(a, b);\n f2(a, b);\n };\n merged._merged = true;\n return merged\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input'\n ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n var existing = on[event];\n var callback = data.model.callback;\n if (isDef(existing)) {\n if (\n Array.isArray(existing)\n ? existing.indexOf(callback) === -1\n : existing !== callback\n ) {\n on[event] = [callback].concat(existing);\n }\n } else {\n on[event] = callback;\n }\n}\n\n/* */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n context,\n tag,\n data,\n children,\n normalizationType,\n alwaysNormalize\n) {\n if (Array.isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n context,\n tag,\n data,\n children,\n normalizationType\n) {\n if (isDef(data) && isDef((data).__ob__)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n 'Always create fresh vnode data objects in each render!',\n context\n );\n return createEmptyVNode()\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode()\n }\n // warn against non-primitive key\n if (process.env.NODE_ENV !== 'production' &&\n isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n ) {\n {\n warn(\n 'Avoid using non-primitive value as key, ' +\n 'use string/number value instead.',\n context\n );\n }\n }\n // support single function children as default scoped slot\n if (Array.isArray(children) &&\n typeof children[0] === 'function'\n ) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n } else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n if (process.env.NODE_ENV !== 'production' && isDef(data) && isDef(data.nativeOn)) {\n warn(\n (\"The .native modifier for v-on is only valid on components but it was used on <\" + tag + \">.\"),\n context\n );\n }\n vnode = new VNode(\n config.parsePlatformTagName(tag), data, children,\n undefined, undefined, context\n );\n } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n } else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(\n tag, data, children,\n undefined, undefined, context\n );\n }\n } else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (Array.isArray(vnode)) {\n return vnode\n } else if (isDef(vnode)) {\n if (isDef(ns)) { applyNS(vnode, ns); }\n if (isDef(data)) { registerDeepBindings(data); }\n return vnode\n } else {\n return createEmptyVNode()\n }\n}\n\nfunction applyNS (vnode, ns, force) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n ns = undefined;\n force = true;\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) && (\n isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n applyNS(child, ns, force);\n }\n }\n }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n if (isObject(data.style)) {\n traverse(data.style);\n }\n if (isObject(data.class)) {\n traverse(data.class);\n }\n}\n\n/* */\n\nfunction initRender (vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null; // v-once cached trees\n var options = vm.$options;\n var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\n vm.$scopedSlots = emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n }, true);\n } else {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n }\n}\n\nvar currentRenderingInstance = null;\n\nfunction renderMixin (Vue) {\n // install runtime convenience helpers\n installRenderHelpers(Vue.prototype);\n\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this)\n };\n\n Vue.prototype._render = function () {\n var vm = this;\n var ref = vm.$options;\n var render = ref.render;\n var _parentVnode = ref._parentVnode;\n\n if (_parentVnode) {\n vm.$scopedSlots = normalizeScopedSlots(\n _parentVnode.data.scopedSlots,\n vm.$slots,\n vm.$scopedSlots\n );\n }\n\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n // There's no need to maintain a stack because all render fns are called\n // separately from one another. Nested component's render fns are called\n // when parent component is patched.\n currentRenderingInstance = vm;\n vnode = render.call(vm._renderProxy, vm.$createElement);\n } catch (e) {\n handleError(e, vm, \"render\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production' && vm.$options.renderError) {\n try {\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n } catch (e) {\n handleError(e, vm, \"renderError\");\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n } finally {\n currentRenderingInstance = null;\n }\n // if the returned array contains only a single node, allow it\n if (Array.isArray(vnode) && vnode.length === 1) {\n vnode = vnode[0];\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n warn(\n 'Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.',\n vm\n );\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode\n };\n}\n\n/* */\n\nfunction ensureCtor (comp, base) {\n if (\n comp.__esModule ||\n (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n ) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n}\n\nfunction createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n}\n\nfunction resolveAsyncComponent (\n factory,\n baseCtor\n) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n var owner = currentRenderingInstance;\n if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\n // already pending\n factory.owners.push(owner);\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (owner && !isDef(factory.owners)) {\n var owners = factory.owners = [owner];\n var sync = true;\n var timerLoading = null;\n var timerTimeout = null\n\n ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });\n\n var forceRender = function (renderCompleted) {\n for (var i = 0, l = owners.length; i < l; i++) {\n (owners[i]).$forceUpdate();\n }\n\n if (renderCompleted) {\n owners.length = 0;\n if (timerLoading !== null) {\n clearTimeout(timerLoading);\n timerLoading = null;\n }\n if (timerTimeout !== null) {\n clearTimeout(timerTimeout);\n timerTimeout = null;\n }\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender(true);\n } else {\n owners.length = 0;\n }\n });\n\n var reject = once(function (reason) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender(true);\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (isPromise(res)) {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isPromise(res.component)) {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n timerLoading = setTimeout(function () {\n timerLoading = null;\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender(false);\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n timerTimeout = setTimeout(function () {\n timerTimeout = null;\n if (isUndef(factory.resolved)) {\n reject(\n process.env.NODE_ENV !== 'production'\n ? (\"timeout (\" + (res.timeout) + \"ms)\")\n : null\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n}\n\n/* */\n\nfunction isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n}\n\n/* */\n\nfunction getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n}\n\n/* */\n\n/* */\n\nfunction initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n}\n\nvar target;\n\nfunction add (event, fn) {\n target.$on(event, fn);\n}\n\nfunction remove$1 (event, fn) {\n target.$off(event, fn);\n}\n\nfunction createOnceHandler (event, fn) {\n var _target = target;\n return function onceHandler () {\n var res = fn.apply(null, arguments);\n if (res !== null) {\n _target.$off(event, onceHandler);\n }\n }\n}\n\nfunction updateComponentListeners (\n vm,\n listeners,\n oldListeners\n) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);\n target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n vm.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {\n vm.$off(event[i$1], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (!fn) {\n vm._events[event] = null;\n return vm\n }\n // specific handler\n var cb;\n var i = cbs.length;\n while (i--) {\n cb = cbs[i];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i, 1);\n break\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n if (process.env.NODE_ENV !== 'production') {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n var info = \"event handler for \\\"\" + event + \"\\\"\";\n for (var i = 0, l = cbs.length; i < l; i++) {\n invokeWithErrorHandling(cbs[i], vm, args, vm, info);\n }\n }\n return vm\n };\n}\n\n/* */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction setActiveInstance(vm) {\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n return function () {\n activeInstance = prevActiveInstance;\n }\n}\n\nfunction initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var restoreActiveInstance = setActiveInstance(vm);\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n restoreActiveInstance();\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n // release circular reference (#6759)\n if (vm.$vnode) {\n vm.$vnode.parent = null;\n }\n };\n}\n\nfunction updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n) {\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren.\n\n // check if there are dynamic scopedSlots (hand-written or compiled but with\n // dynamic slot names). Static scoped slots compiled from template has the\n // \"$stable\" marker.\n var newScopedSlots = parentVnode.data.scopedSlots;\n var oldScopedSlots = vm.$scopedSlots;\n var hasDynamicScopedSlot = !!(\n (newScopedSlots && !newScopedSlots.$stable) ||\n (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\n (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)\n );\n\n // Any static slot children from the parent may have changed during parent's\n // update. Dynamic scoped slots may also have changed. In such cases, a forced\n // update is necessary to ensure correctness.\n var needsForceUpdate = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n hasDynamicScopedSlot\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = parentVnode.data.attrs || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n toggleObserving(false);\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n var propOptions = vm.$options.props; // wtf flow?\n props[key] = validateProp(key, propOptions, propsData, vm);\n }\n toggleObserving(true);\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n \n // fixed by xxxxxx update properties(mp runtime)\n vm._$updateProperties && vm._$updateProperties(vm);\n \n // update listeners\n listeners = listeners || emptyObject;\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n\n // resolve slots + force update if has children\n if (needsForceUpdate) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = false;\n }\n}\n\nfunction isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n}\n\nfunction activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n}\n\nfunction callHook (vm, hook) {\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var handlers = vm.$options[hook];\n var info = hook + \" hook\";\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n invokeWithErrorHandling(handlers[i], vm, null, vm, info);\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n popTarget();\n}\n\n/* */\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n if (process.env.NODE_ENV !== 'production') {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n// Async edge case #6566 requires saving the timestamp when event listeners are\n// attached. However, calling performance.now() has a perf overhead especially\n// if the page has thousands of event listeners. Instead, we take a timestamp\n// every time the scheduler flushes and use that for all event listeners\n// attached during that flush.\nvar currentFlushTimestamp = 0;\n\n// Async edge case fix requires storing an event listener's attach timestamp.\nvar getNow = Date.now;\n\n// Determine what event timestamp the browser is using. Annoyingly, the\n// timestamp can either be hi-res (relative to page load) or low-res\n// (relative to UNIX epoch), so in order to compare time we have to use the\n// same timestamp type when saving the flush timestamp.\n// All IE versions use low-res event timestamps, and have problematic clock\n// implementations (#9632)\nif (inBrowser && !isIE) {\n var performance = window.performance;\n if (\n performance &&\n typeof performance.now === 'function' &&\n getNow() > document.createEvent('Event').timeStamp\n ) {\n // if the event timestamp, although evaluated AFTER the Date.now(), is\n // smaller than it, it means the event is using a hi-res timestamp,\n // and we need to use the hi-res version for event listener timestamps as\n // well.\n getNow = function () { return performance.now(); };\n }\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n currentFlushTimestamp = getNow();\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n if (watcher.before) {\n watcher.before();\n }\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n}\n\nfunction callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'updated');\n }\n }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n flushSchedulerQueue();\n return\n }\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\n\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options,\n isRenderWatcher\n) {\n this.vm = vm;\n if (isRenderWatcher) {\n vm._watcher = this;\n }\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n this.before = options.before;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$2; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = process.env.NODE_ENV !== 'production'\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = noop;\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var i = this.deps.length;\n while (i--) {\n var dep = this.deps[i];\n if (!this.newDepIds.has(dep.id)) {\n dep.removeSub(this);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var i = this.deps.length;\n while (i--) {\n this.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this.deps[i].removeSub(this);\n }\n this.active = false;\n }\n};\n\n/* */\n\nvar sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n}\n\nfunction initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n if (!isRoot) {\n toggleObserving(false);\n }\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n var hyphenatedKey = hyphenate(key);\n if (isReservedAttribute(hyphenatedKey) ||\n config.isReservedAttr(hyphenatedKey)) {\n warn(\n (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive$$1(props, key, value, function () {\n if (!isRoot && !isUpdatingChildComponent) {\n {\n if(vm.mpHost === 'mp-baidu'){//百度 observer 在 setData callback 之后触发,直接忽略该 warn\n return\n }\n //fixed by xxxxxx __next_tick_pending,uni://form-field 时不告警\n if(\n key === 'value' && \n Array.isArray(vm.$options.behaviors) &&\n vm.$options.behaviors.indexOf('uni://form-field') !== -1\n ){\n return\n }\n if(vm._getFormData){\n return\n }\n var $parent = vm.$parent;\n while($parent){\n if($parent.__next_tick_pending){\n return \n }\n $parent = $parent.$parent;\n }\n }\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive$$1(props, key, value);\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n toggleObserving(true);\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n process.env.NODE_ENV !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n // #7573 disable dep collection when invoking data getters\n pushTarget();\n try {\n return data.call(vm, vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n } finally {\n popTarget();\n }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n // $flow-disable-line\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (process.env.NODE_ENV !== 'production' && getter == null) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else if (process.env.NODE_ENV !== 'production') {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n }\n }\n }\n}\n\nfunction defineComputed (\n target,\n key,\n userDef\n) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : createGetterInvoker(userDef);\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : createGetterInvoker(userDef.get)\n : noop;\n sharedPropertyDefinition.set = userDef.set || noop;\n }\n if (process.env.NODE_ENV !== 'production' &&\n sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.SharedObject.target) {// fixed by xxxxxx\n watcher.depend();\n }\n return watcher.value\n }\n }\n}\n\nfunction createGetterInvoker(fn) {\n return function computedGetter () {\n return fn.call(this, this)\n }\n}\n\nfunction initMethods (vm, methods) {\n var props = vm.$options.props;\n for (var key in methods) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof methods[key] !== 'function') {\n warn(\n \"Method \\\"\" + key + \"\\\" has type \\\"\" + (typeof methods[key]) + \"\\\" in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\n }\n}\n\nfunction initWatch (vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (\n vm,\n expOrFn,\n handler,\n options\n) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n if (process.env.NODE_ENV !== 'production') {\n dataDef.set = function () {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n try {\n cb.call(vm, watcher.value);\n } catch (error) {\n handleError(error, vm, (\"callback for immediate watcher \\\"\" + (watcher.expression) + \"\\\"\"));\n }\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\n/* */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid$3++;\n\n var startTag, endTag;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n startTag = \"vue-perf-start:\" + (vm._uid);\n endTag = \"vue-perf-end:\" + (vm._uid);\n mark(startTag);\n }\n\n // a flag to avoid this being observed\n vm._isVue = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n } else {\n vm.$options = mergeOptions(\n resolveConstructorOptions(vm.constructor),\n options || {},\n vm\n );\n }\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n initProxy(vm);\n } else {\n vm._renderProxy = vm;\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook(vm, 'beforeCreate');\n !vm._$fallback && initInjections(vm); // resolve injections before data/props \n initState(vm);\n !vm._$fallback && initProvide(vm); // resolve provide after data/props\n !vm._$fallback && callHook(vm, 'created'); \n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n }\n\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n}\n\nfunction initInternalComponent (vm, options) {\n var opts = vm.$options = Object.create(vm.constructor.options);\n // doing this because it's faster than dynamic enumeration.\n var parentVnode = options._parentVnode;\n opts.parent = options.parent;\n opts._parentVnode = parentVnode;\n\n var vnodeComponentOptions = parentVnode.componentOptions;\n opts.propsData = vnodeComponentOptions.propsData;\n opts._parentListeners = vnodeComponentOptions.listeners;\n opts._renderChildren = vnodeComponentOptions.children;\n opts._componentTag = vnodeComponentOptions.tag;\n\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n var modified;\n var latest = Ctor.options;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified) { modified = {}; }\n modified[key] = latest[key];\n }\n }\n return modified\n}\n\nfunction Vue (options) {\n if (process.env.NODE_ENV !== 'production' &&\n !(this instanceof Vue)\n ) {\n warn('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/* */\n\nfunction initUse (Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n if (installedPlugins.indexOf(plugin) > -1) {\n return this\n }\n\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this\n };\n}\n\n/* */\n\nfunction initMixin$1 (Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this\n };\n}\n\n/* */\n\nfunction initExtend (Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId]\n }\n\n var name = extendOptions.name || Super.options.name;\n if (process.env.NODE_ENV !== 'production' && name) {\n validateComponentName(name);\n }\n\n var Sub = function VueComponent (options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(\n Super.options,\n extendOptions\n );\n Sub['super'] = Super;\n\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps$1(Sub);\n }\n if (Sub.options.computed) {\n initComputed$1(Sub);\n }\n\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub\n };\n}\n\nfunction initProps$1 (Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n}\n\nfunction initComputed$1 (Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n}\n\n/* */\n\nfunction initAssetRegisters (Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n Vue[type] = function (\n id,\n definition\n ) {\n if (!definition) {\n return this.options[type + 's'][id]\n } else {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && type === 'component') {\n validateComponentName(id);\n }\n if (type === 'component' && isPlainObject(definition)) {\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && typeof definition === 'function') {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition\n }\n };\n });\n}\n\n/* */\n\n\n\nfunction getComponentName (opts) {\n return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1\n } else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1\n } else if (isRegExp(pattern)) {\n return pattern.test(name)\n }\n /* istanbul ignore next */\n return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n var cache = keepAliveInstance.cache;\n var keys = keepAliveInstance.keys;\n var _vnode = keepAliveInstance._vnode;\n for (var key in cache) {\n var cachedNode = cache[key];\n if (cachedNode) {\n var name = getComponentName(cachedNode.componentOptions);\n if (name && !filter(name)) {\n pruneCacheEntry(cache, key, keys, _vnode);\n }\n }\n }\n}\n\nfunction pruneCacheEntry (\n cache,\n key,\n keys,\n current\n) {\n var cached$$1 = cache[key];\n if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {\n cached$$1.componentInstance.$destroy();\n }\n cache[key] = null;\n remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n\n props: {\n include: patternTypes,\n exclude: patternTypes,\n max: [String, Number]\n },\n\n created: function created () {\n this.cache = Object.create(null);\n this.keys = [];\n },\n\n destroyed: function destroyed () {\n for (var key in this.cache) {\n pruneCacheEntry(this.cache, key, this.keys);\n }\n },\n\n mounted: function mounted () {\n var this$1 = this;\n\n this.$watch('include', function (val) {\n pruneCache(this$1, function (name) { return matches(val, name); });\n });\n this.$watch('exclude', function (val) {\n pruneCache(this$1, function (name) { return !matches(val, name); });\n });\n },\n\n render: function render () {\n var slot = this.$slots.default;\n var vnode = getFirstComponentChild(slot);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name = getComponentName(componentOptions);\n var ref = this;\n var include = ref.include;\n var exclude = ref.exclude;\n if (\n // not included\n (include && (!name || !matches(include, name))) ||\n // excluded\n (exclude && name && matches(exclude, name))\n ) {\n return vnode\n }\n\n var ref$1 = this;\n var cache = ref$1.cache;\n var keys = ref$1.keys;\n var key = vnode.key == null\n // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n : vnode.key;\n if (cache[key]) {\n vnode.componentInstance = cache[key].componentInstance;\n // make current key freshest\n remove(keys, key);\n keys.push(key);\n } else {\n cache[key] = vnode;\n keys.push(key);\n // prune oldest entry\n if (this.max && keys.length > parseInt(this.max)) {\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\n }\n }\n\n vnode.data.keepAlive = true;\n }\n return vnode || (slot && slot[0])\n }\n};\n\nvar builtInComponents = {\n KeepAlive: KeepAlive\n};\n\n/* */\n\nfunction initGlobalAPI (Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n if (process.env.NODE_ENV !== 'production') {\n configDef.set = function () {\n warn(\n 'Do not replace the Vue.config object, set individual fields instead.'\n );\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive$$1\n };\n\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n\n // 2.6 explicit observable API\n Vue.observable = function (obj) {\n observe(obj);\n return obj\n };\n\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n\n extend(Vue.options.components, builtInComponents);\n\n initUse(Vue);\n initMixin$1(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n get: function get () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext\n }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n value: FunctionalRenderContext\n});\n\nVue.version = '2.6.11';\n\n/**\n * https://raw.githubusercontent.com/Tencent/westore/master/packages/westore/utils/diff.js\n */\nvar ARRAYTYPE = '[object Array]';\nvar OBJECTTYPE = '[object Object]';\n// const FUNCTIONTYPE = '[object Function]'\n\nfunction diff(current, pre) {\n var result = {};\n syncKeys(current, pre);\n _diff(current, pre, '', result);\n return result\n}\n\nfunction syncKeys(current, pre) {\n if (current === pre) { return }\n var rootCurrentType = type(current);\n var rootPreType = type(pre);\n if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {\n if(Object.keys(current).length >= Object.keys(pre).length){\n for (var key in pre) {\n var currentValue = current[key];\n if (currentValue === undefined) {\n current[key] = null;\n } else {\n syncKeys(currentValue, pre[key]);\n }\n }\n }\n } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {\n if (current.length >= pre.length) {\n pre.forEach(function (item, index) {\n syncKeys(current[index], item);\n });\n }\n }\n}\n\nfunction _diff(current, pre, path, result) {\n if (current === pre) { return }\n var rootCurrentType = type(current);\n var rootPreType = type(pre);\n if (rootCurrentType == OBJECTTYPE) {\n if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {\n setResult(result, path, current);\n } else {\n var loop = function ( key ) {\n var currentValue = current[key];\n var preValue = pre[key];\n var currentType = type(currentValue);\n var preType = type(preValue);\n if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {\n if (currentValue != pre[key]) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n }\n } else if (currentType == ARRAYTYPE) {\n if (preType != ARRAYTYPE) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n } else {\n if (currentValue.length < preValue.length) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n } else {\n currentValue.forEach(function (item, index) {\n _diff(item, preValue[index], (path == '' ? '' : path + \".\") + key + '[' + index + ']', result);\n });\n }\n }\n } else if (currentType == OBJECTTYPE) {\n if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n } else {\n for (var subKey in currentValue) {\n _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + \".\") + key + '.' + subKey, result);\n }\n }\n }\n };\n\n for (var key in current) loop( key );\n }\n } else if (rootCurrentType == ARRAYTYPE) {\n if (rootPreType != ARRAYTYPE) {\n setResult(result, path, current);\n } else {\n if (current.length < pre.length) {\n setResult(result, path, current);\n } else {\n current.forEach(function (item, index) {\n _diff(item, pre[index], path + '[' + index + ']', result);\n });\n }\n }\n } else {\n setResult(result, path, current);\n }\n}\n\nfunction setResult(result, k, v) {\n // if (type(v) != FUNCTIONTYPE) {\n result[k] = v;\n // }\n}\n\nfunction type(obj) {\n return Object.prototype.toString.call(obj)\n}\n\n/* */\r\n\r\nfunction flushCallbacks$1(vm) {\r\n if (vm.__next_tick_callbacks && vm.__next_tick_callbacks.length) {\r\n if (process.env.VUE_APP_DEBUG) {\r\n var mpInstance = vm.$scope;\r\n console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +\r\n ']:flushCallbacks[' + vm.__next_tick_callbacks.length + ']');\r\n }\r\n var copies = vm.__next_tick_callbacks.slice(0);\r\n vm.__next_tick_callbacks.length = 0;\r\n for (var i = 0; i < copies.length; i++) {\r\n copies[i]();\r\n }\r\n }\r\n}\r\n\r\nfunction hasRenderWatcher(vm) {\r\n return queue.find(function (watcher) { return vm._watcher === watcher; })\r\n}\r\n\r\nfunction nextTick$1(vm, cb) {\r\n //1.nextTick 之前 已 setData 且 setData 还未回调完成\r\n //2.nextTick 之前存在 render watcher\r\n if (!vm.__next_tick_pending && !hasRenderWatcher(vm)) {\n if(process.env.VUE_APP_DEBUG){\n var mpInstance = vm.$scope;\n console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +\n ']:nextVueTick');\n }\r\n return nextTick(cb, vm)\r\n }else{\n if(process.env.VUE_APP_DEBUG){\n var mpInstance$1 = vm.$scope;\n console.log('[' + (+new Date) + '][' + (mpInstance$1.is || mpInstance$1.route) + '][' + vm._uid +\n ']:nextMPTick');\n }\n }\r\n var _resolve;\r\n if (!vm.__next_tick_callbacks) {\r\n vm.__next_tick_callbacks = [];\r\n }\r\n vm.__next_tick_callbacks.push(function () {\r\n if (cb) {\r\n try {\r\n cb.call(vm);\r\n } catch (e) {\r\n handleError(e, vm, 'nextTick');\r\n }\r\n } else if (_resolve) {\r\n _resolve(vm);\r\n }\r\n });\r\n // $flow-disable-line\r\n if (!cb && typeof Promise !== 'undefined') {\r\n return new Promise(function (resolve) {\r\n _resolve = resolve;\r\n })\r\n }\r\n}\n\n/* */\r\n\r\nfunction cloneWithData(vm) {\r\n // 确保当前 vm 所有数据被同步\r\n var ret = Object.create(null);\r\n var dataKeys = [].concat(\r\n Object.keys(vm._data || {}),\r\n Object.keys(vm._computedWatchers || {}));\r\n\r\n dataKeys.reduce(function(ret, key) {\r\n ret[key] = vm[key];\r\n return ret\r\n }, ret);\r\n //TODO 需要把无用数据处理掉,比如 list=>l0 则 list 需要移除,否则多传输一份数据\r\n Object.assign(ret, vm.$mp.data || {});\r\n if (\r\n Array.isArray(vm.$options.behaviors) &&\r\n vm.$options.behaviors.indexOf('uni://form-field') !== -1\r\n ) { //form-field\r\n ret['name'] = vm.name;\r\n ret['value'] = vm.value;\r\n }\r\n\r\n return JSON.parse(JSON.stringify(ret))\r\n}\r\n\r\nvar patch = function(oldVnode, vnode) {\n var this$1 = this;\n\r\n if (vnode === null) { //destroy\r\n return\r\n }\r\n if (this.mpType === 'page' || this.mpType === 'component') {\r\n var mpInstance = this.$scope;\r\n var data = Object.create(null);\r\n try {\r\n data = cloneWithData(this);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n data.__webviewId__ = mpInstance.data.__webviewId__;\r\n var mpData = Object.create(null);\r\n Object.keys(data).forEach(function (key) { //仅同步 data 中有的数据\r\n mpData[key] = mpInstance.data[key];\r\n });\r\n var diffData = this.$shouldDiffData === false ? data : diff(data, mpData);\r\n if (Object.keys(diffData).length) {\r\n if (process.env.VUE_APP_DEBUG) {\r\n console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + this._uid +\r\n ']差量更新',\r\n JSON.stringify(diffData));\r\n }\r\n this.__next_tick_pending = true;\r\n mpInstance.setData(diffData, function () {\r\n this$1.__next_tick_pending = false;\r\n flushCallbacks$1(this$1);\r\n });\r\n } else {\r\n flushCallbacks$1(this);\r\n }\r\n }\r\n};\n\n/* */\n\nfunction createEmptyRender() {\n\n}\n\nfunction mountComponent$1(\n vm,\n el,\n hydrating\n) {\n if (!vm.mpType) {//main.js 中的 new Vue\n return vm\n }\n if (vm.mpType === 'app') {\n vm.$options.render = createEmptyRender;\n }\n if (!vm.$options.render) {\n vm.$options.render = createEmptyRender;\n if (process.env.NODE_ENV !== 'production') {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n \n !vm._$fallback && callHook(vm, 'beforeMount');\n\n var updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n\n // we set this to vm._watcher inside the watcher's constructor\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n // component's mounted hook), which relies on vm._watcher being already defined\n new Watcher(vm, updateComponent, noop, {\n before: function before() {\n if (vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'beforeUpdate');\n }\n }\n }, true /* isRenderWatcher */);\n hydrating = false;\n return vm\n}\n\n/* */\n\nfunction renderClass (\n staticClass,\n dynamicClass\n) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass))\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction concat (a, b) {\n return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n if (Array.isArray(value)) {\n return stringifyArray(value)\n }\n if (isObject(value)) {\n return stringifyObject(value)\n }\n if (typeof value === 'string') {\n return value\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction stringifyArray (value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n if (res) { res += ' '; }\n res += stringified;\n }\n }\n return res\n}\n\nfunction stringifyObject (value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res) { res += ' '; }\n res += key;\n }\n }\n return res\n}\n\n/* */\n\nvar parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res\n});\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle)\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle)\n }\n return bindingStyle\n}\n\n/* */\r\n\r\nvar MP_METHODS = ['createSelectorQuery', 'createIntersectionObserver', 'selectAllComponents', 'selectComponent'];\r\n\r\nfunction getTarget(obj, path) {\r\n var parts = path.split('.');\r\n var key = parts[0];\r\n if (key.indexOf('__$n') === 0) { //number index\r\n key = parseInt(key.replace('__$n', ''));\r\n }\r\n if (parts.length === 1) {\r\n return obj[key]\r\n }\r\n return getTarget(obj[key], parts.slice(1).join('.'))\r\n}\r\n\r\nfunction internalMixin(Vue) {\r\n\r\n Vue.config.errorHandler = function(err) {\n console.error(err);\n /* eslint-disable no-undef */\r\n var app = getApp();\r\n if (app && app.onError) {\r\n app.onError(err);\r\n }\r\n };\r\n\r\n var oldEmit = Vue.prototype.$emit;\r\n\r\n Vue.prototype.$emit = function(event) {\r\n if (this.$scope && event) {\r\n this.$scope['triggerEvent'](event, {\r\n __args__: toArray(arguments, 1)\r\n });\r\n }\r\n return oldEmit.apply(this, arguments)\r\n };\r\n\r\n Vue.prototype.$nextTick = function(fn) {\r\n return nextTick$1(this, fn)\r\n };\r\n\r\n MP_METHODS.forEach(function (method) {\r\n Vue.prototype[method] = function(args) {\r\n if (this.$scope && this.$scope[method]) {\r\n return this.$scope[method](args)\r\n }\r\n // mp-alipay\r\n if (typeof my === 'undefined') {\r\n return\r\n }\r\n if (method === 'createSelectorQuery') {\r\n /* eslint-disable no-undef */\r\n return my.createSelectorQuery(args)\r\n } else if (method === 'createIntersectionObserver') {\r\n /* eslint-disable no-undef */\r\n return my.createIntersectionObserver(args)\r\n }\r\n // TODO mp-alipay 暂不支持 selectAllComponents,selectComponent\r\n };\r\n });\r\n\r\n Vue.prototype.__init_provide = initProvide;\r\n\r\n Vue.prototype.__init_injections = initInjections;\r\n\r\n Vue.prototype.__call_hook = function(hook, args) {\r\n var vm = this;\r\n // #7573 disable dep collection when invoking lifecycle hooks\r\n pushTarget();\r\n var handlers = vm.$options[hook];\r\n var info = hook + \" hook\";\r\n var ret;\r\n if (handlers) {\r\n for (var i = 0, j = handlers.length; i < j; i++) {\r\n ret = invokeWithErrorHandling(handlers[i], vm, args ? [args] : null, vm, info);\r\n }\r\n }\r\n if (vm._hasHookEvent) {\r\n vm.$emit('hook:' + hook, args);\r\n }\r\n popTarget();\r\n return ret\r\n };\r\n\r\n Vue.prototype.__set_model = function(target, key, value, modifiers) {\r\n if (Array.isArray(modifiers)) {\r\n if (modifiers.indexOf('trim') !== -1) {\r\n value = value.trim();\r\n }\r\n if (modifiers.indexOf('number') !== -1) {\r\n value = this._n(value);\r\n }\r\n }\r\n if (!target) {\r\n target = this;\r\n }\r\n target[key] = value;\r\n };\r\n\r\n Vue.prototype.__set_sync = function(target, key, value) {\r\n if (!target) {\r\n target = this;\r\n }\r\n target[key] = value;\r\n };\r\n\r\n Vue.prototype.__get_orig = function(item) {\r\n if (isPlainObject(item)) {\r\n return item['$orig'] || item\r\n }\r\n return item\r\n };\r\n\r\n Vue.prototype.__get_value = function(dataPath, target) {\r\n return getTarget(target || this, dataPath)\r\n };\r\n\r\n\r\n Vue.prototype.__get_class = function(dynamicClass, staticClass) {\r\n return renderClass(staticClass, dynamicClass)\r\n };\r\n\r\n Vue.prototype.__get_style = function(dynamicStyle, staticStyle) {\r\n if (!dynamicStyle && !staticStyle) {\r\n return ''\r\n }\r\n var dynamicStyleObj = normalizeStyleBinding(dynamicStyle);\r\n var styleObj = staticStyle ? extend(staticStyle, dynamicStyleObj) : dynamicStyleObj;\r\n return Object.keys(styleObj).map(function (name) { return ((hyphenate(name)) + \":\" + (styleObj[name])); }).join(';')\r\n };\r\n\r\n Vue.prototype.__map = function(val, iteratee) {\r\n //TODO 暂不考虑 string,number\r\n var ret, i, l, keys, key;\r\n if (Array.isArray(val)) {\r\n ret = new Array(val.length);\r\n for (i = 0, l = val.length; i < l; i++) {\r\n ret[i] = iteratee(val[i], i);\r\n }\r\n return ret\r\n } else if (isObject(val)) {\r\n keys = Object.keys(val);\r\n ret = Object.create(null);\r\n for (i = 0, l = keys.length; i < l; i++) {\r\n key = keys[i];\r\n ret[key] = iteratee(val[key], key, i);\r\n }\r\n return ret\r\n }\r\n return []\r\n };\r\n\r\n}\n\n/* */\r\n\r\nvar LIFECYCLE_HOOKS$1 = [\r\n //App\r\n 'onLaunch',\r\n 'onShow',\r\n 'onHide',\r\n 'onUniNViewMessage',\n 'onError',\r\n //Page\r\n 'onLoad',\r\n // 'onShow',\r\n 'onReady',\r\n // 'onHide',\r\n 'onUnload',\r\n 'onPullDownRefresh',\r\n 'onReachBottom',\r\n 'onTabItemTap',\r\n 'onShareAppMessage',\n 'onResize',\r\n 'onPageScroll',\r\n 'onNavigationBarButtonTap',\r\n 'onBackPress',\r\n 'onNavigationBarSearchInputChanged',\r\n 'onNavigationBarSearchInputConfirmed',\r\n 'onNavigationBarSearchInputClicked',\r\n //Component\r\n // 'onReady', // 兼容旧版本,应该移除该事件\r\n 'onPageShow',\r\n 'onPageHide',\r\n 'onPageResize'\r\n];\r\nfunction lifecycleMixin$1(Vue) {\r\n\r\n //fixed vue-class-component\r\n var oldExtend = Vue.extend;\r\n Vue.extend = function(extendOptions) {\r\n extendOptions = extendOptions || {};\r\n\r\n var methods = extendOptions.methods;\r\n if (methods) {\r\n Object.keys(methods).forEach(function (methodName) {\r\n if (LIFECYCLE_HOOKS$1.indexOf(methodName)!==-1) {\r\n extendOptions[methodName] = methods[methodName];\r\n delete methods[methodName];\r\n }\r\n });\r\n }\r\n\r\n return oldExtend.call(this, extendOptions)\r\n };\r\n\r\n var strategies = Vue.config.optionMergeStrategies;\r\n var mergeHook = strategies.created;\r\n LIFECYCLE_HOOKS$1.forEach(function (hook) {\r\n strategies[hook] = mergeHook;\r\n });\r\n\r\n Vue.prototype.__lifecycle_hooks__ = LIFECYCLE_HOOKS$1;\r\n}\n\n/* */\r\n\n// install platform patch function\r\nVue.prototype.__patch__ = patch;\r\n\r\n// public mount method\r\nVue.prototype.$mount = function(\r\n el ,\r\n hydrating \r\n) {\r\n return mountComponent$1(this, el, hydrating)\r\n};\r\n\r\nlifecycleMixin$1(Vue);\r\ninternalMixin(Vue);\n\n/* */\n\nexport default Vue;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","import { version } from '../package.json';\r\n\r\nconst STAT_VERSION = version;\r\nconst STAT_URL = 'https://tongji.dcloud.io/uni/stat';\r\nconst STAT_H5_URL = 'https://tongji.dcloud.io/uni/stat.gif'; \r\nconst PAGE_PVER_TIME = 1800;\r\nconst APP_PVER_TIME = 300;\r\nconst OPERATING_TIME = 10;\r\n\r\nconst UUID_KEY = '__DC_STAT_UUID';\r\nconst UUID_VALUE = '__DC_UUID_VALUE';\r\n\r\nfunction getUuid() {\r\n let uuid = '';\r\n if (getPlatformName() === 'n') {\r\n try {\r\n uuid = plus.runtime.getDCloudId();\r\n } catch (e) {\r\n uuid = '';\r\n }\r\n return uuid\r\n }\r\n\r\n try {\r\n uuid = uni.getStorageSync(UUID_KEY);\r\n } catch (e) {\r\n uuid = UUID_VALUE;\r\n }\r\n\r\n if (!uuid) {\r\n uuid = Date.now() + '' + Math.floor(Math.random() * 1e7);\r\n try {\r\n uni.setStorageSync(UUID_KEY, uuid);\r\n } catch (e) {\r\n uni.setStorageSync(UUID_KEY, UUID_VALUE);\r\n }\r\n }\r\n return uuid;\r\n}\r\n\r\nconst getSgin = (statData) => {\r\n let arr = Object.keys(statData);\r\n let sortArr = arr.sort();\r\n let sgin = {};\r\n let sginStr = '';\r\n for (var i in sortArr) {\r\n sgin[sortArr[i]] = statData[sortArr[i]];\r\n sginStr += sortArr[i] + '=' + statData[sortArr[i]] + '&';\r\n }\r\n // const options = sginStr.substr(0, sginStr.length - 1)\r\n // sginStr = sginStr.substr(0, sginStr.length - 1) + '&key=' + STAT_KEY;\r\n // const si = crypto.createHash('md5').update(sginStr).digest('hex');\r\n return {\r\n sign: '',\r\n options: sginStr.substr(0, sginStr.length - 1)\r\n };\r\n};\r\n\r\nconst getSplicing = (data) => {\r\n let str = '';\r\n for (var i in data) {\r\n str += i + '=' + data[i] + '&';\r\n }\r\n return str.substr(0, str.length - 1)\r\n};\r\n\r\nconst getTime = () => {\r\n return parseInt(new Date().getTime() / 1000);\r\n};\r\n\r\nconst getPlatformName = () => {\r\n const platformList = {\r\n 'app-plus': 'n',\r\n 'h5': 'h5',\r\n 'mp-weixin': 'wx',\r\n 'mp-alipay': 'ali',\r\n 'mp-baidu': 'bd',\r\n 'mp-toutiao': 'tt',\r\n 'mp-qq': 'qq'\r\n };\r\n return platformList[process.env.VUE_APP_PLATFORM];\r\n};\r\n\r\nconst getPackName = () => {\r\n let packName = '';\r\n if (getPlatformName() === 'wx' || getPlatformName() === 'qq') {\r\n // 兼容微信小程序低版本基础库\r\n if(uni.canIUse('getAccountInfoSync')){\r\n packName = uni.getAccountInfoSync().miniProgram.appId || '';\r\n }\r\n }\r\n return packName\r\n};\r\n\r\nconst getVersion = () => {\r\n return getPlatformName() === 'n' ? plus.runtime.version : '';\r\n};\r\n\r\nconst getChannel = () => {\r\n const platformName = getPlatformName();\r\n let channel = '';\r\n if (platformName === 'n') {\r\n channel = plus.runtime.channel;\r\n }\r\n return channel;\r\n};\r\n\r\nconst getScene = (options) => {\r\n const platformName = getPlatformName();\r\n let scene = '';\r\n if (options) {\r\n return options;\r\n }\r\n if (platformName === 'wx') {\r\n scene = uni.getLaunchOptionsSync().scene;\r\n }\r\n return scene;\r\n};\r\nconst First__Visit__Time__KEY = 'First__Visit__Time';\r\nconst Last__Visit__Time__KEY = 'Last__Visit__Time';\r\n\r\nconst getFirstVisitTime = () => {\r\n const timeStorge = uni.getStorageSync(First__Visit__Time__KEY);\r\n let time = 0;\r\n if (timeStorge) {\r\n time = timeStorge;\r\n } else {\r\n time = getTime();\r\n uni.setStorageSync(First__Visit__Time__KEY, time);\r\n uni.removeStorageSync(Last__Visit__Time__KEY);\r\n }\r\n return time;\r\n};\r\n\r\nconst getLastVisitTime = () => {\r\n const timeStorge = uni.getStorageSync(Last__Visit__Time__KEY);\r\n let time = 0;\r\n if (timeStorge) {\r\n time = timeStorge;\r\n } else {\r\n time = '';\r\n }\r\n uni.setStorageSync(Last__Visit__Time__KEY, getTime());\r\n return time;\r\n};\r\n\r\n\r\nconst PAGE_RESIDENCE_TIME = '__page__residence__time';\r\nlet First_Page_residence_time = 0;\r\nlet Last_Page_residence_time = 0;\r\n\r\n\r\nconst setPageResidenceTime = () => {\r\n First_Page_residence_time = getTime();\r\n if (getPlatformName() === 'n') {\r\n uni.setStorageSync(PAGE_RESIDENCE_TIME, getTime());\r\n }\r\n return First_Page_residence_time\r\n};\r\n\r\nconst getPageResidenceTime = () => {\r\n Last_Page_residence_time = getTime();\r\n if (getPlatformName() === 'n') {\r\n First_Page_residence_time = uni.getStorageSync(PAGE_RESIDENCE_TIME);\r\n }\r\n return Last_Page_residence_time - First_Page_residence_time\r\n};\r\nconst TOTAL__VISIT__COUNT = 'Total__Visit__Count';\r\nconst getTotalVisitCount = () => {\r\n const timeStorge = uni.getStorageSync(TOTAL__VISIT__COUNT);\r\n let count = 1;\r\n if (timeStorge) {\r\n count = timeStorge;\r\n count++;\r\n }\r\n uni.setStorageSync(TOTAL__VISIT__COUNT, count);\r\n return count;\r\n};\r\n\r\nconst GetEncodeURIComponentOptions = (statData) => {\r\n let data = {};\r\n for (let prop in statData) {\r\n data[prop] = encodeURIComponent(statData[prop]);\r\n }\r\n return data;\r\n};\r\n\r\nlet Set__First__Time = 0;\r\nlet Set__Last__Time = 0;\r\n\r\nconst getFirstTime = () => {\r\n let time = new Date().getTime();\r\n Set__First__Time = time;\r\n Set__Last__Time = 0;\r\n return time;\r\n};\r\n\r\n\r\nconst getLastTime = () => {\r\n let time = new Date().getTime();\r\n Set__Last__Time = time;\r\n return time;\r\n};\r\n\r\n\r\nconst getResidenceTime = (type) => {\r\n let residenceTime = 0;\r\n if (Set__First__Time !== 0) {\r\n residenceTime = Set__Last__Time - Set__First__Time;\r\n }\r\n\r\n residenceTime = parseInt(residenceTime / 1000);\r\n residenceTime = residenceTime < 1 ? 1 : residenceTime;\r\n if (type === 'app') {\r\n let overtime = residenceTime > APP_PVER_TIME ? true : false;\r\n return {\r\n residenceTime,\r\n overtime\r\n };\r\n }\r\n if (type === 'page') {\r\n let overtime = residenceTime > PAGE_PVER_TIME ? true : false;\r\n return {\r\n residenceTime,\r\n overtime\r\n };\r\n }\r\n\r\n return {\r\n residenceTime\r\n };\r\n\r\n};\r\n\r\nconst getRoute = () => {\r\n var pages = getCurrentPages();\r\n var page = pages[pages.length - 1];\r\n let _self = page.$vm;\r\n\r\n if (getPlatformName() === 'bd') {\r\n return _self.$mp && _self.$mp.page.is;\r\n } else {\r\n return (_self.$scope && _self.$scope.route) || (_self.$mp && _self.$mp.page.route);\r\n }\r\n};\r\n\r\nconst getPageRoute = (self) => {\r\n var pages = getCurrentPages();\r\n var page = pages[pages.length - 1];\r\n let _self = page.$vm;\r\n let query = self._query;\r\n let str = query && JSON.stringify(query) !== '{}' ? '?' + JSON.stringify(query) : '';\r\n // clear\r\n self._query = '';\r\n if (getPlatformName() === 'bd') {\r\n return _self.$mp && _self.$mp.page.is + str;\r\n } else {\r\n return (_self.$scope && _self.$scope.route + str )|| (_self.$mp && _self.$mp.page.route + str);\r\n }\r\n};\r\n\r\nconst getPageTypes = (self) => {\r\n if (self.mpType === 'page' || (self.$mp && self.$mp.mpType === 'page') || self.$options.mpType === 'page') {\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nconst calibration = (eventName, options) => {\r\n // login 、 share 、pay_success 、pay_fail 、register 、title\r\n if(!eventName){\r\n console.error(`uni.report 缺少 [eventName] 参数`);\r\n return true\r\n }\r\n if (typeof eventName !== 'string') {\r\n console.error(`uni.report [eventName] 参数类型错误,只能为 String 类型`);\r\n return true\r\n }\r\n if (eventName.length > 255) {\r\n console.error(`uni.report [eventName] 参数长度不能大于 255`);\r\n return true\r\n }\r\n\r\n if (typeof options !== 'string' && typeof options !== 'object') {\r\n console.error(`uni.report [options] 参数类型错误,只能为 String 或 Object 类型`);\r\n return true\r\n }\r\n\r\n if (typeof options === 'string' && options.length > 255) {\r\n console.error(`uni.report [options] 参数长度不能大于 255`);\r\n return true\r\n }\r\n\r\n if (eventName === 'title' && typeof options !== 'string') {\r\n console.error('uni.report [eventName] 参数为 title 时,[options] 参数只能为 String 类型');\r\n return true\r\n }\r\n};\r\n\r\nconst PagesJson = require('uni-pages?{\"type\":\"style\"}').default;\r\nconst statConfig = require('uni-stat-config').default || require('uni-stat-config');\r\n\r\nconst resultOptions = uni.getSystemInfoSync();\r\n\r\nclass Util {\r\n constructor() {\r\n this.self = '';\r\n this._retry = 0;\r\n this._platform = '';\r\n this._query = {};\r\n this._navigationBarTitle = {\r\n config: '',\r\n page: '',\r\n report: '',\r\n lt: ''\r\n };\r\n this._operatingTime = 0;\r\n this._reportingRequestData = {\r\n '1': [],\r\n '11': []\r\n };\r\n this.__prevent_triggering = false;\r\n\r\n this.__licationHide = false;\r\n this.__licationShow = false;\r\n this._lastPageRoute = '';\r\n this.statData = {\r\n uuid: getUuid(),\r\n ut: getPlatformName(),\r\n mpn: getPackName(),\r\n ak: statConfig.appid,\r\n usv: STAT_VERSION,\r\n v: getVersion(),\r\n ch: getChannel(),\r\n cn: '',\r\n pn: '',\r\n ct: '',\r\n t: getTime(),\r\n tt: '',\r\n p: resultOptions.platform === 'android' ? 'a' : 'i',\r\n brand: resultOptions.brand || '',\r\n md: resultOptions.model,\r\n sv: resultOptions.system.replace(/(Android|iOS)\\s/, ''),\r\n mpsdk: resultOptions.SDKVersion || '',\r\n mpv: resultOptions.version || '',\r\n lang: resultOptions.language,\r\n pr: resultOptions.pixelRatio,\r\n ww: resultOptions.windowWidth,\r\n wh: resultOptions.windowHeight,\r\n sw: resultOptions.screenWidth,\r\n sh: resultOptions.screenHeight\r\n };\r\n\r\n }\r\n\r\n _applicationShow() {\r\n if (this.__licationHide) {\r\n getLastTime();\r\n const time = getResidenceTime('app');\r\n if (time.overtime) {\r\n let options = {\r\n path: this._lastPageRoute,\r\n scene: this.statData.sc\r\n };\r\n this._sendReportRequest(options);\r\n }\r\n this.__licationHide = false;\r\n }\r\n }\r\n\r\n _applicationHide(self, type) {\r\n\r\n this.__licationHide = true;\r\n getLastTime();\r\n const time = getResidenceTime();\r\n getFirstTime();\r\n const route = getPageRoute(this);\r\n this._sendHideRequest({\r\n urlref: route,\r\n urlref_ts: time.residenceTime\r\n }, type);\r\n }\r\n\r\n _pageShow() {\r\n const route = getPageRoute(this);\r\n const routepath = getRoute();\r\n this._navigationBarTitle.config = PagesJson &&\r\n PagesJson.pages[routepath] &&\r\n PagesJson.pages[routepath].titleNView &&\r\n PagesJson.pages[routepath].titleNView.titleText ||\r\n PagesJson &&\r\n PagesJson.pages[routepath] &&\r\n PagesJson.pages[routepath].navigationBarTitleText || '';\r\n\r\n if (this.__licationShow) {\r\n getFirstTime();\r\n this.__licationShow = false;\r\n // console.log('这是 onLauch 之后执行的第一次 pageShow ,为下次记录时间做准备');\r\n this._lastPageRoute = route;\r\n return;\r\n }\r\n\r\n getLastTime();\r\n this._lastPageRoute = route;\r\n const time = getResidenceTime('page');\r\n if (time.overtime) {\r\n let options = {\r\n path: this._lastPageRoute,\r\n scene: this.statData.sc\r\n };\r\n this._sendReportRequest(options);\r\n }\r\n getFirstTime();\r\n }\r\n\r\n _pageHide() {\r\n if (!this.__licationHide) {\r\n getLastTime();\r\n const time = getResidenceTime('page');\r\n this._sendPageRequest({\r\n url: this._lastPageRoute,\r\n urlref: this._lastPageRoute,\r\n urlref_ts: time.residenceTime\r\n });\r\n this._navigationBarTitle = {\r\n config: '',\r\n page: '',\r\n report: '',\r\n lt: ''\r\n };\r\n return;\r\n }\r\n }\r\n\r\n _login() {\r\n this._sendEventRequest({\r\n key: 'login'\r\n }, 0);\r\n }\r\n\r\n _share() {\r\n this._sendEventRequest({\r\n key: 'share'\r\n }, 0);\r\n }\r\n _payment(key) {\r\n this._sendEventRequest({\r\n key\r\n }, 0);\r\n }\r\n _sendReportRequest(options) {\r\n\r\n this._navigationBarTitle.lt = '1';\r\n let query = options.query && JSON.stringify(options.query) !== '{}' ? '?' + JSON.stringify(options.query) : '';\r\n this.statData.lt = '1';\r\n this.statData.url = (options.path + query) || '';\r\n this.statData.t = getTime();\r\n this.statData.sc = getScene(options.scene);\r\n this.statData.fvts = getFirstVisitTime();\r\n this.statData.lvts = getLastVisitTime();\r\n this.statData.tvc = getTotalVisitCount();\r\n if (getPlatformName() === 'n') {\r\n this.getProperty();\r\n } else {\r\n this.getNetworkInfo();\r\n }\r\n }\r\n\r\n _sendPageRequest(opt) {\r\n let {\r\n url,\r\n urlref,\r\n urlref_ts\r\n } = opt;\r\n this._navigationBarTitle.lt = '11';\r\n let options = {\r\n ak: this.statData.ak,\r\n uuid: this.statData.uuid,\r\n lt: '11',\r\n ut: this.statData.ut,\r\n url,\r\n tt: this.statData.tt,\r\n urlref,\r\n urlref_ts,\r\n ch: this.statData.ch,\r\n usv: this.statData.usv,\r\n t: getTime(),\r\n p: this.statData.p\r\n };\r\n this.request(options);\r\n }\r\n\r\n _sendHideRequest(opt, type) {\r\n let {\r\n urlref,\r\n urlref_ts\r\n } = opt;\r\n let options = {\r\n ak: this.statData.ak,\r\n uuid: this.statData.uuid,\r\n lt: '3',\r\n ut: this.statData.ut,\r\n urlref,\r\n urlref_ts,\r\n ch: this.statData.ch,\r\n usv: this.statData.usv,\r\n t: getTime(),\r\n p: this.statData.p\r\n };\r\n this.request(options, type);\r\n }\r\n _sendEventRequest({\r\n key = '',\r\n value = \"\"\r\n } = {}) {\r\n const route = this._lastPageRoute;\r\n let options = {\r\n ak: this.statData.ak,\r\n uuid: this.statData.uuid,\r\n lt: '21',\r\n ut: this.statData.ut,\r\n url: route,\r\n ch: this.statData.ch,\r\n e_n: key,\r\n e_v: typeof(value) === 'object' ? JSON.stringify(value) : value.toString(),\r\n usv: this.statData.usv,\r\n t: getTime(),\r\n p: this.statData.p\r\n };\r\n this.request(options);\r\n }\r\n\r\n getNetworkInfo() {\r\n uni.getNetworkType({\r\n success: (result) => {\r\n this.statData.net = result.networkType;\r\n this.getLocation();\r\n }\r\n });\r\n }\r\n\r\n getProperty() {\r\n plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {\r\n this.statData.v = wgtinfo.version || '';\r\n this.getNetworkInfo();\r\n });\r\n }\r\n\r\n getLocation() {\r\n if (statConfig.getLocation) {\r\n uni.getLocation({\r\n type: 'wgs84',\r\n geocode: true,\r\n success: (result) => {\r\n if (result.address) {\r\n this.statData.cn = result.address.country;\r\n this.statData.pn = result.address.province;\r\n this.statData.ct = result.address.city;\r\n }\r\n\r\n this.statData.lat = result.latitude;\r\n this.statData.lng = result.longitude;\r\n this.request(this.statData);\r\n }\r\n });\r\n } else {\r\n this.statData.lat = 0;\r\n this.statData.lng = 0;\r\n this.request(this.statData);\r\n }\r\n }\r\n\r\n request(data, type) {\r\n let time = getTime();\r\n const title = this._navigationBarTitle;\r\n data.ttn = title.page;\r\n data.ttpj = title.config;\r\n data.ttc = title.report;\r\n\r\n let requestData = this._reportingRequestData;\r\n if (getPlatformName() === 'n') {\r\n requestData = uni.getStorageSync('__UNI__STAT__DATA') || {};\r\n }\r\n if (!requestData[data.lt]) {\r\n requestData[data.lt] = [];\r\n }\r\n requestData[data.lt].push(data);\r\n\r\n if (getPlatformName() === 'n') {\r\n uni.setStorageSync('__UNI__STAT__DATA', requestData);\r\n }\r\n if (getPageResidenceTime() < OPERATING_TIME && !type) {\r\n return\r\n }\r\n let uniStatData = this._reportingRequestData;\r\n if (getPlatformName() === 'n') {\r\n uniStatData = uni.getStorageSync('__UNI__STAT__DATA');\r\n }\r\n // 时间超过,重新获取时间戳\r\n setPageResidenceTime();\r\n let firstArr = [];\r\n let contentArr = [];\r\n let lastArr = [];\r\n\r\n for (let i in uniStatData) {\r\n const rd = uniStatData[i];\r\n rd.forEach((elm) => {\r\n const newData = getSplicing(elm);\r\n if (i === 0) {\r\n firstArr.push(newData);\r\n } else if (i === 3) {\r\n lastArr.push(newData);\r\n } else {\r\n contentArr.push(newData);\r\n }\r\n });\r\n }\r\n\r\n firstArr.push(...contentArr, ...lastArr);\r\n let optionsData = {\r\n usv: STAT_VERSION, //统计 SDK 版本号\r\n t: time, //发送请求时的时间戮\r\n requests: JSON.stringify(firstArr),\r\n };\r\n\r\n this._reportingRequestData = {};\r\n if (getPlatformName() === 'n') {\r\n uni.removeStorageSync('__UNI__STAT__DATA');\r\n }\r\n\r\n if (data.ut === 'h5') {\r\n this.imageRequest(optionsData);\r\n return\r\n }\r\n\r\n if (getPlatformName() === 'n' && this.statData.p === 'a') {\r\n setTimeout(() => {\r\n this._sendRequest(optionsData);\r\n }, 200);\r\n return\r\n }\r\n this._sendRequest(optionsData);\r\n }\r\n _sendRequest(optionsData) {\r\n uni.request({\r\n url: STAT_URL,\r\n method: 'POST',\r\n // header: {\r\n // 'content-type': 'application/json' // 默认值\r\n // },\r\n data: optionsData,\r\n success: () => {\r\n // if (process.env.NODE_ENV === 'development') {\r\n // console.log('stat request success');\r\n // }\r\n },\r\n fail: (e) => {\r\n if (++this._retry < 3) {\r\n setTimeout(() => {\r\n this._sendRequest(optionsData);\r\n }, 1000);\r\n }\r\n }\r\n });\r\n }\r\n /**\r\n * h5 请求\r\n */\r\n imageRequest(data) {\r\n let image = new Image();\r\n let options = getSgin(GetEncodeURIComponentOptions(data)).options;\r\n image.src = STAT_H5_URL + '?' + options;\r\n }\r\n\r\n sendEvent(key, value) {\r\n // 校验 type 参数\r\n if (calibration(key, value)) return\r\n\r\n if (key === 'title') {\r\n this._navigationBarTitle.report = value;\r\n return\r\n }\r\n this._sendEventRequest({\r\n key,\r\n value: typeof(value) === 'object' ? JSON.stringify(value) : value\r\n }, 1);\r\n }\r\n}\r\n\r\n\r\nclass Stat extends Util {\r\n static getInstance() {\r\n if (!this.instance) {\r\n this.instance = new Stat();\r\n }\r\n return this.instance;\r\n }\r\n constructor() {\r\n super();\r\n this.instance = null;\r\n // 注册拦截器\r\n if (typeof uni.addInterceptor === 'function' && process.env.NODE_ENV !== 'development') {\r\n this.addInterceptorInit();\r\n this.interceptLogin();\r\n this.interceptShare(true);\r\n this.interceptRequestPayment();\r\n }\r\n }\r\n\r\n addInterceptorInit() {\r\n let self = this;\r\n uni.addInterceptor('setNavigationBarTitle', {\r\n invoke(args) {\r\n self._navigationBarTitle.page = args.title;\r\n }\r\n });\r\n }\r\n\r\n interceptLogin() {\r\n let self = this;\r\n uni.addInterceptor('login', {\r\n complete() {\r\n self._login();\r\n }\r\n });\r\n }\r\n\r\n interceptShare(type) {\r\n let self = this;\r\n if (!type) {\r\n self._share();\r\n return\r\n }\r\n uni.addInterceptor('share', {\r\n success() {\r\n self._share();\r\n },\r\n fail() {\r\n self._share();\r\n }\r\n });\r\n }\r\n\r\n interceptRequestPayment() {\r\n let self = this;\r\n uni.addInterceptor('requestPayment', {\r\n success() {\r\n self._payment('pay_success');\r\n },\r\n fail() {\r\n self._payment('pay_fail');\r\n }\r\n });\r\n }\r\n\r\n report(options, self) {\r\n this.self = self;\r\n // if (process.env.NODE_ENV === 'development') {\r\n // console.log('report init');\r\n // }\r\n setPageResidenceTime();\r\n this.__licationShow = true;\r\n this._sendReportRequest(options, true);\r\n }\r\n\r\n load(options, self) {\r\n if (!self.$scope && !self.$mp) {\r\n const page = getCurrentPages();\r\n self.$scope = page[page.length - 1];\r\n }\r\n this.self = self;\r\n this._query = options;\r\n }\r\n\r\n show(self) {\r\n this.self = self;\r\n if (getPageTypes(self)) {\r\n this._pageShow(self);\r\n } else {\r\n this._applicationShow(self);\r\n }\r\n }\r\n\r\n ready(self) {\r\n // this.self = self;\r\n // if (getPageTypes(self)) {\r\n // this._pageShow(self);\r\n // }\r\n }\r\n hide(self) {\r\n this.self = self;\r\n if (getPageTypes(self)) {\r\n this._pageHide(self);\r\n } else {\r\n this._applicationHide(self, true);\r\n }\r\n }\r\n error(em) {\r\n if (this._platform === 'devtools') {\r\n if (process.env.NODE_ENV === 'development') {\r\n console.info('当前运行环境为开发者工具,不上报数据。');\r\n }\r\n // return;\r\n }\r\n let emVal = '';\r\n if (!em.message) {\r\n emVal = JSON.stringify(em);\r\n } else {\r\n emVal = em.stack;\r\n }\r\n let options = {\r\n ak: this.statData.ak,\r\n uuid: this.statData.uuid,\r\n lt: '31',\r\n ut: this.statData.ut,\r\n ch: this.statData.ch,\r\n mpsdk: this.statData.mpsdk,\r\n mpv: this.statData.mpv,\r\n v: this.statData.v,\r\n em: emVal,\r\n usv: this.statData.usv,\r\n t: getTime(),\r\n p: this.statData.p\r\n };\r\n this.request(options);\r\n }\r\n}\r\n\r\nconst stat = Stat.getInstance();\r\nlet isHide = false;\r\nconst lifecycle = {\r\n onLaunch(options) {\r\n stat.report(options, this);\r\n },\r\n onReady() {\r\n stat.ready(this);\r\n },\r\n onLoad(options) {\r\n stat.load(options, this);\r\n // 重写分享,获取分享上报事件\r\n if (this.$scope && this.$scope.onShareAppMessage) {\r\n let oldShareAppMessage = this.$scope.onShareAppMessage;\r\n this.$scope.onShareAppMessage = function(options) {\r\n stat.interceptShare(false);\r\n return oldShareAppMessage.call(this, options)\r\n };\r\n }\r\n },\r\n onShow() {\r\n isHide = false;\r\n stat.show(this);\r\n },\r\n onHide() {\r\n isHide = true;\r\n stat.hide(this);\r\n },\r\n onUnload() {\r\n if (isHide) {\r\n isHide = false;\r\n return\r\n }\r\n stat.hide(this);\r\n },\r\n onError(e) {\r\n stat.error(e);\r\n }\r\n};\r\n\r\nfunction main() {\r\n if (process.env.NODE_ENV === 'development') {\r\n uni.report = function(type, options) {};\r\n }else{\r\n const Vue = require('vue');\r\n (Vue.default || Vue).mixin(lifecycle);\r\n uni.report = function(type, options) {\r\n stat.sendEvent(type, options);\r\n };\r\n }\r\n}\r\n\r\nmain();\r\n","export default {\"appid\":\"\"}","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode, /* vue-cli only */\n components, // fixed by xxxxxx auto components\n renderjs // fixed by xxxxxx renderjs\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // fixed by xxxxxx auto components\n if (components) {\n if (!options.components) {\n options.components = {}\n }\n var hasOwn = Object.prototype.hasOwnProperty\n for (var name in components) {\n if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) {\n options.components[name] = components[name]\n }\n }\n }\n // fixed by xxxxxx renderjs\n if (renderjs) {\n (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() {\n this[renderjs.__module] = this\n });\n (options.mixins || (options.mixins = [])).push(renderjs)\n }\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","// 数据格式,数据中只需要包含以下字段和数据格式,可以添加字段,比如id等等,不影响组件显示,\r\n// 组件的返回结果是有菜单数组下标形式返回,\r\n// 如果传入数据中有value,也会返回value,开发者可根据返回的下标获取所选中的菜单\r\n/*\r\n[\r\n\t{\r\n\t\t\"name\":\"\",\t//字符串类型 选填项 菜单名称,如不填,则取第一个子菜单的name值,filter和radio类型则将设置为\"筛选\"\r\n\t\t\"type\":\"\"\t//字符串类型 必填项 可取值 hierarchy/filter/radio hierarchy单/多层级菜单(最多三级); filter筛选多选菜单; radio筛选单选菜单\r\n\t\t\"submenu\":[\t//对象数组类型 必填项 子菜单数据\r\n\t\t\t{\r\n\t\t\t\t\"name\":\"\",\t//字符串类型 必填项 菜单名称\r\n\t\t\t\t\"value\":\"\",\t//字符串类型 选填项 自定义内容,比如id等等,如果填写了,confirm返回的结果中将返回对应选中的value,若菜单无value字段则返回null,filter类型此字段无效果\r\n\t\t\t\t\"submenu\":[\t//对象数组类型 必填项 子菜单数据\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"name\":\"\",\t//字符串类型 必填项 菜单名称\r\n\t\t\t\t\t\t\"value\":\"\",\t//字符串类型 选填项 自定义内容,比如id等等,如果填写了,confirm返回的结果中将返回对应选中的value,若菜单无value字段则返回null\r\n\t\t\t\t\t\t\"submenu\":[\t//对象数组类型 必填项 子菜单数据 filter类型无效 \r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\"name\":\"\",\t//字符串类型 必填项 菜单名称 hierarchy类型层级最多到此\r\n\t\t\t\t\t\t\t\t\"value\":\"\",\t//字符串类型 选填项 自定义内容,比如id等等,如果填写了,confirm返回的结果中将返回对应选中的value,若菜单无value字段则返回null\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n]\r\n*/\r\n\r\n//0.0.4版本起 返回结果将有两部分组成:\r\n/*\r\n{\r\n\tindex:[],\t//旧版本的下标数组形式\r\n\tvalue:[]\t//菜单中的valve,结构和下标结果数组一样,只是把下标替换成了value而已\r\n}\r\n*/\r\n// 以下演示数据中,我故意把value设置成跟name一样,只是为了方便演示,使示例更加易懂,实际使用时候value应该是一个标识,给后台识别所用的.\r\n// 数据较长,请仔细查看。\r\nexport default [\r\n\t{\r\n\t\t\"name\":'综合',\r\n\t\t\"type\": 'filter',\r\n\t\t\"submenu\": [{\r\n\t\t\t\t\"submenu\": [\r\n\r\n\t\t\t\t]\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\tname:'品牌',\r\n\t\t\"type\": 'filter',\r\n\t\t\"submenu\": [{\r\n\t\t\t\t\"name\": '品牌',\r\n\t\t\t\t\"value\": \"品牌\",\r\n\t\t\t\t\"submenu\": [{\r\n\t\t\t\t\t\t\"name\": \"帕森\",\r\n\t\t\t\t\t\t\"value\": \"帕森\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"name\": \"海伦凯勒\",\r\n\t\t\t\t\t\t\"value\": \"海伦凯勒\",\r\n\t\t\t\t\t},\r\n\t\t\t\t]\r\n\t\t\t},\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\t\"name\":'功能',\r\n\t\t\"type\": 'filter',\r\n\t\t\"submenu\": [{\r\n\t\t\t\t\"name\": \"智能排序\",\r\n\t\t\t\t\"value\": \"智能排序\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"name\": \"离我最近\",\r\n\t\t\t\t\"value\": \"离我最近\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"name\": \"人均从高到低\",\r\n\t\t\t\t\"value\": \"人均从高到低\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"name\": \"人均从低到高\",\r\n\t\t\t\t\"value\": \"人均从低到高\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\t\"name\":'材质',\r\n\t\t\"type\": 'filter',\r\n\t\t\"submenu\": [{\r\n\t\t\t\t\"submenu\": [{\r\n\t\t\t\t\t\t\"name\": \"满减活动\",\r\n\t\t\t\t\t\t\"value\": \"满减活动\"\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"name\": \"打折优惠\",\r\n\t\t\t\t\t\t\"value\": \"打折优惠\"\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"name\": \"会员专享\",\r\n\t\t\t\t\t\t\"value\": \"会员专享\"\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\t\"name\":'折扣',\r\n\t\t\"type\": 'filter',\r\n\t\t\"submenu\": [{\r\n\t\t\t\t\"name\": \"折扣(多选)\",\r\n\t\t\t\t\"submenu\": [{\r\n\t\t\t\t\t\t\"name\": \"满减活动\",\r\n\t\t\t\t\t\t\"value\": \"满减活动\"\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"name\": \"打折优惠\",\r\n\t\t\t\t\t\t\"value\": \"打折优惠\"\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"name\": \"会员专享\",\r\n\t\t\t\t\t\t\"value\": \"会员专享\"\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n]\r\n\r\n"],"sourceRoot":""} File was deleted
unpackage/dist/dev/.sourcemap/mp-weixin/components/HM-filterDropdown/HM-filterDropdown.js.map
1 {"version":3,"sources":["webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/HM-filterDropdown/HM-filterDropdown.vue?4d4c","webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/HM-filterDropdown/HM-filterDropdown.vue?201c","webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/HM-filterDropdown/HM-filterDropdown.vue?d406","webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/HM-filterDropdown/HM-filterDropdown.vue?a0c0","webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/HM-filterDropdown/HM-filterDropdown.vue","webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/HM-filterDropdown/HM-filterDropdown.vue?0ba7","webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/HM-filterDropdown/HM-filterDropdown.vue?1b71"],"names":["data","subData","menu","showPage","pageState","activeMenuArr","shadowActiveMenuArr","defaultActive","triangleDeg","isShowMask","maskVisibility","firstScrollInto","secondScrollInto","componentTop","isReadNewSelect","props","filterData","value","Array","default","defaultSelected","updateMenuName","Boolean","dataFormat","String","watch","handler","initMenu","immediate","newVal","length","JSON","parse","stringify","setMenuName","methods","tmpMenuActiveArr","tmpMenu","i","tmpitem","push","name","type","submenu","processActive","processSubMenu","row","tmpsub","showMoreSub","index","showAllSub","$forceUpdate","selectHierarchyMenu","page_index","level1_index","level2_index","level3_index","splice","sub","togglePage","setFilterData","resetFilterData","tmpArr","level","box","selected","selectFilterLabel","box_index","label_index","find_index","indexOf","selectRadioLabel","activeIndex","hidePageLayer","hideMask","showPageLayer","showMask","setTimeout","$nextTick","isAnimation","tmpIndex","confirm","forEach","item","s","j","sort","val1","val2","v","k","hasOwnProperty","$emit","processPage","reloadActiveMenuArr","parseInt","getMaxFloor","treeData","floor","max","each","e","discard"],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8H;AAC9H;AACqE;AACL;AACc;;;AAG9E;AACqK;AACrK,gBAAgB,+KAAU;AAC1B,EAAE,uFAAM;AACR,EAAE,4FAAM;AACR,EAAE,qGAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,gGAAU;AACZ;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAA2mB,CAAgB,qoBAAG,EAAC,C;;;;;;;;;;;;wFCA/nB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACdA,MADc,kBACP;AACN,WAAO;AACNC,aAAO,EAAE,EADH,EACO;AACbC,UAAI,EAAE,EAFA,EAEI;AACVC,cAAQ,EAAE,CAAC,CAHL,EAGQ;AACdC,eAAS,EAAE,EAJL,EAIS;AACfC,mBAAa,EAAE,EALT,EAKa;AACnBC,yBAAmB,EAAE,EANf,EAMmB;AACzBC,mBAAa,EAAC,EAPR;AAQNC,iBAAW,EAAE,EARP,EAQW;AACjBC,gBAAU,EAAE,KATN,EASa;AACnBC,oBAAc,EAAE,KAVV,EAUiB;AACvB;AACAC,qBAAe,EAAE,CAZX;AAaNC,s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","file":"components/HM-filterDropdown/HM-filterDropdown.js","sourcesContent":["import { render, staticRenderFns, recyclableRender, components } from \"./HM-filterDropdown.vue?vue&type=template&id=b17dcada&\"\nvar renderjs\nimport script from \"./HM-filterDropdown.vue?vue&type=script&lang=js&\"\nexport * from \"./HM-filterDropdown.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HM-filterDropdown.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\runtime\\\\componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"C:/Users/Administrator/Desktop/gulu-vue/components/HM-filterDropdown/HM-filterDropdown.vue\"\nexport default component.exports","export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\templateLoader.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--16-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\template.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-uni-app-loader\\\\page-meta.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./HM-filterDropdown.vue?vue&type=template&id=b17dcada&\"","var components\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./HM-filterDropdown.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./HM-filterDropdown.vue?vue&type=script&lang=js&\"","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tsubData: [], //菜单数据\n\t\t\tmenu: [], //顶部横条数据\n\t\t\tshowPage: -1, //菜单页面显示/隐藏动画控制\n\t\t\tpageState: [], //页面的状态\n\t\t\tactiveMenuArr: [], //UI状态\n\t\t\tshadowActiveMenuArr: [], //记录选中\n\t\t\tdefaultActive:[],\n\t\t\ttriangleDeg: [], //小三角形的翻转动画控制\n\t\t\tisShowMask: false, //遮罩层显示/隐藏动画控制\n\t\t\tmaskVisibility: false, //遮罩层显示/隐藏状态\n\t\t\t//滚动区域定位\n\t\t\tfirstScrollInto: 0,\n\t\t\tsecondScrollInto: 0,\n\t\t\tcomponentTop:0\t,//组件top\n\t\t\tisReadNewSelect:false\n\t\t}\n\t},\n\tprops: {\n\t\tfilterData: {\n\t\t\tvalue: Array,\n\t\t\tdefault: []\n\t\t},\n\t\tdefaultSelected:{\n\t\t\tvalue: Array,\n\t\t\tdefault: []\n\t\t},\n\t\tupdateMenuName:{\n\t\t\tvalue: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tdataFormat:{\n\t\t\tvalue: String,\n\t\t\tdefault: 'Array'\n\t\t}\n\t},\n\twatch: {\n\t\tfilterData: {\n\t\t\thandler() {\n\t\t\t\tthis.initMenu(); //filterData重新赋值初始化菜单\n\t\t\t},\n\t\t\timmediate: true\n\t\t},\n\t\tdefaultSelected(newVal) {\n\t\t\tif(newVal.length==0){\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.defaultActive = JSON.parse(JSON.stringify(newVal));\n\t\t\tthis.activeMenuArr = JSON.parse(JSON.stringify(newVal));\n\t\t\tthis.shadowActiveMenuArr = JSON.parse(JSON.stringify(newVal));\n\t\t\tif(this.updateMenuName){\n\t\t\t\tthis.setMenuName();\n\t\t\t}\n\t\t}\n\t},\n\tmethods: {\n\t\tinitMenu() {\n\t\t\tlet tmpMenuActiveArr=[];\n\t\t\tlet tmpMenu=[];\n\t\t\tfor (let i = 0; i < this.filterData.length; i++) {\n\t\t\t\tlet tmpitem = this.filterData[i];\n\t\t\t\ttmpMenu.push({\n\t\t\t\t\t//如果没有设置name,则取第一个菜单作为menu.name,filter类型则将\"筛选\"作为menu.name\n\t\t\t\t\tname: tmpitem.name || (tmpitem.type == \"filter\" ? \"筛选\" : tmpitem.submenu[0].name),\n\t\t\t\t\ttype: tmpitem.type\n\t\t\t\t});\n\t\t\t\t//初始化选中项数组-ui状态\n\t\t\t\ttmpMenuActiveArr.push(this.processActive(tmpitem));\n\t\t\t\t//初始化角度数组\n\t\t\t\tthis.triangleDeg.push(0);\n\t\t\t\t//初始化控制显示状态数组\n\t\t\t\tthis.pageState.push(false);\n\t\t\t\t//递归处理子菜单数据\n\t\t\t\ttmpitem = this.processSubMenu(tmpitem);\n\t\t\t\tthis.filterData[i] = tmpitem;\n\t\t\t}\n\t\t\tthis.menu = tmpMenu;\n\t\t\t//初始化选中项数组\n\t\t\ttmpMenuActiveArr = this.defaultActive.length>0?this.defaultActive:this.activeMenuArr.length>0?this.activeMenuArr:tmpMenuActiveArr;\n\t\t\tthis.defaultActive = [];\n\t\t\tthis.activeMenuArr = JSON.parse(JSON.stringify(tmpMenuActiveArr));\n\t\t\tthis.shadowActiveMenuArr = JSON.parse(JSON.stringify(tmpMenuActiveArr));\n\t\t\t//加载菜单数据\n\t\t\tthis.subData = this.filterData;\n\t\t\t//设定顶部菜单名字\n\t\t\tif(this.updateMenuName){\n\t\t\t\tthis.setMenuName();\n\t\t\t}\n\t\t},\n\t\tsetMenuName(){\n\t\t\tfor(var i=0;i<this.activeMenuArr.length;i++){\n\t\t\t\tlet row = this.activeMenuArr[i];\n\t\t\t\tif (typeof(row[0]) != 'object'){\n\t\t\t\t\tvar tmpsub = false;\n\t\t\t\t\tif(row.length>0 && row[0]!=null){\n\t\t\t\t\t\ttmpsub = this.subData[i].submenu[row[0]];\n\t\t\t\t\t\tif(row.length>1 && row[1]!=null){\n\t\t\t\t\t\t\ttmpsub = tmpsub.submenu[row[1]];\n\t\t\t\t\t\t\tif(row.length>2 && row[2]!=null){\n\t\t\t\t\t\t\t\ttmpsub = tmpsub.submenu[row[2]];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}else{\n\t\t\t\t\t\ttmpsub = false;\n\t\t\t\t\t}\n\t\t\t\t\tif(tmpsub){\n\t\t\t\t\t\tthis.menu[i].name = tmpsub.name;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t//展开更多\n\t\tshowMoreSub(index) {\n\t\t\tthis.subData[this.showPage].submenu[this.activeMenuArr[this.showPage][0]].submenu[index].showAllSub = true;\n\t\t\tthis.$forceUpdate();\n\t\t},\n\t\t//选中\n\t\tselectHierarchyMenu(page_index, level1_index, level2_index, level3_index) {\n\t\t\t//读取记录\n\t\t\tif (level1_index != null && level2_index == null && level3_index == null && this.shadowActiveMenuArr[page_index][0] ==\n\t\t\t\tlevel1_index) {\n\t\t\t\tthis.activeMenuArr.splice(page_index, 1, JSON.parse(JSON.stringify(this.shadowActiveMenuArr[page_index])));\n\t\t\t} else {\n\t\t\t\tthis.activeMenuArr[page_index].splice(0, 1, level1_index);\n\t\t\t\t(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);\n\t\t\t\t(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);\n\t\t\t}\n\t\t\t//写入结果\n\t\t\tif (level3_index != null || level2_index != null || (level1_index != null && this.subData[page_index].submenu[level1_index].submenu.length == 0)\n\t\t\t) {\n\t\t\t\tlet sub = this.subData[page_index].submenu[level1_index].submenu[level2_index];\n\t\t\t\tif(this.updateMenuName){\n\t\t\t\t\tthis.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;\n\t\t\t\t}\n\t\t\t\tthis.shadowActiveMenuArr[page_index] = JSON.parse(JSON.stringify(this.activeMenuArr[page_index]));\n\t\t\t\tthis.togglePage(this.showPage);\n\t\t\t}\n\t\t},\n\t\t//写入结果,筛选\n\t\tsetFilterData(page_index) {\n\t\t\tthis.shadowActiveMenuArr[page_index] = JSON.parse(JSON.stringify(this.activeMenuArr[page_index]));\n\t\t\tthis.togglePage(this.showPage);\n\t\t},\n\t\t//重置结果和ui,筛选\n\t\tresetFilterData(page_index) {\n\t\t\tlet tmpArr = [];\n\t\t\tlet level = this.shadowActiveMenuArr[page_index].length;\n\t\t\twhile (level > 0) {\n\t\t\t\ttmpArr.push([]);\n\t\t\t\tlet box = this.subData[page_index].submenu[level - 1].submenu;\n\t\t\t\tfor (let i = 0; i < box.length; i++) {\n\t\t\t\t\tthis.subData[page_index].submenu[level - 1].submenu[i].selected = false;\n\t\t\t\t}\n\t\t\t\tlevel--;\n\t\t\t}\n\t\t\tthis.activeMenuArr[page_index] = JSON.parse(JSON.stringify(tmpArr));\n\t\t\tthis.$forceUpdate();\n\t\t},\n\t\t//选中筛选类label-UI状态\n\t\tselectFilterLabel(page_index, box_index, label_index) {\n\t\t\tlet find_index = this.activeMenuArr[page_index][box_index].indexOf(label_index);\n\t\t\tif (find_index > -1) {\n\t\t\t\tthis.activeMenuArr[page_index][box_index].splice(find_index, 1);\n\t\t\t\tthis.subData[page_index].submenu[box_index].submenu[label_index].selected = false;\n\t\t\t} else {\n\t\t\t\tthis.activeMenuArr[page_index][box_index].push(label_index);\n\t\t\t\tthis.subData[page_index].submenu[box_index].submenu[label_index].selected = true;\n\t\t\t}\n\t\t\tthis.$forceUpdate();\n\t\t},\n\t\t//选中单选类label-UI状态\n\t\tselectRadioLabel(page_index, box_index, label_index) {\n\t\t\t\n\t\t\tlet activeIndex = this.activeMenuArr[page_index][box_index][0];\n\t\t\tif(activeIndex == label_index){\n\t\t\t\tthis.subData[page_index].submenu[box_index].submenu[activeIndex].selected = false;\n\t\t\t\tthis.activeMenuArr[page_index][box_index][0] = null;\n\t\t\t}else{\n\t\t\t\tif(activeIndex!=null && activeIndex<this.subData[page_index].submenu[box_index].submenu.length){\n\t\t\t\t\tthis.subData[page_index].submenu[box_index].submenu[activeIndex].selected = false;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.subData[page_index].submenu[box_index].submenu[label_index].selected = true;\n\t\t\t\tthis.activeMenuArr[page_index][box_index][0] = label_index;\n\t\t\t}\n\t\t\tthis.$forceUpdate();\n\t\t},\n\t\t//菜单开关\n\t\ttogglePage(index) {\n\t\t\tif (index == this.showPage) {\n\t\t\t\tthis.hidePageLayer(true);\n\t\t\t\tthis.hideMask();\n\t\t\t\tthis.showPage = -1;\n\t\t\t} else {\n\t\t\t\tif (this.showPage > -1) {\n\t\t\t\t\tthis.hidePageLayer(false);\n\t\t\t\t}\n\t\t\t\tthis.showPageLayer(index);\n\t\t\t\tthis.showMask();\n\t\t\t}\n\t\t},\n\t\t//hide遮罩层\n\t\thideMask() {\n\t\t\tthis.isShowMask = false;\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.maskVisibility = false;\n\t\t\t}, 200);\n\t\t},\n\t\t//show遮罩层\n\t\tshowMask() {\n\t\t\tthis.maskVisibility = true;\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.isShowMask = true;\n\t\t\t\t}, 0);\n\t\t\t})\n\t\t},\n\t\t//hide菜单页\n\t\thidePageLayer(isAnimation) {\n\t\t\tthis.triangleDeg[this.showPage] = 0;\n\t\t\tlet tmpIndex = this.showPage;\n\t\t\tif (isAnimation) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.pageState.splice(tmpIndex, 1, false);\n\t\t\t\t}, 200);\n\t\t\t\tthis.confirm();\n\t\t\t} else {\n\t\t\t\tthis.pageState.splice(tmpIndex, 1, false)\n\t\t\t}\n\t\t\tthis.firstScrollInto = null;\n\t\t\tthis.secondScrollInto = null;\n\t\t},\n\t\tconfirm() {\n\t\t\tlet index = JSON.parse(JSON.stringify(this.shadowActiveMenuArr));\n\t\t\tlet value = JSON.parse(JSON.stringify(this.shadowActiveMenuArr));\n\t\t\t\n\t\t\t//对结果做一下处理\n\t\t\tindex.forEach((item, i) => {\n\t\t\t\tif (typeof(item[0]) == 'object') {\n\t\t\t\t\t//针对筛选结果过一个排序\n\t\t\t\t\titem.forEach((s, j) => {\n\t\t\t\t\t\tif(s!=null){\n\t\t\t\t\t\t\ts.sort((val1, val2) => {\n\t\t\t\t\t\t\t\treturn val1 - val2;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\titem[j] = s;\n\t\t\t\t\t\t\ts.forEach((v, k) => {\n\t\t\t\t\t\t\t\tvalue[i][j][k] = (v==null||v>=this.subData[i].submenu[j].submenu.length)?null:this.subData[i].submenu[j].submenu[v].value;\n\t\t\t\t\t\t\t\tif(this.subData[i].type == 'radio' && value[i][j][k] == null){\n\t\t\t\t\t\t\t\t\tvalue[i][j] = [];\n\t\t\t\t\t\t\t\t\tindex[i][j] = [];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}else{\n\t\t\t\t\tlet submenu = this.subData[i].submenu[item[0]];\n\t\t\t\t\tvalue[i][0] = submenu.value;\n\t\t\t\t\tif(value[i].length>=2 && item[1]!=null){\n\t\t\t\t\t\tif(submenu.submenu.length>0){\n\t\t\t\t\t\t\tsubmenu = submenu.submenu[item[1]];\n\t\t\t\t\t\t\tvalue[i][1] = submenu.hasOwnProperty('value')?submenu.value:null;\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tvalue[i][1] = null\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(value[i].length>=3 && item[2]!=null){\n\t\t\t\t\t\t\tif(submenu.submenu.length>0){\n\t\t\t\t\t\t\t\tsubmenu = submenu.submenu[item[2]];\n\t\t\t\t\t\t\t\tvalue[i][2] = submenu.hasOwnProperty('value')?submenu.value:null;\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\tvalue[i][2] = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tindex[i] = item;\n\t\t\t\t\n\t\t\t});\n\t\t\t// 输出\n\t\t\tthis.$emit('confirm', {\n\t\t\t\tindex: index,\n\t\t\t\tvalue: value\n\t\t\t});\n\t\t},\n\t\t//show菜单页\n\t\tshowPageLayer(index) {\n\t\t\tthis.processPage(index);\n\t\t\tthis.pageState.splice(index, 1, true);\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.showPage = index;\n\t\t\t\t}, 0);\n\t\t\t})\n\t\t\tthis.triangleDeg[index] = 180;\n\t\t},\n\t\treloadActiveMenuArr(){\n\t\t\tfor (let i = 0; i < this.filterData.length; i++) {\n\t\t\t\tlet tmpitem = this.filterData[i];\n\t\t\t\tlet tmpArr = this.processActive(tmpitem);\n\t\t\t\ttmpitem = this.processSubMenu(tmpitem);\n\t\t\t\tif(this.activeMenuArr[i].length!=tmpArr.length){\n\t\t\t\t\tthis.filterData[i] = tmpitem;\n\t\t\t\t\tthis.activeMenuArr.splice(i, 1, JSON.parse(JSON.stringify(tmpArr)));\n\t\t\t\t\tthis.shadowActiveMenuArr.splice(i, 1, JSON.parse(JSON.stringify(tmpArr)));\n\t\t\t\t}\n\t\t\t} \n\t\t\tthis.subData = this.filterData;\n\t\t\tthis.$forceUpdate();\n\t\t},\n\t\tprocessPage(index) {\n\t\t\t//check UI控制数组,结果数组,防止传入数据层级和UI控制数组不同步\n\t\t\tthis.reloadActiveMenuArr();\n\t\t\t//重置UI控制数组\n\t\t\tthis.activeMenuArr.splice(index, 1, JSON.parse(JSON.stringify(this.shadowActiveMenuArr[index])));\n\t\t\tif (this.menu[index].type == 'filter') {\n\t\t\t\t//重载筛选页选中状态\n\t\t\t\tlet level = this.shadowActiveMenuArr[index].length;\n\t\t\t\tfor (let i = 0; i < level; i++) {\n\t\t\t\t\tlet box = this.subData[index].submenu[i].submenu;\n\t\t\t\t\tfor (let j = 0; j < box.length; j++) {\n\t\t\t\t\t\tif (this.shadowActiveMenuArr[index][i].indexOf(j) > -1) {\n\t\t\t\t\t\t\tthis.subData[index].submenu[i].submenu[j].selected = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.subData[index].submenu[i].submenu[j].selected = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (this.menu[index].type == 'hierarchy') {\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t//滚动到选中项\n\t\t\t\t\t\tthis.firstScrollInto = parseInt(this.activeMenuArr[index][0]);\n\t\t\t\t\t\tthis.secondScrollInto = parseInt(this.activeMenuArr[index][1]);\n\t\t\t\t\t}, 0);\n\t\t\t\t})\n\t\t\t} else if (this.menu[index].type == 'radio') {\n\t\t\t\t//重载筛选页选中状态\n\t\t\t\tlet level = this.shadowActiveMenuArr[index].length;\n\t\t\t\tfor (let i = 0; i < level; i++) {\n\t\t\t\t\tlet box = this.subData[index].submenu[i].submenu;\n\t\t\t\t\tfor (let j = 0; j < box.length; j++) {\n\t\t\t\t\t\tif (this.shadowActiveMenuArr[index][i].indexOf(j) > -1) {\n\t\t\t\t\t\t\tthis.subData[index].submenu[i].submenu[j].selected = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.subData[index].submenu[i].submenu[j].selected = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} \n\t\t},\n\t\tprocessActive(tmpitem) {\n\t\t\tlet tmpArr = []\n\t\t\tif (tmpitem.type == 'hierarchy'&&tmpitem.hasOwnProperty('submenu')&&tmpitem.submenu.length>0) {\n\t\t\t\tlet level = this.getMaxFloor(tmpitem.submenu);\n\t\t\t\twhile (level > 0) {\n\t\t\t\t\ttmpArr.push(0);\n\t\t\t\t\tlevel--;\n\t\t\t\t}\n\t\t\t} else if (tmpitem.type == 'filter') {\n\t\t\t\tlet level = tmpitem.submenu.length;\n\t\t\t\twhile (level > 0) {\n\t\t\t\t\ttmpArr.push([]);\n\t\t\t\t\tlevel--;\n\t\t\t\t}\n\t\t\t} else if (tmpitem.type == 'radio') {\n\t\t\t\tlet level = tmpitem.submenu.length;\n\t\t\t\twhile (level > 0) {\n\t\t\t\t\ttmpArr.push([]);\n\t\t\t\t\tlevel--;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn tmpArr;\n\t\t},\n\t\tprocessSubMenu(menu) {\n\t\t\tif (menu.hasOwnProperty('submenu') && menu.submenu.length > 0) {\n\t\t\t\tfor (let i = 0; i < menu.submenu.length; i++) {\n\t\t\t\t\tmenu.submenu[i] = this.processSubMenu(menu.submenu[i]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmenu.submenu = [];\n\t\t\t}\n\t\t\treturn menu;\n\t\t},\n\t\t//计算菜单层级\n\t\tgetMaxFloor(treeData) {\n\t\t\tlet floor = 0\n\t\t\tlet max = 0\n\t\t\tfunction each(data, floor) {\n\t\t\t\tdata.forEach(e => {\n\t\t\t\t\tmax = floor > max ? floor : max;\n\t\t\t\t\tif (e.hasOwnProperty('submenu') && e.submenu.length > 0) {\n\t\t\t\t\t\teach(e.submenu, floor + 1)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t\teach(treeData, 1)\n\t\t\treturn max;\n\t\t},\n\t\tdiscard() {\n\n\t\t}\n\t}\n}\n","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./HM-filterDropdown.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./HM-filterDropdown.vue?vue&type=style&index=0&lang=scss&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1588056462553\n var cssReload = require(\"D:/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""} File was deleted
unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-drawer/uni-drawer.js.map
1 {"version":3,"sources":["webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/uni-drawer/uni-drawer.vue?175e","webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/uni-drawer/uni-drawer.vue?ab7b","webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/uni-drawer/uni-drawer.vue?625a","webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/uni-drawer/uni-drawer.vue?32a4","webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/uni-drawer/uni-drawer.vue","webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/uni-drawer/uni-drawer.vue?53a5","webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/uni-drawer/uni-drawer.vue?e538"],"names":["name","props","mode","type","String","default","mask","Boolean","maskClick","width","Number","data","visibleSync","showDrawer","rightMode","watchTimer","drawerWidth","created","methods","clear","close","_change","open","param1","param2","status","clearTimeout","setTimeout","$emit"],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmI;AACnI;AAC8D;AACL;AACsC;;;AAG/F;AACqK;AACrK,gBAAgB,+KAAU;AAC1B,EAAE,gFAAM;AACR,EAAE,iGAAM;AACR,EAAE,0GAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,qGAAU;AACZ;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAAomB,CAAgB,8nBAAG,EAAC,C;;;;;;;;;;;;wFCAxnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AAYe;AACdA,MAAI,EAAE,WADQ;AAEdC,OAAK,EAAE;AACN;;;AAGAC,QAAI,EAAE;AACLC,UAAI,EAAEC,MADD;AAELC,aAAO,EAAE,EAFJ,EAJA;;AAQN;;;AAGAC,QAAI,EAAE;AACLH,UAAI,EAAEI,OADD;AAELF,aAAO,EAAE,IAFJ,EAXA;;AAeN;;;AAGAG,aAAS,EAAC;AACTL,UAAI,EAAEI,OADG;AAETF,aAAO,EAAE,IAFA,EAlBJ;;AAsBN;;;AAGAI,SAAK,EAAE;AACNN,UAAI,EAAEO,MADA;AAENL,aAAO,EAAE,GAFH,EAzBD,EAFO;;;AAgCdM,MAhCc,kBAgCP;AACN,WAAO;AACNC,iBAAW,EAAE,KADP;AAENC,gBAAU,EAAE,KAFN;AAGNC,eAAS,EAAE,KAHL;AAINC,gBAAU,EAAE,IAJN;AAKNC,iBAAW,EAAE,GALP,EAAP;;AAOA,GAxCa;AAyCdC,SAzCc,qBAyCJ;;AAET,SAAKD,WAAL,GAAmB,KAAKP,KAAxB;;AAEA,SAAKK,SAAL,GAAiB,KAAKZ,IAAL,KAAc,OAA/B;AACA,GA9Ca;AA+CdgB,SAAO,EAAE;AACRC,SADQ,mBACD,CAAE,CADD;AAERC,SAFQ,iBAEFjB,IAFE,EAEI;AACX;AACA,UAAIA,IAAI,KAAK,MAAT,IAAmB,CAAC,KAAKK,SAA1B,IAAwC,CAAC,KAAKI,WAAjD,EAA8D;AAC9D,WAAKS,OAAL,CAAa,YAAb,EAA2B,aAA3B,EAA0C,KAA1C;AACA,KANO;AAORC,QAPQ,kBAOD;AACN;AACA,UAAG,KAAKV,WAAR,EAAqB;AACrB,WAAKS,OAAL,CAAa,aAAb,EAA4B,YAA5B,EAA0C,IAA1C;AACA,KAXO;AAYRA,WAZQ,mBAYAE,MAZA,EAYQC,MAZR,EAYgBC,MAZhB,EAYwB;AAC/B,WAAKF,MAAL,IAAeE,MAAf;AACA,UAAI,KAAKV,UAAT,EAAqB;AACpBW,oBAAY,CAAC,KAAKX,UAAN,CAAZ;AACA;AACD,WAAKA,UAAL,GAAkBY,UAAU,CAAC,YAAM;AAClC,aAAI,CAACH,MAAD,CAAJ,GAAeC,MAAf;AACA,aAAI,CAACG,KAAL,CAAW,QAAX,EAAoBH,MAApB;AACA,OAH2B,EAGzBA,MAAM,GAAG,EAAH,GAAQ,GAHW,CAA5B;AAIA,KArBO,EA/CK,E;;;;;;;;;;;;ACtBf;AAAA;AAAA;AAAA;AAA8nC,CAAgB,wmCAAG,EAAC,C;;;;;;;;;;;ACAlpC;AACA,OAAO,KAAU,EAAE,kBAKd","file":"components/uni-drawer/uni-drawer.js","sourcesContent":["import { render, staticRenderFns, recyclableRender, components } from \"./uni-drawer.vue?vue&type=template&id=66ce0222&scoped=true&\"\nvar renderjs\nimport script from \"./uni-drawer.vue?vue&type=script&lang=js&\"\nexport * from \"./uni-drawer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./uni-drawer.vue?vue&type=style&index=0&id=66ce0222&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\runtime\\\\componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"66ce0222\",\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"C:/Users/Administrator/Desktop/gulu-vue/components/uni-drawer/uni-drawer.vue\"\nexport default component.exports","export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\templateLoader.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--16-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\template.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-uni-app-loader\\\\page-meta.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./uni-drawer.vue?vue&type=template&id=66ce0222&scoped=true&\"","var components\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./uni-drawer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./uni-drawer.vue?vue&type=script&lang=js&\"","//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/**\n * Drawer 抽屉\n * @description 抽屉侧滑菜单\n * @tutorial https://ext.dcloud.net.cn/plugin?id=26\n * @property {Boolean} mask = [true | false] 是否显示遮罩\n * @property {Boolean} maskClick = [true | false] 点击遮罩是否关闭\n * @property {Boolean} mode = [left | right] Drawer 滑出位置\n * \t@value left 从左侧滑出\n * \t@value right 从右侧侧滑出\n * @property {Number} width 抽屉的宽度 ,仅 vue 页面生效\n * @event {Function} close 组件关闭时触发事件\n */\nexport default {\n\tname: 'UniDrawer',\n\tprops: {\n\t\t/**\n\t\t * 显示模式(左、右),只在初始化生效\n\t\t */\n\t\tmode: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\t/**\n\t\t * 蒙层显示状态\n\t\t */\n\t\tmask: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\t/**\n\t\t * 遮罩是否可点击关闭\n\t\t */\n\t\tmaskClick:{\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\t/**\n\t\t * 抽屉宽度\n\t\t */\n\t\twidth: {\n\t\t\ttype: Number,\n\t\t\tdefault: 220\n\t\t}\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tvisibleSync: false,\n\t\t\tshowDrawer: false,\n\t\t\trightMode: false,\n\t\t\twatchTimer: null,\n\t\t\tdrawerWidth: 220\n\t\t}\n\t},\n\tcreated() {\n\n\t\tthis.drawerWidth = this.width\n\n\t\tthis.rightMode = this.mode === 'right'\n\t},\n\tmethods: {\n\t\tclear(){},\n\t\tclose(type) {\n\t\t\t// fixed by mehaotian 抽屉尚未完全关闭或遮罩禁止点击时不触发以下逻辑\n\t\t\tif((type === 'mask' && !this.maskClick) || !this.visibleSync) return\n\t\t\tthis._change('showDrawer', 'visibleSync', false)\n\t\t},\n\t\topen() {\n\t\t\t// fixed by mehaotian 处理重复点击打开的事件\n\t\t\tif(this.visibleSync) return\n\t\t\tthis._change('visibleSync', 'showDrawer', true)\n\t\t},\n\t\t_change(param1, param2, status) {\n\t\t\tthis[param1] = status\n\t\t\tif (this.watchTimer) {\n\t\t\t\tclearTimeout(this.watchTimer)\n\t\t\t}\n\t\t\tthis.watchTimer = setTimeout(() => {\n\t\t\t\tthis[param2] = status\n\t\t\t\tthis.$emit('change',status)\n\t\t\t}, status ? 50 : 300)\n\t\t}\n\t}\n}\n","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./uni-drawer.vue?vue&type=style&index=0&id=66ce0222&lang=scss&scoped=true&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./uni-drawer.vue?vue&type=style&index=0&id=66ce0222&lang=scss&scoped=true&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1588056462478\n var cssReload = require(\"D:/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""} File was deleted
unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-segmented-control/uni-segmented-control.js.map
1 {"version":3,"sources":["webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/uni-segmented-control/uni-segmented-control.vue?7ef4","webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/uni-segmented-control/uni-segmented-control.vue?3523","webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/uni-segmented-control/uni-segmented-control.vue?f269","webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/uni-segmented-control/uni-segmented-control.vue?410a","webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/uni-segmented-control/uni-segmented-control.vue","webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/uni-segmented-control/uni-segmented-control.vue?52bc","webpack:///C:/Users/Administrator/Desktop/gulu-vue/components/uni-segmented-control/uni-segmented-control.vue?2b78"],"names":["name","props","current","type","Number","default","values","Array","activeColor","String","styleType","data","currentIndex","watch","val","created","methods","_onClick","index","$emit"],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8I;AAC9I;AACyE;AACL;AACsC;;;AAG1G;AACqK;AACrK,gBAAgB,+KAAU;AAC1B,EAAE,2FAAM;AACR,EAAE,4GAAM;AACR,EAAE,qHAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,gHAAU;AACZ;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAA+mB,CAAgB,yoBAAG,EAAC,C;;;;;;;;;;;;wFCAnoB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACdA,MAAI,EAAE,qBADQ;AAEdC,OAAK,EAAE;AACNC,WAAO,EAAE;AACRC,UAAI,EAAEC,MADE;AAERC,aAAO,EAAE,CAFD,EADH;;AAKNC,UAAM,EAAE;AACPH,UAAI,EAAEI,KADC;AAEPF,aAFO,sBAEI;AACV,eAAO,EAAP;AACA,OAJM,EALF;;AAWNG,eAAW,EAAE;AACZL,UAAI,EAAEM,MADM;AAEZJ,aAAO,EAAE,SAFG,EAXP;;AAeNK,aAAS,EAAE;AACVP,UAAI,EAAEM,MADI;AAEVJ,aAAO,EAAE,QAFC,EAfL,EAFO;;;AAsBdM,MAtBc,kBAsBP;AACN,WAAO;AACNC,kBAAY,EAAE,CADR,EAAP;;AAGA,GA1Ba;AA2BdC,OAAK,EAAE;AACNX,WADM,mBACEY,GADF,EACO;AACZ,UAAIA,GAAG,KAAK,KAAKF,YAAjB,EAA+B;AAC9B,aAAKA,YAAL,GAAoBE,GAApB;AACA;AACD,KALK,EA3BO;;AAkCdC,SAlCc,qBAkCJ;AACT,SAAKH,YAAL,GAAoB,KAAKV,OAAzB;AACA,GApCa;AAqCdc,SAAO,EAAE;AACRC,YADQ,oBACCC,KADD,EACQ;AACf,UAAI,KAAKN,YAAL,KAAsBM,KAA1B,EAAiC;AAChC,aAAKN,YAAL,GAAoBM,KAApB;AACA,aAAKC,KAAL,CAAW,WAAX,EAAwB,EAACP,YAAY,EAACM,KAAd,EAAxB;AACA;AACD,KANO,EArCK,E;;;;;;;;;;;;ACtBf;AAAA;AAAA;AAAA;AAAyoC,CAAgB,mnCAAG,EAAC,C;;;;;;;;;;;ACA7pC;AACA,OAAO,KAAU,EAAE,kBAKd","file":"components/uni-segmented-control/uni-segmented-control.js","sourcesContent":["import { render, staticRenderFns, recyclableRender, components } from \"./uni-segmented-control.vue?vue&type=template&id=5ba11fbb&scoped=true&\"\nvar renderjs\nimport script from \"./uni-segmented-control.vue?vue&type=script&lang=js&\"\nexport * from \"./uni-segmented-control.vue?vue&type=script&lang=js&\"\nimport style0 from \"./uni-segmented-control.vue?vue&type=style&index=0&id=5ba11fbb&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\runtime\\\\componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ba11fbb\",\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"C:/Users/Administrator/Desktop/gulu-vue/components/uni-segmented-control/uni-segmented-control.vue\"\nexport default component.exports","export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\templateLoader.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--16-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\template.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-uni-app-loader\\\\page-meta.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./uni-segmented-control.vue?vue&type=template&id=5ba11fbb&scoped=true&\"","var components\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./uni-segmented-control.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./uni-segmented-control.vue?vue&type=script&lang=js&\"","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexport default {\n\tname: 'UniSegmentedControl',\n\tprops: {\n\t\tcurrent: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0\n\t\t},\n\t\tvalues: {\n\t\t\ttype: Array,\n\t\t\tdefault () {\n\t\t\t\treturn []\n\t\t\t}\n\t\t},\n\t\tactiveColor: {\n\t\t\ttype: String,\n\t\t\tdefault: '#007aff'\n\t\t},\n\t\tstyleType: {\n\t\t\ttype: String,\n\t\t\tdefault: 'button'\n\t\t}\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tcurrentIndex: 0\n\t\t}\n\t},\n\twatch: {\n\t\tcurrent(val) {\n\t\t\tif (val !== this.currentIndex) {\n\t\t\t\tthis.currentIndex = val\n\t\t\t}\n\t\t}\n\t},\n\tcreated() {\n\t\tthis.currentIndex = this.current\n\t},\n\tmethods: {\n\t\t_onClick(index) {\n\t\t\tif (this.currentIndex !== index) {\n\t\t\t\tthis.currentIndex = index\n\t\t\t\tthis.$emit('clickItem', {currentIndex:index})\n\t\t\t}\n\t\t}\n\t}\n}\n","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./uni-segmented-control.vue?vue&type=style&index=0&id=5ba11fbb&lang=scss&scoped=true&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./uni-segmented-control.vue?vue&type=style&index=0&id=5ba11fbb&lang=scss&scoped=true&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1587966441257\n var cssReload = require(\"D:/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""} File was deleted
unpackage/dist/dev/.sourcemap/mp-weixin/pages/cart/cart.js.map
1 {"version":3,"sources":["webpack:///C:/Users/Administrator/Desktop/gulu-vue/main.js","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?f7b9","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?b2d1","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?13ac","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?fa41","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?0969","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?8f1f"],"names":["createPage","Page","data","title","onLoad","methods"],"mappings":";;;;;;;;;;kDAAA,wCAAmB;AACnB;AACA,yF;AACAA,UAAU,CAACC,aAAD,CAAV,C;;;;;;;;;;;;;ACHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiH;AACjH;AACwD;AACL;AACa;;;AAGhE;AACqK;AACrK,gBAAgB,+KAAU;AAC1B,EAAE,0EAAM;AACR,EAAE,+EAAM;AACR,EAAE,wFAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,mFAAU;AACZ;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAA8lB,CAAgB,wnBAAG,EAAC,C;;;;;;;;;;;;wFCAlnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACdC,MADc,kBACP;AACN,WAAO;AACNC,WAAK,EAAE,OADD,EAAP;;AAGA,GALa;AAMdC,QANc,oBAML;;AAER,GARa;AASdC,SAAO,EAAE,EATK,E;;;;;;;;;;;;ACVf;AAAA;AAAA;AAAA;AAAg3B,CAAgB,i3BAAG,EAAC,C;;;;;;;;;;;ACAp4B;AACA,OAAO,KAAU,EAAE,kBAKd","file":"pages/cart/cart.js","sourcesContent":["import 'uni-pages';import '@dcloudio/uni-stat';\nimport Vue from 'vue'\nimport Page from './pages/cart/cart.vue'\ncreatePage(Page)","import { render, staticRenderFns, recyclableRender, components } from \"./cart.vue?vue&type=template&id=2e8f6dbb&\"\nvar renderjs\nimport script from \"./cart.vue?vue&type=script&lang=js&\"\nexport * from \"./cart.vue?vue&type=script&lang=js&\"\nimport style0 from \"./cart.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\runtime\\\\componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue\"\nexport default component.exports","export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\templateLoader.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--16-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\template.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-uni-app-loader\\\\page-meta.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./cart.vue?vue&type=template&id=2e8f6dbb&\"","var components\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./cart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./cart.vue?vue&type=script&lang=js&\"","//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\ttitle: 'Hello'\n\t\t}\n\t},\n\tonLoad() {\n\n\t},\n\tmethods: {\n\n\t}\n}\n","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./cart.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./cart.vue?vue&type=style&index=0&lang=css&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1588056462161\n var cssReload = require(\"D:/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""} File was deleted
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
1 {"version":3,"sources":["webpack:///C:/Users/Administrator/Desktop/gulu-vue/main.js","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?d486","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?527c","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?fc76","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?bfc3","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?67e0","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?54bc"],"names":["createPage","Page","components","uniDrawer","HMfilterDropdown","data","screenItems","current","text","hasIcon","showRight","indexArr","valueArr","goodsList","goods_id","img","name","price","slogan","loadingText","filterDropdownValue","filterData","filters","outData","value","JSON","stringify","onLoad","setTimeout","methods","showDrawer","e","$refs","open","closeDrawer","close","change","type","onClickItem","dropDown","console","log","confirm","index","submenu","onNavigationBarButtonTap","onReachBottom","len","length","end_goods_id","i","p","push"],"mappings":"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","file":"pages/index/index.js","sourcesContent":["import 'uni-pages';import '@dcloudio/uni-stat';\nimport Vue from 'vue'\nimport Page from './pages/index/index.vue'\ncreatePage(Page)","import { render, staticRenderFns, recyclableRender, components } from \"./index.vue?vue&type=template&id=74c52b3e&\"\nvar renderjs\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\runtime\\\\componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue\"\nexport default component.exports","export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\templateLoader.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--16-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\template.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-uni-app-loader\\\\page-meta.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./index.vue?vue&type=template&id=74c52b3e&\"","var components = {\n \"uni-drawer\": function() {\n return import(\n /* webpackChunkName: \"components/uni-drawer/uni-drawer\" */ \"@/components/uni-drawer/uni-drawer.vue\"\n )\n }\n}\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./index.vue?vue&type=script&lang=js&\"","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\timport uniDrawer from \"@/components/uni-drawer/uni-drawer.vue\";\n\timport HMfilterDropdown from \"../../components/HM-filterDropdown/HM-filterDropdown.vue\";\n\timport data from '@/common/data.js';//筛选菜单数据\n\texport default {\n\t\tcomponents: {\n\t\t\tuniDrawer,\n 'HMfilterDropdown':HMfilterDropdown\n\t\t\t},\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tscreenItems: [\n\t\t\t\t\t{current:0,text:'全部',hasIcon:false},\n\t\t\t\t\t{current:1,text:'销量',hasIcon:false},\n\t\t\t\t\t{current:2,text:'价格',hasIcon:true},\n\t\t\t\t\t{current:3,text:'折扣',hasIcon:false},\n\t\t\t\t\t{current:4,text:'筛选',hasIcon:true},\n\t\t\t\t\t],\n\t\t\t\tcurrent: 0,\n\t\t\t\tshowRight: false,\n\t\t\t\tindexArr:'',\n\t\t\t\tvalueArr:'',\n\t\t\t\t//商品数据\n\t\t\t\tgoodsList:[\n\t\t\t\t\t{ goods_id: 0, img: '/static/img/goods/p1.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },\n\t\t\t\t\t{ goods_id: 1, img: '/static/img/goods/p2.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },\n\t\t\t\t\t{ goods_id: 2, img: '/static/img/goods/p3.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },\n\t\t\t\t\t{ goods_id: 3, img: '/static/img/goods/p4.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },\n\t\t\t\t\t{ goods_id: 4, img: '/static/img/goods/p5.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },\n\t\t\t\t\t{ goods_id: 5, img: '/static/img/goods/p6.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },\n\t\t\t\t\t{ goods_id: 6, img: '/static/img/goods/p7.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },\n\t\t\t\t\t{ goods_id: 7, img: '/static/img/goods/p8.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },\n\t\t\t\t\t{ goods_id: 8, img: '/static/img/goods/p9.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' },\n\t\t\t\t\t{ goods_id: 9, img: '/static/img/goods/p10.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' }\n\t\t\t\t],\n\t\t\t\tloadingText:\"正在加载...\",\n\t\t\t\tfilterDropdownValue:[],\n\t\t\t\tfilterData:[]\n\t\t\t}\n\t\t},\n\t\tfilters: {\n\t\t  outData(value) {\n\t\t    return JSON.stringify(value);\n\t\t  }\n\t\t},\n\t\tonLoad: function () {\n\t\t\t//定时器模拟ajax异步请求数据\n\t\t\tsetTimeout(()=>{\n\t\t\t\t//传入defaultSelected的结构不能错,错了就报错运行异常。 不选中的项目传入null\n\t\t\t\tthis.filterDropdownValue = [\n\t\t\t\t\t[1,1,0],\t\t\t\t//第0个菜单选中 一级菜单的第1项,二级菜单的第1项,三级菜单的第3项\n\t\t\t\t\t[null,null],\t\t\t//第1个菜单选中 都不选中\n\t\t\t\t\t[1],\t\t\t\t\t//第2个菜单选中 一级菜单的第1项\n\t\t\t\t\t[[0],[1,2,7],[1,0]],\t//筛选菜单选中 第一个筛选的第0项,第二个筛选的第1,2,7项,第三个筛选的第1,0项\n\t\t\t\t\t[[0],[1],[1]],\t\t\t//单选菜单选中 第一个筛选的第0项,第二个筛选的第1项,第三个筛选的第1项\n\t\t\t\t];\n\t\t\t\tthis.filterData = data; \n\t\t\t},100);\n\t\t\t//模拟ajax请求子菜单数据。\n\t\t\t// setTimeout(()=>{\n\t\t\t\t//this.filterData[1].submenu[0].submenu = [{\"name\": \"附近\",\"value\": \"附近\"},{\"name\": \"1km\",\"value\": \"1km\"},{\"name\": \"2km\",\"value\": \"2km\"},{\"name\": \"3km\",\"value\": \"3km\"},{\"name\": \"4km\",\"value\": \"4km\"},{\"name\": \"5km\",\"value\": \"5km\"}];\n\t\t\t// },5000)\n\t\t},\n\t\tmethods: {\n\t\t\tshowDrawer(e) {\n\t\t\t\tthis.$refs[e].open()\n\t\t\t},\n\t\t\tcloseDrawer(e) {\n\t\t\t\tthis.$refs[e].close()\n\t\t\t},\n\t\t\tchange(e, type) {\n\t\t\t\tthis[type] = e\n\t\t\t},\n\t\t\tonClickItem(e) {\n\t\t\t\tif (this.current !== e) {\n\t\t\t\t\tthis.current = e;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdropDown(){\n\t\t\t\tconsole.log('下拉')\n\t\t\t},\n\t\t\t//接收菜单结果\n\t\t\tconfirm(e){\n\t\t\t\tthis.indexArr = e.index;\n\t\t\t\tthis.valueArr = e.value;\n\t\t\t\treturn;\n\t\t\t\tconsole.log('修改菜单');\n\t\t\t\tthis.filterData[4].submenu[1] = {\n\t\t\t\t\t\t\"name\": \"项目2\",\n\t\t\t\t\t\t\"submenu\": [\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonNavigationBarButtonTap(e) {\n\t\t\tthis.showRight = !this.showRight\n\t\t},\n\t\t//上拉加载,\n\t\tonReachBottom(){\n\t\t\tconsole.log('到底加载')\n\t\t\tlet len = this.goodsList.length;\n\t\t\tif(len>=30){\n\t\t\t\tthis.loadingText=\"~~到底了~~\";\n\t\t\t\treturn false;\n\t\t\t}else{\n\t\t\t\tthis.loadingText=\"正在加载...\";\n\t\t\t}\n\t\t\tlet end_goods_id = this.goodsList[len-1].goods_id;\n\t\t\tfor(let i=1;i<=10;i++){\n\t\t\t\tlet goods_id = end_goods_id+i;\n\t\t\t\tlet p = { goods_id: goods_id, img: '/static/img/goods/p'+(goods_id%10==0?10:goods_id%10)+'.jpg', name: '商品名称', price: '¥168', slogan:'1235人付款' };\n\t\t\t\tthis.goodsList.push(p);\n\t\t\t}\n\t\t},\n\t}\n","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./index.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./index.vue?vue&type=style&index=0&lang=scss&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1588081369894\n var cssReload = require(\"D:/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""} File was deleted
unpackage/dist/dev/.sourcemap/mp-weixin/pages/user/user.js.map
1 {"version":3,"sources":["webpack:///C:/Users/Administrator/Desktop/gulu-vue/main.js","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?effd","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?94bd","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?36f8","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?b440","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?97d3","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?17b1"],"names":["createPage","Page","data","title","onLoad","methods"],"mappings":";;;;;;;;;;kDAAA,wCAAmB;AACnB;AACA,yF;AACAA,UAAU,CAACC,aAAD,CAAV,C;;;;;;;;;;;;;ACHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiH;AACjH;AACwD;AACL;AACa;;;AAGhE;AACqK;AACrK,gBAAgB,+KAAU;AAC1B,EAAE,0EAAM;AACR,EAAE,+EAAM;AACR,EAAE,wFAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,mFAAU;AACZ;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAA8lB,CAAgB,wnBAAG,EAAC,C;;;;;;;;;;;;wFCAlnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACdC,MADc,kBACP;AACN,WAAO;AACNC,WAAK,EAAE,OADD,EAAP;;AAGA,GALa;AAMdC,QANc,oBAML;;AAER,GARa;AASdC,SAAO,EAAE,EATK,E;;;;;;;;;;;;ACVf;AAAA;AAAA;AAAA;AAAg3B,CAAgB,i3BAAG,EAAC,C;;;;;;;;;;;ACAp4B;AACA,OAAO,KAAU,EAAE,kBAKd","file":"pages/user/user.js","sourcesContent":["import 'uni-pages';import '@dcloudio/uni-stat';\nimport Vue from 'vue'\nimport Page from './pages/user/user.vue'\ncreatePage(Page)","import { render, staticRenderFns, recyclableRender, components } from \"./user.vue?vue&type=template&id=14649eca&\"\nvar renderjs\nimport script from \"./user.vue?vue&type=script&lang=js&\"\nexport * from \"./user.vue?vue&type=script&lang=js&\"\nimport style0 from \"./user.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\runtime\\\\componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue\"\nexport default component.exports","export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\templateLoader.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--16-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\template.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-uni-app-loader\\\\page-meta.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./user.vue?vue&type=template&id=14649eca&\"","var components\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./user.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./user.vue?vue&type=script&lang=js&\"","//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\ttitle: 'Hello'\n\t\t}\n\t},\n\tonLoad() {\n\n\t},\n\tmethods: {\n\n\t}\n}\n","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./user.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./user.vue?vue&type=style&index=0&lang=css&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1588056462174\n var cssReload = require(\"D:/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""} File was deleted
unpackage/dist/dev/mp-weixin/app.js
1 File was deleted
2 require('./common/runtime.js')
3 require('./common/vendor.js')
4 require('./common/main.js')
unpackage/dist/dev/mp-weixin/app.json
1 { File was deleted
2 "pages": [
3 "pages/index/index",
4 "pages/cart/cart",
5 "pages/user/user"
6 ],
7 "subPackages": [],
8 "window": {
9 "navigationBarTextStyle": "black",
10 "navigationBarTitleText": "uni-app",
11 "navigationBarBackgroundColor": "#F8F8F8",
12 "backgroundColor": "#F8F8F8"
13 },
14 "tabBar": {
15 "color": "#C0C4CC",
16 "selectedColor": "#fa436a",
17 "borderStyle": "black",
18 "backgroundColor": "#ffffff",
19 "list": [
20 {
21 "pagePath": "pages/index/index",
22 "iconPath": "static/tab-home.png",
23 "selectedIconPath": "static/tab-home-current.png",
24 "text": "首页"
25 },
26 {
27 "pagePath": "pages/cart/cart",
28 "iconPath": "static/tab-cart.png",
29 "selectedIconPath": "static/tab-cart-current.png",
30 "text": "购物车"
31 },
32 {
33 "pagePath": "pages/user/user",
34 "iconPath": "static/tab-my.png",
35 "selectedIconPath": "static/tab-my-current.png",
36 "text": "我的"
37 }
38 ]
39 },
40 "usingComponents": {},
41 "sitemapLocation": "sitemap80.json"
42 }
unpackage/dist/dev/mp-weixin/app.wxss
1 @import './common/main.wxss'; File was deleted
2 1 @import './common/main.wxss';
unpackage/dist/dev/mp-weixin/common/main.js
1 (global["webpackJsonp"] = global["webpackJsonp"] || []).push([["common/main"],[ File was deleted
2 /* 0 */
3 /*!*******************************************************!*\
4 !*** C:/Users/Administrator/Desktop/gulu-vue/main.js ***!
5 \*******************************************************/
6 /*! no static exports found */
7 /***/ (function(module, exports, __webpack_require__) {
8
9 "use strict";
10 /* WEBPACK VAR INJECTION */(function(createApp) {__webpack_require__(/*! uni-pages */ 4);__webpack_require__(/*! @dcloudio/uni-stat */ 5);var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 2));
11 var _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 9));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}
12
13 _vue.default.config.productionTip = false;
14
15 _App.default.mpType = 'app';
16
17 var app = new _vue.default(_objectSpread({},
18 _App.default));
19
20 createApp(app).$mount();
21 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["createApp"]))
22
23 /***/ }),
24 /* 1 */,
25 /* 2 */,
26 /* 3 */,
27 /* 4 */,
28 /* 5 */,
29 /* 6 */,
30 /* 7 */,
31 /* 8 */,
32 /* 9 */
33 /*!*******************************************************!*\
34 !*** C:/Users/Administrator/Desktop/gulu-vue/App.vue ***!
35 \*******************************************************/
36 /*! no static exports found */
37 /***/ (function(module, __webpack_exports__, __webpack_require__) {
38
39 "use strict";
40 __webpack_require__.r(__webpack_exports__);
41 /* harmony import */ var _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./App.vue?vue&type=script&lang=js& */ 10);
42 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
43 /* harmony import */ var _App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./App.vue?vue&type=style&index=0&lang=css& */ 12);
44 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 14);
45 var render, staticRenderFns, recyclableRender, components
46 var renderjs
47
48
49
50
51
52 /* normalize component */
53
54 var component = Object(_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
55 _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"],
56 render,
57 staticRenderFns,
58 false,
59 null,
60 null,
61 null,
62 false,
63 components,
64 renderjs
65 )
66
67 component.options.__file = "C:/Users/Administrator/Desktop/gulu-vue/App.vue"
68 /* harmony default export */ __webpack_exports__["default"] = (component.exports);
69
70 /***/ }),
71 /* 10 */
72 /*!********************************************************************************!*\
73 !*** C:/Users/Administrator/Desktop/gulu-vue/App.vue?vue&type=script&lang=js& ***!
74 \********************************************************************************/
75 /*! no static exports found */
76 /***/ (function(module, __webpack_exports__, __webpack_require__) {
77
78 "use strict";
79 __webpack_require__.r(__webpack_exports__);
80 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=script&lang=js& */ 11);
81 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
82 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
83 /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a);
84
85 /***/ }),
86 /* 11 */
87 /*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
88 !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/App.vue?vue&type=script&lang=js& ***!
89 \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
90 /*! no static exports found */
91 /***/ (function(module, exports, __webpack_require__) {
92
93 "use strict";
94 Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default =
95 {
96 onLaunch: function onLaunch() {
97 console.log('App Launch');
98 },
99 onShow: function onShow() {
100 console.log('App Show');
101 },
102 onHide: function onHide() {
103 console.log('App Hide');
104 } };exports.default = _default;
105
106 /***/ }),
107 /* 12 */
108 /*!****************************************************************************************!*\
109 !*** C:/Users/Administrator/Desktop/gulu-vue/App.vue?vue&type=style&index=0&lang=css& ***!
110 \****************************************************************************************/
111 /*! no static exports found */
112 /***/ (function(module, __webpack_exports__, __webpack_require__) {
113
114 "use strict";
115 __webpack_require__.r(__webpack_exports__);
116 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=css& */ 13);
117 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
118 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
119 /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
120
121 /***/ }),
122 /* 13 */
123 /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
124 !*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/App.vue?vue&type=style&index=0&lang=css& ***!
125 \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
126 /*! no static exports found */
127 /***/ (function(module, exports, __webpack_require__) {
128
129 // extracted by mini-css-extract-plugin
130 if(false) { var cssReload; }
131
132
133 /***/ })
134 ],[[0,"common/runtime","common/vendor"]]]);
135 //# sourceMappingURL=../../.sourcemap/mp-weixin/common/main.js.map
unpackage/dist/dev/mp-weixin/common/main.wxss
1 File was deleted
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 /*每个页面公共css */
17
18 1
unpackage/dist/dev/mp-weixin/common/runtime.js
1 File was deleted
2 !function(){try{var a=Function("return this")();a&&!a.Math&&(Object.assign(a,{isFinite:isFinite,Array:Array,Date:Date,Error:Error,Function:Function,Math:Math,Object:Object,RegExp:RegExp,String:String,TypeError:TypeError,setTimeout:setTimeout,clearTimeout:clearTimeout,setInterval:setInterval,clearInterval:clearInterval}),"undefined"!=typeof Reflect&&(a.Reflect=Reflect))}catch(a){}}();
3 /******/ (function(modules) { // webpackBootstrap
4 /******/ // install a JSONP callback for chunk loading
5 /******/ function webpackJsonpCallback(data) {
6 /******/ var chunkIds = data[0];
7 /******/ var moreModules = data[1];
8 /******/ var executeModules = data[2];
9 /******/
10 /******/ // add "moreModules" to the modules object,
11 /******/ // then flag all "chunkIds" as loaded and fire callback
12 /******/ var moduleId, chunkId, i = 0, resolves = [];
13 /******/ for(;i < chunkIds.length; i++) {
14 /******/ chunkId = chunkIds[i];
15 /******/ if(installedChunks[chunkId]) {
16 /******/ resolves.push(installedChunks[chunkId][0]);
17 /******/ }
18 /******/ installedChunks[chunkId] = 0;
19 /******/ }
20 /******/ for(moduleId in moreModules) {
21 /******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
22 /******/ modules[moduleId] = moreModules[moduleId];
23 /******/ }
24 /******/ }
25 /******/ if(parentJsonpFunction) parentJsonpFunction(data);
26 /******/
27 /******/ while(resolves.length) {
28 /******/ resolves.shift()();
29 /******/ }
30 /******/
31 /******/ // add entry modules from loaded chunk to deferred list
32 /******/ deferredModules.push.apply(deferredModules, executeModules || []);
33 /******/
34 /******/ // run deferred modules when all chunks ready
35 /******/ return checkDeferredModules();
36 /******/ };
37 /******/ function checkDeferredModules() {
38 /******/ var result;
39 /******/ for(var i = 0; i < deferredModules.length; i++) {
40 /******/ var deferredModule = deferredModules[i];
41 /******/ var fulfilled = true;
42 /******/ for(var j = 1; j < deferredModule.length; j++) {
43 /******/ var depId = deferredModule[j];
44 /******/ if(installedChunks[depId] !== 0) fulfilled = false;
45 /******/ }
46 /******/ if(fulfilled) {
47 /******/ deferredModules.splice(i--, 1);
48 /******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
49 /******/ }
50 /******/ }
51 /******/ return result;
52 /******/ }
53 /******/
54 /******/ // The module cache
55 /******/ var installedModules = {};
56 /******/
57 /******/ // object to store loaded CSS chunks
58 /******/ var installedCssChunks = {
59 /******/ "common/runtime": 0
60 /******/ }
61 /******/
62 /******/ // object to store loaded and loading chunks
63 /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
64 /******/ // Promise = chunk loading, 0 = chunk loaded
65 /******/ var installedChunks = {
66 /******/ "common/runtime": 0
67 /******/ };
68 /******/
69 /******/ var deferredModules = [];
70 /******/
71 /******/ // script path function
72 /******/ function jsonpScriptSrc(chunkId) {
73 /******/ return __webpack_require__.p + "" + chunkId + ".js"
74 /******/ }
75 /******/
76 /******/ // The require function
77 /******/ function __webpack_require__(moduleId) {
78 /******/
79 /******/ // Check if module is in cache
80 /******/ if(installedModules[moduleId]) {
81 /******/ return installedModules[moduleId].exports;
82 /******/ }
83 /******/ // Create a new module (and put it into the cache)
84 /******/ var module = installedModules[moduleId] = {
85 /******/ i: moduleId,
86 /******/ l: false,
87 /******/ exports: {}
88 /******/ };
89 /******/
90 /******/ // Execute the module function
91 /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
92 /******/
93 /******/ // Flag the module as loaded
94 /******/ module.l = true;
95 /******/
96 /******/ // Return the exports of the module
97 /******/ return module.exports;
98 /******/ }
99 /******/
100 /******/ // This file contains only the entry chunk.
101 /******/ // The chunk loading function for additional chunks
102 /******/ __webpack_require__.e = function requireEnsure(chunkId) {
103 /******/ var promises = [];
104 /******/
105 /******/
106 /******/ // mini-css-extract-plugin CSS loading
107 /******/ var cssChunks = {"components/HM-filterDropdown/HM-filterDropdown":1,"components/uni-drawer/uni-drawer":1};
108 /******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
109 /******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
110 /******/ promises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {
111 /******/ var href = "" + ({"components/HM-filterDropdown/HM-filterDropdown":"components/HM-filterDropdown/HM-filterDropdown","components/uni-drawer/uni-drawer":"components/uni-drawer/uni-drawer"}[chunkId]||chunkId) + ".wxss";
112 /******/ var fullhref = __webpack_require__.p + href;
113 /******/ var existingLinkTags = document.getElementsByTagName("link");
114 /******/ for(var i = 0; i < existingLinkTags.length; i++) {
115 /******/ var tag = existingLinkTags[i];
116 /******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");
117 /******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return resolve();
118 /******/ }
119 /******/ var existingStyleTags = document.getElementsByTagName("style");
120 /******/ for(var i = 0; i < existingStyleTags.length; i++) {
121 /******/ var tag = existingStyleTags[i];
122 /******/ var dataHref = tag.getAttribute("data-href");
123 /******/ if(dataHref === href || dataHref === fullhref) return resolve();
124 /******/ }
125 /******/ var linkTag = document.createElement("link");
126 /******/ linkTag.rel = "stylesheet";
127 /******/ linkTag.type = "text/css";
128 /******/ linkTag.onload = resolve;
129 /******/ linkTag.onerror = function(event) {
130 /******/ var request = event && event.target && event.target.src || fullhref;
131 /******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + request + ")");
132 /******/ err.code = "CSS_CHUNK_LOAD_FAILED";
133 /******/ err.request = request;
134 /******/ delete installedCssChunks[chunkId]
135 /******/ linkTag.parentNode.removeChild(linkTag)
136 /******/ reject(err);
137 /******/ };
138 /******/ linkTag.href = fullhref;
139 /******/
140 /******/ var head = document.getElementsByTagName("head")[0];
141 /******/ head.appendChild(linkTag);
142 /******/ }).then(function() {
143 /******/ installedCssChunks[chunkId] = 0;
144 /******/ }));
145 /******/ }
146 /******/
147 /******/ // JSONP chunk loading for javascript
148 /******/
149 /******/ var installedChunkData = installedChunks[chunkId];
150 /******/ if(installedChunkData !== 0) { // 0 means "already installed".
151 /******/
152 /******/ // a Promise means "currently loading".
153 /******/ if(installedChunkData) {
154 /******/ promises.push(installedChunkData[2]);
155 /******/ } else {
156 /******/ // setup Promise in chunk cache
157 /******/ var promise = new Promise(function(resolve, reject) {
158 /******/ installedChunkData = installedChunks[chunkId] = [resolve, reject];
159 /******/ });
160 /******/ promises.push(installedChunkData[2] = promise);
161 /******/
162 /******/ // start chunk loading
163 /******/ var script = document.createElement('script');
164 /******/ var onScriptComplete;
165 /******/
166 /******/ script.charset = 'utf-8';
167 /******/ script.timeout = 120;
168 /******/ if (__webpack_require__.nc) {
169 /******/ script.setAttribute("nonce", __webpack_require__.nc);
170 /******/ }
171 /******/ script.src = jsonpScriptSrc(chunkId);
172 /******/
173 /******/ onScriptComplete = function (event) {
174 /******/ // avoid mem leaks in IE.
175 /******/ script.onerror = script.onload = null;
176 /******/ clearTimeout(timeout);
177 /******/ var chunk = installedChunks[chunkId];
178 /******/ if(chunk !== 0) {
179 /******/ if(chunk) {
180 /******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type);
181 /******/ var realSrc = event && event.target && event.target.src;
182 /******/ var error = new Error('Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')');
183 /******/ error.type = errorType;
184 /******/ error.request = realSrc;
185 /******/ chunk[1](error);
186 /******/ }
187 /******/ installedChunks[chunkId] = undefined;
188 /******/ }
189 /******/ };
190 /******/ var timeout = setTimeout(function(){
191 /******/ onScriptComplete({ type: 'timeout', target: script });
192 /******/ }, 120000);
193 /******/ script.onerror = script.onload = onScriptComplete;
194 /******/ document.head.appendChild(script);
195 /******/ }
196 /******/ }
197 /******/ return Promise.all(promises);
198 /******/ };
199 /******/
200 /******/ // expose the modules object (__webpack_modules__)
201 /******/ __webpack_require__.m = modules;
202 /******/
203 /******/ // expose the module cache
204 /******/ __webpack_require__.c = installedModules;
205 /******/
206 /******/ // define getter function for harmony exports
207 /******/ __webpack_require__.d = function(exports, name, getter) {
208 /******/ if(!__webpack_require__.o(exports, name)) {
209 /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
210 /******/ }
211 /******/ };
212 /******/
213 /******/ // define __esModule on exports
214 /******/ __webpack_require__.r = function(exports) {
215 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
216 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
217 /******/ }
218 /******/ Object.defineProperty(exports, '__esModule', { value: true });
219 /******/ };
220 /******/
221 /******/ // create a fake namespace object
222 /******/ // mode & 1: value is a module id, require it
223 /******/ // mode & 2: merge all properties of value into the ns
224 /******/ // mode & 4: return value when already ns object
225 /******/ // mode & 8|1: behave like require
226 /******/ __webpack_require__.t = function(value, mode) {
227 /******/ if(mode & 1) value = __webpack_require__(value);
228 /******/ if(mode & 8) return value;
229 /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
230 /******/ var ns = Object.create(null);
231 /******/ __webpack_require__.r(ns);
232 /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
233 /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
234 /******/ return ns;
235 /******/ };
236 /******/
237 /******/ // getDefaultExport function for compatibility with non-harmony modules
238 /******/ __webpack_require__.n = function(module) {
239 /******/ var getter = module && module.__esModule ?
240 /******/ function getDefault() { return module['default']; } :
241 /******/ function getModuleExports() { return module; };
242 /******/ __webpack_require__.d(getter, 'a', getter);
243 /******/ return getter;
244 /******/ };
245 /******/
246 /******/ // Object.prototype.hasOwnProperty.call
247 /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
248 /******/
249 /******/ // __webpack_public_path__
250 /******/ __webpack_require__.p = "/";
251 /******/
252 /******/ // on error function for async loading
253 /******/ __webpack_require__.oe = function(err) { console.error(err); throw err; };
254 /******/
255 /******/ var jsonpArray = global["webpackJsonp"] = global["webpackJsonp"] || [];
256 /******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
257 /******/ jsonpArray.push = webpackJsonpCallback;
258 /******/ jsonpArray = jsonpArray.slice();
259 /******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
260 /******/ var parentJsonpFunction = oldJsonpFunction;
261 /******/
262 /******/
263 /******/ // run deferred modules from other chunks
264 /******/ checkDeferredModules();
265 /******/ })
266 /************************************************************************/
267 /******/ ([]);
268 //# sourceMappingURL=../../.sourcemap/mp-weixin/common/runtime.js.map
269
unpackage/dist/dev/mp-weixin/common/vendor.js
1 (global["webpackJsonp"] = global["webpackJsonp"] || []).push([["common/vendor"],[ File was deleted
2 /* 0 */,
3 /* 1 */
4 /*!************************************************************!*\
5 !*** ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js ***!
6 \************************************************************/
7 /*! no static exports found */
8 /***/ (function(module, exports, __webpack_require__) {
9
10 "use strict";
11 Object.defineProperty(exports, "__esModule", { value: true });exports.createApp = createApp;exports.createComponent = createComponent;exports.createPage = createPage;exports.default = void 0;var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 2));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _slicedToArray(arr, i) {return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();}function _nonIterableRest() {throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _iterableToArrayLimit(arr, i) {if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"] != null) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}function _arrayWithHoles(arr) {if (Array.isArray(arr)) return arr;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}function _toConsumableArray(arr) {return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();}function _nonIterableSpread() {throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === "string") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === "Object" && o.constructor) n = o.constructor.name;if (n === "Map" || n === "Set") return Array.from(n);if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _iterableToArray(iter) {if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);}function _arrayWithoutHoles(arr) {if (Array.isArray(arr)) return _arrayLikeToArray(arr);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;}
12
13 var _toString = Object.prototype.toString;
14 var hasOwnProperty = Object.prototype.hasOwnProperty;
15
16 function isFn(fn) {
17 return typeof fn === 'function';
18 }
19
20 function isStr(str) {
21 return typeof str === 'string';
22 }
23
24 function isPlainObject(obj) {
25 return _toString.call(obj) === '[object Object]';
26 }
27
28 function hasOwn(obj, key) {
29 return hasOwnProperty.call(obj, key);
30 }
31
32 function noop() {}
33
34 /**
35 * Create a cached version of a pure function.
36 */
37 function cached(fn) {
38 var cache = Object.create(null);
39 return function cachedFn(str) {
40 var hit = cache[str];
41 return hit || (cache[str] = fn(str));
42 };
43 }
44
45 /**
46 * Camelize a hyphen-delimited string.
47 */
48 var camelizeRE = /-(\w)/g;
49 var camelize = cached(function (str) {
50 return str.replace(camelizeRE, function (_, c) {return c ? c.toUpperCase() : '';});
51 });
52
53 var HOOKS = [
54 'invoke',
55 'success',
56 'fail',
57 'complete',
58 'returnValue'];
59
60
61 var globalInterceptors = {};
62 var scopedInterceptors = {};
63
64 function mergeHook(parentVal, childVal) {
65 var res = childVal ?
66 parentVal ?
67 parentVal.concat(childVal) :
68 Array.isArray(childVal) ?
69 childVal : [childVal] :
70 parentVal;
71 return res ?
72 dedupeHooks(res) :
73 res;
74 }
75
76 function dedupeHooks(hooks) {
77 var res = [];
78 for (var i = 0; i < hooks.length; i++) {
79 if (res.indexOf(hooks[i]) === -1) {
80 res.push(hooks[i]);
81 }
82 }
83 return res;
84 }
85
86 function removeHook(hooks, hook) {
87 var index = hooks.indexOf(hook);
88 if (index !== -1) {
89 hooks.splice(index, 1);
90 }
91 }
92
93 function mergeInterceptorHook(interceptor, option) {
94 Object.keys(option).forEach(function (hook) {
95 if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {
96 interceptor[hook] = mergeHook(interceptor[hook], option[hook]);
97 }
98 });
99 }
100
101 function removeInterceptorHook(interceptor, option) {
102 if (!interceptor || !option) {
103 return;
104 }
105 Object.keys(option).forEach(function (hook) {
106 if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {
107 removeHook(interceptor[hook], option[hook]);
108 }
109 });
110 }
111
112 function addInterceptor(method, option) {
113 if (typeof method === 'string' && isPlainObject(option)) {
114 mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option);
115 } else if (isPlainObject(method)) {
116 mergeInterceptorHook(globalInterceptors, method);
117 }
118 }
119
120 function removeInterceptor(method, option) {
121 if (typeof method === 'string') {
122 if (isPlainObject(option)) {
123 removeInterceptorHook(scopedInterceptors[method], option);
124 } else {
125 delete scopedInterceptors[method];
126 }
127 } else if (isPlainObject(method)) {
128 removeInterceptorHook(globalInterceptors, method);
129 }
130 }
131
132 function wrapperHook(hook) {
133 return function (data) {
134 return hook(data) || data;
135 };
136 }
137
138 function isPromise(obj) {
139 return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
140 }
141
142 function queue(hooks, data) {
143 var promise = false;
144 for (var i = 0; i < hooks.length; i++) {
145 var hook = hooks[i];
146 if (promise) {
147 promise = Promise.then(wrapperHook(hook));
148 } else {
149 var res = hook(data);
150 if (isPromise(res)) {
151 promise = Promise.resolve(res);
152 }
153 if (res === false) {
154 return {
155 then: function then() {} };
156
157 }
158 }
159 }
160 return promise || {
161 then: function then(callback) {
162 return callback(data);
163 } };
164
165 }
166
167 function wrapperOptions(interceptor) {var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
168 ['success', 'fail', 'complete'].forEach(function (name) {
169 if (Array.isArray(interceptor[name])) {
170 var oldCallback = options[name];
171 options[name] = function callbackInterceptor(res) {
172 queue(interceptor[name], res).then(function (res) {
173 /* eslint-disable no-mixed-operators */
174 return isFn(oldCallback) && oldCallback(res) || res;
175 });
176 };
177 }
178 });
179 return options;
180 }
181
182 function wrapperReturnValue(method, returnValue) {
183 var returnValueHooks = [];
184 if (Array.isArray(globalInterceptors.returnValue)) {
185 returnValueHooks.push.apply(returnValueHooks, _toConsumableArray(globalInterceptors.returnValue));
186 }
187 var interceptor = scopedInterceptors[method];
188 if (interceptor && Array.isArray(interceptor.returnValue)) {
189 returnValueHooks.push.apply(returnValueHooks, _toConsumableArray(interceptor.returnValue));
190 }
191 returnValueHooks.forEach(function (hook) {
192 returnValue = hook(returnValue) || returnValue;
193 });
194 return returnValue;
195 }
196
197 function getApiInterceptorHooks(method) {
198 var interceptor = Object.create(null);
199 Object.keys(globalInterceptors).forEach(function (hook) {
200 if (hook !== 'returnValue') {
201 interceptor[hook] = globalInterceptors[hook].slice();
202 }
203 });
204 var scopedInterceptor = scopedInterceptors[method];
205 if (scopedInterceptor) {
206 Object.keys(scopedInterceptor).forEach(function (hook) {
207 if (hook !== 'returnValue') {
208 interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);
209 }
210 });
211 }
212 return interceptor;
213 }
214
215 function invokeApi(method, api, options) {for (var _len = arguments.length, params = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {params[_key - 3] = arguments[_key];}
216 var interceptor = getApiInterceptorHooks(method);
217 if (interceptor && Object.keys(interceptor).length) {
218 if (Array.isArray(interceptor.invoke)) {
219 var res = queue(interceptor.invoke, options);
220 return res.then(function (options) {
221 return api.apply(void 0, [wrapperOptions(interceptor, options)].concat(params));
222 });
223 } else {
224 return api.apply(void 0, [wrapperOptions(interceptor, options)].concat(params));
225 }
226 }
227 return api.apply(void 0, [options].concat(params));
228 }
229
230 var promiseInterceptor = {
231 returnValue: function returnValue(res) {
232 if (!isPromise(res)) {
233 return res;
234 }
235 return res.then(function (res) {
236 return res[1];
237 }).catch(function (res) {
238 return res[0];
239 });
240 } };
241
242
243 var SYNC_API_RE =
244 /^\$|sendNativeEvent|restoreGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/;
245
246 var CONTEXT_API_RE = /^create|Manager$/;
247
248 // Context例外情况
249 var CONTEXT_API_RE_EXC = ['createBLEConnection'];
250
251 // 同步例外情况
252 var ASYNC_API = ['createBLEConnection'];
253
254 var CALLBACK_API_RE = /^on|^off/;
255
256 function isContextApi(name) {
257 return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1;
258 }
259 function isSyncApi(name) {
260 return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1;
261 }
262
263 function isCallbackApi(name) {
264 return CALLBACK_API_RE.test(name) && name !== 'onPush';
265 }
266
267 function handlePromise(promise) {
268 return promise.then(function (data) {
269 return [null, data];
270 }).
271 catch(function (err) {return [err];});
272 }
273
274 function shouldPromise(name) {
275 if (
276 isContextApi(name) ||
277 isSyncApi(name) ||
278 isCallbackApi(name))
279 {
280 return false;
281 }
282 return true;
283 }
284
285 /* eslint-disable no-extend-native */
286 if (!Promise.prototype.finally) {
287 Promise.prototype.finally = function (callback) {
288 var promise = this.constructor;
289 return this.then(
290 function (value) {return promise.resolve(callback()).then(function () {return value;});},
291 function (reason) {return promise.resolve(callback()).then(function () {
292 throw reason;
293 });});
294
295 };
296 }
297
298 function promisify(name, api) {
299 if (!shouldPromise(name)) {
300 return api;
301 }
302 return function promiseApi() {var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {params[_key2 - 1] = arguments[_key2];}
303 if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) {
304 return wrapperReturnValue(name, invokeApi.apply(void 0, [name, api, options].concat(params)));
305 }
306 return wrapperReturnValue(name, handlePromise(new Promise(function (resolve, reject) {
307 invokeApi.apply(void 0, [name, api, Object.assign({}, options, {
308 success: resolve,
309 fail: reject })].concat(
310 params));
311 })));
312 };
313 }
314
315 var EPS = 1e-4;
316 var BASE_DEVICE_WIDTH = 750;
317 var isIOS = false;
318 var deviceWidth = 0;
319 var deviceDPR = 0;
320
321 function checkDeviceWidth() {var _wx$getSystemInfoSync =
322
323
324
325
326 wx.getSystemInfoSync(),platform = _wx$getSystemInfoSync.platform,pixelRatio = _wx$getSystemInfoSync.pixelRatio,windowWidth = _wx$getSystemInfoSync.windowWidth; // uni=>wx runtime 编译目标是 uni 对象,内部不允许直接使用 uni
327
328 deviceWidth = windowWidth;
329 deviceDPR = pixelRatio;
330 isIOS = platform === 'ios';
331 }
332
333 function upx2px(number, newDeviceWidth) {
334 if (deviceWidth === 0) {
335 checkDeviceWidth();
336 }
337
338 number = Number(number);
339 if (number === 0) {
340 return 0;
341 }
342 var result = number / BASE_DEVICE_WIDTH * (newDeviceWidth || deviceWidth);
343 if (result < 0) {
344 result = -result;
345 }
346 result = Math.floor(result + EPS);
347 if (result === 0) {
348 if (deviceDPR === 1 || !isIOS) {
349 return 1;
350 } else {
351 return 0.5;
352 }
353 }
354 return number < 0 ? -result : result;
355 }
356
357 var interceptors = {
358 promiseInterceptor: promiseInterceptor };
359
360
361 var baseApi = /*#__PURE__*/Object.freeze({
362 __proto__: null,
363 upx2px: upx2px,
364 addInterceptor: addInterceptor,
365 removeInterceptor: removeInterceptor,
366 interceptors: interceptors });
367
368
369 var previewImage = {
370 args: function args(fromArgs) {
371 var currentIndex = parseInt(fromArgs.current);
372 if (isNaN(currentIndex)) {
373 return;
374 }
375 var urls = fromArgs.urls;
376 if (!Array.isArray(urls)) {
377 return;
378 }
379 var len = urls.length;
380 if (!len) {
381 return;
382 }
383 if (currentIndex < 0) {
384 currentIndex = 0;
385 } else if (currentIndex >= len) {
386 currentIndex = len - 1;
387 }
388 if (currentIndex > 0) {
389 fromArgs.current = urls[currentIndex];
390 fromArgs.urls = urls.filter(
391 function (item, index) {return index < currentIndex ? item !== urls[currentIndex] : true;});
392
393 } else {
394 fromArgs.current = urls[0];
395 }
396 return {
397 indicator: false,
398 loop: false };
399
400 } };
401
402
403 function addSafeAreaInsets(result) {
404 if (result.safeArea) {
405 var safeArea = result.safeArea;
406 result.safeAreaInsets = {
407 top: safeArea.top,
408 left: safeArea.left,
409 right: result.windowWidth - safeArea.right,
410 bottom: result.windowHeight - safeArea.bottom };
411
412 }
413 }
414 var protocols = {
415 previewImage: previewImage,
416 getSystemInfo: {
417 returnValue: addSafeAreaInsets },
418
419 getSystemInfoSync: {
420 returnValue: addSafeAreaInsets } };
421
422
423 var todos = [
424 'vibrate'];
425
426 var canIUses = [];
427
428 var CALLBACKS = ['success', 'fail', 'cancel', 'complete'];
429
430 function processCallback(methodName, method, returnValue) {
431 return function (res) {
432 return method(processReturnValue(methodName, res, returnValue));
433 };
434 }
435
436 function processArgs(methodName, fromArgs) {var argsOption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};var returnValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};var keepFromArgs = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
437 if (isPlainObject(fromArgs)) {// 一般 api 的参数解析
438 var toArgs = keepFromArgs === true ? fromArgs : {}; // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值
439 if (isFn(argsOption)) {
440 argsOption = argsOption(fromArgs, toArgs) || {};
441 }
442 for (var key in fromArgs) {
443 if (hasOwn(argsOption, key)) {
444 var keyOption = argsOption[key];
445 if (isFn(keyOption)) {
446 keyOption = keyOption(fromArgs[key], fromArgs, toArgs);
447 }
448 if (!keyOption) {// 不支持的参数
449 console.warn("\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F ".concat(methodName, "\u6682\u4E0D\u652F\u6301").concat(key));
450 } else if (isStr(keyOption)) {// 重写参数 key
451 toArgs[keyOption] = fromArgs[key];
452 } else if (isPlainObject(keyOption)) {// {name:newName,value:value}可重新指定参数 key:value
453 toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;
454 }
455 } else if (CALLBACKS.indexOf(key) !== -1) {
456 toArgs[key] = processCallback(methodName, fromArgs[key], returnValue);
457 } else {
458 if (!keepFromArgs) {
459 toArgs[key] = fromArgs[key];
460 }
461 }
462 }
463 return toArgs;
464 } else if (isFn(fromArgs)) {
465 fromArgs = processCallback(methodName, fromArgs, returnValue);
466 }
467 return fromArgs;
468 }
469
470 function processReturnValue(methodName, res, returnValue) {var keepReturnValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
471 if (isFn(protocols.returnValue)) {// 处理通用 returnValue
472 res = protocols.returnValue(methodName, res);
473 }
474 return processArgs(methodName, res, returnValue, {}, keepReturnValue);
475 }
476
477 function wrapper(methodName, method) {
478 if (hasOwn(protocols, methodName)) {
479 var protocol = protocols[methodName];
480 if (!protocol) {// 暂不支持的 api
481 return function () {
482 console.error("\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F \u6682\u4E0D\u652F\u6301".concat(methodName));
483 };
484 }
485 return function (arg1, arg2) {// 目前 api 最多两个参数
486 var options = protocol;
487 if (isFn(protocol)) {
488 options = protocol(arg1);
489 }
490
491 arg1 = processArgs(methodName, arg1, options.args, options.returnValue);
492
493 var args = [arg1];
494 if (typeof arg2 !== 'undefined') {
495 args.push(arg2);
496 }
497 var returnValue = wx[options.name || methodName].apply(wx, args);
498 if (isSyncApi(methodName)) {// 同步 api
499 return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName));
500 }
501 return returnValue;
502 };
503 }
504 return method;
505 }
506
507 var todoApis = Object.create(null);
508
509 var TODOS = [
510 'onTabBarMidButtonTap',
511 'subscribePush',
512 'unsubscribePush',
513 'onPush',
514 'offPush',
515 'share'];
516
517
518 function createTodoApi(name) {
519 return function todoApi(_ref)
520
521
522 {var fail = _ref.fail,complete = _ref.complete;
523 var res = {
524 errMsg: "".concat(name, ":fail:\u6682\u4E0D\u652F\u6301 ").concat(name, " \u65B9\u6CD5") };
525
526 isFn(fail) && fail(res);
527 isFn(complete) && complete(res);
528 };
529 }
530
531 TODOS.forEach(function (name) {
532 todoApis[name] = createTodoApi(name);
533 });
534
535 var providers = {
536 oauth: ['weixin'],
537 share: ['weixin'],
538 payment: ['wxpay'],
539 push: ['weixin'] };
540
541
542 function getProvider(_ref2)
543
544
545
546
547 {var service = _ref2.service,success = _ref2.success,fail = _ref2.fail,complete = _ref2.complete;
548 var res = false;
549 if (providers[service]) {
550 res = {
551 errMsg: 'getProvider:ok',
552 service: service,
553 provider: providers[service] };
554
555 isFn(success) && success(res);
556 } else {
557 res = {
558 errMsg: 'getProvider:fail:服务[' + service + ']不存在' };
559
560 isFn(fail) && fail(res);
561 }
562 isFn(complete) && complete(res);
563 }
564
565 var extraApi = /*#__PURE__*/Object.freeze({
566 __proto__: null,
567 getProvider: getProvider });
568
569
570 var getEmitter = function () {
571 if (typeof getUniEmitter === 'function') {
572 /* eslint-disable no-undef */
573 return getUniEmitter;
574 }
575 var Emitter;
576 return function getUniEmitter() {
577 if (!Emitter) {
578 Emitter = new _vue.default();
579 }
580 return Emitter;
581 };
582 }();
583
584 function apply(ctx, method, args) {
585 return ctx[method].apply(ctx, args);
586 }
587
588 function $on() {
589 return apply(getEmitter(), '$on', Array.prototype.slice.call(arguments));
590 }
591 function $off() {
592 return apply(getEmitter(), '$off', Array.prototype.slice.call(arguments));
593 }
594 function $once() {
595 return apply(getEmitter(), '$once', Array.prototype.slice.call(arguments));
596 }
597 function $emit() {
598 return apply(getEmitter(), '$emit', Array.prototype.slice.call(arguments));
599 }
600
601 var eventApi = /*#__PURE__*/Object.freeze({
602 __proto__: null,
603 $on: $on,
604 $off: $off,
605 $once: $once,
606 $emit: $emit });
607
608
609 var api = /*#__PURE__*/Object.freeze({
610 __proto__: null });
611
612
613 var MPPage = Page;
614 var MPComponent = Component;
615
616 var customizeRE = /:/g;
617
618 var customize = cached(function (str) {
619 return camelize(str.replace(customizeRE, '-'));
620 });
621
622 function initTriggerEvent(mpInstance) {
623 {
624 if (!wx.canIUse('nextTick')) {
625 return;
626 }
627 }
628 var oldTriggerEvent = mpInstance.triggerEvent;
629 mpInstance.triggerEvent = function (event) {for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {args[_key3 - 1] = arguments[_key3];}
630 return oldTriggerEvent.apply(mpInstance, [customize(event)].concat(args));
631 };
632 }
633
634 function initHook(name, options) {
635 var oldHook = options[name];
636 if (!oldHook) {
637 options[name] = function () {
638 initTriggerEvent(this);
639 };
640 } else {
641 options[name] = function () {
642 initTriggerEvent(this);for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {args[_key4] = arguments[_key4];}
643 return oldHook.apply(this, args);
644 };
645 }
646 }
647
648 Page = function Page() {var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
649 initHook('onLoad', options);
650 return MPPage(options);
651 };
652
653 Component = function Component() {var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
654 initHook('created', options);
655 return MPComponent(options);
656 };
657
658 var PAGE_EVENT_HOOKS = [
659 'onPullDownRefresh',
660 'onReachBottom',
661 'onShareAppMessage',
662 'onPageScroll',
663 'onResize',
664 'onTabItemTap'];
665
666
667 function initMocks(vm, mocks) {
668 var mpInstance = vm.$mp[vm.mpType];
669 mocks.forEach(function (mock) {
670 if (hasOwn(mpInstance, mock)) {
671 vm[mock] = mpInstance[mock];
672 }
673 });
674 }
675
676 function hasHook(hook, vueOptions) {
677 if (!vueOptions) {
678 return true;
679 }
680
681 if (_vue.default.options && Array.isArray(_vue.default.options[hook])) {
682 return true;
683 }
684
685 vueOptions = vueOptions.default || vueOptions;
686
687 if (isFn(vueOptions)) {
688 if (isFn(vueOptions.extendOptions[hook])) {
689 return true;
690 }
691 if (vueOptions.super &&
692 vueOptions.super.options &&
693 Array.isArray(vueOptions.super.options[hook])) {
694 return true;
695 }
696 return false;
697 }
698
699 if (isFn(vueOptions[hook])) {
700 return true;
701 }
702 var mixins = vueOptions.mixins;
703 if (Array.isArray(mixins)) {
704 return !!mixins.find(function (mixin) {return hasHook(hook, mixin);});
705 }
706 }
707
708 function initHooks(mpOptions, hooks, vueOptions) {
709 hooks.forEach(function (hook) {
710 if (hasHook(hook, vueOptions)) {
711 mpOptions[hook] = function (args) {
712 return this.$vm && this.$vm.__call_hook(hook, args);
713 };
714 }
715 });
716 }
717
718 function initVueComponent(Vue, vueOptions) {
719 vueOptions = vueOptions.default || vueOptions;
720 var VueComponent;
721 if (isFn(vueOptions)) {
722 VueComponent = vueOptions;
723 vueOptions = VueComponent.extendOptions;
724 } else {
725 VueComponent = Vue.extend(vueOptions);
726 }
727 return [VueComponent, vueOptions];
728 }
729
730 function initSlots(vm, vueSlots) {
731 if (Array.isArray(vueSlots) && vueSlots.length) {
732 var $slots = Object.create(null);
733 vueSlots.forEach(function (slotName) {
734 $slots[slotName] = true;
735 });
736 vm.$scopedSlots = vm.$slots = $slots;
737 }
738 }
739
740 function initVueIds(vueIds, mpInstance) {
741 vueIds = (vueIds || '').split(',');
742 var len = vueIds.length;
743
744 if (len === 1) {
745 mpInstance._$vueId = vueIds[0];
746 } else if (len === 2) {
747 mpInstance._$vueId = vueIds[0];
748 mpInstance._$vuePid = vueIds[1];
749 }
750 }
751
752 function initData(vueOptions, context) {
753 var data = vueOptions.data || {};
754 var methods = vueOptions.methods || {};
755
756 if (typeof data === 'function') {
757 try {
758 data = data.call(context); // 支持 Vue.prototype 上挂的数据
759 } catch (e) {
760 if (Object({"VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG) {
761 console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data);
762 }
763 }
764 } else {
765 try {
766 // 对 data 格式化
767 data = JSON.parse(JSON.stringify(data));
768 } catch (e) {}
769 }
770
771 if (!isPlainObject(data)) {
772 data = {};
773 }
774
775 Object.keys(methods).forEach(function (methodName) {
776 if (context.__lifecycle_hooks__.indexOf(methodName) === -1 && !hasOwn(data, methodName)) {
777 data[methodName] = methods[methodName];
778 }
779 });
780
781 return data;
782 }
783
784 var PROP_TYPES = [String, Number, Boolean, Object, Array, null];
785
786 function createObserver(name) {
787 return function observer(newVal, oldVal) {
788 if (this.$vm) {
789 this.$vm[name] = newVal; // 为了触发其他非 render watcher
790 }
791 };
792 }
793
794 function initBehaviors(vueOptions, initBehavior) {
795 var vueBehaviors = vueOptions.behaviors;
796 var vueExtends = vueOptions.extends;
797 var vueMixins = vueOptions.mixins;
798
799 var vueProps = vueOptions.props;
800
801 if (!vueProps) {
802 vueOptions.props = vueProps = [];
803 }
804
805 var behaviors = [];
806 if (Array.isArray(vueBehaviors)) {
807 vueBehaviors.forEach(function (behavior) {
808 behaviors.push(behavior.replace('uni://', "wx".concat("://")));
809 if (behavior === 'uni://form-field') {
810 if (Array.isArray(vueProps)) {
811 vueProps.push('name');
812 vueProps.push('value');
813 } else {
814 vueProps.name = {
815 type: String,
816 default: '' };
817
818 vueProps.value = {
819 type: [String, Number, Boolean, Array, Object, Date],
820 default: '' };
821
822 }
823 }
824 });
825 }
826 if (isPlainObject(vueExtends) && vueExtends.props) {
827 behaviors.push(
828 initBehavior({
829 properties: initProperties(vueExtends.props, true) }));
830
831
832 }
833 if (Array.isArray(vueMixins)) {
834 vueMixins.forEach(function (vueMixin) {
835 if (isPlainObject(vueMixin) && vueMixin.props) {
836 behaviors.push(
837 initBehavior({
838 properties: initProperties(vueMixin.props, true) }));
839
840
841 }
842 });
843 }
844 return behaviors;
845 }
846
847 function parsePropType(key, type, defaultValue, file) {
848 // [String]=>String
849 if (Array.isArray(type) && type.length === 1) {
850 return type[0];
851 }
852 return type;
853 }
854
855 function initProperties(props) {var isBehavior = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;var file = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
856 var properties = {};
857 if (!isBehavior) {
858 properties.vueId = {
859 type: String,
860 value: '' };
861
862 properties.vueSlots = { // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots
863 type: null,
864 value: [],
865 observer: function observer(newVal, oldVal) {
866 var $slots = Object.create(null);
867 newVal.forEach(function (slotName) {
868 $slots[slotName] = true;
869 });
870 this.setData({
871 $slots: $slots });
872
873 } };
874
875 }
876 if (Array.isArray(props)) {// ['title']
877 props.forEach(function (key) {
878 properties[key] = {
879 type: null,
880 observer: createObserver(key) };
881
882 });
883 } else if (isPlainObject(props)) {// {title:{type:String,default:''},content:String}
884 Object.keys(props).forEach(function (key) {
885 var opts = props[key];
886 if (isPlainObject(opts)) {// title:{type:String,default:''}
887 var value = opts.default;
888 if (isFn(value)) {
889 value = value();
890 }
891
892 opts.type = parsePropType(key, opts.type);
893
894 properties[key] = {
895 type: PROP_TYPES.indexOf(opts.type) !== -1 ? opts.type : null,
896 value: value,
897 observer: createObserver(key) };
898
899 } else {// content:String
900 var type = parsePropType(key, opts);
901 properties[key] = {
902 type: PROP_TYPES.indexOf(type) !== -1 ? type : null,
903 observer: createObserver(key) };
904
905 }
906 });
907 }
908 return properties;
909 }
910
911 function wrapper$1(event) {
912 // TODO 又得兼容 mpvue 的 mp 对象
913 try {
914 event.mp = JSON.parse(JSON.stringify(event));
915 } catch (e) {}
916
917 event.stopPropagation = noop;
918 event.preventDefault = noop;
919
920 event.target = event.target || {};
921
922 if (!hasOwn(event, 'detail')) {
923 event.detail = {};
924 }
925
926 if (hasOwn(event, 'markerId')) {
927 event.detail = typeof event.detail === 'object' ? event.detail : {};
928 event.detail.markerId = event.markerId;
929 }
930
931 if (isPlainObject(event.detail)) {
932 event.target = Object.assign({}, event.target, event.detail);
933 }
934
935 return event;
936 }
937
938 function getExtraValue(vm, dataPathsArray) {
939 var context = vm;
940 dataPathsArray.forEach(function (dataPathArray) {
941 var dataPath = dataPathArray[0];
942 var value = dataPathArray[2];
943 if (dataPath || typeof value !== 'undefined') {// ['','',index,'disable']
944 var propPath = dataPathArray[1];
945 var valuePath = dataPathArray[3];
946
947 var vFor = dataPath ? vm.__get_value(dataPath, context) : context;
948
949 if (Number.isInteger(vFor)) {
950 context = value;
951 } else if (!propPath) {
952 context = vFor[value];
953 } else {
954 if (Array.isArray(vFor)) {
955 context = vFor.find(function (vForItem) {
956 return vm.__get_value(propPath, vForItem) === value;
957 });
958 } else if (isPlainObject(vFor)) {
959 context = Object.keys(vFor).find(function (vForKey) {
960 return vm.__get_value(propPath, vFor[vForKey]) === value;
961 });
962 } else {
963 console.error('v-for 暂不支持循环数据:', vFor);
964 }
965 }
966
967 if (valuePath) {
968 context = vm.__get_value(valuePath, context);
969 }
970 }
971 });
972 return context;
973 }
974
975 function processEventExtra(vm, extra, event) {
976 var extraObj = {};
977
978 if (Array.isArray(extra) && extra.length) {
979 /**
980 *[
981 * ['data.items', 'data.id', item.data.id],
982 * ['metas', 'id', meta.id]
983 *],
984 *[
985 * ['data.items', 'data.id', item.data.id],
986 * ['metas', 'id', meta.id]
987 *],
988 *'test'
989 */
990 extra.forEach(function (dataPath, index) {
991 if (typeof dataPath === 'string') {
992 if (!dataPath) {// model,prop.sync
993 extraObj['$' + index] = vm;
994 } else {
995 if (dataPath === '$event') {// $event
996 extraObj['$' + index] = event;
997 } else if (dataPath.indexOf('$event.') === 0) {// $event.target.value
998 extraObj['$' + index] = vm.__get_value(dataPath.replace('$event.', ''), event);
999 } else {
1000 extraObj['$' + index] = vm.__get_value(dataPath);
1001 }
1002 }
1003 } else {
1004 extraObj['$' + index] = getExtraValue(vm, dataPath);
1005 }
1006 });
1007 }
1008
1009 return extraObj;
1010 }
1011
1012 function getObjByArray(arr) {
1013 var obj = {};
1014 for (var i = 1; i < arr.length; i++) {
1015 var element = arr[i];
1016 obj[element[0]] = element[1];
1017 }
1018 return obj;
1019 }
1020
1021 function processEventArgs(vm, event) {var args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];var extra = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];var isCustom = arguments.length > 4 ? arguments[4] : undefined;var methodName = arguments.length > 5 ? arguments[5] : undefined;
1022 var isCustomMPEvent = false; // wxcomponent 组件,传递原始 event 对象
1023 if (isCustom) {// 自定义事件
1024 isCustomMPEvent = event.currentTarget &&
1025 event.currentTarget.dataset &&
1026 event.currentTarget.dataset.comType === 'wx';
1027 if (!args.length) {// 无参数,直接传入 event 或 detail 数组
1028 if (isCustomMPEvent) {
1029 return [event];
1030 }
1031 return event.detail.__args__ || event.detail;
1032 }
1033 }
1034
1035 var extraObj = processEventExtra(vm, extra, event);
1036
1037 var ret = [];
1038 args.forEach(function (arg) {
1039 if (arg === '$event') {
1040 if (methodName === '__set_model' && !isCustom) {// input v-model value
1041 ret.push(event.target.value);
1042 } else {
1043 if (isCustom && !isCustomMPEvent) {
1044 ret.push(event.detail.__args__[0]);
1045 } else {// wxcomponent 组件或内置组件
1046 ret.push(event);
1047 }
1048 }
1049 } else {
1050 if (Array.isArray(arg) && arg[0] === 'o') {
1051 ret.push(getObjByArray(arg));
1052 } else if (typeof arg === 'string' && hasOwn(extraObj, arg)) {
1053 ret.push(extraObj[arg]);
1054 } else {
1055 ret.push(arg);
1056 }
1057 }
1058 });
1059
1060 return ret;
1061 }
1062
1063 var ONCE = '~';
1064 var CUSTOM = '^';
1065
1066 function isMatchEventType(eventType, optType) {
1067 return eventType === optType ||
1068
1069 optType === 'regionchange' && (
1070
1071 eventType === 'begin' ||
1072 eventType === 'end');
1073
1074
1075 }
1076
1077 function handleEvent(event) {var _this = this;
1078 event = wrapper$1(event);
1079
1080 // [['tap',[['handle',[1,2,a]],['handle1',[1,2,a]]]]]
1081 var dataset = (event.currentTarget || event.target).dataset;
1082 if (!dataset) {
1083 return console.warn('事件信息不存在');
1084 }
1085 var eventOpts = dataset.eventOpts || dataset['event-opts']; // 支付宝 web-view 组件 dataset 非驼峰
1086 if (!eventOpts) {
1087 return console.warn('事件信息不存在');
1088 }
1089
1090 // [['handle',[1,2,a]],['handle1',[1,2,a]]]
1091 var eventType = event.type;
1092
1093 var ret = [];
1094
1095 eventOpts.forEach(function (eventOpt) {
1096 var type = eventOpt[0];
1097 var eventsArray = eventOpt[1];
1098
1099 var isCustom = type.charAt(0) === CUSTOM;
1100 type = isCustom ? type.slice(1) : type;
1101 var isOnce = type.charAt(0) === ONCE;
1102 type = isOnce ? type.slice(1) : type;
1103
1104 if (eventsArray && isMatchEventType(eventType, type)) {
1105 eventsArray.forEach(function (eventArray) {
1106 var methodName = eventArray[0];
1107 if (methodName) {
1108 var handlerCtx = _this.$vm;
1109 if (
1110 handlerCtx.$options.generic &&
1111 handlerCtx.$parent &&
1112 handlerCtx.$parent.$parent)
1113 {// mp-weixin,mp-toutiao 抽象节点模拟 scoped slots
1114 handlerCtx = handlerCtx.$parent.$parent;
1115 }
1116 if (methodName === '$emit') {
1117 handlerCtx.$emit.apply(handlerCtx,
1118 processEventArgs(
1119 _this.$vm,
1120 event,
1121 eventArray[1],
1122 eventArray[2],
1123 isCustom,
1124 methodName));
1125
1126 return;
1127 }
1128 var handler = handlerCtx[methodName];
1129 if (!isFn(handler)) {
1130 throw new Error(" _vm.".concat(methodName, " is not a function"));
1131 }
1132 if (isOnce) {
1133 if (handler.once) {
1134 return;
1135 }
1136 handler.once = true;
1137 }
1138 ret.push(handler.apply(handlerCtx, processEventArgs(
1139 _this.$vm,
1140 event,
1141 eventArray[1],
1142 eventArray[2],
1143 isCustom,
1144 methodName)));
1145
1146 }
1147 });
1148 }
1149 });
1150
1151 if (
1152 eventType === 'input' &&
1153 ret.length === 1 &&
1154 typeof ret[0] !== 'undefined')
1155 {
1156 return ret[0];
1157 }
1158 }
1159
1160 var hooks = [
1161 'onShow',
1162 'onHide',
1163 'onError',
1164 'onPageNotFound'];
1165
1166
1167 function parseBaseApp(vm, _ref3)
1168
1169
1170 {var mocks = _ref3.mocks,initRefs = _ref3.initRefs;
1171 if (vm.$options.store) {
1172 _vue.default.prototype.$store = vm.$options.store;
1173 }
1174
1175 _vue.default.prototype.mpHost = "mp-weixin";
1176
1177 _vue.default.mixin({
1178 beforeCreate: function beforeCreate() {
1179 if (!this.$options.mpType) {
1180 return;
1181 }
1182
1183 this.mpType = this.$options.mpType;
1184
1185 this.$mp = _defineProperty({
1186 data: {} },
1187 this.mpType, this.$options.mpInstance);
1188
1189
1190 this.$scope = this.$options.mpInstance;
1191
1192 delete this.$options.mpType;
1193 delete this.$options.mpInstance;
1194
1195 if (this.mpType !== 'app') {
1196 initRefs(this);
1197 initMocks(this, mocks);
1198 }
1199 } });
1200
1201
1202 var appOptions = {
1203 onLaunch: function onLaunch(args) {
1204 if (this.$vm) {// 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前
1205 return;
1206 }
1207 {
1208 if (!wx.canIUse('nextTick')) {// 事实 上2.2.3 即可,简单使用 2.3.0 的 nextTick 判断
1209 console.error('当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上');
1210 }
1211 }
1212
1213 this.$vm = vm;
1214
1215 this.$vm.$mp = {
1216 app: this };
1217
1218
1219 this.$vm.$scope = this;
1220 // vm 上也挂载 globalData
1221 this.$vm.globalData = this.globalData;
1222
1223 this.$vm._isMounted = true;
1224 this.$vm.__call_hook('mounted', args);
1225
1226 this.$vm.__call_hook('onLaunch', args);
1227 } };
1228
1229
1230 // 兼容旧版本 globalData
1231 appOptions.globalData = vm.$options.globalData || {};
1232 // 将 methods 中的方法挂在 getApp() 中
1233 var methods = vm.$options.methods;
1234 if (methods) {
1235 Object.keys(methods).forEach(function (name) {
1236 appOptions[name] = methods[name];
1237 });
1238 }
1239
1240 initHooks(appOptions, hooks);
1241
1242 return appOptions;
1243 }
1244
1245 var mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];
1246
1247 function findVmByVueId(vm, vuePid) {
1248 var $children = vm.$children;
1249 // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)
1250 for (var i = $children.length - 1; i >= 0; i--) {
1251 var childVm = $children[i];
1252 if (childVm.$scope._$vueId === vuePid) {
1253 return childVm;
1254 }
1255 }
1256 // 反向递归查找
1257 var parentVm;
1258 for (var _i = $children.length - 1; _i >= 0; _i--) {
1259 parentVm = findVmByVueId($children[_i], vuePid);
1260 if (parentVm) {
1261 return parentVm;
1262 }
1263 }
1264 }
1265
1266 function initBehavior(options) {
1267 return Behavior(options);
1268 }
1269
1270 function isPage() {
1271 return !!this.route;
1272 }
1273
1274 function initRelation(detail) {
1275 this.triggerEvent('__l', detail);
1276 }
1277
1278 function initRefs(vm) {
1279 var mpInstance = vm.$scope;
1280 Object.defineProperty(vm, '$refs', {
1281 get: function get() {
1282 var $refs = {};
1283 var components = mpInstance.selectAllComponents('.vue-ref');
1284 components.forEach(function (component) {
1285 var ref = component.dataset.ref;
1286 $refs[ref] = component.$vm || component;
1287 });
1288 var forComponents = mpInstance.selectAllComponents('.vue-ref-in-for');
1289 forComponents.forEach(function (component) {
1290 var ref = component.dataset.ref;
1291 if (!$refs[ref]) {
1292 $refs[ref] = [];
1293 }
1294 $refs[ref].push(component.$vm || component);
1295 });
1296 return $refs;
1297 } });
1298
1299 }
1300
1301 function handleLink(event) {var _ref4 =
1302
1303
1304
1305 event.detail || event.value,vuePid = _ref4.vuePid,vueOptions = _ref4.vueOptions; // detail 是微信,value 是百度(dipatch)
1306
1307 var parentVm;
1308
1309 if (vuePid) {
1310 parentVm = findVmByVueId(this.$vm, vuePid);
1311 }
1312
1313 if (!parentVm) {
1314 parentVm = this.$vm;
1315 }
1316
1317 vueOptions.parent = parentVm;
1318 }
1319
1320 function parseApp(vm) {
1321 return parseBaseApp(vm, {
1322 mocks: mocks,
1323 initRefs: initRefs });
1324
1325 }
1326
1327 function createApp(vm) {
1328 App(parseApp(vm));
1329 return vm;
1330 }
1331
1332 function parseBaseComponent(vueComponentOptions)
1333
1334
1335 {var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},isPage = _ref5.isPage,initRelation = _ref5.initRelation;var _initVueComponent =
1336 initVueComponent(_vue.default, vueComponentOptions),_initVueComponent2 = _slicedToArray(_initVueComponent, 2),VueComponent = _initVueComponent2[0],vueOptions = _initVueComponent2[1];
1337
1338 var options = _objectSpread({
1339 multipleSlots: true,
1340 addGlobalClass: true },
1341 vueOptions.options || {});
1342
1343
1344 {
1345 // 微信 multipleSlots 部分情况有 bug,导致内容顺序错乱 如 u-list,提供覆盖选项
1346 if (vueOptions['mp-weixin'] && vueOptions['mp-weixin'].options) {
1347 Object.assign(options, vueOptions['mp-weixin'].options);
1348 }
1349 }
1350
1351 var componentOptions = {
1352 options: options,
1353 data: initData(vueOptions, _vue.default.prototype),
1354 behaviors: initBehaviors(vueOptions, initBehavior),
1355 properties: initProperties(vueOptions.props, false, vueOptions.__file),
1356 lifetimes: {
1357 attached: function attached() {
1358 var properties = this.properties;
1359
1360 var options = {
1361 mpType: isPage.call(this) ? 'page' : 'component',
1362 mpInstance: this,
1363 propsData: properties };
1364
1365
1366 initVueIds(properties.vueId, this);
1367
1368 // 处理父子关系
1369 initRelation.call(this, {
1370 vuePid: this._$vuePid,
1371 vueOptions: options });
1372
1373
1374 // 初始化 vue 实例
1375 this.$vm = new VueComponent(options);
1376
1377 // 处理$slots,$scopedSlots(暂不支持动态变化$slots)
1378 initSlots(this.$vm, properties.vueSlots);
1379
1380 // 触发首次 setData
1381 this.$vm.$mount();
1382 },
1383 ready: function ready() {
1384 // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发
1385 // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800
1386 if (this.$vm) {
1387 this.$vm._isMounted = true;
1388 this.$vm.__call_hook('mounted');
1389 this.$vm.__call_hook('onReady');
1390 }
1391 },
1392 detached: function detached() {
1393 this.$vm && this.$vm.$destroy();
1394 } },
1395
1396 pageLifetimes: {
1397 show: function show(args) {
1398 this.$vm && this.$vm.__call_hook('onPageShow', args);
1399 },
1400 hide: function hide() {
1401 this.$vm && this.$vm.__call_hook('onPageHide');
1402 },
1403 resize: function resize(size) {
1404 this.$vm && this.$vm.__call_hook('onPageResize', size);
1405 } },
1406
1407 methods: {
1408 __l: handleLink,
1409 __e: handleEvent } };
1410
1411
1412
1413 if (Array.isArray(vueOptions.wxsCallMethods)) {
1414 vueOptions.wxsCallMethods.forEach(function (callMethod) {
1415 componentOptions.methods[callMethod] = function (args) {
1416 return this.$vm[callMethod](args);
1417 };
1418 });
1419 }
1420
1421 if (isPage) {
1422 return componentOptions;
1423 }
1424 return [componentOptions, VueComponent];
1425 }
1426
1427 function parseComponent(vueComponentOptions) {
1428 return parseBaseComponent(vueComponentOptions, {
1429 isPage: isPage,
1430 initRelation: initRelation });
1431
1432 }
1433
1434 var hooks$1 = [
1435 'onShow',
1436 'onHide',
1437 'onUnload'];
1438
1439
1440 hooks$1.push.apply(hooks$1, PAGE_EVENT_HOOKS);
1441
1442 function parseBasePage(vuePageOptions, _ref6)
1443
1444
1445 {var isPage = _ref6.isPage,initRelation = _ref6.initRelation;
1446 var pageOptions = parseComponent(vuePageOptions);
1447
1448 initHooks(pageOptions.methods, hooks$1, vuePageOptions);
1449
1450 pageOptions.methods.onLoad = function (args) {
1451 this.$vm.$mp.query = args; // 兼容 mpvue
1452 this.$vm.__call_hook('onLoad', args);
1453 };
1454
1455 return pageOptions;
1456 }
1457
1458 function parsePage(vuePageOptions) {
1459 return parseBasePage(vuePageOptions, {
1460 isPage: isPage,
1461 initRelation: initRelation });
1462
1463 }
1464
1465 function createPage(vuePageOptions) {
1466 {
1467 return Component(parsePage(vuePageOptions));
1468 }
1469 }
1470
1471 function createComponent(vueOptions) {
1472 {
1473 return Component(parseComponent(vueOptions));
1474 }
1475 }
1476
1477 todos.forEach(function (todoApi) {
1478 protocols[todoApi] = false;
1479 });
1480
1481 canIUses.forEach(function (canIUseApi) {
1482 var apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name :
1483 canIUseApi;
1484 if (!wx.canIUse(apiName)) {
1485 protocols[canIUseApi] = false;
1486 }
1487 });
1488
1489 var uni = {};
1490
1491 if (typeof Proxy !== 'undefined' && "mp-weixin" !== 'app-plus') {
1492 uni = new Proxy({}, {
1493 get: function get(target, name) {
1494 if (target[name]) {
1495 return target[name];
1496 }
1497 if (baseApi[name]) {
1498 return baseApi[name];
1499 }
1500 if (api[name]) {
1501 return promisify(name, api[name]);
1502 }
1503 {
1504 if (extraApi[name]) {
1505 return promisify(name, extraApi[name]);
1506 }
1507 if (todoApis[name]) {
1508 return promisify(name, todoApis[name]);
1509 }
1510 }
1511 if (eventApi[name]) {
1512 return eventApi[name];
1513 }
1514 if (!hasOwn(wx, name) && !hasOwn(protocols, name)) {
1515 return;
1516 }
1517 return promisify(name, wrapper(name, wx[name]));
1518 },
1519 set: function set(target, name, value) {
1520 target[name] = value;
1521 return true;
1522 } });
1523
1524 } else {
1525 Object.keys(baseApi).forEach(function (name) {
1526 uni[name] = baseApi[name];
1527 });
1528
1529 {
1530 Object.keys(todoApis).forEach(function (name) {
1531 uni[name] = promisify(name, todoApis[name]);
1532 });
1533 Object.keys(extraApi).forEach(function (name) {
1534 uni[name] = promisify(name, todoApis[name]);
1535 });
1536 }
1537
1538 Object.keys(eventApi).forEach(function (name) {
1539 uni[name] = eventApi[name];
1540 });
1541
1542 Object.keys(api).forEach(function (name) {
1543 uni[name] = promisify(name, api[name]);
1544 });
1545
1546 Object.keys(wx).forEach(function (name) {
1547 if (hasOwn(wx, name) || hasOwn(protocols, name)) {
1548 uni[name] = promisify(name, wrapper(name, wx[name]));
1549 }
1550 });
1551 }
1552
1553 wx.createApp = createApp;
1554 wx.createPage = createPage;
1555 wx.createComponent = createComponent;
1556
1557 var uni$1 = uni;var _default =
1558
1559 uni$1;exports.default = _default;
1560
1561 /***/ }),
1562 /* 2 */
1563 /*!******************************************************************************************!*\
1564 !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js ***!
1565 \******************************************************************************************/
1566 /*! exports provided: default */
1567 /***/ (function(module, __webpack_exports__, __webpack_require__) {
1568
1569 "use strict";
1570 __webpack_require__.r(__webpack_exports__);
1571 /* WEBPACK VAR INJECTION */(function(global) {/*!
1572 * Vue.js v2.6.11
1573 * (c) 2014-2020 Evan You
1574 * Released under the MIT License.
1575 */
1576 /* */
1577
1578 var emptyObject = Object.freeze({});
1579
1580 // These helpers produce better VM code in JS engines due to their
1581 // explicitness and function inlining.
1582 function isUndef (v) {
1583 return v === undefined || v === null
1584 }
1585
1586 function isDef (v) {
1587 return v !== undefined && v !== null
1588 }
1589
1590 function isTrue (v) {
1591 return v === true
1592 }
1593
1594 function isFalse (v) {
1595 return v === false
1596 }
1597
1598 /**
1599 * Check if value is primitive.
1600 */
1601 function isPrimitive (value) {
1602 return (
1603 typeof value === 'string' ||
1604 typeof value === 'number' ||
1605 // $flow-disable-line
1606 typeof value === 'symbol' ||
1607 typeof value === 'boolean'
1608 )
1609 }
1610
1611 /**
1612 * Quick object check - this is primarily used to tell
1613 * Objects from primitive values when we know the value
1614 * is a JSON-compliant type.
1615 */
1616 function isObject (obj) {
1617 return obj !== null && typeof obj === 'object'
1618 }
1619
1620 /**
1621 * Get the raw type string of a value, e.g., [object Object].
1622 */
1623 var _toString = Object.prototype.toString;
1624
1625 function toRawType (value) {
1626 return _toString.call(value).slice(8, -1)
1627 }
1628
1629 /**
1630 * Strict object type check. Only returns true
1631 * for plain JavaScript objects.
1632 */
1633 function isPlainObject (obj) {
1634 return _toString.call(obj) === '[object Object]'
1635 }
1636
1637 function isRegExp (v) {
1638 return _toString.call(v) === '[object RegExp]'
1639 }
1640
1641 /**
1642 * Check if val is a valid array index.
1643 */
1644 function isValidArrayIndex (val) {
1645 var n = parseFloat(String(val));
1646 return n >= 0 && Math.floor(n) === n && isFinite(val)
1647 }
1648
1649 function isPromise (val) {
1650 return (
1651 isDef(val) &&
1652 typeof val.then === 'function' &&
1653 typeof val.catch === 'function'
1654 )
1655 }
1656
1657 /**
1658 * Convert a value to a string that is actually rendered.
1659 */
1660 function toString (val) {
1661 return val == null
1662 ? ''
1663 : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)
1664 ? JSON.stringify(val, null, 2)
1665 : String(val)
1666 }
1667
1668 /**
1669 * Convert an input value to a number for persistence.
1670 * If the conversion fails, return original string.
1671 */
1672 function toNumber (val) {
1673 var n = parseFloat(val);
1674 return isNaN(n) ? val : n
1675 }
1676
1677 /**
1678 * Make a map and return a function for checking if a key
1679 * is in that map.
1680 */
1681 function makeMap (
1682 str,
1683 expectsLowerCase
1684 ) {
1685 var map = Object.create(null);
1686 var list = str.split(',');
1687 for (var i = 0; i < list.length; i++) {
1688 map[list[i]] = true;
1689 }
1690 return expectsLowerCase
1691 ? function (val) { return map[val.toLowerCase()]; }
1692 : function (val) { return map[val]; }
1693 }
1694
1695 /**
1696 * Check if a tag is a built-in tag.
1697 */
1698 var isBuiltInTag = makeMap('slot,component', true);
1699
1700 /**
1701 * Check if an attribute is a reserved attribute.
1702 */
1703 var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');
1704
1705 /**
1706 * Remove an item from an array.
1707 */
1708 function remove (arr, item) {
1709 if (arr.length) {
1710 var index = arr.indexOf(item);
1711 if (index > -1) {
1712 return arr.splice(index, 1)
1713 }
1714 }
1715 }
1716
1717 /**
1718 * Check whether an object has the property.
1719 */
1720 var hasOwnProperty = Object.prototype.hasOwnProperty;
1721 function hasOwn (obj, key) {
1722 return hasOwnProperty.call(obj, key)
1723 }
1724
1725 /**
1726 * Create a cached version of a pure function.
1727 */
1728 function cached (fn) {
1729 var cache = Object.create(null);
1730 return (function cachedFn (str) {
1731 var hit = cache[str];
1732 return hit || (cache[str] = fn(str))
1733 })
1734 }
1735
1736 /**
1737 * Camelize a hyphen-delimited string.
1738 */
1739 var camelizeRE = /-(\w)/g;
1740 var camelize = cached(function (str) {
1741 return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })
1742 });
1743
1744 /**
1745 * Capitalize a string.
1746 */
1747 var capitalize = cached(function (str) {
1748 return str.charAt(0).toUpperCase() + str.slice(1)
1749 });
1750
1751 /**
1752 * Hyphenate a camelCase string.
1753 */
1754 var hyphenateRE = /\B([A-Z])/g;
1755 var hyphenate = cached(function (str) {
1756 return str.replace(hyphenateRE, '-$1').toLowerCase()
1757 });
1758
1759 /**
1760 * Simple bind polyfill for environments that do not support it,
1761 * e.g., PhantomJS 1.x. Technically, we don't need this anymore
1762 * since native bind is now performant enough in most browsers.
1763 * But removing it would mean breaking code that was able to run in
1764 * PhantomJS 1.x, so this must be kept for backward compatibility.
1765 */
1766
1767 /* istanbul ignore next */
1768 function polyfillBind (fn, ctx) {
1769 function boundFn (a) {
1770 var l = arguments.length;
1771 return l
1772 ? l > 1
1773 ? fn.apply(ctx, arguments)
1774 : fn.call(ctx, a)
1775 : fn.call(ctx)
1776 }
1777
1778 boundFn._length = fn.length;
1779 return boundFn
1780 }
1781
1782 function nativeBind (fn, ctx) {
1783 return fn.bind(ctx)
1784 }
1785
1786 var bind = Function.prototype.bind
1787 ? nativeBind
1788 : polyfillBind;
1789
1790 /**
1791 * Convert an Array-like object to a real Array.
1792 */
1793 function toArray (list, start) {
1794 start = start || 0;
1795 var i = list.length - start;
1796 var ret = new Array(i);
1797 while (i--) {
1798 ret[i] = list[i + start];
1799 }
1800 return ret
1801 }
1802
1803 /**
1804 * Mix properties into target object.
1805 */
1806 function extend (to, _from) {
1807 for (var key in _from) {
1808 to[key] = _from[key];
1809 }
1810 return to
1811 }
1812
1813 /**
1814 * Merge an Array of Objects into a single Object.
1815 */
1816 function toObject (arr) {
1817 var res = {};
1818 for (var i = 0; i < arr.length; i++) {
1819 if (arr[i]) {
1820 extend(res, arr[i]);
1821 }
1822 }
1823 return res
1824 }
1825
1826 /* eslint-disable no-unused-vars */
1827
1828 /**
1829 * Perform no operation.
1830 * Stubbing args to make Flow happy without leaving useless transpiled code
1831 * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).
1832 */
1833 function noop (a, b, c) {}
1834
1835 /**
1836 * Always return false.
1837 */
1838 var no = function (a, b, c) { return false; };
1839
1840 /* eslint-enable no-unused-vars */
1841
1842 /**
1843 * Return the same value.
1844 */
1845 var identity = function (_) { return _; };
1846
1847 /**
1848 * Check if two values are loosely equal - that is,
1849 * if they are plain objects, do they have the same shape?
1850 */
1851 function looseEqual (a, b) {
1852 if (a === b) { return true }
1853 var isObjectA = isObject(a);
1854 var isObjectB = isObject(b);
1855 if (isObjectA && isObjectB) {
1856 try {
1857 var isArrayA = Array.isArray(a);
1858 var isArrayB = Array.isArray(b);
1859 if (isArrayA && isArrayB) {
1860 return a.length === b.length && a.every(function (e, i) {
1861 return looseEqual(e, b[i])
1862 })
1863 } else if (a instanceof Date && b instanceof Date) {
1864 return a.getTime() === b.getTime()
1865 } else if (!isArrayA && !isArrayB) {
1866 var keysA = Object.keys(a);
1867 var keysB = Object.keys(b);
1868 return keysA.length === keysB.length && keysA.every(function (key) {
1869 return looseEqual(a[key], b[key])
1870 })
1871 } else {
1872 /* istanbul ignore next */
1873 return false
1874 }
1875 } catch (e) {
1876 /* istanbul ignore next */
1877 return false
1878 }
1879 } else if (!isObjectA && !isObjectB) {
1880 return String(a) === String(b)
1881 } else {
1882 return false
1883 }
1884 }
1885
1886 /**
1887 * Return the first index at which a loosely equal value can be
1888 * found in the array (if value is a plain object, the array must
1889 * contain an object of the same shape), or -1 if it is not present.
1890 */
1891 function looseIndexOf (arr, val) {
1892 for (var i = 0; i < arr.length; i++) {
1893 if (looseEqual(arr[i], val)) { return i }
1894 }
1895 return -1
1896 }
1897
1898 /**
1899 * Ensure a function is called only once.
1900 */
1901 function once (fn) {
1902 var called = false;
1903 return function () {
1904 if (!called) {
1905 called = true;
1906 fn.apply(this, arguments);
1907 }
1908 }
1909 }
1910
1911 var ASSET_TYPES = [
1912 'component',
1913 'directive',
1914 'filter'
1915 ];
1916
1917 var LIFECYCLE_HOOKS = [
1918 'beforeCreate',
1919 'created',
1920 'beforeMount',
1921 'mounted',
1922 'beforeUpdate',
1923 'updated',
1924 'beforeDestroy',
1925 'destroyed',
1926 'activated',
1927 'deactivated',
1928 'errorCaptured',
1929 'serverPrefetch'
1930 ];
1931
1932 /* */
1933
1934
1935
1936 var config = ({
1937 /**
1938 * Option merge strategies (used in core/util/options)
1939 */
1940 // $flow-disable-line
1941 optionMergeStrategies: Object.create(null),
1942
1943 /**
1944 * Whether to suppress warnings.
1945 */
1946 silent: false,
1947
1948 /**
1949 * Show production mode tip message on boot?
1950 */
1951 productionTip: "development" !== 'production',
1952
1953 /**
1954 * Whether to enable devtools
1955 */
1956 devtools: "development" !== 'production',
1957
1958 /**
1959 * Whether to record perf
1960 */
1961 performance: false,
1962
1963 /**
1964 * Error handler for watcher errors
1965 */
1966 errorHandler: null,
1967
1968 /**
1969 * Warn handler for watcher warns
1970 */
1971 warnHandler: null,
1972
1973 /**
1974 * Ignore certain custom elements
1975 */
1976 ignoredElements: [],
1977
1978 /**
1979 * Custom user key aliases for v-on
1980 */
1981 // $flow-disable-line
1982 keyCodes: Object.create(null),
1983
1984 /**
1985 * Check if a tag is reserved so that it cannot be registered as a
1986 * component. This is platform-dependent and may be overwritten.
1987 */
1988 isReservedTag: no,
1989
1990 /**
1991 * Check if an attribute is reserved so that it cannot be used as a component
1992 * prop. This is platform-dependent and may be overwritten.
1993 */
1994 isReservedAttr: no,
1995
1996 /**
1997 * Check if a tag is an unknown element.
1998 * Platform-dependent.
1999 */
2000 isUnknownElement: no,
2001
2002 /**
2003 * Get the namespace of an element
2004 */
2005 getTagNamespace: noop,
2006
2007 /**
2008 * Parse the real tag name for the specific platform.
2009 */
2010 parsePlatformTagName: identity,
2011
2012 /**
2013 * Check if an attribute must be bound using property, e.g. value
2014 * Platform-dependent.
2015 */
2016 mustUseProp: no,
2017
2018 /**
2019 * Perform updates asynchronously. Intended to be used by Vue Test Utils
2020 * This will significantly reduce performance if set to false.
2021 */
2022 async: true,
2023
2024 /**
2025 * Exposed for legacy reasons
2026 */
2027 _lifecycleHooks: LIFECYCLE_HOOKS
2028 });
2029
2030 /* */
2031
2032 /**
2033 * unicode letters used for parsing html tags, component names and property paths.
2034 * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname
2035 * skipping \u10000-\uEFFFF due to it freezing up PhantomJS
2036 */
2037 var unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;
2038
2039 /**
2040 * Check if a string starts with $ or _
2041 */
2042 function isReserved (str) {
2043 var c = (str + '').charCodeAt(0);
2044 return c === 0x24 || c === 0x5F
2045 }
2046
2047 /**
2048 * Define a property.
2049 */
2050 function def (obj, key, val, enumerable) {
2051 Object.defineProperty(obj, key, {
2052 value: val,
2053 enumerable: !!enumerable,
2054 writable: true,
2055 configurable: true
2056 });
2057 }
2058
2059 /**
2060 * Parse simple path.
2061 */
2062 var bailRE = new RegExp(("[^" + (unicodeRegExp.source) + ".$_\\d]"));
2063 function parsePath (path) {
2064 if (bailRE.test(path)) {
2065 return
2066 }
2067 var segments = path.split('.');
2068 return function (obj) {
2069 for (var i = 0; i < segments.length; i++) {
2070 if (!obj) { return }
2071 obj = obj[segments[i]];
2072 }
2073 return obj
2074 }
2075 }
2076
2077 /* */
2078
2079 // can we use __proto__?
2080 var hasProto = '__proto__' in {};
2081
2082 // Browser environment sniffing
2083 var inBrowser = typeof window !== 'undefined';
2084 var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;
2085 var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();
2086 var UA = inBrowser && window.navigator.userAgent.toLowerCase();
2087 var isIE = UA && /msie|trident/.test(UA);
2088 var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
2089 var isEdge = UA && UA.indexOf('edge/') > 0;
2090 var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');
2091 var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');
2092 var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge;
2093 var isPhantomJS = UA && /phantomjs/.test(UA);
2094 var isFF = UA && UA.match(/firefox\/(\d+)/);
2095
2096 // Firefox has a "watch" function on Object.prototype...
2097 var nativeWatch = ({}).watch;
2098 if (inBrowser) {
2099 try {
2100 var opts = {};
2101 Object.defineProperty(opts, 'passive', ({
2102 get: function get () {
2103 }
2104 })); // https://github.com/facebook/flow/issues/285
2105 window.addEventListener('test-passive', null, opts);
2106 } catch (e) {}
2107 }
2108
2109 // this needs to be lazy-evaled because vue may be required before
2110 // vue-server-renderer can set VUE_ENV
2111 var _isServer;
2112 var isServerRendering = function () {
2113 if (_isServer === undefined) {
2114 /* istanbul ignore if */
2115 if (!inBrowser && !inWeex && typeof global !== 'undefined') {
2116 // detect presence of vue-server-renderer and avoid
2117 // Webpack shimming the process
2118 _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';
2119 } else {
2120 _isServer = false;
2121 }
2122 }
2123 return _isServer
2124 };
2125
2126 // detect devtools
2127 var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
2128
2129 /* istanbul ignore next */
2130 function isNative (Ctor) {
2131 return typeof Ctor === 'function' && /native code/.test(Ctor.toString())
2132 }
2133
2134 var hasSymbol =
2135 typeof Symbol !== 'undefined' && isNative(Symbol) &&
2136 typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);
2137
2138 var _Set;
2139 /* istanbul ignore if */ // $flow-disable-line
2140 if (typeof Set !== 'undefined' && isNative(Set)) {
2141 // use native Set when available.
2142 _Set = Set;
2143 } else {
2144 // a non-standard Set polyfill that only works with primitive keys.
2145 _Set = /*@__PURE__*/(function () {
2146 function Set () {
2147 this.set = Object.create(null);
2148 }
2149 Set.prototype.has = function has (key) {
2150 return this.set[key] === true
2151 };
2152 Set.prototype.add = function add (key) {
2153 this.set[key] = true;
2154 };
2155 Set.prototype.clear = function clear () {
2156 this.set = Object.create(null);
2157 };
2158
2159 return Set;
2160 }());
2161 }
2162
2163 /* */
2164
2165 var warn = noop;
2166 var tip = noop;
2167 var generateComponentTrace = (noop); // work around flow check
2168 var formatComponentName = (noop);
2169
2170 if (true) {
2171 var hasConsole = typeof console !== 'undefined';
2172 var classifyRE = /(?:^|[-_])(\w)/g;
2173 var classify = function (str) { return str
2174 .replace(classifyRE, function (c) { return c.toUpperCase(); })
2175 .replace(/[-_]/g, ''); };
2176
2177 warn = function (msg, vm) {
2178 var trace = vm ? generateComponentTrace(vm) : '';
2179
2180 if (config.warnHandler) {
2181 config.warnHandler.call(null, msg, vm, trace);
2182 } else if (hasConsole && (!config.silent)) {
2183 console.error(("[Vue warn]: " + msg + trace));
2184 }
2185 };
2186
2187 tip = function (msg, vm) {
2188 if (hasConsole && (!config.silent)) {
2189 console.warn("[Vue tip]: " + msg + (
2190 vm ? generateComponentTrace(vm) : ''
2191 ));
2192 }
2193 };
2194
2195 formatComponentName = function (vm, includeFile) {
2196 {
2197 if(vm.$scope && vm.$scope.is){
2198 return vm.$scope.is
2199 }
2200 }
2201 if (vm.$root === vm) {
2202 return '<Root>'
2203 }
2204 var options = typeof vm === 'function' && vm.cid != null
2205 ? vm.options
2206 : vm._isVue
2207 ? vm.$options || vm.constructor.options
2208 : vm;
2209 var name = options.name || options._componentTag;
2210 var file = options.__file;
2211 if (!name && file) {
2212 var match = file.match(/([^/\\]+)\.vue$/);
2213 name = match && match[1];
2214 }
2215
2216 return (
2217 (name ? ("<" + (classify(name)) + ">") : "<Anonymous>") +
2218 (file && includeFile !== false ? (" at " + file) : '')
2219 )
2220 };
2221
2222 var repeat = function (str, n) {
2223 var res = '';
2224 while (n) {
2225 if (n % 2 === 1) { res += str; }
2226 if (n > 1) { str += str; }
2227 n >>= 1;
2228 }
2229 return res
2230 };
2231
2232 generateComponentTrace = function (vm) {
2233 if (vm._isVue && vm.$parent) {
2234 var tree = [];
2235 var currentRecursiveSequence = 0;
2236 while (vm) {
2237 if (tree.length > 0) {
2238 var last = tree[tree.length - 1];
2239 if (last.constructor === vm.constructor) {
2240 currentRecursiveSequence++;
2241 vm = vm.$parent;
2242 continue
2243 } else if (currentRecursiveSequence > 0) {
2244 tree[tree.length - 1] = [last, currentRecursiveSequence];
2245 currentRecursiveSequence = 0;
2246 }
2247 }
2248 tree.push(vm);
2249 vm = vm.$parent;
2250 }
2251 return '\n\nfound in\n\n' + tree
2252 .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)
2253 ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)")
2254 : formatComponentName(vm))); })
2255 .join('\n')
2256 } else {
2257 return ("\n\n(found in " + (formatComponentName(vm)) + ")")
2258 }
2259 };
2260 }
2261
2262 /* */
2263
2264 var uid = 0;
2265
2266 /**
2267 * A dep is an observable that can have multiple
2268 * directives subscribing to it.
2269 */
2270 var Dep = function Dep () {
2271 // fixed by xxxxxx (nvue vuex)
2272 /* eslint-disable no-undef */
2273 if(typeof SharedObject !== 'undefined'){
2274 this.id = SharedObject.uid++;
2275 } else {
2276 this.id = uid++;
2277 }
2278 this.subs = [];
2279 };
2280
2281 Dep.prototype.addSub = function addSub (sub) {
2282 this.subs.push(sub);
2283 };
2284
2285 Dep.prototype.removeSub = function removeSub (sub) {
2286 remove(this.subs, sub);
2287 };
2288
2289 Dep.prototype.depend = function depend () {
2290 if (Dep.SharedObject.target) {
2291 Dep.SharedObject.target.addDep(this);
2292 }
2293 };
2294
2295 Dep.prototype.notify = function notify () {
2296 // stabilize the subscriber list first
2297 var subs = this.subs.slice();
2298 if ( true && !config.async) {
2299 // subs aren't sorted in scheduler if not running async
2300 // we need to sort them now to make sure they fire in correct
2301 // order
2302 subs.sort(function (a, b) { return a.id - b.id; });
2303 }
2304 for (var i = 0, l = subs.length; i < l; i++) {
2305 subs[i].update();
2306 }
2307 };
2308
2309 // The current target watcher being evaluated.
2310 // This is globally unique because only one watcher
2311 // can be evaluated at a time.
2312 // fixed by xxxxxx (nvue shared vuex)
2313 /* eslint-disable no-undef */
2314 Dep.SharedObject = typeof SharedObject !== 'undefined' ? SharedObject : {};
2315 Dep.SharedObject.target = null;
2316 Dep.SharedObject.targetStack = [];
2317
2318 function pushTarget (target) {
2319 Dep.SharedObject.targetStack.push(target);
2320 Dep.SharedObject.target = target;
2321 }
2322
2323 function popTarget () {
2324 Dep.SharedObject.targetStack.pop();
2325 Dep.SharedObject.target = Dep.SharedObject.targetStack[Dep.SharedObject.targetStack.length - 1];
2326 }
2327
2328 /* */
2329
2330 var VNode = function VNode (
2331 tag,
2332 data,
2333 children,
2334 text,
2335 elm,
2336 context,
2337 componentOptions,
2338 asyncFactory
2339 ) {
2340 this.tag = tag;
2341 this.data = data;
2342 this.children = children;
2343 this.text = text;
2344 this.elm = elm;
2345 this.ns = undefined;
2346 this.context = context;
2347 this.fnContext = undefined;
2348 this.fnOptions = undefined;
2349 this.fnScopeId = undefined;
2350 this.key = data && data.key;
2351 this.componentOptions = componentOptions;
2352 this.componentInstance = undefined;
2353 this.parent = undefined;
2354 this.raw = false;
2355 this.isStatic = false;
2356 this.isRootInsert = true;
2357 this.isComment = false;
2358 this.isCloned = false;
2359 this.isOnce = false;
2360 this.asyncFactory = asyncFactory;
2361 this.asyncMeta = undefined;
2362 this.isAsyncPlaceholder = false;
2363 };
2364
2365 var prototypeAccessors = { child: { configurable: true } };
2366
2367 // DEPRECATED: alias for componentInstance for backwards compat.
2368 /* istanbul ignore next */
2369 prototypeAccessors.child.get = function () {
2370 return this.componentInstance
2371 };
2372
2373 Object.defineProperties( VNode.prototype, prototypeAccessors );
2374
2375 var createEmptyVNode = function (text) {
2376 if ( text === void 0 ) text = '';
2377
2378 var node = new VNode();
2379 node.text = text;
2380 node.isComment = true;
2381 return node
2382 };
2383
2384 function createTextVNode (val) {
2385 return new VNode(undefined, undefined, undefined, String(val))
2386 }
2387
2388 // optimized shallow clone
2389 // used for static nodes and slot nodes because they may be reused across
2390 // multiple renders, cloning them avoids errors when DOM manipulations rely
2391 // on their elm reference.
2392 function cloneVNode (vnode) {
2393 var cloned = new VNode(
2394 vnode.tag,
2395 vnode.data,
2396 // #7975
2397 // clone children array to avoid mutating original in case of cloning
2398 // a child.
2399 vnode.children && vnode.children.slice(),
2400 vnode.text,
2401 vnode.elm,
2402 vnode.context,
2403 vnode.componentOptions,
2404 vnode.asyncFactory
2405 );
2406 cloned.ns = vnode.ns;
2407 cloned.isStatic = vnode.isStatic;
2408 cloned.key = vnode.key;
2409 cloned.isComment = vnode.isComment;
2410 cloned.fnContext = vnode.fnContext;
2411 cloned.fnOptions = vnode.fnOptions;
2412 cloned.fnScopeId = vnode.fnScopeId;
2413 cloned.asyncMeta = vnode.asyncMeta;
2414 cloned.isCloned = true;
2415 return cloned
2416 }
2417
2418 /*
2419 * not type checking this file because flow doesn't play well with
2420 * dynamically accessing methods on Array prototype
2421 */
2422
2423 var arrayProto = Array.prototype;
2424 var arrayMethods = Object.create(arrayProto);
2425
2426 var methodsToPatch = [
2427 'push',
2428 'pop',
2429 'shift',
2430 'unshift',
2431 'splice',
2432 'sort',
2433 'reverse'
2434 ];
2435
2436 /**
2437 * Intercept mutating methods and emit events
2438 */
2439 methodsToPatch.forEach(function (method) {
2440 // cache original method
2441 var original = arrayProto[method];
2442 def(arrayMethods, method, function mutator () {
2443 var args = [], len = arguments.length;
2444 while ( len-- ) args[ len ] = arguments[ len ];
2445
2446 var result = original.apply(this, args);
2447 var ob = this.__ob__;
2448 var inserted;
2449 switch (method) {
2450 case 'push':
2451 case 'unshift':
2452 inserted = args;
2453 break
2454 case 'splice':
2455 inserted = args.slice(2);
2456 break
2457 }
2458 if (inserted) { ob.observeArray(inserted); }
2459 // notify change
2460 ob.dep.notify();
2461 return result
2462 });
2463 });
2464
2465 /* */
2466
2467 var arrayKeys = Object.getOwnPropertyNames(arrayMethods);
2468
2469 /**
2470 * In some cases we may want to disable observation inside a component's
2471 * update computation.
2472 */
2473 var shouldObserve = true;
2474
2475 function toggleObserving (value) {
2476 shouldObserve = value;
2477 }
2478
2479 /**
2480 * Observer class that is attached to each observed
2481 * object. Once attached, the observer converts the target
2482 * object's property keys into getter/setters that
2483 * collect dependencies and dispatch updates.
2484 */
2485 var Observer = function Observer (value) {
2486 this.value = value;
2487 this.dep = new Dep();
2488 this.vmCount = 0;
2489 def(value, '__ob__', this);
2490 if (Array.isArray(value)) {
2491 if (hasProto) {
2492 {// fixed by xxxxxx 微信小程序使用 plugins 之后,数组方法被直接挂载到了数组对象上,需要执行 copyAugment 逻辑
2493 if(value.push !== value.__proto__.push){
2494 copyAugment(value, arrayMethods, arrayKeys);
2495 } else {
2496 protoAugment(value, arrayMethods);
2497 }
2498 }
2499 } else {
2500 copyAugment(value, arrayMethods, arrayKeys);
2501 }
2502 this.observeArray(value);
2503 } else {
2504 this.walk(value);
2505 }
2506 };
2507
2508 /**
2509 * Walk through all properties and convert them into
2510 * getter/setters. This method should only be called when
2511 * value type is Object.
2512 */
2513 Observer.prototype.walk = function walk (obj) {
2514 var keys = Object.keys(obj);
2515 for (var i = 0; i < keys.length; i++) {
2516 defineReactive$$1(obj, keys[i]);
2517 }
2518 };
2519
2520 /**
2521 * Observe a list of Array items.
2522 */
2523 Observer.prototype.observeArray = function observeArray (items) {
2524 for (var i = 0, l = items.length; i < l; i++) {
2525 observe(items[i]);
2526 }
2527 };
2528
2529 // helpers
2530
2531 /**
2532 * Augment a target Object or Array by intercepting
2533 * the prototype chain using __proto__
2534 */
2535 function protoAugment (target, src) {
2536 /* eslint-disable no-proto */
2537 target.__proto__ = src;
2538 /* eslint-enable no-proto */
2539 }
2540
2541 /**
2542 * Augment a target Object or Array by defining
2543 * hidden properties.
2544 */
2545 /* istanbul ignore next */
2546 function copyAugment (target, src, keys) {
2547 for (var i = 0, l = keys.length; i < l; i++) {
2548 var key = keys[i];
2549 def(target, key, src[key]);
2550 }
2551 }
2552
2553 /**
2554 * Attempt to create an observer instance for a value,
2555 * returns the new observer if successfully observed,
2556 * or the existing observer if the value already has one.
2557 */
2558 function observe (value, asRootData) {
2559 if (!isObject(value) || value instanceof VNode) {
2560 return
2561 }
2562 var ob;
2563 if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {
2564 ob = value.__ob__;
2565 } else if (
2566 shouldObserve &&
2567 !isServerRendering() &&
2568 (Array.isArray(value) || isPlainObject(value)) &&
2569 Object.isExtensible(value) &&
2570 !value._isVue
2571 ) {
2572 ob = new Observer(value);
2573 }
2574 if (asRootData && ob) {
2575 ob.vmCount++;
2576 }
2577 return ob
2578 }
2579
2580 /**
2581 * Define a reactive property on an Object.
2582 */
2583 function defineReactive$$1 (
2584 obj,
2585 key,
2586 val,
2587 customSetter,
2588 shallow
2589 ) {
2590 var dep = new Dep();
2591
2592 var property = Object.getOwnPropertyDescriptor(obj, key);
2593 if (property && property.configurable === false) {
2594 return
2595 }
2596
2597 // cater for pre-defined getter/setters
2598 var getter = property && property.get;
2599 var setter = property && property.set;
2600 if ((!getter || setter) && arguments.length === 2) {
2601 val = obj[key];
2602 }
2603
2604 var childOb = !shallow && observe(val);
2605 Object.defineProperty(obj, key, {
2606 enumerable: true,
2607 configurable: true,
2608 get: function reactiveGetter () {
2609 var value = getter ? getter.call(obj) : val;
2610 if (Dep.SharedObject.target) { // fixed by xxxxxx
2611 dep.depend();
2612 if (childOb) {
2613 childOb.dep.depend();
2614 if (Array.isArray(value)) {
2615 dependArray(value);
2616 }
2617 }
2618 }
2619 return value
2620 },
2621 set: function reactiveSetter (newVal) {
2622 var value = getter ? getter.call(obj) : val;
2623 /* eslint-disable no-self-compare */
2624 if (newVal === value || (newVal !== newVal && value !== value)) {
2625 return
2626 }
2627 /* eslint-enable no-self-compare */
2628 if ( true && customSetter) {
2629 customSetter();
2630 }
2631 // #7981: for accessor properties without setter
2632 if (getter && !setter) { return }
2633 if (setter) {
2634 setter.call(obj, newVal);
2635 } else {
2636 val = newVal;
2637 }
2638 childOb = !shallow && observe(newVal);
2639 dep.notify();
2640 }
2641 });
2642 }
2643
2644 /**
2645 * Set a property on an object. Adds the new property and
2646 * triggers change notification if the property doesn't
2647 * already exist.
2648 */
2649 function set (target, key, val) {
2650 if ( true &&
2651 (isUndef(target) || isPrimitive(target))
2652 ) {
2653 warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target))));
2654 }
2655 if (Array.isArray(target) && isValidArrayIndex(key)) {
2656 target.length = Math.max(target.length, key);
2657 target.splice(key, 1, val);
2658 return val
2659 }
2660 if (key in target && !(key in Object.prototype)) {
2661 target[key] = val;
2662 return val
2663 }
2664 var ob = (target).__ob__;
2665 if (target._isVue || (ob && ob.vmCount)) {
2666 true && warn(
2667 'Avoid adding reactive properties to a Vue instance or its root $data ' +
2668 'at runtime - declare it upfront in the data option.'
2669 );
2670 return val
2671 }
2672 if (!ob) {
2673 target[key] = val;
2674 return val
2675 }
2676 defineReactive$$1(ob.value, key, val);
2677 ob.dep.notify();
2678 return val
2679 }
2680
2681 /**
2682 * Delete a property and trigger change if necessary.
2683 */
2684 function del (target, key) {
2685 if ( true &&
2686 (isUndef(target) || isPrimitive(target))
2687 ) {
2688 warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target))));
2689 }
2690 if (Array.isArray(target) && isValidArrayIndex(key)) {
2691 target.splice(key, 1);
2692 return
2693 }
2694 var ob = (target).__ob__;
2695 if (target._isVue || (ob && ob.vmCount)) {
2696 true && warn(
2697 'Avoid deleting properties on a Vue instance or its root $data ' +
2698 '- just set it to null.'
2699 );
2700 return
2701 }
2702 if (!hasOwn(target, key)) {
2703 return
2704 }
2705 delete target[key];
2706 if (!ob) {
2707 return
2708 }
2709 ob.dep.notify();
2710 }
2711
2712 /**
2713 * Collect dependencies on array elements when the array is touched, since
2714 * we cannot intercept array element access like property getters.
2715 */
2716 function dependArray (value) {
2717 for (var e = (void 0), i = 0, l = value.length; i < l; i++) {
2718 e = value[i];
2719 e && e.__ob__ && e.__ob__.dep.depend();
2720 if (Array.isArray(e)) {
2721 dependArray(e);
2722 }
2723 }
2724 }
2725
2726 /* */
2727
2728 /**
2729 * Option overwriting strategies are functions that handle
2730 * how to merge a parent option value and a child option
2731 * value into the final value.
2732 */
2733 var strats = config.optionMergeStrategies;
2734
2735 /**
2736 * Options with restrictions
2737 */
2738 if (true) {
2739 strats.el = strats.propsData = function (parent, child, vm, key) {
2740 if (!vm) {
2741 warn(
2742 "option \"" + key + "\" can only be used during instance " +
2743 'creation with the `new` keyword.'
2744 );
2745 }
2746 return defaultStrat(parent, child)
2747 };
2748 }
2749
2750 /**
2751 * Helper that recursively merges two data objects together.
2752 */
2753 function mergeData (to, from) {
2754 if (!from) { return to }
2755 var key, toVal, fromVal;
2756
2757 var keys = hasSymbol
2758 ? Reflect.ownKeys(from)
2759 : Object.keys(from);
2760
2761 for (var i = 0; i < keys.length; i++) {
2762 key = keys[i];
2763 // in case the object is already observed...
2764 if (key === '__ob__') { continue }
2765 toVal = to[key];
2766 fromVal = from[key];
2767 if (!hasOwn(to, key)) {
2768 set(to, key, fromVal);
2769 } else if (
2770 toVal !== fromVal &&
2771 isPlainObject(toVal) &&
2772 isPlainObject(fromVal)
2773 ) {
2774 mergeData(toVal, fromVal);
2775 }
2776 }
2777 return to
2778 }
2779
2780 /**
2781 * Data
2782 */
2783 function mergeDataOrFn (
2784 parentVal,
2785 childVal,
2786 vm
2787 ) {
2788 if (!vm) {
2789 // in a Vue.extend merge, both should be functions
2790 if (!childVal) {
2791 return parentVal
2792 }
2793 if (!parentVal) {
2794 return childVal
2795 }
2796 // when parentVal & childVal are both present,
2797 // we need to return a function that returns the
2798 // merged result of both functions... no need to
2799 // check if parentVal is a function here because
2800 // it has to be a function to pass previous merges.
2801 return function mergedDataFn () {
2802 return mergeData(
2803 typeof childVal === 'function' ? childVal.call(this, this) : childVal,
2804 typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal
2805 )
2806 }
2807 } else {
2808 return function mergedInstanceDataFn () {
2809 // instance merge
2810 var instanceData = typeof childVal === 'function'
2811 ? childVal.call(vm, vm)
2812 : childVal;
2813 var defaultData = typeof parentVal === 'function'
2814 ? parentVal.call(vm, vm)
2815 : parentVal;
2816 if (instanceData) {
2817 return mergeData(instanceData, defaultData)
2818 } else {
2819 return defaultData
2820 }
2821 }
2822 }
2823 }
2824
2825 strats.data = function (
2826 parentVal,
2827 childVal,
2828 vm
2829 ) {
2830 if (!vm) {
2831 if (childVal && typeof childVal !== 'function') {
2832 true && warn(
2833 'The "data" option should be a function ' +
2834 'that returns a per-instance value in component ' +
2835 'definitions.',
2836 vm
2837 );
2838
2839 return parentVal
2840 }
2841 return mergeDataOrFn(parentVal, childVal)
2842 }
2843
2844 return mergeDataOrFn(parentVal, childVal, vm)
2845 };
2846
2847 /**
2848 * Hooks and props are merged as arrays.
2849 */
2850 function mergeHook (
2851 parentVal,
2852 childVal
2853 ) {
2854 var res = childVal
2855 ? parentVal
2856 ? parentVal.concat(childVal)
2857 : Array.isArray(childVal)
2858 ? childVal
2859 : [childVal]
2860 : parentVal;
2861 return res
2862 ? dedupeHooks(res)
2863 : res
2864 }
2865
2866 function dedupeHooks (hooks) {
2867 var res = [];
2868 for (var i = 0; i < hooks.length; i++) {
2869 if (res.indexOf(hooks[i]) === -1) {
2870 res.push(hooks[i]);
2871 }
2872 }
2873 return res
2874 }
2875
2876 LIFECYCLE_HOOKS.forEach(function (hook) {
2877 strats[hook] = mergeHook;
2878 });
2879
2880 /**
2881 * Assets
2882 *
2883 * When a vm is present (instance creation), we need to do
2884 * a three-way merge between constructor options, instance
2885 * options and parent options.
2886 */
2887 function mergeAssets (
2888 parentVal,
2889 childVal,
2890 vm,
2891 key
2892 ) {
2893 var res = Object.create(parentVal || null);
2894 if (childVal) {
2895 true && assertObjectType(key, childVal, vm);
2896 return extend(res, childVal)
2897 } else {
2898 return res
2899 }
2900 }
2901
2902 ASSET_TYPES.forEach(function (type) {
2903 strats[type + 's'] = mergeAssets;
2904 });
2905
2906 /**
2907 * Watchers.
2908 *
2909 * Watchers hashes should not overwrite one
2910 * another, so we merge them as arrays.
2911 */
2912 strats.watch = function (
2913 parentVal,
2914 childVal,
2915 vm,
2916 key
2917 ) {
2918 // work around Firefox's Object.prototype.watch...
2919 if (parentVal === nativeWatch) { parentVal = undefined; }
2920 if (childVal === nativeWatch) { childVal = undefined; }
2921 /* istanbul ignore if */
2922 if (!childVal) { return Object.create(parentVal || null) }
2923 if (true) {
2924 assertObjectType(key, childVal, vm);
2925 }
2926 if (!parentVal) { return childVal }
2927 var ret = {};
2928 extend(ret, parentVal);
2929 for (var key$1 in childVal) {
2930 var parent = ret[key$1];
2931 var child = childVal[key$1];
2932 if (parent && !Array.isArray(parent)) {
2933 parent = [parent];
2934 }
2935 ret[key$1] = parent
2936 ? parent.concat(child)
2937 : Array.isArray(child) ? child : [child];
2938 }
2939 return ret
2940 };
2941
2942 /**
2943 * Other object hashes.
2944 */
2945 strats.props =
2946 strats.methods =
2947 strats.inject =
2948 strats.computed = function (
2949 parentVal,
2950 childVal,
2951 vm,
2952 key
2953 ) {
2954 if (childVal && "development" !== 'production') {
2955 assertObjectType(key, childVal, vm);
2956 }
2957 if (!parentVal) { return childVal }
2958 var ret = Object.create(null);
2959 extend(ret, parentVal);
2960 if (childVal) { extend(ret, childVal); }
2961 return ret
2962 };
2963 strats.provide = mergeDataOrFn;
2964
2965 /**
2966 * Default strategy.
2967 */
2968 var defaultStrat = function (parentVal, childVal) {
2969 return childVal === undefined
2970 ? parentVal
2971 : childVal
2972 };
2973
2974 /**
2975 * Validate component names
2976 */
2977 function checkComponents (options) {
2978 for (var key in options.components) {
2979 validateComponentName(key);
2980 }
2981 }
2982
2983 function validateComponentName (name) {
2984 if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" + (unicodeRegExp.source) + "]*$")).test(name)) {
2985 warn(
2986 'Invalid component name: "' + name + '". Component names ' +
2987 'should conform to valid custom element name in html5 specification.'
2988 );
2989 }
2990 if (isBuiltInTag(name) || config.isReservedTag(name)) {
2991 warn(
2992 'Do not use built-in or reserved HTML elements as component ' +
2993 'id: ' + name
2994 );
2995 }
2996 }
2997
2998 /**
2999 * Ensure all props option syntax are normalized into the
3000 * Object-based format.
3001 */
3002 function normalizeProps (options, vm) {
3003 var props = options.props;
3004 if (!props) { return }
3005 var res = {};
3006 var i, val, name;
3007 if (Array.isArray(props)) {
3008 i = props.length;
3009 while (i--) {
3010 val = props[i];
3011 if (typeof val === 'string') {
3012 name = camelize(val);
3013 res[name] = { type: null };
3014 } else if (true) {
3015 warn('props must be strings when using array syntax.');
3016 }
3017 }
3018 } else if (isPlainObject(props)) {
3019 for (var key in props) {
3020 val = props[key];
3021 name = camelize(key);
3022 res[name] = isPlainObject(val)
3023 ? val
3024 : { type: val };
3025 }
3026 } else if (true) {
3027 warn(
3028 "Invalid value for option \"props\": expected an Array or an Object, " +
3029 "but got " + (toRawType(props)) + ".",
3030 vm
3031 );
3032 }
3033 options.props = res;
3034 }
3035
3036 /**
3037 * Normalize all injections into Object-based format
3038 */
3039 function normalizeInject (options, vm) {
3040 var inject = options.inject;
3041 if (!inject) { return }
3042 var normalized = options.inject = {};
3043 if (Array.isArray(inject)) {
3044 for (var i = 0; i < inject.length; i++) {
3045 normalized[inject[i]] = { from: inject[i] };
3046 }
3047 } else if (isPlainObject(inject)) {
3048 for (var key in inject) {
3049 var val = inject[key];
3050 normalized[key] = isPlainObject(val)
3051 ? extend({ from: key }, val)
3052 : { from: val };
3053 }
3054 } else if (true) {
3055 warn(
3056 "Invalid value for option \"inject\": expected an Array or an Object, " +
3057 "but got " + (toRawType(inject)) + ".",
3058 vm
3059 );
3060 }
3061 }
3062
3063 /**
3064 * Normalize raw function directives into object format.
3065 */
3066 function normalizeDirectives (options) {
3067 var dirs = options.directives;
3068 if (dirs) {
3069 for (var key in dirs) {
3070 var def$$1 = dirs[key];
3071 if (typeof def$$1 === 'function') {
3072 dirs[key] = { bind: def$$1, update: def$$1 };
3073 }
3074 }
3075 }
3076 }
3077
3078 function assertObjectType (name, value, vm) {
3079 if (!isPlainObject(value)) {
3080 warn(
3081 "Invalid value for option \"" + name + "\": expected an Object, " +
3082 "but got " + (toRawType(value)) + ".",
3083 vm
3084 );
3085 }
3086 }
3087
3088 /**
3089 * Merge two option objects into a new one.
3090 * Core utility used in both instantiation and inheritance.
3091 */
3092 function mergeOptions (
3093 parent,
3094 child,
3095 vm
3096 ) {
3097 if (true) {
3098 checkComponents(child);
3099 }
3100
3101 if (typeof child === 'function') {
3102 child = child.options;
3103 }
3104
3105 normalizeProps(child, vm);
3106 normalizeInject(child, vm);
3107 normalizeDirectives(child);
3108
3109 // Apply extends and mixins on the child options,
3110 // but only if it is a raw options object that isn't
3111 // the result of another mergeOptions call.
3112 // Only merged options has the _base property.
3113 if (!child._base) {
3114 if (child.extends) {
3115 parent = mergeOptions(parent, child.extends, vm);
3116 }
3117 if (child.mixins) {
3118 for (var i = 0, l = child.mixins.length; i < l; i++) {
3119 parent = mergeOptions(parent, child.mixins[i], vm);
3120 }
3121 }
3122 }
3123
3124 var options = {};
3125 var key;
3126 for (key in parent) {
3127 mergeField(key);
3128 }
3129 for (key in child) {
3130 if (!hasOwn(parent, key)) {
3131 mergeField(key);
3132 }
3133 }
3134 function mergeField (key) {
3135 var strat = strats[key] || defaultStrat;
3136 options[key] = strat(parent[key], child[key], vm, key);
3137 }
3138 return options
3139 }
3140
3141 /**
3142 * Resolve an asset.
3143 * This function is used because child instances need access
3144 * to assets defined in its ancestor chain.
3145 */
3146 function resolveAsset (
3147 options,
3148 type,
3149 id,
3150 warnMissing
3151 ) {
3152 /* istanbul ignore if */
3153 if (typeof id !== 'string') {
3154 return
3155 }
3156 var assets = options[type];
3157 // check local registration variations first
3158 if (hasOwn(assets, id)) { return assets[id] }
3159 var camelizedId = camelize(id);
3160 if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }
3161 var PascalCaseId = capitalize(camelizedId);
3162 if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }
3163 // fallback to prototype chain
3164 var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];
3165 if ( true && warnMissing && !res) {
3166 warn(
3167 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,
3168 options
3169 );
3170 }
3171 return res
3172 }
3173
3174 /* */
3175
3176
3177
3178 function validateProp (
3179 key,
3180 propOptions,
3181 propsData,
3182 vm
3183 ) {
3184 var prop = propOptions[key];
3185 var absent = !hasOwn(propsData, key);
3186 var value = propsData[key];
3187 // boolean casting
3188 var booleanIndex = getTypeIndex(Boolean, prop.type);
3189 if (booleanIndex > -1) {
3190 if (absent && !hasOwn(prop, 'default')) {
3191 value = false;
3192 } else if (value === '' || value === hyphenate(key)) {
3193 // only cast empty string / same name to boolean if
3194 // boolean has higher priority
3195 var stringIndex = getTypeIndex(String, prop.type);
3196 if (stringIndex < 0 || booleanIndex < stringIndex) {
3197 value = true;
3198 }
3199 }
3200 }
3201 // check default value
3202 if (value === undefined) {
3203 value = getPropDefaultValue(vm, prop, key);
3204 // since the default value is a fresh copy,
3205 // make sure to observe it.
3206 var prevShouldObserve = shouldObserve;
3207 toggleObserving(true);
3208 observe(value);
3209 toggleObserving(prevShouldObserve);
3210 }
3211 if (
3212 true
3213 ) {
3214 assertProp(prop, key, value, vm, absent);
3215 }
3216 return value
3217 }
3218
3219 /**
3220 * Get the default value of a prop.
3221 */
3222 function getPropDefaultValue (vm, prop, key) {
3223 // no default, return undefined
3224 if (!hasOwn(prop, 'default')) {
3225 return undefined
3226 }
3227 var def = prop.default;
3228 // warn against non-factory defaults for Object & Array
3229 if ( true && isObject(def)) {
3230 warn(
3231 'Invalid default value for prop "' + key + '": ' +
3232 'Props with type Object/Array must use a factory function ' +
3233 'to return the default value.',
3234 vm
3235 );
3236 }
3237 // the raw prop value was also undefined from previous render,
3238 // return previous default value to avoid unnecessary watcher trigger
3239 if (vm && vm.$options.propsData &&
3240 vm.$options.propsData[key] === undefined &&
3241 vm._props[key] !== undefined
3242 ) {
3243 return vm._props[key]
3244 }
3245 // call factory function for non-Function types
3246 // a value is Function if its prototype is function even across different execution context
3247 return typeof def === 'function' && getType(prop.type) !== 'Function'
3248 ? def.call(vm)
3249 : def
3250 }
3251
3252 /**
3253 * Assert whether a prop is valid.
3254 */
3255 function assertProp (
3256 prop,
3257 name,
3258 value,
3259 vm,
3260 absent
3261 ) {
3262 if (prop.required && absent) {
3263 warn(
3264 'Missing required prop: "' + name + '"',
3265 vm
3266 );
3267 return
3268 }
3269 if (value == null && !prop.required) {
3270 return
3271 }
3272 var type = prop.type;
3273 var valid = !type || type === true;
3274 var expectedTypes = [];
3275 if (type) {
3276 if (!Array.isArray(type)) {
3277 type = [type];
3278 }
3279 for (var i = 0; i < type.length && !valid; i++) {
3280 var assertedType = assertType(value, type[i]);
3281 expectedTypes.push(assertedType.expectedType || '');
3282 valid = assertedType.valid;
3283 }
3284 }
3285
3286 if (!valid) {
3287 warn(
3288 getInvalidTypeMessage(name, value, expectedTypes),
3289 vm
3290 );
3291 return
3292 }
3293 var validator = prop.validator;
3294 if (validator) {
3295 if (!validator(value)) {
3296 warn(
3297 'Invalid prop: custom validator check failed for prop "' + name + '".',
3298 vm
3299 );
3300 }
3301 }
3302 }
3303
3304 var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;
3305
3306 function assertType (value, type) {
3307 var valid;
3308 var expectedType = getType(type);
3309 if (simpleCheckRE.test(expectedType)) {
3310 var t = typeof value;
3311 valid = t === expectedType.toLowerCase();
3312 // for primitive wrapper objects
3313 if (!valid && t === 'object') {
3314 valid = value instanceof type;
3315 }
3316 } else if (expectedType === 'Object') {
3317 valid = isPlainObject(value);
3318 } else if (expectedType === 'Array') {
3319 valid = Array.isArray(value);
3320 } else {
3321 valid = value instanceof type;
3322 }
3323 return {
3324 valid: valid,
3325 expectedType: expectedType
3326 }
3327 }
3328
3329 /**
3330 * Use function string name to check built-in types,
3331 * because a simple equality check will fail when running
3332 * across different vms / iframes.
3333 */
3334 function getType (fn) {
3335 var match = fn && fn.toString().match(/^\s*function (\w+)/);
3336 return match ? match[1] : ''
3337 }
3338
3339 function isSameType (a, b) {
3340 return getType(a) === getType(b)
3341 }
3342
3343 function getTypeIndex (type, expectedTypes) {
3344 if (!Array.isArray(expectedTypes)) {
3345 return isSameType(expectedTypes, type) ? 0 : -1
3346 }
3347 for (var i = 0, len = expectedTypes.length; i < len; i++) {
3348 if (isSameType(expectedTypes[i], type)) {
3349 return i
3350 }
3351 }
3352 return -1
3353 }
3354
3355 function getInvalidTypeMessage (name, value, expectedTypes) {
3356 var message = "Invalid prop: type check failed for prop \"" + name + "\"." +
3357 " Expected " + (expectedTypes.map(capitalize).join(', '));
3358 var expectedType = expectedTypes[0];
3359 var receivedType = toRawType(value);
3360 var expectedValue = styleValue(value, expectedType);
3361 var receivedValue = styleValue(value, receivedType);
3362 // check if we need to specify expected value
3363 if (expectedTypes.length === 1 &&
3364 isExplicable(expectedType) &&
3365 !isBoolean(expectedType, receivedType)) {
3366 message += " with value " + expectedValue;
3367 }
3368 message += ", got " + receivedType + " ";
3369 // check if we need to specify received value
3370 if (isExplicable(receivedType)) {
3371 message += "with value " + receivedValue + ".";
3372 }
3373 return message
3374 }
3375
3376 function styleValue (value, type) {
3377 if (type === 'String') {
3378 return ("\"" + value + "\"")
3379 } else if (type === 'Number') {
3380 return ("" + (Number(value)))
3381 } else {
3382 return ("" + value)
3383 }
3384 }
3385
3386 function isExplicable (value) {
3387 var explicitTypes = ['string', 'number', 'boolean'];
3388 return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })
3389 }
3390
3391 function isBoolean () {
3392 var args = [], len = arguments.length;
3393 while ( len-- ) args[ len ] = arguments[ len ];
3394
3395 return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })
3396 }
3397
3398 /* */
3399
3400 function handleError (err, vm, info) {
3401 // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.
3402 // See: https://github.com/vuejs/vuex/issues/1505
3403 pushTarget();
3404 try {
3405 if (vm) {
3406 var cur = vm;
3407 while ((cur = cur.$parent)) {
3408 var hooks = cur.$options.errorCaptured;
3409 if (hooks) {
3410 for (var i = 0; i < hooks.length; i++) {
3411 try {
3412 var capture = hooks[i].call(cur, err, vm, info) === false;
3413 if (capture) { return }
3414 } catch (e) {
3415 globalHandleError(e, cur, 'errorCaptured hook');
3416 }
3417 }
3418 }
3419 }
3420 }
3421 globalHandleError(err, vm, info);
3422 } finally {
3423 popTarget();
3424 }
3425 }
3426
3427 function invokeWithErrorHandling (
3428 handler,
3429 context,
3430 args,
3431 vm,
3432 info
3433 ) {
3434 var res;
3435 try {
3436 res = args ? handler.apply(context, args) : handler.call(context);
3437 if (res && !res._isVue && isPromise(res) && !res._handled) {
3438 res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); });
3439 // issue #9511
3440 // avoid catch triggering multiple times when nested calls
3441 res._handled = true;
3442 }
3443 } catch (e) {
3444 handleError(e, vm, info);
3445 }
3446 return res
3447 }
3448
3449 function globalHandleError (err, vm, info) {
3450 if (config.errorHandler) {
3451 try {
3452 return config.errorHandler.call(null, err, vm, info)
3453 } catch (e) {
3454 // if the user intentionally throws the original error in the handler,
3455 // do not log it twice
3456 if (e !== err) {
3457 logError(e, null, 'config.errorHandler');
3458 }
3459 }
3460 }
3461 logError(err, vm, info);
3462 }
3463
3464 function logError (err, vm, info) {
3465 if (true) {
3466 warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm);
3467 }
3468 /* istanbul ignore else */
3469 if ((inBrowser || inWeex) && typeof console !== 'undefined') {
3470 console.error(err);
3471 } else {
3472 throw err
3473 }
3474 }
3475
3476 /* */
3477
3478 var callbacks = [];
3479 var pending = false;
3480
3481 function flushCallbacks () {
3482 pending = false;
3483 var copies = callbacks.slice(0);
3484 callbacks.length = 0;
3485 for (var i = 0; i < copies.length; i++) {
3486 copies[i]();
3487 }
3488 }
3489
3490 // Here we have async deferring wrappers using microtasks.
3491 // In 2.5 we used (macro) tasks (in combination with microtasks).
3492 // However, it has subtle problems when state is changed right before repaint
3493 // (e.g. #6813, out-in transitions).
3494 // Also, using (macro) tasks in event handler would cause some weird behaviors
3495 // that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).
3496 // So we now use microtasks everywhere, again.
3497 // A major drawback of this tradeoff is that there are some scenarios
3498 // where microtasks have too high a priority and fire in between supposedly
3499 // sequential events (e.g. #4521, #6690, which have workarounds)
3500 // or even between bubbling of the same event (#6566).
3501 var timerFunc;
3502
3503 // The nextTick behavior leverages the microtask queue, which can be accessed
3504 // via either native Promise.then or MutationObserver.
3505 // MutationObserver has wider support, however it is seriously bugged in
3506 // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It
3507 // completely stops working after triggering a few times... so, if native
3508 // Promise is available, we will use it:
3509 /* istanbul ignore next, $flow-disable-line */
3510 if (typeof Promise !== 'undefined' && isNative(Promise)) {
3511 var p = Promise.resolve();
3512 timerFunc = function () {
3513 p.then(flushCallbacks);
3514 // In problematic UIWebViews, Promise.then doesn't completely break, but
3515 // it can get stuck in a weird state where callbacks are pushed into the
3516 // microtask queue but the queue isn't being flushed, until the browser
3517 // needs to do some other work, e.g. handle a timer. Therefore we can
3518 // "force" the microtask queue to be flushed by adding an empty timer.
3519 if (isIOS) { setTimeout(noop); }
3520 };
3521 } else if (!isIE && typeof MutationObserver !== 'undefined' && (
3522 isNative(MutationObserver) ||
3523 // PhantomJS and iOS 7.x
3524 MutationObserver.toString() === '[object MutationObserverConstructor]'
3525 )) {
3526 // Use MutationObserver where native Promise is not available,
3527 // e.g. PhantomJS, iOS7, Android 4.4
3528 // (#6466 MutationObserver is unreliable in IE11)
3529 var counter = 1;
3530 var observer = new MutationObserver(flushCallbacks);
3531 var textNode = document.createTextNode(String(counter));
3532 observer.observe(textNode, {
3533 characterData: true
3534 });
3535 timerFunc = function () {
3536 counter = (counter + 1) % 2;
3537 textNode.data = String(counter);
3538 };
3539 } else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {
3540 // Fallback to setImmediate.
3541 // Technically it leverages the (macro) task queue,
3542 // but it is still a better choice than setTimeout.
3543 timerFunc = function () {
3544 setImmediate(flushCallbacks);
3545 };
3546 } else {
3547 // Fallback to setTimeout.
3548 timerFunc = function () {
3549 setTimeout(flushCallbacks, 0);
3550 };
3551 }
3552
3553 function nextTick (cb, ctx) {
3554 var _resolve;
3555 callbacks.push(function () {
3556 if (cb) {
3557 try {
3558 cb.call(ctx);
3559 } catch (e) {
3560 handleError(e, ctx, 'nextTick');
3561 }
3562 } else if (_resolve) {
3563 _resolve(ctx);
3564 }
3565 });
3566 if (!pending) {
3567 pending = true;
3568 timerFunc();
3569 }
3570 // $flow-disable-line
3571 if (!cb && typeof Promise !== 'undefined') {
3572 return new Promise(function (resolve) {
3573 _resolve = resolve;
3574 })
3575 }
3576 }
3577
3578 /* */
3579
3580 /* not type checking this file because flow doesn't play well with Proxy */
3581
3582 var initProxy;
3583
3584 if (true) {
3585 var allowedGlobals = makeMap(
3586 'Infinity,undefined,NaN,isFinite,isNaN,' +
3587 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +
3588 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +
3589 'require' // for Webpack/Browserify
3590 );
3591
3592 var warnNonPresent = function (target, key) {
3593 warn(
3594 "Property or method \"" + key + "\" is not defined on the instance but " +
3595 'referenced during render. Make sure that this property is reactive, ' +
3596 'either in the data option, or for class-based components, by ' +
3597 'initializing the property. ' +
3598 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',
3599 target
3600 );
3601 };
3602
3603 var warnReservedPrefix = function (target, key) {
3604 warn(
3605 "Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " +
3606 'properties starting with "$" or "_" are not proxied in the Vue instance to ' +
3607 'prevent conflicts with Vue internals. ' +
3608 'See: https://vuejs.org/v2/api/#data',
3609 target
3610 );
3611 };
3612
3613 var hasProxy =
3614 typeof Proxy !== 'undefined' && isNative(Proxy);
3615
3616 if (hasProxy) {
3617 var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');
3618 config.keyCodes = new Proxy(config.keyCodes, {
3619 set: function set (target, key, value) {
3620 if (isBuiltInModifier(key)) {
3621 warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key));
3622 return false
3623 } else {
3624 target[key] = value;
3625 return true
3626 }
3627 }
3628 });
3629 }
3630
3631 var hasHandler = {
3632 has: function has (target, key) {
3633 var has = key in target;
3634 var isAllowed = allowedGlobals(key) ||
3635 (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));
3636 if (!has && !isAllowed) {
3637 if (key in target.$data) { warnReservedPrefix(target, key); }
3638 else { warnNonPresent(target, key); }
3639 }
3640 return has || !isAllowed
3641 }
3642 };
3643
3644 var getHandler = {
3645 get: function get (target, key) {
3646 if (typeof key === 'string' && !(key in target)) {
3647 if (key in target.$data) { warnReservedPrefix(target, key); }
3648 else { warnNonPresent(target, key); }
3649 }
3650 return target[key]
3651 }
3652 };
3653
3654 initProxy = function initProxy (vm) {
3655 if (hasProxy) {
3656 // determine which proxy handler to use
3657 var options = vm.$options;
3658 var handlers = options.render && options.render._withStripped
3659 ? getHandler
3660 : hasHandler;
3661 vm._renderProxy = new Proxy(vm, handlers);
3662 } else {
3663 vm._renderProxy = vm;
3664 }
3665 };
3666 }
3667
3668 /* */
3669
3670 var seenObjects = new _Set();
3671
3672 /**
3673 * Recursively traverse an object to evoke all converted
3674 * getters, so that every nested property inside the object
3675 * is collected as a "deep" dependency.
3676 */
3677 function traverse (val) {
3678 _traverse(val, seenObjects);
3679 seenObjects.clear();
3680 }
3681
3682 function _traverse (val, seen) {
3683 var i, keys;
3684 var isA = Array.isArray(val);
3685 if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {
3686 return
3687 }
3688 if (val.__ob__) {
3689 var depId = val.__ob__.dep.id;
3690 if (seen.has(depId)) {
3691 return
3692 }
3693 seen.add(depId);
3694 }
3695 if (isA) {
3696 i = val.length;
3697 while (i--) { _traverse(val[i], seen); }
3698 } else {
3699 keys = Object.keys(val);
3700 i = keys.length;
3701 while (i--) { _traverse(val[keys[i]], seen); }
3702 }
3703 }
3704
3705 var mark;
3706 var measure;
3707
3708 if (true) {
3709 var perf = inBrowser && window.performance;
3710 /* istanbul ignore if */
3711 if (
3712 perf &&
3713 perf.mark &&
3714 perf.measure &&
3715 perf.clearMarks &&
3716 perf.clearMeasures
3717 ) {
3718 mark = function (tag) { return perf.mark(tag); };
3719 measure = function (name, startTag, endTag) {
3720 perf.measure(name, startTag, endTag);
3721 perf.clearMarks(startTag);
3722 perf.clearMarks(endTag);
3723 // perf.clearMeasures(name)
3724 };
3725 }
3726 }
3727
3728 /* */
3729
3730 var normalizeEvent = cached(function (name) {
3731 var passive = name.charAt(0) === '&';
3732 name = passive ? name.slice(1) : name;
3733 var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first
3734 name = once$$1 ? name.slice(1) : name;
3735 var capture = name.charAt(0) === '!';
3736 name = capture ? name.slice(1) : name;
3737 return {
3738 name: name,
3739 once: once$$1,
3740 capture: capture,
3741 passive: passive
3742 }
3743 });
3744
3745 function createFnInvoker (fns, vm) {
3746 function invoker () {
3747 var arguments$1 = arguments;
3748
3749 var fns = invoker.fns;
3750 if (Array.isArray(fns)) {
3751 var cloned = fns.slice();
3752 for (var i = 0; i < cloned.length; i++) {
3753 invokeWithErrorHandling(cloned[i], null, arguments$1, vm, "v-on handler");
3754 }
3755 } else {
3756 // return handler return value for single handlers
3757 return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler")
3758 }
3759 }
3760 invoker.fns = fns;
3761 return invoker
3762 }
3763
3764 function updateListeners (
3765 on,
3766 oldOn,
3767 add,
3768 remove$$1,
3769 createOnceHandler,
3770 vm
3771 ) {
3772 var name, def$$1, cur, old, event;
3773 for (name in on) {
3774 def$$1 = cur = on[name];
3775 old = oldOn[name];
3776 event = normalizeEvent(name);
3777 if (isUndef(cur)) {
3778 true && warn(
3779 "Invalid handler for event \"" + (event.name) + "\": got " + String(cur),
3780 vm
3781 );
3782 } else if (isUndef(old)) {
3783 if (isUndef(cur.fns)) {
3784 cur = on[name] = createFnInvoker(cur, vm);
3785 }
3786 if (isTrue(event.once)) {
3787 cur = on[name] = createOnceHandler(event.name, cur, event.capture);
3788 }
3789 add(event.name, cur, event.capture, event.passive, event.params);
3790 } else if (cur !== old) {
3791 old.fns = cur;
3792 on[name] = old;
3793 }
3794 }
3795 for (name in oldOn) {
3796 if (isUndef(on[name])) {
3797 event = normalizeEvent(name);
3798 remove$$1(event.name, oldOn[name], event.capture);
3799 }
3800 }
3801 }
3802
3803 /* */
3804
3805 /* */
3806
3807 // fixed by xxxxxx (mp properties)
3808 function extractPropertiesFromVNodeData(data, Ctor, res, context) {
3809 var propOptions = Ctor.options.mpOptions && Ctor.options.mpOptions.properties;
3810 if (isUndef(propOptions)) {
3811 return res
3812 }
3813 var externalClasses = Ctor.options.mpOptions.externalClasses || [];
3814 var attrs = data.attrs;
3815 var props = data.props;
3816 if (isDef(attrs) || isDef(props)) {
3817 for (var key in propOptions) {
3818 var altKey = hyphenate(key);
3819 var result = checkProp(res, props, key, altKey, true) ||
3820 checkProp(res, attrs, key, altKey, false);
3821 // externalClass
3822 if (
3823 result &&
3824 res[key] &&
3825 externalClasses.indexOf(altKey) !== -1 &&
3826 context[camelize(res[key])]
3827 ) {
3828 // 赋值 externalClass 真正的值(模板里 externalClass 的值可能是字符串)
3829 res[key] = context[camelize(res[key])];
3830 }
3831 }
3832 }
3833 return res
3834 }
3835
3836 function extractPropsFromVNodeData (
3837 data,
3838 Ctor,
3839 tag,
3840 context// fixed by xxxxxx
3841 ) {
3842 // we are only extracting raw values here.
3843 // validation and default values are handled in the child
3844 // component itself.
3845 var propOptions = Ctor.options.props;
3846 if (isUndef(propOptions)) {
3847 // fixed by xxxxxx
3848 return extractPropertiesFromVNodeData(data, Ctor, {}, context)
3849 }
3850 var res = {};
3851 var attrs = data.attrs;
3852 var props = data.props;
3853 if (isDef(attrs) || isDef(props)) {
3854 for (var key in propOptions) {
3855 var altKey = hyphenate(key);
3856 if (true) {
3857 var keyInLowerCase = key.toLowerCase();
3858 if (
3859 key !== keyInLowerCase &&
3860 attrs && hasOwn(attrs, keyInLowerCase)
3861 ) {
3862 tip(
3863 "Prop \"" + keyInLowerCase + "\" is passed to component " +
3864 (formatComponentName(tag || Ctor)) + ", but the declared prop name is" +
3865 " \"" + key + "\". " +
3866 "Note that HTML attributes are case-insensitive and camelCased " +
3867 "props need to use their kebab-case equivalents when using in-DOM " +
3868 "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"."
3869 );
3870 }
3871 }
3872 checkProp(res, props, key, altKey, true) ||
3873 checkProp(res, attrs, key, altKey, false);
3874 }
3875 }
3876 // fixed by xxxxxx
3877 return extractPropertiesFromVNodeData(data, Ctor, res, context)
3878 }
3879
3880 function checkProp (
3881 res,
3882 hash,
3883 key,
3884 altKey,
3885 preserve
3886 ) {
3887 if (isDef(hash)) {
3888 if (hasOwn(hash, key)) {
3889 res[key] = hash[key];
3890 if (!preserve) {
3891 delete hash[key];
3892 }
3893 return true
3894 } else if (hasOwn(hash, altKey)) {
3895 res[key] = hash[altKey];
3896 if (!preserve) {
3897 delete hash[altKey];
3898 }
3899 return true
3900 }
3901 }
3902 return false
3903 }
3904
3905 /* */
3906
3907 // The template compiler attempts to minimize the need for normalization by
3908 // statically analyzing the template at compile time.
3909 //
3910 // For plain HTML markup, normalization can be completely skipped because the
3911 // generated render function is guaranteed to return Array<VNode>. There are
3912 // two cases where extra normalization is needed:
3913
3914 // 1. When the children contains components - because a functional component
3915 // may return an Array instead of a single root. In this case, just a simple
3916 // normalization is needed - if any child is an Array, we flatten the whole
3917 // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep
3918 // because functional components already normalize their own children.
3919 function simpleNormalizeChildren (children) {
3920 for (var i = 0; i < children.length; i++) {
3921 if (Array.isArray(children[i])) {
3922 return Array.prototype.concat.apply([], children)
3923 }
3924 }
3925 return children
3926 }
3927
3928 // 2. When the children contains constructs that always generated nested Arrays,
3929 // e.g. <template>, <slot>, v-for, or when the children is provided by user
3930 // with hand-written render functions / JSX. In such cases a full normalization
3931 // is needed to cater to all possible types of children values.
3932 function normalizeChildren (children) {
3933 return isPrimitive(children)
3934 ? [createTextVNode(children)]
3935 : Array.isArray(children)
3936 ? normalizeArrayChildren(children)
3937 : undefined
3938 }
3939
3940 function isTextNode (node) {
3941 return isDef(node) && isDef(node.text) && isFalse(node.isComment)
3942 }
3943
3944 function normalizeArrayChildren (children, nestedIndex) {
3945 var res = [];
3946 var i, c, lastIndex, last;
3947 for (i = 0; i < children.length; i++) {
3948 c = children[i];
3949 if (isUndef(c) || typeof c === 'boolean') { continue }
3950 lastIndex = res.length - 1;
3951 last = res[lastIndex];
3952 // nested
3953 if (Array.isArray(c)) {
3954 if (c.length > 0) {
3955 c = normalizeArrayChildren(c, ((nestedIndex || '') + "_" + i));
3956 // merge adjacent text nodes
3957 if (isTextNode(c[0]) && isTextNode(last)) {
3958 res[lastIndex] = createTextVNode(last.text + (c[0]).text);
3959 c.shift();
3960 }
3961 res.push.apply(res, c);
3962 }
3963 } else if (isPrimitive(c)) {
3964 if (isTextNode(last)) {
3965 // merge adjacent text nodes
3966 // this is necessary for SSR hydration because text nodes are
3967 // essentially merged when rendered to HTML strings
3968 res[lastIndex] = createTextVNode(last.text + c);
3969 } else if (c !== '') {
3970 // convert primitive to vnode
3971 res.push(createTextVNode(c));
3972 }
3973 } else {
3974 if (isTextNode(c) && isTextNode(last)) {
3975 // merge adjacent text nodes
3976 res[lastIndex] = createTextVNode(last.text + c.text);
3977 } else {
3978 // default key for nested array children (likely generated by v-for)
3979 if (isTrue(children._isVList) &&
3980 isDef(c.tag) &&
3981 isUndef(c.key) &&
3982 isDef(nestedIndex)) {
3983 c.key = "__vlist" + nestedIndex + "_" + i + "__";
3984 }
3985 res.push(c);
3986 }
3987 }
3988 }
3989 return res
3990 }
3991
3992 /* */
3993
3994 function initProvide (vm) {
3995 var provide = vm.$options.provide;
3996 if (provide) {
3997 vm._provided = typeof provide === 'function'
3998 ? provide.call(vm)
3999 : provide;
4000 }
4001 }
4002
4003 function initInjections (vm) {
4004 var result = resolveInject(vm.$options.inject, vm);
4005 if (result) {
4006 toggleObserving(false);
4007 Object.keys(result).forEach(function (key) {
4008 /* istanbul ignore else */
4009 if (true) {
4010 defineReactive$$1(vm, key, result[key], function () {
4011 warn(
4012 "Avoid mutating an injected value directly since the changes will be " +
4013 "overwritten whenever the provided component re-renders. " +
4014 "injection being mutated: \"" + key + "\"",
4015 vm
4016 );
4017 });
4018 } else {}
4019 });
4020 toggleObserving(true);
4021 }
4022 }
4023
4024 function resolveInject (inject, vm) {
4025 if (inject) {
4026 // inject is :any because flow is not smart enough to figure out cached
4027 var result = Object.create(null);
4028 var keys = hasSymbol
4029 ? Reflect.ownKeys(inject)
4030 : Object.keys(inject);
4031
4032 for (var i = 0; i < keys.length; i++) {
4033 var key = keys[i];
4034 // #6574 in case the inject object is observed...
4035 if (key === '__ob__') { continue }
4036 var provideKey = inject[key].from;
4037 var source = vm;
4038 while (source) {
4039 if (source._provided && hasOwn(source._provided, provideKey)) {
4040 result[key] = source._provided[provideKey];
4041 break
4042 }
4043 source = source.$parent;
4044 }
4045 if (!source) {
4046 if ('default' in inject[key]) {
4047 var provideDefault = inject[key].default;
4048 result[key] = typeof provideDefault === 'function'
4049 ? provideDefault.call(vm)
4050 : provideDefault;
4051 } else if (true) {
4052 warn(("Injection \"" + key + "\" not found"), vm);
4053 }
4054 }
4055 }
4056 return result
4057 }
4058 }
4059
4060 /* */
4061
4062
4063
4064 /**
4065 * Runtime helper for resolving raw children VNodes into a slot object.
4066 */
4067 function resolveSlots (
4068 children,
4069 context
4070 ) {
4071 if (!children || !children.length) {
4072 return {}
4073 }
4074 var slots = {};
4075 for (var i = 0, l = children.length; i < l; i++) {
4076 var child = children[i];
4077 var data = child.data;
4078 // remove slot attribute if the node is resolved as a Vue slot node
4079 if (data && data.attrs && data.attrs.slot) {
4080 delete data.attrs.slot;
4081 }
4082 // named slots should only be respected if the vnode was rendered in the
4083 // same context.
4084 if ((child.context === context || child.fnContext === context) &&
4085 data && data.slot != null
4086 ) {
4087 var name = data.slot;
4088 var slot = (slots[name] || (slots[name] = []));
4089 if (child.tag === 'template') {
4090 slot.push.apply(slot, child.children || []);
4091 } else {
4092 slot.push(child);
4093 }
4094 } else {
4095 // fixed by xxxxxx 临时 hack 掉 uni-app 中的异步 name slot page
4096 if(child.asyncMeta && child.asyncMeta.data && child.asyncMeta.data.slot === 'page'){
4097 (slots['page'] || (slots['page'] = [])).push(child);
4098 }else{
4099 (slots.default || (slots.default = [])).push(child);
4100 }
4101 }
4102 }
4103 // ignore slots that contains only whitespace
4104 for (var name$1 in slots) {
4105 if (slots[name$1].every(isWhitespace)) {
4106 delete slots[name$1];
4107 }
4108 }
4109 return slots
4110 }
4111
4112 function isWhitespace (node) {
4113 return (node.isComment && !node.asyncFactory) || node.text === ' '
4114 }
4115
4116 /* */
4117
4118 function normalizeScopedSlots (
4119 slots,
4120 normalSlots,
4121 prevSlots
4122 ) {
4123 var res;
4124 var hasNormalSlots = Object.keys(normalSlots).length > 0;
4125 var isStable = slots ? !!slots.$stable : !hasNormalSlots;
4126 var key = slots && slots.$key;
4127 if (!slots) {
4128 res = {};
4129 } else if (slots._normalized) {
4130 // fast path 1: child component re-render only, parent did not change
4131 return slots._normalized
4132 } else if (
4133 isStable &&
4134 prevSlots &&
4135 prevSlots !== emptyObject &&
4136 key === prevSlots.$key &&
4137 !hasNormalSlots &&
4138 !prevSlots.$hasNormal
4139 ) {
4140 // fast path 2: stable scoped slots w/ no normal slots to proxy,
4141 // only need to normalize once
4142 return prevSlots
4143 } else {
4144 res = {};
4145 for (var key$1 in slots) {
4146 if (slots[key$1] && key$1[0] !== '$') {
4147 res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);
4148 }
4149 }
4150 }
4151 // expose normal slots on scopedSlots
4152 for (var key$2 in normalSlots) {
4153 if (!(key$2 in res)) {
4154 res[key$2] = proxyNormalSlot(normalSlots, key$2);
4155 }
4156 }
4157 // avoriaz seems to mock a non-extensible $scopedSlots object
4158 // and when that is passed down this would cause an error
4159 if (slots && Object.isExtensible(slots)) {
4160 (slots)._normalized = res;
4161 }
4162 def(res, '$stable', isStable);
4163 def(res, '$key', key);
4164 def(res, '$hasNormal', hasNormalSlots);
4165 return res
4166 }
4167
4168 function normalizeScopedSlot(normalSlots, key, fn) {
4169 var normalized = function () {
4170 var res = arguments.length ? fn.apply(null, arguments) : fn({});
4171 res = res && typeof res === 'object' && !Array.isArray(res)
4172 ? [res] // single vnode
4173 : normalizeChildren(res);
4174 return res && (
4175 res.length === 0 ||
4176 (res.length === 1 && res[0].isComment) // #9658
4177 ) ? undefined
4178 : res
4179 };
4180 // this is a slot using the new v-slot syntax without scope. although it is
4181 // compiled as a scoped slot, render fn users would expect it to be present
4182 // on this.$slots because the usage is semantically a normal slot.
4183 if (fn.proxy) {
4184 Object.defineProperty(normalSlots, key, {
4185 get: normalized,
4186 enumerable: true,
4187 configurable: true
4188 });
4189 }
4190 return normalized
4191 }
4192
4193 function proxyNormalSlot(slots, key) {
4194 return function () { return slots[key]; }
4195 }
4196
4197 /* */
4198
4199 /**
4200 * Runtime helper for rendering v-for lists.
4201 */
4202 function renderList (
4203 val,
4204 render
4205 ) {
4206 var ret, i, l, keys, key;
4207 if (Array.isArray(val) || typeof val === 'string') {
4208 ret = new Array(val.length);
4209 for (i = 0, l = val.length; i < l; i++) {
4210 ret[i] = render(val[i], i, i, i); // fixed by xxxxxx
4211 }
4212 } else if (typeof val === 'number') {
4213 ret = new Array(val);
4214 for (i = 0; i < val; i++) {
4215 ret[i] = render(i + 1, i, i, i); // fixed by xxxxxx
4216 }
4217 } else if (isObject(val)) {
4218 if (hasSymbol && val[Symbol.iterator]) {
4219 ret = [];
4220 var iterator = val[Symbol.iterator]();
4221 var result = iterator.next();
4222 while (!result.done) {
4223 ret.push(render(result.value, ret.length, i++, i)); // fixed by xxxxxx
4224 result = iterator.next();
4225 }
4226 } else {
4227 keys = Object.keys(val);
4228 ret = new Array(keys.length);
4229 for (i = 0, l = keys.length; i < l; i++) {
4230 key = keys[i];
4231 ret[i] = render(val[key], key, i, i); // fixed by xxxxxx
4232 }
4233 }
4234 }
4235 if (!isDef(ret)) {
4236 ret = [];
4237 }
4238 (ret)._isVList = true;
4239 return ret
4240 }
4241
4242 /* */
4243
4244 /**
4245 * Runtime helper for rendering <slot>
4246 */
4247 function renderSlot (
4248 name,
4249 fallback,
4250 props,
4251 bindObject
4252 ) {
4253 var scopedSlotFn = this.$scopedSlots[name];
4254 var nodes;
4255 if (scopedSlotFn) { // scoped slot
4256 props = props || {};
4257 if (bindObject) {
4258 if ( true && !isObject(bindObject)) {
4259 warn(
4260 'slot v-bind without argument expects an Object',
4261 this
4262 );
4263 }
4264 props = extend(extend({}, bindObject), props);
4265 }
4266 // fixed by xxxxxx app-plus scopedSlot
4267 nodes = scopedSlotFn(props, this, props._i) || fallback;
4268 } else {
4269 nodes = this.$slots[name] || fallback;
4270 }
4271
4272 var target = props && props.slot;
4273 if (target) {
4274 return this.$createElement('template', { slot: target }, nodes)
4275 } else {
4276 return nodes
4277 }
4278 }
4279
4280 /* */
4281
4282 /**
4283 * Runtime helper for resolving filters
4284 */
4285 function resolveFilter (id) {
4286 return resolveAsset(this.$options, 'filters', id, true) || identity
4287 }
4288
4289 /* */
4290
4291 function isKeyNotMatch (expect, actual) {
4292 if (Array.isArray(expect)) {
4293 return expect.indexOf(actual) === -1
4294 } else {
4295 return expect !== actual
4296 }
4297 }
4298
4299 /**
4300 * Runtime helper for checking keyCodes from config.
4301 * exposed as Vue.prototype._k
4302 * passing in eventKeyName as last argument separately for backwards compat
4303 */
4304 function checkKeyCodes (
4305 eventKeyCode,
4306 key,
4307 builtInKeyCode,
4308 eventKeyName,
4309 builtInKeyName
4310 ) {
4311 var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;
4312 if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {
4313 return isKeyNotMatch(builtInKeyName, eventKeyName)
4314 } else if (mappedKeyCode) {
4315 return isKeyNotMatch(mappedKeyCode, eventKeyCode)
4316 } else if (eventKeyName) {
4317 return hyphenate(eventKeyName) !== key
4318 }
4319 }
4320
4321 /* */
4322
4323 /**
4324 * Runtime helper for merging v-bind="object" into a VNode's data.
4325 */
4326 function bindObjectProps (
4327 data,
4328 tag,
4329 value,
4330 asProp,
4331 isSync
4332 ) {
4333 if (value) {
4334 if (!isObject(value)) {
4335 true && warn(
4336 'v-bind without argument expects an Object or Array value',
4337 this
4338 );
4339 } else {
4340 if (Array.isArray(value)) {
4341 value = toObject(value);
4342 }
4343 var hash;
4344 var loop = function ( key ) {
4345 if (
4346 key === 'class' ||
4347 key === 'style' ||
4348 isReservedAttribute(key)
4349 ) {
4350 hash = data;
4351 } else {
4352 var type = data.attrs && data.attrs.type;
4353 hash = asProp || config.mustUseProp(tag, type, key)
4354 ? data.domProps || (data.domProps = {})
4355 : data.attrs || (data.attrs = {});
4356 }
4357 var camelizedKey = camelize(key);
4358 var hyphenatedKey = hyphenate(key);
4359 if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {
4360 hash[key] = value[key];
4361
4362 if (isSync) {
4363 var on = data.on || (data.on = {});
4364 on[("update:" + key)] = function ($event) {
4365 value[key] = $event;
4366 };
4367 }
4368 }
4369 };
4370
4371 for (var key in value) loop( key );
4372 }
4373 }
4374 return data
4375 }
4376
4377 /* */
4378
4379 /**
4380 * Runtime helper for rendering static trees.
4381 */
4382 function renderStatic (
4383 index,
4384 isInFor
4385 ) {
4386 var cached = this._staticTrees || (this._staticTrees = []);
4387 var tree = cached[index];
4388 // if has already-rendered static tree and not inside v-for,
4389 // we can reuse the same tree.
4390 if (tree && !isInFor) {
4391 return tree
4392 }
4393 // otherwise, render a fresh tree.
4394 tree = cached[index] = this.$options.staticRenderFns[index].call(
4395 this._renderProxy,
4396 null,
4397 this // for render fns generated for functional component templates
4398 );
4399 markStatic(tree, ("__static__" + index), false);
4400 return tree
4401 }
4402
4403 /**
4404 * Runtime helper for v-once.
4405 * Effectively it means marking the node as static with a unique key.
4406 */
4407 function markOnce (
4408 tree,
4409 index,
4410 key
4411 ) {
4412 markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true);
4413 return tree
4414 }
4415
4416 function markStatic (
4417 tree,
4418 key,
4419 isOnce
4420 ) {
4421 if (Array.isArray(tree)) {
4422 for (var i = 0; i < tree.length; i++) {
4423 if (tree[i] && typeof tree[i] !== 'string') {
4424 markStaticNode(tree[i], (key + "_" + i), isOnce);
4425 }
4426 }
4427 } else {
4428 markStaticNode(tree, key, isOnce);
4429 }
4430 }
4431
4432 function markStaticNode (node, key, isOnce) {
4433 node.isStatic = true;
4434 node.key = key;
4435 node.isOnce = isOnce;
4436 }
4437
4438 /* */
4439
4440 function bindObjectListeners (data, value) {
4441 if (value) {
4442 if (!isPlainObject(value)) {
4443 true && warn(
4444 'v-on without argument expects an Object value',
4445 this
4446 );
4447 } else {
4448 var on = data.on = data.on ? extend({}, data.on) : {};
4449 for (var key in value) {
4450 var existing = on[key];
4451 var ours = value[key];
4452 on[key] = existing ? [].concat(existing, ours) : ours;
4453 }
4454 }
4455 }
4456 return data
4457 }
4458
4459 /* */
4460
4461 function resolveScopedSlots (
4462 fns, // see flow/vnode
4463 res,
4464 // the following are added in 2.6
4465 hasDynamicKeys,
4466 contentHashKey
4467 ) {
4468 res = res || { $stable: !hasDynamicKeys };
4469 for (var i = 0; i < fns.length; i++) {
4470 var slot = fns[i];
4471 if (Array.isArray(slot)) {
4472 resolveScopedSlots(slot, res, hasDynamicKeys);
4473 } else if (slot) {
4474 // marker for reverse proxying v-slot without scope on this.$slots
4475 if (slot.proxy) {
4476 slot.fn.proxy = true;
4477 }
4478 res[slot.key] = slot.fn;
4479 }
4480 }
4481 if (contentHashKey) {
4482 (res).$key = contentHashKey;
4483 }
4484 return res
4485 }
4486
4487 /* */
4488
4489 function bindDynamicKeys (baseObj, values) {
4490 for (var i = 0; i < values.length; i += 2) {
4491 var key = values[i];
4492 if (typeof key === 'string' && key) {
4493 baseObj[values[i]] = values[i + 1];
4494 } else if ( true && key !== '' && key !== null) {
4495 // null is a special value for explicitly removing a binding
4496 warn(
4497 ("Invalid value for dynamic directive argument (expected string or null): " + key),
4498 this
4499 );
4500 }
4501 }
4502 return baseObj
4503 }
4504
4505 // helper to dynamically append modifier runtime markers to event names.
4506 // ensure only append when value is already string, otherwise it will be cast
4507 // to string and cause the type check to miss.
4508 function prependModifier (value, symbol) {
4509 return typeof value === 'string' ? symbol + value : value
4510 }
4511
4512 /* */
4513
4514 function installRenderHelpers (target) {
4515 target._o = markOnce;
4516 target._n = toNumber;
4517 target._s = toString;
4518 target._l = renderList;
4519 target._t = renderSlot;
4520 target._q = looseEqual;
4521 target._i = looseIndexOf;
4522 target._m = renderStatic;
4523 target._f = resolveFilter;
4524 target._k = checkKeyCodes;
4525 target._b = bindObjectProps;
4526 target._v = createTextVNode;
4527 target._e = createEmptyVNode;
4528 target._u = resolveScopedSlots;
4529 target._g = bindObjectListeners;
4530 target._d = bindDynamicKeys;
4531 target._p = prependModifier;
4532 }
4533
4534 /* */
4535
4536 function FunctionalRenderContext (
4537 data,
4538 props,
4539 children,
4540 parent,
4541 Ctor
4542 ) {
4543 var this$1 = this;
4544
4545 var options = Ctor.options;
4546 // ensure the createElement function in functional components
4547 // gets a unique context - this is necessary for correct named slot check
4548 var contextVm;
4549 if (hasOwn(parent, '_uid')) {
4550 contextVm = Object.create(parent);
4551 // $flow-disable-line
4552 contextVm._original = parent;
4553 } else {
4554 // the context vm passed in is a functional context as well.
4555 // in this case we want to make sure we are able to get a hold to the
4556 // real context instance.
4557 contextVm = parent;
4558 // $flow-disable-line
4559 parent = parent._original;
4560 }
4561 var isCompiled = isTrue(options._compiled);
4562 var needNormalization = !isCompiled;
4563
4564 this.data = data;
4565 this.props = props;
4566 this.children = children;
4567 this.parent = parent;
4568 this.listeners = data.on || emptyObject;
4569 this.injections = resolveInject(options.inject, parent);
4570 this.slots = function () {
4571 if (!this$1.$slots) {
4572 normalizeScopedSlots(
4573 data.scopedSlots,
4574 this$1.$slots = resolveSlots(children, parent)
4575 );
4576 }
4577 return this$1.$slots
4578 };
4579
4580 Object.defineProperty(this, 'scopedSlots', ({
4581 enumerable: true,
4582 get: function get () {
4583 return normalizeScopedSlots(data.scopedSlots, this.slots())
4584 }
4585 }));
4586
4587 // support for compiled functional template
4588 if (isCompiled) {
4589 // exposing $options for renderStatic()
4590 this.$options = options;
4591 // pre-resolve slots for renderSlot()
4592 this.$slots = this.slots();
4593 this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);
4594 }
4595
4596 if (options._scopeId) {
4597 this._c = function (a, b, c, d) {
4598 var vnode = createElement(contextVm, a, b, c, d, needNormalization);
4599 if (vnode && !Array.isArray(vnode)) {
4600 vnode.fnScopeId = options._scopeId;
4601 vnode.fnContext = parent;
4602 }
4603 return vnode
4604 };
4605 } else {
4606 this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };
4607 }
4608 }
4609
4610 installRenderHelpers(FunctionalRenderContext.prototype);
4611
4612 function createFunctionalComponent (
4613 Ctor,
4614 propsData,
4615 data,
4616 contextVm,
4617 children
4618 ) {
4619 var options = Ctor.options;
4620 var props = {};
4621 var propOptions = options.props;
4622 if (isDef(propOptions)) {
4623 for (var key in propOptions) {
4624 props[key] = validateProp(key, propOptions, propsData || emptyObject);
4625 }
4626 } else {
4627 if (isDef(data.attrs)) { mergeProps(props, data.attrs); }
4628 if (isDef(data.props)) { mergeProps(props, data.props); }
4629 }
4630
4631 var renderContext = new FunctionalRenderContext(
4632 data,
4633 props,
4634 children,
4635 contextVm,
4636 Ctor
4637 );
4638
4639 var vnode = options.render.call(null, renderContext._c, renderContext);
4640
4641 if (vnode instanceof VNode) {
4642 return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)
4643 } else if (Array.isArray(vnode)) {
4644 var vnodes = normalizeChildren(vnode) || [];
4645 var res = new Array(vnodes.length);
4646 for (var i = 0; i < vnodes.length; i++) {
4647 res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);
4648 }
4649 return res
4650 }
4651 }
4652
4653 function cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {
4654 // #7817 clone node before setting fnContext, otherwise if the node is reused
4655 // (e.g. it was from a cached normal slot) the fnContext causes named slots
4656 // that should not be matched to match.
4657 var clone = cloneVNode(vnode);
4658 clone.fnContext = contextVm;
4659 clone.fnOptions = options;
4660 if (true) {
4661 (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;
4662 }
4663 if (data.slot) {
4664 (clone.data || (clone.data = {})).slot = data.slot;
4665 }
4666 return clone
4667 }
4668
4669 function mergeProps (to, from) {
4670 for (var key in from) {
4671 to[camelize(key)] = from[key];
4672 }
4673 }
4674
4675 /* */
4676
4677 /* */
4678
4679 /* */
4680
4681 /* */
4682
4683 // inline hooks to be invoked on component VNodes during patch
4684 var componentVNodeHooks = {
4685 init: function init (vnode, hydrating) {
4686 if (
4687 vnode.componentInstance &&
4688 !vnode.componentInstance._isDestroyed &&
4689 vnode.data.keepAlive
4690 ) {
4691 // kept-alive components, treat as a patch
4692 var mountedNode = vnode; // work around flow
4693 componentVNodeHooks.prepatch(mountedNode, mountedNode);
4694 } else {
4695 var child = vnode.componentInstance = createComponentInstanceForVnode(
4696 vnode,
4697 activeInstance
4698 );
4699 child.$mount(hydrating ? vnode.elm : undefined, hydrating);
4700 }
4701 },
4702
4703 prepatch: function prepatch (oldVnode, vnode) {
4704 var options = vnode.componentOptions;
4705 var child = vnode.componentInstance = oldVnode.componentInstance;
4706 updateChildComponent(
4707 child,
4708 options.propsData, // updated props
4709 options.listeners, // updated listeners
4710 vnode, // new parent vnode
4711 options.children // new children
4712 );
4713 },
4714
4715 insert: function insert (vnode) {
4716 var context = vnode.context;
4717 var componentInstance = vnode.componentInstance;
4718 if (!componentInstance._isMounted) {
4719 callHook(componentInstance, 'onServiceCreated');
4720 callHook(componentInstance, 'onServiceAttached');
4721 componentInstance._isMounted = true;
4722 callHook(componentInstance, 'mounted');
4723 }
4724 if (vnode.data.keepAlive) {
4725 if (context._isMounted) {
4726 // vue-router#1212
4727 // During updates, a kept-alive component's child components may
4728 // change, so directly walking the tree here may call activated hooks
4729 // on incorrect children. Instead we push them into a queue which will
4730 // be processed after the whole patch process ended.
4731 queueActivatedComponent(componentInstance);
4732 } else {
4733 activateChildComponent(componentInstance, true /* direct */);
4734 }
4735 }
4736 },
4737
4738 destroy: function destroy (vnode) {
4739 var componentInstance = vnode.componentInstance;
4740 if (!componentInstance._isDestroyed) {
4741 if (!vnode.data.keepAlive) {
4742 componentInstance.$destroy();
4743 } else {
4744 deactivateChildComponent(componentInstance, true /* direct */);
4745 }
4746 }
4747 }
4748 };
4749
4750 var hooksToMerge = Object.keys(componentVNodeHooks);
4751
4752 function createComponent (
4753 Ctor,
4754 data,
4755 context,
4756 children,
4757 tag
4758 ) {
4759 if (isUndef(Ctor)) {
4760 return
4761 }
4762
4763 var baseCtor = context.$options._base;
4764
4765 // plain options object: turn it into a constructor
4766 if (isObject(Ctor)) {
4767 Ctor = baseCtor.extend(Ctor);
4768 }
4769
4770 // if at this stage it's not a constructor or an async component factory,
4771 // reject.
4772 if (typeof Ctor !== 'function') {
4773 if (true) {
4774 warn(("Invalid Component definition: " + (String(Ctor))), context);
4775 }
4776 return
4777 }
4778
4779 // async component
4780 var asyncFactory;
4781 if (isUndef(Ctor.cid)) {
4782 asyncFactory = Ctor;
4783 Ctor = resolveAsyncComponent(asyncFactory, baseCtor);
4784 if (Ctor === undefined) {
4785 // return a placeholder node for async component, which is rendered
4786 // as a comment node but preserves all the raw information for the node.
4787 // the information will be used for async server-rendering and hydration.
4788 return createAsyncPlaceholder(
4789 asyncFactory,
4790 data,
4791 context,
4792 children,
4793 tag
4794 )
4795 }
4796 }
4797
4798 data = data || {};
4799
4800 // resolve constructor options in case global mixins are applied after
4801 // component constructor creation
4802 resolveConstructorOptions(Ctor);
4803
4804 // transform component v-model data into props & events
4805 if (isDef(data.model)) {
4806 transformModel(Ctor.options, data);
4807 }
4808
4809 // extract props
4810 var propsData = extractPropsFromVNodeData(data, Ctor, tag, context); // fixed by xxxxxx
4811
4812 // functional component
4813 if (isTrue(Ctor.options.functional)) {
4814 return createFunctionalComponent(Ctor, propsData, data, context, children)
4815 }
4816
4817 // extract listeners, since these needs to be treated as
4818 // child component listeners instead of DOM listeners
4819 var listeners = data.on;
4820 // replace with listeners with .native modifier
4821 // so it gets processed during parent component patch.
4822 data.on = data.nativeOn;
4823
4824 if (isTrue(Ctor.options.abstract)) {
4825 // abstract components do not keep anything
4826 // other than props & listeners & slot
4827
4828 // work around flow
4829 var slot = data.slot;
4830 data = {};
4831 if (slot) {
4832 data.slot = slot;
4833 }
4834 }
4835
4836 // install component management hooks onto the placeholder node
4837 installComponentHooks(data);
4838
4839 // return a placeholder vnode
4840 var name = Ctor.options.name || tag;
4841 var vnode = new VNode(
4842 ("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')),
4843 data, undefined, undefined, undefined, context,
4844 { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },
4845 asyncFactory
4846 );
4847
4848 return vnode
4849 }
4850
4851 function createComponentInstanceForVnode (
4852 vnode, // we know it's MountedComponentVNode but flow doesn't
4853 parent // activeInstance in lifecycle state
4854 ) {
4855 var options = {
4856 _isComponent: true,
4857 _parentVnode: vnode,
4858 parent: parent
4859 };
4860 // check inline-template render functions
4861 var inlineTemplate = vnode.data.inlineTemplate;
4862 if (isDef(inlineTemplate)) {
4863 options.render = inlineTemplate.render;
4864 options.staticRenderFns = inlineTemplate.staticRenderFns;
4865 }
4866 return new vnode.componentOptions.Ctor(options)
4867 }
4868
4869 function installComponentHooks (data) {
4870 var hooks = data.hook || (data.hook = {});
4871 for (var i = 0; i < hooksToMerge.length; i++) {
4872 var key = hooksToMerge[i];
4873 var existing = hooks[key];
4874 var toMerge = componentVNodeHooks[key];
4875 if (existing !== toMerge && !(existing && existing._merged)) {
4876 hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;
4877 }
4878 }
4879 }
4880
4881 function mergeHook$1 (f1, f2) {
4882 var merged = function (a, b) {
4883 // flow complains about extra args which is why we use any
4884 f1(a, b);
4885 f2(a, b);
4886 };
4887 merged._merged = true;
4888 return merged
4889 }
4890
4891 // transform component v-model info (value and callback) into
4892 // prop and event handler respectively.
4893 function transformModel (options, data) {
4894 var prop = (options.model && options.model.prop) || 'value';
4895 var event = (options.model && options.model.event) || 'input'
4896 ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;
4897 var on = data.on || (data.on = {});
4898 var existing = on[event];
4899 var callback = data.model.callback;
4900 if (isDef(existing)) {
4901 if (
4902 Array.isArray(existing)
4903 ? existing.indexOf(callback) === -1
4904 : existing !== callback
4905 ) {
4906 on[event] = [callback].concat(existing);
4907 }
4908 } else {
4909 on[event] = callback;
4910 }
4911 }
4912
4913 /* */
4914
4915 var SIMPLE_NORMALIZE = 1;
4916 var ALWAYS_NORMALIZE = 2;
4917
4918 // wrapper function for providing a more flexible interface
4919 // without getting yelled at by flow
4920 function createElement (
4921 context,
4922 tag,
4923 data,
4924 children,
4925 normalizationType,
4926 alwaysNormalize
4927 ) {
4928 if (Array.isArray(data) || isPrimitive(data)) {
4929 normalizationType = children;
4930 children = data;
4931 data = undefined;
4932 }
4933 if (isTrue(alwaysNormalize)) {
4934 normalizationType = ALWAYS_NORMALIZE;
4935 }
4936 return _createElement(context, tag, data, children, normalizationType)
4937 }
4938
4939 function _createElement (
4940 context,
4941 tag,
4942 data,
4943 children,
4944 normalizationType
4945 ) {
4946 if (isDef(data) && isDef((data).__ob__)) {
4947 true && warn(
4948 "Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" +
4949 'Always create fresh vnode data objects in each render!',
4950 context
4951 );
4952 return createEmptyVNode()
4953 }
4954 // object syntax in v-bind
4955 if (isDef(data) && isDef(data.is)) {
4956 tag = data.is;
4957 }
4958 if (!tag) {
4959 // in case of component :is set to falsy value
4960 return createEmptyVNode()
4961 }
4962 // warn against non-primitive key
4963 if ( true &&
4964 isDef(data) && isDef(data.key) && !isPrimitive(data.key)
4965 ) {
4966 {
4967 warn(
4968 'Avoid using non-primitive value as key, ' +
4969 'use string/number value instead.',
4970 context
4971 );
4972 }
4973 }
4974 // support single function children as default scoped slot
4975 if (Array.isArray(children) &&
4976 typeof children[0] === 'function'
4977 ) {
4978 data = data || {};
4979 data.scopedSlots = { default: children[0] };
4980 children.length = 0;
4981 }
4982 if (normalizationType === ALWAYS_NORMALIZE) {
4983 children = normalizeChildren(children);
4984 } else if (normalizationType === SIMPLE_NORMALIZE) {
4985 children = simpleNormalizeChildren(children);
4986 }
4987 var vnode, ns;
4988 if (typeof tag === 'string') {
4989 var Ctor;
4990 ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);
4991 if (config.isReservedTag(tag)) {
4992 // platform built-in elements
4993 if ( true && isDef(data) && isDef(data.nativeOn)) {
4994 warn(
4995 ("The .native modifier for v-on is only valid on components but it was used on <" + tag + ">."),
4996 context
4997 );
4998 }
4999 vnode = new VNode(
5000 config.parsePlatformTagName(tag), data, children,
5001 undefined, undefined, context
5002 );
5003 } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {
5004 // component
5005 vnode = createComponent(Ctor, data, context, children, tag);
5006 } else {
5007 // unknown or unlisted namespaced elements
5008 // check at runtime because it may get assigned a namespace when its
5009 // parent normalizes children
5010 vnode = new VNode(
5011 tag, data, children,
5012 undefined, undefined, context
5013 );
5014 }
5015 } else {
5016 // direct component options / constructor
5017 vnode = createComponent(tag, data, context, children);
5018 }
5019 if (Array.isArray(vnode)) {
5020 return vnode
5021 } else if (isDef(vnode)) {
5022 if (isDef(ns)) { applyNS(vnode, ns); }
5023 if (isDef(data)) { registerDeepBindings(data); }
5024 return vnode
5025 } else {
5026 return createEmptyVNode()
5027 }
5028 }
5029
5030 function applyNS (vnode, ns, force) {
5031 vnode.ns = ns;
5032 if (vnode.tag === 'foreignObject') {
5033 // use default namespace inside foreignObject
5034 ns = undefined;
5035 force = true;
5036 }
5037 if (isDef(vnode.children)) {
5038 for (var i = 0, l = vnode.children.length; i < l; i++) {
5039 var child = vnode.children[i];
5040 if (isDef(child.tag) && (
5041 isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {
5042 applyNS(child, ns, force);
5043 }
5044 }
5045 }
5046 }
5047
5048 // ref #5318
5049 // necessary to ensure parent re-render when deep bindings like :style and
5050 // :class are used on slot nodes
5051 function registerDeepBindings (data) {
5052 if (isObject(data.style)) {
5053 traverse(data.style);
5054 }
5055 if (isObject(data.class)) {
5056 traverse(data.class);
5057 }
5058 }
5059
5060 /* */
5061
5062 function initRender (vm) {
5063 vm._vnode = null; // the root of the child tree
5064 vm._staticTrees = null; // v-once cached trees
5065 var options = vm.$options;
5066 var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree
5067 var renderContext = parentVnode && parentVnode.context;
5068 vm.$slots = resolveSlots(options._renderChildren, renderContext);
5069 vm.$scopedSlots = emptyObject;
5070 // bind the createElement fn to this instance
5071 // so that we get proper render context inside it.
5072 // args order: tag, data, children, normalizationType, alwaysNormalize
5073 // internal version is used by render functions compiled from templates
5074 vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };
5075 // normalization is always applied for the public version, used in
5076 // user-written render functions.
5077 vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };
5078
5079 // $attrs & $listeners are exposed for easier HOC creation.
5080 // they need to be reactive so that HOCs using them are always updated
5081 var parentData = parentVnode && parentVnode.data;
5082
5083 /* istanbul ignore else */
5084 if (true) {
5085 defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {
5086 !isUpdatingChildComponent && warn("$attrs is readonly.", vm);
5087 }, true);
5088 defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {
5089 !isUpdatingChildComponent && warn("$listeners is readonly.", vm);
5090 }, true);
5091 } else {}
5092 }
5093
5094 var currentRenderingInstance = null;
5095
5096 function renderMixin (Vue) {
5097 // install runtime convenience helpers
5098 installRenderHelpers(Vue.prototype);
5099
5100 Vue.prototype.$nextTick = function (fn) {
5101 return nextTick(fn, this)
5102 };
5103
5104 Vue.prototype._render = function () {
5105 var vm = this;
5106 var ref = vm.$options;
5107 var render = ref.render;
5108 var _parentVnode = ref._parentVnode;
5109
5110 if (_parentVnode) {
5111 vm.$scopedSlots = normalizeScopedSlots(
5112 _parentVnode.data.scopedSlots,
5113 vm.$slots,
5114 vm.$scopedSlots
5115 );
5116 }
5117
5118 // set parent vnode. this allows render functions to have access
5119 // to the data on the placeholder node.
5120 vm.$vnode = _parentVnode;
5121 // render self
5122 var vnode;
5123 try {
5124 // There's no need to maintain a stack because all render fns are called
5125 // separately from one another. Nested component's render fns are called
5126 // when parent component is patched.
5127 currentRenderingInstance = vm;
5128 vnode = render.call(vm._renderProxy, vm.$createElement);
5129 } catch (e) {
5130 handleError(e, vm, "render");
5131 // return error render result,
5132 // or previous vnode to prevent render error causing blank component
5133 /* istanbul ignore else */
5134 if ( true && vm.$options.renderError) {
5135 try {
5136 vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);
5137 } catch (e) {
5138 handleError(e, vm, "renderError");
5139 vnode = vm._vnode;
5140 }
5141 } else {
5142 vnode = vm._vnode;
5143 }
5144 } finally {
5145 currentRenderingInstance = null;
5146 }
5147 // if the returned array contains only a single node, allow it
5148 if (Array.isArray(vnode) && vnode.length === 1) {
5149 vnode = vnode[0];
5150 }
5151 // return empty vnode in case the render function errored out
5152 if (!(vnode instanceof VNode)) {
5153 if ( true && Array.isArray(vnode)) {
5154 warn(
5155 'Multiple root nodes returned from render function. Render function ' +
5156 'should return a single root node.',
5157 vm
5158 );
5159 }
5160 vnode = createEmptyVNode();
5161 }
5162 // set parent
5163 vnode.parent = _parentVnode;
5164 return vnode
5165 };
5166 }
5167
5168 /* */
5169
5170 function ensureCtor (comp, base) {
5171 if (
5172 comp.__esModule ||
5173 (hasSymbol && comp[Symbol.toStringTag] === 'Module')
5174 ) {
5175 comp = comp.default;
5176 }
5177 return isObject(comp)
5178 ? base.extend(comp)
5179 : comp
5180 }
5181
5182 function createAsyncPlaceholder (
5183 factory,
5184 data,
5185 context,
5186 children,
5187 tag
5188 ) {
5189 var node = createEmptyVNode();
5190 node.asyncFactory = factory;
5191 node.asyncMeta = { data: data, context: context, children: children, tag: tag };
5192 return node
5193 }
5194
5195 function resolveAsyncComponent (
5196 factory,
5197 baseCtor
5198 ) {
5199 if (isTrue(factory.error) && isDef(factory.errorComp)) {
5200 return factory.errorComp
5201 }
5202
5203 if (isDef(factory.resolved)) {
5204 return factory.resolved
5205 }
5206
5207 var owner = currentRenderingInstance;
5208 if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {
5209 // already pending
5210 factory.owners.push(owner);
5211 }
5212
5213 if (isTrue(factory.loading) && isDef(factory.loadingComp)) {
5214 return factory.loadingComp
5215 }
5216
5217 if (owner && !isDef(factory.owners)) {
5218 var owners = factory.owners = [owner];
5219 var sync = true;
5220 var timerLoading = null;
5221 var timerTimeout = null
5222
5223 ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });
5224
5225 var forceRender = function (renderCompleted) {
5226 for (var i = 0, l = owners.length; i < l; i++) {
5227 (owners[i]).$forceUpdate();
5228 }
5229
5230 if (renderCompleted) {
5231 owners.length = 0;
5232 if (timerLoading !== null) {
5233 clearTimeout(timerLoading);
5234 timerLoading = null;
5235 }
5236 if (timerTimeout !== null) {
5237 clearTimeout(timerTimeout);
5238 timerTimeout = null;
5239 }
5240 }
5241 };
5242
5243 var resolve = once(function (res) {
5244 // cache resolved
5245 factory.resolved = ensureCtor(res, baseCtor);
5246 // invoke callbacks only if this is not a synchronous resolve
5247 // (async resolves are shimmed as synchronous during SSR)
5248 if (!sync) {
5249 forceRender(true);
5250 } else {
5251 owners.length = 0;
5252 }
5253 });
5254
5255 var reject = once(function (reason) {
5256 true && warn(
5257 "Failed to resolve async component: " + (String(factory)) +
5258 (reason ? ("\nReason: " + reason) : '')
5259 );
5260 if (isDef(factory.errorComp)) {
5261 factory.error = true;
5262 forceRender(true);
5263 }
5264 });
5265
5266 var res = factory(resolve, reject);
5267
5268 if (isObject(res)) {
5269 if (isPromise(res)) {
5270 // () => Promise
5271 if (isUndef(factory.resolved)) {
5272 res.then(resolve, reject);
5273 }
5274 } else if (isPromise(res.component)) {
5275 res.component.then(resolve, reject);
5276
5277 if (isDef(res.error)) {
5278 factory.errorComp = ensureCtor(res.error, baseCtor);
5279 }
5280
5281 if (isDef(res.loading)) {
5282 factory.loadingComp = ensureCtor(res.loading, baseCtor);
5283 if (res.delay === 0) {
5284 factory.loading = true;
5285 } else {
5286 timerLoading = setTimeout(function () {
5287 timerLoading = null;
5288 if (isUndef(factory.resolved) && isUndef(factory.error)) {
5289 factory.loading = true;
5290 forceRender(false);
5291 }
5292 }, res.delay || 200);
5293 }
5294 }
5295
5296 if (isDef(res.timeout)) {
5297 timerTimeout = setTimeout(function () {
5298 timerTimeout = null;
5299 if (isUndef(factory.resolved)) {
5300 reject(
5301 true
5302 ? ("timeout (" + (res.timeout) + "ms)")
5303 : undefined
5304 );
5305 }
5306 }, res.timeout);
5307 }
5308 }
5309 }
5310
5311 sync = false;
5312 // return in case resolved synchronously
5313 return factory.loading
5314 ? factory.loadingComp
5315 : factory.resolved
5316 }
5317 }
5318
5319 /* */
5320
5321 function isAsyncPlaceholder (node) {
5322 return node.isComment && node.asyncFactory
5323 }
5324
5325 /* */
5326
5327 function getFirstComponentChild (children) {
5328 if (Array.isArray(children)) {
5329 for (var i = 0; i < children.length; i++) {
5330 var c = children[i];
5331 if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {
5332 return c
5333 }
5334 }
5335 }
5336 }
5337
5338 /* */
5339
5340 /* */
5341
5342 function initEvents (vm) {
5343 vm._events = Object.create(null);
5344 vm._hasHookEvent = false;
5345 // init parent attached events
5346 var listeners = vm.$options._parentListeners;
5347 if (listeners) {
5348 updateComponentListeners(vm, listeners);
5349 }
5350 }
5351
5352 var target;
5353
5354 function add (event, fn) {
5355 target.$on(event, fn);
5356 }
5357
5358 function remove$1 (event, fn) {
5359 target.$off(event, fn);
5360 }
5361
5362 function createOnceHandler (event, fn) {
5363 var _target = target;
5364 return function onceHandler () {
5365 var res = fn.apply(null, arguments);
5366 if (res !== null) {
5367 _target.$off(event, onceHandler);
5368 }
5369 }
5370 }
5371
5372 function updateComponentListeners (
5373 vm,
5374 listeners,
5375 oldListeners
5376 ) {
5377 target = vm;
5378 updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);
5379 target = undefined;
5380 }
5381
5382 function eventsMixin (Vue) {
5383 var hookRE = /^hook:/;
5384 Vue.prototype.$on = function (event, fn) {
5385 var vm = this;
5386 if (Array.isArray(event)) {
5387 for (var i = 0, l = event.length; i < l; i++) {
5388 vm.$on(event[i], fn);
5389 }
5390 } else {
5391 (vm._events[event] || (vm._events[event] = [])).push(fn);
5392 // optimize hook:event cost by using a boolean flag marked at registration
5393 // instead of a hash lookup
5394 if (hookRE.test(event)) {
5395 vm._hasHookEvent = true;
5396 }
5397 }
5398 return vm
5399 };
5400
5401 Vue.prototype.$once = function (event, fn) {
5402 var vm = this;
5403 function on () {
5404 vm.$off(event, on);
5405 fn.apply(vm, arguments);
5406 }
5407 on.fn = fn;
5408 vm.$on(event, on);
5409 return vm
5410 };
5411
5412 Vue.prototype.$off = function (event, fn) {
5413 var vm = this;
5414 // all
5415 if (!arguments.length) {
5416 vm._events = Object.create(null);
5417 return vm
5418 }
5419 // array of events
5420 if (Array.isArray(event)) {
5421 for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {
5422 vm.$off(event[i$1], fn);
5423 }
5424 return vm
5425 }
5426 // specific event
5427 var cbs = vm._events[event];
5428 if (!cbs) {
5429 return vm
5430 }
5431 if (!fn) {
5432 vm._events[event] = null;
5433 return vm
5434 }
5435 // specific handler
5436 var cb;
5437 var i = cbs.length;
5438 while (i--) {
5439 cb = cbs[i];
5440 if (cb === fn || cb.fn === fn) {
5441 cbs.splice(i, 1);
5442 break
5443 }
5444 }
5445 return vm
5446 };
5447
5448 Vue.prototype.$emit = function (event) {
5449 var vm = this;
5450 if (true) {
5451 var lowerCaseEvent = event.toLowerCase();
5452 if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {
5453 tip(
5454 "Event \"" + lowerCaseEvent + "\" is emitted in component " +
5455 (formatComponentName(vm)) + " but the handler is registered for \"" + event + "\". " +
5456 "Note that HTML attributes are case-insensitive and you cannot use " +
5457 "v-on to listen to camelCase events when using in-DOM templates. " +
5458 "You should probably use \"" + (hyphenate(event)) + "\" instead of \"" + event + "\"."
5459 );
5460 }
5461 }
5462 var cbs = vm._events[event];
5463 if (cbs) {
5464 cbs = cbs.length > 1 ? toArray(cbs) : cbs;
5465 var args = toArray(arguments, 1);
5466 var info = "event handler for \"" + event + "\"";
5467 for (var i = 0, l = cbs.length; i < l; i++) {
5468 invokeWithErrorHandling(cbs[i], vm, args, vm, info);
5469 }
5470 }
5471 return vm
5472 };
5473 }
5474
5475 /* */
5476
5477 var activeInstance = null;
5478 var isUpdatingChildComponent = false;
5479
5480 function setActiveInstance(vm) {
5481 var prevActiveInstance = activeInstance;
5482 activeInstance = vm;
5483 return function () {
5484 activeInstance = prevActiveInstance;
5485 }
5486 }
5487
5488 function initLifecycle (vm) {
5489 var options = vm.$options;
5490
5491 // locate first non-abstract parent
5492 var parent = options.parent;
5493 if (parent && !options.abstract) {
5494 while (parent.$options.abstract && parent.$parent) {
5495 parent = parent.$parent;
5496 }
5497 parent.$children.push(vm);
5498 }
5499
5500 vm.$parent = parent;
5501 vm.$root = parent ? parent.$root : vm;
5502
5503 vm.$children = [];
5504 vm.$refs = {};
5505
5506 vm._watcher = null;
5507 vm._inactive = null;
5508 vm._directInactive = false;
5509 vm._isMounted = false;
5510 vm._isDestroyed = false;
5511 vm._isBeingDestroyed = false;
5512 }
5513
5514 function lifecycleMixin (Vue) {
5515 Vue.prototype._update = function (vnode, hydrating) {
5516 var vm = this;
5517 var prevEl = vm.$el;
5518 var prevVnode = vm._vnode;
5519 var restoreActiveInstance = setActiveInstance(vm);
5520 vm._vnode = vnode;
5521 // Vue.prototype.__patch__ is injected in entry points
5522 // based on the rendering backend used.
5523 if (!prevVnode) {
5524 // initial render
5525 vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);
5526 } else {
5527 // updates
5528 vm.$el = vm.__patch__(prevVnode, vnode);
5529 }
5530 restoreActiveInstance();
5531 // update __vue__ reference
5532 if (prevEl) {
5533 prevEl.__vue__ = null;
5534 }
5535 if (vm.$el) {
5536 vm.$el.__vue__ = vm;
5537 }
5538 // if parent is an HOC, update its $el as well
5539 if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {
5540 vm.$parent.$el = vm.$el;
5541 }
5542 // updated hook is called by the scheduler to ensure that children are
5543 // updated in a parent's updated hook.
5544 };
5545
5546 Vue.prototype.$forceUpdate = function () {
5547 var vm = this;
5548 if (vm._watcher) {
5549 vm._watcher.update();
5550 }
5551 };
5552
5553 Vue.prototype.$destroy = function () {
5554 var vm = this;
5555 if (vm._isBeingDestroyed) {
5556 return
5557 }
5558 callHook(vm, 'beforeDestroy');
5559 vm._isBeingDestroyed = true;
5560 // remove self from parent
5561 var parent = vm.$parent;
5562 if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {
5563 remove(parent.$children, vm);
5564 }
5565 // teardown watchers
5566 if (vm._watcher) {
5567 vm._watcher.teardown();
5568 }
5569 var i = vm._watchers.length;
5570 while (i--) {
5571 vm._watchers[i].teardown();
5572 }
5573 // remove reference from data ob
5574 // frozen object may not have observer.
5575 if (vm._data.__ob__) {
5576 vm._data.__ob__.vmCount--;
5577 }
5578 // call the last hook...
5579 vm._isDestroyed = true;
5580 // invoke destroy hooks on current rendered tree
5581 vm.__patch__(vm._vnode, null);
5582 // fire destroyed hook
5583 callHook(vm, 'destroyed');
5584 // turn off all instance listeners.
5585 vm.$off();
5586 // remove __vue__ reference
5587 if (vm.$el) {
5588 vm.$el.__vue__ = null;
5589 }
5590 // release circular reference (#6759)
5591 if (vm.$vnode) {
5592 vm.$vnode.parent = null;
5593 }
5594 };
5595 }
5596
5597 function updateChildComponent (
5598 vm,
5599 propsData,
5600 listeners,
5601 parentVnode,
5602 renderChildren
5603 ) {
5604 if (true) {
5605 isUpdatingChildComponent = true;
5606 }
5607
5608 // determine whether component has slot children
5609 // we need to do this before overwriting $options._renderChildren.
5610
5611 // check if there are dynamic scopedSlots (hand-written or compiled but with
5612 // dynamic slot names). Static scoped slots compiled from template has the
5613 // "$stable" marker.
5614 var newScopedSlots = parentVnode.data.scopedSlots;
5615 var oldScopedSlots = vm.$scopedSlots;
5616 var hasDynamicScopedSlot = !!(
5617 (newScopedSlots && !newScopedSlots.$stable) ||
5618 (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||
5619 (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)
5620 );
5621
5622 // Any static slot children from the parent may have changed during parent's
5623 // update. Dynamic scoped slots may also have changed. In such cases, a forced
5624 // update is necessary to ensure correctness.
5625 var needsForceUpdate = !!(
5626 renderChildren || // has new static slots
5627 vm.$options._renderChildren || // has old static slots
5628 hasDynamicScopedSlot
5629 );
5630
5631 vm.$options._parentVnode = parentVnode;
5632 vm.$vnode = parentVnode; // update vm's placeholder node without re-render
5633
5634 if (vm._vnode) { // update child tree's parent
5635 vm._vnode.parent = parentVnode;
5636 }
5637 vm.$options._renderChildren = renderChildren;
5638
5639 // update $attrs and $listeners hash
5640 // these are also reactive so they may trigger child update if the child
5641 // used them during render
5642 vm.$attrs = parentVnode.data.attrs || emptyObject;
5643 vm.$listeners = listeners || emptyObject;
5644
5645 // update props
5646 if (propsData && vm.$options.props) {
5647 toggleObserving(false);
5648 var props = vm._props;
5649 var propKeys = vm.$options._propKeys || [];
5650 for (var i = 0; i < propKeys.length; i++) {
5651 var key = propKeys[i];
5652 var propOptions = vm.$options.props; // wtf flow?
5653 props[key] = validateProp(key, propOptions, propsData, vm);
5654 }
5655 toggleObserving(true);
5656 // keep a copy of raw propsData
5657 vm.$options.propsData = propsData;
5658 }
5659
5660 // fixed by xxxxxx update properties(mp runtime)
5661 vm._$updateProperties && vm._$updateProperties(vm);
5662
5663 // update listeners
5664 listeners = listeners || emptyObject;
5665 var oldListeners = vm.$options._parentListeners;
5666 vm.$options._parentListeners = listeners;
5667 updateComponentListeners(vm, listeners, oldListeners);
5668
5669 // resolve slots + force update if has children
5670 if (needsForceUpdate) {
5671 vm.$slots = resolveSlots(renderChildren, parentVnode.context);
5672 vm.$forceUpdate();
5673 }
5674
5675 if (true) {
5676 isUpdatingChildComponent = false;
5677 }
5678 }
5679
5680 function isInInactiveTree (vm) {
5681 while (vm && (vm = vm.$parent)) {
5682 if (vm._inactive) { return true }
5683 }
5684 return false
5685 }
5686
5687 function activateChildComponent (vm, direct) {
5688 if (direct) {
5689 vm._directInactive = false;
5690 if (isInInactiveTree(vm)) {
5691 return
5692 }
5693 } else if (vm._directInactive) {
5694 return
5695 }
5696 if (vm._inactive || vm._inactive === null) {
5697 vm._inactive = false;
5698 for (var i = 0; i < vm.$children.length; i++) {
5699 activateChildComponent(vm.$children[i]);
5700 }
5701 callHook(vm, 'activated');
5702 }
5703 }
5704
5705 function deactivateChildComponent (vm, direct) {
5706 if (direct) {
5707 vm._directInactive = true;
5708 if (isInInactiveTree(vm)) {
5709 return
5710 }
5711 }
5712 if (!vm._inactive) {
5713 vm._inactive = true;
5714 for (var i = 0; i < vm.$children.length; i++) {
5715 deactivateChildComponent(vm.$children[i]);
5716 }
5717 callHook(vm, 'deactivated');
5718 }
5719 }
5720
5721 function callHook (vm, hook) {
5722 // #7573 disable dep collection when invoking lifecycle hooks
5723 pushTarget();
5724 var handlers = vm.$options[hook];
5725 var info = hook + " hook";
5726 if (handlers) {
5727 for (var i = 0, j = handlers.length; i < j; i++) {
5728 invokeWithErrorHandling(handlers[i], vm, null, vm, info);
5729 }
5730 }
5731 if (vm._hasHookEvent) {
5732 vm.$emit('hook:' + hook);
5733 }
5734 popTarget();
5735 }
5736
5737 /* */
5738
5739 var MAX_UPDATE_COUNT = 100;
5740
5741 var queue = [];
5742 var activatedChildren = [];
5743 var has = {};
5744 var circular = {};
5745 var waiting = false;
5746 var flushing = false;
5747 var index = 0;
5748
5749 /**
5750 * Reset the scheduler's state.
5751 */
5752 function resetSchedulerState () {
5753 index = queue.length = activatedChildren.length = 0;
5754 has = {};
5755 if (true) {
5756 circular = {};
5757 }
5758 waiting = flushing = false;
5759 }
5760
5761 // Async edge case #6566 requires saving the timestamp when event listeners are
5762 // attached. However, calling performance.now() has a perf overhead especially
5763 // if the page has thousands of event listeners. Instead, we take a timestamp
5764 // every time the scheduler flushes and use that for all event listeners
5765 // attached during that flush.
5766 var currentFlushTimestamp = 0;
5767
5768 // Async edge case fix requires storing an event listener's attach timestamp.
5769 var getNow = Date.now;
5770
5771 // Determine what event timestamp the browser is using. Annoyingly, the
5772 // timestamp can either be hi-res (relative to page load) or low-res
5773 // (relative to UNIX epoch), so in order to compare time we have to use the
5774 // same timestamp type when saving the flush timestamp.
5775 // All IE versions use low-res event timestamps, and have problematic clock
5776 // implementations (#9632)
5777 if (inBrowser && !isIE) {
5778 var performance = window.performance;
5779 if (
5780 performance &&
5781 typeof performance.now === 'function' &&
5782 getNow() > document.createEvent('Event').timeStamp
5783 ) {
5784 // if the event timestamp, although evaluated AFTER the Date.now(), is
5785 // smaller than it, it means the event is using a hi-res timestamp,
5786 // and we need to use the hi-res version for event listener timestamps as
5787 // well.
5788 getNow = function () { return performance.now(); };
5789 }
5790 }
5791
5792 /**
5793 * Flush both queues and run the watchers.
5794 */
5795 function flushSchedulerQueue () {
5796 currentFlushTimestamp = getNow();
5797 flushing = true;
5798 var watcher, id;
5799
5800 // Sort queue before flush.
5801 // This ensures that:
5802 // 1. Components are updated from parent to child. (because parent is always
5803 // created before the child)
5804 // 2. A component's user watchers are run before its render watcher (because
5805 // user watchers are created before the render watcher)
5806 // 3. If a component is destroyed during a parent component's watcher run,
5807 // its watchers can be skipped.
5808 queue.sort(function (a, b) { return a.id - b.id; });
5809
5810 // do not cache length because more watchers might be pushed
5811 // as we run existing watchers
5812 for (index = 0; index < queue.length; index++) {
5813 watcher = queue[index];
5814 if (watcher.before) {
5815 watcher.before();
5816 }
5817 id = watcher.id;
5818 has[id] = null;
5819 watcher.run();
5820 // in dev build, check and stop circular updates.
5821 if ( true && has[id] != null) {
5822 circular[id] = (circular[id] || 0) + 1;
5823 if (circular[id] > MAX_UPDATE_COUNT) {
5824 warn(
5825 'You may have an infinite update loop ' + (
5826 watcher.user
5827 ? ("in watcher with expression \"" + (watcher.expression) + "\"")
5828 : "in a component render function."
5829 ),
5830 watcher.vm
5831 );
5832 break
5833 }
5834 }
5835 }
5836
5837 // keep copies of post queues before resetting state
5838 var activatedQueue = activatedChildren.slice();
5839 var updatedQueue = queue.slice();
5840
5841 resetSchedulerState();
5842
5843 // call component updated and activated hooks
5844 callActivatedHooks(activatedQueue);
5845 callUpdatedHooks(updatedQueue);
5846
5847 // devtool hook
5848 /* istanbul ignore if */
5849 if (devtools && config.devtools) {
5850 devtools.emit('flush');
5851 }
5852 }
5853
5854 function callUpdatedHooks (queue) {
5855 var i = queue.length;
5856 while (i--) {
5857 var watcher = queue[i];
5858 var vm = watcher.vm;
5859 if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {
5860 callHook(vm, 'updated');
5861 }
5862 }
5863 }
5864
5865 /**
5866 * Queue a kept-alive component that was activated during patch.
5867 * The queue will be processed after the entire tree has been patched.
5868 */
5869 function queueActivatedComponent (vm) {
5870 // setting _inactive to false here so that a render function can
5871 // rely on checking whether it's in an inactive tree (e.g. router-view)
5872 vm._inactive = false;
5873 activatedChildren.push(vm);
5874 }
5875
5876 function callActivatedHooks (queue) {
5877 for (var i = 0; i < queue.length; i++) {
5878 queue[i]._inactive = true;
5879 activateChildComponent(queue[i], true /* true */);
5880 }
5881 }
5882
5883 /**
5884 * Push a watcher into the watcher queue.
5885 * Jobs with duplicate IDs will be skipped unless it's
5886 * pushed when the queue is being flushed.
5887 */
5888 function queueWatcher (watcher) {
5889 var id = watcher.id;
5890 if (has[id] == null) {
5891 has[id] = true;
5892 if (!flushing) {
5893 queue.push(watcher);
5894 } else {
5895 // if already flushing, splice the watcher based on its id
5896 // if already past its id, it will be run next immediately.
5897 var i = queue.length - 1;
5898 while (i > index && queue[i].id > watcher.id) {
5899 i--;
5900 }
5901 queue.splice(i + 1, 0, watcher);
5902 }
5903 // queue the flush
5904 if (!waiting) {
5905 waiting = true;
5906
5907 if ( true && !config.async) {
5908 flushSchedulerQueue();
5909 return
5910 }
5911 nextTick(flushSchedulerQueue);
5912 }
5913 }
5914 }
5915
5916 /* */
5917
5918
5919
5920 var uid$2 = 0;
5921
5922 /**
5923 * A watcher parses an expression, collects dependencies,
5924 * and fires callback when the expression value changes.
5925 * This is used for both the $watch() api and directives.
5926 */
5927 var Watcher = function Watcher (
5928 vm,
5929 expOrFn,
5930 cb,
5931 options,
5932 isRenderWatcher
5933 ) {
5934 this.vm = vm;
5935 if (isRenderWatcher) {
5936 vm._watcher = this;
5937 }
5938 vm._watchers.push(this);
5939 // options
5940 if (options) {
5941 this.deep = !!options.deep;
5942 this.user = !!options.user;
5943 this.lazy = !!options.lazy;
5944 this.sync = !!options.sync;
5945 this.before = options.before;
5946 } else {
5947 this.deep = this.user = this.lazy = this.sync = false;
5948 }
5949 this.cb = cb;
5950 this.id = ++uid$2; // uid for batching
5951 this.active = true;
5952 this.dirty = this.lazy; // for lazy watchers
5953 this.deps = [];
5954 this.newDeps = [];
5955 this.depIds = new _Set();
5956 this.newDepIds = new _Set();
5957 this.expression = true
5958 ? expOrFn.toString()
5959 : undefined;
5960 // parse expression for getter
5961 if (typeof expOrFn === 'function') {
5962 this.getter = expOrFn;
5963 } else {
5964 this.getter = parsePath(expOrFn);
5965 if (!this.getter) {
5966 this.getter = noop;
5967 true && warn(
5968 "Failed watching path: \"" + expOrFn + "\" " +
5969 'Watcher only accepts simple dot-delimited paths. ' +
5970 'For full control, use a function instead.',
5971 vm
5972 );
5973 }
5974 }
5975 this.value = this.lazy
5976 ? undefined
5977 : this.get();
5978 };
5979
5980 /**
5981 * Evaluate the getter, and re-collect dependencies.
5982 */
5983 Watcher.prototype.get = function get () {
5984 pushTarget(this);
5985 var value;
5986 var vm = this.vm;
5987 try {
5988 value = this.getter.call(vm, vm);
5989 } catch (e) {
5990 if (this.user) {
5991 handleError(e, vm, ("getter for watcher \"" + (this.expression) + "\""));
5992 } else {
5993 throw e
5994 }
5995 } finally {
5996 // "touch" every property so they are all tracked as
5997 // dependencies for deep watching
5998 if (this.deep) {
5999 traverse(value);
6000 }
6001 popTarget();
6002 this.cleanupDeps();
6003 }
6004 return value
6005 };
6006
6007 /**
6008 * Add a dependency to this directive.
6009 */
6010 Watcher.prototype.addDep = function addDep (dep) {
6011 var id = dep.id;
6012 if (!this.newDepIds.has(id)) {
6013 this.newDepIds.add(id);
6014 this.newDeps.push(dep);
6015 if (!this.depIds.has(id)) {
6016 dep.addSub(this);
6017 }
6018 }
6019 };
6020
6021 /**
6022 * Clean up for dependency collection.
6023 */
6024 Watcher.prototype.cleanupDeps = function cleanupDeps () {
6025 var i = this.deps.length;
6026 while (i--) {
6027 var dep = this.deps[i];
6028 if (!this.newDepIds.has(dep.id)) {
6029 dep.removeSub(this);
6030 }
6031 }
6032 var tmp = this.depIds;
6033 this.depIds = this.newDepIds;
6034 this.newDepIds = tmp;
6035 this.newDepIds.clear();
6036 tmp = this.deps;
6037 this.deps = this.newDeps;
6038 this.newDeps = tmp;
6039 this.newDeps.length = 0;
6040 };
6041
6042 /**
6043 * Subscriber interface.
6044 * Will be called when a dependency changes.
6045 */
6046 Watcher.prototype.update = function update () {
6047 /* istanbul ignore else */
6048 if (this.lazy) {
6049 this.dirty = true;
6050 } else if (this.sync) {
6051 this.run();
6052 } else {
6053 queueWatcher(this);
6054 }
6055 };
6056
6057 /**
6058 * Scheduler job interface.
6059 * Will be called by the scheduler.
6060 */
6061 Watcher.prototype.run = function run () {
6062 if (this.active) {
6063 var value = this.get();
6064 if (
6065 value !== this.value ||
6066 // Deep watchers and watchers on Object/Arrays should fire even
6067 // when the value is the same, because the value may
6068 // have mutated.
6069 isObject(value) ||
6070 this.deep
6071 ) {
6072 // set new value
6073 var oldValue = this.value;
6074 this.value = value;
6075 if (this.user) {
6076 try {
6077 this.cb.call(this.vm, value, oldValue);
6078 } catch (e) {
6079 handleError(e, this.vm, ("callback for watcher \"" + (this.expression) + "\""));
6080 }
6081 } else {
6082 this.cb.call(this.vm, value, oldValue);
6083 }
6084 }
6085 }
6086 };
6087
6088 /**
6089 * Evaluate the value of the watcher.
6090 * This only gets called for lazy watchers.
6091 */
6092 Watcher.prototype.evaluate = function evaluate () {
6093 this.value = this.get();
6094 this.dirty = false;
6095 };
6096
6097 /**
6098 * Depend on all deps collected by this watcher.
6099 */
6100 Watcher.prototype.depend = function depend () {
6101 var i = this.deps.length;
6102 while (i--) {
6103 this.deps[i].depend();
6104 }
6105 };
6106
6107 /**
6108 * Remove self from all dependencies' subscriber list.
6109 */
6110 Watcher.prototype.teardown = function teardown () {
6111 if (this.active) {
6112 // remove self from vm's watcher list
6113 // this is a somewhat expensive operation so we skip it
6114 // if the vm is being destroyed.
6115 if (!this.vm._isBeingDestroyed) {
6116 remove(this.vm._watchers, this);
6117 }
6118 var i = this.deps.length;
6119 while (i--) {
6120 this.deps[i].removeSub(this);
6121 }
6122 this.active = false;
6123 }
6124 };
6125
6126 /* */
6127
6128 var sharedPropertyDefinition = {
6129 enumerable: true,
6130 configurable: true,
6131 get: noop,
6132 set: noop
6133 };
6134
6135 function proxy (target, sourceKey, key) {
6136 sharedPropertyDefinition.get = function proxyGetter () {
6137 return this[sourceKey][key]
6138 };
6139 sharedPropertyDefinition.set = function proxySetter (val) {
6140 this[sourceKey][key] = val;
6141 };
6142 Object.defineProperty(target, key, sharedPropertyDefinition);
6143 }
6144
6145 function initState (vm) {
6146 vm._watchers = [];
6147 var opts = vm.$options;
6148 if (opts.props) { initProps(vm, opts.props); }
6149 if (opts.methods) { initMethods(vm, opts.methods); }
6150 if (opts.data) {
6151 initData(vm);
6152 } else {
6153 observe(vm._data = {}, true /* asRootData */);
6154 }
6155 if (opts.computed) { initComputed(vm, opts.computed); }
6156 if (opts.watch && opts.watch !== nativeWatch) {
6157 initWatch(vm, opts.watch);
6158 }
6159 }
6160
6161 function initProps (vm, propsOptions) {
6162 var propsData = vm.$options.propsData || {};
6163 var props = vm._props = {};
6164 // cache prop keys so that future props updates can iterate using Array
6165 // instead of dynamic object key enumeration.
6166 var keys = vm.$options._propKeys = [];
6167 var isRoot = !vm.$parent;
6168 // root instance props should be converted
6169 if (!isRoot) {
6170 toggleObserving(false);
6171 }
6172 var loop = function ( key ) {
6173 keys.push(key);
6174 var value = validateProp(key, propsOptions, propsData, vm);
6175 /* istanbul ignore else */
6176 if (true) {
6177 var hyphenatedKey = hyphenate(key);
6178 if (isReservedAttribute(hyphenatedKey) ||
6179 config.isReservedAttr(hyphenatedKey)) {
6180 warn(
6181 ("\"" + hyphenatedKey + "\" is a reserved attribute and cannot be used as component prop."),
6182 vm
6183 );
6184 }
6185 defineReactive$$1(props, key, value, function () {
6186 if (!isRoot && !isUpdatingChildComponent) {
6187 {
6188 if(vm.mpHost === 'mp-baidu'){//百度 observer 在 setData callback 之后触发,直接忽略该 warn
6189 return
6190 }
6191 //fixed by xxxxxx __next_tick_pending,uni://form-field 时不告警
6192 if(
6193 key === 'value' &&
6194 Array.isArray(vm.$options.behaviors) &&
6195 vm.$options.behaviors.indexOf('uni://form-field') !== -1
6196 ){
6197 return
6198 }
6199 if(vm._getFormData){
6200 return
6201 }
6202 var $parent = vm.$parent;
6203 while($parent){
6204 if($parent.__next_tick_pending){
6205 return
6206 }
6207 $parent = $parent.$parent;
6208 }
6209 }
6210 warn(
6211 "Avoid mutating a prop directly since the value will be " +
6212 "overwritten whenever the parent component re-renders. " +
6213 "Instead, use a data or computed property based on the prop's " +
6214 "value. Prop being mutated: \"" + key + "\"",
6215 vm
6216 );
6217 }
6218 });
6219 } else {}
6220 // static props are already proxied on the component's prototype
6221 // during Vue.extend(). We only need to proxy props defined at
6222 // instantiation here.
6223 if (!(key in vm)) {
6224 proxy(vm, "_props", key);
6225 }
6226 };
6227
6228 for (var key in propsOptions) loop( key );
6229 toggleObserving(true);
6230 }
6231
6232 function initData (vm) {
6233 var data = vm.$options.data;
6234 data = vm._data = typeof data === 'function'
6235 ? getData(data, vm)
6236 : data || {};
6237 if (!isPlainObject(data)) {
6238 data = {};
6239 true && warn(
6240 'data functions should return an object:\n' +
6241 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',
6242 vm
6243 );
6244 }
6245 // proxy data on instance
6246 var keys = Object.keys(data);
6247 var props = vm.$options.props;
6248 var methods = vm.$options.methods;
6249 var i = keys.length;
6250 while (i--) {
6251 var key = keys[i];
6252 if (true) {
6253 if (methods && hasOwn(methods, key)) {
6254 warn(
6255 ("Method \"" + key + "\" has already been defined as a data property."),
6256 vm
6257 );
6258 }
6259 }
6260 if (props && hasOwn(props, key)) {
6261 true && warn(
6262 "The data property \"" + key + "\" is already declared as a prop. " +
6263 "Use prop default value instead.",
6264 vm
6265 );
6266 } else if (!isReserved(key)) {
6267 proxy(vm, "_data", key);
6268 }
6269 }
6270 // observe data
6271 observe(data, true /* asRootData */);
6272 }
6273
6274 function getData (data, vm) {
6275 // #7573 disable dep collection when invoking data getters
6276 pushTarget();
6277 try {
6278 return data.call(vm, vm)
6279 } catch (e) {
6280 handleError(e, vm, "data()");
6281 return {}
6282 } finally {
6283 popTarget();
6284 }
6285 }
6286
6287 var computedWatcherOptions = { lazy: true };
6288
6289 function initComputed (vm, computed) {
6290 // $flow-disable-line
6291 var watchers = vm._computedWatchers = Object.create(null);
6292 // computed properties are just getters during SSR
6293 var isSSR = isServerRendering();
6294
6295 for (var key in computed) {
6296 var userDef = computed[key];
6297 var getter = typeof userDef === 'function' ? userDef : userDef.get;
6298 if ( true && getter == null) {
6299 warn(
6300 ("Getter is missing for computed property \"" + key + "\"."),
6301 vm
6302 );
6303 }
6304
6305 if (!isSSR) {
6306 // create internal watcher for the computed property.
6307 watchers[key] = new Watcher(
6308 vm,
6309 getter || noop,
6310 noop,
6311 computedWatcherOptions
6312 );
6313 }
6314
6315 // component-defined computed properties are already defined on the
6316 // component prototype. We only need to define computed properties defined
6317 // at instantiation here.
6318 if (!(key in vm)) {
6319 defineComputed(vm, key, userDef);
6320 } else if (true) {
6321 if (key in vm.$data) {
6322 warn(("The computed property \"" + key + "\" is already defined in data."), vm);
6323 } else if (vm.$options.props && key in vm.$options.props) {
6324 warn(("The computed property \"" + key + "\" is already defined as a prop."), vm);
6325 }
6326 }
6327 }
6328 }
6329
6330 function defineComputed (
6331 target,
6332 key,
6333 userDef
6334 ) {
6335 var shouldCache = !isServerRendering();
6336 if (typeof userDef === 'function') {
6337 sharedPropertyDefinition.get = shouldCache
6338 ? createComputedGetter(key)
6339 : createGetterInvoker(userDef);
6340 sharedPropertyDefinition.set = noop;
6341 } else {
6342 sharedPropertyDefinition.get = userDef.get
6343 ? shouldCache && userDef.cache !== false
6344 ? createComputedGetter(key)
6345 : createGetterInvoker(userDef.get)
6346 : noop;
6347 sharedPropertyDefinition.set = userDef.set || noop;
6348 }
6349 if ( true &&
6350 sharedPropertyDefinition.set === noop) {
6351 sharedPropertyDefinition.set = function () {
6352 warn(
6353 ("Computed property \"" + key + "\" was assigned to but it has no setter."),
6354 this
6355 );
6356 };
6357 }
6358 Object.defineProperty(target, key, sharedPropertyDefinition);
6359 }
6360
6361 function createComputedGetter (key) {
6362 return function computedGetter () {
6363 var watcher = this._computedWatchers && this._computedWatchers[key];
6364 if (watcher) {
6365 if (watcher.dirty) {
6366 watcher.evaluate();
6367 }
6368 if (Dep.SharedObject.target) {// fixed by xxxxxx
6369 watcher.depend();
6370 }
6371 return watcher.value
6372 }
6373 }
6374 }
6375
6376 function createGetterInvoker(fn) {
6377 return function computedGetter () {
6378 return fn.call(this, this)
6379 }
6380 }
6381
6382 function initMethods (vm, methods) {
6383 var props = vm.$options.props;
6384 for (var key in methods) {
6385 if (true) {
6386 if (typeof methods[key] !== 'function') {
6387 warn(
6388 "Method \"" + key + "\" has type \"" + (typeof methods[key]) + "\" in the component definition. " +
6389 "Did you reference the function correctly?",
6390 vm
6391 );
6392 }
6393 if (props && hasOwn(props, key)) {
6394 warn(
6395 ("Method \"" + key + "\" has already been defined as a prop."),
6396 vm
6397 );
6398 }
6399 if ((key in vm) && isReserved(key)) {
6400 warn(
6401 "Method \"" + key + "\" conflicts with an existing Vue instance method. " +
6402 "Avoid defining component methods that start with _ or $."
6403 );
6404 }
6405 }
6406 vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);
6407 }
6408 }
6409
6410 function initWatch (vm, watch) {
6411 for (var key in watch) {
6412 var handler = watch[key];
6413 if (Array.isArray(handler)) {
6414 for (var i = 0; i < handler.length; i++) {
6415 createWatcher(vm, key, handler[i]);
6416 }
6417 } else {
6418 createWatcher(vm, key, handler);
6419 }
6420 }
6421 }
6422
6423 function createWatcher (
6424 vm,
6425 expOrFn,
6426 handler,
6427 options
6428 ) {
6429 if (isPlainObject(handler)) {
6430 options = handler;
6431 handler = handler.handler;
6432 }
6433 if (typeof handler === 'string') {
6434 handler = vm[handler];
6435 }
6436 return vm.$watch(expOrFn, handler, options)
6437 }
6438
6439 function stateMixin (Vue) {
6440 // flow somehow has problems with directly declared definition object
6441 // when using Object.defineProperty, so we have to procedurally build up
6442 // the object here.
6443 var dataDef = {};
6444 dataDef.get = function () { return this._data };
6445 var propsDef = {};
6446 propsDef.get = function () { return this._props };
6447 if (true) {
6448 dataDef.set = function () {
6449 warn(
6450 'Avoid replacing instance root $data. ' +
6451 'Use nested data properties instead.',
6452 this
6453 );
6454 };
6455 propsDef.set = function () {
6456 warn("$props is readonly.", this);
6457 };
6458 }
6459 Object.defineProperty(Vue.prototype, '$data', dataDef);
6460 Object.defineProperty(Vue.prototype, '$props', propsDef);
6461
6462 Vue.prototype.$set = set;
6463 Vue.prototype.$delete = del;
6464
6465 Vue.prototype.$watch = function (
6466 expOrFn,
6467 cb,
6468 options
6469 ) {
6470 var vm = this;
6471 if (isPlainObject(cb)) {
6472 return createWatcher(vm, expOrFn, cb, options)
6473 }
6474 options = options || {};
6475 options.user = true;
6476 var watcher = new Watcher(vm, expOrFn, cb, options);
6477 if (options.immediate) {
6478 try {
6479 cb.call(vm, watcher.value);
6480 } catch (error) {
6481 handleError(error, vm, ("callback for immediate watcher \"" + (watcher.expression) + "\""));
6482 }
6483 }
6484 return function unwatchFn () {
6485 watcher.teardown();
6486 }
6487 };
6488 }
6489
6490 /* */
6491
6492 var uid$3 = 0;
6493
6494 function initMixin (Vue) {
6495 Vue.prototype._init = function (options) {
6496 var vm = this;
6497 // a uid
6498 vm._uid = uid$3++;
6499
6500 var startTag, endTag;
6501 /* istanbul ignore if */
6502 if ( true && config.performance && mark) {
6503 startTag = "vue-perf-start:" + (vm._uid);
6504 endTag = "vue-perf-end:" + (vm._uid);
6505 mark(startTag);
6506 }
6507
6508 // a flag to avoid this being observed
6509 vm._isVue = true;
6510 // merge options
6511 if (options && options._isComponent) {
6512 // optimize internal component instantiation
6513 // since dynamic options merging is pretty slow, and none of the
6514 // internal component options needs special treatment.
6515 initInternalComponent(vm, options);
6516 } else {
6517 vm.$options = mergeOptions(
6518 resolveConstructorOptions(vm.constructor),
6519 options || {},
6520 vm
6521 );
6522 }
6523 /* istanbul ignore else */
6524 if (true) {
6525 initProxy(vm);
6526 } else {}
6527 // expose real self
6528 vm._self = vm;
6529 initLifecycle(vm);
6530 initEvents(vm);
6531 initRender(vm);
6532 callHook(vm, 'beforeCreate');
6533 !vm._$fallback && initInjections(vm); // resolve injections before data/props
6534 initState(vm);
6535 !vm._$fallback && initProvide(vm); // resolve provide after data/props
6536 !vm._$fallback && callHook(vm, 'created');
6537
6538 /* istanbul ignore if */
6539 if ( true && config.performance && mark) {
6540 vm._name = formatComponentName(vm, false);
6541 mark(endTag);
6542 measure(("vue " + (vm._name) + " init"), startTag, endTag);
6543 }
6544
6545 if (vm.$options.el) {
6546 vm.$mount(vm.$options.el);
6547 }
6548 };
6549 }
6550
6551 function initInternalComponent (vm, options) {
6552 var opts = vm.$options = Object.create(vm.constructor.options);
6553 // doing this because it's faster than dynamic enumeration.
6554 var parentVnode = options._parentVnode;
6555 opts.parent = options.parent;
6556 opts._parentVnode = parentVnode;
6557
6558 var vnodeComponentOptions = parentVnode.componentOptions;
6559 opts.propsData = vnodeComponentOptions.propsData;
6560 opts._parentListeners = vnodeComponentOptions.listeners;
6561 opts._renderChildren = vnodeComponentOptions.children;
6562 opts._componentTag = vnodeComponentOptions.tag;
6563
6564 if (options.render) {
6565 opts.render = options.render;
6566 opts.staticRenderFns = options.staticRenderFns;
6567 }
6568 }
6569
6570 function resolveConstructorOptions (Ctor) {
6571 var options = Ctor.options;
6572 if (Ctor.super) {
6573 var superOptions = resolveConstructorOptions(Ctor.super);
6574 var cachedSuperOptions = Ctor.superOptions;
6575 if (superOptions !== cachedSuperOptions) {
6576 // super option changed,
6577 // need to resolve new options.
6578 Ctor.superOptions = superOptions;
6579 // check if there are any late-modified/attached options (#4976)
6580 var modifiedOptions = resolveModifiedOptions(Ctor);
6581 // update base extend options
6582 if (modifiedOptions) {
6583 extend(Ctor.extendOptions, modifiedOptions);
6584 }
6585 options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);
6586 if (options.name) {
6587 options.components[options.name] = Ctor;
6588 }
6589 }
6590 }
6591 return options
6592 }
6593
6594 function resolveModifiedOptions (Ctor) {
6595 var modified;
6596 var latest = Ctor.options;
6597 var sealed = Ctor.sealedOptions;
6598 for (var key in latest) {
6599 if (latest[key] !== sealed[key]) {
6600 if (!modified) { modified = {}; }
6601 modified[key] = latest[key];
6602 }
6603 }
6604 return modified
6605 }
6606
6607 function Vue (options) {
6608 if ( true &&
6609 !(this instanceof Vue)
6610 ) {
6611 warn('Vue is a constructor and should be called with the `new` keyword');
6612 }
6613 this._init(options);
6614 }
6615
6616 initMixin(Vue);
6617 stateMixin(Vue);
6618 eventsMixin(Vue);
6619 lifecycleMixin(Vue);
6620 renderMixin(Vue);
6621
6622 /* */
6623
6624 function initUse (Vue) {
6625 Vue.use = function (plugin) {
6626 var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));
6627 if (installedPlugins.indexOf(plugin) > -1) {
6628 return this
6629 }
6630
6631 // additional parameters
6632 var args = toArray(arguments, 1);
6633 args.unshift(this);
6634 if (typeof plugin.install === 'function') {
6635 plugin.install.apply(plugin, args);
6636 } else if (typeof plugin === 'function') {
6637 plugin.apply(null, args);
6638 }
6639 installedPlugins.push(plugin);
6640 return this
6641 };
6642 }
6643
6644 /* */
6645
6646 function initMixin$1 (Vue) {
6647 Vue.mixin = function (mixin) {
6648 this.options = mergeOptions(this.options, mixin);
6649 return this
6650 };
6651 }
6652
6653 /* */
6654
6655 function initExtend (Vue) {
6656 /**
6657 * Each instance constructor, including Vue, has a unique
6658 * cid. This enables us to create wrapped "child
6659 * constructors" for prototypal inheritance and cache them.
6660 */
6661 Vue.cid = 0;
6662 var cid = 1;
6663
6664 /**
6665 * Class inheritance
6666 */
6667 Vue.extend = function (extendOptions) {
6668 extendOptions = extendOptions || {};
6669 var Super = this;
6670 var SuperId = Super.cid;
6671 var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});
6672 if (cachedCtors[SuperId]) {
6673 return cachedCtors[SuperId]
6674 }
6675
6676 var name = extendOptions.name || Super.options.name;
6677 if ( true && name) {
6678 validateComponentName(name);
6679 }
6680
6681 var Sub = function VueComponent (options) {
6682 this._init(options);
6683 };
6684 Sub.prototype = Object.create(Super.prototype);
6685 Sub.prototype.constructor = Sub;
6686 Sub.cid = cid++;
6687 Sub.options = mergeOptions(
6688 Super.options,
6689 extendOptions
6690 );
6691 Sub['super'] = Super;
6692
6693 // For props and computed properties, we define the proxy getters on
6694 // the Vue instances at extension time, on the extended prototype. This
6695 // avoids Object.defineProperty calls for each instance created.
6696 if (Sub.options.props) {
6697 initProps$1(Sub);
6698 }
6699 if (Sub.options.computed) {
6700 initComputed$1(Sub);
6701 }
6702
6703 // allow further extension/mixin/plugin usage
6704 Sub.extend = Super.extend;
6705 Sub.mixin = Super.mixin;
6706 Sub.use = Super.use;
6707
6708 // create asset registers, so extended classes
6709 // can have their private assets too.
6710 ASSET_TYPES.forEach(function (type) {
6711 Sub[type] = Super[type];
6712 });
6713 // enable recursive self-lookup
6714 if (name) {
6715 Sub.options.components[name] = Sub;
6716 }
6717
6718 // keep a reference to the super options at extension time.
6719 // later at instantiation we can check if Super's options have
6720 // been updated.
6721 Sub.superOptions = Super.options;
6722 Sub.extendOptions = extendOptions;
6723 Sub.sealedOptions = extend({}, Sub.options);
6724
6725 // cache constructor
6726 cachedCtors[SuperId] = Sub;
6727 return Sub
6728 };
6729 }
6730
6731 function initProps$1 (Comp) {
6732 var props = Comp.options.props;
6733 for (var key in props) {
6734 proxy(Comp.prototype, "_props", key);
6735 }
6736 }
6737
6738 function initComputed$1 (Comp) {
6739 var computed = Comp.options.computed;
6740 for (var key in computed) {
6741 defineComputed(Comp.prototype, key, computed[key]);
6742 }
6743 }
6744
6745 /* */
6746
6747 function initAssetRegisters (Vue) {
6748 /**
6749 * Create asset registration methods.
6750 */
6751 ASSET_TYPES.forEach(function (type) {
6752 Vue[type] = function (
6753 id,
6754 definition
6755 ) {
6756 if (!definition) {
6757 return this.options[type + 's'][id]
6758 } else {
6759 /* istanbul ignore if */
6760 if ( true && type === 'component') {
6761 validateComponentName(id);
6762 }
6763 if (type === 'component' && isPlainObject(definition)) {
6764 definition.name = definition.name || id;
6765 definition = this.options._base.extend(definition);
6766 }
6767 if (type === 'directive' && typeof definition === 'function') {
6768 definition = { bind: definition, update: definition };
6769 }
6770 this.options[type + 's'][id] = definition;
6771 return definition
6772 }
6773 };
6774 });
6775 }
6776
6777 /* */
6778
6779
6780
6781 function getComponentName (opts) {
6782 return opts && (opts.Ctor.options.name || opts.tag)
6783 }
6784
6785 function matches (pattern, name) {
6786 if (Array.isArray(pattern)) {
6787 return pattern.indexOf(name) > -1
6788 } else if (typeof pattern === 'string') {
6789 return pattern.split(',').indexOf(name) > -1
6790 } else if (isRegExp(pattern)) {
6791 return pattern.test(name)
6792 }
6793 /* istanbul ignore next */
6794 return false
6795 }
6796
6797 function pruneCache (keepAliveInstance, filter) {
6798 var cache = keepAliveInstance.cache;
6799 var keys = keepAliveInstance.keys;
6800 var _vnode = keepAliveInstance._vnode;
6801 for (var key in cache) {
6802 var cachedNode = cache[key];
6803 if (cachedNode) {
6804 var name = getComponentName(cachedNode.componentOptions);
6805 if (name && !filter(name)) {
6806 pruneCacheEntry(cache, key, keys, _vnode);
6807 }
6808 }
6809 }
6810 }
6811
6812 function pruneCacheEntry (
6813 cache,
6814 key,
6815 keys,
6816 current
6817 ) {
6818 var cached$$1 = cache[key];
6819 if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {
6820 cached$$1.componentInstance.$destroy();
6821 }
6822 cache[key] = null;
6823 remove(keys, key);
6824 }
6825
6826 var patternTypes = [String, RegExp, Array];
6827
6828 var KeepAlive = {
6829 name: 'keep-alive',
6830 abstract: true,
6831
6832 props: {
6833 include: patternTypes,
6834 exclude: patternTypes,
6835 max: [String, Number]
6836 },
6837
6838 created: function created () {
6839 this.cache = Object.create(null);
6840 this.keys = [];
6841 },
6842
6843 destroyed: function destroyed () {
6844 for (var key in this.cache) {
6845 pruneCacheEntry(this.cache, key, this.keys);
6846 }
6847 },
6848
6849 mounted: function mounted () {
6850 var this$1 = this;
6851
6852 this.$watch('include', function (val) {
6853 pruneCache(this$1, function (name) { return matches(val, name); });
6854 });
6855 this.$watch('exclude', function (val) {
6856 pruneCache(this$1, function (name) { return !matches(val, name); });
6857 });
6858 },
6859
6860 render: function render () {
6861 var slot = this.$slots.default;
6862 var vnode = getFirstComponentChild(slot);
6863 var componentOptions = vnode && vnode.componentOptions;
6864 if (componentOptions) {
6865 // check pattern
6866 var name = getComponentName(componentOptions);
6867 var ref = this;
6868 var include = ref.include;
6869 var exclude = ref.exclude;
6870 if (
6871 // not included
6872 (include && (!name || !matches(include, name))) ||
6873 // excluded
6874 (exclude && name && matches(exclude, name))
6875 ) {
6876 return vnode
6877 }
6878
6879 var ref$1 = this;
6880 var cache = ref$1.cache;
6881 var keys = ref$1.keys;
6882 var key = vnode.key == null
6883 // same constructor may get registered as different local components
6884 // so cid alone is not enough (#3269)
6885 ? componentOptions.Ctor.cid + (componentOptions.tag ? ("::" + (componentOptions.tag)) : '')
6886 : vnode.key;
6887 if (cache[key]) {
6888 vnode.componentInstance = cache[key].componentInstance;
6889 // make current key freshest
6890 remove(keys, key);
6891 keys.push(key);
6892 } else {
6893 cache[key] = vnode;
6894 keys.push(key);
6895 // prune oldest entry
6896 if (this.max && keys.length > parseInt(this.max)) {
6897 pruneCacheEntry(cache, keys[0], keys, this._vnode);
6898 }
6899 }
6900
6901 vnode.data.keepAlive = true;
6902 }
6903 return vnode || (slot && slot[0])
6904 }
6905 };
6906
6907 var builtInComponents = {
6908 KeepAlive: KeepAlive
6909 };
6910
6911 /* */
6912
6913 function initGlobalAPI (Vue) {
6914 // config
6915 var configDef = {};
6916 configDef.get = function () { return config; };
6917 if (true) {
6918 configDef.set = function () {
6919 warn(
6920 'Do not replace the Vue.config object, set individual fields instead.'
6921 );
6922 };
6923 }
6924 Object.defineProperty(Vue, 'config', configDef);
6925
6926 // exposed util methods.
6927 // NOTE: these are not considered part of the public API - avoid relying on
6928 // them unless you are aware of the risk.
6929 Vue.util = {
6930 warn: warn,
6931 extend: extend,
6932 mergeOptions: mergeOptions,
6933 defineReactive: defineReactive$$1
6934 };
6935
6936 Vue.set = set;
6937 Vue.delete = del;
6938 Vue.nextTick = nextTick;
6939
6940 // 2.6 explicit observable API
6941 Vue.observable = function (obj) {
6942 observe(obj);
6943 return obj
6944 };
6945
6946 Vue.options = Object.create(null);
6947 ASSET_TYPES.forEach(function (type) {
6948 Vue.options[type + 's'] = Object.create(null);
6949 });
6950
6951 // this is used to identify the "base" constructor to extend all plain-object
6952 // components with in Weex's multi-instance scenarios.
6953 Vue.options._base = Vue;
6954
6955 extend(Vue.options.components, builtInComponents);
6956
6957 initUse(Vue);
6958 initMixin$1(Vue);
6959 initExtend(Vue);
6960 initAssetRegisters(Vue);
6961 }
6962
6963 initGlobalAPI(Vue);
6964
6965 Object.defineProperty(Vue.prototype, '$isServer', {
6966 get: isServerRendering
6967 });
6968
6969 Object.defineProperty(Vue.prototype, '$ssrContext', {
6970 get: function get () {
6971 /* istanbul ignore next */
6972 return this.$vnode && this.$vnode.ssrContext
6973 }
6974 });
6975
6976 // expose FunctionalRenderContext for ssr runtime helper installation
6977 Object.defineProperty(Vue, 'FunctionalRenderContext', {
6978 value: FunctionalRenderContext
6979 });
6980
6981 Vue.version = '2.6.11';
6982
6983 /**
6984 * https://raw.githubusercontent.com/Tencent/westore/master/packages/westore/utils/diff.js
6985 */
6986 var ARRAYTYPE = '[object Array]';
6987 var OBJECTTYPE = '[object Object]';
6988 // const FUNCTIONTYPE = '[object Function]'
6989
6990 function diff(current, pre) {
6991 var result = {};
6992 syncKeys(current, pre);
6993 _diff(current, pre, '', result);
6994 return result
6995 }
6996
6997 function syncKeys(current, pre) {
6998 if (current === pre) { return }
6999 var rootCurrentType = type(current);
7000 var rootPreType = type(pre);
7001 if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {
7002 if(Object.keys(current).length >= Object.keys(pre).length){
7003 for (var key in pre) {
7004 var currentValue = current[key];
7005 if (currentValue === undefined) {
7006 current[key] = null;
7007 } else {
7008 syncKeys(currentValue, pre[key]);
7009 }
7010 }
7011 }
7012 } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {
7013 if (current.length >= pre.length) {
7014 pre.forEach(function (item, index) {
7015 syncKeys(current[index], item);
7016 });
7017 }
7018 }
7019 }
7020
7021 function _diff(current, pre, path, result) {
7022 if (current === pre) { return }
7023 var rootCurrentType = type(current);
7024 var rootPreType = type(pre);
7025 if (rootCurrentType == OBJECTTYPE) {
7026 if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {
7027 setResult(result, path, current);
7028 } else {
7029 var loop = function ( key ) {
7030 var currentValue = current[key];
7031 var preValue = pre[key];
7032 var currentType = type(currentValue);
7033 var preType = type(preValue);
7034 if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {
7035 if (currentValue != pre[key]) {
7036 setResult(result, (path == '' ? '' : path + ".") + key, currentValue);
7037 }
7038 } else if (currentType == ARRAYTYPE) {
7039 if (preType != ARRAYTYPE) {
7040 setResult(result, (path == '' ? '' : path + ".") + key, currentValue);
7041 } else {
7042 if (currentValue.length < preValue.length) {
7043 setResult(result, (path == '' ? '' : path + ".") + key, currentValue);
7044 } else {
7045 currentValue.forEach(function (item, index) {
7046 _diff(item, preValue[index], (path == '' ? '' : path + ".") + key + '[' + index + ']', result);
7047 });
7048 }
7049 }
7050 } else if (currentType == OBJECTTYPE) {
7051 if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {
7052 setResult(result, (path == '' ? '' : path + ".") + key, currentValue);
7053 } else {
7054 for (var subKey in currentValue) {
7055 _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + ".") + key + '.' + subKey, result);
7056 }
7057 }
7058 }
7059 };
7060
7061 for (var key in current) loop( key );
7062 }
7063 } else if (rootCurrentType == ARRAYTYPE) {
7064 if (rootPreType != ARRAYTYPE) {
7065 setResult(result, path, current);
7066 } else {
7067 if (current.length < pre.length) {
7068 setResult(result, path, current);
7069 } else {
7070 current.forEach(function (item, index) {
7071 _diff(item, pre[index], path + '[' + index + ']', result);
7072 });
7073 }
7074 }
7075 } else {
7076 setResult(result, path, current);
7077 }
7078 }
7079
7080 function setResult(result, k, v) {
7081 // if (type(v) != FUNCTIONTYPE) {
7082 result[k] = v;
7083 // }
7084 }
7085
7086 function type(obj) {
7087 return Object.prototype.toString.call(obj)
7088 }
7089
7090 /* */
7091
7092 function flushCallbacks$1(vm) {
7093 if (vm.__next_tick_callbacks && vm.__next_tick_callbacks.length) {
7094 if (Object({"VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG) {
7095 var mpInstance = vm.$scope;
7096 console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +
7097 ']:flushCallbacks[' + vm.__next_tick_callbacks.length + ']');
7098 }
7099 var copies = vm.__next_tick_callbacks.slice(0);
7100 vm.__next_tick_callbacks.length = 0;
7101 for (var i = 0; i < copies.length; i++) {
7102 copies[i]();
7103 }
7104 }
7105 }
7106
7107 function hasRenderWatcher(vm) {
7108 return queue.find(function (watcher) { return vm._watcher === watcher; })
7109 }
7110
7111 function nextTick$1(vm, cb) {
7112 //1.nextTick 之前 已 setData 且 setData 还未回调完成
7113 //2.nextTick 之前存在 render watcher
7114 if (!vm.__next_tick_pending && !hasRenderWatcher(vm)) {
7115 if(Object({"VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG){
7116 var mpInstance = vm.$scope;
7117 console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +
7118 ']:nextVueTick');
7119 }
7120 return nextTick(cb, vm)
7121 }else{
7122 if(Object({"VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG){
7123 var mpInstance$1 = vm.$scope;
7124 console.log('[' + (+new Date) + '][' + (mpInstance$1.is || mpInstance$1.route) + '][' + vm._uid +
7125 ']:nextMPTick');
7126 }
7127 }
7128 var _resolve;
7129 if (!vm.__next_tick_callbacks) {
7130 vm.__next_tick_callbacks = [];
7131 }
7132 vm.__next_tick_callbacks.push(function () {
7133 if (cb) {
7134 try {
7135 cb.call(vm);
7136 } catch (e) {
7137 handleError(e, vm, 'nextTick');
7138 }
7139 } else if (_resolve) {
7140 _resolve(vm);
7141 }
7142 });
7143 // $flow-disable-line
7144 if (!cb && typeof Promise !== 'undefined') {
7145 return new Promise(function (resolve) {
7146 _resolve = resolve;
7147 })
7148 }
7149 }
7150
7151 /* */
7152
7153 function cloneWithData(vm) {
7154 // 确保当前 vm 所有数据被同步
7155 var ret = Object.create(null);
7156 var dataKeys = [].concat(
7157 Object.keys(vm._data || {}),
7158 Object.keys(vm._computedWatchers || {}));
7159
7160 dataKeys.reduce(function(ret, key) {
7161 ret[key] = vm[key];
7162 return ret
7163 }, ret);
7164 //TODO 需要把无用数据处理掉,比如 list=>l0 则 list 需要移除,否则多传输一份数据
7165 Object.assign(ret, vm.$mp.data || {});
7166 if (
7167 Array.isArray(vm.$options.behaviors) &&
7168 vm.$options.behaviors.indexOf('uni://form-field') !== -1
7169 ) { //form-field
7170 ret['name'] = vm.name;
7171 ret['value'] = vm.value;
7172 }
7173
7174 return JSON.parse(JSON.stringify(ret))
7175 }
7176
7177 var patch = function(oldVnode, vnode) {
7178 var this$1 = this;
7179
7180 if (vnode === null) { //destroy
7181 return
7182 }
7183 if (this.mpType === 'page' || this.mpType === 'component') {
7184 var mpInstance = this.$scope;
7185 var data = Object.create(null);
7186 try {
7187 data = cloneWithData(this);
7188 } catch (err) {
7189 console.error(err);
7190 }
7191 data.__webviewId__ = mpInstance.data.__webviewId__;
7192 var mpData = Object.create(null);
7193 Object.keys(data).forEach(function (key) { //仅同步 data 中有的数据
7194 mpData[key] = mpInstance.data[key];
7195 });
7196 var diffData = this.$shouldDiffData === false ? data : diff(data, mpData);
7197 if (Object.keys(diffData).length) {
7198 if (Object({"VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG) {
7199 console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + this._uid +
7200 ']差量更新',
7201 JSON.stringify(diffData));
7202 }
7203 this.__next_tick_pending = true;
7204 mpInstance.setData(diffData, function () {
7205 this$1.__next_tick_pending = false;
7206 flushCallbacks$1(this$1);
7207 });
7208 } else {
7209 flushCallbacks$1(this);
7210 }
7211 }
7212 };
7213
7214 /* */
7215
7216 function createEmptyRender() {
7217
7218 }
7219
7220 function mountComponent$1(
7221 vm,
7222 el,
7223 hydrating
7224 ) {
7225 if (!vm.mpType) {//main.js 中的 new Vue
7226 return vm
7227 }
7228 if (vm.mpType === 'app') {
7229 vm.$options.render = createEmptyRender;
7230 }
7231 if (!vm.$options.render) {
7232 vm.$options.render = createEmptyRender;
7233 if (true) {
7234 /* istanbul ignore if */
7235 if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||
7236 vm.$options.el || el) {
7237 warn(
7238 'You are using the runtime-only build of Vue where the template ' +
7239 'compiler is not available. Either pre-compile the templates into ' +
7240 'render functions, or use the compiler-included build.',
7241 vm
7242 );
7243 } else {
7244 warn(
7245 'Failed to mount component: template or render function not defined.',
7246 vm
7247 );
7248 }
7249 }
7250 }
7251
7252 !vm._$fallback && callHook(vm, 'beforeMount');
7253
7254 var updateComponent = function () {
7255 vm._update(vm._render(), hydrating);
7256 };
7257
7258 // we set this to vm._watcher inside the watcher's constructor
7259 // since the watcher's initial patch may call $forceUpdate (e.g. inside child
7260 // component's mounted hook), which relies on vm._watcher being already defined
7261 new Watcher(vm, updateComponent, noop, {
7262 before: function before() {
7263 if (vm._isMounted && !vm._isDestroyed) {
7264 callHook(vm, 'beforeUpdate');
7265 }
7266 }
7267 }, true /* isRenderWatcher */);
7268 hydrating = false;
7269 return vm
7270 }
7271
7272 /* */
7273
7274 function renderClass (
7275 staticClass,
7276 dynamicClass
7277 ) {
7278 if (isDef(staticClass) || isDef(dynamicClass)) {
7279 return concat(staticClass, stringifyClass(dynamicClass))
7280 }
7281 /* istanbul ignore next */
7282 return ''
7283 }
7284
7285 function concat (a, b) {
7286 return a ? b ? (a + ' ' + b) : a : (b || '')
7287 }
7288
7289 function stringifyClass (value) {
7290 if (Array.isArray(value)) {
7291 return stringifyArray(value)
7292 }
7293 if (isObject(value)) {
7294 return stringifyObject(value)
7295 }
7296 if (typeof value === 'string') {
7297 return value
7298 }
7299 /* istanbul ignore next */
7300 return ''
7301 }
7302
7303 function stringifyArray (value) {
7304 var res = '';
7305 var stringified;
7306 for (var i = 0, l = value.length; i < l; i++) {
7307 if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {
7308 if (res) { res += ' '; }
7309 res += stringified;
7310 }
7311 }
7312 return res
7313 }
7314
7315 function stringifyObject (value) {
7316 var res = '';
7317 for (var key in value) {
7318 if (value[key]) {
7319 if (res) { res += ' '; }
7320 res += key;
7321 }
7322 }
7323 return res
7324 }
7325
7326 /* */
7327
7328 var parseStyleText = cached(function (cssText) {
7329 var res = {};
7330 var listDelimiter = /;(?![^(]*\))/g;
7331 var propertyDelimiter = /:(.+)/;
7332 cssText.split(listDelimiter).forEach(function (item) {
7333 if (item) {
7334 var tmp = item.split(propertyDelimiter);
7335 tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());
7336 }
7337 });
7338 return res
7339 });
7340
7341 // normalize possible array / string values into Object
7342 function normalizeStyleBinding (bindingStyle) {
7343 if (Array.isArray(bindingStyle)) {
7344 return toObject(bindingStyle)
7345 }
7346 if (typeof bindingStyle === 'string') {
7347 return parseStyleText(bindingStyle)
7348 }
7349 return bindingStyle
7350 }
7351
7352 /* */
7353
7354 var MP_METHODS = ['createSelectorQuery', 'createIntersectionObserver', 'selectAllComponents', 'selectComponent'];
7355
7356 function getTarget(obj, path) {
7357 var parts = path.split('.');
7358 var key = parts[0];
7359 if (key.indexOf('__$n') === 0) { //number index
7360 key = parseInt(key.replace('__$n', ''));
7361 }
7362 if (parts.length === 1) {
7363 return obj[key]
7364 }
7365 return getTarget(obj[key], parts.slice(1).join('.'))
7366 }
7367
7368 function internalMixin(Vue) {
7369
7370 Vue.config.errorHandler = function(err) {
7371 console.error(err);
7372 /* eslint-disable no-undef */
7373 var app = getApp();
7374 if (app && app.onError) {
7375 app.onError(err);
7376 }
7377 };
7378
7379 var oldEmit = Vue.prototype.$emit;
7380
7381 Vue.prototype.$emit = function(event) {
7382 if (this.$scope && event) {
7383 this.$scope['triggerEvent'](event, {
7384 __args__: toArray(arguments, 1)
7385 });
7386 }
7387 return oldEmit.apply(this, arguments)
7388 };
7389
7390 Vue.prototype.$nextTick = function(fn) {
7391 return nextTick$1(this, fn)
7392 };
7393
7394 MP_METHODS.forEach(function (method) {
7395 Vue.prototype[method] = function(args) {
7396 if (this.$scope && this.$scope[method]) {
7397 return this.$scope[method](args)
7398 }
7399 // mp-alipay
7400 if (typeof my === 'undefined') {
7401 return
7402 }
7403 if (method === 'createSelectorQuery') {
7404 /* eslint-disable no-undef */
7405 return my.createSelectorQuery(args)
7406 } else if (method === 'createIntersectionObserver') {
7407 /* eslint-disable no-undef */
7408 return my.createIntersectionObserver(args)
7409 }
7410 // TODO mp-alipay 暂不支持 selectAllComponents,selectComponent
7411 };
7412 });
7413
7414 Vue.prototype.__init_provide = initProvide;
7415
7416 Vue.prototype.__init_injections = initInjections;
7417
7418 Vue.prototype.__call_hook = function(hook, args) {
7419 var vm = this;
7420 // #7573 disable dep collection when invoking lifecycle hooks
7421 pushTarget();
7422 var handlers = vm.$options[hook];
7423 var info = hook + " hook";
7424 var ret;
7425 if (handlers) {
7426 for (var i = 0, j = handlers.length; i < j; i++) {
7427 ret = invokeWithErrorHandling(handlers[i], vm, args ? [args] : null, vm, info);
7428 }
7429 }
7430 if (vm._hasHookEvent) {
7431 vm.$emit('hook:' + hook, args);
7432 }
7433 popTarget();
7434 return ret
7435 };
7436
7437 Vue.prototype.__set_model = function(target, key, value, modifiers) {
7438 if (Array.isArray(modifiers)) {
7439 if (modifiers.indexOf('trim') !== -1) {
7440 value = value.trim();
7441 }
7442 if (modifiers.indexOf('number') !== -1) {
7443 value = this._n(value);
7444 }
7445 }
7446 if (!target) {
7447 target = this;
7448 }
7449 target[key] = value;
7450 };
7451
7452 Vue.prototype.__set_sync = function(target, key, value) {
7453 if (!target) {
7454 target = this;
7455 }
7456 target[key] = value;
7457 };
7458
7459 Vue.prototype.__get_orig = function(item) {
7460 if (isPlainObject(item)) {
7461 return item['$orig'] || item
7462 }
7463 return item
7464 };
7465
7466 Vue.prototype.__get_value = function(dataPath, target) {
7467 return getTarget(target || this, dataPath)
7468 };
7469
7470
7471 Vue.prototype.__get_class = function(dynamicClass, staticClass) {
7472 return renderClass(staticClass, dynamicClass)
7473 };
7474
7475 Vue.prototype.__get_style = function(dynamicStyle, staticStyle) {
7476 if (!dynamicStyle && !staticStyle) {
7477 return ''
7478 }
7479 var dynamicStyleObj = normalizeStyleBinding(dynamicStyle);
7480 var styleObj = staticStyle ? extend(staticStyle, dynamicStyleObj) : dynamicStyleObj;
7481 return Object.keys(styleObj).map(function (name) { return ((hyphenate(name)) + ":" + (styleObj[name])); }).join(';')
7482 };
7483
7484 Vue.prototype.__map = function(val, iteratee) {
7485 //TODO 暂不考虑 string,number
7486 var ret, i, l, keys, key;
7487 if (Array.isArray(val)) {
7488 ret = new Array(val.length);
7489 for (i = 0, l = val.length; i < l; i++) {
7490 ret[i] = iteratee(val[i], i);
7491 }
7492 return ret
7493 } else if (isObject(val)) {
7494 keys = Object.keys(val);
7495 ret = Object.create(null);
7496 for (i = 0, l = keys.length; i < l; i++) {
7497 key = keys[i];
7498 ret[key] = iteratee(val[key], key, i);
7499 }
7500 return ret
7501 }
7502 return []
7503 };
7504
7505 }
7506
7507 /* */
7508
7509 var LIFECYCLE_HOOKS$1 = [
7510 //App
7511 'onLaunch',
7512 'onShow',
7513 'onHide',
7514 'onUniNViewMessage',
7515 'onError',
7516 //Page
7517 'onLoad',
7518 // 'onShow',
7519 'onReady',
7520 // 'onHide',
7521 'onUnload',
7522 'onPullDownRefresh',
7523 'onReachBottom',
7524 'onTabItemTap',
7525 'onShareAppMessage',
7526 'onResize',
7527 'onPageScroll',
7528 'onNavigationBarButtonTap',
7529 'onBackPress',
7530 'onNavigationBarSearchInputChanged',
7531 'onNavigationBarSearchInputConfirmed',
7532 'onNavigationBarSearchInputClicked',
7533 //Component
7534 // 'onReady', // 兼容旧版本,应该移除该事件
7535 'onPageShow',
7536 'onPageHide',
7537 'onPageResize'
7538 ];
7539 function lifecycleMixin$1(Vue) {
7540
7541 //fixed vue-class-component
7542 var oldExtend = Vue.extend;
7543 Vue.extend = function(extendOptions) {
7544 extendOptions = extendOptions || {};
7545
7546 var methods = extendOptions.methods;
7547 if (methods) {
7548 Object.keys(methods).forEach(function (methodName) {
7549 if (LIFECYCLE_HOOKS$1.indexOf(methodName)!==-1) {
7550 extendOptions[methodName] = methods[methodName];
7551 delete methods[methodName];
7552 }
7553 });
7554 }
7555
7556 return oldExtend.call(this, extendOptions)
7557 };
7558
7559 var strategies = Vue.config.optionMergeStrategies;
7560 var mergeHook = strategies.created;
7561 LIFECYCLE_HOOKS$1.forEach(function (hook) {
7562 strategies[hook] = mergeHook;
7563 });
7564
7565 Vue.prototype.__lifecycle_hooks__ = LIFECYCLE_HOOKS$1;
7566 }
7567
7568 /* */
7569
7570 // install platform patch function
7571 Vue.prototype.__patch__ = patch;
7572
7573 // public mount method
7574 Vue.prototype.$mount = function(
7575 el ,
7576 hydrating
7577 ) {
7578 return mountComponent$1(this, el, hydrating)
7579 };
7580
7581 lifecycleMixin$1(Vue);
7582 internalMixin(Vue);
7583
7584 /* */
7585
7586 /* harmony default export */ __webpack_exports__["default"] = (Vue);
7587
7588 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ 3)))
7589
7590 /***/ }),
7591 /* 3 */
7592 /*!***********************************!*\
7593 !*** (webpack)/buildin/global.js ***!
7594 \***********************************/
7595 /*! no static exports found */
7596 /***/ (function(module, exports) {
7597
7598 var g;
7599
7600 // This works in non-strict mode
7601 g = (function() {
7602 return this;
7603 })();
7604
7605 try {
7606 // This works if eval is allowed (see CSP)
7607 g = g || new Function("return this")();
7608 } catch (e) {
7609 // This works if the window reference is available
7610 if (typeof window === "object") g = window;
7611 }
7612
7613 // g can still be undefined, but nothing to do about it...
7614 // We return undefined, instead of nothing here, so it's
7615 // easier to handle this case. if(!global) { ...}
7616
7617 module.exports = g;
7618
7619
7620 /***/ }),
7621 /* 4 */
7622 /*!**********************************************************!*\
7623 !*** C:/Users/Administrator/Desktop/gulu-vue/pages.json ***!
7624 \**********************************************************/
7625 /*! no static exports found */
7626 /***/ (function(module, exports) {
7627
7628
7629
7630 /***/ }),
7631 /* 5 */
7632 /*!*******************************************************!*\
7633 !*** ./node_modules/@dcloudio/uni-stat/dist/index.js ***!
7634 \*******************************************************/
7635 /*! no static exports found */
7636 /***/ (function(module, exports, __webpack_require__) {
7637
7638 "use strict";
7639 /* WEBPACK VAR INJECTION */(function(uni) {var _package = __webpack_require__(/*! ../package.json */ 6);function _createSuper(Derived) {return function () {var Super = _getPrototypeOf(Derived),result;if (_isNativeReflectConstruct()) {var NewTarget = _getPrototypeOf(this).constructor;result = Reflect.construct(Super, arguments, NewTarget);} else {result = Super.apply(this, arguments);}return _possibleConstructorReturn(this, result);};}function _possibleConstructorReturn(self, call) {if (call && (typeof call === "object" || typeof call === "function")) {return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self) {if (self === void 0) {throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _isNativeReflectConstruct() {if (typeof Reflect === "undefined" || !Reflect.construct) return false;if (Reflect.construct.sham) return false;if (typeof Proxy === "function") return true;try {Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));return true;} catch (e) {return false;}}function _getPrototypeOf(o) {_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {return o.__proto__ || Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass, superClass) {if (typeof superClass !== "function" && superClass !== null) {throw new TypeError("Super expression must either be null or a function");}subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });if (superClass) _setPrototypeOf(subClass, superClass);}function _setPrototypeOf(o, p) {_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {o.__proto__ = p;return o;};return _setPrototypeOf(o, p);}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}
7640
7641 var STAT_VERSION = _package.version;
7642 var STAT_URL = 'https://tongji.dcloud.io/uni/stat';
7643 var STAT_H5_URL = 'https://tongji.dcloud.io/uni/stat.gif';
7644 var PAGE_PVER_TIME = 1800;
7645 var APP_PVER_TIME = 300;
7646 var OPERATING_TIME = 10;
7647
7648 var UUID_KEY = '__DC_STAT_UUID';
7649 var UUID_VALUE = '__DC_UUID_VALUE';
7650
7651 function getUuid() {
7652 var uuid = '';
7653 if (getPlatformName() === 'n') {
7654 try {
7655 uuid = plus.runtime.getDCloudId();
7656 } catch (e) {
7657 uuid = '';
7658 }
7659 return uuid;
7660 }
7661
7662 try {
7663 uuid = uni.getStorageSync(UUID_KEY);
7664 } catch (e) {
7665 uuid = UUID_VALUE;
7666 }
7667
7668 if (!uuid) {
7669 uuid = Date.now() + '' + Math.floor(Math.random() * 1e7);
7670 try {
7671 uni.setStorageSync(UUID_KEY, uuid);
7672 } catch (e) {
7673 uni.setStorageSync(UUID_KEY, UUID_VALUE);
7674 }
7675 }
7676 return uuid;
7677 }
7678
7679 var getSgin = function getSgin(statData) {
7680 var arr = Object.keys(statData);
7681 var sortArr = arr.sort();
7682 var sgin = {};
7683 var sginStr = '';
7684 for (var i in sortArr) {
7685 sgin[sortArr[i]] = statData[sortArr[i]];
7686 sginStr += sortArr[i] + '=' + statData[sortArr[i]] + '&';
7687 }
7688 // const options = sginStr.substr(0, sginStr.length - 1)
7689 // sginStr = sginStr.substr(0, sginStr.length - 1) + '&key=' + STAT_KEY;
7690 // const si = crypto.createHash('md5').update(sginStr).digest('hex');
7691 return {
7692 sign: '',
7693 options: sginStr.substr(0, sginStr.length - 1) };
7694
7695 };
7696
7697 var getSplicing = function getSplicing(data) {
7698 var str = '';
7699 for (var i in data) {
7700 str += i + '=' + data[i] + '&';
7701 }
7702 return str.substr(0, str.length - 1);
7703 };
7704
7705 var getTime = function getTime() {
7706 return parseInt(new Date().getTime() / 1000);
7707 };
7708
7709 var getPlatformName = function getPlatformName() {
7710 var platformList = {
7711 'app-plus': 'n',
7712 'h5': 'h5',
7713 'mp-weixin': 'wx',
7714 'mp-alipay': 'ali',
7715 'mp-baidu': 'bd',
7716 'mp-toutiao': 'tt',
7717 'mp-qq': 'qq' };
7718
7719 return platformList["mp-weixin"];
7720 };
7721
7722 var getPackName = function getPackName() {
7723 var packName = '';
7724 if (getPlatformName() === 'wx' || getPlatformName() === 'qq') {
7725 // 兼容微信小程序低版本基础库
7726 if (uni.canIUse('getAccountInfoSync')) {
7727 packName = uni.getAccountInfoSync().miniProgram.appId || '';
7728 }
7729 }
7730 return packName;
7731 };
7732
7733 var getVersion = function getVersion() {
7734 return getPlatformName() === 'n' ? plus.runtime.version : '';
7735 };
7736
7737 var getChannel = function getChannel() {
7738 var platformName = getPlatformName();
7739 var channel = '';
7740 if (platformName === 'n') {
7741 channel = plus.runtime.channel;
7742 }
7743 return channel;
7744 };
7745
7746 var getScene = function getScene(options) {
7747 var platformName = getPlatformName();
7748 var scene = '';
7749 if (options) {
7750 return options;
7751 }
7752 if (platformName === 'wx') {
7753 scene = uni.getLaunchOptionsSync().scene;
7754 }
7755 return scene;
7756 };
7757 var First__Visit__Time__KEY = 'First__Visit__Time';
7758 var Last__Visit__Time__KEY = 'Last__Visit__Time';
7759
7760 var getFirstVisitTime = function getFirstVisitTime() {
7761 var timeStorge = uni.getStorageSync(First__Visit__Time__KEY);
7762 var time = 0;
7763 if (timeStorge) {
7764 time = timeStorge;
7765 } else {
7766 time = getTime();
7767 uni.setStorageSync(First__Visit__Time__KEY, time);
7768 uni.removeStorageSync(Last__Visit__Time__KEY);
7769 }
7770 return time;
7771 };
7772
7773 var getLastVisitTime = function getLastVisitTime() {
7774 var timeStorge = uni.getStorageSync(Last__Visit__Time__KEY);
7775 var time = 0;
7776 if (timeStorge) {
7777 time = timeStorge;
7778 } else {
7779 time = '';
7780 }
7781 uni.setStorageSync(Last__Visit__Time__KEY, getTime());
7782 return time;
7783 };
7784
7785
7786 var PAGE_RESIDENCE_TIME = '__page__residence__time';
7787 var First_Page_residence_time = 0;
7788 var Last_Page_residence_time = 0;
7789
7790
7791 var setPageResidenceTime = function setPageResidenceTime() {
7792 First_Page_residence_time = getTime();
7793 if (getPlatformName() === 'n') {
7794 uni.setStorageSync(PAGE_RESIDENCE_TIME, getTime());
7795 }
7796 return First_Page_residence_time;
7797 };
7798
7799 var getPageResidenceTime = function getPageResidenceTime() {
7800 Last_Page_residence_time = getTime();
7801 if (getPlatformName() === 'n') {
7802 First_Page_residence_time = uni.getStorageSync(PAGE_RESIDENCE_TIME);
7803 }
7804 return Last_Page_residence_time - First_Page_residence_time;
7805 };
7806 var TOTAL__VISIT__COUNT = 'Total__Visit__Count';
7807 var getTotalVisitCount = function getTotalVisitCount() {
7808 var timeStorge = uni.getStorageSync(TOTAL__VISIT__COUNT);
7809 var count = 1;
7810 if (timeStorge) {
7811 count = timeStorge;
7812 count++;
7813 }
7814 uni.setStorageSync(TOTAL__VISIT__COUNT, count);
7815 return count;
7816 };
7817
7818 var GetEncodeURIComponentOptions = function GetEncodeURIComponentOptions(statData) {
7819 var data = {};
7820 for (var prop in statData) {
7821 data[prop] = encodeURIComponent(statData[prop]);
7822 }
7823 return data;
7824 };
7825
7826 var Set__First__Time = 0;
7827 var Set__Last__Time = 0;
7828
7829 var getFirstTime = function getFirstTime() {
7830 var time = new Date().getTime();
7831 Set__First__Time = time;
7832 Set__Last__Time = 0;
7833 return time;
7834 };
7835
7836
7837 var getLastTime = function getLastTime() {
7838 var time = new Date().getTime();
7839 Set__Last__Time = time;
7840 return time;
7841 };
7842
7843
7844 var getResidenceTime = function getResidenceTime(type) {
7845 var residenceTime = 0;
7846 if (Set__First__Time !== 0) {
7847 residenceTime = Set__Last__Time - Set__First__Time;
7848 }
7849
7850 residenceTime = parseInt(residenceTime / 1000);
7851 residenceTime = residenceTime < 1 ? 1 : residenceTime;
7852 if (type === 'app') {
7853 var overtime = residenceTime > APP_PVER_TIME ? true : false;
7854 return {
7855 residenceTime: residenceTime,
7856 overtime: overtime };
7857
7858 }
7859 if (type === 'page') {
7860 var _overtime = residenceTime > PAGE_PVER_TIME ? true : false;
7861 return {
7862 residenceTime: residenceTime,
7863 overtime: _overtime };
7864
7865 }
7866
7867 return {
7868 residenceTime: residenceTime };
7869
7870
7871 };
7872
7873 var getRoute = function getRoute() {
7874 var pages = getCurrentPages();
7875 var page = pages[pages.length - 1];
7876 var _self = page.$vm;
7877
7878 if (getPlatformName() === 'bd') {
7879 return _self.$mp && _self.$mp.page.is;
7880 } else {
7881 return _self.$scope && _self.$scope.route || _self.$mp && _self.$mp.page.route;
7882 }
7883 };
7884
7885 var getPageRoute = function getPageRoute(self) {
7886 var pages = getCurrentPages();
7887 var page = pages[pages.length - 1];
7888 var _self = page.$vm;
7889 var query = self._query;
7890 var str = query && JSON.stringify(query) !== '{}' ? '?' + JSON.stringify(query) : '';
7891 // clear
7892 self._query = '';
7893 if (getPlatformName() === 'bd') {
7894 return _self.$mp && _self.$mp.page.is + str;
7895 } else {
7896 return _self.$scope && _self.$scope.route + str || _self.$mp && _self.$mp.page.route + str;
7897 }
7898 };
7899
7900 var getPageTypes = function getPageTypes(self) {
7901 if (self.mpType === 'page' || self.$mp && self.$mp.mpType === 'page' || self.$options.mpType === 'page') {
7902 return true;
7903 }
7904 return false;
7905 };
7906
7907 var calibration = function calibration(eventName, options) {
7908 // login 、 share 、pay_success 、pay_fail 、register 、title
7909 if (!eventName) {
7910 console.error("uni.report \u7F3A\u5C11 [eventName] \u53C2\u6570");
7911 return true;
7912 }
7913 if (typeof eventName !== 'string') {
7914 console.error("uni.report [eventName] \u53C2\u6570\u7C7B\u578B\u9519\u8BEF,\u53EA\u80FD\u4E3A String \u7C7B\u578B");
7915 return true;
7916 }
7917 if (eventName.length > 255) {
7918 console.error("uni.report [eventName] \u53C2\u6570\u957F\u5EA6\u4E0D\u80FD\u5927\u4E8E 255");
7919 return true;
7920 }
7921
7922 if (typeof options !== 'string' && typeof options !== 'object') {
7923 console.error("uni.report [options] \u53C2\u6570\u7C7B\u578B\u9519\u8BEF,\u53EA\u80FD\u4E3A String \u6216 Object \u7C7B\u578B");
7924 return true;
7925 }
7926
7927 if (typeof options === 'string' && options.length > 255) {
7928 console.error("uni.report [options] \u53C2\u6570\u957F\u5EA6\u4E0D\u80FD\u5927\u4E8E 255");
7929 return true;
7930 }
7931
7932 if (eventName === 'title' && typeof options !== 'string') {
7933 console.error('uni.report [eventName] 参数为 title 时,[options] 参数只能为 String 类型');
7934 return true;
7935 }
7936 };
7937
7938 var PagesJson = __webpack_require__(/*! uni-pages?{"type":"style"} */ 7).default;
7939 var statConfig = __webpack_require__(/*! uni-stat-config */ 8).default || __webpack_require__(/*! uni-stat-config */ 8);
7940
7941 var resultOptions = uni.getSystemInfoSync();var
7942
7943 Util = /*#__PURE__*/function () {
7944 function Util() {_classCallCheck(this, Util);
7945 this.self = '';
7946 this._retry = 0;
7947 this._platform = '';
7948 this._query = {};
7949 this._navigationBarTitle = {
7950 config: '',
7951 page: '',
7952 report: '',
7953 lt: '' };
7954
7955 this._operatingTime = 0;
7956 this._reportingRequestData = {
7957 '1': [],
7958 '11': [] };
7959
7960 this.__prevent_triggering = false;
7961
7962 this.__licationHide = false;
7963 this.__licationShow = false;
7964 this._lastPageRoute = '';
7965 this.statData = {
7966 uuid: getUuid(),
7967 ut: getPlatformName(),
7968 mpn: getPackName(),
7969 ak: statConfig.appid,
7970 usv: STAT_VERSION,
7971 v: getVersion(),
7972 ch: getChannel(),
7973 cn: '',
7974 pn: '',
7975 ct: '',
7976 t: getTime(),
7977 tt: '',
7978 p: resultOptions.platform === 'android' ? 'a' : 'i',
7979 brand: resultOptions.brand || '',
7980 md: resultOptions.model,
7981 sv: resultOptions.system.replace(/(Android|iOS)\s/, ''),
7982 mpsdk: resultOptions.SDKVersion || '',
7983 mpv: resultOptions.version || '',
7984 lang: resultOptions.language,
7985 pr: resultOptions.pixelRatio,
7986 ww: resultOptions.windowWidth,
7987 wh: resultOptions.windowHeight,
7988 sw: resultOptions.screenWidth,
7989 sh: resultOptions.screenHeight };
7990
7991
7992 }_createClass(Util, [{ key: "_applicationShow", value: function _applicationShow()
7993
7994 {
7995 if (this.__licationHide) {
7996 getLastTime();
7997 var time = getResidenceTime('app');
7998 if (time.overtime) {
7999 var options = {
8000 path: this._lastPageRoute,
8001 scene: this.statData.sc };
8002
8003 this._sendReportRequest(options);
8004 }
8005 this.__licationHide = false;
8006 }
8007 } }, { key: "_applicationHide", value: function _applicationHide(
8008
8009 self, type) {
8010
8011 this.__licationHide = true;
8012 getLastTime();
8013 var time = getResidenceTime();
8014 getFirstTime();
8015 var route = getPageRoute(this);
8016 this._sendHideRequest({
8017 urlref: route,
8018 urlref_ts: time.residenceTime },
8019 type);
8020 } }, { key: "_pageShow", value: function _pageShow()
8021
8022 {
8023 var route = getPageRoute(this);
8024 var routepath = getRoute();
8025 this._navigationBarTitle.config = PagesJson &&
8026 PagesJson.pages[routepath] &&
8027 PagesJson.pages[routepath].titleNView &&
8028 PagesJson.pages[routepath].titleNView.titleText ||
8029 PagesJson &&
8030 PagesJson.pages[routepath] &&
8031 PagesJson.pages[routepath].navigationBarTitleText || '';
8032
8033 if (this.__licationShow) {
8034 getFirstTime();
8035 this.__licationShow = false;
8036 // console.log('这是 onLauch 之后执行的第一次 pageShow ,为下次记录时间做准备');
8037 this._lastPageRoute = route;
8038 return;
8039 }
8040
8041 getLastTime();
8042 this._lastPageRoute = route;
8043 var time = getResidenceTime('page');
8044 if (time.overtime) {
8045 var options = {
8046 path: this._lastPageRoute,
8047 scene: this.statData.sc };
8048
8049 this._sendReportRequest(options);
8050 }
8051 getFirstTime();
8052 } }, { key: "_pageHide", value: function _pageHide()
8053
8054 {
8055 if (!this.__licationHide) {
8056 getLastTime();
8057 var time = getResidenceTime('page');
8058 this._sendPageRequest({
8059 url: this._lastPageRoute,
8060 urlref: this._lastPageRoute,
8061 urlref_ts: time.residenceTime });
8062
8063 this._navigationBarTitle = {
8064 config: '',
8065 page: '',
8066 report: '',
8067 lt: '' };
8068
8069 return;
8070 }
8071 } }, { key: "_login", value: function _login()
8072
8073 {
8074 this._sendEventRequest({
8075 key: 'login' },
8076 0);
8077 } }, { key: "_share", value: function _share()
8078
8079 {
8080 this._sendEventRequest({
8081 key: 'share' },
8082 0);
8083 } }, { key: "_payment", value: function _payment(
8084 key) {
8085 this._sendEventRequest({
8086 key: key },
8087 0);
8088 } }, { key: "_sendReportRequest", value: function _sendReportRequest(
8089 options) {
8090
8091 this._navigationBarTitle.lt = '1';
8092 var query = options.query && JSON.stringify(options.query) !== '{}' ? '?' + JSON.stringify(options.query) : '';
8093 this.statData.lt = '1';
8094 this.statData.url = options.path + query || '';
8095 this.statData.t = getTime();
8096 this.statData.sc = getScene(options.scene);
8097 this.statData.fvts = getFirstVisitTime();
8098 this.statData.lvts = getLastVisitTime();
8099 this.statData.tvc = getTotalVisitCount();
8100 if (getPlatformName() === 'n') {
8101 this.getProperty();
8102 } else {
8103 this.getNetworkInfo();
8104 }
8105 } }, { key: "_sendPageRequest", value: function _sendPageRequest(
8106
8107 opt) {var
8108
8109 url =
8110
8111
8112 opt.url,urlref = opt.urlref,urlref_ts = opt.urlref_ts;
8113 this._navigationBarTitle.lt = '11';
8114 var options = {
8115 ak: this.statData.ak,
8116 uuid: this.statData.uuid,
8117 lt: '11',
8118 ut: this.statData.ut,
8119 url: url,
8120 tt: this.statData.tt,
8121 urlref: urlref,
8122 urlref_ts: urlref_ts,
8123 ch: this.statData.ch,
8124 usv: this.statData.usv,
8125 t: getTime(),
8126 p: this.statData.p };
8127
8128 this.request(options);
8129 } }, { key: "_sendHideRequest", value: function _sendHideRequest(
8130
8131 opt, type) {var
8132
8133 urlref =
8134
8135 opt.urlref,urlref_ts = opt.urlref_ts;
8136 var options = {
8137 ak: this.statData.ak,
8138 uuid: this.statData.uuid,
8139 lt: '3',
8140 ut: this.statData.ut,
8141 urlref: urlref,
8142 urlref_ts: urlref_ts,
8143 ch: this.statData.ch,
8144 usv: this.statData.usv,
8145 t: getTime(),
8146 p: this.statData.p };
8147
8148 this.request(options, type);
8149 } }, { key: "_sendEventRequest", value: function _sendEventRequest()
8150
8151
8152
8153 {var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},_ref$key = _ref.key,key = _ref$key === void 0 ? '' : _ref$key,_ref$value = _ref.value,value = _ref$value === void 0 ? "" : _ref$value;
8154 var route = this._lastPageRoute;
8155 var options = {
8156 ak: this.statData.ak,
8157 uuid: this.statData.uuid,
8158 lt: '21',
8159 ut: this.statData.ut,
8160 url: route,
8161 ch: this.statData.ch,
8162 e_n: key,
8163 e_v: typeof value === 'object' ? JSON.stringify(value) : value.toString(),
8164 usv: this.statData.usv,
8165 t: getTime(),
8166 p: this.statData.p };
8167
8168 this.request(options);
8169 } }, { key: "getNetworkInfo", value: function getNetworkInfo()
8170
8171 {var _this = this;
8172 uni.getNetworkType({
8173 success: function success(result) {
8174 _this.statData.net = result.networkType;
8175 _this.getLocation();
8176 } });
8177
8178 } }, { key: "getProperty", value: function getProperty()
8179
8180 {var _this2 = this;
8181 plus.runtime.getProperty(plus.runtime.appid, function (wgtinfo) {
8182 _this2.statData.v = wgtinfo.version || '';
8183 _this2.getNetworkInfo();
8184 });
8185 } }, { key: "getLocation", value: function getLocation()
8186
8187 {var _this3 = this;
8188 if (statConfig.getLocation) {
8189 uni.getLocation({
8190 type: 'wgs84',
8191 geocode: true,
8192 success: function success(result) {
8193 if (result.address) {
8194 _this3.statData.cn = result.address.country;
8195 _this3.statData.pn = result.address.province;
8196 _this3.statData.ct = result.address.city;
8197 }
8198
8199 _this3.statData.lat = result.latitude;
8200 _this3.statData.lng = result.longitude;
8201 _this3.request(_this3.statData);
8202 } });
8203
8204 } else {
8205 this.statData.lat = 0;
8206 this.statData.lng = 0;
8207 this.request(this.statData);
8208 }
8209 } }, { key: "request", value: function request(
8210
8211 data, type) {var _this4 = this;
8212 var time = getTime();
8213 var title = this._navigationBarTitle;
8214 data.ttn = title.page;
8215 data.ttpj = title.config;
8216 data.ttc = title.report;
8217
8218 var requestData = this._reportingRequestData;
8219 if (getPlatformName() === 'n') {
8220 requestData = uni.getStorageSync('__UNI__STAT__DATA') || {};
8221 }
8222 if (!requestData[data.lt]) {
8223 requestData[data.lt] = [];
8224 }
8225 requestData[data.lt].push(data);
8226
8227 if (getPlatformName() === 'n') {
8228 uni.setStorageSync('__UNI__STAT__DATA', requestData);
8229 }
8230 if (getPageResidenceTime() < OPERATING_TIME && !type) {
8231 return;
8232 }
8233 var uniStatData = this._reportingRequestData;
8234 if (getPlatformName() === 'n') {
8235 uniStatData = uni.getStorageSync('__UNI__STAT__DATA');
8236 }
8237 // 时间超过,重新获取时间戳
8238 setPageResidenceTime();
8239 var firstArr = [];
8240 var contentArr = [];
8241 var lastArr = [];var _loop = function _loop(
8242
8243 i) {
8244 var rd = uniStatData[i];
8245 rd.forEach(function (elm) {
8246 var newData = getSplicing(elm);
8247 if (i === 0) {
8248 firstArr.push(newData);
8249 } else if (i === 3) {
8250 lastArr.push(newData);
8251 } else {
8252 contentArr.push(newData);
8253 }
8254 });};for (var i in uniStatData) {_loop(i);
8255 }
8256
8257 firstArr.push.apply(firstArr, contentArr.concat(lastArr));
8258 var optionsData = {
8259 usv: STAT_VERSION, //统计 SDK 版本号
8260 t: time, //发送请求时的时间戮
8261 requests: JSON.stringify(firstArr) };
8262
8263
8264 this._reportingRequestData = {};
8265 if (getPlatformName() === 'n') {
8266 uni.removeStorageSync('__UNI__STAT__DATA');
8267 }
8268
8269 if (data.ut === 'h5') {
8270 this.imageRequest(optionsData);
8271 return;
8272 }
8273
8274 if (getPlatformName() === 'n' && this.statData.p === 'a') {
8275 setTimeout(function () {
8276 _this4._sendRequest(optionsData);
8277 }, 200);
8278 return;
8279 }
8280 this._sendRequest(optionsData);
8281 } }, { key: "_sendRequest", value: function _sendRequest(
8282 optionsData) {var _this5 = this;
8283 uni.request({
8284 url: STAT_URL,
8285 method: 'POST',
8286 // header: {
8287 // 'content-type': 'application/json' // 默认值
8288 // },
8289 data: optionsData,
8290 success: function success() {
8291 // if (process.env.NODE_ENV === 'development') {
8292 // console.log('stat request success');
8293 // }
8294 },
8295 fail: function fail(e) {
8296 if (++_this5._retry < 3) {
8297 setTimeout(function () {
8298 _this5._sendRequest(optionsData);
8299 }, 1000);
8300 }
8301 } });
8302
8303 }
8304 /**
8305 * h5 请求
8306 */ }, { key: "imageRequest", value: function imageRequest(
8307 data) {
8308 var image = new Image();
8309 var options = getSgin(GetEncodeURIComponentOptions(data)).options;
8310 image.src = STAT_H5_URL + '?' + options;
8311 } }, { key: "sendEvent", value: function sendEvent(
8312
8313 key, value) {
8314 // 校验 type 参数
8315 if (calibration(key, value)) return;
8316
8317 if (key === 'title') {
8318 this._navigationBarTitle.report = value;
8319 return;
8320 }
8321 this._sendEventRequest({
8322 key: key,
8323 value: typeof value === 'object' ? JSON.stringify(value) : value },
8324 1);
8325 } }]);return Util;}();var
8326
8327
8328
8329 Stat = /*#__PURE__*/function (_Util) {_inherits(Stat, _Util);var _super = _createSuper(Stat);_createClass(Stat, null, [{ key: "getInstance", value: function getInstance()
8330 {
8331 if (!this.instance) {
8332 this.instance = new Stat();
8333 }
8334 return this.instance;
8335 } }]);
8336 function Stat() {var _this6;_classCallCheck(this, Stat);
8337 _this6 = _super.call(this);
8338 _this6.instance = null;
8339 // 注册拦截器
8340 if (typeof uni.addInterceptor === 'function' && "development" !== 'development') {
8341 _this6.addInterceptorInit();
8342 _this6.interceptLogin();
8343 _this6.interceptShare(true);
8344 _this6.interceptRequestPayment();
8345 }return _this6;
8346 }_createClass(Stat, [{ key: "addInterceptorInit", value: function addInterceptorInit()
8347
8348 {
8349 var self = this;
8350 uni.addInterceptor('setNavigationBarTitle', {
8351 invoke: function invoke(args) {
8352 self._navigationBarTitle.page = args.title;
8353 } });
8354
8355 } }, { key: "interceptLogin", value: function interceptLogin()
8356
8357 {
8358 var self = this;
8359 uni.addInterceptor('login', {
8360 complete: function complete() {
8361 self._login();
8362 } });
8363
8364 } }, { key: "interceptShare", value: function interceptShare(
8365
8366 type) {
8367 var self = this;
8368 if (!type) {
8369 self._share();
8370 return;
8371 }
8372 uni.addInterceptor('share', {
8373 success: function success() {
8374 self._share();
8375 },
8376 fail: function fail() {
8377 self._share();
8378 } });
8379
8380 } }, { key: "interceptRequestPayment", value: function interceptRequestPayment()
8381
8382 {
8383 var self = this;
8384 uni.addInterceptor('requestPayment', {
8385 success: function success() {
8386 self._payment('pay_success');
8387 },
8388 fail: function fail() {
8389 self._payment('pay_fail');
8390 } });
8391
8392 } }, { key: "report", value: function report(
8393
8394 options, self) {
8395 this.self = self;
8396 // if (process.env.NODE_ENV === 'development') {
8397 // console.log('report init');
8398 // }
8399 setPageResidenceTime();
8400 this.__licationShow = true;
8401 this._sendReportRequest(options, true);
8402 } }, { key: "load", value: function load(
8403
8404 options, self) {
8405 if (!self.$scope && !self.$mp) {
8406 var page = getCurrentPages();
8407 self.$scope = page[page.length - 1];
8408 }
8409 this.self = self;
8410 this._query = options;
8411 } }, { key: "show", value: function show(
8412
8413 self) {
8414 this.self = self;
8415 if (getPageTypes(self)) {
8416 this._pageShow(self);
8417 } else {
8418 this._applicationShow(self);
8419 }
8420 } }, { key: "ready", value: function ready(
8421
8422 self) {
8423 // this.self = self;
8424 // if (getPageTypes(self)) {
8425 // this._pageShow(self);
8426 // }
8427 } }, { key: "hide", value: function hide(
8428 self) {
8429 this.self = self;
8430 if (getPageTypes(self)) {
8431 this._pageHide(self);
8432 } else {
8433 this._applicationHide(self, true);
8434 }
8435 } }, { key: "error", value: function error(
8436 em) {
8437 if (this._platform === 'devtools') {
8438 if (true) {
8439 console.info('当前运行环境为开发者工具,不上报数据。');
8440 }
8441 // return;
8442 }
8443 var emVal = '';
8444 if (!em.message) {
8445 emVal = JSON.stringify(em);
8446 } else {
8447 emVal = em.stack;
8448 }
8449 var options = {
8450 ak: this.statData.ak,
8451 uuid: this.statData.uuid,
8452 lt: '31',
8453 ut: this.statData.ut,
8454 ch: this.statData.ch,
8455 mpsdk: this.statData.mpsdk,
8456 mpv: this.statData.mpv,
8457 v: this.statData.v,
8458 em: emVal,
8459 usv: this.statData.usv,
8460 t: getTime(),
8461 p: this.statData.p };
8462
8463 this.request(options);
8464 } }]);return Stat;}(Util);
8465
8466
8467 var stat = Stat.getInstance();
8468 var isHide = false;
8469 var lifecycle = {
8470 onLaunch: function onLaunch(options) {
8471 stat.report(options, this);
8472 },
8473 onReady: function onReady() {
8474 stat.ready(this);
8475 },
8476 onLoad: function onLoad(options) {
8477 stat.load(options, this);
8478 // 重写分享,获取分享上报事件
8479 if (this.$scope && this.$scope.onShareAppMessage) {
8480 var oldShareAppMessage = this.$scope.onShareAppMessage;
8481 this.$scope.onShareAppMessage = function (options) {
8482 stat.interceptShare(false);
8483 return oldShareAppMessage.call(this, options);
8484 };
8485 }
8486 },
8487 onShow: function onShow() {
8488 isHide = false;
8489 stat.show(this);
8490 },
8491 onHide: function onHide() {
8492 isHide = true;
8493 stat.hide(this);
8494 },
8495 onUnload: function onUnload() {
8496 if (isHide) {
8497 isHide = false;
8498 return;
8499 }
8500 stat.hide(this);
8501 },
8502 onError: function onError(e) {
8503 stat.error(e);
8504 } };
8505
8506
8507 function main() {
8508 if (true) {
8509 uni.report = function (type, options) {};
8510 } else { var Vue; }
8511 }
8512
8513 main();
8514 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"]))
8515
8516 /***/ }),
8517 /* 6 */
8518 /*!******************************************************!*\
8519 !*** ./node_modules/@dcloudio/uni-stat/package.json ***!
8520 \******************************************************/
8521 /*! exports provided: _from, _id, _inBundle, _integrity, _location, _phantomChildren, _requested, _requiredBy, _resolved, _shasum, _spec, _where, author, bugs, bundleDependencies, deprecated, description, devDependencies, files, gitHead, homepage, license, main, name, repository, scripts, version, default */
8522 /***/ (function(module) {
8523
8524 module.exports = {"_from":"@dcloudio/uni-stat@next","_id":"@dcloudio/uni-stat@2.0.0-26920200424005","_inBundle":false,"_integrity":"sha512-FT8Z/C5xSmIxooqhV1v69jTkxATPz+FsRQIFOrbdlWekjGkrE73jfrdNMWm7gL5u41ALPJTVArxN1Re9by1bjQ==","_location":"/@dcloudio/uni-stat","_phantomChildren":{},"_requested":{"type":"tag","registry":true,"raw":"@dcloudio/uni-stat@next","name":"@dcloudio/uni-stat","escapedName":"@dcloudio%2funi-stat","scope":"@dcloudio","rawSpec":"next","saveSpec":null,"fetchSpec":"next"},"_requiredBy":["#USER","/","/@dcloudio/vue-cli-plugin-uni"],"_resolved":"https://registry.npmjs.org/@dcloudio/uni-stat/-/uni-stat-2.0.0-26920200424005.tgz","_shasum":"47f4375095eda3089cf4678b4b96fc656a7ab623","_spec":"@dcloudio/uni-stat@next","_where":"/Users/guoshengqiang/Documents/dcloud-plugins/release/uniapp-cli","author":"","bugs":{"url":"https://github.com/dcloudio/uni-app/issues"},"bundleDependencies":false,"deprecated":false,"description":"","devDependencies":{"@babel/core":"^7.5.5","@babel/preset-env":"^7.5.5","eslint":"^6.1.0","rollup":"^1.19.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-clear":"^2.0.7","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-copy":"^3.1.0","rollup-plugin-eslint":"^7.0.0","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-uglify":"^6.0.2"},"files":["dist","package.json","LICENSE"],"gitHead":"94494d54ed23e2dcf9ab8e3245b48b770b4e98a9","homepage":"https://github.com/dcloudio/uni-app#readme","license":"Apache-2.0","main":"dist/index.js","name":"@dcloudio/uni-stat","repository":{"type":"git","url":"git+https://github.com/dcloudio/uni-app.git","directory":"packages/uni-stat"},"scripts":{"build":"NODE_ENV=production rollup -c rollup.config.js","dev":"NODE_ENV=development rollup -w -c rollup.config.js"},"version":"2.0.0-26920200424005"};
8525
8526 /***/ }),
8527 /* 7 */
8528 /*!***************************************************************************!*\
8529 !*** C:/Users/Administrator/Desktop/gulu-vue/pages.json?{"type":"style"} ***!
8530 \***************************************************************************/
8531 /*! no static exports found */
8532 /***/ (function(module, exports, __webpack_require__) {
8533
8534 "use strict";
8535 Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default = { "pages": { "pages/index/index": { "navigationBarTitleText": "商城一览" }, "pages/cart/cart": { "navigationBarTitleText": "购物车" }, "pages/user/user": { "navigationBarTitleText": "我的" } }, "globalStyle": { "navigationBarTextStyle": "black", "navigationBarTitleText": "uni-app", "navigationBarBackgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8" } };exports.default = _default;
8536
8537 /***/ }),
8538 /* 8 */
8539 /*!**************************************************************************!*\
8540 !*** C:/Users/Administrator/Desktop/gulu-vue/pages.json?{"type":"stat"} ***!
8541 \**************************************************************************/
8542 /*! no static exports found */
8543 /***/ (function(module, exports, __webpack_require__) {
8544
8545 "use strict";
8546 Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default = { "appid": "" };exports.default = _default;
8547
8548 /***/ }),
8549 /* 9 */,
8550 /* 10 */,
8551 /* 11 */,
8552 /* 12 */,
8553 /* 13 */,
8554 /* 14 */
8555 /*!**********************************************************************************************************!*\
8556 !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js ***!
8557 \**********************************************************************************************************/
8558 /*! exports provided: default */
8559 /***/ (function(module, __webpack_exports__, __webpack_require__) {
8560
8561 "use strict";
8562 __webpack_require__.r(__webpack_exports__);
8563 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; });
8564 /* globals __VUE_SSR_CONTEXT__ */
8565
8566 // IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
8567 // This module is a runtime utility for cleaner component module output and will
8568 // be included in the final webpack user bundle.
8569
8570 function normalizeComponent (
8571 scriptExports,
8572 render,
8573 staticRenderFns,
8574 functionalTemplate,
8575 injectStyles,
8576 scopeId,
8577 moduleIdentifier, /* server only */
8578 shadowMode, /* vue-cli only */
8579 components, // fixed by xxxxxx auto components
8580 renderjs // fixed by xxxxxx renderjs
8581 ) {
8582 // Vue.extend constructor export interop
8583 var options = typeof scriptExports === 'function'
8584 ? scriptExports.options
8585 : scriptExports
8586
8587 // fixed by xxxxxx auto components
8588 if (components) {
8589 if (!options.components) {
8590 options.components = {}
8591 }
8592 var hasOwn = Object.prototype.hasOwnProperty
8593 for (var name in components) {
8594 if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) {
8595 options.components[name] = components[name]
8596 }
8597 }
8598 }
8599 // fixed by xxxxxx renderjs
8600 if (renderjs) {
8601 (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() {
8602 this[renderjs.__module] = this
8603 });
8604 (options.mixins || (options.mixins = [])).push(renderjs)
8605 }
8606
8607 // render functions
8608 if (render) {
8609 options.render = render
8610 options.staticRenderFns = staticRenderFns
8611 options._compiled = true
8612 }
8613
8614 // functional template
8615 if (functionalTemplate) {
8616 options.functional = true
8617 }
8618
8619 // scopedId
8620 if (scopeId) {
8621 options._scopeId = 'data-v-' + scopeId
8622 }
8623
8624 var hook
8625 if (moduleIdentifier) { // server build
8626 hook = function (context) {
8627 // 2.3 injection
8628 context =
8629 context || // cached call
8630 (this.$vnode && this.$vnode.ssrContext) || // stateful
8631 (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
8632 // 2.2 with runInNewContext: true
8633 if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
8634 context = __VUE_SSR_CONTEXT__
8635 }
8636 // inject component styles
8637 if (injectStyles) {
8638 injectStyles.call(this, context)
8639 }
8640 // register component module identifier for async chunk inferrence
8641 if (context && context._registeredComponents) {
8642 context._registeredComponents.add(moduleIdentifier)
8643 }
8644 }
8645 // used by ssr in case component is cached and beforeCreate
8646 // never gets called
8647 options._ssrRegister = hook
8648 } else if (injectStyles) {
8649 hook = shadowMode
8650 ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }
8651 : injectStyles
8652 }
8653
8654 if (hook) {
8655 if (options.functional) {
8656 // for template-only hot-reload because in that case the render fn doesn't
8657 // go through the normalizer
8658 options._injectStyles = hook
8659 // register for functioal component in vue file
8660 var originalRender = options.render
8661 options.render = function renderWithStyleInjection (h, context) {
8662 hook.call(context)
8663 return originalRender(h, context)
8664 }
8665 } else {
8666 // inject component registration as beforeCreate hook
8667 var existing = options.beforeCreate
8668 options.beforeCreate = existing
8669 ? [].concat(existing, hook)
8670 : [hook]
8671 }
8672 }
8673
8674 return {
8675 exports: scriptExports,
8676 options: options
8677 }
8678 }
8679
8680
8681 /***/ }),
8682 /* 15 */,
8683 /* 16 */,
8684 /* 17 */,
8685 /* 18 */,
8686 /* 19 */,
8687 /* 20 */,
8688 /* 21 */
8689 /*!**************************************************************!*\
8690 !*** C:/Users/Administrator/Desktop/gulu-vue/common/data.js ***!
8691 \**************************************************************/
8692 /*! no static exports found */
8693 /***/ (function(module, exports, __webpack_require__) {
8694
8695 "use strict";
8696 Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0; // 数据格式,数据中只需要包含以下字段和数据格式,可以添加字段,比如id等等,不影响组件显示,
8697 // 组件的返回结果是有菜单数组下标形式返回,
8698 // 如果传入数据中有value,也会返回value,开发者可根据返回的下标获取所选中的菜单
8699 /*
8700 [
8701 {
8702 "name":"", //字符串类型 选填项 菜单名称,如不填,则取第一个子菜单的name值,filter和radio类型则将设置为"筛选"
8703 "type":"" //字符串类型 必填项 可取值 hierarchy/filter/radio hierarchy单/多层级菜单(最多三级); filter筛选多选菜单; radio筛选单选菜单
8704 "submenu":[ //对象数组类型 必填项 子菜单数据
8705 {
8706 "name":"", //字符串类型 必填项 菜单名称
8707 "value":"", //字符串类型 选填项 自定义内容,比如id等等,如果填写了,confirm返回的结果中将返回对应选中的value,若菜单无value字段则返回null,filter类型此字段无效果
8708 "submenu":[ //对象数组类型 必填项 子菜单数据
8709 {
8710 "name":"", //字符串类型 必填项 菜单名称
8711 "value":"", //字符串类型 选填项 自定义内容,比如id等等,如果填写了,confirm返回的结果中将返回对应选中的value,若菜单无value字段则返回null
8712 "submenu":[ //对象数组类型 必填项 子菜单数据 filter类型无效
8713 {
8714 "name":"", //字符串类型 必填项 菜单名称 hierarchy类型层级最多到此
8715 "value":"", //字符串类型 选填项 自定义内容,比如id等等,如果填写了,confirm返回的结果中将返回对应选中的value,若菜单无value字段则返回null
8716 }
8717 ]
8718 }
8719 ]
8720 }
8721 ]
8722 }
8723 ]
8724 */
8725
8726 //0.0.4版本起 返回结果将有两部分组成:
8727 /*
8728 {
8729 index:[], //旧版本的下标数组形式
8730 value:[] //菜单中的valve,结构和下标结果数组一样,只是把下标替换成了value而已
8731 }
8732 */
8733 // 以下演示数据中,我故意把value设置成跟name一样,只是为了方便演示,使示例更加易懂,实际使用时候value应该是一个标识,给后台识别所用的.
8734 // 数据较长,请仔细查看。
8735 var _default = [
8736 {
8737 "name": '综合',
8738 "type": 'filter',
8739 "submenu": [{
8740 "submenu": [] }] },
8741
8742
8743
8744
8745
8746 {
8747 name: '品牌',
8748 "type": 'filter',
8749 "submenu": [{
8750 "name": '品牌',
8751 "value": "品牌",
8752 "submenu": [{
8753 "name": "帕森",
8754 "value": "帕森" },
8755
8756 {
8757 "name": "海伦凯勒",
8758 "value": "海伦凯勒" }] }] },
8759
8760
8761
8762
8763
8764 {
8765 "name": '功能',
8766 "type": 'filter',
8767 "submenu": [{
8768 "name": "智能排序",
8769 "value": "智能排序" },
8770
8771 {
8772 "name": "离我最近",
8773 "value": "离我最近" },
8774
8775 {
8776 "name": "人均从高到低",
8777 "value": "人均从高到低" },
8778
8779 {
8780 "name": "人均从低到高",
8781 "value": "人均从低到高" }] },
8782
8783
8784
8785 {
8786 "name": '材质',
8787 "type": 'filter',
8788 "submenu": [{
8789 "submenu": [{
8790 "name": "满减活动",
8791 "value": "满减活动" },
8792
8793 {
8794 "name": "打折优惠",
8795 "value": "打折优惠" },
8796
8797 {
8798 "name": "会员专享",
8799 "value": "会员专享" }] }] },
8800
8801
8802
8803
8804
8805 {
8806 "name": '折扣',
8807 "type": 'filter',
8808 "submenu": [{
8809 "name": "折扣(多选)",
8810 "submenu": [{
8811 "name": "满减活动",
8812 "value": "满减活动" },
8813
8814 {
8815 "name": "打折优惠",
8816 "value": "打折优惠" },
8817
8818 {
8819 "name": "会员专享",
8820 "value": "会员专享" }] }] }];exports.default = _default;
8821
8822 /***/ })
8823 ]]);
8824 //# sourceMappingURL=../../.sourcemap/mp-weixin/common/vendor.js.map
unpackage/dist/dev/mp-weixin/components/HM-filterDropdown/HM-filterDropdown.js
1 (global["webpackJsonp"] = global["webpackJsonp"] || []).push([["components/HM-filterDropdown/HM-filterDropdown"],{ File was deleted
2
3 /***/ 47:
4 /*!**************************************************************************************************!*\
5 !*** C:/Users/Administrator/Desktop/gulu-vue/components/HM-filterDropdown/HM-filterDropdown.vue ***!
6 \**************************************************************************************************/
7 /*! no static exports found */
8 /***/ (function(module, __webpack_exports__, __webpack_require__) {
9
10 "use strict";
11 __webpack_require__.r(__webpack_exports__);
12 /* harmony import */ var _HM_filterDropdown_vue_vue_type_template_id_b17dcada___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./HM-filterDropdown.vue?vue&type=template&id=b17dcada& */ 48);
13 /* harmony import */ var _HM_filterDropdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HM-filterDropdown.vue?vue&type=script&lang=js& */ 50);
14 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HM_filterDropdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _HM_filterDropdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
15 /* harmony import */ var _HM_filterDropdown_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./HM-filterDropdown.vue?vue&type=style&index=0&lang=scss& */ 52);
16 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 14);
17
18 var renderjs
19
20
21
22
23
24 /* normalize component */
25
26 var component = Object(_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
27 _HM_filterDropdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
28 _HM_filterDropdown_vue_vue_type_template_id_b17dcada___WEBPACK_IMPORTED_MODULE_0__["render"],
29 _HM_filterDropdown_vue_vue_type_template_id_b17dcada___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
30 false,
31 null,
32 null,
33 null,
34 false,
35 _HM_filterDropdown_vue_vue_type_template_id_b17dcada___WEBPACK_IMPORTED_MODULE_0__["components"],
36 renderjs
37 )
38
39 component.options.__file = "C:/Users/Administrator/Desktop/gulu-vue/components/HM-filterDropdown/HM-filterDropdown.vue"
40 /* harmony default export */ __webpack_exports__["default"] = (component.exports);
41
42 /***/ }),
43
44 /***/ 48:
45 /*!*********************************************************************************************************************************!*\
46 !*** C:/Users/Administrator/Desktop/gulu-vue/components/HM-filterDropdown/HM-filterDropdown.vue?vue&type=template&id=b17dcada& ***!
47 \*********************************************************************************************************************************/
48 /*! exports provided: render, staticRenderFns, recyclableRender, components */
49 /***/ (function(module, __webpack_exports__, __webpack_require__) {
50
51 "use strict";
52 __webpack_require__.r(__webpack_exports__);
53 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_HM_filterDropdown_vue_vue_type_template_id_b17dcada___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./HM-filterDropdown.vue?vue&type=template&id=b17dcada& */ 49);
54 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_HM_filterDropdown_vue_vue_type_template_id_b17dcada___WEBPACK_IMPORTED_MODULE_0__["render"]; });
55
56 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_HM_filterDropdown_vue_vue_type_template_id_b17dcada___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
57
58 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_HM_filterDropdown_vue_vue_type_template_id_b17dcada___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
59
60 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_HM_filterDropdown_vue_vue_type_template_id_b17dcada___WEBPACK_IMPORTED_MODULE_0__["components"]; });
61
62
63
64 /***/ }),
65
66 /***/ 49:
67 /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
68 !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/components/HM-filterDropdown/HM-filterDropdown.vue?vue&type=template&id=b17dcada& ***!
69 \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
70 /*! exports provided: render, staticRenderFns, recyclableRender, components */
71 /***/ (function(module, __webpack_exports__, __webpack_require__) {
72
73 "use strict";
74 __webpack_require__.r(__webpack_exports__);
75 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
76 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
77 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
78 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
79 var components
80 var render = function() {
81 var _vm = this
82 var _h = _vm.$createElement
83 var _c = _vm._self._c || _h
84 }
85 var recyclableRender = false
86 var staticRenderFns = []
87 render._withStripped = true
88
89
90
91 /***/ }),
92
93 /***/ 50:
94 /*!***************************************************************************************************************************!*\
95 !*** C:/Users/Administrator/Desktop/gulu-vue/components/HM-filterDropdown/HM-filterDropdown.vue?vue&type=script&lang=js& ***!
96 \***************************************************************************************************************************/
97 /*! no static exports found */
98 /***/ (function(module, __webpack_exports__, __webpack_require__) {
99
100 "use strict";
101 __webpack_require__.r(__webpack_exports__);
102 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_HM_filterDropdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./HM-filterDropdown.vue?vue&type=script&lang=js& */ 51);
103 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_HM_filterDropdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_HM_filterDropdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
104 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_HM_filterDropdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_HM_filterDropdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
105 /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_HM_filterDropdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a);
106
107 /***/ }),
108
109 /***/ 51:
110 /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
111 !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/components/HM-filterDropdown/HM-filterDropdown.vue?vue&type=script&lang=js& ***!
112 \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
113 /*! no static exports found */
114 /***/ (function(module, exports, __webpack_require__) {
115
116 "use strict";
117 Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0; //
118 //
119 //
120 //
121 //
122 //
123 //
124 //
125 //
126 //
127 //
128 //
129 //
130 //
131 //
132 //
133 //
134 //
135 //
136 //
137 //
138 //
139 //
140 //
141 //
142 //
143 //
144 //
145 //
146 //
147 //
148 //
149 //
150 //
151 //
152 //
153 //
154 //
155 //
156 //
157 //
158 //
159 //
160 //
161 //
162 //
163 //
164 //
165 //
166 //
167 //
168 //
169 //
170 //
171 //
172 //
173 //
174 //
175 //
176 //
177 //
178 //
179 //
180 //
181 //
182 //
183 //
184 //
185 //
186 //
187 //
188 //
189 //
190 //
191 //
192 //
193 //
194 //
195 //
196 //
197 //
198 //
199 //
200 //
201 //
202 var _default =
203 {
204 data: function data() {
205 return {
206 subData: [], //菜单数据
207 menu: [], //顶部横条数据
208 showPage: -1, //菜单页面显示/隐藏动画控制
209 pageState: [], //页面的状态
210 activeMenuArr: [], //UI状态
211 shadowActiveMenuArr: [], //记录选中
212 defaultActive: [],
213 triangleDeg: [], //小三角形的翻转动画控制
214 isShowMask: false, //遮罩层显示/隐藏动画控制
215 maskVisibility: false, //遮罩层显示/隐藏状态
216 //滚动区域定位
217 firstScrollInto: 0,
218 secondScrollInto: 0,
219 componentTop: 0, //组件top
220 isReadNewSelect: false };
221
222 },
223 props: {
224 filterData: {
225 value: Array,
226 default: [] },
227
228 defaultSelected: {
229 value: Array,
230 default: [] },
231
232 updateMenuName: {
233 value: Boolean,
234 default: true },
235
236 dataFormat: {
237 value: String,
238 default: 'Array' } },
239
240
241 watch: {
242 filterData: {
243 handler: function handler() {
244 this.initMenu(); //filterData重新赋值初始化菜单
245 },
246 immediate: true },
247
248 defaultSelected: function defaultSelected(newVal) {
249 if (newVal.length == 0) {
250 return;
251 }
252 this.defaultActive = JSON.parse(JSON.stringify(newVal));
253 this.activeMenuArr = JSON.parse(JSON.stringify(newVal));
254 this.shadowActiveMenuArr = JSON.parse(JSON.stringify(newVal));
255 if (this.updateMenuName) {
256 this.setMenuName();
257 }
258 } },
259
260 methods: {
261 initMenu: function initMenu() {
262 var tmpMenuActiveArr = [];
263 var tmpMenu = [];
264 for (var i = 0; i < this.filterData.length; i++) {
265 var tmpitem = this.filterData[i];
266 tmpMenu.push({
267 //如果没有设置name,则取第一个菜单作为menu.name,filter类型则将"筛选"作为menu.name
268 name: tmpitem.name || (tmpitem.type == "filter" ? "筛选" : tmpitem.submenu[0].name),
269 type: tmpitem.type });
270
271 //初始化选中项数组-ui状态
272 tmpMenuActiveArr.push(this.processActive(tmpitem));
273 //初始化角度数组
274 this.triangleDeg.push(0);
275 //初始化控制显示状态数组
276 this.pageState.push(false);
277 //递归处理子菜单数据
278 tmpitem = this.processSubMenu(tmpitem);
279 this.filterData[i] = tmpitem;
280 }
281 this.menu = tmpMenu;
282 //初始化选中项数组
283 tmpMenuActiveArr = this.defaultActive.length > 0 ? this.defaultActive : this.activeMenuArr.length > 0 ? this.activeMenuArr : tmpMenuActiveArr;
284 this.defaultActive = [];
285 this.activeMenuArr = JSON.parse(JSON.stringify(tmpMenuActiveArr));
286 this.shadowActiveMenuArr = JSON.parse(JSON.stringify(tmpMenuActiveArr));
287 //加载菜单数据
288 this.subData = this.filterData;
289 //设定顶部菜单名字
290 if (this.updateMenuName) {
291 this.setMenuName();
292 }
293 },
294 setMenuName: function setMenuName() {
295 for (var i = 0; i < this.activeMenuArr.length; i++) {
296 var row = this.activeMenuArr[i];
297 if (typeof row[0] != 'object') {
298 var tmpsub = false;
299 if (row.length > 0 && row[0] != null) {
300 tmpsub = this.subData[i].submenu[row[0]];
301 if (row.length > 1 && row[1] != null) {
302 tmpsub = tmpsub.submenu[row[1]];
303 if (row.length > 2 && row[2] != null) {
304 tmpsub = tmpsub.submenu[row[2]];
305 }
306 }
307 } else {
308 tmpsub = false;
309 }
310 if (tmpsub) {
311 this.menu[i].name = tmpsub.name;
312 }
313 }
314 }
315 },
316 //展开更多
317 showMoreSub: function showMoreSub(index) {
318 this.subData[this.showPage].submenu[this.activeMenuArr[this.showPage][0]].submenu[index].showAllSub = true;
319 this.$forceUpdate();
320 },
321 //选中
322 selectHierarchyMenu: function selectHierarchyMenu(page_index, level1_index, level2_index, level3_index) {
323 //读取记录
324 if (level1_index != null && level2_index == null && level3_index == null && this.shadowActiveMenuArr[page_index][0] ==
325 level1_index) {
326 this.activeMenuArr.splice(page_index, 1, JSON.parse(JSON.stringify(this.shadowActiveMenuArr[page_index])));
327 } else {
328 this.activeMenuArr[page_index].splice(0, 1, level1_index);
329 (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);
330 (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);
331 }
332 //写入结果
333 if (level3_index != null || level2_index != null || level1_index != null && this.subData[page_index].submenu[level1_index].submenu.length == 0)
334 {
335 var sub = this.subData[page_index].submenu[level1_index].submenu[level2_index];
336 if (this.updateMenuName) {
337 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;
338 }
339 this.shadowActiveMenuArr[page_index] = JSON.parse(JSON.stringify(this.activeMenuArr[page_index]));
340 this.togglePage(this.showPage);
341 }
342 },
343 //写入结果,筛选
344 setFilterData: function setFilterData(page_index) {
345 this.shadowActiveMenuArr[page_index] = JSON.parse(JSON.stringify(this.activeMenuArr[page_index]));
346 this.togglePage(this.showPage);
347 },
348 //重置结果和ui,筛选
349 resetFilterData: function resetFilterData(page_index) {
350 var tmpArr = [];
351 var level = this.shadowActiveMenuArr[page_index].length;
352 while (level > 0) {
353 tmpArr.push([]);
354 var box = this.subData[page_index].submenu[level - 1].submenu;
355 for (var i = 0; i < box.length; i++) {
356 this.subData[page_index].submenu[level - 1].submenu[i].selected = false;
357 }
358 level--;
359 }
360 this.activeMenuArr[page_index] = JSON.parse(JSON.stringify(tmpArr));
361 this.$forceUpdate();
362 },
363 //选中筛选类label-UI状态
364 selectFilterLabel: function selectFilterLabel(page_index, box_index, label_index) {
365 var find_index = this.activeMenuArr[page_index][box_index].indexOf(label_index);
366 if (find_index > -1) {
367 this.activeMenuArr[page_index][box_index].splice(find_index, 1);
368 this.subData[page_index].submenu[box_index].submenu[label_index].selected = false;
369 } else {
370 this.activeMenuArr[page_index][box_index].push(label_index);
371 this.subData[page_index].submenu[box_index].submenu[label_index].selected = true;
372 }
373 this.$forceUpdate();
374 },
375 //选中单选类label-UI状态
376 selectRadioLabel: function selectRadioLabel(page_index, box_index, label_index) {
377
378 var activeIndex = this.activeMenuArr[page_index][box_index][0];
379 if (activeIndex == label_index) {
380 this.subData[page_index].submenu[box_index].submenu[activeIndex].selected = false;
381 this.activeMenuArr[page_index][box_index][0] = null;
382 } else {
383 if (activeIndex != null && activeIndex < this.subData[page_index].submenu[box_index].submenu.length) {
384 this.subData[page_index].submenu[box_index].submenu[activeIndex].selected = false;
385 }
386
387 this.subData[page_index].submenu[box_index].submenu[label_index].selected = true;
388 this.activeMenuArr[page_index][box_index][0] = label_index;
389 }
390 this.$forceUpdate();
391 },
392 //菜单开关
393 togglePage: function togglePage(index) {
394 if (index == this.showPage) {
395 this.hidePageLayer(true);
396 this.hideMask();
397 this.showPage = -1;
398 } else {
399 if (this.showPage > -1) {
400 this.hidePageLayer(false);
401 }
402 this.showPageLayer(index);
403 this.showMask();
404 }
405 },
406 //hide遮罩层
407 hideMask: function hideMask() {var _this = this;
408 this.isShowMask = false;
409 setTimeout(function () {
410 _this.maskVisibility = false;
411 }, 200);
412 },
413 //show遮罩层
414 showMask: function showMask() {var _this2 = this;
415 this.maskVisibility = true;
416 this.$nextTick(function () {
417 setTimeout(function () {
418 _this2.isShowMask = true;
419 }, 0);
420 });
421 },
422 //hide菜单页
423 hidePageLayer: function hidePageLayer(isAnimation) {var _this3 = this;
424 this.triangleDeg[this.showPage] = 0;
425 var tmpIndex = this.showPage;
426 if (isAnimation) {
427 setTimeout(function () {
428 _this3.pageState.splice(tmpIndex, 1, false);
429 }, 200);
430 this.confirm();
431 } else {
432 this.pageState.splice(tmpIndex, 1, false);
433 }
434 this.firstScrollInto = null;
435 this.secondScrollInto = null;
436 },
437 confirm: function confirm() {var _this4 = this;
438 var index = JSON.parse(JSON.stringify(this.shadowActiveMenuArr));
439 var value = JSON.parse(JSON.stringify(this.shadowActiveMenuArr));
440
441 //对结果做一下处理
442 index.forEach(function (item, i) {
443 if (typeof item[0] == 'object') {
444 //针对筛选结果过一个排序
445 item.forEach(function (s, j) {
446 if (s != null) {
447 s.sort(function (val1, val2) {
448 return val1 - val2;
449 });
450 item[j] = s;
451 s.forEach(function (v, k) {
452 value[i][j][k] = v == null || v >= _this4.subData[i].submenu[j].submenu.length ? null : _this4.subData[i].submenu[j].submenu[v].value;
453 if (_this4.subData[i].type == 'radio' && value[i][j][k] == null) {
454 value[i][j] = [];
455 index[i][j] = [];
456 }
457 });
458 }
459 });
460 } else {
461 var submenu = _this4.subData[i].submenu[item[0]];
462 value[i][0] = submenu.value;
463 if (value[i].length >= 2 && item[1] != null) {
464 if (submenu.submenu.length > 0) {
465 submenu = submenu.submenu[item[1]];
466 value[i][1] = submenu.hasOwnProperty('value') ? submenu.value : null;
467 } else {
468 value[i][1] = null;
469 }
470 if (value[i].length >= 3 && item[2] != null) {
471 if (submenu.submenu.length > 0) {
472 submenu = submenu.submenu[item[2]];
473 value[i][2] = submenu.hasOwnProperty('value') ? submenu.value : null;
474 } else {
475 value[i][2] = null;
476 }
477 }
478 }
479 }
480 index[i] = item;
481
482 });
483 // 输出
484 this.$emit('confirm', {
485 index: index,
486 value: value });
487
488 },
489 //show菜单页
490 showPageLayer: function showPageLayer(index) {var _this5 = this;
491 this.processPage(index);
492 this.pageState.splice(index, 1, true);
493 this.$nextTick(function () {
494 setTimeout(function () {
495 _this5.showPage = index;
496 }, 0);
497 });
498 this.triangleDeg[index] = 180;
499 },
500 reloadActiveMenuArr: function reloadActiveMenuArr() {
501 for (var i = 0; i < this.filterData.length; i++) {
502 var tmpitem = this.filterData[i];
503 var tmpArr = this.processActive(tmpitem);
504 tmpitem = this.processSubMenu(tmpitem);
505 if (this.activeMenuArr[i].length != tmpArr.length) {
506 this.filterData[i] = tmpitem;
507 this.activeMenuArr.splice(i, 1, JSON.parse(JSON.stringify(tmpArr)));
508 this.shadowActiveMenuArr.splice(i, 1, JSON.parse(JSON.stringify(tmpArr)));
509 }
510 }
511 this.subData = this.filterData;
512 this.$forceUpdate();
513 },
514 processPage: function processPage(index) {var _this6 = this;
515 //check UI控制数组,结果数组,防止传入数据层级和UI控制数组不同步
516 this.reloadActiveMenuArr();
517 //重置UI控制数组
518 this.activeMenuArr.splice(index, 1, JSON.parse(JSON.stringify(this.shadowActiveMenuArr[index])));
519 if (this.menu[index].type == 'filter') {
520 //重载筛选页选中状态
521 var level = this.shadowActiveMenuArr[index].length;
522 for (var i = 0; i < level; i++) {
523 var box = this.subData[index].submenu[i].submenu;
524 for (var j = 0; j < box.length; j++) {
525 if (this.shadowActiveMenuArr[index][i].indexOf(j) > -1) {
526 this.subData[index].submenu[i].submenu[j].selected = true;
527 } else {
528 this.subData[index].submenu[i].submenu[j].selected = false;
529 }
530 }
531 }
532 } else if (this.menu[index].type == 'hierarchy') {
533 this.$nextTick(function () {
534 setTimeout(function () {
535 //滚动到选中项
536 _this6.firstScrollInto = parseInt(_this6.activeMenuArr[index][0]);
537 _this6.secondScrollInto = parseInt(_this6.activeMenuArr[index][1]);
538 }, 0);
539 });
540 } else if (this.menu[index].type == 'radio') {
541 //重载筛选页选中状态
542 var _level = this.shadowActiveMenuArr[index].length;
543 for (var _i = 0; _i < _level; _i++) {
544 var _box = this.subData[index].submenu[_i].submenu;
545 for (var _j = 0; _j < _box.length; _j++) {
546 if (this.shadowActiveMenuArr[index][_i].indexOf(_j) > -1) {
547 this.subData[index].submenu[_i].submenu[_j].selected = true;
548 } else {
549 this.subData[index].submenu[_i].submenu[_j].selected = false;
550 }
551 }
552 }
553 }
554 },
555 processActive: function processActive(tmpitem) {
556 var tmpArr = [];
557 if (tmpitem.type == 'hierarchy' && tmpitem.hasOwnProperty('submenu') && tmpitem.submenu.length > 0) {
558 var level = this.getMaxFloor(tmpitem.submenu);
559 while (level > 0) {
560 tmpArr.push(0);
561 level--;
562 }
563 } else if (tmpitem.type == 'filter') {
564 var _level2 = tmpitem.submenu.length;
565 while (_level2 > 0) {
566 tmpArr.push([]);
567 _level2--;
568 }
569 } else if (tmpitem.type == 'radio') {
570 var _level3 = tmpitem.submenu.length;
571 while (_level3 > 0) {
572 tmpArr.push([]);
573 _level3--;
574 }
575 }
576 return tmpArr;
577 },
578 processSubMenu: function processSubMenu(menu) {
579 if (menu.hasOwnProperty('submenu') && menu.submenu.length > 0) {
580 for (var i = 0; i < menu.submenu.length; i++) {
581 menu.submenu[i] = this.processSubMenu(menu.submenu[i]);
582 }
583 } else {
584 menu.submenu = [];
585 }
586 return menu;
587 },
588 //计算菜单层级
589 getMaxFloor: function getMaxFloor(treeData) {
590 var floor = 0;
591 var max = 0;
592 function each(data, floor) {
593 data.forEach(function (e) {
594 max = floor > max ? floor : max;
595 if (e.hasOwnProperty('submenu') && e.submenu.length > 0) {
596 each(e.submenu, floor + 1);
597 }
598 });
599 }
600 each(treeData, 1);
601 return max;
602 },
603 discard: function discard() {
604
605 } } };exports.default = _default;
606
607 /***/ }),
608
609 /***/ 52:
610 /*!************************************************************************************************************************************!*\
611 !*** C:/Users/Administrator/Desktop/gulu-vue/components/HM-filterDropdown/HM-filterDropdown.vue?vue&type=style&index=0&lang=scss& ***!
612 \************************************************************************************************************************************/
613 /*! no static exports found */
614 /***/ (function(module, __webpack_exports__, __webpack_require__) {
615
616 "use strict";
617 __webpack_require__.r(__webpack_exports__);
618 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_HM_filterDropdown_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!./node_modules/postcss-loader/src??ref--8-oneOf-1-3!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./HM-filterDropdown.vue?vue&type=style&index=0&lang=scss& */ 53);
619 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_HM_filterDropdown_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_HM_filterDropdown_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
620 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_HM_filterDropdown_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_HM_filterDropdown_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
621 /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_HM_filterDropdown_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a);
622
623 /***/ }),
624
625 /***/ 53:
626 /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
627 !*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!./node_modules/postcss-loader/src??ref--8-oneOf-1-3!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/components/HM-filterDropdown/HM-filterDropdown.vue?vue&type=style&index=0&lang=scss& ***!
628 \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
629 /*! no static exports found */
630 /***/ (function(module, exports, __webpack_require__) {
631
632 // extracted by mini-css-extract-plugin
633 if(false) { var cssReload; }
634
635
636 /***/ })
637
638 }]);
639 //# sourceMappingURL=../../../.sourcemap/mp-weixin/components/HM-filterDropdown/HM-filterDropdown.js.map
640 ;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
641 'components/HM-filterDropdown/HM-filterDropdown-create-component',
642 {
643 'components/HM-filterDropdown/HM-filterDropdown-create-component':(function(module, exports, __webpack_require__){
644 __webpack_require__('1')['createComponent'](__webpack_require__(47))
645 })
646 },
647 [['components/HM-filterDropdown/HM-filterDropdown-create-component']]
648 ]);
649 1 (global["webpackJsonp"] = global["webpackJsonp"] || []).push([["components/HM-filterDropdown/HM-filterDropdown"],{
unpackage/dist/dev/mp-weixin/components/HM-filterDropdown/HM-filterDropdown.json
1 { File was deleted
2 "usingComponents": {},
3 "component": true
4 }
unpackage/dist/dev/mp-weixin/components/HM-filterDropdown/HM-filterDropdown.wxml
1 <view data-event-opts="{{[['touchmove',[['discard',['$event']]]],['tap',[['discard',['$event']]]]]}}" class="HMfilterDropdown" catchtouchmove="__e" catchtap="__e"><view class="nav"><block wx:for="{{menu}}" wx:for-item="item" wx:for-index="index" wx:key="index"><block><view data-event-opts="{{[['tap',[['togglePage',[index]]]]]}}" class="{{['first-menu',(showPage==index)?'on':'']}}" bindtap="__e"><text class="name">{{item.name}}</text><text class="iconfont triangle" style="{{('transform:rotate('+triangleDeg[index]+'deg);')}}"></text></view></block></block></view><view data-event-opts="{{[['tap',[['togglePage',['$0'],['showPage']]]]]}}" class="{{['mask',(isShowMask)?'show':'',(maskVisibility!=true)?'hide':'']}}" bindtap="__e"></view><block wx:for="{{subData}}" wx:for-item="page" wx:for-index="page_index" wx:key="page_index"><block><view class="{{['sub-menu-class',(showPage==page_index)?'show':'',(pageState[page_index]!=true)?'hide':'']}}"><block wx:if="{{page.type=='hierarchy'&&page.submenu.length>0}}"><block><scroll-view class="{{['sub-menu-list',activeMenuArr[page_index].length>1?'first':'alone']}}" scroll-y="{{true}}" scroll-into-view="{{'first_id'+firstScrollInto}}"><block wx:for="{{page.submenu}}" wx:for-item="sub" wx:for-index="index" wx:key="index"><block><view class="{{['sub-menu',(activeMenuArr[page_index][0]==index)?'on':'']}}" id="{{'first_id'+index}}" data-event-opts="{{[['tap',[['selectHierarchyMenu',[page_index,index,null,null]]]]]}}" bindtap="__e"><view class="menu-name"><text>{{sub.name}}</text><text class="iconfont selected"></text></view></view></block></block></scroll-view><block wx:for="{{page.submenu}}" wx:for-item="sub" wx:for-index="index" wx:key="index"><block><block wx:if="{{activeMenuArr[page_index][0]==index&&sub.submenu.length>0}}"><scroll-view class="sub-menu-list not-first" scroll-y="{{true}}" scroll-into-view="{{'second_id'+secondScrollInto}}"><block wx:for="{{sub.submenu}}" wx:for-item="sub_second" wx:for-index="second_index" wx:key="second_index"><block><view class="{{['sub-menu',(activeMenuArr[page_index][1]==second_index)?'on':'']}}" id="{{'second_id'+second_index}}"><view data-event-opts="{{[['tap',[['selectHierarchyMenu',[page_index,'$0',second_index,null],['activeMenuArr.'+page_index+'.__$n0']]]]]}}" class="menu-name" bindtap="__e"><text>{{sub_second.name}}</text><text class="iconfont selected"></text></view><block wx:if="{{sub_second.submenu&&sub.submenu.length>0&&sub_second.submenu.length>0}}"><view class="more-sub-menu"><block wx:for="{{sub_second.submenu}}" wx:for-item="sub2" wx:for-index="sub2_index" wx:key="sub2_index"><block><block wx:if="{{sub_second.showAllSub||sub2_index<8}}"><text data-event-opts="{{[['tap',[['selectHierarchyMenu',[page_index,'$0',second_index,sub2_index],['activeMenuArr.'+page_index+'.__$n0']]]]]}}" class="{{[(activeMenuArr[page_index][1]==second_index&&activeMenuArr[page_index][2]==sub2_index)?'on':'']}}" bindtap="__e">{{sub2.name}}</text></block><block wx:if="{{sub_second.showAllSub!=true&&sub2_index==8&&sub_second.submenu.length>9}}"><text data-event-opts="{{[['tap',[['showMoreSub',[second_index]]]]]}}" bindtap="__e">更多<text class="iconfont triangle"></text></text></block></block></block></view></block></view></block></block></scroll-view></block></block></block></block></block><block wx:if="{{page.type=='filter'}}"><block><view class="filter"><scroll-view class="menu-box" scroll-y="{{true}}"><block wx:for="{{page.submenu}}" wx:for-item="box" wx:for-index="box_index" wx:key="box_index"><view class="box"><view class="title">{{box.name}}</view><view class="labels"><block wx:for="{{box.submenu}}" wx:for-item="label" wx:for-index="label_index" wx:key="label_index"><view data-event-opts="{{[['tap',[['selectFilterLabel',[page_index,box_index,label_index]]]]]}}" class="{{[(label.selected)?'on':'']}}" bindtap="__e">{{label.name}}</view></block></view></view></block></scroll-view><view class="btn-box"><view data-event-opts="{{[['tap',[['resetFilterData',[page_index]]]]]}}" class="reset" bindtap="__e">重置</view><view data-event-opts="{{[['tap',[['setFilterData',[page_index]]]]]}}" class="submit" bindtap="__e">确定</view></view></view></block></block><block wx:if="{{page.type=='radio'}}"><block><view class="filter"><scroll-view class="menu-box" scroll-y="{{true}}"><block wx:for="{{page.submenu}}" wx:for-item="box" wx:for-index="box_index" wx:key="box_index"><view class="box"><view class="title">{{box.name}}</view><view class="labels"><block wx:for="{{box.submenu}}" wx:for-item="label" wx:for-index="label_index" wx:key="label_index"><view data-event-opts="{{[['tap',[['selectRadioLabel',[page_index,box_index,label_index]]]]]}}" class="{{[(label.selected)?'on':'']}}" bindtap="__e">{{label.name}}</view></block></view></view></block></scroll-view><view class="btn-box"><view data-event-opts="{{[['tap',[['resetFilterData',[page_index]]]]]}}" class="reset" bindtap="__e">重置</view><view data-event-opts="{{[['tap',[['setFilterData',[page_index]]]]]}}" class="submit" bindtap="__e">确定</view></view></view></block></block></view></block></block></view> File was deleted
unpackage/dist/dev/mp-weixin/components/HM-filterDropdown/HM-filterDropdown.wxss
1 @charset "UTF-8"; File was deleted
2 /**
3 * 这里是uni-app内置的常用样式变量
4 *
5 * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
6 * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
7 *
8 */
9 /**
10 * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
11 *
12 * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
13 */
14 /* 颜色变量 */
15 /* 行为相关颜色 */
16 /* 文字基本颜色 */
17 /* 背景颜色 */
18 /* 边框颜色 */
19 /* 尺寸变量 */
20 /* 文字尺寸 */
21 /* 图片尺寸 */
22 /* Border Radius */
23 /* 水平间距 */
24 /* 垂直间距 */
25 /* 透明度 */
26 /* 文章场景相关 */
27 .HMfilterDropdown {
28 -webkit-flex-shrink: 0;
29 flex-shrink: 0;
30 width: 100%;
31 height: 44px;
32 position: fixed;
33 z-index: 997;
34 -webkit-flex-wrap: nowrap;
35 flex-wrap: nowrap;
36 display: -webkit-box;
37 display: -webkit-flex;
38 display: flex;
39 -webkit-box-orient: horizontal;
40 -webkit-box-direction: normal;
41 -webkit-flex-direction: row;
42 flex-direction: row;
43 top: 0px;
44 left: 0;
45 }
46 .HMfilterDropdown view {
47 display: -webkit-box;
48 display: -webkit-flex;
49 display: flex;
50 -webkit-flex-wrap: nowrap;
51 flex-wrap: nowrap;
52 }
53 .region {
54 -webkit-box-flex: 1;
55 -webkit-flex: 1;
56 flex: 1;
57 height: 44px;
58 }
59 .nav {
60 width: 100%;
61 height: 44px;
62 border-bottom: solid 1rpx #eee;
63 z-index: 12;
64 background-color: #ffffff;
65 -webkit-box-orient: horizontal;
66 -webkit-box-direction: normal;
67 -webkit-flex-direction: row;
68 flex-direction: row;
69 }
70 .nav .first-menu {
71 width: 100%;
72 font-size: 13px;
73 color: #757575;
74 -webkit-box-orient: horizontal;
75 -webkit-box-direction: normal;
76 -webkit-flex-direction: row;
77 flex-direction: row;
78 -webkit-box-align: center;
79 -webkit-align-items: center;
80 align-items: center;
81 -webkit-box-pack: center;
82 -webkit-justify-content: center;
83 justify-content: center;
84 -webkit-transition: color .2s linear;
85 transition: color .2s linear;
86 }
87 .nav .first-menu.on {
88 color: #ec652b;
89 }
90 .nav .first-menu.on .iconfont {
91 color: #ec652b;
92 }
93 .nav .first-menu .name {
94 height: 20px;
95 text-align: center;
96 text-overflow: clip;
97 overflow: hidden;
98 }
99 .nav .first-menu .iconfont {
100 width: 13px;
101 height: 13px;
102 -webkit-box-align: center;
103 -webkit-align-items: center;
104 align-items: center;
105 -webkit-box-pack: center;
106 -webkit-justify-content: center;
107 justify-content: center;
108 -webkit-transition: color .2s linear, -webkit-transform .2s linear;
109 transition: color .2s linear, -webkit-transform .2s linear;
110 transition: transform .2s linear, color .2s linear;
111 transition: transform .2s linear, color .2s linear, -webkit-transform .2s linear;
112 }
113 .sub-menu-class {
114 width: 100%;
115 position: absolute;
116 left: 0;
117 -webkit-transform: translate3d(0, -100%, 0);
118 transform: translate3d(0, -100%, 0);
119 max-height: 345px;
120 background-color: #ffffff;
121 z-index: 11;
122 -webkit-box-shadow: 0 5px 5px rgba(0, 0, 0, 0.1);
123 box-shadow: 0 5px 5px rgba(0, 0, 0, 0.1);
124 overflow: hidden;
125 -webkit-box-orient: horizontal;
126 -webkit-box-direction: normal;
127 -webkit-flex-direction: row;
128 flex-direction: row;
129 -webkit-transition: -webkit-transform .15s linear;
130 transition: -webkit-transform .15s linear;
131 transition: transform .15s linear;
132 transition: transform .15s linear, -webkit-transform .15s linear;
133 }
134 .sub-menu-class.hide {
135 display: none;
136 }
137 .sub-menu-class.show {
138 -webkit-transform: translate3d(0, calc(44px + 1rpx), 0);
139 transform: translate3d(0, calc(44px + 1rpx), 0);
140 }
141 .sub-menu-list {
142 width: 100%;
143 height: 345px;
144 -webkit-box-orient: vertical;
145 -webkit-box-direction: normal;
146 -webkit-flex-direction: column;
147 flex-direction: column;
148 }
149 .sub-menu-list .sub-menu {
150 min-height: 44px;
151 font-size: 13px;
152 -webkit-box-orient: vertical;
153 -webkit-box-direction: normal;
154 -webkit-flex-direction: column;
155 flex-direction: column;
156 padding-right: 15px;
157 }
158 .sub-menu-list .sub-menu > .menu-name {
159 height: 44px;
160 -webkit-box-orient: horizontal;
161 -webkit-box-direction: normal;
162 -webkit-flex-direction: row;
163 flex-direction: row;
164 -webkit-box-align: center;
165 -webkit-align-items: center;
166 align-items: center;
167 -webkit-box-pack: justify;
168 -webkit-justify-content: space-between;
169 justify-content: space-between;
170 }
171 .sub-menu-list .sub-menu > .menu-name > .iconfont {
172 display: none;
173 font-size: 18px;
174 color: #ec652b;
175 }
176 .sub-menu-list.first {
177 -webkit-flex-shrink: 0;
178 flex-shrink: 0;
179 width: 236rpx;
180 background-color: #f0f0f0;
181 }
182 .sub-menu-list.first .sub-menu {
183 padding-left: 15px;
184 }
185 .sub-menu-list.first .sub-menu.on {
186 background-color: #fff;
187 }
188 .sub-menu-list.alone {
189 max-height: 345px;
190 min-height: 170px;
191 height: auto;
192 }
193 .sub-menu-list.alone .sub-menu {
194 min-height: calc(44px - 1rpx);
195 margin-left: 15px;
196 border-bottom: solid 1rpx #e5e5e5;
197 }
198 .sub-menu-list.alone .sub-menu.on {
199 color: #ec652b;
200 }
201 .sub-menu-list.alone .sub-menu.on > .menu-name > .iconfont {
202 display: block;
203 }
204 .sub-menu-list.not-first .sub-menu {
205 min-height: calc(44px - 1rpx);
206 margin-left: 15px;
207 border-bottom: solid 1rpx #e5e5e5;
208 }
209 .sub-menu-list.not-first .sub-menu > .menu-name {
210 height: calc(44px - 1rpx);
211 }
212 .sub-menu-list.not-first .sub-menu > .menu-name > .iconfont {
213 display: none;
214 font-size: 18px;
215 color: #ec652b;
216 }
217 .sub-menu-list.not-first .sub-menu.on {
218 color: #ec652b;
219 }
220 .sub-menu-list.not-first .sub-menu.on > .menu-name > .iconfont {
221 display: block;
222 }
223 .sub-menu-list.not-first .sub-menu .more-sub-menu {
224 -webkit-box-orient: horizontal;
225 -webkit-box-direction: normal;
226 -webkit-flex-direction: row;
227 flex-direction: row;
228 -webkit-flex-wrap: wrap;
229 flex-wrap: wrap;
230 padding-bottom: 9px;
231 }
232 .sub-menu-list.not-first .sub-menu .more-sub-menu > text {
233 height: 30px;
234 border-radius: 3px;
235 background-color: #f5f5f5;
236 color: #9b9b9b;
237 margin-bottom: 6px;
238 margin-right: 6px;
239 text-align: center;
240 line-height: 30px;
241 border: solid #f5f5f5 1rpx;
242 -webkit-box-flex: 0;
243 -webkit-flex: 0 0 calc(33.33% - 6px);
244 flex: 0 0 calc(33.33% - 6px);
245 overflow: hidden;
246 font-size: 12px;
247 }
248 .sub-menu-list.not-first .sub-menu .more-sub-menu > text:nth-child(3n) {
249 margin-right: 0;
250 }
251 .sub-menu-list.not-first .sub-menu .more-sub-menu > text.on {
252 border-color: #f6c8ac;
253 color: #ec652b;
254 }
255 .sub-menu-list.not-first .sub-menu .more-sub-menu > text .iconfont {
256 color: #9b9b9b;
257 }
258 .filter {
259 width: 100%;
260 height: 345px;
261 display: -webkit-box;
262 display: -webkit-flex;
263 display: flex;
264 -webkit-box-orient: vertical;
265 -webkit-box-direction: normal;
266 -webkit-flex-direction: column;
267 flex-direction: column;
268 -webkit-box-pack: justify;
269 -webkit-justify-content: space-between;
270 justify-content: space-between;
271 -webkit-box-align: center;
272 -webkit-align-items: center;
273 align-items: center;
274 }
275 .filter .menu-box {
276 width: 698rpx;
277 height: calc(345px - 75px);
278 -webkit-flex-shrink: 1;
279 flex-shrink: 1;
280 }
281 .filter .menu-box .box {
282 width: 100%;
283 margin-top: 16px;
284 -webkit-box-orient: vertical;
285 -webkit-box-direction: normal;
286 -webkit-flex-direction: column;
287 flex-direction: column;
288 }
289 .filter .menu-box .box .title {
290 width: 100%;
291 font-size: 13px;
292 color: #888;
293 }
294 .filter .menu-box .box .labels {
295 -webkit-box-orient: horizontal;
296 -webkit-box-direction: normal;
297 -webkit-flex-direction: row;
298 flex-direction: row;
299 -webkit-flex-wrap: wrap;
300 flex-wrap: wrap;
301 }
302 .filter .menu-box .box .labels .on {
303 border-color: #ec652b;
304 background-color: #ec652b;
305 color: #fff;
306 }
307 .filter .menu-box .box .labels > view {
308 width: 148rpx;
309 height: 30px;
310 border: solid 1rpx #adadad;
311 border-radius: 2px;
312 margin-right: 15px;
313 margin-top: 8px;
314 font-size: 12px;
315 -webkit-box-orient: horizontal;
316 -webkit-box-direction: normal;
317 -webkit-flex-direction: row;
318 flex-direction: row;
319 -webkit-box-pack: center;
320 -webkit-justify-content: center;
321 justify-content: center;
322 -webkit-box-align: center;
323 -webkit-align-items: center;
324 align-items: center;
325 }
326 .filter .menu-box .box .labels > view:nth-child(4n) {
327 margin-right: 0;
328 }
329 .filter .btn-box {
330 -webkit-flex-shrink: 0;
331 flex-shrink: 0;
332 width: 698rpx;
333 height: 75px;
334 -webkit-box-orient: horizontal !important;
335 -webkit-box-direction: normal !important;
336 -webkit-flex-direction: row !important;
337 flex-direction: row !important;
338 -webkit-box-align: center;
339 -webkit-align-items: center;
340 align-items: center;
341 -webkit-box-pack: justify;
342 -webkit-justify-content: space-between;
343 justify-content: space-between;
344 }
345 .filter .btn-box > view {
346 width: 320rpx;
347 height: 40px;
348 border-radius: 40px;
349 border: solid 1rpx #ec652b;
350 -webkit-box-align: center;
351 -webkit-align-items: center;
352 align-items: center;
353 -webkit-box-pack: center;
354 -webkit-justify-content: center;
355 justify-content: center;
356 }
357 .filter .btn-box .reset {
358 color: #ec652b;
359 }
360 .filter .btn-box .submit {
361 color: #fff;
362 background-color: #ec652b;
363 }
364 .mask {
365 z-index: 10;
366 position: fixed;
367 top: 0;
368 left: 0;
369 right: 0;
370 bottom: 0;
371 background-color: transparent;
372 -webkit-transition: background-color .15s linear;
373 transition: background-color .15s linear;
374 }
375 .mask.show {
376 background-color: rgba(0, 0, 0, 0.5);
377 }
378 .mask.hide {
379 display: none;
380 }
381 /* 字体图标 */
382 @font-face {
383 font-family: "HM-FD-font";
384 src: url("data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAALAAAsAAAAABpQAAAJzAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDBgp4gQIBNgIkAwwLCAAEIAWEbQc5G8sFERWMIbIfCbbzqA4hp7InSBibVsYGb4J42o82b3e/nJlHMw/NHbGOlwKJRCRpwzPtpAECCOZubdqxjYpQLMlVg+70/08edrgQOtx2ukpVyApZn+dyehPoQObHo3O85rYx9vOjXoBxQIHugW2yIkqIW2QXcScu4jwE8CSWbKSmrqUHFwOaJoCsLM5P4haSGIxRcRHshrUGucLCVcfqI3AZfV/+USguKCwNmtsxVztDxU/n55C+3W0Z4QQpEOTNFqCBbMCAjDUWB9CIwWk87aa70cYgqLkyd3dEmm+18R8eKATEBrV7A5CulBT8dKiWOYZk412XNcDdKSEKSGODnyKIDl+dmVt9/Dx4pu/xyeutkMlHISGPTsPCnoTNP9nOT6wTtDdlO6dPr47efvj942lkYuQzrhMKEjq9N6y98P3340gmlJ/RStUD6F31CAEEPtUW94/7rf+7XgaAz57X0ZHXAGsFFwVgw38yALuMb0IBbVyNamFYEw4oKMDTj3AHRQP5Pt4dci9VwSVkRNQh5r7CLskZadhsWHhRDBsXczk8ZYk3ewnCxmQeQKa3BOHvA8XXO2j+vqRhf7CE+sPmn4anvoL29JLa4qqaUQkmoK+QG2osCckq7txi2leK86aIPyJ3eQZ8xytXYmyQ51jQndJAxIJlqiGSLsOqImiZCjTiZCJt6Lq26U2OoXqwUo0hRaAE0K5AziANy/uLVeXzWyjVqyjcoeupjxDr5MMDn8MDkLG9Aenu5ZrOSSoghAUsRmogkkahSoWAtnlUARnCkY3It0Iu7mWhdmd9Z/19BwBP6GidEi0G56opckXTGZVSPxgAAAA=");
385 }
386 .iconfont {
387 font-family: "HM-FD-font" !important;
388 font-size: 13px;
389 font-style: normal;
390 color: #757575;
391 }
392 .iconfont.triangle:before {
393 content: "\e65a";
394 }
395 .iconfont.selected:before {
396 content: "\e607";
397 }
398
399 1 @charset "UTF-8";
unpackage/dist/dev/mp-weixin/components/uni-drawer/uni-drawer.js
1 (global["webpackJsonp"] = global["webpackJsonp"] || []).push([["components/uni-drawer/uni-drawer"],{ File was deleted
2
3 /***/ 40:
4 /*!************************************************************************************!*\
5 !*** C:/Users/Administrator/Desktop/gulu-vue/components/uni-drawer/uni-drawer.vue ***!
6 \************************************************************************************/
7 /*! no static exports found */
8 /***/ (function(module, __webpack_exports__, __webpack_require__) {
9
10 "use strict";
11 __webpack_require__.r(__webpack_exports__);
12 /* harmony import */ var _uni_drawer_vue_vue_type_template_id_66ce0222_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-drawer.vue?vue&type=template&id=66ce0222&scoped=true& */ 41);
13 /* harmony import */ var _uni_drawer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-drawer.vue?vue&type=script&lang=js& */ 43);
14 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_drawer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _uni_drawer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
15 /* harmony import */ var _uni_drawer_vue_vue_type_style_index_0_id_66ce0222_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./uni-drawer.vue?vue&type=style&index=0&id=66ce0222&lang=scss&scoped=true& */ 45);
16 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 14);
17
18 var renderjs
19
20
21
22
23
24 /* normalize component */
25
26 var component = Object(_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
27 _uni_drawer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
28 _uni_drawer_vue_vue_type_template_id_66ce0222_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
29 _uni_drawer_vue_vue_type_template_id_66ce0222_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
30 false,
31 null,
32 "66ce0222",
33 null,
34 false,
35 _uni_drawer_vue_vue_type_template_id_66ce0222_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"],
36 renderjs
37 )
38
39 component.options.__file = "C:/Users/Administrator/Desktop/gulu-vue/components/uni-drawer/uni-drawer.vue"
40 /* harmony default export */ __webpack_exports__["default"] = (component.exports);
41
42 /***/ }),
43
44 /***/ 41:
45 /*!*******************************************************************************************************************************!*\
46 !*** C:/Users/Administrator/Desktop/gulu-vue/components/uni-drawer/uni-drawer.vue?vue&type=template&id=66ce0222&scoped=true& ***!
47 \*******************************************************************************************************************************/
48 /*! exports provided: render, staticRenderFns, recyclableRender, components */
49 /***/ (function(module, __webpack_exports__, __webpack_require__) {
50
51 "use strict";
52 __webpack_require__.r(__webpack_exports__);
53 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_drawer_vue_vue_type_template_id_66ce0222_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./uni-drawer.vue?vue&type=template&id=66ce0222&scoped=true& */ 42);
54 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_drawer_vue_vue_type_template_id_66ce0222_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
55
56 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_drawer_vue_vue_type_template_id_66ce0222_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
57
58 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_drawer_vue_vue_type_template_id_66ce0222_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
59
60 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_drawer_vue_vue_type_template_id_66ce0222_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; });
61
62
63
64 /***/ }),
65
66 /***/ 42:
67 /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
68 !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/components/uni-drawer/uni-drawer.vue?vue&type=template&id=66ce0222&scoped=true& ***!
69 \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
70 /*! exports provided: render, staticRenderFns, recyclableRender, components */
71 /***/ (function(module, __webpack_exports__, __webpack_require__) {
72
73 "use strict";
74 __webpack_require__.r(__webpack_exports__);
75 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
76 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
77 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
78 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
79 var components
80 var render = function() {
81 var _vm = this
82 var _h = _vm.$createElement
83 var _c = _vm._self._c || _h
84 }
85 var recyclableRender = false
86 var staticRenderFns = []
87 render._withStripped = true
88
89
90
91 /***/ }),
92
93 /***/ 43:
94 /*!*************************************************************************************************************!*\
95 !*** C:/Users/Administrator/Desktop/gulu-vue/components/uni-drawer/uni-drawer.vue?vue&type=script&lang=js& ***!
96 \*************************************************************************************************************/
97 /*! no static exports found */
98 /***/ (function(module, __webpack_exports__, __webpack_require__) {
99
100 "use strict";
101 __webpack_require__.r(__webpack_exports__);
102 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_drawer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./uni-drawer.vue?vue&type=script&lang=js& */ 44);
103 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_drawer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_drawer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
104 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_drawer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_drawer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
105 /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_drawer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a);
106
107 /***/ }),
108
109 /***/ 44:
110 /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
111 !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/components/uni-drawer/uni-drawer.vue?vue&type=script&lang=js& ***!
112 \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
113 /*! no static exports found */
114 /***/ (function(module, exports, __webpack_require__) {
115
116 "use strict";
117 Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0; //
118 //
119 //
120 //
121 //
122 //
123 //
124 //
125 //
126
127 /**
128 * Drawer 抽屉
129 * @description 抽屉侧滑菜单
130 * @tutorial https://ext.dcloud.net.cn/plugin?id=26
131 * @property {Boolean} mask = [true | false] 是否显示遮罩
132 * @property {Boolean} maskClick = [true | false] 点击遮罩是否关闭
133 * @property {Boolean} mode = [left | right] Drawer 滑出位置
134 * @value left 从左侧滑出
135 * @value right 从右侧侧滑出
136 * @property {Number} width 抽屉的宽度 ,仅 vue 页面生效
137 * @event {Function} close 组件关闭时触发事件
138 */var _default =
139 {
140 name: 'UniDrawer',
141 props: {
142 /**
143 * 显示模式(左、右),只在初始化生效
144 */
145 mode: {
146 type: String,
147 default: '' },
148
149 /**
150 * 蒙层显示状态
151 */
152 mask: {
153 type: Boolean,
154 default: true },
155
156 /**
157 * 遮罩是否可点击关闭
158 */
159 maskClick: {
160 type: Boolean,
161 default: true },
162
163 /**
164 * 抽屉宽度
165 */
166 width: {
167 type: Number,
168 default: 220 } },
169
170
171 data: function data() {
172 return {
173 visibleSync: false,
174 showDrawer: false,
175 rightMode: false,
176 watchTimer: null,
177 drawerWidth: 220 };
178
179 },
180 created: function created() {
181
182 this.drawerWidth = this.width;
183
184 this.rightMode = this.mode === 'right';
185 },
186 methods: {
187 clear: function clear() {},
188 close: function close(type) {
189 // fixed by mehaotian 抽屉尚未完全关闭或遮罩禁止点击时不触发以下逻辑
190 if (type === 'mask' && !this.maskClick || !this.visibleSync) return;
191 this._change('showDrawer', 'visibleSync', false);
192 },
193 open: function open() {
194 // fixed by mehaotian 处理重复点击打开的事件
195 if (this.visibleSync) return;
196 this._change('visibleSync', 'showDrawer', true);
197 },
198 _change: function _change(param1, param2, status) {var _this = this;
199 this[param1] = status;
200 if (this.watchTimer) {
201 clearTimeout(this.watchTimer);
202 }
203 this.watchTimer = setTimeout(function () {
204 _this[param2] = status;
205 _this.$emit('change', status);
206 }, status ? 50 : 300);
207 } } };exports.default = _default;
208
209 /***/ }),
210
211 /***/ 45:
212 /*!**********************************************************************************************************************************************!*\
213 !*** C:/Users/Administrator/Desktop/gulu-vue/components/uni-drawer/uni-drawer.vue?vue&type=style&index=0&id=66ce0222&lang=scss&scoped=true& ***!
214 \**********************************************************************************************************************************************/
215 /*! no static exports found */
216 /***/ (function(module, __webpack_exports__, __webpack_require__) {
217
218 "use strict";
219 __webpack_require__.r(__webpack_exports__);
220 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_drawer_vue_vue_type_style_index_0_id_66ce0222_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!./node_modules/postcss-loader/src??ref--8-oneOf-1-3!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./uni-drawer.vue?vue&type=style&index=0&id=66ce0222&lang=scss&scoped=true& */ 46);
221 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_drawer_vue_vue_type_style_index_0_id_66ce0222_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_drawer_vue_vue_type_style_index_0_id_66ce0222_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
222 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_drawer_vue_vue_type_style_index_0_id_66ce0222_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_drawer_vue_vue_type_style_index_0_id_66ce0222_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
223 /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_uni_drawer_vue_vue_type_style_index_0_id_66ce0222_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default.a);
224
225 /***/ }),
226
227 /***/ 46:
228 /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
229 !*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!./node_modules/postcss-loader/src??ref--8-oneOf-1-3!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/components/uni-drawer/uni-drawer.vue?vue&type=style&index=0&id=66ce0222&lang=scss&scoped=true& ***!
230 \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
231 /*! no static exports found */
232 /***/ (function(module, exports, __webpack_require__) {
233
234 // extracted by mini-css-extract-plugin
235 if(false) { var cssReload; }
236
237
238 /***/ })
239
240 }]);
241 //# sourceMappingURL=../../../.sourcemap/mp-weixin/components/uni-drawer/uni-drawer.js.map
242 ;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
243 'components/uni-drawer/uni-drawer-create-component',
244 {
245 'components/uni-drawer/uni-drawer-create-component':(function(module, exports, __webpack_require__){
246 __webpack_require__('1')['createComponent'](__webpack_require__(40))
247 })
248 },
249 [['components/uni-drawer/uni-drawer-create-component']]
250 ]);
251 1 (global["webpackJsonp"] = global["webpackJsonp"] || []).push([["components/uni-drawer/uni-drawer"],{
unpackage/dist/dev/mp-weixin/components/uni-drawer/uni-drawer.json
1 { File was deleted
2 "usingComponents": {},
3 "component": true
4 }
unpackage/dist/dev/mp-weixin/components/uni-drawer/uni-drawer.wxml
1 <block wx:if="{{visibleSync}}"><view data-event-opts="{{[['touchmove',[['clear',['$event']]]]]}}" class="{{['uni-drawer data-v-66ce0222',(showDrawer)?'uni-drawer--visible':'']}}" catchtouchmove="__e"><view data-event-opts="{{[['tap',[['close',['mask']]]]]}}" class="{{['uni-drawer__mask data-v-66ce0222',(showDrawer&&mask)?'uni-drawer__mask--visible':'']}}" bindtap="__e"></view><view class="{{['uni-drawer__content data-v-66ce0222',(rightMode)?'uni-drawer--right':'',(!rightMode)?'uni-drawer--left':'',(showDrawer)?'uni-drawer__content--visible':'']}}" style="{{'width:'+(drawerWidth+'px')+';'}}"><slot></slot></view></view></block> File was deleted
unpackage/dist/dev/mp-weixin/components/uni-drawer/uni-drawer.wxss
1 @charset "UTF-8"; File was deleted
2 /**
3 * 这里是uni-app内置的常用样式变量
4 *
5 * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
6 * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
7 *
8 */
9 /**
10 * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
11 *
12 * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
13 */
14 /* 颜色变量 */
15 /* 行为相关颜色 */
16 /* 文字基本颜色 */
17 /* 背景颜色 */
18 /* 边框颜色 */
19 /* 尺寸变量 */
20 /* 文字尺寸 */
21 /* 图片尺寸 */
22 /* Border Radius */
23 /* 水平间距 */
24 /* 垂直间距 */
25 /* 透明度 */
26 /* 文章场景相关 */
27 .uni-drawer.data-v-66ce0222 {
28 display: block;
29 position: fixed;
30 top: 0;
31 left: 0;
32 right: 0;
33 bottom: 0;
34 overflow: hidden;
35 z-index: 999;
36 }
37 .uni-drawer__content.data-v-66ce0222 {
38 display: block;
39 position: absolute;
40 top: 0;
41 width: 220px;
42 bottom: 0;
43 background-color: #ffffff;
44 -webkit-transition: -webkit-transform 0.3s ease;
45 transition: -webkit-transform 0.3s ease;
46 transition: transform 0.3s ease;
47 transition: transform 0.3s ease, -webkit-transform 0.3s ease;
48 }
49 .uni-drawer--left.data-v-66ce0222 {
50 left: 0;
51 -webkit-transform: translateX(-100%);
52 transform: translateX(-100%);
53 }
54 .uni-drawer--right.data-v-66ce0222 {
55 right: 0;
56 -webkit-transform: translateX(100%);
57 transform: translateX(100%);
58 }
59 .uni-drawer__content--visible.data-v-66ce0222 {
60 -webkit-transform: translateX(0px);
61 transform: translateX(0px);
62 }
63 .uni-drawer__mask.data-v-66ce0222 {
64 display: block;
65 opacity: 0;
66 position: absolute;
67 top: 0;
68 left: 0;
69 bottom: 0;
70 right: 0;
71 background-color: rgba(0, 0, 0, 0.4);
72 -webkit-transition: opacity 0.3s;
73 transition: opacity 0.3s;
74 }
75 .uni-drawer__mask--visible.data-v-66ce0222 {
76 display: block;
77 opacity: 1;
78 }
79
80 1 @charset "UTF-8";
unpackage/dist/dev/mp-weixin/pages/cart/cart.js
1 (global["webpackJsonp"] = global["webpackJsonp"] || []).push([["pages/cart/cart"],{ File was deleted
2
3 /***/ 24:
4 /*!**************************************************************************************!*\
5 !*** C:/Users/Administrator/Desktop/gulu-vue/main.js?{"page":"pages%2Fcart%2Fcart"} ***!
6 \**************************************************************************************/
7 /*! no static exports found */
8 /***/ (function(module, exports, __webpack_require__) {
9
10 "use strict";
11 /* WEBPACK VAR INJECTION */(function(createPage) {__webpack_require__(/*! uni-pages */ 4);__webpack_require__(/*! @dcloudio/uni-stat */ 5);
12 var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 2));
13 var _cart = _interopRequireDefault(__webpack_require__(/*! ./pages/cart/cart.vue */ 25));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
14 createPage(_cart.default);
15 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["createPage"]))
16
17 /***/ }),
18
19 /***/ 25:
20 /*!*******************************************************************!*\
21 !*** C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue ***!
22 \*******************************************************************/
23 /*! no static exports found */
24 /***/ (function(module, __webpack_exports__, __webpack_require__) {
25
26 "use strict";
27 __webpack_require__.r(__webpack_exports__);
28 /* harmony import */ var _cart_vue_vue_type_template_id_2e8f6dbb___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cart.vue?vue&type=template&id=2e8f6dbb& */ 26);
29 /* harmony import */ var _cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cart.vue?vue&type=script&lang=js& */ 28);
30 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
31 /* harmony import */ var _cart_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cart.vue?vue&type=style&index=0&lang=css& */ 30);
32 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 14);
33
34 var renderjs
35
36
37
38
39
40 /* normalize component */
41
42 var component = Object(_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
43 _cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
44 _cart_vue_vue_type_template_id_2e8f6dbb___WEBPACK_IMPORTED_MODULE_0__["render"],
45 _cart_vue_vue_type_template_id_2e8f6dbb___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
46 false,
47 null,
48 null,
49 null,
50 false,
51 _cart_vue_vue_type_template_id_2e8f6dbb___WEBPACK_IMPORTED_MODULE_0__["components"],
52 renderjs
53 )
54
55 component.options.__file = "C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue"
56 /* harmony default export */ __webpack_exports__["default"] = (component.exports);
57
58 /***/ }),
59
60 /***/ 26:
61 /*!**************************************************************************************************!*\
62 !*** C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?vue&type=template&id=2e8f6dbb& ***!
63 \**************************************************************************************************/
64 /*! exports provided: render, staticRenderFns, recyclableRender, components */
65 /***/ (function(module, __webpack_exports__, __webpack_require__) {
66
67 "use strict";
68 __webpack_require__.r(__webpack_exports__);
69 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_template_id_2e8f6dbb___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./cart.vue?vue&type=template&id=2e8f6dbb& */ 27);
70 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_template_id_2e8f6dbb___WEBPACK_IMPORTED_MODULE_0__["render"]; });
71
72 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_template_id_2e8f6dbb___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
73
74 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_template_id_2e8f6dbb___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
75
76 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_template_id_2e8f6dbb___WEBPACK_IMPORTED_MODULE_0__["components"]; });
77
78
79
80 /***/ }),
81
82 /***/ 27:
83 /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
84 !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?vue&type=template&id=2e8f6dbb& ***!
85 \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
86 /*! exports provided: render, staticRenderFns, recyclableRender, components */
87 /***/ (function(module, __webpack_exports__, __webpack_require__) {
88
89 "use strict";
90 __webpack_require__.r(__webpack_exports__);
91 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
92 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
93 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
94 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
95 var components
96 var render = function() {
97 var _vm = this
98 var _h = _vm.$createElement
99 var _c = _vm._self._c || _h
100 }
101 var recyclableRender = false
102 var staticRenderFns = []
103 render._withStripped = true
104
105
106
107 /***/ }),
108
109 /***/ 28:
110 /*!********************************************************************************************!*\
111 !*** C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?vue&type=script&lang=js& ***!
112 \********************************************************************************************/
113 /*! no static exports found */
114 /***/ (function(module, __webpack_exports__, __webpack_require__) {
115
116 "use strict";
117 __webpack_require__.r(__webpack_exports__);
118 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./cart.vue?vue&type=script&lang=js& */ 29);
119 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
120 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
121 /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a);
122
123 /***/ }),
124
125 /***/ 29:
126 /*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
127 !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?vue&type=script&lang=js& ***!
128 \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
129 /*! no static exports found */
130 /***/ (function(module, exports, __webpack_require__) {
131
132 "use strict";
133 Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0; //
134 //
135 //
136 //
137 //
138 //
139 //
140 //
141 //
142 var _default =
143 {
144 data: function data() {
145 return {
146 title: 'Hello' };
147
148 },
149 onLoad: function onLoad() {
150
151 },
152 methods: {} };exports.default = _default;
153
154 /***/ }),
155
156 /***/ 30:
157 /*!****************************************************************************************************!*\
158 !*** C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?vue&type=style&index=0&lang=css& ***!
159 \****************************************************************************************************/
160 /*! no static exports found */
161 /***/ (function(module, __webpack_exports__, __webpack_require__) {
162
163 "use strict";
164 __webpack_require__.r(__webpack_exports__);
165 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./cart.vue?vue&type=style&index=0&lang=css& */ 31);
166 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
167 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
168 /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
169
170 /***/ }),
171
172 /***/ 31:
173 /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
174 !*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?vue&type=style&index=0&lang=css& ***!
175 \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
176 /*! no static exports found */
177 /***/ (function(module, exports, __webpack_require__) {
178
179 // extracted by mini-css-extract-plugin
180 if(false) { var cssReload; }
181
182
183 /***/ })
184
185 },[[24,"common/runtime","common/vendor"]]]);
186 //# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/cart/cart.js.map
unpackage/dist/dev/mp-weixin/pages/cart/cart.json
1 { File was deleted
2 "navigationBarTitleText": "购物车",
3 "usingComponents": {}
4 }
unpackage/dist/dev/mp-weixin/pages/cart/cart.wxml
1 <view class="content"><image class="logo" src="/static/logo.png"></image><view class="text-area"><text class="title">{{title}}</text></view></view> File was deleted
unpackage/dist/dev/mp-weixin/pages/cart/cart.wxss
1 File was deleted
2 .content {
3 display: -webkit-box;
4 display: -webkit-flex;
5 display: flex;
6 -webkit-box-orient: vertical;
7 -webkit-box-direction: normal;
8 -webkit-flex-direction: column;
9 flex-direction: column;
10 -webkit-box-align: center;
11 -webkit-align-items: center;
12 align-items: center;
13 -webkit-box-pack: center;
14 -webkit-justify-content: center;
15 justify-content: center;
16 }
17 .logo {
18 height: 200rpx;
19 width: 200rpx;
20 margin-top: 200rpx;
21 margin-left: auto;
22 margin-right: auto;
23 margin-bottom: 50rpx;
24 }
25 .text-area {
26 display: -webkit-box;
27 display: -webkit-flex;
28 display: flex;
29 -webkit-box-pack: center;
30 -webkit-justify-content: center;
31 justify-content: center;
32 }
33 .title {
34 font-size: 36rpx;
35 color: #8f8f94;
36 }
37
38 1
unpackage/dist/dev/mp-weixin/pages/index/index.js
1 (global["webpackJsonp"] = global["webpackJsonp"] || []).push([["pages/index/index"],{ File was deleted
2
3 /***/ 15:
4 /*!****************************************************************************************!*\
5 !*** C:/Users/Administrator/Desktop/gulu-vue/main.js?{"page":"pages%2Findex%2Findex"} ***!
6 \****************************************************************************************/
7 /*! no static exports found */
8 /***/ (function(module, exports, __webpack_require__) {
9
10 "use strict";
11 /* WEBPACK VAR INJECTION */(function(createPage) {__webpack_require__(/*! uni-pages */ 4);__webpack_require__(/*! @dcloudio/uni-stat */ 5);
12 var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 2));
13 var _index = _interopRequireDefault(__webpack_require__(/*! ./pages/index/index.vue */ 16));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
14 createPage(_index.default);
15 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["createPage"]))
16
17 /***/ }),
18
19 /***/ 16:
20 /*!*********************************************************************!*\
21 !*** C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue ***!
22 \*********************************************************************/
23 /*! no static exports found */
24 /***/ (function(module, __webpack_exports__, __webpack_require__) {
25
26 "use strict";
27 __webpack_require__.r(__webpack_exports__);
28 /* harmony import */ var _index_vue_vue_type_template_id_74c52b3e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=74c52b3e& */ 17);
29 /* harmony import */ var _index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&lang=js& */ 19);
30 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
31 /* harmony import */ var _index_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.vue?vue&type=style&index=0&lang=scss& */ 23);
32 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 14);
33
34 var renderjs
35
36
37
38
39
40 /* normalize component */
41
42 var component = Object(_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
43 _index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
44 _index_vue_vue_type_template_id_74c52b3e___WEBPACK_IMPORTED_MODULE_0__["render"],
45 _index_vue_vue_type_template_id_74c52b3e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
46 false,
47 null,
48 null,
49 null,
50 false,
51 _index_vue_vue_type_template_id_74c52b3e___WEBPACK_IMPORTED_MODULE_0__["components"],
52 renderjs
53 )
54
55 component.options.__file = "C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue"
56 /* harmony default export */ __webpack_exports__["default"] = (component.exports);
57
58 /***/ }),
59
60 /***/ 17:
61 /*!****************************************************************************************************!*\
62 !*** C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?vue&type=template&id=74c52b3e& ***!
63 \****************************************************************************************************/
64 /*! exports provided: render, staticRenderFns, recyclableRender, components */
65 /***/ (function(module, __webpack_exports__, __webpack_require__) {
66
67 "use strict";
68 __webpack_require__.r(__webpack_exports__);
69 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_template_id_74c52b3e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./index.vue?vue&type=template&id=74c52b3e& */ 18);
70 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_template_id_74c52b3e___WEBPACK_IMPORTED_MODULE_0__["render"]; });
71
72 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_template_id_74c52b3e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
73
74 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_template_id_74c52b3e___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
75
76 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_template_id_74c52b3e___WEBPACK_IMPORTED_MODULE_0__["components"]; });
77
78
79
80 /***/ }),
81
82 /***/ 18:
83 /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
84 !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?vue&type=template&id=74c52b3e& ***!
85 \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
86 /*! exports provided: render, staticRenderFns, recyclableRender, components */
87 /***/ (function(module, __webpack_exports__, __webpack_require__) {
88
89 "use strict";
90 __webpack_require__.r(__webpack_exports__);
91 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
92 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
93 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
94 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
95 var components = {
96 "uni-drawer": function() {
97 return __webpack_require__.e(/*! import() | components/uni-drawer/uni-drawer */ "components/uni-drawer/uni-drawer").then(__webpack_require__.bind(null, /*! @/components/uni-drawer/uni-drawer.vue */ 40))
98 }
99 }
100 var render = function() {
101 var _vm = this
102 var _h = _vm.$createElement
103 var _c = _vm._self._c || _h
104 }
105 var recyclableRender = false
106 var staticRenderFns = []
107 render._withStripped = true
108
109
110
111 /***/ }),
112
113 /***/ 19:
114 /*!**********************************************************************************************!*\
115 !*** C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?vue&type=script&lang=js& ***!
116 \**********************************************************************************************/
117 /*! no static exports found */
118 /***/ (function(module, __webpack_exports__, __webpack_require__) {
119
120 "use strict";
121 __webpack_require__.r(__webpack_exports__);
122 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./index.vue?vue&type=script&lang=js& */ 20);
123 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
124 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
125 /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a);
126
127 /***/ }),
128
129 /***/ 20:
130 /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
131 !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?vue&type=script&lang=js& ***!
132 \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
133 /*! no static exports found */
134 /***/ (function(module, exports, __webpack_require__) {
135
136 "use strict";
137 Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198 var _data = _interopRequireDefault(__webpack_require__(/*! @/common/data.js */ 21));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var uniDrawer = function uniDrawer() {__webpack_require__.e(/*! require.ensure | components/uni-drawer/uni-drawer */ "components/uni-drawer/uni-drawer").then((function () {return resolve(__webpack_require__(/*! @/components/uni-drawer/uni-drawer.vue */ 40));}).bind(null, __webpack_require__)).catch(__webpack_require__.oe);};var HMfilterDropdown = function HMfilterDropdown() {__webpack_require__.e(/*! require.ensure | components/HM-filterDropdown/HM-filterDropdown */ "components/HM-filterDropdown/HM-filterDropdown").then((function () {return resolve(__webpack_require__(/*! ../../components/HM-filterDropdown/HM-filterDropdown.vue */ 47));}).bind(null, __webpack_require__)).catch(__webpack_require__.oe);}; //筛选菜单数据
199 var _default = {
200 components: {
201 uniDrawer: uniDrawer,
202 'HMfilterDropdown': HMfilterDropdown },
203
204 data: function data() {
205 return {
206 screenItems: [
207 { current: 0, text: '全部', hasIcon: false },
208 { current: 1, text: '销量', hasIcon: false },
209 { current: 2, text: '价格', hasIcon: true },
210 { current: 3, text: '折扣', hasIcon: false },
211 { current: 4, text: '筛选', hasIcon: true }],
212
213 current: 0,
214 showRight: false,
215 indexArr: '',
216 valueArr: '',
217 //商品数据
218 goodsList: [
219 { goods_id: 0, img: '/static/img/goods/p1.jpg', name: '商品名称', price: '¥168', slogan: '1235人付款' },
220 { goods_id: 1, img: '/static/img/goods/p2.jpg', name: '商品名称', price: '¥168', slogan: '1235人付款' },
221 { goods_id: 2, img: '/static/img/goods/p3.jpg', name: '商品名称', price: '¥168', slogan: '1235人付款' },
222 { goods_id: 3, img: '/static/img/goods/p4.jpg', name: '商品名称', price: '¥168', slogan: '1235人付款' },
223 { goods_id: 4, img: '/static/img/goods/p5.jpg', name: '商品名称', price: '¥168', slogan: '1235人付款' },
224 { goods_id: 5, img: '/static/img/goods/p6.jpg', name: '商品名称', price: '¥168', slogan: '1235人付款' },
225 { goods_id: 6, img: '/static/img/goods/p7.jpg', name: '商品名称', price: '¥168', slogan: '1235人付款' },
226 { goods_id: 7, img: '/static/img/goods/p8.jpg', name: '商品名称', price: '¥168', slogan: '1235人付款' },
227 { goods_id: 8, img: '/static/img/goods/p9.jpg', name: '商品名称', price: '¥168', slogan: '1235人付款' },
228 { goods_id: 9, img: '/static/img/goods/p10.jpg', name: '商品名称', price: '¥168', slogan: '1235人付款' }],
229
230 loadingText: "正在加载...",
231 filterDropdownValue: [],
232 filterData: [] };
233
234 },
235 filters: {
236 outData: function outData(value) {
237 return JSON.stringify(value);
238 } },
239
240 onLoad: function onLoad() {var _this = this;
241 //定时器模拟ajax异步请求数据
242 setTimeout(function () {
243 //传入defaultSelected的结构不能错,错了就报错运行异常。 不选中的项目传入null
244 _this.filterDropdownValue = [
245 [1, 1, 0], //第0个菜单选中 一级菜单的第1项,二级菜单的第1项,三级菜单的第3项
246 [null, null], //第1个菜单选中 都不选中
247 [1], //第2个菜单选中 一级菜单的第1项
248 [[0], [1, 2, 7], [1, 0]], //筛选菜单选中 第一个筛选的第0项,第二个筛选的第1,2,7项,第三个筛选的第1,0项
249 [[0], [1], [1]] //单选菜单选中 第一个筛选的第0项,第二个筛选的第1项,第三个筛选的第1项
250 ];
251 _this.filterData = _data.default;
252 }, 100);
253 //模拟ajax请求子菜单数据。
254 // setTimeout(()=>{
255 //this.filterData[1].submenu[0].submenu = [{"name": "附近","value": "附近"},{"name": "1km","value": "1km"},{"name": "2km","value": "2km"},{"name": "3km","value": "3km"},{"name": "4km","value": "4km"},{"name": "5km","value": "5km"}];
256 // },5000)
257 },
258 methods: {
259 showDrawer: function showDrawer(e) {
260 this.$refs[e].open();
261 },
262 closeDrawer: function closeDrawer(e) {
263 this.$refs[e].close();
264 },
265 change: function change(e, type) {
266 this[type] = e;
267 },
268 onClickItem: function onClickItem(e) {
269 if (this.current !== e) {
270 this.current = e;
271 }
272 },
273 dropDown: function dropDown() {
274 console.log('下拉');
275 },
276 //接收菜单结果
277 confirm: function confirm(e) {
278 this.indexArr = e.index;
279 this.valueArr = e.value;
280 return;
281 console.log('修改菜单');
282 this.filterData[4].submenu[1] = {
283 "name": "项目2",
284 "submenu": [] };
285
286
287
288 } },
289
290 onNavigationBarButtonTap: function onNavigationBarButtonTap(e) {
291 this.showRight = !this.showRight;
292 },
293 //上拉加载,
294 onReachBottom: function onReachBottom() {
295 console.log('到底加载');
296 var len = this.goodsList.length;
297 if (len >= 30) {
298 this.loadingText = "~~到底了~~";
299 return false;
300 } else {
301 this.loadingText = "正在加载...";
302 }
303 var end_goods_id = this.goodsList[len - 1].goods_id;
304 for (var i = 1; i <= 10; i++) {
305 var goods_id = end_goods_id + i;
306 var p = { goods_id: goods_id, img: '/static/img/goods/p' + (goods_id % 10 == 0 ? 10 : goods_id % 10) + '.jpg', name: '商品名称', price: '¥168', slogan: '1235人付款' };
307 this.goodsList.push(p);
308 }
309 } };exports.default = _default;
310
311 /***/ }),
312
313 /***/ 23:
314 /*!*******************************************************************************************************!*\
315 !*** C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?vue&type=style&index=0&lang=scss& ***!
316 \*******************************************************************************************************/
317 /*! no static exports found */
318 /***/ (function(module, __webpack_exports__, __webpack_require__) {
319
320 "use strict";
321 __webpack_require__.r(__webpack_exports__);
322 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!./node_modules/postcss-loader/src??ref--8-oneOf-1-3!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./index.vue?vue&type=style&index=0&lang=scss& */ 54);
323 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
324 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
325 /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a);
326
327 /***/ }),
328
329 /***/ 54:
330 /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
331 !*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!./node_modules/postcss-loader/src??ref--8-oneOf-1-3!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?vue&type=style&index=0&lang=scss& ***!
332 \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
333 /*! no static exports found */
334 /***/ (function(module, exports, __webpack_require__) {
335
336 // extracted by mini-css-extract-plugin
337 if(false) { var cssReload; }
338
339
340 /***/ })
341
342 },[[15,"common/runtime","common/vendor"]]]);
343 //# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/index/index.js.map
unpackage/dist/dev/mp-weixin/pages/index/index.json
1 { File was deleted
2 "navigationBarTitleText": "商城一览",
3 "usingComponents": {
4 "uni-drawer": "/components/uni-drawer/uni-drawer",
5 "h-mfilter-dropdown": "/components/HM-filterDropdown/HM-filterDropdown"
6 }
7 }
unpackage/dist/dev/mp-weixin/pages/index/index.wxml
1 <view class="content"><view class="header"><view class="searchBar"><icon class="searchIcon" type="search" size="14"></icon><input class="searchIpt" placeholder="老花镜" confirm-type="search"/></view><view class="screenBar"><block wx:for="{{screenItems}}" wx:for-item="item" wx:for-index="__i0__" wx:key="current"><view data-event-opts="{{[['tap',[['onClickItem',['$0'],[[['screenItems','current',item.current,'current']]]]]]]}}" bindtap="__e"><block wx:if="{{item.current===2}}"><view data-event-opts="{{[['tap',[['dropDown',['$event']]]]]}}" class="{{['screenItem',(current===item.current)?'active':'']}}" bindtap="__e">{{''+item.text}}<icon type="info" size="14"></icon></view></block><block wx:if="{{item.current===4}}"><view data-event-opts="{{[['tap',[['showDrawer',['showRight']]]]]}}" class="{{['screenItem',(current===item.current)?'active':'']}}" bindtap="__e">{{''+item.text}}<icon type="info" size="14"></icon></view></block><block wx:if="{{item.current!==2&&item.current!==4}}"><view><view class="{{['screenItem',(current===item.current)?'active':'']}}">{{item.text}}</view></view></block></view></block></view></view><uni-drawer class="vue-ref" vue-id="8dd740cc-1" mask="true" maskClick="true" mode="right" width="{{320}}" data-ref="showRight" data-event-opts="{{[['^change',[['change',['$event','showRight']]]]]}}" bind:change="__e" bind:__l="__l" vue-slots="{{['default']}}"><view class="close"><view data-event-opts="{{[['tap',[['closeDrawer',['showRight']]]]]}}" bindtap="__e"><text class="word-btn-white">关闭</text></view></view></uni-drawer><view class="content-wrap"><view><h-mfilter-dropdown vue-id="8dd740cc-2" filterData="{{filterData}}" defaultSelected="{{filterDropdownValue}}" updateMenuName="{{true}}" dataFormat="Object" data-event-opts="{{[['^confirm',[['confirm']]]]}}" bind:confirm="__e" bind:__l="__l"></h-mfilter-dropdown><view class="place"></view><view class="goods-list"><view class="product-list"><block wx:for="{{goodsList}}" wx:for-item="goods" wx:for-index="__i1__" wx:key="goods_id"><view data-event-opts="{{[['tap',[['toGoods',['$0'],[[['goodsList','goods_id',goods.goods_id]]]]]]]}}" class="product" bindtap="__e"><image mode="widthFix" src="{{goods.img}}"></image><view class="name">{{goods.name}}</view><view class="info"><view class="price">{{goods.price}}</view><view class="slogan">{{goods.slogan}}</view></view></view></block></view><view class="loading-text">{{loadingText}}</view></view></view></view></view> File was deleted
unpackage/dist/dev/mp-weixin/pages/index/index.wxss
1 @charset "UTF-8"; File was deleted
2 /**
3 * 这里是uni-app内置的常用样式变量
4 *
5 * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
6 * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
7 *
8 */
9 /**
10 * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
11 *
12 * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
13 */
14 /* 颜色变量 */
15 /* 行为相关颜色 */
16 /* 文字基本颜色 */
17 /* 背景颜色 */
18 /* 边框颜色 */
19 /* 尺寸变量 */
20 /* 文字尺寸 */
21 /* 图片尺寸 */
22 /* Border Radius */
23 /* 水平间距 */
24 /* 垂直间距 */
25 /* 透明度 */
26 /* 文章场景相关 */
27 .content {
28 display: -webkit-box;
29 display: -webkit-flex;
30 display: flex;
31 -webkit-box-orient: vertical;
32 -webkit-box-direction: normal;
33 -webkit-flex-direction: column;
34 flex-direction: column;
35 -webkit-box-align: center;
36 -webkit-align-items: center;
37 align-items: center;
38 -webkit-box-pack: center;
39 -webkit-justify-content: center;
40 justify-content: center;
41 background-color: #F7F6F6;
42 }
43 .header {
44 display: -webkit-box;
45 display: -webkit-flex;
46 display: flex;
47 -webkit-box-orient: vertical;
48 -webkit-box-direction: normal;
49 -webkit-flex-direction: column;
50 flex-direction: column;
51 -webkit-box-align: center;
52 -webkit-align-items: center;
53 align-items: center;
54 -webkit-box-pack: center;
55 -webkit-justify-content: center;
56 justify-content: center;
57 background-color: #F7F6F6;
58 height: 178rpx;
59 width: 100%;
60 z-index: 999;
61 position: fixed;
62 top: 0;
63 }
64 .searchBar {
65 width: 670rpx;
66 display: -webkit-box;
67 display: -webkit-flex;
68 display: flex;
69 position: fixed;
70 top: 0;
71 -webkit-box-pack: center;
72 -webkit-justify-content: center;
73 justify-content: center;
74 -webkit-box-align: center;
75 -webkit-align-items: center;
76 align-items: center;
77 -webkit-box-sizing: border-box;
78 box-sizing: border-box;
79 padding: 0rpx 16rpx;
80 border: 1px solid #FF6B4A;
81 border-radius: 8rpx;
82 background-color: #ffffff;
83 }
84 .searchIpt {
85 height: 68rpx;
86 width: 670rpx;
87 padding: 16rpx;
88 font-size: 28rpx;
89 -webkit-box-sizing: border-box;
90 box-sizing: border-box;
91 }
92 .screenBar {
93 position: fixed;
94 top: 68rpx;
95 width: 670rpx;
96 height: 110rpx;
97 display: -webkit-box;
98 display: -webkit-flex;
99 display: flex;
100 -webkit-box-orient: horizontal;
101 -webkit-box-direction: normal;
102 -webkit-flex-direction: row;
103 flex-direction: row;
104 -webkit-box-pack: justify;
105 -webkit-justify-content: space-between;
106 justify-content: space-between;
107 -webkit-box-align: center;
108 -webkit-align-items: center;
109 align-items: center;
110 color: #333333;
111 font-size: 32rpx;
112 }
113 .active {
114 color: #FF6B4A;
115 }
116 .screenItem {
117 display: -webkit-box;
118 display: -webkit-flex;
119 display: flex;
120 -webkit-box-pack: center;
121 -webkit-justify-content: center;
122 justify-content: center;
123 -webkit-box-align: center;
124 -webkit-align-items: center;
125 align-items: center;
126 }
127 .content-wrap {
128 width: 100%;
129 background-color: #FFFFFF;
130 }
131 .HMfilterDropdown {
132 position: fixed;
133 top: 178rpx !important;
134 }
135 .place {
136 background-color: #ffffff;
137 height: 266rpx;
138 }
139 .goods-list {
140 padding-top: 10px;
141 }
142 .goods-list .loading-text {
143 width: 100%;
144 display: -webkit-box;
145 display: -webkit-flex;
146 display: flex;
147 -webkit-box-pack: center;
148 -webkit-justify-content: center;
149 justify-content: center;
150 -webkit-box-align: center;
151 -webkit-align-items: center;
152 align-items: center;
153 height: 30px;
154 color: #979797;
155 font-size: 12px;
156 }
157 .goods-list .product-list {
158 width: 92%;
159 padding: 0 4% 3vw 4%;
160 display: -webkit-box;
161 display: -webkit-flex;
162 display: flex;
163 -webkit-box-pack: justify;
164 -webkit-justify-content: space-between;
165 justify-content: space-between;
166 -webkit-flex-wrap: wrap;
167 flex-wrap: wrap;
168 }
169 .goods-list .product-list .product {
170 width: 48%;
171 border-radius: 10px;
172 background-color: #fff;
173 margin: 0 0 7px 0;
174 -webkit-box-shadow: 0 3px 12px rgba(0, 0, 0, 0.1);
175 box-shadow: 0 3px 12px rgba(0, 0, 0, 0.1);
176 }
177 .goods-list .product-list .product image {
178 width: 100%;
179 border-radius: 10px 10px 0 0;
180 }
181 .goods-list .product-list .product .name {
182 width: 92%;
183 padding: 5px 4%;
184 display: -webkit-box;
185 -webkit-box-orient: vertical;
186 -webkit-line-clamp: 2;
187 text-align: justify;
188 overflow: hidden;
189 font-size: 15px;
190 }
191 .goods-list .product-list .product .info {
192 display: -webkit-box;
193 display: -webkit-flex;
194 display: flex;
195 -webkit-box-pack: justify;
196 -webkit-justify-content: space-between;
197 justify-content: space-between;
198 -webkit-box-align: end;
199 -webkit-align-items: flex-end;
200 align-items: flex-end;
201 width: 92%;
202 padding: 5px 4% 5px 4%;
203 }
204 .goods-list .product-list .product .info .price {
205 color: #e65339;
206 font-size: 15px;
207 font-weight: 600;
208 }
209 .goods-list .product-list .product .info .slogan {
210 color: #807c87;
211 font-size: 12px;
212 }
213
214 1 @charset "UTF-8";
unpackage/dist/dev/mp-weixin/pages/user/user.js
1 (global["webpackJsonp"] = global["webpackJsonp"] || []).push([["pages/user/user"],{ File was deleted
2
3 /***/ 32:
4 /*!**************************************************************************************!*\
5 !*** C:/Users/Administrator/Desktop/gulu-vue/main.js?{"page":"pages%2Fuser%2Fuser"} ***!
6 \**************************************************************************************/
7 /*! no static exports found */
8 /***/ (function(module, exports, __webpack_require__) {
9
10 "use strict";
11 /* WEBPACK VAR INJECTION */(function(createPage) {__webpack_require__(/*! uni-pages */ 4);__webpack_require__(/*! @dcloudio/uni-stat */ 5);
12 var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 2));
13 var _user = _interopRequireDefault(__webpack_require__(/*! ./pages/user/user.vue */ 33));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
14 createPage(_user.default);
15 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["createPage"]))
16
17 /***/ }),
18
19 /***/ 33:
20 /*!*******************************************************************!*\
21 !*** C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue ***!
22 \*******************************************************************/
23 /*! no static exports found */
24 /***/ (function(module, __webpack_exports__, __webpack_require__) {
25
26 "use strict";
27 __webpack_require__.r(__webpack_exports__);
28 /* harmony import */ var _user_vue_vue_type_template_id_14649eca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user.vue?vue&type=template&id=14649eca& */ 34);
29 /* harmony import */ var _user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user.vue?vue&type=script&lang=js& */ 36);
30 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
31 /* harmony import */ var _user_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./user.vue?vue&type=style&index=0&lang=css& */ 38);
32 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 14);
33
34 var renderjs
35
36
37
38
39
40 /* normalize component */
41
42 var component = Object(_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
43 _user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
44 _user_vue_vue_type_template_id_14649eca___WEBPACK_IMPORTED_MODULE_0__["render"],
45 _user_vue_vue_type_template_id_14649eca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
46 false,
47 null,
48 null,
49 null,
50 false,
51 _user_vue_vue_type_template_id_14649eca___WEBPACK_IMPORTED_MODULE_0__["components"],
52 renderjs
53 )
54
55 component.options.__file = "C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue"
56 /* harmony default export */ __webpack_exports__["default"] = (component.exports);
57
58 /***/ }),
59
60 /***/ 34:
61 /*!**************************************************************************************************!*\
62 !*** C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?vue&type=template&id=14649eca& ***!
63 \**************************************************************************************************/
64 /*! exports provided: render, staticRenderFns, recyclableRender, components */
65 /***/ (function(module, __webpack_exports__, __webpack_require__) {
66
67 "use strict";
68 __webpack_require__.r(__webpack_exports__);
69 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_template_id_14649eca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./user.vue?vue&type=template&id=14649eca& */ 35);
70 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_template_id_14649eca___WEBPACK_IMPORTED_MODULE_0__["render"]; });
71
72 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_template_id_14649eca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
73
74 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_template_id_14649eca___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
75
76 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_template_id_14649eca___WEBPACK_IMPORTED_MODULE_0__["components"]; });
77
78
79
80 /***/ }),
81
82 /***/ 35:
83 /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
84 !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?vue&type=template&id=14649eca& ***!
85 \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
86 /*! exports provided: render, staticRenderFns, recyclableRender, components */
87 /***/ (function(module, __webpack_exports__, __webpack_require__) {
88
89 "use strict";
90 __webpack_require__.r(__webpack_exports__);
91 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
92 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
93 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
94 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
95 var components
96 var render = function() {
97 var _vm = this
98 var _h = _vm.$createElement
99 var _c = _vm._self._c || _h
100 }
101 var recyclableRender = false
102 var staticRenderFns = []
103 render._withStripped = true
104
105
106
107 /***/ }),
108
109 /***/ 36:
110 /*!********************************************************************************************!*\
111 !*** C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?vue&type=script&lang=js& ***!
112 \********************************************************************************************/
113 /*! no static exports found */
114 /***/ (function(module, __webpack_exports__, __webpack_require__) {
115
116 "use strict";
117 __webpack_require__.r(__webpack_exports__);
118 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./user.vue?vue&type=script&lang=js& */ 37);
119 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
120 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
121 /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a);
122
123 /***/ }),
124
125 /***/ 37:
126 /*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
127 !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?vue&type=script&lang=js& ***!
128 \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
129 /*! no static exports found */
130 /***/ (function(module, exports, __webpack_require__) {
131
132 "use strict";
133 Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0; //
134 //
135 //
136 //
137 //
138 //
139 //
140 //
141 //
142 var _default =
143 {
144 data: function data() {
145 return {
146 title: 'Hello' };
147
148 },
149 onLoad: function onLoad() {
150
151 },
152 methods: {} };exports.default = _default;
153
154 /***/ }),
155
156 /***/ 38:
157 /*!****************************************************************************************************!*\
158 !*** C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?vue&type=style&index=0&lang=css& ***!
159 \****************************************************************************************************/
160 /*! no static exports found */
161 /***/ (function(module, __webpack_exports__, __webpack_require__) {
162
163 "use strict";
164 __webpack_require__.r(__webpack_exports__);
165 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./user.vue?vue&type=style&index=0&lang=css& */ 39);
166 /* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
167 /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
168 /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
169
170 /***/ }),
171
172 /***/ 39:
173 /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
174 !*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?vue&type=style&index=0&lang=css& ***!
175 \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
176 /*! no static exports found */
177 /***/ (function(module, exports, __webpack_require__) {
178
179 // extracted by mini-css-extract-plugin
180 if(false) { var cssReload; }
181
182
183 /***/ })
184
185 },[[32,"common/runtime","common/vendor"]]]);
186 //# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/user/user.js.map
unpackage/dist/dev/mp-weixin/pages/user/user.json
1 { File was deleted
2 "navigationBarTitleText": "我的",
3 "usingComponents": {}
4 }
unpackage/dist/dev/mp-weixin/pages/user/user.wxml
1 <view class="content"><image class="logo" src="/static/logo.png"></image><view class="text-area"><text class="title">{{title}}</text></view></view> File was deleted
unpackage/dist/dev/mp-weixin/pages/user/user.wxss
1 File was deleted
2 .content {
3 display: -webkit-box;
4 display: -webkit-flex;
5 display: flex;
6 -webkit-box-orient: vertical;
7 -webkit-box-direction: normal;
8 -webkit-flex-direction: column;
9 flex-direction: column;
10 -webkit-box-align: center;
11 -webkit-align-items: center;
12 align-items: center;
13 -webkit-box-pack: center;
14 -webkit-justify-content: center;
15 justify-content: center;
16 }
17 .logo {
18 height: 200rpx;
19 width: 200rpx;
20 margin-top: 200rpx;
21 margin-left: auto;
22 margin-right: auto;
23 margin-bottom: 50rpx;
24 }
25 .text-area {
26 display: -webkit-box;
27 display: -webkit-flex;
28 display: flex;
29 -webkit-box-pack: center;
30 -webkit-justify-content: center;
31 justify-content: center;
32 }
33 .title {
34 font-size: 36rpx;
35 color: #8f8f94;
36 }
37
38 1
unpackage/dist/dev/mp-weixin/project.config.json
1 { File was deleted
2 "description": "项目配置文件。",
3 "packOptions": {
4 "ignore": []
5 },
6 "setting": {
7 "urlCheck": false
8 },
9 "compileType": "miniprogram",
10 "libVersion": "2.9.2",
11 "appid": "wx115b25aa396d27ac",
12 "projectname": "gulu-vue",
13 "simulatorType": "wechat",
14 "simulatorPluginLibVersion": {},
15 "condition": {
16 "search": {
17 "current": -1,
18 "list": []
19 },
20 "conversation": {
21 "current": -1,
22 "list": []
23 },
24 "game": {
25 "current": -1,
26 "list": []
27 },
28 "miniprogram": {
29 "current": -1,
30 "list": []
31 }
32 }
33 }
unpackage/dist/dev/mp-weixin/sitemap.json
1 { File was deleted
2 "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
3 "rules": [{
4 "action": "allow",
5 "page": "*"
6 }]
7 }
unpackage/dist/dev/mp-weixin/sitemap39.json
1 { File was deleted
2 "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
3 "rules": [{
4 "action": "allow",
5 "page": "*"
6 }]
7 }
unpackage/dist/dev/mp-weixin/sitemap46.json
1 { File was deleted
2 "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
3 "rules": [{
4 "action": "allow",
5 "page": "*"
6 }]
7 }
unpackage/dist/dev/mp-weixin/sitemap47.json
1 { File was deleted
2 "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
3 "rules": [{
4 "action": "allow",
5 "page": "*"
6 }]
7 }
unpackage/dist/dev/mp-weixin/sitemap54.json
1 { File was deleted
2 "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
3 "rules": [{
4 "action": "allow",
5 "page": "*"
6 }]
7 }
unpackage/dist/dev/mp-weixin/sitemap7.json
1 { File was deleted
2 "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
3 "rules": [{
4 "action": "allow",
5 "page": "*"
6 }]
7 }
unpackage/dist/dev/mp-weixin/sitemap80.json
1 { File was deleted
2 "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
3 "rules": [{
4 "action": "allow",
5 "page": "*"
6 }]
7 }
unpackage/dist/dev/mp-weixin/sitemap96.json
1 { File was deleted
2 "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
3 "rules": [{
4 "action": "allow",
5 "page": "*"
6 }]
7 }
unpackage/dist/dev/mp-weixin/static/img/goods/p1.jpg

11.3 KB

unpackage/dist/dev/mp-weixin/static/img/goods/p10.jpg

22.6 KB

unpackage/dist/dev/mp-weixin/static/img/goods/p2.jpg

16.3 KB

unpackage/dist/dev/mp-weixin/static/img/goods/p3.jpg

15 KB

unpackage/dist/dev/mp-weixin/static/img/goods/p4.jpg

6.55 KB

unpackage/dist/dev/mp-weixin/static/img/goods/p5.jpg

29.6 KB

unpackage/dist/dev/mp-weixin/static/img/goods/p6.jpg

6.25 KB

unpackage/dist/dev/mp-weixin/static/img/goods/p7.jpg

20.1 KB

unpackage/dist/dev/mp-weixin/static/img/goods/p8.jpg

20.4 KB

unpackage/dist/dev/mp-weixin/static/img/goods/p9.jpg

24.1 KB

unpackage/dist/dev/mp-weixin/static/logo.png

3.93 KB

unpackage/dist/dev/mp-weixin/static/tab-cart-current.png

2.89 KB

unpackage/dist/dev/mp-weixin/static/tab-cart.png

2.85 KB

unpackage/dist/dev/mp-weixin/static/tab-home-current.png

3.97 KB

unpackage/dist/dev/mp-weixin/static/tab-home.png

3.87 KB

unpackage/dist/dev/mp-weixin/static/tab-my-current.png

1.31 KB

unpackage/dist/dev/mp-weixin/static/tab-my.png

2.89 KB