|
|
<template>
|
|
|
<div>
|
|
|
<el-form :model="formData" class="order-el-form" ref="formData" label-width="120px" @submit.native.prevent>
|
|
|
<el-card>
|
|
|
|
|
|
|
|
|
|
|
|
<el-row style="margin-top: 6px;margin-bottom: -6px;"
|
|
|
v-if="this.formDataVisible != null && this.formDataVisible.scanType == 1">
|
|
|
<!-- <el-col :span="6">-->
|
|
|
<!-- <el-form-item prop="workPlaceCode" class="query-form-item" label="当前工位:">-->
|
|
|
<!-- <el-select-->
|
|
|
<!-- v-model="formData.workPlaceCode"-->
|
|
|
<!-- placeholder="当前工位"-->
|
|
|
<!-- style="width: 90%"-->
|
|
|
<!-- :disabled="corpOrderIdDisabled"-->
|
|
|
<!-- filterable-->
|
|
|
<!-- @change="workPlaceCodeChange"-->
|
|
|
<!-- >-->
|
|
|
<!-- <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="6">-->
|
|
|
<!-- <el-form-item prop="busType" class="query-form-item" label="当前业务类型:">-->
|
|
|
<!-- <el-select v-model="formData.busType"-->
|
|
|
<!-- filterable-->
|
|
|
<!-- remote-->
|
|
|
<!-- @change="busTypeChange"-->
|
|
|
<!-- reserve-keyword-->
|
|
|
<!-- disabled-->
|
|
|
<!-- placeholder="请选择业务类型" clearable style="width: 55%">-->
|
|
|
<!-- <el-option-->
|
|
|
<!-- v-for="item in busTypeList"-->
|
|
|
<!-- :key="item.documentTypeCode"-->
|
|
|
<!-- :label="item.busName"-->
|
|
|
<!-- :value="item.documentTypeCode"-->
|
|
|
<!-- >-->
|
|
|
<!-- <span style="float: left">{{ item.busName }}</span>-->
|
|
|
<!-- <span style="float: right; color: #8492a6; font-size: 13px">{{ item.documentTypeCode }}</span>-->
|
|
|
<!-- </el-option>-->
|
|
|
<!-- </el-select>-->
|
|
|
<!-- <el-button type="primary" @click="toggleBusType" style="margin-left: 5px">切换业务</el-button>-->
|
|
|
<!-- </el-form-item>-->
|
|
|
<!-- </el-col>-->
|
|
|
<el-col :span="6">
|
|
|
<el-form-item prop="locInvCode" label="发货方:">
|
|
|
<el-select v-model="formData.shipper" placeholder="请选择发货方" clearable
|
|
|
:disabled="formData.billNo"
|
|
|
style="width: 90%"
|
|
|
@change="changeShipper"
|
|
|
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="item in invList"
|
|
|
:key="item.name"
|
|
|
:label="item.name"
|
|
|
:value="item.code">
|
|
|
<span style="float: left">{{ item.name }}</span>
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<!-- :label="this.formDataVisible.unitTittle + ':'"-->
|
|
|
<el-form-item class="query-form-item" label="收货方:">
|
|
|
<el-select v-model="formData.fromCorp"
|
|
|
filterable
|
|
|
:disabled="formData.billNo"
|
|
|
remote
|
|
|
reserve-keyword
|
|
|
@change="changeCorp"
|
|
|
placeholder="请选择收货方" clearable style="width: 90%">
|
|
|
<el-option
|
|
|
v-for="item in fromInvOptions"
|
|
|
:key="item.code"
|
|
|
:label="item.name"
|
|
|
:value="item.code"
|
|
|
>
|
|
|
<span style="float: left">{{ item.name }}</span>
|
|
|
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.code }}</span>
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
|
<div style="margin-top: 1px;padding: 5px">
|
|
|
<el-row :gutter="0" style="margin-top: 5px">
|
|
|
<el-col :span="16">
|
|
|
<el-form-item prop="code" :label="scanTip" label-width="80px">
|
|
|
<el-input
|
|
|
id="inputer"
|
|
|
@focus="getInputFocus($event)"
|
|
|
@keypress.enter.native="enterKey($event)"
|
|
|
ref="inputRef"
|
|
|
style="ime-mode: disabled"
|
|
|
type="tel"
|
|
|
:placeholder="this.placeholder"
|
|
|
v-model="scanCode"
|
|
|
></el-input>
|
|
|
<!-- :disabled="scanDisabled"-->
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="8">
|
|
|
<el-button-group style="display: flex; margin-left: 15px">
|
|
|
<el-button type="primary" @click.native="deleteCode"
|
|
|
v-if="labelName == 1"
|
|
|
:disabled="formData.billNo == null"
|
|
|
>扫码剔除
|
|
|
</el-button>
|
|
|
<el-button size="mini" type="primary"
|
|
|
v-if="labelName == 2"
|
|
|
@click.native="overdeleteCode"
|
|
|
>结束剔除
|
|
|
</el-button>
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
:disabled="formData.billNo ||(this.formDataVisible != null && this.formDataVisible.scanType == 1)"
|
|
|
@click.native="selectPrescribe()"
|
|
|
>选单
|
|
|
</el-button>
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
:disabled="!formData.billNo"
|
|
|
@click.native="saveDraftOrder()"
|
|
|
>挂起
|
|
|
</el-button>
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
:disabled="!formData.billNo"
|
|
|
@click.native="cancelOrder()"
|
|
|
>放弃
|
|
|
</el-button>
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
:disabled="!formData.billNo"
|
|
|
@click.native="confirmFinishOrder()"
|
|
|
>完成
|
|
|
</el-button>
|
|
|
</el-button-group>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="0">
|
|
|
<el-col :span="20" style="margin-top: 0px;margin-bottom: 10px;margin-left: 80px">
|
|
|
<el-checkbox v-model="checked" v-if="!this.formData.billNo && this.formDataVisible.scanType != 1">定向查询
|
|
|
</el-checkbox>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-alert
|
|
|
:title="scanTitle"
|
|
|
:type="scanResultType"
|
|
|
:closable="false"
|
|
|
:dangerouslyUseHTMLString="true"
|
|
|
:description="result">
|
|
|
</el-alert>
|
|
|
<el-alert
|
|
|
v-if="warnVisible"
|
|
|
title="警告信息:"
|
|
|
type="warning"
|
|
|
:closable="true"
|
|
|
:dangerouslyUseHTMLString="true"
|
|
|
:description="warnResult">
|
|
|
</el-alert>
|
|
|
<el-alert
|
|
|
v-if="errVisible"
|
|
|
title="错误信息:"
|
|
|
type="warning"
|
|
|
:closable="true"
|
|
|
:dangerouslyUseHTMLString="true"
|
|
|
:description="errResult">
|
|
|
</el-alert>
|
|
|
|
|
|
|
|
|
</div>
|
|
|
<!--<el-descriptions title="单据信息" :column="4" border style="margin-top: 15px" class="custom-descriptions">-->
|
|
|
<el-descriptions :column="7" border style="margin-top: 5px">
|
|
|
<!--{{ formData.billNo }}-->
|
|
|
<!--<el-descriptions-item label="业务单号">-->
|
|
|
<!--<svg ref="barcodeContainer" ></svg>-->
|
|
|
<!--<div class="barcode-wrapper" >-->
|
|
|
<!-- <svg ref="barcodeContainer" v-show="formData.billNo != null"></svg>-->
|
|
|
<!-- <!–<span>{{ formData.billNo }}</span>–>-->
|
|
|
<!--</div>-->
|
|
|
|
|
|
<!--</el-descriptions-item>-->
|
|
|
<el-descriptions-item label="业务单号">{{ formData.billNo }}</el-descriptions-item>
|
|
|
<el-descriptions-item label="发货方">{{ formData.shipperName }}</el-descriptions-item>
|
|
|
<el-descriptions-item label="收货方">{{ formData.fromCorpName }}</el-descriptions-item>
|
|
|
<el-descriptions-item label="单据时间">{{ formData.billTime }}</el-descriptions-item>
|
|
|
</el-descriptions>
|
|
|
<!--<div id="qrcode-container" ref="barcodeContainer" style="margin-right: 38px;padding-bottom: 30px"></div>-->
|
|
|
<!--<svg ref="barcodeContainer"></svg>-->
|
|
|
</el-card>
|
|
|
|
|
|
<el-tabs type="border-card" style="margin: 15px" v-model="editableTabsValue" v-show=" formData.billNo != null">
|
|
|
<!--<el-tab-pane label="扫码详情" name="prescribeOriginPanel">-->
|
|
|
<prescribeOriginPanel
|
|
|
v-if="panelALive"
|
|
|
:prescribeData="curRow"
|
|
|
></prescribeOriginPanel>
|
|
|
<!-- 在表格下方添加说明 -->
|
|
|
<el-row style="text-align: right;font-size: 12px;margin-top: 10px">
|
|
|
<el-col span="24">
|
|
|
<div style="float: right">
|
|
|
<td>
|
|
|
<div style="background-color: #F56C6C;width: 10px;height: 10px;"></div>
|
|
|
</td>
|
|
|
<td><span style="color: #6d6d6d;"><pre>未赋码 </pre></span></td>
|
|
|
|
|
|
|
|
|
<td>
|
|
|
<div style="background-color: #E6A23C;width: 10px;height: 10px;"></div>
|
|
|
</td>
|
|
|
<td>
|
|
|
<span style="color: #6d6d6d;"><pre>预赋码 </pre></span>
|
|
|
</td>
|
|
|
|
|
|
|
|
|
<td>
|
|
|
<div style="background-color: #67C23A;width: 10px;height: 10px;"></div>
|
|
|
</td>
|
|
|
<td>
|
|
|
<span style="color: #6d6d6d;"><pre>已赋码</pre></span>
|
|
|
</td>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<!--</el-tab-pane>-->
|
|
|
<!-- <el-tab-pane label="扫码明细">-->
|
|
|
<!-- <PanelOrderManuTagCode-->
|
|
|
<!-- v-if="panelALive"-->
|
|
|
<!-- :fifoSplit="3"-->
|
|
|
<!-- :prescribeData="curRow"-->
|
|
|
<!-- :refreshPanel="refreshCodesPanelP"-->
|
|
|
<!-- ></PanelOrderManuTagCode>-->
|
|
|
<!-- </el-tab-pane>-->
|
|
|
<!-- <el-tab-pane label="拆零详情" name="prescribeCodePanel1">-->
|
|
|
<!-- <prescribeCodePanel-->
|
|
|
<!-- v-if="panelALive"-->
|
|
|
<!-- :prescribeData="curRow"-->
|
|
|
<!-- :fifoSplit="1"-->
|
|
|
<!-- ></prescribeCodePanel>-->
|
|
|
<!-- </el-tab-pane>-->
|
|
|
<!-- <el-tab-pane label="整取详情" name="prescribeCodePanel2">-->
|
|
|
<!-- <prescribeCodePanel-->
|
|
|
<!-- v-if="panelALive"-->
|
|
|
<!-- :prescribeData="curRow"-->
|
|
|
<!-- :fifoSplit="2"-->
|
|
|
<!-- ></prescribeCodePanel>-->
|
|
|
<!-- </el-tab-pane>-->
|
|
|
<!-- <el-tab-pane label="整单详情" name="PanelOrderAllDetail">-->
|
|
|
<!-- <PanelOrderAllDetail-->
|
|
|
<!-- v-if="panelALive"-->
|
|
|
<!-- :prescribeData="curRow"-->
|
|
|
<!-- ></PanelOrderAllDetail>-->
|
|
|
<!-- </el-tab-pane>-->
|
|
|
|
|
|
</el-tabs>
|
|
|
|
|
|
<el-dialog
|
|
|
title="选入业务单据"
|
|
|
:visible.sync="selectPrescriptionVisible"
|
|
|
:close-on-click-modal="false"
|
|
|
:close-on-press-escape="false"
|
|
|
v-if="selectPrescriptionVisible"
|
|
|
width="65%"
|
|
|
append-to-body
|
|
|
>
|
|
|
<selectPrescribeDialog
|
|
|
ref="childRef"
|
|
|
:workPlaceCode="this.workplaceId"
|
|
|
:busType="this.formData.busType"
|
|
|
:fromCorp="this.formData.fromCorp"
|
|
|
:confirmSelect="this.confirmSelect"
|
|
|
:closeDialog="this.closeDialog"
|
|
|
:viewType="viewType"
|
|
|
></selectPrescribeDialog>
|
|
|
</el-dialog>
|
|
|
|
|
|
|
|
|
<el-dialog
|
|
|
title="选择业务类型"
|
|
|
:visible.sync="selectBusTypeDisabled"
|
|
|
:close-on-click-modal="false"
|
|
|
:close-on-press-escape="false"
|
|
|
:show-close="false"
|
|
|
v-if="selectBusTypeDisabled"
|
|
|
width="65%"
|
|
|
append-to-body
|
|
|
>
|
|
|
<el-row>
|
|
|
<!-- <el-button v-for="(item, index) in busTypeList" :key="index" type="primary" plain @click="selectBusType(item.code)">{{ item.name }}</el-button>-->
|
|
|
|
|
|
<el-col v-for="(info, index) in busTypeList" :key="index" :xs="12" :sm="8" :md="8" :lg="6">
|
|
|
<el-card :body-style="{margin:'20px'}"
|
|
|
style="margin:20px 20px 20px 20px;height: 200px;background-color: #e1f3fb;border-radius: 12px; position: relative;"
|
|
|
|
|
|
>
|
|
|
|
|
|
<div
|
|
|
style="display: flex; justify-content: space-between; align-items: center; height: 46px; /* 约为 200px 的 1/3 */"
|
|
|
@click="selectBusType(info.documentTypeCode)">
|
|
|
<p style="font-size: 20px;background-color: #e1f3fb;font-weight: bold;">{{ info.busName }}</p>
|
|
|
<!-- 假设你的信息对象中包含一个title属性 -->
|
|
|
<!-- <div style="width: 60px; height: 60px; display: flex; justify-content: center; align-items: center;">-->
|
|
|
<!-- <!– 二维码占位,这里用灰色方块代替 –>-->
|
|
|
<!--<!– <span>QR</span>–>-->
|
|
|
<!-- <div ref="qrcode" :id="'qrcode-'+index" style="width: 60px;height: 60px;"></div>-->
|
|
|
|
|
|
<!-- </div>-->
|
|
|
</div>
|
|
|
<div style="flex: 1; display: flex; flex-direction: column; justify-content: flex-end; padding-top: 10px;"
|
|
|
>
|
|
|
<!-- 假设这里有一些信息内容 -->
|
|
|
<p style="font-size: 14px;background-color: #e1f3fb" @click="selectBusType(info.documentTypeCode)">
|
|
|
{{ info.remark }}</p>
|
|
|
<el-button type="primary" style="position: absolute; bottom: 20px; right: 20px;" icon="el-icon-thumb"
|
|
|
@click="selectBusType(info.documentTypeCode)">开始作业
|
|
|
</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
</el-card>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-dialog>
|
|
|
|
|
|
|
|
|
</el-form>
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import addOrder from "@/views/inout/DialogCreateOrder";
|
|
|
import errOrder from "@/views/inout/IoCreateErrorOrder";
|
|
|
import {executeFuc, getHead} from "@/utils/customConfig";
|
|
|
import {convertDate} from "@/utils/date";
|
|
|
import selectPrescribeDialog from "@/views/collect/selectCollectOrderDialog";
|
|
|
import PanelOrderManuTagCode from "./PanelOrderManuTagCode";
|
|
|
import prescribeOriginPanel from "./PannelOrderBiz";
|
|
|
import prescribeCodePanel from "./PanelOrderTagCode";
|
|
|
import PannelOrderBiz from "./PannelOrderBiz";
|
|
|
import {listPage} from "@/api/basic/workPlace/sysWorkplaceManage";
|
|
|
import {enterCodeWeb, batchVailCode, enterCodeBillNo, saveOrderWeb, batchUpdateCode} from "@/api/inout/order";
|
|
|
import {
|
|
|
cancelOrder,
|
|
|
draftOrder,
|
|
|
finishOrder,
|
|
|
startSplit,
|
|
|
tagCode,
|
|
|
updateOrder,
|
|
|
vailOrderFinish
|
|
|
} from "@/api/collect/splitCreateOrder";
|
|
|
import {selectCorpList} from "@/api/basic/basicUnitMaintain";
|
|
|
import {
|
|
|
getCurOrder,
|
|
|
getNextOrder,
|
|
|
findByBill,
|
|
|
findFromCorp,
|
|
|
orderDetail,
|
|
|
removeByScanCode
|
|
|
} from "@/api/collect/collectOrder";
|
|
|
import PanelOrderAllDetail from "@/views/collect/PanelOrderAllDetail";
|
|
|
import {getWorkBindBusTypes, removeBusTypeById} from '@/api/basic/workPlace/sysWorkplaceDocuments'
|
|
|
import {getInvListByUser} from "@/api/system/invWarehouse";
|
|
|
import {orderbatchAddCode} from "@/api/inout/splitCode";
|
|
|
import {isBlank} from "@/utils/strUtil";
|
|
|
|
|
|
import JsBarcode from 'jsbarcode';
|
|
|
import { getSet } from '@/api/collect/collectSet'
|
|
|
|
|
|
import { MessageBox } from 'element-ui';
|
|
|
export default {
|
|
|
/**
|
|
|
* 处理处方
|
|
|
*/
|
|
|
name: "prescribeTagCodeDeal",
|
|
|
props: {
|
|
|
resetKey: {
|
|
|
type: Function,
|
|
|
required: true
|
|
|
},
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
tabsName: [
|
|
|
'prescribeOriginPanel',
|
|
|
'prescribeCodePanel1',
|
|
|
'prescribeCodePanel2',
|
|
|
'PanelOrderAllDetail',
|
|
|
],
|
|
|
editableTabsValue: 'prescribeOriginPanel',
|
|
|
fromInvOptions: [],
|
|
|
//界面配置相关
|
|
|
//患者处方
|
|
|
loading: false,
|
|
|
placeholder: '请点击输入框进行选择单据',
|
|
|
tableHeader: [],
|
|
|
queryList: [],
|
|
|
tableObj: [],
|
|
|
fromList: [],
|
|
|
convertDateFun: convertDate,
|
|
|
//界面配置-------------end
|
|
|
|
|
|
showSearch: true,
|
|
|
filterQuery: {
|
|
|
billNo: null,
|
|
|
page: 1,
|
|
|
limit: 10,
|
|
|
},
|
|
|
list: [],
|
|
|
total: 0,
|
|
|
defaultSort: {prop: 'createTime', order: 'desc'},
|
|
|
formDataVisible: {
|
|
|
scanType: null,
|
|
|
unitTittle: "往来单位",
|
|
|
corpType: 3,
|
|
|
},
|
|
|
curWorkPlaces: [],
|
|
|
erpList: [],
|
|
|
formData: {
|
|
|
billNo: null,
|
|
|
tagStatus: -1,
|
|
|
invCode: null,
|
|
|
busType: null,
|
|
|
workPlaceCode: null,
|
|
|
fromCorp: null,
|
|
|
confirmFinish: false,
|
|
|
},
|
|
|
selectPrescriptionVisible: false,
|
|
|
corpOrderIdDisabled: false,
|
|
|
isLinkDisabled: false,
|
|
|
selectBusTypeDisabled: false,
|
|
|
userInfo: {
|
|
|
inv: this.$store.getters.locInvName,
|
|
|
deptName: this.$store.getters.locDeptName,
|
|
|
userName: this.$store.getters.name,
|
|
|
companyName: this.$store.getters.companyName,
|
|
|
},
|
|
|
curRow: null,
|
|
|
panelALive: false,
|
|
|
autoFinishOrderFlag: true,//是否对完成的单据提示立即提交
|
|
|
|
|
|
//扫码相关
|
|
|
scanCode: "",
|
|
|
isSuccess: false,
|
|
|
checked: true,
|
|
|
scanTitle: "扫码结果:",
|
|
|
result: " \n",
|
|
|
msgTip: "信息提醒:",
|
|
|
originCode: "",
|
|
|
checkSuccess: false,
|
|
|
scanResultType: "success",
|
|
|
isSelectOrder: false,
|
|
|
isFinishOrder: true,
|
|
|
busQuery: {
|
|
|
busKey: '',
|
|
|
workplaceCode: null,
|
|
|
page: 1,
|
|
|
limit: 100
|
|
|
},
|
|
|
busTypeList: [],
|
|
|
busTypeTotal: 0,
|
|
|
|
|
|
invList: [],
|
|
|
viewType: 1,
|
|
|
scanDisabled: false,
|
|
|
valiCodes: [],
|
|
|
warnResult: "",
|
|
|
errResult: "",
|
|
|
warnVisible: false,
|
|
|
errVisible: false,
|
|
|
workplaceId: null,
|
|
|
ws: null,
|
|
|
scanTip: "扫码录入:",
|
|
|
scanSplit: false,
|
|
|
//
|
|
|
labels: {
|
|
|
1: '扫码录入:',
|
|
|
2: '扫码剔除:'
|
|
|
},
|
|
|
labelName: 1,
|
|
|
scanStatus: null, // 1:扫码剔除; null 处理单据
|
|
|
collectSet: {},
|
|
|
}
|
|
|
},
|
|
|
|
|
|
components: {
|
|
|
addOrder,
|
|
|
errOrder,
|
|
|
selectPrescribeDialog,
|
|
|
prescribeCodePanel,
|
|
|
PanelOrderManuTagCode, prescribeOriginPanel,
|
|
|
PannelOrderBiz,
|
|
|
PanelOrderAllDetail
|
|
|
},
|
|
|
watch: {
|
|
|
resetKey(newVal, oldVal) {
|
|
|
this.$refs.inputRef.focus()
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
generateBarcode() {
|
|
|
const barcodeData = this.formData.billNo;
|
|
|
// 获取条形码容器
|
|
|
const barcodeContainer = this.$refs.barcodeContainer;
|
|
|
// 使用JsBarcode生成条形码
|
|
|
JsBarcode(barcodeContainer, barcodeData, {
|
|
|
format: 'CODE128',
|
|
|
displayValue: true,
|
|
|
fontSize: 8, // 减小字体大小
|
|
|
textColor: '#000',
|
|
|
lineColor: '#000',
|
|
|
width: 1.2, // 减小条形码宽度
|
|
|
height: 15, // 减小条形码高度
|
|
|
margin: 1 // 减小外边距
|
|
|
});
|
|
|
|
|
|
},
|
|
|
getBillNo(billNo) {
|
|
|
let post = {
|
|
|
billNo: billNo,
|
|
|
workPlaceCode: this.workplaceId,
|
|
|
page: 1,
|
|
|
limit: 10,
|
|
|
}
|
|
|
findByBill(post).then(res => {
|
|
|
if (res.code == 20000) {
|
|
|
if (res.data.billNo != null) {
|
|
|
this.formData = res.data
|
|
|
this.scanCode = "";
|
|
|
this.formData.workPlaceCode = this.workplaceId
|
|
|
this.checked = false
|
|
|
}
|
|
|
} else {
|
|
|
this.checked = true
|
|
|
this.formData.billNo = null
|
|
|
this.$message.error(res.message)
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
selectBusType(val) {
|
|
|
this.formData.busType = val
|
|
|
this.selectBusTypeDisabled = false
|
|
|
if (this.formData.workPlaceCode != null) {
|
|
|
this.findCurOrder();
|
|
|
}
|
|
|
},
|
|
|
getWorkBindBusTypes(workplaceId) {
|
|
|
this.busQuery.workplaceCode = workplaceId
|
|
|
getWorkBindBusTypes(this.busQuery).then(res => {
|
|
|
if (res.code == 20000) {
|
|
|
this.busTypeList = res.data.list
|
|
|
this.busTypeTotal = res.data.total
|
|
|
if (this.formData.billNo != null) {
|
|
|
this.getBillNo(this.formData.billNo)
|
|
|
this.startDeal();
|
|
|
} else {
|
|
|
if (this.busTypeList.length == 1 && this.$route.query.busType == null) {
|
|
|
this.formDataVisible = this.busTypeList[0]
|
|
|
this.formData.busType = this.busTypeList[0].documentTypeCode
|
|
|
this.selectBusTypeDisabled = false
|
|
|
if (this.formDataVisible.scanType == 1) {
|
|
|
this.findFromInvList("");
|
|
|
this.getInvList();
|
|
|
this.placeholder = '请点击输入框进行扫码生成业务单据';
|
|
|
} else {
|
|
|
this.findCurOrder();
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
console.log(this.$route.query.busType)
|
|
|
if (this.$route.query.busType != null) {
|
|
|
this.formData.busType = this.$route.query.busType
|
|
|
this.$refs.inputRef.focus();
|
|
|
this.formDataVisible = this.busTypeList.find(item => item.documentTypeCode == this.formData.busType);
|
|
|
|
|
|
if (this.formDataVisible.scanType == 1) {
|
|
|
this.findFromInvList("");
|
|
|
this.getInvList();
|
|
|
this.placeholder = '请点击输入框进行扫码生成业务单据';
|
|
|
} else {
|
|
|
this.findCurOrder();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
return
|
|
|
})
|
|
|
},
|
|
|
findFromInvList(val) {
|
|
|
let cQuery = {
|
|
|
corpType: this.formDataVisible.consignee,
|
|
|
invCode: this.formData.invCode
|
|
|
};
|
|
|
findFromCorp(cQuery)
|
|
|
.then((response) => {
|
|
|
if (!isBlank(this.$route.query.busType) && this.formDataVisible.consignee == 2) {
|
|
|
this.invList = response.data || [];
|
|
|
} else {
|
|
|
this.fromInvOptions = response.data || [];
|
|
|
}
|
|
|
})
|
|
|
.catch(() => {
|
|
|
});
|
|
|
},
|
|
|
workPlaceCodeChange(value) {
|
|
|
this.getWorkBindBusTypes(value)
|
|
|
return
|
|
|
},
|
|
|
|
|
|
busTypeChange(value) {
|
|
|
let busType = this.busTypeList.find(item => item.documentTypeCode === value);
|
|
|
this.formData.busType = busType.documentTypeCode
|
|
|
this.selectBusTypeDisabled = false
|
|
|
this.formDataVisible = busType
|
|
|
if (this.formDataVisible.scanType == 1) {
|
|
|
this.findFromInvList("");
|
|
|
}
|
|
|
this.findCurOrder();
|
|
|
},
|
|
|
|
|
|
handleClick(blankName) {
|
|
|
// let url = window.location.origin+`#/tagCodeBlank?workplaceId=`+ this.stationList[index].workplaceId
|
|
|
let url = window.location.origin + `#/` + blankName + `?workplaceId=` + this.workplaceId
|
|
|
// this.$router.push( workplaceId)
|
|
|
window.open(url, '_blank');
|
|
|
},
|
|
|
handleClickOut(blankName) {
|
|
|
// let url = window.location.origin+`#/tagCodeBlank?workplaceId=`+ this.stationList[index].workplaceId
|
|
|
let url = window.location.origin + `#/` + blankName + `?splitType=out&workplaceId=` + this.workplaceId
|
|
|
// this.$router.push( workplaceId)
|
|
|
window.open(url, '_blank');
|
|
|
},
|
|
|
handleClickReturn(blankName) {
|
|
|
// let url = window.location.origin+`#/tagCodeBlank?workplaceId=`+ this.stationList[index].workplaceId
|
|
|
let url = window.location.origin + `#/` + blankName + `?splitType=return&workplaceId=` + this.workplaceId
|
|
|
// this.$router.push( workplaceId)
|
|
|
window.open(url, '_blank');
|
|
|
},
|
|
|
//获取当前货位
|
|
|
findCurWorkPlaces(val) {
|
|
|
let query = {
|
|
|
key: val,
|
|
|
status: 1,
|
|
|
// invCode: this.formData.invCode,
|
|
|
page: 1,
|
|
|
limit: 100,
|
|
|
}
|
|
|
listPage(query).then((res) => {
|
|
|
this.curWorkPlaces = res.data.list || [];
|
|
|
if (this.curWorkPlaces.length == 1 && this.formData.workPlaceCode == null) {
|
|
|
this.formData.workPlaceCode = this.curWorkPlaces[0].workplaceId;
|
|
|
this.workPlaceCodeChange(this.formData.workPlaceCode);
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
//界面配置相关------------
|
|
|
executeFuc(row, type, clickFuc, value) {
|
|
|
return executeFuc(this, row, type, clickFuc, value);
|
|
|
},
|
|
|
executeEval(row, expression, defaultRet) {
|
|
|
if (expression) {
|
|
|
return eval(expression);
|
|
|
}
|
|
|
return defaultRet;
|
|
|
},
|
|
|
///界面配置相关------------end
|
|
|
|
|
|
|
|
|
hideSearch() {
|
|
|
this.showSearch = !this.showSearch;
|
|
|
},
|
|
|
|
|
|
refreshCodesPanel(_this) {
|
|
|
_this.panelALive = false;
|
|
|
_this.$nextTick(() => {
|
|
|
_this.panelALive = true;
|
|
|
});
|
|
|
_this.getBizDetailList();
|
|
|
_this.vailOrderFinish();
|
|
|
},
|
|
|
refreshCodesPanelBank(_this) {
|
|
|
_this.panelALive = false;
|
|
|
_this.$nextTick(() => {
|
|
|
_this.panelALive = true;
|
|
|
});
|
|
|
// _this.getBizDetailList();
|
|
|
_this.vailOrderFinish();
|
|
|
},
|
|
|
refreshCodesPanelP() {
|
|
|
let _this = this
|
|
|
_this.panelALive = false;
|
|
|
_this.$nextTick(() => {
|
|
|
_this.panelALive = true;
|
|
|
});
|
|
|
_this.vailOrderFinish();
|
|
|
},
|
|
|
|
|
|
getInputFocus(event) {
|
|
|
event.currentTarget.select();
|
|
|
},
|
|
|
getBizDetailList() {
|
|
|
let preQuery = {}
|
|
|
if (this.formData == null)
|
|
|
return
|
|
|
if (this.formData != null) {
|
|
|
preQuery = {
|
|
|
orderIdFk: this.formData.billNo
|
|
|
};
|
|
|
}
|
|
|
orderDetail(preQuery).then(res => {
|
|
|
if (res.code != 20000) {
|
|
|
this.$message.error(res.message)
|
|
|
return
|
|
|
}
|
|
|
this.splitBizList = res.data.list
|
|
|
let tip = "";
|
|
|
this.splitBizList.forEach((item) => {
|
|
|
if (item.splitUnCheck) {
|
|
|
tip = tip + item.cpmctymc + ","
|
|
|
}
|
|
|
});
|
|
|
if (this.$isNotBlank(tip)) {
|
|
|
tip = "请扫码确认以下产品" + tip + "需拆零的追溯码!"
|
|
|
// this.$alert(tip, "提示", {
|
|
|
// confirmButtonText: "确定",
|
|
|
// type: "warning",
|
|
|
// closeOnClickModal: true,
|
|
|
// callback: (action) => {
|
|
|
// },
|
|
|
// });
|
|
|
|
|
|
this.warnVisible = true;
|
|
|
this.warnResult = tip;
|
|
|
this.scanTip = "拆零确认:"
|
|
|
this.$refs.inputRef.focus();
|
|
|
this.$refs.inputRef.select();
|
|
|
this.scanSplit = true
|
|
|
return;
|
|
|
} else {
|
|
|
//没有需要确认的
|
|
|
this.scanSplit = false
|
|
|
this.overdeleteCode();
|
|
|
}
|
|
|
|
|
|
|
|
|
}).catch(() => {
|
|
|
this.$message.error("数据加载失败")
|
|
|
})
|
|
|
},
|
|
|
|
|
|
enterKey() {
|
|
|
|
|
|
if (this.scanCode.includes("DMOENTER")) {
|
|
|
if (this.formData.billNo == null) {
|
|
|
this.$message.error('请先选择单据')
|
|
|
}else {
|
|
|
this.confirmFinishOrder()
|
|
|
}
|
|
|
this.scanCode = ''
|
|
|
return
|
|
|
}else if (this.scanCode.includes("DMOCANCEL")) {
|
|
|
if (this.formData.billNo == null) {
|
|
|
this.$message.error('请先选择单据')
|
|
|
}else {
|
|
|
this.cancelOrder()
|
|
|
}
|
|
|
this.scanCode = ''
|
|
|
return
|
|
|
}else if (this.scanCode.includes("DMODEL")) {
|
|
|
if (this.formData.billNo == null) {
|
|
|
this.$message.error('请先选择单据')
|
|
|
}else {
|
|
|
this.deleteCode()
|
|
|
}
|
|
|
this.scanCode = ''
|
|
|
return
|
|
|
}
|
|
|
|
|
|
if (this.formData.billNo == null && this.formDataVisible.scanType != 1) {
|
|
|
this.enterBillNoKey()
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
|
|
|
this.checkSuccess = true;
|
|
|
this.filterQuery.code = this.scanCode.trim();
|
|
|
if (this.filterQuery.code.includes(";")) {
|
|
|
const codeArray = this.filterQuery.code.split(";");
|
|
|
const verify = this.verifyScanCount(codeArray)
|
|
|
if (verify){
|
|
|
let params = {
|
|
|
codeList: codeArray,
|
|
|
};
|
|
|
this.batchVailCode(params)
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
if (this.filterQuery.code)
|
|
|
if (!this.parseString(this.filterQuery.code)) {
|
|
|
this.$refs.inputRef.focus();
|
|
|
this.$refs.inputRef.select();
|
|
|
this.$message.error("无效追溯码");
|
|
|
return;
|
|
|
}
|
|
|
let tQuery = {
|
|
|
viewType: "tagCode",
|
|
|
workPlaceCode: this.workplaceId,
|
|
|
originCode: this.originCode,
|
|
|
busType: this.formData.busType,
|
|
|
code: this.filterQuery.code.trim(),
|
|
|
};
|
|
|
if (this.scanStatus == 1) {
|
|
|
const codeArray = this.filterQuery.code.split(";");
|
|
|
let query = {
|
|
|
orderId: this.formData.billNo,
|
|
|
codeList: codeArray
|
|
|
}
|
|
|
//剔除码
|
|
|
this.removeCodesTemp(query)
|
|
|
} else if (this.scanSplit) {
|
|
|
|
|
|
//todo 拆零扫码确认
|
|
|
const codeArray = this.filterQuery.code.split(";");
|
|
|
let query = {
|
|
|
billNo: this.formData.billNo,
|
|
|
codeList: codeArray
|
|
|
}
|
|
|
//更新扫码确认
|
|
|
batchUpdateCode(query).then((response) => {
|
|
|
this.saveLoading = false
|
|
|
if (response.code === 20000) {
|
|
|
this.$message.success('确认成功')
|
|
|
this.result = ''
|
|
|
this.$refs.inputRef.focus()
|
|
|
this.$refs.inputRef.select()
|
|
|
this.getBizDetailList();
|
|
|
} else {
|
|
|
this.$message.error(response.message)
|
|
|
}
|
|
|
this.loading = false
|
|
|
this.saveLoading = false
|
|
|
})
|
|
|
|
|
|
|
|
|
} else {
|
|
|
enterCodeWeb(tQuery).then((response) => {
|
|
|
if (response.code === 20000) {
|
|
|
this.$refs.inputRef.focus();
|
|
|
this.$refs.inputRef.select();
|
|
|
this.isSuccess = true;
|
|
|
this.printCodeResult(response.data, response.message)
|
|
|
this.filterQuery.code = response.data.code;
|
|
|
this.scanCode = ""
|
|
|
this.originCode = ""
|
|
|
this.addCode();
|
|
|
} else {
|
|
|
if (response.code == 502) {
|
|
|
this.checkSuccess = false;
|
|
|
this.isSuccess = false;
|
|
|
this.printCodeResult(response.data, response.message)
|
|
|
this.filterQuery.code = response.data.code;
|
|
|
this.originCode = response.data.code;
|
|
|
} else if (response.code == 501) {
|
|
|
this.checkSuccess = false;
|
|
|
this.$message.error(response.message);
|
|
|
this.scanCode = ""
|
|
|
} else if (response.code == 503) {
|
|
|
this.checkSuccess = false;
|
|
|
this.isSuccess = false;
|
|
|
this.printCodeResult(response.data, response.message)
|
|
|
this.filterQuery.code = response.data.code;
|
|
|
this.scanCode = ""
|
|
|
this.$confirm(response.message, "提示", {
|
|
|
type: "warning",
|
|
|
})
|
|
|
.then(() => {
|
|
|
this.filterQuery.code = response.data.code;
|
|
|
this.addCode();
|
|
|
})
|
|
|
.catch(() => {
|
|
|
this.filterQuery.code = response.data.code;
|
|
|
});
|
|
|
} else if (response.code == 508) {
|
|
|
this.originCode = "";
|
|
|
this.filterQuery.code = "01" + response.data.nameCode;
|
|
|
this.originCode = this.filterQuery.code;
|
|
|
} else if (response.code == 601) {
|
|
|
this.formData.billNo = response.data.billNo
|
|
|
this.placeholder = "已选入单据,请扫UDI码进行作业"
|
|
|
this.getBillNo(this.formData.billNo)
|
|
|
this.startDeal();
|
|
|
|
|
|
} else {
|
|
|
this.scanCode = ""
|
|
|
this.$alert(response.message, "提示", {
|
|
|
confirmButtonText: "确定",
|
|
|
type: "warning",
|
|
|
closeOnClickModal: true,
|
|
|
callback: (action) => {
|
|
|
this.$refs.inputRef.focus();
|
|
|
this.$refs.inputRef.select();
|
|
|
},
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
this.loading = false;
|
|
|
});
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
enterBillNoKey(billNo) {
|
|
|
this.checkSuccess = true;
|
|
|
this.filterQuery.code = this.scanCode;
|
|
|
let tQuery = {
|
|
|
viewType: "tagCode",
|
|
|
workPlaceCode: this.workplaceId,
|
|
|
originCode: this.originCode,
|
|
|
busType: this.formData.busType,
|
|
|
code: this.filterQuery.code.trim(),
|
|
|
};
|
|
|
if (billNo != null) {
|
|
|
tQuery.code = billNo
|
|
|
}
|
|
|
enterCodeBillNo(tQuery).then((response) => {
|
|
|
if (response.code === 20000) {
|
|
|
this.$refs.inputRef.focus();
|
|
|
this.$refs.inputRef.select();
|
|
|
this.isSuccess = true;
|
|
|
this.printCodeResult(response.data, response.message)
|
|
|
this.filterQuery.code = response.data.code;
|
|
|
this.scanCode = ""
|
|
|
this.originCode = ""
|
|
|
this.addCode();
|
|
|
} else {
|
|
|
if (response.code == 502) {
|
|
|
this.checkSuccess = false;
|
|
|
this.isSuccess = false;
|
|
|
this.printCodeResult(response.data, response.message)
|
|
|
this.filterQuery.code = response.data.code;
|
|
|
this.originCode = response.data.code;
|
|
|
this.scanCode = ""
|
|
|
} else if (response.code == 501) {
|
|
|
this.checkSuccess = false;
|
|
|
this.$message.error(response.message);
|
|
|
this.scanCode = ""
|
|
|
} else if (response.code == 503) {
|
|
|
this.checkSuccess = false;
|
|
|
this.isSuccess = false;
|
|
|
this.printCodeResult(response.data, response.message)
|
|
|
this.filterQuery.code = response.data.code;
|
|
|
this.scanCode = ""
|
|
|
this.$confirm(response.message, "提示", {
|
|
|
type: "warning",
|
|
|
})
|
|
|
.then(() => {
|
|
|
this.filterQuery.code = response.data.code;
|
|
|
this.addCode();
|
|
|
})
|
|
|
.catch(() => {
|
|
|
this.filterQuery.code = response.data.code;
|
|
|
});
|
|
|
} else if (response.code == 508) {
|
|
|
this.originCode = "";
|
|
|
this.filterQuery.code = "01" + response.data.nameCode;
|
|
|
this.originCode = this.filterQuery.code;
|
|
|
} else if (response.code == 601) {
|
|
|
this.placeholder = "已选入单据,请扫UDI码进行作业"
|
|
|
this.formData.billNo = response.data.billNo
|
|
|
this.getBillNo(this.formData.billNo)
|
|
|
this.startDeal();
|
|
|
|
|
|
} else {
|
|
|
this.scanCode = ""
|
|
|
this.$alert(response.message, "提示", {
|
|
|
confirmButtonText: "确定",
|
|
|
type: "warning",
|
|
|
closeOnClickModal: true,
|
|
|
callback: (action) => {
|
|
|
this.$refs.inputRef.focus();
|
|
|
this.$refs.inputRef.select();
|
|
|
},
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
this.loading = false;
|
|
|
});
|
|
|
},
|
|
|
|
|
|
addCode(code) {
|
|
|
if (this.$isNotBlank(code)) {
|
|
|
this.filterQuery.code = code;
|
|
|
}
|
|
|
if (this.$isBlank(this.filterQuery.code)) {
|
|
|
this.filterQuery.code = this.scanCode.trim();
|
|
|
}
|
|
|
if (this.$isBlank(this.filterQuery.code) && this.$isBlank(this.scanCode)) {
|
|
|
return;
|
|
|
}
|
|
|
let tagQuery = {
|
|
|
workPlaceCode: this.formData.workPlaceCode,
|
|
|
fromCorp: this.formData.fromCorp,
|
|
|
fromCorpName: this.formData.fromCorpName,
|
|
|
shipper: this.formData.shipper,
|
|
|
shipperName: this.formData.shipperName,
|
|
|
billNo: this.formData.billNo,
|
|
|
code: this.filterQuery.code.trim(),
|
|
|
insert: this.formData.insert,
|
|
|
busType: this.formData.busType,
|
|
|
};
|
|
|
tagCode(tagQuery).then(res => {
|
|
|
this.loading = false
|
|
|
if (res.code == 20000) {
|
|
|
this.formData.tagStatus = 2;
|
|
|
this.formData.insert = false;
|
|
|
this.formData = res.data;
|
|
|
this.curRow = this.formData;
|
|
|
this.$refs.inputRef.focus();
|
|
|
this.refreshCodesPanel(this);
|
|
|
} else {
|
|
|
if (res.code == 502) {
|
|
|
this.$confirm(res.message + '是否强制添加?', '提示', {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning'
|
|
|
}).then(() => {
|
|
|
this.formData.insert = true;
|
|
|
this.addCode();
|
|
|
}).catch(() => {
|
|
|
});
|
|
|
} else {
|
|
|
this.$refs.inputRef.focus();
|
|
|
this.$message.error(res.message)
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}).catch(() => {
|
|
|
this.loading = false
|
|
|
})
|
|
|
},
|
|
|
|
|
|
saveDraftOrder() {
|
|
|
this.$confirm('此操作将挂起当前正在处理单据,是否继续?', '提示', {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning'
|
|
|
}).then(() => {
|
|
|
draftOrder(this.formData).then(res => {
|
|
|
this.loading = false
|
|
|
if (res.code == 20000) {
|
|
|
if (this.scanStatus == 1) {
|
|
|
this.overdeleteCode()
|
|
|
}
|
|
|
this.reset()
|
|
|
}
|
|
|
}).catch(() => {
|
|
|
this.loading = false
|
|
|
})
|
|
|
}).catch(() => {
|
|
|
});
|
|
|
},
|
|
|
|
|
|
cancelOrder() {
|
|
|
this.$confirm('此操作将取消当前正在处理单据,是否继续?', '提示', {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning'
|
|
|
}).then(() => {
|
|
|
cancelOrder(this.formData).then(res => {
|
|
|
this.loading = false
|
|
|
if (res.code == 20000) {
|
|
|
const audio = new Audio(require('@/assets/audioFiles/colser.mp3'));
|
|
|
audio.play();
|
|
|
this.overdeleteCode()
|
|
|
this.reset()
|
|
|
}
|
|
|
}).catch(() => {
|
|
|
this.loading = false
|
|
|
})
|
|
|
}).catch(() => {
|
|
|
});
|
|
|
},
|
|
|
|
|
|
confirmFinishOrder() {
|
|
|
this.$confirm('是否确定完成此单据?', '提示', {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning'
|
|
|
}).then(() => {
|
|
|
this.finishOrder()
|
|
|
}).catch(() => {
|
|
|
});
|
|
|
},
|
|
|
|
|
|
finishOrder() {
|
|
|
finishOrder(this.formData).then(res => {
|
|
|
this.loading = false
|
|
|
if (res.code == 20000) {
|
|
|
const audio = new Audio(require('@/assets/audioFiles/order.mp3'));
|
|
|
audio.play();
|
|
|
this.reset()
|
|
|
if (this.formDataVisible.scanType != 1)
|
|
|
this.findCurOrder()
|
|
|
} else if (res.code == 502) {
|
|
|
this.$confirm(res.message, '提示', {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning'
|
|
|
}).then(() => {
|
|
|
this.formData.confirmFinish = true;
|
|
|
this.finishOrder();
|
|
|
}).catch(() => {
|
|
|
});
|
|
|
} else if (res.code == 503) {
|
|
|
this.$alert('该单据未全部赋码无法完成,请检查后重试', '提示', {
|
|
|
confirmButtonText: '确定',
|
|
|
callback: action => {
|
|
|
}
|
|
|
});
|
|
|
} else {
|
|
|
this.$message.error(res.message)
|
|
|
}
|
|
|
}).catch(() => {
|
|
|
this.loading = false
|
|
|
})
|
|
|
},
|
|
|
|
|
|
updateOrder() {
|
|
|
this.formData.workPlaceCode = this.workplaceId;
|
|
|
updateOrder(this.formData).then(res => {
|
|
|
this.loading = false
|
|
|
}).catch(() => {
|
|
|
this.loading = false
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
//选择单据
|
|
|
selectPrescribe() {
|
|
|
// console.log(this.formData.workPlaceCode)
|
|
|
if (this.$route.query.busType != null) {
|
|
|
this.formData.busType = this.$route.query.busType
|
|
|
}
|
|
|
this.selectPrescriptionVisible = true;
|
|
|
},
|
|
|
|
|
|
//获取下一单据
|
|
|
nextCollectOrder() {
|
|
|
let nextQuery = {
|
|
|
busType: this.formData.busType
|
|
|
}
|
|
|
getNextOrder(nextQuery).then(res => {
|
|
|
this.loading = false
|
|
|
if (res.code == 20000) {
|
|
|
this.formData = res.data;
|
|
|
|
|
|
this.startDeal();
|
|
|
} else {
|
|
|
this.$message.error(res.message)
|
|
|
}
|
|
|
}).catch(() => {
|
|
|
this.loading = false
|
|
|
})
|
|
|
},
|
|
|
|
|
|
findCurOrder() {
|
|
|
let nextQuery = {
|
|
|
// workPlaceCode: this.formData.workPlaceCode,
|
|
|
busType: this.formData.busType
|
|
|
}
|
|
|
getCurOrder(nextQuery).then(res => {
|
|
|
this.loading = false
|
|
|
if (res.code == 20000) {
|
|
|
let temp = res.data;
|
|
|
if (temp.tagStatus === -1) {
|
|
|
this.$confirm('检测到当前工位存在挂起单据,是否继续上一次单据处理?', '提示', {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning'
|
|
|
}).then(() => {
|
|
|
this.formData = temp;
|
|
|
// this.generateBarcode()
|
|
|
this.startDeal();
|
|
|
}).catch(() => {
|
|
|
});
|
|
|
} else if (temp.tagStatus === 2 || temp.tagStatus === 1) {
|
|
|
|
|
|
this.formData = temp;
|
|
|
// this.generateBarcode()
|
|
|
this.panelALive = true
|
|
|
this.startDeal();
|
|
|
// this.$confirm('检测到当前工位存在正在处理单据,是否继续上一次单据处理?', '提示', {
|
|
|
// confirmButtonText: '确定',
|
|
|
// cancelButtonText: '取消',
|
|
|
// type: 'warning'
|
|
|
// }).then(() => {
|
|
|
//
|
|
|
// }).catch(() => {
|
|
|
// });
|
|
|
}
|
|
|
|
|
|
|
|
|
} else {
|
|
|
// this.$message.error(res.message)
|
|
|
this.$refs.inputRef.focus();
|
|
|
}
|
|
|
}).catch(() => {
|
|
|
this.loading = false
|
|
|
})
|
|
|
},
|
|
|
|
|
|
closeDialog() {
|
|
|
this.selectPrescriptionVisible = false;
|
|
|
},
|
|
|
|
|
|
confirmSelect(row) {
|
|
|
this.formData = row;
|
|
|
this.formData.workPlaceCode = this.workplaceId;
|
|
|
this.startDeal();
|
|
|
// this.generateBarcode()
|
|
|
},
|
|
|
|
|
|
startDeal() {
|
|
|
this.autoFinishOrderFlag = true
|
|
|
this.curRow = this.formData;
|
|
|
this.dealSplitOrder()
|
|
|
//处理哪个活动的明细子组件
|
|
|
// this.selectTabsname(this.formData.busType);
|
|
|
this.formData.tagStatus = 2;
|
|
|
this.updateOrder();
|
|
|
this.selectSysParam()
|
|
|
// this.refreshCodesPanel(this);
|
|
|
this.$refs.inputRef.focus();
|
|
|
},
|
|
|
|
|
|
selectTabsname(value) {
|
|
|
if (this.$isBlank(this.filterQuery.code) && this.busTypeList.length > 0) {
|
|
|
let busType = this.busTypeList.find(item => item.documentTypeCode === value);
|
|
|
let autoTag = busType.autoTag;
|
|
|
if (autoTag == 1) {
|
|
|
this.editableTabsValue = this.tabsName[1]
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
//开始拆零
|
|
|
dealSplitOrder() {
|
|
|
this.formData.workPlaceCode = this.workplaceId;
|
|
|
startSplit(this.formData).then(res => {
|
|
|
this.loading = false
|
|
|
if (res.code == 20000) {
|
|
|
this.selectPrescriptionVisible = false;
|
|
|
this.refreshCodesPanel(this);
|
|
|
} else if (res.code == 501) {
|
|
|
|
|
|
this.$refs.childRef.getList();
|
|
|
this.$refs.childRef.getDraftList();
|
|
|
this.$refs.childRef.getOtherList();
|
|
|
this.$message.warning(res.message)
|
|
|
this.refreshCodesPanel(this);
|
|
|
}
|
|
|
}).catch(() => {
|
|
|
this.loading = false
|
|
|
})
|
|
|
},
|
|
|
|
|
|
|
|
|
printCodeResult(data, message) {
|
|
|
const resultParts = [];
|
|
|
if (data.udi) {
|
|
|
resultParts.push("层级标识: " + data.udi);
|
|
|
}
|
|
|
if (data.cpmctymc) {
|
|
|
resultParts.push(data.productType == 2 ? "药品通用名称" : "产品通用名称: " + data.cpmctymc);
|
|
|
}
|
|
|
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);
|
|
|
}
|
|
|
if (data.productType == 2) {
|
|
|
if (data.bzgg) {
|
|
|
resultParts.push("包装规格: " + data.bzgg);
|
|
|
}
|
|
|
} else {
|
|
|
if (data.ggxh) {
|
|
|
resultParts.push("规格型号: " + data.ggxh);
|
|
|
}
|
|
|
}
|
|
|
if (data.prepnSpec) {
|
|
|
resultParts.push("制剂规格: " + data.prepnSpec);
|
|
|
}
|
|
|
if (data.prepnUnit) {
|
|
|
resultParts.push("剂型: " + data.prepnUnit);
|
|
|
}
|
|
|
if (data.packUnit) {
|
|
|
resultParts.push("计量单位: " + data.packUnit);
|
|
|
}
|
|
|
|
|
|
this.scanTitle = "扫码结果:" + data.code;
|
|
|
this.result = resultParts.join(" , ");
|
|
|
if (message == 'success') {
|
|
|
this.scanResultType = "success";
|
|
|
} else {
|
|
|
this.scanResultType = "warning";
|
|
|
this.result = this.result + "\n" + message;
|
|
|
}
|
|
|
},
|
|
|
|
|
|
popupTip(data) {
|
|
|
this.$confirm(data.errMsg, '提示', {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning'
|
|
|
}).then(() => {
|
|
|
this.formData.insert = true
|
|
|
this.addCode(data.code);
|
|
|
}).catch(() => {
|
|
|
});
|
|
|
},
|
|
|
|
|
|
|
|
|
vailOrderFinish() {
|
|
|
if (!this.autoFinishOrderFlag) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
if (this.formDataVisible.scanType == 1)
|
|
|
return;
|
|
|
|
|
|
vailOrderFinish(this.formData).then(res => {
|
|
|
this.loading = false
|
|
|
if (res.code == 20000) {
|
|
|
if (res.data) {
|
|
|
this.$confirm("单据已赋码或可自动赋码,是否立即完成单据?", '提示', {
|
|
|
confirmButtonText: '立即提交',
|
|
|
cancelButtonText: '手动扫码',
|
|
|
type: 'warning'
|
|
|
}).then(() => {
|
|
|
this.finishOrder();
|
|
|
}).catch(() => {
|
|
|
this.autoFinishOrderFlag = false
|
|
|
});
|
|
|
}
|
|
|
} else {
|
|
|
|
|
|
}
|
|
|
}).catch(() => {
|
|
|
this.loading = false
|
|
|
})
|
|
|
},
|
|
|
|
|
|
|
|
|
async printMutiCodeResult(vailCodeResultResponses) {
|
|
|
this.warnResult = "";
|
|
|
this.errResult = "";
|
|
|
this.result = "";
|
|
|
this.warnVisible = false;
|
|
|
this.errVisible = false;
|
|
|
for (let i = 0; i < vailCodeResultResponses.length; i++) {
|
|
|
let data = vailCodeResultResponses[i]
|
|
|
if (data.status == 1)
|
|
|
this.result = this.result + ";" + vailCodeResultResponses[i].code;
|
|
|
else if (data.status == 2) {
|
|
|
this.warnResult = this.warnResult + "\n" + vailCodeResultResponses[i].code + ":" + vailCodeResultResponses[i].errMsg;
|
|
|
} else if (data.status == 3) {
|
|
|
this.result = this.result + "\n" + vailCodeResultResponses[i].code;
|
|
|
// this.warnResult = this.warnResult + "\n" + vailCodeResultResponses[i].code + ":" + vailCodeResultResponses[i].errMsg;
|
|
|
await this.popupTip(data)
|
|
|
}
|
|
|
// else
|
|
|
// this.errResult = this.errResult + "\n" + vailCodeResultResponses[i].code + ":" + vailCodeResultResponses[i].errMsg;
|
|
|
}
|
|
|
if (!isBlank(this.warnResult))
|
|
|
this.warnVisible = true;
|
|
|
if (!isBlank(this.errResult))
|
|
|
this.errVisible = true;
|
|
|
},
|
|
|
handleCommand(command) {
|
|
|
// this.$message('click on item ' + command);
|
|
|
},
|
|
|
verifyScanCount(codeArray){
|
|
|
//判断扫码数量是否超出或少于设置扫码数量
|
|
|
if (this.collectSet.scanMaxCount != null && this.collectSet.scanMaxCount != 0) {
|
|
|
if (this.collectSet.scanMaxCount > codeArray.length) {
|
|
|
this.scanCode = ''
|
|
|
this.$message.error("扫码数量少于设置扫码数量");
|
|
|
return false;
|
|
|
} else if (this.collectSet.scanMaxCount < codeArray.length) {
|
|
|
this.scanCode = ''
|
|
|
this.$message.error("扫码数量超出");
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
return true;
|
|
|
},
|
|
|
clearCode() {
|
|
|
// this.originCode = "";
|
|
|
// this.formData.code = "";
|
|
|
// this.formData.billNo = null;
|
|
|
// this.formData.shipper = null;
|
|
|
// this.formData.fromCorp = null;
|
|
|
this.scanCode = "";
|
|
|
// this.scanTitle = "扫码结果:";
|
|
|
// this.result = "";
|
|
|
// this.warnResult = ""
|
|
|
// this.errResult = ""
|
|
|
// this.warnVisible = false
|
|
|
// this.errVisible = false
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 重置
|
|
|
*/
|
|
|
resetWork() {
|
|
|
this.formData = {
|
|
|
tagStatus: -1,
|
|
|
workPlaceCode: this.formData.workPlaceCode,
|
|
|
busType: this.formData.busType
|
|
|
};
|
|
|
this.curRow = null
|
|
|
this.formData.confirmFinish = false;
|
|
|
this.refreshCodesPanel(this)
|
|
|
this.clearCode()
|
|
|
this.$refs.inputRef.focus();
|
|
|
this.$refs.inputRef.select();
|
|
|
},
|
|
|
reset() {
|
|
|
this.formData = {
|
|
|
billNo: null,
|
|
|
tagStatus: -1,
|
|
|
workPlaceCode: this.formData.workPlaceCode,
|
|
|
busType: this.formData.busType,
|
|
|
shipper: null,
|
|
|
fromCorp: null,
|
|
|
};
|
|
|
this.selectSysParam()
|
|
|
this.curRow = null
|
|
|
this.formData.confirmFinish = false;
|
|
|
this.refreshCodesPanelBank(this)
|
|
|
this.clearCode()
|
|
|
this.$refs.inputRef.focus();
|
|
|
this.$refs.inputRef.select();
|
|
|
},
|
|
|
toggleBusType() {
|
|
|
//隐藏下拉框内容
|
|
|
// this.$refs.selectHeadEmpId.blur();
|
|
|
this.selectBusTypeDisabled = true
|
|
|
},
|
|
|
|
|
|
|
|
|
getInvList() {
|
|
|
let query = {
|
|
|
advanceType: 1,
|
|
|
}
|
|
|
getInvListByUser(query)
|
|
|
.then((response) => {
|
|
|
if (!isBlank(this.$route.query.busType) && this.formDataVisible.consignee == 2) {
|
|
|
this.fromInvOptions = response.data || [];
|
|
|
} else {
|
|
|
this.invList = response.data || []
|
|
|
}
|
|
|
})
|
|
|
.catch(() => {
|
|
|
})
|
|
|
},
|
|
|
changeCorp() {
|
|
|
let corp = this.fromInvOptions.find(item => item.code === this.formData.fromCorp);
|
|
|
this.formData.fromCorpName = corp.name
|
|
|
},
|
|
|
changeShipper() {
|
|
|
let corp = this.invList.find(item => item.code === this.formData.shipper);
|
|
|
this.formData.shipperName = corp.name
|
|
|
this.formData.shipper = corp.code
|
|
|
},
|
|
|
//处理事件
|
|
|
handleRecCodesEvent(event) {
|
|
|
console.log('接收 recCodes event:', event.detail.recCodes);
|
|
|
|
|
|
let params = {
|
|
|
codeList: event.detail.recCodes,
|
|
|
};
|
|
|
if (this.formData.billNo == null) {
|
|
|
this.$message.error("请先选入单据!");
|
|
|
return
|
|
|
}
|
|
|
|
|
|
const verify = this.verifyScanCount(event.detail.recCodes)
|
|
|
if (verify){
|
|
|
this.batchVailCode(params)
|
|
|
}
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
batchVailCode(params) {
|
|
|
if (this.scanStatus == 1) {
|
|
|
//剔除
|
|
|
const codeArray = this.filterQuery.code.split(';')
|
|
|
// const codeArray = this.codeFormData.code.split(';')
|
|
|
let query = {
|
|
|
orderId: this.formData.billNo,
|
|
|
codeList: codeArray
|
|
|
}
|
|
|
//剔除码
|
|
|
this.removeCodesTemp(query)
|
|
|
} else {
|
|
|
batchVailCode(params).then((res) => {
|
|
|
if (res.code === 20000) {
|
|
|
this.valiCodes = [];
|
|
|
let list = res.data;
|
|
|
list.forEach(item => {
|
|
|
if (item.status === 1) {
|
|
|
this.valiCodes.push(item.code);
|
|
|
}
|
|
|
});
|
|
|
this.$refs.inputRef.focus();
|
|
|
this.$refs.inputRef.select();
|
|
|
this.printMutiCodeResult(list)
|
|
|
if (this.valiCodes != null && this.valiCodes.length > 0) {
|
|
|
//批量添加
|
|
|
let params2 = {
|
|
|
workPlaceCode: this.formData.workPlaceCode,
|
|
|
codeList: this.valiCodes,
|
|
|
fromCorp: this.formData.fromCorp,
|
|
|
billNo: this.formData.billNo,
|
|
|
insert: this.formData.insert,
|
|
|
busType: this.formData.busType,
|
|
|
fromCorpName: this.formData.fromCorpName,
|
|
|
invCode: this.formData.invCode,
|
|
|
}
|
|
|
orderbatchAddCode(params2).then((res) => {
|
|
|
if (res.code === 20000) {
|
|
|
this.formData.tagStatus = 2;
|
|
|
this.formData.insert = false;
|
|
|
this.curRow = this.formData;
|
|
|
this.$refs.inputRef.focus();
|
|
|
this.refreshCodesPanel(this);
|
|
|
this.printMutiCodeResult(res.data.vailCodeResultResponses)
|
|
|
} else {
|
|
|
this.$message.error(res.message)
|
|
|
}
|
|
|
});
|
|
|
// this.scanCode = this.valiCodes.join(";");
|
|
|
}
|
|
|
this.selectSysParam()
|
|
|
|
|
|
} else {
|
|
|
this.$message.error(res.message)
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
},
|
|
|
removeCodesTemp(query) {
|
|
|
removeByScanCode(query).then(res => {
|
|
|
if (res.code == 20000) {
|
|
|
this.$message.success('剔除成功')
|
|
|
this.scanCode = ''
|
|
|
this.panelALive = false
|
|
|
this.$nextTick(() => {
|
|
|
this.panelALive = true
|
|
|
})
|
|
|
this.result = ''
|
|
|
} else if (res.code == 501) {
|
|
|
|
|
|
} else {
|
|
|
this.result = ''
|
|
|
this.scanCode = ''
|
|
|
this.$message.error(res.message)
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
//扫码校验
|
|
|
addGs() {
|
|
|
const input = this.$refs.inputRef.$refs.input;
|
|
|
const textToInsert = "\u001D";
|
|
|
const start = input.selectionStart;
|
|
|
const end = input.selectionEnd;
|
|
|
this.scanCode = this.scanCode.slice(0, start) + textToInsert + this.scanCode.slice(end);
|
|
|
this.$nextTick(() => {
|
|
|
this.focus = true;
|
|
|
input.selectionStart = input.selectionEnd = start + textToInsert.length;
|
|
|
this.$refs.inputRef.focus();
|
|
|
});
|
|
|
},
|
|
|
|
|
|
handleScanComplete(fullScanData) {
|
|
|
console.log("Scan complete:", fullScanData.join(";"));
|
|
|
if (this.formData.billNo == null && this.formDataVisible.scanType != 1) {
|
|
|
this.enterBillNoKey(fullScanData[0])
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
let params = {
|
|
|
codeList: fullScanData,
|
|
|
};
|
|
|
if (this.formData.billNo == null) {
|
|
|
this.$message.error("请先选入单据!");
|
|
|
return
|
|
|
}
|
|
|
const verify = this.verifyScanCount(fullScanData)
|
|
|
if (verify){
|
|
|
this.batchVailCode(params)
|
|
|
}
|
|
|
// 在这里处理完整的扫码数据,如提交到后台或显示
|
|
|
},
|
|
|
|
|
|
parseString(str) {
|
|
|
// 1. 判断是否以 "MA" 开头
|
|
|
if (str.startsWith("MA")) {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
// 2. 判断是否以 "01" 开头且长度大于等于 18
|
|
|
if (str.startsWith("01") && str.length >= 16) {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
// 3. 判断是否以 "#" 开头且 "#" 的个数大于等于 4
|
|
|
if (str.startsWith("#") && (str.match(/#/g) || []).length >= 4) {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
// 4. 判断是否以 "8" 开头且长度为 20 位
|
|
|
if (str.startsWith("8") && str.length === 20) {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
// 5. 判断是否以 "11", "17", "21", 或 "10" 开头
|
|
|
const prefixes = ["11", "17", "21", "10"];
|
|
|
if (prefixes.some(prefix => str.startsWith(prefix))) {
|
|
|
return true;
|
|
|
}
|
|
|
// 如果没有任何条件满足,返回 false
|
|
|
return false;
|
|
|
},
|
|
|
socketListener() {
|
|
|
let lastScanTime = Date.now();
|
|
|
let scanBuffer = [];
|
|
|
let scanTimeout = null;
|
|
|
const SCAN_TIMEOUT = 1000; // 1秒间隔,表示扫码结束的判定标准
|
|
|
const self = this;
|
|
|
console.log("启用监听")
|
|
|
this.ws.onmessage = function (event) {
|
|
|
let scanData = event.data; // 获取扫码数据
|
|
|
let currentTime = Date.now();
|
|
|
console.log(scanData)
|
|
|
// 如果时间间隔超过预设的阈值,表示这是一次新的扫码
|
|
|
if (currentTime - lastScanTime > SCAN_TIMEOUT) {
|
|
|
// 处理上一次完整的扫码数据
|
|
|
if (scanBuffer.length > 0) {
|
|
|
self.handleScanComplete(scanBuffer);
|
|
|
}
|
|
|
// 清空缓冲区,开始新的扫码
|
|
|
scanBuffer = [];
|
|
|
}
|
|
|
// 重置上一次扫码的时间
|
|
|
lastScanTime = currentTime;
|
|
|
// 将数据添加到缓冲区
|
|
|
scanBuffer.push(scanData);
|
|
|
|
|
|
// 如果已经有一个定时器在等待,可以清除它
|
|
|
if (scanTimeout) {
|
|
|
clearTimeout(scanTimeout);
|
|
|
}
|
|
|
// 设置新的定时器,等待指定的时间后执行扫码结束处理
|
|
|
scanTimeout = setTimeout(() => {
|
|
|
// 定时器到时,处理扫码结束
|
|
|
self.handleScanComplete(scanBuffer);
|
|
|
scanBuffer = [];
|
|
|
}, SCAN_TIMEOUT);
|
|
|
};
|
|
|
},
|
|
|
handleVisibilityChange() {
|
|
|
if (document.visibilityState === 'visible') {
|
|
|
console.log('用户切回到了处理页面');
|
|
|
if (this.ws == null || this.ws.readyState === WebSocket.CLOSED) {
|
|
|
this.ws = new WebSocket("ws://127.0.0.1:9988");
|
|
|
const self = this;
|
|
|
this.ws.onopen = function (evt) {
|
|
|
console.log("处理单据WebSocket 连接中 ...");
|
|
|
self.socketListener()
|
|
|
};
|
|
|
|
|
|
}
|
|
|
} else {
|
|
|
if (this.ws && this.ws.readyState === WebSocket.OPEN) {
|
|
|
this.ws.close();
|
|
|
console.log("关闭处理单据websocket成功")
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
|
|
|
//扫码剔除操作
|
|
|
deleteCode() {
|
|
|
this.scanTip = "扫码剔除:"
|
|
|
this.labelName = 2
|
|
|
this.placeholder = "请点击输入框进行扫码剔除"
|
|
|
this.scanStatus = 1
|
|
|
this.scanCode = ''
|
|
|
if (!isBlank(this.warnResult)) {
|
|
|
this.warnResult = ""
|
|
|
}
|
|
|
},
|
|
|
overdeleteCode() {
|
|
|
this.warnVisible = false
|
|
|
this.warnResult = "";
|
|
|
this.labelName = 1
|
|
|
this.scanStatus = null
|
|
|
this.scanTip = "扫码录入:"
|
|
|
this.placeholder = '请点击输入框进行选扫码'
|
|
|
},
|
|
|
selectSysParam() {
|
|
|
getSet().then((response) => {
|
|
|
if (response.code == 20000) {
|
|
|
this.collectSet = response.data
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
|
|
|
handleKeydown(event){
|
|
|
if (this.formData.billNo != null){
|
|
|
if (event.key === 'F9' || event.keyCode === 120) {
|
|
|
event.preventDefault(); // 阻止默认行为
|
|
|
this.finishOrder()
|
|
|
MessageBox.close();
|
|
|
|
|
|
}
|
|
|
if (event.key === 'F10' || event.keyCode === 121) {
|
|
|
event.preventDefault(); // 阻止默认行为(如果有的话)
|
|
|
// this.push();
|
|
|
cancelOrder(this.formData).then(res => {
|
|
|
this.loading = false
|
|
|
if (res.code == 20000) {
|
|
|
const audio = new Audio(require('@/assets/audioFiles/colser.mp3'));
|
|
|
audio.play();
|
|
|
this.overdeleteCode()
|
|
|
this.reset()
|
|
|
}
|
|
|
}).catch(() => {
|
|
|
this.loading = false
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
|
|
|
},
|
|
|
},
|
|
|
mounted() {
|
|
|
this.$refs.inputRef.focus();
|
|
|
document.addEventListener('keydown', this.handleKeydown);
|
|
|
//环境判断
|
|
|
if (window.navigator.userAgent.indexOf("GLXP_PC") != -1) {
|
|
|
this.scanDisabled = true;
|
|
|
window.removeEventListener('djcl', this.handleRecCodesEvent);
|
|
|
window.addEventListener('djcl', this.handleRecCodesEvent);
|
|
|
}
|
|
|
document.addEventListener('visibilitychange', this.handleVisibilityChange);
|
|
|
// window.addEventListener('storage', (event) => {
|
|
|
// if (document.visibilityState == 'hidden') {
|
|
|
// console.log("关闭处理单据websocket")
|
|
|
// if (this.ws && this.ws.readyState === WebSocket.OPEN) {
|
|
|
// this.ws.close();
|
|
|
// console.log("关闭处理单据websocket成功")
|
|
|
// }
|
|
|
// } else {
|
|
|
// if (!this.ws) {
|
|
|
// this.ws = new WebSocket("ws://127.0.0.1:9988");
|
|
|
// this.ws.onopen = function (evt) {
|
|
|
// console.log("处理单据WebSocket 连接中 ...");
|
|
|
// };
|
|
|
// this.socketListener()
|
|
|
// }
|
|
|
// }
|
|
|
// });
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
beforeDestroy() {
|
|
|
document.removeEventListener('keydown', this.handleKeydown);
|
|
|
window.removeEventListener('djcl', this.handleRecCodesEvent);
|
|
|
document.removeEventListener('visibilitychange', this.handleVisibilityChange);
|
|
|
|
|
|
this.ws.close();
|
|
|
this.ws.onclose = function (evt) {
|
|
|
console.log("处理单据 Connection closed.");
|
|
|
};
|
|
|
|
|
|
},
|
|
|
created() {
|
|
|
getHead("prescribeTagCodeDeal", "1").then((re) => {
|
|
|
// 处理返回的数据
|
|
|
this.tableObj = re.data;
|
|
|
this.tableHeader = re.data.tableList;
|
|
|
this.queryList = re.data.queryList;
|
|
|
this.fromList = re.data.fromList;
|
|
|
});
|
|
|
this.findCurWorkPlaces();
|
|
|
this.selectSysParam();
|
|
|
|
|
|
this.formData.invCode = this.$store.getters.locInvCode;
|
|
|
if (this.$route.query.billNo != null) {
|
|
|
this.formData.billNo = this.$route.query.billNo
|
|
|
}
|
|
|
if (this.$route.query.workplaceId != null) {
|
|
|
this.isLinkDisabled = true
|
|
|
if (this.$route.query.billNo == null) {
|
|
|
// this.selectBusTypeDisabled = true
|
|
|
}
|
|
|
this.corpOrderIdDisabled = true
|
|
|
this.workplaceId = Number(this.$route.query.workplaceId);
|
|
|
this.formData.workPlaceCode = Number(this.$route.query.workplaceId);
|
|
|
this.getWorkBindBusTypes(this.formData.workPlaceCode);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
|
.el-col {
|
|
|
margin-top: -5px;
|
|
|
margin-bottom: -5px;
|
|
|
}
|
|
|
|
|
|
.el-dropdown {
|
|
|
vertical-align: top;
|
|
|
}
|
|
|
|
|
|
.el-dropdown + .el-dropdown {
|
|
|
margin-left: 15px;
|
|
|
}
|
|
|
|
|
|
.el-icon-arrow-down {
|
|
|
font-size: 12px;
|
|
|
}
|
|
|
|
|
|
.custom-descriptions {
|
|
|
position: relative; /* 设置相对定位,为绝对定位的边框线提供参考 */
|
|
|
}
|
|
|
|
|
|
|
|
|
.barcode-wrapper {
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
align-items: center; /* 水平居中 */
|
|
|
justify-content: center; /* 垂直居中 */
|
|
|
}
|
|
|
.custom-descriptions .el-descriptions__cell svg {
|
|
|
vertical-align: middle;
|
|
|
margin-left: 20px;
|
|
|
margin-right: 10px;
|
|
|
}
|
|
|
</style>
|