马宇豪
2023-05-05 c819024e241b9f7c54cc3786373ad0d2998f2190
src/views/hiddenDangerManagement/fillRectificationAdd.vue
@@ -1,226 +1,613 @@
<template>
  <div class="app-container">
    <div>
      <Titlename title="自查隐患管理新增"></Titlename>
      <div class="whole-form">
        <el-form
          :model="ruleForm"
          :rules="rules"
          ref="ruleForm"
          label-width="150px"
          class="demo-ruleForm"
          style="margin: 0 14% 0 16%"
        >
          <el-row>
            <el-col :span="9">
              <el-form-item label="检查时间:" prop="name">
                <el-date-picker
                  v-model="value1"
                  type="date"
                  placeholder="选择日期"
                  style="width: 100%"
    <div class="app-container">
        <div style="">
            <Titlename title="自查隐患管理新增"></Titlename>
            <div class="whole-form">
                <el-form
                    :model="ruleForm"
                    :rules="rules"
                    ref="ruleForm"
                    label-width="150px"
                    class="demo-ruleForm"
                    style="margin: 0 14% 0 16%"
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="9" :offset="4">
              <el-form-item label="班次:" prop="elementAName">
                <el-select v-model="ruleForm.elementAName" style="width: 100%">
                </el-select>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="9">
              <el-form-item label="检查人:" prop="region">
                <el-input v-model="ruleForm.name"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="9" :offset="4">
              <el-form-item label="隐患单位:" prop="name">
                <el-input v-model="ruleForm.name"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="9">
              <el-form-item label="隐患级别:" prop="name">
                <!-- <el-input v-model="ruleForm.name"></el-input> -->
                <el-select
                                    v-model="ruleForm.elementAName"
                    <el-row>
                        <el-col :span="9">
                            <el-form-item label="检查时间" prop="check_date">
                                <el-date-picker
                                    v-model="ruleForm.check_date"
                                    type="date"
                                    value-format="yyyy-MM-dd"
                                    placeholder="选择日期"
                                    style="width: 100%"
                                >
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                        <el-col :span="9" :offset="4">
                            <el-form-item label="班次" prop="check_class">
                                <el-select v-model="ruleForm.check_class" placeholder="请选择" style="width: 100%">
                                    <el-option
                                        v-for="item in BCList"
                                        :key="item.value"
                                        :label="item.value"
                                        :value="item.value">
                                    </el-option>
                                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="9" :offset="4">
              <el-form-item label="隐患类别:" prop="name">
                <el-select v-model="ruleForm.elementAName" style="width: 100%">
                </el-select>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="9">
              <el-form-item label="限改时间:" prop="name">
                <!--<el-input v-model="ruleForm.name"></el-input>-->
                <el-date-picker
                  v-model="value1"
                  type="date"
                  placeholder="选择日期"
                  style="width: 100%"
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="9" :offset="4">
              <el-form-item label="责任人:" prop="name">
                <el-input v-model="ruleForm.name"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="9">
              <el-form-item label="整改情况:" prop="name">
                <!-- <el-input v-model="ruleForm.name"></el-input> -->
                <el-select v-model="ruleForm.elementAName" style="width: 100%">
                </el-select>
              </el-form-item>
            </el-col>
            <!-- <el-col :span="9" :offset="4">
              <el-form-item label="业务科室:" prop="name">
                <el-select v-model="ruleForm.elementAName" style="width: 100%">
                </el-select>
              </el-form-item>
            </el-col> -->
          </el-row>
          <!-- <el-row>
            <el-col :span="22">
              <el-form-item label="行走路线:" prop="name">
                <el-input v-model="ruleForm.name" class="multiline"></el-input>
              </el-form-item>
            </el-col>
          </el-row> -->
          <el-row>
            <el-col :span="22">
              <el-form-item label="隐患地点:" prop="name">
                <el-input v-model="ruleForm.name" rows="3" type="textarea" class="multiline"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="22">
              <el-form-item label="隐患内容:" prop="name">
                <el-input v-model="ruleForm.name" rows="3" type="textarea" class="multiline"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="22">
              <el-form-item label="整改措施:" prop="name">
                <el-input v-model="ruleForm.name" rows="3" type="textarea" class="multiline"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="22">
              <el-form-item label="关联危险源" prop="name">
                <el-input v-model="ruleForm.name" rows="3" type="textarea" class="multiline"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="22">
              <el-form-item style="text-align: center">
                <el-button type="primary" class="btns" @click="submitForm('ruleForm')"
                  >保存</el-button
                >
                <el-button @click="close()">关闭</el-button>
              </el-form-item>
            </el-col>
          </el-row>
        </el-form>
      </div>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="9">
                            <el-form-item label="检查人员" prop="check_man">
                                <el-input v-model="ruleForm.check_man"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row style="margin-bottom: 20px">
                        <el-col :span="9">
                            <el-button type="primary" class="btns" v-show="!update" @click="addDanger">新增隐患</el-button>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-table :data="tableData" style="width: 100%">
                            <el-table-column type="index" width="55" align="center" label="序号"></el-table-column>
                            <el-table-column prop="ht_branch" align="center" label="隐患部门"></el-table-column>
                            <el-table-column prop="address" align="center" label="地点"></el-table-column>
                            <el-table-column prop="ht_content" align="center" label="隐患内容"></el-table-column>
                            <el-table-column prop="measure" align="center" label="整改措施"></el-table-column>
                            <el-table-column prop="ht_typesub" align="center" label="隐患类别"></el-table-column>
                            <el-table-column prop="dangerousSource" align="center" label="关联危险源"></el-table-column>
                            <el-table-column prop="DTRisk_level" align="center" label="风险等级"></el-table-column>
                            <el-table-column prop="ht_level" align="center" label="隐患级别"></el-table-column>
                            <el-table-column prop="alter_time" align="center" label="限改时间"></el-table-column>
                            <el-table-column prop="duty_officer" align="center" label="责任人"></el-table-column>
                            <el-table-column prop="alter_status" align="center" label="整改情况"></el-table-column>
                            <el-table-column prop="Review" align="center" label="业务科室"></el-table-column>
                            <el-table-column prop="time" label="操作" align="center" width="140">
                                <template slot-scope="scope">
                                    <div style="display: flex;align-items: center;flex-direction: row;">
                                        <el-button
                                            size="mini"
                                            @click="editDanger(scope.row, scope.$index)"
                                        >编辑
                                        </el-button>
                                        <el-button
                                            v-if="!update"
                                            size="mini"
                                            @click="deleteDanger(scope.row, scope.$index)"
                                        >删除
                                        </el-button>
                                    </div>
                                </template>
                            </el-table-column>
                        </el-table>
                    </el-row>
                    <el-row>
                        <el-col :span="22">
                            <el-form-item style="text-align: center">
                                <el-button type="primary" class="btns" @click="submitForm('ruleForm')"
                                >保存
                                </el-button
                                >
                                <el-button @click="close()">关闭</el-button>
                            </el-form-item>
                        </el-col>
                    </el-row>
                </el-form>
            </div>
        </div>
        <el-dialog
            :title="title"
            :visible.sync="dialogVisible"
            :close-on-click-modal="false"
            width="40%">
            <el-form ref="form" :rules="dangerRules" :model="dangerForm" label-width="100px">
                <el-row>
                    <el-col :span="9">
                        <el-form-item label="隐患部门" prop="ht_branch">
                            <el-select v-model="dangerForm.ht_branch" placeholder="请选择">
                                <el-option
                                    v-for="item in YHBMList"
                                    :key="item.branch_id"
                                    :label="item.branch_name"
                                    :value="item.branch_name">
                                </el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                    <el-col :span="9" :offset="4">
                        <el-form-item label="地点" prop="address">
                            <el-input v-model="dangerForm.address" rows="3" type="textarea"
                                      class="multiline"></el-input>
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row>
                    <el-col :span="9">
                        <el-form-item label="隐患内容" prop="ht_content">
                            <el-input v-model="dangerForm.ht_content" rows="3" type="textarea"
                                      class="multiline"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="9" :offset="4">
                        <el-form-item label="整改措施" prop="measure">
                            <el-input v-model="dangerForm.measure" rows="3" type="textarea"
                                      class="multiline"></el-input>
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row>
                    <el-col :span="9">
                        <el-form-item label="隐患类别" prop="ht_typesub">
                            <el-select v-model="dangerForm.ht_typesub" placeholder="请选择">
                                <el-option
                                    v-for="item in YHLXList"
                                    :key="item.value"
                                    :label="item.value"
                                    :value="item.value">
                                </el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                    <el-col :span="9" :offset="4">
                        <el-form-item label="关联危险源" prop="DTRisk_bankId">
                            <el-select v-model="dangerForm.DTRisk_bankId" placeholder="请选择" @change="changeWxy"
                                       filterable>
                                <el-option
                                    v-for="item in dangerList"
                                    :key="item.id"
                                    :label="item.mriskPoint"
                                    :value="item.id">
                                </el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row>
                    <el-col :span="9">
                        <el-form-item label="风险等级" prop="DTRisk_level">
                            <el-input v-model="dangerForm.DTRisk_level" :disabled="true"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="9" :offset="4">
                        <el-form-item label="隐患级别" prop="ht_level">
                            <el-select v-model="dangerForm.ht_level" placeholder="请选择">
                                <el-option
                                    v-for="item in YHJBList"
                                    :key="item.value"
                                    :label="item.label"
                                    :value="item.value">
                                </el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row>
                    <el-col :span="9">
                        <el-form-item label="限改时间" prop="alter_time">
                            <el-date-picker
                                v-model="dangerForm.alter_time"
                                type="date"
                                value-format="yyyy-MM-dd"
                                placeholder="选择日期"
                                style="width: 100%"
                            >
                            </el-date-picker>
                        </el-form-item>
                    </el-col>
                    <el-col :span="9" :offset="4">
                        <el-form-item label="责任人" prop="duty_officer">
                            <el-input v-model="dangerForm.duty_officer"></el-input>
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row>
                    <el-col :span="9">
                        <el-form-item label="整改情况" prop="alter_status">
                            <el-select v-model="dangerForm.alter_status" placeholder="请选择">
                                <el-option
                                    v-for="item in statusList"
                                    :key="item.value"
                                    :label="item.label"
                                    :value="item.value">
                                </el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                    <el-col :span="9" :offset="4">
                        <el-form-item label="业务科室" prop="Review">
                            <el-select v-model="dangerForm.Review" style="width: 100%">
                                <el-option
                                    v-for="item in YWKSList"
                                    :key="item.value"
                                    :label="item.label"
                                    :value="item.value">
                                </el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                </el-row>
                <!--<el-row v-if="dangerForm.alter_status=='重复反弹隐患'">
                    <el-col :span="9">
                        <el-form-item label="重复反弹隐患" prop="repeatId">
                            <el-select v-model="dangerForm.repeatId" placeholder="请选择">
                                <el-option
                                    v-for="item in reboundList"
                                    :key="item.id"
                                    :label="item.content"
                                    :value="item.id">
                                </el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                </el-row>-->
                <el-row style="margin-top: 20px">
                    <el-col :span="22">
                        <el-form-item style="text-align: center">
                            <el-button type="primary" class="btns" @click="submitDanger('form')"
                            >保存
                            </el-button
                            >
                            <el-button @click="dialogVisible=false">关闭</el-button>
                        </el-form-item>
                    </el-col>
                </el-row>
            </el-form>
        </el-dialog>
    </div>
  </div>
</template>
<script>
import Titlename from "../../components/Titlename/index.vue";
import {
    initJCBM,
    initYHLX,
    initBC,
    initJCLB,
    initYHBM,
    initYHJB,
    initLlr,
    initReformStatus,
    initYwks,
    initWxy
} from "@/api/sgyhpczl/initSelect";
import {initDangerRebound} from '@/api/sgyhpczl/hiddenDangerRegistration'
import {getDangerDetails,self_info} from "@/api/sgyhpczl/recheckCancellationNumber";
import {saveSelfDanger,self_edit_do} from '@/api/sgyhpczl/hiddenDangerManagement'
import {deepClone} from '@/utils'
export default {
  components: { Titlename },
  name: "hiddenDangerList",
  data() {
    return {
      ruleForm: {
        name: "",
        region: "",
        date1: "",
        date2: "",
        delivery: false,
        type: [],
        resource: "",
        value1: "",
        desc: "",
      },
      rules: {},
      tableData: [
        {
          date: " 1",
          name: "超级管理员",
          province: "2022-04-07 16:10:27",
          city: "",
          address: "已发送众泰煤焦化安全环保部",
        },
        {
          date: " 1",
          name: "超级管理员",
          province: "2022-04-07 16:10:27",
          city: "",
          address: "已发送众泰煤焦化安全环保部",
        },
        {
          date: " 1",
          name: "超级管理员",
          province: "2022-04-07 16:10:27",
          city: "",
          address: "已发送众泰煤焦化安全环保部",
        },
      ],
    };
  },
  methods: {
    submitForm(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          alert("submit!");
        } else {
          console.log("error submit!!");
          return false;
        }
      });
    components: {Titlename},
    name: "hiddenDangerList",
    data() {
        return {
            rowIndex: -1,
            dangerList: [],
            dangerForm: {},
            dangerRules: {
                measure:[{required: true, message: '不能为空', trigger: 'blur'},],
                ht_branch: [{required: true, message: '不能为空', trigger: 'blur'},],
                address: [{required: true, message: '不能为空', trigger: 'blur'},],
                ht_content: [{required: true, message: '不能为空', trigger: 'blur'},],
                ht_typesub: [{required: true, message: '不能为空', trigger: 'blur'},],
                DTRisk_bankId: [{required: true, message: '不能为空', trigger: 'blur'},],
                ht_level: [{required: true, message: '不能为空', trigger: 'blur'},],
                alter_time: [{required: true, message: '不能为空', trigger: 'blur'},],
                alter_status: [{required: true, message: '不能为空', trigger: 'blur'},],
                Review: [{required: true, message: '不能为空', trigger: 'blur'},],
                duty_officer: [{required: true, message: '不能为空', trigger: 'blur'},]
            },
            title: '新增',
            dialogVisible: false,
            BCList: [],
            JCLBList: [],
            JCDWList: [{label: "众泰煤焦化", value: 0}, {label: "上级单位", value: 1}],
            YHBMList: [],
            YHLXList: [],
            YHJBList: [],
            JCBMList: [],
            llrList: [],
            statusList: [],
            YWKSList: [],
            update: false,
            reboundList: [],
            ruleForm: {
                check_date:"",
                check_class:"",
                check_man:""
            },
            rules: {
                check_date: [{required: true, message: '不能为空', trigger: 'blur'},],
                check_class: [{required: true, message: '不能为空', trigger: 'blur'},],
                check_man: [{required: true, message: '不能为空', trigger: 'blur'},],
            },
            tableData: [],
        };
    },
  },
    mounted() {
        if (this.$route.query != null) {
            self_info(this.$route.query.id).then(res => {
                console.log(res)
                if (res.data.ok) {
                    this.tableData.push(res.data.data);
                    this.ruleForm.check_date = res.data.data.check_date
                    this.ruleForm.check_class = res.data.data.check_class
                    this.ruleForm.check_man = res.data.data.check_man
                    this.update = true;
                }
            })
        }
        this.initBC()
        //this.initJCLB()
        this.initYHJB()
        this.initYHLX()
        //this.initLlr()
        this.initReformStatus()
        this.initYHBM()
        this.initYWKS()
        this.initWXY()
        //this.initDangerRebound()
    },
    methods: {
        initDangerRebound() {
            initDangerRebound().then(res => {
                if (res.data.ok == 1) {
                    this.reboundList = res.data.data
                } else {
                    this.$message({type: 'error', message: res.data.msg, duration: 3000})
                }
            })
        },
        submitDanger(formName) {
            this.$refs[formName].validate((valid) => {
                if (valid) {
                    if (this.title == '新增') {
                        this.tableData.push(this.dangerForm)
                    } else {
                        var arr = this.tableData;
                        arr.splice(this.rowIndex, 1, this.dangerForm);
                        this.tableData = arr;
                    }
                    this.dialogVisible = false
                } else {
                    console.log("error submit!!");
                    return false;
                }
            });
        },
        deleteDanger(row, index) {
            this.$confirm('确认删除吗', '提示', {
                confirmButtonText: '确认',
                cancelButtonText: '取消',
                type: 'warning'
            })
                .then(() => {
                    var arr = deepClone(this.tableData);
                    var brr = [];
                    for (var i = 0; i < arr.length; i++) {
                        if (i == index) {
                        } else {
                            brr.push(arr[i]);
                        }
                    }
                    this.tableData = deepClone(brr);
                    //this.tableData.splice(index)
                })
                .catch(error => {
                });
        },
        editDanger(row, index) {
            this.dangerForm = deepClone(row);
            this.rowIndex = index;
            this.dialogVisible = true;
            this.title = '编辑';
        },
        addDanger() {
            this.dangerForm = {}
            this.title = "新增"
            this.dialogVisible = true
        },
        changeWxy(e) {
            for (var i = 0; i < this.dangerList.length; i++) {
                if (e == this.dangerList[i].id) {
                    this.dangerForm.DTRisk_level = this.dangerList[i].mriskLevel
                    this.dangerForm.dangerousSource = this.dangerList[i].mriskPoint
                }
            }
        },
        initWXY() {
            var param = {
                page: 1,
                limit: 1000
            }
            initWxy(param).then(res => {
                if (res.data.ok == 1) {
                    this.dangerList = res.data.data.items
                } else {
                    this.$message({type: 'error', message: res.data.msg, duration: 3000})
                }
            })
        },
        initYWKS() {
            initYwks().then(res => {
                if (res.data.ok == 1) {
                    this.YWKSList = res.data.data
                } else {
                    this.$message({type: 'error', message: res.data.msg, duration: 3000})
                }
            })
        },
        initYHBM() {
            initYHBM().then(res => {
                if (res.data.ok == 1) {
                    this.YHBMList = res.data.data
                } else {
                    this.$message({type: 'error', message: res.data.msg, duration: 3000})
                }
            })
        },
        initLlr() {
            initLlr().then(res => {
                if (res.data.ok == 1) {
                    this.llrList = res.data.data
                } else {
                    this.$message({type: 'error', message: res.data.msg, duration: 3000})
                }
            })
        },
        initReformStatus() {
            initReformStatus().then(res => {
                if (res.data.ok == 1) {
                    this.statusList = res.data.data
                } else {
                    this.$message({type: 'error', message: res.data.msg, duration: 3000})
                }
            })
        },
        changeJCDW(val) {
            initJCBM(val).then(res => {
                if (res.data.ok == 1) {
                    this.JCBMList = res.data.data
                } else {
                    this.$message({type: 'error', message: res.data.msg, duration: 3000})
                }
            })
        },
        initYHLX() {
            initYHLX().then(res => {
                if (res.data.ok == 1) {
                    this.YHLXList = res.data.data
                } else {
                    this.$message({type: 'error', message: res.data.msg, duration: 3000})
                }
            })
        },
        initYHJB() {
            initYHJB().then(res => {
                if (res.data.ok == 1) {
                    this.YHJBList = res.data.data
                } else {
                    this.$message({type: 'error', message: res.data.msg, duration: 3000})
                }
            })
        },
        initBC() {
            initBC().then(res => {
                if (res.data.ok == 1) {
                    this.BCList = res.data.data
                } else {
                    this.$message({type: 'error', message: res.data.msg, duration: 3000})
                }
            })
        },
        initJCLB() {
            initJCLB().then(res => {
                if (res.data.ok == 1) {
                    this.JCLBList = res.data.data
                } else {
                    this.$message({type: 'error', message: res.data.msg, duration: 3000})
                }
            })
        },
        submitForm(formName) {
            if (!this.update) {
                this.$refs[formName].validate((valid) => {
                    if (valid) {
                        if (this.tableData == null || this.tableData.length == 0) {
                            this.$message({type: 'error', message: "请添加隐患", duration: 2000})
                        }
                        this.ruleForm.items = this.tableData
                        saveSelfDanger(this.ruleForm).then(res => {
                            if (res.data.ok == 1) {
                                this.$message({type: 'success', message: "新增成功", duration: 3000})
                                this.$router.push({
                                    path: "/hiddenDangerManagement"
                                })
                            } else {
                                this.$message({type: 'error', message: res.data.msg, duration: 3000})
                            }
                        })
                    } else {
                        console.log("error submit!!");
                        return false;
                    }
                });
            } else {
                console.log(this.tableData)
                this.$refs[formName].validate((valid) => {
                    if (valid) {
                        var requestData = this.tableData[0];
                        requestData.check_class= this.ruleForm.check_class
                        requestData.check_man= this.ruleForm.check_man
                        requestData.check_date= this.ruleForm.check_date
                        console.log(requestData)
                        self_edit_do(requestData).then(res => {
                            if (res.data.ok == 1) {
                                this.$message({type: 'success', message: "编辑成功", duration: 3000})
                                this.$router.push({
                                    path: "/hiddenDangerManagement"
                                })
                            } else {
                                this.$message({type: 'error', message: res.data.msg, duration: 3000})
                            }
                        })
                    } else {
                        console.log("error submit!!");
                        return false;
                    }
                });
            }
        },
        close() {
            this.$router.push({
                path: "/hiddenDangerManagement"
            })
        },
    },
};
</script>
<style scoped>
.app-container {
  padding: 20px;
  height: 850px;
  overflow-y: auto;
    padding: 20px;
    height: 850px;
    overflow-y: auto;
}
.app-container /deep/ .box {
  padding-top: 0;
    padding-top: 0;
}
/* /deep/ .multiline .el-input__inner {
  height: 62px;
} */
 .btns{
        background-color: #034ea2;
        border: 1px solid #034ea2;
    }
</style>
.btns {
    background-color: #034ea2;
    border: 1px solid #034ea2;
}
</style>