Compare commits
2 Commits
92d829c9e8
...
1684ed4262
Author | SHA1 | Date | |
---|---|---|---|
1684ed4262 | |||
34f47627b3 |
@ -8,6 +8,15 @@ export function listInfo(query) {
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 已撤销订单列表
|
||||
export function listByRevoke(query) {
|
||||
return request({
|
||||
url: '/system/rescueInfo/listByRevoke',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function moneyManagement(query) {
|
||||
return request({
|
||||
url: '/system/rescueInfo/moneyManagement',
|
||||
|
@ -580,6 +580,7 @@ export default {
|
||||
this.open = true
|
||||
this.title = '添加司机'
|
||||
|
||||
this.form.staffType = 'jysj'
|
||||
// 获取所需数据
|
||||
Promise.all([
|
||||
this.getSecondDispatcherList(),
|
||||
@ -693,7 +694,7 @@ export default {
|
||||
driverId = response.data
|
||||
}
|
||||
|
||||
// 处理车辆分配 - 确保副车包含主车
|
||||
// 处理车辆分配
|
||||
if (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