From f1864f6d2d85b49fc901b22e9f6759a5d0fb360b Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 26 十一月 2024 09:33:03 +0800 Subject: [PATCH] 开发更新 --- admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue | 164 ++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 116 insertions(+), 48 deletions(-) diff --git a/admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue b/admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue index cc134ed..00acdd2 100644 --- a/admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue +++ b/admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue @@ -1,46 +1,38 @@ <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" disabled 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="remark"> - <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/> + <el-form-item label="宸℃鍐呭" prop="content"> + <el-input type="textarea" :rows="4" v-model="form.content" placeholder="璇疯緭鍏�" /> </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="鍖哄煙缂栫爜锛堝叧鑱攃ategory)" 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.imgurlfull, 'imgurl': form.imgurl }" + :uploadData="{ folder: 'ywPatrol/' }" @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false" + @uploadBegin="isUploading = true" /> </el-form-item> </el-form> </GlobalWindow> @@ -49,38 +41,114 @@ <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' 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 + if (row && row.id) { + this.getDetail(row) + } + }, + getDetail(row) { + detail(row.id).then(res => { + this.form = { ...res } + // this.$set(this.form, 'areaId', res.areaId) + // console.log('res', res) + // console.log('res', this.form) + this.initData(res.areaId) + }) + }, + initData(areaId) { + fetchList({ + model: { type: 4 }, + capacity: 1000, + page: 1, + }).then(res => { + this.cateList = res.records || [] + console.log('this.form.areaId', this.form) + + 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]) + console.log('areaIds', this.form) + + } + }) + } + }) + } + }) + + }, + 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.form.imgurl = file.imgurl + this.form.imgurlfull = file.imgurlfull + }, } } </script> +<style lang="scss" scoped> +.mapbox { + width: 100%; + height: 400px; + margin-bottom: 20px; + float: left; +} +</style> \ No newline at end of file -- Gitblit v1.9.3