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