作者 朱兆平

体积计算

@@ -3,9 +3,9 @@ @@ -3,9 +3,9 @@
3 <el-card style="background-color: #F5F7FA"> 3 <el-card style="background-color: #F5F7FA">
4 <el-row class="toolbar" style="height:auto"> 4 <el-row class="toolbar" style="height:auto">
5 <el-form :model="addForm" :rules="rules" ref="addForm" :inline="true"> 5 <el-form :model="addForm" :rules="rules" ref="addForm" :inline="true">
6 - <el-divider content-position="left"><i class="el-icon-document"></i> 货物信息</el-divider> 6 + <el-divider content-position="left"><i class="el-icon-document"></i> 货物信息 <el-tag type="info">流水号: {{addForm.serialnumber}}</el-tag></el-divider>
7 <el-row> 7 <el-row>
8 - <el-col :span="6"> 8 + <el-col :span="6" v-if="false">
9 <el-form-item label=" " :label-width="formLabelWidth" prop="serialnumber"> 9 <el-form-item label=" " :label-width="formLabelWidth" prop="serialnumber">
10 <el-input v-model="addForm.serialnumber" autocomplete="off" suffix-icon="el-icon-files" disabled> 10 <el-input v-model="addForm.serialnumber" autocomplete="off" suffix-icon="el-icon-files" disabled>
11 <template slot="prepend">流&emsp;&emsp;水</template> 11 <template slot="prepend">流&emsp;&emsp;水</template>
@@ -29,14 +29,30 @@ @@ -29,14 +29,30 @@
29 <el-col :span="6"> 29 <el-col :span="6">
30 <el-form-item label=" " :label-width="formLabelWidth" prop="pcs"> 30 <el-form-item label=" " :label-width="formLabelWidth" prop="pcs">
31 <el-input v-model.number="addForm.pcs" autocomplete="off" suffix-icon="el-icon-files" clearable > 31 <el-input v-model.number="addForm.pcs" autocomplete="off" suffix-icon="el-icon-files" clearable >
32 - <template slot="prepend">件&emsp;&emsp;数</template> 32 + <template slot="prepend">总&nbsp;件&nbsp;数</template>
  33 + </el-input>
  34 + </el-form-item>
  35 + </el-col>
  36 + <el-col :span="6">
  37 + <el-form-item label=" " :label-width="formLabelWidth" prop="weight">
  38 + <el-input v-model="addForm.weight" autocomplete="off" suffix-icon="el-icon-files" clearable>
  39 + <template slot="prepend">总&nbsp;重&nbsp;量</template>
  40 + </el-input>
  41 + </el-form-item>
  42 + </el-col>
  43 + </el-row>
  44 + <el-row>
  45 + <el-col :span="6">
  46 + <el-form-item label=" " :label-width="formLabelWidth" prop="pcs">
  47 + <el-input v-model.number="addForm.pcs" autocomplete="off" suffix-icon="el-icon-files" clearable >
  48 + <template slot="prepend">入库件数</template>
33 </el-input> 49 </el-input>
34 </el-form-item> 50 </el-form-item>
35 </el-col> 51 </el-col>
36 <el-col :span="6"> 52 <el-col :span="6">
37 <el-form-item label=" " :label-width="formLabelWidth" prop="weight"> 53 <el-form-item label=" " :label-width="formLabelWidth" prop="weight">
38 <el-input v-model="addForm.weight" autocomplete="off" suffix-icon="el-icon-files" clearable> 54 <el-input v-model="addForm.weight" autocomplete="off" suffix-icon="el-icon-files" clearable>
39 - <template slot="prepend">重&emsp;&emsp;量</template> 55 + <template slot="prepend">入库重量</template>
40 </el-input> 56 </el-input>
41 </el-form-item> 57 </el-form-item>
42 </el-col> 58 </el-col>
@@ -68,8 +84,11 @@ @@ -68,8 +84,11 @@
68 </div> 84 </div>
69 </el-form-item> 85 </el-form-item>
70 </el-col> 86 </el-col>
  87 + </el-row>
  88 + <el-row>
71 <el-col :span="6"> 89 <el-col :span="6">
72 <el-form-item label=" " :label-width="formLabelWidth" prop="vol"> 90 <el-form-item label=" " :label-width="formLabelWidth" prop="vol">
  91 + <el-tooltip class="item" effect="dark" content="单位:厘米,每行录入一个体积信息格式如:1x2x3x4(长x宽x高x件数),回车换行" placement="right">
73 <div class="my-text-area"> 92 <div class="my-text-area">
74 <div class="el-input-group__prepend prepand">体&emsp;&emsp;积</div> 93 <div class="el-input-group__prepend prepand">体&emsp;&emsp;积</div>
75 <el-input v-model="addForm.vol" 94 <el-input v-model="addForm.vol"
@@ -80,31 +99,39 @@ @@ -80,31 +99,39 @@
80 > 99 >
81 </el-input> 100 </el-input>
82 </div> 101 </div>
  102 + </el-tooltip>
83 </el-form-item> 103 </el-form-item>
84 </el-col> 104 </el-col>
85 - </el-row>  
86 - <el-divider content-position="left"><i class="el-icon-house"></i> 入库相关</el-divider>  
87 - <el-row>  
88 <el-col :span="6"> 105 <el-col :span="6">
89 - <el-form-item label=" " :label-width="formLabelWidth" prop="area">  
90 - <el-autocomplete  
91 - v-model="addForm.area"  
92 - :fetch-suggestions="areaQuerySearch"  
93 - placeholder="请输入库区编号"  
94 - :trigger-on-focus="false"  
95 - value-key = "areano"  
96 - clearable  
97 - highlight-first-item  
98 - style="width: 100%"  
99 - >  
100 - <template slot="prepend">库&emsp;&emsp;区</template>  
101 - <template slot-scope="{ item }">  
102 - <div class="name" style="float: left">{{ item.areano }}</div>  
103 - <div class="addr" style="float: right">{{ item.areaname }}</div>  
104 - </template>  
105 - </el-autocomplete> 106 + <el-form-item label=" " :label-width="formLabelWidth" prop="volValue">
  107 + <el-input v-model="addForm.volValue" autocomplete="off" suffix-icon="el-icon-files" disabled>
  108 + <template slot="prepend">入库体积</template>
  109 + </el-input>
106 </el-form-item> 110 </el-form-item>
107 </el-col> 111 </el-col>
  112 + </el-row>
  113 + <el-divider content-position="left"><i class="el-icon-house"></i> 入库相关</el-divider>
  114 + <el-row>
  115 +<!-- <el-col :span="6">-->
  116 +<!-- <el-form-item label=" " :label-width="formLabelWidth" prop="area">-->
  117 +<!-- <el-autocomplete-->
  118 +<!-- v-model="addForm.area"-->
  119 +<!-- :fetch-suggestions="areaQuerySearch"-->
  120 +<!-- placeholder="请输入库区编号"-->
  121 +<!-- :trigger-on-focus="false"-->
  122 +<!-- value-key = "areano"-->
  123 +<!-- clearable-->
  124 +<!-- highlight-first-item-->
  125 +<!-- style="width: 100%"-->
  126 +<!-- >-->
  127 +<!-- <template slot="prepend">库&emsp;&emsp;区</template>-->
  128 +<!-- <template slot-scope="{ item }">-->
  129 +<!-- <div class="name" style="float: left">{{ item.areano }}</div>-->
  130 +<!-- <div class="addr" style="float: right">{{ item.areaname }}</div>-->
  131 +<!-- </template>-->
  132 +<!-- </el-autocomplete>-->
  133 +<!-- </el-form-item>-->
  134 +<!-- </el-col>-->
108 <el-col :span="6"> 135 <el-col :span="6">
109 <el-form-item label=" " :label-width="formLabelWidth" prop="location"> 136 <el-form-item label=" " :label-width="formLabelWidth" prop="location">
110 <el-autocomplete 137 <el-autocomplete
@@ -606,6 +633,27 @@ @@ -606,6 +633,27 @@
606 export default { 633 export default {
607 name: "inventroyrecord", 634 name: "inventroyrecord",
608 data() { 635 data() {
  636 + var checkInputArea = (rule, value, callback) => {
  637 + let tempVol = 0
  638 + if (!value) {
  639 + return callback(new Error('体积信息必填'));
  640 + }
  641 + setTimeout(() => {
  642 + var lineStr = value.replace('\r').split('\n')
  643 + lineStr.forEach(((v,index) => {
  644 + var pattern = /^[0-9\.]+x[0-9\.]+x[0-9\.]+x[0-9\.]+$/;
  645 + if(!pattern.test(v)){
  646 + callback(new Error('行:'+index+'的值:'+v+'的体积格式输入错误,格式为1x1x1x1支持小数点'));
  647 + }else {
  648 + const volV = this.multiply(v)
  649 + tempVol += volV
  650 + }
  651 + }))
  652 +
  653 + callback();
  654 + this.addForm.volValue = (tempVol/1000000).toFixed(2)
  655 + }, 200);
  656 + };
609 return { 657 return {
610 queryInfo: { 658 queryInfo: {
611 waybill:'', 659 waybill:'',
@@ -658,6 +706,7 @@ @@ -658,6 +706,7 @@
658 transcar: '', 706 transcar: '',
659 transtype:'销售入库', 707 transtype:'销售入库',
660 vol:'', 708 vol:'',
  709 + volValue:0,
661 waybillmaster:'', 710 waybillmaster:'',
662 waybillsub:'', 711 waybillsub:'',
663 //随货文件 712 //随货文件
@@ -734,6 +783,11 @@ @@ -734,6 +783,11 @@
734 ], 783 ],
735 opter: [ 784 opter: [
736 { required: true, message: '必须包含经办人信息', trigger: 'blur' } 785 { required: true, message: '必须包含经办人信息', trigger: 'blur' }
  786 + ],
  787 + vol:[
  788 + // { required: true, message: '体积信息必填', trigger: 'blur' },
  789 + { validator: checkInputArea, trigger: 'blur' },
  790 + // { pattern: /^[0-9\.x]+$/gm, message: '体积信息只能输入数字和(.)点符号与x小写字母' }
737 ] 791 ]
738 }, 792 },
739 } 793 }
@@ -874,8 +928,8 @@ @@ -874,8 +928,8 @@
874 const res = response.data 928 const res = response.data
875 this.$message.success(res.msg) 929 this.$message.success(res.msg)
876 this.getList() 930 this.getList()
877 - }).catch(error => {  
878 - this.$message.error(res.msg) 931 + }).catch(err => {
  932 + this.$message.error(err.toString())
879 }) 933 })
880 }).catch(() => { 934 }).catch(() => {
881 }) 935 })
@@ -1077,9 +1131,6 @@ @@ -1077,9 +1131,6 @@
1077 let ld = this.$loading({ 1131 let ld = this.$loading({
1078 text:"图片数据上传中..." 1132 text:"图片数据上传中..."
1079 }) 1133 })
1080 - const para = {  
1081 - file:formData  
1082 - }  
1083 upfileWithPost(formData).then((response)=>{ 1134 upfileWithPost(formData).then((response)=>{
1084 let res = response.data; 1135 let res = response.data;
1085 if (res.code !== '200') { 1136 if (res.code !== '200') {
@@ -1121,6 +1172,14 @@ @@ -1121,6 +1172,14 @@
1121 } 1172 }
1122 1173
1123 1174
  1175 + },
  1176 + multiply(str){
  1177 + var everyNum = str.replace('X','x').split('x');
  1178 + let tempNum = 1;
  1179 + everyNum.forEach(item =>{
  1180 + tempNum = tempNum*item
  1181 + })
  1182 + return tempNum;
1124 } 1183 }
1125 }, 1184 },
1126 mounted() { 1185 mounted() {