Commit 54414262 authored by Damon's avatar Damon

feat: 可用备件API对接

parent c4f8ac8f
......@@ -21,12 +21,17 @@ let partsApiFun = function(vm){
* 查询配件列表
*/
let getPartsList = async (params = {}) => await vm.$u.get(parts + vm.vuex_token + '/parts', params);
/**
* 查询自己的备件仓
*/
let getMyReserve = async (params = {}) => await vm.$u.get(parts + vm.vuex_token + '/items/reserve', params);
const partsApi = {
getSiteAddress,
getCategoryList,
getBrandList,
getPartsList
getPartsList,
getMyReserve
}
return partsApi
}
......
......@@ -88,6 +88,8 @@
font-size: 32rpx;
color: #333;
font-weight: bold;
height: 50rpx;
overflow: hidden;
}
.right-content-desc {
font-size: 24rpx;
......@@ -105,6 +107,7 @@
color: #999;
overflow: hidden;
flex: 1;
height: 36rpx;
}
.num {
flex: 1;
......
<template>
<view class="u-flex det-wrap">
<view class="search">
<u-search
:clearabled="true"
:action-style="searchStyle"
bg-color="#fff"
v-model="keyword"
@custom="searchParts"
@search="searchParts"
></u-search>
</view>
<view class="content" v-if="lists.length > 0">
<scroll-view style="height: 100%;" scroll-y="true">
<select-parts
......@@ -9,7 +20,6 @@
:show-checked="true"
@numChange="numChange($event, index)"
@selectChange="selectChange($event, index)"
@apply="apply(index)"
></select-parts>
</scroll-view>
</view>
......@@ -27,7 +37,7 @@
<submit-bar
:partNum="partNum"
:num="num"
:btnStatus="btnStatus"
:btnStatus="partNum > 0"
:allChecked="allChecked"
@select="allSelect"
@submit="submit"
......@@ -46,48 +56,23 @@
},
data() {
return {
lists: [
{
id: 1,
name: "正泰漏保",
no: 'NO.202006170015',
desc: '这个空开盒子和其他的空开有什么不一样,这里可以写一下',
num: 1,
min: 1,
max: 100,
img: "https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png",
checked: false,
disabled: true
},
{
id: 1,
name: "挚达广汽充电桩",
no: 'NO.202006170014',
desc: '这个空开盒子和其他的空开有什么不一样,这里可以写一下',
num: 3,
min: 1,
max: 5,
img: "https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png",
checked: false,
disabled: true
}
],
val: []
lists: [],
keyword: ''
}
},
computed: {
searchStyle() {
return {
color: "#2272FF"
};
},
// 配件数
partNum() {
return this.lists.reduce((counter, { checked }) => checked ? counter += 1 : counter, 0)
},
// 总数
num() {
return this.lists.reduce((counter, { checked, num }) => checked ? counter += num : counter, 0)
},
// 按钮状态
btnStatus() {
const count = this.lists.reduce((counter, { checked }) => checked ? counter += 1 : counter, 0)
return count > 0 || false
return this.lists.reduce((counter, { checked, quantity }) => checked ? counter += quantity : counter, 0)
},
// 全选状态
allChecked() {
......@@ -95,12 +80,34 @@
return count === 0 || false
}
},
created() {
this.getReserve()
},
methods: {
apply(index) {
this.$set(this.lists[index], 'disabled', false)
getReserve() {
const params = {
keyword: this.keyword
}
this.$u.api.getMyReserve(params).then(res => {
if (res.code === 200) {
const data = res.data || []
this.lists = data.map(v => {
v.min = 1
v.max = v.stock
v.checked = false
v.quantity = v.stock
return v
})
}
})
},
// 搜索配件
searchParts(val) {
this.keyword = val
this.getReserve()
},
numChange(val, index) {
this.$set(this.lists[index], 'num', val)
this.$set(this.lists[index], 'quantity', val)
},
selectChange(val, index) {
this.$set(this.lists[index], 'checked', val)
......@@ -112,7 +119,16 @@
})
},
submit() {
console.log('submit')
let pages = getCurrentPages()
let prevPage = pages[pages.length - 2]
const lists = this.lists.filter(v => v.checked).map(v => {
return {
part_id: v.skuId,
quantity: v.quantity
}
})
console.log(lists)
},
qnFile(src) {
return process.uniEnv.qn_base_url + src
......@@ -123,11 +139,15 @@
<style lang="scss" scoped>
.det-wrap {
background: #fff;
flex-flow: column;
height: 100vh;
.search {
width: 100%;
padding: 30rpx;
}
.content {
border-radius: 12rpx;
background: #fff;
border-radius: 30rpx 30rpx 0 0;
padding: 10rpx 10rpx 0 10rpx;
width: 100%;
flex: 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment