niexiting 11 months ago
parent
commit
9485e8eb82
  1. 38
      common/detail.js
  2. 2
      mycomponents/detail/comDetailCard.vue
  3. 1
      mycomponents/item/itemQty.vue
  4. 21
      mycomponents/qty/CountQtyEdit.vue
  5. 19
      mycomponents/qty/balanceQtyEdit.vue
  6. 26
      mycomponents/qty/recommendQtyEdit.vue
  7. 17
      pages/deliver/job/deliverDetail.vue
  8. 2
      pages/issue/coms/comIssueRequestPopup.vue
  9. 24
      pages/issue/job/issueDetail.vue
  10. 2
      pages/purchaseReturn/record/returnRecord.vue
  11. 16
      pages/repleinsh/job/repleinshDetail.vue
  12. 148
      pages/transfer/coms/comReceiptDetailCard.vue
  13. 20
      pages/transfer/job/receiptDetail.vue
  14. 2
      pages/unPlanned/coms/comReceiptDetailCard.vue

38
common/detail.js

@ -1,5 +1,7 @@
import { calc } from '@/common/calc' import {
export function getDataSource(subList) { calc
} from '@/common/calc'
export function getDataSource(subList) {
let items = []; let items = [];
subList.forEach(detail => { subList.forEach(detail => {
var item = items.find(r => var item = items.find(r =>
@ -10,19 +12,19 @@ export function getDataSource(subList) {
item.subList.push(newDetail); item.subList.push(newDetail);
items.push(item) items.push(item)
} else { } else {
item.qty = calc.add(item.qty,detail.qty) item.qty = calc.add(item.qty, detail.qty)
let newDetail = createDetailInfo(detail); // let newDetail = createDetailInfo(detail); //
item.subList.push(newDetail); item.subList.push(newDetail);
} }
}) })
return items; return items;
} }
export function createItemInfo(detail) { export function createItemInfo(detail) {
let item = { let item = {
itemCode: detail.itemCode, itemCode: detail.itemCode,
itemName: detail.itemName, itemName: detail.itemName,
stdPackQty: Number(detail.stdPackQty)||undefined, stdPackQty: Number(detail.stdPackQty) || undefined,
stdPackUnit: detail.stdPackUnit, stdPackUnit: detail.stdPackUnit,
qty: Number(detail.qty), qty: Number(detail.qty),
handleQty: 0, handleQty: 0,
@ -30,17 +32,17 @@ export function createItemInfo(detail) {
subList: [] subList: []
} }
return item; return item;
} }
export function createDetailInfo(data) { export function createDetailInfo(data) {
data.scaned = false; data.scaned = false;
// data.record = {}; // data.record = {};
let detail = data; let detail = data;
return detail; return detail;
} }
//根据明细创建记录 //根据明细创建记录
export function createRecordInfo(detail, balance) { export function createRecordInfo(detail, balance) {
var record = {} var record = {}
// let record = JSON.parse(JSON.stringify(detail)); // let record = JSON.parse(JSON.stringify(detail));
//克隆对象,深度克隆,防止双向绑定同一个变量 //克隆对象,深度克隆,防止双向绑定同一个变量
@ -51,22 +53,22 @@ export function createRecordInfo(detail, balance) {
detail.inventoryStatus = balance.inventoryStatus; detail.inventoryStatus = balance.inventoryStatus;
record.qty = Number(balance.qty); record.qty = Number(balance.qty);
return record; return record;
} }
//计算实际数量 //计算实际数量
export function calcHandleQty(detailSource) { export function calcHandleQty(detailSource) {
for (let item of detailSource) { for (let item of detailSource) {
item.handleQty = 0; item.handleQty = 0;
for (let detail of item.subList) { for (let detail of item.subList) {
if (detail != undefined && detail.scaned) { if (detail != undefined && detail.scaned) {
item.handleQty = calc.add(item.handleQty,detail.handleQty) item.handleQty = calc.add(item.handleQty, detail.handleQty)
}
} }
} }
} }
}
export function getScanCount(subList) { export function getScanCount(subList) {
let items = subList.filter(r => { let items = subList.filter(r => {
if (r.scaned) { if (r.scaned) {
return r; return r;
@ -74,4 +76,4 @@ export function getScanCount(subList) {
}) })
let scanCount = items != null ? items.length : 0; let scanCount = items != null ? items.length : 0;
return scanCount; return scanCount;
} }

2
mycomponents/detail/comDetailCard.vue

@ -3,7 +3,7 @@
<uni-collapse ref="collapse1" @change=""> <uni-collapse ref="collapse1" @change="">
<uni-collapse-item :open="true"> <uni-collapse-item :open="true">
<template v-slot:title> <template v-slot:title>
<item-compare-qty :dataContent="dataContent" :handleQty="Number(dataContent.handleQty)" :isShowStdPack="false"> <item-compare-qty :dataContent="dataContent" :handleQty="dataContent.handleQty" :isShowStdPack="false">
</item-compare-qty> </item-compare-qty>
</template> </template>
<u-line></u-line> <u-line></u-line>

1
mycomponents/item/itemQty.vue

@ -18,6 +18,7 @@
</view> </view>
</template> </template>
<script> <script>
import item from '@/mycomponents/item/item.vue' import item from '@/mycomponents/item/item.vue'
import balanceQty from '@/mycomponents/qty/balanceQty.vue' import balanceQty from '@/mycomponents/qty/balanceQty.vue'
import compareQty from '@/mycomponents/qty/compareQty.vue' import compareQty from '@/mycomponents/qty/compareQty.vue'

21
mycomponents/qty/CountQtyEdit.vue

@ -38,7 +38,9 @@
<text>数量 : </text> <text>数量 : </text>
<view class="uni-flex uni-row uni-center" style="align-items: center;"> <view class="uni-flex uni-row uni-center" style="align-items: center;">
<input class="qty_input" v-model="allQty" :focus="true" type="number" <input class="qty_input" v-model="allQty" :focus="true" type="number"
@mousedown="mousedown" /> @mousedown="mousedown"
@input="checkNum"
:maxlength="maxlength" />
<uom :uom="dataContent.uom"></uom> <uom :uom="dataContent.uom"></uom>
</view> </view>
</view> </view>
@ -107,7 +109,8 @@
seconds: 0, seconds: 0,
timer: {}, timer: {},
showConfirmCountdown: false, showConfirmCountdown: false,
detaiList: [] detaiList: [],
maxlength: 10
} }
}, },
watch: { watch: {
@ -140,6 +143,20 @@
}, },
}, },
methods: { methods: {
checkNum(e) {
let value = e.detail.value;
let dot = value.indexOf('.'); //
let reg = /^[0-9]+$/; //
if (dot > -1) {
this.maxlength = dot + 7; //
if (value.length > dot + 7) {
}
}
if (reg.test(value)) { //
this.maxlength = 10;
}
},
openEditPopup(item, detaiList) { openEditPopup(item, detaiList) {
this.dataContent = item this.dataContent = item
this.inventoryStatus = this.dataContent.inventoryStatus; this.inventoryStatus = this.dataContent.inventoryStatus;

19
mycomponents/qty/balanceQtyEdit.vue

@ -36,7 +36,7 @@
<text>数量 : </text> <text>数量 : </text>
<view class="uni-flex uni-row uni-center" style="align-items: center;"> <view class="uni-flex uni-row uni-center" style="align-items: center;">
<input class="qty_input" v-model="allQty" :focus="true" type="number" <input class="qty_input" v-model="allQty" :focus="true" type="number"
@confirm="confirm()" /> @confirm="confirm()" @input="checkNum" :maxlength="maxlength" />
<uom :uom="dataContent.uom"></uom> <uom :uom="dataContent.uom"></uom>
</view> </view>
</view> </view>
@ -94,7 +94,8 @@
inventoryStatus: "", inventoryStatus: "",
originalInventoryStatus: "", originalInventoryStatus: "",
dataContent: {}, dataContent: {},
handleQty: 0 handleQty: 0,
maxlength: 10
} }
}, },
watch: { watch: {
@ -123,6 +124,20 @@
} }
}, },
methods: { methods: {
checkNum(e) {
let value = e.detail.value;
let dot = value.indexOf('.'); //
let reg = /^[0-9]+$/; //
if (dot > -1) {
this.maxlength = dot + 7; //
if (value.length > dot + 7) {
}
}
if (reg.test(value)) { //
this.maxlength = 10;
}
},
openEditPopup(item, handleQty) { openEditPopup(item, handleQty) {
this.dataContent = item this.dataContent = item
this.inventoryStatus = this.dataContent.inventoryStatus this.inventoryStatus = this.dataContent.inventoryStatus

26
mycomponents/qty/recommendQtyEdit.vue

@ -31,12 +31,13 @@
</view> </view>
</view> </view>
<u-line /> <u-line />
<view class="uni-flex uni-row space-between padding title u-col-center"> <view class="uni-flex uni-row space-between padding title u-col-center">
<text>总数量 : </text> <text>总数量 : </text>
<view class="uni-flex uni-row uni-center" style="align-items: center;"> <view class="uni-flex uni-row uni-center" style="align-items: center;">
<input class="qty_input" v-model="allQty" :focus="false" type="number" <input class="qty_input" v-model="allQty" :focus="false" type="number"
@confirm="confirm()" /> @input="checkNum" @confirm="confirm()" :maxlength="maxlength" />
<uom :uom="dataContent.uom"></uom> <uom :uom="dataContent.uom"></uom>
</view> </view>
</view> </view>
@ -69,7 +70,8 @@
allQty: 0, allQty: 0,
stdCount: 0, stdCount: 0,
labelQty: 0, labelQty: 0,
recommendQty: 0 recommendQty: 0,
maxlength: 10
} }
}, },
watch: { watch: {
@ -104,6 +106,20 @@
}, },
}, },
methods: { methods: {
checkNum(e) {
let value = e.detail.value;
let dot = value.indexOf('.'); //
let reg = /^[0-9]+$/; //
if (dot > -1) {
this.maxlength = dot + 7; //
if (value.length > dot + 7) {
}
}
if (reg.test(value)) { //
this.maxlength = 10;
}
},
openEditPopup() { openEditPopup() {
this.$refs.popup.open('bottom') this.$refs.popup.open('bottom')
}, },
@ -148,7 +164,8 @@
} else { } else {
if (this.recommendQty != 0) { if (this.recommendQty != 0) {
if (this.allQty > this.recommendQty) { if (this.allQty > this.recommendQty) {
if (this.settingParam.allowBiggerQty != null && this.settingParam.allowBiggerQty == "TRUE") { if (this.settingParam.allowBiggerQty != null && this.settingParam.allowBiggerQty ==
"TRUE") {
this.callback(); this.callback();
} else { } else {
this.$refs.comMessage.showErrorMessage('数量[' + this.allQty + ']不允许大于推荐数量[' + this.$refs.comMessage.showErrorMessage('数量[' + this.allQty + ']不允许大于推荐数量[' +
@ -159,7 +176,8 @@
}) })
} }
} else if (this.allQty < this.recommendQty) { } else if (this.allQty < this.recommendQty) {
if (this.settingParam.allowSmallerQty != null && this.settingParam.allowSmallerQty == "TRUE") { if (this.settingParam.allowSmallerQty != null && this.settingParam.allowSmallerQty ==
"TRUE") {
this.callback(); this.callback();
} else { } else {
this.$refs.comMessage.showErrorMessage('数量[' + this.allQty + ']不允许小于推荐数量[' + this.$refs.comMessage.showErrorMessage('数量[' + this.allQty + ']不允许小于推荐数量[' +

17
pages/deliver/job/deliverDetail.vue

@ -137,12 +137,21 @@
// //
onBackPress(e) { onBackPress(e) {
// //
if (e.from == 'backbutton') {
if (this.received) { if (this.received) {
// //
cancleTakeDeliverJob(this.id).then(res => {}).catch(error => { cancleTakeDeliverJob(this.id).then(res => {
this.showMessage(err); uni.navigateBack();
}).catch(error => {
uni.navigateBack();
}) })
} else {
uni.navigateBack();
} }
return true;
}
}, },
methods: { methods: {
@ -342,10 +351,10 @@
let handleQty = 0; let handleQty = 0;
if (batch != undefined) { if (batch != undefined) {
batch.Records.forEach(res => { batch.Records.forEach(res => {
handleQty = calc.add(handleQty,res.qty) handleQty = calc.add(handleQty, res.qty)
}) })
batch.handleQty = handleQty; batch.handleQty = handleQty;
itemHandleQty = calc.add(itemHandleQty,handleQty) itemHandleQty = calc.add(itemHandleQty, handleQty)
} }
}) })
} }

2
pages/issue/coms/comIssueRequestPopup.vue

@ -46,7 +46,7 @@
:focus="numberFocus" @blur='numberFocus = false'> :focus="numberFocus" @blur='numberFocus = false'>
</uni-number-box> </uni-number-box>
<view class="std_pack"> <view class="std_pack" v-if="itemCode!='请扫描物料信息'">
<text> <text>
/{{stdQty}} /{{stdQty}}
<!-- {{Number(dataContent.stdPackQty)}}{{getStdPackUnit(dataContent.uom)}} --> <!-- {{Number(dataContent.stdPackQty)}}{{getStdPackUnit(dataContent.uom)}} -->

24
pages/issue/job/issueDetail.vue

@ -62,6 +62,10 @@
getManagementPrecisions getManagementPrecisions
} from '@/common/balance.js'; } from '@/common/balance.js';
import {
calc
} from '@/common/calc.js';
import jobDetailPopup from '@/mycomponents/job/jobDetailPopup.vue' import jobDetailPopup from '@/mycomponents/job/jobDetailPopup.vue'
import comIssueDetailCard from '@/pages/issue/coms/comIssueDetailCard.vue' import comIssueDetailCard from '@/pages/issue/coms/comIssueDetailCard.vue'
import winScanButton from '@/mycomponents/scan/winScanButton.vue' import winScanButton from '@/mycomponents/scan/winScanButton.vue'
@ -90,7 +94,8 @@
subList: [], //subList subList: [], //subList
detailSource: [], // detailSource: [], //
detailOptions: [], detailOptions: [],
scanOptions: [] scanOptions: [],
received:false
}; };
}, },
@ -122,12 +127,21 @@
// //
onBackPress(e) { onBackPress(e) {
// //
if (e.from === 'backbutton') {
if (this.received) { if (this.received) {
// //
cancleTakeIssueJob(this.id).then(res => {}).catch(error => { cancleTakeIssueJob(this.id).then(res => {
this.showMessage(err); uni.navigateBack();
}).catch(error => {
uni.navigateBack();
}) })
} else {
uni.navigateBack();
} }
return true;
}
}, },
watch: { watch: {
@ -392,10 +406,10 @@
let handleQty = 0; let handleQty = 0;
if (batch != undefined) { if (batch != undefined) {
batch.Records.forEach(res => { batch.Records.forEach(res => {
handleQty += Number(res.qty) handleQty = calc.add(handleQty,res.qty)
}) })
batch.handleQty = handleQty; batch.handleQty = handleQty;
itemHandleQty += handleQty; itemHandleQty = calc.add(itemHandleQty,handleQty)
} }
}) })
} }

2
pages/purchaseReturn/record/returnRecord.vue

@ -252,7 +252,7 @@
purchaseReturnRecordSubmit(params).then(res => { purchaseReturnRecordSubmit(params).then(res => {
uni.hideLoading() uni.hideLoading()
if (res.data) { if (res.data) {
this.showCommitSuccessMessage("提交成功<br>生成采购退货记录" + res.data) this.showCommitSuccessMessage("提交成功<br>生成采购退货记录<br>" + res.data)
} else { } else {
this.showErrorMessage("提交失败" + res.msg) this.showErrorMessage("提交失败" + res.msg)
} }

16
pages/repleinsh/job/repleinshDetail.vue

@ -99,7 +99,8 @@
detailOptions: [], detailOptions: [],
scanOptions: [], scanOptions: [],
toLocationCode: '', toLocationCode: '',
tolocationTypeList: [] tolocationTypeList: [],
received:false,
}; };
}, },
@ -131,12 +132,21 @@
// //
onBackPress(e) { onBackPress(e) {
// //
if (e.from === 'backbutton') {
if (this.received) { if (this.received) {
// //
cancleTakeRepleinshJob(this.id).then(res => {}).catch(error => { cancleTakeRepleinshJob(this.id).then(res => {
this.showMessage(err); uni.navigateBack();
}).catch(error => {
uni.navigateBack();
}) })
} else {
uni.navigateBack();
} }
return true;
}
}, },
watch: { watch: {

148
pages/transfer/coms/comReceiptDetailCard.vue

@ -0,0 +1,148 @@
<template>
<view class="" style="background-color: #fff;">
<uni-collapse ref="collapse1" @change="">
<uni-collapse-item :open="true">
<template v-slot:title>
<item-qty :dataContent="dataContent" :handleQty="dataContent.handleQty" :showItemQty ="false"></item-qty>
</template>
<u-line />
<view class="" v-for="(item,index) in dataContent.subList">
<uni-swipe-action ref="swipeAction">
<uni-swipe-action-item @click="swipeClick($event,item)"
:right-options="item.scaned?scanOptions:detailOptions">
<recommend :detail="item" :isShowFromLocation="false" :isShowToLocation="true">
</recommend>
</uni-swipe-action-item>
</uni-swipe-action>
<u-line color="#D8D8D8"></u-line>
</view>
</uni-collapse-item>
</uni-collapse>
<recommend-qty-edit ref="receiptEdit" :dataContent="editItem" :settingParam="settingParam"
@confirm="confirm">
</recommend-qty-edit>
<win-scan-location ref="scanLocationCode" title="目标库位" @getLocation='getLocation'
:locationTypeList="locationTypeList"></win-scan-location>
<detail-info-popup ref="detailInfoPopup"></detail-info-popup>
<comMessage ref="message"></comMessage>
</view>
</template>
<script>
import itemQty from '@/mycomponents/item/itemQty.vue'
import recommend from '@/mycomponents/recommend/recommend.vue'
import recommendQtyEdit from '@/mycomponents/qty/recommendQtyEdit.vue'
import jobDetailPopup from '@/mycomponents/job/jobDetailPopup.vue'
import comMessage from '@/mycomponents/common/comMessage.vue'
import detailInfoPopup from '@/pages/unPlanned/coms/detailInfoPopup.vue'
import winScanLocation from "@/mycomponents/scan/winScanLocation.vue"
import {
getDetailOption,
getPurchaseReceiptOption
} from '@/common/array.js';
export default {
components: {
itemQty,
recommend,
recommendQtyEdit,
detailInfoPopup,
comMessage,
winScanLocation
},
props: {
dataContent: {
type: Object,
default: {}
},
settingParam: {
type: Object,
default: {}
},
isShowLocation: {
type: Boolean,
default: false
},
locationTypeList: {
type: Object,
default: {}
},
},
watch: {
},
data() {
return {
showItem: {},
editItem: {
record: {
}
},
detailOptions: [],
scanOptions: []
}
},
mounted() {
if (this.detailOptions.length == 0) {
this.detailOptions = getDetailOption();
}
if (this.scanOptions.length == 0) {
this.scanOptions = getPurchaseReceiptOption(this.settingParam.allowModifyQty,this.settingParam.allowModifyLocation)
}
},
methods: {
swipeClick(e, item) {
if (e.content.text == "详情") {
this.detail(item)
} else if (e.content.text == "编辑") {
this.edit(item)
} else if (e.content.text == "库位") {
this.showLocation(item)
} else if (e.content.text == "移除") {
this.remove(item)
}
},
edit(item) {
this.editItem = item;
this.$refs.receiptEdit.openTaskEditPopup(item.qty, item.handleQty,item.labelQty);
},
showLocation(item) {
this.locatonItem =item;
this.$refs.scanLocationCode.openScanPopup();
},
//
getLocation(location, code) {
this.locatonItem.toLocationCode =code;
this.$emit('updateData')
},
detail(item) {
this.showItem = item;
this.$refs.detailInfoPopup.openPopup(item)
},
remove(item) {
this.$refs.message.showQuestionMessage("确定移除扫描信息?",
res => {
if (res) {
item.scaned = false
item.handleQty = null
this.$forceUpdate()
this.$emit('remove', item)
}
});
},
confirm(qty) {
this.editItem.handleQty = qty;
this.$emit('updateData')
}
}
}
</script>
<style>
</style>

20
pages/transfer/job/receiptDetail.vue

@ -17,10 +17,9 @@
<scroll-view scroll-y="true" class="page-main-scroll"> <scroll-view scroll-y="true" class="page-main-scroll">
<view class="detail-list" v-for="(item, index) in detailSource" :key="item.id"> <view class="detail-list" v-for="(item, index) in detailSource" :key="item.id">
<view class=""> <view class="">
<com-detail-card :dataContent="item" :settingParam="jobContent" :isShowLocation="false" <com-receipt-detail-card :dataContent="item" :index="index" :settingParam="jobContent"
@remove="updateData" @updateData="updateData" @openDetail="openDetail" @remove="updateData" @updateData="updateData" :locationTypeList='toLocationTypeList'>
:locationTypeList='tolocationTypeList'> </com-receipt-detail-card>
</com-detail-card>
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
@ -32,7 +31,7 @@
<view class=""> <view class="">
<requiredLocation ref='comScanLocation' title="目标库位" :locationCode="toLocationCode" <requiredLocation ref='comScanLocation' title="目标库位" :locationCode="toLocationCode"
@getLocation='scanLocationCode' :isShowEdit="jobContent.allowModifyLocation == 'TRUE'" @getLocation='scanLocationCode' :isShowEdit="jobContent.allowModifyLocation == 'TRUE'"
:locationTypeList="tolocationTypeList"></requiredLocation> :locationTypeList="toLocationTypeList"></requiredLocation>
</view> </view>
<view class=" uni-flex uni-row"> <view class=" uni-flex uni-row">
<button class="btn_single_commit" hover-class="btn_commit_after" @click="commit">提交</button> <button class="btn_single_commit" hover-class="btn_commit_after" @click="commit">提交</button>
@ -85,6 +84,7 @@
import comDetailCard from "@/mycomponents/detail/comDetailCard.vue" import comDetailCard from "@/mycomponents/detail/comDetailCard.vue"
import detailInfoPopup from '@/pages/transfer/coms/detailInfoPopup.vue' import detailInfoPopup from '@/pages/transfer/coms/detailInfoPopup.vue'
import jobTop from '@/mycomponents/job/jobTop.vue' import jobTop from '@/mycomponents/job/jobTop.vue'
import comReceiptDetailCard from '@/pages/transfer/coms/comReceiptDetailCard.vue'
export default { export default {
name: 'returnDetail', name: 'returnDetail',
@ -95,7 +95,8 @@
winScanPack, winScanPack,
comDetailCard, comDetailCard,
detailInfoPopup, detailInfoPopup,
jobTop jobTop,
comReceiptDetailCard
}, },
data() { data() {
return { return {
@ -108,7 +109,7 @@
toLocationCode: "", toLocationCode: "",
businessTypeInfo: {}, businessTypeInfo: {},
managementList: [], managementList: [],
tolocationTypeList: [] toLocationTypeList: []
}; };
}, },
onLoad(option) { onLoad(option) {
@ -195,7 +196,7 @@
that.detailSource = getDataSource(that.subList) that.detailSource = getDataSource(that.subList)
that.fromLocationCode = that.subList[0].fromLocationCode that.fromLocationCode = that.subList[0].fromLocationCode
that.toLocationCode = that.subList[0].toLocationCode that.toLocationCode = that.subList[0].toLocationCode
that.tolocationTypeList = getDirectoryItemArray(that.jobContent.toLocationTypes) that.toLocationTypeList = getDirectoryItemArray(that.jobContent.toLocationTypes)
} else { } else {
that.showMessage('列表数据为0'); that.showMessage('列表数据为0');
} }
@ -258,11 +259,10 @@
this.detailSource[0].subList.sort(compareAsc('scaned')); // this.detailSource[0].subList.sort(compareAsc('scaned')); //
itemDetail.handleQty = Number(result.label.qty); itemDetail.handleQty = Number(result.label.qty);
itemDetail.toLocationCode = this.toLocationCode; itemDetail.toLocationCode = this.toLocationCode;
itemDetail.stdPackQty = result.package.stdPackQty
itemDetail.labelQty = Number(result.label.qty); itemDetail.labelQty = Number(result.label.qty);
calcHandleQty(this.detailSource); calcHandleQty(this.detailSource);
this.continueScan() this.continueScan()
this.$forceUpdate()
var list = this.detailSource[0].subList;
} }
} }
} }

2
pages/unPlanned/coms/comReceiptDetailCard.vue

@ -3,7 +3,7 @@
<uni-collapse ref="collapse1" @change=""> <uni-collapse ref="collapse1" @change="">
<uni-collapse-item :open="true"> <uni-collapse-item :open="true">
<template v-slot:title> <template v-slot:title>
<item-qty :dataContent="dataContent" :handleQty="dataContent.handleQty"></item-qty> <item-qty :dataContent="dataContent" :handleQty="dataContent.handleQty" :showItemQty ="false"></item-qty>
</template> </template>
<u-line /> <u-line />
<view class="" v-for="(item,index) in dataContent.subList"> <view class="" v-for="(item,index) in dataContent.subList">

Loading…
Cancel
Save