Sanakey
2021-07-09 3fc241d02fb8b671289de3d9d80bf848349c04d4
pages/groupBuyingCreate/groupBuyingCreate.ts
@@ -1,58 +1,446 @@
// import * as dayjs from "dayjs";
import MyValidator from "../../utils/myValidator";
import {getSaveData, promotionsSaveHandler, promotionsSubmitHandler} from "../../modules/promotionsCreate";
const app = getApp<IAppOption>();
let validatorInstance:MyValidator;
// const app = getApp<IAppOption>();
Page({
  data: {
    minStartDate: new Date().getTime() + 1000 * 60 * 20,
    maxStartDate: new Date().getTime() + 1000 * 60 * 60 * 24 * 180,
    startDate: 0, //new Date().getTime(),
    startTime: '',
    minEndDate: new Date().getTime() + 1000 * 60 * 40,
    maxEndDate: new Date().getTime() + 1000 * 60 * 60 * 24 * 180,
    endDate: 0, //new Date().getTime(),
    endTime: '',
    formatter(type:string, value:string) {
      // console.log(type,value)
      if (type === "year") {
        return `${value}年`;
      } else if (type === "month") {
        return `${value}月`;
      } else if (type === "day") {
        return `${value}日`;
      }
      return value;
    },
    sellerList:[{
      username:'',
      usernameError:'',
      phone:'',
      phoneError:''
    }],
    goodsImgList: [
      {
        url: 'http://pic1.win4000.com/wallpaper/2020-02-20/5e4e4db1dfee0.jpg',
      }
    ],
    autosize:{ maxHeight: 120, minHeight: 50 },
    validatorInstance:{},
    freeId:0,
    formId:710804, //功能号:秒杀 710802 , 报名邀约 710803 ,团购 710804
    formData: {},
    doccode:'',
    fromPage:'',
    delivery:{},
    feeRateForPay:1,
    sellerUnCheckedNames:'',
    coverImageUrl:'',
    isShowDialog:false
  },
  onLoad() {
    console.log(app);
  onLoad(options) {
    // console.log(app);
    let doccode =options.doccode||'';
    let fromPage =options.fromPage||'';
    let settings = wx.globalData.settings;
    this.setData({
      fileUploadUrl: `/shopping/panicBuying.do?m=uploadAttachment&formid=${this.data.formId}`,
      doccode,
      fromPage,
      feeRateForPay: (settings.feeRateForWxPay+settings.platformOperatorCommissionRatio)*100
    })
    if (doccode) {
      this.getSaveData();
    }
    else {
      let storeEdit = this.selectComponent('#store-edit');
      storeEdit.getStoreList();
    }
  },
  afterReadDescImgs(event:any){
    const { file } = event.detail;
    console.log(file);
    // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
    wx.uploadFile({
      url: 'https://example.weixin.qq.com/upload', // 仅为示例,非真实的接口地址
      filePath: file.url,
      name: 'file',
      formData: { user: 'test' },
      success:(res)=> {
        console.log(res);
        // 上传完成需要更新 fileList
        // const { fileList = [] } = this.data;
        // fileList.push({ ...file, url: res.data });
        // this.setData({ fileList });
  async getSaveData() {
    await getSaveData(this)
    // let doccode = this.data.doccode;
    // let [error, result] = await wx.$utils.to(
    //   wx.$http.request({
    //     url:`/shopping/panicBuying.do?m=getPanicBuyingDetail`,
    //     data:{
    //       doccode,
    //       isEdit:true,
    //       SellerOpenId:wx.globalData.OpenId
    //     }
    //   })
    // )
    // if (error){
    //   console.log(error);
    //   return;
    // }
    // console.log(result);
    // let data = result.list[0];
    // let formData = {
    //   promotionsTitle: data.title,
    //   originalPrice: data.originalPrice,
    //   flashSalePrice: data.salesPrice,
    //   flashSaleTotal: data.numberOfTeam,
    //   promotionDescription: data.description,
    //   startTime: data.effectiveStartDate,
    //   endTime: data.effectiveEndDate,
    //   coverImageList: (data.coverImageUrl&&this.getCoverImageList(data))||[],
    //   // imagesList: (data.imagesUrl.length>0&&this.getImagesList(data))||[],
    //   imagesList: data.imagesUrl,
    //   coverImage: data.coverImage,
    //   images: data.images,
    //   freeId:data.freeId,
    // };
    // this.setData({
    //   ...formData,
    //   coverImageUrl:data.coverImageUrl,
    //   // [`effectiveStartDate`]: data.effectiveStartDate,
    //   // [`effectiveEndDate`]: data.effectiveEndDate,
    //   // [`freeId`]: data.freeId,
    //   // [`title`]: data.title,
    //   // [`originalPrice`]: data.originalPrice,
    //   // [`salesPrice`]: data.salesPrice,
    //   // [`quantity`]: data.quantity,
    //   // [`restrictBuyingQuantity`]: data.restrictBuyingQuantity,
    //   // [`description`]: data.description,
    //   sellerList:result.sellerList,
    //   storeList:result.storeList,
    //   status:data.panicBuyingStatus,
    //   delivery:{
    //     freeId:data.freeId,
    //     freeName:data.freeName,
    //     isRequiredAddress:data.isRequiredAddress,
    //     transCosts:data.transCosts,
    //   }
    // });
    // console.log('配送数据。。。',this.data.delivery);
    // wx.setNavigationBarTitle({
    //   title: data.title
    // })
  },
  getCoverImageList(data:any){
    let [unid,seq] = data.coverImage.split(";");
    return [{
      url: data.coverImageUrl||'',
      unid,
      seq
    }]
  },
  // getImagesList(data:any){
  //   let [unid,seq] = data.images.split(";");
  //   return data.imagesUrl.map((item:string)=>{
  //     return {
  //       url: item,
  //       unid,
  //       seq
  //     }
  //   })
  // },
  onReady() {
    this.initValidator()
  },
  selectedStartTime(event:any) {
    console.log('开始',event);
    this.setData({
      startTime: event.detail.startTime,
    })
  },
  selectedEndTime(event:any){
    console.log('结束',event);
    this.setData({
      endTime: event.detail.endTime,
    })
  },
  getDeliveryMethod(event:any){
    console.log(event.detail);
    this.setData({
      // deliveryMethod: event.detail.deliveryMethod,
      freeId: event.detail.freeId,
    })
    console.log('this.data.freeId;',this.data.freeId);
  },
  checkPromotionsTitle(e:any){
    let { value } = e.detail
    console.log(e);
    validatorInstance.checkField('promotionsTitle',value);
    this.setData({
      promotionsTitle:value.trim()
    })
  },
  checkOriginalPrice(e:any){
    let { value } = e.detail
    console.log(e);
    validatorInstance.checkField('originalPrice',value);
    this.setData({
      originalPrice:value.trim()
    })
  },
  checkFlashSalePrice(e:any){
    let { value } = e.detail
    console.log(e);
    validatorInstance.checkField('flashSalePrice',value);
    this.setData({
      flashSalePrice:value.trim()
    })
  },
  checkFlashSaleTotal(e:any){
    let { value } = e.detail
    console.log(e);
    validatorInstance.checkField('flashSaleTotal',value);
    this.setData({
      flashSaleTotal:value.trim()
    })
  },
  checkPromotionDescription(e:any){
    let { value } = e.detail
    console.log(e);
    validatorInstance.checkField('promotionDescription',value);
    this.setData({
      promotionDescription:value.trim()
    })
  },
  // async postFormData(data:object){
  //   let [error, res] = await wx.$utils.to(
  //     wx.$http.request({
  //       url:'/shopping/panicBuying.do?m=saveDocCode',
  //       data,
  //       method:'POST'
  //     })
  //   )
  //   if (error) {
  //     console.log(error);
  //     return false;
  //   }
  //   console.log(res);
  //   if (res.state === 'success') {
  //     wx.showToast({
  //       title: '成功',
  //       duration: 2000
  //     })
  //     this.setData({
  //       doccode:res.DocCode
  //     })
  //   }
  //   if (res.state === 'failed'&&res.sellerCheckedBalance>0) {
  //     this.setData({
  //       sellerUnCheckedNames: res.sellerUnCheckedNames,
  //       isShowDialog: true
  //     })
  //   }
  //   return res.state === 'success';
  // },
  onSubmit:wx.$utils.debounce(function(this:any){
    this.submitHandler();
    return;
  }),
  async submitHandler(){
    await promotionsSubmitHandler(this,validatorInstance);
    return;
    // let timeQuantum = this.selectComponent('#time-quantum');
    // let sellerEdit = this.selectComponent('#seller-edit');
    // let storeEdit = this.selectComponent('#store-edit');
    // let fileUploader = this.selectComponent('#file-uploader');
    // let fileUploaderMultiple = this.selectComponent('#file-uploader-multiple');
    //
    // let deliveryMethod = this.selectComponent('#delivery-method');
    // let checkTransCosts = true;
    // let transCosts = 0;
    // if (deliveryMethod.data.isRequiredAddress){
    //   checkTransCosts = deliveryMethod.checkFields();
    //   transCosts = Number(deliveryMethod.data.transCosts);
    // }
    //
    // console.log(timeQuantum);
    //
    // let checkStartTime = timeQuantum.checkTime("startTime");
    // let checkEndTime = timeQuantum.checkTime("endTime");
    // let checkCoverImage = fileUploader.checkImages("coverImage", "请上传一张封面图");
    // // let checkImages = fileUploaderMultiple.checkImages("images", "请至少上传一张图片");
    // let checkAllData = validatorInstance.checkAllData();
    // // if (this.data.goodsImgList.length < 1) {
    // //   console.log('请上传产品图片');
    // // }
    // let sellerList = sellerEdit.getSellerList();
    // if (sellerList.length<1) {
    //   wx.showToast({
    //     title: '请选择营销人员',
    //     icon: 'none',
    //     duration: 2000
    //   })
    //   return
    // }
    // let storeList = storeEdit.getSelectedStoreIdList();
    // console.log('待提交的门店id',storeList);
    // let checkDefaultSeller = sellerEdit.checkDefaultSeller();
    // if (!checkDefaultSeller) {
    //   wx.showToast({
    //     title: '请选择默认营销人员',
    //     icon: 'none',
    //     duration: 2000
    //   })
    //   return
    // }
    // console.log('checkDefaultSeller',checkDefaultSeller);
    //
    // let checkArr = [checkTransCosts,checkStartTime,checkEndTime,checkCoverImage,checkAllData];
    // let data = {};
    // if (checkArr.every((item)=>{
    //   return item
    // })){
    //   console.log('....提交成功');
    //   let coverImage = fileUploader.getCoverImageUnid();
    //   let coverImageUrl = fileUploader.getImgList()[0].url||'';
    //   this.setData({
    //     coverImageUrl
    //   })
    //   let images = fileUploaderMultiple.getImagesUnid();
    //   console.log(coverImage,images);
    //   let formData: any = this.data;
    //   data = {
    //     docCode: formData.doccode, //活动单号,新建活动时为空值,编辑时需要doccode值
    //     formId: formData.formId, //功能号:秒杀 710802 , 报名邀约 710803 ,团购 710804
    //     docStatus:100, //单据状态: 0 保存(起草) ,100 发布
    //     coverImage,
    //     images,
    //     transCosts, //送货上门时 配送费
    //     // ...this.data.formData,
    //
    //     effectiveStartDate: formData.startTime,
    //     effectiveEndDate: formData.endTime,
    //     freeId: formData.freeId,
    //     title: formData.promotionsTitle,
    //     originalPrice: Number(formData.originalPrice),
    //     salesPrice: Number(formData.flashSalePrice),
    //     numberOfTeam: Number(formData.flashSaleTotal),
    //     description: formData.promotionDescription,
    //     storeList,
    //     sellerList,
    //   }
    //   console.log('待发布数据',data);
    //   if (!await this.postFormData(data)) return;
    //   if (this.data.fromPage=='edit'){
    //     wx.navigateBack();
    //   } else{
    //     wx.redirectTo({
    //       url:'../promotionsManageList/promotionsManageList?tab=3'
    //     })
    //   }
    //
    // } else {
    //   wx.showToast({
    //     title: '页面还有错误未处理',
    //     icon: 'none',
    //     duration: 2000
    //   })
    //   console.log('还有错误未处理');
    // }
  },
  onSave:wx.$utils.debounce(function(this:any){
    promotionsSaveHandler(this);
    return;
    // let sellerEdit = this.selectComponent('#seller-edit');
    // let sellerList = sellerEdit.getSellerList();
    // let storeEdit = this.selectComponent('#store-edit');
    // let storeList = storeEdit.getSelectedStoreIdList();
    // console.log('待提交的门店id',storeList);
    // let fileUploader = this.selectComponent('#file-uploader');
    // let fileUploaderMultiple = this.selectComponent('#file-uploader-multiple');
    // console.log('....提交成功');
    // let coverImage = fileUploader.getCoverImageUnid();
    // let images = fileUploaderMultiple.getImagesUnid();
    // let deliveryMethod = this.selectComponent('#delivery-method');
    // let transCosts = 0;
    // if (deliveryMethod.data.isRequiredAddress){
    //   transCosts = Number(deliveryMethod.data.transCosts);
    // }
    // console.log(coverImage,images);
    // let formData: any = this.data;
    // let data = {
    //   docCode: formData.doccode, //活动单号,新建活动时为空值,编辑时需要doccode值
    //   formId: formData.formId, //功能号:秒杀 710802 , 报名邀约 710803 ,团购 710804
    //   docStatus: 0, //单据状态: 0 保存(起草) ,100 发布
    //   coverImage,
    //   images,
    //   transCosts, //送货上门时 配送费
    //   // ...this.data.formData,
    //
    //   effectiveStartDate: formData.startTime,
    //   effectiveEndDate: formData.endTime,
    //   freeId: formData.freeId,
    //   title: formData.promotionsTitle,
    //   originalPrice: Number(formData.originalPrice)||0,
    //   salesPrice: Number(formData.flashSalePrice)||0,
    //   numberOfTeam: Number(formData.flashSaleTotal)||0,
    //   description: formData.promotionDescription,
    //   storeList,
    //   sellerList,
    // }
    // // let data = {
    // //   docCode:this.data.doccode, //活动单号,新建活动时为空值,编辑时需要doccode值
    // //   formId:this.data.formId, //功能号:秒杀 710802 , 报名邀约 710803 ,团购 710804
    // //   docStatus:0, //单据状态: 0 保存(起草) ,100 发布
    // //   coverImage,
    // //   images,
    // //   transCosts, //送货上门时 配送费
    // //   ...this.data.formData,
    // //   sellerList,
    // // }
    // console.log('待保存数据',data);
    // this.postFormData(data);
    // return;
    }),
  // onInputStartDate() {},
  // onInputEndDate() {},
  initValidator(){
    // 实例化
    validatorInstance = new MyValidator({
      rules: {
        promotionsTitle: {
          required: true,
          rangelength: [3,14]
        },
        originalPrice: {
          required: true,
          number: true
        },
        flashSalePrice: {
          required: true,
          number: true
        },
        flashSaleTotal: {
          required: true,
          number: true
        },
        // promotionDescription: {
        //   required: true
        // },
      },
    });
      messages: {
        promotionsTitle: {
          required: '请输入活动标题',
          rangelength: '文字长度请控制在3到14之间'
        },
        originalPrice: {
          required: '请输入产品标价',
          number: '价格必须为数字'
        },
        flashSalePrice: {
          required: '请输入拼团价',
          number: '价格必须为数字'
        },
        flashSaleTotal: {
          required: '请输入成团人数',
          number: '人数必须为数字'
        },
        // promotionDescription: {
        //   required: '请输入活动描述'
        // },
      },
      multiCheck:true
    },this)
    // this.setData({
    //   validatorInstance
    // })
    console.log('hhhh,',validatorInstance);
  },
  onShareAppMessage() {
    let doccode:string = this.data.doccode || '';
    // let title:string = this.data.promotionsData.title || '';
    let imageUrl:string = this.data.coverImageUrl || '';
    let sellerUnCheckedNames:string = this.data.sellerUnCheckedNames || '';
    return {
      // title: utils.getShareTitle(),
      title: `请营销人员[${sellerUnCheckedNames}]验证身份`,
      imageUrl,
      path: `pages/sellerVerify/sellerVerify?doccode=${doccode}`,
    }
  }
})
export {}