fix: bug#16329、16310、16287、16234、16135

This commit is contained in:
leiqiaochu 2023-07-13 14:43:48 +08:00
parent d63766fef6
commit fbc0381151
8 changed files with 104 additions and 78 deletions

View File

@ -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>

View File

@ -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;

View File

@ -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>

View File

@ -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>

View File

@ -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(() => {

View File

@ -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>

View File

@ -27,7 +27,7 @@ const handleOk = () => {
}; };
const cancel = () => { const cancel = () => {
departmentStore.setProductId() // departmentStore.setProductId()
emits('update:visible',false) emits('update:visible',false)
} }

View File

@ -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>