Admin
2022-09-21 999cab6fb3fc6d2a288d365da991351c5a396bf0
src/views/specialWorkSystem/workAlert/alertRecord/index.vue
@@ -24,7 +24,7 @@
            <el-col :span="6" style="display:flex;align-items: center">
               <span style="white-space: nowrap">预警类型:</span>
               <div class="grid-content topInfo">
                  <el-select v-model="searchAlert" placeholder="请选择预警类型">
                  <el-select v-model="warningType" placeholder="请选择预警类型">
                     <el-option
                           v-for="item in alertTypeList"
                           :key="item.id"
@@ -41,9 +41,9 @@
            <div class="main-card">
<!--               <el-row class="cardTop">-->
<!--                  <el-col :span="12" class="mainCardBtn">-->
<!--                     <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord = true">新建</el-button>-->
<!--                     <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord = true">新增</el-button>-->
<!--                  </el-col>-->
<!--                  <el-button type="primary" :icon="Refresh" size="default"/>-->
<!--                  <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData"/>-->
<!--               </el-row>-->
               <el-table
                     ref="multipleTableRef"
@@ -52,14 +52,14 @@
                     height="calc(100% - 48px)"
                     :header-cell-style="{background: '#fafafa'}"
               >
                  <el-table-column type="index" label="序号" width="200"/>
                  <el-table-column property="id" label="作业证编号" width="200"/>
                  <el-table-column property="workType" label="作业类型" width="200"/>
                  <el-table-column property="alertInfo" label="预警信息"/>
                  <el-table-column property="alertType" label="预警类型"/>
                  <el-table-column property="desc" label="描述" width="200"/>
                  <el-table-column property="name" label="上报人"/>
                  <el-table-column property="updateTime" label="上报时间"/>
                  <el-table-column type="index" label="序号" width="80"/>
                  <el-table-column property="workPermitNo" label="作业证编号"/>
                  <el-table-column property="workTypeDesc" label="作业类型"/>
                  <el-table-column property="warningContent" show-overflow-tooltip label="预警信息"/>
                  <el-table-column property="warningTypeDesc" label="预警类型"/>
                  <el-table-column property="warningInfo" show-overflow-tooltip label="描述" width="200"/>
                  <el-table-column property="operatorUname" label="上报人"/>
                  <el-table-column property="operationTime" label="上报时间" width="180"/>
                  <el-table-column fixed="right" label="操作" align="center" width="250">
                     <template #default="scope">
                        <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
@@ -74,7 +74,7 @@
                        small=false
                        background
                        layout="total, sizes, prev, pager, next, jumper"
                        :total="100"
                        :total="totalSize"
                        @size-change="handleSizeChange"
                        @current-change="handleCurrentChange"
                  />
@@ -85,25 +85,28 @@
      <el-dialog v-model="dialogDetails" title="作业预警记录">
         <el-form :model="details" label-width="120px">
            <el-form-item label="作业证编号">
               <el-input v-model="details.id" readonly/>
               <el-input v-model="details.workPermitNo" readonly/>
            </el-form-item>
            <el-form-item label="作业类型">
               <el-input v-model="details.workType" readonly/>
               <el-input v-model="details.workTypeDesc" readonly/>
            </el-form-item>
            <el-form-item label="预警信息">
               <el-input v-model="details.alertInfo" readonly/>
               <el-input v-model="details.warningContent" readonly/>
            </el-form-item>
            <el-form-item label="预警类型">
               <el-input v-model="details.alertType" readonly/>
               <el-input v-model="details.warningTypeDesc" readonly/>
            </el-form-item>
            <el-form-item label="图片" v-if="details.imagePaths && details.imagePaths.length>0">
               <el-image v-for="item in details.imagePaths" :preview-src-list="details.imagePaths" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />
            </el-form-item>
            <el-form-item label="描述">
               <el-input v-model="details.desc" type="textarea" readonly/>
               <el-input v-model="details.warningInfo" type="textarea" readonly/>
            </el-form-item>
            <el-form-item label="上报人">
               <el-input v-model="details.name" readonly/>
               <el-input v-model="details.operatorUname" readonly/>
            </el-form-item>
            <el-form-item label="上报时间">
               <el-input v-model="details.updateTime" readonly/>
               <el-input v-model="details.operationTime" readonly/>
            </el-form-item>
            <el-form-item>
               <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button>
@@ -122,7 +125,7 @@
   import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue';
   import { ElTable } from 'element-plus';
   import { FormInstance, FormRules, ElMessage } from 'element-plus';
   import { teamManageApi } from '/@/api/systemManage/basicDateManage/personShiftManage/teamManage';
   import { workProcessApi } from '/@/api/specialWorkSystem/workProcess';
   // 定义接口来定义对象的类型
   interface stateType {
@@ -130,7 +133,6 @@
      departmentList: Array<any>;
      department:string;
      workerList: Array<string>;
      casProps: {};
      multipleSelection: Array<any>;
      deleteArr: Array<any>;
      dialogDetails: boolean;
@@ -142,12 +144,9 @@
      chosenIndex: null | number;
      deleteId: null | number;
      searchWord: string;
      searchType: number | null;
      searchAlert: number | null;
      searchType: string;
      warningType: string;
      totalSize: number;
      addRecord: {
      };
      details: {
      };
@@ -168,94 +167,47 @@
            totalSize: 0,
            chosenIndex: null,
            searchWord: '',
            searchType: null,
            searchAlert: null,
            tableData: [
               {
                  id: 'GTXH-0000001',
                  workType: '动火作业',
                  alertInfo: '可燃气检查超标',
                  alertType: '气体分析',
                  desc: 'A车间动火作业过程检查',
                  name: '李羽飞',
                  updateTime: '2022-08-31 12:00:00'
               },
               {
                  id: 'GTXH-0000002',
                  workType: '动火作业',
                  alertInfo: '作业现场检查异常',
                  alertType: '作业检查',
                  desc: 'B车间动火作业过程气体检查',
                  name: '李羽飞',
                  updateTime: '2022-08-31 16:31:44'
               },
               {
                  id: 'GTXH-0000003',
                  workType: '动火作业',
                  alertInfo: '可燃气检查超标',
                  alertType: '气体分析',
                  desc: '',
                  name: '李羽飞',
                  updateTime: '2022-08-31 17:05:20'
               }
            ],
            searchType: '',
            warningType: '',
            tableData: [],
            departmentList: [],
            department: '',
            workerList: [],
            casProps: {
               expandTrigger: 'hover',
               emitPath: false,
               value: 'depId',
               label: 'depName'
            },
            multipleSelection: [],
            dialogDetails: false,
            dialogAddRecord: false,
            deleteDialog: false,
            deleteSetDialog: false,
            addRecord: {
            },
            details: {
            },
            details: {},
            deleteId: null,
            deleteArr: [],
            workTypeList: [
               { id: 1, name: '动火作业' },
               { id: 2, name: '受限空间作业' },
               { id: 3, name: '吊装作业' },
               { id: 4, name: '动土作业' },
               { id: 5, name: '断路作业' },
               { id: 6, name: '高处作业' },
               { id: 7, name: '临时用电作业' },
               { id: 8, name: '盲板抽堵作业' }
               { id: '1', name: '动火作业' },
               { id: '2', name: '受限空间作业' },
               { id: '3', name: '吊装作业' },
               { id: '4', name: '动土作业' },
               { id: '5', name: '断路作业' },
               { id: '6', name: '高处作业' },
               { id: '7', name: '临时用电作业' },
               { id: '8', name: '盲板抽堵作业' }
            ],
            alertTypeList: [
               { id: 1, name: '气体分析' },
               { id: 2, name: '作业检查' }
               { id: '1', name: '检查' },
               { id: '2', name: '检测' }
            ]
         });
         // 页面载入时执行方法
         onMounted(() => {
            // getListByPage();
            // getAllDepartment();
            getListByPage();
         });
         // 分页获取班组管理列表
         const getListByPage = async () => {
            const data = { pageSize: state.pageSize, pageIndex: state.pageIndex, searchParams: { groupName: state.searchWord, containGroupMemberEnable: true } };
            let res = await teamManageApi().getRecordPage(data);
            const data = { pageSize: state.pageSize, pageIndex: state.pageIndex, searchParams: { workType: state.searchType, workPermitNo: state.searchWord,warningType: state.warningType } };
            let res = await workProcessApi().postAlertList(data);
            if (res.data.code === '200') {
               state.tableData = res.data.data.map((item) => {
                  if (!item.groupMembers || item.groupMembers == null) {
                     item.groupMembers = [];
                  } else {
                     item.groupMembers = Array.from(item.groupMembers, ({ username }) => username);
                  }
                  return item;
               });
               state.tableData = JSON.parse(JSON.stringify(res.data.data))
               state.totalSize = res.data.total;
            } else {
               ElMessage({
@@ -265,36 +217,9 @@
            }
         };
         // 获取部门列表
         const getAllDepartment = async () => {
            let res = await teamManageApi().getAllDepartment();
            if (res.data.code === '200') {
               state.departmentList = res.data.data;
            } else {
               ElMessage({
                  type: 'warning',
                  message: res.data.msg
               });
            }
         };
         const handleChange = async (value) => {
            state.addRecord.depId = value;
            console.log(state.addRecord.department, 'de');
            let res = await teamManageApi().getAllMember(value);
            if (res.data.code === '200') {
               state.workerList = res.data.data;
            } else {
               ElMessage({
                  type: 'warning',
                  message: res.data.msg
               });
            }
         };
         // 关键词查询记录
         const searchRecord = async () => {
            if (state.searchWord == '') {
         const searchRecord = () => {
            if (state.searchWord == ''&& state.searchType == ''&& state.warningType == '') {
               ElMessage({
                  type: 'warning',
                  message: '请输入查询关键词'
@@ -304,9 +229,11 @@
            }
         };
         const clearSearch = async () => {
            state.searchWord = '';
            getListByPage();
         const clearSearch = () => {
            state.searchWord = ''
            state.searchType = ''
            state.warningType = ''
            getListByPage()
         };
         const handleSizeChange = (val: number) => {
@@ -343,7 +270,6 @@
            Delete,
            Refresh,
            Plus,
            handleChange,
            searchRecord,
            clearSearch,
            viewRecord,