移动端
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

69 righe
2.0 KiB

  1. <!-- 会计科目选择节点组件 zhao -->
  2. <template>
  3. <van-collapse v-model="active">
  4. <template v-for="(subject, index) in subjects">
  5. <van-collapse-item :ref="'collapse' + index" :lazy-render="false" :title="subject.subjectId + ' ' + subject.subjectName" :name="subject.subjectId" :is-link="subject.is_last !== 'Y'" :class="subject.is_last === 'Y' ? 'subject-tree-node-leaf' : 'subject-tree-node-non-leaf'" v-if="subject.visible">
  6. <template #title>
  7. <div @click="($event) => onItemClicked($event, subject)">{{ subject.subjectId }} {{ subject.subjectName }}</div>
  8. </template>
  9. <SubjectTreeChooserNodeItem :ref="'childCollapse' + index" :subjects="subject.children" v-if="subject.children && Array.isArray(subject.children) && subject.children.length > 0" @clicked="onChildItemClicked" :can-select-non-leaf="canSelectNonLeaf">
  10. </SubjectTreeChooserNodeItem>
  11. </van-collapse-item>
  12. </template>
  13. </van-collapse>
  14. </template>
  15. <script>
  16. export default {
  17. name: "SubjectTreeChooserNodeItem",
  18. props: [
  19. 'subjects', 'canSelectNonLeaf',
  20. ],
  21. watch: {
  22. },
  23. created() {
  24. },
  25. data() {
  26. return {
  27. active: [],
  28. };
  29. },
  30. methods: {
  31. onItemClicked($event, subject) {
  32. if(this.canSelectNonLeaf || subject.is_last === 'Y')
  33. {
  34. this.$emit('clicked', subject);
  35. //$event.preventDefault();
  36. $event.stopPropagation();
  37. }
  38. },
  39. onChildItemClicked(subject) {
  40. this.$emit('clicked', subject);
  41. },
  42. folderAll() { // TODO: not work
  43. for(let i in this.subjects)
  44. {
  45. if(this.$refs['childCollapse' + i])
  46. this.$refs['childCollapse' + i][0].folderAll();
  47. if(this.$refs['collapse' + i])
  48. this.$refs['collapse' + i][0].toggle(false);
  49. }
  50. },
  51. },
  52. }
  53. </script>
  54. <style>
  55. .subject-tree-node-non-leaf .van-collapse-item__content {
  56. padding-right: 0;
  57. padding-top: 0;
  58. padding-bottom: 0;
  59. }
  60. .subject-tree-node-leaf .van-collapse-item__content {
  61. padding-right: 0;
  62. padding-top: 0;
  63. padding-bottom: 0;
  64. }
  65. </style>