caojunjie %!s(int64=3) %!d(string=hai) anos
pai
achega
6a1107aced

+ 16 - 0
src/api/landTransportation/index.js

@@ -307,4 +307,20 @@ export function incidentalSubmit(data) {
         data:data
     })
 }
+//变更提交
+export function changeSubmission(data) {
+    return request({
+        url: '/api/blade-land/order/change',
+        method: 'post',
+        data:data
+    })
+}
+//变更校验
+export function validChange(data) {
+    return request({
+        url: '/api/blade-land/order/valid-change',
+        method: 'get',
+        params:data
+    })
+}
 

+ 5 - 1
src/components/upload/index.vue

@@ -16,7 +16,8 @@
               icon="el-icon-edit"
               @click="addDetail"
               :disabled="disabled"
-          >上传
+              v-if="display"
+          >上传{{display}}
           </el-button>
         </template>
         <template slot="url" slot-scope="{ row }">
@@ -271,6 +272,9 @@ export default {
     disabled: {
       type: Boolean
     },
+    display: {
+      type: Boolean
+    },
     basic: {
       type: Boolean
     }

+ 38 - 20
src/views/basicData/landTransportation/driverInformation/index.vue

@@ -301,14 +301,15 @@ export default {
           label: '驾驶证有效期',
           prop: 'driveExpire',
           type: "date",
-          format: 'yyyy-MM-dd',
-          valueFormat: 'yyyy-MM-dd',
+          searchRange: true,
+          search: true,
+          span: 8,
+          searchSpan: 8,
+          searchDefaultTime: ['00:00:00', '23:59:59'],
+          format: "yyyy-MM-dd",
+          valueFormat: "yyyy-MM-dd HH:mm:ss",
           index: 1,
           width: 140,
-          span: 8,
-          cell: true,
-          overHidden: true,
-          search:true,
         },{
           label: '资格证证件号',
           prop: 'qualifiedNo',
@@ -322,14 +323,15 @@ export default {
           label: '资格证有效期',
           prop: 'qualifiedExpire',
           type: "date",
-          format: 'yyyy-MM-dd',
-          valueFormat: 'yyyy-MM-dd',
-          index: 1,
-          width: 140,
+          searchRange: true,
+          search: true,
           span: 8,
-          cell: true,
-          overHidden: true,
-          search:true,
+          searchSpan: 8,
+          searchDefaultTime: ['00:00:00', '23:59:59'],
+          format: "yyyy-MM-dd",
+          valueFormat: "yyyy-MM-dd HH:mm:ss",
+          index: 1,
+          width: 140
         },{
           label: '押运证证件号',
           prop: 'escortNo',
@@ -343,14 +345,14 @@ export default {
           label: '押运证有效期',
           prop: 'escortExpire',
           type: "date",
-          format: 'yyyy-MM-dd',
-          valueFormat: 'yyyy-MM-dd',
-          index: 1,
           width: 140,
+          searchRange: true,
+          search: true,
           span: 8,
-          cell: true,
-          overHidden: true,
-          search:true,
+          searchSpan: 8,
+          searchDefaultTime: ['00:00:00', '23:59:59'],
+          format: "yyyy-MM-dd",
+          valueFormat: "yyyy-MM-dd HH:mm:ss",
         }, {
           label: '信用等级',
           width: 150,
@@ -561,7 +563,23 @@ export default {
     },
     //搜索
     searchChange(params,done) {
-      this.onLoad(this.page,params)
+      let data = params
+      if (data.driveExpire){
+        data.beginDriveExpire = data.driveExpire[0]
+        data.endDriveExpire = data.driveExpire[1]
+      }
+      if (data.qualifiedExpire){
+        data.beginQualifiedExpire = data.qualifiedExpire[0]
+        data.endQualifiedExpire = data.qualifiedExpire[1]
+      }
+      if (data.escortExpire){
+        data.beginEscortExpire = data.escortExpire[0]
+        data.endEscortExpire = data.escortExpire[1]
+      }
+      delete data.driveExpire
+      delete data.qualifiedExpire
+      delete data.escortExpire
+      this.onLoad(this.page,data)
       done();
     },
     //列表删除

+ 56 - 31
src/views/basicData/landTransportation/vehicleInformation/index.vue

@@ -103,7 +103,7 @@ export default {
             prop: 'excelTemplate',
             formslot: true,
             span: 24,
-          },{
+          }, {
             label: '模板上传',
             prop: 'excelFile',
             type: 'upload',
@@ -118,13 +118,13 @@ export default {
           }
         ]
       },
-      excelForm:{},
+      excelForm: {},
       option: {
         dialogWidth: '85%',
         searchIcon: true,
         searchIndex: 2,
         searchMenuSpan: 24,
-        stripe:true,
+        stripe: true,
         searchLabelWidth: 100,
         align: 'center',
         index: true,
@@ -345,7 +345,6 @@ export default {
           width: 140,
           cell: true,
           overHidden: true,
-          search: true,
           span: 8,
           searchSpan: 8,
         }, {
@@ -355,7 +354,6 @@ export default {
           width: 140,
           cell: true,
           overHidden: true,
-          search: true,
           span: 8,
           searchSpan: 8,
         }, {
@@ -365,7 +363,6 @@ export default {
           width: 140,
           cell: true,
           overHidden: true,
-          search: true,
           span: 8,
           searchSpan: 8,
         }, {
@@ -375,7 +372,6 @@ export default {
           width: 140,
           cell: true,
           overHidden: true,
-          search: true,
           span: 8,
           searchSpan: 8,
         }, {
@@ -402,20 +398,23 @@ export default {
           searchDefaultTime: ['00:00:00', '23:59:59'],
           format: "yyyy-MM-dd",
           valueFormat: "yyyy-MM-dd HH:mm:ss",
-        }, {
-          label: '信用等级',
-          width: 150,
-          span: 8,
-          prop: 'salesman',
-          search: true,
-          overHidden: true,
-          type: "select",
-          dicUrl: "/api/blade-system/dict-biz/dictionary?code=credit_rating",
-          props: {
-            label: "dictValue",
-            value: "dictKey"
-          },
         },
+
+          //   {
+          //   label: '信用等级',
+          //   width: 150,
+          //   span: 8,
+          //   searchSpan: 8,
+          //   prop: 'salesman',
+          //   search: true,
+          //   overHidden: true,
+          //   type: "select",
+          //   dicUrl: "/api/blade-system/dict-biz/dictionary?code=credit_rating",
+          //   props: {
+          //     label: "dictValue",
+          //     value: "dictKey"
+          //   },
+          // },
           {
             label: '附件',
             prop: 'fileList',
@@ -425,7 +424,7 @@ export default {
             span: 24,
             children: {
               align: 'center',
-              stripe:true,
+              stripe: true,
               headerAlign: 'center',
               rowAdd: (done) => {
                 // this.$message.success('新增回调');
@@ -474,23 +473,23 @@ export default {
             children: {
               align: 'center',
               headerAlign: 'center',
-              addBtn:false,
-              stripe:true,
-              delBtn:false,
-              cellBtn:false,
+              addBtn: false,
+              stripe: true,
+              delBtn: false,
+              cellBtn: false,
               column: [
                 {
                   label: '司机名',
                   prop: "driverName",
-                  cell:false
-                },{
+                  cell: false
+                }, {
                   label: '变更人',
                   prop: "changeUserName",
-                  cell:false
+                  cell: false
                 }, {
                   label: '变更日期',
                   prop: "changeTime",
-                  cell:false
+                  cell: false
                 }]
             }
           }
@@ -508,7 +507,7 @@ export default {
       headers: {"Blade-Auth": "Bearer " + getToken()},
       ids: [], // id集合
       form: {},
-      excelBox:false
+      excelBox: false
     }
   },
   created() {
@@ -608,7 +607,33 @@ export default {
     // 搜索
     searchChange(params, done) {
       this.page.currentPage = 1;
-      this.onLoad(this.page, params);
+      let data = params
+      if (data.purchaseDate) {
+        data.beginPurchaseDate = params.purchaseDate[0]
+        data.endPurchaseDate = params.purchaseDate[1]
+      }
+      if (data.registerDate) {
+        data.beginRegisterDate = params.registerDate[0]
+        data.endRegisterDate = params.registerDate[1]
+      }
+      if (data.scrapDate) {
+        data.beginScrapDate = params.scrapDate[0]
+        data.endScrapDate = params.scrapDate[1]
+      }
+      if (data.inspectExpired) {
+        data.beginInspectExpired = params.inspectExpired[0]
+        data.endInspectExpired = params.inspectExpired[1]
+      }
+      if (data.insuranceExpired) {
+        data.beginInsuranceExpired = params.insuranceExpired[0]
+        data.endInsuranceExpired = params.insuranceExpired[1]
+      }
+      delete data.purchaseDate
+      delete data.registerDate
+      delete data.scrapDate
+      delete data.inspectExpired
+      delete data.insuranceExpired
+      this.onLoad(this.page, data);
       done()
     },
     // 重置

+ 3 - 1
src/views/landTransportation/dispatchingCars/detailPage.vue

@@ -70,12 +70,14 @@
         <template slot-scope="scope" slot="polId">
           <port-info
               v-model="goodsForm.polId"
+              type="id"
               :disabled="goodsForm.status >= 1"
           />
         </template>
         <template slot-scope="scope" slot="podId">
           <port-info
               v-model="goodsForm.podId"
+              type="id"
               :disabled="goodsForm.status >= 1"
           />
         </template>
@@ -456,6 +458,7 @@
         typeUpload="CD"
         :data="orderFilesList"
         disabled
+        :display="false"
         deleteUrl="/api/blade-client/common-file/remove"
         :enumerationValue="86.2"
     ></c-upload>
@@ -1150,7 +1153,6 @@ export default {
           }, {
             label: '预配箱量',
             prop: 'expectCtnQty',
-            type: 'date'
           }, {
             label: '起运港',
             prop: 'polId'

+ 73 - 14
src/views/landTransportation/placeAnOrder/detailPage.vue

@@ -13,10 +13,19 @@
       <div>
         <el-button
             class="el-button--small-yh add-customer-btn"
+            type="warning"
+            size="small"
+            v-if="goodsForm.status > 0"
+            :style="{marginRight: goodsForm.status == 2?'80px':'180px'}"
+            @click="confirmChange"
+        >变更
+        </el-button>
+        <el-button
+            class="el-button--small-yh add-customer-btn"
             type="success"
-            v-if="goodsForm.status === 0"
+            v-if="goodsForm.status === 0 && typeTwo === false"
             size="small"
-            style="margin-right: 70px;"
+            style="margin-right: 80px;"
             @click="submit(true)"
         >提交
         </el-button>
@@ -25,18 +34,30 @@
             type="success"
             v-if="goodsForm.status === 1"
             size="small"
-            style="margin-right: 70px;"
+            style="margin-right: 80px;"
             @click="submit(false)"
         >取消提交
         </el-button>
-        <el-button
-            class="el-button--small-yh add-customer-btn"
-            type="primary"
-            :disabled="goodsForm.status === 1 || type"
-            size="small"
-            @click="editCustomer"
-        >保存
-        </el-button>
+        <div class="el-button&#45;&#45;small-yh add-customer-btn">
+          <el-button
+              type="primary"
+              :disabled="goodsForm.status > 1"
+              size="small"
+              :loading="type"
+              v-if="!typeTwo"
+              @click="editCustomer"
+          >保存
+          </el-button>
+          <el-button
+              type="primary"
+              :disabled="goodsForm.status === 1"
+              size="small"
+              v-else
+              :loading="type"
+              @click="changeSaving"
+          >变更保存
+          </el-button>
+        </div>
       </div>
     </div>
     <containerTitle
@@ -487,7 +508,7 @@ import {
   detailDelegationList,
   removeCollection,
   saveSaveList,
-  addressList, cancelSubmission, getCorp, getSalesman, getFee
+  addressList, cancelSubmission, getCorp, getSalesman, getFee, changeSubmission, validChange
 } from "@/api/landTransportation";
 import {getDeptTree} from "@/api/system/dept";
 import website from "@/config/website";
@@ -503,6 +524,7 @@ export default {
       activeIndex: '1',
       KeyBox: 0,
       KeyBoxTwo: 0,
+      typeTwo:false,
       type: false,
       enclosure: false,
       orderList:[],
@@ -1611,7 +1633,12 @@ export default {
             }
           })
         }
-        this.goodsOptionForm.disabled = this.goodsOptionFormC.disabled = this.collectionOption.disabled = this.paymentOption.disabled = this.goodsForm.status === 1
+
+
+        this.goodsOptionFormC.disabled = true
+        this.goodsOptionForm.disabled = true
+        this.goodsOptionFormTwo.disabled = true
+        this.goodsOptionForm.disabled = this.goodsOptionFormC.disabled = this.collectionOption.disabled = this.paymentOption.disabled = this.goodsForm.status >= 1
         delete this.goodsForm.orderAddressList
         delete this.goodsForm.itemList
         delete this.goodsForm.orderFeeList
@@ -1694,7 +1721,6 @@ export default {
         orderFeeList: this.collectionList.concat(this.paymentList)
       }).then(res => {
         this.$message.success('保存成功');
-        this.goodsForm = {}
         if (!this.goodsForm.id) {
           this.id = res.data.data
           this.refreshData()
@@ -1703,6 +1729,39 @@ export default {
         }
       })
     },
+    //确认变更
+    confirmChange(){
+      validChange().then(res=>{
+        console.log(res)
+        this.goodsForm.status = 0
+        this.goodsOptionFormC.disabled = false
+        this.goodsOptionForm.disabled = false
+        this.goodsOptionFormTwo.disabled = false
+        this.typeTwo = true
+      })
+    },
+    //变更保存
+    changeSaving(){
+      let data = JSON.parse(JSON.stringify(this.tableData))
+      data.forEach((item, index) => {
+        item.sort = index + 1
+      })
+      this.type = true
+      delete this.goodsForm.status
+      changeSubmission({
+        ...this.goodsForm,
+        kind: '1',
+        orderAddressList: data,
+        fileList: this.orderFilesList,
+        itemList: this.entrustList,
+        orderItemList:this.vehicleList,
+        orderFeeList: this.collectionList.concat(this.paymentList)
+      }).then(res=>{
+        this.$message.success('保存成功');
+        this.typeTwo = false
+        this.refreshData()
+      })
+    },
     //提交委托
     submit(type) {
       if (type) {

+ 21 - 0
src/views/landTransportation/reportAnalysis/index.vue

@@ -14,6 +14,9 @@
           @search-criteria-switch="searchCriteriaSwitch"
           @row-save="(row,done,loading)=>{rowSave(row,0,done,loading)}"
           @row-update="rowSave">
+        <template slot="menuLeft">
+          <el-button type="info" size="small" @click="outExport" icon="el-icon-download">导出</el-button>
+        </template>
         <template slot-scope="{row}" slot="fleetId">
           <span>{{ row.fleetName }}</span>
         </template>
@@ -136,6 +139,7 @@ import {
   incidentalConfirm,
   cancelConfirm, standingBookCollection
 } from "@/api/landTransportation";
+import {getToken} from "@/util/auth";
 
 export default {
   name: "index",
@@ -428,6 +432,23 @@ export default {
     }
   },
   methods: {
+    //导出
+    outExport() {
+      this.$confirm('是否导出数据明细?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        window.open(
+            `/api/blade-land/order/acct-export?${this.website.tokenHeader}=${getToken()}`
+        );
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消' //
+        });
+      })
+    },
     //自定义列保存
     async saveColumnCollection() {
       /**

+ 1 - 1
src/views/statisticAnalysis/dataDetail/index.vue

@@ -283,7 +283,7 @@ export default {
           endCreateTime: '',
         }
       }
-      // return console.log(this.search)
+      return console.log(this.search)
       this.$confirm('是否导出数据明细?', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',

+ 5 - 5
src/views/wel/home/landTransportation/components/sales-reached.vue

@@ -3,7 +3,7 @@
     <el-card class="home-container__card">
       <div class="title">
         <span>
-          今日业务量
+          今日业务
         </span>
         <span>
           <i
@@ -14,7 +14,7 @@
         </span>
       </div>
       <div class="content" v-loading="loading">
-        <div style="width: 100%;height: 350px;display: flex;justify-content: space-around;flex-wrap: wrap">
+        <div style="width: 100%;height: 300px;display: flex;justify-content: space-around;flex-wrap: wrap">
           <div id="totalContainer" style="width: 26%;height: 210px;"></div>
           <div id="totalBulkCargo" style="width: 26%;height: 210px;"></div>
           <div id="specialTotal" style="width: 26%;height: 210px;"></div>
@@ -86,15 +86,15 @@ export default {
     getSysType() {
       this.loading = true
       bizCount({mold:1}).then(res=>{
-        this.rankingTwo('totalContainer', '集装箱总量:'+res.data.data.flow.all, res.data.data.flow.list)
+        this.rankingTwo('totalContainer', '集装箱:'+res.data.data.flow.all, res.data.data.flow.list)
         // this.rankingTwo('totalContainerTwo', '集装箱总量:'+res.data.data.dept.all, res.data.data.dept.list)
       })
       bizCount({mold:2}).then(res=>{
-        this.rankingTwo('totalBulkCargo', '散货总量:'+res.data.data.flow.all,  res.data.data.flow.list)
+        this.rankingTwo('totalBulkCargo', '散货:'+res.data.data.flow.all,  res.data.data.flow.list)
         // this.rankingTwo('totalBulkCargoTwo', '散货总量:'+res.data.data.dept.all, res.data.data.dept.list)
       })
       bizCount({mold:3}).then(res=>{
-        this.rankingTwo('specialTotal', '特种车辆总量:'+res.data.data.flow.all,res.data.data.flow.list)
+        this.rankingTwo('specialTotal', '特种车辆:'+res.data.data.flow.all,res.data.data.flow.list)
         // this.rankingTwo('specialTotalTwo', '特种车辆总量:'+res.data.data.dept.all,res.data.data.dept.list)
       })
       this.loading = false

+ 1 - 1
src/views/wel/home/landTransportation/landTransportation.vue

@@ -58,7 +58,7 @@ export default {
   width: 100%;
   height: 95.5vh;
   grid-template-columns: repeat(auto-fill, 10%);
-  grid-template-rows: 140px 300px 480px;
+  grid-template-rows: 140px 260px 480px;
   grid-template-areas:
     "a a a a a a a a a a"
     "b b b b b b b b b b"