浏览代码

陆运首页更改,添加信用等级,陆运地图关闭

caojunjie 3 年之前
父节点
当前提交
dd9f9e6961

文件差异内容过多而无法显示
+ 0 - 0
public/cdn/avue/2.8.18/avue.min.js


+ 8 - 1
src/api/gaude.js

@@ -2,7 +2,14 @@ import request from '@/router/axios';
 
 export const gaude = (params) => {
     return request({
-        url: '/api/blade-land/order-track/location-list',
+        url: '/api/blade-land/track-log/track',
+        method: 'get',
+        params: params
+    })
+}
+export const location = (params) => {
+    return request({
+        url: '/api/blade-land/track-log/location',
         method: 'get',
         params: params
     })

+ 8 - 1
src/api/wel.js

@@ -78,7 +78,14 @@ export const count = (query) => {
 }
 export const active = (query) => {
   return request({
-    url: '/api/blade-land/order-index/active',
+    url: '/api/blade-land/order-index/biz-detail',
+    method: 'get',
+    params: query
+  })
+}
+export const bizCount = (query) => {
+  return request({
+    url: '/api/blade-land/order-index/biz-count',
     method: 'get',
     params: query
   })

+ 26 - 1
src/views/basicData/customerInformation/detailsPageEdit.vue

@@ -36,6 +36,7 @@
       </div>
     </div>
     <div class="customer-main">
+      {{creditRatingList}}
       <el-form
         :model="form"
         ref="form"
@@ -107,6 +108,21 @@
                   >
                   </el-option>
                 </el-select>
+                <el-select
+                  v-else-if="item.prop === 'creditRating'"
+                  size="small"
+                  style="width: 100%;"
+                  v-model="form[item.prop]"
+                  placeholder=""
+                >
+                  <el-option
+                    v-for="item in creditRatingList"
+                    :key="item.id"
+                    :label="item.dictValue"
+                    :value="item.dictValue"
+                  >
+                  </el-option>
+                </el-select>
                 <crop-select
                   v-else-if="item.prop === 'belongtocompany'"
                   v-model="form[item.prop]"
@@ -338,6 +354,7 @@ export default {
       userList: [],
       formData: {},
       formDataTwo: {},
+      creditRatingList:[],
       optionData: {
         span: 8,
         menuBtn: false,
@@ -784,11 +801,16 @@ export default {
           {
             label: "代理区域",
             prop: "belongtoarea",
-            span: 16,
+            span: 8,
             mock: {
               type: "county"
             }
           },
+          {
+            label: "信用等级",
+            prop: "creditRating",
+            span: 8,
+          },
           // {
           //   label: "总返利",
           //   prop: "profitReturn",
@@ -870,6 +892,9 @@ export default {
     this.getWorkDicts("payment_term").then(res => {
       this.paymentOption = res.data.data;
     });
+    this.getWorkDicts("credit_rating").then(res => {
+      this.creditRatingList = res.data.data;
+    });
     if (this.detailData.id) {
       detail(this.detailData.id).then(res => {
         if (res.data.data.adminProfiles) {

+ 24 - 1
src/views/basicData/customerManagement/supplierMaterial/detailsPageEdit.vue

@@ -82,6 +82,21 @@
                   >
                   </el-option>
                 </el-select>
+                <el-select
+                    v-else-if="item.prop === 'creditRating'"
+                    size="small"
+                    style="width: 100%;"
+                    v-model="form[item.prop]"
+                    placeholder=""
+                >
+                  <el-option
+                      v-for="item in creditRatingList"
+                      :key="item.id"
+                      :label="item.dictValue"
+                      :value="item.dictValue"
+                  >
+                  </el-option>
+                </el-select>
                 <crop-select
                   v-else-if="item.prop === 'belongtocompany'"
                   v-model="form[item.prop]"
@@ -250,6 +265,7 @@ export default {
       form: {},
       disabled: false,
       contactsForm: {},
+      creditRatingList:[],
       advantageProjectForm: {},
       bankOfDepositForm: {},
       contactsData: [],
@@ -544,10 +560,14 @@ export default {
           {
             label: "代理区域",
             prop: "belongtoarea",
-            span: 16,
+            span: 8,
             mock: {
               type: "county"
             }
+          },{
+            label: "信用等级",
+            prop: "creditRating",
+            span: 8,
           },
           {
             label: "备注",
@@ -583,6 +603,9 @@ export default {
     this.getWorkDicts("payment_term").then(res => {
       this.paymentOption = res.data.data;
     });
+    this.getWorkDicts("credit_rating").then(res => {
+      this.creditRatingList = res.data.data;
+    });
     if (this.detailData.id) {
       detail(this.detailData.id).then(res => {
         if (res.data.data.adminProfiles) {

+ 25 - 1
src/views/basicData/fleetInformation/detailsPageEdit.vue

@@ -91,6 +91,21 @@
                   @getCorpData="getCorpName"
                   corpType="GS"
                 ></crop-select>
+                <el-select
+                    v-else-if="item.prop === 'creditRating'"
+                    size="small"
+                    style="width: 100%;"
+                    v-model="form[item.prop]"
+                    placeholder=""
+                >
+                  <el-option
+                      v-for="item in creditRatingList"
+                      :key="item.id"
+                      :label="item.dictValue"
+                      :value="item.dictValue"
+                  >
+                  </el-option>
+                </el-select>
                 <el-date-picker
                     v-model="form[item.prop]"
                     size="small"
@@ -290,6 +305,7 @@ export default {
   data() {
     return {
       userList: [],
+      creditRatingList:[],
       formData:{},
       option:{
         span:12,
@@ -727,9 +743,14 @@ export default {
             span: 8
           },
           {
+            label: "信用等级",
+            prop: "creditRating",
+            span: 16,
+          },
+          {
             label: "备注",
             prop: "remarks",
-            span: 16,
+            span: 24,
             mock: {
               type: "county"
             }
@@ -775,6 +796,9 @@ export default {
     this.getWorkDicts("payment_term").then(res => {
       this.paymentOption = res.data.data;
     });
+    this.getWorkDicts("credit_rating").then(res => {
+      this.creditRatingList = res.data.data;
+    });
     if (this.detailData.id) {
       detail(this.detailData.id).then(res => {
         if (res.data.data.adminProfiles) {

+ 1 - 1
src/views/wel/home/landTransportation/components/audit-data.vue

@@ -3,7 +3,7 @@
     <el-card class="home-container__card">
       <div class="title">
         <span>
-          业务看板
+          今日业务量
         </span>
         <span>
           <i

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

@@ -3,69 +3,101 @@
     <el-card class="home-container__card">
       <div class="title">
         <span>
-          业务待办
+          今日业务量
         </span>
         <span>
           <i
-            class="el-icon-refresh-right"
-            style="cursor: pointer;font-size:20px"
-            @click="refresh"
+              class="el-icon-refresh-right"
+              style="cursor: pointer;font-size:20px"
+              @click="refresh"
           ></i>
         </span>
       </div>
       <div class="content" v-loading="loading">
-        <el-table
-            ref="singleTable"
-            :data="tableData"
-            highlight-current-row
-            :show-header="false"
-            @current-change="handleCurrentChange"
-            style="width: 100%">
-          <el-table-column
-              type="index"
-              width="50">
-          </el-table-column>
-          <el-table-column
-              property="date"
-              label="日期"
-              width="120">
-          </el-table-column>
-          <el-table-column
-              property="name"
-              label="姓名"
-              width="120">
-          </el-table-column>
-          <el-table-column
-              property="address"
-              label="地址">
-          </el-table-column>
-        </el-table>
+        <div style="width: 100%;height: 560px;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>
+          <div id="totalContainerTwo" style="width: 26%;height: 210px;"></div>
+          <div id="totalBulkCargoTwo" style="width: 26%;height: 210px;"></div>
+          <div id="specialTotalTwo" style="width: 26%;height: 210px;"></div>
+        </div>
       </div>
     </el-card>
   </div>
 </template>
 
 <script>
-import { monthSales } from "@/api/wel";
+import {bizCount} from "@/api/wel";
+
 export default {
   name: "basicContainer",
   data() {
     return {
       loading: false,
       tradeType: null,
-      tableData:[]
+      tableData: []
     };
   },
   created() {
     this.getSysType();
   },
+  mounted() {
+    this.getSysType();
+  },
   methods: {
+    //箱分布图表
+    rankingTwo(id, name, data) {
+      // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
+      let myChart = this.$echarts.init(document.getElementById(id));
+      // 绘制图表
+      myChart.setOption(
+          {
+            title: {
+              text: name,
+              left: 'center'
+            },
+            tooltip: {
+              trigger: 'item'
+            },
+            legend: {
+              top: 'bottom'
+            },
+            series: [
+              {
+                type: 'pie',
+                radius: '50%',
+                data: data,
+                emphasis: {
+                  itemStyle: {
+                    shadowBlur: 10,
+                    shadowOffsetX: 0,
+                    shadowColor: 'rgba(0, 0, 0, 0.5)'
+                  }
+                }
+              }
+            ]
+          }
+      );
+    },
     init() {
       this.getSysType();
     },
     getSysType() {
-      this.loading=true
-      this.loading=false
+      this.loading = true
+      bizCount({mold:1}).then(res=>{
+        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('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('specialTotalTwo', '特种车辆总量:'+res.data.data.dept.all,res.data.data.dept.list)
+      })
+      this.loading = false
     },
     //刷新按钮
     refresh() {
@@ -80,33 +112,41 @@ export default {
   padding: 0px 5px 5px 5px;
   box-sizing: border-box;
   height: 100%;
+
   ::v-deep .el-card__body {
     padding: 10px 15px;
     font-size: 14px;
   }
+
   &__card {
     width: 100%;
     height: 100%;
   }
+
   .title {
     display: flex;
     justify-content: space-between;
   }
 }
+
 .content {
   display: flex;
+
   &_item {
     margin-top: 20px;
+
     .divider {
       display: block;
       height: 0px;
       width: 12vw;
       border-top: 1px dashed #dcdfe6;
     }
+
     &_num {
       font-size: 18px;
       font-weight: 600;
     }
+
     &_text {
       color: #909399;
     }

+ 99 - 21
src/views/wel/home/landTransportation/components/sales-trend.vue

@@ -20,26 +20,70 @@
               stripe
               size="mini"
               height="420"
+              header-row-style="color: #000"
               style="width: 100%;">
             <el-table-column
-                align="center"
-                prop="billNo">
-              <template slot-scope="{row}">
-                <span class="el-button--text" style="cursor: pointer"
-                      @click="openTrack(row)">{{ row.billNo }}</span>
+              align="center"
+              label="货运日期"
+              show-overflow-tooltip
+              prop="arrivalTime"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="业务员"
+              show-overflow-tooltip
+              prop="salesmanName"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="货运地点"
+              prop="addressDetail"
+            >
+              <template slot-scope="{ row,index}">
+                <el-tooltip class="item" effect="dark" placement="top">
+                  <div v-html="ToBreak(row.addressDetail)" slot="content"></div>
+                  <div style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">{{row.addressDetail}}</div>
+                </el-tooltip>
               </template>
             </el-table-column>
             <el-table-column
-                width="120"
-                align="center"
-                prop="plateNo">
+              align="center"
+              label="提单号"
+              show-overflow-tooltip
+              prop="billNo">
               <template slot-scope="{row}">
                 <span class="el-button--text" style="cursor: pointer"
-                      @click="openTrack(row)">{{ row.plateNo }}</span>
+                      @click="openTrack(row)">{{ row.billNo }}</span>
               </template>
             </el-table-column>
             <el-table-column
+              align="center"
+              label="场站"
+              show-overflow-tooltip
+              prop="station"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="箱型箱量"
+              show-overflow-tooltip
+              prop="ctnType"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="运费"
+              show-overflow-tooltip
+              prop="landAmountD"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="其他费用(总)"
+              show-overflow-tooltip
+              prop="allFeeD"
+            ></el-table-column>
+            <el-table-column
                 width="100"
+                label="状态"
+                show-overflow-tooltip
                 prop="status">
               <template slot-scope="{row}">
                 <span v-if="row.status == 0" style="color: #E45656;">未调度</span>
@@ -52,9 +96,37 @@
               </template>
             </el-table-column>
             <el-table-column
+                align="center"
+                label="备注"
                 show-overflow-tooltip
-                prop="corpName">
-            </el-table-column>
+                prop="remarks"
+            ></el-table-column>
+<!--            <el-table-column-->
+<!--                width="120"-->
+<!--                align="center"-->
+<!--                prop="plateNo">-->
+<!--              <template slot-scope="{row}">-->
+<!--                <span class="el-button&#45;&#45;text" style="cursor: pointer"-->
+<!--                      @click="openTrack(row)">{{ row.plateNo }}</span>-->
+<!--              </template>-->
+<!--            </el-table-column>-->
+<!--            <el-table-column-->
+<!--                width="100"-->
+<!--                prop="status">-->
+<!--              <template slot-scope="{row}">-->
+<!--                <span v-if="row.status == 0" style="color: #E45656;">未调度</span>-->
+<!--                <span v-if="row.status == 1" style="color: #F56C6C;">未派车</span>-->
+<!--                <span v-if="row.status == 2" style="color: #F1A532;">未受理</span>-->
+<!--                <span v-if="row.status == 3" style="color: #53C21D;">未完工</span>-->
+<!--                <span v-if="row.status == 5" style="color: #F56C6C;">未到厂</span>-->
+<!--                <span v-if="row.status == 4" style="color: #3C9CFF;">工单关闭</span>-->
+<!--                <span v-if="row.status == 6" style="color: #3C9CFF;">已提箱</span>-->
+<!--              </template>-->
+<!--            </el-table-column>-->
+<!--            <el-table-column-->
+<!--                show-overflow-tooltip-->
+<!--                prop="corpName">-->
+<!--            </el-table-column>-->
           </el-table>
         </div>
       </div>
@@ -87,7 +159,7 @@
 
 <script>
 import {active} from "@/api/wel";
-import {gaude} from "@/api/gaude";
+import {gaude,location} from "@/api/gaude";
 export default {
   name: "basicContainer",
   props: {
@@ -112,11 +184,15 @@ export default {
   methods: {
     openTrack(row){
       this.dialogVisible = true
-      gaude({itemId: row.id}).then(res => {
-        console.log(res.data.data)
-        this.lineArr = res.data.data
-        this.initMap();
-      })
+      this.initMap();
+      // gaude({itemId: row.id,plateNo:'陕YH0008'}).then(res => {
+      //   console.log(res)
+        // this.lineArr = res.data.data
+        // this.initMap();
+      // })
+      // location({itemId: row.id,plateNo:'陕YH0008'}).then(res => {
+      //   console.log(res)
+      // })
     },
     initMap() {
       this.map = new AMap.Map("container", {
@@ -124,7 +200,6 @@ export default {
         center: [116.397428, 39.90923],
         zoom: 17
       });
-
       let icon = new AMap.Icon({
         size: new AMap.Size(52, 26), // 图标尺寸
         image: 'https://webapi.amap.com/images/car.png',
@@ -140,7 +215,6 @@ export default {
         autoRotation: true,
         angle: -15
       });
-
       // 绘制轨迹
       let polyline = new AMap.Polyline({
         map: this.map,
@@ -184,11 +258,14 @@ export default {
     },
     getsalesTrend() {
       this.loading = true;
-      active().then(res => {
+      active({status:0,mold:0}).then(res => {
         this.tableData = res.data.data
         this.loading = false;
       })
     },
+    ToBreak (val) {
+      if (val)return val.replace(/\n/g, '<br/>')
+    },
     refresh() {
       this.init()
     }
@@ -196,7 +273,8 @@ export default {
 };
 </script>
 
-<style scoped lang="css" src="../../../../../styles/demo-center.css">
+<style scoped src="../../../../../styles/demo-center.css"></style>
+<style scoped>
 #container {
   height: 80vh;
   width: 100%;

+ 8 - 5
src/views/wel/home/landTransportation/landTransportation.vue

@@ -1,9 +1,9 @@
 <template>
   <div class="container">
     <quick-launch class="item1" :sysType="sysType" />
-    <audit-data class="item2" :sysType="sysType"/>
-    <sales-reached class="item3" :sysType="sysType"/>
-    <sales-trend class="item4" :sysType="sysType"/>
+<!--    <audit-data class="item2" :sysType="sysType"/>-->
+    <sales-reached class="item2" :sysType="sysType"/>
+    <sales-trend class="item3" :sysType="sysType"/>
   </div>
 </template>
 
@@ -50,15 +50,18 @@ export default {
 .item4 {
   grid-area: d;
 }
+.item5 {
+  grid-area: e;
+}
 .container {
   display: grid;
   width: 100%;
   height: 95.5vh;
   grid-template-columns: repeat(auto-fill, 10%);
-  grid-template-rows: 140px 180px 480px 350px 400px;
+  grid-template-rows: 140px 600px 480px;
   grid-template-areas:
     "a a a a a a a a a a"
     "b b b b b b b b b b"
-    "c c c c d d d d d d"
+    "c c c c c c c c c c"
 }
 </style>

部分文件因为文件数量过多而无法显示