<template>
|
<div class="page">
|
<!-- 头部信息(转库单) -->
|
<div class="page_info" v-if="info.wtransfer && route.query.type == 7">
|
<div class="page_info_title">计划出库日期:{{info.wtransfer.outPlandate}}</div>
|
<div class="page_info_list">
|
<div class="page_info_list_item">
|
<div class="page_info_list_item_label">来源类型:</div>
|
<div class="page_info_list_item_nr" v-if="info.wtransfer.originType === 0">采购订单</div>
|
<div class="page_info_list_item_nr" v-else-if="info.wtransfer.originType === 1">生产工单</div>
|
<div class="page_info_list_item_nr" v-else-if="info.wtransfer.originType === 2">销售订单</div>
|
<div class="page_info_list_item_nr" v-else-if="info.wtransfer.originType === 3">转库单</div>
|
<div class="page_info_list_item_nr" v-else-if="info.wtransfer.originType === 4">盘点单</div>
|
<div class="page_info_list_item_nr" v-else>-</div>
|
</div>
|
<!-- <div class="page_info_list_item">-->
|
<!-- <div class="page_info_list_item_label">申领工序:</div>-->
|
<!-- <div class="page_info_list_item_nr">{{info.wtransfer.procedureName ? info.wtransfer.procedureName : '-'}}</div>-->
|
<!-- </div>-->
|
<div class="page_info_list_item">
|
<div class="page_info_list_item_label">来源单号:</div>
|
<div class="page_info_list_item_nr">{{info.wtransfer.originCode ? info.wtransfer.originCode : '-'}}</div>
|
</div>
|
<div class="page_info_list_item">
|
<div class="page_info_list_item_label">申请人员:</div>
|
<div class="page_info_list_item_nr">{{info.wtransfer.outUserName}}/{{info.wtransfer.outDepartName}}</div>
|
</div>
|
<div class="page_info_list_item">
|
<div class="page_info_list_item_label">入库接收人:</div>
|
<div class="page_info_list_item_nr">{{info.wtransfer.inUserName}}</div>
|
</div>
|
<div class="page_info_list_item">
|
<div class="page_info_list_item_label">申请时间:</div>
|
<div class="page_info_list_item_nr">{{info.wtransfer.createTime ? info.wtransfer.createTime : '-'}}</div>
|
</div>
|
</div>
|
<div class="page_info_bz" v-if="info.wtransfer.abstracts">
|
<div class="page_info_bz_title">转库备注:</div>
|
<div class="page_info_bz_nr">{{info.wtransfer.abstracts}}</div>
|
</div>
|
</div>
|
<!-- 头部信息(出库单) -->
|
<div class="page_info" v-if="info.woutbound && route.query.type == 8">
|
<div class="page_info_title">计划出库日期:{{info.woutbound.planDate}}</div>
|
<div class="page_info_list">
|
<div class="page_info_list_item">
|
<div class="page_info_list_item_label">来源类型:</div>
|
<div class="page_info_list_item_nr" v-if="info.woutbound.originType === 0">采购订单</div>
|
<div class="page_info_list_item_nr" v-else-if="info.woutbound.originType === 1">生产工单</div>
|
<div class="page_info_list_item_nr" v-else-if="info.woutbound.originType === 2">销售订单</div>
|
<div class="page_info_list_item_nr" v-else-if="info.woutbound.originType === 3">转库单</div>
|
<div class="page_info_list_item_nr" v-else-if="info.woutbound.originType === 4">盘点单</div>
|
<div class="page_info_list_item_nr" v-else>-</div>
|
</div>
|
<!-- <div class="page_info_list_item">-->
|
<!-- <div class="page_info_list_item_label">申领工序:</div>-->
|
<!-- <div class="page_info_list_item_nr">{{info.woutbound.procedureName ? info.woutbound.procedureName : '-'}}</div>-->
|
<!-- </div>-->
|
<div class="page_info_list_item">
|
<div class="page_info_list_item_label">来源单号:</div>
|
<div class="page_info_list_item_nr">{{info.woutbound.originCode ? info.woutbound.originCode : '-'}}</div>
|
</div>
|
<div class="page_info_list_item">
|
<div class="page_info_list_item_label">申请人员:</div>
|
<div class="page_info_list_item_nr">{{info.woutbound.userName}}/{{info.woutbound.userDepartName}}</div>
|
</div>
|
<div class="page_info_list_item">
|
<div class="page_info_list_item_label">申请时间:</div>
|
<div class="page_info_list_item_nr">{{info.woutbound.createTime ? info.woutbound.createTime : '-'}}</div>
|
</div>
|
</div>
|
<div class="page_info_bz" v-if="info.woutbound.abstracts">
|
<div class="page_info_bz_title">转库备注:</div>
|
<div class="page_info_bz_nr">{{info.woutbound.abstracts}}</div>
|
</div>
|
</div>
|
<div class="page_h"></div>
|
<!-- 打开选择工装 -->
|
<!-- <div class="switch" v-if="type === QRCodeType.ZKD.toString()">-->
|
<!-- <button @click="openxz"><img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="">手动选择</button>-->
|
<!-- </div>-->
|
<!-- <div class="page_h" v-if="type === QRCodeType.ZKD.toString()"></div>-->
|
<!-- 待出物料 -->
|
<van-collapse v-model="activeNames">
|
<!-- 转库单(多个仓库) -->
|
<template v-if="route.query.type == 7">
|
<van-collapse-item :name="String(index + 1 )" v-for="(item, index) in info.wtransferWarehouseList" :key="index">
|
<template #title>
|
<div class="page_sfq"><img src="@/assets/icon/chuku_ic_cangku@2x.png" alt="" /> {{item.warehouseName}}</div>
|
</template>
|
<div class="page_dck">
|
<div class="page_dck_title">
|
<div class="page_dck_title_x"></div>
|
<span>待出库物料</span>
|
</div>
|
</div>
|
<div class="page_content" v-for="(items, idx) in item.wtransferDetailList" :key="idx">
|
<div class="page_content_title">
|
<div class="page_content_title_top">
|
<span>{{items.materialName}} | {{items.materialCode}}</span>
|
<span>待出 <span>{{items.outPlannum}}</span> {{items.unitName}}</span>
|
</div>
|
<div class="page_content_title_bottom">
|
<span class="green" v-if="items.qualityType === 0">合格 / </span>
|
<span class="warning" v-else-if="items.qualityType === 1">不良 / </span>
|
<span class="error" v-else-if="items.qualityType === 2">报废 / </span>
|
<span v-else>- / </span>
|
<span>{{items.procedureName ? items.procedureName : '-'}} / </span>
|
<span>{{items.batch ? items.batch : '-'}}</span>
|
</div>
|
</div>
|
<div class="page_content_list" v-for="(childer, idxs) in items.wstockExtListVOList" :key="idxs">
|
<div class="page_content_list_item">
|
<div class="page_content_list_item_label">出库货位:</div>
|
<div class="page_content_list_item_nr">{{childer.locationName}}</div>
|
</div>
|
<div class="page_content_list_items">
|
<div class="page_content_list_item_label">数量:</div>
|
<div class="page_content_list_item_nr">{{childer.num}}{{childer.unitName}}</div>
|
</div>
|
<div class="page_content_list_item">
|
<div class="page_content_list_item_label">批次号:</div>
|
<div class="page_content_list_item_nr">{{childer.batch ? childer.batch : '-'}}</div>
|
</div>
|
</div>
|
</div>
|
</van-collapse-item>
|
</template>
|
<!-- 出库单(一个仓库) -->
|
<template v-if="route.query.type == 8">
|
<van-collapse-item name="1">
|
<template #title>
|
<div class="page_sfq" v-if="info.woutbound">
|
<img src="@/assets/icon/chuku_ic_cangku@2x.png" alt="" /> {{info.woutbound.warehouseName}}
|
</div>
|
</template>
|
<div class="page_dck">
|
<div class="page_dck_title">
|
<div class="page_dck_title_x"></div>
|
<span>待出库物料</span>
|
</div>
|
</div>
|
<div class="page_content" v-for="(item, index) in info.woutboundDetailsWait" :key="index">
|
<div class="page_content_title">
|
<!-- <span>{{item.materialName}} | {{item.materialCode}}</span>-->
|
<!-- <span>待出 <span>{{item.num}}</span> {{item.unitName}}</span>-->
|
<div class="page_content_title_top">
|
<span>{{item.materialName}} | {{item.materialCode}}</span>
|
<span>待出 <span>{{item.num}}</span> {{item.unitName}}</span>
|
</div>
|
<div class="page_content_title_bottom">
|
<span class="green" v-if="item.qualityType === 0">合格 / </span>
|
<span class="warning" v-else-if="item.qualityType === 1">不良 / </span>
|
<span class="error" v-else-if="item.qualityType === 2">报废 / </span>
|
<span v-else>- / </span>
|
<span>{{item.procedureName ? item.procedureName : '-'}} / </span>
|
<span>{{item.batch ? item.batch : '-'}}</span>
|
</div>
|
</div>
|
<div class="page_content_list" v-for="(items, ind) in item.wstockExtListVOList" :key="ind">
|
<div class="page_content_list_item">
|
<div class="page_content_list_item_label">批次号:</div>
|
<div class="page_content_list_item_nr">{{items.batch ? items.batch : '-'}}</div>
|
</div>
|
<div class="page_content_list_items">
|
<div class="page_content_list_item_label">数量:</div>
|
<div class="page_content_list_item_nr">{{items.num}}{{items.umodel.name}}</div>
|
</div>
|
<div class="page_content_list_item" v-if="items.lmodel">
|
<div class="page_content_list_item_label">出库货位:</div>
|
<div class="page_content_list_item_nr">{{items.lmodel.unionName}}</div>
|
</div>
|
</div>
|
</div>
|
</van-collapse-item>
|
</template>
|
</van-collapse>
|
<div class="page_h"></div>
|
<!-- 已选物料 -->
|
<div class="page_yxwl">
|
<!-- 转库单(多个仓库) -->
|
<!-- <template v-if="route.query.type == 7">
|
<div class="page_yxwl_title">
|
<div class="left">
|
<div class="page_yxwl_title_x"></div>
|
<span>已选择物料</span>
|
</div>
|
<div class="right" v-if="type === QRCodeType.ZKD.toString()" @click="openxz">
|
<img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt=""><span>手动出库</span>
|
</div>
|
<div v-else></div>
|
</div>
|
<div class="page_yxwl_list" v-if="info.wtransferRedisCodeBeanList && info.wtransferRedisCodeBeanList.length > 0">
|
<template v-for="(item, index) in info.wtransferWarehouseList" :key="index">
|
<div class="page_yxwl_list_item" v-for="(item1, idx) in item.wtScanMaterialBeanList" :key="idx">
|
<div class="page_yxwl_list_item_top">
|
<div class="page_yxwl_list_item_top_left">{{item1.materialName}} | {{item1.materialCode}} </div>
|
<div class="page_yxwl_list_item_top_right">
|
<span>已选 <span>{{item1.scanNum}}</span> {{item1.unitName}}</span>
|
</div>
|
</div>
|
<div class="page_yxwl_list_item_sx">
|
<span class="green" v-if="item1.qualityType === 0">合格 <span>/</span></span>
|
<span class="yellow" v-else-if="item1.qualityType === 1">不良 <span>/</span></span>
|
<span class="red" v-else-if="item1.qualityType === 2">报废 <span>/</span></span>
|
<span> {{item1.procedureName ? item1.procedureName : '-'}} <span>/</span></span>
|
<span> {{item1.batch ? item1.batch : '-'}}</span>
|
</div>
|
<div class="page_yxwl_list_item_num" v-for="(item2, idx1) in item1.wtransferRedisCodeBeanList" :key="idx1">
|
<div class="item">
|
<div class="label"></div>
|
<div class="nr" v-if="item2.batch">{{item2.scanCode}} - {{item2.batch}}</div>
|
<div class="nr" v-else>{{item2.scanCode}}</div>
|
</div>
|
<div class="item">
|
<div class="label">数量:</div>
|
<div class="nr">{{item2.num}}{{item2.unitName}}</div>
|
</div>
|
<div class="dele" @click="dele(item2)">
|
<img src="@/assets/icon/chuku_ic_delete@2x.png" alt="" />
|
</div>
|
</div>
|
</div>
|
</template>
|
</div>
|
<div class="page_yxwl_kong" v-else><span>暂无数据</span></div>
|
</template> -->
|
<!-- 出库单(一个仓库) -->
|
<!-- <template v-if="route.query.type == 8"> -->
|
<div class="page_yxwl_title">
|
<!-- <div class="page_yxwl_title_x"></div>-->
|
<!-- <span>已选择物料</span>-->
|
<div class="left">
|
<div class="page_yxwl_title_x"></div>
|
<span>已选择物料</span>
|
</div>
|
<div class="right" @click="openxz">
|
<img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt=""><span>手动出库</span>
|
</div>
|
<!-- <div></div> -->
|
</div>
|
<div class="page_yxwl_list" v-if="outboundList.length > 0">
|
<!-- <template> -->
|
<div class="page_yxwl_list_item" v-for="(item, index) in outboundList" :key="index">
|
<div class="page_yxwl_list_item_top">
|
<div class="page_yxwl_list_item_top_left">{{ item.materialName }} | {{ item.materialCode }} </div>
|
<!-- <div class="page_yxwl_list_item_top_right">
|
<span>已选:<span>{{item.outPlannum}}</span> {{item.unitName}}</span>
|
</div> -->
|
</div>
|
<div class="page_yxwl_list_item_sx">
|
<span class="green" v-if="item.qualityType == 0">合格 <span>/</span></span>
|
<span class="yellow" v-else-if="item.qualityType == 1">不良 <span>/</span></span>
|
<span class="red" v-else-if="item.qualityType == 2">报废 <span>/</span></span>
|
<span v-else>- / </span>
|
<span> {{item.procedureName ? item.procedureName : '-'}} / </span>
|
<span> {{item.batch ? item.batch : '-'}}</span>
|
</div>
|
<div class="page_yxwl_list_item_num">
|
<div class="item">
|
<div class="label">出库货位:</div>
|
<div class="nr">
|
<span>{{ item.locationName }}</span>
|
</div>
|
</div>
|
<div class="item">
|
<div class="label">数量:</div>
|
<div class="nr">
|
<!-- @input="changeNum(item)" -->
|
<input type="number" v-model="item.num" placeholder="请输入">
|
<span>{{ item.unitName }}</span>
|
</div>
|
</div>
|
<div class="dele" @click="dele(index)">
|
<img src="@/assets/icon/chuku_ic_delete@2x.png" alt="" />
|
</div>
|
</div>
|
</div>
|
<!-- </template> -->
|
</div>
|
<div class="page_yxwl_kong" v-else><span>暂无数据</span></div>
|
<!-- </template> -->
|
</div>
|
<div class="page_zw"></div>
|
<!-- 操作按钮 -->
|
<div class="page_footer">
|
<button class="page_footer_qrck" v-preventReClick @click="submit">
|
<span>确认出库</span>
|
</button>
|
</div>
|
<Access :show="show" :transferId="(route.query.id as string)" :warehouseId="warehouseId" @close="closeBox" @value="getValue" />
|
</div>
|
</template>
|
|
<script setup lang="ts">
|
import { ref, onMounted } from 'vue'
|
import { useRoute, useRouter } from "vue-router"
|
import { Toast } from 'vant'
|
import { QRCodeType } from '@/enum'
|
import {
|
outScanAppliances,
|
wTransferForInOut,
|
wTransferForInOutUpload,
|
wOutBoundForInOut,
|
wOutBoundForUpload,
|
transferToOutNew
|
} from '@/apis/ExWarehouse'
|
import { useStore } from 'vuex'
|
import { getDB } from '@/apis/agencyAPI'
|
import Access from '@/components/common/Access.vue'
|
|
const route = useRoute()
|
const store = useStore()
|
const router = useRouter()
|
|
let dataItem: any = null // 已扫数据
|
|
let show = ref<boolean>(false)
|
let ids = ref<string>('') // 已选
|
let warehouseId = ref('') // 仓库id
|
let outboundList = ref<any[]>([]) // 出库数据
|
// 控制扫码显示隐藏
|
const openCode = ref<boolean>(false)
|
|
// 出库类型
|
let type: any = route.query.type
|
|
const activeNames = ref(['1']);
|
|
// 详情数据
|
let info: any = ref({})
|
|
// 打开手动选择工装弹框
|
const openxz = () => {
|
let arr: any = []
|
if (info.value.wtransferRedisCodeBeanList.length !== 0) {
|
info.value.wtransferRedisCodeBeanList.forEach((element: any) => {
|
arr.push(element.appliancesId)
|
})
|
ids.value = arr.join(',')
|
} else {
|
ids.value = ''
|
}
|
show.value = true
|
}
|
|
const closeBox = () => {
|
show.value = false
|
}
|
|
const changeNum = (item: any) => {
|
info.value.wtransferWarehouseList[0].wtransferDetailList.forEach((row: any) => {
|
if (row.materialId === item.materialId) {
|
if (Number(item.num) > Number(row.outPlannum)) {
|
item.num = 0
|
Toast.fail({ message: "出库物料数量不能大于待出库物料数量" })
|
}
|
}
|
})
|
}
|
|
// 提交工装
|
const getValue = async (val: any, i: number) => {
|
// if (i === 0) {
|
show.value = false
|
// }
|
|
|
for (let i = 0; i < info.value.wtransferWarehouseList[0].wtransferDetailList.length; i++) {
|
if (info.value.wtransferWarehouseList[0].wtransferDetailList[i].materialId == val.materialId &&
|
info.value.wtransferWarehouseList[0].wtransferDetailList[i].procedureId == val.procedureId &&
|
info.value.wtransferWarehouseList[0].wtransferDetailList[i].qualityType == val.qualityType &&
|
info.value.wtransferWarehouseList[0].wtransferDetailList[i].batch == val.batch) {
|
|
for (let s = 0; s < outboundList.value.length; s++) {
|
if (outboundList.value[s].newId == info.value.wtransferWarehouseList[0].wtransferDetailList[i].id) {
|
return Toast.fail({ message: "该物料批次已存在" })
|
}
|
}
|
|
let obj = JSON.parse(JSON.stringify(val))
|
obj.newId = info.value.wtransferWarehouseList[0].wtransferDetailList[i].id
|
outboundList.value.push(obj)
|
|
}
|
}
|
|
console.log(outboundList.value)
|
// let res = await outScanAppliances({
|
// barCode: val.prefix + val.code,
|
// pId: info.value.wtransfer.id,
|
// type: 1
|
// })
|
// if (res.code === 200) {
|
// let isData: string = ''
|
// info.value.wtransferWarehouseList.forEach((item: any) => {
|
// if (res.data.warehouseId === item.warehouseId) {
|
// item.wtransferDetailList.forEach((item1: any) => {
|
// if (item1.materialId !== res.data.materialId) {
|
// isData = 'wl'
|
// } else if (res.data.qualityType !== item1.qualityType) {
|
// isData = 'lx'
|
// } else if (res.data.procedureId !== item1.procedureId) {
|
// isData = 'gx'
|
// } else if (item1.batch ? res.data.batch !== item1.batch : false) {
|
// isData = 'pc'
|
// } else {
|
// isData = ''
|
// }
|
// if (item1.materialId == res.data.materialId && res.data.qualityType == item1.qualityType && res.data.procedureId == item1.procedureId && item1.batch ? res.data.batch == item1.batch : true) {
|
// dataItem = res.data
|
// dataItem.wtransferDetailId = item1.id
|
// dataItem.wtransferId = item1.transferId
|
// dataItem.appliancesId = res.data.id
|
// let rul = upload()
|
// return;
|
// }
|
// })
|
// } else {
|
// isData = 'ck'
|
// }
|
// if (isData === 'ck') {
|
// Toast.fail({ message: "仓库不一致" })
|
// } else if (isData === 'wl') {
|
// Toast.fail({ message: "物料不一致" })
|
// } else if (isData === 'lx') {
|
// Toast.fail({ message: "质量类型不一致" })
|
// } else if (isData === 'gx') {
|
// Toast.fail({ message: "工序不一致" })
|
// } else if (isData === 'pc') {
|
// Toast.fail({ message: "批次不一致" })
|
// }
|
// })
|
// }
|
// show.value = false
|
}
|
|
// 获取详情 (转库单/出库单)
|
const getInfo = () => {
|
let type: string = route.query.type as string
|
if (type === QRCodeType.CKD.toString()) {
|
console.log('出库单')
|
wOutBoundForInOut({
|
id: Number(route.query.id),
|
wOutboundType: 0
|
}).then(res => {
|
if (res.code === 200) {
|
info.value = res.data
|
warehouseId.value = info.value.wtransferWarehouseList[0].warehouseId.toString()
|
} else {
|
Toast.fail({ message: res.message, forbidClick: true, duration: 2000 })
|
setTimeout(() => {
|
router.go(-1)
|
}, 2000)
|
}
|
})
|
} else if (type === QRCodeType.ZKD.toString()) {
|
console.log('转库单')
|
wTransferForInOut({
|
id: Number(route.query.id),
|
wTransferType: 0
|
}).then(res => {
|
if (res.code === 200) {
|
info.value = res.data
|
warehouseId.value = info.value.wtransferWarehouseList[0].warehouseId.toString()
|
} else {
|
Toast.fail({ message: res.message, forbidClick: true, duration: 2000 })
|
setTimeout(() => {
|
router.go(-1)
|
}, 2000)
|
}
|
})
|
}
|
}
|
|
// 删除对应的批次
|
const dele = (index: Number) => {
|
outboundList.value.forEach((item: any, i: number) => {
|
if (index === i) {
|
outboundList.value.splice(i, 1)
|
}
|
})
|
}
|
|
// 上传工装
|
const upload = () => {
|
if (type === QRCodeType.ZKD.toString()) {
|
wTransferForInOut({
|
id: Number(route.query.id),
|
optType: 1,
|
wTransferType: 0,
|
jsonBean: dataItem
|
}).then(res => {
|
if (res.code === 200) {
|
getInfo()
|
}
|
})
|
} else if (type === QRCodeType.CKD.toString()) {
|
wOutBoundForInOut({
|
id: Number(route.query.id),
|
optType: 1,
|
wOutboundType: 0,
|
jsonBean: dataItem
|
}).then(res => {
|
if (res.code === 200) {
|
getInfo()
|
}
|
})
|
}
|
}
|
|
// 点击扫码出库
|
const ck = () => {
|
openCode.value = true
|
}
|
|
// 提交操作
|
const submit = () => {
|
if (type === QRCodeType.ZKD.toString()) {
|
if (outboundList.value.length > 0) {
|
let result = outboundList.value.reduce((a, b) => {
|
if (a[b.newId]) {
|
a[b.newId].push(b);
|
} else {
|
a[b.newId] = [b];
|
}
|
return a;
|
}, {});
|
|
for (let i = 0; i < info.value.wtransferWarehouseList[0].wtransferDetailList.length; i++) {
|
for (let a in result) {
|
if (info.value.wtransferWarehouseList[0].wtransferDetailList[i].id == a) {
|
let total = 0
|
for (let b = 0; b < result[a].length; b++) {
|
total = Number(total) + Number(result[a][b].num)
|
}
|
console.log(total, info.value.wtransferWarehouseList[0].wtransferDetailList[i].outPlannum)
|
if (!total || total <= 0) {
|
return Toast.fail({ message: '出库物料数量必须大于0', forbidClick: true, duration: 2000 })
|
}
|
if (total > info.value.wtransferWarehouseList[0].wtransferDetailList[i].outPlannum) {
|
return Toast.fail({ message: '出库数量不能大于待出库数量', forbidClick: true, duration: 2000 })
|
}
|
}
|
}
|
}
|
|
let submitTransferOutDetailDTOList: any = []
|
outboundList.value.forEach((item: any) => {
|
info.value.wtransferWarehouseList[0].wtransferDetailList.forEach((child: any) => {
|
if (item.newId == child.id) {
|
submitTransferOutDetailDTOList.push({
|
outNum: item.num,
|
wstockId: item.id,
|
wtransferDetailId: child.id
|
})
|
}
|
})
|
})
|
transferToOutNew({
|
submitTransferOutDetailDTOList,
|
wtransferId: route.query.id
|
}).then(res => {
|
if (res.code === 200) {
|
store.dispatch('getUpcomingNum')
|
Toast.success({ message: '操作成功', forbidClick: true, duration: 2000 })
|
setTimeout(() => {
|
router.replace({ name: 'wTransferDetail', query: { id: info.value.wtransfer.id, dbid: route.query.dbid } })
|
}, 2000)
|
}
|
})
|
} else {
|
Toast.fail({ message: '请选择出库物料', forbidClick: true, duration: 2000 })
|
}
|
// let yx: number = 0
|
// let dc: number = 0
|
// info.value.wtransferRedisCodeBeanList.forEach((element: any) => {
|
// yx = yx + element.num
|
// })
|
// info.value.wtransferWarehouseList.forEach((element: any) => {
|
// element.wtransferDetailList.forEach((elementChilder: any) => {
|
// dc = dc + elementChilder.outPlannum
|
// })
|
// })
|
// if (yx < dc) {
|
// Dialog.confirm({
|
// title: '提示',
|
// message: '待出物料与已出物料数量不一致,是否确认出库',
|
// })
|
// .then(() => {
|
// wTransferForInOutUpload({
|
// id: info.value.wtransfer.id,
|
// wTransferType: 0
|
// }).then(res => {
|
// if (res.code === 200) {
|
// store.dispatch('getUpcomingNum')
|
// Toast.success({ message: '操作成功', forbidClick: true, duration: 2000 })
|
// setTimeout(() => {
|
// // router.go(-1)
|
// router.replace({ name: 'wTransferDetail', query: { id: info.value.wtransfer.id, dbid: route.query.dbid } })
|
// }, 2000)
|
// }
|
// })
|
// return
|
// })
|
// .catch(() => {
|
|
// });
|
// } else {
|
// wTransferForInOutUpload({
|
// id: info.value.wtransfer.id,
|
// wTransferType: 0
|
// }).then(res => {
|
// if (res.code === 200) {
|
// store.dispatch('getUpcomingNum')
|
// Toast.success({ message: '操作成功', forbidClick: true, duration: 2000 })
|
// setTimeout(() => {
|
// // router.go(-1)
|
// router.replace({ name: 'wTransferDetail', query: { id: info.value.wtransfer.id, dbid: route.query.dbid } })
|
// }, 2000)
|
// }
|
// })
|
// }
|
} else if (type === QRCodeType.CKD.toString()) {
|
wOutBoundForUpload({
|
id: info.value.woutbound.id,
|
wOutboundType: 0
|
}).then(res => {
|
if (res.code === 200) {
|
store.dispatch('getUpcomingNum')
|
Toast.success({ message: '操作成功', forbidClick: true, duration: 2000 })
|
setTimeout(() => {
|
// router.go(-1)
|
router.replace({ name: 'wOutboundDetail', query: { id: info.value.wtransfer.id } })
|
}, 2000)
|
}
|
})
|
}
|
}
|
|
// 获取待办详情(判断当前待办是否已处理)
|
const getDBs = async (id: string): Promise<any> => {
|
let res = await getDB(id)
|
if (res.code === 200) {
|
if (res.data.status === 1) {
|
if (type === QRCodeType.CKD.toString()) {
|
await router.replace({ name: 'wOutboundDetail', query: { id: route.query.id } })
|
} else if (type === QRCodeType.ZKD.toString()) {
|
await router.replace({ name: 'wTransferDetail', query: { id: route.query.id } })
|
}
|
} else {
|
await getInfo()
|
}
|
}
|
}
|
|
onMounted(() => {
|
if (route.query.dbid) {
|
getDBs(route.query.dbid as string)
|
} else {
|
getInfo()
|
}
|
})
|
</script>
|
|
<style lang="scss" scoped>
|
.page {
|
width: 100%;
|
height: 100%;
|
position: absolute;
|
background: #F7F7F7;
|
.page_info {
|
padding: 30px;
|
background: #ffffff;
|
.page_info_title {
|
font-size: 32px;
|
font-weight: 500;
|
color: #4275FC;
|
}
|
.page_info_list {
|
display: flex;
|
flex-wrap: wrap;
|
margin: 30px 0 0 0;
|
.page_info_list_item {
|
width: 100%;
|
display: flex;
|
margin-top: 24px;
|
&:nth-child(1) {
|
margin-top: 0;
|
}
|
/*&:nth-child(2) {*/
|
/* margin-top: 0;*/
|
/*}*/
|
.page_info_list_item_label {
|
flex-shrink: 0;
|
font-size: 26px;
|
font-weight: 400;
|
color: #666666;
|
}
|
.page_info_list_item_nr {
|
flex: 1;
|
font-size: 26px;
|
font-weight: 400;
|
color: #222222;
|
}
|
}
|
}
|
.page_info_bz {
|
padding: 24px;
|
background: #F7F7F7;
|
margin-top: 30px;
|
.page_info_bz_title {
|
font-size: 26px;
|
font-weight: 500;
|
color: #222222;
|
margin-bottom: 20px;
|
}
|
.page_info_bz_nr {
|
font-size: 24px;
|
font-weight: 400;
|
color: #333333;
|
}
|
}
|
}
|
.switch {
|
padding: 0 30px;
|
button {
|
width: 100%;
|
border: none;
|
height: 76px;
|
background: #ffffff;
|
border-radius: 36px;
|
font-size: 26px;
|
font-weight: 400;
|
color: black;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
img {
|
width: 28px;
|
height: 28px;
|
margin-right: 14px;
|
}
|
}
|
}
|
.page_h {
|
height: 20px;
|
}
|
.page_sfq {
|
font-size: 32px;
|
font-weight: 500;
|
color: #222222;
|
display: flex;
|
align-items: center;
|
img {
|
width: 36px;
|
height: 36px;
|
margin-right: 16px;
|
}
|
}
|
.page_dck {
|
.page_dck_title {
|
display: flex;
|
align-items: center;
|
.page_dck_title_x {
|
width: 8px;
|
height: 30px;
|
background: #4275FC;
|
border-radius: 2px;
|
margin-right: 16px;
|
}
|
span {
|
font-size: 32px;
|
font-weight: 500;
|
color: #222222;
|
}
|
}
|
}
|
.page_content {
|
margin-top: 28px;
|
.page_content_title {
|
display: flex;
|
flex-direction: column;
|
.page_content_title_top {
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
span {
|
&:nth-child(1) {
|
font-size: 30px;
|
font-weight: 500;
|
color: #222222;
|
}
|
&:nth-child(2) {
|
flex-shrink: 0;
|
font-size: 24px;
|
font-weight: 400;
|
color: #333333;
|
span {
|
font-size: 24px;
|
color: $nav-color;
|
}
|
}
|
}
|
}
|
.page_content_title_bottom {
|
.green {
|
color: $nav-stateColor7 !important;
|
}
|
.warning {
|
color: $nav-stateColor5 !important;
|
}
|
.error {
|
color: $nav-stateColor4 !important;
|
}
|
span {
|
font-size: 24px;
|
font-weight: 400;
|
color: #666666;
|
}
|
}
|
}
|
.page_content_list {
|
width: 100%;
|
display: flex;
|
align-items: center;
|
flex-wrap: wrap;
|
padding-bottom: 30px;
|
margin-top: 28px;
|
border-bottom: 1px solid #E5E5E5;
|
&:first-child {
|
margin: 0;
|
}
|
&:last-child {
|
border: none;
|
}
|
.page_content_list_items {
|
width: 30%;
|
display: flex;
|
margin-top: 24px;
|
.page_content_list_item_label {
|
font-size: 26px;
|
font-weight: 400;
|
color: #666666;
|
flex-shrink: 0;
|
}
|
.page_content_list_item_nr {
|
font-size: 26px;
|
font-weight: 400;
|
color: #222222;
|
}
|
}
|
.page_content_list_item {
|
width: 70%;
|
display: flex;
|
.page_content_list_item_label {
|
font-size: 26px;
|
font-weight: 400;
|
color: #666666;
|
flex-shrink: 0;
|
}
|
.page_content_list_item_nr {
|
font-size: 26px;
|
font-weight: 400;
|
color: #222222;
|
}
|
}
|
}
|
}
|
.page_yxwl {
|
padding: 30px;
|
background: #ffffff;
|
.page_yxwl_title {
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
.page_yxwl_title_x {
|
width: 8px;
|
height: 30px;
|
background: #4275FC;
|
border-radius: 2px;
|
margin-right: 16px;
|
}
|
span {
|
font-size: 32px;
|
font-weight: 500;
|
color: #222222;
|
}
|
.left {
|
display: flex;
|
align-items: center;
|
.page_yxwl_title_x {
|
width: 8px;
|
height: 30px;
|
background: #4275FC;
|
border-radius: 2px;
|
margin-right: 16px;
|
}
|
span {
|
font-size: 32px;
|
font-weight: 500;
|
color: #222222;
|
}
|
}
|
.right {
|
display: flex;
|
align-items: center;
|
img {
|
width: 28px;
|
height: 28px;
|
margin-right: 14px;
|
}
|
span {
|
font-size: 26px;
|
font-weight: 400;
|
color: #222222;
|
}
|
}
|
}
|
.page_yxwl_kong {
|
padding: 50px 0;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
span {
|
font-size: 25px;
|
color: black;
|
}
|
}
|
.page_yxwl_list {
|
display: flex;
|
flex-direction: column;
|
padding-bottom: 30px;
|
border-bottom: 1px solid #ececec;
|
&:last-child {
|
margin-bottom: 0;
|
border: none;
|
}
|
.page_yxwl_list_item {
|
margin-top: 28px;
|
.page_yxwl_list_item_sx {
|
margin-top: 10px;
|
span {
|
color: black;
|
}
|
}
|
.page_yxwl_list_item_top {
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
.page_yxwl_list_item_top_left {
|
font-size: 30px;
|
font-weight: 500;
|
color: #222222;
|
}
|
.page_yxwl_list_item_top_right {
|
span {
|
font-size: 24px;
|
font-weight: 400;
|
color: #333333;
|
span {
|
font-size: 24px;
|
font-weight: 400;
|
color: $nav-color;
|
}
|
}
|
}
|
}
|
.page_yxwl_list_item_num {
|
display: flex;
|
position: relative;
|
margin-top: 36px;
|
&:first-child {
|
margin-top: 0;
|
}
|
.dele {
|
position: absolute;
|
right: -30px;
|
width: 48px;
|
height: 48px;
|
img {
|
width: 100%;
|
height: 100%;
|
}
|
}
|
.item {
|
width: 50%;
|
display: flex;
|
align-items: center;
|
.label {
|
flex-shrink: 0;
|
font-size: 26px;
|
font-weight: 400;
|
color: #666666;
|
flex-shrink: 0;
|
}
|
.nr {
|
flex: 1;
|
display: flex;
|
align-items: center;
|
input {
|
width: 130px;
|
height: 40px;
|
border-radius: 8px;
|
border: 1PX solid #E5E5E5;
|
margin-right: 10px;
|
}
|
span {
|
font-size: 26px;
|
font-weight: 400;
|
color: #222222;
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
.page_zw {
|
height: 160px;
|
}
|
.page_footer {
|
position: fixed;
|
bottom: 0;
|
left: 0;
|
width: 100%;
|
padding: 0 30px 68px 30px;
|
box-sizing: border-box;
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
.page_footer_smck {
|
width: 334px;
|
height: 88px;
|
border: none;
|
background: #FFFFFF;
|
box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.08);
|
border-radius: 8px;
|
font-size: 32px;
|
font-weight: 500;
|
color: $nav-color;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
img {
|
width: 30px;
|
height: 30px;
|
margin-right: 10px;
|
}
|
}
|
.page_footer_qrck {
|
// width: 334px;
|
flex: 1;
|
height: 88px;
|
border: none;
|
background: $nav-color;
|
box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.08);
|
border-radius: 8px;
|
font-size: 32px;
|
font-weight: 500;
|
color: #FFFFFF;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
}
|
}
|
}
|
</style>
|