From f40c4519fd3922ca8c9b3e08f6e8632954e6017d Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期五, 19 九月 2025 11:59:01 +0800
Subject: [PATCH] 新需求
---
src/views/system/work-order/distribute/index.vue | 26 +++++
src/views/system/monitor/video/index.vue | 13 ++
src/api/platform/demeritRecord.js | 9 +
src/views/system/check/demeritRecord/index.vue | 218 +++++++++++++++++++++++++++++++++++++++++++
src/api/platform/work-order.js | 8 +
src/views/system/check/template/index.vue | 3
src/views/system/work-order/index.vue | 3
7 files changed, 278 insertions(+), 2 deletions(-)
diff --git a/src/api/platform/demeritRecord.js b/src/api/platform/demeritRecord.js
new file mode 100644
index 0000000..1bc6ca9
--- /dev/null
+++ b/src/api/platform/demeritRecord.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+export function getPage(params){
+ return request({
+ url:"/demeritRecord/getPage",
+ method:"get",
+ params: params
+ })
+}
diff --git a/src/api/platform/work-order.js b/src/api/platform/work-order.js
index 37f5e9a..fe96fcf 100644
--- a/src/api/platform/work-order.js
+++ b/src/api/platform/work-order.js
@@ -70,6 +70,14 @@
})
}
+export function delWorkOrderByIds(data){
+ return request({
+ url: '/work-order/delByIds',
+ method:'delete',
+ data:data
+ })
+}
+
// 瀹℃牳宸ュ崟
export function auditing(data) {
return request({
diff --git a/src/views/system/check/demeritRecord/index.vue b/src/views/system/check/demeritRecord/index.vue
new file mode 100644
index 0000000..59b3c85
--- /dev/null
+++ b/src/views/system/check/demeritRecord/index.vue
@@ -0,0 +1,218 @@
+
+<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>
+ </el-select>
+ </el-form-item>
+
+ <el-form-item label="鎼滅储绫诲瀷:">
+ <el-radio-group v-model="queryParams.searchType" size="small">
+ <el-radio label="day">鎸夋棩</el-radio>
+ <el-radio label="month">鎸夋湀</el-radio>
+ </el-radio-group>
+ </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-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>
+ <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>
+ </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-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-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"
+ >
+ <template slot-scope="scope">
+ {{ formatDemerit(scope.row.demerit) }}
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ prop="createTime"
+ label="鍒涘缓鏃ユ湡"
+ align="center"
+ min-width="200"
+ >
+ <template slot-scope="scope">
+ <!-- createTime鏍煎紡涓� "yyyy-MM-dd HH:mm:ss"锛岄�氳繃split鎴彇鏃ユ湡閮ㄥ垎 -->
+ {{ scope.row.createTime ? scope.row.createTime.split(' ')[0] : '-' }}
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ v-show="total > 0"
+ :total="total"
+ :page.sync="queryParams.pageNum"
+ :limit.sync="queryParams.pageSize"
+ @pagination="getPage"
+ />
+ </div>
+</template>
+<script>
+import { getPage
+} from "@/api/platform/demeritRecord"
+export default {
+ name: 'DemeritRecordTable',
+ data() {
+ return {
+ deptList: [
+ { value: 201, label: '鑷祦浜曞尯' }, // ZLJQ鏈�鍚庝竴涓睘鎬�201锛岀涓�涓睘鎬�"鑷祦浜曞尯"
+ { value: 202, label: '璐′簳鍖�' }, // GJQ鏈�鍚庝竴涓睘鎬�202锛岀涓�涓睘鎬�"璐′簳鍖�"
+ { value: 102, label: '澶у畨鍖�' }, // DAQ鏈�鍚庝竴涓睘鎬�102锛岀涓�涓睘鎬�"澶у畨鍖�"
+ { value: 211, label: '娌挎哗鍖�' }, // YTQ鏈�鍚庝竴涓睘鎬�211锛岀涓�涓睘鎬�"娌挎哗鍖�"
+ { value: 203, label: '鑽e幙' }, // RX鏈�鍚庝竴涓睘鎬�203锛岀涓�涓睘鎬�"鑽e幙"
+ { value: 101, label: '瀵岄『鍘�' }, // FSX鏈�鍚庝竴涓睘鎬�101锛岀涓�涓睘鎬�"瀵岄『鍘�"
+ { value: 210, label: '楂樻柊鍖�' } // GXQ鏈�鍚庝竴涓睘鎬�210锛岀涓�涓睘鎬�"楂樻柊鍖�"
+ ],
+ queryParams:{
+ searchType: 'day',
+ dayDate: null,
+ monthDate:null,
+ deptId: '',
+ constructionType: '',
+ pageNum: 1,
+ pageSize: 20
+ },
+ constructionTypeList:[
+ { label:'涓�浜屾湡',value:'PHASE_ONE_TWO' },
+ { label:'涓夋湡',value:'PHASE_THREE' },
+ { label:'鍥涙湡',value:'PHASE_FOURTH' }
+ ],
+ // 琛ㄦ牸鏁版嵁锛屽疄闄呴」鐩腑浠庢帴鍙h幏鍙�
+ total:0,
+ tableData: [
+ ],
+ // 寤鸿绫诲瀷鏄犲皠锛岀敤浜庡皢鑻辨枃鏍囪瘑杞崲涓轰腑鏂囨樉绀�
+ constructionTypeMap: {
+ 'PHASE_ONE_TWO': '涓�浜屾湡',
+ 'PHASE_THREE': '涓夋湡',
+ 'PHASE_FOURTH': '鍥涙湡'
+ }
+ };
+ },
+ mounted() {
+ // 鍏抽敭淇锛氱Щ闄ゅ師鐢焤adio鐨刟ria-hidden灞炴��
+ this.$nextTick(() => {
+ const radioInputs = document.querySelectorAll('.el-radio__original');
+ radioInputs.forEach(input => {
+ input.removeAttribute('aria-hidden'); // 璁╄緟鍔╂妧鏈兘璇嗗埆鐒︾偣
+ });
+ });
+ this.init();
+
+ },
+ methods: {
+ init(){
+ // 鍒濆鍖栨煡璇㈠弬鏁�
+ this.getPage();
+
+ },
+ getPage(){
+ 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){
+ this.tableData = res.data;
+ this.total = res.total
+ }
+ })
+ },
+ handleQuery(){
+ this.queryParams.pageNum = 1;
+ this.getPage()
+ },
+ resetQuery(){
+ this.queryParams = {
+ searchType: 'day',
+ dayDate: null,
+ monthDate:null,
+ deptId: '',
+ constructionType: '',
+ pageNum: 1,
+ pageSize: 20
+ };
+ this.getPage()
+ },
+ // 鏍煎紡鍖栧缓璁剧被鍨嬫樉绀�
+ formatConstructionType(type) {
+ return this.constructionTypeMap[type] || type;
+ },
+ // 鏍煎紡鍖栨墸鍒嗘樉绀猴紝淇濈暀涓�浣嶅皬鏁�
+ formatDemerit(value) {
+ return value.toFixed(1);
+ }
+ }
+};
+</script>
+<style>
+.demerit-record-table {
+ padding: 20px;
+ background-color: #fff;
+ border-radius: 4px;
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.05);
+
+
+}
+</style>
diff --git a/src/views/system/check/template/index.vue b/src/views/system/check/template/index.vue
index 964d6d3..7f70c66 100644
--- a/src/views/system/check/template/index.vue
+++ b/src/views/system/check/template/index.vue
@@ -12,6 +12,7 @@
/>
</el-select>
</el-form-item>
+
<el-form-item label="鑰冩牳鏍囩" prop="examineTag">
<el-select v-model="queryParams.examineTag" placeholder="鑰冩牳鏍囩" clearable @change="handleQuery">
<el-option
@@ -492,6 +493,8 @@
}
}
this.form.ruleFormList = this.tempRuleFormList;
+ //鑰冩牳棰戠巼鍒濆鍖�
+ this.form.frequency = 0;
if (this.form.id != null) {
updateCheckTemplate(this.form).then(response => {
this.$modal.msgSuccess("淇敼鎴愬姛");
diff --git a/src/views/system/monitor/video/index.vue b/src/views/system/monitor/video/index.vue
index 7cf8ee8..5875df6 100644
--- a/src/views/system/monitor/video/index.vue
+++ b/src/views/system/monitor/video/index.vue
@@ -92,11 +92,19 @@
</el-select>
</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>
+ </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-form-item>
+
</el-form>
<!-- 瀵煎嚭鎸夐挳 -->
<div v-hasPermi="['system:monitor:export']">
@@ -330,6 +338,11 @@
dicts: ['sys_normal_disable', 'platform_yes_no', 'camera_state'],
data() {
return {
+ constructionTypeList:[
+ { label:'涓�浜屾湡',value:'PHASE_ONE_TWO' },
+ { label:'涓夋湡',value:'PHASE_THREE' },
+ { label:'鍥涙湡',value:'PHASE_FOURTH' }
+ ],
deptList: [],
// 鍒椾俊鎭�
columns: [
diff --git a/src/views/system/work-order/distribute/index.vue b/src/views/system/work-order/distribute/index.vue
index f9177b6..803a7f9 100644
--- a/src/views/system/work-order/distribute/index.vue
+++ b/src/views/system/work-order/distribute/index.vue
@@ -112,6 +112,18 @@
<el-button slot="reference" type="primary" size="mini" plain>蹇嵎涓嬪彂</el-button>
</el-popover>
<el-button size="mini" plain type="success" @click="handleAdd">鎵嬪姩鏂板宸ュ崟</el-button>
+ <el-popconfirm
+ @confirm="delDistribute"
+ title="纭畾瑕佸垹闄ゆ墍閫夊伐鍗曞悧锛�"
+ >
+ <el-button size="mini" plain type="danger" class="op" slot="reference">鎵归噺鍒犻櫎</el-button>
+ </el-popconfirm>
+ <el-popconfirm
+ @confirm="allDistribute"
+ title="纭畾瑕佷笅鍙戞墍鏈夊伐鍗曞悧锛�"
+ >
+ <el-button size="mini" plain type="danger" class="op" slot="reference">鍏ㄩ儴涓嬪彂</el-button>
+ </el-popconfirm>
<right-toolbar :showSearch.sync="showSearch" @queryTable="page"></right-toolbar>
</el-row>
</el-row>
@@ -211,7 +223,7 @@
import {distributeWorkOrder, fastDistribute, addWorkOrder, updateWorkOrder, selectedIdsDistribute, errorTypeAll} from '@/api/platform/work-order'
import {workList} from "@/api/platform/unit";
import { pointSelectData } from "@/api/platform/point";
-import {delWorkOrder} from "../../../../api/platform/work-order";
+import {delWorkOrder,delWorkOrderByIds} from "../../../../api/platform/work-order";
export default {
dicts: ['error_type'],
name: 'Work-order-distribute',
@@ -329,6 +341,18 @@
},
},
methods: {
+ delDistribute(){
+ console.log(this.multipleSelection)
+ this.multipleSelection.forEach(item =>{
+ console.log(item)
+ })
+ delWorkOrderByIds(this.multipleSelection).then(res =>{
+ if (res.code === 200){
+ this.$message.success("鍒犻櫎鎴愬姛!")
+ }
+ this.page();
+ })
+ },
delWorkOrderClick(row){
delWorkOrder(row.id)
this.page()
diff --git a/src/views/system/work-order/index.vue b/src/views/system/work-order/index.vue
index 49fa946..36fa82f 100644
--- a/src/views/system/work-order/index.vue
+++ b/src/views/system/work-order/index.vue
@@ -99,7 +99,7 @@
v-hasPermi="['work:order:delete']"
>鍒犻櫎
</el-button>
- <el-button size="mini" plain type="info" @click="selectedDistribute" class="op">鎵归噺涓婃姤</el-button>
+ <el-button size="mini" plain type="primary" @click="selectedDistribute" class="op">鎵归噺涓婃姤</el-button>
</el-col>
</el-row>
@@ -201,6 +201,7 @@
@click="handleYwCondition(item)"
>澶勭悊涓婃姤
</el-button>
+
<el-button
class="my-button"
size="mini"
--
Gitblit v1.8.0