import { queryPermancePlanTmp } from "../../../../services/api/orders/index" import { accountid, clientType, getErrorMsg, isEncrypted, marketid, protoHeader, timetample, userid } from "../../../../services/utils" import { hideLoading, showLoading, showModel, showToast } from "../../../../utils/message/index" import services from "../../../../services/index" import { formatDate, getDecimalNum } from "../../../../utils/util" import { sendMsgToMQ } from "../../../../services/api/common/index" import { encryptBody } from "../../../../utils/websocket/crypto" import { FunCode } from "../../../../constants/enum/funcode" Page({ /** * 页面的初始数据 */ data: { /// 底部安全区域 safeBottom: getApp().globalData.safeBottom, /// 履约模板信息 tmps: [], /// 选中履约模板 tmp: ({}), /// 是否显示 show: false, /// 是否显示日历 showCal: false, /// 颜色 tcolors: ['rebeccapurple', 'green', 'hotpink', 'orange', 'darkgoldenrod', 'firebrick', 'firebrick'], /// 是否开始日期 isstart: true, /// 开始日期 startdate: formatDate(new Date()), /// 结束日期 enddate: formatDate(new Date()), /// 文件上传列表 fileList: [], /// 上传的文件路径 filePath: '', /// 显示信息 actions: [''], /// 生产方式条件 options: [{ text: 'HPHT', value: 1 }, { text: 'CVD', value: 2 }], /// 生产方式 way: 1, /// 商品名称 wrstandname: '', /// 预售总量 pretotalqty: '', /// 预售价格 preprice: '', /// 最小采购单位 minbuyqty: '', /// 最大采购单位 maxbuyqty: '', /// 最低成团量 minsuccessqty: '', /// 采购保证金比例 buymarginvalue: '', /// 颜色 zscolor: '', /// 净度 zsclarity: '', /// 尺寸 zssize: '', /// 成品率 zsyield: '', /// 重量描述 weightdesc: '', /// 数量描述 qtydesc: '', /// 备注 remark: '' }, /** * 返回上层视图 */ backToParent() { /// 返回上层视图 wx.navigateBack() }, /** * 按钮点击响应事件 */ onButtonClick(e: any) { switch (e.target.id) { case 'startdate': /// 开始日期 this.setData({ showCal: true, isstart: true }) break; case 'enddate': /// 结束日期 this.setData({ showCal: true, isstart: false }) break case 'submit': /// 申请提交 this.doSubmit() break default: break; } }, /// 日期确定触发 onConfirm(e: any) { this.setData({ showCal: false }) /// 开始日期 if (this.data.isstart) { this.setData({ startdate: formatDate(e.detail) }) } else { this.setData({ enddate: formatDate(e.detail) }) } }, check(): boolean { /// 请输入商品名称 if (this.data.wrstandname === '') { showToast('请输入商品名称') return false } /// 请输入预售总量 if ((this.data.pretotalqty === '') || (Number(this.data.pretotalqty) === 0.0) ) { debugger showToast('请输入预售总量') return false } /// 请输入预售价格 if ((this.data.preprice === '') || (Number(this.data.preprice) === 0.0) ) { showToast('请输入预售价格') return false } /// 请输入最小采购单位 if ((this.data.minbuyqty === '') || (Number(this.data.minbuyqty) === 0.0) ) { showToast('请输入最小采购单位') return false } /// 请输入最大采购单位 if ((this.data.maxbuyqty === '') || (Number(this.data.maxbuyqty) === 0.0) ) { showToast('请输入最大采购单位') return false } /// 请输入最低成团量 if ((this.data.minsuccessqty === '') || (Number(this.data.minsuccessqty) === 0.0) ) { showToast('请输入最低成团量') return false } /// 请输入采购保证金比例 if ((this.data.buymarginvalue === '') || (Number(this.data.buymarginvalue) === 0.0) ) { showToast('请输入采购保证金比例') return false } return true }, /// 日期关闭触发 onCloseCal() { this.setData({ showCal: false }) }, /// 显示履约模板 showPlanTmps() { this.setData({ show: true }) }, /// 关闭 onClose() { this.setData({ show: false }) }, onSelect(e: any) { /// 默认显示项 const { index } = e.detail; this.setData({ tmp: this.data.tmps[index], show: false }) }, /// 删除图片 deleteImage(e: any) { const {index} = e.detail.index // 上传完成需要更新 fileList const { fileList = [] } = this.data; fileList.splice(index, 1) this.setData({ fileList }); }, onChange(e: any) { this.setData({ way: e.detail }); }, // input输入中 getInputNum (e: any) { /// 截取2位小数位 let num = getDecimalNum(e.detail) switch (e.target.id) { case 'maxbuyqty': /// 最大采购单位 this.setData({ maxbuyqty: num}) break; case 'pretotalqty': /// 预售总量 this.setData({ pretotalqty: num}) break; case 'preprice': /// 预售价格 this.setData({ preprice: num}) break; case 'buymarginvalue': /// 采购保证金 this.setData({ buymarginvalue: num}) break; case 'minbuyqty': /// 最小采购单位 this.setData({ minbuyqty: num}) break; case 'minsuccessqty': /// 最低成团量 this.setData({ minsuccessqty: num}) break; default: break; } }, /// 照片上传 afterRead(e: any) { const { file } = e.detail; // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式 wx.uploadFile({ url: services.config.uploadUrl, filePath: file.url, name: 'file', formData: { user: 'test' }, success: (res) => { if (res.statusCode != 200) { showToast('图片上传失败,原因:'+res.errMsg) return } // 上传完成需要更新 fileList const { fileList = [] } = this.data; fileList.push({ ...file, url: res.data }); this.setData({ fileList }); /// 设置文件路径 this.setData({ filePath: JSON.parse(res.data)[0].filePath }) }, }); }, /// 申请提交 doSubmit() { /// 校验不合规 if (!this.check()) { return } /// showModel showModel(() => { /// showLoading showLoading(() => { /// 请求参数 const info = JSON.stringify({ Header: protoHeader(FunCode.GZPresaleApplyReq), SellUserID: userid(), SellAccountID: accountid(), WRStandardName: this.data.wrstandname, PresaleQty: Number(this.data.pretotalqty), MinBuyQty: Number(this.data.minbuyqty), MaxBuyQty: Number(this.data.maxbuyqty), MinSuccessQty: Number(this.data.minsuccessqty), UnitPrice: Number(this.data.preprice), StartDate: this.data.startdate, EndDate: this.data.enddate, BuyMarginAlgorithm: 1, BuyMarginValue: Number(this.data.buymarginvalue)/100.0, ZSColorTypeStr: this.data.zscolor, ZSClarityTypeStr: this.data.zsclarity, SizeStr: this.data.zssize, YieldRate: this.data.zsyield, QtyDesc: this.data.qtydesc, WeightDesc: this.data.weightdesc, YSProductionMode: this.data.way, PictureUrls: this.data.filePath, Remark: this.data.remark, PerformanceTemplateID: this.data.tmp.autoid, MarketID: marketid(), ClientType: clientType(), ClientSerialNo: timetample().toString() }) /// 发送请求 sendMsgToMQ({ data: { data: encryptBody(info), funCodeReq: FunCode.GZPresaleApplyReq, funCodeRsp: FunCode.GZPresaleApplyRsp, isEncrypted: isEncrypted() }, success: (res) => { /// 解析对象 const data = JSON.parse(res.data.data) if (data.RetCode != 0) { hideLoading(() => {}, getErrorMsg(data.RetCode)) return } /// 求购发布请求成功 hideLoading(() => { wx.navigateBack() }, '提交申请成功', 'success') }, fail: (emsg) => { hideLoading(()=>{}, emsg) } }) }, '提交申请请求中....') }, '提示', '确认要提交申请吗?') }, /// 获取履约模板信息 queryPermancePlanTmp() { /// showLoading showLoading(() => { queryPermancePlanTmp({ success: (res) => { /// 获取数据 this.setData({ tmps: res.data, tmp: res.data[0], actions: res.data.map(obj => { return obj.templatename }) }) }, complete: () => { /// hideLoading hideLoading() } }) }) }, /** * 生命周期函数--监听页面加载 */ onLoad() { /// 获取履约模板信息 this.queryPermancePlanTmp() }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { } })