Sanakey
2021-07-09 3fc241d02fb8b671289de3d9d80bf848349c04d4
提交 | 用户 | age
d8c37e 1 type timeType = 'startTime'|'endTime';
S 2 Page({
3   /**
4    * 页面的初始数据
5    */
6   data: {
7     isShowStartDatePopup:false,
8     isShowEndDatePopup:false,
9     minStartDate: new Date().getTime() + 1000 * 60 * 15,
10     maxStartDate: new Date().getTime() + 1000 * 60 * 60 * 24 * 180,
11     startDate: new Date().getTime() + 1000 * 60 * 60, //new Date().getTime(),
12     startTime: '',
13     startDateAndTime: [] as any,
14     minEndDate: new Date().getTime() + 1000 * 60 * 45,
15     maxEndDate: new Date().getTime() + 1000 * 60 * 60 * 24 * 180,
16     endDate: new Date().getTime() + 1000 * 60 * 240, //new Date().getTime(),
17     endTime: '',
18     endDateAndTime: [] as any,
19     formatter(type:string, value:string) {
20       // console.log(type,value)
21       if (type === "year") {
22         return `${value}年`;
23       } else if (type === "month") {
24         return `${value}月`;
25       } else if (type === "day") {
26         return `${value}日`;
27       }
28       return value;
29     },
30     doccode:'',
31     qrCodeUrl:"", //https://res.wx.qq.com/op_res/BbVNeczA1XudfjVqCVoKgfuWe7e3aUhokktRVOqf_F0IqS6kYR--atCpVNUUC3zr
32   },
33
34
35   /**
36    * 检查
37    */
38
39   async onSubmit() {
40     let data = {
41       docCode:this.data.doccode,
42       startTime:`${this.data.startTime}:00`,
43       endTime:`${this.data.endTime}:00`,
44     };
45     let checkStartTime = this.checkTime("startTime", "请选择计划开始时间");
46     let checkEndTime = this.checkTime("endTime", "请选择计划结束时间");
47     console.log('待提交数据',data);
48     if (!checkStartTime||!checkEndTime){
49       return;
50     }
51     let [error, result] = await wx.$utils.to(
52       wx.$http.request({
53         url:`/shopping/panicBuyingLive/saveRoomStep3.do`,
54         data,
55         method: 'POST'
56       })
57     )
58     if (error){
59       console.log(error);
60       return;
61     }
62     console.log("新建房间--第三步",result);
63     if (result.qrcodeUrl){
64       let authentication =this.selectComponent('#my-anchor-authentication');
65       authentication.showQrCodeDialog(result.qrcodeUrl);
66       return;
67     }
68     if (result.state=='success'){
69       wx.navigateBack({
70         delta: 3
71       })
72     }
73   },
74
75   /**
76    * 生命周期函数--监听页面加载
77    */
78   onLoad: function (options) {
79     let doccode = options.doccode || '';
80     let currentLiveRoomData = wx.globalData.currentLiveRoomData;
81     console.log('正在编辑的直播间数据',currentLiveRoomData);
82     if (currentLiveRoomData&&JSON.stringify(currentLiveRoomData) != '{}'){
83       let startDate = this.data.startDate;
84       let endDate = this.data.endDate;
85       let lives = {
86         startTime: currentLiveRoomData.StartTime,
87         endTime: currentLiveRoomData.EndTime,
88         startDate: currentLiveRoomData.StartTime?new Date(currentLiveRoomData.StartTime).getTime():startDate,
89         endDate: currentLiveRoomData.EndTime?new Date(currentLiveRoomData.EndTime).getTime():endDate,
90       };
91       // if (currentLiveRoomData.StartTime){
92       //   startDate =  new Date(currentLiveRoomData.StartTime).getTime()
93       // }
94       // if (currentLiveRoomData.EndTime){
95       //   endDate = new Date(currentLiveRoomData.EndTime).getTime()
96       // }
97       console.log('已有时间',lives);
98       this.setData({
99         ...lives,
100       })
101     }
102     this.handleDateAndTime()
103     this.setData({
104       doccode,
105     })
106   },
107   /**
108    * 生命周期函数--监听页面显示
109    */
110   onShow: function () {},
111   handleDateAndTime(){
112     let waitHandle = this.data;
3fc241 113     let startTime = waitHandle.startTime|| wx.$utils.formatTime(new Date().getTime() + 1000 * 60 * 60);
S 114     let endTime =waitHandle.endTime|| wx.$utils.formatTime(new Date().getTime() + 1000 * 60 * 240);
d8c37e 115     this.setData({
S 116       startTime,
117       endTime,
118       startDateAndTime: startTime.split(' '),
119       endDateAndTime: endTime.split(' '),
120     })
121
122   },
123   showStartDatePopup(){
124     this.setData({
125       isShowStartDatePopup: true
126     })
127   },
128   onStartDatePopupClose(){
129     this.setData({
130       isShowStartDatePopup: false
131     })
132   },
133   onEnterStartDate(event: { detail: any; }) {
134     let detail = event.detail;
3fc241 135     const dateTime:any = wx.$utils.formatTime(event.detail);
d8c37e 136     console.log("选择开播时间", dateTime,detail);
S 137     this.setData({
138       startDate: detail,
139       startTime: dateTime,
140       minEndDate: detail + 1000 * 60 * 30,
141     });
142     this.handleDateAndTime();
143     this.onStartDatePopupClose();
144     this.checkTime("startTime", "请选择计划开始时间");
145   },
146   showEndDatePopup(){
147     this.setData({
148       isShowEndDatePopup: true
149     })
150   },
151   onEndDatePopupClose(){
152     this.setData({
153       isShowEndDatePopup: false
154     })
155   },
156   onEnterEndDate(event: { detail: any; }) {
3fc241 157     const date:any = wx.$utils.formatTime(event.detail);
d8c37e 158     console.log("选择下播时间", date,event.detail);
S 159     this.setData({
160       endTime: date,
161       endDate: event.detail,
162     });
163     // this.triggerEvent('selectedEndTime',{
164     //   endTime: date
165     // });
166     this.handleDateAndTime();
167     this.onEndDatePopupClose();
168     this.checkTime("endTime", "请选择计划结束时间");
169   },
170   checkTime(time:timeType, msg:string) {
171     if (this.data[time] == '') {
172       this.setData({
173         [time + "Error"]: msg,
174       });
175       console.log(this.data.startTime);
176       return false;
177     }
178     let startDate = this.data.startDate;
179     let endDate = this.data.endDate;
180     console.log(this.data);
181     if (time==='startTime'){
182       if (startDate&&endDate&&(startDate - endDate > 0)) {
183         this.setData({
184           ["startTimeError"]: "开始时间需小于结束时间",
185         });
186         return false;
187       }
188     }
189     if (time==='endTime'){
190       if (startDate&&endDate&&(endDate - startDate < 0)) {
191         this.setData({
192           ["endTimeError"]: "结束时间需大于开始时间",
193         });
194         return false;
195       }
196     }
197     if (startDate&&endDate&&(Math.abs(startDate - endDate)<1000*60*30)){
198       this.setData({
199         [time + "Error"]: "所选时间范围间隔不得短于30分钟",
200       });
201       return false;
202     }
f46177 203     if (startDate&&endDate&&(Math.abs(startDate - endDate)>1000*60*60*24)){
d8c37e 204       this.setData({
f46177 205         [time + "Error"]: "所选时间范围必须在24小时以内",
d8c37e 206       });
S 207       return false;
208     }
209     this.setData({
210       ["startTimeError"]: "",
211       ["endTimeError"]: "",
212     });
213     return true;
214     // this.handleLiveTime()
215   },
216 });
217
218 export {}