zxl
1 天以前 f40c4519fd3922ca8c9b3e08f6e8632954e6017d
新需求
5个文件已修改
2个文件已添加
280 ■■■■■ 已修改文件
src/api/platform/demeritRecord.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/platform/work-order.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/check/demeritRecord/index.vue 218 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/check/template/index.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/monitor/video/index.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/work-order/distribute/index.vue 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/work-order/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/platform/demeritRecord.js
New file
@@ -0,0 +1,9 @@
import request from '@/utils/request'
export function getPage(params){
  return request({
    url:"/demeritRecord/getPage",
    method:"get",
    params: params
  })
}
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({
src/views/system/check/demeritRecord/index.vue
New file
@@ -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="扣分"
        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: '荣县' },       // RX最后一个属性203,第一个属性"荣县"
        { 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' }
      ],
      // 表格数据,实际项目中从接口获取
      total:0,
      tableData: [
      ],
      // 建设类型映射,用于将英文标识转换为中文显示
      constructionTypeMap: {
        'PHASE_ONE_TWO': '一二期',
        'PHASE_THREE': '三期',
        'PHASE_FOURTH': '四期'
      }
    };
  },
  mounted() {
    // 关键修复:移除原生radio的aria-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>
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("修改成功");
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: [
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()
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"