Showing
1 changed file
with
17 additions
and
47 deletions
| ... | ... | @@ -21,7 +21,6 @@ | 
| 21 | 21 | placeholder="请选择" | 
| 22 | 22 | notFoundContent="请选择" | 
| 23 | 23 | :options="selectOptions" | 
| 24 | - @change="handleChange(item)" | |
| 25 | 24 | allowClear | 
| 26 | 25 | /> | 
| 27 | 26 | </td> | 
| ... | ... | @@ -45,6 +44,7 @@ | 
| 45 | 44 | notFoundContent="请选择" | 
| 46 | 45 | :options="entityOptions" | 
| 47 | 46 | allowClear | 
| 47 | + @change="handleDeviceChange(item)" | |
| 48 | 48 | /> | 
| 49 | 49 | <Select | 
| 50 | 50 | v-else-if="item.key === 'keys'" | 
| ... | ... | @@ -171,58 +171,15 @@ | 
| 171 | 171 | }); | 
| 172 | 172 | }; | 
| 173 | 173 | |
| 174 | - //TODO 待优化 Select互斥 | |
| 175 | - const handleChange = async (e) => { | |
| 176 | - selectOptions.value.forEach((ele) => { | |
| 177 | - ele.disabled = false; | |
| 178 | - tableTestArray.content.forEach((element) => { | |
| 179 | - if (element.key === e.key && element.key !== 'scope') { | |
| 180 | - element.value = null; | |
| 181 | - } | |
| 182 | - if (element.key === ele.value && element.key !== 'scope') { | |
| 183 | - ele.disabled = true; | |
| 184 | - } | |
| 185 | - }); | |
| 186 | - }); | |
| 187 | - //获取对应项 | |
| 188 | - if (e.key === 'deviceProfileId') { | |
| 189 | - const { options } = await useApi(e.key); | |
| 190 | - valueOptions.value = options; | |
| 191 | - } else if (e.key === 'organizationId') { | |
| 192 | - const { options } = await useApi(e.key); | |
| 193 | - treeData.value = options as any; | |
| 194 | - } else if (e.key === 'entityId') { | |
| 195 | - const getOrganizationIds = tableTestArray.content | |
| 196 | - .map((f) => { | |
| 197 | - if (f.key === 'organizationId') { | |
| 198 | - return f.value; | |
| 199 | - } | |
| 200 | - }) | |
| 201 | - .filter(Boolean); | |
| 202 | - if (getOrganizationIds.length === 0) return; | |
| 203 | - getEntityOptions(getOrganizationIds?.at(-1)); | |
| 204 | - } else if (e.key === 'keys') { | |
| 205 | - const getIds = tableTestArray.content | |
| 206 | - .map((f) => { | |
| 207 | - if (f.key === 'deviceProfileId') { | |
| 208 | - return f.value; | |
| 209 | - } | |
| 210 | - }) | |
| 211 | - .filter(Boolean); | |
| 212 | - if (getIds.length === 0) return; | |
| 213 | - getAttributeOptions({ deviceProfileId: getIds?.at(-1) }); | |
| 214 | - } else if (e.key === 'date') { | |
| 215 | - valueOptions.value = []; | |
| 216 | - } | |
| 217 | - }; | |
| 218 | - | |
| 219 | 174 | const handleOrgnationChange = async (e) => { | 
| 175 | + let deviceProfileId = ''; | |
| 220 | 176 | tableTestArray.content.forEach((f) => { | 
| 221 | 177 | if (f.key === 'entityId') { | 
| 222 | 178 | f.value = null; | 
| 223 | 179 | } | 
| 180 | + if (f.key === 'deviceProfileId') deviceProfileId = f.value; | |
| 224 | 181 | }); | 
| 225 | - getEntityOptions(e.value); | |
| 182 | + getEntityOptions(e.value, deviceProfileId); | |
| 226 | 183 | }; | 
| 227 | 184 | |
| 228 | 185 | const getEntityOptions = async (organizationId: string, deviceProfileId?: string) => { | 
| ... | ... | @@ -240,16 +197,26 @@ | 
| 240 | 197 | }; | 
| 241 | 198 | |
| 242 | 199 | const handleValueChange = (e) => { | 
| 200 | + let organizationId = ''; | |
| 243 | 201 | if (e.key === 'deviceProfileId') { | 
| 244 | 202 | tableTestArray.content.forEach((f) => { | 
| 245 | 203 | if (f.key === 'keys') { | 
| 246 | 204 | f.value = null; | 
| 247 | 205 | } | 
| 206 | + if (f.key === 'organizationId') organizationId = f.value; | |
| 207 | + if (f.key === 'entityId') f.value = null; | |
| 248 | 208 | }); | 
| 249 | 209 | getAttributeOptions({ deviceProfileId: e.value }); | 
| 210 | + if (organizationId !== '') { | |
| 211 | + getEntityOptions(organizationId, e.value); | |
| 212 | + } | |
| 250 | 213 | } | 
| 251 | 214 | }; | 
| 252 | 215 | |
| 216 | + const handleDeviceChange = (e) => { | |
| 217 | + console.log(e); | |
| 218 | + }; | |
| 219 | + | |
| 253 | 220 | //获取数据 | 
| 254 | 221 | const getValue = () => { | 
| 255 | 222 | return tableTestArray.content; | 
| ... | ... | @@ -261,6 +228,9 @@ | 
| 261 | 228 | </script> | 
| 262 | 229 | |
| 263 | 230 | <style scoped lang="less"> | 
| 231 | + :deep(.ant-select-selector) { | |
| 232 | + width: 12vw !important; | |
| 233 | + } | |
| 264 | 234 | @table-color: #e5e7eb; | 
| 265 | 235 | |
| 266 | 236 | .table-border-color { | ... | ... |