Sfoglia il codice sorgente

🎃 修复编译错误

快乐的梦鱼 1 giorno fa
parent
commit
11b4a1b99c

+ 3 - 3
src/components/dynamicf/Dropdown/IdAsValueTreeDropdown.vue

@@ -23,9 +23,9 @@
 </template>
 
 <script lang="ts">
-import { TreeDataItem } from "@/models/ui/TreeCommon";
-import { SelectProps } from "ant-design-vue";
-import { defineComponent, PropType } from "vue";
+import type { SelectProps } from "ant-design-vue";
+import { defineComponent, type PropType } from "vue";
+import type { TreeDataItem } from "../IdAsValueTree";
 
 export type LoadDataFun = (pid: string|number, level: number) => Promise<TreeDataItem[]>;
 export type CheckClickableFun = (item: TreeDataItem) => Promise<boolean>;

+ 63 - 2
src/components/dynamicf/IdAsValueTree.ts

@@ -1,11 +1,72 @@
-import { TreeNode } from "@/models/ui/TreeCommon";
-import { SelectProps } from "ant-design-vue";
+import type { SelectProps } from "ant-design-vue";
 
 export type LoadDataFun = (pid: string|number, level: number) => Promise<TreeNode[]>;
 export type CheckClickableFun = (item: TreeNode) => Promise<boolean>;
 
 export type GetDiaplayValue = (ref: IdAsValueTreeInterface) => string;
 export type GetRef = (ref: IdAsValueTreeInterface) => void;
+export interface TreeDataItem {
+  id: string | number;
+  pId?: number;
+  value: string | number;
+  title?: string;
+  isLeaf?: boolean;
+  selectable?: boolean;
+  checkable?: boolean;
+  disableCheckbox?: boolean;
+  disabled?: boolean;
+  level?: number;
+}
+
+export interface TreeNode {
+  id?: number;
+  pid?: number;
+  level?: number;
+
+  /**
+   * 当树为 checkable 时,设置独立节点是否展示 Checkbox
+   */
+  checkable?: boolean;
+  /**
+   * 节点的 class
+   */
+  class?: string;
+  /**
+   * 	禁掉 checkbox
+   */
+  disableCheckbox?: boolean;
+  /**
+   * 禁掉响应
+   */
+  disabled?: boolean;
+  /**
+   * 自定义图标。可接收组件,props 为当前节点 props
+   */
+  icon?: unknown;
+  /**
+   * 设置为叶子节点(设置了loadData时有效)
+   */
+  isLeaf?: boolean;
+  /**
+   * 被树的 (default)ExpandedKeys / (default)CheckedKeys / (default)SelectedKeys 属性所用。注意:整个树范围内的所有节点的 key 值不能重复!
+   */
+  key: string | number;
+  /**
+   * 设置节点是否可被选中
+   */
+  selectable?: boolean;
+  /**
+   * 节点的 style	
+   */
+  // eslint-disable-next-line @typescript-eslint/ban-types
+  style?: string|object;
+  /**
+   * 标题
+   */
+  title: string;
+
+  children?: TreeNode[],
+}
 
 /**
  * IdAsValueTree 的公共接口

+ 3 - 4
src/components/dynamicf/IdAsValueTree.vue

@@ -16,10 +16,9 @@
 </template>
 
 <script lang="ts">
-import { TreeNode } from "@/models/ui/TreeCommon";
-import { TreeProps } from "ant-design-vue";
-import { defineComponent, PropType } from "vue";
-import { CheckClickableFun, LoadDataFun } from "./IdAsValueTree";
+import type { TreeProps } from "ant-design-vue";
+import { defineComponent, type PropType } from "vue";
+import type { CheckClickableFun, LoadDataFun, TreeNode } from "./IdAsValueTree";
 
 /**
  * 使用数据的ID作为value的tree包装