Browse Source

fixed bug

typings
npmrun 3 years ago
parent
commit
28612aa377
  1. 2
      package.json
  2. 11
      packages/build/build.ts
  3. 1
      packages/components/tree/better-directory-sort.ts
  4. 31
      packages/components/tree/tree.vue
  5. 28
      packages/playground/src/dev/tree.vue
  6. 2
      packages/princess-ui/package.json

2
package.json

@ -19,7 +19,7 @@
"doc:serve": "pnpm run -C docs serve", "doc:serve": "pnpm run -C docs serve",
"build": "pnpm run -C packages/build build && pnpm run -C packages/theme-chalk build && pnpm run -C packages/princess-ui build", "build": "pnpm run -C packages/build build && pnpm run -C packages/theme-chalk build && pnpm run -C packages/princess-ui build",
"theme": "pnpm run -C packages/theme-chalk build", "theme": "pnpm run -C packages/theme-chalk build",
"release": "cd packages/princess-ui & npm publish" "release": "npm run build & cd packages/princess-ui & npm publish"
}, },
"keywords": [], "keywords": [],
"author": "", "author": "",

11
packages/build/build.ts

@ -46,10 +46,13 @@ rimraf(getOutput("lib"), async err => {
// } // }
// dts.bundle(dtsOptions) // dts.bundle(dtsOptions)
// console.log(chalk.red("生成完毕,开始清理残余")) // console.log(chalk.red("生成完毕,开始清理残余"))
fs.moveSync(getOutput("lib/packages/components/components.d.ts"), getOutput("lib/components.d.ts"), { overwrite: true }) fs.moveSync(getOutput("lib/components/components.d.ts"), getOutput("lib/components.d.ts"), { overwrite: true })
fs.moveSync(getOutput("lib/packages/hooks"), getOutput("lib/hooks"), { overwrite: true }) fs.moveSync(getOutput("lib/all.d.ts"), getOutput("lib/index.d.ts"), { overwrite: true })
fs.moveSync(getOutput("lib/packages/all.d.ts"), getOutput("lib/index.d.ts"), { overwrite: true }) rimraf.sync(getOutput('lib/components'))
rimraf.sync(getOutput('lib/packages')) // fs.moveSync(getOutput("lib/packages/components/components.d.ts"), getOutput("lib/components.d.ts"), { overwrite: true })
// fs.moveSync(getOutput("lib/packages/hooks"), getOutput("lib/hooks"), { overwrite: true })
// fs.moveSync(getOutput("lib/packages/all.d.ts"), getOutput("lib/index.d.ts"), { overwrite: true })
// rimraf.sync(getOutput('lib/packages'))
// console.log(chalk.green("残余清理完毕")) // console.log(chalk.green("残余清理完毕"))
console.log(chalk.green("d.ts生成完毕")) console.log(chalk.green("d.ts生成完毕"))
process.cwd = oldCwdFn process.cwd = oldCwdFn

1
packages/components/tree/better-directory-sort.ts

@ -32,6 +32,7 @@ function createBetterDirectorySort(opts: Opts = {}): Comparator<Entity> {
// directories should be placed before files // directories should be placed before files
if (a.isDirectory && !b.isDirectory) return -1; if (a.isDirectory && !b.isDirectory) return -1;
if (b.isDirectory && !a.isDirectory) return 1; if (b.isDirectory && !a.isDirectory) return 1;
if (!a.name) return 1;
// dotsfiles should be placed before non-dotfiles // dotsfiles should be placed before non-dotfiles
let aDot = a.name[0] === "."; let aDot = a.name[0] === ".";

31
packages/components/tree/tree.vue

@ -14,7 +14,7 @@
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { provide, ref, renderSlot, useSlots, getCurrentInstance } from "vue" import { provide, ref, renderSlot, useSlots, getCurrentInstance, watch } from "vue"
import node from './node.vue' import node from './node.vue'
import type { INiuTreeData, INiuTreeKey } from './type' import type { INiuTreeData, INiuTreeKey } from './type'
import { ENiuTreeStatus } from './type' import { ENiuTreeStatus } from './type'
@ -30,19 +30,7 @@ import {
} from './util' } from './util'
import { betterDirectorySort } from "./better-directory-sort" import { betterDirectorySort } from "./better-directory-sort"
import { computed } from "@vue/reactivity" import { cloneDeep } from "lodash"
const sortedList = computed(() => {
if (props.sort) {
return props.list.sort((a, b) => {
return betterDirectorySort(
{ name: a.title, isDirectory: a.isFolder },
{ name: b.title, isDirectory: b.isFolder },
);
});
}
return props.list
})
const isDrag = ref(false) const isDrag = ref(false)
function onDragover2() { function onDragover2() {
@ -102,6 +90,21 @@ provide("tree:data", {
parentKey: ref<INiuTreeKey>() parentKey: ref<INiuTreeKey>()
}) })
const sortedList = ref([])
watch(()=>props.list, ()=>{
if (props.sort) {
sortedList.value = props.list.sort((a, b) => {
return betterDirectorySort(
{ name: a.title, isDirectory: a.isFolder },
{ name: b.title, isDirectory: b.isFolder },
);
})
}else{
sortedList.value = props.list
}
}, { deep: true, immediate: true })
function onExpand(item: INiuTreeData) { function onExpand(item: INiuTreeData) {
emit("expand", item) emit("expand", item)
} }

28
packages/playground/src/dev/tree.vue

@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref, useSlots } from "vue" import { ref, useSlots } from "vue"
import { convertTreeData, ENiuTreeStatus, INiuTreeData } from "@princess-ui/components/tree" import { convert, convertTreeData, ENiuTreeStatus, INiuTreeData } from "@princess-ui/components/tree"
// import "@princess-ui/theme-chalk/dist/ps-tree.css" // import "@princess-ui/theme-chalk/dist/ps-tree.css"
const list = ref(convertTreeData([ const list = ref(convertTreeData([
@ -55,10 +55,32 @@ const list2 = ref(convertTreeData([
title: "basdbb" title: "basdbb"
}, },
])) ]))
function add() {
list2.value?.push(
convert({
key: "2222222",
title: "",
isNew: true,
isEdit: true,
}),
)
}
function addF() {
list2.value?.push(
convert({
key: "3333333",
title: "",
isNew: true,
isEdit: true,
children: [],
}),
)
}
function onExpand(node: INiuTreeData) { function onExpand(node: INiuTreeData) {
console.log(node); console.log(node);
} }
const dropFn = (status: ENiuTreeStatus, data: INiuTreeData<any>, list: INiuTreeData<any>[]): Promise<boolean> => { const dropFn = (status: ENiuTreeStatus, data: INiuTreeData<any>, list: INiuTreeData<any>[]): Promise<boolean> => {
return new Promise((resolve) => { return new Promise((resolve) => {
setTimeout(() => { setTimeout(() => {
@ -82,8 +104,10 @@ const dropFn = (status: ENiuTreeStatus, data: INiuTreeData<any>, list: INiuTreeD
</template> </template>
</ps-tree> </ps-tree>
</Panel> </Panel>
<button @click="add"> add file </button>
<button @click="addF"> add folder </button>
<Panel name="Tree" desc="延迟2000ms执行操作"> <Panel name="Tree" desc="延迟2000ms执行操作">
<ps-tree sort @expand="onExpand" :dropFn="dropFn" :list="list2" auto-expand> <ps-tree sort @expand="onExpand" :list="list2" auto-expand>
<template #default="{ data, deep }"> <template #default="{ data, deep }">
<div :style="{ <div :style="{
marginLeft: deep * 10 + 'px', marginLeft: deep * 10 + 'px',

2
packages/princess-ui/package.json

@ -1,6 +1,6 @@
{ {
"name": "princess-ui", "name": "princess-ui",
"version": "0.0.8-beta.7", "version": "0.0.8-beta.12",
"description": "a vue3 ui, just for personal use", "description": "a vue3 ui, just for personal use",
"scripts": { "scripts": {
"build": "tsc ./PrincessResolver.ts --skipLibCheck --esModuleInterop" "build": "tsc ./PrincessResolver.ts --skipLibCheck --esModuleInterop"

Loading…
Cancel
Save