From 9057e04efad1b7d61c77a72e5c37a504d0aee935 Mon Sep 17 00:00:00 2001 From: doum <doum> Date: 星期五, 26 九月 2025 09:24:03 +0800 Subject: [PATCH] H5静态化 --- admin/src/components/common/Tree.vue | 145 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 145 insertions(+), 0 deletions(-) diff --git a/admin/src/components/common/Tree.vue b/admin/src/components/common/Tree.vue new file mode 100644 index 0000000..b522403 --- /dev/null +++ b/admin/src/components/common/Tree.vue @@ -0,0 +1,145 @@ +<template> + <div class="tree"> + <div v-for="(item, index) of list" :key="index" @click.stop="clickIten(item)"> + <div class="tree_item"> + <i class="el-icon-caret-bottom" :class="{ 'activeColor': item.actived === 1 }" v-show="item.fsStatus === 1 && item.childList.length > 0"></i> + <i class="el-icon-caret-right color" v-show="item.childList.length > 0 && (item.fsStatus === 0 || !item.fsStatus)"></i> + <div class="tree_item_label long-title-style" :title="item.name" :class="{ 'activeColor': item.actived === 1 }">{{ item.name }}</div> + </div> + <div class="tree_childern" v-show="item.fsStatus === 1"> + <tree + :list="item.childList" + :alllist="alllist" + :defaultProps="defaultProps" + @callback="callback" + /> + <!-- @callback="callback" --> + </div> + </div> + </div> +</template> + +<script> +// import Bus from '@/utils/eventBus' +export default { + name: 'tree', + props: { + list: { + type: Array, + required: false, + default: () => [] + }, + alllist: { + type: Array, + required: false, + default: () => [] + }, + defaultProps: { + type: Object, + require: false, + default: () => { + return { + name: 'name', + status: 'status', + children: 'children', + id: 'id', + erpId: 'erpId' + } + } + } + }, + data() { + return { + tempItem: { + id: null, + name: null, + erpId: null + } + } + }, + methods: { + listForList(){ + // console.log('===============================',this.alllist) + }, + // 鐐瑰嚮褰撳墠椤� + clickIten (item) { + // this.listForList() + const fsDate = item.fsDate === 0 || !item.fsDate ? 1 : 0 + this.alllist.forEach(i => { + i.fsDate = 0 + i.actived = 0 + this.recursion1(i.childList) + }) + item.fsDate = fsDate + item.actived = 1 + if (item.childList.length > 0) { + item.fsStatus === 0 || !item.fsStatus ? item.fsStatus = 1 : item.fsStatus = 0 + } + this.$emit('callback', item, item) + }, + recursion1 (children) { + if (!children || children.length === 0){ + return + } + children.forEach(item => { + item.actived = 0 + if (item.childList && item.childList.length > 0) { + this.recursion1(item.childList) + } + // item[this.defaultProps.status] = false + // if (item[this.defaultProps.children]) { + // this.recursion(item[this.defaultProps.children]) + // } + }) + }, + callback (data, item) { + if (this.tempItem.id === data.id) { + this.tempItem = {} + } else { + this.tempItem.id = data.id + this.tempItem.name = data.name + } + this.$emit('callback', data, item) + } + } +} +</script> + +<style lang="scss" scoped> +.tree { + /*width: 100%;*/ + /*height: auto;*/ + /*border-radius: 5px;*/ + /*overflow: hidden;*/ + /*border: 1px solid #eeeeee;*/ + /*box-sizing: border-box;*/ + .tree_childern { + margin-left: 20px; + } + .activeItem { + background: #F4F7FC; + } + .tree_item { + display: flex; + align-items: center; + height: 48px; + cursor: pointer; + padding-left: 10px; + .tree_item_label { + font-size: 14px; + font-weight: 400; + color: #333333; + white-space: nowrap; + } + i { + margin-right: 5px; + } + .color { + color: #999999 !important; + } + .activeColor { + color: #305ED5 !important; + } + } +} +</style> -- Gitblit v1.9.3