Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
易企天创
zentaoatf
提交
05633038
Z
zentaoatf
项目概览
易企天创
/
zentaoatf
大约 1 年 前同步成功
通知
11
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
3
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
zentaoatf
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
3
Issue
3
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
05633038
编写于
8月 30, 2022
作者:
雨
雨爱无痕
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add edit workspace
上级
931b2962
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
84 addition
and
30 deletion
+84
-30
ui/src/views/script/WorkDir.vue
ui/src/views/script/WorkDir.vue
+28
-0
ui/src/views/script/service.ts
ui/src/views/script/service.ts
+1
-0
ui/src/views/workspace/FormWorkspace.vue
ui/src/views/workspace/FormWorkspace.vue
+55
-30
未找到文件。
ui/src/views/script/WorkDir.vue
浏览文件 @
05633038
...
...
@@ -32,6 +32,14 @@
:workspaceId=
"syncFromZentaoWorkspaceId"
ref=
"syncFromZentaoRef"
/>
<FormWorkspace
v-if=
"showWorkspaceModal"
:show=
"showWorkspaceModal"
@
submit=
"createWorkSpace"
@
cancel=
"modalWorkspaceClose"
ref=
"formWorkspace"
:workspaceId=
"currentNode.workspaceId"
/>
</div>
</
template
>
...
...
@@ -49,6 +57,7 @@ import { computed, defineExpose, onMounted, onUnmounted, ref, watch } from "vue"
import
Button
from
'
@/components/Button.vue
'
;
import
TreeContextMenu
from
'
./TreeContextMenu.vue
'
;
import
FormSyncFromZentao
from
"
./FormSyncFromZentao.vue
"
;
import
FormWorkspace
from
"
@/views/workspace/FormWorkspace.vue
"
;
import
bus
from
"
@/utils/eventBus
"
;
import
{
getExpandedKeys
,
getScriptDisplayBy
,
getScriptFilters
,
setExpandedKeys
}
from
"
@/utils/cache
"
;
...
...
@@ -116,6 +125,9 @@ const onToolbarClicked = (e) => {
showModal
.
value
=
true
;
toolbarAction
.
value
=
e
.
event
.
key
;
break
;
case
'
editWorkspace
'
:
showWorkspaceModal
.
value
=
true
;
break
;
case
'
deleteWorkspace
'
:
Modal
.
confirm
({
title
:
t
(
'
delete
'
),
...
...
@@ -610,6 +622,22 @@ const clearMenu = () => {
contextNode
.
value
=
ref
(
null
)
}
const
showWorkspaceModal
=
ref
(
false
)
const
formWorkspace
=
ref
({}
as
any
)
const
createWorkSpace
=
(
formData
)
=>
{
store
.
dispatch
(
'
Workspace/save
'
,
formData
).
then
((
response
)
=>
{
if
(
response
)
{
formWorkspace
.
value
.
clearFormData
()
notification
.
success
({
message
:
t
(
'
save_success
'
)});
showWorkspaceModal
.
value
=
false
;
loadScripts
()
}
})
};
const
modalWorkspaceClose
=
()
=>
{
showWorkspaceModal
.
value
=
false
;
}
defineExpose
({
get
isCheckable
()
{
return
checkable
.
value
;
...
...
ui/src/views/script/service.ts
浏览文件 @
05633038
...
...
@@ -251,6 +251,7 @@ export function scriptTreeAddAttr(treeData) {
}
if
(
item
.
type
===
"
workspace
"
)
{
item
.
toolbarItems
.
push
({
hint
:
'
edit
'
,
icon
:
'
edit
'
,
key
:
'
editWorkspace
'
})
item
.
toolbarItems
.
push
({
hint
:
'
delete
'
,
icon
:
'
delete
'
,
key
:
'
deleteWorkspace
'
})
}
if
(
item
.
children
!=
undefined
&&
item
.
children
.
length
>
0
)
{
...
...
ui/src/views/workspace/FormWorkspace.vue
浏览文件 @
05633038
<
template
>
<ZModal
id=
"workspaceFormModal"
:showModal=
"showModalRef"
@
onCancel=
"cancel"
@
onOk=
"submit"
:title=
"
t('create_workspace')"
:contentStyle=
"
{width: '600px'}"
>
<Form>
<ZModal
id=
"workspaceFormModal"
:showModal=
"showModalRef"
@
onCancel=
"cancel"
@
onOk=
"submit"
:title=
"props.workspaceId ? t('edit_workspace') :
t('create_workspace')"
:contentStyle=
"
{width: '600px'}"
>
<Form>
<FormItem
name=
"name"
:label=
"t('name')"
:info=
"validateInfos.name"
>
<input
type=
"text"
v-model=
"modelRef.name"
/>
</FormItem>
...
...
@@ -65,27 +65,52 @@ import FormItem from "@/components/FormItem.vue";
import
{
arrToMap
}
from
"
@/utils/array
"
;
import
settings
from
"
@/config/settings
"
;
import
Button
from
"
@/components/Button.vue
"
;
export
interface
FormWorkspaceProps
{
show
?:
boolean
;
}
const
{
t
}
=
useI18n
();
const
props
=
withDefaults
(
defineProps
<
FormWorkspaceProps
>
(),
{
show
:
false
,
});
watch
(
props
,
()
=>
{
if
(
!
props
.
show
){
setTimeout
(()
=>
{
validateInfos
.
value
=
{};
},
200
);
}
})
const
showModalRef
=
computed
(()
=>
{
return
props
.
show
;
});
import
{
get
as
getWorkspace
}
from
"
@/views/workspace/service
"
;
import
Icon
from
'
@/components/Icon.vue
'
;
export
interface
FormWorkspaceProps
{
show
?:
boolean
;
workspaceId
?:
number
;
}
const
{
t
}
=
useI18n
();
const
props
=
withDefaults
(
defineProps
<
FormWorkspaceProps
>
(),
{
show
:
false
,
workspaceId
:
0
,
});
watch
(
props
,
()
=>
{
if
(
!
props
.
show
){
setTimeout
(()
=>
{
validateInfos
.
value
=
{};
},
200
);
}
})
const
showModalRef
=
computed
(()
=>
{
return
props
.
show
;
});
const
info
=
ref
({}
as
any
);
const
loadInfo
=
async
()
=>
{
if
(
props
.
workspaceId
===
undefined
||
!
props
.
workspaceId
)
return
;
await
getWorkspace
(
props
.
workspaceId
).
then
((
json
)
=>
{
if
(
json
.
code
===
0
)
{
info
.
value
=
json
.
data
;
modelRef
.
value
=
{
id
:
info
.
value
.
id
,
name
:
info
.
value
.
name
,
path
:
info
.
value
.
path
,
type
:
info
.
value
.
type
,
lang
:
info
.
value
.
lang
,
cmd
:
info
.
value
.
cmd
,
};
selectType
()
}
});
}
loadInfo
();
const
testTypes
=
ref
([...
ztfTestTypesDef
,
...
unitTestTypesDef
]);
const
store
=
useStore
<
{
Zentao
:
ZentaoData
}
>
();
const
langs
=
computed
<
any
[]
>
(()
=>
store
.
state
.
Zentao
.
langs
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录