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