yuminge-app/yun-min-program-plugin-master/packageE/others/cloudwarehouse/cloudOrder/cloudOrder.js

1288 lines
35 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// packageE/others/cloudwarehouse/cloudOrder/cloudOrder.js
import Toast from "../../../../dist/toast/toast";
// var WxParse = require('../../../wxParse/wxParse.js');
var app = getApp();
var location = require("../../../../mybehaviors/location/location");
Page({
behaviors: [location],
/**
* 页面的初始数据
*/
data: {
clicktag: 0, // 方式提交订单多次点击
language: "",
//不同购买方式
options: {}, //路由参数购买方式
_root_tag: "",
TAG_ACTION_BUY: "-2", //直接购买
_goodsId: "",
_optionsId: "",
_total: 1,
currentAddId: "",
currentAddress: {},
selectedMode: 0,
selected: 0,
dispatch: [],
//优惠券标识
popupSpecs: false,
addressData: [],
defaultAddress: {},
realname: "", //收件人
mobile: "",
address: "",
order_data: "",
dispatch_price: 0,
goods_price: 0,
price: 0,
discount_price: 0,
deduction_price: 0,
goodsInfo: {},
//积分抵扣 其他抵扣
checkDeductionList: [],
//新增地址v2------------------------------------------------新增地址v2//
form: {
username: "",
mobile: "",
province: "",
city: "",
district: "",
street: "",
address: "",
isDefault: false,
},
addressName: "",
districtVal: "",
popAddAddress: false,
strShow: false, //街道显示
openDateLw: false,
provinceData: [],
cityData: [],
districtData: [],
pickerValue: [0, 0, 0],
selectAddressData: [],
streetShow: false, //街道pop
//新增地址v2------------------------------------------------新增地址v2//
//留言
note: {},
submit_active: true,
total_items: [],
discount_amount_items: [],
//服务费
goodsId: "",
point: {
lat: "",
lng: "",
},
city: "",
defaultSelfCarry: {},
orders_goods: {},
integral: "",
is_region: 0,
TemplateArray: [],
orderLocationObj: {
positioning_success: 0,
province: "",
city: "",
},
getDispatch: false,
is_selected: "",
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: async function (options) {
let userLocationFlag = await this.checkAlbum("scope.userLocation");
console.log("userLocationFlag", userLocationFlag);
if (!userLocationFlag) {
return app.tips("获取位置失败,请重新进入后授权");
}
if (options.is_selected) {
this.setData({
selected: options.is_selected,
is_selected: options.is_selected,
});
}
try {
const value = wx.getStorageSync("integral");
if (value) {
this.setData({
integral: value,
});
}
} catch (e) {
// Do something when catch error
}
this.getCurrentOrderLocation();
//不同购买方式
this.setData({
options: options,
_root_tag: options.tag,
});
if (options.changeSelfCarry) {
let changeSelfCarry = JSON.parse(options.changeSelfCarry);
this.setData({
defaultSelfCarry: changeSelfCarry,
});
}
if (this.data._root_tag == this.data.TAG_ACTION_BUY) {
this.setData({
_goodsId: options.goodsId,
_optionsId: options.optionsId,
_total: options.total,
});
this._getDataActionBuy(); //直接购买
}
//加载地址数据初始化
this._initAddressInfo();
//如果Storage里有保存自提点的信息则自动获取填写
let _zdtInfo = wx.getStorageSync("selfCarryInfo");
if (_zdtInfo) {
_zdtInfo = JSON.parse(_zdtInfo);
this.setData({
"linkinfo.name": _zdtInfo.distributionUserName || "",
"linkinfo.mobile": _zdtInfo.distributionUserMobile || "",
});
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
let language = wx.getStorageSync("langIndex");
this.setData({
language: language.en,
});
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
this.data.submit_active = true;
},
goLocation_ro(e) {
let form = this.data.form;
let tag = this.data._root_tag;
let store_id = this.data.store_id;
let create = this.data.create;
wx.navigateTo({
url: "/packageC/o2o/o2oLocation_loc/o2oLocation_loc?tag=" +
tag +
"&store_id=" +
store_id +
"&form=" +
JSON.stringify(form) +
"&create=" +
create,
});
},
gotochangeSelfCarry() {
//更换自提点
let that = this;
//保存自提点信息到本地,任务编号: 35632
let _memberInfoes = {
distributionUserName: this.data.linkinfo.name ?
this.data.linkinfo.name :
"",
distributionUserMobile: this.data.linkinfo.mobile ?
this.data.linkinfo.mobile :
"",
};
try {
wx.setStorageSync("selfCarryInfo", JSON.stringify(_memberInfoes));
} catch (e) {
console.log(e);
}
wx.navigateTo({
url: "/packageC/selfCarry/selfCarry_info/selfCarry_info?tag=" +
that.data.options.tag +
"&goodsId=" +
that.data.options.goodsId +
"&optionsId=" +
that.data.options.optionsId +
"&total=" +
that.data.options.total +
"&iscloud=cloud" +
"&goods=" +
JSON.stringify(this._assembleGoods()),
});
},
setDispatch(e) {
let title = e.detail.title;
this.data.dispatch.forEach((items) => {
if (items.name == title) {
this.setData({
selected: items.dispatch_type_id,
selectedMode: items.dispatch_type_id == "1" ? 0 : 1,
});
}
});
// console.log(this.data.selected)
this._requestByAddress();
},
//显示地址pop
showAddress() {
//获取收货地址
this._getAddress();
},
//获取收货地址
_getAddress() {
this.addressData = [];
let that = this;
let urlStr = app.getNetAddresss("member.member-address.index");
app._getNetWork({
url: urlStr,
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
let defaultAddress = res.data;
defaultAddress = res.data.filter(function (item) {
return item.isdefault === 1;
});
that.setData({
popupSpecs: true,
addressData: res.data,
defaultAddress: defaultAddress,
});
} else {
Toast(res.msg);
}
},
fail: function (res) {
console.log(res);
},
});
},
//设置地址界面
_setAddressViewData(model) {
if (model == undefined || model == "" || model == []) {
return;
}
//设置地址id
this.data.currentAddId = model.id;
this.data.currentAddress = model;
this.setData({
realname: app._isTextEmpty(model.username) ? "" : model.username,
mobile: app._isTextEmpty(model.mobile) ? "" : model.mobile,
address: app._isTextEmpty(model.province) ?
"" :
model.province +
" " +
model.city +
" " +
model.district +
" " +
(app._isTextEmpty(model.street) ? "" : model.street + " ") +
model.address,
});
},
isOrderAddress_M(_data) {
//判断是否有订单需要填写地址,有一单需要填写地址则需要填写地址才可以下单
//return false 提交订单需要填写地址
for (let j = 0; j < _data.length; j++) {
if (!_data[j].need_address) {
console.log("有订单需要填写地址");
return false;
}
}
return true;
},
//设置界面
_setViewData(data) {
console.log("走了_setViewData设置界面方法");
let _show_address = this.isOrderAddress_M(data.orders);
this.setData({
dispatch: [{
name: "快递",
dispatch_type_id: "1"
},
{
name: "上门自提",
dispatch_type_id: "8"
}
],
selected: this.data.selected,
selectedMode: this.data.selected == "1" ? 0 : 1,
order_data: data.orders,
show_address: _show_address,
price: data.total_price, //设置总价格(合计)
total_items: data.amount_items,
discount_amount_items: data.discount_amount_items,
none_loc: true,
clicktag: 0,
});
this.data.dispatch.forEach((items) => {
if (items.dispatch_type_id == 8) {
console.log("有自提点配送方式,请求定位获取自提点列表");
this._getLocation(() => {this.getList();});
}
});
},
//提货人输入
infonamebtn(e) {
let infoname = e.detail;
this.setData({
"linkinfo.name": infoname,
});
},
infonameclear() {
this.setData({
"linkinfo.name": "",
});
},
infomobileclear() {
this.setData({
"linkinfo.mobile": "",
});
},
//提货人手机输入
infomobilebtn(e) {
let infomobile = e.detail;
this.setData({
"linkinfo.mobile": infomobile,
});
},
addresclosebtn: function () {
this.setData({
popupSpecs: false,
});
},
//选择地址
selectAddress(e) {
let item = e.currentTarget.dataset.addr;
this._setAddressViewData(item); //更新界面 & ID
this._requestByAddress(); //选择地址后重新计算
//关闭 地址栏
this.setData({
popupSpecs: false,
});
},
//选择地址后重新计算数据
_requestByAddress() {
//重新计算
this.setData({
order_data: "",
});
this._getDataActionBuy(); //直接购买
},
editAddress(e) {
let loc = e.currentTarget.dataset.item;
this.setData({
"form.address_id": this.data.defaultAddress[0].id,
"form.username": this.data.defaultAddress[0].username,
"form.mobile": this.data.defaultAddress[0].mobile,
"form.province": this.data.defaultAddress[0].province,
"form.city": this.data.defaultAddress[0].city,
"form.district": this.data.defaultAddress[0].district,
"form.address": this.data.defaultAddress[0].address,
"form.street": this.data.defaultAddress[0].street,
"form.isDefault": this.data.defaultAddress[0].isDefault === 0 ? false : true,
"is_point.lng": loc.longitude,
"is_point.lat": loc.latitude,
});
this.setData({
popupSpecs: false,
create: false,
popAddAddress: true,
});
this._getStreet(this.data.defaultAddress[0].district_id);
this.setData({
addressName: this.data.form.province +
" " +
this.data.form.city +
" " +
this.data.form.district,
});
},
//关闭增加地址
popAddressClose() {
this.setData({
popAddAddress: false,
});
},
//收件人输入绑定
usernameinp: function (e) {
let nameval = e.detail.value;
this.setData({
"form.username": nameval,
});
},
//联系电话输入绑定
mobileinp: function (e) {
let mobileval = e.detail.value;
this.setData({
"form.mobile": mobileval,
});
},
//默认地址开关值绑定
isDefaultChange: function (e) {
let isDefault = e.detail;
this.setData({
"form.isDefault": isDefault,
});
},
//详细地址绑定输入
addressinp: function (e) {
let addressval = e.detail.value;
this.setData({
"form.address": addressval,
});
},
// 关闭选择收货地址
_closeDateLw: function () {
this.setData({
openDateLw: false,
});
},
//地址选择器数据初始化
_initAddressInfo: function () {
var that = this;
var _keyName = "provinceData";
wx.getStorage({
key: _keyName,
success: function (res) {
console.log("地址信息准备就绪");
that._getProvinceData();
},
fail: function (res) {
console.log("省fail");
app._getNetWork({
url: app.getNetAddresss("member.member-address.address"),
success: function (res) {
var response = res.data;
var province = response.data.province;
var city = response.data.city;
var district = response.data.district;
wx.setStorage({
key: "provinceData",
data: province,
});
wx.setStorage({
key: "cityData",
data: city,
});
wx.setStorage({
key: "districtData",
data: district,
});
that._initAddressInfo();
},
fail: function (res) {},
state: true,
});
},
});
},
// 读取省key
_getProvinceData: function () {
var that = this;
var _keyName = "provinceData";
wx.getStorage({
key: _keyName,
success: function (res) {
// console.log("省读取成功", res.data);
that.setData({
provinceData: res.data,
});
that.setData({
"selectAddressData[0].name": res.data[that.data.pickerValue[0]].areaname,
"selectAddressData[0].id": res.data[that.data.pickerValue[0]].id,
"selectAddressData[0].index": that.data.pickerValue[0],
});
that._getCityData();
},
});
},
// 读取城市key筛选城市data
_getCityData: function () {
var _data = this.data.selectAddressData[0];
// console.log("城市", "_data", _data);
var that = this;
var _keyName = "cityData";
wx.getStorage({
key: _keyName,
success: function (res) {
// console.log("城市读取成功", res);
var _json = [];
for (var i = 0; i < res.data.length; i++) {
if (res.data[i].parentid == _data.id) {
_json.push(res.data[i]);
}
}
// console.log("城市数据筛选", _json);
that.setData({
cityData: _json,
});
that.setData({
"selectAddressData[1].name": _json[that.data.pickerValue[1]].areaname,
"selectAddressData[1].id": _json[that.data.pickerValue[1]].id,
"selectAddressData[1].index": that.data.pickerValue[1],
});
that._getDistrictData();
},
});
},
// 读取地区key筛选地区data
_getDistrictData: function () {
var _data = this.data.selectAddressData[1];
// console.log("地区", "_data", _data)
var that = this;
var _keyName = "districtData";
wx.getStorage({
key: _keyName,
success: function (res) {
console.log("地区读取成功");
var _json = [];
for (var i = 0; i < res.data.length; i++) {
if (res.data[i].parentid == _data.id) {
_json.push(res.data[i]);
}
}
// console.log("地区数据筛选", _json);
that.setData({
districtData: _json,
});
// console.log("districtData", _json);
that.setData({
"selectAddressData[2].name": _json[that.data.pickerValue[2]].areaname,
"selectAddressData[2].id": _json[that.data.pickerValue[2]].id,
"selectAddressData[2].index": that.data.pickerValue[2],
});
// console.log("over", that.data.selectAddressData);
},
});
},
//打开地址选择器
openDateLwtbtn: function () {
this.setData({
openDateLw: true,
});
},
// 收货地址滚动事件
bindChange: function (e) {
var val = e.detail.value;
if (this.data.pickerValue[0] != val[0]) {
val[1] = 0;
val[2] = 0;
}
if (this.data.pickerValue[1] != val[1]) {
val[2] = 0;
}
this.setData({
"pickerValue[0]": val[0],
"pickerValue[1]": val[1],
"pickerValue[2]": val[2],
});
this._initAddressInfo();
},
// 确定选择收货地址
_okAddress: function () {
let seleData = this.data.selectAddressData;
this.setData({
"form.street": "",
districtVal: "",
addressName: seleData[0].name + " " + seleData[1].name + " " + seleData[2].name,
"form.province": seleData[0].name,
"form.city": seleData[1].name,
"form.district": seleData[2].name,
});
this._getStreet(seleData[2].id);
this._closeDateLw();
},
//获取街道
_getStreet(param) {
let that = this;
let urlStr = app.getNetAddresss("member.memberAddress.street");
urlStr += "&district_id=" + param;
app._getNetWork({
url: urlStr,
success: function (resdata) {
var res = resdata.data;
if (res.result == 1 && !app._isTextEmpty(res.data)) {
if (!app._isTextEmpty(res.data) && res.data.length > 0) {
that.setData({
districtVal: res.data,
strShow: true,
});
} else {
that.setData({
strShow: false,
});
}
} else {
that.setData({
strShow: false,
});
}
},
fail: function (res) {
that.setData({
strShow: false,
});
console.log(res);
},
});
},
streetChoose() {
if (this.data.is_region == 1 && app._isTextEmpty(this.data.addressName)) {
wx.showToast({
icon: "none",
title: "请先选择所在地区",
duration: 1500,
});
} else {
this.setData({
streetShow: true,
});
}
},
//关闭选择街道弹窗
streetClose: function () {
this.setData({
streetShow: false,
});
},
//选择街道
streetConfirm(e) {
let strname = e.target.dataset.strname;
this.setData({
"form.street": strname,
streetShow: false,
});
},
//增加地址
appendAddress(e) {
let that = this;
let apptype = e.currentTarget.dataset.apptype;
if (app._isTextEmpty(this.data.form.username)) {
wx.showToast({
icon: "none",
title: "请输入收货人姓名",
duration: 1500,
});
return;
}
if (app._isTextEmpty(this.data.form.mobile)) {
wx.showToast({
icon: "none",
title: "请输入联系电话",
duration: 1500,
});
return;
}
if (!/^[0-9]{1,}$/.test(this.data.form.mobile)) {
wx.showToast({
icon: "none",
title: "请输入联系电话",
duration: 1500,
});
return;
}
if (this.data.is_region == 1 && app._isTextEmpty(this.data.addressName)) {
wx.showToast({
icon: "none",
title: "请选择所在区域",
duration: 1500,
});
return;
}
if (
this.data.is_region == 1 &&
this.data.strShow &&
app._isTextEmpty(this.data.form.street)
) {
wx.showToast({
icon: "none",
title: "请选择所在街道",
duration: 1500,
});
return;
}
if (app._isTextEmpty(this.data.form.address)) {
wx.showToast({
icon: "none",
title: "请输入详细地址",
duration: 1500,
});
return;
}
let json = {
username: this.data.form.username,
mobile: this.data.form.mobile,
province: this.data.form.province,
city: this.data.form.city,
district: this.data.form.district,
address: this.data.form.address,
isdefault: this.data.form.isDefault ? 1 : 0,
address_id: this.data.form.address_id,
};
if (this.data.is_point) {
json.longitude = this.data.is_point.lng;
json.latitude = this.data.is_point.lat;
}
if (this.data.strShow) {
json.street = this.data.form.street;
}
let urlStr = "";
if (apptype === "update") {
urlStr = app.getNetAddresss("member.member-address.update");
} else {
urlStr = app.getNetAddresss("member.member-address.store");
}
app._postNetWork({
url: urlStr,
showToastIn: false,
data: json,
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
Toast(res.msg);
that.popAddressClose();
that._setAddressViewData(res.data);
that._requestByAddress(); //选择地址后重新计算
that.setData({
"form.username": "",
"form.mobile": "",
"form.province": "",
"form.city": "",
"form.district": "",
"form.street": "",
"form.address": "",
"form.isDefault": false,
addressName: "",
});
} else {
Toast(res.msg);
}
},
fail: function (res) {},
});
},
//跳转到新增地址
addAddress() {
this.getIsOpenAddress();
//关闭 地址栏
this.setData({
popupSpecs: false,
});
//新增地址 本地处理
console.log(this.data.delivery_status, this.data.selected);
this.showAddAddress();
},
getIsOpenAddress() {
var that = this;
let urlStr = app.getNetAddresss("member.member-address.is-region");
app._getNetWork({
url: urlStr,
success: function (resdata) {
var res = resdata.data;
if (res.result == 1 && !app._isTextEmpty(res.data)) {
that.setData({
is_region: res.data.is_region,
});
} else {
console.log(res.msg);
}
},
fail: function (res) {
console.log(res);
},
});
},
//显示增加地址
showAddAddress() {
this.setData({
"form.username": "",
"form.mobile": "",
"form.province": "",
"form.city": "",
"form.district": "",
"form.street": "",
"form.address": "",
"form.isDefault": false,
addressName: "",
popAddAddress: true,
create: true,
});
},
// 留言
noteHandle(e) {
let preid = e.target.dataset.preid;
let item = e.target.dataset.item;
let val = e.detail.value;
this.setData({
["note." + preid]: val,
});
// 触发抵扣事件
if (!item.order_deductions[0]) {
//临时数据
let isHasNote = false;
if (this.data.checkDeductionList.length > 0) {
this.data.checkDeductionList = this.data.checkDeductionList.map((deduction, index) => {
if (deduction.pre_id == item.pre_id) {
isHasNote = true;
deduction.note = this.data.note[item.pre_id];
}
});
}
if (!isHasNote) {
this.data.checkDeductionList.push({
deduction_ids: [],
pre_id: item.pre_id,
note: this.data.note[item.pre_id]
});
}
this.setData({
checkDeductionList: this.data.checkDeductionList,
});
} else {
this._screenDiscount(item, item.order_deductions[0]);
}
},
//筛选抵扣
_screenDiscount(item, value) {
//临时数据
if (this.data.checkDeductionList.length > 0) {
this.data.checkDeductionList = this.data.checkDeductionList.map((deduction, index) => {
if (deduction.pre_id == item.pre_id) {
if (value.checked) {
// 选中的时候检查是否有对应的code
if (deduction.deduction_ids && deduction.deduction_ids.indexOf(value.code) == -1) {
deduction.deduction_ids.push(value.code);
}
} else {
// 取消选中的时候检查去掉对应的code
if (deduction.deduction_ids && deduction.deduction_ids.indexOf(value.code) > -1) {
deduction.deduction_ids.splice(deduction.deduction_ids.indexOf(value.code), 1);
}
}
// 留言和安装选项重新赋值
deduction.note = this.data.note[item.pre_id];
deduction.service_fee = this.data.service_fee[item.pre_id];
}
});
} else {
this.data.checkDeductionList.push({
deduction_ids: [value.code],
pre_id: item.pre_id,
note: this.data.note[item.pre_id],
service_fee: this.data.service_fee[item.pre_id]
});
}
this.setData({
checkDeductionList: this.data.checkDeductionList,
});
},
//直接购买
_getDataActionBuy() {
let that = this;
let urlStr = "";
urlStr = app.getNetAddresss("plugin.cloud-warehouse.frontend.goods-buy.index");
urlStr += "&goods_id=" + this.data._goodsId;
urlStr += "&total=" + this.data._total;
urlStr += "&option_id=" + this.data._optionsId;
urlStr += "&member_coupon_ids=" + [];
urlStr += "&orders=" + JSON.stringify([]);
urlStr += "&address=" + encodeURIComponent(JSON.stringify(this.data.currentAddress));
urlStr += "&dispatch_type_id=" + this.data.selected;
//自提点开启
if (this.data.selected == 8) {
urlStr += "&package_deliver_id=" + this.data.defaultSelfCarry.id;
}
urlStr += "&mark=" + (this.data.options.mark ? this.data.options.mark : 0);
if (this.data.clicktag == 0) {
this.setData({
clicktag: 1,
});
app._getNetWork({
url: urlStr,
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
that.setData({
goodsInfo: res.data,
cup_notice: true,
});
that._setViewData(res.data); //设置界面
that._setAddressViewData(res.data.dispatch.default_member_address); //设置地址界面
} else {
that.setData({
cup_notice: true,
});
Toast(res.msg);
}
setTimeout(function () {
that.setData({
clicktag: 0,
});
}, 1000);
},
fail: function (res) {
console.log(res);
},
});
}
},
//获取模板id
getTemplate() {
let urlStr = app.getNetAddresss("member.member.getMiniTemplateCorrespond");
let that = this;
app._getNetWork({
url: urlStr,
data: {
small_type: 1,
},
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
let array = [];
for (let i = 0; i < res.data.length; i++) {
array.push(res.data[i].template_id);
}
that.setData({
TemplateArray: array,
});
wx.requestSubscribeMessage({
tmplIds: that.data.TemplateArray,
success(res) {
console.log(res, "success");
that.submitBtn();
},
fail(err) {
console.log(err, "err");
that.submitBtn();
},
});
} else {
Toast(res.msg);
}
},
fail: function (res) {
console.log(res);
},
});
},
//提交订单
submit() {
this.getTemplate();
},
submitBtn() {
if (this.data.submit_active == true) {
this.data.submit_active = false;
if (this.data.selected == 8) {
if (app._isTextEmpty(this.data.defaultSelfCarry.id)) {
wx.showModal({
title: "提示",
content: "请选择自提点",
showCancel: false,
confirmText: "确定",
confirmColor: "#000000",
success: (res) => {},
fail: function (res) {},
complete: function (res) {},
});
this.data.submit_active = true;
return;
}
if (app._isTextEmpty(this.data.linkinfo.name)) {
wx.showModal({
title: "提示",
content: "请填写提货人姓名",
showCancel: false,
confirmText: "确定",
confirmColor: "#000000",
success: (res) => {},
});
this.data.submit_active = true;
return;
}
if (app._isTextEmpty(this.data.linkinfo.mobile)) {
wx.showModal({
title: "提示",
content: "请输入提货人手机",
showCancel: false,
confirmText: "确定",
confirmColor: "#000000",
success: (res) => {},
});
this.data.submit_active = true;
return;
}
//保存自提点信息到本地,任务编号: 35632
let _memberInfoes = {
distributionUserName: this.data.linkinfo.name ?
this.data.linkinfo.name :
"",
distributionUserMobile: this.data.linkinfo.mobile ?
this.data.linkinfo.mobile :
"",
};
try {
wx.setStorageSync("selfCarryInfo", JSON.stringify(_memberInfoes));
} catch (e) {
console.log(e);
}
}
if (
!this.isOrderAddress_M(this.data.order_data) &&
(this.data.selected == 1 || this.data.selected == 3)
) {
if (app._isTextEmpty(this.data.currentAddId)) {
wx.showModal({
title: "提示",
content: "请选择收货地址",
showCancel: false,
confirmText: "确定",
confirmColor: "#000000",
success: (res) => {
this.showAddress();
},
fail: function (res) {},
});
this.data.submit_active = true;
return;
}
}
let that = this;
let json = this._assembleJson();
let urlStr;
urlStr = app.getNetAddresss(
"plugin.cloud-warehouse.frontend.create.index"
);
if (this.data.clicktag == 0) {
this.setData({
clicktag: 1,
});
app._postNetWork({
url: urlStr,
showToastIn: false,
data: json,
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
wx.showToast({
title: "下单成功",
icon: "none",
duration: 1000,
success: function () {
setTimeout(() => {
wx.navigateBack({
delta: 2,
});
}, 900);
},
});
} else {
Toast(res.msg);
}
setTimeout(function () {
that.setData({
clicktag: 0,
});
}, 1000);
},
fail: function (res) {
console.log(res);
},
});
}
}
},
//组装商品信息
_assembleGoods() {
let newGoods = [];
for (let j = 0; j < this.data.goodsInfo.orders.length; j++) {
for (
let i = 0; i < this.data.goodsInfo.orders[j].order_goods.length; i++
) {
let model = {};
model.goods_id = this.data.goodsInfo.orders[j].order_goods[i].goods_id;
model.total = this.data.goodsInfo.orders[j].order_goods[i].total;
model.option_id = this.data.goodsInfo.orders[j].order_goods[
i
].goods_option_id;
newGoods.push(model);
}
}
return newGoods;
},
//组装json数据
_assembleJson() {
let json = {};
if (this.data._root_tag == this.data.TAG_ACTION_BUY) {
json = {
dispatch_type_id: this.data.selected,
address: encodeURIComponent(JSON.stringify(this.data.currentAddress)),
goods: JSON.stringify(this._assembleGoods()),
member_coupon_ids: JSON.stringify([]),
orders: JSON.stringify([]),
mark: this.data.options.mark ? this.data.options.mark : 0,
invoice_type: this.data.iscur_c ? 0 : 1, // 发票
rise_type: this.data.iscur ? 1 : 0,
call: this.data.invoice_list.call,
email: this.data.invoice_list.email,
company_number: this.data.invoice_list.company_number,
};
}
if (this.data.selected == 8) {
json.dispatch_type_id = this.data.selected;
json.package_deliver_id = this.data.defaultSelfCarry.id;
json.realname = this.data.linkinfo.name;
json.mobile = this.data.linkinfo.mobile;
delete json.address;
}
Object.assign(json, this.data.orderLocationObj);
return json;
},
getList() {
let that = this;
let urlStr = app.getNetAddresss(
"plugin.package-deliver.frontend.deliver.getList"
);
let point = app.qqMapTransBMap(
parseFloat(that.data.point.lng),
parseFloat(that.data.point.lat)
);
app._getNetWork({
url: urlStr,
data: {
city_name: that.data.city,
lat: point.lat,
lng: point.lng,
kwd: "",
goods: JSON.stringify(this._assembleGoods()),
},
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
that.setData({
defaultSelfCarry: JSON.stringify(that.data.defaultSelfCarry) == "{}" ?
res.data.list.data[0] :
that.data.defaultSelfCarry,
});
} else {
wx.showToast({
icon: "none",
title: "获取自提点失败",
duration: 1000,
});
}
},
fail: function (res) {
console.log(res);
},
});
},
//获取经纬度
getCurrentOrderLocation() {
wx.getLocation({
type: "gcj02",
success: (res) => {
console.log("userLocationFlag", res);
const latitude = res.latitude;
const longitude = res.longitude;
this._setOrderLocation({
lat: latitude,
lng: longitude,
});
},
});
},
//根据经纬度转换具体地址名称
_setOrderLocation(e) {
let that = this;
app.getReverseGeocoder(e.lat, e.lng).then(function (res) {
console.log("userLocationFlag", res);
let mapdata = res;
let recommend = mapdata.address_component;
let orderLocationObj = {
positioning_success: 1,
province: recommend.province,
city: !app._isTextEmpty(recommend.city) ?
recommend.city :
recommend.province,
};
that.data.orderLocationObj = orderLocationObj;
}).catch(function (err) {
console.log(err);
});
},
checkAlbum(scopeName) {
return new Promise(async (resolve, reject) => { // eslint-disable-line
let writePhotosAlbum = await this.getAuthSetting(scopeName);
if (!writePhotosAlbum) {
wx.showModal({
title: "请开启授权",
content: "是否跳转设置页开启授权",
success(res) {
if (res.confirm) {
wx.openSetting({
success(settingdata) {
if (settingdata.authSetting[scopeName]) {
resolve(true);
} else {
resolve(false);
}
},
});
} else if (res.cancel) {
resolve(false);
}
},
fail: () => {
resolve(false);
},
});
} else resolve(true);
});
},
getAuthSetting(authName) {
return new Promise((resolve, reject) => {
wx.getSetting({
success(res) {
if (!res.authSetting[authName]) {
wx.authorize({
scope: authName,
success() {
resolve(true);
},
fail() {
resolve(false);
},
});
} else resolve(true);
},
fail() {
resolve(false);
},
});
});
},
});