修改树的名称
This commit is contained in:
parent
48b5bbb78c
commit
cd4529567e
|
|
@ -512,24 +512,27 @@ time
|
|||
界面右部为用户列表,包含序号、工号、姓名、电话、email共5列。在用户组列表里选择一行时,右部用户列表显示该组的所有成员。对组里的成员,有添加、删除按钮。
|
||||
2.2 树节点管理
|
||||
2.2.1 树结构介绍:
|
||||
hierarchy=0
|
||||
hierarchy>0
|
||||
hierarchy>0
|
||||
|
||||
总共包含三棵树:Inbox(收件箱)、Standards(技术标准)、Projects(项目)。
|
||||
|
||||
总共包含4棵树:Inbox(收件箱)Outbox(发件箱)、Standards(技术标准)、Projects(项目)。
|
||||
(1)根节点没有"添加同级节点"
|
||||
(2)node_type为doc的节点没有"添加下级节点"(文档下不能添加子节点)
|
||||
(3)ref_id不为空的节点没有"edit"(即不能编辑引用自其它文档的文档)
|
||||
(4)node_type为folder的节点没有"copy to"、"clone to"和"map to"(这三个操作仅针对文档)。字段tree为standards的节点没有"map to"(projects树下的文档才可map)。
|
||||
(5)hierarchy为0的节点以及node_type为doc的节点没有"branch to"(hierarchy大于0的节点包括standards树里的节点或者从standards里branch到projects的节点)
|
||||
4、创建节点(添加同级节点、添加下级节点)界面如下:
|
||||
2.2.2 创建节点(添加同级节点、添加下级节点)界面如下:
|
||||
|
||||
界面上输入title、node_type、owner(从用户列表里选择)、reviewer(从用户列表里选择),在保存时,自动生成id、uuid、sort_order、create_time,获取parent、继承父节点的hierarchy、task_type。content、last_change、last_change_by、ref_id、source_type为空。
|
||||
界面上输入title、node_type、owner(从用户列表里选择)、reviewer(document类型才有reviewer,从用户列表里选择),在保存时,自动生成id、uuid、sort_order、create_time,获取parent、继承父节点的hierarchy、task_type。content、last_change、last_change_by、ref_id、source_type为空。
|
||||
code生成方法:按照节点级别编号,一级节点的编号为000,001,002,003,004;二级节点的编号为001000,001001,001002,001003,这4个编号表明节点都是编号001的子节点。001的二级节点的编号从001000到001999,如果中间某些code被删除而导致缺失,则在添加了001999后,绕回到001000及之后的缺失编号。说明:000到999不要求连续(删除后可以缺失),不要求排序(大编号在小编号之前也可以)
|
||||
sort_order生成方法:如果是添加下级节点,则新节点的sort_order为已有下级节点最大sort_order加1。如果是添加同级节点,则新节点的sort_order为操作节点的sort_order加1(即添加到操作节点的后面),同一父节点的后面的所有节点sort_order都需要加1。
|
||||
5、edit菜单:只能修改title、owner和reviewer。
|
||||
6、delete菜单:
|
||||
2.2.3 edit菜单
|
||||
只能修改title、owner和reviewer。
|
||||
2.2.4 delete菜单:
|
||||
node_type为doc的节点,如果有其它节点的ref_id指向自己,则提示"有其它文档由本文档clone或map,不能删除"。如果存在外键指向自己,则提示"存在外键约束,不能删除"。
|
||||
node_type为folder的节点,如果以该节点为根的子树上存在文档,则提示"请先删除子树上的文档,才能删除本文件夹"。删除文件夹时,需要删除整棵子树。
|
||||
7、copy to/from菜单(复制节点):
|
||||
2.2.5 copy to/from菜单(复制节点):
|
||||
选中一个doc节点(要求对该节点有can_read_doc权限),点击右键菜单copy to时,弹出界面,要求选择standards或projects里的一个folder节点(要求对该节点有can_add_child_doc权限),输入owner(默认是所选folder节点的owner)和reviewer,点击确认,即执行copy操作。
|
||||
copy将在数据库中添加新记录,其中:
|
||||
parent为目标folder节点的id。
|
||||
|
|
@ -538,7 +541,7 @@ task_type、hierarchy与parent folder的task_type、hierarchy相同
|
|||
id、uuid、sort_order(添加为最后一个节点)、create_time(为当前时间)根据规则生成。
|
||||
字段:node_type、title、content、last_change、last_change_by、ref_id、source_type从选中的doc节点复制。
|
||||
相应有个copy from菜单,选中一个folder节点(要求对该节点有can_add_child_doc权限),点击右键菜单copy from时,弹出界面,要求选择standards或projects里的一个doc节点(要求对该节点有can_read_doc权限),输入owner(默认是所选folder节点的owner)和reviewer,点击确认,即执行copy操作。
|
||||
8、clone to/from菜单(对节点添加引用):
|
||||
2.2.6 clone to/from菜单(对节点添加引用):
|
||||
选中一个doc节点(要求对该节点有can_read_doc权限),点击clone to时,弹出界面,要求选择standards或projects里的一个folder节点(要求对该节点有can_add_child_doc权限),输入owner(默认是所选folder节点的owner),无需reviewer,点击确认,即执行clone操作。
|
||||
clone将在数据库中添加新记录,其中:
|
||||
parent为目标folder节点的id。
|
||||
|
|
@ -549,7 +552,7 @@ id、uuid、sort_order(添加为最后一个节点)根据规则生成。
|
|||
reviewer、title、content、last_change、last_change_by为空,在select检索时根据ref_id获取。
|
||||
字段:node_type、create_time从选中的doc节点复制。
|
||||
相应有个clone from菜单,选中一个folder节点(要求对该节点有can_add_child_doc权限),点击右键菜单clone from时,弹出界面,要求选择standards或projects里的一个doc节点(要求对该节点有can_read_doc权限),输入owner(默认是所选folder节点的owner),无需reviewer,点击确认,即执行copy操作。
|
||||
9、branch from菜单(复制子树):
|
||||
2.2.7 branch from菜单(复制子树):
|
||||
选中projects树里hierarchy为0的一个folder节点(要求对该节点有can_add_child_doc和can_add_child_folder权限),点击branch from时,弹出界面,在界面左部显示standards和projects树,standards树里的所有节点以及projects里hierarchy>0的所有节点前都有一个复选框,可以选择若干节点,为每个选择的节点指定owner、为每个ref_id为空的文档节点指定reviewer,点击确认,即执行复制操作。
|
||||
复制将在数据库中添加新记录,需要逐层添加,先添加被复制子树的根节点,再添加它的子孙节点。
|
||||
其中根节点复制到目标folder的下面。对于根节点:
|
||||
|
|
@ -560,7 +563,7 @@ owner、reviewer由界面上获取。
|
|||
id、uuid、sort_order(添加为最后一个节点)、create_time(为当前时间)根据规则生成。
|
||||
字段:node_type、hierarchy、title、content、last_change、last_change_by、ref_id、source_type从选中的doc节点复制。
|
||||
以下每层节点在复制时,注意它的parent folder为复制过来的那个parent,id为新创建的。code也根据新的parent folder的code添加3位。其它复制规则同上。
|
||||
8、map to菜单:
|
||||
2.2.8 map to菜单:
|
||||
|
||||
|
||||
|
||||
|
|
@ -174,7 +174,7 @@ const treeDataSource = [
|
|||
]
|
||||
},
|
||||
{
|
||||
name: "Main Tree",
|
||||
name: "Standards",
|
||||
children: [
|
||||
{ name: "Product Scenario", children: [] },
|
||||
{
|
||||
|
|
@ -956,7 +956,7 @@ const handleAddSibling = () => {
|
|||
console.log('parentNode found:', parentNode)
|
||||
|
||||
// 打开添加节点对话框
|
||||
// 如果没有父节点(Main Tree层级),则使用空字符串作为parentNodeId
|
||||
// 如果没有父节点,则使用空字符串作为parentNodeId
|
||||
addNodeDialog.value = {
|
||||
show: true,
|
||||
mode: 'sibling',
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ const findNodeByName = (nodes: TreeNode[], name: string): TreeNode | undefined =
|
|||
return nodes.find(n => n.label === name)
|
||||
}
|
||||
|
||||
const mainTreeNode = computed(() => findNodeByName(props.treeData, 'Main Tree'))
|
||||
const mainTreeNode = computed(() => findNodeByName(props.treeData, 'Standards'))
|
||||
|
||||
const attributesNodes = computed(() => {
|
||||
if (!mainTreeNode.value || !mainTreeNode.value.children) return []
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ const initReviewHistory = () => {
|
|||
// 获取可release的版本详情(包含审核信息)
|
||||
const releasableVersionsDetails = computed(() => {
|
||||
return reviewHistory.value
|
||||
.filter((item: any) => item.status === 'approved')
|
||||
.filter((item: any) => item.status === 'accepted')
|
||||
.map((item: any) => {
|
||||
// 尝试从节点历史版本中获取真实内容
|
||||
const versionData = props.selectedNode?.versions?.find((v: any) => v.version === item.version)
|
||||
|
|
|
|||
Loading…
Reference in New Issue