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> |