| 
					
				 | 
			
			
				@@ -3,10 +3,10 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <fnHeader></fnHeader> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <div class="top-bg"></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <div class="top"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      <div class="back btn" @click="goBack"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <!-- <div class="back btn" @click="goBack"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <img class="icon" src="@/assets/images/common/back-icon.png" alt="" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <span>返回</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </div> --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <div class="search"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <el-select 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           v-model="locationVal" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -35,6 +35,10 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           </el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div class="add btn" @click="handleAdd"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-icon><Plus /></el-icon> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <span>创建</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <div class="upload btn" @click="handleExport"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           <img class="icon" src="@/assets/images/common/back-icon.png" alt="" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           <span>导出</span> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -42,12 +46,58 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <div class="content"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-form 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :inline="true" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :model="formInlineSearch" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        class="search-form" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ref="formInlineRef" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item label="农场地址"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-input 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-model="formInlineSearch.address" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            placeholder="请输入农场地址" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item label="农场名称"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-input 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-model="formInlineSearch.farmName" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            placeholder="请输入农场名称" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item label="作物物种"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-input 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-model="formInlineSearch.speciesTypeName" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            placeholder="请输入作物物种" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item label="客户姓名"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-input 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-model="formInlineSearch.masterName" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            placeholder="请输入客户姓名" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item label="联系电话"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-input 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-model="formInlineSearch.masterTel" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            placeholder="请输入联系电话" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div class="button"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-button class="btn" type="primary" @click="onSearch">搜索</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-button class="btn reset" @click="onRest">重置</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-form> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <div class="box"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <div class="map-box"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           <div ref="mapRef" class="map"></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <div class="tool-group"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <!-- <div class="btn"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <!-- <div class="btn" @click="handleCancel"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <img 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               class="icon" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               src="@/assets/images/common/back-black-icon.png" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -55,7 +105,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <span>撤销</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <div class="btn"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="btn" @click="handleDeletePoint"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <el-icon size="15"><CloseBold /></el-icon> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <span>删除点</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           </div> --> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -73,23 +123,26 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <div v-show="disabledForm" class="edit" @click="handleEdit"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               编辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div class="edit" @click="handlePrint">打印</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           <div class="edit-cont"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <el-form 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               :inline="true" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              ref="ruleFormRef" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               :disabled="disabledForm" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               :model="formInline" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              :rules="rules" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               label-position="top" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               class="form-inline" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <el-form-item label="农场地址"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-form-item label="农场地址" prop="address"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <el-input 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   v-model="formInline.address" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   placeholder="请输入农场地址" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <el-form-item label="农场名称"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-form-item label="农场名称" prop="farmName"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <el-input 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   v-model="formInline.farmName" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   placeholder="请输入农场名称" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -102,21 +155,21 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               <el-form-item label="农场面积"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <el-input v-model="formInline.area" disabled clearable /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <el-form-item label="作物物种"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-form-item label="作物物种" prop="speciesTypeName"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <el-input 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   v-model="formInline.speciesTypeName" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   placeholder="请输入作物物种" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <el-form-item label="客户姓名"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-form-item label="客户姓名" prop="masterName"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <el-input 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   v-model="formInline.masterName" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   placeholder="请输入姓名" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <el-form-item label="联系电话"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-form-item label="联系电话" prop="masterTel"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <el-input 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   v-model="formInline.masterTel" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   placeholder="请输入联系电话" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -133,9 +186,8 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   :key="index" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   <span>A{{ index + 1 }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <div class="item-box"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    北纬{{ item.lat }},东经{{ item.lnt }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <div class="item-box">北纬{{ item[1] }}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <div class="item-box">东经{{ item[0] }}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </div> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -198,53 +250,37 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <script setup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { onMounted, ref, reactive, watchEffect } from "vue"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { onMounted, ref, reactive, watchEffect, watch } from "vue"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import fnHeader from "@/components/fnHeader.vue"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import AuthenticMap from "./authenticMap"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { mapData } from "./authenticMap"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { useRouter } from "vue-router"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { ElMessage, ElMessageBox } from "element-plus"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { dateFormat } from "@/utils/date_util"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { exportExcel } from "@/utils/index"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { exportExcel, parseMultiPolygon } from "@/utils/index"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const router = useRouter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let authenticMap = new AuthenticMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const mapRef = ref(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const location = ref("POINT (113.78049350268851 23.419886891845312)"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const userInfo = JSON.parse(sessionStorage.getItem("userinfo")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const location = ref(userInfo.location); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 onMounted(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  getList(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  authenticMap.initMap(location.value, mapRef.value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  getList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 获取地块列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const plotList = ref([]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const getList = (isInitMap = false,a=false) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VE_API.authentic.getList().then(({ code, data }) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (code !== 0) return authenticMap.initMap(location.value, mapRef.value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const getList = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  authenticMap.clearLayer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return VE_API.authentic.getList(formInlineSearch).then(({ code, data }) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     plotList.value = data || []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (isInitMap) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      authenticMap.initMap(data[0].point, mapRef.value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const geom = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      data.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        geom.push({ featureWkt: item.geom }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      authenticMap.setAreaGeometry(geom); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if(a){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const geom = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    console.log('data',data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      data.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        geom.push({ featureWkt: item.geom }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        authenticMap.setAreaGeometry(geom); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        authenticMap.c() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // const geom = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //   data.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //     geom.push({ featureWkt: item.geom }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //   }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //   authenticMap.setAreaGeometry(geom); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //   authenticMap.c() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    data.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      geom.push({ featureWkt: item.geom, ...item }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    authenticMap.setAreaGeometry(geom); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     authenticMap.addPoint(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -293,7 +329,18 @@ const remoteMethod = async (keyword) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const rules = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  address: [{ required: true, message: "请输入农场地址", trigger: "change" }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  farmName: [{ required: true, message: "请输入农场名称", trigger: "change" }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  speciesTypeName: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { required: true, message: "请输入作物物种", trigger: "change" }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  masterName: [{ required: true, message: "请输入姓名", trigger: "change" }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  masterTel: [{ required: true, message: "请输入联系电话", trigger: "change" }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const ruleFormRef = ref(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const initForm = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  id: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   address: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   farmName: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   createDate: "", 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -308,46 +355,71 @@ const formInline = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const disabledForm = ref(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 筛选 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const formInlineRef = ref(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const formInlineSearch = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ...initForm, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const onSearch = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // isEdit.value = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onCancel() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const onRest = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Object.assign(formInlineSearch, initForm); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onCancel() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const isEdit = ref(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 编辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const handleEdit = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   disabledForm.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  authenticMap.startModify(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 取消 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const isUpdata = ref(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const onCancel = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   isEdit.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  authenticMap.startDraw(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // authenticMap.b(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   console.log('mapData.curPointData.id',mapData.curPointData.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   if (!mapData.curPointData.id || mapData.selectPointArr.length) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   authenticMap.setPoint("point"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  authenticMap.clearMapData("isEdit", false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  authenticMap.endDraw(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (isUpdata.value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    authenticMap.cancelDraw(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 保存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const onSubmit = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VE_API.authentic.saveData(formInline).then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (formInline.id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      onCancel(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      isEdit.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      authenticMap.startDraw(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (!ruleFormRef.value) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ruleFormRef.value.validate((valid, fields) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (valid) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      VE_API.authentic.saveData(formInline).then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        onCancel(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // authenticMap.b() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    getList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 打印 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const handlePrint = () =>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    console.log('打印'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 返回 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const goBack = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   router.go(-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function updateFormInline(newData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function updateFormInline(newData,name) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   Object.assign(formInline, newData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 删除地块 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const handleDelete = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (!mapData.curPointData.id) return ElMessage("请选择地块"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const id = mapData.selectPointArr.map((item) => item.values_.id); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -357,17 +429,38 @@ const handleDelete = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     type: "warning", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     .then(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      VE_API.authentic 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        .deleteData({ id:id[0] }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        .then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          authenticMap.b(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          onCancel(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          getList(false,true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      VE_API.authentic.deleteData(id).then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        onCancel(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     .catch(() => {}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 创建 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const handleAdd = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  isUpdata.value = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  authenticMap.clearMapData("curPointData", {}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  authenticMap.clearMapData("isEdit", false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  authenticMap.setPoint("point"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  updateFormInline({ ...initForm }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  pointList.value = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  isEdit.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ruleFormRef.value.resetFields(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  authenticMap.startDraw(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  authenticMap.cancelDraw(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 删除点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const handleDeletePoint = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  authenticMap.removePoint(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 撤销 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const handleCancel = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  authenticMap.undoLastDraw(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//   authenticMap.cancelDraw() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 导出 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const gridData = ref([]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const dialogVisible = ref(false); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -427,51 +520,55 @@ const getDetailsData = (id) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       "YYYY-mm-dd HH:MM:SS" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     updateFormInline({ ...data }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const { area } = authenticMap.getAreaGeometry(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    formInline.area = area + "亩"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    formInline.area = data.mu.toFixed(2) + "亩"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //   经纬度列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const arr = JSON.parse(data.points); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    pointList.value = arr.map((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        lat: item[1].toString().slice(0, 6), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        lnt: item[0].toString().slice(0, 7), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    authenticMap.endEdit(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let arr = JSON.parse(data.points); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 删除最后数组最后一项闭合数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    arr.pop(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pointList.value = arr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 添加经纬度列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const updatePointList = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const { geometryArr, area } = authenticMap.getAreaGeometry(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const lastItem = geometryArr[geometryArr.length - 1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  formInline.geom = lastItem.featureWkt; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  formInline.area = area + "亩"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  let result = parseMultiPolygon(lastItem.featureWkt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  result.pop(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  pointList.value = result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 watchEffect(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  updateFormInline({ ...initForm }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  pointList.value = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  isEdit.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (mapData.isEdit && mapData.selectPointArr.length < 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     isEdit.value = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     disabledForm.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const { geometryArr, area } = authenticMap.getAreaGeometry(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const lastItem = geometryArr[geometryArr.length - 1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    formInline.geom = lastItem.featureWkt; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    formInline.area = area + "亩"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    isUpdata.value = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     formInline.createDate = dateFormat(new Date(), "YYYY-mm-dd HH:MM:SS"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    authenticMap.endEdit(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    updatePointList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    authenticMap.startModify(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (mapData.isEditArea) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const { geometryArr, area } = authenticMap.getAreaGeometry(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    formInline.geom = geometryArr[0].featureWkt; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    formInline.area = area + "亩"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    isUpdata.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    updatePointList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    mapData.curPointData.id && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    !mapData.isEdit && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    mapData.selectPointArr.length === 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const id = mapData.selectPointArr.map((item) => item.values_.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    getDetailsData(id[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+watch( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  () => mapData.selectPointArr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (newVale, oldValue) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (mapData.selectPointArr.length === 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const id = mapData.selectPointArr.map((item) => item.values_.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      getDetailsData(id[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      isEdit.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      authenticMap.endDraw(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <style lang="scss" scoped> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -507,7 +604,8 @@ watchEffect(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   .top { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    justify-content: space-between; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // justify-content: space-between; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    justify-content: flex-end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     height: 40px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     background: #101010; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -520,6 +618,12 @@ watchEffect(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     .search { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      align-items: center; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      justify-content: flex-end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      width: 60%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      .input-with-select { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        margin-left: 25px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       .v-select { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         width: 300px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ::v-deep { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -537,14 +641,51 @@ watchEffect(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         background: #2199f8; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         margin-left: 25px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      .add { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        background: #fff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        color: #000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        margin-left: 25px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   .content { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     height: calc(100% - 74px - 40px); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     box-sizing: border-box; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     background: #101010; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     padding: 13px 20px 20px 20px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .search-form { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      height: 40px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      margin: 5px 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      justify-content: flex-end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ::v-deep{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .el-form-item__label{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            color: #fff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .el-form-item__content{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            width: 190px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .el-input__wrapper{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            background: #101010; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            box-shadow: none; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            border: 1px solid rgba(255, 255, 255, 0.7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            .el-input__inner { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              color: #fff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      .button{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .btn{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            width:84px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            &.reset{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                margin-left: 25px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     .box { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       border: 1px solid rgba(255, 255, 255, 0.4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       border-radius: 8px; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -552,7 +693,7 @@ watchEffect(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       box-sizing: border-box; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       background: #232323; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      height: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      height: calc(100% - 50px); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       position: relative; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       .map-box { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         width: 100%; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -644,26 +785,24 @@ watchEffect(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             .list-cont { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              height: 234px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              height: 190px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               border-radius: 4px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               margin-top: 5px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               background: rgba(68, 68, 68, 0.4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              flex-wrap: wrap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              align-content: flex-start; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              justify-content: space-between; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               padding: 12px 16px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               box-sizing: border-box; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               overflow-y: auto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               .list-item { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                width: 47.5%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 margin-bottom: 12px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                align-items: center; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .item-box { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   padding: 8px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   border: 1px solid #444444; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   border-radius: 4px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  margin-top: 5px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  margin-left: 10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 |