feat: ns-tree-api补充粘性定位
This commit is contained in:
@@ -1,3 +1,5 @@
|
|||||||
|
import { routerConfig } from '/nerv-lib/saas/config/router.config';
|
||||||
|
|
||||||
export enum ResultEnum {
|
export enum ResultEnum {
|
||||||
SUCCESS = 0,
|
SUCCESS = 0,
|
||||||
ERROR = 1,
|
ERROR = 1,
|
||||||
@@ -20,3 +22,11 @@ export enum ContentTypeEnum {
|
|||||||
// form-data upload
|
// form-data upload
|
||||||
FORM_DATA = 'multipart/form-data;charset=UTF-8',
|
FORM_DATA = 'multipart/form-data;charset=UTF-8',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const errCodeMap = new Map<number, any>([
|
||||||
|
[13, ''],
|
||||||
|
[1, ''],
|
||||||
|
[11, ''],
|
||||||
|
[3005, ''],
|
||||||
|
[10086, () => routerConfig.logout()],
|
||||||
|
]);
|
||||||
|
@@ -39,6 +39,7 @@ export const treeProps = {
|
|||||||
defaultExpandAll: PropTypes.bool.def(true),
|
defaultExpandAll: PropTypes.bool.def(true),
|
||||||
resultField: PropTypes.string.def('data'),
|
resultField: PropTypes.string.def('data'),
|
||||||
header: PropTypes.object,
|
header: PropTypes.object,
|
||||||
|
isSticky: PropTypes.bool.def(true),
|
||||||
transform: {
|
transform: {
|
||||||
type: Function,
|
type: Function,
|
||||||
default: (data: any) => data,
|
default: (data: any) => data,
|
||||||
|
@@ -1,11 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<a-spin :spinning="treeState.loading">
|
<a-spin :spinning="treeState.loading">
|
||||||
<div v-if="header" class="ns-tree-title">
|
<div class="ns-tree-form">
|
||||||
<ns-icon :name="header.icon" size="14" />
|
<div v-if="header" class="ns-tree-title">
|
||||||
<span>{{ header.title }}</span>
|
<ns-icon :name="header.icon" size="14" />
|
||||||
</div>
|
<span>{{ header.title }}</span>
|
||||||
<div v-if="!formConfig?.schema">
|
</div>
|
||||||
<ns-form ref="formElRef" v-bind="formConfig" :model="formModel" @finish="formFinish" />
|
<div v-if="!formConfig?.schema">
|
||||||
|
<ns-form ref="formElRef" v-bind="formConfig" :model="formModel" @finish="formFinish" />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<ns-tree v-if="treeData?.length" v-bind="getBindValue" v-model:selectedKeys="selectedKeys">
|
<ns-tree v-if="treeData?.length" v-bind="getBindValue" v-model:selectedKeys="selectedKeys">
|
||||||
@@ -49,6 +51,9 @@
|
|||||||
...props.formConfig,
|
...props.formConfig,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
const isSticky: any = computed(() => {
|
||||||
|
return props.isSticky ? 'sticky' : 'static';
|
||||||
|
});
|
||||||
const formFinish = debounce((data: object) => {
|
const formFinish = debounce((data: object) => {
|
||||||
getData(data);
|
getData(data);
|
||||||
}, 200);
|
}, 200);
|
||||||
@@ -87,26 +92,37 @@
|
|||||||
getData();
|
getData();
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
@gap: 16px;
|
||||||
:deep(.ant-form-item) {
|
:deep(.ant-form-item) {
|
||||||
margin-bottom: 16px;
|
margin-bottom: @gap;
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.ns-form::after) {
|
:deep(.ns-form::after) {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
.ns-tree-form {
|
||||||
|
position: v-bind(isSticky);
|
||||||
|
top: 0;
|
||||||
|
background-color: @white;
|
||||||
|
z-index: 2;
|
||||||
|
& ~ div {
|
||||||
|
padding: 0 @gap !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.ns-tree-title {
|
.ns-tree-title {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
user-select: text;
|
user-select: text;
|
||||||
padding: 16px;
|
padding: @gap;
|
||||||
margin-bottom: 16px;
|
margin-bottom: @gap;
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
border-bottom: 1px solid #e9e9e9;
|
border-bottom: 1px solid #e9e9e9;
|
||||||
|
|
||||||
> span {
|
> span {
|
||||||
padding-left: 6px;
|
padding-left: 6px;
|
||||||
}
|
}
|
||||||
& ~ div {
|
& ~ div {
|
||||||
padding: 0 16px !important;
|
padding: 0 @gap !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@@ -77,7 +77,7 @@
|
|||||||
|
|
||||||
::-webkit-scrollbar {
|
::-webkit-scrollbar {
|
||||||
width: 6px;
|
width: 6px;
|
||||||
height: 8px;
|
height: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
::-webkit-scrollbar-track {
|
::-webkit-scrollbar-track {
|
||||||
|
Reference in New Issue
Block a user