|
|
|
|
<template>
|
|
|
|
|
<div>
|
|
|
|
|
<el-form
|
|
|
|
|
:model="orderFormData"
|
|
|
|
|
:rules="formRules"
|
|
|
|
|
ref="dataForm"
|
|
|
|
|
label-width="110px"
|
|
|
|
|
>
|
|
|
|
|
<el-card style="margin: 5px;">
|
|
|
|
|
|
|
|
|
|
<el-row :gutter="0" v-if="isLinkDisabled">
|
|
|
|
|
<el-col :span="24" align="right">
|
|
|
|
|
<div class="inv-hos-title">
|
|
|
|
|
<span
|
|
|
|
|
style="margin: 10px;color: #2d8cf0;font-size: 14px;"
|
|
|
|
|
>部门 : {{ this.userInfo.deptName }}</span>
|
|
|
|
|
|
|
|
|
|
<span style="font-weight: 500;color:rgb(51 48 48); font-size: 14px;">用户 : 
|
|
|
|
|
<!-- {{-->
|
|
|
|
|
<!-- this.userInfo.companyName-->
|
|
|
|
|
<!-- }}-->
|
|
|
|
|
</span>
|
|
|
|
|
<span
|
|
|
|
|
style="font-weight: 500;color:rgb(51 48 48); font-size: 14px; margin-right: 20px"
|
|
|
|
|
>({{
|
|
|
|
|
this.userInfo.userName
|
|
|
|
|
}})</span>
|
|
|
|
|
</div>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
|
|
<el-alert
|
|
|
|
|
style="margin-top: 1px;margin-bottom: 10px;font-size: 20px;"
|
|
|
|
|
:title="msgTip"
|
|
|
|
|
:closable="false"
|
|
|
|
|
type="warning">
|
|
|
|
|
</el-alert>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-button-group
|
|
|
|
|
style="display: flex; margin: 0px 0 15px 0; float: right"
|
|
|
|
|
>
|
|
|
|
|
<!--<el-button size="mini" type="primary" @click.native="saveOrder()" :loading="saveLoading"-->
|
|
|
|
|
<!-->草稿保存-->
|
|
|
|
|
<!--</el-button>-->
|
|
|
|
|
<el-button size="mini" type="primary" @click.native="chooseDraftOrder()" :loading="submitLoading"
|
|
|
|
|
v-if="splitType=='out'" style="margin-right: 8px;border-radius: 5%;"
|
|
|
|
|
>选入草稿单据
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-button size="mini" type="primary" @click.native="draftOrder()" :loading="submitLoading"
|
|
|
|
|
v-if="splitType=='out'" style="margin-right: 8px;border-radius: 5%;"
|
|
|
|
|
>草稿保存
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-button size="mini" type="primary" @click.native="submit()" :loading="submitLoading"
|
|
|
|
|
v-if="splitType=='out'" style="margin-right: 8px;border-radius: 5%;"
|
|
|
|
|
>上货完成
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-button size="mini" type="primary" @click.native="" :loading="submitLoading"
|
|
|
|
|
v-if="splitType=='return'" style="margin-right: 8px;border-radius: 5%;"
|
|
|
|
|
>草稿保存
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-button size="mini" type="primary" @click.native="submit()" :loading="submitLoading"
|
|
|
|
|
v-if="splitType=='return'" style="margin-right: 8px;border-radius: 5%;"
|
|
|
|
|
>退货完成
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-button size="mini" type="primary" @click.native="printLabel()" :loading="submitLoading"
|
|
|
|
|
style="border-radius: 5%;"
|
|
|
|
|
>打印二维码
|
|
|
|
|
</el-button>
|
|
|
|
|
|
|
|
|
|
</el-button-group>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row v-if="false">
|
|
|
|
|
<el-col :span="11">
|
|
|
|
|
<el-form-item prop="corpOrderId" class="query-form-item" label="单据号:">
|
|
|
|
|
<el-input
|
|
|
|
|
v-model="orderFormData.corpOrderId"
|
|
|
|
|
auto-complete="off"
|
|
|
|
|
style="width: 90%"
|
|
|
|
|
clearable
|
|
|
|
|
:disabled="true"
|
|
|
|
|
></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="11">
|
|
|
|
|
<el-form-item prop="createTime" class="query-form-item" label="单据时间:">
|
|
|
|
|
<el-date-picker
|
|
|
|
|
v-model="orderFormData.createTime"
|
|
|
|
|
type="datetime"
|
|
|
|
|
placeholder="日期"
|
|
|
|
|
clearable
|
|
|
|
|
value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
|
|
:disabled="true"
|
|
|
|
|
style="width: 90%"
|
|
|
|
|
>
|
|
|
|
|
</el-date-picker>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="11">
|
|
|
|
|
<el-form-item prop="invCode" class="query-form-item" label="当前仓库:">
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="orderFormData.invCode"
|
|
|
|
|
placeholder="当前仓库"
|
|
|
|
|
style="width: 90%"
|
|
|
|
|
:disabled="corpOrderIdDisabled || viewTypeKsck"
|
|
|
|
|
@change="changeInv"
|
|
|
|
|
filterable
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in curInvOptions"
|
|
|
|
|
:key="item.name"
|
|
|
|
|
:label="item.name"
|
|
|
|
|
:value="item.code"
|
|
|
|
|
>
|
|
|
|
|
<span style="float: left">{{ item.name }}</span>
|
|
|
|
|
<span style="float: right; color: #8492a6; font-size: 13px">{{
|
|
|
|
|
item.warehouseName
|
|
|
|
|
}}</span>
|
|
|
|
|
</el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="11">
|
|
|
|
|
<el-form-item prop="remark" class="query-form-item" label="单据备注:">
|
|
|
|
|
<el-input
|
|
|
|
|
v-model="orderFormData.remark"
|
|
|
|
|
auto-complete="off"
|
|
|
|
|
clearable
|
|
|
|
|
style="width: 90%"
|
|
|
|
|
placeholder="请输入备注信息"
|
|
|
|
|
></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item prop="workPlaceCode" class="query-form-item" label="当前工位:">
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="orderFormData.workPlaceCode"
|
|
|
|
|
placeholder="当前工位"
|
|
|
|
|
style="width: 90%"
|
|
|
|
|
:disabled="corpOrderIdDisabled"
|
|
|
|
|
filterable
|
|
|
|
|
@change="changeInvRemind"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in curWorkPlaces"
|
|
|
|
|
:key="item.workplaceId"
|
|
|
|
|
:label="item.workplaceName"
|
|
|
|
|
:value="item.workplaceId"
|
|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
<span style="float: left">{{ item.workplaceName }}</span>
|
|
|
|
|
<span style="float: right; color: #8492a6; font-size: 13px">{{
|
|
|
|
|
item.workplaceId
|
|
|
|
|
}}</span>
|
|
|
|
|
</el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8" v-if="splitType=='out'">
|
|
|
|
|
<el-form-item prop="fifoSplit" class="query-form-item" label="上货方式:">
|
|
|
|
|
<el-radio-group v-model="orderFormData.fifoSplit" :disabled="fifoSplitEnable" @change="splitChange">
|
|
|
|
|
<el-radio :label="1">拆零上货</el-radio>
|
|
|
|
|
<el-radio :label="2">整取上货</el-radio>
|
|
|
|
|
</el-radio-group>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-card>
|
|
|
|
|
<el-card style="margin: 5px;">
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="18">
|
|
|
|
|
<el-form-item prop="code" label="扫码录入:">
|
|
|
|
|
<el-input
|
|
|
|
|
id="inputer"
|
|
|
|
|
@focus="getInputFocus($event)"
|
|
|
|
|
@keypress.enter.native="enterKey($event)"
|
|
|
|
|
ref="inputRef"
|
|
|
|
|
style="ime-mode: disabled"
|
|
|
|
|
type="tel"
|
|
|
|
|
placeholder="请点击输入框进行扫码设置或者扫码录入"
|
|
|
|
|
v-model="scanCode"
|
|
|
|
|
></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-button-group>
|
|
|
|
|
<el-button
|
|
|
|
|
type="primary"
|
|
|
|
|
size="mini"
|
|
|
|
|
@click.native.stop="addCode()"
|
|
|
|
|
style="margin-left: 15px"
|
|
|
|
|
>添加
|
|
|
|
|
</el-button>
|
|
|
|
|
<!-- <el-button icon="el-icon-view" @click="hideSearch">显示/隐藏快捷设置</el-button>-->
|
|
|
|
|
</el-button-group>
|
|
|
|
|
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
|
|
<el-alert
|
|
|
|
|
title="扫码解析结果:"
|
|
|
|
|
:type="scanResultType"
|
|
|
|
|
:closable="false"
|
|
|
|
|
:description="result">
|
|
|
|
|
</el-alert>
|
|
|
|
|
<el-row style="margin-top: 25px;margin-bottom: -15px">
|
|
|
|
|
<div v-if="showSearch && splitBusType!=null">
|
|
|
|
|
<el-divider>
|
|
|
|
|
<p style="font-weight: bold">扫码快捷设置</p>
|
|
|
|
|
</el-divider>
|
|
|
|
|
<el-row justify="center">
|
|
|
|
|
<el-col :span="4" style="text-align: center;">
|
|
|
|
|
<div>
|
|
|
|
|
<img src="@/assets/images/fifoSplit1.png" alt="二维码" style="width: 80px; height: 80px;">
|
|
|
|
|
<p style="margin-top: 5px;font-weight: bold">拆零上货</p>
|
|
|
|
|
</div>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="4" style="text-align: center;">
|
|
|
|
|
<div>
|
|
|
|
|
<img src="@/assets/images/fifoSplit2.png" alt="二维码" style="width: 80px; height: 80px;">
|
|
|
|
|
<p style="margin-top: 5px;font-weight: bold">整取上货</p>
|
|
|
|
|
</div>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="4" style="text-align: center;">
|
|
|
|
|
<div>
|
|
|
|
|
<img src="@/assets/images/splitOut.png" alt="二维码" style="width: 80px; height: 80px;">
|
|
|
|
|
<p style="margin-top: 5px;font-weight: bold">工位上货</p>
|
|
|
|
|
</div>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="4" style="text-align: center;">
|
|
|
|
|
<div>
|
|
|
|
|
<img src="@/assets/images/splitIn.png" alt="二维码" style="width: 80px; height: 80px;">
|
|
|
|
|
<p style="margin-top: 5px;font-weight: bold">工位退货</p>
|
|
|
|
|
</div>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</div>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-card>
|
|
|
|
|
</el-form>
|
|
|
|
|
<el-tabs type="border-card" style="margin: 5px">
|
|
|
|
|
|
|
|
|
|
<el-tab-pane label="单据详情" v-if="viewCodeVisible">
|
|
|
|
|
<codeDetailPanel
|
|
|
|
|
:idQuery="orderFormData"
|
|
|
|
|
:curAction="curAction"
|
|
|
|
|
:refreshPanel="refreshCodesPanel"
|
|
|
|
|
:viewType="viewType"
|
|
|
|
|
v-if="isCodeDetailAlive"
|
|
|
|
|
></codeDetailPanel>
|
|
|
|
|
</el-tab-pane>
|
|
|
|
|
<el-tab-pane label="扫码明细" v-if="viewCodeDetailVisible">
|
|
|
|
|
<codesPanel
|
|
|
|
|
:idQuery="orderFormData"
|
|
|
|
|
:refreshPanel="refreshCodesPanel"
|
|
|
|
|
v-if="isCodeAlive"
|
|
|
|
|
:viewType="viewType"
|
|
|
|
|
:selectRlTitle="selectRlTitle"
|
|
|
|
|
:editTitle="editTitle"
|
|
|
|
|
:selectUnitTitle="selectUnitTitle"
|
|
|
|
|
></codesPanel>
|
|
|
|
|
</el-tab-pane>
|
|
|
|
|
</el-tabs>
|
|
|
|
|
|
|
|
|
|
<el-dialog
|
|
|
|
|
title="选入草稿单据"
|
|
|
|
|
:visible.sync="chooseDraftOrderVisible"
|
|
|
|
|
width="80%"
|
|
|
|
|
append-to-body
|
|
|
|
|
:close-on-click-modal="false"
|
|
|
|
|
:close-on-press-escape="false"
|
|
|
|
|
v-if="chooseDraftOrderVisible"
|
|
|
|
|
>
|
|
|
|
|
<chooseDraftOrderDialog
|
|
|
|
|
:rowData="rowData"
|
|
|
|
|
:closeChooseDialog="closeChooseDialog"
|
|
|
|
|
:handleChoose="handleChoose"
|
|
|
|
|
>
|
|
|
|
|
</chooseDraftOrderDialog>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import {
|
|
|
|
|
submitBiz,
|
|
|
|
|
addOrderWeb,
|
|
|
|
|
submitCodes,
|
|
|
|
|
submitOrderWeb,
|
|
|
|
|
saveOrderWeb,
|
|
|
|
|
enterCodeWeb, submitAllocateBiz, rollbackWaitcheck, submitCodeResult, submitCheckResult, delmitBiz,
|
|
|
|
|
} from "@/api/inout/order";
|
|
|
|
|
import {filterSubAll, findByFrom, findInvByUser} from "@/api/system/invSubWarehouse";
|
|
|
|
|
import {parseTime} from "@/utils/coTools";
|
|
|
|
|
import {getBasicUnitMaintains} from "@/api/basic/basicUnitMaintain";
|
|
|
|
|
import editCodeDialog from "@/views/inout/DialogEditCode";
|
|
|
|
|
import DialogCreateOrderSelect from "@/views/inout/DialogCreateOrderSelect";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import codesPanel from "@/views/collect/PanelCreateCodes";
|
|
|
|
|
import codeDetailPanel from "@/views/collect/PanelCreateCodeDetail";
|
|
|
|
|
|
|
|
|
|
import A from "../../plugins/KeyScaner";
|
|
|
|
|
import {findByInvUser, getBusTypeList} from "@/api/basic/busType";
|
|
|
|
|
import {getInvSpaceList} from "@/api/inventory/invSpace";
|
|
|
|
|
import DialogSelectUnit from "@/views/inout/DialogSelectUnit";
|
|
|
|
|
import selectRlDialog from "@/views/inout/DialogSelectRl";
|
|
|
|
|
import DialogSelectSpace from "@/views/inout/DialogSelectSpace";
|
|
|
|
|
import {isBlank} from "@/utils/strUtil";
|
|
|
|
|
import {filterNoPage, remoteFilter} from "@/api/basic/sicker/skPersonApi";
|
|
|
|
|
import dialogInvProduct from "@/views/inout/DialogSelectInvProduct";
|
|
|
|
|
import {listPage} from "@/api/basic/workPlace/sysWorkplaceManage";
|
|
|
|
|
import {printSplitLabel} from "@/api/collect/splitCreateOrder";
|
|
|
|
|
import {findInvRemind} from "@/api/inout/splitCode";
|
|
|
|
|
import chooseDraftOrderDialog from "./chooseDraftOrderDialog"
|
|
|
|
|
import {getUserBindWork} from '@/api/basic/collectPoint/userWorkplace'
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
name: "ioCreateOrder",
|
|
|
|
|
props: {
|
|
|
|
|
closeDialog: {
|
|
|
|
|
type: Function,
|
|
|
|
|
required: true,
|
|
|
|
|
},
|
|
|
|
|
orderQuery: {
|
|
|
|
|
type: Object,
|
|
|
|
|
required: true,
|
|
|
|
|
default: {}
|
|
|
|
|
},
|
|
|
|
|
errView: {
|
|
|
|
|
type: Object,
|
|
|
|
|
required: true,
|
|
|
|
|
},
|
|
|
|
|
sickerAdNum: {
|
|
|
|
|
type: Object,
|
|
|
|
|
required: true,
|
|
|
|
|
},
|
|
|
|
|
sickerAdName: {
|
|
|
|
|
type: Object,
|
|
|
|
|
required: true,
|
|
|
|
|
},
|
|
|
|
|
viewTypeKsck: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
required: false,
|
|
|
|
|
},
|
|
|
|
|
viewType: {
|
|
|
|
|
//1、新增业务单据页面,2.新增扫码单据页面,3、正常单据处理页面,4.待配货页面,5:有三期验收,6:无三期验收;7.待校验页面
|
|
|
|
|
type: Object,
|
|
|
|
|
required: true,
|
|
|
|
|
},
|
|
|
|
|
splitBusType: {//科室拆零单据类型
|
|
|
|
|
type: Object,
|
|
|
|
|
default: null,
|
|
|
|
|
required: true,
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
dialogTitle: {//科室拆零单据类型
|
|
|
|
|
type: Object,
|
|
|
|
|
required: true,
|
|
|
|
|
},
|
|
|
|
|
splitType: {//splitType
|
|
|
|
|
type: Object,
|
|
|
|
|
required: true,
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
isLinkDisabled: false,
|
|
|
|
|
userInfo: {
|
|
|
|
|
inv: this.$store.getters.locInvName,
|
|
|
|
|
deptName: this.$store.getters.locDeptName,
|
|
|
|
|
userName: this.$store.getters.name,
|
|
|
|
|
userId: this.$store.getters.userId,
|
|
|
|
|
companyName: this.$store.getters.companyName,
|
|
|
|
|
},
|
|
|
|
|
workplaceId: null,
|
|
|
|
|
//单据相关
|
|
|
|
|
orderFormData: {
|
|
|
|
|
billNo: null,
|
|
|
|
|
corpOrderId: null,
|
|
|
|
|
action: null,
|
|
|
|
|
invCode: null,
|
|
|
|
|
fromCorp: null,
|
|
|
|
|
fromCorpName: null,
|
|
|
|
|
fromName: null,
|
|
|
|
|
fromInvCode: null,
|
|
|
|
|
remark: null,
|
|
|
|
|
fromType: 2,
|
|
|
|
|
errMsg: null,
|
|
|
|
|
checkPreInOrders: null,
|
|
|
|
|
checkPreInInvCode: null,
|
|
|
|
|
checkPreInSpaceCode: null,
|
|
|
|
|
curSpaceCode: null,
|
|
|
|
|
preSpaceCode: null,
|
|
|
|
|
preCurSpaceCode: null, //单据
|
|
|
|
|
sickerAdNum: null,
|
|
|
|
|
workPlaceCode: null,
|
|
|
|
|
fifoSplit: 1,
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
detailList: [],
|
|
|
|
|
total: 0,
|
|
|
|
|
checkPreInArray: [],
|
|
|
|
|
errView: 0,
|
|
|
|
|
//选入相关
|
|
|
|
|
selectorder: false,
|
|
|
|
|
//扫码相关
|
|
|
|
|
codeFormData: {
|
|
|
|
|
code: "",
|
|
|
|
|
batchNo: null,
|
|
|
|
|
produceDate: null,
|
|
|
|
|
expireDate: null,
|
|
|
|
|
serialNo: null,
|
|
|
|
|
relId: null,
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
curInvOptions: [],
|
|
|
|
|
busTypeOptions: [],
|
|
|
|
|
fromInvOptions: [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
curPreInInvOptions: [], //预验收仓库
|
|
|
|
|
curPreInSpaceOptions: [], //预验收货位
|
|
|
|
|
curPreSpaceOptions: [], //寄售货位
|
|
|
|
|
curSpaceOptions: [], //当前货位
|
|
|
|
|
|
|
|
|
|
curWorkPlaces: [],
|
|
|
|
|
|
|
|
|
|
curAction: {
|
|
|
|
|
corpType: 0,
|
|
|
|
|
genUnit: false,
|
|
|
|
|
checkWebNew: null,
|
|
|
|
|
mainAction: null,
|
|
|
|
|
},
|
|
|
|
|
fromOptions: [],
|
|
|
|
|
fromSickOptions: [],
|
|
|
|
|
isCodeAlive: true,
|
|
|
|
|
bizShow: true,
|
|
|
|
|
isCheckResultAlive: true,
|
|
|
|
|
isBizDetailAlive: true,
|
|
|
|
|
isCodeDetailAlive: true,
|
|
|
|
|
isSickerAlive: true,
|
|
|
|
|
editCodeVisible: false,
|
|
|
|
|
actionEnable: false,
|
|
|
|
|
editOriginCodeVisible: false,
|
|
|
|
|
curId: null,
|
|
|
|
|
storageList: [],
|
|
|
|
|
|
|
|
|
|
formRules: {
|
|
|
|
|
corpOrderId: [
|
|
|
|
|
{required: true, message: "请输入单据号", trigger: "blur"},
|
|
|
|
|
],
|
|
|
|
|
createTime: [
|
|
|
|
|
{required: true, message: "请选择创建时间", trigger: "blur"},
|
|
|
|
|
],
|
|
|
|
|
invCode: [
|
|
|
|
|
{required: true, message: "请选择当前仓库", trigger: "change"},
|
|
|
|
|
],
|
|
|
|
|
action: [
|
|
|
|
|
{required: true, message: "请选择单据类型", trigger: "change"},
|
|
|
|
|
],
|
|
|
|
|
// acceptance: [
|
|
|
|
|
// {required: true, message: "请选入预验收单据", trigger: "blur"},
|
|
|
|
|
// ],
|
|
|
|
|
},
|
|
|
|
|
isScan: true,
|
|
|
|
|
scanText: "扫码录入:",
|
|
|
|
|
corpOrderIdDisabled: false,
|
|
|
|
|
isSupVesion: false,
|
|
|
|
|
loading: false,
|
|
|
|
|
index: null,
|
|
|
|
|
formLoading: false,
|
|
|
|
|
formVisible: false,
|
|
|
|
|
deleteLoading: false,
|
|
|
|
|
orderNo: null,
|
|
|
|
|
fromStorageOptions: [],
|
|
|
|
|
curRow: null,
|
|
|
|
|
dialogTableVisible: false,
|
|
|
|
|
selectRlVisible: false,
|
|
|
|
|
selectSpaceVisible: false,
|
|
|
|
|
sitcomScan: false,
|
|
|
|
|
selectRlTitle: "绑定产品",
|
|
|
|
|
selectUnitTitle: "绑定供应商",
|
|
|
|
|
sictomText: "",
|
|
|
|
|
originCode: "",
|
|
|
|
|
checkSuccess: false,
|
|
|
|
|
codeDetail: null,
|
|
|
|
|
editTitle: "编辑条码",
|
|
|
|
|
fromDeptOptions: [],
|
|
|
|
|
enableDept: false,
|
|
|
|
|
viewCheckVisible: false,
|
|
|
|
|
viewBizVisible: false,
|
|
|
|
|
viewCodeVisible: false,
|
|
|
|
|
viewCodeDetailVisible: false,
|
|
|
|
|
viewSickVisible: false, //是否显示处方使用耗材
|
|
|
|
|
documentShow: false, //控制预验收选入单据界面
|
|
|
|
|
curSpaceShow: false, //正常出入库选入出库界面
|
|
|
|
|
preInSpaceShow: false, //是否显示选择预验收界面
|
|
|
|
|
preSpaceShow: false, //寄售,预验收仓库界面
|
|
|
|
|
|
|
|
|
|
spaceCodeList: [],
|
|
|
|
|
checkTipDialogVisible: false,
|
|
|
|
|
checkTip: null,
|
|
|
|
|
enableSick: false,
|
|
|
|
|
saveLoading: false,
|
|
|
|
|
submitLoading: false,
|
|
|
|
|
checkLoading: false,
|
|
|
|
|
codeLoading: false,
|
|
|
|
|
retractLoading: false,
|
|
|
|
|
|
|
|
|
|
//库存选入
|
|
|
|
|
selectInvProductVisible: false,
|
|
|
|
|
chooseDraftOrderVisible: false,
|
|
|
|
|
invQueryData: {
|
|
|
|
|
invCode: null,
|
|
|
|
|
},
|
|
|
|
|
showSearch: false,
|
|
|
|
|
scanCode: "",
|
|
|
|
|
isSuccess: false,
|
|
|
|
|
result: "",
|
|
|
|
|
scanResultType: "success",
|
|
|
|
|
msgTip: "当前工位存量提醒:",
|
|
|
|
|
splitType: null,
|
|
|
|
|
rowData: {},
|
|
|
|
|
curWorkPlace: null,
|
|
|
|
|
fifoSplitEnable: false,
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
components: {
|
|
|
|
|
codesPanel,
|
|
|
|
|
codeDetailPanel,
|
|
|
|
|
editCodeDialog,
|
|
|
|
|
DialogCreateOrderSelect,
|
|
|
|
|
DialogSelectUnit, DialogSelectSpace, selectRlDialog, dialogInvProduct, chooseDraftOrderDialog
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
changeInvRemind(val) {
|
|
|
|
|
let post = {
|
|
|
|
|
workPlaceCode: val
|
|
|
|
|
}
|
|
|
|
|
this.defaultSplitType()
|
|
|
|
|
findInvRemind(post).then((response) => {
|
|
|
|
|
if (response.code === 20000) {
|
|
|
|
|
this.msgTip = response.data
|
|
|
|
|
this.$refs.inputRef.focus();
|
|
|
|
|
}
|
|
|
|
|
}).catch(() => {
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
splitChange() {
|
|
|
|
|
this.$refs.inputRef.focus();
|
|
|
|
|
},
|
|
|
|
|
successCloseData() {
|
|
|
|
|
let workPlaceCode = this.orderFormData.workPlaceCode
|
|
|
|
|
this.orderFormData = {
|
|
|
|
|
billNo: null,
|
|
|
|
|
corpOrderId: null,
|
|
|
|
|
action: null,
|
|
|
|
|
invCode: null,
|
|
|
|
|
fromCorp: null,
|
|
|
|
|
fromCorpName: null,
|
|
|
|
|
fromName: null,
|
|
|
|
|
fromInvCode: null,
|
|
|
|
|
remark: null,
|
|
|
|
|
fromType: 2,
|
|
|
|
|
errMsg: null,
|
|
|
|
|
checkPreInOrders: null,
|
|
|
|
|
checkPreInInvCode: null,
|
|
|
|
|
checkPreInSpaceCode: null,
|
|
|
|
|
curSpaceCode: null,
|
|
|
|
|
preSpaceCode: null,
|
|
|
|
|
preCurSpaceCode: null, //单据
|
|
|
|
|
sickerAdNum: null,
|
|
|
|
|
workPlaceCode: null,
|
|
|
|
|
fifoSplit: 1,
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
this.orderFormData.workPlaceCode = workPlaceCode
|
|
|
|
|
this.scanCode = "";
|
|
|
|
|
this.corpOrderIdDisabled = false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.splitType = this.splitType;
|
|
|
|
|
if (this.splitType == "search") {
|
|
|
|
|
} else if (this.splitType == "out") {
|
|
|
|
|
this.orderFormData.action = 'SC72197936495755';
|
|
|
|
|
} else if (this.splitType == "return") {
|
|
|
|
|
this.orderFormData.action = 'SC72249388338364';
|
|
|
|
|
}
|
|
|
|
|
this.orderFormData.fromCorp = "72198012799726";
|
|
|
|
|
this.refreshCodesPanel()
|
|
|
|
|
},
|
|
|
|
|
//获取用户仓库列表
|
|
|
|
|
findInvListByUser() {
|
|
|
|
|
this.curInvOptions = [];
|
|
|
|
|
findInvByUser()
|
|
|
|
|
.then((response) => {
|
|
|
|
|
this.curInvOptions = response.data || [];
|
|
|
|
|
if (
|
|
|
|
|
this.curInvOptions != null &&
|
|
|
|
|
this.curInvOptions.length > 0 &&
|
|
|
|
|
this.orderFormData.invWarehouseCode == null
|
|
|
|
|
) {
|
|
|
|
|
//this.orderFormData.invCode = this.curInvOptions[0].code;
|
|
|
|
|
this.getBusTypeByInv();
|
|
|
|
|
this.findCurSpaceList(this.orderFormData.invCode);
|
|
|
|
|
this.findCurWorkPlaces();
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
defaultSplitType() {
|
|
|
|
|
this.curWorkPlace = this.curWorkPlaces.find(item => item.workplaceId == this.orderFormData.workPlaceCode);
|
|
|
|
|
this.orderFormData.fifoSplit = this.curWorkPlace.workplaceType
|
|
|
|
|
if (this.curWorkPlace.workplaceType == 1 || this.curWorkPlace.workplaceType == 2) {
|
|
|
|
|
this.fifoSplitEnable = true;
|
|
|
|
|
} else {
|
|
|
|
|
this.orderFormData.fifoSplit = 1;
|
|
|
|
|
this.fifoSplitEnable = false;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
//仓库改变
|
|
|
|
|
changeInv(row) {
|
|
|
|
|
this.orderFormData.action = null;
|
|
|
|
|
this.orderFormData.checkPreInOrders = null;
|
|
|
|
|
this.checkPreInArray = [];
|
|
|
|
|
if (this.documentShow) {
|
|
|
|
|
this.documentShow = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.curSpaceShow = false;
|
|
|
|
|
this.preInSpaceShow = false;
|
|
|
|
|
this.preSpaceShow = false;
|
|
|
|
|
this.orderFormData.curSpaceCode = false;
|
|
|
|
|
this.orderFormData.checkPreInSpaceCode = false;
|
|
|
|
|
this.orderFormData.preCurSpaceCode = false;
|
|
|
|
|
this.getBusTypeByInv();
|
|
|
|
|
this.findCurSpaceList(row);
|
|
|
|
|
this.orderFormData.workPlaceCode = null
|
|
|
|
|
this.findCurWorkPlaces();
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//根据仓库,用户获取单据类型
|
|
|
|
|
getBusTypeByInv() {
|
|
|
|
|
let query = {
|
|
|
|
|
code: this.orderFormData.invCode,
|
|
|
|
|
editType: 2, //可编辑
|
|
|
|
|
};
|
|
|
|
|
if (this.viewTypeKsck) {
|
|
|
|
|
query = {
|
|
|
|
|
code: this.orderFormData.invCode,
|
|
|
|
|
editType: 2, //可编辑
|
|
|
|
|
useDyCount: 2 //可编辑
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
findByInvUser(query)
|
|
|
|
|
.then((response) => {
|
|
|
|
|
this.busTypeOptions = response.data || [];
|
|
|
|
|
if (this.splitBusType != null)
|
|
|
|
|
this.orderFormData.action = this.splitBusType;
|
|
|
|
|
else if (this.busTypeOptions.length == 1) {
|
|
|
|
|
this.orderFormData.action = this.busTypeOptions[0].action;
|
|
|
|
|
this.actionChange(this.orderFormData.action)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
//关闭预选单弹框
|
|
|
|
|
closeDialogtwo() {
|
|
|
|
|
this.selectorder = false;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
initBusType() {
|
|
|
|
|
let query = {
|
|
|
|
|
action: this.orderFormData.action,
|
|
|
|
|
};
|
|
|
|
|
getBusTypeList(query)
|
|
|
|
|
.then((response) => {
|
|
|
|
|
this.busTypeOptions = response.data.list || [];
|
|
|
|
|
this.curAction = this.getActionItem(this.orderFormData.action);
|
|
|
|
|
|
|
|
|
|
if (isBlank(this.curAction)) {
|
|
|
|
|
this.curAction = {
|
|
|
|
|
corpType: 0,
|
|
|
|
|
genUnit: false,
|
|
|
|
|
checkWebNew: null
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (
|
|
|
|
|
(this.curAction.checkEnable &&
|
|
|
|
|
(this.curAction.checkWebNew ||
|
|
|
|
|
this.curAction.checkUdims ||
|
|
|
|
|
this.curAction.checkCopy ||
|
|
|
|
|
this.curAction.checkPdaEd ||
|
|
|
|
|
this.curAction.checkPdaUn ||
|
|
|
|
|
this.curAction.checkPc ||
|
|
|
|
|
this.curAction.checkWebNew ||
|
|
|
|
|
this.curAction.checkSp ||
|
|
|
|
|
this.curAction.checkChange ||
|
|
|
|
|
this.curAction.checkBalance)) ||
|
|
|
|
|
this.viewType == 1
|
|
|
|
|
) {
|
|
|
|
|
this.bizShow = true;
|
|
|
|
|
} else this.bizShow = false;
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
delorderData() {
|
|
|
|
|
//执行清空业务单据详情
|
|
|
|
|
let tQuery = Object.assign(
|
|
|
|
|
JSON.parse(JSON.stringify(this.orderFormData))
|
|
|
|
|
);
|
|
|
|
|
tQuery.orderId = this.orderFormData.billNo;
|
|
|
|
|
console.log(tQuery.orderId);
|
|
|
|
|
delmitBiz(tQuery).then((response) => {
|
|
|
|
|
if (response.code === 20000) {
|
|
|
|
|
// this.$message.success("成功");
|
|
|
|
|
const codeDetailComponent = this.$refs.IoCreateOrderCodeDetail.getOrderDetails();
|
|
|
|
|
if (this.closeDialog != undefined) {
|
|
|
|
|
this.closeDialog();
|
|
|
|
|
}
|
|
|
|
|
this.clearOrder();
|
|
|
|
|
} else {
|
|
|
|
|
// this.$message.error(response.message);
|
|
|
|
|
const codeDetailComponent = this.$refs.IoCreateOrderCodeDetail.getOrderDetails();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
const codeDetailComponent = this.$refs.IoCreateOrderCodeDetail.getOrderDetails();
|
|
|
|
|
console.log("66:" + codeDetailComponent);
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
//获取往来单位候选列表
|
|
|
|
|
findMethod(query) {
|
|
|
|
|
this.fromOptions = [];
|
|
|
|
|
let cQuery = {
|
|
|
|
|
key: query,
|
|
|
|
|
corpType: null,
|
|
|
|
|
outType: null,
|
|
|
|
|
page: 1,
|
|
|
|
|
limit: 20,
|
|
|
|
|
};
|
|
|
|
|
if (this.curAction.corpType == 3) {
|
|
|
|
|
//内部科室
|
|
|
|
|
cQuery.corpType = 3;
|
|
|
|
|
} else if (this.curAction.corpType == 2) {
|
|
|
|
|
//供应商信息
|
|
|
|
|
cQuery.corpType = 2;
|
|
|
|
|
} else if (this.curAction.corpType == 0) {
|
|
|
|
|
cQuery.corpType = 2;
|
|
|
|
|
} else if (this.curAction.corpType == 1) {
|
|
|
|
|
cQuery.corpType = 1;
|
|
|
|
|
cQuery.outType = 2;
|
|
|
|
|
} else if (this.curAction.corpType == 4) {
|
|
|
|
|
//供应商信息
|
|
|
|
|
cQuery.corpType = 4;
|
|
|
|
|
} else
|
|
|
|
|
return;
|
|
|
|
|
getBasicUnitMaintains(cQuery)
|
|
|
|
|
.then((response) => {
|
|
|
|
|
this.loading = false;
|
|
|
|
|
this.fromOptions = response.data.list || [];
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {
|
|
|
|
|
this.loading = false;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
findSickMethod(key) {
|
|
|
|
|
let sickQuery = {
|
|
|
|
|
page: 1,
|
|
|
|
|
limit: 10,
|
|
|
|
|
key: key,
|
|
|
|
|
};
|
|
|
|
|
filterNoPage(sickQuery).then(res => {
|
|
|
|
|
this.fromSickOptions = res.data.list || []
|
|
|
|
|
}).catch(() => {
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
remoteFindSickMethod(e) {
|
|
|
|
|
console.log(e.target.value)
|
|
|
|
|
let sickQuery = {
|
|
|
|
|
page: 1,
|
|
|
|
|
limit: 10,
|
|
|
|
|
adNum: e.target.value,
|
|
|
|
|
};
|
|
|
|
|
remoteFilter(sickQuery).then(res => {
|
|
|
|
|
this.fromSickOptions = res.data.list || []
|
|
|
|
|
}).catch(() => {
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//单据类型改变
|
|
|
|
|
actionChange(item) {
|
|
|
|
|
this.orderFormData.checkPreInOption = null;
|
|
|
|
|
if (!this.viewTypeKsck) {
|
|
|
|
|
this.orderFormData.checkPreInOrders = null;
|
|
|
|
|
this.checkPreInArray = [];
|
|
|
|
|
}
|
|
|
|
|
this.curAction = this.getActionItem(item);
|
|
|
|
|
if ((this.curAction.checkEnable && this.curAction.checkWebNew != 0) || this.viewType == 1) {
|
|
|
|
|
//单据类型需要一次校验 或 单据类型为1,显示业务单据页面
|
|
|
|
|
this.bizShow = true;
|
|
|
|
|
} else {
|
|
|
|
|
this.bizShow = false;
|
|
|
|
|
}
|
|
|
|
|
if (
|
|
|
|
|
this.curAction.corpType == 0 ||
|
|
|
|
|
this.curAction.corpType == 2 ||
|
|
|
|
|
this.curAction.corpType == 4 ||
|
|
|
|
|
(this.curAction.corpType == 1 && !this.curAction.genUnit)
|
|
|
|
|
) {
|
|
|
|
|
//1.切换往来单位
|
|
|
|
|
this.orderFormData.fromCorp = null;
|
|
|
|
|
|
|
|
|
|
this.delorderData();
|
|
|
|
|
|
|
|
|
|
this.findMethod();
|
|
|
|
|
} else if (this.curAction.corpType == 3) {
|
|
|
|
|
//2. 切换往来仓库
|
|
|
|
|
this.orderFormData.fromInvCode = null;
|
|
|
|
|
this.findFromInvList();
|
|
|
|
|
}
|
|
|
|
|
if (this.curAction.scanPreIn && this.curAction.backPreinType == 1 && this.curAction.preInBack) {
|
|
|
|
|
this.documentShow = true;
|
|
|
|
|
} else if (this.curAction.scanPreIn && this.curAction.backPreinType == 2 && this.curAction.preInBack) {
|
|
|
|
|
this.preInSpaceShow = true;
|
|
|
|
|
this.findPreInInvList();
|
|
|
|
|
} else {
|
|
|
|
|
this.documentShow = false;
|
|
|
|
|
this.preInSpaceShow = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.curAction.vailPrescribe != null && this.curAction.vailPrescribe) {
|
|
|
|
|
this.viewSickVisible = true;
|
|
|
|
|
} else {
|
|
|
|
|
this.viewSickVisible = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.curAction.scanPreIn && this.curAction.spaceOut == 1) {
|
|
|
|
|
this.preInSpaceShow = true;
|
|
|
|
|
this.curSpaceShow = false;
|
|
|
|
|
this.preSpaceShow = false;
|
|
|
|
|
this.orderFormData.curSpaceCode = null;
|
|
|
|
|
this.orderFormData.checkPreInSpaceCode = null;
|
|
|
|
|
this.orderFormData.preCurSpaceCode = null;
|
|
|
|
|
this.findPreInSpaceList();
|
|
|
|
|
} else if (this.curAction.advancePreIn && this.curAction.spaceOut == 1) {
|
|
|
|
|
this.preInSpaceShow = false;
|
|
|
|
|
this.curSpaceShow = false;
|
|
|
|
|
this.preSpaceShow = true;
|
|
|
|
|
this.orderFormData.curSpaceCode = null;
|
|
|
|
|
this.orderFormData.checkPreInSpaceCode = null;
|
|
|
|
|
this.orderFormData.preCurSpaceCode = null;
|
|
|
|
|
this.findPreSpaceList()
|
|
|
|
|
} else if (this.curAction.spaceOut == 1) {
|
|
|
|
|
this.curSpaceShow = true;
|
|
|
|
|
this.preInSpaceShow = false;
|
|
|
|
|
this.preSpaceShow = false;
|
|
|
|
|
this.orderFormData.curSpaceCode = null;
|
|
|
|
|
this.orderFormData.checkPreInSpaceCode = null;
|
|
|
|
|
this.orderFormData.preCurSpaceCode = null;
|
|
|
|
|
} else {
|
|
|
|
|
this.curSpaceShow = false;
|
|
|
|
|
this.preInSpaceShow = false;
|
|
|
|
|
this.preSpaceShow = false;
|
|
|
|
|
this.orderFormData.curSpaceCode = null;
|
|
|
|
|
this.orderFormData.checkPreInSpaceCode = null;
|
|
|
|
|
this.orderFormData.preCurSpaceCode = null;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//获取往来仓库列表
|
|
|
|
|
findFromInvList(val) {
|
|
|
|
|
let cQuery = {
|
|
|
|
|
locInvCode: this.orderFormData.invCode,
|
|
|
|
|
};
|
|
|
|
|
findByFrom(cQuery)
|
|
|
|
|
.then((response) => {
|
|
|
|
|
this.fromInvOptions = response.data || [];
|
|
|
|
|
if (val == 1) {
|
|
|
|
|
this.orderFormData.fromInvCode = this.fromInvOptions[0].code;
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//获取当前单据类型
|
|
|
|
|
getActionItem(action) {
|
|
|
|
|
for (let i = 0; i < this.busTypeOptions.length; i++) {
|
|
|
|
|
if (this.busTypeOptions[i].action == action) {
|
|
|
|
|
return this.busTypeOptions[i];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//切换预验收仓库
|
|
|
|
|
changePreInInv(row) {
|
|
|
|
|
this.orderFormData.checkPreInSpaceCode = null;
|
|
|
|
|
this.findPreInSpaceList(row.code);
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//获取预验收仓库
|
|
|
|
|
findPreInInvList(val) {
|
|
|
|
|
let query = {
|
|
|
|
|
advanceType: 2,
|
|
|
|
|
code: this.orderFormData.checkPreInInvCode,
|
|
|
|
|
}
|
|
|
|
|
filterSubAll(query)
|
|
|
|
|
.then((response) => {
|
|
|
|
|
this.curPreInInvOptions = response.data || [];
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//获取预验收货位
|
|
|
|
|
findPreInSpaceList(val) {
|
|
|
|
|
let query = {
|
|
|
|
|
filterType: "preIn",
|
|
|
|
|
status: 1,
|
|
|
|
|
code: this.orderFormData.checkPreInSpaceCode,
|
|
|
|
|
}
|
|
|
|
|
getInvSpaceList(query).then((res) => {
|
|
|
|
|
this.curPreInSpaceOptions = res.data.list || [];
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//获取寄售
|
|
|
|
|
findPreSpaceList(val) {
|
|
|
|
|
let query = {
|
|
|
|
|
filterType: "pre",
|
|
|
|
|
status: 1,
|
|
|
|
|
code: this.orderFormData.preSpaceCode,
|
|
|
|
|
}
|
|
|
|
|
getInvSpaceList(query).then((res) => {
|
|
|
|
|
this.curPreSpaceOptions = res.data.list || [];
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//获取当前货位
|
|
|
|
|
findCurSpaceList(val) {
|
|
|
|
|
let query = {
|
|
|
|
|
invWarehouseCode: val,
|
|
|
|
|
status: 1,
|
|
|
|
|
code: this.orderFormData.curSpaceCode,
|
|
|
|
|
}
|
|
|
|
|
getInvSpaceList(query).then((res) => {
|
|
|
|
|
this.curSpaceOptions = res.data.list || [];
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//获取当前货位
|
|
|
|
|
findCurWorkPlaces(val) {
|
|
|
|
|
let query = {
|
|
|
|
|
// key: val,
|
|
|
|
|
// status: 1,
|
|
|
|
|
userId: this.userInfo.userId,
|
|
|
|
|
page: 1,
|
|
|
|
|
limit: 100,
|
|
|
|
|
}
|
|
|
|
|
getUserBindWork(query).then((res) => {
|
|
|
|
|
this.curWorkPlaces = res.data.list || [];
|
|
|
|
|
if (this.curWorkPlaces.length == 1 && this.$isNotBlank(this.orderFormData.workPlaceCode)) {
|
|
|
|
|
this.orderFormData.workPlaceCode = this.curWorkPlaces[0].workplaceId;
|
|
|
|
|
this.defaultSplitType()
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
addInvProduct() {
|
|
|
|
|
this.invQueryData.invCode = this.orderFormData.invCode;
|
|
|
|
|
this.selectInvProductVisible = true;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
closeDialogC2(rData) {
|
|
|
|
|
this.selectInvProductVisible = false;
|
|
|
|
|
if (this.$isNotBlank(rData)) {
|
|
|
|
|
this.codeFormData.code = rData;
|
|
|
|
|
this.addCode();
|
|
|
|
|
// this.codeFormData.code = null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// this.refreshCodesPanel()
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//添加条码
|
|
|
|
|
addCode() {
|
|
|
|
|
if (this.$isBlank(this.orderFormData.workPlaceCode)) {
|
|
|
|
|
this.$message.warning("请选择工位!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
this.originCode = "";
|
|
|
|
|
this.sictomText = "";
|
|
|
|
|
this.codeFormData.batchNo = "";
|
|
|
|
|
this.codeFormData.produceDate = "";
|
|
|
|
|
this.codeFormData.expireDate = "";
|
|
|
|
|
this.codeFormData.serialNo = "";
|
|
|
|
|
this.actionEnable = true;
|
|
|
|
|
this.$refs.inputRef.select();
|
|
|
|
|
if (this.$isBlank(this.codeFormData.code)) {
|
|
|
|
|
this.codeFormData.code = this.scanCode.trim();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (this.$isBlank(this.codeFormData.code) && this.$isBlank(this.scanCode)) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.$isBlank(this.orderFormData.action)) {
|
|
|
|
|
this.$message.warning("请选择单据类型!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (this.splitBusType != null) {
|
|
|
|
|
this.orderFormData.fromCorp = "72198012799726";
|
|
|
|
|
}
|
|
|
|
|
if (this.curAction.corpType === 0 || this.curAction.corpType === 2 || (this.curAction.corpType === 1 && !this.curAction.genUnit)) {
|
|
|
|
|
if (this.$isBlank(this.orderFormData.fromCorp) && this.$isBlank(this.orderFormData.sickerAdNum)) {
|
|
|
|
|
this.$message.warning("请选择往来单位!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (this.curAction.corpType == 3) {
|
|
|
|
|
if (this.$isBlank(this.orderFormData.fromInvCode)) {
|
|
|
|
|
this.$message.warning("请选择往来仓库!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (this.curAction.corpType === 1 && this.curAction.genUnit) {
|
|
|
|
|
if (this.$isBlank(this.orderFormData.fromCorp) && this.$isBlank(this.orderFormData.sickerAdNum)) {
|
|
|
|
|
this.$message.warning("请输入患者信息!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.curSpaceShow) {
|
|
|
|
|
if (this.$isBlank(this.orderFormData.curSpaceCode)) {
|
|
|
|
|
this.$message.warning("请选择当前货位!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (this.preInSpaceShow) {
|
|
|
|
|
if (this.$isBlank(this.orderFormData.checkPreInSpaceCode)) {
|
|
|
|
|
this.$message.warning("请选择预验收出库货位!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (this.preSpaceShow) {
|
|
|
|
|
if (this.$isBlank(this.orderFormData.preCurSpaceCode)) {
|
|
|
|
|
this.$message.warning("请选择寄售出库货位!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (this.checkPreInArray != null) {
|
|
|
|
|
this.orderFormData.checkPreInOrders = this.checkPreInArray.join(",");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.$isBlank(this.orderFormData.corpOrderId)) {
|
|
|
|
|
let date = new Date();
|
|
|
|
|
this.orderFormData.corpOrderId =
|
|
|
|
|
parseTime(date, "{y}{m}{d}{h}{i}{s}") +
|
|
|
|
|
Math.ceil(Math.random() * 89 + 10);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.loading = true;
|
|
|
|
|
let tQuery = Object.assign(
|
|
|
|
|
JSON.parse(JSON.stringify(this.orderFormData))
|
|
|
|
|
);
|
|
|
|
|
tQuery.code = this.codeFormData.code;
|
|
|
|
|
tQuery.orderType = this.viewType;
|
|
|
|
|
this.addCodeSubmit(tQuery);
|
|
|
|
|
this.$refs.inputRef.select();
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
repeatAddCode(editData) {
|
|
|
|
|
let tQuery = Object.assign(
|
|
|
|
|
JSON.parse(JSON.stringify(this.orderFormData))
|
|
|
|
|
);
|
|
|
|
|
tQuery.code = this.codeFormData.code;
|
|
|
|
|
tQuery.orderType = this.viewType;
|
|
|
|
|
|
|
|
|
|
tQuery.batchNo = editData.batchNo;
|
|
|
|
|
tQuery.produceDate = editData.produceDate;
|
|
|
|
|
tQuery.expireDate = editData.expireDate;
|
|
|
|
|
tQuery.serialNo = editData.serialNo;
|
|
|
|
|
|
|
|
|
|
this.closeCodeDialog();
|
|
|
|
|
this.addCodeSubmit(tQuery);
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//添加条码后提交
|
|
|
|
|
addCodeSubmit(tQuery) {
|
|
|
|
|
addOrderWeb(tQuery).then((response) => {
|
|
|
|
|
if (response.code === 20000) {
|
|
|
|
|
this.orderFormData.billNo = response.data.orderId;
|
|
|
|
|
if (response.data.errMsg != null) {
|
|
|
|
|
this.$alert(response.data.errMsg, "提示", {
|
|
|
|
|
confirmButtonText: "确定",
|
|
|
|
|
type: "warning",
|
|
|
|
|
closeOnClickModal: true,
|
|
|
|
|
callback: (action) => {
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
this.corpOrderIdDisabled = true;
|
|
|
|
|
this.refreshCodesPanel();
|
|
|
|
|
this.$refs.inputRef.focus();
|
|
|
|
|
this.$refs.inputRef.select();
|
|
|
|
|
this.orderFormData.relId = null;
|
|
|
|
|
} else {
|
|
|
|
|
if (response.code == 502) {
|
|
|
|
|
//该产品绑定多个产品ID处理
|
|
|
|
|
this.curRow = response.data;
|
|
|
|
|
this.orderFormData.billNo = this.curRow.orderId;
|
|
|
|
|
this.refreshCodesPanel();
|
|
|
|
|
this.$message.error(response.message);
|
|
|
|
|
this.selectRlTitle = response.message;
|
|
|
|
|
//判断是出库需要选择供应商的时候把供应商值传过去
|
|
|
|
|
if (tQuery.selectSupId != null) {
|
|
|
|
|
this.codeFormData.selectSupId = tQuery.selectSupId
|
|
|
|
|
} else {
|
|
|
|
|
this.codeFormData.selectSupId = false
|
|
|
|
|
}
|
|
|
|
|
//DI绑定多个产品,请指定对应产品 时候传递关键字做过滤
|
|
|
|
|
this.codeFormData.key = "key";
|
|
|
|
|
this.selectRlVisible = true;
|
|
|
|
|
} else if (response.code == 503) {
|
|
|
|
|
//该产品绑定多个供应商处理
|
|
|
|
|
this.curRow = response.data;
|
|
|
|
|
this.orderFormData.billNo = this.curRow.orderId;
|
|
|
|
|
this.codeFormData.relId = this.curRow.relId;
|
|
|
|
|
this.refreshCodesPanel();
|
|
|
|
|
this.selectUnitTitle = response.message;
|
|
|
|
|
this.$message.error(response.message);
|
|
|
|
|
this.dialogTableVisible = true;
|
|
|
|
|
} else if (response.code == 504) {
|
|
|
|
|
this.$confirm(response.message, "提示", {
|
|
|
|
|
confirmButtonText: "确定",
|
|
|
|
|
cancelButtonText: "忽略",
|
|
|
|
|
type: "error",
|
|
|
|
|
})
|
|
|
|
|
.then(() => {
|
|
|
|
|
tQuery.ignoreExpire = true;
|
|
|
|
|
this.addCodeSubmit(tQuery);
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {
|
|
|
|
|
});
|
|
|
|
|
} else if (response.code == 505) {
|
|
|
|
|
this.$confirm(response.message, "提示", {
|
|
|
|
|
confirmButtonText: "确定",
|
|
|
|
|
cancelButtonText: "取消",
|
|
|
|
|
type: "warning",
|
|
|
|
|
})
|
|
|
|
|
.then(() => {
|
|
|
|
|
tQuery.ignoreRecentExpire = true;
|
|
|
|
|
this.addCodeSubmit(tQuery);
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {
|
|
|
|
|
});
|
|
|
|
|
} else if (response.code == 605) {
|
|
|
|
|
this.$confirm(response.message, "提示", {
|
|
|
|
|
confirmButtonText: "确定",
|
|
|
|
|
cancelButtonText: "取消",
|
|
|
|
|
type: "warning",
|
|
|
|
|
})
|
|
|
|
|
.then(() => {
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
} else if (response.code == 604) {
|
|
|
|
|
this.$confirm(response.message, "提示", {
|
|
|
|
|
confirmButtonText: "确定",
|
|
|
|
|
cancelButtonText: "取消",
|
|
|
|
|
type: "warning",
|
|
|
|
|
})
|
|
|
|
|
.then(() => {
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
} else if (response.code == 507) {
|
|
|
|
|
this.editOriginCodeVisible = true;
|
|
|
|
|
this.editTitle = response.message;
|
|
|
|
|
this.codeFormData.produceDate = response.data.produceDate;
|
|
|
|
|
this.codeFormData.expireDate = response.data.expireDate;
|
|
|
|
|
this.codeFormData.batchNo = response.data.batchNo;
|
|
|
|
|
this.codeFormData.serialNo = response.data.serialNo;
|
|
|
|
|
this.codeFormData.corpOrderId = this.orderFormData.corpOrderId;
|
|
|
|
|
this.$message({
|
|
|
|
|
type: "error",
|
|
|
|
|
message: "提交失败!" + this.editTitle,
|
|
|
|
|
customClass: "messageIndex",
|
|
|
|
|
});
|
|
|
|
|
} else if (response.code == 511) {
|
|
|
|
|
//该UDI码绑定多个货位处理
|
|
|
|
|
this.spaceCodeList = response.data;
|
|
|
|
|
this.selectSpaceVisible = true;
|
|
|
|
|
} else {
|
|
|
|
|
this.$alert(response.message, "提示", {
|
|
|
|
|
confirmButtonText: "确定",
|
|
|
|
|
type: "warning",
|
|
|
|
|
closeOnClickModal: true,
|
|
|
|
|
callback: (action) => {
|
|
|
|
|
this.$refs.inputRef.focus();
|
|
|
|
|
this.$refs.inputRef.select();
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.loading = false;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
refreshCodesPanel() {
|
|
|
|
|
this.isCodeAlive = false;
|
|
|
|
|
this.isBizDetailAlive = false;
|
|
|
|
|
this.isCodeDetailAlive = false;
|
|
|
|
|
this.isSickerAlive = false;
|
|
|
|
|
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
//重新加载组件
|
|
|
|
|
this.isCodeAlive = true;
|
|
|
|
|
this.isBizDetailAlive = true;
|
|
|
|
|
this.isCodeDetailAlive = true;
|
|
|
|
|
this.isSickerAlive = true;
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
//选择性刷新
|
|
|
|
|
if (this.isCheckResultAlive) {
|
|
|
|
|
this.isCheckResultAlive = false;
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
//重新加载组件
|
|
|
|
|
this.isCheckResultAlive = true;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
refreshOrder(orderQuery) {
|
|
|
|
|
this.orderFormData = orderQuery;
|
|
|
|
|
this.scanCode = "";
|
|
|
|
|
this.result = "";
|
|
|
|
|
this.refreshCodesPanel()
|
|
|
|
|
this.init();
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//撤回单据
|
|
|
|
|
revokeBill() {
|
|
|
|
|
this.$confirm("是否确定撤回单据至草稿状态?", "提示", {
|
|
|
|
|
confirmButtonText: "确定",
|
|
|
|
|
cancelButtonText: "取消",
|
|
|
|
|
type: "warning",
|
|
|
|
|
})
|
|
|
|
|
.then(() => {
|
|
|
|
|
let query = {billNo: this.orderFormData.billNo};
|
|
|
|
|
this.retractLoading = true
|
|
|
|
|
rollbackWaitcheck(query)
|
|
|
|
|
.then((response) => {
|
|
|
|
|
this.retractLoading = false
|
|
|
|
|
if (response.code == 20000) {
|
|
|
|
|
this.$message.success("撤回成功!");
|
|
|
|
|
if (this.closeDialog != undefined) {
|
|
|
|
|
this.closeDialog();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
this.$message.error(response.message);
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {
|
|
|
|
|
this.retractLoading = false
|
|
|
|
|
});
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
hideSearch() {
|
|
|
|
|
this.showSearch = !this.showSearch;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
submitCheckDialog() {
|
|
|
|
|
this.checkTipDialogVisible = true;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//待校验以扫码结果为准
|
|
|
|
|
submitCodeResult(query) {
|
|
|
|
|
submitCodeResult(query).then((response) => {
|
|
|
|
|
this.codeLoading = false
|
|
|
|
|
if (response.code === 20000) {
|
|
|
|
|
this.$message.success("提交成功");
|
|
|
|
|
if (this.closeDialog != undefined) {
|
|
|
|
|
this.closeDialog();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
this.$message.error(response.message);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//待校验以正确结果为准
|
|
|
|
|
submitCheckResult(query) {
|
|
|
|
|
submitCheckResult(query).then((response) => {
|
|
|
|
|
this.checkLoading = false
|
|
|
|
|
if (response.code === 20000) {
|
|
|
|
|
this.$message.success("提交成功");
|
|
|
|
|
if (this.closeDialog != undefined) {
|
|
|
|
|
this.closeDialog();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
this.$message.error(response.message);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
submit(val) {
|
|
|
|
|
if (this.$isBlank(this.orderFormData.action)) {
|
|
|
|
|
this.$message.warning("单据类型不能为空!");
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
if (this.curAction.corpType === 0 || this.curAction.corpType === 2 || (this.curAction.corpType === 1 && !this.curAction.genUnit)) {
|
|
|
|
|
if (this.$isBlank(this.orderFormData.fromCorp) && this.$isBlank(this.orderFormData.sickerAdNum)) {
|
|
|
|
|
this.$message.warning("请选择往来单位!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (this.curAction.corpType == 3) {
|
|
|
|
|
if (this.$isBlank(this.orderFormData.fromInvCode)) {
|
|
|
|
|
this.$message.warning("请选择往来单位!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (this.curAction.corpType === 1 && this.curAction.genUnit) {
|
|
|
|
|
if (this.$isBlank(this.orderFormData.fromCorp) && this.$isBlank(this.orderFormData.sickerAdNum)) {
|
|
|
|
|
this.$message.warning("请选择往来单位!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
let tQuery = Object.assign(
|
|
|
|
|
JSON.parse(JSON.stringify(this.orderFormData))
|
|
|
|
|
);
|
|
|
|
|
tQuery.orderId = this.orderFormData.billNo;
|
|
|
|
|
tQuery.productType = 1
|
|
|
|
|
console.log(tQuery.orderId);
|
|
|
|
|
if (val == 1) {
|
|
|
|
|
//校验btn
|
|
|
|
|
this.checkLoading = true
|
|
|
|
|
} else if (val == 2) {
|
|
|
|
|
//扫码btn
|
|
|
|
|
this.codeLoading = true
|
|
|
|
|
} else {
|
|
|
|
|
this.submitLoading = true
|
|
|
|
|
}
|
|
|
|
|
if (this.viewType == 2) { //扫码单据立即提交
|
|
|
|
|
submitCodes(tQuery).then((response) => {
|
|
|
|
|
if (val == 1) {
|
|
|
|
|
//校验btn
|
|
|
|
|
this.checkLoading = false
|
|
|
|
|
} else if (val == 2) {
|
|
|
|
|
//扫码btn
|
|
|
|
|
this.codeLoading = false
|
|
|
|
|
} else {
|
|
|
|
|
this.submitLoading = false
|
|
|
|
|
}
|
|
|
|
|
if (response.code === 20000) {
|
|
|
|
|
this.$message.success("提交成功,等待处理,请刷新后查看!");
|
|
|
|
|
this.successCloseData()
|
|
|
|
|
console.log(this.closeDialog())
|
|
|
|
|
if (this.closeDialog != undefined) {
|
|
|
|
|
this.closeDialog();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
this.$message.error(response.message);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
} else if (this.viewType == 1) { //业务单据提交提交
|
|
|
|
|
if (val == 1 || this.curAction.checkWebNew == 2)
|
|
|
|
|
tQuery.fromVailPi = 2;
|
|
|
|
|
else
|
|
|
|
|
tQuery.fromVailPi = 1;
|
|
|
|
|
submitBiz(tQuery).then((response) => {
|
|
|
|
|
if (val == 1) {
|
|
|
|
|
//校验btn
|
|
|
|
|
this.checkLoading = false
|
|
|
|
|
} else if (val == 2) {
|
|
|
|
|
//扫码btn
|
|
|
|
|
this.codeLoading = false
|
|
|
|
|
} else {
|
|
|
|
|
this.submitLoading = false
|
|
|
|
|
}
|
|
|
|
|
if (response.code === 20000) {
|
|
|
|
|
this.$message.success("提交成功");
|
|
|
|
|
this.successCloseData()
|
|
|
|
|
if (this.closeDialog != undefined) {
|
|
|
|
|
this.closeDialog();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
this.$message.error(response.message);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
} else if (this.viewType == 4) {
|
|
|
|
|
submitAllocateBiz(tQuery).then((response) => {
|
|
|
|
|
if (val == 1) {
|
|
|
|
|
//校验btn
|
|
|
|
|
this.checkLoading = false
|
|
|
|
|
} else if (val == 2) {
|
|
|
|
|
//扫码btn
|
|
|
|
|
this.codeLoading = false
|
|
|
|
|
} else {
|
|
|
|
|
this.submitLoading = false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (response.code === 20000) {
|
|
|
|
|
this.$message.success("提交成功");
|
|
|
|
|
this.successCloseData()
|
|
|
|
|
if (this.closeDialog != undefined) {
|
|
|
|
|
this.closeDialog();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
this.$message.error(response.message);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
} else if (this.viewType == 7) { //待校验提交
|
|
|
|
|
if (val == 1) {
|
|
|
|
|
this.$confirm("此操作将以校验的正确结果重新生成业务单并提交,是否继续?", "提示", {
|
|
|
|
|
confirmButtonText: "确定",
|
|
|
|
|
cancelButtonText: "取消",
|
|
|
|
|
type: "warning",
|
|
|
|
|
})
|
|
|
|
|
.then(() => {
|
|
|
|
|
this.checkLoading = true
|
|
|
|
|
this.submitCheckResult(tQuery);
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {
|
|
|
|
|
this.this.checkLoading = false
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
this.$confirm("此操作将以扫码结果重新生成业务单并提交,是否继续?", "提示", {
|
|
|
|
|
confirmButtonText: "确定",
|
|
|
|
|
cancelButtonText: "取消",
|
|
|
|
|
type: "warning",
|
|
|
|
|
})
|
|
|
|
|
.then(() => {
|
|
|
|
|
this.codeLoading = true
|
|
|
|
|
this.submitCodeResult(tQuery);
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {
|
|
|
|
|
this.codeLoading = false
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
} else { //配货拣货后后提交
|
|
|
|
|
submitOrderWeb(tQuery).then((response) => {
|
|
|
|
|
this.submitLoading = false
|
|
|
|
|
if (response.code === 20000) {
|
|
|
|
|
this.$message.success("提交成功");
|
|
|
|
|
this.successCloseData()
|
|
|
|
|
if (this.closeDialog != undefined) {
|
|
|
|
|
this.closeDialog();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
this.$message.error(response.message);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
//选入草稿单据
|
|
|
|
|
chooseDraftOrder() {
|
|
|
|
|
if (this.$isBlank(this.orderFormData.workPlaceCode)) {
|
|
|
|
|
this.$message.warning("请选择工位!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
this.rowData.workPlaceCode = this.orderFormData.workPlaceCode
|
|
|
|
|
this.rowData.fifoSplit = this.orderFormData.fifoSplit
|
|
|
|
|
this.chooseDraftOrderVisible = true
|
|
|
|
|
},
|
|
|
|
|
closeChooseDialog() {
|
|
|
|
|
this.chooseDraftOrderVisible = false
|
|
|
|
|
},
|
|
|
|
|
handleChoose(currentRow) {
|
|
|
|
|
this.orderQuery = currentRow
|
|
|
|
|
this.refreshOrder(this.orderQuery)
|
|
|
|
|
},
|
|
|
|
|
draftOrder() {
|
|
|
|
|
let tQuery = Object.assign(
|
|
|
|
|
JSON.parse(JSON.stringify(this.orderFormData))
|
|
|
|
|
);
|
|
|
|
|
tQuery.billNo = this.orderFormData.billNo;
|
|
|
|
|
tQuery.orderType = 2;
|
|
|
|
|
console.log("tQuery:");
|
|
|
|
|
console.log(tQuery);
|
|
|
|
|
if (this.orderFormData.billNo == null) {
|
|
|
|
|
this.$message.error("请先录入单据信息!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
this.saveLoading = true
|
|
|
|
|
|
|
|
|
|
saveOrderWeb(tQuery).then((response) => {
|
|
|
|
|
this.saveLoading = false
|
|
|
|
|
if (response.code === 20000) {
|
|
|
|
|
this.$message.success("保存成功")
|
|
|
|
|
this.successCloseData()
|
|
|
|
|
} else {
|
|
|
|
|
this.$message.error(response.message);
|
|
|
|
|
}
|
|
|
|
|
this.loading = false;
|
|
|
|
|
this.saveLoading = false
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
// 刷新表单
|
|
|
|
|
resetForm() {
|
|
|
|
|
if (this.$refs["dataForm"]) {
|
|
|
|
|
// 清空验证信息表单
|
|
|
|
|
this.$refs["dataForm"].clearValidate();
|
|
|
|
|
// 刷新表单
|
|
|
|
|
this.$refs["dataForm"].resetFields();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
enterKey(event) {
|
|
|
|
|
this.checkSuccess = true;
|
|
|
|
|
if (this.getDMHotskeyValue(this.scanCode))
|
|
|
|
|
return
|
|
|
|
|
this.codeFormData.code = this.scanCode;
|
|
|
|
|
let tQuery = {
|
|
|
|
|
originCode: this.originCode,
|
|
|
|
|
code: this.codeFormData.code.trim(),
|
|
|
|
|
};
|
|
|
|
|
enterCodeWeb(tQuery).then((response) => {
|
|
|
|
|
if (response.code === 20000) {
|
|
|
|
|
this.$refs.inputRef.focus();
|
|
|
|
|
this.$refs.inputRef.select();
|
|
|
|
|
this.isSuccess = true;
|
|
|
|
|
this.printCodeResult(response.data)
|
|
|
|
|
this.codeFormData.code = response.data.code;
|
|
|
|
|
this.scanCode = ""
|
|
|
|
|
this.addCode();
|
|
|
|
|
} else {
|
|
|
|
|
if (response.code == 502) {
|
|
|
|
|
this.checkSuccess = false;
|
|
|
|
|
this.isSuccess = false;
|
|
|
|
|
this.scanCode = ""
|
|
|
|
|
this.printCodeResult(response.data)
|
|
|
|
|
this.codeFormData.code = response.data.code;
|
|
|
|
|
this.originCode = this.codeFormData.code;
|
|
|
|
|
} else if (response.code == 501) {
|
|
|
|
|
this.checkSuccess = false;
|
|
|
|
|
this.scanCode = ""
|
|
|
|
|
this.$message.error(response.message);
|
|
|
|
|
} else if (response.code == 503) {
|
|
|
|
|
this.checkSuccess = false;
|
|
|
|
|
this.isSuccess = false;
|
|
|
|
|
this.scanCode = ""
|
|
|
|
|
this.printCodeResult(response.data)
|
|
|
|
|
this.codeFormData.code = response.data.code;
|
|
|
|
|
this.$confirm(response.message, "提示", {
|
|
|
|
|
type: "warning",
|
|
|
|
|
})
|
|
|
|
|
.then(() => {
|
|
|
|
|
this.codeFormData.code = response.data.code;
|
|
|
|
|
this.addCode();
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {
|
|
|
|
|
this.codeFormData.code = response.data.code;
|
|
|
|
|
});
|
|
|
|
|
} else if (response.code == 508) {
|
|
|
|
|
this.scanCode = ""
|
|
|
|
|
this.originCode = "";
|
|
|
|
|
this.codeFormData.code = "01" + response.data.nameCode;
|
|
|
|
|
this.originCode = this.codeFormData.code;
|
|
|
|
|
} else {
|
|
|
|
|
this.$alert(response.message, "提示", {
|
|
|
|
|
confirmButtonText: "确定",
|
|
|
|
|
type: "warning",
|
|
|
|
|
closeOnClickModal: true,
|
|
|
|
|
callback: (action) => {
|
|
|
|
|
this.$refs.inputRef.focus();
|
|
|
|
|
this.$refs.inputRef.select();
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.loading = false;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
getInputFocus(event) {
|
|
|
|
|
event.currentTarget.select();
|
|
|
|
|
},
|
|
|
|
|
tableSelection() {
|
|
|
|
|
this.$refs.multipleTable.clearSelection();
|
|
|
|
|
this.$refs.multipleTable.toggleAllSelection();
|
|
|
|
|
},
|
|
|
|
|
handleSizeChange(val) {
|
|
|
|
|
this.query.limit = val;
|
|
|
|
|
this.getCodeList();
|
|
|
|
|
},
|
|
|
|
|
handleCurrentChange(val) {
|
|
|
|
|
this.query.page = val;
|
|
|
|
|
this.getCodeList();
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
intentBack() {
|
|
|
|
|
this.$router.go(-1);
|
|
|
|
|
},
|
|
|
|
|
selectSupUnit(row) {
|
|
|
|
|
this.dialogTableVisible = false;
|
|
|
|
|
this.orderFormData.selectSupId = row.erpId;
|
|
|
|
|
this.addCode();
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
selectBindRl(row) {
|
|
|
|
|
this.selectRlVisible = false;
|
|
|
|
|
this.orderFormData.relId = row.id;
|
|
|
|
|
this.addCode();
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
selectSpaceBind(val) {
|
|
|
|
|
if (this.curAction.scanPreIn) {
|
|
|
|
|
this.orderFormData.checkPreInSpaceCode = val;
|
|
|
|
|
} else if (this.curAction.advancePreIn) {
|
|
|
|
|
this.orderFormData.preCurSpaceCode = val;
|
|
|
|
|
} else {
|
|
|
|
|
this.orderFormData.curSpaceCode = val;
|
|
|
|
|
}
|
|
|
|
|
this.addCode();
|
|
|
|
|
this.selectSpaceVisible = false;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
closeCodeDialog() {
|
|
|
|
|
this.editOriginCodeVisible = false;
|
|
|
|
|
this.refreshCodesPanel();
|
|
|
|
|
},
|
|
|
|
|
//选入相关
|
|
|
|
|
OptionalDocument() {
|
|
|
|
|
this.selectorder = true;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
sickChange(value) {
|
|
|
|
|
this.orderFormData.sickerAdNum = value;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
getDMHotskeyValue(str) {
|
|
|
|
|
console.log(str)
|
|
|
|
|
if (str.includes("DMHotskey")) {
|
|
|
|
|
try {
|
|
|
|
|
const jsonObj = JSON.parse(str);
|
|
|
|
|
if (jsonObj.hasOwnProperty("DMHotskey")) {
|
|
|
|
|
const dmhotskey = jsonObj.DMHotskey;
|
|
|
|
|
if (dmhotskey.hasOwnProperty("workPlace")) {
|
|
|
|
|
this.scanCode = ""
|
|
|
|
|
this.orderFormData.workPlaceCode = dmhotskey.workPlace
|
|
|
|
|
return true
|
|
|
|
|
} else if (dmhotskey.hasOwnProperty("fifoSplit")) {
|
|
|
|
|
this.scanCode = ""
|
|
|
|
|
this.orderFormData.fifoSplit = dmhotskey.fifoSplit;
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.log("字符串不是有效的 JSON 格式");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
printCodeResult(data, isSuccess) {
|
|
|
|
|
const resultParts = ["扫码解析结果:" + data.code];
|
|
|
|
|
|
|
|
|
|
if (data.udi) {
|
|
|
|
|
resultParts.push("层级标识: " + data.udi);
|
|
|
|
|
}
|
|
|
|
|
if (data.batchNo) {
|
|
|
|
|
resultParts.push("批次号: " + data.batchNo);
|
|
|
|
|
}
|
|
|
|
|
if (data.produceDate) {
|
|
|
|
|
resultParts.push("生产日期: " + data.produceDate);
|
|
|
|
|
}
|
|
|
|
|
if (data.expireDate) {
|
|
|
|
|
resultParts.push("失效日期: " + data.expireDate);
|
|
|
|
|
}
|
|
|
|
|
if (data.serialNo) {
|
|
|
|
|
resultParts.push("序列号: " + data.serialNo);
|
|
|
|
|
}
|
|
|
|
|
this.result = resultParts.join(" , ");
|
|
|
|
|
},
|
|
|
|
|
printLabel() {
|
|
|
|
|
let query = {
|
|
|
|
|
labelId: 7,
|
|
|
|
|
}
|
|
|
|
|
printSplitLabel(query).then((response) => {
|
|
|
|
|
const binaryData = [];
|
|
|
|
|
binaryData.push(response);
|
|
|
|
|
let url = window.URL.createObjectURL(
|
|
|
|
|
new Blob(binaryData, {type: "application/pdf"})
|
|
|
|
|
);
|
|
|
|
|
window.open(url);
|
|
|
|
|
}).catch(() => {
|
|
|
|
|
this.loading = false;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
this.clearOrder()
|
|
|
|
|
},
|
|
|
|
|
/**
|
|
|
|
|
* 上货完成后,清空数据
|
|
|
|
|
*/
|
|
|
|
|
clearOrder() {
|
|
|
|
|
// this.$router.go(0)
|
|
|
|
|
|
|
|
|
|
this.orderFormData = {
|
|
|
|
|
billNo: null,
|
|
|
|
|
corpOrderId: null,
|
|
|
|
|
action: null,
|
|
|
|
|
invCode: null,
|
|
|
|
|
fromCorp: null,
|
|
|
|
|
fromCorpName: null,
|
|
|
|
|
fromName: null,
|
|
|
|
|
fromInvCode: null,
|
|
|
|
|
remark: null,
|
|
|
|
|
fromType: 2,
|
|
|
|
|
errMsg: null,
|
|
|
|
|
checkPreInOrders: null,
|
|
|
|
|
checkPreInInvCode: null,
|
|
|
|
|
checkPreInSpaceCode: null,
|
|
|
|
|
curSpaceCode: null,
|
|
|
|
|
preSpaceCode: null,
|
|
|
|
|
preCurSpaceCode: null, //单据
|
|
|
|
|
sickerAdNum: null,
|
|
|
|
|
workPlaceCode: null,
|
|
|
|
|
fifoSplit: 1,
|
|
|
|
|
}
|
|
|
|
|
this.scanCode = "";
|
|
|
|
|
this.result = "";
|
|
|
|
|
this.refreshCodesPanel()
|
|
|
|
|
this.init();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
init() {
|
|
|
|
|
//页面初始化
|
|
|
|
|
this.codeFormData.code = "";
|
|
|
|
|
if (this.splitType == "search") {
|
|
|
|
|
} else if (this.splitType == "out") {
|
|
|
|
|
this.orderFormData.action = 'SC72197936495755';
|
|
|
|
|
} else if (this.splitType == "return") {
|
|
|
|
|
this.orderFormData.action = 'SC72249388338364';
|
|
|
|
|
}
|
|
|
|
|
this.orderFormData.fromCorp = "72198012799726";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//页面类型
|
|
|
|
|
this.viewCodeVisible = true;
|
|
|
|
|
this.viewCodeDetailVisible = true;
|
|
|
|
|
this.orderFormData.orderType = this.viewType;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (this.$isNotBlank(this.orderQuery.billNo)) {
|
|
|
|
|
//编辑页面
|
|
|
|
|
this.corpOrderIdDisabled = true;
|
|
|
|
|
this.orderFormData = this.orderQuery;
|
|
|
|
|
this.actionEnable = true;
|
|
|
|
|
this.findMethod(this.orderFormData.fromCorp);
|
|
|
|
|
this.curAction = {}
|
|
|
|
|
this.refreshCodesPanel();
|
|
|
|
|
this.findInvListByUser();
|
|
|
|
|
this.initBusType();
|
|
|
|
|
this.findFromInvList();
|
|
|
|
|
} else {
|
|
|
|
|
//新增页面
|
|
|
|
|
this.corpOrderIdDisabled = false;
|
|
|
|
|
let date = new Date();
|
|
|
|
|
this.orderFormData.createTime = parseTime(
|
|
|
|
|
date,
|
|
|
|
|
"{y}-{m}-{d} {h}:{i}:{s}"
|
|
|
|
|
);
|
|
|
|
|
this.orderFormData.corpOrderId =
|
|
|
|
|
parseTime(date, "{y}{m}{d}{h}{i}{s}") +
|
|
|
|
|
Math.ceil(Math.random() * 89 + 10);
|
|
|
|
|
this.orderFormData.deptCode = this.$store.getters.deptCode;
|
|
|
|
|
this.orderFormData.invCode = this.$store.getters.locInvCode;
|
|
|
|
|
this.findInvListByUser();
|
|
|
|
|
this.showSearch = true
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
filters: {},
|
|
|
|
|
mounted() {
|
|
|
|
|
document.body.ondrop = function (event) {
|
|
|
|
|
event.preventDefault();
|
|
|
|
|
event.stopPropagation();
|
|
|
|
|
};
|
|
|
|
|
var that = this;
|
|
|
|
|
var inputer = document.getElementById("inputer");
|
|
|
|
|
window.sc = new A.KeyScaner(inputer); //传入要监听的DOM节点
|
|
|
|
|
sc.onInput = function (text) {
|
|
|
|
|
if (text.includes("delete")) {
|
|
|
|
|
that.codeFormData.code = "";
|
|
|
|
|
that.sictomText = "";
|
|
|
|
|
that.originCode = "";
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (that.sitcomScan) {
|
|
|
|
|
let tempTxt = text;
|
|
|
|
|
let str = tempTxt.replace(/[\r]/g, "");
|
|
|
|
|
that.sictomText = that.sictomText + str;
|
|
|
|
|
that.codeFormData.code = that.sictomText;
|
|
|
|
|
} else {
|
|
|
|
|
that.codeFormData.code = text;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
inputer.focus();
|
|
|
|
|
},
|
|
|
|
|
created() {
|
|
|
|
|
this.splitType = this.splitType;
|
|
|
|
|
this.init();
|
|
|
|
|
if (this.$route.query.workplaceId != null) {
|
|
|
|
|
this.corpOrderIdDisabled = true
|
|
|
|
|
this.isLinkDisabled = true
|
|
|
|
|
this.workplaceId = this.$route.query.workplaceId
|
|
|
|
|
this.orderFormData.workPlaceCode = Number(this.$route.query.workplaceId)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<style scoped>
|
|
|
|
|
.scroll-alert {
|
|
|
|
|
width: 100%; /* 或者你需要的宽度 */
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
/*border: 1px solid #f56c6c; !* 类似于 Element UI 警告框的边框 *!*/
|
|
|
|
|
background-color: rgba(255, 235, 59, 0.1); /* 类似于 Element UI 警告框的背景色 */
|
|
|
|
|
padding: 10px;
|
|
|
|
|
position: relative;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.scroll-text {
|
|
|
|
|
display: inline-block;
|
|
|
|
|
padding-left: 100%; /* 初始位置在容器右侧 */
|
|
|
|
|
animation: scroll 10s linear infinite; /* 滚动动画 */
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@keyframes scroll {
|
|
|
|
|
from {
|
|
|
|
|
transform: translateX(0);
|
|
|
|
|
}
|
|
|
|
|
to {
|
|
|
|
|
transform: translateX(-100%);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.query-form-item {
|
|
|
|
|
margin-right: 5px;
|
|
|
|
|
margin-bottom: 6px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#inputer {
|
|
|
|
|
width: 100%;
|
|
|
|
|
min-height: 30px;
|
|
|
|
|
background-color: white;
|
|
|
|
|
border: #d0d0d0;
|
|
|
|
|
border-style: solid;
|
|
|
|
|
border-width: 0.1px;
|
|
|
|
|
color: #4a4a4a;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#inputer:focus {
|
|
|
|
|
width: 100%;
|
|
|
|
|
min-height: 30px;
|
|
|
|
|
background-color: white;
|
|
|
|
|
border: #0080ff;
|
|
|
|
|
border-style: solid;
|
|
|
|
|
border-width: 0.1px;
|
|
|
|
|
color: #4a4a4a;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ime-disabled {
|
|
|
|
|
ime-mode: disabled;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.result-display {
|
|
|
|
|
border: 2px solid #ccc; /* 默认外框颜色 */
|
|
|
|
|
border-radius: 10px;
|
|
|
|
|
margin-top: 5px;
|
|
|
|
|
margin-left: 15px;
|
|
|
|
|
margin-right: 25px;
|
|
|
|
|
padding-left: 25px;
|
|
|
|
|
/* 不设置背景颜色 */
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.result-success {
|
|
|
|
|
border-color: #4CAF50; /* 成功时外框颜色 */
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.result-failure {
|
|
|
|
|
border-color: #0080ff; /* 失败时外框颜色 */
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.result-text {
|
|
|
|
|
height: 18px;
|
|
|
|
|
/* 你可以在这里设置默认的文本颜色或其他样式 */
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.result-text-success {
|
|
|
|
|
color: #4CAF50; /* 成功时文本颜色 */
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.result-text-failure {
|
|
|
|
|
color: #0080ff; /* 失败时文本颜色 */
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</style>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|