Commit 8628ba7b by jscat

nyx weapp: 功能新增

1. 添加新增商家功能
parent 0ba44f1c
//app.js //app.js
//app.js //app.js
const base64 = require('./utils/base64.js');//Base64,hmac,sha1,crypto相关算法
var config=require('./config.js'); var config=require('./config.js');
var util = require('./utils/util.js') var util = require('./utils/util.js')
...@@ -541,8 +542,10 @@ App({ ...@@ -541,8 +542,10 @@ App({
getMembers: function (scrollType, pageNum, pageCount, resolve, reject) { getMembers: function (scrollType, pageNum, pageCount, resolve, reject) {
var _this = this; var _this = this;
var userId = _this.globalData.nyxCode var userId = _this.globalData.nyxCode
var query_url = '&userId=' + userId //当商家存在多个地址信息时, 查找默认为01的那个
var addressStatus = '01'
var query_url = '&userId=' + userId + '&addressStatus=' + addressStatus
var strUrl = config.user_member_query_url + "?pageCount=" + pageCount var strUrl = config.user_member_query_url + "?pageCount=" + pageCount
+ "&pageNum=" + pageNum + query_url + "&pageNum=" + pageNum + query_url
...@@ -614,4 +617,185 @@ App({ ...@@ -614,4 +617,185 @@ App({
}, },
// 注册member by Oss
onRegMemberOss(memberInfo, default_member, address_status, resolve, reject)
{
var _this = this;
var member_id = "mid_" + util.wxuuid()
var address_id = "addid_" + util.wxuuid()
//todo success
//app.globalData.member.member_id = member_id
var member_name = memberInfo.member_name
var member_address = memberInfo.member_city + memberInfo.member_address
//即时更新member_address的值
//todo success
//app.globalData.member.member_address = member_address
var member_slogan = memberInfo.member_slogan
console.log("===this is onRegMemberOss");
//获取照片数组
var logoArray = [memberInfo.member_logo]
//时间戳
var oss = wx.getStorageSync('oss') || {}
var expire = oss.hasOwnProperty['logoToken'] ? oss['logoToken'].expire : undefined;
//获取当前时间戳
var expireNow = Date.parse(new Date()) / 1000;
//如果当前时间大于获取的时间 则重新获取oss;
if (expire == undefined || expireNow > expire) {
//重新获取oss, 成功之后执行uploadMember()
let promise_oss = new Promise(function (resolve) {
_this.oss_promise('logoToken', resolve)
})
promise_oss.then(
function (value) {
console.log("===enter promise_oss then_pass")
_this.uploadMember(member_id, address_id, member_name, member_address, member_slogan, logoArray, default_member, address_status, resolve, reject)
});
}
else
{
_this.uploadMember(member_id, address_id, member_name, member_address, member_slogan, logoArray, default_member, address_status, resolve, reject)
}
},
//上传商家信息到(阿里云)
uploadMember: function (member_id, address_id, member_name, member_address, member_slogan, logoArray, default_member, address_status, resolve, reject) {
var _this = this;
var pic = logoArray[0]
console.log(pic)
//传给阿里云的参数
var dir = 'logoToken'
var oss = wx.getStorageSync('oss')
var policy = oss[dir].policy;
var accessid = oss[dir].accessid;
var securityToken = oss[dir].securityToken;
var signature = oss[dir].signature;
var path = oss[dir].host + "/" + oss[dir].dir;
var host = oss[dir].host
console.log("policy: " + policy);
console.log("signature: " + signature);
console.log("accessid: " + accessid);
console.log("path: " + path)
var babyData = {
'Filename': '${filename}',
'name': pic.replace('http://tmp/', "").replace('wxfile://', ""),
'key': oss[dir].dir + '${filename}',
'policy': policy,
'OSSAccessKeyId': accessid,
'success_action_status': '200', //让服务端返回200,不然,默认会返回204
'signature': signature,
'x-oss-security-token': securityToken
}
//生成最终的文件字符串 file1.jpg
var image = pic.replace('http://tmp/', "").replace('wxfile://', "");
var member_logo = path + image
var user_id = _this.globalData.nyxCode
var strUrl = config.oss_member_callback_url
var callback_param = {
'callbackUrl': strUrl,
'callbackBody': 'filename=${object}&size=${size}&mimeType=${mimeType}&height=${imageInfo.height}&width=${imageInfo.width}&memberName=' + encodeURI(encodeURI(member_name)) + '&memberAddress=' + encodeURI(encodeURI(member_address)) + '&memberSlogan=' + encodeURI(encodeURI(member_slogan)) + '&image=' + member_logo + '&memberId=' + member_id + '&userId=' + user_id + '&addressId=' + address_id + '&defaultMember=' + default_member + '&addressStatus=' + address_status,
'callbackBodyType': "application/x-www-form-urlencoded",
}
var base64_callback_body = base64.encode(JSON.stringify(callback_param));
babyData['callback'] = base64_callback_body
wx.uploadFile({
url: host,
formData: babyData,
name: 'file',
filePath: pic,
header: {
'content-type': 'multipart/form-data'
},
success: function (res) {
if (res.statusCode == 200) {
var result = JSON.parse(res.data);
//表示HTTP请求成功
console.log(result.data);
var member = {
member_id: result.data.memberId,
address_id: result.data.addressId,
default_member: result.data.defaultMember,
member_name: result.data.memberName,
member_address: result.data.memberAddress,
member_slogan: result.data.memberSlogan,
member_logo: result.data.memberLogo,
}
var memberInfo = {
member_id: result.data.memberId,
address_id: result.data.addressId,
address_status: result.data.addressStatus,
member_name: result.data.memberName,
member_address: result.data.memberAddress,
member_slogan: result.data.memberSlogan,
member_logo: result.data.memberLogo,
}
// 保存members和member, memberInfo
_this.globalData.member = member
wx.setStorageSync("member", member)
_this.globalData.memberInfo = memberInfo
wx.setStorageSync("memberInfo", memberInfo)
var members = _this.globalData.members || {} //初始注册member, 只有一个member
//将最新生成的member放在members第一位
members.unshift(member)
_this.globalData.members = members
wx.setStorageSync("members", members)
console.log(res)
resolve(res.data);
}
},
fail: function (err) {
console.log("fail to upload file", err.errMsg)
reject(new Error('failed to upload file'));
},
complete: function () {
console.log("complete to upload file");
}
});
},
//用于oss_promise
oss_promise: function (dir, resolve) {
var _this = this;
console.log("===this is oss_"+dir);
//token信息
var strUrl = config.oss_token_url + "?tokenName=ios&userName=1234&dirType=" + dir
wx.request({
url: strUrl,
method: 'GET',
header: {
'content-type': 'application/json'
},
success: res => {
if (res.statusCode == 200) {
console.log("=== oss getToken 返回值_", res.data)
var dict = {
accessid: res.data.data.accessid,
policy: res.data.data.policy,
signature: res.data.data.signature,
host: res.data.data.host,
dir: res.data.data.dir,
expire: res.data.data.expire,
securityToken: res.data.data.securityToken,
}
//通过storage来进行数据的全局共享
var oss = wx.getStorageSync('oss') || {}
oss[dir] = dict
wx.setStorageSync('oss', oss)
resolve("oss load success")
}
}
})
},
}) })
// pages/member/activity-post/activity-post.js // pages/member/activity-post/activity-post.js
...@@ -157,34 +157,6 @@ Page({ ...@@ -157,34 +157,6 @@ Page({
2) 自动裁剪成4:3 或 1:1 2) 自动裁剪成4:3 或 1:1
*/ */
promise_addPhoto: function (resolve, reject) {
var _this = this;
//先设置支付按钮不可点击
var canClick = false;
_this.setData({
photoArray: [],
canClick: canClick
})
console.log("===this is addPhoto");
wx.chooseImage({
sizeType: ['original, compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
var canvasId = "photoCanvasId";
console.log("===addPhoto_上传图片参数", res)
_this.onEditPic(res, canvasId)
resolve("===addPhoto success")
},
fail: function(err)
{
console.log("===addPhoto failed", err.errMsg)
reject("===addPhoto failed")
}
})
},
//添加图片 //添加图片
addPhoto: function () { addPhoto: function () {
var _this = this; var _this = this;
......
// pages/member/activity-post/activity-submit/activity-submit.js // pages/member/activity-post/activity-submit/activity-submit.js
...@@ -88,7 +88,7 @@ Page({ ...@@ -88,7 +88,7 @@ Page({
_this.setData({ memberInfo, memberInfos, addresses, curAddress}) _this.setData({ memberInfo, memberInfos, addresses, curAddress})
} }
//新增值, memberInfos 新增 //新增address值, memberInfos 新增
else if(options.mode == "02") else if(options.mode == "02")
{ {
curAddress = curAddress + 1 curAddress = curAddress + 1
...@@ -100,6 +100,19 @@ Page({ ...@@ -100,6 +100,19 @@ Page({
_this.setData({ memberInfo, memberInfos, addresses, curAddress}) _this.setData({ memberInfo, memberInfos, addresses, curAddress})
} }
//新增member值, members, member改变, memberInfo改变, memberInfos改变
else if(options.mode == "03")
{
var curIndex = 0
curAddress = 0
var member = app.globalData.member
var members = app.globalData.members
var memberInfo = app.globalData.memberInfo
var memberInfos = [ memberInfo ]
var addresses = [ memberInfo.member_address ]
_this.setData({ member, members, memberInfo, memberInfos, addresses, curIndex, curAddress})
}
} }
else else
{ {
......
<view class="page-body"> <view class="page-body">
...@@ -155,7 +155,11 @@ ...@@ -155,7 +155,11 @@
<view class="cate-list" bindtap="toMemberEdit" id="01" data-title="修改商家信息"> <view class="cate-list" bindtap="toMemberEdit" id="01" data-title="修改商家信息">
<image src="../../../../icon/edit.png"/>修改商家信息</view> <image src="../../../../icon/edit.png"/>修改商家信息</view>
<view class="cate-list" bindtap="toMemberEdit" id="02" data-title="新增地址信息"> <view class="cate-list" bindtap="toMemberEdit" id="02" data-title="新增地址信息">
<image src="../../../../icon/add_3.png"/>新增地址信息</view> <image src="../../../../icon/add_3.png"/>新增地址信息</view>
</scroll-view>
<scroll-view class="navBar-box" style="display:flex">
<view class="cate-list" bindtap="toMemberEdit" id="03" data-title="新增商家信息">
<image src="../../../../icon/add_3.png"/>新增商家信息</view>
</scroll-view> </scroll-view>
</view> </view>
<!-- end of 更新商家信息 --> <!-- end of 更新商家信息 -->
......
// pages/member/activity-post/activity-submit/activity-submit.js // pages/member/activity-post/activity-submit/activity-submit.js
...@@ -12,7 +12,6 @@ Page({ ...@@ -12,7 +12,6 @@ Page({
nyxCode : "", nyxCode : "",
authStatus : "", authStatus : "",
userInfo : {}, userInfo : {},
logoArray: [], // logo 临时temp上传
members : [], // 一个商家所有管理的商户, global members : [], // 一个商家所有管理的商户, global
member: {}, //该商家默认的商户, global member: {}, //该商家默认的商户, global
memberInfos: [], // 某一个商户member_name对应的address 可能是1:n, local memberInfos: [], // 某一个商户member_name对应的address 可能是1:n, local
...@@ -98,11 +97,26 @@ Page({ ...@@ -98,11 +97,26 @@ Page({
} }
_this.setData({ mode, title }) _this.setData({ mode, title })
var defaultCity = app.globalData.defaultCity
_this.setData({ defaultCity })
//step3: 设置当前memberInfo的信息 //step3: 设置当前memberInfo的信息
var memberInfo = app.assignDict(app.globalData.memberInfo) var memberInfo = app.assignDict(app.globalData.memberInfo)
//如果是新增商家, 则重置memberInfo数据
if(mode == "03")
{
//重置memberInfo数据
memberInfo.member_id = ""
memberInfo.address_id = ""
memberInfo.address_status = "00"
memberInfo.member_name = ""
memberInfo.member_address = ""
memberInfo.member_slogan = "标语待完善中"
memberInfo.member_logo = ""
memberInfo.member_city = defaultCity
}
_this.setData({ memberInfo }) _this.setData({ memberInfo })
let logoArray = [ memberInfo.member_logo ]
_this.setData({ logoArray })
//step4: 设置窗口标题 //step4: 设置窗口标题
wx.setNavigationBarTitle({ wx.setNavigationBarTitle({
...@@ -138,7 +152,7 @@ Page({ ...@@ -138,7 +152,7 @@ Page({
_this.setData({ memberInfo }) _this.setData({ memberInfo })
}, },
//添加地址到local page的memberInfo //添加地址到local page的memberInfo
bindAddressEdit(e) { bindAddress(e) {
var _this = this; var _this = this;
var memberInfo = _this.data.memberInfo || {} var memberInfo = _this.data.memberInfo || {}
memberInfo.member_address = e.detail.value memberInfo.member_address = e.detail.value
...@@ -149,11 +163,31 @@ Page({ ...@@ -149,11 +163,31 @@ Page({
/* /*
logo处理功能 logo处理功能
*/ */
/*
logo处理功能
*/
addLogo: function (res) {
var _this = this;
console.log("===this is addLogo");
wx.chooseImage({
sizeType: ['original, compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
console.log("===addLogo_上传图片参数", res)
var memberInfo = _this.data.memberInfo
memberInfo['member_logo'] = res.tempFilePaths[0]
_this.setData({
memberInfo
})
}
})
},
previewImage(e) { previewImage(e) {
var _this = this;
const current = e.target.dataset.src const current = e.target.dataset.src
wx.previewImage({ wx.previewImage({
current, current,
urls: this.data.logoArray urls: [ _this.data.memberInfo.member_logo ]
}) })
}, },
...@@ -172,7 +206,51 @@ Page({ ...@@ -172,7 +206,51 @@ Page({
var _this = this; var _this = this;
var info = "" var info = ""
if(_this.data.memberInfo.member_address == undefined || _this.data.memberInfo.member_address.length == 0) if(_this.data.memberInfo.member_slogan == "")
{
info = "请输入店铺标语"
wx.showModal({
content: info,
showCancel: false,
confirmText: '确认'
})
return false;
}
else if(_this.data.memberInfo.member_logo == "")
{
info = "请上传店铺logo"
wx.showModal({
content: info,
showCancel: false,
confirmText: '确认'
})
return false;
}
else if(_this.data.memberInfo.member_name == "")
{
info = "请输入店铺名称"
wx.showModal({
content: info,
showCancel: false,
confirmText: '确认'
})
return false;
}
else if(_this.data.memberInfo.member_city == "")
{
info = "请输入店铺城市"
wx.showModal({
content: info,
showCancel: false,
confirmText: '确认'
})
return false;
}
else if(_this.data.memberInfo.member_address == "")
{ {
info = "请输入店铺地址" info = "请输入店铺地址"
wx.showModal({ wx.showModal({
...@@ -183,7 +261,7 @@ Page({ ...@@ -183,7 +261,7 @@ Page({
return false; return false;
} }
console.log("字段校验成功") console.log("字段校验成功")
return true; return true;
}, },
...@@ -220,7 +298,16 @@ Page({ ...@@ -220,7 +298,16 @@ Page({
//写入数据库,如果成功,则更新数据; 触发父页面的方法 //写入数据库,如果成功,则更新数据; 触发父页面的方法
_this.onAddAddress() _this.onAddAddress()
} }
else if (mode == "03") //新增商家信息 addMember
{
//写入数据库,如果成功,则更新数据; 触发父页面的方法
//检查字段
if(_this.checkField())
{
_this.onAddMember()
}
}
}, },
// 取消 // 取消
...@@ -354,7 +441,59 @@ Page({ ...@@ -354,7 +441,59 @@ Page({
} }
}) })
}, },
// 新增商家信息
onAddMember(e) {
var _this = this;
var memberInfo = _this.data.memberInfo
_this.addMember(memberInfo);
},
addMember: function(memberInfo) {
var _this = this;
var default_member = "01"
var address_status = "01"
let promise_regMember = new Promise(function (resolve, reject) {
app.onRegMemberOss(memberInfo, default_member, address_status, resolve, reject)
})
promise_regMember.then(
function (value) {
console.log("===enter promise_regMember then_pass_" + value)
// 提交活动
// 存入数据库
// 成功之后返回activity页面
var memberInfo = app.globalData.memberInfo
//step1: 设置memberInfo
_this.setData({memberInfo})
//step2: 设置memberInfos
//表示新增了一个字符串
var options = {'mode': '03'}
var pages = getCurrentPages();//当前页面栈
if (pages.length > 1) {
var prevPage = pages[pages.length - 2];//获取上一个页面实例对象
prevPage.updateMemberData(options);//触发父页面中的方法
}
_this.showToast("商家信息新增成功")
},
function (value) {
console.log("===enter promise_regMember then_failed_" + value)
});
},
showToast(title){ showToast(title){
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论