From a2299a6d4a6f99e9c11132138f5d3e9ec68f03ea Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 06 六月 2025 19:19:34 +0800 Subject: [PATCH] 开发更新 --- admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue | 196 ++++++++++++++++++++++++++++++++++++------------ 1 files changed, 147 insertions(+), 49 deletions(-) diff --git a/admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue b/admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue index cc134ed..2f22cd9 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="宸℃鐐圭紪鐮�" required > + <el-input v-model="form.code" disabled readonly 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="鍖哄煙缂栫爜锛堝叧鑱攃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.fileFullUrl, 'imgurl': form.fileUrl }" + :uploadData="{ folder: 'ywPatrol/' }" @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false" + @uploadBegin="isUploading = true" /> </el-form-item> </el-form> </GlobalWindow> @@ -49,38 +41,144 @@ <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: '璇疯緭鍏�' }], + }, + 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> -- Gitblit v1.9.3