From a90cf43e7a1f41dcde401ed1fd118b0f90d7c3f5 Mon Sep 17 00:00:00 2001
From: cqf
Date: 星期四, 26 五月 2022 11:41:49 +0800
Subject: [PATCH] 举一反三隐患-存在

---
 src/views/oneFromanotherN/index.vue |  474 +++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 410 insertions(+), 64 deletions(-)

diff --git a/src/views/oneFromanotherN/index.vue b/src/views/oneFromanotherN/index.vue
index 64723ba..66a5282 100644
--- a/src/views/oneFromanotherN/index.vue
+++ b/src/views/oneFromanotherN/index.vue
@@ -2,14 +2,15 @@
     <div class="app-container">
             <el-form ref="form" :inline="true" class="inquire" :model="listQuery.form" label-width="80px">
             <el-form-item label="隐患单位">
-                <el-select v-model="listQuery.form.check_main_branch" placeholder="请选择">
-                    <el-option
-                        v-for="item in XFDWList"
-                        :key="item.value"
-                        :label="item.value"
-                        :value="item.value">
-                    </el-option>
-                </el-select>
+                <el-input v-model="listQuery.form.check_main_branch" style="width:202px"></el-input>
+<!--                <el-select v-model="listQuery.form.check_main_branch" placeholder="请选择">-->
+<!--                    <el-option-->
+<!--                        v-for="item in XFDWList"-->
+<!--                        :key="item.value"-->
+<!--                        :label="item.value"-->
+<!--                        :value="item.value">-->
+<!--                    </el-option>-->
+<!--                </el-select>-->
             </el-form-item>
             <el-form-item label="检查类别">
                 <el-select v-model="listQuery.form.checktype" placeholder="请选择">
@@ -50,9 +51,8 @@
             <el-form-item label="隐患内容">
                 <el-input v-model="listQuery.form.ht_content" style="width:202px" placeholder="请输入内容"></el-input>
             </el-form-item>
-
-            <el-form-item label="发送单位">
-                <el-input v-model="listQuery.form.workGroupName" style="width:202px" placeholder="请输入内容"></el-input>
+            <el-form-item label="发送单位" v-if="listQuery.type=='1'">
+                <el-input  v-model="listQuery.form.workGroupName" style="width:202px" placeholder="请输入内容"></el-input>
             </el-form-item>
             <el-form-item label="检查时间">
                 <el-col :span="11">
@@ -69,8 +69,6 @@
                 <el-button type="primary" class="btns" size="small" icon="el-icon-search" @click="getPageList()">查询
                 </el-button>
                 <el-button type="primary" class="btns" size="small" @click="reset()">重置</el-button>
-                <el-button type="primary" class="btns" size="small" icon="el-icon-upload2" @click="exportData">导出excel
-                </el-button>
             </el-form-item>
         </el-form>
      <el-row class="title-center">
@@ -79,27 +77,28 @@
                     <el-radio-button label="0">待发送</el-radio-button>
                     <el-radio-button label="1">已发送</el-radio-button>
                 </el-radio-group>
-                <el-radio-group v-if="table2"  >
+                <el-radio-group v-if="table2" v-model="listQuery.sendType" @change="sendTypeChange">
                     <el-radio-button label="0">待自查</el-radio-button>
                     <el-radio-button label="1">已自查</el-radio-button>
                 </el-radio-group>
-          <el-button class="btns" type="primary" size="small" v-if="table1" @click="handoff(1)">进入自查(3)</el-button>
+          <el-button class="btns" type="primary" size="small" v-if="table1" @click="handoff(1)">进入自查({{selfTotal}})</el-button>
           <el-button class="btns" type="primary" size="small" v-if="table2" @click="handoff(2)">返回填写</el-button>
             </el-col>
             <div v-if="table1">
             <el-col :span="14" style="text-align:right;" v-if="listQuery.type==0">
-                <el-button class="btns" type="primary" size="small" icon="el-icon-upload2" >发送</el-button>
-                <el-button class="btns" type="primary" size="small" icon="el-icon-plus" @click="sendBath()">添加</el-button>
-                <el-button size="small" >批量删除</el-button>
+                <el-button class="btns" type="primary" size="small" icon="el-icon-upload2" @click="openSend()">发送</el-button>
+                <el-button class="btns" type="primary" size="small" icon="el-icon-plus" @click="addDanger()">添加</el-button>
+                <el-button size="small" @click="deleteBatch()" >批量删除</el-button>
             </el-col>
              <el-col :span="14" style="text-align:right;" v-if="listQuery.type==1">
-                <el-button class="btns" type="primary" size="small" >收回</el-button>
+                <el-button class="btns" type="primary" size="small" @click="tackBack()">收回</el-button>
             </el-col>
             </div>
         </el-row>
         <div v-if="table1">
          <el-table ref="dataTable"
                    v-if="listQuery.type==0"
+                   v-loading="loading"
                    :data="tableData"
                    style="width: 100%"
                    @selection-change="handleSelectionChange">
@@ -113,15 +112,15 @@
             <el-table-column prop="check_main_branch" label="检查单位" align="center"></el-table-column>
             <el-table-column prop="checktype" label="检查类别" align="center"></el-table-column>
                 <!-- <el-table-column prop="measure" label="被检单位" align="center"></el-table-column> -->
-            <el-table-column prop="ht_level" label="隐患类别" align="center"></el-table-column>
-            <el-table-column prop="ht_typesub" label="隐患级别" align="center"></el-table-column>
+            <el-table-column prop="ht_typesub" label="隐患类别" align="center"></el-table-column>
+            <el-table-column prop="ht_level" label="隐患级别" align="center"></el-table-column>
             <el-table-column prop="address" label="隐患地点" align="center"></el-table-column>
-            <el-table-column prop="ht_content" label="隐患内容" width="200" align="center"></el-table-column>
+            <el-table-column prop="ht_content" show-overflow-tooltip label="隐患内容" width="200" align="center"></el-table-column>
             <!-- <el-table-column prop="curWarningLevel" label="下发单位" align="center"></el-table-column> -->
             <el-table-column prop="date" label="基本操作" align="center">
                 <template slot-scope="scope">
-                    <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button>
-                    <el-button @click="handleClick(scope.row)" type="text" size="small">删除</el-button>
+                    <el-button @click="editDanger(scope.row)" type="text" size="small">编辑</el-button>
+                    <el-button @click="deleteDanger(scope.row)" type="text" size="small">删除</el-button>
                 </template>
             </el-table-column>
         </el-table>
@@ -139,7 +138,7 @@
             <el-table-column prop="ht_typesub" label="隐患类别" align="center"></el-table-column>
             <el-table-column prop="ht_level" label="隐患级别" align="center"></el-table-column>
             <el-table-column prop="address" label="隐患地点" align="center"></el-table-column>
-            <el-table-column prop="ht_content" label="隐患内容" width="200" align="center"></el-table-column>
+            <el-table-column prop="ht_content" show-overflow-tooltip label="隐患内容" width="200" align="center"></el-table-column>
             <el-table-column prop="workGroupName" label="发送单位" align="center"></el-table-column>
             <el-table-column prop="state" label="未自查单位" align="center"></el-table-column>
         </el-table>
@@ -166,8 +165,9 @@
             <el-table-column prop="workGroupName" label="发送单位" align="center"></el-table-column>
             <el-table-column prop="date" label="自查结果" align="center">
                 <template slot-scope="scope">
-                    <el-button @click="handleClick(scope.row)" type="text" size="small">不存在</el-button>
-                    <el-button @click="handleClick(scope.row)" type="text" size="small">存在</el-button>
+                    <el-button @click="handleClick(scope.row,'不存在')" type="text" size="small">不存在</el-button>
+                    <el-button @click="handleClick(scope.row)" type="text" v-if="listQuery.sendType=='0'" size="small">存在</el-button>
+                    <el-button @click="handleClick(scope.row)" type="text" v-if="listQuery.sendType=='1'" size="small">追查结果</el-button>
                 </template>
             </el-table-column>
         </el-table>
@@ -185,11 +185,156 @@
             </el-pagination>
         </div>
 
+        <!-- 编辑弹窗 -->
+        <el-dialog
+            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="check_date">
+                            <el-date-picker
+                                v-model="dangerForm.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="checktype">
+                            <el-select v-model="dangerForm.checktype" placeholder="请选择">
+                                <el-option
+                                    v-for="item in JCLBList"
+                                    :key="item.value"
+                                    :label="item.value"
+                                    :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="check_main_branch">
+                            <el-input v-model="dangerForm.check_main_branch" class="multiline"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+
+                <el-row>
+                    <el-col :span="9">
+                        <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-col :span="9" :offset="4">
+                        <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-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 YHLBList"
+                                    :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="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="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>
+
+        <!-- 部门弹窗 -->
+        <el-dialog
+            title="责任单位"
+            :visible.sync="bmDialogVisible"
+            :close-on-click-modal="false"
+            width="40%">
+            <el-form>
+                <el-row>
+                    <el-checkbox style="width: 80px;height: 30px"
+                                 v-for="item in YHBMList"
+                                 v-model="checked"
+                                 :label="item.branch_id"
+                                 :key="item.branch_name">
+                        {{item.branch_name}}
+                    </el-checkbox>
+                </el-row>
+                <el-row>
+                    <el-col :span="22">
+                        <el-form-item style="text-align: center;">
+                            <el-button class="btn" size="small" type="primary" @click="submitForm()">
+                                保存
+                            </el-button>
+                            <el-button size="small" @click="bmDialogVisible = false">关闭</el-button>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+            </el-form>
+        </el-dialog>
+
+        <!-- 不存在弹窗-->
+        <el-dialog :title="selfTitle" :visible.sync="selfInspectVisible" :modal-append-to-body="false" :close-on-click-modal="false" width="600px">
+            <el-form ref="selfInspectForm" :rules="selfInspectFormRules" :model="selfInspectForm" label-position="right" label-width="80px">
+                <el-form-item label="自查人" prop="markUserName">
+                    <el-input v-model="selfInspectForm.markUserName" class="analyseUnit_input"></el-input>
+                </el-form-item>
+                <el-form-item label="自查时间" prop="markDate">
+                    <el-col :span="11">
+                        <el-date-picker type="date" placeholder="选择日期" v-model="selfInspectForm.markDate"
+                                        style="width: 100%;" value-format="yyyy-MM-dd">
+                        </el-date-picker>
+                    </el-col>
+                </el-form-item>
+                <el-form-item label="备注" prop="remark">
+                    <el-input v-model="selfInspectForm.remark" type="textarea" rows="5" class="analyseUnit_input"></el-input>
+                </el-form-item>
+            </el-form>
+            <div  align="center">
+                <el-button type="primary" v-if="listQuery.sendType == '0'" @click="submitSelfInspect()">确认</el-button>
+                <el-button @click="selfInspectVisible = false">关闭</el-button>
+            </div>
+        </el-dialog>
+
     </div>
 </template>
 <script>
-    import { getPageList, analogy_export_do} from "@/api/sgyhpczl/oneFromanotherN"
-    import {initJCBM, initYHLX, initJCLB, initYHJB} from "@/api/sgyhpczl/initSelect";
+import { getPageList, edit, del, send, revoke} from "@/api/sgyhpczl/oneFromanotherN"
+import {noExistSave,selfCheckNotInfo} from "@/api/sgyhpczl/oneFromanother"
+import {initJCBM, initYHLX, initJCLB, initYHJB,initYHBM} from "@/api/sgyhpczl/initSelect";
+import {deepClone} from '@/utils'
+
 
     export default{
         data(){
@@ -198,23 +343,27 @@
                     page:1,
                     limit:10,
                     type: 0,
+                    sendType: 0,
                     form:{},
                 },
+                selfTotal: 0,
                 radio1:'待发送',
                 table1:true,
                 table2:false,
-
-
-
                 currentPage: 1,
                 pageSize: 10,
                 recordTotal: 0,
+                YHBMList: [],
+                bmDialogVisible: false,
+                checked:[],
+                requestData:{},//发送提交参数
                 XFDWList:[],
                 YHLBList:[],
                 YHJBList:[],
                 JCLBList:[],
                 tableData:[],
                 selectedList:[],
+                loading:false,
                 listLoading: false,
                 selfInspectVisible: false,
                 selfInspectForm:{
@@ -223,44 +372,106 @@
                     markDate:'',
                     remark:'',
                 },
+                selfTitle: '',
                 selfInspectFormRules:{
                     markUserName: [{ required: true, message: '自查人不能为空', trigger: 'blur' }],
                     markDate: [{ required: true, message: '自查时间不能为空', trigger: 'blur' }]
                 },
+                dialogVisible:false,
+                dangerForm:{},
+                dangerRules:{
+                    check_date: [{ required: true, message: '不能为空', trigger: 'blur' },],
+                    check_main_branch: [{ required: true, message: '不能为空', trigger: 'blur' },],
+                    checktype: [{ required: true, message: '不能为空', trigger: 'blur' },],
+                },
+
 
             }
         },
         mounted() {
             this.getPageList();
+            this.getSelfTotal();
+            this.initYHBM();
             this.initJCLB();
             this.initXFDW();
             this.initYHJB();
             this.initYHLB();
         },
         methods:{
-            sendBath(){
+            addDanger(){
                 this.$router.push({
-                    path:'/existN'
+                    path:'/addDanger',
                 })
             },
             handleClick(data,val){
-                if(val=='存在'){
-                    this.$router.push({
-                        path:'/exist'
+                if(val=='不存在'){
+                    this.$nextTick(() =>{
+                        this.$refs["selfInspectForm"].clearValidate()
                     })
+                    this.selfInspectForm={id:data.id}
+                    this.selfInspectVisible = true
+                    if (this.listQuery.sendType == '1'){
+                        let params = {
+                            id: data.id,
+                            type: 1,
+                        }
+                        selfCheckNotInfo(params).then(res=>{
+                            if (res.data.ok==1){
+                                this.selfInspectForm=res.data.data[0]
+                            } else{
+                                this.$message({type:'error', message:res.data.msg, duration:3000})
+                            }
+                        })
+                    }
+                    return
                 }
+                let puType = '0';
+                this.$router.push({
+                    path:'/existN',
+                    query: {
+                        data: data,
+                        type: puType
+                    }
+                })
+            },
+            //不存在提交
+            submitSelfInspect(){
+                this.$refs["selfInspectForm"].validate((valid) =>{
+                    if (valid){
+                        noExistSave(this.selfInspectForm).then((res)=>{
+                            if (res.data.ok==1) {
+                                this.$message({type:'success', message:"保存成功", duration:3000});
+                                this.selfInspectVisible = false
+                            }else{
+                                this.$message({type:'error', message:res.data.msg, duration:3000})
+                            }
+                        })
+                    }
+                })
             },
             handoff(index){
                 if(index==1){
                     this.table1=false
                     this.table2=true
                     this.listQuery.type = 2
-                    console.log(this.listQuery.type)
+                    this.listQuery.sendType = 0
                     this.getPageList()
                 }else{
+                    this.listQuery.type = 0
+                    this.getPageList()
+                    this.getSelfTotal();
                     this.table1=true
                     this.table2=false
                 }
+            },
+            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})
+                    }
+                })
             },
             initXFDW(){
                 initJCBM(1).then(res=>{
@@ -307,19 +518,14 @@
                     }
 
                 }
-                if(this.listQuery.form.check_dateEnd!=null && this.listQuery.form.check_dateEnd!=''){
-                    if(this.listQuery.form.check_dateStart!=null && this.listQuery.form.check_dateStart!=''){
-                    }else {
-                        this.$message({type:'error', message:"请选择检查开始时间", duration:3000})
-                        return
-                    }
-                }
             },
             //搜索
             getPageList(){
                 this.listQuery.page=1
                 this.checkTime()
+                this.loading=true
                 getPageList(this.listQuery).then(res=>{
+                    this.loading=false
                     if (res.data.ok==1) {
                         this.tableData = res.data.data.items
                         this.recordTotal=res.data.data.total
@@ -327,6 +533,24 @@
                         this.$message({type:'error', message:res.data.msg, duration:3000})
                     }
                 })
+            },
+            //获取待自查数量
+            getSelfTotal(){
+                if (this.listQuery.type != '2'){
+                    let query = {
+                        page: 1,
+                        sendType: 0,
+                        type: 2,
+                        form:{},
+                    };
+                    getPageList(query).then(res=>{
+                        if (res.data.ok==1) {
+                            this.selfTotal=res.data.data.total
+                        }else{
+                            this.$message({type:'error', message:res.data.msg, duration:3000})
+                        }
+                    })
+                }
             },
             //重置
             reset(){
@@ -356,29 +580,14 @@
                 this.listQuery.type = val;
                 this.getPageList()
             },
+            sendTypeChange(val){
+                this.listQuery.sendType = val;
+                this.getPageList()
+            },
             handleSelectionChange(val){
                 this.selectedList = []
                 val.forEach((item) => {
                     this.selectedList.push(item)
-                })
-            },
-            exportData() {
-                var requestData = this.listQuery;
-                //删除分页参数
-                this.$delete(requestData, 'page')
-                this.$delete(requestData, 'limit')
-                analogy_export_do(requestData).then(res => {
-                    var blob = new Blob([res.data])
-                    var downloadElement = document.createElement('a')
-                    var href = window.URL.createObjectURL(blob) //创建下载的链接
-                    downloadElement.href = href
-                    downloadElement.download = '内部举一反三.xlsx' //下载后文件名
-                    document.body.appendChild(downloadElement)
-                    downloadElement.click() //点击下载
-                    document.body.removeChild(downloadElement) //下载完成移除元素
-                    window.URL.revokeObjectURL(href) //释放掉blob对象
-                }).catch(err => {
-                    console.log(err)
                 })
             },
             //日期格式转换
@@ -391,6 +600,143 @@
                 let dt = new Date(data)
                 return dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate() + ' '
             },
+            editDanger(row, index) {
+                this.dangerForm = deepClone(row);
+                this.rowIndex = index;
+                this.dialogVisible = true;
+            },
+            //编辑提交
+            submitDanger(formName){
+                this.$refs[formName].validate((valid) => {
+                    if (valid) {
+                        edit(this.dangerForm).then(res=>{
+                            if (res.data.ok==1) {
+                                this.dialogVisible=false
+                                this.$message({type:'success', message:res.data.msg, duration:3000})
+                                this.getPageList()
+                            }else{
+                                this.$message({type:'error', message:res.data.msg, duration:3000})
+                            }
+                        })
+                    } else {
+                        console.log("error submit!!");
+                        return false;
+                    }
+                });
+            },
+            deleteBatch() {
+                if (this.selectedList == null || this.selectedList.length == 0) {
+                    this.$message({type: 'warning', message: '至少选中一条数据', duration: 3000})
+                    return
+                }
+                var ids = this.selectedList.map((obj) => {
+                    return obj.id
+                }).join(",")
+                this.$confirm('确认删除吗', '提示', {
+                    confirmButtonText: '确认',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(() => {
+                        del(ids).then(() => {
+                            this.getPageList()
+                            this.$notify({
+                                title: "成功",
+                                message: "删除成功",
+                                type: "success",
+                                duration: 2000,
+                            });
+                        });
+                    })
+                    .catch(error => {
+                    });
+            },
+            deleteDanger(row) {
+                this.$confirm('确认删除吗', '提示', {
+                    confirmButtonText: '确认',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(() => {
+                    console.log(row.id)
+                        del(row.id).then(() => {
+                            this.getPageList()
+                            this.$notify({
+                                title: "成功",
+                                message: "删除成功",
+                                type: "success",
+                                duration: 2000,
+                            });
+                        });
+                    }).catch(error => {
+                });
+            },
+            //发送提交
+            submitForm() {
+                if (this.checked.length == 0) {
+                    this.$message({
+                        type: 'warning',
+                        message: '请勾选需要发送的部门!'
+                    });
+                    return;
+                }
+                this.requestData.branchIds = this.checked.join(";");
+                send(this.requestData).then(res => {
+                    if (res.data.ok) {
+                        this.$message({
+                            type: 'success',
+                            message: res.data.msg
+                        });
+                        this.bmDialogVisible = false;
+                        this.getPageList();
+                    } else {
+                        this.$message({
+                            type: 'error',
+                            message: res.data.msg
+                        });
+                    }
+                })
+            },
+            openSend() {
+                if (this.selectedList.length != 1) {
+                    this.$message({
+                        type: 'warning',
+                        message: '请选择一条数据!'
+                    });
+                    return false;
+                } else {
+                    this.requestData.id = this.selectedList[0].id;
+                    this.bmDialogVisible = true;
+                }
+            },
+            tackBack(){
+                if (this.selectedList.length != 1) {
+                    this.$message({
+                        type: 'warning',
+                        message: '请选择一条数据!'
+                    });
+                    return false;
+                }else {
+                    this.$confirm('确认收回吗', '提示', {
+                        confirmButtonText: '确认',
+                        cancelButtonText: '取消',
+                        type: 'warning'
+                    }).then(() => {
+                        let data = {
+                            id: this.selectedList[0].id
+                        }
+                        revoke(data).then(() => {
+                            this.getPageList()
+                            this.$notify({
+                                title: "成功",
+                                message: "收回成功",
+                                type: "success",
+                                duration: 2000,
+                            });
+                        });
+                    }).catch(error => {
+                    });
+                }
+            }
+
         }
     }
 </script>

--
Gitblit v1.9.2