Sanakey
2021-04-30 8724a444c8a1d09dc8f9efd005e8443aad8df1ab
提交 | 用户 | age
282d69 1 // import * as dayjs from "dayjs";
S 2 import MyValidator from "../../utils/myValidator";
b6cc28 3
282d69 4 let validatorInstance:MyValidator;
S 5 // const app = getApp<IAppOption>();
b6cc28 6 Page({
S 7   data: {
282d69 8     autosize:{ maxHeight: 120, minHeight: 50 },
S 9     validatorInstance:{},
10     freeId:0,
11     formId:710804, //功能号:秒杀 710802 , 报名邀约 710803 ,团购 710804
12     formData: {},
13     doccode:'',
14     fromPage:'',
15     delivery:{}
b6cc28 16   },
282d69 17   onLoad(options) {
S 18     // console.log(app);
19     let doccode =options.doccode||'';
20     let fromPage =options.fromPage||'';
21     this.setData({
22       fileUploadUrl: `/shopping/panicBuying.do?m=uploadAttachment&formid=${this.data.formId}`,
23       doccode,
24       fromPage
25     })
26     if (doccode) {
27       this.getSaveData();
28     }
b6cc28 29   },
282d69 30   async getSaveData() {
S 31     let doccode = this.data.doccode;
32     let [error, result] = await wx.$utils.to(
33       wx.$http.request({
34         url:`/shopping/panicBuying.do?m=getPanicBuyingDetail`,
35         data:{
36           doccode,
37           isEdit:true,
38           RefOpenId:wx.globalData.OpenId
39         }
40       })
41     )
42     if (error){
43       console.log(error);
44       return;
45     }
46     console.log(result);
47     let data = result.list[0];
48     let formData = {
49       promotionsTitle: data.title,
50       originalPrice: data.originalPrice,
51       flashSalePrice: data.salesPrice,
52       flashSaleTotal: data.numberOfTeam,
53       promotionDescription: data.description,
54       startTime: data.effectiveStartDate,
55       endTime: data.effectiveEndDate,
56       coverImageList: (data.coverImageUrl&&this.getCoverImageList(data))||[],
57       // imagesList: (data.imagesUrl.length>0&&this.getImagesList(data))||[],
58       imagesList: data.imagesUrl,
59       coverImage: data.coverImage,
60       images: data.images,
61       freeId:data.freeId,
62     };
63     this.setData({
64       ...formData,
65       // [`effectiveStartDate`]: data.effectiveStartDate,
66       // [`effectiveEndDate`]: data.effectiveEndDate,
67       // [`freeId`]: data.freeId,
68       // [`title`]: data.title,
69       // [`originalPrice`]: data.originalPrice,
70       // [`salesPrice`]: data.salesPrice,
71       // [`quantity`]: data.quantity,
72       // [`restrictBuyingQuantity`]: data.restrictBuyingQuantity,
73       // [`description`]: data.description,
74       sellerList:result.sellerList,
75       status:data.panicBuyingStatus,
76       delivery:{
77         freeId:data.freeId,
78         freeName:data.freeName,
79         isRequiredAddress:data.isRequiredAddress,
80         transCosts:data.transCosts,
81       }
b6cc28 82     });
282d69 83     console.log('配送数据。。。',this.data.delivery);
S 84   },
85
86   getCoverImageList(data:any){
87     let [unid,seq] = data.coverImage.split(";");
88     return [{
89       url: data.coverImageUrl||'',
90       unid,
91       seq
92     }]
93   },
94   // getImagesList(data:any){
95   //   let [unid,seq] = data.images.split(";");
96   //   return data.imagesUrl.map((item:string)=>{
97   //     return {
98   //       url: item,
99   //       unid,
100   //       seq
101   //     }
102   //   })
103   // },
104
105   onReady() {
106     this.initValidator()
107   },
108   selectedStartTime(event:any) {
109     console.log('开始',event);
110     this.setData({
111       startTime: event.detail.startTime,
112     })
113   },
114   selectedEndTime(event:any){
115     console.log('结束',event);
116     this.setData({
117       endTime: event.detail.endTime,
118     })
119   },
120   getDeliveryMethod(event:any){
121     console.log(event.detail);
122     this.setData({
123       // deliveryMethod: event.detail.deliveryMethod,
124       freeId: event.detail.freeId,
125     })
126     console.log('this.data.freeId;',this.data.freeId);
127   },
128
129   checkPromotionsTitle(e:any){
130     let { value } = e.detail
131     console.log(e);
132     validatorInstance.checkField('promotionsTitle',value);
133     this.setData({
134       promotionsTitle:value.trim()
135     })
136   },
137   checkOriginalPrice(e:any){
138     let { value } = e.detail
139     console.log(e);
140     validatorInstance.checkField('originalPrice',value);
141     this.setData({
142       originalPrice:value.trim()
143     })
144   },
145   checkFlashSalePrice(e:any){
146     let { value } = e.detail
147     console.log(e);
148     validatorInstance.checkField('flashSalePrice',value);
149     this.setData({
150       flashSalePrice:value.trim()
151     })
152   },
153   checkFlashSaleTotal(e:any){
154     let { value } = e.detail
155     console.log(e);
156     validatorInstance.checkField('flashSaleTotal',value);
157     this.setData({
158       flashSaleTotal:value.trim()
159     })
160   },
161   checkPromotionDescription(e:any){
162     let { value } = e.detail
163     console.log(e);
164     validatorInstance.checkField('promotionDescription',value);
165     this.setData({
166       promotionDescription:value.trim()
167     })
168   },
169
170   async postFormData(data:object){
171     let [error, res] = await wx.$utils.to(
172       wx.$http.request({
173         url:'/shopping/panicBuying.do?m=saveDocCode',
174         data,
175         method:'POST'
176       })
177     )
178     if (error) {
179       console.log(error);
180       return false;
181     }
182     console.log(res);
183     wx.showToast({
184       title: '成功',
185       duration: 2000
186     })
187     return true;
188   },
189   async onSubmit() {
190     let timeQuantum = this.selectComponent('#time-quantum');
191     let sellerEdit = this.selectComponent('#seller-edit');
192     let fileUploader = this.selectComponent('#file-uploader');
193     let fileUploaderMultiple = this.selectComponent('#file-uploader-multiple');
194
195     let deliveryMethod = this.selectComponent('#delivery-method');
196     let checkTransCosts = true;
197     let transCosts = 0;
198     if (deliveryMethod.data.isRequiredAddress){
199       checkTransCosts = deliveryMethod.checkFields();
200       transCosts = Number(deliveryMethod.data.transCosts);
201     }
202
203
204     console.log('sellerEdit',);
205     console.log(timeQuantum);
206
207     let checkStartTime = timeQuantum.checkTime("startTime", "请选择计划开始时间");
208     let checkEndTime = timeQuantum.checkTime("endTime", "请选择计划结束时间");
209     let checkCoverImage = fileUploader.checkImages("coverImage", "请上传一张封面图");
210     let checkImages = fileUploaderMultiple.checkImages("images", "请至少上传一张图片");
211     let checkAllData = validatorInstance.checkAllData();
212     // if (this.data.goodsImgList.length < 1) {
213     //   console.log('请上传产品图片');
214     // }
215     let sellerList = sellerEdit.getSellerList();
216     if (sellerList.length<1) {
217       wx.showToast({
218         title: '请选择营销人员',
219         icon: 'none',
220         duration: 2000
221       })
222       return
223     }
224     let checkDefaultSeller = sellerEdit.checkDefaultSeller();
225     if (!checkDefaultSeller) {
226       wx.showToast({
227         title: '请选择默认营销人员',
228         icon: 'none',
229         duration: 2000
230       })
231       return
232     }
233     console.log('checkDefaultSeller',checkDefaultSeller);
234
235     let checkArr = [checkTransCosts,checkStartTime,checkEndTime,checkCoverImage,checkImages,checkAllData];
236     let data = {};
237     if (checkArr.every((item)=>{
238       return item
239     })){
240       console.log('....提交成功');
241       let coverImage = fileUploader.getCoverImageUnid();
242       let images = fileUploaderMultiple.getImagesUnid();
243       console.log(coverImage,images);
244       let formData: any = this.data;
245       data = {
246         docCode: formData.doccode, //活动单号,新建活动时为空值,编辑时需要doccode值
247         formId: formData.formId, //功能号:秒杀 710802 , 报名邀约 710803 ,团购 710804
248         docStatus:100, //单据状态: 0 保存(起草) ,100 发布
249         coverImage,
250         images,
251         transCosts, //送货上门时 配送费
252         // ...this.data.formData,
253
254         effectiveStartDate: formData.startTime,
255         effectiveEndDate: formData.endTime,
256         freeId: formData.freeId,
257         title: formData.promotionsTitle,
258         originalPrice: Number(formData.originalPrice),
259         salesPrice: Number(formData.flashSalePrice),
260         numberOfTeam: Number(formData.flashSaleTotal),
261         description: formData.promotionDescription,
262
263         sellerList,
264       }
265       console.log('待发布数据',data);
266       if (!await this.postFormData(data)) return;
267       if (this.data.fromPage=='edit'){
268         wx.navigateBack();
269       } else{
270         wx.redirectTo({
271           url:'../promotionsManageList/promotionsManageList?tab=3'
272         })
273       }
274
275     } else {
276       wx.showToast({
277         title: '页面还有错误未处理',
278         icon: 'none',
279         duration: 2000
280       })
281       console.log('还有错误未处理');
282     }
283
284
285   },
286
287   onSave(){
288     let sellerEdit = this.selectComponent('#seller-edit');
289     let sellerList = sellerEdit.getSellerList();
290     let fileUploader = this.selectComponent('#file-uploader');
291     let fileUploaderMultiple = this.selectComponent('#file-uploader-multiple');
292     console.log('....提交成功');
293     let coverImage = fileUploader.getCoverImageUnid();
294     let images = fileUploaderMultiple.getImagesUnid();
295     let deliveryMethod = this.selectComponent('#delivery-method');
296     let transCosts = 0;
297     if (deliveryMethod.data.isRequiredAddress){
298       transCosts = Number(deliveryMethod.data.transCosts);
299     }
300     console.log(coverImage,images);
301     let formData: any = this.data;
302     let data = {
303       docCode: formData.doccode, //活动单号,新建活动时为空值,编辑时需要doccode值
304       formId: formData.formId, //功能号:秒杀 710802 , 报名邀约 710803 ,团购 710804
305       docStatus: 0, //单据状态: 0 保存(起草) ,100 发布
306       coverImage,
307       images,
308       transCosts, //送货上门时 配送费
309       // ...this.data.formData,
310
311       effectiveStartDate: formData.startTime,
312       effectiveEndDate: formData.endTime,
313       freeId: formData.freeId,
314       title: formData.promotionsTitle,
315       originalPrice: Number(formData.originalPrice)||0,
316       salesPrice: Number(formData.flashSalePrice)||0,
317       numberOfTeam: Number(formData.flashSaleTotal)||0,
318       description: formData.promotionDescription,
319
320       sellerList,
321     }
322     // let data = {
323     //   docCode:this.data.doccode, //活动单号,新建活动时为空值,编辑时需要doccode值
324     //   formId:this.data.formId, //功能号:秒杀 710802 , 报名邀约 710803 ,团购 710804
325     //   docStatus:0, //单据状态: 0 保存(起草) ,100 发布
326     //   coverImage,
327     //   images,
328     //   transCosts, //送货上门时 配送费
329     //   ...this.data.formData,
330     //   sellerList,
331     // }
332     console.log('待保存数据',data);
333     this.postFormData(data);
334   },
335   // onInputStartDate() {},
336   // onInputEndDate() {},
337   initValidator(){
338     // 实例化
339     validatorInstance = new MyValidator({
340       rules: {
341         promotionsTitle: {
342           required: true,
343           maxlength: 15
344         },
345         originalPrice: {
346           required: true,
347           number: true
348         },
349         flashSalePrice: {
350           required: true,
351           number: true
352         },
353         flashSaleTotal: {
354           required: true,
355           number: true
356         },
357         promotionDescription: {
358           required: true
359         },
360       },
361       messages: {
362         promotionsTitle: {
363           required: '请输入活动标题',
364           maxlength: '长度不能大于15'
365         },
366         originalPrice: {
8724a4 367           required: '请输入产品标价',
282d69 368           number: '价格必须为数字'
S 369         },
370         flashSalePrice: {
371           required: '请输入拼团价',
372           number: '价格必须为数字'
373         },
374         flashSaleTotal: {
375           required: '请输入成团人数',
376           number: '人数必须为数字'
377         },
378         promotionDescription: {
379           required: '请输入活动描述'
380         },
381       },
382       multiCheck:true
383     },this)
384     // this.setData({
385     //   validatorInstance
386     // })
387     console.log('hhhh,',validatorInstance);
388   },
b6cc28 389 })
S 390 export {}