2021-07-25 13:11:55 +08:00
|
|
|
// pages/mine/product/productmanage/productmanage.js
|
|
|
|
const app = getApp()
|
|
|
|
Page({
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 页面的初始数据
|
|
|
|
*/
|
|
|
|
data: {
|
|
|
|
goodsId: '',
|
|
|
|
goodsBean: null,
|
|
|
|
shopId: '',
|
|
|
|
cataLogId: '', //上级页面传递
|
|
|
|
goodsName: '', //商品名称
|
|
|
|
goodsCount: 0, //商品数量
|
|
|
|
goodsPrice: 0.00, //商品单价
|
|
|
|
goodsUnit: '', //商品单位
|
|
|
|
goodsStatus: 1, //商品状态 1 上架 2 下架
|
|
|
|
goodsPay: 1, //支付方式 1 线上 2 线下
|
|
|
|
goodsLogoPhotos: [], //商品Logo
|
|
|
|
goodsPhotos: [], //商品图片
|
|
|
|
goodsVideos: [], //商品视频
|
|
|
|
goodsSummary: '', //商品说明
|
|
|
|
goodsOrder: 0, //商品排序
|
2021-08-05 10:18:32 +08:00
|
|
|
categoryName: '请选择类目',
|
|
|
|
isPopular: false,
|
|
|
|
categoryList: [], //商品类目
|
2021-07-25 13:11:55 +08:00
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 生命周期函数--监听页面加载
|
|
|
|
*/
|
|
|
|
onLoad: function (options) {
|
|
|
|
this.setData({
|
|
|
|
goodsId: options.shopGoodsId
|
|
|
|
})
|
|
|
|
this.getGoodsDetail(this.data.goodsId)
|
2021-08-05 10:18:32 +08:00
|
|
|
this.getCategoryList()
|
2021-07-25 13:11:55 +08:00
|
|
|
},
|
2021-08-05 10:18:32 +08:00
|
|
|
//获取商品类目
|
|
|
|
getCategoryList() {
|
|
|
|
wx.showLoading({
|
|
|
|
title: '加载中...',
|
|
|
|
})
|
|
|
|
var _self = this
|
|
|
|
app.http.get(app.urls.getCatalogThirdList, {
|
|
|
|
header: {
|
|
|
|
token: app.globalData.token
|
|
|
|
},
|
|
|
|
})
|
|
|
|
.then(res => {
|
|
|
|
wx.hideLoading({})
|
|
|
|
res.data.forEach(el => {
|
|
|
|
el.isSel = false
|
|
|
|
})
|
|
|
|
_self.setData({
|
|
|
|
categoryList: res.data
|
|
|
|
})
|
|
|
|
})
|
|
|
|
.catch(err => {
|
|
|
|
wx.hideLoading({})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
//类目切换
|
|
|
|
selCategory(e) {
|
|
|
|
var _self = this
|
|
|
|
var index = e.detail.value
|
|
|
|
_self.setData({
|
|
|
|
cataLogId: _self.data.categoryList[index].categoryId,
|
|
|
|
categoryName: _self.data.categoryList[index].categoryName
|
|
|
|
})
|
|
|
|
},
|
|
|
|
//获取商品详情
|
2021-07-25 13:11:55 +08:00
|
|
|
getGoodsDetail(id) {
|
|
|
|
wx.showLoading({
|
|
|
|
title: '加载中...',
|
|
|
|
})
|
|
|
|
app.http.get(app.urls.getGoodsDetail.format({
|
|
|
|
goodsId: id
|
|
|
|
}), {
|
|
|
|
header: {
|
|
|
|
token: app.globalData.token
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.then(res => {
|
|
|
|
wx.hideLoading({})
|
2021-08-05 10:18:32 +08:00
|
|
|
this.setDataToView(res.data)
|
2021-07-25 13:11:55 +08:00
|
|
|
})
|
|
|
|
.catch(err => {
|
|
|
|
wx.hideLoading({})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
selGoodsPopular(e) {
|
|
|
|
console.log(e)
|
|
|
|
this.setData({
|
|
|
|
isPopular: e.detail.value
|
|
|
|
})
|
|
|
|
},
|
|
|
|
setDataToView(data) {
|
2021-08-05 10:18:32 +08:00
|
|
|
console.log(data)
|
2021-07-25 13:11:55 +08:00
|
|
|
let _self = this
|
|
|
|
if (data.goodsPhotos != '') {
|
|
|
|
let ids = data.goodsPhotos
|
|
|
|
let idsList = ids.split(',')
|
|
|
|
idsList.forEach(el => {
|
|
|
|
if (el != '') {
|
|
|
|
_self.data.goodsPhotos.push({
|
|
|
|
id: el,
|
2021-08-05 10:18:32 +08:00
|
|
|
path: app.urls.baseImgUrl + el
|
2021-07-25 13:11:55 +08:00
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
_self.setData({
|
|
|
|
goodsPhotos: _self.data.goodsPhotos
|
|
|
|
})
|
|
|
|
}
|
|
|
|
if (data.goodsIcon != '') {
|
|
|
|
let ids = data.goodsIcon
|
|
|
|
_self.data.goodsLogoPhotos.push({
|
|
|
|
id: ids,
|
2021-08-05 10:18:32 +08:00
|
|
|
path: app.urls.baseImgUrl + ids
|
2021-07-25 13:11:55 +08:00
|
|
|
})
|
|
|
|
_self.setData({
|
|
|
|
goodsLogoPhotos: _self.data.goodsLogoPhotos
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
if (data.goodsVideo != '') {
|
|
|
|
let ids = data.goodsVideo
|
|
|
|
let idsList = ids.split(',')
|
|
|
|
idsList.forEach(el => {
|
|
|
|
if (el != '') {
|
|
|
|
_self.data.goodsVideos.push({
|
|
|
|
id: el,
|
2021-08-05 10:18:32 +08:00
|
|
|
videoUrl: app.urls.baseImgUrl + el,
|
|
|
|
path: '/images/ic_video_default.png',
|
2021-07-25 13:11:55 +08:00
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
_self.setData({
|
|
|
|
goodsVideos: _self.data.goodsVideos
|
|
|
|
})
|
|
|
|
}
|
|
|
|
this.setData({
|
|
|
|
goodsBean: data,
|
|
|
|
shopId: data.shopId,
|
|
|
|
cataLogId: data.cataLogId, //上级页面传递
|
|
|
|
goodsName: data.goodsName, //商品名称
|
|
|
|
goodsCount: data.goodsTotal, //商品数量
|
|
|
|
goodsPrice: data.goodsUnitPrice, //商品单价
|
|
|
|
goodsUnit: data.goodsUnit, //商品单位
|
|
|
|
goodsStatus: data.goodsStatus, //商品状态 1 上架 2 下架
|
|
|
|
goodsPay: data.paymentType, //支付方式 1 线上 2 线下
|
|
|
|
goodsSummary: data.goodsSummary, //商品说明
|
|
|
|
goodsOrder: data.goodsSort, //商品排序
|
2021-08-05 10:18:32 +08:00
|
|
|
isPopular: data.isPopular == '0' ? false : true,
|
|
|
|
categoryName: data.categoryName, //商品类目
|
2021-07-25 13:11:55 +08:00
|
|
|
})
|
|
|
|
},
|
|
|
|
//商品状态切换
|
|
|
|
selGoodsStatus(e) {
|
|
|
|
this.setData({
|
|
|
|
goodsStatus: e.detail.value
|
|
|
|
})
|
|
|
|
},
|
|
|
|
//支付方式切换
|
|
|
|
selGoodsPay(e) {
|
|
|
|
this.setData({
|
|
|
|
goodsPay: e.detail.value
|
|
|
|
})
|
|
|
|
},
|
|
|
|
//输入框监听
|
|
|
|
inputWatch(e) {
|
|
|
|
let key = e.currentTarget.dataset.model
|
|
|
|
this.setData({
|
|
|
|
[key]: e.detail.value
|
|
|
|
})
|
|
|
|
},
|
|
|
|
//商品说明
|
|
|
|
goodsSummaryInput(e) {
|
|
|
|
this.setData({
|
|
|
|
goodsSummary: e.detail.value
|
|
|
|
})
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 添加图片、视频 1 logo 2 图片
|
|
|
|
*/
|
|
|
|
chooseLogo() {
|
|
|
|
let _self = this
|
|
|
|
wx.chooseImage({
|
|
|
|
count: 1, //默认9
|
|
|
|
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
|
|
|
|
sourceType: ['album', 'camera'], //从相册选择
|
|
|
|
success: (res) => {
|
|
|
|
res.tempFilePaths.forEach(element => {
|
|
|
|
_self.doUploadImg(1, element)
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
|
|
choosePhoto() {
|
|
|
|
let _self = this
|
|
|
|
wx.chooseImage({
|
|
|
|
count: 1, //默认9
|
|
|
|
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
|
|
|
|
sourceType: ['album', 'camera'], //从相册选择
|
|
|
|
success: (res) => {
|
|
|
|
res.tempFilePaths.forEach(element => {
|
|
|
|
_self.doUploadImg(2, element)
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
|
|
chooseVideo() {
|
|
|
|
let _self = this
|
|
|
|
wx.chooseMedia({
|
|
|
|
count: 1,
|
|
|
|
mediaType: ['video'],
|
|
|
|
sourceType: ['album', 'camera'], //从相册选择
|
|
|
|
maxDuration: 30,
|
|
|
|
success: (res) => {
|
|
|
|
_self.doUploadVideo(res)
|
|
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 删除图片、视频
|
|
|
|
*/
|
|
|
|
delLogo(e) {
|
|
|
|
let _self = this
|
|
|
|
wx.showModal({
|
|
|
|
title: '提示',
|
|
|
|
content: '确定要删除该图片吗?',
|
|
|
|
cancelText: '取消',
|
|
|
|
confirmText: '确定',
|
|
|
|
success: res => {
|
|
|
|
if (res.confirm) {
|
|
|
|
_self.data.goodsLogoPhotos.splice(e.currentTarget.dataset.index, 1)
|
|
|
|
_self.setData({
|
|
|
|
goodsLogoPhotos: _self.data.goodsLogoPhotos
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
delPhoto(e) {
|
|
|
|
let _self = this
|
|
|
|
wx.showModal({
|
|
|
|
title: '提示',
|
|
|
|
content: '确定要删除该图片吗?',
|
|
|
|
cancelText: '取消',
|
|
|
|
confirmText: '确定',
|
|
|
|
success: res => {
|
|
|
|
if (res.confirm) {
|
|
|
|
_self.data.goodsPhotos.splice(e.currentTarget.dataset.index, 1)
|
|
|
|
_self.setData({
|
|
|
|
goodsPhotos: _self.data.goodsPhotos
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
delVideo(e) {
|
|
|
|
let _self = this
|
|
|
|
wx.showModal({
|
|
|
|
title: '提示',
|
|
|
|
content: '确定要删除该视频吗?',
|
|
|
|
cancelText: '取消',
|
|
|
|
confirmText: '确定',
|
|
|
|
success: res => {
|
|
|
|
if (res.confirm) {
|
|
|
|
_self.data.goodsVideos.splice(e.currentTarget.dataset.index, 1)
|
|
|
|
_self.setData({
|
|
|
|
goodsVideos: _self.data.goodsVideos
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 预览图片、视频
|
|
|
|
*/
|
|
|
|
viewLogo(e) {
|
|
|
|
var tempList = [e.currentTarget.dataset.url]
|
|
|
|
wx.previewImage({
|
|
|
|
urls: tempList,
|
|
|
|
current: e.currentTarget.dataset.url
|
|
|
|
});
|
|
|
|
},
|
|
|
|
viewPhoto(e) {
|
|
|
|
var tempList = [e.currentTarget.dataset.url]
|
|
|
|
wx.previewImage({
|
|
|
|
urls: tempList,
|
|
|
|
current: e.currentTarget.dataset.url
|
|
|
|
});
|
|
|
|
},
|
|
|
|
viewVideo(e) {
|
|
|
|
var tempList = [{
|
|
|
|
url: e.currentTarget.dataset.url,
|
|
|
|
type: 'video'
|
|
|
|
}]
|
|
|
|
wx.previewMedia({
|
|
|
|
sources: tempList,
|
|
|
|
current: 0,
|
|
|
|
showmenu: false
|
|
|
|
})
|
|
|
|
},
|
|
|
|
//上传图片
|
|
|
|
//进行图片上传 type 1 营业执照 2 logo
|
|
|
|
doUploadImg(type, path) {
|
|
|
|
wx.showLoading({
|
|
|
|
title: '上传中...',
|
|
|
|
})
|
|
|
|
let _self = this
|
|
|
|
app.http.upload(app.urls.doUploadImg, {
|
|
|
|
name: 'image',
|
|
|
|
path: path,
|
|
|
|
header: {
|
|
|
|
token: app.globalData.token
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.then(res => {
|
|
|
|
wx.hideLoading({})
|
|
|
|
var id = JSON.parse(res).data
|
|
|
|
let pathStr = app.urls.baseImgUrl + id
|
|
|
|
let item = {
|
|
|
|
id: id,
|
|
|
|
path: pathStr
|
|
|
|
}
|
|
|
|
if (type == 1) {
|
|
|
|
let tempList = _self.data.goodsLogoPhotos.concat(item)
|
|
|
|
_self.setData({
|
|
|
|
goodsLogoPhotos: tempList
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
//图片
|
|
|
|
let tempList = _self.data.goodsPhotos.concat(item)
|
|
|
|
_self.setData({
|
|
|
|
goodsPhotos: tempList
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.catch(err => {
|
|
|
|
wx.hideLoading({})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
doUploadVideo(e) {
|
|
|
|
wx.showLoading({
|
|
|
|
title: '上传中...',
|
|
|
|
})
|
|
|
|
let _self = this
|
|
|
|
app.http.upload(app.urls.doUploadVideo, {
|
|
|
|
name: 'video',
|
|
|
|
path: e.tempFiles[0].tempFilePath,
|
|
|
|
header: {
|
|
|
|
token: app.globalData.token
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.then(res => {
|
|
|
|
wx.hideLoading({})
|
|
|
|
var id = JSON.parse(res).data
|
|
|
|
let pathStr = e.tempFiles[0].thumbTempFilePath
|
|
|
|
let videoU = app.urls.baseImgUrl + id
|
|
|
|
let item = {
|
|
|
|
id: id,
|
|
|
|
path: pathStr,
|
|
|
|
videoUrl: videoU
|
|
|
|
}
|
|
|
|
let tempList = _self.data.goodsVideos.concat(item)
|
|
|
|
_self.setData({
|
|
|
|
goodsVideos: tempList
|
|
|
|
})
|
|
|
|
})
|
|
|
|
.catch(err => {
|
|
|
|
wx.hideLoading({})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
//修改
|
|
|
|
doUpdate() {
|
|
|
|
if (this.checkParams()) {
|
|
|
|
let _self = this
|
|
|
|
wx.showLoading({
|
|
|
|
title: '更新中...',
|
|
|
|
})
|
|
|
|
let p = ''
|
|
|
|
_self.data.goodsPhotos.forEach(el => {
|
|
|
|
p += el.id + ','
|
|
|
|
})
|
|
|
|
if (p.length != '') {
|
|
|
|
p = p.substr(0, p.length - 1)
|
|
|
|
}
|
|
|
|
let videoId = ''
|
|
|
|
if (_self.data.goodsVideos.length > 0) {
|
|
|
|
videoId = _self.data.goodsVideos[0].id
|
|
|
|
}
|
|
|
|
app.http.put(app.urls.doUpdateGoods.format({
|
|
|
|
shopGoodsId: _self.data.goodsId
|
|
|
|
}), {
|
|
|
|
header: {
|
|
|
|
token: app.globalData.token
|
|
|
|
},
|
|
|
|
data: {
|
|
|
|
categoryId: _self.data.cataLogId,
|
|
|
|
goodsIcon: _self.data.goodsLogoPhotos[0].id,
|
|
|
|
goodsName: _self.data.goodsName,
|
|
|
|
goodsPhotos: p,
|
|
|
|
goodsSort: _self.data.goodsOrder,
|
|
|
|
goodsStatus: _self.data.goodsStatus,
|
|
|
|
goodsSummary: _self.data.goodsSummary,
|
|
|
|
goodsTotal: _self.data.goodsCount,
|
|
|
|
goodsUnit: _self.data.goodsUnit,
|
|
|
|
goodsUnitPrice: _self.data.goodsPrice,
|
|
|
|
goodsVideo: videoId,
|
|
|
|
paymentType: _self.data.goodsPay,
|
|
|
|
shopId: _self.data.shopId,
|
|
|
|
isPopular: _self.data.isPopular ? 1 : 0
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.then(res => {
|
|
|
|
wx.hideLoading({})
|
2021-08-05 10:18:32 +08:00
|
|
|
wx.showToast({
|
|
|
|
title: '更新成功',
|
|
|
|
icon: 'success'
|
|
|
|
})
|
|
|
|
var pages = getCurrentPages(); //当前页面
|
|
|
|
var beforePage = pages[pages.length - 2]; //前一页
|
|
|
|
beforePage.setData({
|
|
|
|
isAddPage: true
|
|
|
|
})
|
|
|
|
wx.navigateBack({})
|
2021-07-25 13:11:55 +08:00
|
|
|
})
|
|
|
|
.catch(err => {
|
|
|
|
wx.hideLoading({})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
},
|
|
|
|
doDelGoods() {
|
|
|
|
let _self = this
|
|
|
|
wx.showModal({
|
|
|
|
title: '提示',
|
|
|
|
content: '确定要删除该商品吗?',
|
|
|
|
success(res) {
|
|
|
|
if (res.confirm) {
|
|
|
|
wx.showLoading({
|
|
|
|
title: '删除中...',
|
|
|
|
})
|
|
|
|
app.http.delete(app.urls.doDelGoods.format({
|
|
|
|
ids: _self.data.goodsId
|
|
|
|
}), {
|
|
|
|
header: {
|
|
|
|
token: app.globalData.token
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.then(res => {
|
|
|
|
wx.hideLoading({})
|
2021-08-05 10:18:32 +08:00
|
|
|
wx.showToast({
|
|
|
|
title: '删除成功',
|
|
|
|
icon: 'success'
|
|
|
|
})
|
|
|
|
var pages = getCurrentPages(); //当前页面
|
|
|
|
var beforePage = pages[pages.length - 2]; //前一页
|
|
|
|
beforePage.setData({
|
|
|
|
isAddPage: true
|
|
|
|
})
|
|
|
|
wx.navigateBack({})
|
2021-07-25 13:11:55 +08:00
|
|
|
})
|
|
|
|
.catch(err => {
|
|
|
|
wx.hideLoading({})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
//校验参数合法性
|
|
|
|
checkParams() {
|
|
|
|
if (this.data.goodsName == '') {
|
|
|
|
wx.showToast({
|
|
|
|
title: '请输入商品名称',
|
|
|
|
icon: 'error'
|
|
|
|
})
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
if (this.data.goodsCount == 0) {
|
|
|
|
wx.showToast({
|
|
|
|
title: '请输入商品数量',
|
|
|
|
icon: 'error'
|
|
|
|
})
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
|
|
|
if (this.data.goodsCount == 0) {
|
|
|
|
wx.showToast({
|
|
|
|
title: '请输入商品数量',
|
|
|
|
icon: 'error'
|
|
|
|
})
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
if (this.data.goodsUnit == '') {
|
|
|
|
wx.showToast({
|
|
|
|
title: '请输入商品单位',
|
|
|
|
icon: 'error'
|
|
|
|
})
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
if (this.data.goodsLogoPhotos.length <= 0) {
|
|
|
|
wx.showToast({
|
|
|
|
title: '请上传商品Logo',
|
|
|
|
icon: 'error'
|
|
|
|
})
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
if (this.data.goodsPhotos.length <= 0) {
|
|
|
|
wx.showToast({
|
|
|
|
title: '请上传商品图片',
|
|
|
|
icon: 'error'
|
|
|
|
})
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
})
|