|
@@ -65,89 +65,36 @@
|
|
|
|
|
|
<script setup>
|
|
|
import { ref, watch, computed } from "vue"
|
|
|
-import penUrl from '@/assets/images/pen.png'
|
|
|
-import knifeUrl from '@/assets/images/knife.png'
|
|
|
-import paintUrl from '@/assets/images/paint.png'
|
|
|
-import rollerUrl from '@/assets/images/roller.png'
|
|
|
-import mushroomUrl from '@/assets/images/mushroom.png'
|
|
|
-import copyingPaperUrl from '@/assets/images/copying-paper.png'
|
|
|
-import rubberBoardUrl from '@/assets/images/rubber-board.png'
|
|
|
-import engravingPaperUrl from '@/assets/images/engraving-paper.png'
|
|
|
-
|
|
|
-const props = defineProps(['requiredToolList'])
|
|
|
-const emit = defineEmits(['all-selected'])
|
|
|
-
|
|
|
-const requiredToolList = computed(() => {
|
|
|
- return props.requiredToolList
|
|
|
-})
|
|
|
-
|
|
|
+import { toolList, selectedToolNum } from "@/store/index.js"
|
|
|
|
|
|
const {
|
|
|
windowSizeInCssForRef,
|
|
|
windowSizeWhenDesignForRef,
|
|
|
} = useSizeAdapt()
|
|
|
|
|
|
-const toolList = ref([
|
|
|
- {
|
|
|
- name: '笔',
|
|
|
- selected: false,
|
|
|
- url: penUrl,
|
|
|
- },
|
|
|
- {
|
|
|
- name: '刻刀',
|
|
|
- selected: false,
|
|
|
- url: knifeUrl,
|
|
|
- },
|
|
|
- {
|
|
|
- name: '颜料',
|
|
|
- selected: false,
|
|
|
- url: paintUrl,
|
|
|
- },
|
|
|
- {
|
|
|
- name: '滚筒',
|
|
|
- selected: false,
|
|
|
- url: rollerUrl,
|
|
|
- },
|
|
|
- {
|
|
|
- name: '木蘑菇',
|
|
|
- selected: false,
|
|
|
- url: mushroomUrl,
|
|
|
- },
|
|
|
- {
|
|
|
- name: '复写纸',
|
|
|
- selected: false,
|
|
|
- url: copyingPaperUrl,
|
|
|
- },
|
|
|
- {
|
|
|
- name: '胶版',
|
|
|
- selected: false,
|
|
|
- url: rubberBoardUrl,
|
|
|
- },
|
|
|
- {
|
|
|
- name: '版画纸',
|
|
|
- selected: false,
|
|
|
- url: engravingPaperUrl,
|
|
|
- },
|
|
|
-])
|
|
|
+const props = defineProps(['requiredToolList'])
|
|
|
|
|
|
-const selectedToolNum = computed(() => {
|
|
|
- return toolList.value.filter((item) => {
|
|
|
- return item.selected
|
|
|
- }).length
|
|
|
+const requiredToolList = computed(() => {
|
|
|
+ return props.requiredToolList
|
|
|
})
|
|
|
|
|
|
-watch(selectedToolNum, (vNew) => {
|
|
|
- if (vNew === requiredToolList.value.length) {
|
|
|
- emit('all-selected')
|
|
|
+/**
|
|
|
+ * 选中工具逻辑
|
|
|
+ */
|
|
|
+function onClickToolItem(idx) {
|
|
|
+ if (requiredToolList.value.includes(idx)) {
|
|
|
+ if (toolList.value[idx].selected === false) {
|
|
|
+ toolList.value[idx].selected = true
|
|
|
+ window.alert('选择正确')
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ window.alert('您拿错工具了~请重新选择')
|
|
|
}
|
|
|
-})
|
|
|
-
|
|
|
-watch(requiredToolList, () => {
|
|
|
- toolList.value.forEach((item) => {
|
|
|
- item.selected = false
|
|
|
- })
|
|
|
-})
|
|
|
+}
|
|
|
|
|
|
+/**
|
|
|
+ * 左右scroll逻辑
|
|
|
+ */
|
|
|
const toolListEl = ref(null)
|
|
|
const isShowLeftArrow = ref(false)
|
|
|
const isShowRightArrow = ref(true)
|
|
@@ -169,18 +116,6 @@ function onClickLeftArrow() {
|
|
|
function onClickRightArrow() {
|
|
|
toolListEl.value.scrollLeft += toolListEl.value.scrollWidth / 8
|
|
|
}
|
|
|
-
|
|
|
-function onClickToolItem(idx) {
|
|
|
- if (requiredToolList.value.includes(idx)) {
|
|
|
- if (toolList.value[idx].selected === false) {
|
|
|
- toolList.value[idx].selected = true
|
|
|
- window.alert('选择正确')
|
|
|
- }
|
|
|
- } else {
|
|
|
- window.alert('您拿错工具了~请重新选择')
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped>
|