1288 lines
35 KiB
JavaScript
1288 lines
35 KiB
JavaScript
// 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);
|
||
},
|
||
});
|
||
});
|
||
},
|
||
}); |