nk-shop2.0/pages/nongKe/gather/select_warehouse.vue

283 lines
7.2 KiB
Vue
Raw Normal View History

2023-05-10 16:07:28 +08:00
<template>
<view class="select_warehouse">
<view class="wrapper flex_a_c_j_sb">
<block v-for="item in goodsData" :key="item.name">
<view class="select_item" @click="navigato(item.type)" :style="{'background-image': `url(${item.src})`}">
<view class="title">{{ item.name }}</view>
<view class="iconfont icon-jiantou"></view>
</view>
</block>
</view>
2023-05-19 15:07:35 +08:00
<view class="goods-wrapper wrapper">
<block v-for="(item,index) in goods" :key="index">
<view class="item">
<view class="l_cont">
<image :src="item.image" mode="aspectFill"></image>
</view>
<view class="r_cont">
<text>{{item.store_name}}</text>
</view>
</view>
</block>
</view>
2023-05-10 16:07:28 +08:00
<u-popup :show="editGoodsShow" @close="editGoodsClose" :round="18" mode="center">
<view class="edit_goods_box">
<view class="edit_name flex_a_c edit_name_no">
<text>商品编号</text><input type="text" disabled placeholder="请输入商品名称" v-model="editGoodsCode">
</view>
<view class="edit_name flex_a_c edit_name_no">
<text>商品名称</text> <input type="text" disabled placeholder="请输入商品名称" v-model="editGoodsName">
</view>
<view class="edit_name flex_a_c">
编辑商品价格<input type="text" placeholder="请输入商品名称" v-model="editGoodsPrice">
</view>
<view class="edit_store flex_a_c">
编辑商品库存<input type="text" placeholder="请输入库存" v-model="editGoodsStore">
</view>
<view class="edit_goods_btn">
<u-button type="error" text="取消" class="edit_btn" @click="editGoodsShow=false">
</u-button>
<u-button type="primary" text="保存" class="edit_btn" @click="editGoodsClose">
</u-button>
</view>
</view>
</u-popup>
2023-05-19 10:19:00 +08:00
<u-popup :show="searchGoodsShow" @close="searchGoodsClose" :round="18" mode="center">
<view class="search_goods_box">
<input type="text" v-model="searchGoodsName" class="searchGoods" placeholder="请输入商品名称">
<view class="edit_goods_btn">
<u-button type="error" text="取消" class="edit_btn" @click="searchGoodsShow=false">
</u-button>
2023-05-19 15:07:35 +08:00
<u-button type="primary" text="搜索" class="edit_btn" @click="searchGoodsClose">
2023-05-19 10:19:00 +08:00
</u-button>
</view>
</view>
</u-popup>
2023-05-10 16:07:28 +08:00
</view>
</template>
<script>
import { microSeachBarCode, microEadtProduct } from '@/api/store.js'
2023-05-19 10:19:00 +08:00
import { seachBarCodeAPI } from '@/api/api.js'
import { Toast } from '@/libs/uniApi'
2023-05-10 16:07:28 +08:00
export default {
data() {
return {
goodsData: [{
name: '商品名称入库',
type: 1,
src: 'https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/luzhou/static4/mingcheng.png'
},
{
name: '扫码入库',
type: 2,
src: 'https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/luzhou/static4/saoma.png'
}
],
product_id: '',
editGoodsCode: '',
editGoodsName: '',
editGoodsPrice: '',
editGoodsStore: '',
editGoodsShow: false, // 扫码修改商品信息
2023-05-19 10:19:00 +08:00
mer_id: '',
searchGoodsShow: true,
2023-05-19 15:07:35 +08:00
searchGoodsName: '',
goods: []
2023-05-10 16:07:28 +08:00
}
},
onLoad(e) {
this.mer_id = e.mer_id
},
onShow() {},
methods: {
2023-05-19 10:19:00 +08:00
openSearch() {
},
async searchGoodsClose() {
const rq = {
mer_id: this.mer_id,
name: this.searchGoodsName
}
const { data } = await seachBarCodeAPI(rq).catch(err => Toast(err))
console.log('data', data);
2023-05-19 15:07:35 +08:00
this.goods = data.list
2023-05-19 10:19:00 +08:00
this.searchGoodsShow = false
},
2023-05-10 16:07:28 +08:00
async editGoodsClose() {
const data = {
price: this.editGoodsPrice,
stock: this.editGoodsStore,
id: this.product_id
}
try {
const res = await microEadtProduct(data)
Toast("更新成功")
this.editGoodsShow = false
} catch (e) {
Toast("更新失败")
this.editGoodsShow = false
}
},
navigato(type) {
2023-05-19 10:19:00 +08:00
type === 1 ? uni.navigateTo({
url: `/pages/product/addGoods/index?mer_id=${this.mer_id}`
}) : this.scanCode();
2023-05-10 16:07:28 +08:00
},
scanCode() {
const self = this
uni.scanCode({
scanType: ["qrCode", "barCode", "datamatrix", "pdf417"],
success(res) {
self.seachBarCode(res.result)
},
fail(res) {
console.log(res);
},
})
},
async seachBarCode(code) {
try {
const { data } = await microSeachBarCode({
code: code
})
console.log('data', data.data);
this.product_id = data.data.product_id
this.editGoodsStore = data.data.stock
this.editGoodsPrice = data.data.price
this.editGoodsCode = data.data.attr_value.bar_code
this.editGoodsName = data.data.store_name
this.editGoodsShow = true
} catch (err) {
uni.navigateTo({
url: `/pages/product/addGoods/index?mer_id=${this.mer_id}&code=${code}`
})
}
},
},
onPullDownRefresh() {
uni.stopPullDownRefresh()
}
}
</script>
<style lang="scss">
.select_warehouse {
padding-top: 20px;
}
.wrapper {
width: 694.74rpx;
margin: 0 auto;
}
2023-05-19 15:07:35 +08:00
.goods-wrapper {
.item {
display: flex;
height: 175.44rpx;
width: 100%;
background-color: #fff;
margin-top: 21.05rpx;
border-radius: 8px;
padding: 12px;
.l_cont {
image {
width: 133.33rpx;
height: 133.33rpx;
border-radius: 8px;
}
}
.r_cont {
margin-left: 17.54rpx;
}
}
}
2023-05-10 16:07:28 +08:00
.select_item {
width: 336.84rpx;
height: 189.47rpx;
border-radius: 8px;
background-color: #eee;
padding: 35.09rpx 28.07rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
color: #fff;
background-size: cover;
background-repeat: no-repeat;
.title {
font-size: 35.09rpx;
}
}
2023-05-19 10:19:00 +08:00
.search_goods_box {
width: 694.74rpx;
padding: 28.07rpx;
font-size: 31.58rpx;
.searchGoods {
height: 87.72rpx;
border: 1px solid #f5f5f5;
border-radius: 8px;
padding: 12px;
margin: 21.05rpx 0;
}
.edit_goods_btn {
margin-top: 28.07rpx;
display: flex;
justify-content: space-between;
.edit_btn {
width: 210.53rpx;
}
}
}
2023-05-10 16:07:28 +08:00
// 扫码编辑商品
.edit_goods_box {
width: 694.74rpx;
padding: 28.07rpx;
font-size: 31.58rpx;
text {
color: '#f8f9f9';
}
.edit_name,
.edit_store {
height: 105.26rpx;
}
.edit_name_no {
color: #a4a4a4;
}
.edit_store {
// border-top: 1px solid #a4a4a4;
margin-top: 21.05rpx;
}
/deep/.u-button {
width: 300rpx;
}
.edit_goods_btn {
margin-top: 28.07rpx;
display: flex;
justify-content: space-between;
.edit_btn {
width: 210.53rpx;
}
}
}
</style>