card-mini/pages/mine/product/productmanage/productlist.js

322 lines
6.5 KiB
JavaScript
Raw Normal View History

2021-07-25 13:11:55 +08:00
// pages/mine/product/productmanage/productlist.js
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
CustomBar: app.globalData.CustomBar,
productList: [],
isRefreshing: false,
currentPage: 1,
totalSize: 0,
shopId: '',
isAddPage: false,
isCatalogPage: false,
activeNames: ['0'],
baseImageUrl: app.urls.baseImgUrl,
currentCatalogId: '',
curIndex: 0,
active: 1,
curGoodsList: [],
contentHeight: app.globalData.windowHeight - app.globalData.CustomBar,
isLoadMore: false,
hasMore: true
},
/**
* 切换类目
*/
switchRightTap(e) {
let curindex = parseInt(e.currentTarget.dataset.curindex);
this.data.productList[curindex].goodsList = []
this.setData({
currentPage: 1,
hasMore: true,
isLoadMore: false,
curIndex: curindex
})
let item = this.data.productList[curindex]
//根据类目的类型来判断添加商品还是优惠券 2是优惠券
if (item.coupon == '2') {
this.getCouponListByCid(item.categoryId)
} else {
this.getGoodsListByCId(item.categoryId)
}
},
//获取优惠券列表
getCouponListByCid(id) {
2021-07-25 13:11:55 +08:00
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.setData({
shopId: options.shopId
})
this.getShopCatalogList(this.data.shopId)
},
//获取店铺所有商品类目
getShopCatalogList(id) {
let _self = this
wx.showLoading({
title: '加载中...',
})
app.http.get(app.urls.getCatalogThirdList, {
header: {
2021-07-25 13:11:55 +08:00
token: app.globalData.token
}
})
.then(res => {
wx.hideLoading({})
_self.setData({
isRefreshing: false
})
_self.buildDatas(res.data)
})
.catch(err => {
wx.hideLoading({})
})
},
//添加类目
addCategory() {
wx.navigateTo({
url: '/pages/mine/product/catalogmanage/addcatalog',
})
},
//添加
2021-07-25 13:11:55 +08:00
doAdd(e) {
let key = e.currentTarget.dataset.key
if ('chooseCatalog' == key) {
wx.navigateTo({
url: './choosecatalog?shopId=' + this.data.shopId,
})
} else {
var item = e.currentTarget.dataset.item
if (item.coupon == '2') {
2021-07-25 13:11:55 +08:00
wx.navigateTo({
url: '/pages/mine/product/coupon/addcoupon?shopId=' + this.data.shopId + '&cataLogId=' + item.categoryId,
2021-07-25 13:11:55 +08:00
})
} else {
wx.navigateTo({
url: './addproduct?shopId=' + this.data.shopId + '&cataLogId=' + item.categoryId,
2021-07-25 13:11:55 +08:00
})
}
}
},
//管理商品
2021-07-25 13:11:55 +08:00
manageGoods(e) {
wx.navigateTo({
url: './productmanage?shopId=' + e.currentTarget.dataset.item.shopId + '&shopGoodsId=' + e.currentTarget.dataset.item.goodsId,
})
},
/**
* 获取商品列表
*/
getGoodsList(shopId) {
wx.showLoading({
title: '加载中...',
})
app.htt.get(app.urls.getShopGoodsList.format({
shopId: shopId
}), {
header: {
token: app.globalData.token
}
})
.then(res => {
wx.hideLoading({})
this.setData({
isRefreshing: false
})
this.buildDatas(res.data)
})
.catch(err => {
wx.hideLoading({})
})
},
//构建数据
buildDatas(data) {
let _self = this
if (data.length > 0) {
data.forEach(el => {
el.goodsList = []
_self.data.productList.push(el)
})
_self.setData({
curIndex: 0,
productList: _self.data.productList
})
_self.getGoodsListByCId(_self.data.productList[0].categoryId)
}
},
//去除重复的
unique(rows) {
let temp = rows.concat()
let tempList = []
for (var i = 0; i < temp.length; i++) {
for (var j = i + 1; j < temp.length; j++) {
if (temp[i].categoryId == temp[j].categoryId) {
temp.splice(j, 1);
j--
}
}
}
temp.forEach(el => {
tempList.push({
name: el.categoryName,
id: el.categoryId,
goods: []
})
})
return tempList
},
//刷新页面
dorefreshList() {
this.setData({
currentPage: 1,
isLoadMore: false,
hasMore: true,
productList: []
})
this.getShopCatalogList(this.data.shopId)
},
doRecover() {
wx.navigateTo({
url: '/pages/mine/product/recycle/productrecycle',
})
},
2021-07-25 13:11:55 +08:00
onShow() {
if (this.data.isAddPage) {
this.setData({
isAddPage: false
})
this.dorefreshList()
}
},
//根据类目ID获取商品
getGoodsListByCId(id) {
let _self = this
wx.showLoading({
title: '加载中...',
})
app.http.get(app.urls.getGoodsByCatalogAndShop.format({
categoryId: id
}), {
header: {
token: app.globalData.token
},
data: {
page: _self.data.currentPage,
shopId: _self.data.shopId
}
})
.then(res => {
wx.hideLoading({})
_self.setData({
isLoadMore: false
})
if (res.data.rows.length > 0) {
_self.data.productList.forEach(el => {
if (el.categoryId == id) {
el.goodsList = el.goodsList.concat(res.data.rows)
}
})
_self.setData({
productList: _self.data.productList
})
} else {
_self.setData({
hasMore: false
})
}
})
.catch(err => {
wx.hideLoading({})
_self.setData({
isLoadMore: false
})
})
},
onChange(e) {
let _self = this
let item = e.currentTarget.dataset.item
console.log(item)
this.setData({
activeNames: e.detail,
currentCatalogId: item.categoryId
})
console.log(e)
if (e.detail.length > 1) {
//展开
if (item.goodsList || item.goodsList.length <= 0) {
_self.getGoodsListByCId(item.categoryId)
}
}
},
doSearchGoods() {
wx.navigateTo({
url: './searchproduct?shopId=' + this.data.shopId,
})
},
//加载更多
doLoadMore(e) {
let _self = this
if (_self.data.hasMore) {
if (_self.data.isLoadMore) {
return
}
let item = _self.data.productList[_self.data.curIndex]
_self.setData({
isLoadMore: true,
currentPage: ++_self.data.currentPage
})
_self.getGoodsListByCId(item.categoryId)
} else {
wx.showToast({
title: '暂无更多数据',
icon: 'none',
duration: 500
})
}
},
doDelCategory(e) {
let _self = this
wx.showLoading({
title: '删除中...',
})
app.http.delete(app.urls.doDelShopCategoryById.format({
ids: e.currentTarget.dataset.item.categoryId
}), {
header: {
token: app.globalData.token
}
})
.then(res => {
wx.hideLoading({})
_self.setData({
productList: []
})
wx.showToast({
title: '删除成功',
icon: 'success'
})
_self.getShopCatalogList(_self.data.shopId)
})
.catch(err => {
wx.hideLoading({})
})
},
showConfirmDialog(e) {
let _self = this
wx.showModal({
title: '提示',
content: '确定要删除该类目吗?(删除后该类目下所有商品将删除!)',
success(res) {
if (res.confirm) {
_self.doDelCategory(e)
}
}
})
}
})