Browse Source

禁止选中

master
maochaoying 2 years ago
parent
commit
a8e5f22c66
  1. 48
      src/components/Tube.vue

48
src/components/Tube.vue

@ -1,24 +1,37 @@
<template> <template>
<div class="tube_container" id="tube_container"> <div class="tube_container" id="tube_container">
<div
:class="isActive(item) ? 'tube_wrap active' : 'tube_wrap'"
v-for="item in 50"
:key="item"
:data-index="item"
@click="e => handleTubeClick(e, item)"
>
{{ `A${formatTubeNumber(item)}` }}
<div v-for="item in 50" :key="item">
<div
:class="isActive(item) ? 'tube_wrap active' : 'tube_wrap'"
:data-index="item"
v-if="!disabledArr.includes(item + '')"
@click="e => handleTubeClick(e, item)"
>
{{ `A${formatTubeNumber(item)}` }}
</div>
<div class="tube_wrap disable" :data-index="item" v-else>
<img class="error_img" :src="Error" alt="" />
{{ `A${formatTubeNumber(item)}` }}
</div>
</div> </div>
</div> </div>
</template> </template>
<script setup> <script setup>
import { ref, onMounted } from 'vue' import { ref, onMounted } from 'vue'
import Error from '@/assets/img/error.png'
import { formatTubeNumber } from '@/utils' import { formatTubeNumber } from '@/utils'
const resultArr = ref([]) const resultArr = ref([])
const disabledArr = ref(['32'])
const preEle = ref(null) const preEle = ref(null)
const getSelectedTube = () => {
const arr = resultArr.value.filter(item => item.checked)
const result = arr.map(item => item.index)
return result
}
const isActive = number => { const isActive = number => {
if (resultArr.value.length == 0) { if (resultArr.value.length == 0) {
return false return false
@ -47,6 +60,12 @@ const handleTubeClick = (e, number) => {
} }
const move = currEle => { const move = currEle => {
if (
disabledArr.value.includes(currEle.dataset.index) ||
!currEle.dataset.index
) {
return
}
const checkContainer = document.querySelector('#tube_container') const checkContainer = document.querySelector('#tube_container')
if (!currEle || currEle == checkContainer || currEle == preEle.value) { if (!currEle || currEle == checkContainer || currEle == preEle.value) {
return return
@ -133,5 +152,18 @@ onMounted(() => {
border: 3px solid #53dd79; border: 3px solid #53dd79;
color: #ffffff; color: #ffffff;
} }
.disable {
background: #d6d6d6;
border: 3px solid #d2d2d2;
color: #ffffff;
position: relative;
.error_img {
position: absolute;
width: 28px;
height: 28px;
right: -7px;
top: -7px;
}
}
} }
</style> </style>
Loading…
Cancel
Save