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