|
@@ -172,6 +172,8 @@ const tempRelations = ref<Array<{
|
|
}>>([])
|
|
}>>([])
|
|
|
|
|
|
watch(selectedDevices, (newVal, oldVal) => {
|
|
watch(selectedDevices, (newVal, oldVal) => {
|
|
|
|
+ // 找出新增的设备
|
|
|
|
+ const addedDevices = newVal.filter(id => !oldVal.includes(id));
|
|
// 找出取消选择的设备
|
|
// 找出取消选择的设备
|
|
const removedDevices = oldVal.filter(id => !newVal.includes(id))
|
|
const removedDevices = oldVal.filter(id => !newVal.includes(id))
|
|
|
|
|
|
@@ -180,6 +182,17 @@ watch(selectedDevices, (newVal, oldVal) => {
|
|
r => !removedDevices.includes(r.deviceIds[0])
|
|
r => !removedDevices.includes(r.deviceIds[0])
|
|
)
|
|
)
|
|
|
|
|
|
|
|
+ // 为新增的设备创建关联记录
|
|
|
|
+ if (addedDevices.length > 0) {
|
|
|
|
+ const addedDeviceObjects = simpleDevices.value.filter(d =>
|
|
|
|
+ addedDevices.includes(d.id)
|
|
|
|
+ );
|
|
|
|
+ addedDeviceObjects.forEach(device => {
|
|
|
|
+ // 使用当前已选的责任人和调整原因
|
|
|
|
+ updateDeviceRelation(device, selectedUsers.value);
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
// 当没有选中设备时清空其他选项
|
|
// 当没有选中设备时清空其他选项
|
|
if (newVal.length === 0) {
|
|
if (newVal.length === 0) {
|
|
selectedUsers.value = []
|
|
selectedUsers.value = []
|
|
@@ -274,7 +287,8 @@ const updateDeviceRelation = (device: IotDeviceVO, userIds: number[]) => {
|
|
}
|
|
}
|
|
|
|
|
|
const existIndex = tempRelations.value.findIndex(
|
|
const existIndex = tempRelations.value.findIndex(
|
|
- r => r.deviceIds[0] === device.id
|
|
|
|
|
|
+ // r => r.deviceIds[0] === device.id
|
|
|
|
+ r => r.deviceIds.includes(device.id)
|
|
)
|
|
)
|
|
|
|
|
|
if (existIndex > -1) {
|
|
if (existIndex > -1) {
|