|
@@ -1,6 +1,7 @@
|
|
|
<template>
|
|
|
<div class="app-container">
|
|
|
- <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
|
|
|
+ <div class="title"><div style="padding-top:0.8rem;padding-left:3rem;font-size:1.6rem;font-family: Adobe Heiti Std;font-weight: normal;color: #DFEEF3;">{{title}}</div></div>
|
|
|
+ <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="6.8rem">
|
|
|
<el-form-item label="编号" prop="areaCode">
|
|
|
<el-input
|
|
|
v-model="queryParams.areaCode"
|
|
@@ -38,20 +39,20 @@
|
|
|
<el-row :gutter="10" class="mb8">
|
|
|
<el-col :span="1.5">
|
|
|
<el-button
|
|
|
+ style="width:8rem;height:3.2rem;"
|
|
|
type="primary"
|
|
|
plain
|
|
|
icon="el-icon-plus"
|
|
|
- size="mini"
|
|
|
@click="handleAdd"
|
|
|
v-hasPermi="['qdtl:area:add']"
|
|
|
>新增</el-button>
|
|
|
</el-col>
|
|
|
<el-col :span="1.5">
|
|
|
<el-button
|
|
|
- type="success"
|
|
|
+ style="width:8rem;height:3.2rem;"
|
|
|
+ type="primary"
|
|
|
plain
|
|
|
icon="el-icon-edit"
|
|
|
- size="mini"
|
|
|
:disabled="single"
|
|
|
@click="handleUpdate"
|
|
|
v-hasPermi="['qdtl:area:edit']"
|
|
@@ -59,10 +60,10 @@
|
|
|
</el-col>
|
|
|
<el-col :span="1.5">
|
|
|
<el-button
|
|
|
- type="danger"
|
|
|
+ style="width:8rem;height:3.2rem;"
|
|
|
+ type="primary"
|
|
|
plain
|
|
|
icon="el-icon-delete"
|
|
|
- size="mini"
|
|
|
:disabled="multiple"
|
|
|
@click="handleDelete"
|
|
|
v-hasPermi="['qdtl:area:remove']"
|
|
@@ -71,7 +72,10 @@
|
|
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
|
|
</el-row>
|
|
|
|
|
|
- <el-table v-loading="loading" :data="areaList" @selection-change="handleSelectionChange">
|
|
|
+ <el-table v-loading="loading" :data="areaList" @selection-change="handleSelectionChange" stripe
|
|
|
+ class="my_table"
|
|
|
+ :row-class-name="tableRowClassName"
|
|
|
+ :header-cell-style="{background:'#24A3B3 50%',color: '#C5D0D4'}">
|
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
|
<el-table-column label="编号" align="center" prop="areaCode" />
|
|
|
<el-table-column label="名称" align="center" prop="areaName" />
|
|
@@ -105,48 +109,57 @@
|
|
|
</el-table>
|
|
|
|
|
|
<pagination
|
|
|
+ style=" position:fixed;top:90rem;right:5rem;"
|
|
|
v-show="total>0"
|
|
|
:total="total"
|
|
|
:page.sync="queryParams.pageNum"
|
|
|
:limit.sync="queryParams.pageSize"
|
|
|
+ :layout="layout"
|
|
|
@pagination="getList"
|
|
|
/>
|
|
|
|
|
|
<!-- 添加或修改区域管理对话框 -->
|
|
|
- <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
|
|
- <el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
|
|
- <el-form-item label="编号" prop="areaCode">
|
|
|
- <el-input v-model="form.areaCode" placeholder="请输入编号" />
|
|
|
+ <el-dialog :title="addtitle" :visible.sync="open" width="150rem" append-to-body @open="openMap">
|
|
|
+ <div style="height:70rem">
|
|
|
+ <div style="float:left;width:30rem">
|
|
|
+ <el-form ref="form" :model="form" :rules="rules" label-width="8rem" >
|
|
|
+ <el-form-item label="区域编号" prop="areaCode" style="margin-top:2rem">
|
|
|
+ <el-input v-model="form.areaCode" placeholder="请输入编号" style="width:17rem"/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="名称" prop="areaName">
|
|
|
- <el-input v-model="form.areaName" placeholder="请输入名称" />
|
|
|
+ <el-form-item label="区域名称" prop="areaName" style="margin-top:6rem">
|
|
|
+ <el-input v-model="form.areaName" placeholder="请输入名称" style="width:17rem"/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="区域类型" prop="areaType">
|
|
|
- <el-select v-model="form.areaType" placeholder="请选择区域类型">
|
|
|
+ <el-form-item label="区域类型" prop="areaType" style="margin-top:6rem">
|
|
|
+ <el-select v-model="form.areaType" placeholder="请选择区域类型" style="width:17rem" @change="areaTypeChange">
|
|
|
<el-option
|
|
|
v-for="dict in dict.type.tl_area_type"
|
|
|
:key="dict.value"
|
|
|
:label="dict.label"
|
|
|
-:value="dict.value"
|
|
|
+ :value="dict.value"
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="区域描述" prop="detail">
|
|
|
- <el-input v-model="form.detail" type="textarea" placeholder="请输入内容" />
|
|
|
+ <el-form-item label="区域描述" prop="detail" style="margin-top:6rem">
|
|
|
+ <el-input v-model="form.detail" type="textarea" placeholder="请输入内容" style="width:17rem"/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="备注" prop="remark">
|
|
|
- <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
|
|
+ <el-form-item label="备注" prop="remark" style="margin-top:6rem">
|
|
|
+ <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" style="width:17rem"/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="电子围栏" prop="fence">
|
|
|
- <el-input v-model="form.fence" type="textarea" placeholder="请输入内容" />
|
|
|
+ <el-form-item label="电子围栏" prop="fence" style="margin-top:6rem">
|
|
|
+ <el-input v-model="form.fence" type="textarea" placeholder="请输入内容" style="width:17rem"/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="经纬度" prop="lnglat">
|
|
|
- <el-input v-model="form.lnglat" placeholder="请输入经纬度" />
|
|
|
+ <el-form-item label="经纬度" prop="lnglat" style="margin-top:6rem">
|
|
|
+ <el-input v-model="form.lnglat" placeholder="请输入经纬度" style="width:17rem"/>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
- <div slot="footer" class="dialog-footer">
|
|
|
+ </div>
|
|
|
+ <div style="float:left;height:60rem;width:100rem;margin-left:10rem;margin-top:5rem">
|
|
|
+ <mapdiv ref='mapv' :point='pointArry'></mapdiv>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer" style="text-align:center">
|
|
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
|
|
- <el-button @click="cancel">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="cancel">取 消</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
@@ -154,6 +167,7 @@
|
|
|
|
|
|
<script>
|
|
|
import { listArea, getArea, delArea, addArea, updateArea } from "@/api/qdtl/area";
|
|
|
+import mapdiv from "@/components/map/index.vue"
|
|
|
|
|
|
export default {
|
|
|
name: "Area",
|
|
@@ -175,9 +189,13 @@ export default {
|
|
|
// 区域管理表格数据
|
|
|
areaList: [],
|
|
|
// 弹出层标题
|
|
|
- title: "",
|
|
|
+ title: "区域管理",
|
|
|
// 是否显示弹出层
|
|
|
open: false,
|
|
|
+ //分页器类型
|
|
|
+ layout:"total, prev, pager, next,jumper",
|
|
|
+
|
|
|
+ addtitle:"新增区域",
|
|
|
// 查询参数
|
|
|
queryParams: {
|
|
|
pageNum: 1,
|
|
@@ -186,6 +204,7 @@ export default {
|
|
|
areaName: null,
|
|
|
areaType: null,
|
|
|
},
|
|
|
+ pointArry:null,
|
|
|
// 表单参数
|
|
|
form: {},
|
|
|
// 表单校验
|
|
@@ -202,10 +221,43 @@ export default {
|
|
|
}
|
|
|
};
|
|
|
},
|
|
|
+ components:{
|
|
|
+ mapdiv
|
|
|
+ },
|
|
|
created() {
|
|
|
this.getList();
|
|
|
},
|
|
|
methods: {
|
|
|
+ openMap(){
|
|
|
+ var locationArry = "[[" + this.form.fence + "]]";
|
|
|
+ this.pointArry = locationArry;
|
|
|
+ // console.log(locationArry);
|
|
|
+ // this.$refs.mapv.addPointArry();
|
|
|
+ // setTimeout(this.addPoint(),100000);
|
|
|
+ // addPointArry
|
|
|
+ // this.$refs.mapv.addpoint(locationArry);
|
|
|
+ },
|
|
|
+// addPoint(){
|
|
|
+// this.$refs.mapv.addpoint(locationArry)
|
|
|
+// },
|
|
|
+ areaTypeChange(){
|
|
|
+ console.log(this.form.areaType);
|
|
|
+ if(this.form.areaType == 1){
|
|
|
+ this.$refs.mapv.typeSelect="Polygon";
|
|
|
+ this.$refs.mapv.changeAddInteractions();
|
|
|
+ }else{
|
|
|
+ this.$refs.mapv.typeSelect="Point";
|
|
|
+ this.$refs.mapv.changeAddInteractions();
|
|
|
+ }
|
|
|
+ // this.$refs.mapv.typeSelect="";
|
|
|
+ },
|
|
|
+ tableRowClassName({ row, rowIndex }) {
|
|
|
+ if ((rowIndex + 1) % 2 === 0) {
|
|
|
+ return "warning-row";
|
|
|
+ } else {
|
|
|
+ return "success-row";
|
|
|
+ }
|
|
|
+ },
|
|
|
/** 查询区域管理列表 */
|
|
|
getList() {
|
|
|
this.loading = true;
|
|
@@ -260,16 +312,17 @@ export default {
|
|
|
handleAdd() {
|
|
|
this.reset();
|
|
|
this.open = true;
|
|
|
- this.title = "添加区域管理";
|
|
|
+ this.addtitle = "新增区域";
|
|
|
},
|
|
|
/** 修改按钮操作 */
|
|
|
handleUpdate(row) {
|
|
|
this.reset();
|
|
|
const id = row.id || this.ids
|
|
|
+ const that = this;
|
|
|
getArea(id).then(response => {
|
|
|
this.form = response.data;
|
|
|
this.open = true;
|
|
|
- this.title = "修改区域管理";
|
|
|
+ this.addtitle = "修改区域管理";
|
|
|
});
|
|
|
},
|
|
|
/** 提交按钮 */
|
|
@@ -283,6 +336,16 @@ export default {
|
|
|
this.getList();
|
|
|
});
|
|
|
} else {
|
|
|
+ if(this.form.areaType == 1){
|
|
|
+ // this.form.fence = this.$refs.mapv.locations.join(';');
|
|
|
+ this.form.fence =JSON.stringify(this.$refs.mapv.locations);
|
|
|
+ // this.form.lnglat = null;
|
|
|
+ }else{
|
|
|
+ this.form.fence = this.$refs.mapv.locations.join(',');
|
|
|
+ // this.form.fence = null;
|
|
|
+ }
|
|
|
+ console.log(this.form.fence);
|
|
|
+ console.log(this.form.lnglat);
|
|
|
addArea(this.form).then(response => {
|
|
|
this.$modal.msgSuccess("新增成功");
|
|
|
this.open = false;
|
|
@@ -311,3 +374,15 @@ export default {
|
|
|
}
|
|
|
};
|
|
|
</script>
|
|
|
+
|
|
|
+<style>
|
|
|
+ .title{
|
|
|
+ background: url("~@/assets/images/title2@2x.png") no-repeat;
|
|
|
+ background-size: 100% 100%;
|
|
|
+ width:100%;
|
|
|
+ height:3.9rem
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+</style>
|
|
|
+
|