diff --git a/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/addfrom.vue b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/addfrom.vue new file mode 100644 index 0000000..906d438 --- /dev/null +++ b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/addfrom.vue @@ -0,0 +1,514 @@ +<template> + <div> + <div class="app-container"> + <div class="level-title"> + <h1>应急预案详情</h1> + </div> + <div class="mb-20"> + <el-tabs v-model="activeName" @tab-click="handleClick"> + <el-tab-pane label="基本信息" name="first"> + <el-form ref="form" :model="form" label-width="180px"> + <el-row :gutter="15"> + <el-col :span="8"> + <el-form-item label="预案名称" prop="PLAN_NAME"> + <el-input v-model="form.PLANNAME" placeholder="请输入资源名称..." disabled/> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="预案类型" prop="PLANTYPE"> + <Treeselect + :options="yhtypelistthree" + :normalizer="normalizer" + v-model="form.PLANTYPE" + placeholder="请选择预案类型" + no-options-text="暂无数据" + no-children-text="暂无数据" + disabled + /> + </el-form-item> + </el-col> + </el-row> + + <el-row :gutter="15"> + <el-col :span="8"> + <el-form-item label="预案编码" prop="PLANCODE"> + <el-input v-model="form.PLANCODE" placeholder="请输入预案编码..." disabled/> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="预案等级" prop="PLANGRADE"> + <Treeselect + :options="yhPLANGRADEthree" + + v-model="form.PLANGRADE" + placeholder="请选择预案类型" + no-options-text="暂无数据" + no-children-text="暂无数据" + disabled + /> + </el-form-item> + </el-col> + </el-row> + + <el-row :gutter="15"> + <el-form-item label="事件类型" prop="PLANGRADE"> + <el-checkbox-group v-model="checkList" disabled> + <el-checkbox label="1">危化品事故</el-checkbox> + <el-checkbox label="2">爆炸</el-checkbox> + <el-checkbox label="3">火灾</el-checkbox> + <el-checkbox label="4">水灾</el-checkbox> + <el-checkbox label="5">其他</el-checkbox> + </el-checkbox-group> + + </el-form-item> + </el-row> + <el-row :gutter="15"> + <el-col :span="8"> + <el-form-item :key="form.LON" label="经度" prop="LON"> + <el-input v-model="form.LON" placeholder="请输入内容" disabled @focus="handleMap" /> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item :key="form.LAT" label="纬度" prop="LAT"> + <div style="display: flex"> + <el-input v-model="form.LAT" placeholder="请输入内容" disabled style="width: 100%" @focus="handleMap"/> + <el-button style="margin-left:10px" @click="handleMap"> + <span class="svg-container"> + <svg-icon icon-class="international" /> + </span> + </el-button> + </div> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="15"> + + <el-col :span="15"> + <el-form-item label="预案概述" prop="PLANDES"> + <el-input v-model="form.PLANDES" type="textarea" placeholder="请输入预案概述..." disabled/> + </el-form-item> + </el-col> + </el-row> + + <el-row :gutter="15"> + <el-col :span="15"> + <el-form-item label="备注信息" prop="BZ"> + <el-input v-model="form.BZ" type="textarea" placeholder="备注信息..." disabled/> + </el-form-item> + </el-col> + </el-row> + + </el-form> + + </el-tab-pane> + + <el-tab-pane v-if="PLAN_ID" label="分级响应" name="tow"> + <yingjizhuangjia :planid="PLAN_ID"/> + </el-tab-pane> + <el-tab-pane v-if="PLAN_ID" label="组织结构" name="three"> + <zuzhijiagou :planid="PLAN_ID"/> + </el-tab-pane> + <el-tab-pane v-if="PLAN_ID" label="预案资源" name="four"> + <yvanziyuan :planid="PLAN_ID"/> + </el-tab-pane> + <el-tab-pane v-if="PLAN_ID" label="预案指令" name="five"> + <yvanziling :planid="PLAN_ID" /> + </el-tab-pane> + <el-tab-pane v-if="PLAN_ID" label="预案文本" name="six"> + <yvanwenben :planid="PLAN_ID" :plan-name="planName" /> + </el-tab-pane> + <el-tab-pane v-if="PLAN_ID" label="预案附件" name="seven"> + <yvanfujian :planid="PLAN_ID" /> + </el-tab-pane> + </el-tabs> + </div> + </div> + <div class="ui-height" /> + <div class="ui-foot"> + <el-button type="primary" @click="goback">返回</el-button> + + <el-button type="primary" @click="shiyibu(0)">上一步</el-button> + <el-button type="primary" @click="xiayibu(1)" >下一步</el-button> + + </div> + + <!-- 坐标选择 --> + <el-dialog :visible.sync="dialogFormMap" title="编辑坐标" width="800px" class="dy-dialog"> + <baidu-map + v-ISLOADing="ISLOADingMap" + :zoom="zoom" + :scroll-wheel-zoom="true" + :style="{height: clientHeight+'px'}" + @click="getClickInfo" + @ready="handler"> + <bm-view style="width: 100%; height:100%; flex: 1" /> + <bm-control ref="control" :offset="{width: 10, height: 10}" anchor="BMAP_ANCHOR_TOP_LEFT"> + <div class="map-flex"> + + <div class="map-lable">关键词:</div> + <div style="flex:1;"> + <el-autocomplete v-model="TYPEKeyword" :fetch-suggestions="querySearch" :trigger-on-focus="false" placeholder="请输入详细设备类型" style="width:100%" @select="handleSelect" /> + </div> + <!-- <el-input v-model="TYPEKeyword" style="width: 200px" placeholder="请输入内容" />--> + <!-- <el-button slot="append" icon="el-icon-search" @click="mapNameChange"/>--> + </div> + </bm-control> + <!-- <bm-local-search :keyword="TYPEKeyword" :auto-viewport="true"/>--> + </baidu-map> + <div slot="footer" class="dialog-footer"> + <span>经度:</span> + <el-input v-model="LON" style="width: 200px" placeholder="请输入内容" disabled /> + <span>纬度:</span> + <el-input v-model="LAT" style="width: 200px" placeholder="请输入内容" disabled /> + <el-button @click="dialogFormMap = false">取 消</el-button> + <el-button type="primary" @click="setPosition">确 定</el-button> + </div> + </el-dialog> + + </div> + +</template> +<script> +import { requestFN } from '@/utils/request' +import { Treeselect } from '@riophae/vue-treeselect' + +import yingjizhuangjia from './yingjizhuangjia.vue' +import zuzhijiagou from './zuzhijiagou.vue' +import yvanziyuan from './yvanziyuan.vue' +import yvanziling from './yvanziling.vue' +import yvanwenben from './yvanwenben.vue' +import yvanfujian from './yvanfujian.vue' +import yjshenherenyuan from './yjshenherenyuan.vue' +export default { + components: { Treeselect, yingjizhuangjia, zuzhijiagou, yvanziyuan, yvanziling, yvanwenben, yvanfujian, yjshenherenyuan }, + data() { + return { + dialogFormshenhe: false, + // 地图相关 + CORPINFO_ID: this.$parent.CORPINFO_ID, + clientHeight: 600, + ISLOADingMap: true, + listISLOADing: false, + buttonISLOADing: false, + BMap: '', + map: '', + showMap: false, + TYPEKeyword: '', + pointLngLat: '', + zoom: 10, + dialogFormMap: false, + LAT: '', + LON: '', + // 复选框 + checkList: [], + + form: { + LAT: '', + LON: '' + }, + activeName: 'first', + // 预案类型 + yhtypelistthree: [], + normalizer(node) { + return { + id: node.DICTIONARIES_ID, + label: node.name, + children: node.nodes + } + }, + // 预案等级 + yhPLANGRADEthree: [ + { id: 1, label: '一级预案' }, + { id: 2, label: '二级预案' } + ], + PLAN_ID: '', + planName: '' + } + }, + created() { + if (this.$parent.CASE_ID) { + this.PLAN_ID = this.$parent.CASE_ID + // 获取详情 + this.getDetail(this.PLAN_ID) + } + this.getYaTypeDataList() + }, + methods: { + yjwenancheck(id) { + console.log(id) + const params = { + FIRERESERVEPLAN_ID: this.PLAN_ID, + CHECKSTATUS: '1', + AUDIT_UESRID: id + } + requestFN('/major/emergencyplan/submitCheck', params).then((data) => { + this.$message({ + message: '提交成功', + type: 'success' + }) + setTimeout(() => { + this.dialogFormshenhe = false + this.$parent.activeName = 'list' + this.$parent.huidiao() + }, 500) + }).catch((e) => { + + }) + }, + closeDialog() { + this.dialogFormshenhe = false + }, + tijiaoshenhe() { + this.dialogFormshenhe = true + }, + //* **************地图相关***************** + // 地图相关 + mapOpen() { + this.top = this.getScrollTop() + if (this.top) { + this.setScrollTop(0) + } + }, + // 关闭地图后调用 + mapClose() { + this.setScrollTop(this.top) + this.top = 0 + this.showMap = false + }, + getScrollTop() { + let scrollTop = 0 + if (document.documentElement && document.documentElement.scrollTop) { + scrollTop = document.documentElement.scrollTop + } else if (document.body) { + scrollTop = document.body.scrollTop + } + return scrollTop + }, + setScrollTop(top) { + if (!isNaN(top)) { + if (document.documentElement && document.documentElement.scrollTop !== undefined) { + document.documentElement.scrollTop = top + } else if (document.body) { + document.body.scrollTop = top + } + } + }, + // 地图初始化 + handler({ BMap, map }) { + this.mapOpen() + this.BMap = BMap + this.map = map + this.ISLOADingMap = true + var geolocation = new BMap.Geolocation() + const myGeo = new BMap.Geocoder() + var $this = this + // 调用百度地图api 中的获取当前位置接口 + geolocation.getCurrentPosition(function(r) { + myGeo.getLocation(new BMap.Point(r.point.lng, r.point.lat), function(result) { + if (result) { + $this.ISLOADingMap = false + $this.$set($this, 'pointLngLat', { lng: result.point.lng, lat: result.point.lat }) + map.enableScrollWheelZoom(true) // 开启鼠标滚轮缩放,默认关闭 + $this.setCenter({ BMap, map }) + } + }) + }) + }, + // 搜索地图 + querySearch(queryString, cb) { + var options = { + onSearchComplete: function(results) { + if (local.getStatus() === 0) { + // 判断状态是否正确 + var s = [] + for (var i = 0; i < results.getCurrentNumPois(); i++) { + var x = results.getPoi(i) + var item = { value: x.TYPE + x.title, point: x.point } + s.push(item) + cb(s) + } + } else { + cb() + } + } + } + var local = new this.BMap.LocalSearch(this.map, options) + local.search(queryString) + }, + handleSelect(item) { + var { point } = item + this.map.clearOverlays() // 清除地图上所有覆盖物 + this.map.centerAndZoom(point, this.zoom) + const marker = new this.BMap.Marker(point) // 创建标注 + this.map.addOverlay(marker) // 将标注添加到地图中 + marker.enableDragging() // 可拖拽 + this.LON = point.lng + this.LAT = point.lat + }, + // 设置打开中心位置 + setCenter({ BMap, map }) { + var lng = '' + var lat = '' + if (this.form.LON == '' || this.form.LAT == '') { + lng = '119.525971' + lat = '39.894727' + } else { + lng = this.form.LON + lat = this.form.LAT + } + var point = new BMap.Point(lng, lat) + // var point = new BMap.Point(this.form.LON, this.form.LAT) + const zoom = map.getZoom() + setTimeout(() => { + map.centerAndZoom(point, zoom) + }, 0) + // var marker = new BMap.Marker(point) // 创建标注 + // map.addOverlay(marker) // 将标注添加到地图中 + }, + handleMap() { + this.dialogFormMap = true + this.LAT = this.form.LAT + this.LON = this.form.LON + }, + getClickInfo(e) { + this.LON = e.point.lng + this.LAT = e.point.lat + }, + setPosition() { + this.dialogFormMap = false + this.form.LAT = this.LAT + this.form.LON = this.LON + }, + //* *********************************** + + getDetail(id) { + const params = { + Id: id + } + requestFN('/major/emergencyplan/detail', params).then((response) => { + const data = response.data + console.log(data) + this.planName = data.PLANNAME + this.form = { + + FIRERESERVEPLAN_ID: data.FIRERESERVEPLAN_ID, + + PLANNAME: data.PLANNAME, + + PLANDES: data.PLANDES, + + PLANTYPE: data.PLANTYPE, + + KEYPLACES_ID: data.KEYPLACES_ID, + + BZ: data.BZ, + + LON: data.LON, + + LAT: data.LAT, + + EVENTTYPE: data.EVENTTYPE, + + PLANCODE: data.PLANCODE, + + PLANGRADE: data.PLANGRADE + + } + this.checkList = data.EVENTTYPE.split(',') + }).catch((e) => { + console.error('获取详情数据失败', e) + }) + }, + //* ***********组件查询***************************** + // 预案类型 + getYaTypeDataList() { + const params = { + PARENT_ID: '0e20515f3aea4214b2fcfeb4b0bb054c' + } + requestFN('/dictionaries/listTree', params).then((data) => { + this.yhtypelistthree = JSON.parse(data.zTreeNodes) + }).catch((e) => { + console.error('获取树形数据失败', e) + }) + }, + + saveData(type) { + this.listISLOADing = true + if (this.PLAN_ID) { + this.form.FIRERESERVEPLAN_ID = this.PLAN_ID + } + this.planName = this.form.PLANNAME + this.form.EVENTTYPE = this.checkList.join(',') + requestFN( + '/major/emergencyplan/save', this.form + ).then((data) => { + this.listISLOADing = false + + this.PLAN_ID = data.data + this.activeName = 'tow' + if (type === 0) { + this.$parent.activeName = 'list' + this.$parent.huidiao() + } + // + }).catch((e) => { + this.listISLOADing = false + }) + }, + + handleClick(tab, event) { + + /* if (tab.index == 1) { + + } else if (tab.index == 2) { + + }*/ + }, + shiyibu() { + if (this.activeName === 'tow') { + this.activeName = 'first' + } else if (this.activeName === 'three') { + this.activeName = 'tow' + } else if (this.activeName === 'four') { + this.activeName = 'three' + } else if (this.activeName === 'five') { + this.activeName = 'four' + } else if (this.activeName === 'six') { + this.activeName = 'five' + } else if (this.activeName === 'seven') { + this.activeName = 'six' + } + }, + xiayibu() { + if (this.activeName === 'first') { + this.activeName = 'tow' + } else if (this.activeName === 'tow') { + this.activeName = 'three' + } else if (this.activeName === 'three') { + this.activeName = 'four' + } else if (this.activeName === 'four') { + this.activeName = 'five' + } else if (this.activeName === 'five') { + this.activeName = 'six' + } else if (this.activeName === 'six') { + this.activeName = 'seven' + } + }, + goback() { + this.$parent.activeName = 'list' + this.$parent.huidiao() + } + + } +} +</script> +<style lang="sass" scoped> +.table-ui + td + line-height: 34px + .tbg + width: 200px +.ui-foot + text-align: center + margin-top: 20px +</style> diff --git a/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/list.vue b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/list.vue new file mode 100644 index 0000000..c98b453 --- /dev/null +++ b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/list.vue @@ -0,0 +1,235 @@ +<template> + <div class="app-container"> + <div class="filter-container"> + <el-input v-model="KEYWORDS" placeholder="搜索" class="filter-item" style="width: 200px;" /> + <el-button class="filter-item" type="primary" icon="el-icon-search" @click="getQuery"> + 搜索 + </el-button> + </div> + <el-table ref="multipleTable" :data="varList" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column type="index" label="序号" width="50" align="center" /> + <el-table-column prop="PLANNAME" label="预案名称" width="180" /> + <el-table-column prop="PLANCODE" label="预案编码" /> + <el-table-column :show-overflow-tooltip="true" prop="PLANDES" label="预案概述" /> + <el-table-column prop="AUDIT_STATUS" label="审核状态" > + <template slot-scope="{row}"> + {{ docheck(row.AUDIT_STATUS) }} + </template> + </el-table-column> + <el-table-column label="操作" align="center" width="300"> + <template slot-scope="{row}"> + <el-button plain icon="el-icon-document" @click="doDetail(row.FIRERESERVEPLAN_ID)">查看</el-button> + <el-button type="primary" icon="el-icon-thumb" size="mini" @click="handleCheck(row.FIRERESERVEPLAN_ID)">审核</el-button> + </template> + </el-table-column> + </el-table> + <div class="page-btn-group"> + <div/> + <pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" /> + </div> + + <el-dialog :visible.sync="dialogFormCheck" title="审核" width="400px" class="dy-dialog"> + <div style="height:150px"> + <div style="height: 20px"/> + <el-row :gutter="20" type="flex" class="row-bg" justify="center"> + <el-col :span="18"> <Treeselect + :options="FILESTATUSThree" + v-model="AUDIT_STATUS" + placeholder="请选择预案类型" + no-options-text="暂无数据" + no-children-text="暂无数据" + /></el-col> + + </el-row> + </div> + <div slot="footer" class="dialog-footer"> + <el-button @click="dialogFormCheck = false">取 消</el-button> + <el-button type="primary" @click="setCheck">确 定</el-button> + </div> + </el-dialog> + + </div> +</template> + +<script> +import Pagination from '@/components/Pagination' +import { requestFN } from '@/utils/request' + +export default { + components: { Pagination }, + data() { + return { + dialogFormCheck: false, + FILESTATUSThree: [ + + { id: 2, label: '审核通过' }, + { id: 3, label: '不通过' } + + ], + + AUDIT_STATUS: 2, + + listQuery: { + page: 1, + limit: 10 + }, + total: 0, + varList: [], + KEYWORDS: '', + + FIRERESERVEPLAN_ID: '' + } + }, + created() { + this.getList() + }, + methods: { + doDetail(id) { + this.$parent.activeName = 'addfrom' + this.$parent.CASE_ID = id + }, + setCheck() { + this.listISLOADing = true + requestFN( + '/major/emergencyplan/check', + { + CHECKSTATUS: this.AUDIT_STATUS, + FIRERESERVEPLAN_ID: this.FIRERESERVEPLAN_ID + } + ).then((data) => { + this.listISLOADing = false + this.dialogFormCheck = false + this.$message({ + message: '审核成功', + type: 'success' + }) + setTimeout(() => { + this.getList() + }, 500) + }) + }, + handleCheck(id) { + this.FIRERESERVEPLAN_ID = id + this.dialogFormCheck = true + }, + docheck(status) { + let mess = '未审核' + if (status === '0') { + mess = '未审核' + } else if (status === '1') { + mess = '待审核' + } else if (status === '2') { + mess = '审核通过' + } else if (status === '3') { + mess = '未通过' + } + return mess + }, + //* *********************************** + goList(page, CASE_ID, ticketType) { + this.$parent.activeName = page + this.$parent.CASE_ID = CASE_ID + this.$parent.ticketType = ticketType + }, + + //* *******************列表查询****************************** + + getList() { + this.listISLOADing = true + requestFN( + '/major/emergencyplan/list?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page, + { + AUDIT_STATUS: '1' + } + ).then((data) => { + this.listISLOADing = false + this.varList = data.varList + this.total = data.page.totalResult + }) + .catch((e) => { + this.listISLOADing = false + }) + }, + //* ***************************数据保存********************************** + handleEdit(id) { + this.$parent.activeName = 'addfrom' + this.$parent.CASE_ID = id + }, + + handleAdd() { + this.$parent.activeName = 'addfrom' + this.$parent.CASE_ID = '' + }, + + //* *****************************删除******************************** + handleDelete(id, name) { + this.$confirm('确定要删除[' + name + ']吗?', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + this.listISLOADing = true + requestFN( + '/major/emergencyplan/delete', + { + id: id + } + ).then((data) => { + if (data.result == 'success') { + this.listISLOADing = false + this.getList() + } + }).catch((e) => { + this.listISLOADing = false + }) + }).catch(() => { + }) + }, + makeAll() { + const _selectData = this.$refs.multipleTable.selection + console.info('_selectData') + console.info(_selectData) + if (_selectData == null || _selectData.length == 0) { + this.$message({ + message: '请选中要删除的项...', + type: 'error' + }) + return false + } + const ids = _selectData.map((item, index) => { + return item.ID + }).join(',') + + this.$confirm('确定要删除选中的数据吗?', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + this.listISLOADing = true + requestFN( + '/major/emergencyplan/deleteAll', + { + ids: ids + } + ).then(() => { + this.listISLOADing = false + this.varList = [] + this.listQuery.page = 1 + this.$refs.multipleTable.clearSelection() + this.getList() + }).catch((e) => { + this.listISLOADing = false + }) + }).catch(() => { + }) + }, + getQuery() { + this.$refs.multipleTable.clearSelection() + this.getList() + } + + } +} +</script> + diff --git a/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/yingjizhuangjia.vue b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/yingjizhuangjia.vue new file mode 100644 index 0000000..0d0605a --- /dev/null +++ b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/yingjizhuangjia.vue @@ -0,0 +1,154 @@ + +<template> + <div> + <div class="filter-container"> + <!-- <el-button class="filter-item" type="primary" icon="el-icon-plus" @click="yjzjadd"> + 添加 + </el-button>--> + </div> + <el-table ref="multipleTable" :data="yjzjvarList" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row> + + <el-table-column prop="HIERARCHICALNAME" label="分级名称" width="180" /> + <el-table-column prop="HIERARCHICALDES" label="分级描述" /> + <el-table-column prop="BZ" label="备注信息" /> + <!-- <el-table-column prop="MOBILE_PHONE" label="移动电话" />--> + <!-- <el-table-column label="操作" align="center" width="300"> + <template slot-scope="{row}"> + <el-button type="danger" icon="el-icon-delete" size="mini" @click="deletezhuangjiaPeople(row)">删除</el-button> + <el-button type="primary" icon="el-icon-setting" size="mini" @click="updatezhuangjiaPeople(row)">编辑</el-button> + </template> + </el-table-column>--> + </el-table> + <div class="page-btn-group"> + <div/> + <pagination :total="yjzhuangjiatotal" :page.sync="listQueryzj.page" :limit.sync="listQueryzj.limit" @pagination="getPlanexpertList" /> + </div> + + <el-dialog :visible.sync="dialogzhuangjiaShow" title="分级响应" width="600px" @close="closeDialog('ruleForm')"> + <el-form ref="form" :model="zhuangjiafrom" label-width="110px" style="width: 500px;"> + + <el-form-item label="分级名称" prop="HIERARCHICALNAME"> + <el-input v-model="zhuangjiafrom.HIERARCHICALNAME" placeholder="这里分级名称..." /> + </el-form-item> + <el-form-item label="分级描述" prop="HIERARCHICALDES"> + <el-input + v-model="zhuangjiafrom.HIERARCHICALDES" + :rows="6" + type="textarea" + placeholder="请分级描述"/> + </el-form-item> + <el-form-item label="备注信息" prop="BZ"> + <el-input + v-model="zhuangjiafrom.BZ" + :rows="6" + type="textarea" + placeholder="请备注信息"/> + </el-form-item> + + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="dialogzhuangjiaShow = false">取 消</el-button> + <el-button type="primary" @click="confirm">确 定</el-button> + </div> + </el-dialog> + </div> + +</template> +<script> +import { requestFN } from '@/utils/request' +import Pagination from '@/components/Pagination' +export default { + name: 'Yingjizhuangjia', + components: { Pagination }, + props: { + planid: { + type: String, + default() { + return '' + } } + }, + data() { + return { + zhuangjiatotal: 0, + zhuangjianame: '', + dialogzhuangjiaShow: false, + yjzjvarList: [], + yjzhuangjiatotal: [], + zhuanjiaList: [], + listQueryzj: { + page: 1, + limit: 20 + }, + zhuangjiafrom: { + + }, + listISLOADing: false + } + }, + created() { + console.log(this.planid) + this.getPlanexpertList() + }, + methods: { + closeDialog() { + this.dialogzhuangjiaShow = false + }, + + confirm() { + this.zhuangjiafrom.FIRERESERVEPLAN_ID = this.planid + + this.listISLOADing = true + requestFN( + '/plan/fractional/save', this.zhuangjiafrom + ).then((data) => { + this.$message({ + message: '添加成功', + type: 'success' + }) + this.dialogzhuangjiaShow = false + this.listISLOADing = false + this.getPlanexpertList() + }).catch((e) => { + this.listISLOADing = false + }) + }, + yjzjadd() { + this.dialogzhuangjiaShow = true + this.zhuangjiafrom = {} + }, + updatezhuangjiaPeople(row) { + this.dialogzhuangjiaShow = true + this.zhuangjiafrom = { + HIERARCHICALRESPONSE_ID: row.HIERARCHICALRESPONSE_ID, + HIERARCHICALNAME: row.HIERARCHICALNAME, + HIERARCHICALDES: row.HIERARCHICALDES, + BZ: row.BZ + } + }, + // 获取应急预案分级响应 + getPlanexpertList() { + this.listISLOADing = true + requestFN( + '/plan/fractional/list?showCount=50' + '¤tPage=1', + { + name: this.KEYWORDS, + FIRERESERVEPLAN_ID: this.planid, + TYPE: '1' + } + ).then((data) => { + this.listISLOADing = false + this.yjzjvarList = data.varList + this.yjzhuangjiatotal = data.page.totalResult + }) + .catch((e) => { + this.listISLOADing = false + }) + } + + } +} +</script> + +<style lang="scss"> +</style> + diff --git a/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/yjshenherenyuan.vue b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/yjshenherenyuan.vue new file mode 100644 index 0000000..23d3995 --- /dev/null +++ b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/yjshenherenyuan.vue @@ -0,0 +1,194 @@ + +<template> + <div class="icons-container"> + + <el-container style="height: 500px"> + <el-aside width="300px" style="background-color:#fff"> + <el-input + v-model="filterText" + placeholder="输入关键字进行过滤" + style="margin:10px 0"/> + <el-tree + v-loading="treeLoading" + ref="tree" + :data="treeData" + :props="defaultProps" + :filter-node-method="filterNode" + class="filter-tree" + @node-click="handleNodeClick" + /> + </el-aside> + <el-main> + <el-form label-width="60px"> + <el-row> + <el-col :span="6"> + <el-form-item label="用户名"> + <el-input v-model="KEYWORDS" style="width: 150px" placeholder="请输入关键字"/> + </el-form-item> + </el-col> + + <el-col :span="12" style="text-align: right"> + <el-form-item label-width="10px"> + <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery"> + 搜索 + </el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + <el-table + v-loading="listLoading" + ref="multipleTable" + :data="varList" + :row-key="getRowKey" + :header-cell-style="{'font-weight': 'bold','color': '#000'}" + tooltip-effect="dark" + border + fit + highlight-current-row> + + <el-table-column type="index" label="序号" width="50" align="center" /> + <el-table-column prop="USERNAME" label="用户名" /> + <el-table-column prop="NAME" label="姓名" /> + <!-- <el-table-column prop="PID_NAME" label="上级部门" />--> + + <el-table-column label="操作" width="80px"> + <template slot-scope="{row}"> + <el-button type="primary" size="mini" @click="isChoose(row.USER_ID)">选择</el-button> + </template> + </el-table-column> + </el-table> + <div class="page-btn-group"> + + <pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList(USER_ID)" /> + </div> + </el-main> + </el-container> + </div> + +</template> +<script> +import { requestFN } from '@/utils/request' +import Pagination from '@/components/Pagination' + +export default { + name: 'Yingjizhuangjia', + components: { Pagination }, + props: { + planid: { + type: String, + default() { + return '' + } } + }, + data() { + return { + defaultProps: { + value: 'id', + children: 'nodes', + label: 'name' + }, + treeData: [], + dayTime: [], + dialogFormEditDate: false, + SchedulingFrom: false, + listLoading: true, + treeLoading: false, + add: false, + del: false, + edit: false, + listQuery: { + page: 1, + limit: 6 + }, + filterText: '', + total: 0, + KEYWORDS: '', + SHIFTDUTYONE: '', + SHIFTDUTYTWO: '', + IS_HAZARDCONFIRMER: '', + selectPeriod: [], + periodList: [], + DEPARTMENT_ID: '', + varList: [], + multipleSelectionAll: [], // 所有选中的数据包含跨页数据 + multipleSelection: [], // 当前页选中的数据 + dialogFormEdit: false, + dialogType: 'saveUser', + disabledLCSelect: false, + displayLCSelect: 'display: block', + disabledLCInput: true, + displayLCInput: 'display: none', + LearnerCategoryList: [] + } + }, + watch: { + filterText(val) { + this.$refs.tree.filter(val) + } + }, + created() { + console.log(this.planid) + this.getTreeList() + this.getList() + }, + methods: { + isChoose(id) { + this.$emit('yjwenancheck', id) + }, + getQuery() { + this.getList() + }, + filterNode(value, data) { + if (!value) return true + return data.name.indexOf(value) !== -1 + }, + handleNodeClick(node, data, value) { + this.getList(node.id) + }, + getTreeList() { + this.treeLoading = true + requestFN( + '/department/listTree', + {} + ).then((data) => { + this.treeLoading = false + this.treeData = JSON.parse(data.zTreeNodes) + }).catch((e) => { + this.treeLoading = false + }) + }, + getRowKey(row) { + return row.USER_ID + }, + getList(DEPARTMENT_ID) { + this.listLoading = true + if (DEPARTMENT_ID) { + this.DEPARTMENT_ID = DEPARTMENT_ID + } + requestFN( + '/user/list?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page, + { + KEYWORDS: this.KEYWORDS, + DEPARTMENT_ID: this.DEPARTMENT_ID, + SHIFTDUTYONE: this.SHIFTDUTYONE, + SHIFTDUTYTWO: this.SHIFTDUTYTWO, + IS_HAZARDCONFIRMER: this.IS_HAZARDCONFIRMER, + USER_ID: this.USER_ID + } + ).then((data) => { + this.listLoading = false + this.varList = data.userList + this.total = data.page.totalResult + }).catch((e) => { + this.listLoading = false + }) + } + + } +} +</script> + +<style lang="scss"> +</style> + diff --git a/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/yvanfujian.vue b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/yvanfujian.vue new file mode 100644 index 0000000..a777e0d --- /dev/null +++ b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/yvanfujian.vue @@ -0,0 +1,252 @@ + +<template> + <div> + <div class="filter-container"/> + <el-table ref="multipleTable" :data="yjzjvarList" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row> + + <el-table-column prop="FILENAME" label="文件名称" width="180" /> + <el-table-column prop="BZ" label="备注" /> + <el-table-column prop="createTimeStr" label="维护日期" /> + <el-table-column prop="FILEURL" width="180" align="center" label="附件" > + <template v-if="row.FILEURL" slot-scope="{row}"> + <el-button type="primary" icon="el-icon-down" size="mini" @click="download(row)">下载</el-button> + </template> + </el-table-column> + + </el-table> + <div class="page-btn-group"> + <div/> + <pagination :total="yjzhuangjiatotal" :page.sync="listQueryzj.page" :limit.sync="listQueryzj.limit" @pagination="getDataList" /> + </div> + + <el-dialog :visible.sync="dialogzhuangjiaShow" title="预案附件" width="600px" @close="closeDialog('ruleForm')"> + <el-form ref="form" :model="fujianfrom" label-width="110px" style="width: 500px;"> + <el-form-item label="文件名称" prop="FILENAME"> + <el-input + v-model="fujianfrom.FILENAME" + + placeholder="文件名称"/> + </el-form-item> + + <el-form-item label="附件类型" prop="fujianfrom.FILETYPE"> + <Treeselect + :options="FILETYPEThree" + v-model="fujianfrom.FILETYPE" + placeholder="请选择预案类型" + no-options-text="暂无数据" + no-children-text="暂无数据" + /> + </el-form-item> + + <el-form-item label="备注" prop="BZ"> + <el-input + v-model="fujianfrom.BZ" + :rows="3" + type="textarea" + placeholder="备注"/> + </el-form-item> + + <el-form-item label="附件地址"> + <el-upload + ref="upload" + :on-change="handleEditChange" + :on-remove="handleRemove" + :auto-upload="false" + :limit="1" + action="#" > + <el-button size="small" type="primary">点击上传</el-button> + </el-upload> + </el-form-item> + + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="dialogzhuangjiaShow = false">取 消</el-button> + <el-button type="primary" @click="confirm">确 定</el-button> + </div> + </el-dialog> + + </div> + +</template> +<script> +import { requestFN } from '@/utils/request' +import Pagination from '@/components/Pagination' +import { upload } from '@/utils/upload' +export default { + name: 'Yingjizhuangjia', + components: { Pagination }, + props: { + planid: { + type: String, + default() { + return '' + } } + }, + data() { + return { + + zhuangjiatotal: 0, + zhuangjianame: '', + dialogzhuangjiaShow: false, + yjzjvarList: [], + yjzhuangjiatotal: 0, + zhuanjiaList: [], + listQueryzj: { + page: 1, + limit: 20 + }, + fujianfrom: { + + }, + FFILE: [], + FILETYPEThree: [ + { id: 1, label: '预案视频' }, + { id: 2, label: '通讯录' }, + { id: 3, label: '组织机构' }, + { id: 4, label: '建筑平面图' }, + { id: 5, label: '其他' }, + { id: 6, label: '预案电子档案' }, + { id: 7, label: '指挥平面图' }, + { id: 8, label: '应急资源' } + ], + downloadUrl: '' + } + }, + created() { + console.log(this.planid) + this.getDataList() + }, + methods: { + //* ************************下载********************** + download(obj) { + this.$confirm('确定要下载此文件吗?', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + this.downloadUrl = config.fileUrl + obj.FILEURL + const _this = this + setTimeout(function() { + window.open(_this.downloadUrl) + }, 200) + }).catch(() => { + }) + }, + // **********************文件上传********************* + handleEditChange(file) { + file.MATERIALS_ID = Math.random() + const is5M = file.size / 1024 / 1024 < 5 + if (is5M) this.FFILE.push(file) + }, + handleRemove(file, fileList) { + this.FFILE = fileList + }, + upload(fun) { + const formData = new FormData() + + for (let i = 0; i < this.FFILE.length; i++) { + if (this.FFILE[i].raw) { + formData.append('FFILE', this.FFILE[i].raw) + } + } + upload( + '/file/upload', + formData + ).then((data) => { + fun(data.fileurl) + }).catch((e) => { + }) + }, + //* *********************************** + + closeDialog() { + this.dialogzhuangjiaShow = false + }, + deletePlanningfile(row) { + this.listISLOADing = true + requestFN( + '/plan/planplanningfile/delete', { id: row.PLANNINGFILE_ID } + ).then((data) => { + this.$message({ + message: '移除成功', + type: 'success' + }) + + this.listISLOADing = false + this.getDataList() + }).catch((e) => { + this.listISLOADing = false + }) + }, + confirm() { + if (this.FFILE.length > 0) { + this.upload((v) => { + this.fujianfrom.FILEURL = v + this.$refs.upload.clearFiles() + this.dataSave() + }) + } else { + this.dataSave() + } + }, + dataSave() { + this.fujianfrom.FIRERESERVEPLAN_ID = this.planid + + this.listISLOADing = true + requestFN( + '/plan/planplanningfile/save', this.fujianfrom + ).then((data) => { + this.$message({ + message: '添加成功', + type: 'success' + }) + this.dialogzhuangjiaShow = false + this.listISLOADing = false + this.getDataList() + }).catch((e) => { + this.listISLOADing = false + }) + }, + yjzjadd() { + this.dialogzhuangjiaShow = true + this.fujianfrom = { + LAT: '', + LON: '' + } + }, + updatePlanningfile(row) { + this.dialogzhuangjiaShow = true + this.fujianfrom = { + PLANNINGFILE_ID: row.PLANNINGFILE_ID, + FILETYPE: row.FILETYPE, + FILENAME: row.FILENAME, + BZ: row.BZ + } + }, + // 获取预案附件 + getDataList() { + this.listISLOADing = true + requestFN( + '/plan/planplanningfile/list?showCount=50' + '¤tPage=1', + { + name: this.KEYWORDS, + FIRERESERVEPLAN_ID: this.planid, + TYPE: '1' + } + ).then((data) => { + this.listISLOADing = false + this.yjzjvarList = data.varList + this.yjzhuangjiatotal = data.page.totalResult + }) + .catch((e) => { + this.listISLOADing = false + }) + } + + } +} +</script> + +<style lang="scss"> +</style> + diff --git a/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/yvanwenben.vue b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/yvanwenben.vue new file mode 100644 index 0000000..fbae549 --- /dev/null +++ b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/yvanwenben.vue @@ -0,0 +1,111 @@ + +<template> + <div> + <el-form ref="form" label-width="180px"> + <el-row :gutter="20"> + <el-col :span="4" > + <el-form-item /> + </el-col> + <el-col :span="8"> + <el-form-item label="预案名称:" > + {{ planName }} + </el-form-item> + </el-col> + + </el-row> + <el-row :gutter="20"> + <el-col :span="4" > + <el-form-item /> + </el-col> + <el-col :span="8"> + <el-form-item label="预案文本" prop="PLANNINGTEXT"> + <el-input v-model="zhuangjiafrom.PLANNINGTEXT" :rows="6" type="textarea" placeholder="预案文本..." disabled /> + </el-form-item> + </el-col> + </el-row> + + </el-form> + + </div> + +</template> +<script> +import { requestFN } from '@/utils/request' +export default { + name: 'Yvanwenb', + components: { }, + props: { + planid: { + type: String, + default() { + return '' + } + }, + planName: { + type: String, + default() { + return '' + } + } + }, + data() { + return { + zhuangjiafrom: { 'PLANNINGTEXT': '' }, + listISLOADing: false + } + }, + created() { + this.getDataList() + }, + methods: { + + //* *********************************** + + confirm() { + this.zhuangjiafrom.FIRERESERVEPLAN_ID = this.planid + + this.listISLOADing = true + requestFN( + '/plan/planningtext/save', this.zhuangjiafrom + ).then((data) => { + this.$message({ + message: '添加成功', + type: 'success' + }) + this.listISLOADing = false + this.getDataList() + }).catch((e) => { + this.listISLOADing = false + }) + }, + + // 获取预案资源 + getDataList() { + this.listISLOADing = true + requestFN( + '/plan/planningtext/getDetail', + { + + planId: this.planid + + } + ).then((data) => { + this.listISLOADing = false + + if (data.data.FIRERESERVEPLAN_ID) { + this.zhuangjiafrom.PLANNINGTEXT = data.data.PLANNINGTEXT + this.zhuangjiafrom.PLANNINGTEXT_ID = data.data.PLANNINGTEXT_ID + } + }) + .catch((e) => { + this.listISLOADing = false + }) + } + + } +} +</script> + +<style lang="scss"> +</style> + diff --git a/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/yvanziling.vue b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/yvanziling.vue new file mode 100644 index 0000000..0ae4fbe --- /dev/null +++ b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/yvanziling.vue @@ -0,0 +1,328 @@ + +<template> + <div> + + <!-- <el-col :span="13" class="bianxian"> + <el-form ref="form" :model="yvanzhilingfrom" label-width="110px" > + + <el-row :gutter="20"> + <el-col :span="19"> <el-form-item label="相关资源" /></el-col> + + <el-col :span="2"> + <div class="filter-container"/> + </el-col> + </el-row> + + </el-form> + + <el-table ref="multipleTable" :data="yjzhilinglinshiList" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row> + + <el-table-column prop="RESOURCETYPE" label="类型" width="180" /> + <el-table-column prop="RESOURCENAME" label="资源名称" /> + <el-table-column prop="LINKMPHONE" label="联系电话" /> + <el-table-column prop="URGENTLINKPHONE" label="紧急联系电话" /> + + </el-table> + <div style="height: 20px"/> + + </el-col>--> + + <div class="filter-container"/> + <el-table ref="multipleTable" :data="yjzjvarList" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row> + + <el-table-column type="index" label="序号" width="50" align="center" /> + <el-table-column prop="HIERARCHICALRESPONSE_NAME" label="响应级别" /> + <el-table-column prop="DIRECTIVECONTENT" width="1000" label="指令内容" /> + + </el-table> + <div class="page-btn-group"> + <div/> + <pagination :total="yjzhuangjiatotal" :page.sync="listQueryzj.page" :limit.sync="listQueryzj.limit" @pagination="getDataList" /> + </div> + + <el-dialog :visible.sync="dialogyjzlzyShow" title="相关资源" width="600px" > + <el-form ref="form" :model="zlxianghuanziyuanform" label-width="110px" style="width: 500px;"> + + <el-form-item label="资源名称" prop="RESOURCENAME"> + <el-input v-model="zlxianghuanziyuanform.RESOURCENAME" placeholder="资源名称..." /> + </el-form-item> + <el-form-item label="类型" prop="RESOURCETYPE"> + <el-input v-model="zlxianghuanziyuanform.RESOURCETYPE" placeholder="类型..." /> + + </el-form-item> + <el-form-item label="联系电话" prop="LINKMPHONE"> + <el-input v-model="zlxianghuanziyuanform.LINKMPHONE" placeholder="联系电话..." /> + </el-form-item> + + <el-form-item label="紧急联系电话" prop="URGENTLINKPHONE"> + <el-input v-model="zlxianghuanziyuanform.URGENTLINKPHONE" placeholder="紧急联系电话..." /> + </el-form-item> + + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="dialogyjzlzyShow = false">取 消</el-button> + <el-button type="primary" @click="confirmsave">确 定</el-button> + </div> + </el-dialog> + + </div> + +</template> +<script> +import { requestFN } from '@/utils/request' +import Pagination from '@/components/Pagination' +export default { + name: 'Yingjizhuangjia', + components: { Pagination }, + props: { + planid: { + type: String, + default() { + return '' + } } + }, + data() { + return { + checkList: [], + + zhuangjiatotal: 0, + zhuangjianame: '', + dialogzhuangjiaShow: false, + yjzjvarList: [], + yjzhuangjiatotal: 0, + zhuanjiaList: [], + listQueryzj: { + page: 1, + limit: 20 + }, + yvanzhilingfrom: { + }, + // 响应级别 + xiangyingjibeiList: [], + // 机构树形列表 + treeData: [], + // 应急指令临时集和 + yjzhilinglinshiList: [], + // 应急指令内容添加 + dialogyjzlzyShow: false, + // 指令相关资源 + zlxianghuanziyuanform: {} + } + }, + created() { + console.log(this.planid) + this.getDataList() + this.getForFractModule() + this.getTreeList() + }, + methods: { + //* *****************查询指令列表************** + updatezhiling(row) { + requestFN( + '/plan/planningdirectives/getDetail', + { + id: row.PLANNINGDIRECTIVES_ID + } + ).then((data) => { + this.loading = false + this.checkList = data.data.HIERARCHICALRESPONSE_ID.split(',') + // 回显数据 + this.yvanzhilingfrom = { + DIRECTIVECONTENT: data.data.DIRECTIVECONTENT, + EXECUTIVEBODY: data.data.EXECUTIVEBODY, + PLANNINGDIRECTIVES_ID: data.data.PLANNINGDIRECTIVES_ID + } + this.yjzhilinglinshiList = data.data.getResources + }).catch((e) => { + this.loading = false + }) + }, + // 删除指令 + makeAll() { + const _selectData = this.$refs.multipleTable.selection + + if (_selectData == null || _selectData.length == 0) { + this.$message({ + message: '请选中要删除的项...', + type: 'error' + }) + return false + } + const ids = _selectData.map((item, index) => { + return item.PLANNINGDIRECTIVES_ID + }).join(',') + + this.$confirm('确定要删除选中的数据吗?', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + this.loading = true + requestFN( + '/plan/planningdirectives/deleteAll', + { + ids: ids + } + ).then(() => { + this.loading = false + this.$refs.multipleTable.clearSelection() + this.getDataList() + }).catch((e) => { + this.loading = false + }) + }).catch(() => { + }) + }, + deletezhiling(row) { + this.loading = true + requestFN( + '/plan/planningdirectives/delete', { id: row.PLANNINGDIRECTIVES_ID } + ).then((data) => { + this.$message({ + message: '移除成功', + type: 'success' + }) + this.loading = false + this.getDataList() + }).catch((e) => { + this.loading = false + }) + }, + // 获取预案资源 + getDataList() { + this.loading = true + requestFN( + '/plan/planningdirectives/list?showCount=50' + '¤tPage=1', + { + name: this.KEYWORDS, + FIRERESERVEPLAN_ID: this.planid + } + ).then((data) => { + this.loading = false + this.yjzjvarList = data.varList + this.yjzhuangjiatotal = data.page.totalResult + }) + .catch((e) => { + this.loading = false + }) + }, + //* ***************保存指令************** + doreset() { + this.yvanzhilingfrom = {} + this.checkList = [] + this.yjzhilinglinshiList = [] + }, + confirmDatasave() { + this.yvanzhilingfrom.FIRERESERVEPLAN_ID = this.planid + this.yvanzhilingfrom.HIERARCHICALRESPONSE_ID = this.checkList.join(',') + + this.yvanzhilingfrom.listResources2 = this.yjzhilinglinshiList + this.loading = true + + if (this.yvanzhilingfrom.HIERARCHICALRESPONSE_ID === '') { + this.$message({ + message: '表单内容不能为空', + type: 'warning' + }) + return + } + if (this.yvanzhilingfrom.EXECUTIVEBODY) { + console.log('通过') + } else { + this.$message({ + message: '表单内容不能为空', + type: 'warning' + }) + return + } + if (this.yvanzhilingfrom.DIRECTIVECONTENT) { + console.log('通过') + } else { + this.$message({ + message: '表单内容不能为空', + type: 'warning' + }) + return + } + requestFN( + '/plan/planningdirectives/save', this.yvanzhilingfrom + ).then((data) => { + this.$message({ + message: '添加成功', + type: 'success' + }) + this.loading = false + this.doreset() + this.getDataList() + }).catch((e) => { + this.loading = false + }) + }, + //* ************添加应急指令相关资源************ + deleteyjzhilinglinshi(row) { + for (let i = 0; i < this.yjzhilinglinshiList.length; i++) { + if (this.yjzhilinglinshiList[i].id === row.id) { + this.yjzhilinglinshiList.splice(i) + i++ + break + } + } + }, + yjzhilingadd() { + this.zlxianghuanziyuanform = {} + this.dialogyjzlzyShow = true + }, + confirmsave() { + const form = { + RESOURCENAME: this.zlxianghuanziyuanform.RESOURCENAME, + RESOURCETYPE: this.zlxianghuanziyuanform.RESOURCETYPE, + LINKMPHONE: this.zlxianghuanziyuanform.LINKMPHONE, + URGENTLINKPHONE: this.zlxianghuanziyuanform.URGENTLINKPHONE, + id: this.yjzhilinglinshiList.length + 1 + } + this.yjzhilinglinshiList.push(form) + this.dialogyjzlzyShow = false + }, + //* *********获取应急机构树形列表******** + getTreeList() { + this.loading = true + requestFN( + '/plan/planningDepartment/getTreeForSelect', + { + FIRERESERVEPLAN_ID: this.planid, + proid: '0' + } + ).then((data) => { + this.loading = false + this.treeData = data.data + }).catch((e) => { + this.loading = false + }) + }, + //* *******获取响应级别************ + getForFractModule() { + this.loading = true + requestFN( + '/plan/fractional/getForFractModule', { planId: this.planid } + ).then((data) => { + this.xiangyingjibeiList = data.data + }).catch((e) => { + this.loading = false + }) + } + + //* *********************************** + + } +} +</script> + +<style lang="scss"> +.bianxian{ + border: 1px #d4d4d4 solid; + border-radius: 6px; + padding: 20px; + margin-left: 10px; +} +</style> + diff --git a/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/yvanziyuan.vue b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/yvanziyuan.vue new file mode 100644 index 0000000..75c9409 --- /dev/null +++ b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/yvanziyuan.vue @@ -0,0 +1,376 @@ + +<template> + <div> + <div class="filter-container"/> + <el-table ref="multipleTable" :data="yjzjvarList" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row> + + <el-table-column prop="RESOURCETYPES" label="资源类型" width="180" /> + <el-table-column prop="RESOURCENAME" label="资源名称" /> + <el-table-column prop="RESOURCEADDRESS" label="资源地址" /> + <el-table-column prop="RESOURCESNUMBER" label="资源数量" /> + <el-table-column prop="LINKMAN" label="联系人" /> + <el-table-column prop="LINKPHONE" label="电话" /> + + </el-table> + <div class="page-btn-group"> + <div/> + <pagination :total="yjzhuangjiatotal" :page.sync="listQueryzj.page" :limit.sync="listQueryzj.limit" @pagination="getDataList" /> + </div> + + <el-dialog :visible.sync="dialogzhuangjiaShow" title="预案资源" width="600px" @close="closeDialog('ruleForm')"> + <el-form ref="form" :model="zhuangjiafrom" label-width="110px" style="width: 500px;"> + + <el-form-item label="资源类型" prop="RESOURCETYPES"> + <el-input v-model="zhuangjiafrom.RESOURCETYPES" placeholder="资源类型..." /> + </el-form-item> + <el-form-item label="资源名称" prop="RESOURCENAME"> + <el-input v-model="zhuangjiafrom.RESOURCENAME" placeholder="资源名称..." /> + + </el-form-item> + <el-form-item label="资源地址" prop="RESOURCEADDRESS"> + <el-input v-model="zhuangjiafrom.RESOURCEADDRESS" placeholder="资源地址..." /> + </el-form-item> + + <el-form-item label="资源数量" prop="RESOURCESNUMBER"> + <el-input v-model="zhuangjiafrom.RESOURCESNUMBER" placeholder="资源数量..." /> + </el-form-item> + + <el-form-item label="联系人" prop="LINKMAN"> + <el-input v-model="zhuangjiafrom.LINKMAN" placeholder="联系人..." /> + </el-form-item> + + <el-form-item label="联系电话" prop="LINKPHONE"> + <el-input v-model="zhuangjiafrom.LINKPHONE" placeholder="联系电话..." /> + </el-form-item> + + <el-form-item label="资源描述" prop="RESOURCEDES"> + <el-input v-model="zhuangjiafrom.RESOURCEDES" placeholder="资源描述..." /> + </el-form-item> + + <el-form-item label="备注" prop="BZ"> + <el-input v-model="zhuangjiafrom.BZ" placeholder="备注..." /> + </el-form-item> + <el-row :gutter="32"> + <el-col :span="16"> + <el-form-item :key="zhuangjiafrom.LON" label="经度" prop="LON"> + <el-input v-model="zhuangjiafrom.LON" placeholder="请输入内容" disabled @focus="handleMap" /> + </el-form-item> + </el-col> + <el-col :span="16"> + <el-form-item :key="zhuangjiafrom.LAT" label="纬度" prop="LAT"> + <div style="display: flex"> + <el-input v-model="zhuangjiafrom.LAT" placeholder="请输入内容" disabled style="width: 100%" @focus="handleMap"/> + <el-button style="margin-left:10px" @click="handleMap"> + <span class="svg-container"> + <svg-icon icon-class="international" /> + </span> + </el-button> + </div> + </el-form-item> + </el-col> + </el-row> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="dialogzhuangjiaShow = false">取 消</el-button> + <el-button type="primary" @click="confirm">确 定</el-button> + </div> + </el-dialog> + + <!-- 坐标选择 --> + <el-dialog :visible.sync="dialogFormMap" title="编辑坐标" width="800px" class="dy-dialog"> + <baidu-map + v-ISLOADing="ISLOADingMap" + :zoom="zoom" + :scroll-wheel-zoom="true" + :style="{height: clientHeight+'px'}" + @click="getClickInfo" + @ready="handler"> + <bm-view style="width: 100%; height:100%; flex: 1" /> + <bm-control ref="control" :offset="{width: 10, height: 10}" anchor="BMAP_ANCHOR_TOP_LEFT"> + <div class="map-flex"> + + <div class="map-lable">关键词:</div> + <div style="flex:1;"> + <el-autocomplete v-model="TYPEKeyword" :fetch-suggestions="querySearch" :trigger-on-focus="false" placeholder="请输入详细设备类型" style="width:100%" @select="handleSelect" /> + </div> + <!-- <el-input v-model="TYPEKeyword" style="width: 200px" placeholder="请输入内容" />--> + <!-- <el-button slot="append" icon="el-icon-search" @click="mapNameChange"/>--> + </div> + </bm-control> + <!-- <bm-local-search :keyword="TYPEKeyword" :auto-viewport="true"/>--> + </baidu-map> + <div slot="footer" class="dialog-footer"> + <span>经度:</span> + <el-input v-model="LON" style="width: 200px" placeholder="请输入内容" disabled /> + <span>纬度:</span> + <el-input v-model="LAT" style="width: 200px" placeholder="请输入内容" disabled /> + <el-button @click="dialogFormMap = false">取 消</el-button> + <el-button type="primary" @click="setPosition">确 定</el-button> + </div> + </el-dialog> + + </div> + +</template> +<script> +import { requestFN } from '@/utils/request' +import Pagination from '@/components/Pagination' +export default { + name: 'Yingjizhuangjia', + components: { Pagination }, + props: { + planid: { + type: String, + default() { + return '' + } } + }, + data() { + return { + // 地图相关 + CORPINFO_ID: this.$parent.CORPINFO_ID, + clientHeight: 600, + ISLOADingMap: true, + listISLOADing: false, + buttonISLOADing: false, + BMap: '', + map: '', + showMap: false, + TYPEKeyword: '', + pointLngLat: '', + zoom: 10, + dialogFormMap: false, + LAT: '', + LON: '', + + zhuangjiatotal: 0, + zhuangjianame: '', + dialogzhuangjiaShow: false, + yjzjvarList: [], + yjzhuangjiatotal: 0, + zhuanjiaList: [], + listQueryzj: { + page: 1, + limit: 20 + }, + zhuangjiafrom: { + LAT: '', + LON: '' + + } + } + }, + created() { + console.log(this.planid) + this.getDataList() + }, + methods: { + //* **************地图相关***************** + // 地图相关 + mapOpen() { + this.top = this.getScrollTop() + if (this.top) { + this.setScrollTop(0) + } + }, + // 关闭地图后调用 + mapClose() { + this.setScrollTop(this.top) + this.top = 0 + this.showMap = false + }, + getScrollTop() { + let scrollTop = 0 + if (document.documentElement && document.documentElement.scrollTop) { + scrollTop = document.documentElement.scrollTop + } else if (document.body) { + scrollTop = document.body.scrollTop + } + return scrollTop + }, + setScrollTop(top) { + if (!isNaN(top)) { + if (document.documentElement && document.documentElement.scrollTop !== undefined) { + document.documentElement.scrollTop = top + } else if (document.body) { + document.body.scrollTop = top + } + } + }, + // 地图初始化 + handler({ BMap, map }) { + this.mapOpen() + this.BMap = BMap + this.map = map + this.ISLOADingMap = true + var geolocation = new BMap.Geolocation() + const myGeo = new BMap.Geocoder() + var $this = this + // 调用百度地图api 中的获取当前位置接口 + geolocation.getCurrentPosition(function(r) { + myGeo.getLocation(new BMap.Point(r.point.lng, r.point.lat), function(result) { + if (result) { + $this.ISLOADingMap = false + $this.$set($this, 'pointLngLat', { lng: result.point.lng, lat: result.point.lat }) + map.enableScrollWheelZoom(true) // 开启鼠标滚轮缩放,默认关闭 + $this.setCenter({ BMap, map }) + } + }) + }) + }, + // 搜索地图 + querySearch(queryString, cb) { + var options = { + onSearchComplete: function(results) { + if (local.getStatus() === 0) { + // 判断状态是否正确 + var s = [] + for (var i = 0; i < results.getCurrentNumPois(); i++) { + var x = results.getPoi(i) + var item = { value: x.TYPE + x.title, point: x.point } + s.push(item) + cb(s) + } + } else { + cb() + } + } + } + var local = new this.BMap.LocalSearch(this.map, options) + local.search(queryString) + }, + handleSelect(item) { + var { point } = item + this.map.clearOverlays() // 清除地图上所有覆盖物 + this.map.centerAndZoom(point, this.zoom) + const marker = new this.BMap.Marker(point) // 创建标注 + this.map.addOverlay(marker) // 将标注添加到地图中 + marker.enableDragging() // 可拖拽 + this.LON = point.lng + this.LAT = point.lat + }, + // 设置打开中心位置 + setCenter({ BMap, map }) { + var lng = '' + var lat = '' + if (this.zhuangjiafrom.LON == '' || this.zhuangjiafrom.LAT == '') { + lng = '119.525971' + lat = '39.894727' + } else { + lng = this.zhuangjiafrom.LON + lat = this.zhuangjiafrom.LAT + } + var point = new BMap.Point(lng, lat) + // var point = new BMap.Point(this.zhuangjiafrom.LON, this.zhuangjiafrom.LAT) + const zoom = map.getZoom() + setTimeout(() => { + map.centerAndZoom(point, zoom) + }, 0) + // var marker = new BMap.Marker(point) // 创建标注 + // map.addOverlay(marker) // 将标注添加到地图中 + }, + handleMap() { + this.dialogFormMap = true + this.LAT = this.zhuangjiafrom.LAT + this.LON = this.zhuangjiafrom.LON + }, + getClickInfo(e) { + this.LON = e.point.lng + this.LAT = e.point.lat + }, + setPosition() { + this.dialogFormMap = false + this.zhuangjiafrom.LAT = this.LAT + this.zhuangjiafrom.LON = this.LON + }, + //* *********************************** + + closeDialog() { + this.dialogzhuangjiaShow = false + }, + deletezhuangjiaPeople(row) { + this.listISLOADing = true + requestFN( + '/plan/planningresources/delete', { id: row.PLANNINGRESOURCES_ID } + ).then((data) => { + this.$message({ + message: '移除成功', + type: 'success' + }) + + this.listISLOADing = false + this.getDataList() + }).catch((e) => { + this.listISLOADing = false + }) + }, + confirm() { + this.zhuangjiafrom.FIRERESERVEPLAN_ID = this.planid + + this.listISLOADing = true + requestFN( + '/plan/planningresources/save', this.zhuangjiafrom + ).then((data) => { + this.$message({ + message: '添加成功', + type: 'success' + }) + this.dialogzhuangjiaShow = false + this.listISLOADing = false + this.getDataList() + }).catch((e) => { + this.listISLOADing = false + }) + }, + yjzjadd() { + this.dialogzhuangjiaShow = true + this.zhuangjiafrom = { + LAT: '', + LON: '' + } + }, + updatezhuangjiaPeople(row) { + this.dialogzhuangjiaShow = true + this.zhuangjiafrom = { + PLANNINGRESOURCES_ID: row.PLANNINGRESOURCES_ID, + RESOURCETYPES: row.RESOURCETYPES, + RESOURCENAME: row.RESOURCENAME, + RESOURCEADDRESS: row.RESOURCEADDRESS, + + RESOURCESNUMBER: row.RESOURCESNUMBER, + LINKMAN: row.LINKMAN, + LINKPHONE: row.LINKPHONE, + RESOURCEDES: row.RESOURCEDES, + + BZ: row.BZ, + LAT: row.LAT, + LON: row.LON + } + }, + // 获取预案资源 + getDataList() { + this.listISLOADing = true + requestFN( + '/plan/planningresources/list?showCount=50' + '¤tPage=1', + { + name: this.KEYWORDS, + FIRERESERVEPLAN_ID: this.planid, + TYPE: '1' + } + ).then((data) => { + this.listISLOADing = false + this.yjzjvarList = data.varList + this.yjzhuangjiatotal = data.page.totalResult + }) + .catch((e) => { + this.listISLOADing = false + }) + } + + } +} +</script> + +<style lang="scss"> +</style> + diff --git a/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/zuzhijiagou.vue b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/zuzhijiagou.vue new file mode 100644 index 0000000..9f5b5af --- /dev/null +++ b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/components/zuzhijiagou.vue @@ -0,0 +1,306 @@ + +<template> + <div> + <div class="filter-container"/> + <el-container> + <el-aside width="300px" style="background-color:#fff"> + + <el-tree + v-loading="treeLoading" + ref="tree" + :data="treeData" + :props="defaultProps" + :filter-node-method="filterNode" + class="filter-tree" + @node-click="handleNodeClick"/> + </el-aside> + <el-main> + + <el-table + v-loading="listLoading" + ref="multipleTable" + :data="varList" + :header-cell-style="{ + 'font-weight': 'bold', + 'color': '#000' + }" + tooltip-effect="dark" + border + fit + highlight-current-row + > + + <el-table-column label="姓名" prop="NAME" /> + <el-table-column prop="DUTIES" label="职务"/> + <el-table-column prop="POSITION" label="组内岗位"/> + <el-table-column prop="LINKPHONE" label="联系电话"/> + <el-table-column prop="URGENTLINKPHONE" label="紧急联系电话"/> + <el-table-column prop="PLANNINGDEPARTMENT_NAME" label="组织机构"/> + + </el-table> + <div class="page-btn-group"> + <div/> + <pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList(DEPARTMENT_ID)" /> + </div> + </el-main> + </el-container> + + <el-dialog :visible.sync="dialogjigouShow" title="机构" width="600px" > + <el-tag class="mark_up" size="medium">上级菜单:{{ jigoumainid == '0' ?'(无) 此项为顶级分组':jigouname }}</el-tag> + <el-form ref="form" :rules="rules" :model="jigoufrom" label-width="110px" style="width: 500px;"> + + <el-form-item label="名称" prop="NAME"> + <el-input v-model="jigoufrom.NAME" placeholder="这里名称..." /> + </el-form-item> + <el-form-item label="英文" prop="NAME_EN"> + <el-input v-model="jigoufrom.NAME_EN" placeholder="这里英文..." /> + </el-form-item> + <el-form-item label="编码" prop="BIANMA"> + <el-input v-model="jigoufrom.BIANMA" placeholder="这里编码..." /> + </el-form-item> + + <el-form-item label="负责人" prop="HEADMAN"> + <el-input v-model="jigoufrom.HEADMAN" placeholder="这里负责人..." /> + </el-form-item> + <el-form-item label="电话" prop="TEL"> + <el-input v-model="jigoufrom.TEL" placeholder="这里电话..." /> + </el-form-item> + <el-form-item label="部门职能" prop="FUNCTIONS"> + <el-input v-model="jigoufrom.FUNCTIONS" placeholder="这里部门职能..." /> + </el-form-item> + + <el-form-item label="地址" prop="ADDRESS"> + <el-input v-model="jigoufrom.ADDRESS" placeholder="这里地址..." /> + </el-form-item> + <el-form-item label="备注" prop="BZ"> + <el-input v-model="jigoufrom.BZ" placeholder="这里备注..." /> + </el-form-item> + + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="dialogjigouShow = false">取 消</el-button> + <el-button type="primary" @click="jigouconfirm">确 定</el-button> + </div> + </el-dialog> + + <el-dialog :visible.sync="dialogrenyuanShow" title="人员" width="600px" > + <el-tag class="mark_up" size="medium">所属机构:{{ jigoumainid == '0' ?'(无) 此项为顶级分组':jigouname }}</el-tag> + <el-form ref="form" :rules="rules" :model="renyuanfrom" label-width="110px" style="width: 500px;"> + + <el-form-item label="姓名" prop="NAME"> + <el-input v-model="renyuanfrom.NAME" placeholder="这里名称..." /> + </el-form-item> + <el-form-item label="职务" prop="DUTIES"> + <el-input v-model="renyuanfrom.DUTIES" placeholder="这里英文..." /> + </el-form-item> + <el-form-item label="组内岗位" prop="POSITION"> + <el-input v-model="renyuanfrom.POSITION" placeholder="这里编码..." /> + </el-form-item> + + <el-form-item label="联系电话" prop="LINKPHONE"> + <el-input v-model="renyuanfrom.LINKPHONE" placeholder="这里负责人..." /> + </el-form-item> + <el-form-item label="紧急联系电话" prop="URGENTLINKPHONE"> + <el-input v-model="renyuanfrom.URGENTLINKPHONE" placeholder="这里电话..." /> + </el-form-item> + + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="dialogrenyuanShow = false">取 消</el-button> + <el-button type="primary" @click="renyuanconfirm">确 定</el-button> + </div> + </el-dialog> + + </div> + +</template> +<script> +import { requestFN } from '@/utils/request' +import Pagination from '@/components/Pagination' +import { Treeselect } from '@riophae/vue-treeselect' +export default { + name: 'Yingjizhuangjia', + components: { Pagination, Treeselect }, + props: { + planid: { + type: String, + default() { + return '' + } } + }, + data() { + return { + rules: [], + listISLOADing: false, + listQuery: { + page: 1, + limit: 20 + }, + varList: [], + listLoading: false, // 加载状态 + treeLoading: false, + defaultProps: { + children: 'nodes', + label: 'name' + }, + total: 0, + treeData: [], + //* ***机构维护******* + jigoumainid: '0', + jigouname: '', + dialogjigouShow: false, + jigoufrom: {}, + //* ******人员********* + renyuanfrom: {}, + dialogrenyuanShow: false + } + }, + created() { + this.getTreeList() + this.getDEPARTMENTList('') + }, + methods: { + renyuanadd() { + this.dialogrenyuanShow = true + this.renyuanfrom = {} + }, + updaterenyuanPeople(row) { + this.dialogrenyuanShow = true + this.jigouname = row.PLANNINGDEPARTMENT_NAME + this.renyuanfrom = { + PLANNINGPERSONNEL_ID: row.PLANNINGPERSONNEL_ID, + NAME: row.NAME, + + DUTIES: row.DUTIES, + POSITION: row.POSITION, + LINKPHONE: row.LINKPHONE, + URGENTLINKPHONE: row.URGENTLINKPHONE + + } + }, + deleterenyuanPeople(id) { + this.listISLOADing = true + requestFN( + '/plan/planningDepartment/deletePersonnel', { id: id } + ).then((data) => { + this.$message({ + message: '移除成功', + type: 'success' + }) + + this.listISLOADing = false + this.getDEPARTMENTList() + }).catch((e) => { + this.listISLOADing = false + }) + }, + renyuanconfirm() { + this.listISLOADing = true + this.renyuanfrom.FIRERESERVEPLAN_ID = this.planid + this.renyuanfrom.PLANNINGDEPARTMENT_ID = this.jigoumainid + requestFN( + '/plan/planningDepartment/savePersonnel', this.renyuanfrom + ).then((data) => { + this.$message({ + message: '添加成功', + type: 'success' + }) + this.dialogrenyuanShow = false + this.listISLOADing = false + this.getDEPARTMENTList(this.jigoumainid) + }).catch((e) => { + this.listISLOADing = false + }) + }, + + //* ************************** + jigouAdd() { + this.jigoufrom = {} + this.dialogjigouShow = true + }, + jigoudelete() { + this.listISLOADing = true + requestFN( + '/plan/planningDepartment/delete', { id: this.jigoumainid } + ).then((data) => { + this.$message({ + message: '移除成功', + type: 'success' + }) + + this.listISLOADing = false + this.getTreeList() + }).catch((e) => { + this.listISLOADing = false + }) + }, + jigouconfirm() { + this.listISLOADing = true + this.jigoufrom.FIRERESERVEPLAN_ID = this.planid + this.jigoufrom.PARENT_ID = this.jigoumainid + requestFN( + '/plan/planningDepartment/save', this.jigoufrom + ).then((data) => { + this.$message({ + message: '添加成功', + type: 'success' + }) + this.dialogjigouShow = false + this.listISLOADing = false + this.getTreeList() + }).catch((e) => { + this.listISLOADing = false + }) + }, + + filterNode(value, data) { + if (!value) return true + return data.name.indexOf(value) !== -1 + }, + handleNodeClick(node, data, value) { + this.jigoumainid = node.id + + this.jigouname = node.name + this.getDEPARTMENTList(this.jigoumainid) + }, + getTreeList() { + this.treeLoading = true + requestFN( + '/plan/planningDepartment/getTree', + { + FIRERESERVEPLAN_ID: this.planid, + proid: '0' + } + ).then((data) => { + this.treeLoading = false + this.treeData = data.data + }).catch((e) => { + this.treeLoading = false + }) + }, + // 组织架构查询 + getDEPARTMENTList(DEPARTMENT_ID) { + this.listLoading = true + this.varList = [] + requestFN( + '/plan/planningDepartment/personnelList?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page, + { + PLANNINGDEPARTMENT_ID: DEPARTMENT_ID, + FIRERESERVEPLAN_ID: this.planid + } + ).then((data) => { + this.listLoading = false + this.varList = data.varList + this.total = data.page.totalResult + this.hasButton() + }).catch((e) => { + this.listLoading = false + }) + } + } +} +</script> + +<style lang="scss"> +</style> + diff --git a/src/views/emergen_cyrescue/emergency_plan/company_plan-check/index.vue b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/index.vue new file mode 100644 index 0000000..9859403 --- /dev/null +++ b/src/views/emergen_cyrescue/emergency_plan/company_plan-check/index.vue @@ -0,0 +1,26 @@ +<template> + <div> + <list v-show="activeName=='list'" ref="list" /> + <addfrom v-if="activeName=='addfrom'"/> + </div> +</template> +<script> +import list from './components/list.vue' +import addfrom from './components/addfrom.vue' +export default { + components: { list, addfrom }, + data() { + return { + activeName: 'list', + CASE_ID: '' + } + }, + methods: { + + huidiao() { + this.$refs.list.getList() + } + + } +} +</script> diff --git a/src/views/emergen_cyrescue/emergency_plan/company_plan/components/addfrom.vue b/src/views/emergen_cyrescue/emergency_plan/company_plan/components/addfrom.vue index 40e4133..8b94285 100644 --- a/src/views/emergen_cyrescue/emergency_plan/company_plan/components/addfrom.vue +++ b/src/views/emergen_cyrescue/emergency_plan/company_plan/components/addfrom.vue @@ -7,10 +7,10 @@ <div class="mb-20"> <el-tabs v-model="activeName" @tab-click="handleClick"> <el-tab-pane label="基本信息" name="first"> - <el-form ref="form" :model="form" label-width="180px"> + <el-form ref="form" :model="form" :rules="rules" label-width="180px"> <el-row :gutter="15"> <el-col :span="8"> - <el-form-item label="预案名称" prop="PLAN_NAME"> + <el-form-item label="预案名称" prop="PLANNAME"> <el-input v-model="form.PLANNAME" placeholder="请输入资源名称..." /> </el-form-item> </el-col> @@ -40,7 +40,7 @@ :options="yhPLANGRADEthree" v-model="form.PLANGRADE" - placeholder="请选择预案类型" + placeholder="请选择预案等级" no-options-text="暂无数据" no-children-text="暂无数据" /> @@ -100,17 +100,17 @@ </el-tab-pane> - <el-tab-pane v-if="PLAN_ID" label="分级响应" name="tow"> - <yingjizhuangjia :planid="PLAN_ID"/> + <el-tab-pane v-if="PLAN_ID" label="分级响应" name="tow" > + <yingjizhuangjia :planid="PLAN_ID" @fenjihuidiao="fenjihuidiao"/> </el-tab-pane> <el-tab-pane v-if="PLAN_ID" label="组织结构" name="three"> - <zuzhijiagou :planid="PLAN_ID"/> + <zuzhijiagou :planid="PLAN_ID" @zuzhihuidiao="zuzhihuidiao" /> </el-tab-pane> <el-tab-pane v-if="PLAN_ID" label="预案资源" name="four"> <yvanziyuan :planid="PLAN_ID"/> </el-tab-pane> <el-tab-pane v-if="PLAN_ID" label="预案指令" name="five"> - <yvanziling :planid="PLAN_ID" /> + <yvanziling ref="zhiling" :planid="PLAN_ID"/> </el-tab-pane> <el-tab-pane v-if="PLAN_ID" label="预案文本" name="six"> <yvanwenben :planid="PLAN_ID" :plan-name="planName" /> @@ -129,6 +129,8 @@ <el-button v-if="activeName !== 'first'" type="primary" @click="shiyibu(0)">上一步</el-button> <el-button v-if="activeName !== 'first'" type="primary" @click="xiayibu(1)" >下一步</el-button> + + <el-button v-if="activeName === 'seven'" type="primary" @click="tijiaoshenhe" >提交审核</el-button> </div> <!-- 坐标选择 --> @@ -164,6 +166,10 @@ </div> </el-dialog> + <el-dialog :visible.sync="dialogFormshenhe" title="审核选择" width="800px" class="dy-dialog" @close="closeDialog()"> + <yjshenherenyuan @yjwenancheck="yjwenancheck"/> + </el-dialog> + </div> </template> @@ -177,10 +183,26 @@ import yvanziyuan from './yvanziyuan.vue' import yvanziling from './yvanziling.vue' import yvanwenben from './yvanwenben.vue' import yvanfujian from './yvanfujian.vue' +import yjshenherenyuan from './yjshenherenyuan.vue' export default { - components: { Treeselect, yingjizhuangjia, zuzhijiagou, yvanziyuan, yvanziling, yvanwenben, yvanfujian }, + components: { Treeselect, yingjizhuangjia, zuzhijiagou, yvanziyuan, yvanziling, yvanwenben, yvanfujian, yjshenherenyuan }, data() { return { + rules: { + PLANNAME: [ + { required: true, message: '预案名称不能为空', trigger: 'blur' }, + { min: 2, max: 30, message: '长度在 2 到 30 个字符', trigger: 'blur' }], + PLANTYPE: [ + { required: true, message: '预案类型不能为空', trigger: 'blur' }], + PLANCODE: [ + { required: true, message: '预案编码不能为空', trigger: 'blur' }], + PLANGRADE: [ + { required: true, message: '预案等级不能为空', trigger: 'blur' }], + PLANDES: [ + { required: true, message: '预案概述不能为空', trigger: 'blur' }] + + }, + dialogFormshenhe: false, // 地图相关 CORPINFO_ID: this.$parent.CORPINFO_ID, clientHeight: 600, @@ -231,6 +253,45 @@ export default { this.getYaTypeDataList() }, methods: { + fenjihuidiao() { + this.zhilingreset() + }, + zuzhihuidiao() { + this.zhilingreset() + }, + // 指令初始化刷新 + zhilingreset() { + this.$refs.zhiling.getForFractModule() + this.$refs.zhiling.getTreeList() + }, + + yjwenancheck(id) { + console.log(id) + const params = { + FIRERESERVEPLAN_ID: this.PLAN_ID, + CHECKSTATUS: '1', + AUDIT_UESRID: id + } + requestFN('/major/emergencyplan/submitCheck', params).then((data) => { + this.$message({ + message: '提交成功', + type: 'success' + }) + setTimeout(() => { + this.dialogFormshenhe = false + this.$parent.activeName = 'list' + this.$parent.huidiao() + }, 500) + }).catch((e) => { + + }) + }, + closeDialog() { + this.dialogFormshenhe = false + }, + tijiaoshenhe() { + this.dialogFormshenhe = true + }, //* **************地图相关***************** // 地图相关 mapOpen() { @@ -437,6 +498,13 @@ export default { }, confirm(type) { + /* if (this.form.PLANNAME === undefined) { + this.$message({ + message: '预案名称不能为空', + type: 'warning' + }) + return + }*/ this.$refs.form.validate(valid => { if (valid) { this.saveData(type) diff --git a/src/views/emergen_cyrescue/emergency_plan/company_plan/components/list.vue b/src/views/emergen_cyrescue/emergency_plan/company_plan/components/list.vue index 06e8011..c2d6237 100644 --- a/src/views/emergen_cyrescue/emergency_plan/company_plan/components/list.vue +++ b/src/views/emergen_cyrescue/emergency_plan/company_plan/components/list.vue @@ -10,9 +10,13 @@ <el-table-column type="selection" width="55" align="center" /> <el-table-column type="index" label="序号" width="50" align="center" /> <el-table-column prop="PLANNAME" label="预案名称" width="180" /> - <el-table-column prop="PLANCODE" label="预案编码" show-overflow-tooltip="true" /> - <el-table-column prop="PLANDES" label="预案概述" show-overflow-tooltip="true" /> - + <el-table-column prop="PLANCODE" label="预案编码" /> + <el-table-column :show-overflow-tooltip="true" prop="PLANDES" label="预案概述" /> + <el-table-column prop="AUDIT_STATUS" label="审核状态" > + <template slot-scope="{row}"> + {{ docheck(row.AUDIT_STATUS) }} + </template> + </el-table-column> <el-table-column label="操作" align="center" width="300"> <template slot-scope="{row}"> <!-- <el-button type="primary" icon="el-icon-document" size="mini" @click="goList('detail', row.FIRERESERVEPLAN_ID, '1')">查看</el-button>--> @@ -60,7 +64,19 @@ export default { this.getList() }, methods: { - + docheck(status) { + let mess = '未审核' + if (status === '0') { + mess = '未审核' + } else if (status === '1') { + mess = '待审核' + } else if (status === '2') { + mess = '审核通过' + } else if (status === '3') { + mess = '审核未通过' + } + return mess + }, //* *********************************** goList(page, CASE_ID, ticketType) { this.$parent.activeName = page @@ -133,7 +149,7 @@ export default { return false } const ids = _selectData.map((item, index) => { - return item.ID + return item.FIRERESERVEPLAN_ID }).join(',') this.$confirm('确定要删除选中的数据吗?', { diff --git a/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yingjizhuangjia.vue b/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yingjizhuangjia.vue index 77b3bb6..8081ce0 100644 --- a/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yingjizhuangjia.vue +++ b/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yingjizhuangjia.vue @@ -21,11 +21,11 @@ </el-table> <div class="page-btn-group"> <div/> - <pagination :total="total" :page.sync="listQueryzj.page" :limit.sync="listQueryzj.limit" @pagination="getPlanexpertList" /> + <pagination :total="yjzhuangjiatotal" :page.sync="listQueryzj.page" :limit.sync="listQueryzj.limit" @pagination="getPlanexpertList" /> </div> <el-dialog :visible.sync="dialogzhuangjiaShow" title="分级响应" width="600px" @close="closeDialog('ruleForm')"> - <el-form ref="form" :rules="rules" :model="form" label-width="110px" style="width: 500px;"> + <el-form ref="form" :rules="rules" :model="zhuangjiafrom" label-width="110px" style="width: 500px;"> <el-form-item label="分级名称" prop="HIERARCHICALNAME"> <el-input v-model="zhuangjiafrom.HIERARCHICALNAME" placeholder="这里分级名称..." /> @@ -69,11 +69,19 @@ export default { }, data() { return { + rules: { + HIERARCHICALNAME: [ + { required: true, message: '预案名称不能为空', trigger: 'blur' }, + { min: 2, max: 30, message: '长度在 2 到 30 个字符', trigger: 'blur' }], + HIERARCHICALDES: [ + { required: true, message: '分级描述不能为空', trigger: 'blur' }] + + }, zhuangjiatotal: 0, zhuangjianame: '', dialogzhuangjiaShow: false, yjzjvarList: [], - yjzhuangjiatotal: [], + yjzhuangjiatotal: 0, zhuanjiaList: [], listQueryzj: { page: 1, @@ -105,26 +113,32 @@ export default { this.listISLOADing = false this.getPlanexpertList() + this.$emit('fenjihuidiao') }).catch((e) => { this.listISLOADing = false }) }, confirm() { this.zhuangjiafrom.FIRERESERVEPLAN_ID = this.planid + this.$refs.form.validate(valid => { + if (valid) { + this.listISLOADing = true + requestFN( + '/plan/fractional/save', this.zhuangjiafrom + ).then((data) => { + this.$message({ + message: '添加成功', + type: 'success' + }) + this.dialogzhuangjiaShow = false + this.listISLOADing = false + this.getPlanexpertList() - this.listISLOADing = true - requestFN( - '/plan/fractional/save', this.zhuangjiafrom - ).then((data) => { - this.$message({ - message: '添加成功', - type: 'success' - }) - this.dialogzhuangjiaShow = false - this.listISLOADing = false - this.getPlanexpertList() - }).catch((e) => { - this.listISLOADing = false + this.$emit('fenjihuidiao') + }).catch((e) => { + this.listISLOADing = false + }) + } }) }, yjzjadd() { diff --git a/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yjshenherenyuan.vue b/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yjshenherenyuan.vue new file mode 100644 index 0000000..23d3995 --- /dev/null +++ b/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yjshenherenyuan.vue @@ -0,0 +1,194 @@ + +<template> + <div class="icons-container"> + + <el-container style="height: 500px"> + <el-aside width="300px" style="background-color:#fff"> + <el-input + v-model="filterText" + placeholder="输入关键字进行过滤" + style="margin:10px 0"/> + <el-tree + v-loading="treeLoading" + ref="tree" + :data="treeData" + :props="defaultProps" + :filter-node-method="filterNode" + class="filter-tree" + @node-click="handleNodeClick" + /> + </el-aside> + <el-main> + <el-form label-width="60px"> + <el-row> + <el-col :span="6"> + <el-form-item label="用户名"> + <el-input v-model="KEYWORDS" style="width: 150px" placeholder="请输入关键字"/> + </el-form-item> + </el-col> + + <el-col :span="12" style="text-align: right"> + <el-form-item label-width="10px"> + <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery"> + 搜索 + </el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + <el-table + v-loading="listLoading" + ref="multipleTable" + :data="varList" + :row-key="getRowKey" + :header-cell-style="{'font-weight': 'bold','color': '#000'}" + tooltip-effect="dark" + border + fit + highlight-current-row> + + <el-table-column type="index" label="序号" width="50" align="center" /> + <el-table-column prop="USERNAME" label="用户名" /> + <el-table-column prop="NAME" label="姓名" /> + <!-- <el-table-column prop="PID_NAME" label="上级部门" />--> + + <el-table-column label="操作" width="80px"> + <template slot-scope="{row}"> + <el-button type="primary" size="mini" @click="isChoose(row.USER_ID)">选择</el-button> + </template> + </el-table-column> + </el-table> + <div class="page-btn-group"> + + <pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList(USER_ID)" /> + </div> + </el-main> + </el-container> + </div> + +</template> +<script> +import { requestFN } from '@/utils/request' +import Pagination from '@/components/Pagination' + +export default { + name: 'Yingjizhuangjia', + components: { Pagination }, + props: { + planid: { + type: String, + default() { + return '' + } } + }, + data() { + return { + defaultProps: { + value: 'id', + children: 'nodes', + label: 'name' + }, + treeData: [], + dayTime: [], + dialogFormEditDate: false, + SchedulingFrom: false, + listLoading: true, + treeLoading: false, + add: false, + del: false, + edit: false, + listQuery: { + page: 1, + limit: 6 + }, + filterText: '', + total: 0, + KEYWORDS: '', + SHIFTDUTYONE: '', + SHIFTDUTYTWO: '', + IS_HAZARDCONFIRMER: '', + selectPeriod: [], + periodList: [], + DEPARTMENT_ID: '', + varList: [], + multipleSelectionAll: [], // 所有选中的数据包含跨页数据 + multipleSelection: [], // 当前页选中的数据 + dialogFormEdit: false, + dialogType: 'saveUser', + disabledLCSelect: false, + displayLCSelect: 'display: block', + disabledLCInput: true, + displayLCInput: 'display: none', + LearnerCategoryList: [] + } + }, + watch: { + filterText(val) { + this.$refs.tree.filter(val) + } + }, + created() { + console.log(this.planid) + this.getTreeList() + this.getList() + }, + methods: { + isChoose(id) { + this.$emit('yjwenancheck', id) + }, + getQuery() { + this.getList() + }, + filterNode(value, data) { + if (!value) return true + return data.name.indexOf(value) !== -1 + }, + handleNodeClick(node, data, value) { + this.getList(node.id) + }, + getTreeList() { + this.treeLoading = true + requestFN( + '/department/listTree', + {} + ).then((data) => { + this.treeLoading = false + this.treeData = JSON.parse(data.zTreeNodes) + }).catch((e) => { + this.treeLoading = false + }) + }, + getRowKey(row) { + return row.USER_ID + }, + getList(DEPARTMENT_ID) { + this.listLoading = true + if (DEPARTMENT_ID) { + this.DEPARTMENT_ID = DEPARTMENT_ID + } + requestFN( + '/user/list?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page, + { + KEYWORDS: this.KEYWORDS, + DEPARTMENT_ID: this.DEPARTMENT_ID, + SHIFTDUTYONE: this.SHIFTDUTYONE, + SHIFTDUTYTWO: this.SHIFTDUTYTWO, + IS_HAZARDCONFIRMER: this.IS_HAZARDCONFIRMER, + USER_ID: this.USER_ID + } + ).then((data) => { + this.listLoading = false + this.varList = data.userList + this.total = data.page.totalResult + }).catch((e) => { + this.listLoading = false + }) + } + + } +} +</script> + +<style lang="scss"> +</style> + diff --git a/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yvanfujian.vue b/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yvanfujian.vue index 1496343..1240866 100644 --- a/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yvanfujian.vue +++ b/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yvanfujian.vue @@ -29,7 +29,7 @@ </div> <el-dialog :visible.sync="dialogzhuangjiaShow" title="预案附件" width="600px" @close="closeDialog('ruleForm')"> - <el-form ref="form" :rules="rules" :model="form" label-width="110px" style="width: 500px;"> + <el-form ref="form" :rules="rules" :model="fujianfrom" label-width="110px" style="width: 500px;"> <el-form-item label="文件名称" prop="FILENAME"> <el-input v-model="fujianfrom.FILENAME" @@ -37,7 +37,7 @@ placeholder="文件名称"/> </el-form-item> - <el-form-item label="附件类型" prop="fujianfrom.FILETYPE"> + <el-form-item label="附件类型" prop="FILETYPE"> <Treeselect :options="FILETYPEThree" v-model="fujianfrom.FILETYPE" @@ -93,7 +93,14 @@ export default { }, data() { return { + rules: { + FILENAME: [ + { required: true, message: '文件名称不能为空', trigger: 'blur' }, + { min: 2, max: 30, message: '长度在 2 到 30 个字符', trigger: 'blur' }], + FILETYPE: [ + { required: true, message: '附件类型不能为空', trigger: 'blur' }] + }, zhuangjiatotal: 0, zhuangjianame: '', dialogzhuangjiaShow: false, @@ -188,15 +195,21 @@ export default { }) }, confirm() { - if (this.FFILE.length > 0) { - this.upload((v) => { - this.fujianfrom.FILEURL = v - this.$refs.upload.clearFiles() - this.dataSave() - }) - } else { - this.dataSave() - } + this.$refs.form.validate(valid => { + if (valid) { + if (this.FFILE.length > 0) { + this.upload((v) => { + this.fujianfrom.FILEURL = v + this.$refs.upload.clearFiles() + this.dataSave() + }) + } else { + this.dataSave() + } + } else { + return false + } + }) }, dataSave() { this.fujianfrom.FIRERESERVEPLAN_ID = this.planid diff --git a/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yvanwenben.vue b/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yvanwenben.vue index 3e8b938..5fd9963 100644 --- a/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yvanwenben.vue +++ b/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yvanwenben.vue @@ -1,7 +1,7 @@ <template> <div> - <el-form ref="form" :model="form" label-width="180px"> + <el-form ref="form" label-width="180px"> <el-row :gutter="20"> <el-col :span="4" > <el-form-item /> diff --git a/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yvanziling.vue b/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yvanziling.vue index f759248..83df145 100644 --- a/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yvanziling.vue +++ b/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yvanziling.vue @@ -3,10 +3,10 @@ <div> <el-row :gutter="20"> <el-col :span="13" class="bianxian"> - <el-form ref="form" :model="yvanzhilingfrom" label-width="110px" > + <el-form ref="form" :model="yvanzhilingfrom" :rules="rules" label-width="110px" > <el-row :gutter="15"> - <el-form-item label="响应级别" prop="PLANGRADE"> + <el-form-item label="响应级别" prop="HIERARCHICALRESPONSE_ID"> <el-checkbox-group v-model="checkList"> <el-checkbox v-for="jibei in xiangyingjibeiList" :label="jibei.HIERARCHICALRESPONSE_ID" :key="jibei.HIERARCHICALRESPONSE_ID">{{ jibei.HIERARCHICALNAME }}</el-checkbox> </el-checkbox-group> @@ -102,7 +102,7 @@ </el-row> <el-dialog :visible.sync="dialogyjzlzyShow" title="相关资源" width="600px" > - <el-form ref="form" :model="zlxianghuanziyuanform" label-width="110px" style="width: 500px;"> + <el-form ref="form2" :rules="rules2" :model="zlxianghuanziyuanform" label-width="110px" style="width: 500px;"> <el-form-item label="资源名称" prop="RESOURCENAME"> <el-input v-model="zlxianghuanziyuanform.RESOURCENAME" placeholder="资源名称..." /> @@ -144,6 +144,26 @@ export default { }, data() { return { + rules: { + HIERARCHICALRESPONSE_ID: [ + { required: true, message: '响应级别不能为空', trigger: 'blur' }], + DIRECTIVECONTENT: [ + { required: true, message: '指令内容不能为空', trigger: 'blur' }], + EXECUTIVEBODY: [ + { required: true, message: '执行机构不能为空', trigger: 'blur' }] + + }, + rules2: { + RESOURCENAME: [ + { required: true, message: '资源名称不能为空', trigger: 'blur' }], + RESOURCETYPE: [ + { required: true, message: '类型不能为空', trigger: 'blur' }], + LINKMPHONE: [ + { required: true, message: '联系电话不能为空', trigger: 'blur' }], + URGENTLINKPHONE: [ + { required: true, message: '紧急联系电话不能为空', trigger: 'blur' }] + + }, checkList: [], zhuangjiatotal: 0, @@ -228,6 +248,7 @@ export default { this.loading = false this.$refs.multipleTable.clearSelection() this.getDataList() + this.doreset() }).catch((e) => { this.loading = false }) @@ -245,6 +266,7 @@ export default { }) this.loading = false this.getDataList() + this.doreset() }).catch((e) => { this.loading = false }) @@ -277,46 +299,26 @@ export default { this.yvanzhilingfrom.FIRERESERVEPLAN_ID = this.planid this.yvanzhilingfrom.HIERARCHICALRESPONSE_ID = this.checkList.join(',') - this.yvanzhilingfrom.listResources2 = this.yjzhilinglinshiList - this.loading = true - - if (this.yvanzhilingfrom.HIERARCHICALRESPONSE_ID === '') { - this.$message({ - message: '表单内容不能为空', - type: 'warning' - }) - return - } - if (this.yvanzhilingfrom.EXECUTIVEBODY) { - console.log('通过') - } else { - this.$message({ - message: '表单内容不能为空', - type: 'warning' - }) - return - } - if (this.yvanzhilingfrom.DIRECTIVECONTENT) { - console.log('通过') - } else { - this.$message({ - message: '表单内容不能为空', - type: 'warning' - }) - return - } - requestFN( - '/plan/planningdirectives/save', this.yvanzhilingfrom - ).then((data) => { - this.$message({ - message: '添加成功', - type: 'success' - }) - this.loading = false - this.doreset() - this.getDataList() - }).catch((e) => { - this.loading = false + this.$refs.form.validate(valid => { + if (valid) { + this.yvanzhilingfrom.listResources2 = this.yjzhilinglinshiList + this.loading = true + requestFN( + '/plan/planningdirectives/save', this.yvanzhilingfrom + ).then((data) => { + this.$message({ + message: '添加成功', + type: 'success' + }) + this.loading = false + this.doreset() + this.getDataList() + }).catch((e) => { + this.loading = false + }) + } else { + return false + } }) }, //* ************添加应急指令相关资源************ @@ -334,15 +336,21 @@ export default { this.dialogyjzlzyShow = true }, confirmsave() { - const form = { - RESOURCENAME: this.zlxianghuanziyuanform.RESOURCENAME, - RESOURCETYPE: this.zlxianghuanziyuanform.RESOURCETYPE, - LINKMPHONE: this.zlxianghuanziyuanform.LINKMPHONE, - URGENTLINKPHONE: this.zlxianghuanziyuanform.URGENTLINKPHONE, - id: this.yjzhilinglinshiList.length + 1 - } - this.yjzhilinglinshiList.push(form) - this.dialogyjzlzyShow = false + this.$refs.form2.validate(valid => { + if (valid) { + const form = { + RESOURCENAME: this.zlxianghuanziyuanform.RESOURCENAME, + RESOURCETYPE: this.zlxianghuanziyuanform.RESOURCETYPE, + LINKMPHONE: this.zlxianghuanziyuanform.LINKMPHONE, + URGENTLINKPHONE: this.zlxianghuanziyuanform.URGENTLINKPHONE, + id: this.yjzhilinglinshiList.length + 1 + } + this.yjzhilinglinshiList.push(form) + this.dialogyjzlzyShow = false + } else { + return false + } + }) }, //* *********获取应急机构树形列表******** getTreeList() { diff --git a/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yvanziyuan.vue b/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yvanziyuan.vue index 000975e..2d0e9b8 100644 --- a/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yvanziyuan.vue +++ b/src/views/emergen_cyrescue/emergency_plan/company_plan/components/yvanziyuan.vue @@ -23,11 +23,11 @@ </el-table> <div class="page-btn-group"> <div/> - <pagination :total="total" :page.sync="listQueryzj.page" :limit.sync="listQueryzj.limit" @pagination="getDataList" /> + <pagination :total="yjzhuangjiatotal" :page.sync="listQueryzj.page" :limit.sync="listQueryzj.limit" @pagination="getDataList" /> </div> <el-dialog :visible.sync="dialogzhuangjiaShow" title="预案资源" width="600px" @close="closeDialog('ruleForm')"> - <el-form ref="form" :rules="rules" :model="form" label-width="110px" style="width: 500px;"> + <el-form ref="form" :rules="rules" :model="zhuangjiafrom" label-width="110px" style="width: 500px;"> <el-form-item label="资源类型" prop="RESOURCETYPES"> <el-input v-model="zhuangjiafrom.RESOURCETYPES" placeholder="资源类型..." /> @@ -136,6 +136,23 @@ export default { }, data() { return { + rules: { + RESOURCETYPES: [ + { required: true, message: '资源类型不能为空', trigger: 'blur' }], + RESOURCENAME: [ + { required: true, message: '资源名称不能为空', trigger: 'blur' }], + RESOURCEADDRESS: [ + { required: true, message: '资源地址不能为空', trigger: 'blur' }], + RESOURCESNUMBER: [ + { required: true, message: '资源数量不能为空', trigger: 'blur' }], + LINKMAN: [ + { required: true, message: '联系人不能为空', trigger: 'blur' }], + LINKPHONE: [ + { required: true, message: '联系电话不能为空', trigger: 'blur' }], + RESOURCEDES: [ + { required: true, message: '资源描述不能为空', trigger: 'blur' }] + + }, // 地图相关 CORPINFO_ID: this.$parent.CORPINFO_ID, clientHeight: 600, @@ -156,7 +173,7 @@ export default { zhuangjianame: '', dialogzhuangjiaShow: false, yjzjvarList: [], - yjzhuangjiatotal: [], + yjzhuangjiatotal: 0, zhuanjiaList: [], listQueryzj: { page: 1, @@ -314,21 +331,27 @@ export default { }) }, confirm() { - this.zhuangjiafrom.FIRERESERVEPLAN_ID = this.planid + this.$refs.form.validate(valid => { + if (valid) { + this.zhuangjiafrom.FIRERESERVEPLAN_ID = this.planid - this.listISLOADing = true - requestFN( - '/plan/planningresources/save', this.zhuangjiafrom - ).then((data) => { - this.$message({ - message: '添加成功', - type: 'success' - }) - this.dialogzhuangjiaShow = false - this.listISLOADing = false - this.getDataList() - }).catch((e) => { - this.listISLOADing = false + this.listISLOADing = true + requestFN( + '/plan/planningresources/save', this.zhuangjiafrom + ).then((data) => { + this.$message({ + message: '添加成功', + type: 'success' + }) + this.dialogzhuangjiaShow = false + this.listISLOADing = false + this.getDataList() + }).catch((e) => { + this.listISLOADing = false + }) + } else { + return false + } }) }, yjzjadd() { diff --git a/src/views/emergen_cyrescue/emergency_plan/company_plan/components/zuzhijiagou.vue b/src/views/emergen_cyrescue/emergency_plan/company_plan/components/zuzhijiagou.vue index 3bb5ecf..c976d2d 100644 --- a/src/views/emergen_cyrescue/emergency_plan/company_plan/components/zuzhijiagou.vue +++ b/src/views/emergen_cyrescue/emergency_plan/company_plan/components/zuzhijiagou.vue @@ -64,7 +64,8 @@ </el-container> <el-dialog :visible.sync="dialogjigouShow" title="机构" width="600px" > - <el-tag class="mark_up" size="medium">上级菜单:{{ jigoumainid == '0' ?'(无) 此项为顶级分组':jigouname }}</el-tag> + <el-tag class="mark_up" size="medium">上级菜单:{{ jigoumainid === '0' ?'(无) 此项为顶级分组':jigouname }}</el-tag> + <div style="height: 10px"/> <el-form ref="form" :rules="rules" :model="jigoufrom" label-width="110px" style="width: 500px;"> <el-form-item label="名称" prop="NAME"> @@ -103,23 +104,24 @@ <el-dialog :visible.sync="dialogrenyuanShow" title="人员" width="600px" > <el-tag class="mark_up" size="medium">所属机构:{{ jigoumainid == '0' ?'(无) 此项为顶级分组':jigouname }}</el-tag> - <el-form ref="form" :rules="rules" :model="renyuanfrom" label-width="110px" style="width: 500px;"> + <div style="height: 10px"/> + <el-form ref="form2" :rules="rules2" :model="renyuanfrom" label-width="110px" style="width: 500px;"> <el-form-item label="姓名" prop="NAME"> - <el-input v-model="renyuanfrom.NAME" placeholder="这里名称..." /> + <el-input v-model="renyuanfrom.NAME" placeholder="这里姓名..." /> </el-form-item> <el-form-item label="职务" prop="DUTIES"> - <el-input v-model="renyuanfrom.DUTIES" placeholder="这里英文..." /> + <el-input v-model="renyuanfrom.DUTIES" placeholder="这里职务..." /> </el-form-item> <el-form-item label="组内岗位" prop="POSITION"> - <el-input v-model="renyuanfrom.POSITION" placeholder="这里编码..." /> + <el-input v-model="renyuanfrom.POSITION" placeholder="这里组内岗位..." /> </el-form-item> <el-form-item label="联系电话" prop="LINKPHONE"> - <el-input v-model="renyuanfrom.LINKPHONE" placeholder="这里负责人..." /> + <el-input v-model="renyuanfrom.LINKPHONE" placeholder="这里联系电话..." /> </el-form-item> <el-form-item label="紧急联系电话" prop="URGENTLINKPHONE"> - <el-input v-model="renyuanfrom.URGENTLINKPHONE" placeholder="这里电话..." /> + <el-input v-model="renyuanfrom.URGENTLINKPHONE" placeholder="这里紧急联系电话..." /> </el-form-item> </el-form> @@ -148,7 +150,34 @@ export default { }, data() { return { - rules: [], + rules: { + NAME: [ + { required: true, message: '名称不能为空', trigger: 'blur' }, + { min: 2, max: 30, message: '长度在 2 到 30 个字符', trigger: 'blur' }], + NAME_EN: [ + { required: true, message: '英文名称不能为空', trigger: 'blur' }, + { min: 2, max: 30, message: '长度在 2 到 30 个字符', trigger: 'blur' }], + BIANMA: [ + { required: true, message: '编码不能为空', trigger: 'blur' }, + { min: 2, max: 30, message: '长度在 2 到 30 个字符', trigger: 'blur' }], + HEADMAN: [ + { required: true, message: '负责人不能为空', trigger: 'blur' }, + { min: 2, max: 30, message: '长度在 2 到 30 个字符', trigger: 'blur' }], + TEL: [ + { required: true, message: '电话不能为空', trigger: 'blur' }, + { min: 2, max: 30, message: '长度在 2 到 30 个字符', trigger: 'blur' }] + + }, + rules2: { + NAME: [ + { required: true, message: '姓名不能为空', trigger: 'blur' }, + { min: 2, max: 30, message: '长度在 2 到 30 个字符', trigger: 'blur' }], + LINKPHONE: [ + { required: true, message: '联系电话不能为空', trigger: 'blur' }], + DUTIES: [ + { required: true, message: '职务不能为空', trigger: 'blur' }] + + }, listISLOADing: false, listQuery: { page: 1, @@ -167,9 +196,9 @@ export default { jigoumainid: '0', jigouname: '', dialogjigouShow: false, - jigoufrom: {}, + jigoufrom: { NAME: '' }, //* ******人员********* - renyuanfrom: {}, + renyuanfrom: { NAME: '' }, dialogrenyuanShow: false } }, @@ -179,6 +208,14 @@ export default { }, methods: { renyuanadd() { + if (this.jigoumainid === '0') { + this.$message({ + message: '请选择结构', + type: 'warning' + }) + return + } + this.dialogrenyuanShow = true this.renyuanfrom = {} }, @@ -213,21 +250,25 @@ export default { }) }, renyuanconfirm() { - this.listISLOADing = true - this.renyuanfrom.FIRERESERVEPLAN_ID = this.planid - this.renyuanfrom.PLANNINGDEPARTMENT_ID = this.jigoumainid - requestFN( - '/plan/planningDepartment/savePersonnel', this.renyuanfrom - ).then((data) => { - this.$message({ - message: '添加成功', - type: 'success' - }) - this.dialogrenyuanShow = false - this.listISLOADing = false - this.getDEPARTMENTList(this.jigoumainid) - }).catch((e) => { - this.listISLOADing = false + this.$refs.form2.validate(valid => { + if (valid) { + this.listISLOADing = true + this.renyuanfrom.FIRERESERVEPLAN_ID = this.planid + this.renyuanfrom.PLANNINGDEPARTMENT_ID = this.jigoumainid + requestFN( + '/plan/planningDepartment/savePersonnel', this.renyuanfrom + ).then((data) => { + this.$message({ + message: '添加成功', + type: 'success' + }) + this.dialogrenyuanShow = false + this.listISLOADing = false + this.getDEPARTMENTList(this.jigoumainid) + }).catch((e) => { + this.listISLOADing = false + }) + } }) }, @@ -237,37 +278,62 @@ export default { this.dialogjigouShow = true }, jigoudelete() { - this.listISLOADing = true - requestFN( - '/plan/planningDepartment/delete', { id: this.jigoumainid } - ).then((data) => { + if (this.jigoumainid === '0') { this.$message({ - message: '移除成功', - type: 'success' + message: '请选择机构', + type: 'warning' + }) + return + } + this.$confirm('确定要删除选中的机构[ ' + this.jigouname + ' ]吗?', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + this.listISLOADing = true + requestFN( + '/plan/planningDepartment/delete', { id: this.jigoumainid } + ).then((data) => { + this.$message({ + message: '移除成功', + type: 'success' + }) + this.listISLOADing = false + this.getTreeList() + this.$emit('zuzhihuidiao') + }).catch((e) => { + this.listISLOADing = false }) - - this.listISLOADing = false - this.getTreeList() - }).catch((e) => { - this.listISLOADing = false }) }, jigouconfirm() { - this.listISLOADing = true - this.jigoufrom.FIRERESERVEPLAN_ID = this.planid - this.jigoufrom.PARENT_ID = this.jigoumainid - requestFN( - '/plan/planningDepartment/save', this.jigoufrom - ).then((data) => { + /* if (this.jigoufrom.NAME === undefined) { this.$message({ - message: '添加成功', - type: 'success' + message: '名称不能为空', + type: 'warning' }) - this.dialogjigouShow = false - this.listISLOADing = false - this.getTreeList() - }).catch((e) => { - this.listISLOADing = false + return + }*/ + this.$refs.form.validate(valid => { + if (valid) { + this.listISLOADing = true + this.jigoufrom.FIRERESERVEPLAN_ID = this.planid + this.jigoufrom.PARENT_ID = this.jigoumainid + requestFN( + '/plan/planningDepartment/save', this.jigoufrom + ).then((data) => { + this.$message({ + message: '添加成功', + type: 'success' + }) + this.dialogjigouShow = false + this.listISLOADing = false + this.getTreeList() + this.$emit('zuzhihuidiao') + }).catch((e) => { + this.listISLOADing = false + }) + } }) },