From c251626c67a55dfa8305fd49a47a0a2aa00fc32f Mon Sep 17 00:00:00 2001
From: lyfO_o <764716047@qq.com>
Date: 星期四, 24 三月 2022 16:15:02 +0800
Subject: [PATCH] 隐患管理:v1

---
 src/views/hiddenDanger/report.vue |  374 ++++++++++++++--------------------------------------
 1 files changed, 103 insertions(+), 271 deletions(-)

diff --git a/src/views/hiddenDanger/report.vue b/src/views/hiddenDanger/report.vue
index 189085b..5211bbb 100644
--- a/src/views/hiddenDanger/report.vue
+++ b/src/views/hiddenDanger/report.vue
@@ -1,12 +1,14 @@
 <template>
     <div class="app-container">
         <div style="margin: 10px">
-            <span class="span-filter-label" style="margin-left: unset">作业编号</span>
-            <el-input style="width: 160px" v-model="filter.filter.taskcode"></el-input>
+            <span class="span-filter-label">单号</span>
+            <el-input style="width: 140px" v-model="filter.filter.code" ></el-input>
             <span class="span-filter-label">状态</span>
             <el-select
                 v-model="filter.filter.status"
                 class="filter-item"
+                clearable
+                @clear="clearStatus"
                 style="width:150px;margin-bottom: 10px">
                 <el-option
                     v-for="item in reportStatus"
@@ -16,7 +18,10 @@
                 </el-option>
             </el-select>
             <span class="span-filter-label">隐患等级</span>
-            <el-select v-model="filter.filter.level"  placeholder="请选择">
+            <el-select v-model="filter.filter.level"
+                       clearable
+                       @clear="clearLevel"
+                       placeholder="请选择">
                 <el-option
                     v-for="item in levels"
                     :key="item.key"
@@ -25,10 +30,9 @@
                 </el-option>
             </el-select>
 
-            <span class="span-filter-label">负责人</span>
-            <el-input style="width: 160px" v-model="filter.filter.principal"></el-input>
             <span class="span-filter-label">整改人</span>
-            <el-input style="width: 160px" v-model="filter.filter.supervisor"></el-input>
+            <el-input style="width: 160px" v-model="filter.filter.rectifierName"></el-input>
+
 
             <el-button class="filter-item" style="margin-left: 10px;" type="primary"
                        icon="el-icon-plus" @click="showCreateHandle">新增
@@ -47,18 +51,32 @@
                 style="width: 100%;"
             >
                 <el-table-column type="index" label="序号" align="center" width="80"/>
-                <el-table-column label="状态" prop="status" align="center" />
-                <el-table-column label="作业编号" prop="taskcode" align="center" />
+                <el-table-column label="单号" prop="code" align="center" />
+                <el-table-column label="状态" prop="status" align="center" >
+                    <template slot-scope="scope">
+                        <span >{{scope.row.status}}</span>
+                         <span v-if="new Date(scope.row.rectifydeadline) < new Date() && scope.row.status  !== '已完成'" class="overdue-img">逾期</span>
+                    </template>
+                </el-table-column>
                 <el-table-column label="隐患等级" prop="level" align="center" >
                     <template slot-scope="scope">
                         <el-tag :type="scope.row.level == '紧急'?'danger':'warning'">{{scope.row.level}}</el-tag>
                     </template>
                 </el-table-column>
                 <el-table-column label="上报人" prop="requestor" align="center" />
-                <el-table-column label="负责人" prop="principal" align="center" />
-                <el-table-column label="整改人" prop="supervisor" align="center" />
+                <el-table-column label="上报时间" prop="createtime" align="center" />
+                <el-table-column label="整改人" prop="rectifier" align="center" />
 
-                <el-table-column label="创建时间" prop="createtime" align="center" />
+                <el-table-column label="整改期限"   prop="rectifydeadline" align="center" >
+                    <template slot-scope="scope">
+                        <span v-bind:class="{'overdue':new Date(scope.row.rectifydeadline) < new Date() && scope.row.status  !== '已完成'}">{{scope.row.rectifydeadline}}
+                        </span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="整改时间"   prop="rectifytime" align="center" >
+                </el-table-column>
+                <el-table-column label="验收时间"   prop="accepttime" align="center" >
+                </el-table-column>
                 <el-table-column label="操作" align="center" width="240" class-name="small-padding fixed-width">
                     <template slot-scope="scope">
                         <el-button  type="text" @click="viewHandle(scope.row)">查看</el-button>
@@ -68,9 +86,9 @@
             <br>
             <el-pagination
                 v-show="recordTotal>0"
-                :current-page="currentPage"
+                :current-page="filter.pageIndex"
                 :page-sizes="[10, 20, 30, 50]"
-                :page-size="pageSize"
+                :page-size="filter.pageSize"
                 :total="recordTotal"
                 layout="total, sizes, prev, pager, next, jumper"
                 background
@@ -79,340 +97,136 @@
                 @current-change="handleCurrentChange"
             />
         </div>
-        <el-dialog :title="dialogStatus==='create'?'新增':'查看'" :visible.sync="dialogFormVisible"
-                   :modal-append-to-body="false" :close-on-click-modal="false" width="800px">
-            <el-form ref="dataForm" :rules="dataFormRules" :model="dataForm" label-position="right" label-width="140px"
-                     style="" element-loading-text="保存中...">
-
-                <el-form-item label="作业编号:">
-                    <el-input v-model="dataForm.taskCode" readonly style="width: 205px"  placeholder="请选择" >
-
-                    </el-input>
-                    <el-button style="margin-left: 10px;" type="primary"
-                                @click="showTask">选择
-                    </el-button>
-                </el-form-item>
-
-                <el-form-item label="隐患级别:">
-                    <el-select v-model="dataForm.level"  placeholder="请选择" :disabled="isView">
-                        <el-option
-                            v-for="item in levels"
-                            :key="item.key"
-                            :label="item.value"
-                            :value="item.key">
-                        </el-option>
-                    </el-select>
-                </el-form-item>
-
-                <el-form-item label="上报说明:" >
-                    <el-input
-                        style="width: 400px"
-                        type="textarea"
-                        :rows="3"
-                        :disabled="isView"
-                        placeholder="请输入内容"
-                        v-model="dataForm.note">
-                    </el-input>
-                </el-form-item>
-
-                <el-form-item label="上报图片:" v-if="!isView">
-                    <el-upload
-                        ref="upload"
-                        :action="baseUrl"
-                        :auto-upload="false"
-                        :headers="headers"
-                        :on-change="handleChange"
-                        name="file"
-                        :file-list="fileList"
-                        list-type="picture-card"
-                        multiple
-                    >
-                        <i class="el-icon-plus"></i>
-                    </el-upload>
-
-                </el-form-item>
-
-                <el-form-item label="上报图片:" v-if="isView" >
-                    <el-image
-                        class="upload-img"
-                        v-for='item in imgUrls'
-                        :key='item.id'
-                        :src="item.url"
-                        :preview-src-list="imgPreviewUrls"
-                        style="width:200px;height: 200px;margin: 10px;"
-                    >
-                    </el-image>
-                </el-form-item>
-
-                <el-form-item label="确认说明:" :disabled="!isView" v-if="isConfirm">
-                    <el-input
-                        style="width: 400px"
-                        type="textarea"
-                        :rows="3"
-                        placeholder="请输入内容"
-                        v-model="dataForm.note">
-                    </el-input>
-                </el-form-item>
-
-            </el-form>
-
-            <div style="margin-top: 20px;margin-left: 140px;"  class="dialog-footer" v-if="!isView">
-                <el-button @click="dialogFormVisible = false">取消</el-button>
-                <el-button type="primary" @click="trigger2Submit" :disabled="submiting">上报</el-button>
-            </div>
-        </el-dialog>
         <div style="clear: both;"></div>
-        <task-select ref="selectTask" @getInfo="selectSetValue" ></task-select>
         <report-view ref="reportView" ></report-view>
+        <report-dialog ref="reportDialog" @refresh="hiddenDangerList"></report-dialog>
 
     </div>
 </template>
 
 <script>
-import Cookies from 'js-cookie'
 import { checkBtnPermission} from "@/utils/permission";
-import { parseError} from "@/utils/messageDialog";
-import { computePageCount} from "@/utils";
-import { mapGetters} from "vuex";
-import { dictionaryAllItems } from '@/api/dictionary';
-import { getSelectTask,hiddenDangerReport ,hiddenDangerReportList} from '@/api/hiddenDanger';
-import  taskSelect from './taskSelect/taskSelect';
+import {hiddenDangerReportList} from '@/api/hiddenDanger';
 import reportView from './reportView/reportView'
-import { Message, MessageBox } from 'element-ui'
-import {addHelpDoc, delHelpDoc, editHelpDoc, helpDocList} from "@/api/helpDoc";
-import {getToken} from "@/utils/auth";
+import reportDialog from './reportDialog/reportDialog'
 
 export default {
-    name: "helpDoc",
+    name: "report",
     components: {
-        taskSelect,
-        reportView
+        reportView,
+        reportDialog,
      },
     data() {
       return {
-        baseUrl: process.env.BASE_API + 'hiddenDanger/report',
-        headers: {
-          'Authorization': getToken()
-        },
-        tasksInfo: [],
-        imgUrls:[],
-        imgPreviewUrls:[],
-        isView:false,
-        isConfirm:false,
-        isRectify:false,
-        fileList: [],
-        pageSize: 10,
         recordTotal: 0,
-        currentPage: 1,
-        pageTotal: 0,
         tableKey: 0,
         tableData:[],
-        helpDocData: null,
         listLoading: true,
-        submiting:false,
         levels:[
           {"key":"URGENT","value":"紧急"},
           {"key":"COMMON","value":"一般"},
         ],
         reportStatus:[
-          {"key":"UNCONFIRMED","value":"未确认"},
-          {"key":"CONFIRMED","value":"确认未整改"},
-          {"key":"REJECT","value":"已驳回"},
-          {"key":"RECTIFIED","value":"已整改"},
+          {"key":"TORECTIFY","value":"待整改"},
+          {"key":"TOACCEPT","value":"整改待验收"},
+          {"key":"REJECTED","value":"驳回待整改"},
+          {"key":"COMPLETED","value":"已完成"},
         ],
         dataForm: {
-          taskCode:'',
-          taskid: '',
+          rectifydeadline:'',
+          rectifymeasure:'',
+          rectifier:'',
+          rectifierid:'',
           note: '',
           level:''
         },
-        queryForm: {
-          name: ''
-        },
-        dialogFormVisible: false,
-        dialogStatus: '',
-        dataFormRules: {},
-        fileType: [],
-        productVoList: [],
-        productVoDialogVisible: false,
-        productDialogFormVisible: false,
-        productData: [],
-        pageSizeProduct: 10,
-        currentPageProduct: 1,
-        recordTotalProduct: 0,
-        pageTotalProduct: 0,
-        queryProductForm: {
-          name: '',
-          manufacturer: '',
-          directionCode: '',
-          type: ''
-        },
         isSupervision: '',
-
-        manufacturer: '',
-        enterpriseList: [],
-        enterpriseDialogFormVisible: false,
-        pageSizeEnterpise: 10,
-        currentPageEnterpise: 1,
-        recordTotalEnterpise: 0,
-        pageTotalEnterpise: 0,
         filter:{
           pageIndex:1,
           pageSize:10,
           filter:{
-            taskcode:'',
-            status:"UNCONFIRMED",
-            requestor:"",
-            principal:"",
-            supervisor:"",
-            level:""
+            code:'',
+            status:null,
+            level:null,
+            rectifierName:'',
           }
-        }
+        },
+
       }
     },
     created() {
       this.hiddenDangerList();
     },
     methods: {
-
-        refreshHandle: function () {
-            this.hiddenDangerList()
-        },
         queryHandle: function () {
-            this.currentPage = 1
+            this.filter.pageIndex = 1
             this.hiddenDangerList()
         },
         resetDataForm() {
-            this.dataForm = {
-                taskid: '',
-                taskCode:'',
+           this.dataForm= {
+                rectifydeadline:'',
+                rectifymeasure:'',
+                rectifier:'',
+                rectifierid:'',
                 note: '',
                 level:''
             }
         },
         showCreateHandle() {
-            this.getSelectTasks()
-            this.dialogFormVisible = true
-            this.dialogStatus = 'create'
-            this.isView = false
-            this.resetDataForm()
+            this.$refs.reportDialog.show()
         },
         viewHandle: function (row) {
-
            this.$refs.reportView.showDialog("查看",row)
 
         },
         handleSizeChange: function (val) {
-            this.pageSize = val
-            this.currentPage = 1
+            this.filter.pageIndex = 1
+            this.filter.pageSize = val
             this.hiddenDangerList()
         },
         handleCurrentChange: function (val) {
-            this.currentPage = val
+            this.filter.pageIndex = val
             this.hiddenDangerList()
         },
         getBtnPermission(btnType) {
             return checkBtnPermission(this.userType, btnType)
         },
 
-        showProductHandle(){
-            this.productDialogFormVisible = true;
-        },
-        showEnterprise(){
-            this.enterpriseDialogFormVisible = true;
-        },
+
         downloadHandle(fileurl){
             window.open(fileurl, '_blank')
-            ;
-        },
-      selectSetValue(row){
-          this.dataForm.taskCode = row.code
-          this.dataForm.taskid = row.id
-
-      },
-
-
-        getSelectTasks(){
-          getSelectTask()
-            .then(res=>{
-              if (res.status !== 200)
-                this.$message({
-                  message: '接口错误',
-                  type: 'success'
-                });
-              else{
-                this.tasksInfo = res.data.result.map(item=>{return {"id":item.id,"code":item.code}})
-              }
-            })
-
-            .catch(res=>{
-              console.log(res)
-            })
         },
 
-      handleChange(file, fileList) {
-        this.fileList = fileList
-      },
-
-      trigger2Submit(){
-        this.submiting = true
-        let formData = new FormData()
-        formData.append('taskid', this.dataForm.taskid)
-        formData.append("note",this.dataForm.note)
-        formData.append("level",this.dataForm.level)
-        this.fileList.forEach(file=>{
-          formData.append("files",file.raw)
-        })
-
-        hiddenDangerReport(formData).then(res=>{
-          this.submiting = false
-          if (res.status === 200) {
-            if (res.data.code === '200') {
-              this.dialogFormVisible = false
-              this.$message({
-                message: '创建成功',
-                type: 'success'
-              });
-              this.hiddenDangerList()
-            }else{
-              this.$message({
-                message: res.data.message,
-                type: 'success'
-              });
-            }
-            this.fileList = []
-
-          }
-          else{
-            this.$message({
-              message: '接口错误',
-              type: 'warning'
-            });
-          }
-          }
-        )
-
-      },
 
       hiddenDangerList(){
-        hiddenDangerReportList(this.filter).then(res=>{
-          this.listLoading = false
-          if (res.status === 200) {
+        this.listLoading = true
+        hiddenDangerReportList(this.filter)
+            .then(res=>{
             if (res.data.code === '200') {
               this.tableData =  res.data.result.records
+              this.recordTotal =  res.data.result.total
             }
-          }else{
-            this.$message({
-              message: '接口错误',
-              type: 'warning'
-            });
-
-          }
+            else{
+              this.$message({message:  res.data.message, type: 'warning'});
+            }
         })
+            .catch(err=>{
+                console.log(err)
+                this.$message({message: '接口错误', type: 'warning'});
+            })
+            .finally(()=>{
+                this.listLoading = false
+            })
+
       },
-      showTask(){
-        this.$refs.selectTask.showTask()
-      }
+
+
+        clearStatus(){
+            this.filter.filter.status = null
+        },
+        clearLevel(){
+            this.filter.filter.level = null
+        }
 
     }
 }
@@ -425,5 +239,23 @@
         margin-right: 4px;
         margin-left: 7px;
     }
+    .overdue{
+        color: red;
+    }
+    .overdue-img{
+        position: fixed;
+        background-color: #f56c6c;
+        border-radius: 4px;
+        color: #fff;
+        display: inline-block;
+        font-size: 12px;
+        height: 21px;
+        line-height: 18px;
+        text-align: center;
+        white-space: nowrap;
+        border: 1px solid #fff;
+        transform: scale(0.8);
+        padding: 1px 3px 0 3px;
 
+    }
 </style>

--
Gitblit v1.9.2