Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
OKR
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hanfeng zhang
OKR
Commits
3a56c096
Commit
3a56c096
authored
Aug 02, 2021
by
Zhang Xiaojie
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/main' into zxj_dev
parents
6c2400f1
9d06fe2d
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
300 additions
and
15 deletions
+300
-15
dot-h.png
src/assets/icons/dot-h.png
+0
-0
Icon.vue
src/components/common/Icon.vue
+1
-1
index.ts
src/router/index.ts
+35
-2
c-cell.vue
src/views/components/c-cell.vue
+2
-1
input-cell.vue
src/views/components/input-cell.vue
+10
-1
team-QRcode.vue
src/views/create-team/team-QRcode.vue
+3
-3
team-create.vue
src/views/create-team/team-create.vue
+2
-2
team-avator.vue
src/views/team-info/team-avator.vue
+101
-0
team-description.vue
src/views/team-info/team-description.vue
+43
-0
team-info.vue
src/views/team-info/team-info.vue
+49
-0
team-name.vue
src/views/team-info/team-name.vue
+42
-0
team-management.vue
src/views/team-management.vue
+12
-5
No files found.
src/assets/icons/dot-h.png
0 → 100644
View file @
3a56c096
393 Bytes
src/components/common/Icon.vue
View file @
3a56c096
<
template
>
<
template
>
<fragment>
<fragment>
<div
v-if=
"type==='png'"
:class=
"className"
@
click=
"handleClick"
>
<div
v-if=
"type==='png'"
:class=
"className"
@
click=
"handleClick"
>
<img
:src=
"getImagePath"
class=
"object-cover object-center
"
>
<img
:src=
"getImagePath"
class=
"object-cover object-center"
>
</div>
</div>
<svg
v-else
aria-hidden=
"true"
:height=
"size"
:width=
"size"
:fill=
"color"
@
click=
"handleClick"
>
<svg
v-else
aria-hidden=
"true"
:height=
"size"
:width=
"size"
:fill=
"color"
@
click=
"handleClick"
>
<use
:xlink:href=
"'#'+name"
></use>
<use
:xlink:href=
"'#'+name"
></use>
...
...
src/router/index.ts
View file @
3a56c096
...
@@ -31,6 +31,7 @@ const routes: Array<RouteConfig> = [
...
@@ -31,6 +31,7 @@ const routes: Array<RouteConfig> = [
* 选择部门 /select-team
* 选择部门 /select-team
* 搜索团队 /search-team
* 搜索团队 /search-team
* 加入团队 /join-team
* 加入团队 /join-team
* 完善团队信息 /team-info
*
*
*/
*/
{
{
...
@@ -73,7 +74,7 @@ const routes: Array<RouteConfig> = [
...
@@ -73,7 +74,7 @@ const routes: Array<RouteConfig> = [
{
{
path
:
'/team-create'
,
path
:
'/team-create'
,
name
:
'TeamCreate'
,
name
:
'TeamCreate'
,
component
:
()
=>
import
(
'@/views/team-create.vue'
),
component
:
()
=>
import
(
'@/views/
create-team/
team-create.vue'
),
meta
:
{
meta
:
{
title
:
'创建团队'
title
:
'创建团队'
}
}
...
@@ -81,7 +82,7 @@ const routes: Array<RouteConfig> = [
...
@@ -81,7 +82,7 @@ const routes: Array<RouteConfig> = [
{
{
path
:
'/team-QRcode'
,
path
:
'/team-QRcode'
,
name
:
'TeamQRcode'
,
name
:
'TeamQRcode'
,
component
:
()
=>
import
(
'@/views/team-QRcode.vue'
),
component
:
()
=>
import
(
'@/views/
create-team/
team-QRcode.vue'
),
meta
:
{
meta
:
{
title
:
'团队二维码'
title
:
'团队二维码'
}
}
...
@@ -170,6 +171,38 @@ const routes: Array<RouteConfig> = [
...
@@ -170,6 +171,38 @@ const routes: Array<RouteConfig> = [
meta
:{
meta
:{
title
:
'加入团队'
title
:
'加入团队'
}
}
},
{
path
:
'/team-info'
,
name
:
'TeamInfo'
,
component
:
()
=>
import
(
'@/views/team-info/team-info.vue'
),
meta
:{
title
:
'完善团队信息'
}
},
{
path
:
'/team-name'
,
name
:
'TeamName'
,
component
:
()
=>
import
(
'@/views/team-info/team-name.vue'
),
meta
:{
title
:
'团队名称'
}
},
{
path
:
'/team-description'
,
name
:
'TeamDescription'
,
component
:
()
=>
import
(
'@/views/team-info/team-description.vue'
),
meta
:{
title
:
'团队描述'
}
},
{
path
:
'/team-avator'
,
name
:
'TeamAvator'
,
component
:
()
=>
import
(
'@/views/team-info/team-avator.vue'
),
meta
:{
title
:
'团队头像'
}
}
}
]
]
...
...
src/views/components/c-cell.vue
View file @
3a56c096
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
>
>
<div
v-if=
"checkIfEmpty(label)"
class=
"text-sm text-text-secondary py-2"
>
{{
label
}}
</div>
<div
v-if=
"checkIfEmpty(label)"
class=
"text-sm text-text-secondary py-2"
>
{{
label
}}
</div>
<div
class=
"flex py-3 items-center justify-between"
>
<div
class=
"flex py-3 items-center justify-between"
>
<slot
name=
"
icon
"
/>
<slot
name=
"
head
"
/>
<div
class=
"flex items-center justify-between flex-1"
>
<div
class=
"flex items-center justify-between flex-1"
>
<div
class=
"title text-text-primary flex-shrink-0 mr-4"
>
{{
title
}}
</div>
<div
class=
"title text-text-primary flex-shrink-0 mr-4"
>
{{
title
}}
</div>
<!-- 输入框 -->
<!-- 输入框 -->
...
@@ -22,6 +22,7 @@
...
@@ -22,6 +22,7 @@
<div
v-if=
"checkIfEmpty(content)"
class=
"flex-1 text-text-secondary text-sm text-right"
>
{{
content
}}
</div>
<div
v-if=
"checkIfEmpty(content)"
class=
"flex-1 text-text-secondary text-sm text-right"
>
{{
content
}}
</div>
</
template
>
</
template
>
</div>
</div>
<slot
name=
"right"
/>
<app-icon
<app-icon
v-if=
"dot"
v-if=
"dot"
type=
"png"
type=
"png"
...
...
src/views/components/input-cell.vue
View file @
3a56c096
...
@@ -13,6 +13,7 @@
...
@@ -13,6 +13,7 @@
<div
class=
"flex-1"
>
<div
class=
"flex-1"
>
<div
class=
"flex items-center"
>
<div
class=
"flex items-center"
>
<input
<input
v-if=
"type !== 'textarea'"
:type=
"type"
:type=
"type"
:value=
"value"
:value=
"value"
class=
"w-full text-text-primary flex-1"
class=
"w-full text-text-primary flex-1"
...
@@ -20,6 +21,14 @@
...
@@ -20,6 +21,14 @@
@
input=
"handleInput"
@
input=
"handleInput"
@
blur=
"handleChange"
@
blur=
"handleChange"
>
>
<textarea
v-else
:value=
"value"
:placeholder=
"placeholder"
class=
"w-full break-all"
@
input=
"handleInput"
@
blur=
"handleChange"
/>
<div
class=
"flex-shrink-0"
>
<div
class=
"flex-shrink-0"
>
<slot
name=
"action"
/>
<slot
name=
"action"
/>
</div>
</div>
...
@@ -82,7 +91,7 @@ export default Vue.extend({
...
@@ -82,7 +91,7 @@ export default Vue.extend({
}
}
},
},
created
()
{
created
()
{
this
.
length
=
this
.
value
.
length
||
0
this
.
length
=
this
.
value
?
.
length
||
0
},
},
methods
:
{
methods
:
{
checkIfEmpty
(
string
:
string
)
{
checkIfEmpty
(
string
:
string
)
{
...
...
src/views/team-QRcode.vue
→
src/views/
create-team/
team-QRcode.vue
View file @
3a56c096
...
@@ -9,8 +9,8 @@
...
@@ -9,8 +9,8 @@
<div
class=
"qrcode mt-2 mb-9 relative w-75 h-113.5 mx-auto"
>
<div
class=
"qrcode mt-2 mb-9 relative w-75 h-113.5 mx-auto"
>
<p
class=
" text-white absolute top-24 text-base left-0 right-0 mx-auto text-center"
>
这里是团队名称
</p>
<p
class=
" text-white absolute top-24 text-base left-0 right-0 mx-auto text-center"
>
这里是团队名称
</p>
<p
class=
" text-white absolute top-32 text-sm left-0 right-0 mx-auto text-center"
>
团队号:ABCDE1234
</p>
<p
class=
" text-white absolute top-32 text-sm left-0 right-0 mx-auto text-center"
>
团队号:ABCDE1234
</p>
<img
src=
"
..
/assets/qrbackground.png"
alt=
""
class=
""
ref=
"wrapper"
>
<img
src=
"
@
/assets/qrbackground.png"
alt=
""
class=
""
ref=
"wrapper"
>
<img
src=
"
..
/assets/qrcode.png"
alt=
""
srcset=
""
class=
" absolute w-32 top-44 left-0 right-0 mx-auto "
>
<img
src=
"
@
/assets/qrcode.png"
alt=
""
srcset=
""
class=
" absolute w-32 top-44 left-0 right-0 mx-auto "
>
<p
class=
" text-white absolute top-82 left-0 right-0 mx-auto text-center text-sm"
>
扫描二维码加入我们Chat33的团队
</p>
<p
class=
" text-white absolute top-82 left-0 right-0 mx-auto text-center text-sm"
>
扫描二维码加入我们Chat33的团队
</p>
</div>
</div>
<div
class=
"mx-4 pb-6"
>
<div
class=
"mx-4 pb-6"
>
...
@@ -30,7 +30,7 @@ export default Vue.extend({
...
@@ -30,7 +30,7 @@ export default Vue.extend({
name
:
'teamQRcode'
,
name
:
'teamQRcode'
,
components
:{
components
:{
'main-page'
:
()
=>
import
(
'@/layout/main-page.vue'
),
'main-page'
:
()
=>
import
(
'@/layout/main-page.vue'
),
'c-button'
:
()
=>
import
(
'./components/c-button.vue'
)
'c-button'
:
()
=>
import
(
'.
.
/components/c-button.vue'
)
},
},
methods
:
{
methods
:
{
handleClickLeft
()
{
handleClickLeft
()
{
...
...
src/views/team-create.vue
→
src/views/
create-team/
team-create.vue
View file @
3a56c096
...
@@ -40,8 +40,8 @@ export default Vue.extend({
...
@@ -40,8 +40,8 @@ export default Vue.extend({
name
:
'createteam'
,
name
:
'createteam'
,
components
:{
components
:{
'main-page'
:
()
=>
import
(
'@/layout/main-page.vue'
),
'main-page'
:
()
=>
import
(
'@/layout/main-page.vue'
),
'input-cell'
:
()
=>
import
(
'./components/input-cell.vue'
),
'input-cell'
:
()
=>
import
(
'.
.
/components/input-cell.vue'
),
'c-button'
:
()
=>
import
(
'./components/c-button.vue'
)
'c-button'
:
()
=>
import
(
'.
.
/components/c-button.vue'
)
},
},
data
(){
data
(){
return
{
return
{
...
...
src/views/team-info/team-avator.vue
0 → 100644
View file @
3a56c096
<
template
>
<!-- 团队头像 -->
<main-page
header-bg=
"bg-transparent"
title-color=
"text-white"
>
<template
slot=
"left"
>
<app-icon
type=
"png"
class-name=
"w-6.5 w-6.5"
:path=
"require('@/assets/icons/left-arrow-white.png')"
@
click=
"$router.go(-1)"
/>
</
template
>
<!-- 顶部右侧插槽 -->
<
template
slot=
"right"
>
<app-icon
type=
"png"
class-name=
"h-1 w-5"
:path=
"require('@/assets/icons/dot-h.png')"
@
click=
"show=true"
/>
</
template
>
<div
class=
"px-4 pt-14 border h-screen bg-black"
>
<van-uploader
:after-read=
"afterRead"
>
<div
class=
"wrapper rounded-full overflow-hidden mx-auto mt-12 bg-gray-100 flex items-center justify-center"
>
<img
:src=
"getImageUrl"
alt=
""
>
<!-- {{ file.name }} -->
</div>
</van-uploader>
<van-action-sheet
v-model=
"show"
cancel-text=
"取消"
:actions=
"actions"
@
select=
"onSelect"
/>
<!-- <van-uploader :after-read="afterRead" /> -->
</div>
<!-- <div class="fixed bottom-0 left-0 w-full px-4 py-2">
<c-button round @click="$router.go(-1)">确定</c-button>
</div> -->
</main-page>
</template>
<
script
lang=
"ts"
>
import
Vue
from
'vue'
import
{
ActionSheet
,
Uploader
}
from
'vant'
Vue
.
use
(
ActionSheet
).
use
(
Uploader
)
export
default
Vue
.
extend
({
components
:{
'app-icon'
:()
=>
import
(
'@/components/common/Icon.vue'
),
'main-page'
:
()
=>
import
(
'@/layout/main-page.vue'
),
// 'input-cell': () => import('../components/input-cell.vue'),
// 'c-button': () => import('../components/c-button.vue')
},
name
:
'TeamAvator'
,
data
()
{
return
{
show
:
false
,
actions
:
[
{
name
:
'拍照'
},
{
name
:
'从手机相册选择'
},
],
file
:
''
}
},
computed
:
{
getImageUrl
():
string
{
if
(
this
.
file
)
{
return
(
this
.
file
as
any
).
content
}
else
{
return
require
(
'@/assets/images/33.png'
)
}
}
},
methods
:
{
onSelect
(
item
:
any
)
{
this
.
show
=
false
console
.
log
(
item
,
'item'
)
// console.log(this.$refs.xxx, 'xxx')
console
.
log
((
document
.
getElementsByClassName
(
'van-uploader__input'
)[
0
]
as
HTMLInputElement
).
click
(),
'zzzz'
)
},
afterRead
(
file
:
any
)
{
this
.
file
=
file
}
}
})
</
script
>
<
style
lang=
"less"
scoped
>
.wrapper {
height: 80vw;
width: 80vw;
}
/deep/ .van-uploader {
width: 100%;
&__wrapper {
justify-content: center !important;
}
}
</
style
>
src/views/team-info/team-description.vue
0 → 100644
View file @
3a56c096
<
template
>
<!-- 团队描述 -->
<main-page
left-arrow
@
click-left=
"$router.go(-1)"
>
<div
class=
"px-4 pt-14"
>
<input-cell
type=
"textarea"
v-model=
"name"
label=
"企业/组织/团队描述"
placeholder=
"请输入团队描述"
/>
</div>
<div
class=
"fixed bottom-0 left-0 w-full px-4 py-2"
>
<c-button
round
@
click=
"$router.go(-1)"
>
确定
</c-button>
</div>
</main-page>
</
template
>
<
script
lang=
"ts"
>
import
Vue
from
'vue'
export
default
Vue
.
extend
({
components
:{
// 'app-icon':()=>import('@/components/common/Icon.vue'),
'main-page'
:
()
=>
import
(
'@/layout/main-page.vue'
),
'input-cell'
:
()
=>
import
(
'../components/input-cell.vue'
),
'c-button'
:
()
=>
import
(
'../components/c-button.vue'
)
},
name
:
'TeamDescription'
,
data
()
{
return
{
name
:
'团队描述'
}
},
methods
:
{}
})
</
script
>
<
style
lang=
"less"
>
</
style
>
src/views/team-info/team-info.vue
0 → 100644
View file @
3a56c096
<
template
>
<!-- 完善团队信息 -->
<main-page
left-arrow
@
click-left=
"$router.go(-1)"
>
<div
class=
"px-4 pt-14"
>
<c-cell
dot
title=
"团队头像"
@
click=
"$router.push('/team-avator')"
>
<template
slot=
"right"
>
<div
class=
"w-7 h-7 rounded overflow-hidden flex items-center justify-center"
>
<img
class=
"max-w-full"
src=
"@/assets/images/33.png"
alt=
""
>
</div>
</
template
>
</c-cell>
<c-cell
dot
title=
"团队名称"
content=
"杭州复杂美科技有限公司"
@
click=
"$router.push('/team-name')"
/>
<c-cell
dot
title=
"团队描述"
@
click=
"$router.push('/team-description')"
/>
</div>
</main-page>
</template>
<
script
lang=
"ts"
>
import
Vue
from
'vue'
export
default
Vue
.
extend
({
components
:{
// 'app-icon':()=>import('@/components/common/Icon.vue'),
'main-page'
:
()
=>
import
(
'@/layout/main-page.vue'
),
'c-cell'
:
()
=>
import
(
'../components/c-cell.vue'
)
},
name
:
'TeamInfo'
,
data
()
{
return
{}
},
methods
:
{}
})
</
script
>
<
style
lang=
"less"
>
</
style
>
src/views/team-info/team-name.vue
0 → 100644
View file @
3a56c096
<
template
>
<!-- 团队名称 -->
<main-page
left-arrow
@
click-left=
"$router.go(-1)"
>
<div
class=
"px-4 pt-14"
>
<input-cell
v-model=
"name"
label=
"企业/组织/团队名称"
:limit=
"20"
/>
</div>
<div
class=
"fixed bottom-0 left-0 w-full px-4 py-2"
>
<c-button
round
@
click=
"$router.go(-1)"
>
确定
</c-button>
</div>
</main-page>
</
template
>
<
script
lang=
"ts"
>
import
Vue
from
'vue'
export
default
Vue
.
extend
({
components
:{
// 'app-icon':()=>import('@/components/common/Icon.vue'),
'main-page'
:
()
=>
import
(
'@/layout/main-page.vue'
),
'input-cell'
:
()
=>
import
(
'../components/input-cell.vue'
),
'c-button'
:
()
=>
import
(
'../components/c-button.vue'
)
},
name
:
'TeamName'
,
data
()
{
return
{
name
:
'杭州复杂美科技有限公司'
}
},
methods
:
{}
})
</
script
>
<
style
lang=
"less"
>
</
style
>
src/views/team-management.vue
View file @
3a56c096
...
@@ -11,13 +11,14 @@
...
@@ -11,13 +11,14 @@
/>
/>
<!-- 名称 -->
<!-- 名称 -->
<div
class=
"ml-4 flex-1 text-text-primary"
>
<div
class=
"ml-4 flex-1 text-text-primary"
>
<span>
<span
class=
"break-all"
>
这里是企业名称只有负责人可编辑修改修改
{{
teamName
}}
</span>
</span>
<app-icon
<app-icon
type=
"png"
type=
"png"
:path=
"require('@/assets/icons/edit.png')"
:path=
"require('@/assets/icons/edit.png')"
class-name=
"h-3 w-3 inline-block ml-1"
class-name=
"h-3 w-3 inline-block ml-1"
@
click=
"editTeamName"
/>
/>
<!-- 团队号 -->
<!-- 团队号 -->
<div
class=
"text-text-secondary text-sm font-medium mt-1.5"
>
<div
class=
"text-text-secondary text-sm font-medium mt-1.5"
>
...
@@ -51,10 +52,16 @@ export default Vue.extend({
...
@@ -51,10 +52,16 @@ export default Vue.extend({
'c-button'
:
()
=>
import
(
'./components/c-button.vue'
)
'c-button'
:
()
=>
import
(
'./components/c-button.vue'
)
},
},
name
:
'TeamManagement'
,
name
:
'TeamManagement'
,
data
()
{
return
{
teamName
:
'企业名称'
,
}
},
methods
:
{
methods
:
{
// handleClickLeft() {
editTeamName
()
{
// console.log('click')
console
.
log
(
'edit'
)
// }
this
.
$router
.
push
(
'/team-info'
)
},
transferManagement
()
{
transferManagement
()
{
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
'/team-frame'
,
path
:
'/team-frame'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment