From c251626c67a55dfa8305fd49a47a0a2aa00fc32f Mon Sep 17 00:00:00 2001
From: lyfO_o <764716047@qq.com>
Date: Thu, 24 Mar 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