| | |
| | | <template> |
| | | <div class="bg-white rounded-lg p-4 flex flex-col w-[340px] gap-4"> |
| | | <div class="bg-white rounded-lg p-4 flex flex-col w-[370px] gap-4"> |
| | | <!-- 头部 --> |
| | | <div class="flex items-center flex-0"> |
| | | <span class="ywifont ywicon-guanbi cursor-pointer mr-1.5" @click="handleClose"></span> |
| | |
| | | <!-- 属性选择 --> |
| | | <el-form-item prop="property" class="!mb-0"> |
| | | <el-tree-select |
| | | |
| | | v-model="tmpCondition.property" |
| | | :data="propertyGroupList" |
| | | placeholder="属性" |
| | |
| | | default-expand-all |
| | | @change="handlePropertyChange" |
| | | :props="propertyGroupProps" |
| | | popper-class="custom-popper_w-180" |
| | | ></el-tree-select> |
| | | </el-form-item> |
| | | |
| | |
| | | class="flex items-center text-blue-400 py-2 px-4 rounded-md" |
| | | :style="{ borderBottom: index !== queryForm.conditions.length - 1 ? '1px solid #e0e0e0' : 'none' }" |
| | | > |
| | | <span>{{ propertyMapRow[condition.vprop]?.title }}</span> |
| | | <span>{{ operatorMap[condition.operator]?.label }}</span> |
| | | <span>{{ condition.value }}</span> |
| | | <span>{{ `"${propertyMapRow[condition.vprop]?.title}"` }}</span> |
| | | <span> {{ operatorMap[condition.operator]?.label }} </span> |
| | | <span>{{ `"${condition.value}"` }}</span> |
| | | <el-button type="danger" link @click="removeCondition(index)" class="!flex !items-center ml-auto"> |
| | | <span class="ywifont ywicon-shanchu"></span> |
| | | </el-button> |
| | |
| | | import type { PropType } from 'vue'; |
| | | import { computed, ref } from 'vue'; |
| | | import * as XLSX from 'xlsx'; |
| | | import type { OLMap } from '/@/model/map/OLMap'; |
| | | import { advanceSearchMapElementByPost } from '/@/api/map'; |
| | | import type { OLMap } from '/@/model/map/OLMap'; |
| | | import { formatDate } from '/@/utils/formatTime'; |
| | | import { travelTree } from '/@/utils/util'; |
| | | import { deepClone } from '/@/utils/other'; |
| | | |
| | | const props = defineProps({ |
| | | olMap: { |
| | |
| | | case 'polygon': |
| | | break; |
| | | } |
| | | const conditions = queryForm.value.conditions.map((item) => { |
| | | const conditions = deepClone(queryForm.value.conditions).map((item) => { |
| | | const id = item.vprop; |
| | | const operate = item.operator; |
| | | const row = getRowById(id); |
| | |
| | | tableLoading.value = true; |
| | | const res = await advanceSearchMapElementByPost({ |
| | | extent, |
| | | max_count: 10, |
| | | max_count: 100, |
| | | time: formatDate(new Date()), |
| | | otype: queryForm.value.otype, |
| | | condtions: JSON.stringify(conditions), |
| | |
| | | } |
| | | } |
| | | </style> |
| | | |
| | | <style lang="scss"> |
| | | .custom-popper_w-180 { |
| | | .el-tree { |
| | | width: 180px !important; |
| | | } |
| | | } |
| | | </style> |