Showing
1 changed file
with
17 additions
and
47 deletions
| @@ -21,7 +21,6 @@ | @@ -21,7 +21,6 @@ | ||
| 21 | placeholder="请选择" | 21 | placeholder="请选择" |
| 22 | notFoundContent="请选择" | 22 | notFoundContent="请选择" |
| 23 | :options="selectOptions" | 23 | :options="selectOptions" |
| 24 | - @change="handleChange(item)" | ||
| 25 | allowClear | 24 | allowClear |
| 26 | /> | 25 | /> |
| 27 | </td> | 26 | </td> |
| @@ -45,6 +44,7 @@ | @@ -45,6 +44,7 @@ | ||
| 45 | notFoundContent="请选择" | 44 | notFoundContent="请选择" |
| 46 | :options="entityOptions" | 45 | :options="entityOptions" |
| 47 | allowClear | 46 | allowClear |
| 47 | + @change="handleDeviceChange(item)" | ||
| 48 | /> | 48 | /> |
| 49 | <Select | 49 | <Select |
| 50 | v-else-if="item.key === 'keys'" | 50 | v-else-if="item.key === 'keys'" |
| @@ -171,58 +171,15 @@ | @@ -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 | const handleOrgnationChange = async (e) => { | 174 | const handleOrgnationChange = async (e) => { |
| 175 | + let deviceProfileId = ''; | ||
| 220 | tableTestArray.content.forEach((f) => { | 176 | tableTestArray.content.forEach((f) => { |
| 221 | if (f.key === 'entityId') { | 177 | if (f.key === 'entityId') { |
| 222 | f.value = null; | 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 | const getEntityOptions = async (organizationId: string, deviceProfileId?: string) => { | 185 | const getEntityOptions = async (organizationId: string, deviceProfileId?: string) => { |
| @@ -240,16 +197,26 @@ | @@ -240,16 +197,26 @@ | ||
| 240 | }; | 197 | }; |
| 241 | 198 | ||
| 242 | const handleValueChange = (e) => { | 199 | const handleValueChange = (e) => { |
| 200 | + let organizationId = ''; | ||
| 243 | if (e.key === 'deviceProfileId') { | 201 | if (e.key === 'deviceProfileId') { |
| 244 | tableTestArray.content.forEach((f) => { | 202 | tableTestArray.content.forEach((f) => { |
| 245 | if (f.key === 'keys') { | 203 | if (f.key === 'keys') { |
| 246 | f.value = null; | 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 | getAttributeOptions({ deviceProfileId: e.value }); | 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 | const getValue = () => { | 221 | const getValue = () => { |
| 255 | return tableTestArray.content; | 222 | return tableTestArray.content; |
| @@ -261,6 +228,9 @@ | @@ -261,6 +228,9 @@ | ||
| 261 | </script> | 228 | </script> |
| 262 | 229 | ||
| 263 | <style scoped lang="less"> | 230 | <style scoped lang="less"> |
| 231 | + :deep(.ant-select-selector) { | ||
| 232 | + width: 12vw !important; | ||
| 233 | + } | ||
| 264 | @table-color: #e5e7eb; | 234 | @table-color: #e5e7eb; |
| 265 | 235 | ||
| 266 | .table-border-color { | 236 | .table-border-color { |