yangzj 2 лет назад
Родитель
Сommit
f181ab0e81

+ 169 - 0
pages/dataOverview/todayOverview - 副本/components/arrearsReport.vue

@@ -0,0 +1,169 @@
+<!-- 欠费统计 -->
+<template>
+	<view class="container">
+		<view class="tab">
+			<u-tabs
+				:list="tabList"
+				lineColor="#fff"
+				:activeStyle="{
+					color: '#fff',
+					fontWeight: 'bold',
+					transform: 'scale(1.05)'
+				}"
+				:inactiveStyle="{
+					color: '#000',
+					transform: 'scale(1)'
+				}"
+				@click="tabClick">
+			</u-tabs>
+		</view>
+		<view class="table">
+			<view class="table-date" v-if="currentDate">{{ currentDate.join(' 至 ') }}</view>
+			<view class="table-box">
+				<TableRanking :loading="loading" :padding="'0'" :tableTh="tableTh" :tableData="tableData"
+					@pageChange="pageChange" />
+			</view>
+		</view>
+		<view class="total">
+			<view>
+				欠费次数<text>{{ totalData.oweCount || 0 }}</text>次,欠费金额<text>{{ totalData.amtOwe || 0 }}</text>元
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import TableRanking from '@/components/tableRanking.vue'
+	export default {
+		components: {
+			TableRanking
+		},
+		props: {
+			tableTh: {
+				type: Array,
+				default: () => {
+					return [
+						{ field: '车牌号', key: 'vehicleNo', width: 100 },
+						{ field: '车主姓名', key: 'name', width: 100 },
+						{ field: '联系方式', key: 'mobile', width: 100 },
+						{ field: '欠费次数(次)', width: 80, key: 'oweCount' },
+						{ field: '欠费金额(元)', width: 80, key: 'amtOwe' }
+					]
+				}
+			}
+		},
+		data() {
+			return {
+				loading: false,
+				totalData: {},
+				tableData: {
+					current: 1,
+					total: 0,
+					list: []
+				},
+				tabCurName: 'road',
+				currentDate: [],
+				beginTime: undefined,
+				endTime: undefined,
+				tabList: [
+					{ name: '路段', value: 'road' },
+					{ name: '停车场', value: 'parking' }
+				]
+			}
+		},
+		methods: {
+			tabClick(item) {
+				this.tabCurName = item.value
+				this.tableData.current = 1
+				if (this.tabCurName === 'road') {
+					this.getArreasReportTotal()
+					this.getArreasReportList()
+				} else {
+					this.getParkingArreasReportTotal()
+					this.getParkingArreasReportList()
+				}
+			},
+			getData(data) {
+				if (data.length) {
+					this.beginTime = data[0]
+					this.endTime = data[1]
+				}
+				this.currentDate = data
+				this.tableData.current = 1
+				if (this.tabCurName === 'road') {
+					this.getArreasReportTotal()
+					this.getArreasReportList()
+				} else {
+					this.getParkingArreasReportTotal()
+					this.getParkingArreasReportList()
+				}
+			},
+			getArreasReportTotal() {
+				uni.$u.api.statisticalReportApi.getArrearsReportTotalApi({
+					beginTime: this.beginTime,
+					endTime: this.endTime
+				}).then(res => {
+					if (res.code === 200) {
+						this.totalData = res.data
+					}
+				})
+			},
+			getParkingArreasReportTotal() {
+				uni.$u.api.statisticalReportApi.getParkingArrearsReportTotalApi({
+					beginTime: this.beginTime,
+					endTime: this.endTime
+				}).then(res => {
+					if (res.code === 200) {
+						this.totalData = res.data
+					}
+				})
+			},
+			getArreasReportList() {
+				this.loading = true
+				uni.$u.api.statisticalReportApi.getArrearsReportListApi({
+					beginTime: this.beginTime,
+					endTime: this.endTime,
+					pageNum: this.tableData.current,
+					pageSize: 10
+				}).then(res => {
+					if (res.code === 200) {
+						this.tableData.list = res.rows
+						this.tableData.total = res.total
+					}
+					this.loading = false
+				})
+			},
+			getParkingArreasReportList() {
+				this.loading = true
+				uni.$u.api.statisticalReportApi.getParkingArrearsReportListApi({
+					beginTime: this.beginTime,
+					endTime: this.endTime,
+					pageNum: this.tableData.current,
+					pageSize: 10
+				}).then(res => {
+					if (res.code === 200) {
+						this.tableData.list = res.rows
+						this.tableData.total = res.total
+					}
+					this.loading = false
+				})
+			},
+			pageChange(cur) {
+				this.tableData.current = cur
+				if (this.tabCurName === 'road') {
+					this.getArreasReportList()
+				} else {
+					this.getParkingArreasReportList()
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import './report.scss';
+	.tab {
+		margin-bottom: 10px;
+	}
+</style>
+

+ 129 - 0
pages/dataOverview/todayOverview - 副本/components/checkWorkAttendance.vue

@@ -0,0 +1,129 @@
+<!-- 考勤统计 -->
+<template>
+	<view class="container">
+		<view class="table">
+			<view class="table-date" v-if="currentDate">{{ currentDate.join(' 至 ') }}</view>
+			<view class="table-search">
+				<view class="table-search-item">
+					<u--input class="input" placeholder="请输入工号" v-model="payeeNo"></u--input>
+				</view>
+				<view class="table-search-item">
+					<u--input class="input" placeholder="请输入姓名" v-model="payeeName"></u--input>
+				</view>
+				<view class="table-search-item">
+					<u-button class="btn" text="确认"
+						color="linear-gradient(157deg, #FECF4C 4%, #FECF4B 5%, #FCA225 100%)" :loading="loading" @click="confirm"></u-button>
+				</view>
+			</view>
+			<view class="table-box">
+				<TableRanking :loading="loading" :padding="'0'" :tableTh="tableTh" :tableData="tableData"
+					@pageChange="pageChange" />
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import TableRanking from '@/components/tableRanking.vue'
+	export default {
+		components: {
+			TableRanking
+		},
+		props: {
+			tableTh: {
+				type: Array,
+				default: () => {
+					return [{
+							field: '工号',
+							width: 80,
+							key: 'payeeNo'
+						},
+						{
+							field: '姓名',
+							width: 90,
+							key: 'payeeName'
+						},
+						{
+							field: '实出勤(天)',
+							width: 70,
+							key: 'realDays'
+						},
+						{
+							field: '缺勤(天)',
+							width: 70,
+							key: 'missDays'
+						},
+						{
+							field: '缺卡(次)',
+							width: 70,
+							key: 'missPunchCount'
+						},
+						{
+							field: '早退(次)',
+							width: 70,
+							key: 'leavePunchCount'
+						},
+					]
+				}
+			}
+		},
+		data() {
+			return {
+				loading: false,
+				tableData: {
+					current: 1,
+					total: 0,
+					list: []
+				},
+				currentDate: [],
+				beginTime: undefined,
+				endTime: undefined,
+				payeeNo: undefined,
+				payeeName: undefined
+			}
+		},
+		methods: {
+			getData(data) {
+				if (data.length) {
+					this.beginTime = data[0]
+					this.endTime = data[1]
+				} else {
+					this.beginTime = undefined
+					this.endTime = undefined
+				}
+				this.currentDate = data
+				this.tableData.current = 1
+				this.getPunchList()
+			},
+			getPunchList() {
+				this.loading = true
+				uni.$u.api.statisticalReportApi.getPunchListApi({
+					beginTime: this.beginTime,
+					endTime: this.endTime,
+					payeeNo: this.payeeNo,
+					payeeName: this.payeeName,
+					pageNum: this.tableData.current,
+					pageSize: 10
+				}).then(res => {
+					if (res.code === 200) {
+						this.tableData.list = res.rows
+						this.tableData.total = res.total
+					}
+					this.loading = false
+				})
+			},
+			pageChange(cur) {
+				this.tableData.current = cur
+				this.getPunchList()
+			},
+			confirm() {
+				this.tableData.current = 1
+				this.getPunchList()
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import './report.scss';
+</style>

+ 106 - 0
pages/dataOverview/todayOverview - 副本/components/parkingReallyIncome.vue

@@ -0,0 +1,106 @@
+<!-- 停车场实收统计 -->
+<template>
+	<view class="container">
+		<view class="table">
+			<view class="table-date" v-if="currentDate">{{ currentDate.join(' 至 ') }}</view>
+			<view class="table-box">
+				<TableRanking :loading="loading" :padding="'0'" :tableTh="tableTh" :tableData="tableData"
+					@pageChange="pageChange" />
+			</view>
+		</view>
+		<view class="total">
+			<view>
+				停车数量<text>{{ totalData.vehicleCount || 0 }}</text>辆,实收金额<text>{{ totalData.realAmount || 0 }}</text>元
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import TableRanking from '@/components/tableRanking.vue'
+	export default {
+		components: {
+			TableRanking
+		},
+		props: {
+			tableTh: {
+				type: Array,
+				default: () => {
+					return [{
+							field: '停车场名称',
+							width: 120,
+							key: 'parkingName'
+						},
+						{
+							field: '停车数量(次)',
+							width: 120,
+							key: 'vehicleCount'
+						},
+						{
+							field: '实收金额(元)',
+							width: 80,
+							key: 'realAmount'
+						}
+					]
+				}
+			}
+		},
+		data() {
+			return {
+				loading: false,
+				tableData: {
+					current: 1,
+					total: 0,
+					list: []
+				},
+				totalData: {},
+				currentDate: [],
+				beginTime: undefined,
+				endTime: undefined
+			}
+		},
+		methods: {
+			getData(data) {
+				if (data.length) {
+					this.beginTime = data[0]
+					this.endTime = data[1]
+				}
+				this.currentDate = data
+				this.tableData.current = 1
+				this.getList();
+				this.getTotal();
+			},
+			getList() {
+				this.loading = true
+				uni.$u.api.statisticalReportApi.getParkingReallyIncomeApi({
+					pageNum: this.tableData.current,
+					pageSize: 10,
+					beginTime: this.beginTime,
+					endTime: this.endTime
+				}).then(res => {
+					if (res.code === 200) {
+						this.tableData.list = res.rows
+						this.tableData.total = res.total
+					}
+					this.loading = false
+				})
+			},
+			getTotal() {
+				uni.$u.api.statisticalReportApi.getParkingReallyIncomeTotalApi({
+					beginTime: this.beginTime,
+					endTime: this.endTime
+				}).then(res => {
+					if (res.code === 200) {
+						const { realAmount, vehicleCount } = res.data
+						this.totalData.realAmount = realAmount
+						this.totalData.vehicleCount = vehicleCount
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import './report.scss';
+</style>

+ 147 - 0
pages/dataOverview/todayOverview - 副本/components/reallyReceivable.vue

@@ -0,0 +1,147 @@
+<!-- 应收实收分析 -->
+<template>
+	<view class="container">
+		<view class="tab">
+			<u-tabs
+				:list="tabList"
+				lineColor="#fff"
+				:activeStyle="{
+					color: '#fff',
+					fontWeight: 'bold',
+					transform: 'scale(1.05)'
+				}"
+				:inactiveStyle="{
+					color: '#000',
+					transform: 'scale(1)'
+				}"
+				@click="tabClick">
+			</u-tabs>
+		</view>
+		<view class="table">
+			<view class="table-date" v-if="params.queryDate">{{ params.title }}</view>
+			<view class="table-box">
+				<uni-table emptyText="暂无更多数据" :loading="loading">
+					<!-- 表头行 -->
+					<uni-tr>
+						<uni-th class="table-box-th" align="center" v-for="(item, index) in tableTh" :key="index"
+							:width="item.width || ''">{{ item.field }}
+						</uni-th>
+					</uni-tr>
+					<!-- 表格数据行 -->
+					<uni-tr v-for="(item, index) in tableData.list" :key="index">
+						<uni-td class="table-box-td" align="center" v-for="(field, fIndex) in tableTh" :key="fIndex">
+							{{ item[field.key] }}</uni-td>
+					</uni-tr>
+				</uni-table>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		props: {
+			tableTh: {
+				type: Array,
+				default: () => {
+					return [{
+							field: '时间',
+							width: 120,
+							key: 'statisTime'
+						},
+						{
+							field: '应收金额(元)',
+							width: 80,
+							key: 'payAmount'
+						},
+						{
+							field: '实收金额(元)',
+							width: 80,
+							key: 'realAmount'
+						},
+						{
+							field: '逃费金额(元)',
+							width: 80,
+							key: 'runawayAmount'
+						},
+						{
+							field: `“一分钱停车”减免`,
+							width: 120,
+							key: 'oneAmount'
+						},
+						{
+							field: '“八折停车”减免',
+							width: 110,
+							key: 'eightAmount'
+						},
+						{
+							field: '欠费金额(元)',
+							width: 80,
+							key: 'amtOwe'
+						},
+						{
+							field: '退款金额(元)',
+							width: 80,
+							key: 'backAmount'
+						}
+					]
+				}
+			}
+		},
+		data() {
+			return {
+				currentDate: [],
+				tableData: {
+					list: []
+				},
+				params: {
+					reportType: 2,
+					queryDate: '',
+					title: ''
+				},
+				loading: false,
+				tabCurName: 'road',
+				tabList: [
+					{ name: '路段', value: 'road' },
+					{ name: '停车场', value: 'parking' }
+				]
+			}
+		},
+		methods: {
+			tabClick(item) {
+				this.tabCurName = item.value
+				if (this.tabCurName === 'road') {
+					this.getReallyReceivableList()
+				} else {
+					this.getParkingReallyReceivableList()
+				}
+			},
+			getData(obj) {
+				this.params = obj
+				this.getReallyReceivableList()
+			},
+			getReallyReceivableList() {
+				this.loading = true
+				uni.$u.api.statisticalReportApi.getReallyReceivableListApi(this.params).then(res => {
+					if (res.code === 200) {
+						this.tableData.list = res.data.itemList
+					}
+					this.loading = false
+				})
+			},
+			getParkingReallyReceivableList() {
+				this.loading = true
+				uni.$u.api.statisticalReportApi.getParkingReallyReceivableListApi(this.params).then(res => {
+					if (res.code === 200) {
+						this.tableData.list = res.data.itemList
+					}
+					this.loading = false
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import './report.scss';
+</style>

+ 68 - 0
pages/dataOverview/todayOverview - 副本/components/report.scss

@@ -0,0 +1,68 @@
+.table {
+	padding: 19px 15px;
+	background-color: #fff;
+	border-radius: 5px;
+	font-family: PingFangSC-Regular, PingFang SC;
+	&-title {
+		text-align: center;
+		margin-bottom: 10px;
+	}
+	&-date {
+		margin-bottom: 10px;
+		font-size: 14px;
+		color: #434343;
+		text-align: center;
+	}
+	&-search {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		margin-bottom: 10px;
+		&-item {
+			width: 38%;
+			margin-right: 2%;
+			.input {
+				height: 29px;
+				padding: 0 9px!important;
+			}
+			&:last-child {
+				width: 53px;
+				margin-right: 0;
+				.btn {
+					width: 53px;
+					height: 31px;
+				}
+			}
+		}
+	}
+	&-box {
+		&-th {
+			border-bottom: none;
+			background-color: #EDF3FF;
+			font-size: 12px;
+			color: #434343;
+		}
+
+		&-td {
+			font-size: 12px;
+			color: #434343;
+			word-wrap: break-word;
+		}
+	}
+
+	&-pagination {
+		width: 130px;
+		margin: 20px auto 0;
+	}
+}
+.total {
+	color: #CADDFC;
+	margin-top: 24px;
+	text-align: center;
+	font-size: 14px;
+	line-height: 17px;
+	text {
+		color: #fff;
+		padding: 0 5px;
+	}
+}

+ 144 - 0
pages/dataOverview/todayOverview - 副本/components/revenueReport.vue

@@ -0,0 +1,144 @@
+<!-- 营收统计 -->
+<template>
+	<view class="container">
+		<view class="table">
+			<view class="table-date" v-if="currentDate">{{ currentDate.join(' 至 ') }}</view>
+			<view class="table-box">
+				<TableRanking :loading="loading" :padding="'0'" :tableTh="tableTh" :tableData="tableData"
+					@pageChange="pageChange" />
+			</view>
+		</view>
+		<view class="total">
+			<view>
+				车辆<text>{{ totalData.vehicleCount || 0 }}</text>辆,应收金额<text>{{ totalData.payAmount || 0 }}</text>元,实收金额<text>{{ totalData.realAmount || 0 }}</text>元,
+				欠费金额<text>{{ totalData.amtOwe || 0 }}</text>元,其中贵州银行快捷支付<text>{{ totalData.quickAmt || 0 }}</text>元,贵州银行聚合支付<text>{{ totalData.unionAmt || 0 }}</text>元,微信支付<text>{{ totalData.wechatAmt || 0 }}</text>元,无感支付<text>{{ totalData.unconsAmt || 0 }}</text>元,现金支付<text>{{ totalData.cashAmt || 0 }}</text>元
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import TableRanking from '@/components/tableRanking.vue'
+	export default {
+		components: {
+			TableRanking
+		},
+		props: {
+			tableTh: {
+				type: Array,
+				default: () => {
+					return [{
+							field: '停车场/路段',
+							width: 120,
+							key: 'roadName'
+						},
+						{
+							field: '车辆(辆)',
+							width: 80,
+							key: 'vehicleCount'
+						},
+						{
+							field: '应收金额(元)',
+							width: 80,
+							key: 'payAmount'
+						},
+						{
+							field: '实收金额(次)',
+							width: 80,
+							key: 'realAmount'
+						},
+						{
+							field: '欠费金额(元)',
+							width: 80,
+							key: 'amtOwe'
+						},
+						{
+							field: '贵州银行快捷支付(元)',
+							width: 150,
+							key: 'quickAmt'
+						},
+						{
+							field: '贵州银行聚合支付(元)',
+							width: 150,
+							key: 'unionAmt'
+						},
+						{
+							field: '微信(元)',
+							width: 80,
+							key: 'wechatAmt'
+						},
+						{
+							field: '无感(元)',
+							width: 80,
+							key: 'unconsAmt'
+						},
+						{
+							field: '现金(元)',
+							width: 80,
+							key: 'cashAmt'
+						}
+					]
+				}
+			}
+		},
+		data() {
+			return {
+				loading: false,
+				tableData: {
+					current: 1,
+					total: 0,
+					list: []
+				},
+				totalData: {},
+				currentDate: [],
+				beginTime: undefined,
+				endTime: undefined
+			}
+		},
+		methods: {
+			getData(data) {
+				if (data.length) {
+					this.beginTime = data[0]
+					this.endTime = data[1]
+				}
+				this.currentDate = data
+				this.tableData.current = 1
+				this.getIncomeTotal()
+				this.getIncomeList()
+			},
+			getIncomeTotal() {
+				uni.$u.api.statisticalReportApi.getIncomeTotalApi({
+					beginTime: this.beginTime,
+					endTime: this.endTime
+				}).then(res => {
+					if (res.code === 200) {
+						this.totalData = res.data
+					}
+				})
+			},
+			getIncomeList() {
+				this.loading = true
+				uni.$u.api.statisticalReportApi.getIncomeListApi({
+					beginTime: this.beginTime,
+					endTime: this.endTime,
+					pageNum: this.tableData.current,
+					pageSize: 10
+				}).then(res => {
+					if (res.code === 200) {
+						this.tableData.list = res.rows
+						this.tableData.total = res.total
+					}
+					this.loading = false
+				})
+			},
+			pageChange(cur) {
+				this.tableData.current = cur
+				this.getIncomeList()
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import './report.scss';
+</style>

+ 118 - 0
pages/dataOverview/todayOverview - 副本/components/sectionBerth.vue

@@ -0,0 +1,118 @@
+<!-- 路段泊位统计 -->
+<template>
+	<view class="container">
+		<view class="table">
+			<view class="table-date" v-if="currentDate">{{ currentDate.join(' 至 ') }}</view>
+			<view class="table-box">
+				<TableRanking :loading="loading" :padding="'0'" :tableTh="tableTh" :tableData="tableData"
+					@pageChange="pageChange" />
+			</view>
+		</view>
+		<view class="total">
+			<view>
+				停车数量<text>{{ totalData.vehicleCount || 0 }}</text>辆,实收金额<text>{{ totalData.realAmount || 0 }}</text>元
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import TableRanking from '@/components/tableRanking.vue'
+	export default {
+		components: {
+			TableRanking
+		},
+		props: {
+			tableTh: {
+				type: Array,
+				default: () => {
+					return [{
+							field: '路段名称',
+							key: 'roadName'
+						},
+						{
+							field: '所属泊位',
+							key: 'spaceName'
+						},
+						{
+							field: '停车数量(次)',
+							width: 80,
+							key: 'vehicleCount'
+						},
+						{
+							field: '实收金额(元)',
+							width: 80,
+							key: 'realAmount'
+						}
+					]
+				}
+			}
+		},
+		data() {
+			return {
+				beginTime: '',
+				endTime: '',
+				totalData: {},
+				tableData: {
+					current: 1,
+					total: 0,
+					list: []
+				},
+				currentDate: [],
+				loading: false
+			}
+		},
+		methods: {
+			getData(data) {
+				if (data.length) {
+					this.beginTime = data[0]
+					this.endTime = data[1]
+				} else {
+					this.beginTime = undefined
+					this.endTime = undefined
+				}
+				this.currentDate = data
+				this.tableData.current = 1
+				this.getRoadSpaceTotal()
+				this.getRoadSpaceList()
+			},
+			getRoadSpaceTotal() {
+				uni.$u.api.statisticalReportApi.getRoadSpaceTotalApi({
+					beginTime: this.beginTime,
+					endTime: this.endTime
+				}).then(res => {
+					if (res.code === 200) {
+						this.totalData = res.data
+					}
+				})
+			},
+			getRoadSpaceList() {
+				this.loading = true
+				uni.$u.api.statisticalReportApi.getRoadSpaceListApi({
+					beginTime: this.beginTime,
+					endTime: this.endTime,
+					pageNum: this.tableData.current,
+					pageSize: 10
+				}).then(res => {
+					if (res.code === 200) {
+						this.tableData.list = res.rows;
+						this.tableData.total = res.total
+					}
+					this.loading = false
+				})
+			},
+			/**
+			 * 分页切换
+			 * @param { Number } cur
+			 */
+			pageChange(cur) {
+				this.tableData.current = cur
+				this.getRoadSpaceList()
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import './report.scss';
+</style>

+ 120 - 0
pages/dataOverview/todayOverview - 副本/components/tollCollectorPerformance.vue

@@ -0,0 +1,120 @@
+<!-- 收费员业绩统计 -->
+<template>
+	<view class="container">
+		<view class="table">
+			<view class="table-date" v-if="currentDate">{{ currentDate.join(' 至 ') }}</view>
+			<view class="table-box">
+				<TableRanking :loading="loading" :padding="'0'" :tableTh="tableTh" :tableData="tableData" @pageChange="pageChange"/>
+			</view>
+		</view>
+		<view class="total">
+			<view>
+				应收金额<text>{{ totalData.payAmount || 0 }}</text>元,实收金额<text>{{ totalData.realAmount || 0 }}</text>元
+			</view>
+			<view>
+				现金收入<text>{{ totalData.cashAmt || 0 }}</text>元,非现金收入<text>{{ totalData.otherAmt || 0 }}</text>元
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import TableRanking from '@/components/tableRanking.vue'
+	export default {
+		components: {
+			TableRanking
+		},
+		props: {
+			tableTh: {
+				type: Array,
+				default: () => {
+					return [{
+							field: '工号',
+							key: 'payeeNo'
+						},
+						{
+							field: '姓名',
+							key: 'payeeName'
+						},
+						{
+							field: '所属路段',
+							key: 'roadName'
+						},
+						{
+							field: '应收金额(元)',
+							key: 'payAmount',
+							width: 80
+						},
+						{
+							field: '实收金额(元)',
+							key: 'realAmount',
+							width: 80
+						}
+					]
+				}
+			}
+		},
+		data() {
+			return {
+				tableData: {
+					current: 1,
+					total: 0,
+					list: []
+				},
+				totalData: {},
+				beginTime: undefined,
+				endTime: undefined,
+				loading: false,
+				currentDate: []
+			}
+		},
+		methods: {
+			getData(data) {
+				if (data.length) {
+					this.beginTime = data[0]
+					this.endTime = data[1]
+				} else {
+					this.beginTime = undefined
+					this.endTime = undefined
+				}
+				this.currentDate = data
+				this.tableData.current = 1
+				this.getTollCollectorAchieveTotal()
+				this.getTollCollectorAchieveList()
+			},
+			getTollCollectorAchieveTotal() {
+				uni.$u.api.statisticalReportApi.getTollCollectorAchieveTotalApi({
+					beginTime: this.beginTime,
+					endTime: this.endTime
+				}).then(res => {
+					if (res.code === 200) {
+						this.totalData = res.data
+					}
+				})
+			},
+			getTollCollectorAchieveList() {
+				this.loading = true
+				uni.$u.api.statisticalReportApi.getTollCollectorAchieveListApi({
+					beginTime: this.beginTime,
+					endTime: this.endTime,
+					pageNum: this.tableData.current,
+					pageSize: 10
+				}).then(res => {
+					if (res.code === 200) {
+						this.tableData.list = res.rows
+						this.tableData.total = res.total
+					}
+					this.loading = false
+				})
+			},
+			pageChange(cur) {
+				this.tableData.current = cur
+				this.getTollCollectorAchieveList()
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import './report.scss';
+</style>

+ 68 - 0
static/styles/report.scss

@@ -0,0 +1,68 @@
+.table {
+	padding: 19px 15px;
+	background-color: #fff;
+	border-radius: 5px;
+	font-family: PingFangSC-Regular, PingFang SC;
+	&-title {
+		text-align: center;
+		margin-bottom: 10px;
+	}
+	&-date {
+		margin-bottom: 10px;
+		font-size: 14px;
+		color: #434343;
+		text-align: center;
+	}
+	&-search {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		margin-bottom: 10px;
+		&-item {
+			width: 38%;
+			margin-right: 2%;
+			.input {
+				height: 29px;
+				padding: 0 9px!important;
+			}
+			&:last-child {
+				width: 53px;
+				margin-right: 0;
+				.btn {
+					width: 53px;
+					height: 31px;
+				}
+			}
+		}
+	}
+	&-box {
+		&-th {
+			border-bottom: none;
+			background-color: #EDF3FF;
+			font-size: 12px;
+			color: #434343;
+		}
+
+		&-td {
+			font-size: 12px;
+			color: #434343;
+			word-wrap: break-word;
+		}
+	}
+
+	&-pagination {
+		width: 130px;
+		margin: 20px auto 0;
+	}
+}
+.total {
+	color: #CADDFC;
+	margin-top: 24px;
+	text-align: center;
+	font-size: 14px;
+	line-height: 17px;
+	text {
+		color: #fff;
+		padding: 0 5px;
+	}
+}