王志国
4 weeks ago
3 changed files with 765 additions and 2 deletions
@ -0,0 +1,349 @@ |
|||
<template> |
|||
<view class="uni-flex" style="flex-direction: column;;"> |
|||
|
|||
|
|||
<job-filter ref="filter" otherTitle="ASN" :isShowProductionLineCode="false" :isShowItemCode="false" |
|||
:isShowQurery='true' @onQuery="getListByFilter"> |
|||
</job-filter> |
|||
<com-empty-view v-if="recordList.length==0"></com-empty-view> |
|||
<view v-if="recordList.length>0"> |
|||
<u-swipe-action ref="swipeAction" v-for="(item, index) in recordList" :key="index"> |
|||
<view > |
|||
<comReturnRecordCard :dataContent="item" @click='openJobDetail(item)'> |
|||
</comReturnRecordCard> |
|||
</view> |
|||
</u-swipe-action> |
|||
|
|||
<job-list-popup ref="jobListPopup" @selectedItem="selectedItem"></job-list-popup> |
|||
<job-info-popup ref='jobInfoPopup'></job-info-popup> |
|||
|
|||
<uni-load-more :status="loadingType" /> |
|||
</view> |
|||
<win-scan-button @goScan='openScanPopup' v-if="recordList.length>0"></win-scan-button> |
|||
<winScanPackJob ref="scanPopup" @getResult='getScanResult'></winScanPackJob> |
|||
<jobList ref="recordList" @selectItem="selectItem"></jobList> |
|||
<comMessage ref="comMessage"></comMessage> |
|||
</view> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import {getInventoryMoveRecordList,} from '@/api/request2.js'; |
|||
import {goHome, updateTitle} from '@/common/basic.js'; |
|||
import {planRefreshTime, productionReceiptJobFilter} from '@/common/config.js'; |
|||
|
|||
import {getDetailOption, getDetailGiveupOption} from '@/common/array.js'; |
|||
|
|||
import comEmptyView from '@/mycomponents/common/comEmptyView.vue' |
|||
import jobFilter from '@/mycomponents/job/jobFilter.vue' |
|||
import comReturnRecordCard from '@/pages/customerReturn/coms/comReturnRecordCard.vue' |
|||
import jobListPopup from '@/pages/productionReceipt/coms/jobListPopup.vue' |
|||
import jobInfoPopup from '@/pages/productionReceipt/coms/jobInfoPopup.vue' |
|||
import winScanButton from '@/mycomponents/scan/winScanButton.vue' |
|||
import winScanPackJob from "@/mycomponents/scan/winScanPackJob.vue" |
|||
import jobList from '@/mycomponents/jobList/jobList.vue' |
|||
|
|||
|
|||
import { |
|||
ref, |
|||
onMounted, |
|||
onBeforeMount, |
|||
onBeforeUnmount, |
|||
onActivated, |
|||
onDeactivated, |
|||
onUpdated, |
|||
onRenderTracked, |
|||
onRenderTriggered |
|||
} from 'vue'; |
|||
import { |
|||
onLoad, |
|||
onShow, |
|||
onReady, |
|||
onReachBottom, |
|||
onPullDownRefresh, |
|||
onBackPress, |
|||
onNavigationBarButtonTap |
|||
} from '@dcloudio/uni-app' |
|||
|
|||
const props = defineProps({ |
|||
|
|||
}); |
|||
|
|||
const emit = defineEmits(['someEvent']); |
|||
|
|||
const recordList = ref([]); |
|||
const pageNo = ref(1); |
|||
const pageSize = ref(10); |
|||
const totalCount = ref(0); |
|||
const loadingType = ref("nomore"); |
|||
const checkedToday = ref(false); |
|||
const checkedWaitTask = ref(false); |
|||
const todayTime = ref(""); |
|||
const detailOptions = ref([]); |
|||
const detailGiveupOptions = ref([]); |
|||
const title = ref(''); |
|||
const scanMessage = ref(""); |
|||
const filterItemCode = ref(""); |
|||
const queryParams = ref({ |
|||
creationTime: "", |
|||
receiveStatus: "", |
|||
itemCode: "" |
|||
}); |
|||
|
|||
const filter = ref(null); |
|||
const jobListPopup = ref(null); |
|||
const jobInfoPopup = ref(null); |
|||
const comMessage = ref(null); |
|||
const scanPopup = ref(null); |
|||
const recordList = ref(null); |
|||
|
|||
|
|||
onLoad((option) => { |
|||
title.value = option.title; |
|||
}); |
|||
|
|||
onShow(() => { |
|||
getList('refresh'); |
|||
}); |
|||
|
|||
onReady(() => { |
|||
detailOptions.value = getDetailOption(); |
|||
detailGiveupOptions.value = getDetailGiveupOption(); |
|||
}); |
|||
|
|||
onReachBottom(() => { |
|||
// 避免多次触发 |
|||
if (loadingType.value === 'loading' || loadingType.value === 'nomore') { |
|||
return; |
|||
} |
|||
getList('more'); |
|||
}); |
|||
|
|||
onPullDownRefresh(() => { |
|||
getList('refresh'); |
|||
}); |
|||
|
|||
onBackPress((options) => { |
|||
if (options.from === 'navigateBack') { |
|||
uni.navigateBack({ |
|||
delta: 1 |
|||
}); |
|||
return false; |
|||
} |
|||
}); |
|||
|
|||
onNavigationBarButtonTap((e) => { |
|||
if (e.index === 0) { |
|||
goHome(); |
|||
} else if (e.index === 1) { |
|||
filter.value.openFilter(); |
|||
} |
|||
}); |
|||
|
|||
const setQueryParam = () => { |
|||
const filterParams = []; |
|||
|
|||
// 只看当天 |
|||
if (queryParams.value.creationTime) { |
|||
filterParams.push({ |
|||
column: "create_time", |
|||
action: "between", |
|||
value: queryParams.value.creationTime |
|||
}); |
|||
} |
|||
|
|||
// 只看待处理 |
|||
if (queryParams.value.receiveStatus) { |
|||
filterParams.push({ |
|||
column: "receiveStatus", |
|||
action: "in", |
|||
value: queryParams.value.receiveStatus |
|||
}); |
|||
} else { |
|||
filterParams.push({ |
|||
column: "receiveStatus", |
|||
action: "in", |
|||
value: "0" |
|||
}); |
|||
} |
|||
|
|||
// 物料代码 |
|||
if (queryParams.value.itemCode) { |
|||
filterParams.push({ |
|||
column: "itemCode", |
|||
action: "like", |
|||
value: queryParams.value.itemCode |
|||
}); |
|||
filterItemCode.value = queryParams.value.itemCode; |
|||
} else if (filterItemCode.value) { |
|||
filterParams.push({ |
|||
column: "itemCode", |
|||
action: "like", |
|||
value: filterItemCode.value |
|||
}); |
|||
} |
|||
|
|||
return filterParams; |
|||
}; |
|||
|
|||
const getList = (type) => { |
|||
uni.showLoading({ |
|||
title: "加载中....", |
|||
mask: true |
|||
}); |
|||
|
|||
loadingType.value = "loading"; |
|||
if (type === "refresh") { |
|||
pageNo.value = 1; |
|||
recordList.value = []; |
|||
} |
|||
|
|||
const queryFiltersParams = setQueryParam(); |
|||
const params = { |
|||
filters: queryFiltersParams, |
|||
pageNo: pageNo.value, |
|||
pageSize: pageSize.value, |
|||
}; |
|||
|
|||
console.log("查询条件", JSON.stringify(params)); |
|||
|
|||
getInventoryMoveRecordList(params).then((res) => { |
|||
uni.hideLoading(); |
|||
if (type === "refresh") { |
|||
uni.stopPullDownRefresh(); |
|||
} |
|||
|
|||
const list = res.data.list; |
|||
totalCount.value = res.data.total; |
|||
updateTitle(title.value + " (" + totalCount.value + ")"); |
|||
loadingType.value = "loadmore"; |
|||
|
|||
if (!list || list.length === 0) { |
|||
loadingType.value = "nomore"; |
|||
return; |
|||
} |
|||
|
|||
list.forEach((item) => { |
|||
item.packingNumber = item.toPackingNumber; |
|||
}); |
|||
|
|||
recordList.value = type === "refresh" ? list : recordList.value.concat(list); |
|||
pageNo.value++; |
|||
}).catch((error) => { |
|||
if (type === "refresh") { |
|||
uni.stopPullDownRefresh(); |
|||
} |
|||
loadingType.value = ""; |
|||
updateTitle(title.value); |
|||
uni.hideLoading(); |
|||
showMessage(error); |
|||
}); |
|||
}; |
|||
|
|||
const openJobDetail = (item, scanMes = '') => { |
|||
uni.navigateTo({ |
|||
url: `./recordListDetail?id=${item.masterId}&receiveStatus=${item.receiveStatus}&scanMessage=${scanMes}&title=${title.value}` |
|||
}); |
|||
scanMessage.value = ""; |
|||
}; |
|||
|
|||
const showItemList = (itemList) => { |
|||
jobListPopup.value.openPopup(itemList); |
|||
}; |
|||
|
|||
const selectedItem = (item) => { |
|||
openJobDetail(item); |
|||
}; |
|||
|
|||
const openjobInfoPopup = (item) => { |
|||
jobInfoPopup.value.openPopup(item); |
|||
}; |
|||
|
|||
const showMessage = (message) => { |
|||
if (scanPopup.value) { |
|||
scanPopup.value.packLoseFocus(); |
|||
} |
|||
comMessage.value.showErrorMessage(message, (res) => { |
|||
if (res && scanPopup.value) { |
|||
scanPopup.value.packGetFocus(); |
|||
} |
|||
}); |
|||
}; |
|||
|
|||
const openScanPopup = () => { |
|||
scanPopup.value.openScanPopup(); |
|||
}; |
|||
|
|||
const selectItem = (item) => { |
|||
scanPopup.value.closeScanPopup(); |
|||
openJobDetail(item, scanMessage.value); |
|||
}; |
|||
|
|||
const getScanResult = (result) => { |
|||
try { |
|||
scanMessage.value = ""; |
|||
const filters = [ |
|||
{ |
|||
column: "toPackingNumber", |
|||
action: "in", |
|||
value: `${result.package.number},${result.package.parentNumber}` |
|||
}, |
|||
{ |
|||
column: "receiveStatus", |
|||
action: "in", |
|||
value: '0' |
|||
}, |
|||
{ |
|||
column: "toBatch", |
|||
action: "==", |
|||
value: result.label.batch |
|||
}, |
|||
{ |
|||
column: "itemCode", |
|||
action: "==", |
|||
value: result.label.itemCode |
|||
}, |
|||
]; |
|||
|
|||
getInventoryMoveRecordList({ |
|||
filters: filters, |
|||
pageNo: 1, |
|||
pageSize: 100, |
|||
}).then((res) => { |
|||
scanMessage.value = result.scanMessage; |
|||
const resultList = res.data.list; |
|||
if (resultList.length > 0) { |
|||
resultList.forEach((item) => { |
|||
item.title = item.number; |
|||
item.selected = false; |
|||
}); |
|||
|
|||
const list = resultList.filter((item, index, self) => self.findIndex((t) => t.title === item.title) === index); |
|||
|
|||
if (list.length > 1) { |
|||
recordList.value.openList(list); |
|||
} else { |
|||
selectItem(list[0]); |
|||
} |
|||
} else { |
|||
showMessage(`未查找到任务\n扫描[${result.scanMessage}]`); |
|||
} |
|||
}).catch((error) => { |
|||
showMessage(`${error}\n扫描[${result.scanMessage}]`); |
|||
}); |
|||
} catch (e) { |
|||
showMessage(e.message); |
|||
} |
|||
}; |
|||
|
|||
const getListByFilter = (params) => { |
|||
queryParams.value.creationTime = params.creationTime; |
|||
queryParams.value.receiveStatus = params.receiveStatus; |
|||
queryParams.value.itemCode = params.itemCode; |
|||
getList('refresh'); |
|||
}; |
|||
|
|||
</script> |
|||
|
|||
<style scoped lang="scss"> |
|||
|
|||
</style> |
@ -0,0 +1,414 @@ |
|||
<template> |
|||
<view class="page-wraper"> |
|||
<view class="page-main"> |
|||
<view class="page-header"> |
|||
<view class="header-view"> |
|||
<view class="header_job_top"> |
|||
<receive-top :dataContent="recordContent"></receive-top> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view v-if="detailSource.length>0" class="uni-flex uni-row " |
|||
style=";margin-top: 15rpx; margin-bottom: 15rpx; margin-left: 20rpx; text-align: right;"> |
|||
<view class="font_default" style="display: block; font-weight: bold;"> |
|||
整单接收 |
|||
</view> |
|||
<view class="uni-flex" style="margin-left: 20rpx; align-items: center; text-align: center;"> |
|||
<u-switch v-model="isAllReceived" active-color="#5FCB94" inactive-color="#eee" size="35" |
|||
@change="switchChange"></u-switch> |
|||
</view> |
|||
</view> |
|||
<scroll-view scroll-y="true"> |
|||
<view class="detail-list" v-for="(item, index) in detailSource" :key="item.id"> |
|||
<view class=""> |
|||
<com-detail-card :dataContent="item" :index="index" :settingParam="recordContent" |
|||
@remove="updateData" :isShowToLocation="true" @updateData="updateData" |
|||
@openDetail="openDetail"> |
|||
</com-detail-card> |
|||
|
|||
<view class='split_line'></view> |
|||
</view> |
|||
|
|||
</view> |
|||
</scroll-view> |
|||
</view> |
|||
|
|||
<view class="page-footer"> |
|||
<view class="uni-flex u-col-center space-between padding_10" |
|||
style="background-color:ghostwhite; width: 100%; "> |
|||
<view class=" uni-flex uni-row"> |
|||
<button class="btn_single_commit" style="width: 280rpx;" hover-class="btn_commit_after" |
|||
@click="reject">拒绝 |
|||
</button> |
|||
</view> |
|||
<view class=" uni-flex uni-row"> |
|||
<button class="btn_single_commit" style="width: 280rpx;" hover-class="btn_commit_after" |
|||
@click="receive" :disabled="receiveDisable">接收 |
|||
</button> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<win-scan-button @goScan='openScanPopup'></win-scan-button> |
|||
<win-scan-pack ref="scanPopup" @getResult='getScanResult' headerType="HPQ,HMQ"></win-scan-pack> |
|||
|
|||
<detail-info-popup ref="detailInfoPopup"></detail-info-popup> |
|||
|
|||
<comMessage ref="comMessage"></comMessage> |
|||
</view> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
|
|||
import { |
|||
getInventoryMoveRecordDetail, |
|||
inventoryMoveRecordRefuse, |
|||
inventoryMoveRecordReceive, |
|||
} from '@/api/request2.js'; |
|||
import { |
|||
goHome, |
|||
navigateBack, |
|||
getCurrDateTime, |
|||
getInventoryStatusName, |
|||
getSwitchInfoByCode |
|||
} from '@/common/basic.js'; |
|||
import { |
|||
getDataSource, |
|||
calcHandleQty, |
|||
getScanCount |
|||
} from '@/common/detail.js'; |
|||
|
|||
import winScanButton from '@/mycomponents/scan/winScanButton.vue' |
|||
import comDetailCard from "@/mycomponents/detail/comDetailCard.vue" |
|||
import receiveTop from '@/mycomponents/receive/receiveTop.vue' |
|||
import winScanPack from '@/mycomponents/scan/winScanPack.vue' |
|||
import {ref} from 'vue'; |
|||
import { |
|||
onLoad, |
|||
onBackPress, |
|||
onNavigationBarButtonTap |
|||
} from '@dcloudio/uni-app' |
|||
|
|||
const props = defineProps({ |
|||
}); |
|||
|
|||
const emit = defineEmits(['someEvent']); |
|||
|
|||
const id = ref(''); |
|||
const scanCount = ref(0); |
|||
const recordContent = ref({}); |
|||
const subList = ref([]); |
|||
const detailSource = ref([]); |
|||
const fromLocationCode = ref(""); |
|||
const toLocationCode = ref(""); |
|||
const isAllReceived = ref(false); |
|||
const receiveDisable = ref(true); |
|||
|
|||
const detailInfoPopup = ref(null); |
|||
const scanPopup = ref(null); |
|||
const comMessage = ref(null); |
|||
|
|||
onLoad((option) => { |
|||
uni.setNavigationBarTitle({ |
|||
title: option.title + '详情' |
|||
}); |
|||
id.value = option.id; |
|||
if (id.value !== undefined) { |
|||
if (option.receiveStatus === "0") { |
|||
getDetail(); |
|||
} |
|||
} |
|||
}); |
|||
|
|||
onNavigationBarButtonTap((e) => { |
|||
if (e.index === 0) { |
|||
goHome(); |
|||
} |
|||
}); |
|||
|
|||
onBackPress((e) => { |
|||
if (e.from === 'backbutton') { |
|||
uni.navigateBack(); |
|||
return true; |
|||
} |
|||
}); |
|||
|
|||
const getDetail = () => { |
|||
uni.showLoading({ |
|||
title: "加载中....", |
|||
mask: true |
|||
}); |
|||
getInventoryMoveRecordDetail(id.value).then((res) => { |
|||
uni.hideLoading(); |
|||
isAllReceived.value = false; |
|||
receiveDisable.value = true; |
|||
if (res.data == null) { |
|||
showMessage('未获取到详情'); |
|||
} else { |
|||
if (res.data.list.length > 0) { |
|||
recordContent.value = res.data.list[0]; |
|||
subList.value = res.data.list; |
|||
subList.value.forEach((item) => { |
|||
item.batch = item.toBatch; |
|||
item.packingNumber = item.toPackingNumber; |
|||
item.inventoryStatus = item.fromInventoryStatus; |
|||
item.toInventoryStatus = item.toInventoryStatus; |
|||
}); |
|||
detailSource.value = getDataSource(subList.value); |
|||
} else { |
|||
showMessage('列表数据为0'); |
|||
} |
|||
} |
|||
}).catch((error) => { |
|||
uni.hideLoading(); |
|||
showErrorMessage(error); |
|||
}); |
|||
}; |
|||
|
|||
const calcHandleQty = () => { |
|||
calcHandleQty(detailSource.value); |
|||
updateBtn(); |
|||
continueScan(); |
|||
// $forceUpdate() 在 Vue 3 中不需要 |
|||
}; |
|||
|
|||
const updateBtn = () => { |
|||
scanCount.value = getScanCount(subList.value); |
|||
if (scanCount.value === subList.value.length) { |
|||
receiveDisable.value = false; |
|||
} else { |
|||
receiveDisable.value = true; |
|||
} |
|||
}; |
|||
|
|||
const continueScan = () => { |
|||
scanCount.value = getScanCount(subList.value); |
|||
if (scanCount.value === subList.value.length) { |
|||
closeScanPopup(); |
|||
} else { |
|||
scanPopupGetFocus(); |
|||
} |
|||
}; |
|||
|
|||
const updateData = () => { |
|||
calcHandleQty(); |
|||
updateBtn(); |
|||
}; |
|||
|
|||
const openDetail = (item) => { |
|||
detailInfoPopup.value.openPopup(item); |
|||
}; |
|||
|
|||
const openScanPopup = () => { |
|||
scanPopup.value.openScanPopup(); |
|||
}; |
|||
|
|||
const closeScanPopup = () => { |
|||
scanPopup.value.closeScanPopup(); |
|||
}; |
|||
|
|||
const getScanResult = (result) => { |
|||
try { |
|||
const itemCode = result.label.itemCode; |
|||
const packingNumber = result.package.number; |
|||
const batch = result.label.batch; |
|||
const detail = detailSource.value.find((r) => r.itemCode === itemCode); |
|||
|
|||
if (detail === undefined) { |
|||
showErrorMessage(`物料号【${itemCode}】不在列表中`); |
|||
} else { |
|||
const itemDetail = detail.subList.find((r) => r.packingNumber === packingNumber && r.batch === batch); |
|||
if (itemDetail === undefined) { |
|||
showErrorMessage(`箱码[${packingNumber}]批次[${batch}]不在列表中`); |
|||
} else { |
|||
if (itemDetail.scaned) { |
|||
showErrorMessage(`箱码[${packingNumber}]批次[${batch}]已经扫描`); |
|||
} else { |
|||
itemDetail.scaned = true; |
|||
itemDetail.handleQty = Number(itemDetail.qty); |
|||
calcHandleQty(); |
|||
} |
|||
} |
|||
} |
|||
} catch (e) { |
|||
showMessage(e.message); |
|||
} |
|||
}; |
|||
|
|||
const reject = () => { |
|||
showQuestionMessage("是否拒绝接收?", (res) => { |
|||
if (res) { |
|||
uni.showLoading({ |
|||
title: "提交中....", |
|||
mask: true |
|||
}); |
|||
inventoryMoveRecordRefuse(id.value).then((res) => { |
|||
uni.hideLoading(); |
|||
if (res.data) { |
|||
showCommitSuccessMessage("拒绝成功"); |
|||
} else { |
|||
showErrorMessage(`拒绝失败[${res.msg}]`); |
|||
} |
|||
}).catch((error) => { |
|||
uni.hideLoading(); |
|||
showErrorMessage(error); |
|||
}); |
|||
} |
|||
}); |
|||
}; |
|||
|
|||
const receive = () => { |
|||
scanCount.value = getScanCount(subList.value); |
|||
if (scanCount.value === 0) { |
|||
showErrorMessage("扫描数为0,请先扫描"); |
|||
return; |
|||
} |
|||
if (scanCount.value < subList.value.length) { |
|||
showErrorMessage("还有未扫描的数据,请先扫描"); |
|||
return; |
|||
} |
|||
|
|||
if (scanCount.value === subList.value.length) { |
|||
receiveSubmit(); |
|||
} |
|||
}; |
|||
|
|||
const showMessageHint = (hint, callback) => { |
|||
comMessage.value.showErrorMessage(hint, (res) => { |
|||
if (res) { |
|||
callback(); |
|||
} |
|||
}); |
|||
}; |
|||
|
|||
const receiveSubmit = () => { |
|||
uni.showLoading({ |
|||
title: "提交中....", |
|||
mask: true |
|||
}); |
|||
inventoryMoveRecordReceive(id.value).then((res) => { |
|||
uni.hideLoading(); |
|||
if (res.data) { |
|||
showCommitSuccessMessage("接收成功"); |
|||
} else { |
|||
showErrorMessage(`接收失败[${res.msg}]`); |
|||
} |
|||
}).catch((error) => { |
|||
uni.hideLoading(); |
|||
showErrorMessage(error); |
|||
}); |
|||
}; |
|||
|
|||
const showMessage = (message) => { |
|||
setTimeout(() => { |
|||
scanPopupLoseFocus(); |
|||
comMessage.value.showMessage(message, (res) => { |
|||
if (res) { |
|||
afterCloseMessage(); |
|||
} |
|||
}); |
|||
}); |
|||
}; |
|||
|
|||
const showErrorMessage = (message) => { |
|||
setTimeout(() => { |
|||
scanPopupLoseFocus(); |
|||
comMessage.value.showErrorMessage(message, (res) => { |
|||
if (res) { |
|||
afterCloseMessage(); |
|||
} |
|||
}); |
|||
}); |
|||
}; |
|||
|
|||
const showQuestionMessage = (message, callback) => { |
|||
setTimeout(() => { |
|||
scanPopupLoseFocus(); |
|||
comMessage.value.showQuestionMessage(message, (res) => { |
|||
if (res) { |
|||
callback(res); |
|||
} |
|||
}); |
|||
}); |
|||
}; |
|||
|
|||
const scanPopupGetFocus = () => { |
|||
if (scanPopup.value) { |
|||
scanPopup.value.getfocus(); |
|||
} |
|||
}; |
|||
|
|||
const scanPopupLoseFocus = () => { |
|||
if (scanPopup.value) { |
|||
scanPopup.value.losefocus(); |
|||
} |
|||
}; |
|||
|
|||
const afterCloseMessage = () => { |
|||
scanPopupGetFocus(); |
|||
}; |
|||
|
|||
const showCommitSuccessMessage = (hint) => { |
|||
comMessage.value.showSuccessMessage(hint, (res) => { |
|||
navigateBack(1); |
|||
}); |
|||
}; |
|||
|
|||
const switchChange = (isOn) => { |
|||
isAllReceived.value = isOn; |
|||
if (isAllReceived.value) { |
|||
detailSource.value.forEach((item) => { |
|||
item.subList.forEach((info) => { |
|||
info.scaned = true; |
|||
info.handleQty = Number(info.qty); |
|||
}); |
|||
}); |
|||
calcHandleQty(); |
|||
} else { |
|||
showQuestionMessage("是否要关闭整单收货?", (res) => { |
|||
if (res) { |
|||
getDetail(); |
|||
} else { |
|||
isAllReceived.value = true; |
|||
} |
|||
}); |
|||
} |
|||
}; |
|||
</script> |
|||
|
|||
<style scoped lang="scss"> |
|||
page { |
|||
width: 100%; |
|||
height: 100%; |
|||
background-color: #fff; |
|||
} |
|||
|
|||
.page-wraper { |
|||
display: flex; |
|||
flex-direction: column; |
|||
width: 100%; |
|||
height: 100%; |
|||
} |
|||
|
|||
|
|||
.page-main { |
|||
flex: 1; |
|||
position: relative; |
|||
} |
|||
|
|||
.page-main-scroll { |
|||
position: absolute; |
|||
left: 0; |
|||
right: 0; |
|||
top: 0; |
|||
bottom: 0; |
|||
} |
|||
|
|||
.page-main-list { |
|||
/* height: 80rpx; |
|||
line-height: 80rpx; */ |
|||
text-align: center; |
|||
background: #e0e0e0; |
|||
|
|||
} |
|||
</style> |
Loading…
Reference in new issue