zhaobao 2 年之前
父节点
当前提交
661aae54db

+ 25 - 2
src/api/goaf/check.js

@@ -39,11 +39,34 @@ export function updateChecklist(data) {
   })
   })
 }
 }
 
 
-// 删除指定检查表的某项内容
-export function deleteChecklistById(goafchecklistitemid) {
+// 删除指定检查表
+export function deleteChecklistById(goafchecklistId) {
+  return request({
+    url: `/goaf/goafChecklist/deletechecklist/${goafchecklistId}`,
+    method: 'DELETE'
+  })
+}
+// .删除指定检查表的某项内容
+export function deleteChecklistItemById(goafchecklistitemid) {
   return request({
   return request({
     url: `/goaf/goafChecklist/deletecheckitemlist/${goafchecklistitemid}`,
     url: `/goaf/goafChecklist/deletecheckitemlist/${goafchecklistitemid}`,
     method: 'DELETE'
     method: 'DELETE'
   })
   })
 }
 }
 
 
+// 增加检查表及其内容
+export function createChecklistItem(data) {
+  return request({
+    url: '/goaf/goafChecklist/add',
+    method: 'POST',
+    data
+  })
+}
+// 更新
+export function updateChecklistItem(data) {
+  return request({
+    url: '/goaf/goafChecklist/update',
+    method: 'PUT',
+    data
+  })
+}

+ 1 - 1
src/api/goaf/layer.js

@@ -24,7 +24,7 @@ export function getMapLayerById(goaflayerId) {
 // 增加
 // 增加
 export function createMapLayer(data) {
 export function createMapLayer(data) {
   return request({
   return request({
-    url: '/goaf/goafmapflayer/data',
+    url: '/goaf/goafmapflayer/add',
     method: 'POST',
     method: 'POST',
     data
     data
   })
   })

+ 1 - 1
src/layout/components/Navbar.vue

@@ -79,7 +79,7 @@ export default {
       sideMenuTabList: [
       sideMenuTabList: [
         /** ckq */
         /** ckq */
         { name: '采空区信息', icon: 'icon-common_quality', path: '/goaf/info', permit: 'aqpt_workflow', id: 0 },
         { name: '采空区信息', icon: 'icon-common_quality', path: '/goaf/info', permit: 'aqpt_workflow', id: 0 },
-        { name: '人员巡检', icon: 'icon-common_saving', path: '/alert', permit: 'aqpt_alert_center', id: 5 },
+        { name: '人员巡检', icon: 'icon-common_saving', path: '/goaf/checklist/index', permit: 'aqpt_alert_center', id: 5 },
         { name: '传感器', icon: 'icon-common_equipment', path: '/aqpt/equipment', permit: 'aqpt_equipment', id: 4 },
         { name: '传感器', icon: 'icon-common_equipment', path: '/aqpt/equipment', permit: 'aqpt_equipment', id: 4 },
         { name: '预警', icon: 'icon-common_saving', path: '/alert', permit: 'aqpt_alert_center', id: 1 },
         { name: '预警', icon: 'icon-common_saving', path: '/alert', permit: 'aqpt_alert_center', id: 1 },
         // { name: '工作台', icon: 'icon-common_task', path: '/task', permit: 'aqpt_task_center', id: 2 },
         // { name: '工作台', icon: 'icon-common_task', path: '/task', permit: 'aqpt_task_center', id: 2 },

+ 2 - 2
src/settings.js

@@ -38,8 +38,8 @@ module.exports = {
   */
   */
   serverUrl: 'http://192.168.1.214:8080/', // 正式环境
   serverUrl: 'http://192.168.1.214:8080/', // 正式环境
   // devServerUrl: 'http://1.15.92.205:8080/', // 开发环境
   // devServerUrl: 'http://1.15.92.205:8080/', // 开发环境
-  devServerUrl: 'http://192.168.3.5:8080/', // 开发环境
-  // devServerUrl: 'http://192.168.3.201:8080/', // 开发环境
+  devServerUrl: 'http://192.168.3.5:8080/', // 开发环境 qu
+  // devServerUrl: 'http://192.168.3.201:8080/', // 开发环境  test
   mqttUrl: 'ws://1.15.92.205:8083/mqtt', // 水泥厂mqtt地址
   mqttUrl: 'ws://1.15.92.205:8083/mqtt', // 水泥厂mqtt地址
   /**
   /**
   * websocket 地址
   * websocket 地址

+ 5 - 8
src/views/goaf/checklist/components/Checklist.vue

@@ -11,17 +11,17 @@
       <vuescroll :ops="ops" style="height: 98%">
       <vuescroll :ops="ops" style="height: 98%">
         <el-form ref="ruleForm" :model="formData" :rules="rules" label-position="right" label-width="100px">
         <el-form ref="ruleForm" :model="formData" :rules="rules" label-position="right" label-width="100px">
           <el-form-item label="名称" prop="checklistTitle">
           <el-form-item label="名称" prop="checklistTitle">
-            <el-input v-model="formData.checklistTitle" placeholder="输入清单名称" />
+            <el-input v-model="formData.checklistTitle" placeholder="输入检查表名称" />
           </el-form-item>
           </el-form-item>
 
 
           <!-- <el-form-item label="类别" prop="checklistCatId">
           <!-- <el-form-item label="类别" prop="checklistCatId">
             <checklist-cat-selector v-model="formData.checklistCatId" />
             <checklist-cat-selector v-model="formData.checklistCatId" />
           </el-form-item> -->
           </el-form-item> -->
-          <el-form-item label="检查项目内容">
+          <!-- <el-form-item label="检查项目内容">
             <el-input v-model="formData.checklistItemContent" type="textarea" rows="10" placeholder="输入描述" />
             <el-input v-model="formData.checklistItemContent" type="textarea" rows="10" placeholder="输入描述" />
-          </el-form-item>
+          </el-form-item> -->
           <el-form-item label="说明" prop="checklistDesc">
           <el-form-item label="说明" prop="checklistDesc">
-            <el-input v-model="formData.checklistDesc" type="textarea" rows="10" placeholder="输入描述" />
+            <el-input v-model="formData.checklistDesc" type="textarea" rows="10" placeholder="输入说明" />
           </el-form-item>
           </el-form-item>
         </el-form>
         </el-form>
         <div class="btn-group">
         <div class="btn-group">
@@ -71,10 +71,7 @@ export default {
       checklistCatList: [],
       checklistCatList: [],
       rules: {
       rules: {
         checklistTitle: [
         checklistTitle: [
-          { required: true, message: '请填写名称', trigger: 'blur' }
-        ],
-        checklistCatId: [
-          { required: true, message: '请填选择类别', trigger: 'blur' }
+          { required: true, message: '请填写检查表名称', trigger: 'blur' }
         ]
         ]
       }
       }
     }
     }

+ 174 - 0
src/views/goaf/checklist/components/ChecklistEdit.vue

@@ -0,0 +1,174 @@
+<template>
+  <el-drawer
+    :title="title"
+    :modal-append-to-body="false"
+    :modal="false"
+    :wrapper-closable="false"
+    size="60%"
+    :visible.sync="dialogVisible"
+  >
+    <div class="content-container">
+      <el-card>
+        <div slot="header" class="clearfix">
+          <span>检查表名称:</span>
+          <span>{{ viewData.checklistTitle }}</span>
+          <el-button style="float: right;" type="text" @click="handleAdd">新增检查项</el-button>
+        </div>
+        <vuescroll :ops="ops">
+          <el-table border :data="dataList" height="60vh">
+            <el-table-column type="index" label="检查项" header-align="center" align="center" width="80" />
+            <el-table-column prop="checklistTitle" label="检查项">
+              <template v-slot="{row}">
+                <span><i class="el-icon-tickets" /> {{ row.checklistTitle }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column prop="checklistDesc" label="说明" header-align="left" align="left">
+              <template v-slot="{row}">
+                <span>{{ row.checklistDesc }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" header-align="center" align="center" width="180">
+              <template v-slot="{row}">
+                <el-button size="mini" icon="el-icon-view" type="primary" @click="handleUpdate(row)">编辑</el-button>
+                <el-button v-if="row.isFixed !== 1" size="mini" icon="el-icon-delete" type="danger" @click="handleDelete(row)">删除</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </vuescroll>
+        <div class="btn-group">
+          <el-button class="cancel-btn" @click="dialogVisible = false">取消</el-button>
+        </div>
+      </el-card>
+    </div>
+    <checklist-item ref="checklist-item" @formSuccess="getData" />
+  </el-drawer>
+</template>
+<script>
+import { deleteChecklistItemById } from '@/api/goaf/check'
+import Vuescroll from 'vuescroll'
+import ChecklistItem from './ChecklistItem.vue'
+export default {
+  name: 'ChecklistEdit',
+  components: {
+    Vuescroll,
+    ChecklistItem
+  },
+  props: {
+    title: {
+      type: String,
+      default: ''
+    }
+  },
+  data() {
+    return {
+      ops: {
+        bar: {
+          keepShow: false,
+          background: 'rgba(144, 147, 153, 0.4)',
+          onlyShowBarOnScroll: false
+        }
+      },
+      dialogVisible: false,
+      viewData: {
+        'checklistId': undefined,
+        'ocId': '',
+        'checklistTitle': '',
+        'checklistDesc': '',
+        'checklistItemId': undefined,
+        'checklistItemContent': ''
+      },
+      formData: {
+        'checklistId': undefined,
+        'ocId': '',
+        'checklistTitle': '',
+        'checklistDesc': '',
+        'checklistItemId': undefined,
+        'checklistItemContent': ''
+      },
+      dataList: [],
+      rules: {
+        checklistTitle: [
+          { required: true, message: '请填写检查项', trigger: 'blur' }
+        ]
+      }
+    }
+  },
+  methods: {
+    // Show Edit Dialog
+    showEditModel(data) {
+      this.resetFormData()
+      this.dialogVisible = true
+      this.viewData = data
+      const items = []
+      for (let i = 0; i < 20; i++) {
+        items.push({
+          'checklistTitle': `检查项${i + 1}`,
+          'checklistDesc': `检查项${i + 1}描述`
+        })
+      }
+      this.dataList = items
+    },
+
+    // Reset Form Data
+    resetFormData() {
+      this.formData = {
+        'checklistId': undefined,
+        'ocId': '',
+        'checklistTitle': '',
+        'checklistDesc': '',
+        'checklistItemId': undefined,
+        'checklistItemContent': ''
+      }
+    },
+    getData() {
+
+    },
+    handleAdd() {
+      this.$refs['checklist-item'].showAddModel()
+    },
+    handleUpdate(data) {
+      this.$refs['checklist-item'].showEditModel(JSON.parse(JSON.stringify(data)))
+    },
+    handleDelete(data) {
+      const { checklistId, checklistTitle } = data
+      this.$confirm(`此操作将删除该数据${checklistTitle}, 是否继续?`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        deleteChecklistItemById(checklistId).then((resp) => {
+          const { code, msg } = resp
+          if (code === 0) {
+            this.getData()
+            this.$message.success(msg)
+          } else {
+            this.$message.error(msg)
+          }
+        })
+      }).catch(() => {
+        this.$message({ type: 'info', message: '已取消删除' })
+      })
+    },
+    resetForm(formName) {
+      this.$refs[formName].resetFields()
+    }
+  }
+}
+</script>
+
+  <style lang="scss" scoped>  .btn-group {
+    margin-top: 20px;
+    .cancel-btn {
+      background: #004F7B;
+      border-color: #004F7B;
+      color: #FFF;
+      margin-left: 20px;
+      &:hover {
+        background: #026197;
+        border-color: #026197;
+      }
+    }
+  }
+
+  </style>
+

+ 121 - 0
src/views/goaf/checklist/components/ChecklistItem.vue

@@ -0,0 +1,121 @@
+<template>
+  <el-dialog
+    :title="title"
+    :visible.sync="dialogVisible"
+    width="30%"
+    append-to-body
+  >
+    <div>
+      <el-form ref="ruleForm" :model="formData" :rules="rules" label-width="100px" label-position="right">
+        <el-form-item label="检查项名称" prop="sensorTypeName">
+          <el-input v-model="formData.sensorTypeName" placeholder="输入检查项名称" />
+        </el-form-item>
+        <el-form-item label="说明">
+          <el-input v-model="formData.sensorCatDesc" type="textarea" rows="5" placeholder="输入说明" />
+        </el-form-item>
+      </el-form>
+    </div>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="dialogVisible = false">取消</el-button>
+      <el-button type="primary" @click="submitForm('ruleForm')">确定</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+import { ACTION_ADD, ACTION_UPDATE } from '@/utils/actionType'
+import { createChecklistItem, updateChecklistItem } from '@/api/goaf/check'
+
+export default {
+  name: 'ChecklistItem',
+  data() {
+    return {
+      title: '检查项',
+      dialogVisible: false,
+      actionType: '',
+      formData: {
+        sensorTypeId: undefined,
+        sensorTypeName: '',
+        sensorCatDesc: ''
+      },
+      rules: {
+        sensorTypeName: [
+          { required: true, message: '请填写名称', trigger: 'blur' }
+        ]
+      }
+    }
+  },
+  methods: {
+    formSuccess() {
+      this.$emit('formSuccess')
+    },
+    // Show Add Model
+    showAddModel() {
+      this.actionType = ACTION_ADD
+      this.resetFormData()
+      this.title = '新增检查项'
+      this.dialogVisible = true
+    },
+    // Show Edit Model
+    showEditModel(data) {
+      this.actionType = ACTION_UPDATE
+      this.resetFormData()
+      this.title = '编辑检查项'
+      this.dialogVisible = true
+      this.formData = data
+    },
+    // Reset Form Data
+    resetFormData() {
+      this.formData = {
+        sensorTypeId: undefined,
+        sensorTypeName: '',
+        sensorCatDesc: ''
+      }
+    },
+    // Submit
+    submitForm(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          this.handleActionCommand()
+        } else {
+          console.log('error submit!!')
+          return false
+        }
+      })
+    },
+
+    // Handle ACTION Command
+    handleActionCommand() {
+      const actionType = this.actionType
+      switch (actionType) {
+        case ACTION_ADD:
+          createChecklistItem(this.formData).then((resp) => {
+            const { code, msg } = resp
+            if (code === 0) {
+              this.dialogVisible = false
+              this.$message.success(msg)
+              this.formSuccess()
+            } else {
+              this.$message.error(msg)
+            }
+          })
+          break
+
+        case ACTION_UPDATE:
+          updateChecklistItem(this.formData).then((resp) => {
+            console.log('this.formData', this.formData)
+            const { code, msg } = resp
+            if (code === 0) {
+              this.dialogVisible = false
+              this.$message.success(msg)
+              this.formSuccess()
+            } else {
+              this.$message.error(msg)
+            }
+          })
+          break
+      }
+    }
+  }
+}
+</script>

+ 11 - 17
src/views/goaf/checklist/index.vue

@@ -3,7 +3,7 @@
     <el-row class="tool-bar">
     <el-row class="tool-bar">
       <el-col :span="12" class="left">
       <el-col :span="12" class="left">
         <div class="content-title">
         <div class="content-title">
-          {{ title }}
+          检查表管理
         </div>
         </div>
       </el-col>
       </el-col>
 
 
@@ -14,11 +14,9 @@
         <el-button type="primary" @click="handleAdd">添加</el-button>
         <el-button type="primary" @click="handleAdd">添加</el-button>
       </el-col>
       </el-col>
     </el-row>
     </el-row>
-
     <el-row class="content-body">
     <el-row class="content-body">
-      <el-table v-loading="listLoading" class="page-table" border :data="dataList" height="calc(100vh - 220px)">
+      <el-table border :data="dataList" height="calc(100vh - 220px)">
         <el-table-column type="index" label="序号" header-align="center" align="center" width="80" />
         <el-table-column type="index" label="序号" header-align="center" align="center" width="80" />
-
         <el-table-column prop="checklistTitle" label="名称" header-align="left" align="left" width="260">
         <el-table-column prop="checklistTitle" label="名称" header-align="left" align="left" width="260">
           <template v-slot="{row}">
           <template v-slot="{row}">
             <span><i class="el-icon-tickets" /> {{ row.checklistTitle }}</span>
             <span><i class="el-icon-tickets" /> {{ row.checklistTitle }}</span>
@@ -47,7 +45,7 @@
 
 
         <el-table-column label="操作" header-align="center" align="center" width="180">
         <el-table-column label="操作" header-align="center" align="center" width="180">
           <template v-slot="{row}">
           <template v-slot="{row}">
-            <el-button size="mini" icon="el-icon-view" type="primary" @click="handleUpdate(row)">修改</el-button>
+            <el-button size="mini" icon="el-icon-view" type="primary" @click="handleUpdate(row)">编辑</el-button>
             <el-button v-if="row.isFixed !== 1" size="mini" icon="el-icon-delete" type="danger" @click="handleDelete(row)">删除</el-button>
             <el-button v-if="row.isFixed !== 1" size="mini" icon="el-icon-delete" type="danger" @click="handleDelete(row)">删除</el-button>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
@@ -59,11 +57,14 @@
     </el-row>
     </el-row>
 
 
     <checklist ref="checklist" @formSuccess="formSuccess" />
     <checklist ref="checklist" @formSuccess="formSuccess" />
+    <checklist-edit ref="checklist-edit" @formSuccess="formSuccess" />
   </div>
   </div>
 </template>
 </template>
 
 
 <script>
 <script>
 import Checklist from './components/Checklist'
 import Checklist from './components/Checklist'
+import ChecklistEdit from './components/ChecklistEdit'
+
 import { deleteChecklistById, getChecklistByPage } from '@/api/goaf/check'
 import { deleteChecklistById, getChecklistByPage } from '@/api/goaf/check'
 import { Pagination } from '@/components'
 import { Pagination } from '@/components'
 
 
@@ -71,18 +72,16 @@ export default {
   name: 'ChecklistIndex',
   name: 'ChecklistIndex',
   components: {
   components: {
     Pagination,
     Pagination,
-    Checklist
+    Checklist,
+    ChecklistEdit
   },
   },
   data() {
   data() {
     return {
     return {
-      title: '清单管理',
-      listLoading: false,
       total: 0,
       total: 0,
       dataList: [],
       dataList: [],
       conditions: {
       conditions: {
         page: 1,
         page: 1,
         limit: 10,
         limit: 10,
-        checklistTypeId: 3, // 同story ID
         keywords: ''
         keywords: ''
       }
       }
     }
     }
@@ -98,7 +97,7 @@ export default {
       const items = []
       const items = []
       for (let i = 0; i < 10; i++) {
       for (let i = 0; i < 10; i++) {
         items.push({
         items.push({
-          'checklistId': 109,
+          'checklistId': i + 1,
           'ocId': 341,
           'ocId': 341,
           'checklistTitle': '3gata5',
           'checklistTitle': '3gata5',
           'checklistDesc': 'g3868q',
           'checklistDesc': 'g3868q',
@@ -106,6 +105,7 @@ export default {
           'checklistItemContent': 'mrxs6p'
           'checklistItemContent': 'mrxs6p'
         })
         })
       }
       }
+      console.log({ items })
       this.dataList = items
       this.dataList = items
       getChecklistByPage(this.conditions).then((resp) => {
       getChecklistByPage(this.conditions).then((resp) => {
         const { code, msg, data, total } = resp
         const { code, msg, data, total } = resp
@@ -125,7 +125,7 @@ export default {
       this.$refs['checklist'].showAddModel()
       this.$refs['checklist'].showAddModel()
     },
     },
     handleUpdate(data) {
     handleUpdate(data) {
-      this.$refs['checklist'].showEditModel(data.checklistId)
+      this.$refs['checklist-edit'].showEditModel(JSON.parse(JSON.stringify(data)))
     },
     },
     handleDelete(data) {
     handleDelete(data) {
       const { checklistId, checklistTitle } = data
       const { checklistId, checklistTitle } = data
@@ -152,9 +152,3 @@ export default {
   }
   }
 }
 }
 </script>
 </script>
-<style lang="scss">
-</style>
-<style lang="scss" scoped>
-
-</style>
-

+ 78 - 47
src/views/goaf/map/components/VisualEditor.vue

@@ -28,26 +28,38 @@
         <div v-if="type==2||type=='drage'" class="saveForm">
         <div v-if="type==2||type=='drage'" class="saveForm">
           <div class="title">新增标记点</div>
           <div class="title">新增标记点</div>
           <div class="item">
           <div class="item">
-            <div class="lable">采空区:</div>
+            <div class="lable">矿带:</div>
             <div class="content">
             <div class="content">
-              <el-select v-model="saveForm.goafId" style="width:200px">
-                <el-option :value="0" label="采空区" />
+              <el-select v-model="saveForm.goafOrebelt" class="safe-area-item" filterable clearable placeholder="矿带">
+                <el-option :value="0" label="请选择矿带" disabled />
+                <el-option v-for="(item,index) in goaf" :key="index" :value="item.goafOrebelt" :label="item.goafOrebelt" />
               </el-select>
               </el-select>
             </div>
             </div>
           </div>
           </div>
           <div class="item">
           <div class="item">
-            <div class="lable">采空区:</div>
+            <div class="lable">矿体:</div>
+            <div class="content">
+              <el-select v-model="saveForm.goafOrebody" class="safe-area-item" filterable clearable placeholder="矿体">
+                <el-option :value="0" label="请选择矿体" disabled />
+                <el-option v-for="(item,index) in goaf" :key="index" :value="item.goafOrebody" :label="item.goafOrebody" />
+              </el-select>
+            </div>
+          </div>
+          <div class="item">
+            <div class="lable">中段:</div>
             <div class="content">
             <div class="content">
-              <el-select v-model="saveForm.goafId" style="width:200px">
-                <el-option :value="0" label="采空区" />
+              <el-select v-model="saveForm.goafOreheight" class="safe-area-item" filterable clearable placeholder="中段">
+                <el-option :value="0" label="请选择中段" disabled />
+                <el-option v-for="(item,index) in goaf" :key="index" :value="item.goafOreheight" :label="item.goafOreheight" />
               </el-select>
               </el-select>
             </div>
             </div>
           </div>
           </div>
           <div class="item">
           <div class="item">
             <div class="lable">采空区:</div>
             <div class="lable">采空区:</div>
             <div class="content">
             <div class="content">
-              <el-select v-model="saveForm.goafId" style="width:200px">
-                <el-option :value="0" label="采空区" />
+              <el-select v-model="saveForm.goafName" class="safe-area-item" filterable clearable placeholder="采空区名称">
+                <el-option :value="0" label="请选择采空区" disabled />
+                <el-option v-for="(item,index) in goaf" :key="index" :value="item.goafName" :label="item.goafName" />
               </el-select>
               </el-select>
             </div>
             </div>
           </div>
           </div>
@@ -59,28 +71,20 @@
         <div v-if="type==3" class="deleteForm">
         <div v-if="type==3" class="deleteForm">
           <div class="title">删除标记点</div>
           <div class="title">删除标记点</div>
           <div class="item">
           <div class="item">
-            <div class="lable">采空区:</div>
-            <div class="content">
-              <el-select v-model="deleteForm.goafId" style="width:200px">
-                <el-option :value="0" label="采空区" />
-              </el-select>
-            </div>
+            <div class="lable">矿带:</div>
+            <div class="content"> {{ deleteForm.goafOrebelt }}</div>
           </div>
           </div>
           <div class="item">
           <div class="item">
-            <div class="lable">采空区:</div>
-            <div class="content">
-              <el-select v-model="deleteForm.goafId" style="width:200px">
-                <el-option :value="0" label="采空区" />
-              </el-select>
-            </div>
+            <div class="lable">矿体:</div>
+            <div class="content"> {{ deleteForm.goafOrebody }}</div>
+          </div>
+          <div class="item">
+            <div class="lable">中段:</div>
+            <div class="content"> {{ deleteForm.goafOreheight }}</div>
           </div>
           </div>
           <div class="item">
           <div class="item">
             <div class="lable">采空区:</div>
             <div class="lable">采空区:</div>
-            <div class="content">
-              <el-select v-model="deleteForm.goafId" style="width:200px">
-                <el-option :value="0" label="采空区" />
-              </el-select>
-            </div>
+            <div class="content"> {{ deleteForm.goafName }}</div>
           </div>
           </div>
           <div class="bt-wrap">
           <div class="bt-wrap">
             <div class="bt" @click="save">保存</div>
             <div class="bt" @click="save">保存</div>
@@ -89,7 +93,6 @@
         </div>
         </div>
       </div>
       </div>
     </div>
     </div>
-
   </div>
   </div>
 </template>
 </template>
 
 
@@ -98,7 +101,9 @@ import * as L from 'leaflet'
 import '@geoman-io/leaflet-geoman-free'
 import '@geoman-io/leaflet-geoman-free'
 import { mapGetters } from 'vuex'
 import { mapGetters } from 'vuex'
 import MapSelector from '@/components/MapSelector'
 import MapSelector from '@/components/MapSelector'
-import { getMapLayerById, createMapLayer, getMapLayerByList } from '@/api/system/mapLayerApi'
+import { getMapLayerByList } from '@/api/system/mapLayerApi'
+import { getGoafBaseInfo } from '@/api/goaf/info'
+import { getMapLayerById, createMapLayer, delMapLayer, updateMapLayer } from '@/api/goaf/layer'
 const markerIcon = L.icon({
 const markerIcon = L.icon({
   iconUrl: require('@/assets/images/icon/4.png'),
   iconUrl: require('@/assets/images/icon/4.png'),
   shadowUrl: require('@/assets/images/icon/4hover.png'),
   shadowUrl: require('@/assets/images/icon/4hover.png'),
@@ -108,8 +113,6 @@ const markerIcon = L.icon({
   popupAnchor: [1, -38]
   popupAnchor: [1, -38]
 })
 })
 L.Marker.prototype.options.icon = markerIcon
 L.Marker.prototype.options.icon = markerIcon
-
-import { addApi, delApi, updateApi } from '@/api/aqpt/visualEditor'
 export default {
 export default {
   name: 'GoafVisualEditor',
   name: 'GoafVisualEditor',
   components: {
   components: {
@@ -138,11 +141,12 @@ export default {
         layerId: undefined
         layerId: undefined
       },
       },
       saveForm: {
       saveForm: {
-        'icon': '',
-        'name': '',
         'goaflayerId': '',
         'goaflayerId': '',
         'ocId': '',
         'ocId': '',
         'goafId': '',
         'goafId': '',
+        'goafOrebelt': 0,
+        'goafOrebody': 0,
+        'goafOreheight': 0,
         'goafName': '',
         'goafName': '',
         'mapId': '',
         'mapId': '',
         'layerId': '',
         'layerId': '',
@@ -158,6 +162,9 @@ export default {
         'goaflayerId': '',
         'goaflayerId': '',
         'ocId': '',
         'ocId': '',
         'goafId': '',
         'goafId': '',
+        'goafOrebelt': 0,
+        'goafOrebody': 0,
+        'goafOreheight': 0,
         'goafName': '',
         'goafName': '',
         'mapId': '',
         'mapId': '',
         'layerId': '',
         'layerId': '',
@@ -170,7 +177,8 @@ export default {
       layer: null,
       layer: null,
       layers: [],
       layers: [],
       layerGroup: [],
       layerGroup: [],
-      imageOverlay: undefined
+      imageOverlay: undefined,
+      goaf: []
     }
     }
   },
   },
   computed: {
   computed: {
@@ -179,9 +187,15 @@ export default {
     ])
     ])
   },
   },
   mounted() {
   mounted() {
-    this.initMap()
+    this.init()
   },
   },
   methods: {
   methods: {
+    init() {
+      this.initMap()
+      getGoafBaseInfo().then((res) => {
+        this.goaf = res.data
+      })
+    },
 
 
     // 加载数据
     // 加载数据
     load(layerId) {
     load(layerId) {
@@ -396,17 +410,25 @@ export default {
       this.map.pm.enableDraw('Marker', { snappable: false, tooltips: false })// tooltips: { 'placeMarker': '点击放置标记' },
       this.map.pm.enableDraw('Marker', { snappable: false, tooltips: false })// tooltips: { 'placeMarker': '点击放置标记' },
     },
     },
     save() {
     save() {
-      console.log(this.layer.toGeoJSON())
       if (this.type === 3) {
       if (this.type === 3) {
         // 删除表单里面的保存
         // 删除表单里面的保存
         this.type = 1
         this.type = 1
       } else if (this.type === 'drage') {
       } else if (this.type === 'drage') {
-        updateApi({
-          'jobactivityTitle': this.layer.options.icon.options.name,
-          'jobactQywzjd': this.layer._latlng.lng,
-          'jobactQywzwd': this.layer._latlng.lat,
-          'veditId': this.veditId,
-          'typeId': this.layer.options.icon.options.typeId
+        updateMapLayer({
+          // 'goaflayerId': '',
+          'ocId': this.userData.ocId,
+          // 'goafId': '',
+          'goafOrebelt': this.saveForm.goafOrebelt,
+          'goafOrebody': this.saveForm.goafOrebody,
+          'goafOreheight': this.saveForm.goafOreheight,
+          'goafName': this.saveForm.goafName,
+          'mapId': this.formData.mapId,
+          'layerId': '',
+          'layerCatId': '',
+          'layerTitle': '',
+          'layerMarker': this.layer?.toGeoJSON(),
+          'layerVector': '',
+          'layerVectorType': ''
         }).then(() => {
         }).then(() => {
           this.type = 1
           this.type = 1
           this.checkItemIndex = -1
           this.checkItemIndex = -1
@@ -418,12 +440,21 @@ export default {
         })
         })
       } else {
       } else {
         // 新增
         // 新增
-        addApi({
-          'jobactivityTitle': this.layer.options.icon.options.name,
-          'jobactQywzjd': this.layer._latlng.lng,
-          'jobactQywzwd': this.layer._latlng.lat,
-          'veditId': this.veditId,
-          'typeId': this.layer.options.icon.options.typeId
+        createMapLayer({
+          // 'goaflayerId': '',
+          'ocId': this.userData.ocId,
+          // 'goafId': '',
+          'goafOrebelt': this.saveForm.goafOrebelt,
+          'goafOrebody': this.saveForm.goafOrebody,
+          'goafOreheight': this.saveForm.goafOreheight,
+          'goafName': this.saveForm.goafName,
+          'mapId': this.formData.mapId,
+          'layerId': '',
+          'layerCatId': '',
+          'layerTitle': '',
+          'layerMarker': this.layer?.toGeoJSON(),
+          'layerVector': '',
+          'layerVectorType': ''
         }).then(() => {
         }).then(() => {
           this.type = 1
           this.type = 1
           this.checkItemIndex = -1
           this.checkItemIndex = -1
@@ -452,7 +483,7 @@ export default {
       }
       }
     },
     },
     delMarker() {
     delMarker() {
-      delApi(this.veditId).then(() => {
+      delMapLayer(this.veditId).then(() => {
         this.type = 1
         this.type = 1
         this.state = 2
         this.state = 2
         this.checkItemIndex = -1
         this.checkItemIndex = -1

+ 89 - 27
src/views/goaf/sensor/Model.vue

@@ -8,39 +8,56 @@
     :visible.sync="dialogVisible"
     :visible.sync="dialogVisible"
   >
   >
     <el-form ref="ruleForm" :model="formData" :rules="rules" label-position="right" label-width="160px">
     <el-form ref="ruleForm" :model="formData" :rules="rules" label-position="right" label-width="160px">
-      <el-form-item label="请输入设备名称" required>
-        <el-input-number v-model="formData.name" placeholder="请输入设备名称" :controls="false" />
+      <el-form-item label="设备名称" required>
+        <el-input v-model="formData.name" placeholder="请输入设备名称" style="width:260px" />
       </el-form-item>
       </el-form-item>
-      <el-form-item label="安区域" required>
+      <el-form-item label="安区域" required>
         <div class="safe-area">
         <div class="safe-area">
           <el-select v-model="formData.goafOrebelt" class="safe-area-item" filterable placeholder="矿带">
           <el-select v-model="formData.goafOrebelt" class="safe-area-item" filterable placeholder="矿带">
             <el-option :value="0" label="请选择矿带" disabled />
             <el-option :value="0" label="请选择矿带" disabled />
-            <el-option v-for="item in goaf" :key="item.id" :value="item.id" :label="item.name" />
-          </el-select>/
+            <el-option v-for="(item,index) in goaf" :key="index" :value="item.goafOrebelt" :label="item.goafOrebelt" />
+          </el-select>
           <el-select v-model="formData.goafOrebody" class="safe-area-item" filterable placeholder="矿体">
           <el-select v-model="formData.goafOrebody" class="safe-area-item" filterable placeholder="矿体">
             <el-option :value="0" label="请选择矿体" disabled />
             <el-option :value="0" label="请选择矿体" disabled />
-            <el-option v-for="item in goaf" :key="item.id" :value="item.id" :label="item.name" />
-          </el-select>/
+            <el-option v-for="(item,index) in goaf" :key="index" :value="item.goafOrebody" :label="item.goafOrebody" />
+          </el-select>
           <el-select v-model="formData.goafOreheight" class="safe-area-item" filterable placeholder="中段">
           <el-select v-model="formData.goafOreheight" class="safe-area-item" filterable placeholder="中段">
             <el-option :value="0" label="请选择中段" disabled />
             <el-option :value="0" label="请选择中段" disabled />
-            <el-option v-for="item in goaf" :key="item.id" :value="item.id" :label="item.name" />
-          </el-select>/
+            <el-option v-for="(item,index) in goaf" :key="index" :value="item.goafOreheight" :label="item.goafOreheight" />
+          </el-select>
           <el-select v-model="formData.goafName" class="safe-area-item" filterable placeholder="采空区名称">
           <el-select v-model="formData.goafName" class="safe-area-item" filterable placeholder="采空区名称">
             <el-option :value="0" label="请选择采空区" disabled />
             <el-option :value="0" label="请选择采空区" disabled />
-            <el-option v-for="item in goaf" :key="item.id" :value="item.id" :label="item.name" />
+            <el-option v-for="(item,index) in goaf" :key="index" :value="item.goafName" :label="item.goafName" />
           </el-select>
           </el-select>
         </div>
         </div>
       </el-form-item>
       </el-form-item>
-      <el-form-item label="请输入设备名称" required>
-        <el-input-number v-model="formData.name" placeholder="请输入设备名称" :controls="false" />
+      <el-form-item label="安装地点" required>
+        <el-input v-model="formData.address" placeholder="请输入安装地点" style="width:260px" />
       </el-form-item>
       </el-form-item>
-      <el-form-item label="传感器类型">
-        <el-select v-model="formData.sensorTypeId" style="width:200px">
+      <el-form-item label="传感器">
+        <el-select v-model="formData.sensorTypeId" style="width:260px">
           <el-option v-for="item in sensors" :key="item.id" :value="item.id" :label="item.name" />
           <el-option v-for="item in sensors" :key="item.id" :value="item.id" :label="item.name" />
         </el-select>
         </el-select>
       </el-form-item>
       </el-form-item>
-      <el-form-item label="执行人员" prop="executeAccountId">
-        <user-selector :default-val="formData.executeAccountId" @setUserInfo="handleUserSelect" />
+      <el-form-item label="组织部门">
+        <el-cascader
+          :options="treeData"
+          :props="{ checkStrictly: true ,emitPath:false}"
+          style="min-width:260px"
+          filterable
+          clearable
+          @change="handleChange"
+        >
+          <template slot-scope="{ node, data }">
+            <span>{{ data.label }}</span>
+            <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
+          </template>
+        </el-cascader>
+      </el-form-item>
+      <el-form-item label="责任人员" prop="executeAccountId">
+        <el-select v-model="formData.user" style="width:260px" filterable clearable @change="handleUserSelect">
+          <el-option v-for="item in userList" :key="item.accountId" :value="item.accountId" :label="item.accountRealName" />
+        </el-select>
       </el-form-item>
       </el-form-item>
     </el-form>
     </el-form>
     <div class="btn-group">
     <div class="btn-group">
@@ -54,12 +71,11 @@
 import { getSensorCat } from '@/api/goaf/sensorCatApi'
 import { getSensorCat } from '@/api/goaf/sensorCatApi'
 import { getGoafBaseInfo } from '@/api/goaf/info'
 import { getGoafBaseInfo } from '@/api/goaf/info'
 import { createSensor, updateSensor } from '@/api/goaf/sensor'
 import { createSensor, updateSensor } from '@/api/goaf/sensor'
-import UserSelector from '@/components/UserSelector/index'
+import { toTree } from '@/utils/build-tree'
+import { getGroupByList } from '@/api/system/groupApi'
+import { getUserByPage } from '@/api/system/userApi'
 export default {
 export default {
   name: 'SensorModel',
   name: 'SensorModel',
-  components: {
-    UserSelector
-  },
   data() {
   data() {
     return {
     return {
       title: '传感器配置',
       title: '传感器配置',
@@ -87,14 +103,18 @@ export default {
         'sensorTypeId': '',
         'sensorTypeId': '',
         'sensorType': '',
         'sensorType': '',
         'sensorTypeName': '',
         'sensorTypeName': '',
-        'executeAccountId': ''
+        'address': '',
+        'executeAccountId': '',
+        'accountId': ''
       },
       },
       rules: {
       rules: {
       },
       },
       ctrlLevelList: [],
       ctrlLevelList: [],
       positionList: [],
       positionList: [],
       viewData: {},
       viewData: {},
-      actionType: ''
+      actionType: '',
+      treeData: [],
+      userList: []
     }
     }
   },
   },
   mounted() {
   mounted() {
@@ -103,14 +123,41 @@ export default {
   methods: {
   methods: {
     init() {
     init() {
       getSensorCat().then((res) => {
       getSensorCat().then((res) => {
-        console.log({ res })
+        this.sensorCats = res.data
+      })
+      getGoafBaseInfo().then((res) => {
+        this.goaf = res.data
       })
       })
-      getGoafBaseInfo.then((goaf) => {
-        console.log({ goaf })
+      getGroupByList().then((resp) => {
+        const { code, data } = resp
+        if (code === 0) {
+          const temp = toTree(data, {
+            value: 'value',
+            name: 'label',
+            pValue: 'parentId'
+          }, {
+            value: 'groupId',
+            name: 'groupName',
+            pValue: 'parentId'
+          })
+          this.treeData = temp
+        }
+      })
+    },
+    handleChange(groupId) {
+      getUserByPage({
+        page: 1,
+        limit: 999999,
+        keyword: '',
+        groupId
+
+      }).then((resp) => {
+        const { data } = resp
+        this.userList = data
       })
       })
     },
     },
     // Show Add Dialog
     // Show Add Dialog
-    showAddModel(hazardId, hazardTitle) {
+    showAddModel() {
       this.resetFormData()
       this.resetFormData()
       this.actionType = 'ADD'
       this.actionType = 'ADD'
       this.title = '新增传感器配置'
       this.title = '新增传感器配置'
@@ -204,7 +251,22 @@ export default {
   .safe-area-item{
   .safe-area-item{
     margin:0 5px 10px 0;
     margin:0 5px 10px 0;
     width: 20%;
     width: 20%;
-    min-width: 120px;
+    min-width: 120px
+
+  }
+  .el-input__inner{
+    text-align: left !important;
   }
   }
+
+}
+::v-deep.el-select-tree{
+    .label{
+      color:#606266 !important;
+    }
+    .el-tree-node.is-current > .el-tree-node__content,
+    .el-tree-node__content:hover{
+      background-color: #fff !important;
+      color: #606266;
+    }
 }
 }
 </style>
 </style>