You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
1.5 KiB
86 lines
1.5 KiB
<template> |
|
<view class="t-table" :style="{ 'border-width': border + 'px', 'border-color': borderColor }"> |
|
<slot /> |
|
</view> |
|
</template> |
|
|
|
<script> |
|
export default { |
|
props: { |
|
border: { |
|
type: String, |
|
default: '1' |
|
}, |
|
borderColor: { |
|
type: String, |
|
default: '#d0dee5' |
|
}, |
|
isCheck: { |
|
type: Boolean, |
|
default: false |
|
} |
|
}, |
|
provide() { |
|
return { |
|
table: this |
|
}; |
|
}, |
|
data() { |
|
return {}; |
|
}, |
|
created() { |
|
this.childrens = []; |
|
this.index = 0; |
|
}, |
|
methods: { |
|
fire(e, index, len) { |
|
let childrens = this.childrens; |
|
console.log(childrens); |
|
// 全选 |
|
if (index === 0) { |
|
childrens.map((vm, index) => { |
|
vm.checkboxData.checked = e; |
|
return vm; |
|
}); |
|
} else { |
|
let isAll = childrens.find((n, ids) => ids !== 0 && !n.checkboxData.checked); |
|
childrens[0].checkboxData.checked = isAll ? false : true; |
|
} |
|
|
|
let fireArr = []; |
|
for (let i = 0; i < childrens.length; i++) { |
|
if (childrens[i].checkboxData.checked && i !== 0) { |
|
fireArr.push(childrens[i].checkboxData.value - 1); |
|
} |
|
} |
|
this.$emit('change', { |
|
detail: fireArr |
|
}); |
|
} |
|
} |
|
}; |
|
</script> |
|
|
|
<style scoped> |
|
.t-table { |
|
width: 100%; |
|
border: 1px #d0dee5 solid; |
|
border-left: none; |
|
border-top: none; |
|
box-sizing: border-box; |
|
} |
|
|
|
.t-table>>>t-tr { |
|
display: flex; |
|
} |
|
|
|
.t-table>>>t-tr:nth-child(2n) { |
|
background: #f5f5f5; |
|
} |
|
|
|
/* #ifdef H5 */ |
|
.t-table>>>.t-tr:nth-child(2n) { |
|
background: #f5f5f5; |
|
} |
|
/* #endif */ |
|
</style>
|
|
|