New file |
| | |
| | | <template> |
| | | <div class="event-report"> |
| | | <el-form :model="ruleForm" ref="ruleForm" label-width="90px" class="search-form"> |
| | | <!-- 事件名称--> |
| | | <el-form-item class="input-event-name" label="事件名称" prop="nameOfEvent"> |
| | | <el-input |
| | | v-model="ruleForm.nameOfEvent" |
| | | placeholder="将事件命名" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <!-- 事件类型--> |
| | | <el-form-item label="事件类型" prop="eventOfType"> |
| | | <el-radio-group v-model="ruleForm.eventOfType"> |
| | | <el-col :span="8" v-for="(item,index) in ruleForm.eventOfTypeList" :key="index" |
| | | :style="{margin:'5px 0'}"> |
| | | <el-radio :label="item.value"> |
| | | <span>{{ item.name }}</span> |
| | | </el-radio> |
| | | </el-col> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <!-- 事件等级--> |
| | | <el-form-item label="事件分级" prop="eventOfLevel"> |
| | | <el-radio-group v-model="ruleForm.eventOfLevel"> |
| | | <el-col :span="8" v-for="(item,index) in ruleForm.eventOfLevelList" :key="index" |
| | | :style="{margin:'5px 0'}"> |
| | | <el-radio :label="item.value"> |
| | | <span>{{ item.name }}</span> |
| | | </el-radio> |
| | | </el-col> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-row> |
| | | <!-- 事发单位--> |
| | | <el-col :span="12"> |
| | | <el-form-item label="事发单位" prop="unit"> |
| | | <el-select v-model="ruleForm.unit" placeholder="单位,装置选择"> |
| | | <el-option |
| | | v-for="item in ruleForm.unitList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- 事发时间--> |
| | | <el-col :span="12"> |
| | | <el-form-item class="search-panel-item" label="事发时间" prop="atTime"> |
| | | <el-date-picker |
| | | v-model="ruleForm.atTime" |
| | | type="datetime" |
| | | placeholder="年/月/日"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <!-- 事发位置--> |
| | | <el-col :span="12"> |
| | | <el-form-item label="事发位置" prop="positionOf"> |
| | | <el-input v-model="ruleForm.positionOf" clearable> |
| | | <!-- <el-button slot="suffix" type="text" class="el-icon-location-information"--> |
| | | <!-- @click="locationInfo"></el-button>--> |
| | | <el-button style="padding-right:10px;" slot="suffix" type="text" |
| | | @click="locationInfo"> |
| | | <img src="../../../../../public/assets/images/map/loc.png" alt=""> |
| | | </el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- 位置描述--> |
| | | <el-col :span="12"> |
| | | <el-form-item label="位置描述" prop="positionDescription"> |
| | | <el-input v-model="ruleForm.positionDescription"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <!-- 管线名称--> |
| | | <el-col :span="12"> |
| | | <el-form-item label="管线名称" prop="lineName" class="search-panel-item"> |
| | | <el-input disabled v-model="ruleForm.lineName" placeholder="自动带出不可修改" |
| | | class="report-input"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- 管线类型--> |
| | | <el-col :span="12"> |
| | | <el-form-item label="管线类型" prop="lineType"> |
| | | <label>{{ ruleForm.lineTypeText }}</label> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- 点击上传--> |
| | | <el-form-item label="附件上传" prop="upload"> |
| | | <el-upload |
| | | class="upload-demo" |
| | | action="uploadAction" |
| | | multiple |
| | | :limit="3" |
| | | :file-list="fileList"> |
| | | <el-button size="small" type="primary">点击上传</el-button> |
| | | </el-upload> |
| | | </el-form-item> |
| | | <!-- 消息推送--> |
| | | <el-form-item label="消息推送" prop="beingPush"> |
| | | <el-checkbox-group v-model="ruleForm.beingPushed" @change="infoChange"> |
| | | <el-checkbox v-for="item in ruleForm.beingPushList" |
| | | :key="item.name" |
| | | :label="item.name" |
| | | > |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <!-- // 描述 接收 展示、隐藏--> |
| | | <div v-show="wayTo" class="way-to"> |
| | | <el-form-item label="事件描述" prop="desc"> |
| | | <el-input type="textarea" resize="none" v-model="ruleForm.desc" |
| | | placeholder="带出事件类型,事件位置,事件单位,事件时间等字段自动生产一部分描述"> |
| | | </el-input> |
| | | <el-button type="primary">一键<br/>生成</el-button> |
| | | </el-form-item> |
| | | <el-form-item label="接收人员" prop="receiveOne"> |
| | | <el-input type="textarea" resize="none" v-model="ruleForm.receiveOne" |
| | | placeholder="张三;李四,"></el-input> |
| | | <el-button type="primary">+</el-button> |
| | | </el-form-item> |
| | | </div> |
| | | <el-form-item class="confirmCancel"> |
| | | <el-button type="primary" @click="submitForm('ruleForm')">确认</el-button> |
| | | <el-button @click="resetForm('ruleForm')">取消</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-dialog |
| | | custom-class="event-report-dialog" |
| | | title="事发位置定位" |
| | | :visible.sync="dialogLocation" |
| | | :append-to-body="true" |
| | | :modal="false" |
| | | v-dialogDrag |
| | | > |
| | | <ReportLocation @locationClick="getlocaltionClick"></ReportLocation> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | <!-- :rules="rules"--> |
| | | <!-- :show-close="false"--> |
| | | <script> |
| | | |
| | | import ReportLocation from './ReportLocation' |
| | | import eventBus from '../../../../eventBus' |
| | | |
| | | export default { |
| | | name: 'EventsReported', |
| | | components: { |
| | | ReportLocation |
| | | }, |
| | | data () { |
| | | return { |
| | | // 表单绑定数据 |
| | | ruleForm: { |
| | | // 事件名称 绑定数据 |
| | | nameOfEvent: '', |
| | | // 事件类型 绑定数据值 |
| | | eventOfType: '', |
| | | // 事件类型可选择数据radio 绑定数据 |
| | | eventOfTypeList: [ |
| | | { |
| | | name: '海(水)上溢油污染', |
| | | value: 1 |
| | | }, |
| | | { |
| | | name: '油气管道泄漏污染', |
| | | value: 2 |
| | | }, |
| | | { |
| | | name: '辐射污染', |
| | | value: 3 |
| | | }, |
| | | { |
| | | name: '生态环境破坏', |
| | | value: 4 |
| | | }, |
| | | { |
| | | name: '其他', |
| | | value: 5 |
| | | } |
| | | ], |
| | | // 事件等级 |
| | | eventOfLevel: '', |
| | | // 事件等级可选择数据radio 绑定数据 |
| | | eventOfLevelList: [ |
| | | { |
| | | name: '特别重大环境事件', |
| | | value: 1 |
| | | }, |
| | | { |
| | | name: '重大环境事件', |
| | | value: 2 |
| | | }, |
| | | { |
| | | name: '较大环境事件', |
| | | value: 3 |
| | | }, |
| | | { |
| | | name: '一般A级', |
| | | value: 4 |
| | | }, |
| | | { |
| | | name: '一般B级', |
| | | value: 5 |
| | | }, |
| | | { |
| | | name: '一般C级', |
| | | value: 6 |
| | | } |
| | | ], |
| | | // 事发单位 绑定数据值 |
| | | unit: '', |
| | | unitList: [ |
| | | { |
| | | label: '扬子', |
| | | value: '1' |
| | | }, |
| | | { |
| | | label: '南京', |
| | | value: '2' |
| | | } |
| | | ], |
| | | // 事发时间 绑定数据 |
| | | atTime: '', |
| | | // 事发位置 |
| | | positionOf: '', |
| | | // 位置描述 |
| | | positionDescription: '', |
| | | // 管线名称 |
| | | lineName: '', |
| | | // 管线类型 |
| | | lineType: '', |
| | | lineTypeText: '自动带出不可修改', |
| | | // 消息推送 |
| | | beingPushed: [], |
| | | beingPushList: [ |
| | | { |
| | | name: '短信推送', |
| | | value: false |
| | | }, |
| | | { |
| | | name: '手机应用推送', |
| | | value: false |
| | | } |
| | | ], |
| | | // 事件描述 |
| | | desc: '', |
| | | // 接收人员 |
| | | receiveOne: '' |
| | | }, |
| | | // 上传列表 |
| | | fileList: [], |
| | | // 上传地址 |
| | | uploadAction: '', |
| | | // 表单验证 |
| | | // rules: { |
| | | // // 事件名称校验 |
| | | // nameOfEvent: [ |
| | | // { |
| | | // required: true, |
| | | // message: '请输入活动名称', |
| | | // trigger: 'blur' |
| | | // } |
| | | // ], |
| | | // // 事件类型校验 |
| | | // eventOfType: [ |
| | | // { |
| | | // required: true, |
| | | // message: '请选择事件类型', |
| | | // trigger: 'blur' |
| | | // } |
| | | // ], |
| | | // // 事件等级校验 |
| | | // eventOfLevel: [ |
| | | // { |
| | | // required: true, |
| | | // message: '请选择事件等级', |
| | | // trigger: 'blur' |
| | | // } |
| | | // ], |
| | | // // 事发单位 绑定数据值 |
| | | // unit: [ |
| | | // { |
| | | // required: true, |
| | | // message: '请选择活动区域', |
| | | // trigger: 'change' |
| | | // } |
| | | // ], |
| | | // // 事发时间 |
| | | // atTime: [ |
| | | // { |
| | | // required: true, |
| | | // message: '请选择活动资源', |
| | | // trigger: 'change' |
| | | // } |
| | | // ], |
| | | // // 事件位置校验 |
| | | // positionOf: [ |
| | | // { |
| | | // required: true, |
| | | // message: '请输入活动位置', |
| | | // trigger: 'blur' |
| | | // } |
| | | // ], |
| | | // // 位置描述校验 |
| | | // positionDescription: [ |
| | | // { |
| | | // required: true, |
| | | // message: '请输入位置描述', |
| | | // trigger: 'blur' |
| | | // } |
| | | // ], |
| | | // // 管线名称 |
| | | // lineName: [], |
| | | // // 管线类型 |
| | | // lineType: [] |
| | | // }, |
| | | // 描述 接收 => 展示/隐藏 |
| | | wayTo: false, |
| | | // 定位位置选择弹框 |
| | | dialogLocation: false |
| | | } |
| | | }, |
| | | mounted () { |
| | | eventBus.$on('location-setChange', (obj) => { |
| | | if (obj) { |
| | | this.dialogLocation = false |
| | | } |
| | | }) |
| | | }, |
| | | methods: { |
| | | // 接收子组件传递的数据 |
| | | getlocaltionClick (val) { |
| | | // console.log(val) |
| | | this.ruleForm.positionOf = val.latPos + '-' + val.longPos |
| | | this.dialogLocation = !this.dialogLocation |
| | | }, |
| | | // 消息推送 选择推送的对象 |
| | | infoChange () { |
| | | if (this.ruleForm.beingPushed.indexOf('短信推送') > -1 || this.ruleForm.beingPushed.indexOf('手机应用推送') > -1) { |
| | | this.wayTo = true |
| | | } else { |
| | | this.wayTo = false |
| | | } |
| | | }, |
| | | // 点击定位 进行位置选择 |
| | | locationInfo () { |
| | | this.dialogLocation = !this.dialogLocation |
| | | }, |
| | | // 表单的确认按钮点击事件 |
| | | submitForm (formName) { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | // alert('submit!') |
| | | this.$message({ |
| | | message: '事件上报提交成功', |
| | | type: 'success' |
| | | }) |
| | | } else { |
| | | this.$message('事件上报提交失败') |
| | | return false |
| | | } |
| | | }) |
| | | // this.$refs[formName].resetFields() |
| | | eventBus.$emit('event-report-popup', false) |
| | | }, |
| | | // form表单的取消按钮点击事件 重置信息 |
| | | resetForm (formName) { |
| | | this.$refs[formName].resetFields() |
| | | eventBus.$emit('event-report-popup', false) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | |
| | | /*/deep/ .el-dialog .el-dialog--center {*/ |
| | | /* margin-top: 1rem !important;*/ |
| | | /* margin-left: 6.4rem !important;*/ |
| | | /*}*/ |
| | | |
| | | /deep/ .event-report-dialog { |
| | | left: 5rem; |
| | | top: 1rem; |
| | | margin-top: 2rem; |
| | | margin-left: 2rem; |
| | | } |
| | | |
| | | /deep/ .el-dialog { |
| | | left: 5rem; |
| | | top: 1rem; |
| | | width: 3.087834rem; |
| | | } |
| | | |
| | | .event-report { |
| | | margin: 0 5px !important; |
| | | } |
| | | |
| | | .way-to { |
| | | /deep/ .el-form-item__content { |
| | | display: flex; |
| | | } |
| | | } |
| | | |
| | | /deep/ .el-form-item { |
| | | margin: 2px 0 !important; |
| | | color: #00fff6 !important; |
| | | } |
| | | |
| | | /deep/ .el-textarea__inner { |
| | | height: 0.28rem !important; |
| | | max-height: 0.45rem !important; |
| | | width: 2rem; |
| | | color: darkgrey; |
| | | border: solid 1px #00fff6; |
| | | background-color: rgba(0, 255, 246, 0.14); |
| | | outline: none; |
| | | font-size: 0.01rem; |
| | | } |
| | | |
| | | /deep/ .el-checkbox__label { |
| | | color: #00fff6 !important; |
| | | } |
| | | |
| | | /deep/ .el-icon-time:before { |
| | | content: " "; |
| | | } |
| | | |
| | | /deep/ input { |
| | | border-radius: 0; |
| | | background-color: rgba(0, 255, 246, 0.14); |
| | | border: solid 1px #00fff6; |
| | | color: #C0C4CC; |
| | | font-size: 0.01rem; |
| | | } |
| | | |
| | | /deep/ .el-input.is-disabled .el-input__inner { |
| | | color: #C0C4CC; |
| | | font-size: 0.01rem; |
| | | border-radius: 4px; |
| | | background: @background-color; |
| | | border-color: @color; |
| | | } |
| | | |
| | | /deep/ .el-input__inner { |
| | | height: 0.2rem !important; |
| | | border-radius: 5px; |
| | | background: rgba(0, 16, 30, 0.5); |
| | | } |
| | | |
| | | /deep/ .el-form-item__label { |
| | | color: @color; |
| | | } |
| | | |
| | | /deep/ .el-radio__label { |
| | | color: @color; |
| | | } |
| | | |
| | | .confirmCancel { |
| | | text-align: right; |
| | | margin: 0.071234rem !important; |
| | | } |
| | | </style> |