Переглянути джерело

Merge branch 'master' of http://192.168.2.241:3000/tengmingxue/mbWaterService

tengmingxue 2 роки тому
батько
коміт
d26ee7f0af

+ 9 - 0
src/api/mbsys/watersupply.js

@@ -143,4 +143,13 @@ export function addEmergency(data) {
     method: 'post',
     data
   })
+}
+
+// 获取应急人员
+export function getEmergencyStaff(params) {
+  return request({
+    url: '/tofly-flow/emergencystaff/page',
+    method: 'get',
+    params
+  })
 }

+ 5 - 5
src/views/mbsys/materialmanage/materialparameter/fixedassets/index.vue

@@ -4,7 +4,7 @@
     <div class="top">
       <el-form :inline="true" :model="queryform" label-width="auto" style="float:left">
         <el-form-item label="关键字">
-          <el-input v-model="queryform.search" size="small" placeholder="请输入物资类型、编码" style="width:260px"></el-input>
+          <el-input v-model="queryform.search" size="small" placeholder="请输入物资类型、编码" style="width:260px" clearable></el-input>
         </el-form-item>
         <el-form-item label="资产类别">
           <el-select v-model="queryform.categoryType" size="small" placeholder="请选择" allow-create style="width:200px" clearable>
@@ -14,10 +14,10 @@
         </el-form-item>
         <el-form-item label="入库时间">
           <el-date-picker v-model="queryform.cgdate" type="daterange" align="right" unlink-panels range-separator="~"
-                          start-placeholder="开始日期" end-placeholder="结束日期" size="small" value-format="yyyy-MM-dd"></el-date-picker>
+                          start-placeholder="开始日期" end-placeholder="结束日期" size="small" value-format="yyyy-MM-dd" clearable></el-date-picker>
         </el-form-item>
         <el-form-item label-width="0">
-          <el-button type="primary" icon="el-icon-search" size="small">搜索</el-button>
+          <el-button type="primary" icon="el-icon-search" size="small" @click="query">搜索</el-button>
         </el-form-item>
       </el-form>
       <el-button type="primary" icon="el-icon-download" size="small" @click="exportFixed()" style="margin-top: 5px;">导出</el-button>
@@ -228,7 +228,7 @@ export default {
       let query = JSON.parse(JSON.stringify(this.queryform))
       if (query.cgdate) {
         query['startTime'] = query.cgdate[0] ? query.cgdate[0] : ''
-        query['endBuyTime'] = query.cgdate[1] ? query.cgdate[1] : ''
+        query['endTime'] = query.cgdate[1] ? query.cgdate[1] : ''
         delete query.cgdate;
       }
       Object.assign(params, query)
@@ -243,7 +243,7 @@ export default {
     query() {
       this.pagination.current = 1
       this.pagination.size = 20
-      this.getMaterialImport()
+      this.getFixedAssets()
     },
     handleSizeChange(size) {
       this.pagination.size = size

+ 206 - 0
src/views/mbsys/watersupply/emergencymanage/emergencyplan/children/addperson.vue

@@ -0,0 +1,206 @@
+<template>
+  <el-dialog title="添加人员信息" :visible.sync="dialogVisible" width="1200px" append-to-body>
+    <div class="c-div">
+      <el-row :gutter="24">
+        <el-col class="box" :span="12">
+          <div class="box-content">
+            <div class="top">
+              <el-form ref="form" :model="form" :inline="true" style="float: left; height: 45px">
+                <el-form-item label="姓名" label-width="auto">
+                  <el-input v-model="form.name" size="small" placeholder="请输入姓名" style="width: 180px;" clearable></el-input>
+                </el-form-item>
+                <el-form-item label="职务" label-width="auto">
+                  <el-input v-model="form.duty" size="small" placeholder="请输入职务" style="width: 180px;" clearable></el-input>
+                </el-form-item>
+                <el-form-item label-width="auto">
+                  <el-button type="primary" icon="el-icon-search" size="small" style="margin-top: 4px;">搜索</el-button>
+                </el-form-item>
+              </el-form>
+            </div>
+            <el-table ref="multipleTable" :data="tableData" :style="{ width: '100%' }" height="300px"
+                      :header-cell-style="{background: 'rgba(250,250,250)', color: 'rgb(50,59,65)',height: '38px',textAlign: 'center'}"
+                      style="width: 100%" @select="rowSelect">
+              <template slot="empty">
+                <img src="@/assets/icon/null.png" alt="" />
+                <p class="empty-p">暂无数据</p>
+              </template>
+              <el-table-column type="selection" align="center" width="50"></el-table-column>
+              <el-table-column prop="dept" align="center" label="部门"></el-table-column>
+              <el-table-column prop="name" align="center" label="姓名"></el-table-column>
+              <el-table-column prop="duty" align="center" label="职务"></el-table-column>
+              <el-table-column prop="phone" align="center" label="联系电话"></el-table-column>
+            </el-table>
+            <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="1"
+                           :page-sizes="[5,20, 30, 40, 50, 100, 200]" :page-size="pagination.size"
+                           layout="total, sizes, prev, pager, next, jumper" :total="pagination.total" small>
+            </el-pagination>
+          </div>
+        </el-col>
+        <el-col class="box" :span="12">
+          <div class="box-content">
+            <div class="top">
+              <div class="h-title">已选人员</div>
+            </div>
+            <el-table :data="selectTableData" :style="{ width: '100%' }" height="332px" :header-cell-style="{background: 'rgba(250,250,250)',
+                  color: 'rgb(50,59,65)',height: '38px',textAlign: 'center'}" style="width: 100%">
+              <template slot="empty">
+                <img src="@/assets/icon/null.png" alt="" />
+                <p class="empty-p">暂无数据</p>
+              </template>
+              <el-table-column prop="dept" align="center" label="部门"></el-table-column>
+              <el-table-column prop="name" align="center" label="姓名"></el-table-column>
+              <el-table-column prop="duty" align="center" label="职务"></el-table-column>
+              <el-table-column prop="phone" align="center" label="联系电话"></el-table-column>
+              <el-table-column align="center" label="操作">
+                <template slot-scope="{row}">
+                  <el-button type="text" icon="el-icon-delete" style="color:#f40;padding:0" @click="removeItem(row)"></el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+        </el-col>
+      </el-row>
+    </div>
+    <div slot="footer">
+      <el-button size="small" @click="dialogVisible = false;selectTableData=[]">取 消</el-button>
+      <el-button size="small" type="primary" @click="selectSubmit">确 定</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import { getEmergencyStaff } from '@/api/mbsys/watersupply'
+export default {
+  props: ['visible'],
+  data() {
+    return {
+      dialogVisible: false,
+      tableData: [],
+      selectTableData: [],
+      form: {},
+      pagination: { current: 1, size: 20, total: 0 }
+    }
+  },
+  watch: {
+    visible(val, oldVal) {
+      this.dialogVisible = this.visible
+    }
+  },
+  mounted() {
+    this.getEmergencyStaff()
+  },
+  methods: {
+    open() {
+      this.dialogVisible = true
+    },
+    close() {
+      this.dialogVisible = false
+    },
+    /**
+     * 获取人员列表
+     */
+    getEmergencyStaff() {
+      let params1 = JSON.parse(JSON.stringify(this.form));
+      let params2 = JSON.parse(JSON.stringify(this.pagination));
+      let params3 = { ...params1, ...params2 };
+      getEmergencyStaff(params3).then((res) => {
+        if (res.code === 1) {
+          this.tableData = res.result.records;
+          this.pagination.total = res.result.total;
+          // 回显已经选择的
+          this.$nextTick(() => {
+            this.tableData.forEach(row => {
+              // 检查是否已经选择
+              const selected = this.selectTableData.some(item => {
+                if (item.id == row.id) return true
+              })
+              if (selected) this.$refs.multipleTable.toggleRowSelection(row);
+            });
+          })
+        }
+      });
+    },
+    handleSizeChange(size) {
+      this.pagination.size = size;
+      this.getEmergencyStaff();
+    },
+    handleCurrentChange(current) {
+      this.pagination.current = current;
+      this.getEmergencyStaff();
+    },
+    /**
+     * 选择
+     */
+    rowSelect(selection, row) {
+      // 判断是否选中
+      const checked = selection.some(item => {
+        if (item.id == row.id) return true
+      })
+      if (checked) {
+        this.selectTableData.push(row)
+      } else {
+        this.selectTableData = this.selectTableData.filter(item => item.id != row.id)
+      }
+    },
+    /**
+     * 移除行
+     */
+    removeItem(row) {
+      this.selectTableData = this.selectTableData.filter(item => item.id != row.id)
+      this.$refs.multipleTable.toggleRowSelection(row);
+    },
+    /**
+     * 
+     */
+    selectSubmit(){
+      
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.el-dialog__wrapper {
+  >>> .box {
+    // border: 1px solid #ccc;
+    padding: 0 5px !important;
+    box-sizing: border-box;
+    .top {
+      width: 100%;
+      height: 45px;
+      // line-height: 45px;
+    }
+    .box-content {
+      width: 100%;
+      height: 100%;
+      border: 1px solid #e2e2e2;
+      border-radius: 3px;
+      box-sizing: border-box;
+      padding: 10px;
+      .el-table--border::after,
+      .el-table--group::after,
+      .el-table::before {
+        background-color: transparent;
+      }
+      .h-title {
+        width: 100%;
+        height: 30px;
+        line-height: 30px;
+        margin-bottom: 10px;
+        &::before {
+          content: "";
+          display: inline-block;
+          width: 6px;
+          height: 18px;
+          vertical-align: sub;
+          background-color: #70b603;
+          margin-right: 5px;
+        }
+        >>> .el-button span {
+          text-decoration: underline;
+        }
+      }
+    }
+  }
+}
+</style>

+ 19 - 8
src/views/mbsys/watersupply/emergencymanage/emergencyplan/widget.vue

@@ -8,13 +8,13 @@
             <el-input v-model="form.eventName" size="small" placeholder="请输入内容" style="width: 260px;" clearable></el-input>
           </el-form-item>
           <el-form-item label="事故类型" label-width="auto">
-            <el-select v-model="form.eventType" placeholder="请选择事故类型" style="width:260px" clearable>
+            <el-select v-model="form.eventType" placeholder="请选择事故类型" style="width:260px" size="small" clearable>
               <el-option v-for="item in eventTypes" :key="item.id" :label="item.typeName" :value="item.id">
               </el-option>
             </el-select>
           </el-form-item>
           <el-form-item label="事故等级" label-width="auto">
-            <el-select v-model="form.eventGrade" placeholder="请选择事故类型" style="width:260px" clearable>
+            <el-select v-model="form.eventGrade" placeholder="请选择事故类型" style="width:260px" size="small" clearable>
               <el-option v-for="item in eventGrades" :key="item.id" :label="item.typeName" :value="item.id">
               </el-option>
             </el-select>
@@ -69,7 +69,7 @@
           </el-col>
           <el-col :span="8">
             <el-form-item label="事故类型" prop="eventType">
-              <el-select v-model="addForm.eventType" placeholder="请选择事故类型" style="width:260px">
+              <el-select v-model="addForm.eventType" placeholder="请选择事故类型" style="width:100%">
                 <el-option v-for="item in eventTypes" :key="item.id" :label="item.typeName" :value="item.id">
                 </el-option>
               </el-select>
@@ -77,7 +77,7 @@
           </el-col>
           <el-col :span="8">
             <el-form-item label="事故等级" prop="eventGrade">
-              <el-select v-model="addForm.eventGrade" placeholder="请选择事故等级" style="width:260px">
+              <el-select v-model="addForm.eventGrade" placeholder="请选择事故等级" style="width:100%">
                 <el-option v-for="item in eventGrades" :key="item.id" :label="item.typeName" :value="item.id">
                 </el-option>
               </el-select>
@@ -101,7 +101,8 @@
           <el-col :span="8">
             <el-form-item label="登记时间">
               <!-- <el-input v-model="addForm.registerTime" placeholder="请输入内容"></el-input> -->
-              <el-date-picker v-model="addForm.registerTime" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"></el-date-picker>
+              <el-date-picker v-model="addForm.registerTime" type="date" placeholder="选择日期" value-format="yyyy-MM-dd" style="width:100%">
+              </el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="24">
@@ -112,7 +113,7 @@
         </el-row>
       </el-form>
       <div class="h-title" style="margin-top:20px">应急通讯录
-        <el-button type="text" style="float:right">添加人员信息</el-button>
+        <el-button type="text" style="float:right" @click="addPerson()">添加人员信息</el-button>
       </div>
       <el-table :data="peopleData" :style="{ width: '100%' }" max-height="200px" :header-cell-style="{background: 'rgba(250,250,250)',
                   color: 'rgb(50,59,65)',height: '38px',textAlign: 'center'}" border>
@@ -188,6 +189,7 @@
         <el-button @click="dialogFormVisible = false">取 消</el-button>
         <el-button type="primary" @click="addsubmit">确 定</el-button>
       </div>
+      <addPerson ref="addPerson" :visible="addpersonVisible"></addPerson>
     </el-dialog>
   </div>
 </template>
@@ -196,7 +198,12 @@
 import { getaddressbook, addressbookApi, editaddressbook, deleteressbookApi } from '@/api/mbsys/collaborative.js'
 import { getTypetree } from '@/api/mbsys/materialmanage'
 import { addEmergency } from '@/api/mbsys/watersupply'
+
+import addPerson from './children/addperson'
 export default {
+  components: {
+    addPerson
+  },
   data() {
     return {
       fileList: [],
@@ -220,6 +227,7 @@ export default {
           label: "水务管理部",
         },
       ],
+      addpersonVisible: false,
       eventGrades: [], // 事件等级
       eventTypes: [], // 事件类型
       options: [],
@@ -270,7 +278,7 @@ export default {
       console.log(data);
       let { name, dept, position, phone, email, id } = JSON.parse(JSON.stringify(data)) || {}
       // this.addForm = JSON.parse(JSON.stringify(data)) || {};
-    //   this.addForm = { name, dept, position, phone, email, id }
+      //   this.addForm = { name, dept, position, phone, email, id }
       this.type = type;
       this.dialogFormVisible = true;
     },
@@ -291,7 +299,7 @@ export default {
     addEmergency() {
       const formdata = new FormData()
       for (const key in this.addForm) {
-          formdata.append(key, this.addForm[key])
+        formdata.append(key, this.addForm[key])
       }
       addEmergency(formdata).then((res) => {
         if (res.code === 1) {
@@ -366,6 +374,9 @@ export default {
         })
         .catch(() => { });
     },
+    addPerson() {
+      this.$refs.addPerson.open()
+    },
     /* 
      搜索
    */