fix
This commit is contained in:
91
src/components/checked-gender.vue
Normal file
91
src/components/checked-gender.vue
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import { ref, watch, onMounted, onUnmounted, reactive, toRefs, computed } from "vue";
|
||||||
|
const props = defineProps({
|
||||||
|
list:{
|
||||||
|
type:Array,
|
||||||
|
default:()=>[]
|
||||||
|
},
|
||||||
|
selected:{
|
||||||
|
type:Array,
|
||||||
|
default:()=>[]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const emit = defineEmits([
|
||||||
|
'update:selected','change'
|
||||||
|
])
|
||||||
|
const checkList = ref([])
|
||||||
|
const checkAll = ref(false)
|
||||||
|
|
||||||
|
watch(()=>props.selected, (newVal, oldVal) => {
|
||||||
|
if(newVal[0] === 'all' && newVal.length === 1){
|
||||||
|
checkList.value = []
|
||||||
|
checkAll.value = true
|
||||||
|
}else{
|
||||||
|
checkList.value = [...newVal]
|
||||||
|
checkAll.value = false
|
||||||
|
}
|
||||||
|
},{immediate:true})
|
||||||
|
|
||||||
|
const handleChange = (val) => {
|
||||||
|
let data = val.filter(item => item !== 'all' && props.selected?.[0] != item)
|
||||||
|
emit('update:selected', data)
|
||||||
|
emit('change', data)
|
||||||
|
}
|
||||||
|
const handleCheckAllChange = (val) => {
|
||||||
|
let data = ['all']
|
||||||
|
emit('update:selected', data)
|
||||||
|
emit('change', data)
|
||||||
|
|
||||||
|
}
|
||||||
|
let data = reactive({
|
||||||
|
})
|
||||||
|
onMounted(()=>{
|
||||||
|
})
|
||||||
|
onUnmounted(()=>{
|
||||||
|
})
|
||||||
|
defineExpose({})
|
||||||
|
const {} = toRefs(data);
|
||||||
|
</script>
|
||||||
|
<template>
|
||||||
|
<div class="all">
|
||||||
|
<el-checkbox
|
||||||
|
v-model="checkAll"
|
||||||
|
@change="handleCheckAllChange"
|
||||||
|
>
|
||||||
|
{{ $t('checked.All') }}
|
||||||
|
</el-checkbox>
|
||||||
|
</div>
|
||||||
|
<el-checkbox-group v-model="checkList" @change="handleChange">
|
||||||
|
<el-checkbox
|
||||||
|
v-for="item in props.list"
|
||||||
|
:key="item.value"
|
||||||
|
:value="item.value"
|
||||||
|
>
|
||||||
|
{{ item.label }}
|
||||||
|
</el-checkbox>
|
||||||
|
</el-checkbox-group>
|
||||||
|
</template>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.all{
|
||||||
|
margin-bottom: 1.2rem;
|
||||||
|
}
|
||||||
|
.el-checkbox-group{
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 1.2rem;
|
||||||
|
}
|
||||||
|
label{
|
||||||
|
--el-checkbox-font-size: 1.6rem;
|
||||||
|
--el-checkbox-checked-text-color: #232323;
|
||||||
|
--el-checkbox-font-weight: 400;
|
||||||
|
--el-checkbox-height: 2rem;
|
||||||
|
--el-checkbox-checked-bg-color: #232323;
|
||||||
|
--el-checkbox-checked-input-border-color: #232323;
|
||||||
|
--el-checkbox-input-border: 1px solid #232323;
|
||||||
|
font-family: "KaiseiOpti-Regular";
|
||||||
|
line-height: 2rem;
|
||||||
|
.el-checkbox__label{
|
||||||
|
padding-left: 1.4rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, onMounted, onUnmounted, reactive, toRefs, computed } from "vue";
|
import { ref, watch, onMounted, onUnmounted, reactive, toRefs, computed } from "vue";
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
list:{
|
list:{
|
||||||
type:Array,
|
type:Array,
|
||||||
@@ -13,13 +13,18 @@ const props = defineProps({
|
|||||||
const emit = defineEmits([
|
const emit = defineEmits([
|
||||||
'update:selected','change'
|
'update:selected','change'
|
||||||
])
|
])
|
||||||
const checkList = computed(()=>{
|
const checkList = ref([])
|
||||||
if(props.selected[0] === 'all'){
|
const checkAll = ref(false)
|
||||||
return []
|
|
||||||
|
watch(()=>props.selected, (newVal, oldVal) => {
|
||||||
|
if(newVal[0] === 'all' && newVal.length === 1){
|
||||||
|
checkList.value = []
|
||||||
|
checkAll.value = true
|
||||||
}else{
|
}else{
|
||||||
return [...props.selected]
|
checkList.value = [...newVal]
|
||||||
|
checkAll.value = false
|
||||||
}
|
}
|
||||||
})
|
},{immediate:true})
|
||||||
const handleChange = (val) => {
|
const handleChange = (val) => {
|
||||||
let data = val.filter(item => item !== 'all')
|
let data = val.filter(item => item !== 'all')
|
||||||
if(data.length == props.list.length || data.length == 0){
|
if(data.length == props.list.length || data.length == 0){
|
||||||
@@ -30,9 +35,7 @@ const handleChange = (val) => {
|
|||||||
emit('update:selected', data)
|
emit('update:selected', data)
|
||||||
emit('change', data)
|
emit('change', data)
|
||||||
}
|
}
|
||||||
const checkAll = computed(()=>{
|
|
||||||
return props.selected?.[0] == 'all'
|
|
||||||
})
|
|
||||||
const handleCheckAllChange = (val) => {
|
const handleCheckAllChange = (val) => {
|
||||||
let data = []
|
let data = []
|
||||||
if(val && props.selected[0] !== 'all'){
|
if(val && props.selected[0] !== 'all'){
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ const searechTypeList = ref([
|
|||||||
|
|
||||||
const searechType = ref('updateTime')
|
const searechType = ref('updateTime')
|
||||||
const addShopping = (item) => {
|
const addShopping = (item) => {
|
||||||
console.log(item)
|
|
||||||
if(!item.price) return ElMessage.warning(t('brandDetail.addShoppingTip'))
|
if(!item.price) return ElMessage.warning(t('brandDetail.addShoppingTip'))
|
||||||
AddShoppingCart({listingIds:[item.id]}).then((res)=>{
|
AddShoppingCart({listingIds:[item.id]}).then((res)=>{
|
||||||
myEvent.emit('addShopping', item)
|
myEvent.emit('addShopping', item)
|
||||||
|
|||||||
@@ -47,8 +47,8 @@ defineExpose({})
|
|||||||
</div>
|
</div>
|
||||||
<div class="categories">{{ $t('digitalItem.MerchantInfo.Gender') }}</div>
|
<div class="categories">{{ $t('digitalItem.MerchantInfo.Gender') }}</div>
|
||||||
<div class="line"></div>
|
<div class="line"></div>
|
||||||
<div class="multiple">
|
<div class="multiple">{{ gender }}
|
||||||
<checked :list="genderList" @change="handleChange" v-model:selected="gender" />
|
<checked-gender :list="genderList" @change="handleChange" v-model:selected="gender" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
Reference in New Issue
Block a user