Commit 201f9695 authored by Damon's avatar Damon

feat: 物料减到0提示

parent f3ab7678
...@@ -3,14 +3,25 @@ ...@@ -3,14 +3,25 @@
<view> <view>
<view class="list u-flex u-row-between"> <view class="list u-flex u-row-between">
<image class="item-image" :src="mixingImage" v-if="item.required"></image> <image class="item-image" :src="mixingImage" v-if="item.required"></image>
<view class="u-m-r-20">{{item.fieldsTitle}}</view> <view class="u-m-r-20">{{ item.fieldsTitle }}</view>
<view class="u-flex-1 add-parts" @click="toParts" v-if="!disabled && lists.length > 0"> <view
class="u-flex-1 add-parts"
@click="toParts"
v-if="!disabled && lists.length > 0"
>
添加物料<u-icon name="arrow-right" color="#2979ff" size="30"></u-icon> 添加物料<u-icon name="arrow-right" color="#2979ff" size="30"></u-icon>
</view> </view>
</view> </view>
<view class="complete-part"> <view class="complete-part">
<view v-if="lists.length > 0"> <view v-if="lists.length > 0">
<adjust-parts v-for="(item, index) in lists" :key="index" :info="item" @change="partsChange($event, index)" :disabled="disabled"></adjust-parts> <adjust-parts
v-for="(item, index) in lists"
:key="index"
:info="item"
@change="partsChange($event, index)"
@minusValue="minusValue($event, index)"
:disabled="disabled"
></adjust-parts>
</view> </view>
<view class="u-flex select-part" v-else> <view class="u-flex select-part" v-else>
<view class="img"> <view class="img">
...@@ -31,39 +42,39 @@ ...@@ -31,39 +42,39 @@
</template> </template>
<script> <script>
import adjustParts from "@/components/select-parts/adjust" import adjustParts from '@/components/select-parts/adjust'
import stringMixin from './stringMixin' import stringMixin from './stringMixin'
export default { export default {
name: 'XhParts', name: 'XhParts',
components: { components: {
adjustParts adjustParts,
}, },
mixins: [stringMixin], mixins: [stringMixin],
props: { props: {
orderId: { orderId: {
type: String, type: String,
default: '' default: '',
}, },
categoryId: { categoryId: {
type: String, type: String,
default: '' default: '',
}, },
brandId: { brandId: {
type: String, type: String,
default: '' default: '',
} },
}, },
data() { data() {
return { return {
lists: [] lists: [],
} }
}, },
computed: { computed: {
customStyle() { customStyle() {
return { return {
'width': '200rpx', width: '200rpx',
'height': '80rpx', height: '80rpx',
'color': '#2272FF', color: '#2272FF',
'font-size': '32rpx', 'font-size': '32rpx',
} }
}, },
...@@ -72,11 +83,6 @@ ...@@ -72,11 +83,6 @@
}, },
noPartsImage() { noPartsImage() {
return process.uniEnv.qn_base_url + 'no_parts.png' return process.uniEnv.qn_base_url + 'no_parts.png'
},
selectedParts() {
return this.lists.filter((item) => {
return item.quantity > 0
})
} }
}, },
mounted() { mounted() {
...@@ -89,45 +95,61 @@ ...@@ -89,45 +95,61 @@
}, },
partsChange(val, index) { partsChange(val, index) {
this.$set(this.lists[index], 'quantity', val) this.$set(this.lists[index], 'quantity', val)
this.valueChange(JSON.stringify(this.selectedParts)) console.log("this.lists", this.lists)
this.valueChange(this.lists)
},
minusValue(val, index) {
if (val === 0) {
uni.showModal({
title: '温馨提示',
content: '确定要删除该物料?',
success: (res) => {
if (res.confirm) {
this.lists.splice(index, 1)
} else if (res.cancel) {
this.partsChange(1, index)
}
},
})
}
}, },
valChange(val) { valChange(val) {
val.forEach(v => { val.forEach((v) => {
const index = this.lists.findIndex(k => k.part_id === v.part_id) const index = this.lists.findIndex((k) => k.part_id === v.part_id)
if (index < 0) { if (index < 0) {
this.lists.push(v) this.lists.push(v)
} else { } else {
this.$set(this.lists, index, v) this.$set(this.lists, index, v)
} }
}) })
this.valueChange(JSON.stringify(this.selectedParts)) this.valueChange(this.lists)
}, },
toParts() { toParts() {
uni.navigateTo({ uni.navigateTo({
url: `/pages/order/parts?workOrderId=${this.orderId}&brandId=${this.brandId}&categoryId=${this.categoryId}` url: `/pages/order/parts?workOrderId=${this.orderId}&brandId=${this.brandId}&categoryId=${this.categoryId}`,
}) })
} },
} },
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.item-image { .item-image {
width: 24rpx; width: 24rpx;
height: 24rpx; height: 24rpx;
margin-right: 10rpx; margin-right: 10rpx;
} }
.required { .required {
padding-right: 10rpx; padding-right: 10rpx;
font-size: 28rpx; font-size: 28rpx;
line-height: 40rpx; line-height: 40rpx;
color: #fa3534; color: #fa3534;
} }
.add-parts { .add-parts {
color: #2272FF; color: #2272ff;
text-align: right; text-align: right;
} }
.complete-part { .complete-part {
.select-part { .select-part {
align-items: center; align-items: center;
height: 240rpx; height: 240rpx;
...@@ -150,7 +172,7 @@ ...@@ -150,7 +172,7 @@
overflow: hidden; overflow: hidden;
.title { .title {
text-align: left; text-align: left;
color: #2272FF; color: #2272ff;
font-size: 38rpx; font-size: 38rpx;
font-weight: bold; font-weight: bold;
margin-right: auto; margin-right: auto;
...@@ -163,5 +185,5 @@ ...@@ -163,5 +185,5 @@
} }
} }
} }
} }
</style> </style>
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
{{info.name}} {{info.name}}
</view> </view>
<view class="num"> <view class="num">
<u-number-box v-if="!disabled" v-model="info.quantity" :min="info.min || 0" :max="info.max || 9999" @change="numChange"></u-number-box> <u-number-box v-if="!disabled" v-model="info.quantity" :min="info.min || 0" :max="info.max || 9999" @change="numChange" @minus="minusValue"></u-number-box>
<text class="nums" v-else>x{{ info.quantity || 1 }}</text> <text class="nums" v-else>x{{ info.quantity || 1 }}</text>
</view> </view>
</view> </view>
...@@ -37,6 +37,9 @@ ...@@ -37,6 +37,9 @@
methods: { methods: {
numChange(event) { numChange(event) {
this.$emit('change', event.value) this.$emit('change', event.value)
},
minusValue(event) {
this.$emit('minusValue', event.value)
} }
} }
} }
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
:info="row" :info="row"
:show-checked="false" :show-checked="false"
@change="numChange($event, index)" @change="numChange($event, index)"
@minusValue="minusValue($event, index)"
></select-parts> ></select-parts>
</view> </view>
</view> </view>
...@@ -161,6 +162,21 @@ export default { ...@@ -161,6 +162,21 @@ export default {
numChange(val, index) { numChange(val, index) {
this.$set(this.parts[index], 'quantity', val) this.$set(this.parts[index], 'quantity', val)
}, },
minusValue(val, index) {
if (val === 0) {
uni.showModal({
title: '温馨提示',
content: '确定要删除该物料?',
success: (res) => {
if (res.confirm) {
this.parts.splice(index, 1)
} else if (res.cancel) {
this.$set(this.parts[index], 'quantity', 1)
}
},
})
}
},
updateParts(parts) { updateParts(parts) {
// if(this.$u.test.isEmpty(parts)) { // if(this.$u.test.isEmpty(parts)) {
// this.parts = [] // this.parts = []
......
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