fix: bug#16329、16310、16287、16234、16135
This commit is contained in:
parent
d63766fef6
commit
fbc0381151
|
@ -244,4 +244,10 @@ watch(
|
|||
</script>
|
||||
<style lang="less" scoped>
|
||||
@import './index.less';
|
||||
:deep(.live-player-stretch-btn){
|
||||
display: none;
|
||||
}
|
||||
:deep(.vjs-icon-spinner){
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -187,6 +187,7 @@ const columns = [
|
|||
options: [
|
||||
{ label: '在线', value: 'online' },
|
||||
{ label: '离线', value: 'offline' },
|
||||
{ label: '禁用', value: 'notActive'}
|
||||
],
|
||||
handleValue: (v: any) => {
|
||||
return v;
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
:loadData="onLoadData"
|
||||
:fieldNames="{ title: 'name', key: 'id' }"
|
||||
@select="onSelect"
|
||||
v-model:expandedKeys="expandedKeys"
|
||||
>
|
||||
<template #icon="{ id, selected }">
|
||||
<AIcon
|
||||
|
@ -26,6 +27,12 @@ type Emits = {
|
|||
(e: 'onSelect', data: { dId: string; cId: string }): void;
|
||||
};
|
||||
|
||||
/**
|
||||
* 默认展开第一个
|
||||
*/
|
||||
const expandedKeys = ref<any[]>([]); // 展开的key
|
||||
// const selectedKeys = ref<any[]>([]); // 选中的key
|
||||
|
||||
const emit = defineEmits<Emits>();
|
||||
|
||||
interface DataNode {
|
||||
|
@ -78,6 +85,16 @@ const getDeviceList = async () => {
|
|||
...extra,
|
||||
};
|
||||
});
|
||||
getChildren(treeData.value[0].id,{
|
||||
pageIndex: 0,
|
||||
pageSize: 100,
|
||||
terms: [
|
||||
{
|
||||
column: 'deviceId',
|
||||
value: treeData.value[0].id,
|
||||
},
|
||||
],
|
||||
},true)
|
||||
}
|
||||
};
|
||||
getDeviceList();
|
||||
|
@ -118,7 +135,7 @@ const updateTreeData = (
|
|||
* @param key
|
||||
* @param params
|
||||
*/
|
||||
const getChildren = (key: any, params: any): Promise<any> => {
|
||||
const getChildren = (key: any, params: any, first?:any): Promise<any> => {
|
||||
return new Promise(async (resolve) => {
|
||||
const res = await cascadeApi.queryChannelList(params);
|
||||
if (res.status === 200) {
|
||||
|
@ -141,6 +158,11 @@ const getChildren = (key: any, params: any): Promise<any> => {
|
|||
});
|
||||
}, 50);
|
||||
}
|
||||
if(first){
|
||||
expandedKeys.value.push(treeData.value[0].id)
|
||||
// selectedKeys.value.push(treeData.value[0].children[0].id)
|
||||
// emit('onSelect', { dId: treeData.value[0].children[0].deviceId, cId: treeData.value[0].children[0].channelId });
|
||||
}
|
||||
resolve(res.result);
|
||||
}
|
||||
});
|
||||
|
@ -169,6 +191,7 @@ const onLoadData = ({ key, children }: any): Promise<void> => {
|
|||
resolve();
|
||||
});
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
|
|
|
@ -51,6 +51,8 @@ const props = defineProps({
|
|||
},
|
||||
});
|
||||
|
||||
|
||||
const data = ref();
|
||||
const tableRef = ref();
|
||||
|
||||
const columns = [
|
||||
|
@ -69,14 +71,15 @@ const columns = [
|
|||
fixed: 'right',
|
||||
},
|
||||
];
|
||||
const dataSource = reactive({
|
||||
table:props.headers
|
||||
});
|
||||
const handleHeader= (data:any) =>{
|
||||
return data.map((item:any)=>{
|
||||
return {...item,_key: randomString()}
|
||||
})
|
||||
}
|
||||
const dataSource = reactive({
|
||||
table:props.headers.length > 0 ? handleHeader(props.headers) : ''
|
||||
});
|
||||
|
||||
watch(()=>JSON.stringify(props.headers),()=>{
|
||||
dataSource.table = handleHeader(props.headers)
|
||||
})
|
||||
|
@ -85,7 +88,7 @@ const handleDelete = (id: number) => {
|
|||
dataSource.table.splice(idx, 1);
|
||||
};
|
||||
const valueChange = () =>{
|
||||
return dataSource.table.map((item:any)=>{
|
||||
data.value = dataSource.table.map((item:any)=>{
|
||||
const {_key,...extra}=item;
|
||||
return extra
|
||||
})
|
||||
|
@ -98,14 +101,17 @@ const handleAdd = () => {
|
|||
});
|
||||
};
|
||||
const validate = () =>{
|
||||
return new Promise((resolve:any,reject:any)=>{
|
||||
tableRef.value.validate().then(()=>{
|
||||
return valueChange()
|
||||
valueChange()
|
||||
resolve(data.value)
|
||||
}).catch((err:any)=>{
|
||||
return false
|
||||
reject(false)
|
||||
})
|
||||
})
|
||||
}
|
||||
defineExpose({
|
||||
validate
|
||||
validate,
|
||||
})
|
||||
</script>
|
||||
|
||||
|
|
|
@ -546,7 +546,34 @@ const resetPublicFiles = () => {
|
|||
*/
|
||||
const btnLoading = ref<boolean>(false);
|
||||
const handleSubmit = () => {
|
||||
if(editTable.value.validate()){
|
||||
if(formData.value.type === 'webhook') {
|
||||
Promise.all([editTable.value.validate(),validate()]).then(async (result:any) => {
|
||||
formData.value.configuration.headers = result[0]
|
||||
btnLoading.value = true;
|
||||
let res;
|
||||
if (!formData.value.id) {
|
||||
res = await configApi.save(formData.value);
|
||||
} else {
|
||||
res = await configApi.update(formData.value);
|
||||
}
|
||||
if (res?.success) {
|
||||
onlyMessage('保存成功');
|
||||
if (route.query?.notifyType) {
|
||||
// @ts-ignore
|
||||
window?.onTabSaveSuccess(res.result);
|
||||
setTimeout(() => window.close(), 300);
|
||||
} else {
|
||||
router.back();
|
||||
}
|
||||
}
|
||||
})
|
||||
.catch((err:any) => {
|
||||
console.log('err: ', err);
|
||||
})
|
||||
.finally(() => {
|
||||
btnLoading.value = false;
|
||||
});
|
||||
}else{
|
||||
validate()
|
||||
.then(async () => {
|
||||
btnLoading.value = true;
|
||||
|
@ -567,65 +594,13 @@ const handleSubmit = () => {
|
|||
}
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
.catch((err:any) => {
|
||||
console.log('err: ', err);
|
||||
})
|
||||
.finally(() => {
|
||||
btnLoading.value = false;
|
||||
});
|
||||
}
|
||||
// Promise.all([validate(),editTable.value.validate()]).then(async()=>{
|
||||
// btnLoading.value = true;
|
||||
// let res;
|
||||
// if (!formData.value.id) {
|
||||
// res = await configApi.save(formData.value);
|
||||
// } else {
|
||||
// res = await configApi.update(formData.value);
|
||||
// }
|
||||
// if (res?.success) {
|
||||
// onlyMessage('保存成功');
|
||||
// if (route.query?.notifyType) {
|
||||
// // @ts-ignore
|
||||
// window?.onTabSaveSuccess(res.result);
|
||||
// setTimeout(() => window.close(), 300);
|
||||
// } else {
|
||||
// router.back();
|
||||
// }
|
||||
// }
|
||||
// }) .catch((err) => {
|
||||
// console.log('err: ', err);
|
||||
// })
|
||||
// .finally(() => {
|
||||
// btnLoading.value = false;
|
||||
// });
|
||||
// validate()
|
||||
// .then(async () => {
|
||||
// const a = editTable.value.validate();
|
||||
// console.log(a);
|
||||
// btnLoading.value = true;
|
||||
// let res;
|
||||
// if (!formData.value.id) {
|
||||
// res = await configApi.save(formData.value);
|
||||
// } else {
|
||||
// res = await configApi.update(formData.value);
|
||||
// }
|
||||
// if (res?.success) {
|
||||
// onlyMessage('保存成功');
|
||||
// if (route.query?.notifyType) {
|
||||
// // @ts-ignore
|
||||
// window?.onTabSaveSuccess(res.result);
|
||||
// setTimeout(() => window.close(), 300);
|
||||
// } else {
|
||||
// router.back();
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
// .catch((err) => {
|
||||
// console.log('err: ', err);
|
||||
// })
|
||||
// .finally(() => {
|
||||
// btnLoading.value = false;
|
||||
// });
|
||||
};
|
||||
|
||||
watchEffect(() => {
|
||||
|
|
|
@ -141,15 +141,18 @@ const confirm = () => {
|
|||
}));
|
||||
|
||||
// 分配产品资产后, 进入设备资产分配
|
||||
departmentStore.setProductId(table.selectedRows.map((item: any) => item.id));
|
||||
// departmentStore.setProductId(table.selectedRows.map((item: any) => item.id));
|
||||
|
||||
loading.value = true;
|
||||
bindDeviceOrProductList_api(props.assetType, params)
|
||||
.then(() => {
|
||||
onlyMessage('操作成功');
|
||||
emits('confirm');
|
||||
emits('update:visible', false);
|
||||
emits('next',table.selectedRows.map((item: any) => item.id))
|
||||
if(props.assetType === 'device'){
|
||||
departmentStore.setProductId(undefined)
|
||||
}
|
||||
emits('update:visible', false);
|
||||
})
|
||||
.finally(() => {
|
||||
loading.value = false;
|
||||
|
@ -185,6 +188,11 @@ const searchColumns = computed(() => {
|
|||
} else if (item.search && 'first' in item.search) {
|
||||
delete item.search.first
|
||||
}
|
||||
}
|
||||
else{
|
||||
if (item.dataIndex === 'productName'){
|
||||
item.search.defaultOnceValue = ''
|
||||
}
|
||||
}
|
||||
return item
|
||||
})
|
||||
|
@ -459,18 +467,18 @@ const selectAll = (selected: Boolean, selectedRows: any,changeRows:any) => {
|
|||
}
|
||||
const cancel = () => {
|
||||
departmentStore.setProductId(undefined)
|
||||
console.log(departmentStore.productId)
|
||||
emits('update:visible', false)
|
||||
}
|
||||
|
||||
const search = (query: any) => {
|
||||
queryParams.value = query
|
||||
}
|
||||
onUnmounted(()=>{
|
||||
if(props.assetType ==='device'){
|
||||
departmentStore.setProductId(undefined)
|
||||
}
|
||||
console.log(departmentStore.productId)
|
||||
})
|
||||
// onUnmounted(()=>{
|
||||
// if(props.assetType ==='device'){
|
||||
// departmentStore.setProductId(undefined)
|
||||
// }
|
||||
// })
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
|
|
|
@ -27,7 +27,7 @@ const handleOk = () => {
|
|||
};
|
||||
|
||||
const cancel = () => {
|
||||
departmentStore.setProductId()
|
||||
// departmentStore.setProductId()
|
||||
emits('update:visible',false)
|
||||
}
|
||||
|
||||
|
|
|
@ -219,6 +219,7 @@
|
|||
:all-permission="tableData.permissionList"
|
||||
asset-type="product"
|
||||
@confirm="table.addConfirm"
|
||||
@next="nextAction"
|
||||
/>
|
||||
<EditPermissionDialog
|
||||
v-if="dialogs.editShow"
|
||||
|
@ -230,12 +231,11 @@
|
|||
asset-type="product"
|
||||
:defaultPermission="tableData.defaultPermission"
|
||||
@confirm="table.refresh"
|
||||
@next="next"
|
||||
/>
|
||||
<NextDialog
|
||||
v-if="dialogs.nextShow"
|
||||
v-model:visible="dialogs.nextShow"
|
||||
@confirm="emits('openDeviceBind')"
|
||||
@confirm="nextConfirm"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -256,9 +256,10 @@ import {
|
|||
getBindingsPermission,
|
||||
} from '@/api/system/department';
|
||||
import { intersection } from 'lodash-es';
|
||||
|
||||
import { useDepartmentStore } from '@/store/department';
|
||||
const permission = 'system/Department';
|
||||
|
||||
const departmentStore = useDepartmentStore();
|
||||
const emits = defineEmits(['openDeviceBind']);
|
||||
const props = defineProps<{
|
||||
parentId: string;
|
||||
|
@ -614,8 +615,14 @@ watch(
|
|||
if (!val) tableData.selectedRows = [];
|
||||
},
|
||||
);
|
||||
const next = (data:any) =>{
|
||||
let Temporary:any = '';
|
||||
|
||||
const nextAction = (data:any) =>{
|
||||
Temporary = data
|
||||
}
|
||||
const nextConfirm = () =>{
|
||||
departmentStore.setProductId(Temporary);
|
||||
emits('openDeviceBind')
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
Loading…
Reference in New Issue