Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
七七码生
VueJS_487578
提交
dd2de00d
V
VueJS_487578
项目概览
七七码生
/
VueJS_487578
与 Fork 源项目一致
Fork自
inscode / VueJS
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
VueJS_487578
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
dd2de00d
编写于
3月 06, 2025
作者:
W
weixin_46329670
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Thu Mar 6 15:58:00 CST 2025 inscode
上级
5f305666
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
138 addition
and
78 deletion
+138
-78
src/App.vue
src/App.vue
+138
-78
未找到文件。
src/App.vue
浏览文件 @
dd2de00d
...
@@ -89,11 +89,50 @@ layout="prev, pager, next"
...
@@ -89,11 +89,50 @@ layout="prev, pager, next"
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 添加成员对话框 -->
<el-dialog
v-model=
"dialogVisible"
title=
"添加成员"
width=
"560px"
:close-on-click-modal=
"false"
>
<el-form
:model=
"dialogFormData"
label-width=
"100px"
>
<el-form-item
label=
"姓名"
>
<el-input
v-model=
"dialogFormData.name"
placeholder=
"请输入姓名"
/>
</el-form-item>
<el-form-item
label=
"账号"
>
<el-input
v-model=
"dialogFormData.account"
placeholder=
"请输入账号"
/>
</el-form-item>
<el-form-item
label=
"邮箱"
>
<el-input
v-model=
"dialogFormData.email"
placeholder=
"请输入邮箱"
/>
</el-form-item>
<el-form-item
label=
"电话号码"
>
<el-input
v-model=
"dialogFormData.phone"
placeholder=
"请输入电话号码"
/>
</el-form-item>
<el-form-item
label=
"角色类型"
>
<el-select
v-model=
"dialogFormData.role"
placeholder=
"请选择角色类型"
class=
"w-full"
>
<el-option
label=
"架构师"
value=
"架构师"
/>
<el-option
label=
"技术经理"
value=
"技术经理"
/>
<el-option
label=
"开发"
value=
"开发"
/>
</el-select>
</el-form-item>
</el-form>
<
template
#footer
>
<div
class=
"flex justify-end gap-2"
>
<el-button
@
click=
"dialogVisible = false"
class=
"!rounded-button"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"handleSubmit"
class=
"!rounded-button"
>
<el-icon><UserFilled
/></el-icon>
添加
</el-button>
</div>
</
template
>
</el-dialog>
</div>
</div>
</template>
</template>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
{
ref
}
from
'
vue
'
;
import
{
ref
}
from
'
vue
'
;
import
{
Plus
,
Search
,
Setting
,
Star
}
from
'
@element-plus/icons-vue
'
;
import
{
Plus
,
Search
,
Setting
,
Star
,
UserFilled
}
from
'
@element-plus/icons-vue
'
;
const
searchQuery
=
ref
(
''
);
const
searchQuery
=
ref
(
''
);
const
memberSearchQuery
=
ref
(
''
);
const
memberSearchQuery
=
ref
(
''
);
const
currentPage
=
ref
(
1
);
const
currentPage
=
ref
(
1
);
...
@@ -182,8 +221,22 @@ const handleNodeClick = (data: any) => {
...
@@ -182,8 +221,22 @@ const handleNodeClick = (data: any) => {
const
handleSearch
=
()
=>
{
const
handleSearch
=
()
=>
{
// Implement search logic
// Implement search logic
};
};
const
dialogVisible
=
ref
(
false
);
const
dialogFormData
=
ref
({
name
:
''
,
account
:
''
,
email
:
''
,
phone
:
''
,
role
:
''
});
const
handleAddMember
=
()
=>
{
const
handleAddMember
=
()
=>
{
// Implement add member logic
dialogVisible
.
value
=
true
;
};
const
handleSubmit
=
()
=>
{
// 处理表单提交逻辑
dialogVisible
.
value
=
false
;
};
};
const
handleSetLeader
=
()
=>
{
const
handleSetLeader
=
()
=>
{
// Implement set leader logic
// Implement set leader logic
...
@@ -194,129 +247,136 @@ const handleRemove = (row: any) => {
...
@@ -194,129 +247,136 @@ const handleRemove = (row: any) => {
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.page-container
{
.page-container
{
background-color
:
#f9fafb
;
background-color
:
#f9fafb
;
}
}
.page-wrapper
{
.page-wrapper
{
min-height
:
1024px
;
min-height
:
1024px
;
margin
:
0
auto
;
margin
:
0
auto
;
width
:
1440px
;
width
:
1440px
;
display
:
flex
;
display
:
flex
;
}
}
.sidebar
{
.sidebar
{
width
:
280px
;
width
:
280px
;
background-color
:
#fff
;
background-color
:
#fff
;
border-right
:
1px
solid
#e5e7eb
;
border-right
:
1px
solid
#e5e7eb
;
padding
:
16px
;
padding
:
16px
;
}
}
.sidebar-header
{
.sidebar-header
{
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
justify-content
:
space-between
;
justify-content
:
space-between
;
margin-bottom
:
16px
;
margin-bottom
:
16px
;
}
}
.sidebar-title
{
.sidebar-title
{
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
}
}
.sidebar-title
.icon
{
.sidebar-title
.icon
{
color
:
#10b981
;
color
:
#10b981
;
margin-right
:
4px
;
margin-right
:
4px
;
}
}
.sidebar-title
span
{
.sidebar-title
span
{
color
:
#111827
;
color
:
#111827
;
font-weight
:
500
;
font-weight
:
500
;
}
}
.search-input
{
.search-input
{
margin-bottom
:
16px
;
margin-bottom
:
16px
;
width
:
200px
;
width
:
200px
;
}
}
.main-content
{
.main-content
{
flex
:
1
;
flex
:
1
;
background-color
:
#f3f4f6
;
background-color
:
#f3f4f6
;
}
}
.info-card
{
.info-card
{
background-color
:
#fff
;
background-color
:
#fff
;
padding
:
24px
;
padding
:
24px
;
margin-bottom
:
16px
;
margin-bottom
:
16px
;
}
}
.member-card
{
.member-card
{
background-color
:
#fff
;
background-color
:
#fff
;
padding
:
24px
;
padding
:
24px
;
}
}
.card-title
{
.card-title
{
font-size
:
18px
;
font-size
:
18px
;
font-weight
:
500
;
font-weight
:
500
;
margin-bottom
:
16px
;
margin-bottom
:
16px
;
}
}
.info-grid
{
.info-grid
{
display
:
grid
;
display
:
grid
;
grid-template-columns
:
repeat
(
3
,
1
fr
);
grid-template-columns
:
repeat
(
3
,
1
fr
);
gap
:
32px
;
gap
:
32px
;
}
}
.info-item
{
.info-item
{
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
}
}
.info-label
{
.info-label
{
color
:
#6b7280
;
color
:
#6b7280
;
width
:
96px
;
width
:
96px
;
}
}
.action-bar
{
.action-bar
{
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
gap
:
8px
;
gap
:
8px
;
margin-bottom
:
16px
;
margin-bottom
:
16px
;
}
}
.pagination-wrapper
{
.pagination-wrapper
{
display
:
flex
;
display
:
flex
;
justify-content
:
flex-end
;
justify-content
:
flex-end
;
margin-top
:
16px
;
margin-top
:
16px
;
}
}
:deep
(
.el-tree-node__content
)
{
:deep
(
.el-tree-node__content
)
{
height
:
40px
;
height
:
40px
;
}
}
:deep
(
.el-tree-node.is-current
>
.el-tree-node__content
)
{
:deep
(
.el-tree-node.is-current
>
.el-tree-node__content
)
{
background-color
:
#ecfdf5
;
background-color
:
#ecfdf5
;
color
:
#10b981
;
color
:
#10b981
;
}
}
:deep
(
.el-input__wrapper
)
{
:deep
(
.el-input__wrapper
)
{
background-color
:
#f9fafb
;
background-color
:
#f9fafb
;
}
}
:deep
(
.el-table
th
)
{
:deep
(
.el-table
th
)
{
background-color
:
#f9fafb
;
background-color
:
#f9fafb
;
font-weight
:
500
;
color
:
#374151
;
}
:deep
(
.el-table
td
)
{
color
:
#374151
;
}
:deep
(
.el-pagination
)
{
justify-content
:
flex-end
;
}
:deep
(
.el-icon
)
{
margin-right
:
4px
;
}
:deep
(
.el-dialog__body
)
{
padding
:
20px
40px
;
}
:deep
(
.el-form-item__label
)
{
font-weight
:
500
;
font-weight
:
500
;
color
:
#374151
;
color
:
#374151
;
}
}
:deep
(
.el-table
td
)
{
:deep
(
.el-input__wrapper
)
{
color
:
#374151
;
padding
:
0
12px
;
height
:
40px
;
}
}
:deep
(
.el-pagination
)
{
:deep
(
.el-dialog__header
)
{
justify-content
:
flex-end
;
margin
:
0
;
padding
:
20px
40px
;
border-bottom
:
1px
solid
#e5e7eb
;
}
}
:deep
(
.el-icon
)
{
:deep
(
.el-dialog__footer
)
{
margin-right
:
4px
;
padding
:
20px
40px
;
border-top
:
1px
solid
#e5e7eb
;
}
:deep
(
.el-dialog__title
)
{
font-weight
:
500
;
color
:
#111827
;
}
}
</
style
>
</
style
>
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录