Переглянути джерело

Merge branch 'master' of http://git.zthymaoyi.com/gdc/yiliangyiyun-pc

mxx 3 роки тому
батько
коміт
35b27fc434

+ 2 - 1
package.json

@@ -79,7 +79,8 @@
     "vuex": "3.1.0",
     "winsea-component-library": "http://maven.zthymaoyi.com/nexus/repository/npm-hosted/winsea-component-library/-/winsea-component-library-1.0.1.tgz",
     "winseaview": "^2.5.11",
-    "xe-utils": "^2.3.0"
+    "xe-utils": "^2.3.0",
+    "xlsx": "^0.17.2"
   },
   "devDependencies": {
     "@babel/core": "^7.0.0",

+ 3 - 1
src/api/V2/transport/index.js

@@ -53,4 +53,6 @@ export const API_POST_AUTOMOBILE_ALSOSTATE = '/tranProcessInfo/editStatus'
 //运输价格
 export const API_POST_AUTOMOBILE_TRANPRICE = '/tranProcessInfo/api/setUpTranPrice'
 // 删除运输车辆
-export const API_POST_DEL_HAULAGE_STAGE= '/tranCarInfo/api/deleteTranCar'
+export const API_POST_DEL_HAULAGE_STAGE= '/tranCarInfo/api/deleteTranCar'
+// 导入
+export const API_GET_IMPORT= '/importController/readDocument'

+ 5 - 3
src/model/transport/index.js

@@ -29,8 +29,8 @@ import {
     API_POST_AUTOMOBILE_TRANPRICE,
     API_POST_DEL_HAULAGE_STAGE, 
     API_POST_AUTOMOBILE_ALSOSTATE,
-    API_POST_AUTOMOBILE_STATEREC
-
+    API_POST_AUTOMOBILE_STATEREC,
+    API_GET_IMPORT
 } from '@/api/V2/transport'
 // 司机列表
 export const selectDriver = appRx.get(API_GET_TRAN_DRIVERINFO, errorCatcher, errorHandle, filter)
@@ -86,4 +86,6 @@ export const alsostate = appRx.post(API_POST_AUTOMOBILE_ALSOSTATE, errorCatcher,
 //设置运输价格
 export const setUpTranPrice = appRx.post(API_POST_AUTOMOBILE_TRANPRICE, errorCatcher, errorHandle, filter)
 //删除车辆
-export const delhaulagestage = appRx.post(API_POST_DEL_HAULAGE_STAGE, errorCatcher, errorHandle, filter)
+export const delhaulagestage = appRx.post(API_POST_DEL_HAULAGE_STAGE, errorCatcher, errorHandle, filter)
+// 导入
+export const importApplFileUrl = appRx.get(API_GET_IMPORT, errorCatcher, errorHandle, filter)

+ 143 - 28
src/views/tranManagement/tranManagementShippingFeedback.vue

@@ -139,13 +139,18 @@
       </div>
       <!-- 导入 -->
       <div style="font-size: 16px; width: 50%; float: left; text-align: right">
-        <el-button
-          class="bg-bottom"
-          type="primary"
-          size="small"
-          @click="import(deptBudgetList)"
-          >导入</el-button
-        >
+        <el-upload style="margin-left: 8px;"
+          class="upload-demo inline-block margin-right-10"
+          action=""
+          :on-change="handleChange"
+          :show-file-list="false"
+          :on-remove="handleRemove"
+          :file-list="fileListUpload"
+          :limit="limitUpload"
+          accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
+          :auto-upload="false">
+          <el-button  type="primary">导入</el-button>
+        </el-upload>
       </div>
       <div class="liaison">
         <div
@@ -334,8 +339,8 @@
             />           
           </el-upload>
           <div class="tupian">
-          <span v-if="deptBudgetList.tranCarInfoList && deptBudgetList.tranCarInfoList.length > 0 && deptBudgetList.tranCarInfoList[0].loadPoundImg != null " >1</span>
-          <span v-else>未上传</span>
+          <span v-if="deptBudgetList.tranCarInfoList[0].loadPoundImg != null " >1</span>
+          <span v-if="deptBudgetList.tranCarInfoList[0].loadPoundImg == null ">未上传</span>
           </div>
         </template>       
       </ws-form-item>
@@ -355,7 +360,7 @@
 </template>
 <script>
 import { regionData} from 'element-china-area-data'
-import { seeCat, packList, feedback, state } from '@/model/transport/index'
+import { seeCat, packList, feedback, state,importApplFileUrl } from '@/model/transport/index'
 import { getstaff } from '@/model/warehouse/index'
 import WsUpload from '@/components/WsUpload'
 import mapDrag from '@/components/mapdrag/mapdrag'
@@ -415,6 +420,7 @@ export default {
       size: 10,
       value1: '',
       unitList: [],
+      fileTemp:'',
       freightspace: [
         {
           caseNo: '',
@@ -430,6 +436,9 @@ export default {
       staffList: [],
       options: [],
       carModel: [],
+      tranCarInfoList: {
+        loadPoundImg: '',
+      },
       //上传
       accessoryTFs: false,
       fileList: [],
@@ -502,7 +511,6 @@ export default {
     // 关闭 dialog时 处理文件url 初始化upload组件
     handleClose() {
       this.dialogViewSpareMoney = false
-      this.accessoryTFs = false
     },
     //下拉司机姓名改变事件
     selectdriver() {},
@@ -520,8 +528,119 @@ export default {
     uploadSuccess(data, files, url) {
       console.log(data, files, url)
     },
-    //导入
-    import() {},
+    handleClose() {
+      this.accessoryTFs = false
+    },
+     handleChange(file, fileList) {
+            this.fileTemp = file.raw
+                let fileName = file.raw.name
+                let fileType = fileName.substring(fileName.lastIndexOf('.') + 1);
+                // 判断上传文件格式
+                if (this.fileTemp) {
+                    if ((fileType == 'xlsx') || (fileType == 'xls')) {
+                        this.importf(this.fileTemp)
+                    } else {
+                        this.$message({
+                            type: 'warning',
+                            message: '附件格式错误,请删除后重新上传!'
+                        })
+                    }
+                } else {
+                    this.$message({
+                        type: 'warning',
+                        message: '请上传附件!'
+                    })
+                }
+
+    },
+ importf(obj) {
+                this.dialogVisible = true;
+                let _this = this;
+                let inputDOM = this.$refs.inputer;   // 通过DOM取文件数据
+                this.file = event.currentTarget.files[0];
+                var rABS = false; //是否将文件读取为二进制字符串
+                var f = this.file;
+                var reader = new FileReader();
+                //if (!FileReader.prototype.readAsBinaryString) {
+                FileReader.prototype.readAsBinaryString = function (f) {
+                    var binary = "";
+                    var rABS = false; //是否将文件读取为二进制字符串
+                    var pt = this;
+                    var wb; //读取完成的数据
+                    var outdata;
+                    var reader = new FileReader();
+                    reader.onload = function (e) {
+                        var bytes = new Uint8Array(reader.result);
+                        var length = bytes.byteLength;
+                        for (var i = 0; i < length; i++) {
+                            binary += String.fromCharCode(bytes[i]);
+                        }
+                        var XLSX = require('xlsx');
+                        if (rABS) {
+                            wb = XLSX.read(btoa(fixdata(binary)), { //手动转化
+                                type: 'base64'
+                            });
+                        } else {
+                            wb = XLSX.read(binary, {
+                                type: 'binary'
+                            });
+                        }
+                        // outdata就是你想要的东西 excel导入的数据
+                        outdata = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]);
+                        // excel 数据再处理
+                        let arr = []
+                        outdata.map(v => {
+                            // let jsonString = JSON.stringify(v).replace(/\*/g, '').replace(/\s/ig,'');
+                            let jsonString = JSON.stringify(v).replace(/\//g, '').replace(/\s/ig,'');
+                            console.log(jsonString);
+                            v = JSON.parse(jsonString);
+                            let obj = {}
+                            //xxx代表列名
+                            obj.caseNo = v.箱号
+                            obj.titleNo= v.封号
+                            obj.binNumber = v.仓位号
+                            obj.positionWeight=v.散船重量
+                            obj.loadNetWeight = v.装船净重
+                            obj.loadingDate = v.装船日期
+                            arr.push(obj)
+                        })
+                        _this.freightspace.concat(arr)
+                    }
+                    reader.readAsArrayBuffer(f);
+                }
+                if (rABS) {
+                    reader.readAsArrayBuffer(f);
+                } else {
+                    reader.readAsBinaryString(f);
+                }
+            },
+    uploadSectionFile (param) {
+      var fileName = param.file.name.split('.')
+      var fileSuffix = fileName[fileName.length - 1]
+      if (
+        !(
+          fileSuffix.toLowerCase() == 'xlsx' ||
+          fileSuffix.toLowerCase() == 'xls'
+        )
+      ) {
+        EventBus.$emit('error', this.$t('upload.message08'))
+        loading.close()
+        return
+      }
+
+      var data = new FormData()
+      data.append('file', param.file)
+      data.append('compId', sessionStorage.getItem('ws-pf_compId'))
+      data.append('userId', sessionStorage.getItem('ws-pf_userId'))
+
+      importApplFileUrl(data)
+        .toPromise()
+        .then(success => {
+        
+          console.log(success)
+        })
+    },
+
     //完货
     finished() {
       this.$confirm(`完货操作后,装船信息不可修改,是否确定完货?`, {
@@ -635,9 +754,7 @@ export default {
             if (valid) {
               // this.deptBudgetList.totalStorage = this.totalStorage
               this.tranCarInfoList = this.freightspace
-              if(this.tranCarInfoList.length > 0){
-                this.tranCarInfoList[0].sendDateStart = this.deptBudgetList.sendDateStart
-              }
+              this.tranCarInfoList[0].sendDateStart = this.deptBudgetList.sendDateStart
               // this.tranCarInfoList.boxNo = this.arr.toString()
               for (var i = 0; i < this.tranCarInfoList.length; i++) {
                 this.tranCarInfoList[i].id = this.freightspace[i].id
@@ -677,18 +794,16 @@ export default {
         .toPromise()
         .then((response) => {
           this.deptBudgetList = response
-          if(response.tranCarInfoList.length >0 ){
-            this.deptBudgetList.driver = response.tranCarInfoList[0].driver
-            this.deptBudgetList.driverPhone =
-              response.tranCarInfoList[0].driverPhone
-            this.$set(this.deptBudgetList,'sendDateStart',response.tranCarInfoList[0].sendDateStart) 
-            this.deptBudgetList.receiveDateEnd =
-              response.tranCarInfoList[0].receiveDateEnd
-            this.deptBudgetList.shipName = response.tranCarInfoList[0].shipName
-            this.deptBudgetList.shipNo = response.tranCarInfoList[0].shipNo
-            this.deptBudgetList.shipType = response.tranCarInfoList[0].shipType
-            this.deptBudgetList.boxNumber = response.tranCarInfoList[0].boxNumber
-          }
+          this.deptBudgetList.driver = response.tranCarInfoList[0].driver
+          this.deptBudgetList.driverPhone =
+            response.tranCarInfoList[0].driverPhone
+          this.$set(this.deptBudgetList,'sendDateStart',response.tranCarInfoList[0].sendDateStart) 
+          this.deptBudgetList.receiveDateEnd =
+            response.tranCarInfoList[0].receiveDateEnd
+          this.deptBudgetList.shipName = response.tranCarInfoList[0].shipName
+          this.deptBudgetList.shipNo = response.tranCarInfoList[0].shipNo
+          this.deptBudgetList.shipType = response.tranCarInfoList[0].shipType
+          this.deptBudgetList.boxNumber = response.tranCarInfoList[0].boxNumber
           //  this.deptBudgetList.tranCarInfoList = response.tranCarInfoList
           this.freightspace = response.tranCarInfoList
           for (var i = 0; i < this.freightspace.length; i++) {

+ 42 - 12
src/views/tranManagement/tranManagementTransporFeedback.vue

@@ -92,19 +92,39 @@
       <div class="small-title" style="font-size: 16px; width: 50%;float: left;">装车详情</div>
           <!-- 导入 -->
       <div style="font-size: 16px; width: 50%;float: left;text-align: right;">
-      <el-button
-        class="bg-bottom"
-        type="primary"
-        size="small"
-        @click="import(deptBudgetList)"
-        >导入</el-button
-      >
+      <el-upload style="margin-left: 8px;"
+          class=""
+          action="https://www.zthymaoyi.com/upload/admin"
+          :show-file-list="false"
+          :on-success="
+          (res, file) => {
+            uploadSuccessHandle(res)
+          }
+        "
+          accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
+          >
+          <el-button  type="primary">导入</el-button>
+        </el-upload>
+        <el-upload style="margin-left: 8px;"
+          class="upload-demo"
+          action="https://www.zthymaoyi.com/upload/admin"
+          :show-file-list="false"
+          :on-success="
+          (res, file) => {
+            uploadSuccessHandle1(res)
+          }
+        "
+          accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
+          >
+          <el-button  type="primary">导入</el-button>
+        </el-upload>
+       
     </div>
       <div class="liaison">
         <div
           style="width: 100%"
           class="flex position"
-          v-for="(item, index) in this.freightspace"
+          v-for="(item, index) in freightspace"
           :key="index"
         >
           <ws-info-table>
@@ -319,7 +339,7 @@
 </template>
 <script>
 import { regionData, CodeToText, TextToCode } from 'element-china-area-data'
-import { seeCat, packList, feedback, getbank ,state} from '@/model/transport/index'
+import { seeCat, packList, feedback, getbank ,state,importApplFileUrl} from '@/model/transport/index'
 import { getstaff } from '@/model/warehouse/index'
 import WsUpload from '@/components/WsUpload'
 import mapDrag from '@/components/mapdrag/mapdrag'
@@ -354,6 +374,7 @@ export default {
       district: null,
       driverList: [],
       readonly: true,
+      fileTemp:{},
       listDate: { country: '中国', level: 'country', city: '' },
       citylist: [],
       compId: sessionStorage.getItem('ws-pf_compId'),
@@ -439,6 +460,17 @@ export default {
     },
   },
   methods: {
+    uploadSuccessHandle1(e){
+console.log(document.getElementsByClassName("upload-demo"))
+
+    },
+    uploadSuccessHandle(e) {
+      console.log(e)
+      importApplFileUrl({file:e.url}) .toPromise()
+                .then((response) => {
+                  console.log(response)
+                })
+    },
     dataFilter(val) {
       this.deptBudgetList.personCharge = val
       if (val) {
@@ -494,9 +526,7 @@ export default {
     },
     //下拉司机姓名改变事件
     selectdriver() {},
-    handleChange(value) {
-      this.selectedOptions = value
-    },
+
     returnsales() {
       this.deptBudgetList = {}
       this.freightspace = {}

+ 6 - 6
src/views/warehouse/warehouseManagementDelivery.vue

@@ -250,7 +250,7 @@
       <div class="neifor">
         <ws-info-table>
           <!--水分(%)<=-->
-          <ws-form-item label="水分(%)<=" span="1" prop="waterContent">
+          <ws-form-item label="水分(%)" span="1" prop="waterContent">
             <ws-input
               v-model="deptBudgetList.warehouseInOutDetail.waterContent"
               placeholder="请输入水分占比"
@@ -259,7 +259,7 @@
             />
           </ws-form-item>
           <!--杂质(%)<=-->
-          <ws-form-item label="杂质(%)<=" span="1" prop="impurity">
+          <ws-form-item label="杂质(%)" span="1" prop="impurity">
             <ws-input
               v-model="deptBudgetList.warehouseInOutDetail.impurity"
               placeholder="请输入杂质占比"
@@ -268,7 +268,7 @@
             />
           </ws-form-item>
           <!--容重(克/升)>=-->
-          <ws-form-item label="容重(克/升)>=" span="1" prop="bulkDensity">
+          <ws-form-item label="容重(克/升)" span="1" prop="bulkDensity">
             <ws-input
               v-model="deptBudgetList.warehouseInOutDetail.bulkDensity"
               placeholder="请输入容重"
@@ -277,7 +277,7 @@
             />
           </ws-form-item>
           <!--霉变粒(%)<=-->
-          <ws-form-item label="霉变粒(%)<=" span="1" prop="mildewGrain">
+          <ws-form-item label="霉变粒(%)" span="1" prop="mildewGrain">
             <ws-input
               v-model="deptBudgetList.warehouseInOutDetail.mildewGrain"
               placeholder="请输入霉变粒占比"
@@ -286,7 +286,7 @@
             />
           </ws-form-item>
           <!--热损伤(%)<=-->
-          <ws-form-item label="热损伤(%)<=" span="1" prop="jiaorenli">
+          <ws-form-item label="热损伤(%)" span="1" prop="jiaorenli">
             <ws-input
               v-model="deptBudgetList.warehouseInOutDetail.jiaorenli"
               placeholder="请输入热损伤占比"
@@ -295,7 +295,7 @@
             />
           </ws-form-item>
           <!--不完善粒(%)<=-->
-          <ws-form-item label="不完善粒(%)<=" span="1" prop="imperfectGrain">
+          <ws-form-item label="不完善粒(%)" span="1" prop="imperfectGrain">
             <ws-input
               v-model="deptBudgetList.warehouseInOutDetail.imperfectGrain"
               placeholder="请输入不完善粒占比"

+ 7 - 7
src/views/warehouse/warehouseManagementPut.vue

@@ -342,7 +342,7 @@
       <div class="neifor">
         <ws-info-table>
           <!--水分(%)<=-->
-          <ws-form-item label="水分(%)<=" span="1" prop="waterContent">
+          <ws-form-item label="水分(%)" span="1" prop="waterContent">
             <ws-input
               v-model="deptBudgetList.warehouseInOutDetail.waterContent"
               placeholder="请输入水分占比"
@@ -351,7 +351,7 @@
             />
           </ws-form-item>
           <!--杂质(%)<=-->
-          <ws-form-item label="杂质(%)<=" span="1" prop="impurity">
+          <ws-form-item label="杂质(%)" span="1" prop="impurity">
             <ws-input
               v-model="deptBudgetList.warehouseInOutDetail.impurity"
               placeholder="请输入杂质占比"
@@ -359,8 +359,8 @@
               size="small"
             />
           </ws-form-item>
-          <!--容重(克/升)>=-->
-          <ws-form-item label="容重(克/升)>=" span="1" prop="bulkDensity">
+          <!--容重(克/升)-->
+          <ws-form-item label="容重(克/升)" span="1" prop="bulkDensity">
             <ws-input
               v-model="deptBudgetList.warehouseInOutDetail.bulkDensity"
               placeholder="请输入容重"
@@ -369,7 +369,7 @@
             />
           </ws-form-item>
           <!--霉变粒(%)<=-->
-          <ws-form-item label="霉变粒(%)<=" span="1" prop="mildewGrain">
+          <ws-form-item label="霉变粒(%)" span="1" prop="mildewGrain">
             <ws-input
               v-model="deptBudgetList.warehouseInOutDetail.mildewGrain"
               placeholder="请输入霉变粒占比"
@@ -378,7 +378,7 @@
             />
           </ws-form-item>
           <!--热损伤(%)<=-->
-          <ws-form-item label="热损伤(%)<=" span="1" prop="jiaorenli">
+          <ws-form-item label="热损伤(%)" span="1" prop="jiaorenli">
             <ws-input
               v-model="deptBudgetList.warehouseInOutDetail.jiaorenli"
               placeholder="请输入热损伤占比"
@@ -387,7 +387,7 @@
             />
           </ws-form-item>
           <!--不完善粒(%)<=-->
-          <ws-form-item label="不完善粒(%)<=" span="1" prop="imperfectGrain">
+          <ws-form-item label="不完善粒(%)" span="1" prop="imperfectGrain">
             <ws-input
               v-model="deptBudgetList.warehouseInOutDetail.imperfectGrain"
               placeholder="请输入不完善粒占比"

+ 12 - 12
src/views/warehouse/warehouseManagementRecord.vue

@@ -112,23 +112,23 @@
             <template #default="props">
               <ws-form ref="deptBudgetList" :model="deptBudgetList">
                 <ws-info-table>
-                  <ws-form-item label="水分(%)<=" span="1" prop="waterContent">
+                  <ws-form-item label="水分(%)" span="1" prop="waterContent">
                     {{ props.row.waterContent }}
                   </ws-form-item>
-                  <ws-form-item label="容重(g/l)>=" span="1" prop="bulkDensity">
+                  <ws-form-item label="容重(g/l)" span="1" prop="bulkDensity">
                     {{ props.row.bulkDensity }}
                   </ws-form-item>
-                  <ws-form-item label="热损伤(%)<=" span="1" prop="jiaorenli">
+                  <ws-form-item label="热损伤(%)" span="1" prop="jiaorenli">
                     {{ props.row.jiaorenli }}
                   </ws-form-item>
-                  <ws-form-item label="杂质(%)<=" span="1" prop="impurity">
+                  <ws-form-item label="杂质(%)" span="1" prop="impurity">
                     {{ props.row.impurity }}
                   </ws-form-item>
-                  <ws-form-item label="霉变粒(%)<=" span="1" prop="mildewGrain">
+                  <ws-form-item label="霉变粒(%)" span="1" prop="mildewGrain">
                     {{ props.row.mildewGrain }}
                   </ws-form-item>
                   <ws-form-item
-                    label="不完善粒(%)<="
+                    label="不完善粒(%)"
                     span="1"
                     prop="imperfectGrain"
                   >        
@@ -230,23 +230,23 @@
             <template #default="props">
               <ws-form ref="deptBudgetList" :model="deptBudgetList">
                 <ws-info-table>
-                  <ws-form-item label="水分(%)<=" span="1" prop="waterContent">
+                  <ws-form-item label="水分(%)" span="1" prop="waterContent">
                     {{ props.row.waterContent }}
                   </ws-form-item>
-                  <ws-form-item label="容重(g/l)>=" span="1" prop="bulkDensity">
+                  <ws-form-item label="容重(g/l)" span="1" prop="bulkDensity">
                     {{ props.row.bulkDensity }}
                   </ws-form-item>
-                  <ws-form-item label="热损伤(%)<=" span="1" prop="jiaorenli">
+                  <ws-form-item label="热损伤(%)" span="1" prop="jiaorenli">
                     {{ props.row.jiaorenli }}
                   </ws-form-item>
-                  <ws-form-item label="杂质(%)<=" span="1" prop="impurity">
+                  <ws-form-item label="杂质(%)" span="1" prop="impurity">
                     {{ props.row.impurity }}
                   </ws-form-item>
-                  <ws-form-item label="霉变粒(%)<=" span="1" prop="mildewGrain">
+                  <ws-form-item label="霉变粒(%)" span="1" prop="mildewGrain">
                     {{ props.row.mildewGrain }}
                   </ws-form-item>
                   <ws-form-item
-                    label="不完善粒(%)<="
+                    label="不完善粒(%)"
                     span="1"
                     prop="imperfectGrain"
                   >

+ 5 - 0
vue.config.js

@@ -141,7 +141,12 @@ module.exports = {
         // target: 'https://product-server.winsea.com/', //目标地址
         // target: 'http://standard-dev.winsea.com/', //目标地址
         // target: 'http://localhost:8090/',
+<<<<<<< HEAD
+        target: 'http://192.168.1.115:8090/',
+        // target: 'http://192.168.1.122:9100/',
+=======
         target: 'http://192.168.1.122:8090/',
+>>>>>>> fda6d6a17183b1b8bd85dcbfa90d78b2cdf7412b
         // target: 'http://192.168.1.112:8090/',
         // target: 'http://192.168.1.121:8090/',
         // target: 'http://192.168.1.119:8090/',