yuminge-app/yun-min-program-plugin-master/packageH/circleCommunity/circleTopic/circleTopic.js

853 lines
22 KiB
JavaScript
Raw Permalink 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.

// packageH/circleCommunity/circleTopic/circleTopic.js
// packageC/micro_communities/microRelease/microRelease.js
var app = getApp();
var QQMapWX = require("../../../mymap/qqmap-wx-jssdk.min.js");
var qqmapsdk;
var clickTap = 0;
Page({
/**
* 页面的初始数据
*/
data: {
language: "",
height: "",
/*地图数据*/
point: {
lat: "",
lng: "",
},
city: "",
address: "",
suggestionshow: false,
suggestion: [],
/**/
classificationshow: false,
Locationshow: false,
commodityTitle: "",
addgoodslistshow: false,
goodsdata: "",
storeshow: false,
storedata: "",
protocolshow: false,
photosize: 1024 * 1024 * 4, // 图片大小限制
uploadUrl: "upload.uploadPic",
catelist: [],
catname: "",
goodslistData: [],
goodsisLoadMore: true,
goodsPage: 1,
goodsTotal: 0,
selectgoodsData: {},
storelistData: [],
storePage: 1,
storeTotal: 0,
storeisLoadMore: true,
selectstoreData: {},
imgData: [],
releasetitle: "",
releasecontents: "",
catid: "",
releaseaddress: "",
releasecity: "",
releaselat: "",
releaselnt: "",
goodsId: "",
storeId: "",
checked: true,
agreementcontent: "",
goods_open: 0,
store_open: 0,
circleId: 0,
stickid: 0, //代表修改
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
if (options.circleId && options.circleId != 0) {
this.data.circleId = options.circleId;
}
if (options.stickId && options.stickId != 0) {
this.data.stickid = options.stickId;
this.getMicroCommentDetails();
}
if (!app.globalData.qqmapkey) {
app._getTemplate().then((res) => {
qqmapsdk = new QQMapWX({
key: app.globalData.qqmapkey,
});
this.poscurrent();
});
} else {
qqmapsdk = new QQMapWX({
key: app.globalData.qqmapkey,
});
this.poscurrent();
}
this.getAgreement();
wx.getSystemInfo({
success: (res) => {
this.setData({
height: res.windowHeight - 70,
});
},
});
},
removeImg(e) {
let index = e.currentTarget.dataset.index;
this.data.imgData.splice(index, 1);
this.setData({
imgData: this.data.imgData,
});
},
poscurrent: function () {
let that = this;
wx.getSetting({
success(resData) {
if (!resData.authSetting["scope.userLocation"]) {
wx.authorize({
scope: "scope.userLocation",
success() {},
fail(msgData) {},
complete() {},
});
}
},
});
that.getlocaldata();
},
getlocaldata() {
let that = this;
wx.getLocation({
type: "gcj02",
success(res) {
const latitude = res.latitude;
const longitude = res.longitude;
// const speed = res.speed;
// const accuracy = res.accuracy;
that._setaddressData({
lat: latitude,
lng: longitude,
});
},
fail(err) {
if (err.errMsg === "getLocation:fail auth deny") {
console.log("当初用户拒绝,再次发起授权");
wx.openSetting({
success(settingdata) {
if (settingdata.authSetting["scope.userLocation"]) {
wx.showToast({
icon: "none",
title: "获取权限成功",
duration: 1500,
});
that.getlocaldata();
} else {
wx.showToast({
icon: "none",
title: "获取权限失败,定位需要用户授权",
duration: 1500,
});
}
},
});
}
},
});
},
_setaddressData(e) {
let that = this;
qqmapsdk.reverseGeocoder({
//位置坐标,默认获取当前位置,非必须参数
location: {
latitude: e.lat,
longitude: e.lng,
},
sig: app.globalData.qqmapsig,
success: function (res) {
//成功后的回调
console.log(res);
that.setData({
releaseaddress: res.result.address,
releasecity: res.result.address_component.city ? res.result.address_component.city : res.result.address_component.province,
releaselat: res.result.ad_info.location.lat,
releaselnt: res.result.ad_info.location.lng,
address_detail: "",
Locationshow: false,
point: {
lat: res.result.ad_info.location.lat,
lng: res.result.ad_info.location.lng,
},
city: res.result.address_component.city ? res.result.address_component.city : res.result.address_component.province,
address: res.result.address,
});
},
fail: function (error) {
wx.showToast({
duration: 3000,
title: error.message,
icon: "none",
});
},
complete: function (res) {},
});
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
let language = wx.getStorageSync("langIndex");
this.setData({ language: language.en });
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {},
onShareTimeline(){},
getAgreement() {
let that = this;
let urlStr = app.getNetAddresss("plugin.circle.frontend.circle.get-set");
app._getNetWork({
url: urlStr,
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
that.setData({
goods_open: res.data ? res.data.good_show : 0,
store_open: res.data ? res.data.store_show : 0,
agreementcontent: res.data ? res.data.user_control : "",
});
}
},
fail: function (res) {
console.log(res);
},
});
},
// 选择图片
onRead() {
let that = this;
let urlStr = app.getNetAddresss(this.data.uploadUrl);
wx.chooseImage({
count: 9,
sizeType: ["compressed"],
sourceType: ["album", "camera"],
success(res) {
const tempFilePaths = res.tempFilePaths;
console.log(res);
for (let j = 0; j < tempFilePaths.length; j++) {
wx.compressImage({
src: tempFilePaths[j], // 图片路径
quality: 60, // 压缩质量
success(e) {
console.log(e);
let photourl = e.tempFilePath;
wx.uploadFile({
url: urlStr,
filePath: photourl,
name: "file",
success(resdata) {
let res = JSON.parse(resdata.data);
if (res.result == 1) {
let imageUrl1 = res.data.img_url;
let imgData = that.data.imgData;
imgData.push(imageUrl1);
that.setData({
imgData: imgData,
});
} else {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1500,
});
}
},
});
},
fail(e) {},
complete(e) {},
});
}
},
});
},
releasetitleInp(e) {
let val = e.detail.value;
this.setData({
releasetitle: val,
});
},
releasecontentsInp(e) {
let val = e.detail.value;
this.setData({
releasecontents: val,
});
},
getClassification() {
this.setData({
classificationshow: true,
});
this.getClassificationData();
},
getClassificationData() {
let that = this;
let json = {};
let urlStr = app.getNetAddresss("plugin.micro-communities.api.index.getCate");
if (this.data.commodityTitle) {
json.cName = this.data.commodityTitle;
}
app._getNetWork({
url: urlStr,
data: json,
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
that.setData({
catelist: res.data,
});
} else {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1500,
});
}
},
fail: function (res) {
console.log(res);
},
});
},
getReleaseAddress() {
this.address_detail = "";
this.setData({
Locationshow: true,
});
},
getGoodsMessage() {
this.getGoodsMessageData();
this.setData({
addgoodslistshow: true,
});
},
getStoreMessage() {
this.getStoreMessageData();
this.setData({
storeshow: true,
});
},
getStoreMessageData() {
let that = this;
let urlStr = app.getNetAddresss("plugin.circle.frontend.circle-invitation.search-store");
let json = {};
json.store_name = this.data.storedata;
that.setData({
storePage: 1, //数组拼接
});
app._getNetWork({
url: urlStr,
data: json,
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
that.setData({
storelistData: res.data.data,
storeTotal: res.data.last_page,
});
} else {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1500,
});
}
},
fail: function (res) {
console.log(res);
},
});
},
getStoreMoreData() {
const that = this;
that.data.storeisLoadMore = false; // 防止多次请求分页数据
if (this.data.storePage >= this.data.storeTotal) {
return;
} else {
this.data.storePage = this.data.storePage + 1;
let urlStr = app.getNetAddresss("plugin.circle.frontend.circle-invitation.search-store");
app._getNetWork({
url: urlStr,
data: {
page: that.data.storePage,
store_name: that.data.storedata,
},
success: function (resdata) {
var res = resdata.data;
that.data.storeisLoadMore = true;
if (res.result == 1) {
let myData = res.data.data;
console.log(that.data.storelistData);
that.setData({
storelistData: that.data.storelistData.concat(myData), //数组拼接
});
} else {
that.data.storePage = that.data.storePage - 1;
that.data.storeisLoadMore = false;
}
},
fail: function (res) {
console.log(res);
},
});
}
},
openProtocol() {
this.setData({
protocolshow: true,
});
},
submitBtn() {
// let that = this;
if (this.data.imgData.length == 0) return app.tips("请上传图片");
if (!this.data.releasetitle) return app.tips("请填写标题");
if (!this.data.releasecontents) return app.tips("请添加正文");
if (!this.data.releaseaddress) return app.tips("请选择地点");
// if (!this.data.goodsId) {
// wx.showToast({
// icon: 'none',
// title: '请添加商品',
// duration: 1500
// })
// return
// }
// if (!this.data.storeId) {
// wx.showToast({
// icon: 'none',
// title: '请添加门店',
// duration: 1500
// })
// return
// }
// if (!this.data.checked) return app.tips("请勾选用户协议");
if (clickTap == "1") {
console.log("重复请求");
return;
}
clickTap = 1;
let dataJson = {};
let urlStr = app.getNetAddresss("plugin.circle.frontend.circle-invitation.release");
dataJson.cat_id = this.data.catid;
dataJson.content = this.data.releasecontents;
dataJson.address = this.data.releaseaddress;
dataJson.img = this.data.imgData;
dataJson.title = this.data.releasetitle;
dataJson.goods_id = this.data.goodsId;
dataJson.store = this.data.storeId;
dataJson.city = this.data.releasecity;
dataJson.latitude = this.data.releaselat;
dataJson.longitude = this.data.releaselnt;
dataJson.ylat = this.data.releaselat;
dataJson.ylng = this.data.releaselnt;
dataJson.invitation_status = 1;
dataJson.circle_id = this.data.circleId;
if (this.data.stickid && this.data.stickid != 0) {
dataJson.invitation_id = this.data.stickid;
}
app._postNetWork({
url: urlStr,
showToastIn: false,
data: dataJson,
success: (resdata) => {
clickTap = 0;
var res = resdata.data;
app.tips(res.msg);
if (res.result == 1) {
try {
let pages = getCurrentPages();
let page = pages[pages.length - 3];
page.updateView();
} catch (error) {
console.log(error);
}
wx.navigateBack({
delta: 2,
});
}
},
fail: function (res) {
clickTap = 0;
},
});
},
protocolBtn(e) {
let bol = e.detail;
this.setData({
checked: bol,
});
},
onClickLeft() {
this.setData({
classificationshow: false,
});
},
onClickRight() {
this.setData({
classificationshow: false,
});
},
commodityTitleClear() {
this.setData({
commodityTitle: "",
});
},
commodityTitleInp(e) {
let val = e.detail.value;
this.setData({
commodityTitle: val,
});
},
searchBtn() {
this.getClassificationData();
},
selectCateId(e) {
let id = e.currentTarget.dataset.id;
let name = e.currentTarget.dataset.name;
this.setData({
catid: id,
catname: name,
classificationshow: false,
});
},
onAddressLeft() {
this.setData({
Locationshow: false,
suggestionshow: false,
address_detail: "",
});
},
onAddressRight() {
this.setData({
Locationshow: false,
suggestionshow: false,
address_detail: "",
});
},
addressinpbtn(e) {
var val = e.detail.value;
this.addressinp(val);
},
addressinp(val) {
var _this = this;
if (!val) {
this.setData({
suggestionshow: false,
});
return;
}
//调用关键词提示接口
qqmapsdk.getSuggestion({
//获取输入框值并设置keyword参数
keyword: val, //用户输入的关键词,可设置固定值,如keyword:'KFC'
//region:'北京', //设置城市名,限制关键词所示的地域范围,非必填参数
sig: app.globalData.qqmapsig,
success: function (res) {
//搜索成功后的回调
var sug = [];
for (var i = 0; i < res.data.length; i++) {
sug.push({
// 获取返回结果放到sug数组中
title: res.data[i].title,
id: res.data[i].id,
addr: res.data[i].address,
city: res.data[i].city,
district: res.data[i].district,
latitude: res.data[i].location.lat,
longitude: res.data[i].location.lng,
});
}
_this.setData({
//设置suggestion属性将关键词搜索结果以列表形式展示
suggestion: sug,
suggestionshow: true,
});
},
fail: function (error) {
console.error(error);
},
complete: function (res) {},
});
},
//数据回填方法
backfill: function (e) {
var id = e.currentTarget.id;
for (var i = 0; i < this.data.suggestion.length; i++) {
if (i == id) {
this.setData({
releaseaddress: this.data.suggestion[i].addr,
releasecity: this.data.suggestion[i].city,
releaselat: this.data.suggestion[i].latitude,
releaselnt: this.data.suggestion[i].longitude,
address_detail: "",
suggestionshow: false,
Locationshow: false,
});
}
}
},
onAddGoodsLeft() {
this.setData({
addgoodslistshow: false,
});
},
onAddGoodsRight() {
this.setData({
addgoodslistshow: false,
});
},
goodsdataClear() {
this.setData({
goodsdata: "",
});
},
goodsdataInp(e) {
let val = e.detail.value;
this.setData({
goodsdata: val,
});
},
searchGoodBtn() {
this.getGoodsMessageData();
},
getGoodsMessageData() {
let that = this;
let json = {};
json.goods_name = this.data.goodsdata;
let urlStr = app.getNetAddresss("plugin.circle.frontend.circle-invitation.search-goods");
that.setData({
goodsPage: 1, //数组拼接
});
app._getNetWork({
url: urlStr,
data: json,
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
that.setData({
goodslistData: res.data.data,
goodsTotal: res.data.last_page,
});
} else {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1500,
});
}
},
fail: function (res) {
console.log(res);
},
});
},
getGoodMoreData() {
const that = this;
that.data.goodsisLoadMore = false; // 防止多次请求分页数据
if (this.data.goodsPage >= this.data.goodsTotal) {
return;
} else {
this.data.goodsPage = this.data.goodsPage + 1;
let urlStr = app.getNetAddresss("plugin.circle.frontend.circle-invitation.search-goods");
app._getNetWork({
url: urlStr,
data: {
page: that.data.goodsPage,
goods_name: that.data.goodsdata,
},
success: function (resdata) {
var res = resdata.data;
that.data.goodsisLoadMore = true;
if (res.result == 1) {
let myData = res.data.data;
that.setData({
goodslistData: that.data.goodslistData.concat(myData), //数组拼接
});
} else {
that.data.goodsPage = that.data.goodsPage - 1;
that.data.goodsisLoadMore = false;
}
},
fail: function (res) {
console.log(res);
},
});
}
},
setGoodsId(e) {
let id = e.currentTarget.dataset.id;
this.setData({
goodsId: id,
});
let selectgoodsData = {};
for (let i = 0; i < this.data.goodslistData.length; i++) {
if (this.data.goodsId == this.data.goodslistData[i].id) {
selectgoodsData.id = this.data.goodslistData[i].id;
selectgoodsData.title = this.data.goodslistData[i].title;
selectgoodsData.thumb = this.data.goodslistData[i].thumb;
selectgoodsData.price = this.data.goodslistData[i].price;
selectgoodsData.market_price = this.data.goodslistData[i].market_price;
selectgoodsData.show_sales = this.data.goodslistData[i].show_sales;
break;
}
}
this.setData({
selectgoodsData: selectgoodsData,
addgoodslistshow: false,
});
},
storedataClear() {
this.setData({
storedata: "",
});
},
storedataInp(e) {
let val = e.detail.value;
this.setData({
storedata: val,
});
},
searchStoreBtn() {
this.getStoreMessageData();
},
setStoreId(e) {
let id = e.currentTarget.dataset.id;
this.setData({
storeId: id,
});
let selectstoreData = {};
for (let i = 0; i < this.data.storelistData.length; i++) {
if (this.data.storeId == this.data.storelistData[i].id) {
selectstoreData.id = this.data.storelistData[i].id;
selectstoreData.thumb = this.data.storelistData[i].thumb;
selectstoreData.store_name = this.data.storelistData[i].store_name;
selectstoreData.address = this.data.storelistData[i].address;
break;
}
}
this.setData({
selectstoreData: selectstoreData,
storeshow: false,
});
},
protocolLeft() {
this.setData({
protocolshow: false,
});
},
onStoreLeft() {
this.setData({
storeshow: false,
});
},
onStoreRight() {
this.setData({
storeshow: false,
});
},
getMicroCommentDetails() {
let that = this;
let urlStr = app.getNetAddresss("plugin.circle.frontend.circle-invitation.details");
let dataJson = {
invitation_id: this.data.stickid,
};
app._postNetWork({
url: urlStr,
showToastIn: false,
data: dataJson,
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
that.setData({
releasecontents: res.data.content,
releaseaddress: res.data.address,
});
that.setData({
circleId: res.data.circle_id,
imgData: res.data.img || [],
releasetitle: res.data.title,
goodsId: res.data.goods_id,
releasecity: res.data.city,
releaselat: res.data.ylat,
releaselnt: res.data.ylng,
});
if (res.data.goods && res.data.goods.length > 0) {
let has_one_goods = res.data.goods[0];
that.setData({
storeId: has_one_goods.id,
"selectgoodsData.id": has_one_goods.id,
"selectgoodsData.title": has_one_goods.title,
"selectgoodsData.thumb": has_one_goods.thumb,
"selectgoodsData.price": has_one_goods.price,
"selectgoodsData.market_price": has_one_goods.market_price,
"selectgoodsData.show_sales": has_one_goods.show_sales,
});
}
if (res.data.store && res.data.store.length > 0) {
let has_one_store = res.data.store[0];
that.setData({
"selectstoreData.id": has_one_store.id,
"selectstoreData.thumb": has_one_store.thumb,
"selectstoreData.store_name": has_one_store.store_name,
"selectstoreData.address": has_one_store.address,
});
}
} else {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1500,
});
}
},
fail: function (res) {},
});
},
});