vue3-tree-org 自定义节点 坑点

1.如果使用的是ts ,请将<script setup lang="ts">中的 lang=“ts”去掉,必须换成lang=“jsx”

不然会报错,就只能使用模板字符串,,模板字符串renderContent不解析,主要原因就是jsx格式问题

(会有警告,但是没啥大碍)

注:(在jsx里面使用v-if没效果,可以使用v-show)

		<vue3-tree-org :data="DepartmentUser" :node-draggable="true" :default-expand-level="1" :draggable="false" :props="defaultProps"
			:render-content="renderContent" collapsable center disabled :scalable="false" :label-style="style" only-one-node>
		</vue3-tree-org>

<script setup lang="jsx">

2.使用renderContent方法,如果没效果,也可能是vue3的h方法没有引入,这里面需要注意的是必须传入vue3的(h)方法, 如果自定义数据不显示,可以打印看看data数据,例如(data.$$data.user_name)

import { onMounted, ref, h } from "vue";

const renderContent = (h, data) => {
	return (
		<div style="text-align: center;font-size: 12px;color:#000000;" >
			<div style="width: 100%;height: 30px;line-height: 30px;border-radius: 4px 4px 0px 0px;background-color: #c3292a; " v-if={data.children == undefined}>{data.label}</div>
			<span style="width: 170px;height: 70px;display: flex;justify-content: center;color: #101010;" >
				<span style="display: flex;justify-content: center;align-items: center;" >
					<span><img style="width: 48px;height: 48px;border-radius: 50%;margin-right: 10px;" src='../../../assets/static/Ellipse.png' /></span>
					<span class="staffInfo">
						<dd style="font-size: 14px;color: #000000;margin-bottom: 8px;">{data.$$data.user_name}</dd>
						<dd style="font-size: 12px;color: #000000;">{data.$$data.position}</dd>
					</span>
				</span>
			</span>
		</div>
	)
}

3. 或者报错,看看配置vite.config.ts文件有没有相关转换成jsx的插件

@vitejs/plugin-vue-jsx

@vitejs/plugin-vue

//这个是在配置文件中引入
import vueJsx from '@vitejs/plugin-vue-jsx';

 plugins: [
    vueJsx(),
  ],
  esbuild: {
    jsxFactory: 'h',
    jsxFragment: 'Fragment',
    jsxInject: "import { h } from 'vue';"
  },

 4.这个插件需要显示别的key的话,就需要使用 :prop="xxx"

const defaultProps = {
	label: 'name',
}

设置data数据源格式

const datas = ref({
	children: [
		{
			children: [
				{
					children: [
						{
							active: 1,
							admin: 0,
							avatar: "",
							boss: 0,
							created_time: "2023-04-28 17:36:02",
							deleted_time: null,
							department_id: 846562497,
							em: "",
							hired_date: null,
							id: 5,
							job_number: "",
							manager_user_id: "",
							mobile: "19946287240",
							name: "玲",
							user_name: "杜",
							position: "高级PHP师",
							org_email: "",
							remark: "",
							senior: 0,
							title: "",
							union_id: "zDbuvqPObyLiiex8IhalG0giEiE",
							updated_time: "2023-04-28 17:36:02",
							user_id: "02183432500226374565",
						},
						{
							active: 1,
							admin: 0,
							avatar: "",
							boss: 0,
							created_time: "2023-04-28 17:36:02",
							deleted_time: null,
							department_id: 846562497,
							em: "",
							hired_date: null,
							id: 5,
							job_number: "",
							manager_user_id: "",
							mobile: "19946287240",
							name: "王咯",
							user_name: "王咯",
							position: "高级PHP工程师",
							org_email: "",
							remark: "",
							senior: 0,
							title: "",
							union_id: "zDbuvqPObyLiiex8IhalG0giEiE",
							updated_time: "2023-04-28 17:36:02",
							user_id: "02183432500226374565",
						},
					],
					created_time: "2023-04-28 17:36:02",
					deleted_time: null,
					ding_dept_id: 846339935,
					hide: 0,
					id: 6,
					managers: "",
					name: "运营",
					user_name: "阿诗丹",
					position: "市场总监",
					order: 0,
					parent_id: 846752020,
					updated_time: "2023-04-28 17:36:02"
				}
			],
			created_time: "2023-04-28 17:35:58",
			deleted_time: null,
			ding_dept_id: 846562497,
			hide: 0,
			id: 2,
			managers: "",
			name: "市场部",
			user_name: "王",
			position: "高级PHP",
			order: 0,
			parent_id: 1,
			updated_time: "2023-04-28 17:35:59",
		},
		{
			children: [],
			created_time: "2023-04-28 17:35:58",
			deleted_time: null,
			ding_dept_id: 846562497,
			hide: 0,
			id: 2,
			managers: "",
			name: "运营部",
			user_name: "风格化",
			position: "首席大法官",
			order: 0,
			parent_id: 1,
			updated_time: "2023-04-28 17:35:59",
		},
	],
	ding_dept_id: 1,
	hide: 0,
	id: 1,
	managers: "",
	name: "总裁办",
	user_name: "xxx",
	position: "CEO",
	order: 0,
	parent_id: 0
})

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值