liyg 2 years ago
parent
commit
c9f26b2658
1 changed files with 183 additions and 110 deletions
  1. 183 110
      src/views/appoint/components/saleContract/transportPrice.vue

+ 183 - 110
src/views/appoint/components/saleContract/transportPrice.vue

@@ -10,6 +10,16 @@
         <i class="el-icon-plus"></i>新增
       </el-button>
        <el-button type="primary" @click="exportAllExcel()"><i class="el-icon-download"></i>导出(Excel)</el-button>
+      <el-upload 
+          style="margin-left:10px"
+          action=""
+          :on-change="importExcel"
+          :show-file-list="false"
+          accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
+          :auto-upload="false">
+          <el-button  type="primary">
+            <i class="el-icon-upload"></i>导入(Excel)</el-button>
+      </el-upload>
     </div>
 
 <el-tabs v-model="activeName">
@@ -459,8 +469,8 @@ export default {
       this.carrierIdArray=[]
       this.drawer=false
       this.onclick()
-    }
-    /*importExcel(file){
+    },
+    importExcel(file){
       let that = this;
       if (!file) {
         that.$message({
@@ -483,123 +493,185 @@ export default {
         let rows= XLSX.utils.sheet_to_json(
           workbook.Sheets[workbook.SheetNames[0]]
         );
-        console.log(rows)
+        console.log("rows:",rows)
+        //查找"序号"
         let index=1;
-        // for (index=1;index<rows.length;index++){
+        for (index=1;index<rows.length;index++){
+          if (workbook.Sheets[workbook.SheetNames[0]]["A"+index] &&  
+          (workbook.Sheets[workbook.SheetNames[0]]["A"+index].v=="序号" || workbook.Sheets[workbook.SheetNames[0]]["A"+index].v=="序\n号")){
+            break;
+          }
+        }
+        console.log("表头行数:" + index);
+        if(index>=rows.length){
+          that.$message({
+            message: "文件错误!",
+            type: "warning",
+          });
+          return
+        }
+        //查找最新运价
+        let cols=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
+        let j=cols.length-1;
+        let priceCol=null;
+        let tonnageCol=null;
+        for (j=cols.length-1;j>0;j--){
+         if (workbook.Sheets[workbook.SheetNames[0]][cols[j]+(index+1)] &&  priceCol==null
+         && workbook.Sheets[workbook.SheetNames[0]][cols[j]+(index+1)].v=="运价\n(元/吨)"){
+            priceCol=cols[j];
+          }else if (workbook.Sheets[workbook.SheetNames[0]][cols[j]+(index+1)] &&  tonnageCol==null
+         && workbook.Sheets[workbook.SheetNames[0]][cols[j]+(index+1)].v=="吨公里\n(元/吨.km)"){
+            tonnageCol=cols[j];
+          }
+        }
+        console.log("最新单价列数:" + priceCol);
+        console.log("最新单价吨公里:" + tonnageCol);
+        // if (
+        //   typeof workbook.Sheets[workbook.SheetNames[0]]["A" + index] == 'undefined' ||
+        //   typeof workbook.Sheets[workbook.SheetNames[0]]["B" + index] == 'undefined' ||
+        //   typeof workbook.Sheets[workbook.SheetNames[0]]["C" + index] == 'undefined' ||
+        //   typeof workbook.Sheets[workbook.SheetNames[0]]["D" + index] == 'undefined' ||
+        //   typeof workbook.Sheets[workbook.SheetNames[0]]["E" + index] == 'undefined' ||
+        //   typeof workbook.Sheets[workbook.SheetNames[0]]["F" + index] == 'undefined' ||
+        //   typeof workbook.Sheets[workbook.SheetNames[0]]["G" + index] == 'undefined' ||
+        //   typeof workbook.Sheets[workbook.SheetNames[0]]["H" + index] == 'undefined' ||
+        //   workbook.Sheets[workbook.SheetNames[0]]["A" + index].v != "序号" ||
+        //   workbook.Sheets[workbook.SheetNames[0]]["B" + index].v != "省份" ||
+        //   workbook.Sheets[workbook.SheetNames[0]]["C" + index].v != "市/区" ||
+        //   workbook.Sheets[workbook.SheetNames[0]]["D" + index].v != "县/镇" ||
+        //   workbook.Sheets[workbook.SheetNames[0]]["E" + index].v != "卸货地点" ||
+        //   workbook.Sheets[workbook.SheetNames[0]]["F" + index].v != "参考运距(公里)" ||
+        //   workbook.Sheets[workbook.SheetNames[0]]["G" + index].v != "运价(元/吨)" ||
+        //   workbook.Sheets[workbook.SheetNames[0]]["H" + index].v != "吨公里(元/吨.km)"
+        // ){
         //   if (
-        //     typeof workbook.Sheets[workbook.SheetNames[0]]["A"+index] !=
-        //     "undefined"
-        //   ){
-        //     index++;
-        //     break
+        //     typeof workbook.Sheets[workbook.SheetNames[0]]["A" + index] == 'undefined' ||
+        //     workbook.Sheets[workbook.SheetNames[0]]["A" + index].v != "序号"
+        //   ) {
+        //     that.$message({
+        //       message: "表格格式错误:序号错误",
+        //       type: "warning"
+        //     });
+        //   }
+        //   if (
+        //     typeof workbook.Sheets[workbook.SheetNames[0]]["B" + index] == 'undefined' ||
+        //     workbook.Sheets[workbook.SheetNames[0]]["B" + index].v != "省份"
+        //   ) {
+        //     that.$message({
+        //       message: "表格格式错误:省份错误",
+        //       type: "warning"
+        //     });
+        //   }
+        //   if (
+        //     typeof workbook.Sheets[workbook.SheetNames[0]]["C" + index] == 'undefined' ||
+        //     workbook.Sheets[workbook.SheetNames[0]]["C" + index].v != "市/区"
+        //   ) {
+        //     that.$message({
+        //       message: "表格格式错误:市/区错误",
+        //       type: "warning"
+        //     });
+        //   }
+        //   if (
+        //     typeof workbook.Sheets[workbook.SheetNames[0]]["D" + index] == 'undefined' ||
+        //     workbook.Sheets[workbook.SheetNames[0]]["D" + index].v != "县/镇"
+        //   ) {
+        //     that.$message({
+        //       message: "表格格式错误:县/镇错误",
+        //       type: "warning"
+        //     });
+        //   }
+        //   if (
+        //     typeof workbook.Sheets[workbook.SheetNames[0]]["E" + index] == 'undefined' ||
+        //     workbook.Sheets[workbook.SheetNames[0]]["E" + index].v != "卸货地点"
+        //   ) {
+        //     that.$message({
+        //       message: "表格格式错误:卸货地点错误",
+        //       type: "warning"
+        //     });
+        //   }
+        //   if (
+        //     typeof workbook.Sheets[workbook.SheetNames[0]]["F" + index] == 'undefined' ||
+        //     workbook.Sheets[workbook.SheetNames[0]]["F" + index].v != "参考运距(公里)"
+        //   ) {
+        //     that.$message({
+        //       message: "表格格式错误:参考运距(公里)错误",
+        //       type: "warning"
+        //     });
+        //   }
+        //   if (
+        //     typeof workbook.Sheets[workbook.SheetNames[0]]["G" + index] == 'undefined' ||
+        //     workbook.Sheets[workbook.SheetNames[0]]["G" + index].v != "运价(元/吨)"
+        //   ) {
+        //     that.$message({
+        //       message: "表格格式错误:运价(元/吨)错误",
+        //       type: "warning"
+        //     });
+        //   }
+        //   if (
+        //     typeof workbook.Sheets[workbook.SheetNames[0]]["G" + index] == 'undefined' ||
+        //     workbook.Sheets[workbook.SheetNames[0]]["H" + index].v != "吨公里(元/吨.km)"
+        //   ) {
+        //     that.$message({
+        //       message: "表格格式错误:吨公里(元/吨.km)错误",
+        //       type: "warning"
+        //     });
         //   }
         // }
-        // console.log("表头行数:" + index);
-        // if(index>=rows.length){
-        //   that.$message({
-        //     message: "文件错误!",
-        //     type: "warning",
-        //   });
-        //   return
-        // }
-        if (
-          typeof workbook.Sheets[workbook.SheetNames[0]]["A" + index] == 'undefined' ||
-          typeof workbook.Sheets[workbook.SheetNames[0]]["B" + index] == 'undefined' ||
-          typeof workbook.Sheets[workbook.SheetNames[0]]["C" + index] == 'undefined' ||
-          typeof workbook.Sheets[workbook.SheetNames[0]]["D" + index] == 'undefined' ||
-          typeof workbook.Sheets[workbook.SheetNames[0]]["E" + index] == 'undefined' ||
-          typeof workbook.Sheets[workbook.SheetNames[0]]["F" + index] == 'undefined' ||
-          typeof workbook.Sheets[workbook.SheetNames[0]]["G" + index] == 'undefined' ||
-          typeof workbook.Sheets[workbook.SheetNames[0]]["H" + index] == 'undefined' ||
-          workbook.Sheets[workbook.SheetNames[0]]["A" + index].v != "序号" ||
-          workbook.Sheets[workbook.SheetNames[0]]["B" + index].v != "省份" ||
-          workbook.Sheets[workbook.SheetNames[0]]["C" + index].v != "市/区" ||
-          workbook.Sheets[workbook.SheetNames[0]]["D" + index].v != "县/镇" ||
-          workbook.Sheets[workbook.SheetNames[0]]["E" + index].v != "卸货地点" ||
-          workbook.Sheets[workbook.SheetNames[0]]["F" + index].v != "参考运距(公里)" ||
-          workbook.Sheets[workbook.SheetNames[0]]["G" + index].v != "运价(元/吨)" ||
-          workbook.Sheets[workbook.SheetNames[0]]["H" + index].v != "吨公里(元/吨.km)"
-        ){
-          if (
-            typeof workbook.Sheets[workbook.SheetNames[0]]["A" + index] == 'undefined' ||
-            workbook.Sheets[workbook.SheetNames[0]]["A" + index].v != "序号"
-          ) {
-            that.$message({
-              message: "表格格式错误:序号错误",
-              type: "warning"
-            });
-          }
-          if (
-            typeof workbook.Sheets[workbook.SheetNames[0]]["B" + index] == 'undefined' ||
-            workbook.Sheets[workbook.SheetNames[0]]["B" + index].v != "省份"
-          ) {
-            that.$message({
-              message: "表格格式错误:省份错误",
-              type: "warning"
-            });
-          }
-          if (
-            typeof workbook.Sheets[workbook.SheetNames[0]]["C" + index] == 'undefined' ||
-            workbook.Sheets[workbook.SheetNames[0]]["C" + index].v != "市/区"
-          ) {
-            that.$message({
-              message: "表格格式错误:市/区错误",
-              type: "warning"
-            });
-          }
-          if (
-            typeof workbook.Sheets[workbook.SheetNames[0]]["D" + index] == 'undefined' ||
-            workbook.Sheets[workbook.SheetNames[0]]["D" + index].v != "县/镇"
-          ) {
-            that.$message({
-              message: "表格格式错误:县/镇错误",
-              type: "warning"
-            });
-          }
-          if (
-            typeof workbook.Sheets[workbook.SheetNames[0]]["E" + index] == 'undefined' ||
-            workbook.Sheets[workbook.SheetNames[0]]["E" + index].v != "卸货地点"
-          ) {
-            that.$message({
-              message: "表格格式错误:卸货地点错误",
-              type: "warning"
-            });
-          }
-          if (
-            typeof workbook.Sheets[workbook.SheetNames[0]]["F" + index] == 'undefined' ||
-            workbook.Sheets[workbook.SheetNames[0]]["F" + index].v != "参考运距(公里)"
-          ) {
-            that.$message({
-              message: "表格格式错误:参考运距(公里)错误",
-              type: "warning"
-            });
-          }
-          if (
-            typeof workbook.Sheets[workbook.SheetNames[0]]["G" + index] == 'undefined' ||
-            workbook.Sheets[workbook.SheetNames[0]]["G" + index].v != "运价(元/吨)"
-          ) {
-            that.$message({
-              message: "表格格式错误:运价(元/吨)错误",
-              type: "warning"
-            });
+        //读取表格
+        for (let i = index+2; i <= rows.length+1 ; i++){
+          let temp={
+            no:null,
+            addressProvince:null,
+            addressDistrict:null,
+            addressTown:null,
+            addressDeliveryAddress:null,
+            priceValue:null,
+            haulDistance:null,
+            priceTonKilometer:null,
           }
-          if (
-            typeof workbook.Sheets[workbook.SheetNames[0]]["G" + index] == 'undefined' ||
-            workbook.Sheets[workbook.SheetNames[0]]["H" + index].v != "吨公里(元/吨.km)"
-          ) {
-            that.$message({
-              message: "表格格式错误:吨公里(元/吨.km)错误",
-              type: "warning"
-            });
+          //序号,无序号视为无效数据。
+          if(!workbook.Sheets[workbook.SheetNames[0]]["A" + i]){
+            continue;
           }
+          try{
+            temp.no=workbook.Sheets[workbook.SheetNames[0]]["A" + i].v;
+          }catch(error){}
+          //省
+          try{
+            temp.addressProvince=workbook.Sheets[workbook.SheetNames[0]]["B" + i].v;
+          }catch(error){}
+          //市
+          try{
+            temp.addressDistrict=workbook.Sheets[workbook.SheetNames[0]]["C" + i].v;
+          }catch(error){}
+          //县
+          try{
+            temp.addressTown=workbook.Sheets[workbook.SheetNames[0]]["D" + i].v;
+          }catch(error){}
+           //卸货地点
+          try{
+            temp.addressDeliveryAddress=workbook.Sheets[workbook.SheetNames[0]]["E" + i].v;
+          }catch(error){}
+          //参考运距
+          try{
+            temp.haulDistance=workbook.Sheets[workbook.SheetNames[0]]["F" + i].v;
+          }catch(error){}
+          //单价
+          try{
+            temp.priceValue=workbook.Sheets[workbook.SheetNames[0]][priceCol + i].v;
+          }catch(error){}
+           //吨/公里
+          try{
+            temp.priceTonKilometer=workbook.Sheets[workbook.SheetNames[0]][tonnageCol + i].v;
+          }catch(error){}
+          // console.log(temp);
+          excelData.push(temp);
         }
-        //读取表格
-        for (let i = index+1; i <= rows.length+1 ; i++){
-          console.log(workbook.Sheets[workbook.SheetNames[0]]["B" + i].v)
-        }
+        //最终数据表格:
+        console.log("excelData",excelData);
       }
       reader.readAsBinaryString(file.raw);
-    }*/
+    }
   },
 
 };
@@ -607,6 +679,7 @@ export default {
 <style lang='scss' scoped>
 .salePlan {
   .top{
+    display: flex;
     padding: 1.25rem 0.375rem;
     .el-input {
       width: 20%;