|
@@ -1,1081 +1,1240 @@
|
|
|
<template>
|
|
|
- <div class="home-container">
|
|
|
- <el-card class="home-container__card">
|
|
|
- <div>
|
|
|
- <div class="content" v-loading="loading" v-if="!(roleName.indexOf('司机') !== -1)">
|
|
|
- <!--散货-->
|
|
|
- <avue-crud
|
|
|
- v-if="mold == 2"
|
|
|
- :data="tableData"
|
|
|
- :key="key"
|
|
|
- :option="optionTwo"
|
|
|
- ref="crud"
|
|
|
- @refresh-change="refresh"
|
|
|
- @resetColumn="resetColumnTwo('crud','optionTwo','bulkCargoList',140.1)"
|
|
|
- @saveColumn="saveColumnTwo('crud','optionTwo','bulkCargoList',140.1)">
|
|
|
- <template slot="addressDetail" 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>
|
|
|
- <template slot="unloadingPlace" slot-scope="{ row,index}">
|
|
|
- <el-tooltip class="item" effect="dark" placement="top">
|
|
|
- <div v-html="ToBreak(row.unloadingPlace)" slot="content"></div>
|
|
|
- <div style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">{{ row.unloadingPlace }}</div>
|
|
|
- </el-tooltip>
|
|
|
- </template>
|
|
|
- <template slot="plateNo" slot-scope="{row}">
|
|
|
+ <div class="home-container">
|
|
|
+ <el-card class="home-container__card">
|
|
|
+ <div>
|
|
|
+ <div class="content" v-loading="loading" v-if="!(roleName.indexOf('司机') !== -1)">
|
|
|
+ <!--散货-->
|
|
|
+ <avue-crud
|
|
|
+ v-if="mold == 2"
|
|
|
+ :data="tableData"
|
|
|
+ :key="key"
|
|
|
+ :option="optionTwo"
|
|
|
+ ref="crud"
|
|
|
+ @refresh-change="refresh"
|
|
|
+ @resetColumn="resetColumnTwo('crud','optionTwo','bulkCargoList',140.1)"
|
|
|
+ @saveColumn="saveColumnTwo('crud','optionTwo','bulkCargoList',140.1)">
|
|
|
+ <template slot="addressDetail" 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>
|
|
|
+ <template slot="unloadingPlace" slot-scope="{ row,index}">
|
|
|
+ <el-tooltip class="item" effect="dark" placement="top">
|
|
|
+ <div v-html="ToBreak(row.unloadingPlace)" slot="content"></div>
|
|
|
+ <div style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">
|
|
|
+ {{ row.unloadingPlace }}
|
|
|
+ </div>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
+ <template slot="plateNo" slot-scope="{row}">
|
|
|
<span class="el-button--text" style="cursor: pointer"
|
|
|
@click="openTrack(row,1)">{{ row.plateNo }}</span>
|
|
|
- </template>
|
|
|
- <template slot="dispatchNumber" slot-scope="{row}">
|
|
|
+ </template>
|
|
|
+ <template slot="dispatchNumber" slot-scope="{row}">
|
|
|
<span class="el-button--text" style="cursor: pointer"
|
|
|
@click="openTrackTwo(row,0)">{{ row.dispatchNumber }}</span>
|
|
|
- </template>
|
|
|
- <template slot="menuLeft">
|
|
|
- <span @click="getsalesTrend({status: 0, mold:mold})">今日业务详情{{ mold == 1 ? '(集装箱)' : mold == 2 ? '(散货)' : mold == 3 ? '(特种)' : '' }}</span>
|
|
|
- </template>
|
|
|
- <template slot="status" slot-scope="{row}">
|
|
|
- <span v-if="row.status == 0" style="color: #3C9CFF;">未提交</span>
|
|
|
- <span v-if="row.status == 1" style="color: #ffa21e;">未调度</span>
|
|
|
- <span v-if="row.status == 2" style="color: #fb5b60;">未派车</span>
|
|
|
- <span v-if="row.status == 3" style="color: #42bc6f;">未受理</span>
|
|
|
- <span v-if="row.status == 4" style="color: #14cde1;">未完工</span>
|
|
|
- <span v-if="row.status == 5" style="color: #04421fa1;">工单关闭</span>
|
|
|
- <span v-if="row.status == 6" style="color: #F56C6C;">未到厂</span>
|
|
|
- </template>
|
|
|
- </avue-crud>
|
|
|
- <!--集装箱-->
|
|
|
- <avue-crud v-else :data="tableData" :option="option" :key="key" ref="crud" @refresh-change="refresh"
|
|
|
- @resetColumn="resetColumn"
|
|
|
- @saveColumn="saveColumn">
|
|
|
- <template slot="menuLeft">
|
|
|
- <span @click="getsalesTrend({status: 0, mold: mold})">今日业务详情{{ mold == 1 ? '(集装箱)' : mold == 2 ? '(散货)' : mold == 3 ? '(特种)' : '' }}</span>
|
|
|
- </template>
|
|
|
- <template slot="billNo" slot-scope="{row}">
|
|
|
+ </template>
|
|
|
+ <template slot="menuLeft">
|
|
|
+ <span @click="getsalesTrend({status: 0, mold:mold})">今日业务详情{{
|
|
|
+ mold == 1 ? '(集装箱)' : mold == 2 ? '(散货)' : mold == 3 ? '(特种)' : ''
|
|
|
+ }}</span>
|
|
|
+ </template>
|
|
|
+ <template slot="status" slot-scope="{row}">
|
|
|
+ <span v-if="row.status == 0" style="color: #3C9CFF;">未提交</span>
|
|
|
+ <span v-if="row.status == 1" style="color: #ffa21e;">未调度</span>
|
|
|
+ <span v-if="row.status == 2" style="color: #fb5b60;">未派车</span>
|
|
|
+ <span v-if="row.status == 3" style="color: #42bc6f;">未受理</span>
|
|
|
+ <span v-if="row.status == 4" style="color: #14cde1;">未完工</span>
|
|
|
+ <span v-if="row.status == 5" style="color: #04421fa1;">工单关闭</span>
|
|
|
+ <span v-if="row.status == 6" style="color: #F56C6C;">未到厂</span>
|
|
|
+ </template>
|
|
|
+ </avue-crud>
|
|
|
+ <!--集装箱-->
|
|
|
+ <avue-crud v-else :data="tableData" :option="option" :key="key" ref="crud" @refresh-change="refresh"
|
|
|
+ @resetColumn="resetColumn"
|
|
|
+ @saveColumn="saveColumn">
|
|
|
+ <template slot="menuLeft">
|
|
|
+ <span @click="getsalesTrend({status: 0, mold: mold})">今日业务详情{{
|
|
|
+ mold == 1 ? '(集装箱)' : mold == 2 ? '(散货)' : mold == 3 ? '(特种)' : ''
|
|
|
+ }}</span>
|
|
|
+ </template>
|
|
|
+ <template slot="billNo" slot-scope="{row}">
|
|
|
<span class="el-button--text" style="cursor: pointer"
|
|
|
@click="openTrack(row,0)">{{ row.billNo }}</span>
|
|
|
- </template>
|
|
|
- <template slot="plateNo" slot-scope="{row}">
|
|
|
+ </template>
|
|
|
+ <template slot="plateNo" slot-scope="{row}">
|
|
|
<span class="el-button--text" style="cursor: pointer"
|
|
|
@click="openTrack(row,1)">{{ row.plateNo }}</span>
|
|
|
- </template>
|
|
|
- <template slot="addressDetail" 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>
|
|
|
- <template slot="status" slot-scope="{row}">
|
|
|
- <span v-if="row.status == 0" style="color: #ffa21e;">未调度</span>
|
|
|
- <span v-if="row.status == 1" style="color: #fb5b60;">未派车</span>
|
|
|
- <span v-if="row.status == 2" style="color: #42bc6f;">未受理</span>
|
|
|
- <span v-if="row.status == 3" style="color: #14cde1;">未完工</span>
|
|
|
- <span v-if="row.status == 5" style="color: #F56C6C;">未到厂</span>
|
|
|
- <span v-if="row.status == 4" style="color: #04421fa1;">工单关闭</span>
|
|
|
- <span v-if="row.status == 6" style="color: #3C9CFF;">未提箱</span>
|
|
|
- </template>
|
|
|
- </avue-crud>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-card>
|
|
|
- <el-dialog
|
|
|
- title="实时位置"
|
|
|
- append-to-body
|
|
|
- custom-class="dialog_two"
|
|
|
- :visible.sync="dialogVisible"
|
|
|
- lock-scroll
|
|
|
- width="80%">
|
|
|
- <div id="container"></div>
|
|
|
- </el-dialog>
|
|
|
- </div>
|
|
|
+ </template>
|
|
|
+ <template slot="addressDetail" 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>
|
|
|
+ <template slot="status" slot-scope="{row}">
|
|
|
+ <span v-if="row.status == 0" style="color: #ffa21e;">未调度</span>
|
|
|
+ <span v-if="row.status == 1" style="color: #fb5b60;">未派车</span>
|
|
|
+ <span v-if="row.status == 2" style="color: #42bc6f;">未受理</span>
|
|
|
+ <span v-if="row.status == 3" style="color: #14cde1;">未完工</span>
|
|
|
+ <span v-if="row.status == 5" style="color: #F56C6C;">未到厂</span>
|
|
|
+ <span v-if="row.status == 4" style="color: #04421fa1;">工单关闭</span>
|
|
|
+ <span v-if="row.status == 6" style="color: #3C9CFF;">未提箱</span>
|
|
|
+ </template>
|
|
|
+ </avue-crud>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-card>
|
|
|
+ <el-dialog
|
|
|
+ title="实时位置"
|
|
|
+ append-to-body
|
|
|
+ custom-class="dialog_two"
|
|
|
+ :visible.sync="dialogVisible"
|
|
|
+ lock-scroll
|
|
|
+ width="80%">
|
|
|
+ <div id="container"></div>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import {active, frequency} from "@/api/wel";
|
|
|
-import {gaude, location} from "@/api/gaude";
|
|
|
-import data from "@/views/util/data";
|
|
|
+import {location} from "@/api/gaude";
|
|
|
|
|
|
export default {
|
|
|
- name: "basicContainer",
|
|
|
- props: {
|
|
|
- sysType: Number
|
|
|
- },
|
|
|
- watch:{
|
|
|
- mold:{
|
|
|
- handler(newValue, oldValue){
|
|
|
- this.reset()
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- data() {
|
|
|
- return {
|
|
|
- entrustTimer: null,
|
|
|
- roleName: localStorage.getItem("roleName").split(','),
|
|
|
- dialogVisible: false,
|
|
|
- loading: false,
|
|
|
- mold: 0,
|
|
|
- status: 1,
|
|
|
- tableData: [],
|
|
|
- map: null,
|
|
|
- infoWindow: null,
|
|
|
- marker: null,
|
|
|
- lineArr: [],
|
|
|
- key: 0,
|
|
|
- option: {},
|
|
|
- optionList: {
|
|
|
- stripe: true,
|
|
|
- index: true,
|
|
|
- menu: false,
|
|
|
- refreshBtn: true,
|
|
|
- addBtn: false,
|
|
|
- height: 390,
|
|
|
- align: 'center',
|
|
|
- column: [
|
|
|
- {
|
|
|
- label: '货运日期',
|
|
|
- prop: 'arrivalTime',
|
|
|
- type: "date",
|
|
|
- format: "yyyy-MM-dd HH:mm",
|
|
|
- index: 1,
|
|
|
- width: 150,
|
|
|
- overHidden: true,
|
|
|
- },
|
|
|
- {
|
|
|
- label: '货运地点',
|
|
|
- prop: 'addressDetail',
|
|
|
- index: 3,
|
|
|
- width: 100
|
|
|
- },
|
|
|
- {
|
|
|
- label: '票据号',
|
|
|
- prop: 'receiptNo',
|
|
|
- index: 4,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- },
|
|
|
- {
|
|
|
- label: '提单号',
|
|
|
- prop: 'billNo',
|
|
|
- index: 5,
|
|
|
- width: 140,
|
|
|
- overHidden: true,
|
|
|
- },
|
|
|
- {
|
|
|
- label: '场站',
|
|
|
- prop: 'station',
|
|
|
- index: 6,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- },
|
|
|
- {
|
|
|
- label: '箱型箱量',
|
|
|
- prop: 'ctnDetail',
|
|
|
- index: 7,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- },
|
|
|
- {
|
|
|
- label: '车队',
|
|
|
- prop: 'fleetShortName',
|
|
|
- index: 11,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- },
|
|
|
- {
|
|
|
- label: '车号',
|
|
|
- prop: 'plateNo',
|
|
|
- index: 12,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- },
|
|
|
- {
|
|
|
- label: '状态',
|
|
|
- prop: 'status',
|
|
|
- type: 'select',
|
|
|
- dicUrl: "/api/blade-system/dict-biz/dictionary?code=land_order_status",
|
|
|
- props: {
|
|
|
- label: "dictValue",
|
|
|
- value: "dictKey"
|
|
|
+ name: "basicContainer",
|
|
|
+ props: {
|
|
|
+ sysType: Number
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ mold: {
|
|
|
+ handler(newValue, oldValue) {
|
|
|
+ this.reset()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ entrustTimer: null,
|
|
|
+ roleName: localStorage.getItem("roleName").split(','),
|
|
|
+ dialogVisible: false,
|
|
|
+ loading: false,
|
|
|
+ mold: 0,
|
|
|
+ status: 1,
|
|
|
+ tableData: [],
|
|
|
+ map: null,
|
|
|
+ infoWindow: null,
|
|
|
+ marker: null,
|
|
|
+ lineArr: [],
|
|
|
+ key: 0,
|
|
|
+ option: {},
|
|
|
+ optionList: {
|
|
|
+ stripe: true,
|
|
|
+ index: true,
|
|
|
+ menu: false,
|
|
|
+ refreshBtn: true,
|
|
|
+ addBtn: false,
|
|
|
+ height: 390,
|
|
|
+ align: 'center',
|
|
|
+ column: [
|
|
|
+ {
|
|
|
+ label: '货运日期',
|
|
|
+ prop: 'arrivalTime',
|
|
|
+ type: "date",
|
|
|
+ format: "yyyy-MM-dd HH:mm",
|
|
|
+ index: 1,
|
|
|
+ width: 150,
|
|
|
+ overHidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '货运地点',
|
|
|
+ prop: 'addressDetail',
|
|
|
+ index: 3,
|
|
|
+ width: 100
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '票据号',
|
|
|
+ prop: 'receiptNo',
|
|
|
+ index: 4,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '提单号',
|
|
|
+ prop: 'billNo',
|
|
|
+ index: 5,
|
|
|
+ width: 140,
|
|
|
+ overHidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '场站',
|
|
|
+ prop: 'station',
|
|
|
+ index: 6,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '箱型箱量',
|
|
|
+ prop: 'ctnDetail',
|
|
|
+ index: 7,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '车队',
|
|
|
+ prop: 'fleetShortName',
|
|
|
+ index: 11,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '车号',
|
|
|
+ prop: 'plateNo',
|
|
|
+ index: 12,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '状态',
|
|
|
+ prop: 'status',
|
|
|
+ type: 'select',
|
|
|
+ dicUrl: "/api/blade-system/dict-biz/dictionary?code=land_order_status",
|
|
|
+ props: {
|
|
|
+ label: "dictValue",
|
|
|
+ value: "dictKey"
|
|
|
+ },
|
|
|
+ dataType: "string",
|
|
|
+ index: 13,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '备注',
|
|
|
+ prop: 'remarks',
|
|
|
+ index: 17,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ },
|
|
|
+ ]
|
|
|
},
|
|
|
- dataType: "string",
|
|
|
- index: 13,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '备注',
|
|
|
- prop: 'remarks',
|
|
|
- index: 17,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- },
|
|
|
- ]
|
|
|
- },
|
|
|
- optionTwo: {},
|
|
|
- bulkCargoList: {},
|
|
|
- // 客户
|
|
|
- bulkCargoListOne: {
|
|
|
- stripe: true,
|
|
|
- index: true,
|
|
|
- menu: false,
|
|
|
- refreshBtn: true,
|
|
|
- addBtn: false,
|
|
|
- height: 390,
|
|
|
- align: 'center',
|
|
|
- column: [{
|
|
|
- label: '货运日期',
|
|
|
- prop: 'arrivalTime',
|
|
|
- type: "date",
|
|
|
- format: "yyyy-MM-dd HH:mm",
|
|
|
- index: 1,
|
|
|
- width: 150,
|
|
|
- overHidden: true,
|
|
|
- },{
|
|
|
- label: '客户名称',
|
|
|
- prop: 'corpShortName',
|
|
|
- index: 2,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- },{
|
|
|
- label: '业务员',
|
|
|
- prop: 'salesmanName',
|
|
|
- index: 2,
|
|
|
- width: 70,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '物流运输',
|
|
|
- prop: 'dispatchDeptName',
|
|
|
- overHidden: true,
|
|
|
- index: 3,
|
|
|
- width: 80
|
|
|
- }, {
|
|
|
- label: '派车单号',
|
|
|
- width: 90,
|
|
|
- index: 4,
|
|
|
- overHidden: true,
|
|
|
- prop: 'dispatchNumber'
|
|
|
- }, {
|
|
|
- label: '合同号',
|
|
|
- width: 90,
|
|
|
- index: 5,
|
|
|
- overHidden: true,
|
|
|
- prop: 'contractNo'
|
|
|
- }, {
|
|
|
- label: '装货地点',
|
|
|
- prop: 'addressDetail',
|
|
|
- index: 6,
|
|
|
- width: 130,
|
|
|
- }, {
|
|
|
- label: '卸货地点',
|
|
|
- prop: 'unloadingPlace',
|
|
|
- index: 7,
|
|
|
- width: 130,
|
|
|
- }, {
|
|
|
- label: '车型',
|
|
|
- width: 80,
|
|
|
- index: 8,
|
|
|
- prop: 'fleetVolum'
|
|
|
- }, {
|
|
|
- label: '车队',
|
|
|
- prop: 'fleetShortName',
|
|
|
- index: 9,
|
|
|
- width: 90,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '车号',
|
|
|
- prop: 'plateNo',
|
|
|
- index: 10,
|
|
|
- width: 90,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '状态',
|
|
|
- prop: 'status',
|
|
|
- index: 11,
|
|
|
- dicUrl: "/api/blade-system/dict-biz/dictionary?code=land_order_status_two",
|
|
|
- props: {
|
|
|
- label: "dictValue",
|
|
|
- value: "dictKey"
|
|
|
- },
|
|
|
- dataType: "string",
|
|
|
- type: 'select',
|
|
|
- overHidden: true,
|
|
|
- width: 90
|
|
|
- }, {
|
|
|
- label: '应收运费',
|
|
|
- prop: 'freightCollect',
|
|
|
- index: 12,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '应收杂费',
|
|
|
- prop: 'extraAmountD',
|
|
|
- index: 13,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '备注',
|
|
|
- prop: 'remarks',
|
|
|
- index: 14,
|
|
|
- width: 130,
|
|
|
- overHidden: true,
|
|
|
- }]
|
|
|
- },
|
|
|
- // 平台
|
|
|
- bulkCargoListTwo: {
|
|
|
- stripe: true,
|
|
|
- index: true,
|
|
|
- menu: false,
|
|
|
- refreshBtn: true,
|
|
|
- addBtn: false,
|
|
|
- height: 390,
|
|
|
- align: 'center',
|
|
|
- column: [{
|
|
|
- label: '货运日期',
|
|
|
- prop: 'arrivalTime',
|
|
|
- type: "date",
|
|
|
- format: "yyyy-MM-dd HH:mm",
|
|
|
- index: 1,
|
|
|
- width: 150,
|
|
|
- overHidden: true,
|
|
|
- },{
|
|
|
- label: '客户名称',
|
|
|
- prop: 'corpShortName',
|
|
|
- index: 2,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '业务员',
|
|
|
- prop: 'salesmanName',
|
|
|
- index: 3,
|
|
|
- width: 70,
|
|
|
- overHidden: true,
|
|
|
- },{
|
|
|
- label: '运输调度',
|
|
|
- prop: 'dispatcherName',
|
|
|
- overHidden: true,
|
|
|
- index: 4,
|
|
|
- width: 80,
|
|
|
- }, {
|
|
|
- label: '派车单号',
|
|
|
- width: 90,
|
|
|
- index: 5,
|
|
|
- overHidden: true,
|
|
|
- prop: 'dispatchNumber'
|
|
|
- }, {
|
|
|
- label: '合同号',
|
|
|
- width: 90,
|
|
|
- index: 6,
|
|
|
- overHidden: true,
|
|
|
- prop: 'contractNo'
|
|
|
- }, {
|
|
|
- label: '装货地点',
|
|
|
- prop: 'addressDetail',
|
|
|
- index: 7,
|
|
|
- width: 130,
|
|
|
- }, {
|
|
|
- label: '卸货地点',
|
|
|
- prop: 'unloadingPlace',
|
|
|
- index: 8,
|
|
|
- width: 130,
|
|
|
- }, {
|
|
|
- label: '车型',
|
|
|
- width: 80,
|
|
|
- index: 9,
|
|
|
- prop: 'fleetVolum'
|
|
|
- }, {
|
|
|
- label: '车队',
|
|
|
- prop: 'fleetShortName',
|
|
|
- index: 10,
|
|
|
- width: 90,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '车号',
|
|
|
- prop: 'plateNo',
|
|
|
- index: 11,
|
|
|
- width: 90,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '状态',
|
|
|
- prop: 'status',
|
|
|
- index: 12,
|
|
|
- dicUrl: "/api/blade-system/dict-biz/dictionary?code=land_order_status_two",
|
|
|
- props: {
|
|
|
- label: "dictValue",
|
|
|
- value: "dictKey"
|
|
|
- },
|
|
|
- dataType: "string",
|
|
|
- type: 'select',
|
|
|
- overHidden: true,
|
|
|
- width: 90
|
|
|
- }, {
|
|
|
- label: '应收运费',
|
|
|
- prop: 'freightCollect',
|
|
|
- index: 13,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '应付运费',
|
|
|
- prop: 'landAmountC',
|
|
|
- index: 14,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '应收杂费',
|
|
|
- prop: 'extraAmountD',
|
|
|
- index: 15,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- },{
|
|
|
- label: '应付杂费',
|
|
|
- prop: 'extraAmountC',
|
|
|
- index: 16,
|
|
|
- width: 100,
|
|
|
- overHidden: true
|
|
|
- }, {
|
|
|
- label: '备注',
|
|
|
- prop: 'remarks',
|
|
|
- index: 17,
|
|
|
- width: 130,
|
|
|
- overHidden: true,
|
|
|
- }]
|
|
|
- },
|
|
|
- // 车队
|
|
|
- bulkCargoListThree: {
|
|
|
- stripe: true,
|
|
|
- index: true,
|
|
|
- menu: false,
|
|
|
- refreshBtn: true,
|
|
|
- addBtn: false,
|
|
|
- height: 390,
|
|
|
- align: 'center',
|
|
|
- column: [{
|
|
|
- label: '货运日期',
|
|
|
- prop: 'arrivalTime',
|
|
|
- type: "date",
|
|
|
- format: "yyyy-MM-dd HH:mm",
|
|
|
- index: 1,
|
|
|
- width: 150,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '物流运输',
|
|
|
- prop: 'dispatchDeptName',
|
|
|
- overHidden: true,
|
|
|
- index: 2,
|
|
|
- width: 80
|
|
|
- },{
|
|
|
- label: '运输调度',
|
|
|
- prop: 'dispatcherName',
|
|
|
- overHidden: true,
|
|
|
- index: 3,
|
|
|
- width: 70,
|
|
|
- }, {
|
|
|
- label: '派车单号',
|
|
|
- width: 90,
|
|
|
- index: 4,
|
|
|
- overHidden: true,
|
|
|
- prop: 'dispatchNumber'
|
|
|
- }, {
|
|
|
- label: '合同号',
|
|
|
- width: 90,
|
|
|
- index: 5,
|
|
|
- overHidden: true,
|
|
|
- prop: 'contractNo'
|
|
|
- }, {
|
|
|
- label: '装货地点',
|
|
|
- prop: 'addressDetail',
|
|
|
- index: 6,
|
|
|
- width: 130,
|
|
|
- }, {
|
|
|
- label: '卸货地点',
|
|
|
- prop: 'unloadingPlace',
|
|
|
- index: 7,
|
|
|
- width: 130,
|
|
|
- }, {
|
|
|
- label: '车型',
|
|
|
- width: 80,
|
|
|
- index: 8,
|
|
|
- prop: 'fleetVolum'
|
|
|
- }, {
|
|
|
- label: '车队',
|
|
|
- prop: 'fleetShortName',
|
|
|
- index: 9,
|
|
|
- width: 90,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '车号',
|
|
|
- prop: 'plateNo',
|
|
|
- index: 10,
|
|
|
- width: 90,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '状态',
|
|
|
- prop: 'status',
|
|
|
- index: 11,
|
|
|
- dicUrl: "/api/blade-system/dict-biz/dictionary?code=land_order_status_two",
|
|
|
- props: {
|
|
|
- label: "dictValue",
|
|
|
- value: "dictKey"
|
|
|
- },
|
|
|
- dataType: "string",
|
|
|
- type: 'select',
|
|
|
- overHidden: true,
|
|
|
- width: 90
|
|
|
- }, {
|
|
|
- label: '应付运费',
|
|
|
- prop: 'freightPay',
|
|
|
- index: 12,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- },{
|
|
|
- label: '应付杂费',
|
|
|
- prop: 'extraAmountC',
|
|
|
- index: 13,
|
|
|
- width: 100,
|
|
|
- overHidden: true
|
|
|
- }, {
|
|
|
- label: '备注',
|
|
|
- prop: 'remarks',
|
|
|
- index: 14,
|
|
|
- width: 130,
|
|
|
- overHidden: true,
|
|
|
- }]
|
|
|
- },
|
|
|
- };
|
|
|
- },
|
|
|
- async mounted() {
|
|
|
- this.option = await this.getColumnData(this.getColumnName(140), this.optionList);
|
|
|
- if (this.roleName.indexOf('客户') !== -1) {
|
|
|
- this.bulkCargoList = this.bulkCargoListOne
|
|
|
- } else if (this.roleName.indexOf('平台') !== -1||this.roleName.indexOf('admin') !== -1) {
|
|
|
- this.bulkCargoList = this.bulkCargoListTwo
|
|
|
- } else if (this.roleName.indexOf('车队') !== -1) {
|
|
|
- this.bulkCargoList = this.bulkCargoListThree
|
|
|
- } else {
|
|
|
- this.bulkCargoList = this.bulkCargoListOne
|
|
|
- }
|
|
|
- this.optionTwo = await this.getColumnData(this.getColumnName(140.1), this.bulkCargoList);
|
|
|
- this.key++
|
|
|
+ optionTwo: {},
|
|
|
+ bulkCargoList: {},
|
|
|
+ // 客户
|
|
|
+ bulkCargoListOne: {
|
|
|
+ stripe: true,
|
|
|
+ index: true,
|
|
|
+ menu: false,
|
|
|
+ refreshBtn: true,
|
|
|
+ addBtn: false,
|
|
|
+ height: 390,
|
|
|
+ align: 'center',
|
|
|
+ column: [{
|
|
|
+ label: '货运日期',
|
|
|
+ prop: 'arrivalTime',
|
|
|
+ type: "date",
|
|
|
+ format: "yyyy-MM-dd HH:mm",
|
|
|
+ index: 1,
|
|
|
+ width: 150,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '客户名称',
|
|
|
+ prop: 'corpShortName',
|
|
|
+ index: 2,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '业务员',
|
|
|
+ prop: 'salesmanName',
|
|
|
+ index: 2,
|
|
|
+ width: 70,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '物流运输',
|
|
|
+ prop: 'dispatchDeptName',
|
|
|
+ overHidden: true,
|
|
|
+ index: 3,
|
|
|
+ width: 80
|
|
|
+ }, {
|
|
|
+ label: '派车单号',
|
|
|
+ width: 90,
|
|
|
+ index: 4,
|
|
|
+ overHidden: true,
|
|
|
+ prop: 'dispatchNumber'
|
|
|
+ }, {
|
|
|
+ label: '合同号',
|
|
|
+ width: 90,
|
|
|
+ index: 5,
|
|
|
+ overHidden: true,
|
|
|
+ prop: 'contractNo'
|
|
|
+ }, {
|
|
|
+ label: '装货地点',
|
|
|
+ prop: 'addressDetail',
|
|
|
+ index: 6,
|
|
|
+ width: 130,
|
|
|
+ }, {
|
|
|
+ label: '卸货地点',
|
|
|
+ prop: 'unloadingPlace',
|
|
|
+ index: 7,
|
|
|
+ width: 130,
|
|
|
+ }, {
|
|
|
+ label: '车型',
|
|
|
+ width: 80,
|
|
|
+ index: 8,
|
|
|
+ prop: 'fleetVolum'
|
|
|
+ }, {
|
|
|
+ label: '车队',
|
|
|
+ prop: 'fleetShortName',
|
|
|
+ index: 9,
|
|
|
+ width: 90,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '车号',
|
|
|
+ prop: 'plateNo',
|
|
|
+ index: 10,
|
|
|
+ width: 90,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '状态',
|
|
|
+ prop: 'status',
|
|
|
+ index: 11,
|
|
|
+ dicUrl: "/api/blade-system/dict-biz/dictionary?code=land_order_status_two",
|
|
|
+ props: {
|
|
|
+ label: "dictValue",
|
|
|
+ value: "dictKey"
|
|
|
+ },
|
|
|
+ dataType: "string",
|
|
|
+ type: 'select',
|
|
|
+ overHidden: true,
|
|
|
+ width: 90
|
|
|
+ }, {
|
|
|
+ label: '应收运费',
|
|
|
+ prop: 'freightCollect',
|
|
|
+ index: 12,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '应收杂费',
|
|
|
+ prop: 'extraAmountD',
|
|
|
+ index: 13,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '备注',
|
|
|
+ prop: 'remarks',
|
|
|
+ index: 14,
|
|
|
+ width: 130,
|
|
|
+ overHidden: true,
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ // 平台
|
|
|
+ bulkCargoListTwo: {
|
|
|
+ stripe: true,
|
|
|
+ index: true,
|
|
|
+ menu: false,
|
|
|
+ refreshBtn: true,
|
|
|
+ addBtn: false,
|
|
|
+ height: 390,
|
|
|
+ align: 'center',
|
|
|
+ column: [{
|
|
|
+ label: '货运日期',
|
|
|
+ prop: 'arrivalTime',
|
|
|
+ type: "date",
|
|
|
+ format: "yyyy-MM-dd HH:mm",
|
|
|
+ index: 1,
|
|
|
+ width: 150,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '客户名称',
|
|
|
+ prop: 'corpShortName',
|
|
|
+ index: 2,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '业务员',
|
|
|
+ prop: 'salesmanName',
|
|
|
+ index: 3,
|
|
|
+ width: 70,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '运输调度',
|
|
|
+ prop: 'dispatcherName',
|
|
|
+ overHidden: true,
|
|
|
+ index: 4,
|
|
|
+ width: 80,
|
|
|
+ }, {
|
|
|
+ label: '派车单号',
|
|
|
+ width: 90,
|
|
|
+ index: 5,
|
|
|
+ overHidden: true,
|
|
|
+ prop: 'dispatchNumber'
|
|
|
+ }, {
|
|
|
+ label: '合同号',
|
|
|
+ width: 90,
|
|
|
+ index: 6,
|
|
|
+ overHidden: true,
|
|
|
+ prop: 'contractNo'
|
|
|
+ }, {
|
|
|
+ label: '装货地点',
|
|
|
+ prop: 'addressDetail',
|
|
|
+ index: 7,
|
|
|
+ width: 130,
|
|
|
+ }, {
|
|
|
+ label: '卸货地点',
|
|
|
+ prop: 'unloadingPlace',
|
|
|
+ index: 8,
|
|
|
+ width: 130,
|
|
|
+ }, {
|
|
|
+ label: '车型',
|
|
|
+ width: 80,
|
|
|
+ index: 9,
|
|
|
+ prop: 'fleetVolum'
|
|
|
+ }, {
|
|
|
+ label: '车队',
|
|
|
+ prop: 'fleetShortName',
|
|
|
+ index: 10,
|
|
|
+ width: 90,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '车号',
|
|
|
+ prop: 'plateNo',
|
|
|
+ index: 11,
|
|
|
+ width: 90,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '状态',
|
|
|
+ prop: 'status',
|
|
|
+ index: 12,
|
|
|
+ dicUrl: "/api/blade-system/dict-biz/dictionary?code=land_order_status_two",
|
|
|
+ props: {
|
|
|
+ label: "dictValue",
|
|
|
+ value: "dictKey"
|
|
|
+ },
|
|
|
+ dataType: "string",
|
|
|
+ type: 'select',
|
|
|
+ overHidden: true,
|
|
|
+ width: 90
|
|
|
+ }, {
|
|
|
+ label: '应收运费',
|
|
|
+ prop: 'freightCollect',
|
|
|
+ index: 13,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '应付运费',
|
|
|
+ prop: 'landAmountC',
|
|
|
+ index: 14,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '应收杂费',
|
|
|
+ prop: 'extraAmountD',
|
|
|
+ index: 15,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '应付杂费',
|
|
|
+ prop: 'extraAmountC',
|
|
|
+ index: 16,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true
|
|
|
+ }, {
|
|
|
+ label: '备注',
|
|
|
+ prop: 'remarks',
|
|
|
+ index: 17,
|
|
|
+ width: 130,
|
|
|
+ overHidden: true,
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ // 车队
|
|
|
+ bulkCargoListThree: {
|
|
|
+ stripe: true,
|
|
|
+ index: true,
|
|
|
+ menu: false,
|
|
|
+ refreshBtn: true,
|
|
|
+ addBtn: false,
|
|
|
+ height: 390,
|
|
|
+ align: 'center',
|
|
|
+ column: [{
|
|
|
+ label: '货运日期',
|
|
|
+ prop: 'arrivalTime',
|
|
|
+ type: "date",
|
|
|
+ format: "yyyy-MM-dd HH:mm",
|
|
|
+ index: 1,
|
|
|
+ width: 150,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '物流运输',
|
|
|
+ prop: 'dispatchDeptName',
|
|
|
+ overHidden: true,
|
|
|
+ index: 2,
|
|
|
+ width: 80
|
|
|
+ }, {
|
|
|
+ label: '运输调度',
|
|
|
+ prop: 'dispatcherName',
|
|
|
+ overHidden: true,
|
|
|
+ index: 3,
|
|
|
+ width: 70,
|
|
|
+ }, {
|
|
|
+ label: '派车单号',
|
|
|
+ width: 90,
|
|
|
+ index: 4,
|
|
|
+ overHidden: true,
|
|
|
+ prop: 'dispatchNumber'
|
|
|
+ }, {
|
|
|
+ label: '合同号',
|
|
|
+ width: 90,
|
|
|
+ index: 5,
|
|
|
+ overHidden: true,
|
|
|
+ prop: 'contractNo'
|
|
|
+ }, {
|
|
|
+ label: '装货地点',
|
|
|
+ prop: 'addressDetail',
|
|
|
+ index: 6,
|
|
|
+ width: 130,
|
|
|
+ }, {
|
|
|
+ label: '卸货地点',
|
|
|
+ prop: 'unloadingPlace',
|
|
|
+ index: 7,
|
|
|
+ width: 130,
|
|
|
+ }, {
|
|
|
+ label: '车型',
|
|
|
+ width: 80,
|
|
|
+ index: 8,
|
|
|
+ prop: 'fleetVolum'
|
|
|
+ }, {
|
|
|
+ label: '车队',
|
|
|
+ prop: 'fleetShortName',
|
|
|
+ index: 9,
|
|
|
+ width: 90,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '车号',
|
|
|
+ prop: 'plateNo',
|
|
|
+ index: 10,
|
|
|
+ width: 90,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '状态',
|
|
|
+ prop: 'status',
|
|
|
+ index: 11,
|
|
|
+ dicUrl: "/api/blade-system/dict-biz/dictionary?code=land_order_status_two",
|
|
|
+ props: {
|
|
|
+ label: "dictValue",
|
|
|
+ value: "dictKey"
|
|
|
+ },
|
|
|
+ dataType: "string",
|
|
|
+ type: 'select',
|
|
|
+ overHidden: true,
|
|
|
+ width: 90
|
|
|
+ }, {
|
|
|
+ label: '应付运费',
|
|
|
+ prop: 'freightPay',
|
|
|
+ index: 12,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '应付杂费',
|
|
|
+ prop: 'extraAmountC',
|
|
|
+ index: 13,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true
|
|
|
+ }, {
|
|
|
+ label: '备注',
|
|
|
+ prop: 'remarks',
|
|
|
+ index: 14,
|
|
|
+ width: 130,
|
|
|
+ overHidden: true,
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ };
|
|
|
+ },
|
|
|
+ async mounted() {
|
|
|
+ this.option = await this.getColumnData(this.getColumnName(140), this.optionList);
|
|
|
+ if (this.roleName.indexOf('客户') !== -1) {
|
|
|
+ this.bulkCargoList = this.bulkCargoListOne
|
|
|
+ } else if (this.roleName.indexOf('平台') !== -1 || this.roleName.indexOf('admin') !== -1) {
|
|
|
+ this.bulkCargoList = this.bulkCargoListTwo
|
|
|
+ } else if (this.roleName.indexOf('车队') !== -1) {
|
|
|
+ this.bulkCargoList = this.bulkCargoListThree
|
|
|
+ } else {
|
|
|
+ this.bulkCargoList = this.bulkCargoListOne
|
|
|
+ }
|
|
|
+ this.optionTwo = await this.getColumnData(this.getColumnName(140.1), this.bulkCargoList);
|
|
|
+ this.key++
|
|
|
|
|
|
|
|
|
- let menuobj = {status:0, mold:1,}
|
|
|
- //从缓存中获取所有路由信息 判断菜单权限
|
|
|
- let menu = JSON.parse(localStorage.getItem("saber-menuAll")).content
|
|
|
- for (let item of menu){
|
|
|
- if (item.id == '1499196328461225986') {
|
|
|
- menuobj.mold = 1
|
|
|
- break;
|
|
|
- }else {
|
|
|
- if (item.id == '1673857442015977474') {
|
|
|
- menuobj.mold = 3
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- await this.getsalesTrend(menuobj)
|
|
|
+ let menuobj = {status: 0, mold: 1,}
|
|
|
+ //从缓存中获取所有路由信息 判断菜单权限
|
|
|
+ let menu = JSON.parse(localStorage.getItem("saber-menuAll")).content
|
|
|
+ for (let item of menu) {
|
|
|
+ if (item.id == '1499196328461225986') {
|
|
|
+ menuobj.mold = 1
|
|
|
+ break;
|
|
|
+ } else {
|
|
|
+ if (item.id == '1673857442015977474') {
|
|
|
+ menuobj.mold = 3
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ await this.getsalesTrend(menuobj)
|
|
|
|
|
|
|
|
|
- this.init()
|
|
|
+ this.init()
|
|
|
|
|
|
- if (this.roleName.indexOf('平台') !== -1 || this.roleName.indexOf('总调度') !== -1 || this.roleName.indexOf('分管调度') !== -1 || this.roleName.indexOf('admin') !== -1) {
|
|
|
- for (let item of this.option.column) {
|
|
|
- if (item.prop === 'extraAmountC') return this.reset()
|
|
|
- }
|
|
|
- this.option.column.push({
|
|
|
- label: '客户名称',
|
|
|
- prop: 'corpShortName',
|
|
|
- index: 2,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- },{
|
|
|
- label: '业务员',
|
|
|
- prop: 'salesmanName',
|
|
|
- index: 2,
|
|
|
- width: 60,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '揽货员',
|
|
|
- prop: 'pickUpGoodsUserName',
|
|
|
- index: 2,
|
|
|
- width: 60,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '运输调度',
|
|
|
- prop: 'dispatcherName',
|
|
|
- overHidden: true,
|
|
|
- index: 2,
|
|
|
- width: 100,
|
|
|
- },
|
|
|
- {
|
|
|
- label: '应付杂费',
|
|
|
- prop: 'extraAmountC',
|
|
|
- index: 14,
|
|
|
- width: 100,
|
|
|
- overHidden: true
|
|
|
- },
|
|
|
- {
|
|
|
- label: '应收运费',
|
|
|
- prop: 'landAmountD',
|
|
|
- index: 13,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- },
|
|
|
- {
|
|
|
- label: '应收杂费',
|
|
|
- prop: 'extraAmountD',
|
|
|
- index: 13,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- })
|
|
|
- this.reset()
|
|
|
- }
|
|
|
- if (this.roleName.indexOf('车队') !== -1) {
|
|
|
- for (let item of this.option.column) {
|
|
|
- if (item.prop === 'extraAmountC') return
|
|
|
- }
|
|
|
- this.option.column.push(
|
|
|
- {
|
|
|
- label: '物流运输',
|
|
|
- prop: 'dispatchDeptName',
|
|
|
- overHidden: true,
|
|
|
- index: 1,
|
|
|
- width: 100
|
|
|
- }, {
|
|
|
- label: '运输调度',
|
|
|
- prop: 'dispatcherName',
|
|
|
- overHidden: true,
|
|
|
- index: 1,
|
|
|
- width: 100,
|
|
|
- }, {
|
|
|
- label: '应付运费',
|
|
|
- prop: 'landAmountC',
|
|
|
- index: 13,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '应付杂费',
|
|
|
- prop: 'extraAmountC',
|
|
|
- index: 13,
|
|
|
- width: 100,
|
|
|
- overHidden: true
|
|
|
- }
|
|
|
- )
|
|
|
- }
|
|
|
- if (this.roleName.indexOf('客户') !== -1) {
|
|
|
- for (let item of this.option.column) {
|
|
|
- if (item.prop === 'salesmanName') return
|
|
|
- }
|
|
|
- this.option.column.push(
|
|
|
- {
|
|
|
- label: '客户名称',
|
|
|
- prop: 'corpShortName',
|
|
|
- index: 2,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- },{
|
|
|
- label: '业务员',
|
|
|
- prop: 'salesmanName',
|
|
|
- index: 2,
|
|
|
- width: 60,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '物流运输',
|
|
|
- prop: 'dispatchDeptName',
|
|
|
- overHidden: true,
|
|
|
- index: 2,
|
|
|
- width: 100
|
|
|
- },
|
|
|
- {
|
|
|
- label: '应收运费',
|
|
|
- prop: 'landAmountD',
|
|
|
- index: 14,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- },
|
|
|
- {
|
|
|
- label: '应收杂费',
|
|
|
- prop: 'extraAmountD',
|
|
|
- index: 15,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- }
|
|
|
- )
|
|
|
- }
|
|
|
- },
|
|
|
- beforeDestroy() {
|
|
|
- this.map && this.map.destroy();
|
|
|
- clearInterval(this.entrustTimer); //关闭
|
|
|
- },
|
|
|
- methods: {
|
|
|
- reset(){
|
|
|
- if (this.roleName.indexOf('调度中心业务员') !== -1 || this.roleName.indexOf('调度中心经理') !== -1){
|
|
|
- if (this.findObject(this.option.column, "landAmountD")){
|
|
|
- this.findObject(this.option.column, "landAmountD").hide = true
|
|
|
- this.findObject(this.option.column, "landAmountD").showColumn = false
|
|
|
- }
|
|
|
- if (this.findObject(this.option.column, "extraAmountD")){
|
|
|
- this.findObject(this.option.column, "extraAmountD").hide = true
|
|
|
- this.findObject(this.option.column, "extraAmountD").showColumn = false
|
|
|
- }
|
|
|
- if(this.findObject(this.optionTwo.column, "freightCollect")) {
|
|
|
- this.findObject(this.optionTwo.column, "freightCollect").hide = true
|
|
|
- this.findObject(this.optionTwo.column, "freightCollect").showColumn = false
|
|
|
- }
|
|
|
- if (this.findObject(this.optionTwo.column, "extraAmountD")){
|
|
|
- this.findObject(this.optionTwo.column, "extraAmountD").hide = true
|
|
|
- this.findObject(this.optionTwo.column, "extraAmountD").showColumn = false
|
|
|
- }
|
|
|
- }
|
|
|
- this.key++
|
|
|
- },
|
|
|
- //自定义列保存
|
|
|
- async saveColumn() {
|
|
|
- /**
|
|
|
- * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
|
|
|
- * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
|
|
|
- * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
|
|
|
- */
|
|
|
- const inSave = await this.saveColumnData(this.getColumnName(140), this.option);
|
|
|
- if (inSave) {
|
|
|
- this.$message.success("保存成功");
|
|
|
- //关闭窗口
|
|
|
- this.$refs.crud.$refs.dialogColumn.columnBox = false;
|
|
|
- }
|
|
|
- },
|
|
|
- //自定义列重置
|
|
|
- async resetColumn() {
|
|
|
- this.option = this.optionList;
|
|
|
- const inSave = await this.delColumnData(this.getColumnName(140), this.optionList);
|
|
|
- if (inSave) {
|
|
|
- this.$message.success("重置成功");
|
|
|
- //关闭窗口
|
|
|
- this.$refs.crud.$refs.dialogColumn.columnBox = false;
|
|
|
- this.key++
|
|
|
- if (this.roleName.indexOf('平台') !== -1 || this.roleName.indexOf('总调度') !== -1 || this.roleName.indexOf('分管调度') !== -1 || this.roleName.indexOf('大件调度') !== -1) {
|
|
|
- for (let item of this.option.column) {
|
|
|
- if (item.prop === 'extraAmountC') return this.reset()
|
|
|
- }
|
|
|
- this.option.column.push(
|
|
|
- {
|
|
|
- label: '客户名称',
|
|
|
- prop: 'corpShortName',
|
|
|
- index: 2,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- },{
|
|
|
- label: '业务员',
|
|
|
- prop: 'salesmanName',
|
|
|
- index: 2,
|
|
|
- width: 60,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '运输调度',
|
|
|
- prop: 'dispatcherName',
|
|
|
- overHidden: true,
|
|
|
- index: 2,
|
|
|
- width: 100,
|
|
|
- },
|
|
|
- {
|
|
|
- label: '应付杂费',
|
|
|
- prop: 'extraAmountC',
|
|
|
- index: 14,
|
|
|
- width: 100,
|
|
|
- overHidden: true
|
|
|
- },
|
|
|
- {
|
|
|
- label: '应收运费',
|
|
|
- prop: 'landAmountD',
|
|
|
- index: 13,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- },
|
|
|
- {
|
|
|
- label: '应收杂费',
|
|
|
- prop: 'extraAmountD',
|
|
|
- index: 13,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- }
|
|
|
- )
|
|
|
- this.reset()
|
|
|
+ if (this.roleName.indexOf('平台') !== -1 || this.roleName.indexOf('总调度') !== -1 || this.roleName.indexOf('分管调度') !== -1 || this.roleName.indexOf('admin') !== -1) {
|
|
|
+ for (let item of this.option.column) {
|
|
|
+ if (item.prop === 'extraAmountC') return this.reset()
|
|
|
+ }
|
|
|
+ this.option.column.push({
|
|
|
+ label: '客户名称',
|
|
|
+ prop: 'corpShortName',
|
|
|
+ index: 2,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '业务员',
|
|
|
+ prop: 'salesmanName',
|
|
|
+ index: 2,
|
|
|
+ width: 60,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '揽货员',
|
|
|
+ prop: 'pickUpGoodsUserName',
|
|
|
+ index: 2,
|
|
|
+ width: 60,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '运输调度',
|
|
|
+ prop: 'dispatcherName',
|
|
|
+ overHidden: true,
|
|
|
+ index: 2,
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '应付杂费',
|
|
|
+ prop: 'extraAmountC',
|
|
|
+ index: 14,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '应收运费',
|
|
|
+ prop: 'landAmountD',
|
|
|
+ index: 13,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '应收杂费',
|
|
|
+ prop: 'extraAmountD',
|
|
|
+ index: 13,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ })
|
|
|
+ this.reset()
|
|
|
}
|
|
|
if (this.roleName.indexOf('车队') !== -1) {
|
|
|
- for (let item of this.option.column) {
|
|
|
- if (item.prop === 'extraAmountC') return
|
|
|
- }
|
|
|
- this.option.column.push(
|
|
|
- {
|
|
|
- label: '物流运输',
|
|
|
- prop: 'dispatchDeptName',
|
|
|
- overHidden: true,
|
|
|
- index: 1,
|
|
|
- width: 100
|
|
|
- }, {
|
|
|
- label: '运输调度',
|
|
|
- prop: 'dispatcherName',
|
|
|
- overHidden: true,
|
|
|
- index: 1,
|
|
|
- width: 100,
|
|
|
- }, {
|
|
|
- label: '应付运费',
|
|
|
- prop: 'landAmountC',
|
|
|
- index: 13,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '应付杂费',
|
|
|
- prop: 'extraAmountC',
|
|
|
- index: 13,
|
|
|
- width: 100,
|
|
|
- overHidden: true
|
|
|
- }
|
|
|
- )
|
|
|
+ for (let item of this.option.column) {
|
|
|
+ if (item.prop === 'extraAmountC') return
|
|
|
+ }
|
|
|
+ this.option.column.push(
|
|
|
+ {
|
|
|
+ label: '物流运输',
|
|
|
+ prop: 'dispatchDeptName',
|
|
|
+ overHidden: true,
|
|
|
+ index: 1,
|
|
|
+ width: 100
|
|
|
+ }, {
|
|
|
+ label: '运输调度',
|
|
|
+ prop: 'dispatcherName',
|
|
|
+ overHidden: true,
|
|
|
+ index: 1,
|
|
|
+ width: 100,
|
|
|
+ }, {
|
|
|
+ label: '应付运费',
|
|
|
+ prop: 'landAmountC',
|
|
|
+ index: 13,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '应付杂费',
|
|
|
+ prop: 'extraAmountC',
|
|
|
+ index: 13,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true
|
|
|
+ }
|
|
|
+ )
|
|
|
}
|
|
|
if (this.roleName.indexOf('客户') !== -1) {
|
|
|
- for (let item of this.option.column) {
|
|
|
- if (item.prop === 'salesmanName') return
|
|
|
- }
|
|
|
- this.option.column.push(
|
|
|
- {
|
|
|
- label: '客户名称',
|
|
|
- prop: 'corpShortName',
|
|
|
- index: 2,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- },{
|
|
|
- label: '业务员',
|
|
|
- prop: 'salesmanName',
|
|
|
- index: 2,
|
|
|
- width: 60,
|
|
|
- overHidden: true,
|
|
|
- }, {
|
|
|
- label: '物流运输',
|
|
|
- prop: 'dispatchDeptName',
|
|
|
- overHidden: true,
|
|
|
- index: 2,
|
|
|
- width: 100
|
|
|
- },
|
|
|
-
|
|
|
- {
|
|
|
- label: '应收运费',
|
|
|
- prop: 'landAmountD',
|
|
|
- index: 14,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- },
|
|
|
- {
|
|
|
- label: '应收杂费',
|
|
|
- prop: 'extraAmountD',
|
|
|
- index: 15,
|
|
|
- width: 100,
|
|
|
- overHidden: true,
|
|
|
- }
|
|
|
- )
|
|
|
+ for (let item of this.option.column) {
|
|
|
+ if (item.prop === 'salesmanName') return
|
|
|
+ }
|
|
|
+ this.option.column.push(
|
|
|
+ {
|
|
|
+ label: '客户名称',
|
|
|
+ prop: 'corpShortName',
|
|
|
+ index: 2,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '业务员',
|
|
|
+ prop: 'salesmanName',
|
|
|
+ index: 2,
|
|
|
+ width: 60,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '物流运输',
|
|
|
+ prop: 'dispatchDeptName',
|
|
|
+ overHidden: true,
|
|
|
+ index: 2,
|
|
|
+ width: 100
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '应收运费',
|
|
|
+ prop: 'landAmountD',
|
|
|
+ index: 14,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '应收杂费',
|
|
|
+ prop: 'extraAmountD',
|
|
|
+ index: 15,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }
|
|
|
+ )
|
|
|
}
|
|
|
-
|
|
|
- if (this.mold == 3) {
|
|
|
- this.findObject(this.option.column, "billNo").label = "业务号"
|
|
|
- this.findObject(this.option.column, "ctnDetail").label = "车型车数"
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- //自定义列保存
|
|
|
- async saveColumnTwo(ref, option, optionBack, code) {
|
|
|
- /**
|
|
|
- * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
|
|
|
- * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
|
|
|
- * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
|
|
|
- */
|
|
|
- const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
|
|
|
- if (inSave) {
|
|
|
- this.$message.success("保存成功");
|
|
|
- //关闭窗口
|
|
|
- this.$refs[ref].$refs.dialogColumn.columnBox = false;
|
|
|
- }
|
|
|
- },
|
|
|
- //自定义列重置
|
|
|
- async resetColumnTwo(ref, option, optionBack, code) {
|
|
|
- this[option] = this[optionBack];
|
|
|
- const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
|
|
|
- if (inSave) {
|
|
|
- this.$message.success("重置成功");
|
|
|
- this.$refs[ref].$refs.dialogColumn.columnBox = false;
|
|
|
- this.reset()
|
|
|
- }
|
|
|
- },
|
|
|
- openTrackTwo(row, index){
|
|
|
- if (index == 0){
|
|
|
- this.$router.push({
|
|
|
- path: '/landTransportation/bulkCargo/index',
|
|
|
- query: {id: row.orderId},
|
|
|
- });
|
|
|
- }
|
|
|
},
|
|
|
- openTrack(row, index) {
|
|
|
- if (index == 0) {
|
|
|
- this.$router.push({
|
|
|
- path: '/landTransportation/placeAnOrder/index',
|
|
|
- query: {id: row.orderId},
|
|
|
- });
|
|
|
- } else {
|
|
|
- // gaude({itemId: row.itemId, plateNo: row.plateNo, tenantId: '234557',color:'2'}).then(res => {
|
|
|
- // this.lineArr = res.data.data
|
|
|
- // this.dialogVisible = true
|
|
|
- // let this_ = this
|
|
|
- // setTimeout(function () {
|
|
|
- // this_.initMap();
|
|
|
- // }, 100)
|
|
|
- // })
|
|
|
- location({itemId: row.itemId, plateNo: row.plateNo, tenantId: '234557', color: '2'}).then(res => {
|
|
|
- this.dialogVisible = true
|
|
|
- let this_ = this
|
|
|
- setTimeout(function () {
|
|
|
- this_.initMap(res.data.data, row.plateNo);
|
|
|
- }, 1000)
|
|
|
- })
|
|
|
- }
|
|
|
+ beforeDestroy() {
|
|
|
+ this.map && this.map.destroy();
|
|
|
+ clearInterval(this.entrustTimer); //关闭
|
|
|
},
|
|
|
- markerClick(e) {
|
|
|
- this.infoWindow.setContent(e.target.content);
|
|
|
- this.infoWindow.open(this.map, e.target.getPosition());
|
|
|
- },
|
|
|
- initMap(data, plateNo) {
|
|
|
- this.map = new AMap.Map("container", {resizeEnable: true});
|
|
|
- this.infoWindow = new AMap.InfoWindow({
|
|
|
- ffset: new AMap.Pixel(0, -30),
|
|
|
- offset: new AMap.Pixel(0, -30)
|
|
|
- });
|
|
|
- let icon = new AMap.Icon({
|
|
|
- size: new AMap.Size(52, 26), // 图标尺寸
|
|
|
- image: 'https://trade.tubaosoft.com/file/bladex/000000/1123598821738675201/che.png',
|
|
|
- imageSize: new AMap.Size(52, 26), // 根据所设置的大小拉伸或压缩图片
|
|
|
- });
|
|
|
- this.marker = new AMap.Marker({
|
|
|
- position: data.location,
|
|
|
- map: this.map,
|
|
|
- icon: icon,
|
|
|
- markerMeta: new AMap.Size(28, 28),
|
|
|
- offset: new AMap.Pixel(-26, -15),
|
|
|
- autoRotation: true,
|
|
|
- angle: -15
|
|
|
- });
|
|
|
- this.marker.content = '<div style="width: 300px;">'
|
|
|
- + '<p style="font-size: 22px;font-weight: bold;background-color: #2d8cf0;color: #fff;">' + plateNo + '</p>'
|
|
|
- + '<p style="padding: 5px 0"><span style="color: #a0a0a0">最后上报时间:</span>' + new Date(Number(data.time) + 8 * 60 * 60 * 1000).toJSON().split('T').join(' ').substr(0, 19) + '</p>'
|
|
|
- + '<div style="width: 150px;float: left;">'
|
|
|
- + '<p style="padding: 5px 0"><span style="color: #a0a0a0">车辆状态:</span>' + (data.speed > 0 ? '行驶中' : '停车') + '</p>'
|
|
|
- + '</div>'
|
|
|
- + '<div style="width: 150px;float: right;">'
|
|
|
- + '<p style="padding: 5px 0"><span style="color: #a0a0a0">速度:</span>' + data.speed + 'km/h</p>'
|
|
|
- + '</div>'
|
|
|
- + '<p><span style="color: #a0a0a0">当前位置:</span>' + data.address + '</p>'
|
|
|
- + '<p style="padding: 5px 0"><span style="color: #a0a0a0">经纬度:</span>' + data.location.join(',') + '</p>'
|
|
|
- + '</div>'
|
|
|
- this.infoWindow.open(this.map, this.map.getCenter());
|
|
|
- this.marker.on('click', this.markerClick);
|
|
|
- this.marker.emit('click', {target: this.marker});
|
|
|
- this.map.setFitView();
|
|
|
- },
|
|
|
- init() {
|
|
|
- frequency().then(res => {
|
|
|
- let this_ = this
|
|
|
- this_.entrustTimer = setInterval(function () {
|
|
|
- if (JSON.parse(localStorage.getItem("saber-token")).content) {
|
|
|
- this_.getsalesTrend({
|
|
|
- status:this_.status,
|
|
|
- mold:this_.mold
|
|
|
+ methods: {
|
|
|
+ reset() {
|
|
|
+ if (this.roleName.indexOf('调度中心业务员') !== -1 || this.roleName.indexOf('调度中心经理') !== -1) {
|
|
|
+ if (this.findObject(this.option.column, "landAmountD")) {
|
|
|
+ this.findObject(this.option.column, "landAmountD").hide = true
|
|
|
+ this.findObject(this.option.column, "landAmountD").showColumn = false
|
|
|
+ }
|
|
|
+ if (this.findObject(this.option.column, "extraAmountD")) {
|
|
|
+ this.findObject(this.option.column, "extraAmountD").hide = true
|
|
|
+ this.findObject(this.option.column, "extraAmountD").showColumn = false
|
|
|
+ }
|
|
|
+ if (this.findObject(this.optionTwo.column, "freightCollect")) {
|
|
|
+ this.findObject(this.optionTwo.column, "freightCollect").hide = true
|
|
|
+ this.findObject(this.optionTwo.column, "freightCollect").showColumn = false
|
|
|
+ }
|
|
|
+ if (this.findObject(this.optionTwo.column, "extraAmountD")) {
|
|
|
+ this.findObject(this.optionTwo.column, "extraAmountD").hide = true
|
|
|
+ this.findObject(this.optionTwo.column, "extraAmountD").showColumn = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.key++
|
|
|
+ },
|
|
|
+ //自定义列保存
|
|
|
+ async saveColumn() {
|
|
|
+ /**
|
|
|
+ * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
|
|
|
+ * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
|
|
|
+ * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
|
|
|
+ */
|
|
|
+ const inSave = await this.saveColumnData(this.getColumnName(140), this.option);
|
|
|
+ if (inSave) {
|
|
|
+ this.$message.success("保存成功");
|
|
|
+ //关闭窗口
|
|
|
+ this.$refs.crud.$refs.dialogColumn.columnBox = false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //自定义列重置
|
|
|
+ async resetColumn() {
|
|
|
+ this.option = this.optionList;
|
|
|
+ const inSave = await this.delColumnData(this.getColumnName(140), this.optionList);
|
|
|
+ if (inSave) {
|
|
|
+ this.$message.success("重置成功");
|
|
|
+ //关闭窗口
|
|
|
+ this.$refs.crud.$refs.dialogColumn.columnBox = false;
|
|
|
+ this.key++
|
|
|
+ if (this.roleName.indexOf('平台') !== -1 || this.roleName.indexOf('总调度') !== -1 || this.roleName.indexOf('分管调度') !== -1 || this.roleName.indexOf('大件调度') !== -1) {
|
|
|
+ for (let item of this.option.column) {
|
|
|
+ if (item.prop === 'extraAmountC') return this.reset()
|
|
|
+ }
|
|
|
+ this.option.column.push(
|
|
|
+ {
|
|
|
+ label: '客户名称',
|
|
|
+ prop: 'corpShortName',
|
|
|
+ index: 2,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '业务员',
|
|
|
+ prop: 'salesmanName',
|
|
|
+ index: 2,
|
|
|
+ width: 60,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '运输调度',
|
|
|
+ prop: 'dispatcherName',
|
|
|
+ overHidden: true,
|
|
|
+ index: 2,
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '应付杂费',
|
|
|
+ prop: 'extraAmountC',
|
|
|
+ index: 14,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '应收运费',
|
|
|
+ prop: 'landAmountD',
|
|
|
+ index: 13,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '应收杂费',
|
|
|
+ prop: 'extraAmountD',
|
|
|
+ index: 13,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }
|
|
|
+ )
|
|
|
+ this.reset()
|
|
|
+ }
|
|
|
+ if (this.roleName.indexOf('车队') !== -1) {
|
|
|
+ for (let item of this.option.column) {
|
|
|
+ if (item.prop === 'extraAmountC') return
|
|
|
+ }
|
|
|
+ this.option.column.push(
|
|
|
+ {
|
|
|
+ label: '物流运输',
|
|
|
+ prop: 'dispatchDeptName',
|
|
|
+ overHidden: true,
|
|
|
+ index: 1,
|
|
|
+ width: 100
|
|
|
+ }, {
|
|
|
+ label: '运输调度',
|
|
|
+ prop: 'dispatcherName',
|
|
|
+ overHidden: true,
|
|
|
+ index: 1,
|
|
|
+ width: 100,
|
|
|
+ }, {
|
|
|
+ label: '应付运费',
|
|
|
+ prop: 'landAmountC',
|
|
|
+ index: 13,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '应付杂费',
|
|
|
+ prop: 'extraAmountC',
|
|
|
+ index: 13,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true
|
|
|
+ }
|
|
|
+ )
|
|
|
+ }
|
|
|
+ if (this.roleName.indexOf('客户') !== -1) {
|
|
|
+ for (let item of this.option.column) {
|
|
|
+ if (item.prop === 'salesmanName') return
|
|
|
+ }
|
|
|
+ this.option.column.push(
|
|
|
+ {
|
|
|
+ label: '客户名称',
|
|
|
+ prop: 'corpShortName',
|
|
|
+ index: 2,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '业务员',
|
|
|
+ prop: 'salesmanName',
|
|
|
+ index: 2,
|
|
|
+ width: 60,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '物流运输',
|
|
|
+ prop: 'dispatchDeptName',
|
|
|
+ overHidden: true,
|
|
|
+ index: 2,
|
|
|
+ width: 100
|
|
|
+ },
|
|
|
+
|
|
|
+ {
|
|
|
+ label: '应收运费',
|
|
|
+ prop: 'landAmountD',
|
|
|
+ index: 14,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '应收杂费',
|
|
|
+ prop: 'extraAmountD',
|
|
|
+ index: 15,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+ if (this.mold == 3) {
|
|
|
+ this.findObject(this.option.column, "billNo").label = "业务号"
|
|
|
+ this.findObject(this.option.column, "ctnDetail").label = "车型车数"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //自定义列保存
|
|
|
+ async saveColumnTwo(ref, option, optionBack, code) {
|
|
|
+ /**
|
|
|
+ * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
|
|
|
+ * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
|
|
|
+ * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
|
|
|
+ */
|
|
|
+ const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
|
|
|
+ if (inSave) {
|
|
|
+ this.$message.success("保存成功");
|
|
|
+ //关闭窗口
|
|
|
+ this.$refs[ref].$refs.dialogColumn.columnBox = false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //自定义列重置
|
|
|
+ async resetColumnTwo(ref, option, optionBack, code) {
|
|
|
+ this[option] = this[optionBack];
|
|
|
+ const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
|
|
|
+ if (inSave) {
|
|
|
+ this.$message.success("重置成功");
|
|
|
+ this.$refs[ref].$refs.dialogColumn.columnBox = false;
|
|
|
+ this.reset()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ openTrackTwo(row, index) {
|
|
|
+ if (index == 0) {
|
|
|
+ this.$router.push({
|
|
|
+ path: '/landTransportation/bulkCargo/index',
|
|
|
+ query: {id: row.orderId},
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ openTrack(row, index) {
|
|
|
+ console.log(index, "915")
|
|
|
+ if (index == 0) {
|
|
|
+ this.$router.push({
|
|
|
+ path: '/landTransportation/placeAnOrder/index',
|
|
|
+ query: {id: row.orderId},
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // gaude({itemId: row.itemId, plateNo: row.plateNo, tenantId: '234557',color:'2'}).then(res => {
|
|
|
+ // this.lineArr = res.data.data
|
|
|
+ // this.dialogVisible = true
|
|
|
+ // let this_ = this
|
|
|
+ // setTimeout(function () {
|
|
|
+ // this_.initMap();
|
|
|
+ // }, 100)
|
|
|
+ // })
|
|
|
+ location({itemId: row.itemId, plateNo: row.plateNo, tenantId: '234557', color: '2'}).then(res => {
|
|
|
+ this.dialogVisible = true
|
|
|
+ let this_ = this
|
|
|
+ setTimeout(function () {
|
|
|
+ this_.initMap(res.data.data, row.plateNo);
|
|
|
+ }, 1000)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ markerClick(e) {
|
|
|
+ this.infoWindow.setContent(e.target.content);
|
|
|
+ this.infoWindow.open(this.map, e.target.getPosition());
|
|
|
+ },
|
|
|
+ closeInfoWindow() {
|
|
|
+ this.infoWindow.close();
|
|
|
+ },
|
|
|
+ openInfoWindow() {
|
|
|
+ this.infoWindow.open();
|
|
|
+ },
|
|
|
+ initMap(data, plateNo) {
|
|
|
+ /*this.map = new AMap.Map("container", {resizeEnable: true});
|
|
|
+ this.infoWindow = new AMap.InfoWindow({
|
|
|
+ ffset: new AMap.Pixel(0, -30),
|
|
|
+ offset: new AMap.Pixel(0, -30)
|
|
|
});
|
|
|
- }
|
|
|
- }, Number(res.data.data[0].dictKey) * 1000)
|
|
|
- })
|
|
|
- },
|
|
|
- query(data) {
|
|
|
- this.getsalesTrend(data)
|
|
|
- },
|
|
|
- // 获取列表数据
|
|
|
- getsalesTrend(data = {status: 0, mold: 1}) {
|
|
|
- if (data.mold == 3) {
|
|
|
- this.findObject(this.option.column, "billNo").label = "业务号"
|
|
|
- this.findObject(this.option.column, "ctnDetail").label = "车型车数"
|
|
|
+ let icon = new AMap.Icon({
|
|
|
+ size: new AMap.Size(52, 26), // 图标尺寸
|
|
|
+ image: 'https://trade.tubaosoft.com/file/bladex/000000/1123598821738675201/che.png',
|
|
|
+ imageSize: new AMap.Size(52, 26), // 根据所设置的大小拉伸或压缩图片
|
|
|
+ });
|
|
|
+ this.marker = new AMap.Marker({
|
|
|
+ position: data.location,
|
|
|
+ map: this.map,
|
|
|
+ icon: icon,
|
|
|
+ markerMeta: new AMap.Size(28, 28),
|
|
|
+ offset: new AMap.Pixel(-26, -15),
|
|
|
+ autoRotation: true,
|
|
|
+ angle: -15
|
|
|
+ });
|
|
|
+ this.marker.content = '<div style="width: 300px;">'
|
|
|
+ + '<p style="font-size: 22px;font-weight: bold;background-color: #2d8cf0;color: #fff;">' + plateNo + '</p>'
|
|
|
+ + '<p style="padding: 5px 0"><span style="color: #a0a0a0">最后上报时间:</span>' + new Date(Number(data.time) + 8 * 60 * 60 * 1000).toJSON().split('T').join(' ').substr(0, 19) + '</p>'
|
|
|
+ + '<div style="width: 150px;float: left;">'
|
|
|
+ + '<p style="padding: 5px 0"><span style="color: #a0a0a0">车辆状态:</span>' + (data.speed > 0 ? '行驶中' : '停车') + '</p>'
|
|
|
+ + '</div>'
|
|
|
+ + '<div style="width: 150px;float: right;">'
|
|
|
+ + '<p style="padding: 5px 0"><span style="color: #a0a0a0">速度:</span>' + data.speed + 'km/h</p>'
|
|
|
+ + '</div>'
|
|
|
+ + '<p><span style="color: #a0a0a0">当前位置:</span>' + data.address + '</p>'
|
|
|
+ + '<p style="padding: 5px 0"><span style="color: #a0a0a0">经纬度:</span>' + data.location.join(',') + '</p>'
|
|
|
+ + '</div>'
|
|
|
+ this.infoWindow.open(this.map, this.map.getCenter());
|
|
|
+ this.marker.on('click', this.markerClick);
|
|
|
+ this.marker.emit('click', {target: this.marker});
|
|
|
+ this.map.setFitView();*/
|
|
|
+ /*var center = new TMap.LatLng(39.984104, 116.307503);//设置中心点坐标
|
|
|
+ //初始化地图
|
|
|
+ var map = new TMap.Map("container", {
|
|
|
+ center: center
|
|
|
+ });
|
|
|
+ //初始marker
|
|
|
+ var marker = new TMap.MultiMarker({
|
|
|
+ id: 'marker-layer',
|
|
|
+ map: map,
|
|
|
+ styles: {
|
|
|
+ "marker": new TMap.MarkerStyle({
|
|
|
+ "width": 24,
|
|
|
+ "height": 35,
|
|
|
+ "anchor": { x: 12, y: 35 },
|
|
|
+ "src": 'https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/markerDefault.png'
|
|
|
+ })
|
|
|
+ },
|
|
|
+ geometries: [{
|
|
|
+ "id": 'demo1',
|
|
|
+ "styleId": 'marker',
|
|
|
+ "position": new TMap.LatLng(39.984104, 116.307503),
|
|
|
+ "properties": {
|
|
|
+ "title": "marker"
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ "id": 'demo2',
|
|
|
+ "styleId": 'marker',
|
|
|
+ "position": new TMap.LatLng(39.974104, 116.347503),
|
|
|
+ "properties": {
|
|
|
+ "title": "marker"
|
|
|
+ },
|
|
|
+
|
|
|
+ }]
|
|
|
+ });
|
|
|
+ //初始化infoWindow
|
|
|
+ var infoWindow = new TMap.InfoWindow({
|
|
|
+ map: map,
|
|
|
+ position: new TMap.LatLng(39.984104, 116.307503),
|
|
|
+ offset: { x: 0, y: -32 } //设置信息窗相对position偏移像素
|
|
|
+ });
|
|
|
+ infoWindow.close();//初始关闭信息窗关闭
|
|
|
+ //监听标注点击事件
|
|
|
+ marker.on("click", function (evt) {
|
|
|
+ //设置infoWindow
|
|
|
+ infoWindow.open(); //打开信息窗
|
|
|
+ infoWindow.setPosition(evt.geometry.position);//设置信息窗位置
|
|
|
+ infoWindow.setContent(evt.geometry.position.toString());//设置信息窗内容
|
|
|
+ })*/
|
|
|
+ var rightClicked = false;
|
|
|
+ if (data.location == null) {
|
|
|
+ data.location = [40.040422,116.273521]
|
|
|
+ }
|
|
|
+ var lon = data.location[0]
|
|
|
+ var lat = data.location[1]
|
|
|
+ console.log(lon,"1048")
|
|
|
+ console.log(lat,"1049")
|
|
|
+ this.map = new TMap.Map('container', {
|
|
|
+ zoom: 16,
|
|
|
+ pitch: 30,
|
|
|
+ rotation: 10,
|
|
|
+ center: new TMap.LatLng(lon, lat),
|
|
|
+ });
|
|
|
+
|
|
|
+ this.marker = new TMap.MultiMarker({
|
|
|
+ id: 'marker-layer', // 图层id
|
|
|
+ map: this.map,
|
|
|
+ styles: {
|
|
|
+ // 点标注的相关样式
|
|
|
+ marker: new TMap.MarkerStyle({
|
|
|
+ width: 25,
|
|
|
+ height: 35,
|
|
|
+ anchor: {x: 16, y: 32},
|
|
|
+ src:
|
|
|
+ 'https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/markerDefault.png',
|
|
|
+ }),
|
|
|
+ },
|
|
|
+ geometries: [
|
|
|
+ {
|
|
|
+ // 点标注数据数组
|
|
|
+ id: 'demo',
|
|
|
+ styleId: 'marker',
|
|
|
+ position: new TMap.LatLng(lon, lat),
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ });
|
|
|
+ this.marker.on('click', this.openInfoWindow);
|
|
|
+ this.infoWindow = new TMap.InfoWindow({
|
|
|
+ map: this.map,
|
|
|
+ enableCustom: true,
|
|
|
+ position: new TMap.LatLng(lon, lat),
|
|
|
+ offset: {y: -70, x: -5},
|
|
|
+ content:
|
|
|
+ '<div style="width: 300px;background-color: #fff">'
|
|
|
+ + '<p style="font-size: 22px;font-weight: bold;background-color: #2d8cf0;color: #000000;">' + plateNo + '</p>'
|
|
|
+ + '<p style="padding: 5px 0"><span style="color: #a0a0a0">最后上报时间:</span>' + new Date(Number(data.time) + 8 * 60 * 60 * 1000).toJSON().split('T').join(' ').substr(0, 19) + '</p>'
|
|
|
+ + '<div style="width: 150px;float: left;">'
|
|
|
+ + '<p style="padding: 5px 0"><span style="color: #a0a0a0">车辆状态:</span>' + (data.speed > 0 ? '行驶中' : '停车') + '</p>'
|
|
|
+ + '</div>'
|
|
|
+ + '<div style="width: 150px;float: right;">'
|
|
|
+ + '<p style="padding: 5px 0"><span style="color: #a0a0a0">速度:</span>' + data.speed + 'km/h</p>'
|
|
|
+ + '</div>'
|
|
|
+ + '<p><span style="color: #a0a0a0">当前位置:</span>' + data.address + '</p>'
|
|
|
+ + '<p style="padding: 5px 0"><span style="color: #a0a0a0">经纬度:</span>' + data.location.join(',') + '</p>'
|
|
|
+ + '</div>'
|
|
|
+ });
|
|
|
+ this.map.on('rightclick', function () {
|
|
|
+ // infoWindow的内容可以动态更新
|
|
|
+ rightClicked = !rightClicked;
|
|
|
+ if (rightClicked) {
|
|
|
+ this.infoWindow.setContent(
|
|
|
+ '<div style="width: 300px;background-color: #fff">'
|
|
|
+ + '<p style="font-size: 22px;font-weight: bold;background-color: #2d8cf0;color: #000000;">' + plateNo + '</p>'
|
|
|
+ + '<p style="padding: 5px 0"><span style="color: #a0a0a0">最后上报时间:</span>' + new Date(Number(data.time) + 8 * 60 * 60 * 1000).toJSON().split('T').join(' ').substr(0, 19) + '</p>'
|
|
|
+ + '<div style="width: 150px;float: left;">'
|
|
|
+ + '<p style="padding: 5px 0"><span style="color: #a0a0a0">车辆状态:</span>' + (data.speed > 0 ? '行驶中' : '停车') + '</p>'
|
|
|
+ + '</div>'
|
|
|
+ + '<div style="width: 150px;float: right;">'
|
|
|
+ + '<p style="padding: 5px 0"><span style="color: #a0a0a0">速度:</span>' + data.speed + 'km/h</p>'
|
|
|
+ + '</div>'
|
|
|
+ + '<p><span style="color: #a0a0a0">当前位置:</span>' + data.address + '</p>'
|
|
|
+ + '<p style="padding: 5px 0"><span style="color: #a0a0a0">经纬度:</span>' + data.location.join(',') + '</p>'
|
|
|
+ + '</div>');
|
|
|
+ } else {
|
|
|
+ this.infoWindow.setContent(
|
|
|
+ '<div style="width: 300px;background-color: #fff">'
|
|
|
+ + '<p style="font-size: 22px;font-weight: bold;background-color: #2d8cf0;color: #000000;">' + plateNo + '</p>'
|
|
|
+ + '<p style="padding: 5px 0"><span style="color: #a0a0a0">最后上报时间:</span>' + new Date(Number(data.time) + 8 * 60 * 60 * 1000).toJSON().split('T').join(' ').substr(0, 19) + '</p>'
|
|
|
+ + '<div style="width: 150px;float: left;">'
|
|
|
+ + '<p style="padding: 5px 0"><span style="color: #a0a0a0">车辆状态:</span>' + (data.speed > 0 ? '行驶中' : '停车') + '</p>'
|
|
|
+ + '</div>'
|
|
|
+ + '<div style="width: 150px;float: right;">'
|
|
|
+ + '<p style="padding: 5px 0"><span style="color: #a0a0a0">速度:</span>' + data.speed + 'km/h</p>'
|
|
|
+ + '</div>'
|
|
|
+ + '<p><span style="color: #a0a0a0">当前位置:</span>' + data.address + '</p>'
|
|
|
+ + '<p style="padding: 5px 0"><span style="color: #a0a0a0">经纬度:</span>' + data.location.join(',') + '</p>'
|
|
|
+ + '</div>');
|
|
|
+ }
|
|
|
+ });
|
|
|
+ /*var map = new TMap.Map(document.getElementById("container"), {
|
|
|
+ center: new TMap.LatLng(39.916527, 116.397128), // 设定地图中心点
|
|
|
+ zoom: 13 // 设定地图缩放级别
|
|
|
+ });*/
|
|
|
+ },
|
|
|
+ init() {
|
|
|
+ frequency().then(res => {
|
|
|
+ let this_ = this
|
|
|
+ this_.entrustTimer = setInterval(function () {
|
|
|
+ if (JSON.parse(localStorage.getItem("saber-token")).content) {
|
|
|
+ this_.getsalesTrend({
|
|
|
+ status: this_.status,
|
|
|
+ mold: this_.mold
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }, Number(res.data.data[0].dictKey) * 1000)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ query(data) {
|
|
|
+ this.getsalesTrend(data)
|
|
|
+ },
|
|
|
+ // 获取列表数据
|
|
|
+ getsalesTrend(data = {status: 0, mold: 1}) {
|
|
|
+ if (data.mold == 3) {
|
|
|
+ this.findObject(this.option.column, "billNo").label = "业务号"
|
|
|
+ this.findObject(this.option.column, "ctnDetail").label = "车型车数"
|
|
|
+ }
|
|
|
+ this.mold = data.mold
|
|
|
+ this.status = data.status
|
|
|
+ this.loading = true;
|
|
|
+ active(data).then(res => {
|
|
|
+ this.tableData = res.data.data
|
|
|
+ this.loading = false;
|
|
|
+ })
|
|
|
+ },
|
|
|
+ ToBreak(val) {
|
|
|
+ if (val) return val.replace(/\n/g, '<br/>')
|
|
|
+ },
|
|
|
+ refresh() {
|
|
|
+ this.getsalesTrend({
|
|
|
+ status: this.status,
|
|
|
+ mold: this.mold
|
|
|
+ })
|
|
|
}
|
|
|
- this.mold = data.mold
|
|
|
- this.status = data.status
|
|
|
- this.loading = true;
|
|
|
- active(data).then(res => {
|
|
|
- this.tableData = res.data.data
|
|
|
- this.loading = false;
|
|
|
- })
|
|
|
- },
|
|
|
- ToBreak(val) {
|
|
|
- if (val) return val.replace(/\n/g, '<br/>')
|
|
|
- },
|
|
|
- refresh() {
|
|
|
- this.getsalesTrend({
|
|
|
- status:this.status,
|
|
|
- mold:this.mold
|
|
|
- })
|
|
|
}
|
|
|
- }
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
<style scoped src="../../../../../styles/demo-center.css"></style>
|
|
|
<style scoped>
|
|
|
#container {
|
|
|
- height: 80vh;
|
|
|
- width: 100%;
|
|
|
+ height: 80vh;
|
|
|
+ width: 100%;
|
|
|
}
|
|
|
|
|
|
.input-card .btn {
|
|
|
- margin-right: 1.2rem;
|
|
|
- width: 9rem;
|
|
|
+ margin-right: 1.2rem;
|
|
|
+ width: 9rem;
|
|
|
}
|
|
|
|
|
|
.input-card .btn:last-child {
|
|
|
- margin-right: 0;
|
|
|
+ margin-right: 0;
|
|
|
}
|
|
|
</style>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
.home-container {
|
|
|
- padding: 0px 5px 5px 0px;
|
|
|
- box-sizing: border-box;
|
|
|
- height: 100%;
|
|
|
+ padding: 0px 5px 5px 0px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ height: 100%;
|
|
|
|
|
|
- ::v-deep .el-card__body {
|
|
|
- padding: 10px 15px;
|
|
|
- font-size: 14px;
|
|
|
- }
|
|
|
+ ::v-deep .el-card__body {
|
|
|
+ padding: 10px 15px;
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
|
|
|
- &__card {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- }
|
|
|
+ &__card {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
|
|
|
- .title {
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- }
|
|
|
+ .title {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.content {
|
|
|
}
|
|
|
|
|
|
::v-deep .el-dialog {
|
|
|
- margin-top: 5vh !important;
|
|
|
- margin-bottom: 0 !important;
|
|
|
+ margin-top: 5vh !important;
|
|
|
+ margin-bottom: 0 !important;
|
|
|
}
|
|
|
|
|
|
::v-deep .el-dialog__body {
|
|
|
- padding: 0 20px 10px 20px !important;
|
|
|
+ padding: 0 20px 10px 20px !important;
|
|
|
}
|
|
|
|
|
|
::v-deep .amap-info-close {
|
|
|
- right: 10px !important;
|
|
|
- top: 12px !important;
|
|
|
+ right: 10px !important;
|
|
|
+ top: 12px !important;
|
|
|
}
|
|
|
|
|
|
::v-deep .amap-info-content {
|
|
|
- padding: 5px 5px 5px 5px !important;
|
|
|
+ padding: 5px 5px 5px 5px !important;
|
|
|
}
|
|
|
</style>
|
|
|
+
|