307 lines
7.3 KiB
JavaScript
307 lines
7.3 KiB
JavaScript
// packageF/storeManagement/storeGoodsManagement/storeGoodsManagement.js
|
||
var behavior = require('../common.js');
|
||
var app = getApp();
|
||
Page({
|
||
behaviors: [behavior],
|
||
/**
|
||
* 页面的初始数据
|
||
*/
|
||
data: {
|
||
active: '-1',
|
||
keyWord: '',
|
||
isBatchOperation: false,
|
||
allCheck: false,
|
||
goodsList: [],
|
||
goodsCount:0,
|
||
batchGoods: [], // 批量操作的商品id
|
||
batchGoodsAll:[],// 全部商品ID,用于操作全选
|
||
optionBtns: [
|
||
{text: "批量上架", type: "up"},
|
||
{text: "批量下架", type: "down"},
|
||
{text: "批量删除", type: "delete"},],
|
||
|
||
page: 1, //分页数,当前页数
|
||
isLoadMore: true, //判断是否要加载更多的标志
|
||
total_page: 0, //总页数
|
||
networkLoading:false,
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面加载
|
||
*/
|
||
onLoad: function (options) {
|
||
this.getGoodsList();
|
||
},
|
||
initData() {
|
||
this.setData({
|
||
page: 1,
|
||
total_page: 0,
|
||
isLoadMore: true,
|
||
networkLoading: false,
|
||
});
|
||
},
|
||
handSearch(evt){
|
||
this.data.keyWord = evt.detail;
|
||
this.getGoodsList();
|
||
},
|
||
getGoodsList(){
|
||
this.initData();
|
||
let requestParams = {
|
||
page: this.data.page,
|
||
search: {
|
||
title: this.data.keyWord
|
||
}
|
||
};
|
||
if (this.data.active !== '-1') {
|
||
requestParams.search.status = this.data.active;
|
||
}
|
||
let urlStr = app.getNetAddresss("plugin.shop-assistant.frontend.goods.get-list");
|
||
app._postNetWork({
|
||
url: urlStr,
|
||
data: requestParams,
|
||
success: (resdata) => {
|
||
var res = resdata.data;
|
||
if (res.result != 1) return app.tips(res.msg);
|
||
this.data.total_page = res.data.last_page;
|
||
if (!this.data.total_page) {
|
||
this.data.total_page = 0;
|
||
}
|
||
|
||
if(res.data.data){
|
||
|
||
let batchGoodsAll= res.data.data.map((item)=>{
|
||
return item.id+"";
|
||
});
|
||
this.data.batchGoodsAll = batchGoodsAll;
|
||
}
|
||
this.setData({
|
||
goodsList:res.data.data,
|
||
goodsCount:res.data.total,
|
||
networkLoading:true
|
||
});
|
||
}
|
||
});
|
||
},
|
||
|
||
selectBolfun () {
|
||
this.setData({
|
||
isBatchOperation:true
|
||
});
|
||
},
|
||
cancelBatchOperation(){
|
||
this.setData({
|
||
isBatchOperation:false
|
||
});
|
||
},
|
||
checkboxGroupChange(evt){
|
||
this.setData({
|
||
batchGoods:evt.detail
|
||
});
|
||
},
|
||
toggleAll (evt) {
|
||
let allCheck = evt.detail;
|
||
let batchGoods=[];
|
||
if(allCheck){
|
||
batchGoods = JSON.parse(JSON.stringify(this.data.batchGoodsAll));
|
||
}
|
||
this.setData({
|
||
allCheck,batchGoods
|
||
});
|
||
},
|
||
changeTabs(evt){
|
||
|
||
this.data.active = evt.detail.name;
|
||
this.getGoodsList();
|
||
},
|
||
|
||
async onShelf(evt){
|
||
|
||
let goodsId = evt.currentTarget.dataset.goodsid;
|
||
let option = evt.currentTarget.dataset.option;
|
||
|
||
let tipText = option?'上架':'下架';
|
||
let confirmFlag = await app.confirm(`是否${tipText}该商品`);
|
||
if(!confirmFlag) return;
|
||
let urlStr = app.getNetAddresss("plugin.shop-assistant.frontend.goods.update-on-shelf");
|
||
app._postNetWork({
|
||
url: urlStr,
|
||
data: {id: goodsId, status: option},
|
||
success: (resdata) => {
|
||
var res = resdata.data;
|
||
app.tips(res.msg);
|
||
if (res.result != 1) return ;
|
||
this.getGoodsList();
|
||
}
|
||
});
|
||
},
|
||
|
||
async deleteGoods(evt){
|
||
let goodsId = evt.currentTarget.dataset.goodsid;
|
||
let confirmFlag = await app.confirm('是否删除该商品');
|
||
if(!confirmFlag) return;
|
||
let urlStr = app.getNetAddresss("plugin.shop-assistant.frontend.goods.delete");
|
||
app._postNetWork({
|
||
url: urlStr,
|
||
data: {id: goodsId},
|
||
success: (resdata) => {
|
||
var res = resdata.data;
|
||
app.tips(res.msg);
|
||
if (res.result != 1) return ;
|
||
this.getGoodsList();
|
||
}
|
||
});
|
||
},
|
||
|
||
handlerBatchOpt(evt){
|
||
let opt = evt.currentTarget.dataset.item;
|
||
if (this.data.batchGoods.length === 0) {
|
||
return app.tips("请先选择需要批量操作的商品");
|
||
}
|
||
if (opt.type === "up"){
|
||
this.batchOnShelf(1);
|
||
} else if (opt.type === "down"){
|
||
this.batchOnShelf(0);
|
||
} else {
|
||
this.batchDelte();
|
||
}
|
||
},
|
||
|
||
//批量上下架
|
||
async batchOnShelf(option){
|
||
let tipText = option?'上架':'下架';
|
||
let confirmFlag = await app.confirm(`正在进行批量${tipText}操作,是否继续?`);
|
||
if(!confirmFlag) return;
|
||
|
||
let urlStr = app.getNetAddresss("plugin.shop-assistant.frontend.goods.batch-update-shelf");
|
||
app._postNetWork({
|
||
url: urlStr,
|
||
data: {ids: this.data.batchGoods, status: option},
|
||
success: (resdata) => {
|
||
var res = resdata.data;
|
||
app.tips(res.msg);
|
||
if (res.result != 1) return ;
|
||
this.getGoodsList();
|
||
this.setData({
|
||
batchGoods:[]
|
||
});
|
||
}
|
||
});
|
||
|
||
|
||
},
|
||
|
||
async batchDelte(){
|
||
let confirmFlag = await app.confirm('正在进行批量删除操作,是否继续?');
|
||
if(!confirmFlag) return;
|
||
let urlStr = app.getNetAddresss("plugin.shop-assistant.frontend.goods.batch-delete");
|
||
app._postNetWork({
|
||
url: urlStr,
|
||
data: {ids: this.data.batchGoods},
|
||
success: (resdata) => {
|
||
var res = resdata.data;
|
||
app.tips(res.msg);
|
||
if (res.result != 1) return ;
|
||
this.getGoodsList();
|
||
this.setData({
|
||
batchGoods:[]
|
||
});
|
||
}
|
||
});
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面初次渲染完成
|
||
*/
|
||
onReady: function () {
|
||
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面显示
|
||
*/
|
||
onShow: function () {
|
||
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面隐藏
|
||
*/
|
||
onHide: function () {
|
||
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面卸载
|
||
*/
|
||
onUnload: function () {
|
||
|
||
},
|
||
|
||
/**
|
||
* 页面相关事件处理函数--监听用户下拉动作
|
||
*/
|
||
onPullDownRefresh: function () {
|
||
|
||
},
|
||
|
||
/**
|
||
* 页面上拉触底事件的处理函数
|
||
*/
|
||
onReachBottom: function () {
|
||
if (this.data.isLoadMore) {
|
||
this._getMoreData();
|
||
} else {
|
||
// console.log('没有更多数据');
|
||
}
|
||
},
|
||
|
||
_getMoreData(){
|
||
this.data.isLoadMore = false; // 防止多次请求分页数据
|
||
if (this.data.page >= this.data.total_page) {
|
||
// that.loading = true;
|
||
return;
|
||
} else {
|
||
this.data.page += 1;
|
||
let requestParams = {
|
||
page: this.data.page,
|
||
search: {
|
||
title: this.data.keyWord
|
||
}
|
||
};
|
||
if (this.data.active !== '-1') {
|
||
requestParams.search.status = this.data.active;
|
||
}
|
||
let urlStr = app.getNetAddresss('plugin.shop-assistant.frontend.goods.get-list');
|
||
|
||
app._postNetWork({
|
||
url: urlStr,
|
||
data:requestParams,
|
||
success: (resdata) => {
|
||
let res = resdata.data;
|
||
this.data.isLoadMore = true;
|
||
if (res.result === 1) {
|
||
if(res.data.data){
|
||
let batchGoodsAll= res.data.data.map((item)=>{
|
||
return item.id+"";
|
||
});
|
||
this.data.batchGoodsAll.push(...batchGoodsAll);
|
||
}
|
||
|
||
let goodsList = this.data.goodsList.concat(res.data.data);
|
||
this.setData({goodsList});
|
||
} else {
|
||
this.data.page = this.data.page - 1;
|
||
this.data.isLoadMore = false;
|
||
}
|
||
}
|
||
});
|
||
}
|
||
},
|
||
|
||
/**
|
||
* 用户点击右上角分享
|
||
*/
|
||
onShareAppMessage: function () {
|
||
|
||
}
|
||
}); |