lct123456
2022-04-14 047a87ef3af4aa4f351012b9eb2a3845290e6bec
src/views/doublePreventAction/riskLevelManage/riskSourceManage/index.vue
@@ -1,13 +1,326 @@
<template>
    <div class="app-container">
        <div class="filter-container">
            <div class="basic_search">
                <span>单位名称:</span>
                <el-input v-model="listQuery.name" style="width:200px">
                </el-input>
            </div>
            <el-button class="filter-item" style="margin-left: 10px;margin-top: 10px" type="primary" icon="el-icon-refresh" @click="refreshHandle">搜索</el-button>
            <el-button class="filter-item" style="margin-left: 10px;margin-top: 10px" type="primary" icon="el-icon-plus" @click="showRiskSourceForm('','新增')">新增</el-button>
        </div>
        <div class="table_content">
            <el-table
                v-loading="listLoading"
                :key="tableKey"
                :data="analyseUnitData"
                border
                fit
                highlight-current-row
                style="width: 100%;"
            >
                <el-table-column label="风险源名称" prop="name" align="center">
                </el-table-column>
                <el-table-column label="点位类型" prop="type" align="center">
                </el-table-column>
                <el-table-column label="风险等级" prop="level" align="center">
                </el-table-column>
                <el-table-column label="可能导致的主要事故类型" prop="accidentDesc" align="center">
                </el-table-column>
                <el-table-column label="区域位置" prop="location" align="center">
                </el-table-column>
                <el-table-column label="所属单位" prop="depId" align="center">
                </el-table-column>
                <el-table-column label="创建人" prop="createBy" align="center">
                </el-table-column>
                <el-table-column label="创建时间" prop="createTime" align="center">
                </el-table-column>
                <el-table-column label="最后修改人" prop="updateBy" align="center">
                </el-table-column>
                <el-table-column label="最后修改时间" prop="updateTime" align="center">
                </el-table-column>
                <el-table-column label="操作" align="center" width="280" class-name="small-padding fixed-width">
                    <template slot-scope="scope">
                        <el-button type="text" @click="showRiskSourceForm(scope.row,'编辑')">编辑</el-button>
                        <el-button type="text" style="color: red" @click="deleteById(scope.row)">删除</el-button>
                    </template>
                </el-table-column>
            </el-table>
            <br>
            <el-pagination
                v-show="recordTotal>0"
                :current-page="currentPage"
                :page-sizes="[10, 20, 30, 50]"
                :page-size="pageSize"
                :total="recordTotal"
                layout="total, sizes, prev, pager, next, jumper"
                background
                style="float:right;"
                @size-change="handleSizeChange"
                @current-change="handleCurrentChange"
            />
            <br>
        </div>
        <el-dialog :title="title" :visible.sync="riskSourceVisible" :modal-append-to-body="false" :close-on-click-modal="false" width="600px">
            <el-form ref="riskSourceForm" :rules="riskSourceFormRules" :model="riskSourceForm" label-position="right" label-width="165px">
                <el-form-item label="风险源名称" prop="name">
                    <el-input v-model="riskSourceForm.name" class="analyseUnit_input">
                    </el-input>
                </el-form-item>
                <el-form-item label="风险源类型" prop="type">
                    <el-select v-model="riskSourceForm.type" class="analyseUnit_input">
                        <el-option
                            v-for="item in typeList"
                            :key="item.id"
                            :value="item.name"
                            :label="item.name"
                        ></el-option>
                    </el-select>
                </el-form-item>
                <el-form-item label="风险等级" prop="level">
                    <el-select v-model="riskSourceForm.level" class="analyseUnit_input">
                        <el-option
                            v-for="item in levelList"
                            :key="item.id"
                            :value="item.name"
                            :label="item.name"
                        ></el-option>
                    </el-select>
                </el-form-item>
                <el-form-item label="可能导致事故的主要原因" prop="accidentDesc">
                    <el-input v-model="riskSourceForm.accidentDesc" class="analyseUnit_input"></el-input>
                </el-form-item>
                <el-form-item label="区域位置" prop="location">
                    <el-input v-model="riskSourceForm.location" class="analyseUnit_input"></el-input>
                </el-form-item>
                <el-form-item label="所属部门" prop="depId">
                    <el-input v-model="riskSourceForm.depId" class="analyseUnit_input"></el-input>
                </el-form-item>
            </el-form>
            <div  align="right">
                <el-button @click="riskSourceVisible = false">取消</el-button>
                <el-button type="primary" @click="showRiskSourceForm()">确认</el-button>
            </div>
        </el-dialog>
    </div>
</template>
<script>
    export default {
        name: "index"
import { mapGetters } from 'vuex'
import { computePageCount } from '@/utils'
import { getRiskSourceList , addRiskSource , updateRiskSource , deleteById } from '@/api/riskSource'
import {getAllDepartment, getDepartmentList} from "../../../../api/departmentManage";
export default {
    name: 'index',
    filters: {
        parseMain(type){
            if(type === 1){
                return "是"
            }else if(type === 0){
                return "否"
            }
        },
    },
    computed: {
        ...mapGetters([
            'userType'
        ])
    },
    data() {
        return {
            tableKey: 0,
            riskSourceData: [],
            departmentList:[],
            typeList:[{id:1,name:'typeList'},{id:2,name:'作业活动'}],
            levelList:[{id:1,name:'低风险'},{id:2,name:'一般风险'},{id:3,name:'较大风险'},{id:4,name:'重大风险'}],
            listLoading: false,
            pageSize: 10,
            recordTotal: 0,
            currentPage: 1,
            pageTotal: 0,
            title:'',
            company:'',
            code:'',
            riskSourceVisible:false,
            riskSourceFormRules:{
                hazardDep: [{ required: true, message: '责任部门不能为空', trigger: 'change' }],
                hazardLiablePerson: [{ required: true, message: '责任人不能为空', trigger: 'blur' }],
                hazardCode: [{ required: true, message: '安全风险分析对象编码不能为空', trigger: 'blur' }],
                riskUnitName: [{ required: true, message: '安全风险分析单元名称不能为空', trigger: 'blur' }],
            },
            riskSourceForm:{
                accidentDesc: "",
                createTime: "",
                createUid: null,
                createUname: "",
                depId: null,
                depName: "",
                editTime: "",
                editUid: null,
                editUname: "",
                id: null,
                level: null,
                location: "",
                name: "",
                status: null,
                type: null
            },
            listQuery:{
                pageIndex:1,
                pageSize:10,
                name:'',
            },
        }
    },
    created() {
        this.getRiskSourceData()
        this.getDepartment()
    },
    methods: {
        async getRiskSourceData(){
            this.listLoading = true
            let res = await getRiskSourceList(this.listQuery)
            if(res.data.code === '200'){
                this.recordTotal = res.data.result.total
                this.pageSize = res.data.result.size
                this.pageTotal = computePageCount(res.data.result.total, res.data.result.size)
                this.currentPage = res.data.result.current
                this.riskSourceData = res.data.result.records
            }else{
                this.$message({
                    message:res.data.message,
                    type:'warning'
                })
            }
            this.listLoading = false
        },
        async getDepartment(){
            let res = await getDepartmentList({pageSize:1000,pageIndex:1})
            if(res.data.code === '200'){
                this.departmentList = res.data.result.result
            }else{
                this.$message({
                    message:res.data.message,
                    type:'warning'
                })
            }
        },
        showRiskSourceForm(value,type){
            this.riskSourceVisible = true
            this.$nextTick(() =>{
                this.$refs["riskSourceForm"].clearValidate()
            })
            if(type === '新增'){
                this.title = '新增'
                this.riskSourceForm = {
                    accidentDesc: "",
                    createTime: "",
                    createUid: null,
                    createUname: "",
                    depId: null,
                    depName: "",
                    editTime: "",
                    editUid: null,
                    editUname: "",
                    id: null,
                    level: null,
                    location: "",
                    name: "",
                    status: null,
                    type: null
                }
            }else{
                this.title = '修改'
                this.riskSourceForm = value
            }
        },
        submitAnalyseUnit(){
            this.$refs["riskSourceForm"].validate((valid) =>{
                if(valid){
                    if(this.title === '新增'){
                        addAnalyseUnit(this.riskSourceForm).then((res)=>{
                            if(res.data.code === '200'){
                                this.riskSourceVisible = false
                                this.getRiskSourceData()
                                this.$notify({
                                    type:'success',
                                    duration:2000,
                                    message:'新增成功',
                                    title:'成功'
                                })
                            }else{
                                this.$message({
                                    type:'warning',
                                    message:res.data.message
                                })
                            }
                        })
                    }else{
                        updateAnalyseUnit(this.riskSourceForm).then((res)=>{
                            if(res.data.code === '200'){
                                this.riskSourceVisible = false
                                this.getRiskSourceData()
                                this.$notify({
                                    type:'success',
                                    duration:2000,
                                    title:'成功',
                                    message:'编辑成功'
                                })
                            }else{
                                this.$message({
                                    type:'warning',
                                    message:res.data.message
                                })
                            }
                        })
                    }
                }else{
                    this.$message({
                        type:'warning',
                        message:'请完善基本信息'
                    })
                }
            })
        },
        deleteById(val){
            this.$confirm('删除此条信息,是否继续','提示',{
                confirmButtonText:'确定',
                cancelButtonText:'取消',
                type:'warning',
            }).then(()=> {
                deleteAnalyseUnit({id:val.id}).then( ()=>{
                    this.getRiskSourceData()
                    this.$notify({
                        title:'成功',
                        message:'删除成功',
                        type:'success',
                        duration:2000,
                    })
                })
            })
        },
        refreshHandle(){
            this.getRiskSourceData()
        },
        handleSizeChange(val){
            this.listQuery.pageSize = val
            this.getRiskSourceData()
        },
        handleCurrentChange(val){
            this.listQuery.pageIndex = val
            this.getRiskSourceData()
        },
    }
}
</script>
<style scoped>
.basic_search{
    display:inline-block;
    padding-bottom: 10px;
}
.analyseUnit_input{
    width:320px;
}
</style>