Commit 8823c0f278c0f8ca35469df53a3527d482ae630b

Authored by xp.Huang
2 parents 9135bfd5 bc144521

Merge branch 'ft' into 'main_dev'

fix(src/api): 修改url传组织id,过滤其他组织

See merge request yunteng/thingskit-view!125
... ... @@ -16,7 +16,7 @@ import { PaginationResult } from '/#/external/axios';
16 16 DEVICE_ATTR_LIST = '/device/attributes',
17 17 GET_PUBLIC_INTERFACE_ALL = '/data_view_interface/find/can_use_interfaces',
18 18 //ft
19   - GET_PUBLIC_INTERFACE_DETAIL = '/data_view_interface/get_interface_details'
  19 + GET_PUBLIC_INTERFACE_DETAIL = '/data_view_interface/get_interface_details'
20 20 }
21 21
22 22 export const getPublicInterface = async (params: Record<'page' | 'pageSize', number>) => {
... ... @@ -26,9 +26,10 @@ export const getPublicInterface = async (params: Record<'page' | 'pageSize', num
26 26 })
27 27 }
28 28
29   -export const getOrgList = async () => {
  29 +export const getOrgList = async (params:object) => {
30 30 return defHttp.get({
31   - url: Api.ORG_LISt
  31 + url: Api.ORG_LISt,
  32 + params
32 33 })
33 34 }
34 35
... ...
... ... @@ -74,10 +74,15 @@ props.chartConfig.option = {
74 74 //地图点击返回
75 75 const watchAdcode = async () => {
76 76 if (props.chartConfig.option.drillingIn) {
77   - let saveAdcode: any = saveLevelStr.parentInfo.adcode
78   - saveLevelStr.level = saveLevelStr.parentInfo.level
  77 + //如果是从右边配置里设置的,比如点击四川省,然后点击返回
  78 + const savePopParent = saveHistoryParent.value.pop()
  79 + let saveAdcode: any = savePopParent?.adcode
  80 + saveLevelStr.level = savePopParent?.level as string
  81 + if (!savePopParent) {
  82 + saveAdcode = getParentAdcode(props.chartConfig.option.mapRegion.adcode)
  83 + saveLevelStr.level = (regionMapParentArea as any)[props.chartConfig.option.mapRegion.saveSelect.levelStr]
  84 + }
79 85 if (saveAdcode === 0) {
80   - //
81 86 saveAdcode = 'china'
82 87 saveLevelStr.level = 'COUNTRY'
83 88 }
... ... @@ -110,9 +115,11 @@ const handleMap3DClick = async (params: any) => {
110 115 const adcode = item.properties.adcode
111 116 props.chartConfig.option.mapRegion.adcode = adcode
112 117 saveLevelStr.level = level
113   - saveLevelStr.parentInfo.adcode = item.properties.parent.adcode //保存上一级的地区编码
114   - saveLevelStr.parentInfo.level = (regionMapParentArea as any)[level] //保存上一级的行政级别
115 118 handleDataPoint(adcode)
  119 + saveHistoryParent.value.push({
  120 + adcode: item.properties.parent.adcode,
  121 + level: (regionMapParentArea as any)[level]
  122 + })
116 123 }
117 124 })
118 125 }
... ... @@ -123,14 +130,18 @@ const saveGeojson: any = ref({}) // 保存geojson
123 130 const chinaDefaultRegionId = ref(100000) //如果是china则adcode为100000
124 131
125 132 const saveLevelStr = reactive({
126   - // 保存行政级别和上一级的adcode和level
127   - level: '',
128   - parentInfo: {
129   - adcode: 0,
130   - level: ''
131   - }
  133 + // 地区级别
  134 + level: ''
132 135 })
133 136
  137 +//父级地区编码和级别接口
  138 +interface HistoryParentType {
  139 + adcode: number
  140 + level: string
  141 +}
  142 +
  143 +const saveHistoryParent = ref<HistoryParentType[]>([])
  144 +
134 145 //动态注册地图
135 146 const getGeojson = (regionId: any) => {
136 147 try {
... ... @@ -158,6 +169,18 @@ const getGeojson = (regionId: any) => {
158 169 }
159 170 }
160 171
  172 +
  173 +//传adcode 获取上级
  174 +const getParentAdcode = (adcode: number) => {
  175 + let adcodeNum = 100000
  176 + saveGeojson.value?.features.forEach((item: any) => {
  177 + if (item.properties.adcode === adcode) {
  178 + adcodeNum = item.properties.parent.adcode
  179 + }
  180 + })
  181 + return adcodeNum
  182 +}
  183 +
161 184 watch(
162 185 () => w.value,
163 186 (value: number) => {
... ...
... ... @@ -107,10 +107,15 @@ props.chartConfig.option = {
107 107 //地图点击返回 adcode=100000,名字必须是china
108 108 const watchAdcode = async () => {
109 109 if (props.chartConfig.option.drillingIn) {
110   - let saveAdcode: any = saveLevelStr.parentInfo.adcode
111   - saveLevelStr.level = saveLevelStr.parentInfo.level
  110 + //如果是从右边配置里设置的,比如点击四川省,然后点击返回
  111 + const savePopParent = saveHistoryParent.value.pop()
  112 + let saveAdcode: any = savePopParent?.adcode
  113 + saveLevelStr.level = savePopParent?.level as string
  114 + if (!savePopParent) {
  115 + saveAdcode = getParentAdcode(props.chartConfig.option.mapRegion.adcode)
  116 + saveLevelStr.level = (regionMapParentArea as any)[props.chartConfig.option.mapRegion.saveSelect.levelStr]
  117 + }
112 118 if (saveAdcode === 0) {
113   - //
114 119 saveAdcode = 'china'
115 120 saveLevelStr.level = 'COUNTRY'
116 121 }
... ... @@ -132,14 +137,18 @@ const saveGeojson: any = ref({}) // 保存geojson
132 137 const chinaDefaultRegionId = ref(100000) //如果是china则adcode为100000
133 138
134 139 const saveLevelStr = reactive({
135   - // 保存行政级别和上一级的adcode和level
136   - level: '',
137   - parentInfo: {
138   - adcode: 0,
139   - level: ''
140   - }
  140 + // 地区级别
  141 + level: ''
141 142 })
142 143
  144 +//父级地区编码和级别接口
  145 +interface HistoryParentType {
  146 + adcode: number
  147 + level: string
  148 +}
  149 +
  150 +const saveHistoryParent = ref<HistoryParentType[]>([])
  151 +
143 152 //动态注册地图
144 153 const getGeojson = async (regionId: any) => {
145 154 try {
... ... @@ -281,6 +290,17 @@ const regionMapParentArea = {
281 290 [areaEnum.TOWN]: areaEnum.COUNTY //镇的上一级 县或者区
282 291 }
283 292
  293 +//传adcode 获取上级
  294 +const getParentAdcode = (adcode: number) => {
  295 + let adcodeNum = 100000
  296 + saveGeojson.value?.features.forEach((item: any) => {
  297 + if (item.properties.adcode === adcode) {
  298 + adcodeNum = item.properties.parent.adcode
  299 + }
  300 + })
  301 + return adcodeNum
  302 +}
  303 +
284 304 //地图点击下钻
285 305 const handleVChartClick = async (params: any) => {
286 306 if (props.chartConfig.option.drillingIn) {
... ... @@ -291,9 +311,11 @@ const handleVChartClick = async (params: any) => {
291 311 const adcode = item.properties.adcode
292 312 props.chartConfig.option.mapRegion.adcode = adcode
293 313 saveLevelStr.level = level
294   - saveLevelStr.parentInfo.adcode = item.properties.parent.adcode //保存上一级的地区编码
295   - saveLevelStr.parentInfo.level = (regionMapParentArea as any)[level] //保存上一级的行政级别
296 314 handleDataPoint(adcode)
  315 + saveHistoryParent.value.push({
  316 + adcode: item.properties.parent.adcode,
  317 + level: (regionMapParentArea as any)[level]
  318 + })
297 319 }
298 320 })
299 321 }
... ...
1   -import { excludeParseEventKeyList, excludeParseEventValueList } from "@/enums/eventEnum"
  1 +import { excludeParseEventKeyList, excludeParseEventValueList } from '@/enums/eventEnum'
2 2
3 3 const tryRunFunction = (v: string) => {
4 4 try {
... ... @@ -30,3 +30,11 @@ export const JSONParse = (data: string) => {
30 30 return v
31 31 })
32 32 }
  33 +
  34 +//解析web url 参数
  35 +export const parseWebUrl = (str = window.location.search) => {
  36 + const reg = /([^?&=]+)=([^&]+)/g
  37 + const params = {} as any
  38 + str.replace(reg, (_, k, v) => (params[k] = v))
  39 + return params
  40 +}
... ...
... ... @@ -8,6 +8,7 @@ import { computed, onMounted, reactive, Ref, ref, unref } from "vue"
8 8 import { DictEnum } from '@/enums/external/dictEnum'
9 9 import { SelectTimeAggregationFieldEnum, SelectTimeAggregationValueTypw } from "../SelectTImeAggregation"
10 10 import { isArray } from "@/utils"
  11 +import { parseWebUrl } from "@/utils/external/utils"
11 12
12 13 const GROUP_SEPARATOR = ','
13 14
... ... @@ -102,9 +103,15 @@ export const useDynamicPublicForm = (paramsItemList: Ref<ParamsItemType[]>) => {
102 103 }, {} as BuiltInVariableRecord)
103 104 }
104 105
  106 +
  107 +
105 108 const getOrgOption = async () => {
  109 + if( !window.location.href ) return
  110 + const { organizationId } = parseWebUrl(window.location.href)
  111 + if( !organizationId) return
106 112 if (!validIsExist(BuiltInVariable.ORGANIZATION_ID)) return
107   - optionsSet[BuiltInVariable.ORGANIZATION_ID] = await getOrgList()
  113 + optionsSet[BuiltInVariable.ORGANIZATION_ID] = await getOrgList({organizationId})
  114 + console.log(optionsSet[BuiltInVariable.ORGANIZATION_ID])
108 115 }
109 116
110 117 const getDeviceProfileOption = async () => {
... ...