zhaobao há 2 anos atrás
pai
commit
3a938cee8e

+ 7 - 2
src/api/goaf/dangerApi.js

@@ -31,13 +31,18 @@ export function getDangerByPage(data) {
  * @param dangerId
  * @returns
  */
+// export function getDangerById(dangerId) {
+//   return request({
+//     url: `/goaf/goafhdanger/${dangerId}`,
+//     method: 'GET'
+//   })
+// }
 export function getDangerById(dangerId) {
   return request({
-    url: `/goaf/goafhdanger/${dangerId}`,
+    url: `/ent/danger/${dangerId}`,
     method: 'GET'
   })
 }
-
 /**
  * 删除Danger
  * @param dangerId

+ 9 - 5
src/components/WorkFlow/index.vue

@@ -235,7 +235,15 @@ export default {
           actionRemark: this.formData.actionRemark,
           attachList: JSON.parse(JSON.stringify(this.formData.attachList))
         }
-        return { ...data, data: flowData }
+        const user = {
+          accountIdTo: this.formData.accountIdTo,
+          groupIdTo: this.formData.groupIdTo,
+          positionIdTo: this.formData.positionIdTo,
+          accountNameTo: this.formData.accountNameTo,
+          groupNameTo: this.formData.groupNameTo,
+          positionNameTo: this.formData.positionNameTo
+        }
+        return { ...data, data: flowData, user }
       } else {
         this.$message.error(msg)
         return false
@@ -287,7 +295,3 @@ export default {
   }
 }
 </script>
-<style lang="scss">
-</style>
-<style lang="scss" scoped>
-</style>

+ 0 - 4
src/views/aqpt/danger/activity/Accept.vue

@@ -208,10 +208,6 @@ export default {
   }
 }
 </script>
-
-<style lang="scss">
-
-</style>
 <style lang="scss" scoped>
 .hd-info-component {
   margin: 15px;

+ 2 - 2
src/views/goaf/checkTask/plan/components/CheckDef.vue

@@ -150,7 +150,7 @@ export default {
         'defEndDate': '',
         'checkCount': 0,
         'checkCycleUnit': 0,
-        'jobId': ' ',
+        'jobId': 0,
         'checkDesc': '',
         'status': 0
       },
@@ -286,7 +286,7 @@ export default {
         'defEndDate': '',
         'checkCount': 0,
         'checkCycleUnit': 0,
-        'jobId': ' ',
+        'jobId': 0,
         'checkDesc': '',
         'status': 0
       }

+ 3 - 3
src/views/goaf/danger/activity/Accept.vue

@@ -29,7 +29,7 @@
           </div>
         </div>
         <div v-show="tabType==='history'">
-          <ActivityHandleRecord ref="ActivityHandleRecord" :wf-ins-id="viewData.dangerId" />
+          <ActivityHandleRecord ref="ActivityHandleRecord" />
         </div>
       </el-row>
     </div>
@@ -137,13 +137,13 @@ export default {
     },
 
     // 显示窗口
-    showModel(dangerId) {
+    showModel(dangerId, info) {
       this.resetFormData()
       this.dialogVisible = true
       getDangerById(dangerId).then((resp) => {
         const { code, data, msg } = resp
         if (code === 0) {
-          this.viewData = data
+          this.viewData = info || data
           this.$refs.WFlow.get(dangerId)
           this.$refs.ActivityHandleRecord.getData(dangerId)
         } else {

+ 3 - 3
src/views/goaf/danger/activity/Review.vue

@@ -31,7 +31,7 @@
         </div>
 
         <div v-show="tabType==='history'">
-          <ActivityHandleRecord ref="ActivityHandleRecord" :wf-ins-id="viewData.dangerId" />
+          <ActivityHandleRecord ref="ActivityHandleRecord" />
         </div>
       </el-row>
     </div>
@@ -142,13 +142,13 @@ export default {
     },
 
     // 显示窗口
-    showModel(dangerId) {
+    showModel(dangerId, info) {
       this.resetFormData()
       this.dialogVisible = true
       getDangerById(dangerId).then((resp) => {
         const { code, data, msg } = resp
         if (code === 0) {
-          this.viewData = data
+          this.viewData = info || data
           this.$refs.WFlow.get(dangerId)
           this.$refs.ActivityHandleRecord.getData(dangerId)
         } else {

+ 90 - 101
src/views/goaf/danger/activity/Submit.vue

@@ -10,10 +10,6 @@
     <template slot="title">
       <div class="el-drawer-title">
         <span class="name">{{ title }}</span>
-        <el-tabs v-model="tabType">
-          <el-tab-pane label="基本信息" name="form" />
-          <el-tab-pane label="历史记录" name="history" />
-        </el-tabs>
       </div>
     </template>
     <div class="content-container">
@@ -24,44 +20,42 @@
               <el-form-item label="隐患标题" prop="hdangerTitle">
                 <el-input v-model="formData.hdangerTitle" />
               </el-form-item>
-
-              <el-form-item label="隐患编码" prop="dangerCode">
-                <el-input v-model="formData.dangerCode" />
-              </el-form-item>
-
-              <el-form-item label="所在位置" prop="riskPointId">
-                <risk-point-selector v-model="formData.riskPointId" />
-              </el-form-item>
               <el-form-item label="采空区" prop="goafId">
                 <el-select v-model="formData.goafId" filterable placeholder="采空区名称" style="width: 100%">
                   <el-option value="" label="请选择采空区" disabled />
                   <el-option v-for="item in goafs" :key="item.goafId" :value="item.goafId" :label="item.goafName" />
                 </el-select>
               </el-form-item>
-
-              <el-form-item label="隐患类别" prop="dangerCatId">
-                <danger-cat-selector v-model="formData.dangerCatId" />
-              </el-form-item>
-
-              <el-form-item label="隐患来源" prop="dangerSource">
-                <el-select v-model="formData.dangerSource" style="width: 100%" filterable placeholder="请选择隐患来源">
-                  <el-option label="自查" :value="0" />
-                  <el-option label="内部反馈" :value="1" />
-                  <el-option label="上级检查" :value="2" />
-                  <el-option label="政府执法" :value="3" />
+              <el-form-item label="检查表" prop="checklistId">
+                <el-select v-model="formData.checklistId" style="width: 100%" filterable placeholder="检查表">
+                  <el-option
+                    v-for="item in checklist"
+                    :key="item.checklistId"
+                    :label="item.checklistTitle"
+                    :value="item.checklistId"
+                  />
                 </el-select>
               </el-form-item>
-
               <el-form-item label="隐患等级" prop="hdangerLevel">
                 <el-radio-group v-model="formData.hdangerLevel">
                   <el-radio :label="1">一般事故隐患</el-radio>
                   <el-radio :label="2">重大事故隐患</el-radio>
                 </el-radio-group>
               </el-form-item>
-
-              <el-form-item label="整改截止时间" prop="dangerDeadLine">
+              <el-form-item label="发生时间" prop="submitTime">
+                <el-date-picker
+                  v-model="formData.submitTime"
+                  type="date"
+                  placeholder="设置发生时间"
+                  format="yyyy-MM-dd HH:mm:ss"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                  clearable
+                  style="width: 100%"
+                />
+              </el-form-item>
+              <el-form-item label="整改截止时间" prop="dangerDeadline">
                 <el-date-picker
-                  v-model="formData.dangerDeadLine"
+                  v-model="formData.dangerDeadline"
                   type="date"
                   placeholder="设置截止时间"
                   format="yyyy-MM-dd HH:mm:ss"
@@ -70,7 +64,6 @@
                   style="width: 100%"
                 />
               </el-form-item>
-
               <el-form-item label="描述" prop="hdangerDesc">
                 <el-input v-model="formData.hdangerDesc" type="textarea" :rows="5" placeholder="隐患描述" />
               </el-form-item>
@@ -82,30 +75,23 @@
             </div>
           </vuescroll>
         </div>
-        <div v-show="tabType==='history'">
-          <ActivityHandleRecord ref="ActivityHandleRecord" :wf-ins-id="formData.dangerId" />
-        </div>
       </el-row>
     </div>
   </el-drawer>
 </template>
 
 <script>
-
-import { WorkFlow, ActivityHandleRecord } from '@/components'
-import { DangerCatSelector, RiskPointSelector } from '@/views/aqpt/components'
+import { getChecklist } from '@/api/goaf/check'
 import { handleDanger, getDangerById } from '@/api/goaf/dangerApi'
 import { getGoafBaseInfo } from '@/api/goaf/info'
 import Vuescroll from 'vuescroll'
-import { getUserData } from '@/utils/auth'
+import { mapGetters } from 'vuex'
+import { WorkFlow } from '@/components'
 export default {
   name: 'SubmitTask',
   components: {
     Vuescroll,
-    DangerCatSelector,
-    RiskPointSelector,
-    WorkFlow,
-    ActivityHandleRecord
+    WorkFlow
   },
   props: {
     title: {
@@ -125,49 +111,44 @@ export default {
       dialogVisible: false,
       tabType: 'form',
       formData: {
-        formCode: 'submit',
-        dangerId: undefined,
-        scenePhoto: '',
-        sceneIcon: '',
-        groupId: undefined, // 所属部门
-        riskPointId: undefined, // 风险点:所属区域
-        dangerCode: '', // 隐患编码
-        hdangerTitle: '', // 隐患标题
-        dangerCatId: undefined, // 隐患类别ID
-        hdangerLevel: 1, // 隐患等级
-        hdangerDesc: '', // 描述
-        dangerDeadLine: '', // 截止时间
-        dangerSource: 0, // 隐患来源
-        status: 0, // 状态
-        submitRemark: '',
-        attachList: [],
-        goafId: undefined
+        'formCode': 'submit',
+        'hdangerId': 1,
+        'dangerId': undefined,
+        'hdangerTitle': '', // 隐患标题
+        'dangerCatId': undefined, // 隐患类别ID
+        'hdangerLevel': 1, // 隐患等级
+        'hdangerDesc': '', // 描述
+        'submitTime': '',
+        'dangerDeadline': '', // 截止时间
+        'goafId': undefined,
+        'submitGroupId': '',
+        'submitGroupName': '',
+        'submitPositionId': '',
+        'submitPositionName': '',
+        'submitAccountId': '',
+        'submitAccountName': '',
+        'checklistId': ''
       },
       goafs: [],
+      checklist: [],
       rules: {
         hdangerTitle: [
           { required: true, message: '请输入隐患标题', trigger: 'blur' }
         ],
-        dangerCode: [
-          { required: true, message: '请输入隐患编码', trigger: 'blur' }
-        ],
-        groupId: [
-          { required: true, message: '请输入所在部门', trigger: 'blur' }
-        ],
-        riskPointId: [
-          { required: true, message: '请选择所在部位', trigger: 'blur' }
-        ],
         goafId: [
           { required: true, message: '请选择采空区', trigger: 'change' }
         ],
+        checklistId: [
+          { required: true, message: '请选择检查表', trigger: 'change' }
+        ],
         hdangerLevel: [
           { required: true, message: '请输选择隐患等级', trigger: 'blur' }
         ],
-        dangerDeadLine: [
-          { required: true, message: '截止时间', trigger: 'blur' }
+        submitTime: [
+          { required: true, message: '发生时间', trigger: 'blur' }
         ],
-        dangerCatId: [
-          { required: true, message: '请选择隐患类别', trigger: 'blur' }
+        dangerDeadline: [
+          { required: true, message: '截止时间', trigger: 'blur' }
         ],
         accountIdTo: [
           { required: true, message: '请选择执行人', trigger: 'blur' }
@@ -175,12 +156,10 @@ export default {
       }
     }
   },
-  mounted() {
-    const userData = getUserData()
-    this.formData.ocId = userData.ocId
-    getGoafBaseInfo().then((res) => {
-      this.goafs = res.data
-    })
+  computed: {
+    ...mapGetters([
+      'userData'
+    ])
   },
   methods: {
 
@@ -188,10 +167,19 @@ export default {
     start() {
       const wfDefId = 1
       this.dialogVisible = true
+      const userData = JSON.parse(JSON.stringify(this.userData))
+      this.formData.ocId = userData.ocId
+
+      getChecklist().then((res) => {
+        this.checklist = res.data
+      })
+      getGoafBaseInfo().then((res) => {
+        this.goafs = res.data
+      })
       this.$nextTick(() => {
         this.$refs.WFlow.start(wfDefId).then((res) => {
           if (res > 0) {
-            this.formData.dangerId = res
+            this.formData.hdangerId = res
           } else {
             this.$message.error('流程初始化失败')
           }
@@ -218,27 +206,27 @@ export default {
 
     resetFormData() {
       this.formData = {
-        formCode: 'submit',
-        dangerId: undefined,
-        scenePhoto: '',
-        sceneIcon: '',
-        groupId: undefined, // 所属部门
-        riskPointId: undefined, // 风险点:所属区域
-        dangerCode: '', // 隐患编码
-        hdangerTitle: '', // 隐患标题
-        dangerCatId: undefined, // 隐患类别ID
-        hdangerLevel: 1, // 隐患等级
-        hdangerDesc: '', // 描述
-        dangerDeadLine: '', // 截止时间
-        dangerSource: 0, // 隐患来源
-        status: 0, // 状态
-        submitRemark: '',
-        attachList: []
+        'formCode': 'submit',
+        'hdangerId': 1,
+        'dangerId': undefined,
+        'hdangerTitle': '', // 隐患标题
+        'dangerCatId': undefined, // 隐患类别ID
+        'hdangerLevel': 1, // 隐患等级
+        'hdangerDesc': '', // 描述
+        'submitTime': '',
+        'dangerDeadline': '', // 截止时间
+        'goafId': undefined,
+        'submitGroupId': '',
+        'submitGroupName': '',
+        'submitPositionId': '',
+        'submitPositionName': '',
+        'submitAccountId': '',
+        'submitAccountName': '',
+        'checklistId': ''
       }
     },
-
     // 保存
-    submitForm(formName) {
+    submitForm() {
       this.$refs['ruleForm'].validate((valid) => {
         if (valid) {
           this.$nextTick(() => {
@@ -249,25 +237,29 @@ export default {
             })
           })
         } else {
-          console.log('error submit!!')
-          return false
+          this.$message.error('提交失败请检查')
         }
       })
     },
 
     // 提交
     handleCommand(flow) {
-      console.log(flow)
       const attachList = flow.data.attachList
       this.formData.status = flow.status
       this.formData.submitRemark = flow.data.actionRemark
       this.formData.attachList = attachList
       if (Array.isArray(attachList) && attachList.length > 0) {
         const attach = attachList[0]
-        console.log(attach)
         this.formData.scenePhoto = attach.fileUrl
         this.formData.sceneIcon = attach.fileIcon
       }
+      this.formData.submitGroupId = this.userData.groupId
+      this.formData.submitGroupName = this.userData.groupName
+      this.formData.submitPositionId = this.userData.positionId
+      this.formData.submitPositionName = this.userData.positionName
+      this.formData.submitAccountId = this.userData.userId
+      this.formData.submitAccountName = this.userData.userName
+
       handleDanger(this.formData).then((resp) => {
         const { code, msg } = resp
         if (code === 0) {
@@ -277,11 +269,8 @@ export default {
         } else {
           this.$message.error(msg)
         }
-      }).catch((error) => {
-        console.log(error)
       })
     },
-
     formSuccess() {
       this.$emit('formSuccess')
     },

+ 1 - 1
src/views/goaf/danger/components/DangerInfo.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="text-block" :style="styles">
     <div class="activity-item danger">
-      <div v-if="viewData.dangerCode" class="text-row">
+      <div v-if="viewData&&viewData.dangerCode" class="text-row">
         <div v-if="viewData.dangerCode" class="text-item">
           <span class="text-label right">隐患编码:</span>
           <span> {{ viewData.dangerCode }} </span>

+ 15 - 46
src/views/goaf/danger/components/DangerList.vue

@@ -19,34 +19,16 @@
     <el-row class="content-body">
       <el-table v-loading="listLoading" class="page-table" border :data="dataList" height="calc(100vh - 230px)">
 
-        <el-table-column type="index" label="序号" header-align="center" align="center" width="60" />
-
-        <el-table-column prop="scenePhoto" label="照片" header-align="center" align="center" width="60">
-          <template v-slot="{row}">
-            <div class="custom-avatar">
-              <el-image
-                :src="row.sceneIcon"
-                :preview-src-list="previewList(row.scenePhoto)"
-              />
-            </div>
-          </template>
-        </el-table-column>
-
-        <el-table-column prop="dangerTitle" label="隐患名称" header-align="left" align="left">
-          <template v-slot="{row}">
-            <span>{{ row.dangerTitle }}</span>
-          </template>
-        </el-table-column>
-
-        <el-table-column prop="dangerCatTitle" label="类别" header-align="center" align="center" width="100">
+        <el-table-column type="index" label="序号" header-align="center" align="center" width="60" />>
+        <el-table-column prop="hdangerTitle" label="隐患名称" header-align="left" align="left">
           <template v-slot="{row}">
-            <span>{{ row.dangerCatTitle }}</span>
+            <span>{{ row.hdangerTitle }}</span>
           </template>
         </el-table-column>
 
-        <el-table-column prop="dangerLevel" label="级别" header-align="center" align="center" width="80">
+        <el-table-column prop="hdangerLevel" label="级别" header-align="center" align="center" width="80">
           <template v-slot="{row}">
-            <span><el-tag type="success" effect="plain" color="rgb(38 69 90)">{{ row.dangerLevel | dangerLevelFilter }}</el-tag></span>
+            <span><el-tag type="success" effect="plain" color="rgb(38 69 90)">{{ row.hdangerLevel | dangerLevelFilter }}</el-tag></span>
           </template>
         </el-table-column>
 
@@ -55,15 +37,6 @@
             <span><el-tag type="warning" effect="plain" color="rgb(38 69 90)">{{ row.status | dangerStatusFilter }}</el-tag></span>
           </template>
         </el-table-column>
-
-        <el-table-column prop="curActivityTitle" label="当前关卡" header-align="center" align="center" width="80">
-          <template v-slot="{row}">
-            <span v-if="row.status!==0">-</span>
-            <!-- color="rgb(38 69 90)" -->
-            <span v-else><el-tag type="danger" effect="plain" color="rgb(38 69 90)">{{ row.curActivityTitle }}</el-tag></span>
-          </template>
-        </el-table-column>
-
         <el-table-column prop="curAccountName" label="当前处理人" header-align="center" align="center" width="160">
           <template v-slot="{row}">
             <span v-if="row.status!==0">-</span>
@@ -71,9 +44,9 @@
           </template>
         </el-table-column>
 
-        <el-table-column prop="expectedEndTime" label="整改期限" header-align="center" align="center" width="165">
+        <el-table-column prop="dangerDeadline" label="整改期限" header-align="center" align="center" width="165">
           <template v-slot="{row}">
-            <span><i class="el-icon-timer" />{{ row.dangerDeadLine }}</span>
+            <span><i class="el-icon-timer" />{{ row.dangerDeadline }}</span>
           </template>
         </el-table-column>
 
@@ -236,11 +209,7 @@ export default {
     // Fetch Data
     getData() {
       this.listLoading = true
-      const conditions = {
-        page: 1,
-        limit: 10
-      }
-      getDangerByPage(conditions).then((resp) => {
+      getDangerByPage(this.conditions).then((resp) => {
         const { code, data, total, msg } = resp
         this.listLoading = false
         if (code === 0) {
@@ -256,19 +225,19 @@ export default {
 
     // 流程处理
     handleDanger(data) {
-      const { curActivityCode, dangerId } = data
-      this.$refs[curActivityCode].showModel(dangerId)
+      const { hdangerId, curActivityCode } = data
+      this.$refs[curActivityCode].showModel(hdangerId, data)
     },
 
     // Delete Handler
     handleDelete(data) {
-      const { dangerId, dangerTitle } = data
-      this.$confirm(`此操作将删除该数据${dangerTitle}, 是否继续?`, '提示', {
+      const { hdangerId, hdangerTitle } = data
+      this.$confirm(`此操作将删除该数据${hdangerTitle}, 是否继续?`, '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
       }).then(() => {
-        deleteDangerById(dangerId).then((resp) => {
+        deleteDangerById(hdangerId).then((resp) => {
           const { code, msg } = resp
           if (code === 0) {
             this.$message.success(msg)
@@ -286,8 +255,8 @@ export default {
 
     // Show Details
     handleDetail(data) {
-      const { dangerId } = data
-      this.$refs['DangerDetails'].showView(dangerId)
+      const { hdangerId } = data
+      this.$refs['DangerDetails'].showView(hdangerId, JSON.parse(JSON.stringify(data)))
     },
 
     // Update View

+ 6 - 9
src/views/goaf/info/components/Goaf.vue

@@ -43,9 +43,6 @@
         <el-form-item label="顶板矿柱厚度" required>
           <el-input-number v-model="formData.goafRoofpillarThickness" placeholder="顶板矿柱厚度" :controls="false" />
         </el-form-item>
-        <el-form-item label="顶板矿柱厚度" required>
-          <el-input-number v-model="formData.goafRoofpillarThickness" placeholder="顶板矿柱厚度" :controls="false" />
-        </el-form-item>
         <el-form-item label="保安间柱平均厚度" required>
           <el-input-number v-model="formData.goafIncoavThickness" placeholder="保安间柱平均厚度" :controls="false" />
         </el-form-item>
@@ -58,7 +55,7 @@
         <el-form-item label="围岩稳定性" prop="goafRockStability">
           <el-input v-model="formData.goafRockStability" />
         </el-form-item>
-        <el-form-item label="形成时间" required>
+        <el-form-item label="形成时间" prop="goafFormationTime">
           <el-date-picker
             v-model="formData.goafFormationTime"
             type="date"
@@ -86,8 +83,8 @@
             <el-option :value="1" label="否" />
           </el-select>
         </el-form-item>
-        <el-form-item label="检查表" prop="checklistId">
-          <el-select v-model="formData.checklistId" style="width: 100%" filterable placeholder="检查表">
+        <el-form-item label="检查表" prop="goafChecklistId">
+          <el-select v-model="formData.goafChecklistId" style="width: 100%" filterable placeholder="检查表">
             <el-option
               v-for="item in checklist"
               :key="item.checklistId"
@@ -150,7 +147,7 @@ export default {
         'goafFillMethod': 0,
         'goafIsFill': 0,
         'goafInfoRemak': '',
-        'checklistId': '',
+        'goafChecklistId': '',
         'goafChecklistTitle': ''
       },
       rules: {
@@ -161,7 +158,7 @@ export default {
         goafFormationTime: [{ required: true, message: '形成时间不能为空', trigger: 'change' }],
         goafIsFill: [{ required: true, message: '形成时间不能为空', trigger: 'change' }],
         goafInfoRemak: [{ required: true, message: '备注不能为空', trigger: 'blur' }],
-        checklistId: [{ required: true, message: '请选择检查表', trigger: 'blur' }]
+        goafChecklistId: [{ required: true, message: '请选择检查表', trigger: 'blur' }]
       },
       ctrlLevelList: [],
       positionList: [],
@@ -215,7 +212,7 @@ export default {
         'goafFillMethod': 0,
         'goafIsFill': 0,
         'goafInfoRemak': '',
-        'checklistId': '',
+        'goafChecklistId': '',
         'goafChecklistTitle': ''
       }
     },

+ 56 - 2
src/views/goaf/info/components/GoafInfo.vue

@@ -10,7 +10,9 @@
         <el-input v-model="conditions.goafName" class="search-input m-right-15" placeholder="请输入采空区名称">
           <el-button slot="append" icon="el-icon-search" @click="getData()" />
         </el-input>
-        <el-button type="primary" @click="handleAdd">新增</el-button>
+        <el-button type="primary" style="margin-right: 10px;" @click="handleAdd">新增</el-button>
+        <el-button type="primary" :disabled="downloadLoading" @click="handleExport">导出Excel</el-button>
+        {{ downloadLoading }}
       </el-col>
     </el-row>
     <el-row class="m-top-15">
@@ -57,7 +59,7 @@ import { getGoafBaseInfoByPage, delGoaf } from '@/api/goaf/info'
 import { Pagination } from '@/components'
 import Goaf from './Goaf'
 import Detail from './detail'
-import { NumConvertLM } from '@/utils'
+import { NumConvertLM, parseTime } from '@/utils'
 export default {
   components: { Pagination, Goaf, Detail },
   data() {
@@ -65,6 +67,7 @@ export default {
       dataList: [],
       total: 0,
       listLoading: false,
+      downloadLoading: false,
       conditions: {
         page: 1,
         limit: 10,
@@ -126,6 +129,57 @@ export default {
       }).catch(() => {
         this.$message.info('已取消删除')
       })
+    },
+    // 导出EXCEL
+    handleExport() {
+      this.downloadLoading = true
+      const tHeader = Object.values(this.getEnums())
+      const filterVal = Object.keys(this.getEnums())
+      const list = this.dataList
+      // list.sort((a, b) => {
+      //   if (a['goafOrebelt'] !== b['goafOrebelt']) {
+      //     return a['goafOrebelt'].localeCompare(b['goafOrebelt'])
+      //   }
+      // })
+      const data = this.formatJson(filterVal, list)
+      if (list.length < 1) {
+        this.$message.error('没有数据可供导出!')
+        this.downloadLoading = false
+        return
+      }
+      import('@/vendor/Export2Excel').then(excel => {
+        excel.export_json_to_excel({
+          header: tHeader,
+          data,
+          filename: `采空区信息_${parseTime(new Date())}`,
+          autoWidth: true,
+          bookType: 'xlsx'
+        })
+        this.downloadLoading = false
+      })
+    },
+    formatJson(filterVal, jsonData) {
+      return jsonData.map(v => filterVal.map(j => {
+        if (j === 'goafIsFill' || j === 'goafAvexHeight' || j === 'goafVoidVolume') {
+          if (v[j] === 0) {
+            return '已填充'
+          }
+          return v[j]
+        } else if (j === 'goafOrebelt') {
+          return this.convertNum(v[j])
+        } else {
+          return v[j]
+        }
+      }))
+    },
+    getEnums() {
+      return {
+        goafOrebelt: '矿带', goafOrebody: '矿体', goafOreheight: '中段', goafName: '采空区名称',
+        goafAvexArea: '水平断面均暴露面积', goafKeyTrend: '倾向', goafKeyDipangle: '倾角',
+        goafAvinWidth: '平均倾向宽度', goafAvexHeight: '平均暴露高度', goafVoidVolume: '体积',
+        goafRoofpillarThickness: '顶板矿柱厚度', goafIncoavThickness: '保安间柱平均厚度', goafExpLocation: '勘探位置',
+        goafRockLithology: '围岩岩性', goafRockStability: '围岩稳定性', goafFormationTime: '形成时间'
+      }
     }
   }
 }

+ 24 - 13
src/views/goaf/sensor/Model.vue

@@ -104,7 +104,7 @@
       </el-form-item>
       <el-form-item label="设备类型" required>
         <el-select
-          v-model="formData.sensorTypeId"
+          v-model="formData.goafDevTypeId"
           style="width: 260px"
           @change="changeSensorCat"
         >
@@ -125,7 +125,7 @@
           value-format="yyyy-MM-dd"
         />
       </el-form-item>
-      <el-form-item label="组织部门">
+      <!-- <el-form-item label="组织部门">
         <el-cascader
           :options="treeData"
           :props="{ checkStrictly: true, emitPath: false }"
@@ -139,21 +139,23 @@
             <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
           </template>
         </el-cascader>
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item label="责任人员" prop="executeAccountId">
         <el-select
           v-model="formData.goafDevAccountId"
-          style="width: 260px"
+          style="width: 100%"
           filterable
-          clearable
-          @change="handleUserSelect"
+          placeholder="请选择人员"
+          @change="handleSelectUser"
         >
-          <el-option
-            v-for="item in userList"
-            :key="item.accountId"
-            :value="item.accountId"
-            :label="item.accountName"
-          />
+          <el-option-group v-for="(user, idx) in userList" :key="idx" :label="user.name">
+            <el-option
+              v-for="item in user.children"
+              :key="item.accountId"
+              :label="item.name"
+              :value="item.accountId"
+            />
+          </el-option-group>
         </el-select>
       </el-form-item>
     </el-form>
@@ -171,6 +173,7 @@ import { getUserByPage } from '@/api/system/userApi'
 import { getSensorCat } from '@/api/goaf/sensorCatApi'
 import { getGoafBaseInfo } from '@/api/goaf/info'
 import { createSensor, updateSensor } from '@/api/goaf/sensor'
+import { getUserList } from '@/api/system/userApi'
 export default {
   name: 'SensorModel',
   data() {
@@ -196,6 +199,7 @@ export default {
         ocId: undefined,
         goafDevName: '',
         goafDevTypename: '',
+        goafDevTypeId: '',
         goafDevAccountId: undefined,
         goafDevAccountName: '',
         goafInstallTime: ''
@@ -244,6 +248,10 @@ export default {
           this.treeData = temp
         }
       })
+      getUserList().then((resp) => {
+        const { data } = resp
+        this.userList = data
+      })
     },
     handleChange(groupId) {
       getUserByPage({
@@ -393,6 +401,9 @@ export default {
         }
       })
     },
+    handleSelectUser(item) {
+      console.log({ item })
+    },
     formSuccess() {
       this.$emit('formSuccess')
     },
@@ -401,7 +412,7 @@ export default {
     },
     changeSensorCat() {
       const sensorCat = this.sensorCats.filter(
-        (item) => item.sensorTypeId === this.formData.sensorTypeId
+        (item) => item.sensorTypeId === this.formData.goafDevTypeId
       )[0]
       this.formData.goafDevTypename = sensorCat.sensorTypeName
       this.formData.ocId = sensorCat.ocId

+ 10 - 5
src/views/goaf/sensor/index.vue

@@ -17,11 +17,16 @@
     <el-row class="m-top-15">
       <el-table v-loading="listLoading" class="page-table" border fit :data="dataList">
         <el-table-column type="index" label="序号" header-align="center" align="center" width="60" />
-        <el-table-column prop="sensorTypeName" label="设备名称" />
-        <el-table-column prop="sensorTypeName" label="安装区域" />
-        <el-table-column prop="sensorTypeName" label="安装地点" />
-        <el-table-column prop="sensorTypeName" label="设备类型名称" />
-        <el-table-column prop="sensorTypeName" label="设备责任人" />
+        <el-table-column prop="goafDevName" label="设备名称" />
+        <el-table-column label="安装区域">
+          <template v-slot="{row}">
+            <span>{{ row.goafOrebelt }}/{{ row.goafOrebody }}/{{ row.goafOrebody }}/{{ row.goafNames }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="goafName" label="安装地点" />
+        <el-table-column prop="goafDevTypename" label="设备类型名称" />
+        <el-table-column prop="goafDevAccountName" label="设备责任人" />
+        <el-table-column prop="goafInstallTime" label="安装时间" />
         <el-table-column label="操作" header-align="center" align="center" width="170">
           <template v-slot="{row}">
             <el-button size="mini" type="primary" icon="el-icon-edit" @click="handleUpdate(row)">修改</el-button>