From e0fa52615c6e284abee8cfec93908a6095eaf006 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期二, 07 四月 2026 11:38:41 +0800
Subject: [PATCH] 录像扣分页面调整新增内容
---
src/views/system/check/demeritRecord/index.vue | 228 ++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 136 insertions(+), 92 deletions(-)
diff --git a/src/views/system/check/demeritRecord/index.vue b/src/views/system/check/demeritRecord/index.vue
index c29d7c5..5b8bfcb 100644
--- a/src/views/system/check/demeritRecord/index.vue
+++ b/src/views/system/check/demeritRecord/index.vue
@@ -1,10 +1,9 @@
-
<template>
<div class="demerit-record-table">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="100px">
<el-form-item label="鍖哄煙" prop="belongUnit">
<el-select v-model="queryParams.deptId" @change="handleQuery" clearable placeholder="杩愮淮鑰冩牳鍗曚綅">
- <el-option v-for="(item,index) in deptList" :key="index" :label="item.label" :value="item.value">
+ <el-option v-for="(item, index) in deptList" :key="index" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
@@ -17,111 +16,73 @@
</el-form-item>
<el-form-item label="閫夋嫨鏃ユ湡:" v-show="queryParams.searchType === 'day'">
- <el-date-picker
- v-model="queryParams.dayDate"
- type="date"
- placeholder="閫夋嫨鏃ユ湡"
- format="yyyy-MM-dd"
- value-format="yyyy-MM-dd"
- size="small"
- ></el-date-picker>
+ <el-date-picker v-model="queryParams.dayDate" type="daterange" range-separator="鑷�" start-placeholder="閫夋嫨鏃ユ湡"
+ end-placeholder="缁撴潫鏃ユ湡" format="yyyy-MM-dd" value-format="yyyy-MM-dd" size="small"></el-date-picker>
</el-form-item>
- <el-form-item label="閫夋嫨鏈堜唤:" v-show="queryParams.searchType === 'month'">
- <el-date-picker
- v-model="queryParams.monthDate"
- type="month"
- placeholder="閫夋嫨鏈堜唤"
- format="yyyy-MM"
- value-format="yyyy-MM"
- size="small"
- ></el-date-picker>
+ <el-form-item label="閫夋嫨鏈堜唤:" v-show="queryParams.searchType === 'month'">
+ <el-date-picker v-model="queryParams.monthDate" type="monthrange" range-separator="鑷�" start-placeholder="寮�濮嬫湀浠�"
+ end-placeholder="缁撴潫鏈堜唤" format="yyyy-MM" value-format="yyyy-MM" size="small"></el-date-picker>
</el-form-item>
<el-form-item label="鍒嗗缓绫诲瀷">
<el-select v-model="queryParams.constructionType" @change="handleQuery" clearable placeholder="鍒嗗缓绫诲瀷">
- <el-option v-for="(item,index) in constructionTypeList" :key="index" :label="item.label" :value="item.value">
+ <el-option v-for="(item, index) in constructionTypeList" :key="index" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">鎼滅储</el-button>
<el-button icon="el-icon-refresh" size="small" @click="resetQuery">閲嶇疆</el-button>
+ <el-button size="small" @click="updateData">鏇存柊</el-button>
</el-form-item>
</el-form>
- <el-table
- :data="tableData"
- border
- stripe
- style="width: 100%"
- :header-cell-style="{ 'background-color': '#f5f7fa', 'font-weight': 'bold' }"
- >
- <el-table-column
- prop="deptName"
- label="鍖哄煙鍚�"
- align="center"
- min-width="150"
- ></el-table-column>
+ <el-table :data="tableData" border stripe style="width: 100%" v-loading="loading"
+ :header-cell-style="{ 'background-color': '#f5f7fa', 'font-weight': 'bold' }">
+ <el-table-column prop="deptName" label="鍖哄煙鍚�" align="center" min-width="150"></el-table-column>
- <el-table-column
- prop="constructionType"
- label="鍒嗗缓璁剧被鍨�"
- align="center"
- min-width="180"
- >
+ <el-table-column prop="constructionType" label="鍒嗗缓璁剧被鍨�" align="center" min-width="180">
<template slot-scope="scope">
{{ formatConstructionType(scope.row.constructionType) }}
</template>
</el-table-column>
- <el-table-column
- prop="demerit"
- label="鎵e垎"
- align="center"
- min-width="120"
- >
+ <el-table-column prop="demerit" label="鎵e垎" align="center" min-width="120">
<template slot-scope="scope">
{{ formatDemerit(scope.row.demerit) }}
</template>
</el-table-column>
-
- <el-table-column
- prop="recordTime"
- label="鏃ユ湡"
- align="center"
- min-width="200"
- >
+ <el-table-column prop="videoOnlineRate" label="鍦ㄧ嚎鐜�" align="center" min-width="200">
+ <template slot-scope="scope">
+ {{ formatDemeritRate(scope.row.videoOnlineRate) }}
+ </template>
+ </el-table-column>
+ <el-table-column prop="recordTime" label="鏃ユ湡" align="center" min-width="200">
<template slot-scope="scope">
<!-- recordTime鏍煎紡涓� "yyyy-MM-dd HH:mm:ss"锛岄�氳繃split鎴彇鏃ユ湡閮ㄥ垎 -->
{{ scope.row.recordTime ? scope.row.recordTime.split(' ')[0] : '-' }}
</template>
</el-table-column>
- <el-table-column
- prop="action"
- label="鎿嶄綔"
- align="=center">
+ <el-table-column prop="action" label="鎿嶄綔" align="=center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="exportInfo(scope.row)">瀵煎嚭璇︽儏</el-button>
</template>
</el-table-column>
</el-table>
- <pagination
- v-show="total > 0"
- :total="total"
- :page.sync="queryParams.pageNum"
- :limit.sync="queryParams.pageSize"
- @pagination="getPage"
- />
+ <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
+ @pagination="getPage" />
</div>
</template>
<script>
-import { getPage,exportInfo
+import {
+ getPage, exportInfo,executeDecemberStats
} from "@/api/platform/demeritRecord"
export default {
name: 'DemeritRecordTable',
data() {
return {
+ loading:false,
deptList: [
{ value: 201, label: '鑷祦浜曞尯' }, // ZLJQ鏈�鍚庝竴涓睘鎬�201锛岀涓�涓睘鎬�"鑷祦浜曞尯"
{ value: 202, label: '璐′簳鍖�' }, // GJQ鏈�鍚庝竴涓睘鎬�202锛岀涓�涓睘鎬�"璐′簳鍖�"
@@ -131,25 +92,29 @@
{ value: 101, label: '瀵岄『鍘�' }, // FSX鏈�鍚庝竴涓睘鎬�101锛岀涓�涓睘鎬�"瀵岄『鍘�"
{ value: 210, label: '楂樻柊鍖�' } // GXQ鏈�鍚庝竴涓睘鎬�210锛岀涓�涓睘鎬�"楂樻柊鍖�"
],
- queryParams:{
+ queryParams: {
searchType: 'day',
dayDate: null,
- monthDate:null,
+ monthDate: null,
+ dayStart: null,
+ dayEnd: null,
+ monthStart: null,
+ monthEnd: null,
deptId: '',
constructionType: '',
pageNum: 1,
pageSize: 20
},
- constructionTypeList:[
- { label:'涓�浜屾湡',value:'PHASE_ONE_TWO' },
- { label:'涓夋湡',value:'PHASE_THREE' },
- { label:'鍥涘尯浜鸿劯',value:'PHASE_FOURTH' },
- { label:'涓滈儴鏂板煄',value:'EASTERN_NEW_CITY' },
- { label:'娌挎哗浜屾湡浜鸿劯',value:'YAN_TAN_PHASE_TWO_FACE' },
- { label: '鍏ュ窛鍗虫',value: 'CHECK_ENTER_SICHUAN'}
+ constructionTypeList: [
+ { label: '涓�浜屾湡', value: 'PHASE_ONE_TWO' },
+ { label: '涓夋湡', value: 'PHASE_THREE' },
+ { label: '鍥涘尯浜鸿劯', value: 'PHASE_FOURTH' },
+ { label: '涓滈儴鏂板煄', value: 'EASTERN_NEW_CITY' },
+ { label: '娌挎哗浜屾湡浜鸿劯', value: 'YAN_TAN_PHASE_TWO_FACE' },
+ { label: '鍏ュ窛鍗虫', value: 'CHECK_ENTER_SICHUAN' }
],
// 琛ㄦ牸鏁版嵁锛屽疄闄呴」鐩腑浠庢帴鍙h幏鍙�
- total:0,
+ total: 0,
tableData: [
],
// 寤鸿绫诲瀷鏄犲皠锛岀敤浜庡皢鑻辨枃鏍囪瘑杞崲涓轰腑鏂囨樉绀�
@@ -157,9 +122,9 @@
'PHASE_ONE_TWO': '涓�浜屾湡',
'PHASE_THREE': '涓夋湡',
'PHASE_FOURTH': '鍥涘尯浜鸿劯',
- 'EASTERN_NEW_CITY':'涓滈儴鏂板煄',
- 'YAN_TAN_PHASE_TWO_FACE':'娌挎哗浜屾湡浜鸿劯',
- 'CHECK_ENTER_SICHUAN':'鍏ュ窛鍗虫',
+ 'EASTERN_NEW_CITY': '涓滈儴鏂板煄',
+ 'YAN_TAN_PHASE_TWO_FACE': '娌挎哗浜屾湡浜鸿劯',
+ 'CHECK_ENTER_SICHUAN': '鍏ュ窛鍗虫',
}
};
},
@@ -175,42 +140,113 @@
},
methods: {
- exportInfo(row){
+ updateData(){
+ if (this.loading){
+ return
+ }
+ this.loading = true
+ executeDecemberStats().then(res =>{
+ if (res.code === 200){
+ this.$message("鎵ц鎴愬姛")
+ }
+ this.loading = false
+ })
+ },
+ exportInfo(row) {
console.log(row)
let name = row.deptName + '璁惧璇︽儏.xlsx'
- this.download('demeritRecord/exportInfo/' +row.id,
- {},
+ this.download('demeritRecord/exportInfo',
+ {
+ id:row.id,
+ date:row.recordTime,
+ deptId:row.deptId,
+ type:row.constructionType
+ },
`${name}`)
},
- init(){
+ init() {
// 鍒濆鍖栨煡璇㈠弬鏁�
this.getPage();
},
- getPage(){
- if (this.queryParams.searchType === "day"){
+ getPage() {
+ console.log(this.queryParams.dayDate)
+ this.queryParams.dayStart = null;
+ this.queryParams.dayEnd = null;
+ this.queryParams.monthStart = null;
+ this.queryParams.monthEnd = null;
+ let from = null;
+ if (this.queryParams.searchType === "day") {
this.queryParams.monthDate = null;
- }else{
- this.queryParams.dayDate = null;
- }
- let from = {...this.queryParams}
- getPage(from).then(res =>{
- if (res.code === 200){
+ if (this.queryParams.dayDate && this.queryParams.dayDate.length === 2) {
+ this.queryParams.dayStart = this.queryParams.dayDate[0] +" 00:00:00";
+ this.queryParams.dayEnd = this.queryParams.dayDate[1]+" 23:59:59";
+ }
+ from = {
+ searchType: this.queryParams.searchType,
+ dayStart: this.queryParams.dayStart,
+ dayEnd: this.queryParams.dayEnd,
+ deptId: this.queryParams.deptId,
+ constructionType: this.queryParams.constructionType,
+ pageNum: this.queryParams.pageNum,
+ pageSize: this.queryParams.pageSize
+ }
+ } else {
+ this.queryParams.dayDate = null;
+ if (this.queryParams.monthDate && this.queryParams.monthDate.length === 2) {
+ const monthStart = this.queryParams.monthDate[0];
+ const monthEnd = this.queryParams.monthDate[1];
+
+
+ const [startYear, startMonth] = monthStart.split('-').map(Number);
+ // 鏈堜唤琛ラ浂锛屾瘮濡� 2025-1 鈫� 2025-01
+ const formattedStartMonth = String(startMonth).padStart(2, '0');
+ // 鎷兼帴鎴愬畬鏁寸殑鏃ユ湡鏃堕棿鏍煎紡锛屽吋瀹筎imestamp瑙f瀽
+ this.queryParams.monthStart = `${startYear}-${formattedStartMonth}-01 00:00:00`;
+
+
+ // 淇2锛氭爣鍑嗗寲缁撴潫鏈堜唤鏍煎紡锛屾坊鍔犳椂闂存埑骞惰ˉ闆�
+
+ const [year, month] = monthEnd.split('-').map(Number);
+ const lastDay = new Date(year, month, 0).getDate();
+ // 鏈堜唤鍜屾棩鏈熼兘琛ラ浂锛屾瘮濡� 2025-11-3 鈫� 2025-11-03
+ const formattedMonth = String(month).padStart(2, '0');
+ const formattedDay = String(lastDay).padStart(2, '0');
+ // 鎷兼帴鎴愬綋鏈堟渶鍚庝竴澶╃殑23:59:59锛岀‘淇濊鐩栨暣涓湀浠�
+ this.queryParams.monthEnd = `${year}-${formattedMonth}-${formattedDay} 23:59:59`;
+
+ from = {
+ searchType: this.queryParams.searchType,
+ monthStart: this.queryParams.monthStart,
+ monthEnd: this.queryParams.monthEnd,
+ deptId: this.queryParams.deptId,
+ constructionType: this.queryParams.constructionType,
+ pageNum: this.queryParams.pageNum,
+ pageSize: this.queryParams.pageSize
+ }
+ }
+ }
+ getPage(from).then(res => {
+ if (res.code === 200) {
this.tableData = res.data;
this.total = res.total
}
})
},
- handleQuery(){
+ handleQuery() {
this.queryParams.pageNum = 1;
this.getPage()
},
- resetQuery(){
+ resetQuery() {
this.queryParams = {
searchType: 'day',
dayDate: null,
- monthDate:null,
+ monthDate: null,
+ dayStart: null,
+ dayEnd: null,
+ monthStart: null,
+ monthEnd: null,
deptId: '',
constructionType: '',
pageNum: 1,
@@ -225,6 +261,14 @@
// 鏍煎紡鍖栨墸鍒嗘樉绀猴紝淇濈暀涓�浣嶅皬鏁�
formatDemerit(value) {
return value.toFixed(1);
+ },
+ formatDemeritRate(value) {
+ if (value !== null && value !== 0) {
+ return value.toFixed(1) + "%";
+ } else {
+ return "鏆傛棤"
+ }
+
}
}
};
--
Gitblit v1.8.0