diff --git a/package-lock.json b/package-lock.json index 0c5791e..8e9f9b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,7 @@ "pinia-persistedstate-plugin": "^0.1.0", "pinia-plugin-persistedstate": "^3.1.0", "vue": "^3.2.47", + "vue-draggable-plus": "^0.6.1", "vue-i18n": "^11.2.8", "vue-router": "^4.1.6" }, @@ -864,6 +865,12 @@ "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", "dev": true }, + "node_modules/@types/sortablejs": { + "version": "1.15.9", + "resolved": "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.9.tgz", + "integrity": "sha512-7HP+rZGE2p886PKV9c9OJzLBI6BBJu1O7lJGYnPyG3fS4/duUCcngkNCjsLwIMV+WMqANe3tt4irrXHSIe68OQ==", + "license": "MIT" + }, "node_modules/@types/svgo": { "version": "2.6.4", "resolved": "https://registry.npmmirror.com/@types/svgo/-/svgo-2.6.4.tgz", @@ -9372,6 +9379,23 @@ } } }, + "node_modules/vue-draggable-plus": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/vue-draggable-plus/-/vue-draggable-plus-0.6.1.tgz", + "integrity": "sha512-FbtQ/fuoixiOfTZzG3yoPl4JAo9HJXRHmBQZFB9x2NYCh6pq0TomHf7g5MUmpaDYv+LU2n6BPq2YN9sBO+FbIg==", + "license": "MIT", + "dependencies": { + "@types/sortablejs": "^1.15.8" + }, + "peerDependencies": { + "@types/sortablejs": "^1.15.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, "node_modules/vue-eslint-parser": { "version": "9.1.1", "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.1.1.tgz", @@ -10318,6 +10342,11 @@ "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", "dev": true }, + "@types/sortablejs": { + "version": "1.15.9", + "resolved": "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.9.tgz", + "integrity": "sha512-7HP+rZGE2p886PKV9c9OJzLBI6BBJu1O7lJGYnPyG3fS4/duUCcngkNCjsLwIMV+WMqANe3tt4irrXHSIe68OQ==" + }, "@types/svgo": { "version": "2.6.4", "resolved": "https://registry.npmmirror.com/@types/svgo/-/svgo-2.6.4.tgz", @@ -16626,6 +16655,14 @@ "@vue/shared": "3.5.27" } }, + "vue-draggable-plus": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/vue-draggable-plus/-/vue-draggable-plus-0.6.1.tgz", + "integrity": "sha512-FbtQ/fuoixiOfTZzG3yoPl4JAo9HJXRHmBQZFB9x2NYCh6pq0TomHf7g5MUmpaDYv+LU2n6BPq2YN9sBO+FbIg==", + "requires": { + "@types/sortablejs": "^1.15.8" + } + }, "vue-eslint-parser": { "version": "9.1.1", "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.1.1.tgz", diff --git a/package.json b/package.json index c7fdd6a..a89a047 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "pinia-persistedstate-plugin": "^0.1.0", "pinia-plugin-persistedstate": "^3.1.0", "vue": "^3.2.47", + "vue-draggable-plus": "^0.6.1", "vue-i18n": "^11.2.8", "vue-router": "^4.1.6" }, diff --git a/src/components/Canvas/DepthCanvas/components/layer-panel/layer-item.vue b/src/components/Canvas/DepthCanvas/components/layer-panel/layer-item.vue index 51bb7e8..fbf8bc2 100644 --- a/src/components/Canvas/DepthCanvas/components/layer-panel/layer-item.vue +++ b/src/components/Canvas/DepthCanvas/components/layer-panel/layer-item.vue @@ -3,8 +3,8 @@
-
图层 1
- +
{{ layer.name }}
+
@@ -16,7 +16,12 @@ @@ -34,8 +39,18 @@ &:last-child { border-bottom: none; } - &:hover, - &.active { + &:not([draging='true']) { + &:hover, + &.active { + background-color: #ededed; + } + } + &.drag { + opacity: 0; + } + &.ghost, + &.chosen { + box-shadow: inset 0 0 5px #aaa; background-color: #ededed; } > .drag { diff --git a/src/components/Canvas/DepthCanvas/components/layer-panel/layer-list.vue b/src/components/Canvas/DepthCanvas/components/layer-panel/layer-list.vue index afcedb8..9d71e72 100644 --- a/src/components/Canvas/DepthCanvas/components/layer-panel/layer-list.vue +++ b/src/components/Canvas/DepthCanvas/components/layer-panel/layer-list.vue @@ -10,18 +10,62 @@
- - - + + +