111 lines
2.9 KiB
Vue
111 lines
2.9 KiB
Vue
|
<template>
|
|||
|
<view class="container">
|
|||
|
<view class="search"><search></search></view>
|
|||
|
<shop-item v-for="(item, index) in shopList" :key="index" :itemObject="item" @handleMethod="handleMethod"></shop-item>
|
|||
|
</view>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
// | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
// | Author: CRMEB Team <admin@crmeb.com>
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
import shopItem from '../components/shopItem.vue';
|
|||
|
import search from '../components/search.vue';
|
|||
|
import { productLstApi, productDestory, productRestore } from 'api/product.js';
|
|||
|
import { Toast, Modal } from 'libs/uniApi.js';
|
|||
|
export default {
|
|||
|
components: {
|
|||
|
shopItem,
|
|||
|
search
|
|||
|
},
|
|||
|
data() {
|
|||
|
return {
|
|||
|
merId: '',
|
|||
|
where: {
|
|||
|
page: 1,
|
|||
|
limit: 15
|
|||
|
},
|
|||
|
shopList: [],
|
|||
|
selectMenuId: 5
|
|||
|
};
|
|||
|
},
|
|||
|
onLoad(opt) {
|
|||
|
this.merId = opt.mer_id;
|
|||
|
this.initData();
|
|||
|
},
|
|||
|
// 下拉到底部
|
|||
|
onReachBottom() {
|
|||
|
this.where.page++;
|
|||
|
this.initData('concat');
|
|||
|
},
|
|||
|
methods: {
|
|||
|
initData(type) {
|
|||
|
productLstApi(this.merId, { ...this.where, type: this.selectMenuId }).then(res => {
|
|||
|
if (type == 'concat') {
|
|||
|
this.shopList = this.shopList.concat(res.data.list);
|
|||
|
} else {
|
|||
|
this.shopList = res.data.list;
|
|||
|
}
|
|||
|
// 给每一个列表项,添加可用功能
|
|||
|
this.shopList.forEach(item => {
|
|||
|
this.$set(item, 'handleList', [
|
|||
|
{
|
|||
|
id: 1,
|
|||
|
label: '删除'
|
|||
|
},
|
|||
|
{
|
|||
|
id: 2,
|
|||
|
label: '还原'
|
|||
|
}
|
|||
|
]);
|
|||
|
});
|
|||
|
});
|
|||
|
},
|
|||
|
// 彻底删除
|
|||
|
handleProductDestory(obj, index) {
|
|||
|
Modal('温馨提示', `商品"${obj.store_name}", 将被彻底删除,请问是否继续`).then(() => {
|
|||
|
productDestory(this.merId, obj.product_id).then(res => {
|
|||
|
this.$util.Tips({ title: res.message, icon: 'success' });
|
|||
|
this.shopList.splice(index, 1);
|
|||
|
})
|
|||
|
})
|
|||
|
},
|
|||
|
// 还原
|
|||
|
handleProductRestore(obj, index) {
|
|||
|
Modal('温馨提示', `商品"${obj.store_name}",将被还原,请问是否继续`).then(() => {
|
|||
|
productRestore(this.merId, obj.product_id).then(res => {
|
|||
|
this.$util.Tips({ title: res.message, icon: 'success' });
|
|||
|
this.shopList.splice(index, 1);
|
|||
|
})
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
handleMethod(item, obj, index) {
|
|||
|
if(item.id == 1) {
|
|||
|
this.handleProductDestory(obj, index);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
if(item.id == 2) {
|
|||
|
this.handleProductRestore(obj, index);
|
|||
|
}
|
|||
|
|
|||
|
console.log(item, obj);
|
|||
|
}
|
|||
|
}
|
|||
|
};
|
|||
|
</script>
|
|||
|
|
|||
|
<style lang="scss" scoped>
|
|||
|
.search {
|
|||
|
padding: 30rpx 25rpx;
|
|||
|
background: #fff;
|
|||
|
}
|
|||
|
</style>
|