Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Z
zc-qiyewx-app
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杨勇飞
zc-qiyewx-app
Commits
e0c536a5
You need to sign in or sign up before continuing.
Commit
e0c536a5
authored
Feb 14, 2025
by
杨勇飞
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加日报填写页面
parent
6ded782d
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
365 additions
and
42 deletions
+365
-42
pages.json
pages.json
+6
-2
index.vue
pages/dailyReport/index.vue
+312
-0
index.vue
pages/index/index.vue
+47
-40
No files found.
pages.json
View file @
e0c536a5
...
...
@@ -3,8 +3,12 @@
{
"path"
:
"pages/index/index"
,
"style"
:
{
"navigationBarTitleText"
:
"运营看板"
,
"titleAlign"
:
"center"
"navigationBarTitleText"
:
"首页"
}
},{
"path"
:
"pages/dailyReport/index"
,
"style"
:
{
"navigationBarTitleText"
:
"日报详情"
}
}
],
...
...
pages/dailyReport/index.vue
0 → 100644
View file @
e0c536a5
<
template
>
<view
class=
"daily-report"
>
<!-- 顶部统计 -->
<view
class=
"report-stats"
>
<view
class=
"stat-item"
>
<text
class=
"number"
style=
"color: #52c41a;"
>
{{
stats
.
submitted
}}
</text>
<text
class=
"label"
>
已提交
</text>
</view>
<view
class=
"stat-item"
>
<text
class=
"number"
style=
"color: #ff4d4f;"
>
{{
stats
.
unsubmitted
}}
</text>
<text
class=
"label"
>
未提交
</text>
</view>
<view
class=
"stat-item"
>
<text
class=
"number"
style=
"color: #1890ff;"
>
{{
stats
.
total
}}
</text>
<text
class=
"label"
>
总人数
</text>
</view>
</view>
<!-- 日报列表 -->
<scroll-view
class=
"report-list"
scroll-y
>
<view
class=
"report-card"
v-for=
"(report, index) in reports"
:key=
"index"
>
<view
class=
"card-header"
>
<view
class=
"left"
>
<text
class=
"name"
>
{{
report
.
name
}}
</text>
<text
class=
"status"
:class=
"report.status ? 'submitted' : 'unsubmitted'"
>
{{
report
.
status
?
'已提交'
:
'未提交'
}}
</text>
</view>
<text
class=
"time"
>
{{
report
.
submitTime
||
'-'
}}
</text>
</view>
<view
class=
"card-content"
v-if=
"report.status"
>
<view
class=
"work-item"
>
<view
class=
"work-header"
>
<text
class=
"work-title"
>
今日重点工作
</text>
</view>
<view
class=
"work-content"
>
{{
report
.
todayWork
}}
</view>
</view>
<view
class=
"work-item"
>
<view
class=
"work-header"
>
<text
class=
"work-title"
>
本周重点工作
</text>
</view>
<view
class=
"work-content"
>
{{
report
.
weekWork
}}
</view>
</view>
</view>
</view>
</scroll-view>
</view>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
stats
:
{
total
:
20
,
submitted
:
15
,
unsubmitted
:
5
},
reports
:
[
{
name
:
'张三'
,
status
:
true
,
submitTime
:
'2024-03-20 09:30'
,
todayWork
:
'完成项目A的需求分析和原型设计'
,
weekWork
:
'推进项目A的整体进度,完成核心功能开发'
},
{
name
:
'李四'
,
status
:
true
,
submitTime
:
'2024-03-20 09:15'
,
todayWork
:
'完成用户管理模块的开发和测试'
,
weekWork
:
'完成系统核心模块的开发和单元测试'
},
{
name
:
'王五'
,
status
:
true
,
submitTime
:
'2024-03-20 08:45'
,
todayWork
:
'进行项目B的技术方案评审,解决遗留问题'
,
weekWork
:
'完成项目B的架构设计和核心模块开发'
},
{
name
:
'赵六'
,
status
:
false
,
submitTime
:
''
,
todayWork
:
''
,
weekWork
:
''
},
{
name
:
'钱七'
,
status
:
true
,
submitTime
:
'2024-03-20 09:45'
,
todayWork
:
'处理生产环境的紧急bug,优化系统性能'
,
weekWork
:
'系统性能优化,处理生产环境反馈问题'
},
{
name
:
'孙八'
,
status
:
false
,
submitTime
:
''
,
todayWork
:
''
,
weekWork
:
''
},
{
name
:
'周九'
,
status
:
true
,
submitTime
:
'2024-03-20 08:30'
,
todayWork
:
'完成数据统计模块的开发和联调'
,
weekWork
:
'数据统计模块开发和测试用例编写'
},
{
name
:
'吴十'
,
status
:
true
,
submitTime
:
'2024-03-20 09:20'
,
todayWork
:
'进行项目C的需求评审和技术方案设计'
,
weekWork
:
'项目C的整体规划和核心功能开发'
},
{
name
:
'郑十一'
,
status
:
false
,
submitTime
:
''
,
todayWork
:
''
,
weekWork
:
''
},
{
name
:
'王十二'
,
status
:
true
,
submitTime
:
'2024-03-20 09:10'
,
todayWork
:
'完成支付模块的单元测试和联调'
,
weekWork
:
'支付模块的开发和性能优化'
}
// ... 其他员工数据
]
}
}
}
</
script
>
<
style
lang=
"scss"
>
.daily-report
{
// padding: 15px;
background
:
#f5f7fa
;
min-height
:
100vh
;
.report-stats
{
display
:
flex
;
justify-content
:
space-around
;
background
:
#fff
;
padding
:
20px
15px
;
border-radius
:
8px
;
// margin-bottom: 15px;
box-shadow
:
0
2px
12px
rgba
(
0
,
0
,
0
,
0
.05
);
.stat-item
{
text-align
:
center
;
padding
:
15px
24px
;
background
:
#f9f9f9
;
border-radius
:
6px
;
.number
{
display
:
block
;
font-size
:
28px
;
font-weight
:
bold
;
color
:
#333
;
margin-bottom
:
8px
;
&
:after
{
content
:
''
;
display
:
block
;
width
:
24px
;
height
:
2px
;
background
:
#1890ff
;
margin
:
8px
auto
0
;
border-radius
:
1px
;
}
}
.label
{
font-size
:
14px
;
color
:
#999
;
}
}
}
.report-list
{
height
:
calc
(
100vh
-
120px
);
.report-card
{
display
:
block
;
background
:
#fff
;
border-radius
:
8px
;
padding
:
15px
;
margin-bottom
:
15px
;
box-shadow
:
0
2px
12px
rgba
(
0
,
0
,
0
,
0
.05
);
transition
:
all
0
.3s
ease
;
&
:hover
{
transform
:
translateY
(
-2px
);
box-shadow
:
0
4px
16px
rgba
(
0
,
0
,
0
,
0
.08
);
}
.card-header
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin-bottom
:
10px
;
.left
{
display
:
flex
;
align-items
:
center
;
gap
:
10px
;
.name
{
font-size
:
16px
;
font-weight
:
bold
;
color
:
#333
;
position
:
relative
;
padding-left
:
12px
;
&
:before
{
content
:
''
;
position
:
absolute
;
left
:
0
;
top
:
50%
;
transform
:
translateY
(
-50%
);
width
:
4px
;
height
:
16px
;
background
:
#1890ff
;
border-radius
:
2px
;
}
}
.status
{
padding
:
4px
12px
;
border-radius
:
10px
;
font-size
:
12px
;
&
.submitted
{
background
:
rgba
(
82
,
196
,
26
,
0
.1
);
color
:
#52c41a
;
border
:
1px
solid
rgba
(
82
,
196
,
26
,
0
.2
);
}
&
.unsubmitted
{
background
:
rgba
(
255
,
77
,
79
,
0
.1
);
color
:
#ff4d4f
;
border
:
1px
solid
rgba
(
255
,
77
,
79
,
0
.2
);
}
}
}
.time
{
font-size
:
14px
;
color
:
#999
;
}
}
.card-content
{
.work-item
{
display
:
block
;
border-top
:
1px
solid
#f0f0f0
;
padding-top
:
10px
;
margin-bottom
:
10px
;
.work-header
{
display
:
flex
;
align-items
:
center
;
margin-bottom
:
8px
;
position
:
relative
;
padding-left
:
12px
;
&
:before
{
content
:
''
;
position
:
absolute
;
left
:
0
;
top
:
50%
;
transform
:
translateY
(
-50%
);
width
:
3px
;
height
:
14px
;
background
:
#1890ff
;
opacity
:
1
;
border-radius
:
1
.5px
;
}
}
.work-title
{
font-size
:
14px
;
color
:
#333
;
font-weight
:
500
;
}
.work-content
{
font-size
:
14px
;
color
:
#666
;
line-height
:
1
.6
;
padding
:
12px
15px
;
background
:
#fafafa
;
border-radius
:
4px
;
white-space
:
pre-wrap
;
word-break
:
break-all
;
text-align
:
justify
;
}
}
}
}
}
}
</
style
>
pages/index/index.vue
View file @
e0c536a5
<
template
>
<view
class=
"report-container"
>
<!-- 顶部统计概览 -->
<view
class=
"top-stats"
>
<
!--
<
view
class=
"top-stats"
>
<view
class=
"stat-item"
>
<text
class=
"label"
>
占位区域
</text>
<text
class=
"value"
>
1280
</text>
...
...
@@ -18,7 +18,7 @@
<text
class=
"label"
>
占位区域
</text>
<text
class=
"value"
>
¥896.5w
</text>
</view>
</view>
</view>
-->
<!-- 顶部时间导航 -->
<view
class=
"time-nav"
>
...
...
@@ -32,7 +32,7 @@
<view
class=
"project-card"
>
<view
class=
"overview-content"
>
<!-- 左侧环状进度 -->
<view
class=
"progress-circle"
>
<view
class=
"progress-circle"
@
click=
"navigateToDailyReport"
>
<view
class=
"circle-wrapper"
:style=
"
{
background: `conic-gradient(#52C41A 0% ${currentData.overview.submitRate}%, rgba(245,245,245,0.3) ${currentData.overview.submitRate}% 100%)`
}">
...
...
@@ -43,7 +43,7 @@
<text
class=
"submitted"
>
{{
currentData
.
overview
.
submitCount
}}
</text>
<text
class=
"should-submitted"
>
/
{{
currentData
.
overview
.
totalCount
}}
</text>
</view>
<text
class=
"label"
>
日报提交
</text>
<text
class=
"label"
>
日报提交
</text>
</view>
</view>
</view>
...
...
@@ -54,27 +54,27 @@
<view
class=
"stat-row"
>
<view
class=
"stat-item"
>
<view
class=
"stat-block light-green"
>
<text
class=
"number"
>
{{
currentData
.
overview
.
stats
.
projectCount
}}
</text>
<text
class=
"rate"
>
项目
</text>
<text
class=
"number"
>
{{
currentData
.
overview
.
stats
.
projectCount
}}
</text>
<text
class=
"rate"
>
项目
</text>
</view>
</view>
<view
class=
"stat-item"
>
<view
class=
"stat-block light-orange"
>
<text
class=
"number"
>
{{
currentData
.
overview
.
stats
.
orderCount
}}
</text>
<text
class=
"rate"
>
单量
</text>
<text
class=
"number"
>
{{
currentData
.
overview
.
stats
.
orderCount
}}
</text>
<text
class=
"rate"
>
单量
</text>
</view>
</view>
</view>
<view
class=
"stat-row"
>
<view
class=
"stat-item"
>
<view
class=
"stat-block green"
>
<text
class=
"number"
>
{{
currentData
.
overview
.
stats
.
volumeCount
}}
</text>
<text
class=
"number"
>
{{
currentData
.
overview
.
stats
.
volumeCount
}}
</text>
<text
class=
"rate"
>
方量m³
</text>
</view>
</view>
<view
class=
"stat-item"
>
<view
class=
"stat-block orange"
>
<text
class=
"number"
>
{{
currentData
.
overview
.
stats
.
weightCount
}}
</text>
<text
class=
"number"
>
{{
currentData
.
overview
.
stats
.
weightCount
}}
</text>
<text
class=
"rate"
>
重量T
</text>
</view>
</view>
...
...
@@ -163,7 +163,7 @@
left: 0,
top: 0
}">
</view>
<view
class=
"progress monthly"
:style=
"
{
<view
class=
"progress monthly"
:style=
"
{
backgroundColor: '#13C2C2',
position: 'absolute',
height: '100%',
...
...
@@ -202,6 +202,7 @@
</view>
<!-- 项目对比图表区域 -->
<!-- todo: 当前排序和模拟老板干涉 -->
<view
class=
"chart-container"
>
<view
class=
"chart-header"
>
<text
class=
"chart-title"
>
项目对比(前10)
</text>
...
...
@@ -236,7 +237,7 @@
:loading=
"loading"
emptyText=
"暂无数据"
>
<uni-tr>
<uni-tr>
<uni-th
align=
"center"
width=
"60"
>
模拟老板
</uni-th>
<uni-th
align=
"center"
width=
"50"
>
应收(万)
</uni-th>
<uni-th
align=
"center"
width=
"50"
>
应付(万)
</uni-th>
...
...
@@ -257,8 +258,8 @@
<uni-td>
{{
item
.
volume
}}
</uni-td>
<uni-td>
{{
item
.
weight
}}
</uni-td>
<uni-td>
{{
item
.
manpower
}}
</uni-td>
</uni-tr>
</uni-table>
</uni-tr>
</uni-table>
</view>
</view>
</view>
...
...
@@ -968,7 +969,7 @@ import { uniIcons } from '@dcloudio/uni-ui'
data
=
this
.
currentData
.
projectChartData
xAxisNames
=
this
.
currentData
.
projectChartData
.
projectNames
}
// 创建排序用的数组
const
sortArray
=
xAxisNames
.
map
((
name
,
index
)
=>
({
name
,
...
...
@@ -1002,19 +1003,19 @@ import { uniIcons } from '@dcloudio/uni-ui'
})
}
else
if
(
chart
===
'myProjectChart'
){
this
.
myProjectChart
.
setOption
({
xAxis
:
{
data
:
sortArray
.
map
(
item
=>
item
.
name
)
},
series
:
[{
name
:
'应收'
,
data
:
sortArray
.
map
(
item
=>
item
.
receivable
)
},
{
name
:
'应付'
,
data
:
sortArray
.
map
(
item
=>
item
.
payable
)
},
{
xAxis
:
{
data
:
sortArray
.
map
(
item
=>
item
.
name
)
},
series
:
[{
name
:
'应收'
,
data
:
sortArray
.
map
(
item
=>
item
.
receivable
)
},
{
name
:
'应付'
,
data
:
sortArray
.
map
(
item
=>
item
.
payable
)
},
{
name
:
'利润率'
,
data
:
sortArray
.
map
(
item
=>
item
.
profitRate
)
}]
}]
})
}
},
...
...
@@ -1033,6 +1034,12 @@ import { uniIcons } from '@dcloudio/uni-ui'
{
data
:
this
.
currentData
.
projectChartData
.
profitRate
}
]
})
},
navigateToDailyReport
()
{
// 使用uni-app的导航方法跳转到日报查看页面
uni
.
navigateTo
({
url
:
'/pages/dailyReport/index'
});
}
},
beforeDestroy
()
{
...
...
@@ -1204,9 +1211,9 @@ import { uniIcons } from '@dcloudio/uni-ui'
.submit-info
{
.label
{
display
:
block
;
display
:
block
;
font-size
:
14px
;
color
:
#333
;
color
:
#333
;
font-weight
:
500
;
margin-bottom
:
4px
;
}
...
...
@@ -1215,11 +1222,11 @@ import { uniIcons } from '@dcloudio/uni-ui'
display
:
flex
;
flex-direction
:
row
;
gap
:
2px
;
font-size
:
12px
;
font-size
:
12px
;
justify-self
:
center
;
.submitted
{
display
:
block
;
display
:
block
;
font-size
:
20px
;
font-weight
:
bold
;
color
:
#52C41A
;
...
...
@@ -1299,8 +1306,8 @@ import { uniIcons } from '@dcloudio/uni-ui'
width
:
60px
;
margin-right
:
20px
;
height
:
100%
;
display
:
flex
;
flex-direction
:
column
;
display
:
flex
;
flex-direction
:
column
;
justify-content
:
center
;
padding
:
10px
0
;
...
...
@@ -1310,8 +1317,8 @@ import { uniIcons } from '@dcloudio/uni-ui'
border-radius
:
12px
;
font-size
:
28px
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
align-items
:
center
;
justify-content
:
center
;
color
:
#fff
;
}
}
...
...
@@ -1450,7 +1457,7 @@ import { uniIcons } from '@dcloudio/uni-ui'
border-radius
:
8px
;
margin-bottom
:
15px
;
padding-bottom
:
15px
;
.chart-header
{
padding
:
15px
15px
0px
15px
;
display
:
flex
;
...
...
@@ -1477,7 +1484,7 @@ import { uniIcons } from '@dcloudio/uni-ui'
border
:
1px
solid
#E8E8E8
;
cursor
:
pointer
;
transition
:
all
0
.3s
ease
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
margin-left
:
8px
;
...
...
@@ -1517,9 +1524,9 @@ import { uniIcons } from '@dcloudio/uni-ui'
&
:
:-
webkit-scrollbar-thumb
{
background
:
rgba
(
0
,
0
,
0
,
0
.1
);
border-radius
:
3px
;
}
.chart-wrapper
{
}
.chart-wrapper
{
height
:
220px
;
width
:
100%
;
padding
:
0
0
5px
0
;
...
...
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