|  |  |  | 
|---|
|  |  |  | <template> | 
|---|
|  |  |  | <GlobalWindow | 
|---|
|  |  |  | :title="title" | 
|---|
|  |  |  | :visible.sync="visible" | 
|---|
|  |  |  | :confirm-working="isWorking" | 
|---|
|  |  |  | @confirm="confirm" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <GlobalWindow :title="title" :visible.sync="visible" width="620px" :confirm-working="isWorking" @confirm="confirm"> | 
|---|
|  |  |  | <el-form :model="form" ref="form" :rules="rules"> | 
|---|
|  |  |  | <el-form-item label="创建人编码" prop="creator"> | 
|---|
|  |  |  | <el-input v-model="form.creator" placeholder="请输入创建人编码" v-trim/> | 
|---|
|  |  |  | <el-form-item label="巡检点编码" prop="code"> | 
|---|
|  |  |  | <el-input v-model="form.code" placeholder="请输入名称" v-trim /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="创建时间" prop="createDate"> | 
|---|
|  |  |  | <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="请输入创建时间"></el-date-picker> | 
|---|
|  |  |  | <el-form-item label="巡检点名称" prop="name"> | 
|---|
|  |  |  | <el-input v-model="form.name" placeholder="请输入巡检点名称" v-trim /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="更新人编码" prop="editor"> | 
|---|
|  |  |  | <el-input v-model="form.editor" placeholder="请输入更新人编码" v-trim/> | 
|---|
|  |  |  | <el-form-item label="巡检设备"> | 
|---|
|  |  |  | <el-select v-model="form.deviceId"> | 
|---|
|  |  |  | <el-option v-for="item in deviceList" :key="item.id" :label="item.name" :value="item.id"></el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="更新时间" prop="editDate"> | 
|---|
|  |  |  | <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="请输入更新时间"></el-date-picker> | 
|---|
|  |  |  | <el-form-item label="所属区域" prop="areaId"> | 
|---|
|  |  |  | <el-cascader v-model="form.areaIds" @change="changeSel" placeholder="请选择巡检区域" clearable :options="cateList" | 
|---|
|  |  |  | :props="{ | 
|---|
|  |  |  | label: 'name', | 
|---|
|  |  |  | value: 'id', | 
|---|
|  |  |  | children: 'childCategoryList', | 
|---|
|  |  |  | }"></el-cascader> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="是否删除0否 1是" prop="isdeleted"> | 
|---|
|  |  |  | <el-input v-model="form.isdeleted" placeholder="请输入是否删除0否 1是" v-trim/> | 
|---|
|  |  |  | <el-form-item label="经纬度"> | 
|---|
|  |  |  | <el-input v-model="form.lnglat" placeholder="示例:117.297461,31.849234" v-trim /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="名称" prop="name"> | 
|---|
|  |  |  | <el-input v-model="form.name" placeholder="请输入名称" v-trim/> | 
|---|
|  |  |  | <!-- <el-form-item> | 
|---|
|  |  |  | <mapDrag class="mapbox" @center="getCenter" /> | 
|---|
|  |  |  | </el-form-item> --> | 
|---|
|  |  |  | <el-form-item label="巡检内容" prop="content"> | 
|---|
|  |  |  | <el-input type="textarea" :rows="4" v-model="form.content" placeholder="请输入" /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="备注" prop="remark"> | 
|---|
|  |  |  | <el-input v-model="form.remark" placeholder="请输入备注" v-trim/> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="状态 0启用 1禁用" prop="status"> | 
|---|
|  |  |  | <el-input v-model="form.status" placeholder="请输入状态 0启用 1禁用" v-trim/> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="排序码" prop="sortnum"> | 
|---|
|  |  |  | <el-input v-model="form.sortnum" placeholder="请输入排序码" v-trim/> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="图标" prop="imgurl"> | 
|---|
|  |  |  | <el-input v-model="form.imgurl" placeholder="请输入图标" v-trim/> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="区域编码(关联category)" prop="areaId"> | 
|---|
|  |  |  | <el-input v-model="form.areaId" placeholder="请输入区域编码(关联category)" v-trim/> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="地址" prop="addr"> | 
|---|
|  |  |  | <el-input v-model="form.addr" placeholder="请输入地址" v-trim/> | 
|---|
|  |  |  | <el-form-item label="上传图片" prop="imgurl"> | 
|---|
|  |  |  | <UploadAvatarImage :file="{ 'imgurlfull': form.fileFullUrl, 'imgurl': form.fileUrl }" | 
|---|
|  |  |  | :uploadData="{ folder: 'ywPatrol/' }" @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false" | 
|---|
|  |  |  | @uploadBegin="isUploading = true" /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-form> | 
|---|
|  |  |  | </GlobalWindow> | 
|---|
|  |  |  | 
|---|
|  |  |  | <script> | 
|---|
|  |  |  | import BaseOpera from '@/components/base/BaseOpera' | 
|---|
|  |  |  | import GlobalWindow from '@/components/common/GlobalWindow' | 
|---|
|  |  |  | import UploadAvatarImage from '@/components/common/UploadAvatarImage' | 
|---|
|  |  |  | import mapDrag from '@/components/common/map/mapDrag.vue' | 
|---|
|  |  |  | import { fetchList } from '@/api/business/category' | 
|---|
|  |  |  | import { detail } from '@/api/Inspection/ywPatrolPoint' | 
|---|
|  |  |  | import { fetchList as getDeiceList } from '@/api/Inspection/device' | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | name: 'OperaYwPatrolPointWindow', | 
|---|
|  |  |  | extends: BaseOpera, | 
|---|
|  |  |  | components: { GlobalWindow }, | 
|---|
|  |  |  | data () { | 
|---|
|  |  |  | components: { GlobalWindow, UploadAvatarImage, mapDrag }, | 
|---|
|  |  |  | data() { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | // 表单数据 | 
|---|
|  |  |  | form: { | 
|---|
|  |  |  | id: null, | 
|---|
|  |  |  | creator: '', | 
|---|
|  |  |  | createDate: '', | 
|---|
|  |  |  | editor: '', | 
|---|
|  |  |  | editDate: '', | 
|---|
|  |  |  | isdeleted: '', | 
|---|
|  |  |  | name: '', | 
|---|
|  |  |  | remark: '', | 
|---|
|  |  |  | status: '', | 
|---|
|  |  |  | sortnum: '', | 
|---|
|  |  |  | code: '', | 
|---|
|  |  |  | content: '', | 
|---|
|  |  |  | imgurl: '', | 
|---|
|  |  |  | areaId: '', | 
|---|
|  |  |  | areaId: 0, | 
|---|
|  |  |  | areaIds: [], | 
|---|
|  |  |  | addr: '' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | deviceList: [], | 
|---|
|  |  |  | cateList: [], | 
|---|
|  |  |  | // 验证规则 | 
|---|
|  |  |  | rules: { | 
|---|
|  |  |  | } | 
|---|
|  |  |  | name: [{ required: true, message: '请输入' }], | 
|---|
|  |  |  | code: [{ required: true, message: '请输入' }], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | isUploading: false, | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | created () { | 
|---|
|  |  |  | created() { | 
|---|
|  |  |  | this.config({ | 
|---|
|  |  |  | api: '/Inspection/ywPatrolPoint', | 
|---|
|  |  |  | 'field.id': 'id' | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | open(title, row) { | 
|---|
|  |  |  | this.title = title | 
|---|
|  |  |  | this.visible = true | 
|---|
|  |  |  | this.initData() | 
|---|
|  |  |  | if (row == null) { | 
|---|
|  |  |  | this.$nextTick(() => { | 
|---|
|  |  |  | this.form = { | 
|---|
|  |  |  | name: '', | 
|---|
|  |  |  | code: '', | 
|---|
|  |  |  | content: '', | 
|---|
|  |  |  | imgurl: '', | 
|---|
|  |  |  | areaId: 0, | 
|---|
|  |  |  | areaIds: [], | 
|---|
|  |  |  | addr: '' | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.$refs.form.resetFields() | 
|---|
|  |  |  |  | 
|---|
|  |  |  | this.form[this.configData['field.id']] = null | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | fetchList({ | 
|---|
|  |  |  | model: { type: 4 }, | 
|---|
|  |  |  | capacity: 1000, | 
|---|
|  |  |  | page: 1, | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | this.cateList = res.records || [] | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (row && row.id) { | 
|---|
|  |  |  | this.getDetail(row) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | getDetail(row) { | 
|---|
|  |  |  | detail(row.id).then(res => { | 
|---|
|  |  |  | this.form = { ...res } | 
|---|
|  |  |  | if (res.longitude && res.latitude) { | 
|---|
|  |  |  | this.$set(this.form, 'lnglat', res.longitude + ',' + res.latitude) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | fetchList({ | 
|---|
|  |  |  | model: { type: 4 }, | 
|---|
|  |  |  | capacity: 1000, | 
|---|
|  |  |  | page: 1, | 
|---|
|  |  |  | }).then(ress => { | 
|---|
|  |  |  | this.cateList = ress.records || [] | 
|---|
|  |  |  | const areaId = res.areaId | 
|---|
|  |  |  | if (areaId) { | 
|---|
|  |  |  | this.cateList.forEach(item => { | 
|---|
|  |  |  | if (item.childCategoryList) { | 
|---|
|  |  |  | item.childCategoryList.forEach(item2 => { | 
|---|
|  |  |  | if (item2.id == areaId) { | 
|---|
|  |  |  | this.$set(this.form, 'areaIds', [item.id, item2.id]) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | initData() { | 
|---|
|  |  |  | getDeiceList({ | 
|---|
|  |  |  | model: {}, | 
|---|
|  |  |  | capacity: 1000, | 
|---|
|  |  |  | page: 1, | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | this.deviceList = res.records | 
|---|
|  |  |  | }) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | getCenter(data) { | 
|---|
|  |  |  | // console.log(data) | 
|---|
|  |  |  | // this.$set(this.form, 'postion', data.address) | 
|---|
|  |  |  | if (data.lng) { | 
|---|
|  |  |  | this.$set(this.form, 'lnglat', data.lng + ',' + data.lat) | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.$set(this.form, 'lnglat', '') | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.$set(this.form, 'longitude', data.lng) | 
|---|
|  |  |  | this.$set(this.form, 'latitude', data.lat) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | changeSel(e) { | 
|---|
|  |  |  | if (e && e.length == 2) { | 
|---|
|  |  |  | this.$set(this.form, 'areaId', e[1]) | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.$set(this.form, 'areaId', '') | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadAvatarSuccess(file) { | 
|---|
|  |  |  | this.$set(this.form, 'fileUrl', file.imgurl) | 
|---|
|  |  |  | this.$set(this.form, 'fileFullUrl', file.imgurlfull) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </script> | 
|---|
|  |  |  | <style lang="scss" scoped> | 
|---|
|  |  |  | .mapbox { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | height: 400px; | 
|---|
|  |  |  | margin-bottom: 20px; | 
|---|
|  |  |  | float: left; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|