| | |
| | | <template> |
| | | <view style="padding-bottom:150px" class="boxTip"> |
| | | <cu-custom bgColor="bg-white" :isBack="true"> |
| | | <block slot="backText"> |
| | | </block> |
| | | <block slot="content">组盘</block> |
| | | </cu-custom> |
| | | <!-- <view class="flex justify-end align-center padding_right30rpx padding_top12rpx"> |
| | | <text class="fontSize12rpx"> 操作人:{{operator}} </text> |
| | | </view> --> |
| | | <u-form labelPosition="left" label-width="180rpx" :model="warehouse" ref="warehouseRef"> |
| | | <view class="overflow" style="padding-bottom: 150rpx"> |
| | | <cu-custom bgColor="bg-white" :isBack="true"> |
| | | <block slot="backText"> </block> |
| | | <block slot="content">板件查看</block> |
| | | </cu-custom> |
| | | <u-form |
| | | labelPosition="left" |
| | | label-width="180rpx" |
| | | :model="warehouse" |
| | | ref="warehouseRef" |
| | | > |
| | | <!-- <u-row |
| | | class="border_bottom margin_top10rpx padding_left25rpx" |
| | | style="background-color: #fff" |
| | | > |
| | | <u-col span="12"> |
| | | <u-form-item |
| | | label="包装号:" |
| | | prop="packageCode" |
| | | required |
| | | class="uFormItem" |
| | | > |
| | | <u-input |
| | | v-model.trim="warehouse.packageCode" |
| | | @confirm="getContainerData(1)" |
| | | placeholder="请录入或扫码" |
| | | class="width" |
| | | :focus="curFoucus" |
| | | > |
| | | </u-input> |
| | | </u-form-item> |
| | | </u-col> |
| | | </u-row> --> |
| | | <u-row |
| | | class="border_bottom margin_top10rpx padding_left25rpx" |
| | | style="background-color: #fff" |
| | | > |
| | | <u-col span="12"> |
| | | <u-form-item label="部件条码:" class="uFormItem"> |
| | | <u-input |
| | | v-model="warehouse.upi" |
| | | ref="materialRef" |
| | | placeholder="请扫码录入" |
| | | @focus="warehouse.upi = ''" |
| | | :focus="curFoucus" |
| | | @confirm="getContainerData" |
| | | style="font-weight: bolder; margin-left: 15rpx" |
| | | class="width padding_left25rpx" |
| | | > |
| | | </u-input> |
| | | </u-form-item> |
| | | </u-col> |
| | | </u-row> |
| | | </u-form> |
| | | <!-- 列表 --> |
| | | <view class="margin_top10rpx"> |
| | | <u-swipe-action |
| | | :show="item.show" |
| | | :index="eindex" |
| | | v-for="(item, eindex) in singlist" |
| | | :key="eindex" |
| | | :options="options" |
| | | @click="longpress" |
| | | @open="open" |
| | | @close="close" |
| | | class="margin_bottom10rpx" |
| | | > |
| | | <view class="item u-border-bottom"> |
| | | <!-- 此层wrap在此为必写的,否则可能会出现标题定位错误 --> |
| | | <view class="title-wrap"> |
| | | <view |
| | | :class="item.checked ? 'bg_item' : ''" |
| | | class="fontSize32rpx width margin_auto background_fff padding10 relative box_sizing transition" |
| | | > |
| | | <!-- 部件名称 upi、材料、尺寸,位置、板件状态 --> |
| | | <u-row> |
| | | <u-col span="12" class="flex align-center"> |
| | | <!-- <u-checkbox v-model="item.checked" size="50rpx"></u-checkbox> --> |
| | | <view |
| | | class="flex justify-center align-center" |
| | | style=" |
| | | background-color: #f18202; |
| | | color: #fff; |
| | | border-radius: 50vh; |
| | | width: 40rpx; |
| | | height: 40rpx; |
| | | " |
| | | > |
| | | {{ eindex + 1 }} |
| | | </view> |
| | | <text class="color_f18202 padding_left10rpx"> |
| | | {{ item.upi }} |
| | | </text> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row> |
| | | <u-col span="8"> |
| | | <text class="color_80 padding_left25rpx"> |
| | | 部件名称: {{ item.detailName }} |
| | | </text> |
| | | </u-col> |
| | | <u-col span="4"> |
| | | <text class="color_80"> 位置:{{ item.location }} </text> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row> |
| | | <u-col span="8"> |
| | | <text class="color_80 padding_left25rpx"> |
| | | 材料:{{ item.info18 }} |
| | | </text> |
| | | </u-col> |
| | | <u-col span="4"> |
| | | <text class="color_80"> 尺寸:{{ item.info16 }} </text> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row> |
| | | <u-col span="8"> |
| | | <text class="color_80 padding_left25rpx"> |
| | | 板件状态:{{ getEnumName(item.upiStatus) }} |
| | | </text> |
| | | </u-col> |
| | | <u-col span="4"> |
| | | <text class="color_80"> 次序:{{ item.shelf }} </text> |
| | | </u-col> |
| | | </u-row> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </u-swipe-action> |
| | | </view> |
| | | <modal-code :rescode="rescode" :resmessage="resmessage" ref="resmodal" /> |
| | | |
| | | <u-row class="border_bottom margin_top10rpx padding_left25rpx" style="background-color: #fff;"> |
| | | <u-col span="12"> |
| | | <u-form-item label="容器编号:" prop="containerCode" required class="uFormItem"> |
| | | <u-input :focus="curFoucus" v-model.trim="warehouse.containerCode" @confirm="getMaterialDetails(1)" |
| | | placeholder="请扫码录入" :disabled="kwbhAllowed" style="font-weight: bolder;margin-left: 15rpx;" |
| | | class="width padding_left25rpx"> |
| | | </u-input> |
| | | </u-form-item> |
| | | </u-col> |
| | | </u-row> |
| | | |
| | | <u-row v-if="warehouse.containerCode" class="border_bottom margin_top10rpx padding_left25rpx" |
| | | style="background-color: #fff;"> |
| | | <u-col span="12"> |
| | | <u-form-item label="物料跟踪码:" class="uFormItem"> |
| | | <u-input v-model="warehouse.snCode" ref="materialRef" placeholder="请扫码录入" |
| | | @focus="warehouse.snCode = ''" @confirm="getMaterialDetails" |
| | | style="font-weight: bolder;margin-left: 15rpx;" class="width padding_left25rpx"> |
| | | </u-input> |
| | | </u-form-item> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row class="border_bottom margin_top10rpx background_fff padding_left25rpx"> |
| | | <u-col span="12"> |
| | | <u-form-item label="目标库区:" prop="tray" class="uFormItem"> |
| | | <input v-model="warehouse.areaCode" type="select" placeholder="请选择目标库区" @focus="containerFocus" |
| | | class="width"></input> |
| | | <u-action-sheet :list="wolist" v-model="modalshow" @click="confirmXl"></u-action-sheet> |
| | | <!-- <u-select v-model="modalshow" :list="wolist" @confirm="confirm" value-name="id" label-name="name"></u-select> --> |
| | | </u-form-item> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row class="border_bottom margin_top10rpx padding_left25rpx" style="background-color: #fff;"> |
| | | <u-col span="10"> |
| | | <u-form-item label="目标库位:" class="uFormItem"> |
| | | <u-input v-model="warehouse.placeCode" placeholder="请扫码录入" |
| | | style="font-weight: bolder;margin-left: 15rpx;" class="width padding_left25rpx"> |
| | | </u-input> |
| | | </u-form-item> |
| | | </u-col> |
| | | <u-col span="2" @tap="containerFocus2"> |
| | | <span class="fontSize15rpx">推荐</span> |
| | | <u-icon name="arrow-right" size="14" class="fontSize15rpx"></u-icon> |
| | | </u-col> |
| | | |
| | | <view class="boxList" v-show="modalshow2" @click="modalshow2 = false" @touchmove.stop> |
| | | <view class="innerWrap"> |
| | | <ul v-for="(item, eindex) in containerList" :key="eindex"> |
| | | <li @click="confirm2(eindex)"> {{ item.text }}</li> |
| | | </ul> |
| | | </view> |
| | | </view> |
| | | |
| | | </u-row> |
| | | </u-form> |
| | | <modal-code :rescode='rescode' :resmessage='resmessage' ref="resmodal" /> |
| | | <view style="margin-bottom: 200rpx;" class="margin_top10rpx"> |
| | | <view v-for="(item, eindex) in singlist" :key="eindex" class="margin_bottom10rpx"> |
| | | <u-swipe-action :show="item.show" :index="eindex" @click="longpress" @open="open" @close='close' |
| | | :options="options" style="width: 100vw;"> |
| | | <view class="fontSize32rpx background_fff padding10" :class="item.enAbled == 0 ? 'bg_item' : ''"> |
| | | <u-row> |
| | | <u-col span="12" class="flex"> |
| | | <text class="flex justify-center align-center circkle06">{{ eindex + 1 }}</text> |
| | | <text class="color_f18202 padding_left10rpx"> |
| | | {{ item.materialCode }}-{{ item.materialName }} |
| | | </text> |
| | | <!-- <u-icon name="plus-circle" v-if="item.enAbled!=1"></u-icon> --> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row> |
| | | <u-col span="12"> |
| | | <text class="color_80 padding_left25rpx"> |
| | | 质检状态:{{ item.qcStatusName }} |
| | | </text> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row> |
| | | <u-col span="12"> |
| | | <view class="color_80 padding_left25rpx"> |
| | | <text style="display: inline-block">批次:{{ item.batch }}</text> |
| | | </view> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row> |
| | | <u-col span="12"> |
| | | <text class="color_80 padding_left25rpx"> |
| | | 跟踪码:{{ item.snCode }} |
| | | </text> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row> |
| | | <u-col span="8"> |
| | | <text class="color_80 padding_left25rpx"> |
| | | |
| | | </text> |
| | | </u-col> |
| | | <u-col span="4"> |
| | | <text class="color_f18202 "> |
| | | 数量:{{ item.quantity }} |
| | | </text> |
| | | </u-col> |
| | | </u-row> |
| | | <!-- <u-row> |
| | | <u-col span="7"> |
| | | </u-col> |
| | | <u-col span="5" class="flex"> |
| | | <view class="color_80"> |
| | | 数量: |
| | | </view> |
| | | <input :class="item.enAbled ? '' : 'border_bottom_f18202 inputGray'" |
| | | class="text-left color_f18202 fontSize32rpx inputGray2" v-model="item.quantity" |
| | | type="number" :disabled="item.enAbled == 1" @blur="changeNum(item)" @click="clicki(item)" |
| | | placeholder="0" /> |
| | | </u-col> |
| | | </u-row> --> |
| | | </view> |
| | | </u-swipe-action> |
| | | </view> |
| | | </view> |
| | | <button-modal :issueShow='true' issueTitle="重置" subTitle='组盘' restTiltle='组盘上架' @reset='goWarhouse' @submit='submit' |
| | | @issue="reset" /> |
| | | |
| | | </view> |
| | | <button-modal |
| | | :subShow="true" |
| | | garmenTitle="重置" |
| | | @submit="rest" |
| | | @reset="rest" |
| | | /> |
| | | </view> |
| | | </template> |
| | | <script> |
| | | import ButtonModal from '../../components/buttonModal.vue' |
| | | import ModalCode from '../../components/ModalCode.vue' |
| | | import ButtonModal from "../../components/buttonModal.vue"; |
| | | import ModalCode from "../../components/ModalCode.vue"; |
| | | import { |
| | | getOrderNo, |
| | | addGroupDisk, |
| | | onlyUpdateDutyCycle, |
| | | getareaTypesList, |
| | | getContainDetail, |
| | | getContainerRecord, |
| | | getBhbMaterialList, |
| | | PdaBindListForSNCode, |
| | | getRecommendList |
| | | } from '../../api/putIn/artificial.js' |
| | | import { |
| | | getDate |
| | | } from '../../utils/dateTime.js' |
| | | import { |
| | | getAttrValue |
| | | } from '../../utils/tool.js' |
| | | import { |
| | | bindputawayConfirm |
| | | } from '../../api/putaway/putaway.js' |
| | | |
| | | getBhbMaterialList, |
| | | getenumDataList, |
| | | } from "../../api/putIn/artificial.js"; |
| | | export default { |
| | | data() { |
| | | return { |
| | | containerList: [], |
| | | curFoucus: true, |
| | | rescode: 0, |
| | | resmessage: "", |
| | | putCode: '', //容器二维码 |
| | | detailshow: false, |
| | | operator: '', |
| | | focu: false, //清空按钮隐显 |
| | | focuM: false, //物料隐显按钮 |
| | | Datetime: getDate(), |
| | | singlist: [], //物料详情 |
| | | wolist: [], |
| | | options: [ |
| | | // { |
| | | // text: '详情', |
| | | // style: { |
| | | // backgroundColor: '#fc9f35' |
| | | // } |
| | | // } |
| | | { |
| | | text: '删除', |
| | | style: { |
| | | backgroundColor: '#fc4b4b' |
| | | } |
| | | } |
| | | ], |
| | | materlist: {}, |
| | | warehouse: { |
| | | containerCode: '', |
| | | materialCode: '', |
| | | storehouseCode: "", |
| | | snCode: "", |
| | | // gridNumber: 1, |
| | | // useNumber: 0, |
| | | // exitNumber: 0, |
| | | // dutyCycle:1 |
| | | }, |
| | | modalshow: false, |
| | | modalshow2: false, |
| | | gridable: true, |
| | | gridFocus: false, |
| | | detailable: false, |
| | | detailableZb: false, |
| | | batchNo: '', //扫码到的当前物料的批次 |
| | | warehouseRules: { |
| | | containerCode: [{ |
| | | required: true, |
| | | message: '容器编号不能为空', |
| | | trigger: 'blur' |
| | | }], |
| | | materialCode: [{ |
| | | required: true, |
| | | message: '物料编号不能为空', |
| | | trigger: 'blur' |
| | | }] |
| | | }, |
| | | orderType: 1, |
| | | warhouseTph: '', |
| | | timerPrint: null, |
| | | kwbhAllowed: false, //是否禁用库位编号 |
| | | arrD: [], |
| | | statusTp: { |
| | | 'tpStatus': '' |
| | | } |
| | | }; |
| | | }, |
| | | components: { |
| | | ButtonModal, |
| | | ModalCode |
| | | }, |
| | | onLoad(option) { |
| | | if (option.orderType) { |
| | | this.orderType = option.orderType |
| | | } |
| | | }, |
| | | onReady() { |
| | | this.$refs.warehouseRef.setRules(this.warehouseRules) |
| | | }, |
| | | mounted() { |
| | | this.operator = JSON.parse(uni.getStorageSync('userInfo')).name |
| | | this.getVehicleType() |
| | | }, |
| | | computed: { |
| | | containerCode() { |
| | | return this.warehouse.containerCode |
| | | } |
| | | }, |
| | | watch: { |
| | | containerCode(val) { |
| | | if (!val) { |
| | | this.detailable = false; |
| | | this.detailableZb = false; |
| | | this.warehouse.exitNumber = 0 |
| | | } |
| | | }, |
| | | singlist(val) { |
| | | this.warehouse.exitNumber = val.length |
| | | } |
| | | }, |
| | | methods: { |
| | | //容器类型聚焦事件 |
| | | containerFocus() { |
| | | uni.hideKeyboard() |
| | | this.modalshow = true |
| | | }, |
| | | gridBtnClick() { |
| | | this.gridable = !this.gridable |
| | | if (!this.gridable) { |
| | | this.$nextTick(() => { |
| | | this.gridFocus = true; |
| | | }) |
| | | } else { |
| | | this.$nextTick(() => { |
| | | this.gridFocus = false; |
| | | }) |
| | | } |
| | | }, |
| | | //容器编号点击 |
| | | containerClick() { |
| | | uni.scanCode({ |
| | | scanType: ['barCode', 'qrCode'], |
| | | autoDecodeCharset: true, |
| | | success: (res) => { |
| | | this.warehouse.containerCode = res.result |
| | | this.containerBlur() |
| | | }, |
| | | fail: (err) => { |
| | | this.rescode = 400 |
| | | this.resmessage = `扫描失败${err}` |
| | | this.$refs.resmodal.show = true |
| | | } |
| | | }) |
| | | }, |
| | | //容器失焦事件 |
| | | containerBlur() { |
| | | Promise.all([this.getContainerRecord(), this.getContainerData()]) |
| | | }, |
| | | //获取当前容器下组盘记录 |
| | | getContainerRecord() { |
| | | this.kwbhAllowed = false |
| | | //每次查询置空材料列表 |
| | | this.singlist = []; |
| | | if (this.warehouse.containerCode == '') { |
| | | return |
| | | } |
| | | getContainerRecord({ |
| | | containerCode: this.warehouse.containerCode |
| | | }).then(res => { |
| | | if (res.code == 200) { |
| | | this.kwbhAllowed = true |
| | | if (Array.isArray(res.data) && res.data.length > 0) { |
| | | if (res.data[0].orderNo) { |
| | | this.putCode = res.data[0].orderNo; |
| | | } |
| | | this.warehouse.dutyCycle = res.data[0].dutyCycle; //库存占比 【Editby shaocx,2023-05-22】 |
| | | const recordArr = res.data.reduce((curr, item) => { |
| | | curr.push({ |
| | | code: item.materialCode, |
| | | batchNo: item.batchNo, |
| | | quantityNow: item.quantity, |
| | | quantity: item.quantity, |
| | | materialName: item.materialName, |
| | | materialTypeName: item.materialTypeName, |
| | | specificationModel: item.specificationModel, |
| | | id: '', |
| | | unionCode: item.unionCode, |
| | | replaceMaterialCode: item.replaceMaterialCode, |
| | | stockFlagStatus: item.stockFlagStatus, |
| | | show: false, |
| | | enAbled: 1 //控制数量是否可以输入 |
| | | }) |
| | | return curr |
| | | }, []) |
| | | this.singlist.push(...recordArr) |
| | | } |
| | | } else { |
| | | this.kwbhAllowed = false |
| | | } |
| | | data() { |
| | | return { |
| | | operator: "", |
| | | warehouse: { |
| | | packageCode: "", |
| | | upi: "", |
| | | }, |
| | | singlist: [], //详情列表 |
| | | ordersId: 0, //当前容器绑定的上架单 |
| | | rescode: 0, |
| | | resmessage: "", |
| | | options: [ |
| | | { |
| | | text: "打印", |
| | | style: { |
| | | backgroundColor: "#fc9f35", |
| | | }, |
| | | }, |
| | | ], |
| | | detailshow: false, |
| | | materlist: {}, |
| | | curFoucus: true, |
| | | timer: null, |
| | | timerSm: null, |
| | | detailableZb: false, |
| | | detailable: false, |
| | | gridFocus: false, |
| | | gridable: true, |
| | | kwbhAllowed: false, |
| | | enumList: [], |
| | | }; |
| | | }, |
| | | components: { |
| | | ButtonModal, |
| | | ModalCode, |
| | | }, |
| | | created() { |
| | | getenumDataList({ |
| | | EnumName: "UpiStatusEnum", |
| | | }).then((res) => { |
| | | this.enumList = res.result || []; |
| | | }); |
| | | }, |
| | | onLoad() { |
| | | this.operator = JSON.parse(uni.getStorageSync("userInfo")).name; |
| | | }, |
| | | mounted() {}, |
| | | |
| | | }) |
| | | methods: { |
| | | getEnumName(value) { |
| | | const name = this.enumList.find((item) => item.value === value); |
| | | return name ? name.name : ""; |
| | | }, |
| | | // 如果打开一个的时候,不需要关闭其他,则无需实现本方法 |
| | | open(index) { |
| | | // 先将正在被操作的swipeAction标记为打开状态,否则由于props的特性限制, |
| | | // 原本为'false',再次设置为'false'会无效 |
| | | this.singlist[index].show = true; |
| | | this.singlist.map((val, idx) => { |
| | | if (index != idx) this.singlist[idx].show = false; |
| | | }); |
| | | }, |
| | | close(index) { |
| | | this.singlist[index].show = false; |
| | | }, |
| | | //物料详情 |
| | | longpress(index, eindex) { |
| | | this.materlist = this.singlist[index]; |
| | | this.detailshow = true; |
| | | }, |
| | | |
| | | }, |
| | | //获取容器的信息 |
| | | getContainerData() { |
| | | getContainDetail(this.warehouse.containerCode).then(res => { |
| | | const result = res.data.rows; |
| | | if (Array.isArray(result) && result.length == 1) { |
| | | // 虚拟3个都不显示;料箱:显示栅格;钢托:不显示空间占比 |
| | | if (res.data.rows[0].isVirtual == 0) { //实物 |
| | | if (res.data.rows[0].wareContainerType == '299120688255045' || res.data.rows[0] |
| | | .wareContainerType == '293486279884869') { // 钢制容器 塑料容器 -显示占比 |
| | | this.detailableZb = true; |
| | | this.detailable = false; |
| | | } else { //料箱 - 显示栅格数 |
| | | this.detailableZb = false; |
| | | this.detailable = true; |
| | | } |
| | | } else { |
| | | this.detailable = false; |
| | | this.detailableZb = false; |
| | | } |
| | | this.warehouse.gridNumber = res.data.rows[0].gridNumber; |
| | | this.warehouse.useNumber = res.data.rows[0].useNumber; |
| | | } else { |
| | | uni.showToast({ |
| | | title: '库位不存在', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }); |
| | | this.kwbhAllowed = false |
| | | } |
| | | rest() { |
| | | this.warehouse.upi = ""; |
| | | this.singlist = []; |
| | | }, |
| | | |
| | | }) |
| | | }, |
| | | |
| | | |
| | | //物料编码点击 |
| | | materialClick() { |
| | | uni.scanCode({ |
| | | scanType: ['barCode', 'qrCode'], |
| | | autoDecodeCharset: true, |
| | | success: (res) => { |
| | | this.warehouse.materialCode = getAttrValue(res.result, 'PARTSNUMBER') |
| | | this.batchNo = getAttrValue(res.result, 'LOTNO') |
| | | this.getMaterialDetails() |
| | | }, |
| | | fail: (err) => { |
| | | this.rescode = 400 |
| | | this.resmessage = `扫描失败${err}` |
| | | this.$refs.resmodal.show = true |
| | | } |
| | | }) |
| | | }, |
| | | //物料查询 |
| | | getMaterialDetails(pram) { |
| | | if (!this.warehouse.containerCode) { |
| | | uni.showToast({ |
| | | title: '容器编号不能为空', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }) |
| | | return |
| | | } |
| | | //扫容器编号 加载所有物料 |
| | | if (pram == 1) { |
| | | this.singlist = []; |
| | | getBhbMaterialList({ |
| | | 'containerCode': this.warehouse.containerCode, |
| | | 'SNCode': this.warehouse.snCode |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | if (res.result == null) { |
| | | this.rescode = 400 |
| | | this.resmessage = '查无数据' |
| | | this.$refs.resmodal.show = true |
| | | return |
| | | } else { |
| | | if (res.result.length == 0) { |
| | | console.log("空托") |
| | | this.singlist = []; |
| | | return |
| | | } else { |
| | | console.log("有料") |
| | | res.result.forEach((item, index) => { |
| | | item.notDelete = 1 //已组盘的物料 不许删除 要去解绑页面解绑 |
| | | }) |
| | | this.singlist = res.result; |
| | | } |
| | | } |
| | | } else { |
| | | this.resmessage = res.message |
| | | this.rescode = res.code |
| | | this.$refs.resmodal.show = true |
| | | //获取容器的信息 |
| | | getContainerData(param) { |
| | | if (!this.warehouse.upi) { |
| | | uni.showToast({ |
| | | title: "请扫部件条码", |
| | | icon: "none", |
| | | duration: 2000, |
| | | }); |
| | | return; |
| | | } |
| | | getBhbMaterialList({ |
| | | packageCode: this.warehouse.packageCode, |
| | | upi: this.warehouse.upi, |
| | | }).then((res) => { |
| | | const result = res.result; |
| | | if (Array.isArray(result) && result.length == 0) { |
| | | uni.showToast({ |
| | | title: "数据不存在", |
| | | icon: "none", |
| | | duration: 2000, |
| | | }); |
| | | return; |
| | | } |
| | | this.singlist = res.result; |
| | | }); |
| | | }, |
| | | |
| | | } |
| | | }) |
| | | |
| | | } else { |
| | | |
| | | //物料查询 |
| | | PdaBindListForSNCode({ |
| | | 'containerCode': this.warehouse.containerCode, |
| | | 'SNCode': this.warehouse.snCode |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | if (res.result == null || !res.result.stockQuanOutput) { |
| | | this.rescode = 400 |
| | | this.resmessage = '查无数据' |
| | | this.$refs.resmodal.show = true |
| | | return |
| | | } else { |
| | | // 根据id 判断物料是否存在 |
| | | var item = res.result.stockQuanOutput; |
| | | //debugger |
| | | let index = this.singlist.findIndex(v => v.snCode == item.snCode); |
| | | if (index == -1) { |
| | | if (!res.result.validateResult && res.result.validateFailReason) { |
| | | uni.showModal({ |
| | | title: '提示', |
| | | content: res.result.validateFailReason, |
| | | showCancel: true, |
| | | cancelColor: '#333333', |
| | | success: (res => { |
| | | if (res.confirm) { |
| | | this.singlist.unshift({ |
| | | ...item |
| | | }) |
| | | } else if (res.cancel) { |
| | | |
| | | } |
| | | }) |
| | | }); |
| | | } else { |
| | | this.singlist.unshift({ |
| | | ...item |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | } else { |
| | | this.resmessage = res.message |
| | | this.rescode = res.code |
| | | this.$refs.resmodal.show = true |
| | | } |
| | | }) |
| | | |
| | | } |
| | | |
| | | }, |
| | | //删除详情 |
| | | longpress(index, eindex) { |
| | | uni.showModal({ |
| | | title: '提示', |
| | | content: '是否确认删除?', |
| | | showCancel: true, |
| | | cancelColor: '#333333', |
| | | success: (res => { |
| | | if (res.confirm) { |
| | | this.singlist[index].cardNum = true |
| | | if (eindex == 0) { //删除 |
| | | if(this.singlist[index].notDelete==1){ |
| | | uni.showToast({ |
| | | title: '已组盘的物料 不许删除 要去解绑页面解绑', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }); |
| | | return |
| | | } |
| | | this.singlist.splice(index, 1) |
| | | } else { |
| | | this.materlist = this.singlist[index] |
| | | this.detailshow = true |
| | | } |
| | | } else if (res.cancel) { |
| | | |
| | | } |
| | | }) |
| | | }); |
| | | }, |
| | | //编辑状态样式 |
| | | dc(e) { |
| | | e.cardNum = true |
| | | this.$forceUpdate() |
| | | }, |
| | | //卡片选中 |
| | | clicki(e) { |
| | | e.cardNum = true |
| | | this.$forceUpdate() |
| | | }, |
| | | // 如果打开一个的时候,不需要关闭其他,则无需实现本方法 |
| | | open(index) { |
| | | // 先将正在被操作的swipeAction标记为打开状态,否则由于props的特性限制, |
| | | // 原本为'false',再次设置为'false'会无效 |
| | | this.singlist[index].cardNum = true; |
| | | this.$forceUpdate() |
| | | this.singlist[index].show = true; |
| | | this.singlist.map((val, idx) => { |
| | | if (index != idx) this.singlist[idx].show = false; |
| | | }) |
| | | }, |
| | | close(index) { |
| | | this.singlist[index].show = false; |
| | | this.singlist[index].cardNum = false; |
| | | this.$forceUpdate() |
| | | }, |
| | | //改变组盘数量 |
| | | changeNum(val) { |
| | | val.cardNum = false |
| | | if (!val.quantity) { |
| | | uni.showModal({ |
| | | title: '提示', |
| | | content: '组盘数量不能为空', |
| | | showCancel: false |
| | | }) |
| | | } |
| | | if (val.quantity < 0) { |
| | | uni.showModal({ |
| | | title: '提示', |
| | | content: '组盘数量必须大于0', |
| | | showCancel: false |
| | | }) |
| | | } |
| | | |
| | | }, |
| | | //全部取消 |
| | | reset() { |
| | | this.singlist = []; |
| | | this.warehouse.containerCode = '' |
| | | this.warehouse.snCode = '' |
| | | this.warehouse.areaCode = '' |
| | | this.warehouse.placeCode = '' |
| | | this.$refs.warehouseRef.resetFields(); |
| | | this.$forceUpdate() |
| | | this.kwbhAllowed = false |
| | | }, |
| | | //重置页面信息 |
| | | rest() { |
| | | this.reset() |
| | | }, |
| | | //确认 |
| | | submit() { |
| | | this.$refs.warehouseRef.setRules(this.warehouseRules) |
| | | this.$refs.warehouseRef.validate(valid => { |
| | | if (valid) { |
| | | |
| | | let arrN1 = this.singlist.findIndex((v) => v.quantity == '' || v.quantity <= 0) |
| | | if (arrN1 > -1) { |
| | | uni.showToast({ |
| | | title: '物料数量需要大于0', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }); |
| | | return |
| | | } |
| | | |
| | | //物料详情 |
| | | let matatilDetails = this.singlist; |
| | | |
| | | let arrSub = matatilDetails.filter((v) => v.enAbled != 1) |
| | | //请求参数 |
| | | /// 标记 |
| | | /// 1:物料组盘 |
| | | /// 2:容器组盘 |
| | | /// 3:物料解绑 |
| | | /// 4:容器解绑 |
| | | let params = { |
| | | Flag: 1, |
| | | ContainerCode: this.warehouse.containerCode, |
| | | orderDetails: arrSub |
| | | } |
| | | uni.showModal({ |
| | | title: '提示', |
| | | content: '是否确认组盘?', |
| | | showCancel: true, |
| | | cancelColor: '#333333', |
| | | success: (res => { |
| | | if (res.confirm) { |
| | | addGroupDisk(params).then(res => { |
| | | this.warhouseTph = this.warehouse.containerCode; |
| | | this.rescode = res.code; |
| | | this.resmessage = res.message || '组盘成功!'; |
| | | this.$refs.resmodal.show = true; |
| | | this.rest(); |
| | | }) |
| | | } else if (res.cancel) { |
| | | |
| | | } |
| | | }) |
| | | }); |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | // 租盘上架 |
| | | goWarhouse() { |
| | | //物料详情 |
| | | let matatilDetails = this.singlist; |
| | | |
| | | let arrSub = matatilDetails.filter((v) => v.enAbled != 1) |
| | | |
| | | bindputawayConfirm({ |
| | | flag:1, // |
| | | "ActionType": 3004, //组盘上架 |
| | | "ContainerCode": this.warehouse.containerCode, |
| | | "StorehouseCode": this.warehouse.storehouseCode, |
| | | "areaCode": this.warehouse.areaCode || '', |
| | | "placeCode": this.warehouse.placeCode || '', |
| | | "orderDetails": arrSub |
| | | }).then(res => { |
| | | this.rescode = res.code; |
| | | this.resmessage = res.message || '组盘上架成功!'; |
| | | this.$refs.resmodal.show = true; |
| | | this.reset(); |
| | | }) |
| | | // if(this.warehouse.areaCode==''&&this.warehouse.placeCode){ |
| | | // uni.showToast({ |
| | | // title: '请填写目标库区或目标库位!', |
| | | // icon: 'none', |
| | | // duration: 2000 |
| | | // }) |
| | | // return; |
| | | // } |
| | | // if (this.warhouseTph == '') { |
| | | // uni.showToast({ |
| | | // title: '组盘成功后,可入库!', |
| | | // icon: 'none', |
| | | // duration: 2000 |
| | | // }) |
| | | // return |
| | | // } |
| | | // uni.navigateTo({ |
| | | // url: '/pages/putIn/three/three?type=入库单&containerCode=' + this.warhouseTph |
| | | // }) |
| | | }, |
| | | getVehicleType() { |
| | | getareaTypesList().then((res) => { |
| | | // if (res.data.rows.length == 0) { |
| | | // this.rescode = 400 |
| | | // this.resmessage = '暂无数据' |
| | | // this.$refs.resmodal.show = true |
| | | // return |
| | | // } |
| | | var arr = res.result.items; |
| | | arr.map(item => { |
| | | item.text = item.areaCode; |
| | | return item; |
| | | }) |
| | | this.wolist = arr |
| | | }) |
| | | }, |
| | | confirmXl(index) { |
| | | this.warehouse.areaCode = this.wolist[index].areaCode; |
| | | // this.warehouse.ContainerTypeCode = this.wolist[index].id; |
| | | }, |
| | | filterMark(stockFlagStatus) { |
| | | let str = '' |
| | | let arr4 = this.arrD.filter(v => v.value == stockFlagStatus) |
| | | if (arr4.length > 0) { |
| | | str = arr4[0].title |
| | | } |
| | | return str |
| | | }, |
| | | //------获取推荐 |
| | | containerFocus2() { |
| | | // //debugger |
| | | if (!this.warehouse.areaCode) { |
| | | uni.showToast({ |
| | | title: '请选择目标库区!', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }); |
| | | return |
| | | } |
| | | getRecommendList({ |
| | | 'containerCode': this.warehouse.containerCode, |
| | | 'areaCode': this.warehouse.areaCode |
| | | }).then(res => { |
| | | this.modalshow2 = true; |
| | | |
| | | this.containerList = res.result.reduce((curr, item) => { |
| | | curr.push({ |
| | | text: item.placeCode, |
| | | }) |
| | | return curr; |
| | | }, []) |
| | | }) |
| | | }, |
| | | //------获取推荐类型选择 |
| | | confirm2(index) { |
| | | this.warehouse.placeCode = this.containerList[index].text; |
| | | }, |
| | | } |
| | | } |
| | | //全部取消 |
| | | back() { |
| | | this.ordersId = 0; |
| | | this.singlist = []; |
| | | this.$refs.warehouseRef.resetFields(); |
| | | this.warehouse.packageCode = ""; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | <style lang="scss"> |
| | | .content { |
| | | height: 500rpx; |
| | | overflow-y: scroll; |
| | | width: 100%; |
| | | padding: 15rpx; |
| | | box-sizing: border-box; |
| | | |
| | | .content-item { |
| | | padding: 15rpx; |
| | | background-color: #fff; |
| | | margin-bottom: 15rpx; |
| | | border-radius: 8rpx; |
| | | font-size: 32rpx; |
| | | } |
| | | } |
| | | |
| | | .bg_item { |
| | | background: #FFEBCD !important; |
| | | background: #ffebcd !important; |
| | | } |
| | | |
| | | .inputGray2 { |
| | | line-height: 30px; |
| | | border-top: 10rpx solid transparent; |
| | | } |
| | | |
| | | .inputGray { |
| | | border-top: 0rpx solid transparent; |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | .boxList { |
| | | transition: all ease 2s; |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 0; |
| | | top: 0; |
| | | right: 0; |
| | | width: 100%; |
| | | height: 100%; |
| | | z-index: 999; |
| | | background: rgba(0, 0, 0, 0.6); |
| | | |
| | | .innerWrap { |
| | | max-height: 50%; |
| | | overflow-y: auto; |
| | | background: white; |
| | | position: absolute; |
| | | bottom: 0; |
| | | left: 0; |
| | | width: 100%; |
| | | |
| | | ul { |
| | | padding: 0; |
| | | margin: 0; |
| | | |
| | | li { |
| | | padding: 0; |
| | | margin: 0; |
| | | border-bottom: 1px solid #e4e7ed; |
| | | list-style-type: none; |
| | | display: flex; |
| | | flex-direction: row; |
| | | line-height: 1; |
| | | justify-content: center; |
| | | align-items: center; |
| | | font-size: 13px; |
| | | padding: 14px 0; |
| | | flex-direction: column; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | </style> |
| | | </style> |