Compare commits
2 Commits
92d829c9e8
...
1684ed4262
Author | SHA1 | Date | |
---|---|---|---|
1684ed4262 | |||
34f47627b3 |
@ -8,6 +8,15 @@ export function listInfo(query) {
|
|||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 已撤销订单列表
|
||||||
|
export function listByRevoke(query) {
|
||||||
|
return request({
|
||||||
|
url: '/system/rescueInfo/listByRevoke',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
export function moneyManagement(query) {
|
export function moneyManagement(query) {
|
||||||
return request({
|
return request({
|
||||||
url: '/system/rescueInfo/moneyManagement',
|
url: '/system/rescueInfo/moneyManagement',
|
||||||
|
@ -580,6 +580,7 @@ export default {
|
|||||||
this.open = true
|
this.open = true
|
||||||
this.title = '添加司机'
|
this.title = '添加司机'
|
||||||
|
|
||||||
|
this.form.staffType = 'jysj'
|
||||||
// 获取所需数据
|
// 获取所需数据
|
||||||
Promise.all([
|
Promise.all([
|
||||||
this.getSecondDispatcherList(),
|
this.getSecondDispatcherList(),
|
||||||
@ -693,7 +694,7 @@ export default {
|
|||||||
driverId = response.data
|
driverId = response.data
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理车辆分配 - 确保副车包含主车
|
// 处理车辆分配
|
||||||
if (driverId) {
|
if (driverId) {
|
||||||
await this.handleCarAssignment(driverId)
|
await this.handleCarAssignment(driverId)
|
||||||
}
|
}
|
||||||
|
852
src/views/rescue/revokeIndex.vue
Normal file
852
src/views/rescue/revokeIndex.vue
Normal file
@ -0,0 +1,852 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
|
||||||
|
<el-form-item label="客户名称" prop="connectionName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.connectionName"
|
||||||
|
placeholder="请输入客户名称"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="客户手机号" prop="map.connectionPhone">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.connectionPhone"
|
||||||
|
placeholder="请输入客户手机号"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="客户车牌号" prop="licenseNum">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.licenseNum"
|
||||||
|
placeholder="请输入车牌号"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="司机名称" prop="driverName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.driverName"
|
||||||
|
placeholder="请输入司机名称"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="司机车牌号" prop="driverCarNum">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.driverCarNum"
|
||||||
|
placeholder="请输入救援车辆车牌号"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="救援类型" prop="rescueType">
|
||||||
|
<el-select v-model="queryParams.rescueType" placeholder="请选择救援类型" clearable>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in this.getDictDatas(DICT_TYPE.DLJY_TYPE)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="收费类型" prop="feeType">
|
||||||
|
<el-select v-model="queryParams.feeType" placeholder="请选择收费类型" clearable>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in this.getDictDatas(DICT_TYPE.FEE_TYPE)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="救援状态" prop="rescueStatus">
|
||||||
|
<el-select v-model="queryParams.rescueStatus" placeholder="请选择救援状态" clearable>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in this.getDictDatas(DICT_TYPE.JY_STATUS)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="订单状态" prop="orderStatus">
|
||||||
|
<el-select v-model="queryParams.orderStatus" placeholder="请选择订单状态" clearable>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in this.getDictDatas(DICT_TYPE.JY_ORDER_STATUS)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="救援时间" prop="maintenanceTime">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="time1"
|
||||||
|
type="daterange"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
align="right"
|
||||||
|
unlink-panels
|
||||||
|
range-separator="至"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
:picker-options="pickerOptions"
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="primary" icon="el-icon-download" :loading="exportLoading" size="mini" @click="handleExport">
|
||||||
|
导出
|
||||||
|
</el-button>
|
||||||
|
</el-col>
|
||||||
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="infoList" @selection-change="handleSelectionChange">
|
||||||
|
<el-table-column label="序号" align="center">
|
||||||
|
<template scope="scope">
|
||||||
|
<span>{{ scope.$index + 1 }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="客户信息" align="center">
|
||||||
|
<el-table-column label="姓名" align="center" prop="connectionName"/>
|
||||||
|
<el-table-column label="手机号" width="130" align="center" prop="connectionPhone"/>
|
||||||
|
<el-table-column label="车牌号" width="150" align="center" prop="licenseNum">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span v-if="editType===0 && scope.$index == editIdx"><el-input v-model="scope.row.licenseNum "></el-input><i
|
||||||
|
@click="editInfo(scope.row)" class="el-icon-check"
|
||||||
|
></i></span>
|
||||||
|
<span v-else>{{ scope.row.licenseNum }}<i @click="editInfoFront(0,scope.$index)" class="el-icon-edit"
|
||||||
|
></i></span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="救援司机" align="center">
|
||||||
|
<el-table-column label="姓名" align="center" prop="driverName"/>
|
||||||
|
<el-table-column label="手机号" width="130" align="center" prop="driverPhoneNum"/>
|
||||||
|
<el-table-column label="车牌号" width="120" align="center" prop="driverCarNum">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
|
||||||
|
<span v-if="editType===1 && scope.$index == editIdx"><el-input v-model="scope.row.driverCarNum "></el-input><i
|
||||||
|
@click="editInfo(scope.row)" class="el-icon-check"
|
||||||
|
></i></span>
|
||||||
|
<span v-else>{{ scope.row.driverCarNum }}<i @click="editInfoFront(1,scope.$index)" class="el-icon-edit"></i></span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="救援时间" width="100" align="center" prop="rescueTime">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ parseTime(scope.row.rescueTime, '{y}-{m}-{d} {h}:{m}') }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="救援类型" align="center" prop="rescueType">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :type="DICT_TYPE.DLJY_TYPE" :value="scope.row.rescueType"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- <el-table-column label="路段" align="center" prop="sectionRoad"/>-->
|
||||||
|
<el-table-column label="渠道" align="center" prop="channel"/>
|
||||||
|
<el-table-column label="来源" align="center" prop="source"/>
|
||||||
|
<el-table-column label="车辆类型" align="center" prop="carType">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :type="DICT_TYPE.RESCUE_CAR_TYPE" :value="scope.row.carType"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column width="130" label="救援地点" :show-overflow-tooltip="true" align="center" prop="rescuePosition"/>
|
||||||
|
<el-table-column label="收费类型" align="center" prop="feeType">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :type="DICT_TYPE.FEE_TYPE" :value="scope.row.feeType"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="支付方式" align="center" prop="payType" :formatter="payTypeFormatter" />
|
||||||
|
<el-table-column label="救援状态" align="center" prop="rescueStatus">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :type="DICT_TYPE.JY_STATUS" :value="scope.row.rescueStatus"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="订单状态·" align="center" prop="orderStatus">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span v-if="scope.row.orderStatus">
|
||||||
|
<dict-tag :type="DICT_TYPE.JY_ORDER_STATUS" :value="scope.row.orderStatus"/>
|
||||||
|
</span>
|
||||||
|
<span v-else>
|
||||||
|
未成单
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column label="应收金额(元)" width="150" align="center" prop="setMoney">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
|
||||||
|
<span v-if="editType===2 && scope.$index == editIdx"><el-input oninput="value=value.replace(/[^0-9.]/g,'')"
|
||||||
|
v-model="scope.row.setMoney2 "
|
||||||
|
></el-input><i @click="editInfo(scope.row,2)" class="el-icon-check"></i></span>
|
||||||
|
<span v-else>{{ scope.row.setMoney / 100 }}<i @click="editInfoFront(2,scope.$index)" class="el-icon-edit"></i></span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="实收金额(元)" width="150" align="center" prop="setMoney">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.payMoney / 100 }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="撤销人" align="center" width="100" prop="revokeUserName" />
|
||||||
|
<el-table-column label="撤销时间" align="center" width="100" prop="revokeTime" >
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ parseTime(scope.row.revokeTime, '{y}-{m}-{d} {h}:{i}') }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column fixed="right" label="操作" align="center" width="150" class-name="small-padding fixed-width">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-picture-outline"
|
||||||
|
|
||||||
|
@click="watchImg(scope.row)"
|
||||||
|
>救援图片
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
>删除
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination
|
||||||
|
v-show="total>0"
|
||||||
|
:total="total"
|
||||||
|
:page.sync="queryParams.pageNo"
|
||||||
|
:limit.sync="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- 添加或修改道路救援模块对话框 -->
|
||||||
|
<el-dialog :title="title" :visible.sync="opens" width="600px" append-to-body>
|
||||||
|
|
||||||
|
<Map ref="mapComponent"></Map>
|
||||||
|
<div class="lang-for" v-for="(item,index) in ztlist" :key="index">
|
||||||
|
<span style="margin-right: 10px;">{{ item.title }}</span>
|
||||||
|
<span>{{ item.distanceMeter / 1000 }} KM</span>
|
||||||
|
</div>
|
||||||
|
<div> 总里程: {{ zong / 1000 }} KM</div>
|
||||||
|
</el-dialog>
|
||||||
|
<el-dialog title="指派司机" :visible.sync="designateFlag" width="600px" append-to-body>
|
||||||
|
<el-form>
|
||||||
|
<el-form-item label="选择司机" prop="carType">
|
||||||
|
<el-select v-model="chooseDriverId" placeholder="请选择司机">
|
||||||
|
<el-option
|
||||||
|
v-for="item in driverList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.realName"
|
||||||
|
:value="item.id"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="driverOk">确 定</el-button>
|
||||||
|
<el-button @click="designateFlag = false">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
||||||
|
<el-form-item label="联系人名称" prop="connectionName">
|
||||||
|
<el-input v-model="form.connectionName" placeholder="请输入联系人名称"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="联系人手机号" prop="connectionPhone">
|
||||||
|
<el-input v-model="form.connectionPhone" placeholder="请输入联系人手机号"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="车牌号" prop="licenseNum">
|
||||||
|
<el-input v-model="form.licenseNum" placeholder="请输入车牌号"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="是否为预约单" prop="isAppointment">
|
||||||
|
<el-radio-group v-model="form.isAppointment">
|
||||||
|
<!-- <el-radio-->
|
||||||
|
<!-- v-for="dict in dict.type.yes_no"-->
|
||||||
|
<!-- :key="dict.value"-->
|
||||||
|
<!-- :label="dict.value"-->
|
||||||
|
<!-- >{{dict.label}}</el-radio>-->
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="救援时间" prop="rescueTime">
|
||||||
|
<el-date-picker clearable
|
||||||
|
v-model="form.rescueTime"
|
||||||
|
type="date"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
placeholder="请选择救援时间"
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="救援类型 1拖车2送油3搭电4换台5扣车" prop="rescueType">
|
||||||
|
<el-select v-model="form.rescueType" placeholder="请选择救援类型 1拖车2送油3搭电4换台5扣车">
|
||||||
|
<!-- <el-option-->
|
||||||
|
<!-- v-for="dict in dict.type.dljy_type"-->
|
||||||
|
<!-- :key="dict.value"-->
|
||||||
|
<!-- :label="dict.label"-->
|
||||||
|
<!-- :value="dict.value"-->
|
||||||
|
<!-- ></el-option>-->
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="车辆类型 大中小" prop="carType">
|
||||||
|
<el-select v-model="form.carType" placeholder="请选择车辆类型 大中小">
|
||||||
|
<!-- <el-option-->
|
||||||
|
<!-- v-for="dict in dict.type.rescue_car_type"-->
|
||||||
|
<!-- :key="dict.value"-->
|
||||||
|
<!-- :label="dict.label"-->
|
||||||
|
<!-- :value="dict.value"-->
|
||||||
|
<!-- ></el-option>-->
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="救援地点 详细描述" prop="rescuePosition">
|
||||||
|
<el-input v-model="form.rescuePosition" placeholder="请输入救援地点 详细描述"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="救援经度" prop="rescueLongitude">
|
||||||
|
<el-input v-model="form.rescueLongitude" placeholder="请输入救援经度"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="救援纬度" prop="rescueLatitude">
|
||||||
|
<el-input v-model="form.rescueLatitude" placeholder="请输入救援纬度"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="收费类型" prop="feeType">
|
||||||
|
<el-radio-group v-model="form.feeType">
|
||||||
|
<!-- <el-radio-->
|
||||||
|
<!-- v-for="dict in dict.type.fee_type"-->
|
||||||
|
<!-- :key="dict.value"-->
|
||||||
|
<!-- :label="dict.value"-->
|
||||||
|
<!-- >{{dict.label}}</el-radio>-->
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="车辆品牌" prop="carBrand">
|
||||||
|
<el-input v-model="form.carBrand" placeholder="请输入车辆品牌"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="目的地详细描述" prop="destinationInfo">
|
||||||
|
<el-input v-model="form.destinationInfo" placeholder="请输入目的地详细描述"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="目的地经度" prop="destinationLongitude">
|
||||||
|
<el-input v-model="form.destinationLongitude" placeholder="请输入目的地经度"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="目的地纬度" prop="destinationLatitude">
|
||||||
|
<el-input v-model="form.destinationLatitude" placeholder="请输入目的地纬度"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="救援司机主键" prop="driverId">
|
||||||
|
<el-input v-model="form.driverId" placeholder="请输入救援司机主键"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="应收金额" prop="rescueAmount">
|
||||||
|
<el-input v-model="form.rescueAmount" placeholder="请输入金额"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
<el-dialog title="订单收款" :visible.sync="repaymentOpen" width="600px" append-to-body>
|
||||||
|
<el-form ref="repaymentForm" :model="repaymentForm" :rules="rules" label-width="120px">
|
||||||
|
<el-form-item label="收款金额" prop="returnMoney">
|
||||||
|
<el-input-number v-model="repaymentForm.returnMoney" placeholder="请输入收款金额"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="备注" prop="returnMoney">
|
||||||
|
<el-input
|
||||||
|
type="textarea"
|
||||||
|
:autosize="{ minRows: 2, maxRows: 4}"
|
||||||
|
placeholder="请输入备注"
|
||||||
|
v-model="repaymentForm.remark"
|
||||||
|
>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="repaymentSubmit">确 定</el-button>
|
||||||
|
<el-button @click="cancelRepayment">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
<el-dialog title="确认收款" :visible.sync="confirmPaymentOpen" width="600px" append-to-body>
|
||||||
|
<el-form ref="confirmPaymentForm" :model="confirmPaymentForm" :rules="rules" label-width="120px">
|
||||||
|
<el-form-item label="实收金额" prop="payMoney">
|
||||||
|
<el-input-number v-model="confirmPaymentForm.payMoney" placeholder="请输入实收金额"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="备注" prop="confirmPaymentPersonRemark">
|
||||||
|
<el-input
|
||||||
|
type="textarea"
|
||||||
|
:autosize="{ minRows: 2, maxRows: 4}"
|
||||||
|
placeholder="请输入备注"
|
||||||
|
v-model="confirmPaymentForm.confirmPaymentPersonRemark"
|
||||||
|
>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="confirmPaymentSubmit">确 定</el-button>
|
||||||
|
<el-button @click="cancelConfirmPayment">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
<el-dialog title="救援图片" :visible.sync="imgFlag" width="500px" append-to-body>
|
||||||
|
|
||||||
|
<image-preview v-for="item in watchImgList" :src="item" :width="200" :height="200"/>
|
||||||
|
</el-dialog>
|
||||||
|
<!-- 查看确认收款信息弹框 -->
|
||||||
|
<el-dialog title="查看收款信息" :visible.sync="viewPaymentOpen" width="600px" append-to-body>
|
||||||
|
<el-form :model="viewPaymentForm" label-width="120px">
|
||||||
|
<el-form-item label="确认收款人">
|
||||||
|
<el-input v-model="viewPaymentForm.confirmPaymentPersonName" :disabled="true"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="确认收款时间">
|
||||||
|
<el-input v-model="viewPaymentForm.confirmPaymentTime" :disabled="true"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="实收金额">
|
||||||
|
<el-input :value="(viewPaymentForm.payMoney / 100).toFixed(2)" :disabled="true"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="确认收款备注">
|
||||||
|
<el-input
|
||||||
|
type="textarea"
|
||||||
|
:autosize="{ minRows: 2, maxRows: 4}"
|
||||||
|
:disabled="true"
|
||||||
|
v-model="viewPaymentForm.confirmPaymentPersonRemark"
|
||||||
|
>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="viewPaymentOpen = false">关 闭</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
routeInfo,
|
||||||
|
listInfo,
|
||||||
|
getInfo,
|
||||||
|
delInfo,
|
||||||
|
addInfo,
|
||||||
|
updateInfo,
|
||||||
|
getDriver,
|
||||||
|
designateDriver,
|
||||||
|
returnOrder,
|
||||||
|
watchImg,
|
||||||
|
downloadOrder, confirmReceipt, listByRevoke
|
||||||
|
} from '@/api/rescue/info'
|
||||||
|
import { getmap } from '@/api/Map/map'
|
||||||
|
import { getInfo as getUserInfo} from '@/api/login'
|
||||||
|
import Map from '../../components/Map/index'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'Info',
|
||||||
|
dicts: ['dljy_type', 'fee_type', 'rescue_car_type', 'yes_no', 'jy_status', 'jy_order_status'],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 导出遮罩层
|
||||||
|
exportLoading: false,
|
||||||
|
chooseDriverId: '',
|
||||||
|
rescueInfoId: '',
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
ztlist: [],
|
||||||
|
time1: [],
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
// 道路救援模块表格数据
|
||||||
|
infoList: [],
|
||||||
|
// 弹出层标题
|
||||||
|
title: '',
|
||||||
|
// 是否显示弹出层
|
||||||
|
open: false,
|
||||||
|
opens: false,
|
||||||
|
designateFlag: false,
|
||||||
|
zong: '',
|
||||||
|
repaymentForm: {},
|
||||||
|
confirmPaymentForm: {},
|
||||||
|
repaymentOpen: false,
|
||||||
|
confirmPaymentOpen: false,
|
||||||
|
editType: 0,
|
||||||
|
editIdx: -1,
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
connectionName: null,
|
||||||
|
isAppointment: null,
|
||||||
|
rescueType: null,
|
||||||
|
feeType: null,
|
||||||
|
carBrand: null,
|
||||||
|
destinationInfo: null,
|
||||||
|
rescueStatus: null,
|
||||||
|
rescueAmount: null,
|
||||||
|
driverName: null,
|
||||||
|
driverCarNum: null,
|
||||||
|
orderStatus: null,
|
||||||
|
rescueEnd: null,
|
||||||
|
rescueStart: null,
|
||||||
|
connectionPhone: null
|
||||||
|
},
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
driverList: [],
|
||||||
|
imgFlag: false,
|
||||||
|
watchImgList: [],
|
||||||
|
pickerOptions: null,
|
||||||
|
loginUserInfo: {},
|
||||||
|
// 查看收款弹框相关数据
|
||||||
|
viewPaymentOpen: false,
|
||||||
|
viewPaymentForm: {
|
||||||
|
confirmPaymentPersonName: '',
|
||||||
|
confirmPaymentTime: '',
|
||||||
|
payMoney: 0,
|
||||||
|
confirmPaymentPersonRemark: ''
|
||||||
|
},
|
||||||
|
// 表单校验
|
||||||
|
rules: {
|
||||||
|
connectionName: [
|
||||||
|
{ required: true, message: '联系人名称不能为空', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
connectionPhone: [
|
||||||
|
{ required: true, message: '联系人手机号不能为空', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
licenseNum: [
|
||||||
|
{ required: true, message: '车牌号不能为空', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
isAppointment: [
|
||||||
|
{ required: true, message: '是否为预约单不能为空', trigger: 'change' }
|
||||||
|
],
|
||||||
|
rescueType: [
|
||||||
|
{ required: true, message: '救援类型 1拖车2送油3搭电4换台5扣车不能为空', trigger: 'change' }
|
||||||
|
],
|
||||||
|
carType: [
|
||||||
|
{ required: true, message: '车辆类型 大中小不能为空', trigger: 'change' }
|
||||||
|
],
|
||||||
|
rescuePosition: [
|
||||||
|
{ required: true, message: '救援地点 详细描述不能为空', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
feeType: [
|
||||||
|
{ required: true, message: '收费类型不能为空', trigger: 'change' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
components: {
|
||||||
|
Map
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
watchImg(data) {
|
||||||
|
|
||||||
|
watchImg(data.id).then(response => {
|
||||||
|
this.imgFlag = true
|
||||||
|
this.watchImgList = response.data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
editInfo(data, type) {
|
||||||
|
if (type == 2) {
|
||||||
|
data.setMoney = data.setMoney2 * 100
|
||||||
|
}
|
||||||
|
updateInfo(data).then(response => {
|
||||||
|
this.$modal.msgSuccess('修改成功')
|
||||||
|
this.open = false
|
||||||
|
this.editType = 0
|
||||||
|
this.editIdx = -1
|
||||||
|
this.getList()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
editInfoFront(type, index) {
|
||||||
|
this.editType = type
|
||||||
|
this.editIdx = index
|
||||||
|
},
|
||||||
|
cancelRepayment() {
|
||||||
|
this.repaymentForm = {}
|
||||||
|
this.repaymentOpen = false
|
||||||
|
},
|
||||||
|
repaymentSubmit() {
|
||||||
|
this.$refs['repaymentForm'].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
this.repaymentForm.returnMoney = this.repaymentForm.returnMoney * 100
|
||||||
|
returnOrder(this.repaymentForm).then(res => {
|
||||||
|
this.$modal.msgSuccess('收款成功')
|
||||||
|
this.repaymentOpen = false
|
||||||
|
this.repaymentForm = {}
|
||||||
|
this.getList()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
repayment(data) {
|
||||||
|
this.repaymentOpen = true
|
||||||
|
this.repaymentForm.rescueOrderId = data.rescueOrderId
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
getLoginUserInfo(){
|
||||||
|
getUserInfo().then(res => {
|
||||||
|
this.loginUserInfo = res.data.user
|
||||||
|
})
|
||||||
|
},
|
||||||
|
cancelConfirmPayment() {
|
||||||
|
this.confirmPaymentForm = {}
|
||||||
|
this.confirmPaymentOpen = false
|
||||||
|
},
|
||||||
|
confirmPaymentSubmit() {
|
||||||
|
this.$refs['confirmPaymentForm'].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
this.confirmPaymentForm.payMoney = this.confirmPaymentForm.payMoney * 100
|
||||||
|
this.confirmPaymentForm.confirmPaymentPersonId = this.loginUserInfo.id
|
||||||
|
this.confirmPaymentForm.confirmPaymentPersonName = this.loginUserInfo.nickname
|
||||||
|
this.confirmPaymentForm.ifConfirmPay = '1'
|
||||||
|
confirmReceipt(this.confirmPaymentForm).then(res => {
|
||||||
|
this.$modal.msgSuccess('收款成功')
|
||||||
|
this.confirmPaymentOpen = false
|
||||||
|
this.confirmPaymentForm = {}
|
||||||
|
this.getList()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
confirmPayment(data) {
|
||||||
|
this.getLoginUserInfo()
|
||||||
|
this.confirmPaymentOpen = true
|
||||||
|
this.confirmPaymentForm.id = data.rescueOrderId
|
||||||
|
this.confirmPaymentForm.payMoney = ( data.setMoney / 100).toFixed(2)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 查看确认收款信息
|
||||||
|
viewConfirmPayment(data) {
|
||||||
|
console.log('data', data)
|
||||||
|
this.viewPaymentOpen = true
|
||||||
|
this.viewPaymentForm = {
|
||||||
|
confirmPaymentPersonName: data.confirmPaymentPersonName,
|
||||||
|
confirmPaymentTime: data.confirmPaymentTime,
|
||||||
|
payMoney: data.payMoney,
|
||||||
|
confirmPaymentPersonRemark: data.confirmPaymentPersonRemark
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
driverOk() {
|
||||||
|
this.designateFlag = false
|
||||||
|
designateDriver(this.rescueInfoId, this.chooseDriverId).then(res => {
|
||||||
|
this.$message.success('指派成功')
|
||||||
|
this.getList()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 查询道路救援模块列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true
|
||||||
|
listByRevoke(this.queryParams).then(response => {
|
||||||
|
this.infoList = response.data.records
|
||||||
|
this.total = response.data.total
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getDriverList() {
|
||||||
|
getDriver().then(response => {
|
||||||
|
this.driverList = response.data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 取消按钮
|
||||||
|
cancel() {
|
||||||
|
this.open = false
|
||||||
|
this.reset()
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
id: null,
|
||||||
|
connectionName: null,
|
||||||
|
connectionPhone: null,
|
||||||
|
licenseNum: null,
|
||||||
|
isAppointment: null,
|
||||||
|
rescueTime: null,
|
||||||
|
rescueType: null,
|
||||||
|
carType: null,
|
||||||
|
rescuePosition: null,
|
||||||
|
rescueLongitude: null,
|
||||||
|
rescueLatitude: null,
|
||||||
|
feeType: null,
|
||||||
|
carBrand: null,
|
||||||
|
destinationInfo: null,
|
||||||
|
destinationLongitude: null,
|
||||||
|
destinationLatitude: null,
|
||||||
|
rescueStatus: null,
|
||||||
|
driverId: null,
|
||||||
|
rescueAmount: null,
|
||||||
|
}
|
||||||
|
this.resetForm('form')
|
||||||
|
},
|
||||||
|
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
if (this.time1 && this.time1.length > 0) {
|
||||||
|
this.queryParams.rescueStart = this.time1[0]
|
||||||
|
this.queryParams.rescueEnd = this.time1[1]
|
||||||
|
}
|
||||||
|
this.queryParams.pageNo = 1
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.time1 = null
|
||||||
|
this.queryParams.rescueStart = null
|
||||||
|
this.queryParams.rescueEnd = null
|
||||||
|
this.queryParams = {
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
connectionName: null,
|
||||||
|
isAppointment: null,
|
||||||
|
rescueType: null,
|
||||||
|
feeType: null,
|
||||||
|
carBrand: null,
|
||||||
|
destinationInfo: null,
|
||||||
|
rescueStatus: null,
|
||||||
|
rescueAmount: null,
|
||||||
|
driverName: null,
|
||||||
|
driverCarNum: null,
|
||||||
|
orderStatus: null,
|
||||||
|
rescueEnd: null,
|
||||||
|
rescueStart: null,
|
||||||
|
connectionPhone: null
|
||||||
|
}
|
||||||
|
this.resetForm('queryForm')
|
||||||
|
this.handleQuery()
|
||||||
|
},
|
||||||
|
// 多选框选中数据
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.ids = selection.map(item => item.id)
|
||||||
|
this.single = selection.length !== 1
|
||||||
|
this.multiple = !selection.length
|
||||||
|
},
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
handleAdd() {
|
||||||
|
this.reset()
|
||||||
|
this.open = true
|
||||||
|
this.title = '添加道路救援模块'
|
||||||
|
},
|
||||||
|
pickDriver(row) {
|
||||||
|
|
||||||
|
},
|
||||||
|
designateDriver(row) {
|
||||||
|
this.designateFlag = true
|
||||||
|
this.rescueInfoId = row.id
|
||||||
|
this.getDriverList()
|
||||||
|
|
||||||
|
},
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
handleUpdate(row) {
|
||||||
|
this.reset()
|
||||||
|
const id = row.id || this.ids
|
||||||
|
getInfo(id).then(response => {
|
||||||
|
this.form = response.data
|
||||||
|
this.open = true
|
||||||
|
this.title = '修改道路救援模块'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleMap(row) {
|
||||||
|
this.rescueInfoId = row.id
|
||||||
|
routeInfo(row.id).then(res => {
|
||||||
|
this.ztlist = res.data
|
||||||
|
this.none(res.data)
|
||||||
|
})
|
||||||
|
getmap(row.id).then(res => {
|
||||||
|
let datas = []
|
||||||
|
res.data.forEach(it => {
|
||||||
|
let temp = [it.longitude, it.latitude]
|
||||||
|
datas.push(temp)
|
||||||
|
})
|
||||||
|
this.$refs.mapComponent.initMap(datas)
|
||||||
|
})
|
||||||
|
this.opens = true
|
||||||
|
},
|
||||||
|
none(arr) {
|
||||||
|
let sum = 0
|
||||||
|
for (var i = 0; i < arr.length; i++) {
|
||||||
|
sum += arr[i].distanceMeter
|
||||||
|
}
|
||||||
|
|
||||||
|
this.zong = sum
|
||||||
|
},
|
||||||
|
|
||||||
|
/** 提交按钮 */
|
||||||
|
submitForm() {
|
||||||
|
this.$refs['form'].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
if (this.form.id != null) {
|
||||||
|
updateInfo(this.form).then(response => {
|
||||||
|
this.$modal.msgSuccess('修改成功')
|
||||||
|
this.open = false
|
||||||
|
this.getList()
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
addInfo(this.form).then(response => {
|
||||||
|
this.$modal.msgSuccess('新增成功')
|
||||||
|
this.open = false
|
||||||
|
this.getList()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(row) {
|
||||||
|
const ids = row.id || this.ids
|
||||||
|
this.$modal.confirm('是否确认删除道路救援模块编号为"' + ids + '"的数据项?').then(function() {
|
||||||
|
return delInfo(ids)
|
||||||
|
}).then(() => {
|
||||||
|
this.getList()
|
||||||
|
this.$modal.msgSuccess('删除成功')
|
||||||
|
}).catch(() => {
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
async handleExport() {
|
||||||
|
try {
|
||||||
|
this.exportLoading = true
|
||||||
|
this.queryParams.pageNo = 1
|
||||||
|
this.queryParams.pageSize = 500
|
||||||
|
const data = await downloadOrder(this.queryParams)
|
||||||
|
this.$download.excel(data, `救援订单_${new Date().getTime()}.xls`)
|
||||||
|
} catch {
|
||||||
|
} finally {
|
||||||
|
this.exportLoading = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
payTypeFormatter(row) {
|
||||||
|
const map = {
|
||||||
|
qd: '挂账',
|
||||||
|
wx: '微信',
|
||||||
|
xj: '现金'
|
||||||
|
}
|
||||||
|
return map[row.payType] || row.payType || '-'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.lang-for {
|
||||||
|
width: 100%;
|
||||||
|
margin: 10px auto;
|
||||||
|
}
|
||||||
|
</style>
|
Loading…
Reference in New Issue
Block a user