Merge branch 'rescue'
This commit is contained in:
commit
6911f25f97
@ -97,7 +97,7 @@
|
||||
"chalk": "4.1.0",
|
||||
"compression-webpack-plugin": "5.0.2",
|
||||
"connect": "3.6.6",
|
||||
"eslint": "7.15.0",
|
||||
"eslint": "^6.8.0",
|
||||
"eslint-config-airbnb-base": "^14.0.0",
|
||||
"eslint-plugin-import": "^2.26.0",
|
||||
"eslint-plugin-prettier": "^3.1.0",
|
||||
|
@ -8,6 +8,23 @@ export function listInfo(query) {
|
||||
params: query
|
||||
})
|
||||
}
|
||||
// 根据ID修改发票信息
|
||||
export function updateBilled(data) {
|
||||
return request({
|
||||
url: '/system/rescueInfo/updateBilled',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据ID查询救援信息详细
|
||||
export function getInfoById(id) {
|
||||
return request({
|
||||
url: '/system/rescueInfo/getById',
|
||||
method: 'get',
|
||||
params: { id }
|
||||
})
|
||||
}
|
||||
|
||||
// 已撤销订单列表
|
||||
export function listByRevoke(query) {
|
||||
@ -150,3 +167,28 @@ export function confirmReceipt(data){
|
||||
})
|
||||
}
|
||||
|
||||
// 应收款、已收款、代收款统计
|
||||
export function getCountNum(query){
|
||||
return request({
|
||||
url: '/app/rescueInfo/getRescueStatisticsInfoNum',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 获取所有渠道
|
||||
export function channelList() {
|
||||
return request({
|
||||
url: '/rescue-channel-source/channelList',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取所有来源
|
||||
export function sourceList() {
|
||||
return request({
|
||||
url: '/rescue-channel-source/sourceList',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -148,6 +148,8 @@ export const DICT_TYPE = {
|
||||
COMPANY_COST_TYPE: 'company_cost_type',
|
||||
// 救援车车型
|
||||
JYC_TYPE: 'jyc_type',
|
||||
// 救援车归属
|
||||
RESCUE_CAR_OWN: 'rescue_car_own',
|
||||
RESCUE_CAR_CATEGORY: 'rescue_car_category',
|
||||
Drive_Dialy: 'drive_dialy',
|
||||
Jx_report_state: 'jx_report_state',
|
||||
|
@ -79,31 +79,41 @@
|
||||
<dict-tag :type="DICT_TYPE.JYC_TYPE" :value="scope.row.rescueCarType"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="车牌号" align="center" prop="rescueCarNum" />
|
||||
<el-table-column label="品牌型号" align="center" prop="rescueCarBrand" />
|
||||
<el-table-column label="车牌号" align="center" prop="rescueCarNum" width="120"/>
|
||||
<el-table-column label="品牌型号" align="center" prop="rescueCarBrand" width="120"/>
|
||||
<el-table-column label="车辆种类" align="center" prop="carCategory" />
|
||||
<el-table-column label="图片" align="center" prop="carImage" width="100">
|
||||
<template slot-scope="scope">
|
||||
<image-preview :src="scope.row.carImage" :width="50" :height="50"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="购买时间" align="center" prop="carBuyTime" width="180">
|
||||
<el-table-column label="保养到期里程" align="center" prop="carMaintenanceMileage" width="120"/>
|
||||
|
||||
<el-table-column label="救援车辆归属" align="center" prop="rescueCarOwn" width="100">
|
||||
<template slot-scope="scope">
|
||||
<!-- <dict-tag :options="dict.type.rescue_car_own" :value="scope.row.rescueCarOwn"/> -->
|
||||
<!-- <dict-tag :options="DICT_TYPE.RESCUE_CAR_OWN" :value="scope.row.rescueCarOwn"/> -->
|
||||
<dict-tag :type="DICT_TYPE.RESCUE_CAR_OWN" :value="scope.row.rescueCarOwn"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="购买时间" align="center" prop="carBuyTime" width="130">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.carBuyTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="保养到期时间" align="center" prop="carKeepTime" width="180">
|
||||
<!-- <el-table-column label="保养到期时间" align="center" prop="carKeepTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.carKeepTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column> -->
|
||||
|
||||
<el-table-column label="保险到期时间" align="center" prop="carInsuranceTime" width="180">
|
||||
<el-table-column label="保险到期时间" align="center" prop="carInsuranceTime" width="130">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.carInsuranceTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="年检到期时间" align="center" prop="carCheckTime" width="180">
|
||||
<el-table-column label="年检到期时间" align="center" prop="carCheckTime" width="130">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.carCheckTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
@ -165,6 +175,18 @@
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="救援车辆归属" prop="rescueCarOwn">
|
||||
<el-select v-model="form.rescueCarOwn" placeholder="请选择归属类型">
|
||||
<el-option
|
||||
v-for="dict in this.getDictDatas(DICT_TYPE.RESCUE_CAR_OWN)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="车牌号" prop="rescueCarNum">
|
||||
<el-input v-model="form.rescueCarNum" placeholder="请输入车牌号" />
|
||||
</el-form-item>
|
||||
@ -195,14 +217,17 @@
|
||||
placeholder="请选择购买时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="保养到期时间" prop="carBuyTime">
|
||||
<el-form-item label="保养到期里程" prop="carMaintenanceMileage">
|
||||
<el-input v-model="form.carMaintenanceMileage" placeholder="请输入保养到期里程" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="保养到期时间" prop="carBuyTime">
|
||||
<el-date-picker clearable
|
||||
v-model="form.carKeepTime"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择到期时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="保险到期时间" prop="carBuyTime">
|
||||
<el-date-picker clearable
|
||||
v-model="form.carInsuranceTime"
|
||||
@ -255,7 +280,7 @@
|
||||
|
||||
export default {
|
||||
name: "RescueCar",
|
||||
dicts: ['car_own', 'car_use_nature', 'jyc_type', 'car_license_color'],
|
||||
dicts: ['car_own', 'car_use_nature', 'jyc_type', 'car_license_color','rescue_car_own'],
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
|
@ -81,6 +81,26 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="渠道" >
|
||||
<el-select v-model="queryParams.channel" placeholder="请选择渠道" clearable>
|
||||
<el-option
|
||||
v-for="channel in channelList"
|
||||
:key="channel.id"
|
||||
:label="channel.name"
|
||||
:value="channel.name"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="来源" >
|
||||
<el-select v-model="queryParams.source" placeholder="请选择来源" clearable>
|
||||
<el-option
|
||||
v-for="source in sourceList"
|
||||
:key="source.id"
|
||||
:label="source.name"
|
||||
:value="source.name"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="救援时间" prop="maintenanceTime">
|
||||
<el-date-picker
|
||||
v-model="time1"
|
||||
@ -110,6 +130,15 @@
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-row type="flex"
|
||||
justify="center"
|
||||
style="margin:-20px 0 8px;white-space:nowrap;font-size:16px;font-weight:600;">
|
||||
<span style="margin-right:24px;">应收款:{{ countNum.yingskNum }}</span>
|
||||
<span style="margin-right:24px;">已收款:{{ countNum.yiskNum }}</span>
|
||||
<span>待收款:{{ countNum.dskNum }}</span>
|
||||
</el-row>
|
||||
|
||||
|
||||
<el-table v-loading="loading" :data="infoList" @selection-change="handleSelectionChange">
|
||||
<el-table-column label="序号" align="center">
|
||||
<template scope="scope">
|
||||
@ -161,6 +190,18 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column width="130" label="救援地点" :show-overflow-tooltip="true" align="center" prop="rescuePosition"/>
|
||||
<el-table-column width="100" label="出发里程表" align="center" prop="startScale"/>
|
||||
<el-table-column width="100" label="结束里程表" align="center" prop="endScale"/>
|
||||
<el-table-column width="100" label="施救里程数" align="center" prop="endScale">
|
||||
<template slot-scope="scope">
|
||||
<span
|
||||
v-if="Number.isFinite(scope.row.startScale) &&
|
||||
Number.isFinite(scope.row.endScale) &&
|
||||
scope.row.endScale >= scope.row.startScale">
|
||||
{{ scope.row.endScale - scope.row.startScale }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="收费类型" align="center" prop="feeType">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :type="DICT_TYPE.FEE_TYPE" :value="scope.row.feeType"/>
|
||||
@ -213,8 +254,39 @@
|
||||
<el-table-column label="确认收款备注" align="center" width="100" prop="confirmPaymentPersonRemark" show-overflow-tooltip/>
|
||||
<!-- 0是未确认, 1是已确认-->
|
||||
|
||||
<el-table-column label="是否开票" align="center" width="100" prop="ifBilled" >
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.ifBilled === '1'" style="color: #67c23a">已开票</span>
|
||||
<span v-else style="color: #e6a23c">未开票</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="开票人" align="center" width="100" prop="billedUsername" />
|
||||
<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-view"
|
||||
@click="handleShow(scope.row)"
|
||||
>查看
|
||||
</el-button> -->
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-circle-check"
|
||||
@click="showBilled(scope.row)"
|
||||
style="color: #c0c4cc"
|
||||
v-if="scope.row.ifBilled === '1' "
|
||||
>已开票
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-circle-check"
|
||||
@click="unbilled(scope.row)"
|
||||
v-else
|
||||
>未开票
|
||||
</el-button>
|
||||
<!-- <el-button-->
|
||||
<!-- size="mini"-->
|
||||
<!-- type="text"-->
|
||||
@ -291,6 +363,300 @@
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 未开票对话框 -->
|
||||
<el-dialog title="未开票" :visible.sync="unbilledOpen" width="600px" append-to-body>
|
||||
<!-- 点击显示弹框 记录开票信息(二维码)和备注 -->
|
||||
<el-form ref="unbilledForm" :model="unbilledForm" label-width="120px">
|
||||
<el-form-item label="图片" prop="billedQrcode">
|
||||
<image-upload v-model="unbilledForm.billedQrcode"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="billedRemark">
|
||||
<el-input
|
||||
v-model="unbilledForm.billedRemark"
|
||||
type="textarea"
|
||||
placeholder="请输入备注"
|
||||
:autosize="{ minRows:2, maxRows:4 }"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="unbilledSubmit">确 定</el-button>
|
||||
<el-button @click="unbilledCancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 已开票对话框(仅展示)-->
|
||||
<el-dialog
|
||||
title="已开票"
|
||||
:visible.sync="billedOpen"
|
||||
width="600px"
|
||||
append-to-body
|
||||
custom-class="billed-dialog-custom"
|
||||
>
|
||||
<el-form ref="billedFormRef" :model="billedForm" label-width="120px">
|
||||
<!-- 操作人(只读) -->
|
||||
<el-form-item label="操作人">
|
||||
<el-input v-model="billedForm.billedUsername" :disabled="true" placeholder="—" />
|
||||
</el-form-item>
|
||||
<!-- 开票二维码:展示 + 预览 -->
|
||||
<el-form-item label="开票二维码">
|
||||
<el-image
|
||||
v-if="billedForm.billedQrcode"
|
||||
:src="billedForm.billedQrcode"
|
||||
:preview-src-list="[billedForm.billedQrcode]"
|
||||
fit="contain"
|
||||
style="width:160px;height:160px;border:1px solid #eee"
|
||||
/>
|
||||
<span v-else class="text-gray-400">暂无二维码</span>
|
||||
</el-form-item>
|
||||
<!-- 发票备注(只读) -->
|
||||
<el-form-item label="发票备注">
|
||||
<el-input
|
||||
v-model="billedForm.billedRemark"
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 2, maxRows: 4 }"
|
||||
:disabled="true"
|
||||
placeholder="—"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="billedOpen = false">关 闭</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 救援订单详情对话框 -->
|
||||
<el-dialog
|
||||
title="单据详情"
|
||||
:visible.sync="orderDialogVisible"
|
||||
width="80%"
|
||||
v-dialogDrag
|
||||
append-to-body
|
||||
>
|
||||
<el-card class="box-card">
|
||||
<!-- 卡片头 -->
|
||||
<div slot="header" class="clearfix">
|
||||
<i class="el-icon-plus" />
|
||||
<span>工单信息</span>
|
||||
</div>
|
||||
<!-- 卡片内容 -->
|
||||
<div>
|
||||
<el-descriptions
|
||||
class="margin-top"
|
||||
:column="4"
|
||||
:size="'medium'"
|
||||
border
|
||||
style="margin-bottom: 1rem"
|
||||
>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">客户名称</template>
|
||||
{{ infoList.connectionName }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">客户手机号</template>
|
||||
{{ infoList.connectionPhone }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">客户车牌号</template>
|
||||
{{ infoList.licenseNum }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">司机姓名</template>
|
||||
{{ infoList.driverName }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">司机手机号</template>
|
||||
{{ infoList.driverPhoneNum }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">司机车牌号</template>
|
||||
{{ infoList.driverCarNum }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">车辆种类</template>
|
||||
{{ infoList.carType }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">救援时间</template>
|
||||
{{ infoList.rescueTime }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">救援开始时间</template>
|
||||
<!-- {{ infoList.rescueStartTime }} -->
|
||||
{{ parseTime(infoList.rescueStartTime, '{y}-{m}-{d} {h}:{m}') }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">救援结束时间</template>
|
||||
<!-- {{ infoList.rescueEndTime }} -->
|
||||
{{ parseTime(infoList.rescueEndTime, '{y}-{m}-{d} {h}:{m}') }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">救援类型</template>
|
||||
<dict-tag :type="DICT_TYPE.DLJY_TYPE" :value="infoList.rescueType" />
|
||||
<!-- {{ infoList.rescueType }} -->
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">车辆类型</template>
|
||||
<!-- {{ infoList.carType }} -->
|
||||
<dict-tag :type="DICT_TYPE.RESCUE_CAR_TYPE" :value="infoList.carType"/>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item :span="2">
|
||||
<template slot="label">救援地点</template>
|
||||
{{ infoList.rescuePosition }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">收费类型</template>
|
||||
<!-- {{ infoList.feeType }} -->
|
||||
<dict-tag :type="DICT_TYPE.FEE_TYPE" :value="infoList.carType"/>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item :span="2">
|
||||
<template slot="label">目的地</template>
|
||||
{{ infoList.destination }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">救援状态</template>
|
||||
<!-- {{ infoList.rescueStatus }} -->
|
||||
<dict-tag :type="DICT_TYPE.JY_STATUS" :value="infoList.rescueStatus"/>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">路段</template>
|
||||
{{ infoList.sectionRoad }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">订单状态</template>
|
||||
<!-- {{ infoList.orderStatus }} -->
|
||||
<dict-tag :type="DICT_TYPE.JY_ORDER_STATUS" :value="infoList.orderStatus"/>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">应收金额</template>
|
||||
{{ (infoList.setMoney / 100).toFixed(2) }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">实付金额</template>
|
||||
{{ (infoList.payMoney / 100).toFixed(2) }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">收款时间</template>
|
||||
{{ infoList.payTime }}
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
</el-card>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
|
||||
<PrintButton
|
||||
ref="printButton"
|
||||
print-title="救援工单"
|
||||
@click="handlePrint"
|
||||
style="float: left"
|
||||
>
|
||||
<template #printContent>
|
||||
<div class="print-content">
|
||||
<h1 style="text-align: center">救援工单详情</h1>
|
||||
<table class="print-table" border="1" cellspacing="0" cellpadding="8"
|
||||
style="width: 100%; border-collapse: collapse; margin-bottom: 20px;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>客户名称</strong></td>
|
||||
<td>{{ infoList.connectionName }}</td>
|
||||
<td><strong>客户手机号</strong></td>
|
||||
<td>{{ infoList.connectionPhone }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>客户车牌号</strong></td>
|
||||
<td>{{ infoList.licenseNum }}</td>
|
||||
<td><strong>司机姓名</strong></td>
|
||||
<td>{{ infoList.driverName }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>司机手机号</strong></td>
|
||||
<td>{{ infoList.driverPhoneNum }}</td>
|
||||
<td><strong>司机车牌号</strong></td>
|
||||
<td>{{ infoList.driverCarNum }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>车辆种类</strong></td>
|
||||
<td>{{ infoList.carType }}</td>
|
||||
<td><strong>救援时间</strong></td>
|
||||
<td>{{ infoList.rescueTime }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>救援开始时间</strong></td>
|
||||
<!-- <td>{{ infoList.rescueStartTime }}</td> -->
|
||||
<td>{{ parseTime(infoList.rescueStartTime, '{y}-{m}-{d} {h}:{m}') }}</td>
|
||||
<td><strong>救援结束时间</strong></td>
|
||||
<!-- <td>{{ infoList.rescueEndTime }}</td> -->
|
||||
<td>{{ parseTime(infoList.rescueEndTime, '{y}-{m}-{d} {h}:{m}') }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>救援类型</strong></td>
|
||||
<!-- <td>{{ infoList.rescueType }}</td> -->
|
||||
<td><dict-tag :type="DICT_TYPE.DLJY_TYPE" :value="infoList.rescueType" /></td>
|
||||
<td><strong>车辆类型</strong></td>
|
||||
<!-- <td>{{ infoList.carType }}</td> -->
|
||||
<td><dict-tag :type="DICT_TYPE.RESCUE_CAR_TYPE" :value="infoList.carType"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>救援地点</strong></td>
|
||||
<td colspan="3">{{ infoList.rescuePosition }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>收费类型</strong></td>
|
||||
<!-- <td>{{ infoList.feeType }}</td> -->
|
||||
<td><dict-tag :type="DICT_TYPE.FEE_TYPE" :value="infoList.carType"/></td>
|
||||
<td><strong>目的地</strong></td>
|
||||
<td>{{ infoList.destination }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>救援状态</strong></td>
|
||||
<!-- <td>{{ infoList.rescueStatus }}</td> -->
|
||||
<td><dict-tag :type="DICT_TYPE.JY_STATUS" :value="infoList.rescueStatus"/></td>
|
||||
<td><strong>路段</strong></td>
|
||||
<td>{{ infoList.sectionRoad }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>订单状态</strong></td>
|
||||
<!-- <td>{{ infoList.orderStatus }}</td> -->
|
||||
<td><dict-tag :type="DICT_TYPE.JY_ORDER_STATUS" :value="infoList.orderStatus"/></td>
|
||||
<td><strong>应收金额</strong></td>
|
||||
<td>{{ (infoList.setMoney / 100).toFixed(2) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>实付金额</strong></td>
|
||||
<td>{{ (infoList.payMoney / 100).toFixed(2) }}</td>
|
||||
<td><strong>收款时间</strong></td>
|
||||
<td>{{ infoList.payTime }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</template>
|
||||
</PrintButton>
|
||||
|
||||
<el-button @click="orderDialogVisible = false">关闭</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 添加或修改道路救援模块对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="opens" width="600px" append-to-body>
|
||||
|
||||
@ -499,17 +865,44 @@ import {
|
||||
designateDriver,
|
||||
returnOrder,
|
||||
watchImg,
|
||||
downloadOrder, confirmReceipt
|
||||
downloadOrder, confirmReceipt,
|
||||
getInfoById,
|
||||
updateBilled,
|
||||
getCountNum,
|
||||
channelList,
|
||||
sourceList
|
||||
} from '@/api/rescue/info'
|
||||
import { getmap } from '@/api/Map/map'
|
||||
import { getInfo as getUserInfo} from '@/api/login'
|
||||
import Map from '../../components/Map/index'
|
||||
import PrintButton from "@/components/PrintButton";
|
||||
|
||||
export default {
|
||||
name: 'Info',
|
||||
dicts: ['dljy_type', 'fee_type', 'rescue_car_type', 'yes_no', 'jy_status', 'jy_order_status'],
|
||||
data() {
|
||||
return {
|
||||
channelList:[],
|
||||
sourceList:[],
|
||||
countNum: {
|
||||
yingskNum: 0, // 应收款
|
||||
yiskNum: 0, // 已收款
|
||||
dskNum: 0, // 待收款
|
||||
},
|
||||
billedForm: {
|
||||
billedUsername: '', // 操作人姓名
|
||||
billedQrcode: '', // 开票二维码图片 URL
|
||||
billedRemark: '' // 发票备注
|
||||
},
|
||||
// 表单
|
||||
unbilledForm: {
|
||||
id: '',
|
||||
ifBilled: '',
|
||||
billedUserid: '',
|
||||
billedUsername: '',
|
||||
billedQrcode: '',
|
||||
billedRemark: ''
|
||||
},
|
||||
// 导出遮罩层
|
||||
exportLoading: false,
|
||||
chooseDriverId: '',
|
||||
@ -533,6 +926,9 @@ export default {
|
||||
// 弹出层标题
|
||||
title: '',
|
||||
// 是否显示弹出层
|
||||
orderDialogVisible: false,
|
||||
unbilledOpen: false,
|
||||
billedOpen:false,
|
||||
open: false,
|
||||
opens: false,
|
||||
designateFlag: false,
|
||||
@ -560,7 +956,9 @@ export default {
|
||||
orderStatus: null,
|
||||
rescueEnd: null,
|
||||
rescueStart: null,
|
||||
connectionPhone: null
|
||||
connectionPhone: null,
|
||||
channel: null,
|
||||
source: null
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
@ -602,18 +1000,65 @@ export default {
|
||||
],
|
||||
feeType: [
|
||||
{ required: true, message: '收费类型不能为空', trigger: 'change' }
|
||||
]
|
||||
],
|
||||
billedQrcode: [{ required: true, message: '请上传二维码图片', trigger: 'change' }],
|
||||
billedRemark: [{ required: false, message: '请输入备注', trigger: 'blur' }]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
components: {
|
||||
Map
|
||||
Map,
|
||||
PrintButton
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
this.getChannelList()
|
||||
this.getSourceList()
|
||||
},
|
||||
methods: {
|
||||
showBilled(row) {
|
||||
this.billedForm.billedUsername = row.billedUsername
|
||||
this.billedForm.billedQrcode = row.billedQrcode
|
||||
this.billedForm.billedRemark = row.billedRemark
|
||||
this.billedOpen = true
|
||||
},
|
||||
// 提交
|
||||
unbilledSubmit() {
|
||||
// 先校验
|
||||
this.$refs.unbilledForm.validate( (valid) => {
|
||||
if (!valid) return;
|
||||
this.unbilledForm.billedUserid = this.loginUserInfo.id
|
||||
this.unbilledForm.billedUsername = this.loginUserInfo.nickname
|
||||
updateBilled(this.unbilledForm).then(response => {
|
||||
this.$message.success('保存成功');
|
||||
this.unbilledOpen = false;
|
||||
this.getList();
|
||||
});
|
||||
});
|
||||
},
|
||||
unbilled(row){
|
||||
this.unbilledForm.id = row.rescueOrderId
|
||||
this.unbilledForm.billedQrcode = row.billedQrcode
|
||||
this.unbilledForm.billedRemark = row.billedRemark
|
||||
this.unbilledForm.ifBilled = '1'
|
||||
this.unbilledOpen = true
|
||||
this.getLoginUserInfo()
|
||||
},
|
||||
unbilledCancel() {
|
||||
this.unbilledOpen = false;
|
||||
},
|
||||
|
||||
async handleShow(row){
|
||||
// 打开弹窗
|
||||
this.orderDialogVisible = true
|
||||
console.log(row.id)
|
||||
const res = await getInfoById(row.id)
|
||||
this.infoList = res.data
|
||||
},
|
||||
handlePrint() {
|
||||
this.$refs.printButton.handlePrint();
|
||||
},
|
||||
watchImg(data) {
|
||||
|
||||
watchImg(data.id).then(response => {
|
||||
@ -718,11 +1163,31 @@ export default {
|
||||
this.infoList = response.data.records
|
||||
this.total = response.data.total
|
||||
this.loading = false
|
||||
this.getStatistic(this.queryParams)
|
||||
})
|
||||
},
|
||||
getDriverList() {
|
||||
getDriver().then(response => {
|
||||
this.driverList = response.data
|
||||
/** 应收款、已收款、代收款统计 */
|
||||
getStatistic(query) {
|
||||
getCountNum(query).then(res => {
|
||||
this.countNum.yingskNum = res.data.yingskNum ? res.data.yingskNum / 100 : 0
|
||||
this.countNum.yiskNum = res.data.yiskNum ? res.data.yiskNum / 100 : 0
|
||||
this.countNum.dskNum = res.data.dskNum ? res.data.dskNum / 100 : 0
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取渠道列表
|
||||
*/
|
||||
getChannelList() {
|
||||
channelList().then(response => {
|
||||
this.channelList = response.data
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取来源列表
|
||||
*/
|
||||
getSourceList() {
|
||||
sourceList().then(response => {
|
||||
this.sourceList = response.data
|
||||
})
|
||||
},
|
||||
// 取消按钮
|
||||
@ -903,6 +1368,11 @@ export default {
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.billed-dialog-custom >>> .el-dialog__body {
|
||||
max-height: 500px; /* 或者你需要的高度 */
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.lang-for {
|
||||
width: 100%;
|
||||
margin: 10px auto;
|
||||
|
@ -35,10 +35,13 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="司机" align="center" prop="realName" />
|
||||
<el-table-column label="车牌号" align="center" prop="rescueCarNum" />
|
||||
<el-table-column label="加油数量(L)" align="center" prop="refuelNum" />
|
||||
<el-table-column width="100" label="车牌号" align="center" prop="rescueCarNum" />
|
||||
<el-table-column width="150" label="加油数量(L)" align="center" prop="refuelNum" />
|
||||
<el-table-column label="花费(元)" align="center" prop="refuelMoney" />
|
||||
<el-table-column label="当前公里数(km)" align="center" prop="refuelDistance" />
|
||||
<el-table-column width="150" label="当前公里数(km)" align="center" prop="refuelDistance" />
|
||||
<el-table-column width="170" label="距上次加油行驶公里(km)" prop="distancePrevKm" align="center"/>
|
||||
<el-table-column width="150" label="每公里油耗(L/km)" prop="fuelEfficiencyLpkm" align="center"/>
|
||||
<el-table-column width="150" label="每公里成本(元/km)" prop="costPerKm" align="center"/>
|
||||
<el-table-column label="拍照" align="center" prop="showImage" width="100">
|
||||
<template slot-scope="scope">
|
||||
<image-preview :src="scope.row.showImage" :width="50" :height="50"/>
|
||||
@ -49,7 +52,7 @@
|
||||
<span>{{ parseTime(scope.row.recordTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<el-table-column width="150" label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
|
Loading…
Reference in New Issue
Block a user