pyt
2025-04-07 f4450e3431ba68516836c9922676b74cd1223e21
Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/H5/shehong-vehicle-supervision
6个文件已修改
3个文件已添加
516 ■■■■■ 已修改文件
src/utils/utils.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/complaint/index.vue 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/complaint/service.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/order/component/detailModal.vue 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/order/index.vue 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/order/service.js 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/systemManage/driver/component/detailModal.vue 85 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/systemManage/driver/index.vue 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/systemManage/driver/service.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/utils.js
@@ -1,3 +1,8 @@
import apiConfig from '@/utils/baseurl'
import {
  Message
} from 'element-ui'
// 生成4位随机验证码
export function generateVerificationCode() {
  const characters = '123456789abcdefghijkmnpqrstuvwxyABCDEFGHJKLMNPQRSTUVWXY';
@@ -20,7 +25,7 @@
// 导出
export const exportExcell = (name, params, url) => {
  fetch(BASE_URL + url, {
  fetch(apiConfig.baseURL + url, {
    method: 'get',
    params: JSON.stringify({
      ...params,
@@ -44,5 +49,10 @@
      // 释放的 URL 对象以及移除 a 标签
      URL.revokeObjectURL(link.href);
      document.body.removeChild(link);
      Message({
        message: '导出成功',
        type: 'success',
        duration: 2000
      })
    });
};
src/view/complaint/index.vue
@@ -3,24 +3,19 @@
        <div class="form flex a-center j-between mt--23">
            <div class="form-left ml--30">
                <el-form :inline="true" :model="searchForm" class="demo-form-inline">
                    <el-form-item label="预警类型:" prop="type" class="unset_m" style="margin-right: 15px;">
                        <el-select :popper-append-to-body="false" v-model="searchForm.type" placeholder="请选择">
                            <el-option label="全部" value=""></el-option>
                            <el-option label="预警" value="1"></el-option>
                            <el-option label="报警" value="2"></el-option>
                        </el-select>
                    <el-form-item label="投诉人电话:" prop="complainPhone" class="unset_m" style="margin-right: 15px;">
                        <el-input v-model="searchForm.complainPhone" placeholder="请输入"></el-input></el-form-item>
                    <el-form-item label="车辆号牌:" prop="vehicleNumber" class="unset_m" style="margin-right: 15px;">
                        <el-input v-model="searchForm.vehicleNumber" placeholder="请输入"></el-input>
                    </el-form-item>
                    <el-form-item label="车辆号牌:" prop="level" class="unset_m" style="margin-right: 15px;">
                        <el-input v-model="searchForm.level" placeholder="请输入"></el-input>
                    <el-form-item label="驾驶员姓名:" prop="driverName" class="unset_m" style="margin-right: 15px;">
                        <el-input v-model="searchForm.driverName" placeholder="请输入"></el-input>
                    </el-form-item>
                    <el-form-item label="驾驶员姓名:" prop="name" class="unset_m" style="margin-right: 15px;">
                        <el-input v-model="searchForm.name" placeholder="请输入"></el-input>
                    <el-form-item label="公司名称:" prop="enterpriseName" class="unset_m" style="margin-right: 15px;">
                        <el-input v-model="searchForm.enterpriseName" placeholder="请输入"></el-input>
                    </el-form-item>
                    <el-form-item label="公司名称:" prop="companyName" class="unset_m" style="margin-right: 15px;">
                        <el-input v-model="searchForm.companyName" placeholder="请输入"></el-input>
                    </el-form-item>
                    <el-form-item label="预警时间:" prop="date" class="unset_m" style="margin-right: 15px;">
                        <el-date-picker :append-to-body="false" v-model="searchForm.date" type="daterange"
                    <el-form-item label="投诉时间:" prop="selectTime" class="unset_m" style="margin-right: 15px;">
                        <el-date-picker :append-to-body="false" v-model="searchForm.selectTime" type="daterange"
                            range-separator=" " start-placeholder="开始日期" end-placeholder="结束日期">
                        </el-date-picker>
                    </el-form-item>
@@ -40,74 +35,101 @@
                @click="exportExcell">导出</el-button>
        </div>
        <div class="table-box ml--30 mt--23 mr--30">
            <el-table :data="tableData" border stripe style="width: 100%">
                <el-table-column prop="date" label="序号"></el-table-column>
                <el-table-column prop="name" label="车辆名称"></el-table-column>
                <el-table-column prop="name" label="车牌号码"></el-table-column>
                <el-table-column prop="name" label="投诉内容"></el-table-column>
                <el-table-column prop="name" label="投诉人电话"></el-table-column>
                <el-table-column prop="name" label="被投诉所属公司"></el-table-column>
                <el-table-column prop="name" label="被投诉驾驶员"></el-table-column>
                <el-table-column prop="name" label="投诉时间"></el-table-column>
                <el-table-column prop="name" label="操作">
                    <template slot-scope="scope">
                        <el-button type="text" @click="handle(scope.$index, scope.row)">处理</el-button>
            <el-table :data="tableData" border stripe style="width: 100%" :height="height">
                <el-table-column type="index" width="55" label="序号"></el-table-column>
                <el-table-column prop="carName" label="车辆名称"></el-table-column>
                <el-table-column prop="vehicleNumber" label="车牌号码"></el-table-column>
                <el-table-column prop="content" label="投诉内容"></el-table-column>
                <el-table-column prop="complainPhone" label="投诉人电话"></el-table-column>
                <el-table-column prop="enterpriseName" label="被投诉所属公司"></el-table-column>
                <el-table-column prop="driverName" label="被投诉驾驶员"></el-table-column>
                <el-table-column prop="complainTime" label="投诉时间"></el-table-column>
                <el-table-column prop="treatmentState" label="处理状态"></el-table-column>
                <el-table-column prop="treatmentUser" label="处理人"></el-table-column>
                <el-table-column prop="treatmentTime" label="处理时间"></el-table-column>
                <el-table-column prop="treatmentRemark" label="处理描述"></el-table-column>
                <!-- <el-table-column label="操作">
                    <template #default="{ row }">
                        <el-button v-if="row.treatmentState == '未处理'" type="text" @click="handle(row)">处理</el-button>
                    </template>
                </el-table-column>
</el-table-column> -->
            </el-table>
            <div class="pagination-box relative mt--23 flex j-end">
                <el-pagination
                    :popper-append-to-body="false"
                    popper-class="pagination-popper"
                    @size-change="handleSizeChange"
                    @current-change="handleCurrentChange"
                    :current-page="searchForm.page"
                    background
                    layout="total,sizes,prev, pager, next,jumper"
                <el-pagination :popper-append-to-body="false" popper-class="pagination-popper"
                    @size-change="handleSizeChange" @current-change="handleCurrentChange"
                    :current-page="searchForm.page" background layout="total,sizes,prev, pager, next,jumper"
                    :total="searchForm.total">
                </el-pagination>
            </div>
        </div>
    </div>
</template>
<script>
import { search } from 'core-js/fn/symbol';
import { getComplainList } from './service'
import { exportExcell } from '@/utils/utils'
export default {
    data() {
        return {
            searchForm: {
                date: '',
                type: '',
                level: '',
                name: '',
                companyName: '',
                total: 40,
                total: 0,
                page: 1,
                pageSize: 10
            },
            tableData: [],
        };
    },
    computed: {
        height() {
            return this.$baseTableHeight()
        },
    },
    created() {
        this.getTableList()
    },
    methods: {
        reset() {
            this.searchForm = {
                total: 0,
                page: 1,
                pageSize: 10
            }
            this.getTableList()
        },
        search() {
            this.getTableList()
        },
        exportExcell() {
            let obj = { ...this.searchForm }
            delete obj.total
            if (obj.selectTime) {
                obj.startTime = moment(obj.selectTime[0]).format('YYYY-MM-DD HH-mm-ss')
                obj.endTime = moment(obj.selectTime[1]).format('YYYY-MM-DD HH-mm-ss')
                delete obj.selectTime
            }
            exportExcell('投诉记录导出', obj, '/system/complain/exportComplainList')
        },
        handleSizeChange(e) {
            this.searchForm.pageSize = e
            this.getTableList()
        },
        handleCurrentChange(e) {
            this.searchForm.page = e
            this.getTableList()
        },
        getTableList() {
            let obj = { ...this.searchForm }
            delete obj.total
            if (obj.selectTime) {
                obj.startTime = moment(obj.selectTime[0]).format('YYYY-MM-DD HH-mm-ss')
                obj.endTime = moment(obj.selectTime[1]).format('YYYY-MM-DD HH-mm-ss')
                delete obj.selectTime
            }
            getComplainList(obj).then(res => {
                this.tableData = res.records
                this.searchForm.total = res.total
            })
        },
    }
}
@@ -116,12 +138,9 @@
<style scoped lang="less">
::v-deep .pagination-popper {
    position: fixed !important;
    transform:
        scale(calc(1 / var(--scale)))
        translate(
            calc(100px * (1 - 1 / var(--scale))),
            calc(5px * (1 - 1 / var(--scale)))
        ) !important;
    transform:
        scale(calc(1 / var(--scale))) translate(calc(100px * (1 - 1 / var(--scale))),
            calc(5px * (1 - 1 / var(--scale)))) !important;
    transform-origin: right top !important;
    right: calc(30px * (1 - 1 / var(--scale))) !important;
    margin-top: 5px;
src/view/complaint/service.js
New file
@@ -0,0 +1,11 @@
import axios from '@/utils/request';
// 获取司机详情
export const getDriverInfo = (id) => {
    return axios.get(`/system/driver/getDriverInfo/{id}/${id}`)
}
// 获取投诉记录列表
export const getComplainList = (params) => {
    return axios.get(`/system/complain/getComplainList`, { params })
}
src/view/order/component/detailModal.vue
@@ -9,21 +9,21 @@
            <!-- 订单信息 -->
            <div v-show="tabPosition == 'order'">
                <el-descriptions title="" :column="3">
                    <el-descriptions-item label="公司名称">射洪洪达出租车有限公司</el-descriptions-item>
                    <el-descriptions-item label="发起地区划">91510922769973987B</el-descriptions-item>
                    <el-descriptions-item label="订单编号">四川省遂宁市射洪市太和街道万洪二路33、35、37号</el-descriptions-item>
                    <el-descriptions-item label="机动车驾驶证编号">射洪洪达出租车有限公司</el-descriptions-item>
                    <el-descriptions-item label="驾驶员手机号">91510922769973987B</el-descriptions-item>
                    <el-descriptions-item label="车辆号牌">四川省遂宁市射洪市太和街道万洪二路33、35、37号</el-descriptions-item>
                    <el-descriptions-item label="派单时间">射洪洪达出租车有限公司</el-descriptions-item>
                    <el-descriptions-item label="订单发起时间">91510922769973987B</el-descriptions-item>
                    <el-descriptions-item label="乘客备注">四川省遂宁市射洪市太和街道万洪二路33、35、37号</el-descriptions-item>
                    <el-descriptions-item label="出发地点">射洪洪达出租车有限公司</el-descriptions-item>
                    <el-descriptions-item label="下车地点">91510922769973987B</el-descriptions-item>
                    <el-descriptions-item label="运价类型编号">四川省遂宁市射洪市太和街道万洪二路33、35、37号</el-descriptions-item>
                    <el-descriptions-item label="订单金额">射洪洪达出租车有限公司</el-descriptions-item>
                    <el-descriptions-item label="实付价">91510922769973987B</el-descriptions-item>
                    <el-descriptions-item label="支付方式">四川省遂宁市射洪市太和街道万洪二路33、35、37号</el-descriptions-item>
                    <el-descriptions-item label="公司名称">{{ orderData.enterpriseName }}</el-descriptions-item>
                    <el-descriptions-item label="发起地区划">{{ orderData.drivingLicenseNumber }}</el-descriptions-item>
                    <el-descriptions-item label="订单编号">{{ orderData.code }}</el-descriptions-item>
                    <el-descriptions-item label="机动车驾驶证编号">{{ orderData.drivingLicenseNumber }}</el-descriptions-item>
                    <el-descriptions-item label="驾驶员手机号">{{ orderData.driverPhone }}</el-descriptions-item>
                    <el-descriptions-item label="车辆号牌">{{ orderData.vehicleNumber }}</el-descriptions-item>
                    <el-descriptions-item label="派单时间">{{ orderData.orderDeliveryTime }}</el-descriptions-item>
                    <el-descriptions-item label="订单发起时间">{{ orderData.orderTime }}</el-descriptions-item>
                    <el-descriptions-item label="乘客备注">{{ orderData.remark }}</el-descriptions-item>
                    <el-descriptions-item label="出发地点">{{ orderData.orderPlace }}</el-descriptions-item>
                    <el-descriptions-item label="下车地点">{{ orderData.dropOffPoint }}</el-descriptions-item>
                    <el-descriptions-item label="运价类型编号">{{ orderData.tariffType }}</el-descriptions-item>
                    <el-descriptions-item label="订单金额">¥{{ orderData.orderAmount }}</el-descriptions-item>
                    <el-descriptions-item label="实付价">¥{{ orderData.paymentAmount }}</el-descriptions-item>
                    <el-descriptions-item label="支付方式">{{ orderData.paymentMode }}</el-descriptions-item>
                </el-descriptions>
            </div>
            <!-- 行程轨迹 -->
@@ -43,15 +43,22 @@
        return {
            dialogVisible: false,
            tabPosition: 'order',
            orderData: {},
            monitoringData: {},
            travelData: []
        };
    },
    computed: {},
    watch: {},
    created() { },
    mounted() {
        this.initMap();
    },
    methods: {
        initData(orderData = {}, monitoringData = {}, travelData = {},) {
            this.orderData = orderData
            this.monitoringData = monitoringData
            this.travelData = travelData
            this.dialogVisible = true
            this.initMap();
        },
        initMap() {
            window._AMapSecurityConfig = {
                securityJsCode: this.$secretKey,
@@ -65,22 +72,19 @@
            })
                .then((AMap) => {
                    this.map = new AMap.Map("mapContainer", {
                        center: [105.574542, 30.5061493],
                        center: [this.travelData[this.travelData.length / 2].longitude, this.travelData[this.travelData.length / 2].latitude],
                        zoom: 15,
                    });
                    this.map.addControl(new AMap.ToolBar());
                    let path = [
                        new AMap.LngLat(105.57, 30.51),
                        new AMap.LngLat(116.382122, 39.901176),
                        new AMap.LngLat(116.387271, 39.912501),
                        new AMap.LngLat(116.398258, 39.9046),
                    ]
                    let path = this.travelData.map(item => {
                        return new AMap.LngLat(item.longitude, item.latitude)
                    })
                    const content = `<div class="custom-content-marker">
                                        <img src="${require("@/assets/logo.png")}">
                                    </div>`;
                    const marker = new AMap.Marker({
                        content: content, //自定义点标记覆盖物内容
                        position: [105.57, 30.51], //基点位置
                        position: [this.travelData[0].longitude, this.travelData[0].latitude], //基点位置
                        offset: new AMap.Pixel(-30, -15), //相对于基点的偏移位置
                    });
                    this.map.add(marker);
src/view/order/index.vue
@@ -2,35 +2,37 @@
    <div>
        <div class="form flex a-center j-between mt--23">
            <div class="form-left ml--30">
                <el-form :inline="true" :model="searchForm" class="demo-form-inline">
                    <el-form-item label="派单时间:" prop="level" class="unset_m" style="margin-right: 100px;">
                        <el-date-picker style="width: 400px;" v-model="value1" type="datetimerange" range-separator="至"
                            start-placeholder="开始日期" end-placeholder="结束日期">
                <el-form :inline="true" :model="searchForm">
                    <el-form-item label="派单时间:" prop="orderDeliveryTime" style="margin-right: 100px;">
                        <el-date-picker style="width: 400px;" v-model="searchForm.orderDeliveryTime"
                            type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
                        </el-date-picker>
                    </el-form-item>
                    <el-form-item label="订单编号:" prop="name" class="unset_m" style="margin-right: 100px;">
                        <el-input v-model="searchForm.name" placeholder="请输入"></el-input>
                    <el-form-item label="订单编号:" prop="code" style="margin-right: 100px;">
                        <el-input v-model="searchForm.code" placeholder="请输入"></el-input>
                    </el-form-item>
                    <el-form-item label="车辆号牌:" prop="name" class="unset_m" style="margin-right: 100px;">
                        <el-input v-model="searchForm.name" placeholder="请输入"></el-input>
                    <el-form-item label="车辆号牌:" prop="vehicleNumber" style="margin-right: 100px;">
                        <el-input v-model="searchForm.vehicleNumber" placeholder="请输入"></el-input>
                    </el-form-item>
                    <el-form-item label="驾驶员姓名:" prop="date" class="unset_m" style="margin-right: 100px;">
                        <el-input v-model="searchForm.name" placeholder="请输入"></el-input>
                    <el-form-item label="驾驶员姓名:" prop="driverName" style="margin-right: 100px;">
                        <el-input v-model="searchForm.driverName" placeholder="请输入"></el-input>
                    </el-form-item>
                    <el-form-item label="公司名称:" prop="date" class="unset_m" style="margin-right: 100px;">
                        <el-input class="companyName" v-model="searchForm.name" placeholder="请输入"></el-input>
                    <el-form-item label="公司名称:" prop="enterpriseName" style="margin-right: 100px;">
                        <el-input class="companyName" v-model="searchForm.enterpriseName" placeholder="请输入"></el-input>
                    </el-form-item>
                    <el-form-item label="上车地点:" prop="date" class="unset_m" style="margin-right: 100px;">
                        <el-input v-model="searchForm.name" placeholder="请输入"></el-input>
                    <el-form-item label="上车地点:" prop="boardingPoint" style="margin-right: 100px;">
                        <el-input v-model="searchForm.boardingPoint" placeholder="请输入"></el-input>
                    </el-form-item>
                    <el-form-item label="下车地点:" prop="date" class="unset_m" style="margin-right: 100px;">
                        <el-input v-model="searchForm.name" placeholder="请输入"></el-input>
                    <el-form-item label="下车地点:" prop="dropOffPoint" style="margin-right: 100px;">
                        <el-input v-model="searchForm.dropOffPoint" placeholder="请输入"></el-input>
                    </el-form-item>
                    <el-form-item label="里程范围:" prop="date" class="unset_m" style="margin-right: 100px;">
                    <el-form-item label="里程范围:" style="margin-right: 100px;">
                        <div class="flex a-center j-between">
                            <el-input class="range" v-model="searchForm.name" placeholder="请输入"></el-input>
                            <el-input class="range" v-model="searchForm.passengerMileageStart"
                                placeholder="请输入"></el-input>
                            <div class="mx--20">-</div>
                            <el-input class="range" v-model="searchForm.name" placeholder="请输入"></el-input>
                            <el-input class="range" v-model="searchForm.passengerMileageEnd"
                                placeholder="请输入"></el-input>
                        </div>
                    </el-form-item>
                </el-form>
@@ -48,21 +50,25 @@
        </div>
        <div class="table-box ml--30 mt--23 mr--30">
            <el-table :data="tableData" border stripe style="width: 100%" :height="height">
                <el-table-column prop="date" label="序号"></el-table-column>
                <el-table-column prop="name" label="订单编号"></el-table-column>
                <el-table-column prop="name" label="车牌号"></el-table-column>
                <el-table-column prop="name" label="车牌颜色"></el-table-column>
                <el-table-column prop="name" label="车辆所属公司"></el-table-column>
                <el-table-column prop="name" label="上车地点"></el-table-column>
                <el-table-column prop="name" label="下车地点"></el-table-column>
                <el-table-column prop="name" label="载客里程"></el-table-column>
                <el-table-column prop="name" label="驾驶员名称"></el-table-column>
                <el-table-column prop="name" label="驾驶员电话"></el-table-column>
                <el-table-column prop="name" label="派单时间"></el-table-column>
                <el-table-column prop="name" label="订单金额"></el-table-column>
                <el-table-column prop="name" label="操作">
                    <template slot-scope="scope">
                        <el-button @click="showDetail">详情</el-button>
                <el-table-column type="index" width="55" label="序号" />
                <el-table-column prop="code" label="订单编号" />
                <el-table-column prop="vehicleNumber" label="车牌号" />
                <el-table-column prop="licensePlateColor" label="车牌颜色" />
                <el-table-column prop="enterpriseName" label="车辆所属公司" />
                <el-table-column prop="orderPlace" label="上车地点" />
                <el-table-column prop="dropOffPoint" label="下车地点" />
                <el-table-column prop="passengerMileage" label="载客里程" />
                <el-table-column prop="driverName" label="驾驶员名称" />
                <el-table-column prop="driverPhone" label="驾驶员电话" />
                <el-table-column prop="orderDeliveryTime" label="派单时间" />
                <el-table-column prop="orderAmount" label="订单金额">
                    <template #default="{ row }">
                        ¥{{ row.orderAmount }}
                    </template>
                </el-table-column>
                <el-table-column label="操作">
                    <template #default="{ row }">
                        <el-button @click="showDetail(row)">详情</el-button>
                    </template>
                </el-table-column>
            </el-table>
@@ -80,6 +86,8 @@
<script>
import DetailModal from "./component/detailModal"
import { exportExcell } from '@/utils/utils'
import { getOrderList, getOrderInfo, getOrderMonitoring, getOrderTravel } from './service'
import moment from "moment/moment";
export default {
    components: {
@@ -100,23 +108,57 @@
            return this.$baseTableHeight()
        },
    },
    created() {
        this.getTableList()
    },
    methods: {
        showDetail() {
            this.$refs.detailModal.dialogVisible = true
        },
        reset() {
            this.searchForm = {
                total: 0,
                page: 1,
                pageSize: 10
            }
            this.getTableList()
        },
        search() {
            this.getTableList()
        },
        exportExcell() {
            let obj = { ...this.searchForm }
            delete obj.total
            if (obj.orderDeliveryTime) {
                obj.orderDeliveryTimeStart = moment(obj.orderDeliveryTime[0]).format('YYYY-MM-DD HH-mm-ss')
                obj.orderDeliveryTimeEnd = moment(obj.orderDeliveryTime[1]).format('YYYY-MM-DD HH-mm-ss')
                delete obj.orderDeliveryTime
            }
            exportExcell('投诉记录导出', obj, '/system/order/exportOrderList')
        },
        handleSizeChange(e) {
            this.searchForm.pageSize = e
            this.getTableList()
        },
        handleCurrentChange(e) {
            this.searchForm.page = e
            this.getTableList()
        },
        getTableList() {
            let obj = { ...this.searchForm }
            delete obj.total
            if (obj.orderDeliveryTime) {
                obj.orderDeliveryTimeStart = moment(obj.orderDeliveryTime[0]).format('YYYY-MM-DD HH-mm-ss')
                obj.orderDeliveryTimeEnd = moment(obj.orderDeliveryTime[1]).format('YYYY-MM-DD HH-mm-ss')
                delete obj.orderDeliveryTime
            }
            getOrderList(obj).then(res => {
                this.tableData = res.records
                this.searchForm.total = res.total
            })
        },
        showDetail(row) {
            // Promise.all([getOrderInfo(row.id), getOrderMonitoring({ id: row.id }), getOrderTravel({ id: row.id })]).then(res => {
            Promise.all([getOrderInfo(row.id), getOrderTravel({ id: row.id })]).then(res => {
                this.$refs.detailModal.initData(res[0], {}, res[2])
            })
        },
    }
}
src/view/order/service.js
New file
@@ -0,0 +1,21 @@
import axios from '@/utils/request';
// 获取订单详情
export const getOrderInfo = (id) => {
    return axios.get(`/system/order/getOrderInfo/${id}`)
}
// 获取订单列表
export const getOrderList = (params) => {
    return axios.get(`/system/order/getOrderList`, { params })
}
// 获取订单监控
export const getOrderMonitoring = (params) => {
    return axios.get(`/system/order/getOrderMonitoring`, { params })
}
// 获取订单行程轨迹
export const getOrderTravel = (params) => {
    return axios.get(`/system/order/getOrderTravel`, { params })
}
src/view/systemManage/driver/component/detailModal.vue
@@ -2,45 +2,45 @@
    <div>
        <el-dialog title="驾驶员信息" :visible.sync="dialogVisible" width="50%" :modal-append-to-body="false">
            <el-descriptions title="" :column="2">
                <el-descriptions-item label="机动车驾驶员姓名">射洪洪达出租车有限公司</el-descriptions-item>
                <el-descriptions-item label="驾驶员婚姻状况">91510922769973987B</el-descriptions-item>
                <el-descriptions-item label="驾驶员性别">四川省遂宁市射洪市太和街道万洪二路33、35、37号</el-descriptions-item>
                <el-descriptions-item label="出生日期">14725836902</el-descriptions-item>
                <el-descriptions-item label="驾驶员手机号">射洪洪达出租车有限公司</el-descriptions-item>
                <el-descriptions-item label="驾驶员民族">91510922769973987B</el-descriptions-item>
                <el-descriptions-item label="驾驶员通信地址">四川省遂宁市射洪市太和街道万洪二路33、35、37号</el-descriptions-item>
                <el-descriptions-item label="驾驶员外语能力">14725836902</el-descriptions-item>
                <el-descriptions-item label="驾驶员学历">射洪洪达出租车有限公司</el-descriptions-item>
                <el-descriptions-item label="户口登记机关名称">91510922769973987B</el-descriptions-item>
                <el-descriptions-item label="户口地址或长住地址">四川省遂宁市射洪市太和街道万洪二路33、35、37号</el-descriptions-item>
                <el-descriptions-item label="驾驶员合同(或协议)签署公司">14725836902</el-descriptions-item>
                <el-descriptions-item label="驾驶员照片文件编号">射洪洪达出租车有限公司</el-descriptions-item>
                <el-descriptions-item label="机动车驾驶证扫描文件编号">91510922769973987B</el-descriptions-item>
                <el-descriptions-item label="准驾车型">四川省遂宁市射洪市太和街道万洪二路33、35、37号</el-descriptions-item>
                <el-descriptions-item label="初次领取驾驶证日期">14725836902</el-descriptions-item>
                <el-descriptions-item label="驾驶证有效期限起">射洪洪达出租车有限公司</el-descriptions-item>
                <el-descriptions-item label="驾驶证有效期限止">91510922769973987B</el-descriptions-item>
                <el-descriptions-item label="是否巡游出租汽车驾驶员">四川省遂宁市射洪市太和街道万洪二路33、35、37号</el-descriptions-item>
                <el-descriptions-item label="资格证发证日期">14725836902</el-descriptions-item>
                <el-descriptions-item label="初次领取资格证日期">射洪洪达出租车有限公司</el-descriptions-item>
                <el-descriptions-item label="资格证有效起始日期">91510922769973987B</el-descriptions-item>
                <el-descriptions-item label="资格证有效截止日期">四川省遂宁市射洪市太和街道万洪二路33、35、37号</el-descriptions-item>
                <el-descriptions-item label="驾驶员在平台的注册日期">14725836902</el-descriptions-item>
                <el-descriptions-item label="是否在驾驶员黑名单中">射洪洪达出租车有限公司</el-descriptions-item>
                <el-descriptions-item label="是否转职驾驶员">91510922769973987B</el-descriptions-item>
                <el-descriptions-item label="公司名称">四川省遂宁市射洪市太和街道万洪二路33、35、37号</el-descriptions-item>
                <el-descriptions-item label="运营类型">14725836902</el-descriptions-item>
                <el-descriptions-item label="网约车驾驶员资格证号">射洪洪达出租车有限公司</el-descriptions-item>
                <el-descriptions-item label="网约车驾驶员证发证机构">91510922769973987B</el-descriptions-item>
                <el-descriptions-item label="合同(或协议)有效期起">四川省遂宁市射洪市太和街道万洪二路33、35、37号</el-descriptions-item>
                <el-descriptions-item label="合同(或协议)有效期止">14725836902</el-descriptions-item>
                <el-descriptions-item label="国籍">射洪洪达出租车有限公司</el-descriptions-item>
                <el-descriptions-item label="紧急情况联系人">91510922769973987B</el-descriptions-item>
                <el-descriptions-item label="紧急情况联系人电话">四川省遂宁市射洪市太和街道万洪二路33、35、37号</el-descriptions-item>
                <el-descriptions-item label="紧急情况联系人通讯地址">14725836902</el-descriptions-item>
                <el-descriptions-item label="状态">射洪洪达出租车有限公司</el-descriptions-item>
                <el-descriptions-item label="操作标识">91510922769973987B</el-descriptions-item>
                <el-descriptions-item label="更新时间">四川省遂宁市射洪市太和街道万洪二路33、35、37号</el-descriptions-item>
                <el-descriptions-item label="机动车驾驶员姓名">{{ data.name }}</el-descriptions-item>
                <el-descriptions-item label="驾驶员婚姻状况">{{ data.maritalStatus }}</el-descriptions-item>
                <el-descriptions-item label="驾驶员性别">{{ data.gender }}</el-descriptions-item>
                <el-descriptions-item label="出生日期">{{ data.birthday }}</el-descriptions-item>
                <el-descriptions-item label="驾驶员手机号">{{ data.phone }}</el-descriptions-item>
                <el-descriptions-item label="驾驶员民族">{{ data.nationality }}</el-descriptions-item>
                <el-descriptions-item label="驾驶员通信地址">{{ data.mailingAddress }}</el-descriptions-item>
                <el-descriptions-item label="驾驶员外语能力">{{ data.foreignLanguages }}</el-descriptions-item>
                <el-descriptions-item label="驾驶员学历">{{ data.education     }}</el-descriptions-item>
                <el-descriptions-item label="户口登记机关名称">{{ data.householdRegistrationAuthority }}</el-descriptions-item>
                <el-descriptions-item label="户口地址或长住地址">{{ data.domicile }}</el-descriptions-item>
                <el-descriptions-item label="驾驶员合同(或协议)签署公司">{{ data.contractingCompany }}</el-descriptions-item>
                <el-descriptions-item label="驾驶员照片文件编号">{{ data.claude }}</el-descriptions-item>
                <el-descriptions-item label="机动车驾驶证扫描文件编号">{{ data.drivingLicenceFile }}</el-descriptions-item>
                <el-descriptions-item label="准驾车型">{{ data.quasiDrivingType }}</el-descriptions-item>
                <el-descriptions-item label="初次领取驾驶证日期">{{ data.firstLicenseDate }}</el-descriptions-item>
                <el-descriptions-item label="驾驶证有效期限起">{{ data.drivingLicenceStart }}</el-descriptions-item>
                <el-descriptions-item label="驾驶证有效期限止">{{ data.drivingLicenceEnd }}</el-descriptions-item>
                <el-descriptions-item label="是否巡游出租汽车驾驶员">{{ data.cruiseTaxi }}</el-descriptions-item>
                <el-descriptions-item label="资格证发证日期">{{ data.certificationIssueDate     }}</el-descriptions-item>
                <el-descriptions-item label="初次领取资格证日期">{{ data.firstLicenseCertification }}</el-descriptions-item>
                <el-descriptions-item label="资格证有效起始日期">{{ data.certificationStart     }}</el-descriptions-item>
                <el-descriptions-item label="资格证有效截止日期">{{ data.certificationEnd }}</el-descriptions-item>
                <el-descriptions-item label="驾驶员在平台的注册日期">{{ data.registrationDate }}</el-descriptions-item>
                <el-descriptions-item label="是否在驾驶员黑名单中">{{ data.blacklist }}</el-descriptions-item>
                <el-descriptions-item label="是否专职驾驶员">{{ data.fullTimeDriver }}</el-descriptions-item>
                <el-descriptions-item label="公司名称">{{ data.contractingCompany }}</el-descriptions-item>
                <el-descriptions-item label="运营类型">{{ data.operationType }}</el-descriptions-item>
                <el-descriptions-item label="网约车驾驶员资格证号">{{ data.certification }}</el-descriptions-item>
                <el-descriptions-item label="网约车驾驶员证发证机构">{{ data.orgName }}</el-descriptions-item>
                <el-descriptions-item label="合同(或协议)有效期起">{{ data.contractLifeStart }}</el-descriptions-item>
                <el-descriptions-item label="合同(或协议)有效期止">{{ data.contractLifeEnd }}</el-descriptions-item>
                <el-descriptions-item label="国籍">{{ data.nation }}</el-descriptions-item>
                <el-descriptions-item label="紧急情况联系人">{{ data.emergencyContact }}</el-descriptions-item>
                <el-descriptions-item label="紧急情况联系人电话">{{ data.emergencyPhone }}</el-descriptions-item>
                <el-descriptions-item label="紧急情况联系人通讯地址">{{ data.emergencyMailingAddress }}</el-descriptions-item>
                <el-descriptions-item label="状态">{{ ['有效','无效'][data.status - 1] }}</el-descriptions-item>
                <el-descriptions-item label="操作标识">{{ ['新增','修改'][data.flag - 1] }}</el-descriptions-item>
                <el-descriptions-item label="更新时间">{{ data.updateTime }}</el-descriptions-item>
            </el-descriptions>
        </el-dialog>
    </div>
@@ -52,7 +52,8 @@
    props: {},
    data() {
        return {
            dialogVisible: false
            dialogVisible: false,
            data: {}
        };
    },
    computed: {},
@@ -60,6 +61,10 @@
    created() { },
    mounted() { },
    methods: {
        initData(data) {
            this.data = data
            this.dialogVisible = true
        },
        closeClick() {
            this.dialogVisible = false
        }
src/view/systemManage/driver/index.vue
@@ -3,17 +3,17 @@
        <div class="form flex a-center j-between mt--23">
            <div class="form-left ml--30">
                <el-form :inline="true" :model="searchForm">
                    <el-form-item label="公司名称:" prop="level" class="unset_m" style="margin-right: 15px;">
                        <el-input v-model="searchForm.level" placeholder="请输入"></el-input>
                    <el-form-item label="公司名称:" prop="enterpriseName" class="unset_m" style="margin-right: 15px;">
                        <el-input v-model="searchForm.enterpriseName" placeholder="请输入"></el-input>
                    </el-form-item>
                    <el-form-item label="驾驶员手机号:" prop="name" class="unset_m" style="margin-right: 15px;">
                        <el-input v-model="searchForm.name" placeholder="请输入"></el-input>
                    <el-form-item label="驾驶员手机号:" prop="phone" class="unset_m" style="margin-right: 15px;">
                        <el-input v-model="searchForm.phone" placeholder="请输入"></el-input>
                    </el-form-item>
                    <el-form-item label="驾驶员姓名:" prop="name" class="unset_m" style="margin-right: 15px;">
                        <el-input v-model="searchForm.name" placeholder="请输入"></el-input>
                    <el-form-item label="驾驶员姓名:" prop="driverName" class="unset_m" style="margin-right: 15px;">
                        <el-input v-model="searchForm.driverName" placeholder="请输入"></el-input>
                    </el-form-item>
                    <el-form-item label="紧急联系人姓名:" prop="date" class="unset_m" style="margin-right: 15px;">
                        <el-input v-model="searchForm.name" placeholder="请输入"></el-input>
                    <el-form-item label="紧急联系人姓名:" prop="emergencyContact" class="unset_m" style="margin-right: 15px;">
                        <el-input v-model="searchForm.emergencyContact" placeholder="请输入"></el-input>
                    </el-form-item>
                </el-form>
            </div>
@@ -26,18 +26,18 @@
        </div>
        <div class="table-box ml--30 mt--23 mr--30">
            <el-table :data="tableData" border stripe style="width: 100%" :height="height">
                <el-table-column prop="date" label="序号"></el-table-column>
                <el-table-column prop="name" label="机动车驾驶员姓名"></el-table-column>
                <el-table-column prop="name" label="车辆所属公司"></el-table-column>
                <el-table-column prop="name" label="机动车驾驶证号"></el-table-column>
                <el-table-column prop="name" label="驾驶员通信地址"></el-table-column>
                <el-table-column prop="name" label="紧急情况联系人"></el-table-column>
                <el-table-column prop="name" label="紧急情况联系人电话"></el-table-column>
                <el-table-column prop="name" label="驾驶员手机号"></el-table-column>
                <el-table-column prop="name" label="驾驶员合同签订公司"></el-table-column>
                <el-table-column prop="name" label="操作">
                    <template slot-scope="{row}">
                        <el-button @click="showDetail">详情</el-button>
                <el-table-column type="index" width="55" label="序号"></el-table-column>
                <el-table-column prop="driverName" label="机动车驾驶员姓名"></el-table-column>
                <el-table-column prop="enterpriseName" label="车辆所属公司"></el-table-column>
                <el-table-column prop="drivingLicenseNumber" label="机动车驾驶证号"></el-table-column>
                <el-table-column prop="mailingAddress" label="驾驶员通信地址"></el-table-column>
                <el-table-column prop="emergencyContact" label="紧急情况联系人"></el-table-column>
                <el-table-column prop="emergencyPhone" label="紧急情况联系人电话"></el-table-column>
                <el-table-column prop="phone" label="驾驶员手机号"></el-table-column>
                <el-table-column prop="contractingCompany" label="驾驶员合同签订公司"></el-table-column>
                <el-table-column label="操作">
                    <template #default="{ row }">
                        <el-button @click="showDetail(row)">详情</el-button>
                    </template>
                </el-table-column>
            </el-table>
@@ -54,6 +54,7 @@
<script>
import DetailModal from "./component/detailModal"
import { getDriverInfo, getDriverList } from './service'
export default {
    components: {
@@ -74,20 +75,44 @@
            return this.$baseTableHeight()
        },
    },
    created() {
        this.getTableList()
    },
    methods: {
        showDetail() {
            this.$refs.detailModal.dialogVisible = true
        },
        reset() {
            this.searchForm = {
                total: 0,
                page: 1,
                pageSize: 10
            }
            this.getTableList()
        },
        search() {
            this.getTableList()
        },
        exportExcell() {
        },
        handleSizeChange(e) {
            this.searchForm.pageSize = e
            this.getTableList()
        },
        handleCurrentChange(e) {
            this.searchForm.page = e
            this.getTableList()
        },
        getTableList() {
            let obj = { ...this.searchForm }
            delete obj.total
            getDriverList(obj).then(res => {
                this.tableData = res.records
                this.searchForm.total = res.total
            })
        },
        showDetail(row) {
            getDriverInfo(row.id).then(res=>{
            })
        },
    }
}
src/view/systemManage/driver/service.js
New file
@@ -0,0 +1,11 @@
import axios from '@/utils/request';
// 获取司机详情
export const getDriverInfo = (id) => {
    return axios.get(`/system/driver/getDriverInfo/{id}/${id}`)
}
// 获取司机列表
export const getDriverList = (params) => {
    return axios.get(`/system/driver/getDriverList`, { params })
}