You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
177 lines
4.8 KiB
177 lines
4.8 KiB
<template>
|
|
<view class="" style="background-color: #fff;">
|
|
<u-collapse ref="collapse1">
|
|
<u-collapse-item :open="true">
|
|
<template v-slot:title>
|
|
<u-swipe-action ref="swipeAction" :options="removeOptions" @click="removeData($event,dataContent)">
|
|
<item-qty :dataContent="dataContent"
|
|
:isShowBalanceQty="false"
|
|
:isShowBalance="true"></item-qty>
|
|
</u-swipe-action>
|
|
</template>
|
|
|
|
<view class="" v-for="(item,index) in dataContent.subList">
|
|
<u-swipe-action ref="swipeAction" :options="item.scaned?scanOptions:detailOptions"
|
|
@click="swipeClick($event,item,index)">
|
|
<comMovebalance :dataContent="item" :isShowStdPack="false" :isShowPack="true"
|
|
:fromInventoryStatus="item.inventoryStatus" :toInventoryStatus="item.toInventoryStatus"
|
|
:isShowLocation="true" :allowEditStatus='allowEditStatus'></comMovebalance>
|
|
</u-swipe-action>
|
|
<view class='split_line'></view>
|
|
</view>
|
|
</u-collapse-item>
|
|
</u-collapse>
|
|
<balanceQtyEdit ref="balanceQtyEdit" @confirm="confirm" :isShowStatus="isShowStatus"
|
|
:allowEditStatus="allowEditStatus"
|
|
:allowEditQty="allowEditQty"
|
|
>
|
|
</balanceQtyEdit>
|
|
<job-detail-popup ref="winHint" :dataContent="showItem"></job-detail-popup>
|
|
<comMessage ref="comMessage"></comMessage>
|
|
</view>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import itemQty from '@/mycomponents/item/itemQty.vue'
|
|
import recommend from '@/mycomponents/recommend/recommend.vue'
|
|
import jobDetailPopup from '@/mycomponents/job/jobDetailPopup.vue'
|
|
import balance from '@/mycomponents/balance/balance.vue'
|
|
import balanceMove from '@/mycomponents/balance/balanceMove.vue'
|
|
import comMovebalance from '@/pages/inventoryMove/coms/comMovebalance.vue'
|
|
import balanceQtyEdit from '@/mycomponents/qty/balanceQtyEdit.vue'
|
|
|
|
import {
|
|
getDetailOption,
|
|
getDetailRemoveOption,
|
|
getRemoveOption
|
|
} from '@/common/array.js';
|
|
import {ref, watch, onMounted, nextTick} from 'vue';
|
|
|
|
// 定义 props
|
|
const props = defineProps({
|
|
dataContent: {
|
|
type: Object,
|
|
default: () => ({})
|
|
},
|
|
settingParam: {
|
|
type: Object,
|
|
default: () => ({})
|
|
},
|
|
fromInventoryStatus: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
toInventoryStatus: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
isShowStatus: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
allowEditStatus: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
allowEditQty: {
|
|
type: Boolean,
|
|
default: false
|
|
}
|
|
});
|
|
|
|
// 定义 emits
|
|
const emit = defineEmits(['removeData', 'removePack', 'updateData']);
|
|
|
|
// 响应式数据
|
|
const option = ref([]);
|
|
const title = ref("推荐详情");
|
|
const showItem = ref({});
|
|
const editItem = ref({});
|
|
const detailOptions = ref([]);
|
|
const scanOptions = ref([]);
|
|
const removeOptions = ref([]);
|
|
const dataList = ref([]);
|
|
|
|
const collapse1 = ref(null);
|
|
const comMessage = ref(null);
|
|
const balanceQtyEdit = ref(null);
|
|
const winHint = ref(null);
|
|
|
|
// 监听 dataContent 变化
|
|
watch(() => props.dataContent, (newVal, oldVal) => {
|
|
if (newVal?.subList?.length > 0) {
|
|
nextTick(() => {
|
|
setTimeout(() => {
|
|
if (collapse1.value) {
|
|
collapse1.value.init();
|
|
}
|
|
}, 500);
|
|
});
|
|
}
|
|
}, {immediate: true, deep: true});
|
|
|
|
// 生命周期钩子
|
|
onMounted(() => {
|
|
detailOptions.value = getDetailOption();
|
|
scanOptions.value = getDetailRemoveOption();
|
|
removeOptions.value = getRemoveOption();
|
|
});
|
|
|
|
// 方法
|
|
const removeData = (e, dataContent) => {
|
|
if (e.content.text === "移除") {
|
|
comMessage.value.showQuestionMessage("确定移除扫描信息?", res => {
|
|
if (res) {
|
|
emit('removeData', dataContent);
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
const swipeClick = (e, item, index) => {
|
|
if (e.content.text === "详情") {
|
|
detail(item);
|
|
} else if (e.content.text === "编辑") {
|
|
edit(item);
|
|
} else if (e.content.text === "移除") {
|
|
remove(item, index);
|
|
}
|
|
};
|
|
|
|
const edit = (item) => {
|
|
editItem.value = item;
|
|
balanceQtyEdit.value.openEditPopup(item, item.qty);
|
|
};
|
|
|
|
const detail = (item) => {
|
|
showItem.value = item;
|
|
dataList.value = [
|
|
{title: "箱码", content: item.packingNumber},
|
|
{title: "批次", content: item.batch},
|
|
{title: "库位", content: item.locationCode},
|
|
{title: "数量", content: item.qty},
|
|
{title: "单位", content: item.uom}
|
|
];
|
|
winHint.value.openScanPopup(showItem.value);
|
|
};
|
|
|
|
const remove = (item, index) => {
|
|
comMessage.value.showQuestionMessage("确定移除扫描信息?", res => {
|
|
if (res) {
|
|
item.scaned = false;
|
|
item.balance = {};
|
|
item.handleQty = null;
|
|
emit('removePack', item);
|
|
}
|
|
});
|
|
};
|
|
|
|
const confirm = (qty) => {
|
|
editItem.value.handleQty = qty;
|
|
emit('updateData');
|
|
};
|
|
|
|
</script>
|
|
|
|
<style>
|
|
</style>
|
|
|