216 lines
5.0 KiB
Vue
216 lines
5.0 KiB
Vue
|
|
<template>
|
|||
|
|
<view class="container">
|
|||
|
|
<!-- 顶部背景 -->
|
|||
|
|
<view class="header">
|
|||
|
|
<image class="bg-img" src="/static/images/table_header.png" mode="aspectFill"></image>
|
|||
|
|
<view style="display: flex;align-items: center;padding-left: 20rpx;">
|
|||
|
|
<uni-icons style="position: absolute;left: 30rpx;" @click="goBack" type="left" color="black"
|
|||
|
|
size="24"></uni-icons>
|
|||
|
|
</view>
|
|||
|
|
<view class="title">{{title}}业务总览</view>
|
|||
|
|
</view>
|
|||
|
|
|
|||
|
|
<!-- 表格 -->
|
|||
|
|
|
|||
|
|
<uni-table emptyText="暂无更多数据" style="margin-top: 30rpx;">
|
|||
|
|
<!-- 表头行 -->
|
|||
|
|
<uni-tr style="background: #E5EEFF;">
|
|||
|
|
<uni-th>车辆信息</uni-th>
|
|||
|
|
<uni-th>业务</uni-th>
|
|||
|
|
<!-- <uni-th>渠道</uni-th> -->
|
|||
|
|
<uni-th>来源</uni-th>
|
|||
|
|
<uni-th>经办人</uni-th>
|
|||
|
|
<uni-th>办理时间</uni-th>
|
|||
|
|
<uni-th>付款状态</uni-th>
|
|||
|
|
</uni-tr>
|
|||
|
|
<!-- 表格数据行 -->
|
|||
|
|
<uni-tr v-for="(item,index) in list" :key="index" class="table-row" @click.native="goWorkDetail(item)"
|
|||
|
|
:class="{'row-bg': index % 2 === 1}">
|
|||
|
|
<uni-td>{{ item.carNo }}</uni-td>
|
|||
|
|
<uni-td>{{ item.sourceStr }}</uni-td>
|
|||
|
|
<!-- <uni-td>{{ item.channel }}</uni-td> -->
|
|||
|
|
<uni-td>{{ item.busiFrom }}</uni-td>
|
|||
|
|
<uni-td>{{ item.handleName }}</uni-td>
|
|||
|
|
<uni-td>{{ formatDateTimeToMinute(item.createTime) }}</uni-td>
|
|||
|
|
<uni-td>{{ dictData[item.payStatus] }}</uni-td>
|
|||
|
|
</uni-tr>
|
|||
|
|
|
|||
|
|
</uni-table>
|
|||
|
|
<uni-pagination :current="current" :pageSize="queryParams.pageSize" :total="total"
|
|||
|
|
@change="onPageChange"></uni-pagination>
|
|||
|
|
</view>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
import request from '../../utils/request';
|
|||
|
|
import {
|
|||
|
|
formatDateTimeToMinute,
|
|||
|
|
getDictTextByCodeAndValue,
|
|||
|
|
getDictByCode
|
|||
|
|
} from '@/utils/utils.js'
|
|||
|
|
|
|||
|
|
export default {
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
list: [],
|
|||
|
|
data: undefined,
|
|||
|
|
queryParams: {
|
|||
|
|
pageSize: 15,
|
|||
|
|
pageNo: 1
|
|||
|
|
},
|
|||
|
|
title: '',
|
|||
|
|
total: 0,
|
|||
|
|
current: 0,
|
|||
|
|
safeLeft: 0,
|
|||
|
|
dictData: undefined,
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
formatDateTimeToMinute,
|
|||
|
|
getDictTextByCodeAndValue,
|
|||
|
|
goBack() {
|
|||
|
|
uni.redirectTo({
|
|||
|
|
url: '/pages/white/white'
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
async getDict() {
|
|||
|
|
const list = await getDictByCode('repair_pay_status')
|
|||
|
|
this.dictData = list?.reduce((map, item) => {
|
|||
|
|
map[item.value] = item.label
|
|||
|
|
return map
|
|||
|
|
}, {}) ?? {} // 如果 list 为空或 reduce 返回 undefined,则使用空对象
|
|||
|
|
console.log('dict', this.dictData)
|
|||
|
|
},
|
|||
|
|
getList() {
|
|||
|
|
request({
|
|||
|
|
url: `/admin-api/repair/statistics/pageByCustomerOrCar`,
|
|||
|
|
params: this.queryParams
|
|||
|
|
}).then(res => {
|
|||
|
|
this.list = res.data.records
|
|||
|
|
this.total = res.data.total
|
|||
|
|
this.current = res.data.current
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
onPageChange(e) {
|
|||
|
|
this.queryParams.pageNo = e.current
|
|||
|
|
this.getList()
|
|||
|
|
},
|
|||
|
|
goWorkDetail(data) {
|
|||
|
|
console.log('执行');
|
|||
|
|
// 退出时恢复自动(或者你项目里默认的方向)
|
|||
|
|
// #ifdef APP-PLUS
|
|||
|
|
plus.screen.lockOrientation('portrait-primary'); //锁死屏幕方向为竖屏
|
|||
|
|
plus.navigator.setFullscreen(false);
|
|||
|
|
// #endif
|
|||
|
|
const innerUrl = `/pages-order/orderDetail/orderDetail?id=${data.id}&isDetail=1`
|
|||
|
|
// const url = `/pages-business/white/newWhite?url=${encodeURIComponent(innerUrl)}`
|
|||
|
|
setTimeout(() => {
|
|||
|
|
uni.navigateTo({
|
|||
|
|
url: innerUrl
|
|||
|
|
})
|
|||
|
|
}, 1000); // 300毫秒延时,可以根据需要调整
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
onShow() {},
|
|||
|
|
//页面显示时切换为横屏配置
|
|||
|
|
onLoad(options) {
|
|||
|
|
this.getDict()
|
|||
|
|
console.log('传进来的数据', options);
|
|||
|
|
if (options.data) {
|
|||
|
|
const queryParams = JSON.parse(decodeURIComponent(options.data));
|
|||
|
|
this.data = queryParams
|
|||
|
|
if (options.type == 'customer') {
|
|||
|
|
this.queryParams.phone = queryParams.customerPhone
|
|||
|
|
this.title = queryParams.customerName
|
|||
|
|
} else {
|
|||
|
|
this.queryParams.carNo = queryParams.carNum
|
|||
|
|
this.title = queryParams.carNum
|
|||
|
|
}
|
|||
|
|
this.getList()
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
// 监听页面返回
|
|||
|
|
onBackPress() {
|
|||
|
|
console.log('执行跳转');
|
|||
|
|
// 跳转至空白页
|
|||
|
|
uni.redirectTo({
|
|||
|
|
url: '/pages/white/white'
|
|||
|
|
});
|
|||
|
|
return true;
|
|||
|
|
},
|
|||
|
|
}
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style scoped>
|
|||
|
|
.container {
|
|||
|
|
width: 100%;
|
|||
|
|
height: 100%;
|
|||
|
|
background-color: white;
|
|||
|
|
padding-left: env(safe-area-inset-left);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 顶部背景和标题 */
|
|||
|
|
.header {
|
|||
|
|
display: flex;
|
|||
|
|
position: relative;
|
|||
|
|
height: 100rpx;
|
|||
|
|
justify-content: center;
|
|||
|
|
align-items: center;
|
|||
|
|
padding: 20rpx 40rpx;
|
|||
|
|
padding-top: var(--status-bar-height); //给组件加个上边距
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.bg-img {
|
|||
|
|
width: 100%;
|
|||
|
|
height: 100%;
|
|||
|
|
position: absolute;
|
|||
|
|
top: 0;
|
|||
|
|
left: 0;
|
|||
|
|
/* z-index: -1; */
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.title {
|
|||
|
|
text-align: center;
|
|||
|
|
font-size: 36rpx;
|
|||
|
|
font-weight: bold;
|
|||
|
|
color: #333;
|
|||
|
|
line-height: 100rpx;
|
|||
|
|
z-index: 2;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 表格 */
|
|||
|
|
.table {
|
|||
|
|
margin: 20rpx;
|
|||
|
|
border-radius: 12rpx;
|
|||
|
|
overflow: hidden;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.table-row {
|
|||
|
|
/* flex-direction: row;
|
|||
|
|
display: flex; */
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.table-header {
|
|||
|
|
background-color: #f2f6ff;
|
|||
|
|
font-weight: bold;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.table-cell {
|
|||
|
|
flex: 1;
|
|||
|
|
padding: 20rpx;
|
|||
|
|
text-align: center;
|
|||
|
|
font-size: 28rpx;
|
|||
|
|
color: #555;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.row-bg {
|
|||
|
|
background-color: #f9fbff;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.status {
|
|||
|
|
color: #d4a017;
|
|||
|
|
/* 金色 */
|
|||
|
|
font-weight: 500;
|
|||
|
|
}
|
|||
|
|
</style>
|