作者 朱兆平

入库业务录入部分完善

... ... @@ -2,12 +2,13 @@ import axios from 'axios'
import http from "../http";
let baseUrl = 'wms-server-warehouse/wms/station/'
let baseUrl1 = 'wms-server-warehouse/wms/house/'
let baseUrl2 = 'wms-server-warehouse/wms/inventroyrecord/'
let baseUrl3 = 'wms-server-warehouse/wms/location/'
let baseUrl4 = 'wms-server-warehouse/wms/inventroy/'
let baseUrl5 = 'wms-server-warehouse/wms/area/'
let baseUrl = 'wms-server-warehouse/wms/station'
let baseUrl1 = 'wms-server-warehouse/wms/house'
let baseUrl2 = 'wms-server-warehouse/wms/inventroyrecord'
let baseUrl3 = 'wms-server-warehouse/wms/location'
let baseUrl4 = 'wms-server-warehouse/wms/inventroy'
let baseUrl5 = 'wms-server-warehouse/wms/area'
let baseUrl6 = 'wms-server-warehouse/wms/newbasesphcode'
... ... @@ -69,3 +70,6 @@ export const addArea = params => { return http.post(`${baseUrl5}/addArea`,params
export const ediArea = params => { return http.post(`${baseUrl5}/ediArea`,params)};
export const selectByAreaid = params => { return axios.get(`${baseUrl5}/selectByAreaid`, { params: params }); };
//特货管理
export const getSPHCode = params => { return http.get(`${baseUrl6}/selectByCode`,params)};
... ...
export default [
{
"code":"CT",
"name":"纸箱/纸板箱"
},
{
"code":"PE",
"name":"托盘"
},
{
"code":"LG",
"name":"木箱/木材"
},
{
"code":"ID",
"name":"铁笼/铁桶"
},
{
"code":"BT",
"name":"卷轴/纸卷"
},
{
"code":"NE",
"name":"裸妆/无包装"
},
{
"code":"MT",
"name":"麻袋"
},
{
"code":"PL",
"name":"桶"
},
{
"code":"AE",
"name":"按扭式喷雾器瓶"
},
{
"code":"AM",
"name":"未加保护玻璃瓶"
},
{
"code":"AP",
"name":"加保护玻璃瓶"
},
{
"code":"AT",
"name":"喷雾器"
},
{
"code":"BA",
"name":"桶"
},
{
"code":"BB",
"name":"细绳"
},
{
"code":"BC",
"name":"带有瓶架的板条箱"
},
{
"code":"BD",
"name":"板"
},
{
"code":"BE",
"name":"捆扎"
},
{
"code":"BF",
"name":"未加保护球形瓶"
},
{
"code":"BG",
"name":"袋"
},
{
"code":"BH",
"name":"线束"
},
{
"code":"BI",
"name":"料箱"
},
{
"code":"BJ",
"name":"吊桶"
},
{
"code":"BK",
"name":"筐"
},
{
"code":"BL",
"name":"已压缩包"
},
{
"code":"BN",
"name":"未压缩包"
},
{
"code":"BO",
"name":"未加保护圆柱形瓶"
},
{
"code":"BP",
"name":"加保护球形瓶"
},
{
"code":"BQ",
"name":"加保护圆柱形瓶"
},
{
"code":"BR",
"name":"棒"
},
{
"code":"BS",
"name":"未加保护球形瓶"
},
{
"code":"BU",
"name":"散装"
},
{
"code":"BV",
"name":"加保护球形瓶"
},
{
"code":"BX",
"name":"盒"
},
{
"code":"BY",
"name":"以堆/束/捆形式的板"
},
{
"code":"BZ",
"name":"以堆/束/捆形式的钢条"
},
{
"code":"CA",
"name":"矩形罐"
},
{
"code":"CB",
"name":"装啤酒板条箱"
},
{
"code":"CC",
"name":"盛奶器"
},
{
"code":"CE",
"name":"柳条鱼篮"
},
{
"code":"CF",
"name":"保险箱"
},
{
"code":"CG",
"name":"笼"
},
{
"code":"CH",
"name":"箱,柜"
},
{
"code":"CI",
"name":"金属罐"
},
{
"code":"CJ",
"name":"屏蔽容器"
},
{
"code":"CK",
"name":"木桶"
},
{
"code":"CL",
"name":"圈"
},
{
"code":"CN",
"name":"Cones"
},
{
"code":"CO",
"name":"未加保护的坛"
},
{
"code":"CP",
"name":"加保护的坛"
},
{
"code":"CQ",
"name":"罐头"
},
{
"code":"CR",
"name":"板条箱"
},
{
"code":"CS",
"name":"箱"
},
{
"code":"CU",
"name":"杯"
},
{
"code":"CV",
"name":"包裹"
},
{
"code":"CX",
"name":"圆柱形罐"
},
{
"code":"CY",
"name":"圆筒"
},
{
"code":"CZ",
"name":"帆布"
},
{
"code":"DJ",
"name":"未加保护细颈坛"
},
{
"code":"DP",
"name":"加保护细颈坛"
},
{
"code":"DR",
"name":"金属桶"
},
{
"code":"EN",
"name":"包,封"
},
{
"code":"FC",
"name":"装水果板条箱"
},
{
"code":"FD",
"name":"框架板条箱"
},
{
"code":"FI",
"name":"小桶"
},
{
"code":"FL",
"name":"细颈瓶"
},
{
"code":"FO",
"name":"底箱"
},
{
"code":"FP",
"name":"薄膜包装"
},
{
"code":"FR",
"name":"框架"
},
{
"code":"GB",
"name":"气瓶"
},
{
"code":"GG",
"name":"粗麻袋"
},
{
"code":"GI",
"name":"(支)袈"
},
{
"code":"GL",
"name":"粗麻包"
},
{
"code":"GZ",
"name":"以堆/束/捆形式的(支柱)架"
},
{
"code":"HG",
"name":"大啤酒桶"
},
{
"code":"HR",
"name":"带盖的篮"
},
{
"code":"IN",
"name":"锭"
},
{
"code":"IZ",
"name":"以堆/束/捆形式的锭"
},
{
"code":"JC",
"name":"矩形五加仑液体罐"
},
{
"code":"JG",
"name":"带柄的水罐"
},
{
"code":"JR",
"name":"大口瓶"
},
{
"code":"JT",
"name":"黄麻包"
},
{
"code":"JY",
"name":"圆柱形五加仑液体罐"
},
{
"code":"KG",
"name":"小桶(小于30加仑)"
},
{
"code":"LV",
"name":"吊装货箱"
},
{
"code":"LZ",
"name":"以堆/束/捆形式的木材"
},
{
"code":"MB",
"name":"多用包"
},
{
"code":"MC",
"name":"装奶板条箱"
},
{
"code":"MS",
"name":"多层包"
},
{
"code":"MX",
"name":"火柴盒"
},
{
"code":"NS",
"name":"成套器具"
},
{
"code":"NT",
"name":"集装箱"
},
{
"code":"PA",
"name":"小包裹"
},
{
"code":"PB",
"name":"纸袋"
},
{
"code":"PC",
"name":"包裹"
},
{
"code":"PG",
"name":"金属板"
},
{
"code":"PH",
"name":"大水瓶"
},
{
"code":"PI",
"name":"管子"
},
{
"code":"PK",
"name":"包"
},
{
"code":"PN",
"name":"厚木板"
},
{
"code":"PO",
"name":"袋装"
}
]
... ...
export default [
'撕裂',
'凹陷',
'刺痕',
'折痕',
'压痕',
'托盘损坏',
'刮擦',
'污渍',
'脚印',
'水渍',
'湿烂',
'戳破坑洞',
'撕裂豁口',
'压碎变形',
'积压变形',
'防震指示标异常',
'防倾斜指示标异常'
]
... ...
export default [
'有危险品标签/标记(拒绝入库,并通知仓库主管)',
'无有效分货文件',
'送货人自分货',
'箱唛与分货文件不符',
'翻用箱',
'锂电池标签不合规',
'封条断开',
'油污油渍',
'包装顶部不平',
'包装松散',
'开箱检查过',
'其他异常'
]
... ...
... ... @@ -20,7 +20,7 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label=" " :label-width="formLabelWidth" prop="waybill">
<el-form-item label=" " :label-width="formLabelWidth" prop="waybillsub">
<el-input v-model="addForm.waybillsub" autocomplete="off" suffix-icon="el-icon-document" clearable>
<template slot="prepend">分&emsp;&emsp;单</template>
</el-input>
... ... @@ -48,6 +48,27 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label=" " :label-width="formLabelWidth" prop="packge">
<div class="my-text-area">
<div class="el-input-group__prepend prepand">货物包装</div>
<el-select v-model="addForm.packge"
placeholder="货物包装"
filterable
default-first-option
:filter-method="packgeOptionsFilter">
<el-option
v-for="item in packgeOptions"
:key="item.code"
:label="item.name"
:value="item.code">
<span style="float: left">{{ item.code }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.name }}</span>
</el-option>
</el-select>
</div>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label=" " :label-width="formLabelWidth" prop="vol">
<div class="my-text-area">
<div class="el-input-group__prepend prepand">体&emsp;&emsp;积</div>
... ... @@ -227,7 +248,10 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-button type="success" icon="el-icon-edit" @click="drawerVisible = true">入库图像</el-button>
<el-button type="success" icon="el-icon-edit" @click="imgdrawerVisible = true">入库图像</el-button>
</el-col>
<el-col :span="6">
<el-button type="warning" icon="el-icon-edit" @click="otherDrawerVisible = true">其他入库信息</el-button>
</el-col>
<!-- <el-col :span="8">-->
... ... @@ -242,7 +266,7 @@
<!-- <el-option label="状态-成功" value="1"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
</el-col>
<!-- </el-col>-->
</el-row>
<!-- <el-row>
<el-col :span="7">
... ... @@ -439,15 +463,20 @@
</el-card>
<el-drawer
title="我是标题"
:visible.sync="drawerVisible"
:visible.sync="imgdrawerVisible"
:with-header="false">
<video width="100%" height="200" autoplay loop controls id="videos">
<source src="/static/login/New-jumbo.mp4" type="video/mp4">
</video>
<el-row>
<el-image
:src="imgBase64" width="200" height="200"
fit="fill"></el-image>
:src="imgBase64"
style="width: 200px; height: 200px"
fit="fill">
<div slot="error" class="image-slot">
未截图<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</el-row>
<el-button type="success" class="btns" @click="screenshot">一键截屏上传</el-button>
<!-- <el-upload-->
... ... @@ -467,6 +496,89 @@
<!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button>-->
</el-drawer>
<el-drawer
title="其他入库信息"
:visible.sync="otherDrawerVisible"
:with-header="false">
<el-row style="margin-top:0;padding-top:0">
<el-card shadow="always" >
<div slot="header" class="clearfix">
<span>随货文件</span>
<el-button style="float: right; padding: 3px 0" type="text">操作按钮</el-button>
</div>
<el-switch
v-model="addForm.hasFiles"
active-text="有随货文件"
inactive-text="无随货文件"
active-color="#13ce66"
inactive-color="#ff4949"
>
</el-switch>
<el-card shadow="always" style="margin-top:10px;" v-if="addForm.hasFiles">
<el-checkbox-group v-model="addForm.files" @change="handleCheckedfilessChange">
<el-checkbox v-for="filename in flieOptions" :label="filename" :key="filename">{{filename}}</el-checkbox>
</el-checkbox-group>
</el-card>
</el-card>
</el-row>
<el-row>
<el-card shadow="always" >
<div slot="header" class="clearfix">
<span>异常状况</span>
<el-button style="float: right; padding: 3px 0" type="text">操作按钮</el-button>
</div>
<el-switch
v-model="addForm.hasUnusual"
active-text="有异常"
inactive-text="无异常"
active-color="#13ce66"
inactive-color="#ff4949"
>
</el-switch>
<el-card shadow="always" style="margin-top:10px;" v-if="addForm.hasUnusual">
<el-checkbox-group v-model="addForm.unusuals" @change="handleCheckedfilessChange">
<el-checkbox v-for="op in unusualOptions" :label="op" :key="op">
{{op}}
</el-checkbox>
</el-checkbox-group>
</el-card>
</el-card>
</el-row>
<el-row>
<el-card shadow="always" >
<div slot="header" class="clearfix">
<span>破损状况</span>
<el-button style="float: right; padding: 3px 0" type="text">操作按钮</el-button>
</div>
<el-card shadow="always" style="margin-top:10px;">
<el-checkbox-group v-model="addForm.damages" @change="handleCheckedfilessChange">
<el-checkbox v-for="op in damageOptions" :label="op" :key="op">
{{op}}
</el-checkbox>
</el-checkbox-group>
</el-card>
</el-card>
</el-row>
<el-row>
<el-card shadow="always" >
<div slot="header" class="clearfix">
<span>特殊操作情况</span>
<el-button style="float: right; padding: 3px 0" type="text">操作按钮</el-button>
</div>
<el-card shadow="always" style="margin-top:10px;">
<el-checkbox-group v-model="addForm.sphCodes" @change="handleCheckedfilessChange">
<el-checkbox v-for="op in SPHOptions" :label="op.code" :key="op.code" border>
<template>
({{op.code}}){{op.desCn}}
</template>
</el-checkbox>
</el-checkbox-group>
</el-card>
</el-card>
</el-row>
</el-drawer>
</el-row>
</template>
... ... @@ -476,7 +588,9 @@
delInventoryrecord,
addInventoryrecord,
ediInventroyrecord,
selectAreas, selectLocations
selectAreas,
selectLocations,
getSPHCode
} from '../../api/consigner/station';
import dateUtil from "@/utils/index"
import jsutil from "@/common/js/util";
... ... @@ -484,6 +598,9 @@
import { loginedUserInfo } from '@/api/user';
import html2canvas from 'html2canvas'
import {uploadPath,upfileWithPost} from "../../api/technological";
import packge from '@/api/nmms/packge'
import unusualOP from '@/api/wms/unusualOptions'
import damageOP from '@/api/wms/damageOptions'
export default {
... ... @@ -520,7 +637,8 @@
// 编辑对话框
editDialog: false
},
drawerVisible: false,
imgdrawerVisible: false,
otherDrawerVisible: false,
addForm: {
area: '',
billweight: '',
... ... @@ -542,7 +660,15 @@
vol:'',
waybillmaster:'',
waybillsub:'',
//随货文件
hasFiles:false,
hasUnusual:false,
unusuals:[],
files:[],
damages:[],
sphCodes:[],
weight:'',
packge:'',
remark:'',
remark1:'',
remark2:'',
... ... @@ -551,6 +677,7 @@
remark5:'',
picUrl:''
},
packgeOptions:packge,
options: [{
value: '板箱',
label: '货物类型-板箱'
... ... @@ -572,7 +699,17 @@
label: '交易类型-销售入库'
}],
formLabelWidth: '5px',
flieOptions:['报关单证','关封','运单','信封','保函','安检申报清单','随机文件','备案清单','放行通知书','货物运输条件鉴定书(磁化/化工品)','其他'],
unusualOptions:unusualOP,
damageOptions:damageOP,
SPHOptions:[],
rules: {
waybillmaster:[
{ pattern: /^[0-9\-]+$/, message: '主单号格式只支持数字与-符号' }
],
waybillsub:[
{ pattern: /^[0-9A-Z]+$/, message: '分单号格式只支持数字与大写字母' }
],
pcs: [
{ required: true, message: '件数必填', trigger: 'blur' },
{ type:"number", message: '件数必须为整数'}
... ... @@ -649,6 +786,7 @@
transcar: '',
transtype:'',
vol:'',
pacage:'',
waybill:'',
weight:'',
remark:'',
... ... @@ -666,7 +804,9 @@
this.$refs.addForm.validate(valid => {
// 未通过,表单预校验
if (!valid) return;
this.tableData.push(this.addForm);
const wmslog = Object.assign({},this.addForm)
this.tableData.push(wmslog)
this.addForm.serialnumber = this.serialNumber()
})
},
// 添加功能
... ... @@ -808,6 +948,26 @@
ld.close()
})
},
getSPHCode() {
const _this = this
let ld = this.$loading({
text:"特货代码数加载中..."
})
getSPHCode({}).then((response) => {
const res = response.data
if (res.code !== '200') {
return _this.$message.error('获取特货代码记录,失败!')
}
// 获取列表数据
_this.SPHOptions = res.data
_this.$message.success('获取特货代码记录,成功!')
}).catch(error => {
// 关闭加载
_this.$message.error(error.toString())
}).finally(()=>{
ld.close()
})
},
locationQuerySearch(queryString, cb){
var restaurants = this.locationData;
var results = queryString ? restaurants.filter(this.locationFilter(queryString)) : restaurants;
... ... @@ -938,12 +1098,36 @@
},
checkSelectable(){
},
handleCheckedfilessChange(value){
console.log(JSON.stringify(value))
},
packgeOptionsFilter(searchStr){
let tempIndex = -1
if (searchStr){
this.packgeOptions = packge.filter((item,index,arr) =>{
if (item.code.toLocaleUpperCase().indexOf(searchStr.toLocaleUpperCase()) > -1){
tempIndex = index
return true
}else{
return false
}
})
if (tempIndex === -1){
this.packgeOptions = packge
}
}else {
this.packgeOptions = packge
}
}
},
mounted() {
this.getAreaList();
this.getLocationList();
this.getRoles();
this.getSPHCode()
this.addForm.serialnumber = this.serialNumber()
let userinfo = loginedUserInfo();
if (!jsutil.checkNull(userinfo) && !jsutil.checkNull(userinfo.username)){
... ...