|
@@ -2,12 +2,39 @@
|
|
|
<div class="home-container">
|
|
|
<el-card class="home-container__card">
|
|
|
<div>
|
|
|
- <div class="content" v-loading="loading">
|
|
|
- <avue-crud :data="tableData" :option="option" :key="key" ref="crud" @refresh-change="refresh"
|
|
|
+ <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="menuLeft">
|
|
|
+ <span>今日业务详情{{ mold == 1 ? '(集装箱)' : mold == 2 ? '(散货)' : mold == 3 ? '(特种)' : '' }}</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>今日业务详情{{mold == 1?'(集装箱)':mold == 2?'(散货)':mold == 3?'(特种)':''}}</span>
|
|
|
+ <span>今日业务详情{{ mold == 1 ? '(集装箱)' : mold == 2 ? '(散货)' : mold == 3 ? '(特种)' : '' }}</span>
|
|
|
</template>
|
|
|
<template slot="billNo" slot-scope="{row}">
|
|
|
<span class="el-button--text" style="cursor: pointer"
|
|
@@ -60,11 +87,12 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
- entrustTimer:null,
|
|
|
+ entrustTimer: null,
|
|
|
roleName: localStorage.getItem("roleName").split(','),
|
|
|
dialogVisible: false,
|
|
|
loading: false,
|
|
|
- mold:0,
|
|
|
+ mold: 0,
|
|
|
+ status: 1,
|
|
|
tableData: [],
|
|
|
map: null,
|
|
|
infoWindow: null,
|
|
@@ -160,13 +188,340 @@ export default {
|
|
|
},
|
|
|
]
|
|
|
},
|
|
|
+ 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: 'salesmanName',
|
|
|
+ index: 2,
|
|
|
+ width: 60,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '物流运输',
|
|
|
+ prop: 'dispatchDeptName',
|
|
|
+ overHidden: true,
|
|
|
+ index: 3,
|
|
|
+ width: 100
|
|
|
+ }, {
|
|
|
+ label: '派车单号',
|
|
|
+ width: 140,
|
|
|
+ index: 4,
|
|
|
+ overHidden: true,
|
|
|
+ prop: 'dispatchNumber'
|
|
|
+ }, {
|
|
|
+ label: '合同号',
|
|
|
+ width: 140,
|
|
|
+ index: 5,
|
|
|
+ overHidden: true,
|
|
|
+ prop: 'contractNo'
|
|
|
+ }, {
|
|
|
+ label: '装货地址',
|
|
|
+ prop: 'addressDetail',
|
|
|
+ index: 6,
|
|
|
+ width: 132,
|
|
|
+ }, {
|
|
|
+ label: '卸货地址',
|
|
|
+ prop: 'unloadingPlace',
|
|
|
+ index: 7,
|
|
|
+ width: 132,
|
|
|
+ }, {
|
|
|
+ label: '车体积',
|
|
|
+ width: 100,
|
|
|
+ index: 8,
|
|
|
+ prop: 'fleetVolum'
|
|
|
+ }, {
|
|
|
+ label: '车队',
|
|
|
+ prop: 'fleetShortName',
|
|
|
+ index: 9,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '车号',
|
|
|
+ prop: 'plateNo',
|
|
|
+ index: 10,
|
|
|
+ width: 100,
|
|
|
+ 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: 140
|
|
|
+ }, {
|
|
|
+ label: '应收运费',
|
|
|
+ prop: 'landAmountD',
|
|
|
+ index: 12,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '应收杂费',
|
|
|
+ prop: 'extraAmountD',
|
|
|
+ index: 13,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '备注',
|
|
|
+ prop: 'remarks',
|
|
|
+ index: 14,
|
|
|
+ width: 100,
|
|
|
+ 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: 'salesmanName',
|
|
|
+ index: 2,
|
|
|
+ width: 60,
|
|
|
+ overHidden: true,
|
|
|
+ },{
|
|
|
+ label: '运输调度',
|
|
|
+ prop: 'dispatcherName',
|
|
|
+ overHidden: true,
|
|
|
+ index: 3,
|
|
|
+ width: 100,
|
|
|
+ }, {
|
|
|
+ label: '派车单号',
|
|
|
+ width: 140,
|
|
|
+ index: 4,
|
|
|
+ overHidden: true,
|
|
|
+ prop: 'dispatchNumber'
|
|
|
+ }, {
|
|
|
+ label: '合同号',
|
|
|
+ width: 140,
|
|
|
+ index: 5,
|
|
|
+ overHidden: true,
|
|
|
+ prop: 'contractNo'
|
|
|
+ }, {
|
|
|
+ label: '装货地址',
|
|
|
+ prop: 'addressDetail',
|
|
|
+ index: 6,
|
|
|
+ width: 132,
|
|
|
+ }, {
|
|
|
+ label: '卸货地址',
|
|
|
+ prop: 'unloadingPlace',
|
|
|
+ index: 7,
|
|
|
+ width: 132,
|
|
|
+ }, {
|
|
|
+ label: '车体积',
|
|
|
+ width: 100,
|
|
|
+ index: 8,
|
|
|
+ prop: 'fleetVolum'
|
|
|
+ }, {
|
|
|
+ label: '车队',
|
|
|
+ prop: 'fleetShortName',
|
|
|
+ index: 9,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '车号',
|
|
|
+ prop: 'plateNo',
|
|
|
+ index: 10,
|
|
|
+ width: 100,
|
|
|
+ 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: 140
|
|
|
+ }, {
|
|
|
+ label: '应收运费',
|
|
|
+ prop: 'landAmountD',
|
|
|
+ index: 12,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '应收杂费',
|
|
|
+ prop: 'extraAmountD',
|
|
|
+ index: 13,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ },{
|
|
|
+ label: '应付杂费',
|
|
|
+ prop: 'extraAmountC',
|
|
|
+ index: 14,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true
|
|
|
+ },{
|
|
|
+ label: '客户名称',
|
|
|
+ prop: 'corpShortName',
|
|
|
+ index: 15,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '备注',
|
|
|
+ prop: 'remarks',
|
|
|
+ index: 16,
|
|
|
+ width: 100,
|
|
|
+ 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: 100
|
|
|
+ },{
|
|
|
+ label: '运输调度',
|
|
|
+ prop: 'dispatcherName',
|
|
|
+ overHidden: true,
|
|
|
+ index: 3,
|
|
|
+ width: 100,
|
|
|
+ }, {
|
|
|
+ label: '派车单号',
|
|
|
+ width: 140,
|
|
|
+ index: 4,
|
|
|
+ overHidden: true,
|
|
|
+ prop: 'dispatchNumber'
|
|
|
+ }, {
|
|
|
+ label: '合同号',
|
|
|
+ width: 140,
|
|
|
+ index: 5,
|
|
|
+ overHidden: true,
|
|
|
+ prop: 'contractNo'
|
|
|
+ }, {
|
|
|
+ label: '装货地址',
|
|
|
+ prop: 'addressDetail',
|
|
|
+ index: 6,
|
|
|
+ width: 132,
|
|
|
+ }, {
|
|
|
+ label: '卸货地址',
|
|
|
+ prop: 'unloadingPlace',
|
|
|
+ index: 7,
|
|
|
+ width: 132,
|
|
|
+ }, {
|
|
|
+ label: '车体积',
|
|
|
+ width: 100,
|
|
|
+ index: 8,
|
|
|
+ prop: 'fleetVolum'
|
|
|
+ }, {
|
|
|
+ label: '车队',
|
|
|
+ prop: 'fleetShortName',
|
|
|
+ index: 9,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ }, {
|
|
|
+ label: '车号',
|
|
|
+ prop: 'plateNo',
|
|
|
+ index: 10,
|
|
|
+ width: 100,
|
|
|
+ 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: 140
|
|
|
+ }, {
|
|
|
+ label: '应付运费',
|
|
|
+ prop: 'landAmountC',
|
|
|
+ index: 12,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true,
|
|
|
+ },{
|
|
|
+ label: '应付杂费',
|
|
|
+ prop: 'extraAmountC',
|
|
|
+ index: 13,
|
|
|
+ width: 100,
|
|
|
+ overHidden: true
|
|
|
+ }, {
|
|
|
+ label: '备注',
|
|
|
+ prop: 'remarks',
|
|
|
+ index: 14,
|
|
|
+ width: 100,
|
|
|
+ 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.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++
|
|
|
- this.init();
|
|
|
- if (this.roleName.indexOf('平台') !== -1||this.roleName.indexOf('总调度') !== -1||this.roleName.indexOf('分管调度') !== -1) {
|
|
|
+ this.getsalesTrend()
|
|
|
+ if (this.roleName.indexOf('平台') !== -1 || this.roleName.indexOf('总调度') !== -1 || this.roleName.indexOf('分管调度') !== -1) {
|
|
|
for (let item of this.option.column) {
|
|
|
if (item.prop === 'extraAmountC') return
|
|
|
}
|
|
@@ -177,7 +532,7 @@ export default {
|
|
|
index: 2,
|
|
|
width: 60,
|
|
|
overHidden: true,
|
|
|
- },{
|
|
|
+ }, {
|
|
|
label: '运输调度',
|
|
|
prop: 'dispatcherName',
|
|
|
overHidden: true,
|
|
@@ -190,7 +545,7 @@ export default {
|
|
|
index: 16,
|
|
|
width: 100,
|
|
|
overHidden: true,
|
|
|
- },{
|
|
|
+ }, {
|
|
|
label: '应付杂费',
|
|
|
prop: 'extraAmountC',
|
|
|
index: 14,
|
|
@@ -236,7 +591,7 @@ export default {
|
|
|
index: 13,
|
|
|
width: 100,
|
|
|
overHidden: true,
|
|
|
- },{
|
|
|
+ }, {
|
|
|
label: '应付杂费',
|
|
|
prop: 'extraAmountC',
|
|
|
index: 13,
|
|
@@ -256,7 +611,7 @@ export default {
|
|
|
index: 2,
|
|
|
width: 60,
|
|
|
overHidden: true,
|
|
|
- },{
|
|
|
+ }, {
|
|
|
label: '物流运输',
|
|
|
prop: 'dispatchDeptName',
|
|
|
overHidden: true,
|
|
@@ -315,18 +670,18 @@ export default {
|
|
|
//关闭窗口
|
|
|
this.$refs.crud.$refs.dialogColumn.columnBox = false;
|
|
|
this.key++
|
|
|
- if (this.roleName.indexOf('平台') !== -1||this.roleName.indexOf('总调度') !== -1||this.roleName.indexOf('分管调度') !== -1) {
|
|
|
+ if (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.option.column.push(
|
|
|
- {
|
|
|
+ {
|
|
|
label: '业务员',
|
|
|
prop: 'salesmanName',
|
|
|
index: 2,
|
|
|
width: 60,
|
|
|
overHidden: true,
|
|
|
- },{
|
|
|
+ }, {
|
|
|
label: '运输调度',
|
|
|
prop: 'dispatcherName',
|
|
|
overHidden: true,
|
|
@@ -339,7 +694,7 @@ export default {
|
|
|
index: 16,
|
|
|
width: 100,
|
|
|
overHidden: true,
|
|
|
- },{
|
|
|
+ }, {
|
|
|
label: '应付杂费',
|
|
|
prop: 'extraAmountC',
|
|
|
index: 14,
|
|
@@ -385,7 +740,7 @@ export default {
|
|
|
index: 13,
|
|
|
width: 100,
|
|
|
overHidden: true,
|
|
|
- },{
|
|
|
+ }, {
|
|
|
label: '应付杂费',
|
|
|
prop: 'extraAmountC',
|
|
|
index: 13,
|
|
@@ -405,7 +760,7 @@ export default {
|
|
|
index: 2,
|
|
|
width: 60,
|
|
|
overHidden: true,
|
|
|
- },{
|
|
|
+ }, {
|
|
|
label: '物流运输',
|
|
|
prop: 'dispatchDeptName',
|
|
|
overHidden: true,
|
|
@@ -437,6 +792,29 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
+ //自定义列保存
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+ },
|
|
|
openTrack(row, index) {
|
|
|
if (index == 0) {
|
|
|
this.$router.push({
|
|
@@ -503,32 +881,41 @@ export default {
|
|
|
this.map.setFitView();
|
|
|
},
|
|
|
init() {
|
|
|
- this.getsalesTrend();
|
|
|
- frequency().then(res=>{
|
|
|
+ frequency().then(res => {
|
|
|
let this_ = this
|
|
|
this_.entrustTimer = setInterval(function () {
|
|
|
if (JSON.parse(localStorage.getItem("saber-token")).content) {
|
|
|
- this_.getsalesTrend();
|
|
|
+ this_.getsalesTrend({
|
|
|
+ status:this_.status,
|
|
|
+ mold:this_.mold
|
|
|
+ });
|
|
|
}
|
|
|
- }, Number(res.data.data[0].dictKey)*1000)
|
|
|
+ }, Number(res.data.data[0].dictKey) * 1000)
|
|
|
})
|
|
|
},
|
|
|
query(data) {
|
|
|
this.getsalesTrend(data)
|
|
|
+ clearInterval(this.entrustTimer);
|
|
|
},
|
|
|
getsalesTrend(data = {status: 0, mold: 1}) {
|
|
|
this.mold = data.mold
|
|
|
+ this.status = data.status
|
|
|
+ console.log(this.mold,this.status)
|
|
|
this.loading = true;
|
|
|
active(data).then(res => {
|
|
|
this.tableData = res.data.data
|
|
|
this.loading = false;
|
|
|
+ this.init()
|
|
|
})
|
|
|
},
|
|
|
ToBreak(val) {
|
|
|
if (val) return val.replace(/\n/g, '<br/>')
|
|
|
},
|
|
|
refresh() {
|
|
|
- this.getsalesTrend()
|
|
|
+ this.getsalesTrend({
|
|
|
+ status:this.status,
|
|
|
+ mold:this.mold
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
};
|