Skip to content
GitLab
Explore
Sign in
Register
Commits on Source (2)
拆css
· 89aa4223
johnny du
authored
Aug 26, 2025
89aa4223
delete unpackage/dist
· a677e0e6
johnny du
authored
Aug 26, 2025
a677e0e6
Expand all
Show whitespace changes
Inline
Side-by-side
.gitignore
0 → 100644
View file @
a677e0e6
frontend/inversment-diary/unpackage/dist/*
frontend/inversment-diary/App.vue
View file @
a677e0e6
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
console
.
log
(
'
App Show
'
)
console
.
log
(
'
App Show
'
)
},
},
onHide
:
function
()
{
onHide
:
function
()
{
console
.
log
(
'
App Hide
'
)
console
.
log
(
'
App Hide
'
)
;
}
}
}
}
</
script
>
</
script
>
...
...
frontend/inversment-diary/pages/index/index.css
0 → 100644
View file @
a677e0e6
.container
{
min-height
:
100vh
;
background
:
#f5f7fa
;
padding-bottom
:
120
rpx
;
}
/* 日期选择器 */
.date-header
{
background
:
white
;
padding
:
20
rpx
30
rpx
;
border-bottom
:
1
rpx
solid
#f0f0f0
;
position
:
sticky
;
top
:
0
;
z-index
:
99
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
}
.date-selector
{
display
:
flex
;
align-items
:
center
;
padding
:
15
rpx
0
;
}
.edit-toggle
{
padding
:
15
rpx
25
rpx
;
background
:
#007aff
;
border-radius
:
25
rpx
;
cursor
:
pointer
;
transition
:
background-color
0.2s
;
}
.edit-toggle
:hover
{
background
:
#0056b3
;
}
.edit-toggle-text
{
color
:
white
;
font-size
:
28
rpx
;
font-weight
:
500
;
}
.date-text
{
color
:
#333
;
font-size
:
32
rpx
;
font-weight
:
bold
;
margin-right
:
15
rpx
;
}
.calendar-icon
{
font-size
:
28
rpx
;
color
:
#007aff
;
}
/* 自定义日历 */
.calendar-overlay
{
position
:
fixed
;
top
:
0
;
left
:
0
;
width
:
100%
;
height
:
100%
;
background
:
rgba
(
0
,
0
,
0
,
0.5
);
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
z-index
:
1000
;
}
.calendar-popup
{
background
:
white
;
width
:
90%
;
max-width
:
600
rpx
;
border-radius
:
20
rpx
;
padding
:
30
rpx
;
box-shadow
:
0
10
rpx
30
rpx
rgba
(
0
,
0
,
0
,
0.3
);
}
.calendar-header
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin-bottom
:
30
rpx
;
padding-bottom
:
20
rpx
;
border-bottom
:
1
rpx
solid
#f0f0f0
;
}
.calendar-title
{
font-size
:
36
rpx
;
font-weight
:
bold
;
color
:
#333
;
}
.calendar-nav
{
display
:
flex
;
gap
:
30
rpx
;
}
.nav-btn
{
width
:
60
rpx
;
height
:
60
rpx
;
background
:
#f5f5f5
;
border-radius
:
50%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
font-size
:
24
rpx
;
color
:
#666
;
}
.calendar-weekdays
{
display
:
grid
;
grid-template-columns
:
repeat
(
7
,
1fr
);
gap
:
10
rpx
;
margin-bottom
:
20
rpx
;
}
.weekday
{
text-align
:
center
;
color
:
#999
;
font-size
:
24
rpx
;
padding
:
15
rpx
0
;
}
.calendar-days
{
display
:
flex
;
flex-direction
:
column
;
gap
:
5
rpx
;
}
.calendar-row
{
display
:
grid
;
grid-template-columns
:
repeat
(
7
,
1fr
);
gap
:
5
rpx
;
}
.calendar-day
{
aspect-ratio
:
1
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
border-radius
:
8
rpx
;
cursor
:
pointer
;
transition
:
all
0.2s
;
}
.calendar-day.other-month
{
opacity
:
0.3
;
}
.calendar-day.selected
{
background
:
#007aff
;
color
:
white
;
}
.calendar-day.today
{
background
:
#e8f4ff
;
color
:
#007aff
;
font-weight
:
bold
;
}
.calendar-day.selected.today
{
background
:
#007aff
;
color
:
white
;
}
.day-number
{
font-size
:
28
rpx
;
}
/* 可编辑字段样式 */
.editable-field
{
display
:
flex
;
align-items
:
center
;
cursor
:
pointer
;
padding
:
4
rpx
8
rpx
;
border-radius
:
6
rpx
;
transition
:
background-color
0.2s
;
position
:
relative
;
}
.editable-field
:hover
{
background-color
:
rgba
(
0
,
122
,
255
,
0.1
);
}
.edit-icon
{
font-size
:
20
rpx
;
margin-left
:
8
rpx
;
opacity
:
0.6
;
transition
:
opacity
0.2s
;
}
.editable-field
:hover
.edit-icon
{
opacity
:
1
;
}
/* 账户概览 */
.account-overview
{
background
:
white
;
margin
:
20
rpx
;
border-radius
:
16
rpx
;
padding
:
30
rpx
;
box-shadow
:
0
2
rpx
10
rpx
rgba
(
0
,
0
,
0
,
0.1
);
}
.balance-section
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin-bottom
:
30
rpx
;
}
.balance-left
{
flex
:
1
;
}
.balance-label
{
display
:
block
;
color
:
#666
;
font-size
:
28
rpx
;
margin-bottom
:
10
rpx
;
}
.balance-amount
{
display
:
block
;
color
:
#333
;
font-size
:
48
rpx
;
font-weight
:
bold
;
}
.balance-input
{
max-width
:
300
rpx
;
font-size
:
48
rpx
;
font-weight
:
bold
;
color
:
#333
;
border
:
2
rpx
solid
#007aff
;
border-radius
:
12
rpx
;
padding
:
15
rpx
20
rpx
;
background
:
#f8f9fa
;
box-shadow
:
0
2
rpx
8
rpx
rgba
(
0
,
122
,
255
,
0.1
);
}
.profit-input
{
max-width
:
200
rpx
;
font-size
:
28
rpx
;
font-weight
:
bold
;
color
:
#333
;
border
:
2
rpx
solid
#007aff
;
border-radius
:
10
rpx
;
padding
:
12
rpx
16
rpx
;
background
:
#f8f9fa
;
text-align
:
center
;
box-shadow
:
0
2
rpx
8
rpx
rgba
(
0
,
122
,
255
,
0.1
);
}
.profit-input-wrapper
{
margin-top
:
8
rpx
;
display
:
flex
;
justify-content
:
center
;
}
.balance-right
{
text-align
:
center
;
}
.asset-label
{
display
:
block
;
color
:
#666
;
font-size
:
24
rpx
;
margin-bottom
:
10
rpx
;
}
.progress-circle
{
width
:
80
rpx
;
height
:
80
rpx
;
border-radius
:
50%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
position
:
relative
;
}
/* 不同仓位等级的颜色 - 这些样式已由动态样式替代,可以保留作为备用 */
.progress-circle.position-safe
{
/* background: conic-gradient(#00d4aa 0deg 306deg, #e6f7ff 306deg 360deg); */
}
.progress-circle.position-medium
{
/* background: conic-gradient(#ffa502 0deg 306deg, #e6f7ff 306deg 360deg); */
}
.progress-circle.position-high
{
/* background: conic-gradient(#ff4757 0deg 306deg, #e6f7ff 306deg 360deg); */
}
.progress-circle
::after
{
content
:
''
;
width
:
60
rpx
;
height
:
60
rpx
;
background
:
white
;
border-radius
:
50%
;
position
:
absolute
;
}
.progress-text
{
font-size
:
24
rpx
;
font-weight
:
bold
;
z-index
:
1
;
}
/* 不同仓位等级的文字颜色 */
.position-safe
.progress-text
{
color
:
#00d4aa
;
}
.position-medium
.progress-text
{
color
:
#ffa502
;
}
.position-high
.progress-text
{
color
:
#ff4757
;
}
.profit-section
{
display
:
flex
;
justify-content
:
space-between
;
}
.profit-item
{
text-align
:
center
;
}
.profit-label
{
display
:
block
;
color
:
#666
;
font-size
:
24
rpx
;
margin-bottom
:
8
rpx
;
}
.profit-value
{
display
:
block
;
font-size
:
28
rpx
;
font-weight
:
bold
;
}
.profit-value.positive
{
color
:
#ff4757
;
}
.profit-value.negative
{
color
:
#00d4aa
;
}
/* 持仓 */
.holdings-section
{
margin
:
20
rpx
;
}
.section-header
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin-bottom
:
20
rpx
;
}
.section-title
{
display
:
block
;
color
:
#333
;
font-size
:
32
rpx
;
font-weight
:
bold
;
}
.add-holding-btn
{
display
:
flex
;
align-items
:
center
;
gap
:
8
rpx
;
padding
:
8
rpx
15
rpx
;
background
:
#007aff
;
border-radius
:
20
rpx
;
color
:
white
;
font-size
:
24
rpx
;
font-weight
:
500
;
cursor
:
pointer
;
transition
:
background-color
0.2s
;
}
.add-holding-btn
:hover
{
background
:
#0056b3
;
}
.add-icon
{
font-size
:
28
rpx
;
}
.add-text
{
font-size
:
28
rpx
;
}
.holdings-grid
{
display
:
grid
;
grid-template-columns
:
repeat
(
2
,
1fr
);
gap
:
20
rpx
;
}
.holding-card
{
background
:
white
;
border-radius
:
16
rpx
;
padding
:
25
rpx
;
box-shadow
:
0
2
rpx
10
rpx
rgba
(
0
,
0
,
0
,
0.1
);
position
:
relative
;
}
.card-deleted
{
opacity
:
0.5
;
pointer-events
:
none
;
background
:
#f5f5f5
;
border
:
2
rpx
dashed
#ccc
;
}
.card-deleted
.stock-name
,
.card-deleted
.amount-value
,
.card-deleted
.price-value
{
color
:
#999
;
text-decoration
:
line-through
;
}
.card-deleted
.delete-btn
{
background
:
#00d4aa
;
pointer-events
:
auto
;
}
.delete-btn
{
position
:
absolute
;
top
:
15
rpx
;
right
:
15
rpx
;
background
:
#ff4757
;
border-radius
:
50%
;
width
:
50
rpx
;
height
:
50
rpx
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
font-size
:
30
rpx
;
color
:
white
;
z-index
:
1
;
cursor
:
pointer
;
transition
:
background-color
0.2s
;
}
.delete-btn
:hover
{
background
:
#e03e4e
;
}
.delete-icon
{
font-size
:
30
rpx
;
}
.holding-header
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
flex-start
;
margin-bottom
:
20
rpx
;
}
.stock-name-wrapper
{
display
:
flex
;
align-items
:
center
;
}
.stock-name
{
color
:
#333
;
font-size
:
30
rpx
;
font-weight
:
bold
;
margin-right
:
8
rpx
;
}
.lock-icon
{
font-size
:
20
rpx
;
color
:
#999
;
}
.stock-name-input
{
max-width
:
200
rpx
;
font-size
:
30
rpx
;
font-weight
:
bold
;
color
:
#333
;
border
:
2
rpx
solid
#007aff
;
border-radius
:
10
rpx
;
padding
:
12
rpx
16
rpx
;
background
:
#f8f9fa
;
text-align
:
center
;
box-shadow
:
0
2
rpx
8
rpx
rgba
(
0
,
122
,
255
,
0.1
);
}
.position-percentage
{
font-size
:
22
rpx
;
color
:
#007aff
;
background
:
#e8f4ff
;
padding
:
4
rpx
10
rpx
;
border-radius
:
6
rpx
;
}
.stock-change
{
font-size
:
22
rpx
;
padding
:
4
rpx
10
rpx
;
border-radius
:
6
rpx
;
}
.stock-change.positive
{
color
:
#ff4757
;
background
:
#fff1f0
;
}
.stock-change.negative
{
color
:
#00d4aa
;
background
:
#f0fff4
;
}
.change-input
{
max-width
:
100
rpx
;
font-size
:
24
rpx
;
color
:
#333
;
padding
:
12
rpx
16
rpx
;
border-radius
:
8
rpx
;
border
:
2
rpx
solid
#007aff
;
background
:
#f8f9fa
;
text-align
:
right
;
font-weight
:
500
;
box-shadow
:
0
1
rpx
6
rpx
rgba
(
0
,
122
,
255
,
0.1
);
transition
:
all
0.2s
;
}
.stock-price
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin-bottom
:
25
rpx
;
}
.price-value
{
font-size
:
40
rpx
;
font-weight
:
bold
;
color
:
#333
;
}
.price-input
{
max-width
:
100
rpx
;
font-size
:
40
rpx
;
font-weight
:
bold
;
color
:
#333
;
border
:
2
rpx
solid
#007aff
;
border-radius
:
10
rpx
;
padding
:
12
rpx
16
rpx
;
background
:
#f8f9fa
;
text-align
:
right
;
box-shadow
:
0
2
rpx
8
rpx
rgba
(
0
,
122
,
255
,
0.1
);
}
.holding-amounts
{
margin-bottom
:
25
rpx
;
}
.amount-labels
{
display
:
flex
;
justify-content
:
space-between
;
margin-bottom
:
8
rpx
;
}
.amount-label
{
color
:
#666
;
font-size
:
22
rpx
;
}
.amount-row
{
display
:
flex
;
justify-content
:
space-between
;
margin-bottom
:
8
rpx
;
}
.amount-field
{
flex
:
1
;
margin-right
:
10
rpx
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
.amount-field
:last-child
{
margin-right
:
0
;
}
.amount-value
{
color
:
#333
;
font-weight
:
bold
;
font-size
:
24
rpx
;
cursor
:
pointer
;
padding
:
2
rpx
4
rpx
;
border-radius
:
4
rpx
;
transition
:
background-color
0.2s
;
}
.amount-value
:hover
{
background-color
:
#f0f0f0
;
}
.amount-value.profit
{
color
:
#ff4757
;
}
.amount-value.loss
{
color
:
#00d4aa
;
}
.amount-input
{
max-width
:
150
rpx
;
font-size
:
24
rpx
;
color
:
#333
;
padding
:
12
rpx
16
rpx
;
border-radius
:
8
rpx
;
border
:
2
rpx
solid
#007aff
;
background
:
#f8f9fa
;
text-align
:
right
;
font-weight
:
500
;
box-shadow
:
0
1
rpx
6
rpx
rgba
(
0
,
122
,
255
,
0.1
);
transition
:
all
0.2s
;
}
/* 今日操作 */
.operations-section
{
margin
:
20
rpx
;
}
.operations-list
{
background
:
white
;
border-radius
:
16
rpx
;
overflow
:
hidden
;
box-shadow
:
0
2
rpx
10
rpx
rgba
(
0
,
0
,
0
,
0.1
);
}
.operation-group
{
border-bottom
:
1
rpx
solid
#f5f5f5
;
padding
:
30
rpx
;
}
.operation-group
:last-child
{
border-bottom
:
none
;
}
.operation-stock-header
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
margin-bottom
:
20
rpx
;
gap
:
15
rpx
;
}
.operation-stock
{
color
:
#333
;
font-size
:
28
rpx
;
font-weight
:
bold
;
flex-shrink
:
0
;
}
.current-price
{
font-size
:
26
rpx
;
font-weight
:
bold
;
flex-shrink
:
0
;
}
.current-price.positive
{
color
:
#ff4757
;
}
.current-price.negative
{
color
:
#00d4aa
;
}
.price-change
{
font-size
:
22
rpx
;
padding
:
2
rpx
8
rpx
;
border-radius
:
4
rpx
;
font-weight
:
500
;
flex-shrink
:
0
;
}
.price-change.positive
{
color
:
#ff4757
;
background
:
#fff1f0
;
}
.price-change.negative
{
color
:
#00d4aa
;
background
:
#f0fff4
;
}
.holder-count
{
font-size
:
20
rpx
;
color
:
#007aff
;
background
:
#e8f4ff
;
padding
:
4
rpx
8
rpx
;
border-radius
:
6
rpx
;
font-weight
:
500
;
flex-shrink
:
0
;
}
.operations-list-continuous
{
margin-bottom
:
20
rpx
;
}
.operations-list-continuous
.operation-item
{
margin-bottom
:
10
rpx
;
padding
:
15
rpx
;
background
:
#f8f9fa
;
border-radius
:
8
rpx
;
}
.operations-list-continuous
.operation-item
:last-child
{
margin-bottom
:
0
;
}
.operation-notes
{
margin-top
:
15
rpx
;
}
.reasons-section
,
.analyses-section
{
margin-bottom
:
20
rpx
;
}
.reasons-section
:last-child
,
.analyses-section
:last-child
{
margin-bottom
:
0
;
}
.section-subtitle
{
display
:
block
;
font-size
:
26
rpx
;
font-weight
:
bold
;
color
:
#333
;
margin-bottom
:
15
rpx
;
}
.reason-item
,
.analysis-item
{
background
:
#fffbeb
;
padding
:
20
rpx
;
border-radius
:
8
rpx
;
margin-bottom
:
10
rpx
;
border-left
:
4
rpx
solid
#d97706
;
}
.analysis-item
{
background
:
#f0f9ff
;
border-left
:
4
rpx
solid
#0369a1
;
}
.reason-item
:last-child
,
.analysis-item
:last-child
{
margin-bottom
:
0
;
}
.reason-content
,
.analysis-content
{
display
:
block
;
font-size
:
24
rpx
;
line-height
:
1.6
;
margin-bottom
:
8
rpx
;
}
.reason-content
{
color
:
#d97706
;
}
.analysis-content
{
color
:
#0369a1
;
}
.reason-date
,
.analysis-date
{
display
:
block
;
font-size
:
20
rpx
;
color
:
#999
;
text-align
:
right
;
}
.operation-header
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin-bottom
:
10
rpx
;
}
.operation-type
{
display
:
flex
;
align-items
:
center
;
padding
:
8
rpx
16
rpx
;
border-radius
:
8
rpx
;
gap
:
8
rpx
;
}
.operation-type.buy
{
background
:
#fff1f0
;
color
:
#ff4757
;
}
.operation-type.sell
{
background
:
#f0fff4
;
color
:
#00d4aa
;
}
.type-icon
{
font-size
:
20
rpx
;
}
.type-text
{
font-size
:
24
rpx
;
}
.operation-details
{
color
:
#666
;
font-size
:
24
rpx
;
}
/* 悬浮按钮 */
.floating-button
{
position
:
fixed
;
right
:
30
rpx
;
bottom
:
160
rpx
;
width
:
100
rpx
;
height
:
100
rpx
;
background
:
#007aff
;
border-radius
:
50%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
box-shadow
:
0
4
rpx
12
rpx
rgba
(
0
,
122
,
255
,
0.4
);
z-index
:
100
;
}
.float-icon
{
color
:
white
;
font-size
:
48
rpx
;
font-weight
:
300
;
}
/* 底部按钮 */
.bottom-button
{
position
:
fixed
;
bottom
:
30
rpx
;
left
:
30
rpx
;
right
:
30
rpx
;
height
:
80
rpx
;
background
:
#007aff
;
border-radius
:
40
rpx
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
box-shadow
:
0
4
rpx
12
rpx
rgba
(
0
,
122
,
255
,
0.4
);
z-index
:
100
;
}
.bottom-text
{
color
:
white
;
font-size
:
32
rpx
;
font-weight
:
500
;
}
/* 编辑模式按钮 */
.edit-buttons
{
position
:
fixed
;
bottom
:
160
rpx
;
/* 调整位置,使其在悬浮按钮下方 */
left
:
30
rpx
;
right
:
30
rpx
;
display
:
flex
;
justify-content
:
space-around
;
z-index
:
100
;
}
.edit-button
{
flex
:
1
;
margin
:
0
10
rpx
;
height
:
80
rpx
;
border-radius
:
40
rpx
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
font-size
:
32
rpx
;
font-weight
:
500
;
cursor
:
pointer
;
transition
:
background-color
0.2s
;
}
.edit-button.cancel
{
background-color
:
#f0f0f0
;
color
:
#333
;
}
.edit-button.submit
{
background-color
:
#007aff
;
color
:
white
;
}
.edit-button.cancel
:hover
{
background-color
:
#e0e0e0
;
}
.edit-button.submit
:hover
{
background-color
:
#0056b3
;
}
.edit-button-text
{
font-size
:
32
rpx
;
}
\ No newline at end of file
frontend/inversment-diary/pages/index/index.vue
View file @
a677e0e6
...
@@ -985,918 +985,4 @@
...
@@ -985,918 +985,4 @@
}
}
</
script
>
</
script
>
<
style
scoped
>
<
style
src=
"./index.css"
></
style
>
.container
{
\ No newline at end of file
min-height
:
100vh
;
background
:
#f5f7fa
;
padding-bottom
:
120
rpx
;
}
/* 日期选择器 */
.date-header
{
background
:
white
;
padding
:
20
rpx
30
rpx
;
border-bottom
:
1
rpx
solid
#f0f0f0
;
position
:
sticky
;
top
:
0
;
z-index
:
99
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
}
.date-selector
{
display
:
flex
;
align-items
:
center
;
padding
:
15
rpx
0
;
}
.edit-toggle
{
padding
:
15
rpx
25
rpx
;
background
:
#007aff
;
border-radius
:
25
rpx
;
cursor
:
pointer
;
transition
:
background-color
0.2s
;
}
.edit-toggle
:hover
{
background
:
#0056b3
;
}
.edit-toggle-text
{
color
:
white
;
font-size
:
28
rpx
;
font-weight
:
500
;
}
.date-text
{
color
:
#333
;
font-size
:
32
rpx
;
font-weight
:
bold
;
margin-right
:
15
rpx
;
}
.calendar-icon
{
font-size
:
28
rpx
;
color
:
#007aff
;
}
/* 自定义日历 */
.calendar-overlay
{
position
:
fixed
;
top
:
0
;
left
:
0
;
width
:
100%
;
height
:
100%
;
background
:
rgba
(
0
,
0
,
0
,
0.5
);
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
z-index
:
1000
;
}
.calendar-popup
{
background
:
white
;
width
:
90%
;
max-width
:
600
rpx
;
border-radius
:
20
rpx
;
padding
:
30
rpx
;
box-shadow
:
0
10
rpx
30
rpx
rgba
(
0
,
0
,
0
,
0.3
);
}
.calendar-header
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin-bottom
:
30
rpx
;
padding-bottom
:
20
rpx
;
border-bottom
:
1
rpx
solid
#f0f0f0
;
}
.calendar-title
{
font-size
:
36
rpx
;
font-weight
:
bold
;
color
:
#333
;
}
.calendar-nav
{
display
:
flex
;
gap
:
30
rpx
;
}
.nav-btn
{
width
:
60
rpx
;
height
:
60
rpx
;
background
:
#f5f5f5
;
border-radius
:
50%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
font-size
:
24
rpx
;
color
:
#666
;
}
.calendar-weekdays
{
display
:
grid
;
grid-template-columns
:
repeat
(
7
,
1fr
);
gap
:
10
rpx
;
margin-bottom
:
20
rpx
;
}
.weekday
{
text-align
:
center
;
color
:
#999
;
font-size
:
24
rpx
;
padding
:
15
rpx
0
;
}
.calendar-days
{
display
:
flex
;
flex-direction
:
column
;
gap
:
5
rpx
;
}
.calendar-row
{
display
:
grid
;
grid-template-columns
:
repeat
(
7
,
1fr
);
gap
:
5
rpx
;
}
.calendar-day
{
aspect-ratio
:
1
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
border-radius
:
8
rpx
;
cursor
:
pointer
;
transition
:
all
0.2s
;
}
.calendar-day.other-month
{
opacity
:
0.3
;
}
.calendar-day.selected
{
background
:
#007aff
;
color
:
white
;
}
.calendar-day.today
{
background
:
#e8f4ff
;
color
:
#007aff
;
font-weight
:
bold
;
}
.calendar-day.selected.today
{
background
:
#007aff
;
color
:
white
;
}
.day-number
{
font-size
:
28
rpx
;
}
/* 可编辑字段样式 */
.editable-field
{
display
:
flex
;
align-items
:
center
;
cursor
:
pointer
;
padding
:
4
rpx
8
rpx
;
border-radius
:
6
rpx
;
transition
:
background-color
0.2s
;
position
:
relative
;
}
.editable-field
:hover
{
background-color
:
rgba
(
0
,
122
,
255
,
0.1
);
}
.edit-icon
{
font-size
:
20
rpx
;
margin-left
:
8
rpx
;
opacity
:
0.6
;
transition
:
opacity
0.2s
;
}
.editable-field
:hover
.edit-icon
{
opacity
:
1
;
}
/* 账户概览 */
.account-overview
{
background
:
white
;
margin
:
20
rpx
;
border-radius
:
16
rpx
;
padding
:
30
rpx
;
box-shadow
:
0
2
rpx
10
rpx
rgba
(
0
,
0
,
0
,
0.1
);
}
.balance-section
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin-bottom
:
30
rpx
;
}
.balance-left
{
flex
:
1
;
}
.balance-label
{
display
:
block
;
color
:
#666
;
font-size
:
28
rpx
;
margin-bottom
:
10
rpx
;
}
.balance-amount
{
display
:
block
;
color
:
#333
;
font-size
:
48
rpx
;
font-weight
:
bold
;
}
.balance-input
{
max-width
:
300
rpx
;
font-size
:
48
rpx
;
font-weight
:
bold
;
color
:
#333
;
border
:
2
rpx
solid
#007aff
;
border-radius
:
12
rpx
;
padding
:
15
rpx
20
rpx
;
background
:
#f8f9fa
;
box-shadow
:
0
2
rpx
8
rpx
rgba
(
0
,
122
,
255
,
0.1
);
}
.profit-input
{
max-width
:
200
rpx
;
font-size
:
28
rpx
;
font-weight
:
bold
;
color
:
#333
;
border
:
2
rpx
solid
#007aff
;
border-radius
:
10
rpx
;
padding
:
12
rpx
16
rpx
;
background
:
#f8f9fa
;
text-align
:
center
;
box-shadow
:
0
2
rpx
8
rpx
rgba
(
0
,
122
,
255
,
0.1
);
}
.profit-input-wrapper
{
margin-top
:
8
rpx
;
display
:
flex
;
justify-content
:
center
;
}
.balance-right
{
text-align
:
center
;
}
.asset-label
{
display
:
block
;
color
:
#666
;
font-size
:
24
rpx
;
margin-bottom
:
10
rpx
;
}
.progress-circle
{
width
:
80
rpx
;
height
:
80
rpx
;
border-radius
:
50%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
position
:
relative
;
}
/* 不同仓位等级的颜色 - 这些样式已由动态样式替代,可以保留作为备用 */
.progress-circle.position-safe
{
/* background: conic-gradient(#00d4aa 0deg 306deg, #e6f7ff 306deg 360deg); */
}
.progress-circle.position-medium
{
/* background: conic-gradient(#ffa502 0deg 306deg, #e6f7ff 306deg 360deg); */
}
.progress-circle.position-high
{
/* background: conic-gradient(#ff4757 0deg 306deg, #e6f7ff 306deg 360deg); */
}
.progress-circle
::after
{
content
:
''
;
width
:
60
rpx
;
height
:
60
rpx
;
background
:
white
;
border-radius
:
50%
;
position
:
absolute
;
}
.progress-text
{
font-size
:
24
rpx
;
font-weight
:
bold
;
z-index
:
1
;
}
/* 不同仓位等级的文字颜色 */
.position-safe
.progress-text
{
color
:
#00d4aa
;
}
.position-medium
.progress-text
{
color
:
#ffa502
;
}
.position-high
.progress-text
{
color
:
#ff4757
;
}
.profit-section
{
display
:
flex
;
justify-content
:
space-between
;
}
.profit-item
{
text-align
:
center
;
}
.profit-label
{
display
:
block
;
color
:
#666
;
font-size
:
24
rpx
;
margin-bottom
:
8
rpx
;
}
.profit-value
{
display
:
block
;
font-size
:
28
rpx
;
font-weight
:
bold
;
}
.profit-value.positive
{
color
:
#ff4757
;
}
.profit-value.negative
{
color
:
#00d4aa
;
}
/* 持仓 */
.holdings-section
{
margin
:
20
rpx
;
}
.section-header
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin-bottom
:
20
rpx
;
}
.section-title
{
display
:
block
;
color
:
#333
;
font-size
:
32
rpx
;
font-weight
:
bold
;
}
.add-holding-btn
{
display
:
flex
;
align-items
:
center
;
gap
:
8
rpx
;
padding
:
8
rpx
15
rpx
;
background
:
#007aff
;
border-radius
:
20
rpx
;
color
:
white
;
font-size
:
24
rpx
;
font-weight
:
500
;
cursor
:
pointer
;
transition
:
background-color
0.2s
;
}
.add-holding-btn
:hover
{
background
:
#0056b3
;
}
.add-icon
{
font-size
:
28
rpx
;
}
.add-text
{
font-size
:
28
rpx
;
}
.holdings-grid
{
display
:
grid
;
grid-template-columns
:
repeat
(
2
,
1fr
);
gap
:
20
rpx
;
}
.holding-card
{
background
:
white
;
border-radius
:
16
rpx
;
padding
:
25
rpx
;
box-shadow
:
0
2
rpx
10
rpx
rgba
(
0
,
0
,
0
,
0.1
);
position
:
relative
;
}
.card-deleted
{
opacity
:
0.5
;
pointer-events
:
none
;
background
:
#f5f5f5
;
border
:
2
rpx
dashed
#ccc
;
}
.card-deleted
.stock-name
,
.card-deleted
.amount-value
,
.card-deleted
.price-value
{
color
:
#999
;
text-decoration
:
line-through
;
}
.card-deleted
.delete-btn
{
background
:
#00d4aa
;
pointer-events
:
auto
;
}
.delete-btn
{
position
:
absolute
;
top
:
15
rpx
;
right
:
15
rpx
;
background
:
#ff4757
;
border-radius
:
50%
;
width
:
50
rpx
;
height
:
50
rpx
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
font-size
:
30
rpx
;
color
:
white
;
z-index
:
1
;
cursor
:
pointer
;
transition
:
background-color
0.2s
;
}
.delete-btn
:hover
{
background
:
#e03e4e
;
}
.delete-icon
{
font-size
:
30
rpx
;
}
.holding-header
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
flex-start
;
margin-bottom
:
20
rpx
;
}
.stock-name-wrapper
{
display
:
flex
;
align-items
:
center
;
}
.stock-name
{
color
:
#333
;
font-size
:
30
rpx
;
font-weight
:
bold
;
margin-right
:
8
rpx
;
}
.lock-icon
{
font-size
:
20
rpx
;
color
:
#999
;
}
.stock-name-input
{
max-width
:
200
rpx
;
font-size
:
30
rpx
;
font-weight
:
bold
;
color
:
#333
;
border
:
2
rpx
solid
#007aff
;
border-radius
:
10
rpx
;
padding
:
12
rpx
16
rpx
;
background
:
#f8f9fa
;
text-align
:
center
;
box-shadow
:
0
2
rpx
8
rpx
rgba
(
0
,
122
,
255
,
0.1
);
}
.position-percentage
{
font-size
:
22
rpx
;
color
:
#007aff
;
background
:
#e8f4ff
;
padding
:
4
rpx
10
rpx
;
border-radius
:
6
rpx
;
}
.stock-change
{
font-size
:
22
rpx
;
padding
:
4
rpx
10
rpx
;
border-radius
:
6
rpx
;
}
.stock-change.positive
{
color
:
#ff4757
;
background
:
#fff1f0
;
}
.stock-change.negative
{
color
:
#00d4aa
;
background
:
#f0fff4
;
}
.change-input
{
max-width
:
100
rpx
;
font-size
:
24
rpx
;
color
:
#333
;
padding
:
12
rpx
16
rpx
;
border-radius
:
8
rpx
;
border
:
2
rpx
solid
#007aff
;
background
:
#f8f9fa
;
text-align
:
right
;
font-weight
:
500
;
box-shadow
:
0
1
rpx
6
rpx
rgba
(
0
,
122
,
255
,
0.1
);
transition
:
all
0.2s
;
}
.stock-price
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin-bottom
:
25
rpx
;
}
.price-value
{
font-size
:
40
rpx
;
font-weight
:
bold
;
color
:
#333
;
}
.price-input
{
max-width
:
100
rpx
;
font-size
:
40
rpx
;
font-weight
:
bold
;
color
:
#333
;
border
:
2
rpx
solid
#007aff
;
border-radius
:
10
rpx
;
padding
:
12
rpx
16
rpx
;
background
:
#f8f9fa
;
text-align
:
right
;
box-shadow
:
0
2
rpx
8
rpx
rgba
(
0
,
122
,
255
,
0.1
);
}
.holding-amounts
{
margin-bottom
:
25
rpx
;
}
.amount-labels
{
display
:
flex
;
justify-content
:
space-between
;
margin-bottom
:
8
rpx
;
}
.amount-label
{
color
:
#666
;
font-size
:
22
rpx
;
}
.amount-row
{
display
:
flex
;
justify-content
:
space-between
;
margin-bottom
:
8
rpx
;
}
.amount-field
{
flex
:
1
;
margin-right
:
10
rpx
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
.amount-field
:last-child
{
margin-right
:
0
;
}
.amount-value
{
color
:
#333
;
font-weight
:
bold
;
font-size
:
24
rpx
;
cursor
:
pointer
;
padding
:
2
rpx
4
rpx
;
border-radius
:
4
rpx
;
transition
:
background-color
0.2s
;
}
.amount-value
:hover
{
background-color
:
#f0f0f0
;
}
.amount-value.profit
{
color
:
#ff4757
;
}
.amount-value.loss
{
color
:
#00d4aa
;
}
.amount-input
{
max-width
:
150
rpx
;
font-size
:
24
rpx
;
color
:
#333
;
padding
:
12
rpx
16
rpx
;
border-radius
:
8
rpx
;
border
:
2
rpx
solid
#007aff
;
background
:
#f8f9fa
;
text-align
:
right
;
font-weight
:
500
;
box-shadow
:
0
1
rpx
6
rpx
rgba
(
0
,
122
,
255
,
0.1
);
transition
:
all
0.2s
;
}
/* 今日操作 */
.operations-section
{
margin
:
20
rpx
;
}
.operations-list
{
background
:
white
;
border-radius
:
16
rpx
;
overflow
:
hidden
;
box-shadow
:
0
2
rpx
10
rpx
rgba
(
0
,
0
,
0
,
0.1
);
}
.operation-group
{
border-bottom
:
1
rpx
solid
#f5f5f5
;
padding
:
30
rpx
;
}
.operation-group
:last-child
{
border-bottom
:
none
;
}
.operation-stock-header
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
margin-bottom
:
20
rpx
;
gap
:
15
rpx
;
}
.operation-stock
{
color
:
#333
;
font-size
:
28
rpx
;
font-weight
:
bold
;
flex-shrink
:
0
;
}
.current-price
{
font-size
:
26
rpx
;
font-weight
:
bold
;
flex-shrink
:
0
;
}
.current-price.positive
{
color
:
#ff4757
;
}
.current-price.negative
{
color
:
#00d4aa
;
}
.price-change
{
font-size
:
22
rpx
;
padding
:
2
rpx
8
rpx
;
border-radius
:
4
rpx
;
font-weight
:
500
;
flex-shrink
:
0
;
}
.price-change.positive
{
color
:
#ff4757
;
background
:
#fff1f0
;
}
.price-change.negative
{
color
:
#00d4aa
;
background
:
#f0fff4
;
}
.holder-count
{
font-size
:
20
rpx
;
color
:
#007aff
;
background
:
#e8f4ff
;
padding
:
4
rpx
8
rpx
;
border-radius
:
6
rpx
;
font-weight
:
500
;
flex-shrink
:
0
;
}
.operations-list-continuous
{
margin-bottom
:
20
rpx
;
}
.operations-list-continuous
.operation-item
{
margin-bottom
:
10
rpx
;
padding
:
15
rpx
;
background
:
#f8f9fa
;
border-radius
:
8
rpx
;
}
.operations-list-continuous
.operation-item
:last-child
{
margin-bottom
:
0
;
}
.operation-notes
{
margin-top
:
15
rpx
;
}
.reasons-section
,
.analyses-section
{
margin-bottom
:
20
rpx
;
}
.reasons-section
:last-child
,
.analyses-section
:last-child
{
margin-bottom
:
0
;
}
.section-subtitle
{
display
:
block
;
font-size
:
26
rpx
;
font-weight
:
bold
;
color
:
#333
;
margin-bottom
:
15
rpx
;
}
.reason-item
,
.analysis-item
{
background
:
#fffbeb
;
padding
:
20
rpx
;
border-radius
:
8
rpx
;
margin-bottom
:
10
rpx
;
border-left
:
4
rpx
solid
#d97706
;
}
.analysis-item
{
background
:
#f0f9ff
;
border-left
:
4
rpx
solid
#0369a1
;
}
.reason-item
:last-child
,
.analysis-item
:last-child
{
margin-bottom
:
0
;
}
.reason-content
,
.analysis-content
{
display
:
block
;
font-size
:
24
rpx
;
line-height
:
1.6
;
margin-bottom
:
8
rpx
;
}
.reason-content
{
color
:
#d97706
;
}
.analysis-content
{
color
:
#0369a1
;
}
.reason-date
,
.analysis-date
{
display
:
block
;
font-size
:
20
rpx
;
color
:
#999
;
text-align
:
right
;
}
.operation-header
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin-bottom
:
10
rpx
;
}
.operation-type
{
display
:
flex
;
align-items
:
center
;
padding
:
8
rpx
16
rpx
;
border-radius
:
8
rpx
;
gap
:
8
rpx
;
}
.operation-type.buy
{
background
:
#fff1f0
;
color
:
#ff4757
;
}
.operation-type.sell
{
background
:
#f0fff4
;
color
:
#00d4aa
;
}
.type-icon
{
font-size
:
20
rpx
;
}
.type-text
{
font-size
:
24
rpx
;
}
.operation-details
{
color
:
#666
;
font-size
:
24
rpx
;
}
/* 悬浮按钮 */
.floating-button
{
position
:
fixed
;
right
:
30
rpx
;
bottom
:
160
rpx
;
width
:
100
rpx
;
height
:
100
rpx
;
background
:
#007aff
;
border-radius
:
50%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
box-shadow
:
0
4
rpx
12
rpx
rgba
(
0
,
122
,
255
,
0.4
);
z-index
:
100
;
}
.float-icon
{
color
:
white
;
font-size
:
48
rpx
;
font-weight
:
300
;
}
/* 底部按钮 */
.bottom-button
{
position
:
fixed
;
bottom
:
30
rpx
;
left
:
30
rpx
;
right
:
30
rpx
;
height
:
80
rpx
;
background
:
#007aff
;
border-radius
:
40
rpx
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
box-shadow
:
0
4
rpx
12
rpx
rgba
(
0
,
122
,
255
,
0.4
);
z-index
:
100
;
}
.bottom-text
{
color
:
white
;
font-size
:
32
rpx
;
font-weight
:
500
;
}
/* 编辑模式按钮 */
.edit-buttons
{
position
:
fixed
;
bottom
:
160
rpx
;
/* 调整位置,使其在悬浮按钮下方 */
left
:
30
rpx
;
right
:
30
rpx
;
display
:
flex
;
justify-content
:
space-around
;
z-index
:
100
;
}
.edit-button
{
flex
:
1
;
margin
:
0
10
rpx
;
height
:
80
rpx
;
border-radius
:
40
rpx
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
font-size
:
32
rpx
;
font-weight
:
500
;
cursor
:
pointer
;
transition
:
background-color
0.2s
;
}
.edit-button.cancel
{
background-color
:
#f0f0f0
;
color
:
#333
;
}
.edit-button.submit
{
background-color
:
#007aff
;
color
:
white
;
}
.edit-button.cancel
:hover
{
background-color
:
#e0e0e0
;
}
.edit-button.submit
:hover
{
background-color
:
#0056b3
;
}
.edit-button-text
{
font-size
:
32
rpx
;
}
</
style
>
frontend/inversment-diary/project.config.json
0 → 100644
View file @
a677e0e6
{
"description"
:
"项目配置文件"
,
"packOptions"
:
{
"ignore"
:
[]
},
"setting"
:
{
"bundle"
:
false
,
"userConfirmedBundleSwitch"
:
false
,
"urlCheck"
:
true
,
"scopeDataCheck"
:
false
,
"coverView"
:
true
,
"es6"
:
true
,
"postcss"
:
true
,
"compileHotReLoad"
:
false
,
"lazyloadPlaceholderEnable"
:
false
,
"preloadBackgroundData"
:
false
,
"minified"
:
true
,
"autoAudits"
:
false
,
"newFeature"
:
false
,
"uglifyFileName"
:
false
,
"uploadWithSourceMap"
:
true
,
"useIsolateContext"
:
true
,
"nodeModules"
:
false
,
"enhance"
:
true
,
"useMultiFrameRuntime"
:
true
,
"useApiHook"
:
true
,
"useApiHostProcess"
:
false
,
"showShadowRootInWxmlPanel"
:
true
,
"packNpmManually"
:
false
,
"enableEngineNative"
:
false
,
"packNpmRelationList"
:
[],
"minifyWXSS"
:
true
,
"showES6CompileOption"
:
false
},
"compileType"
:
"miniprogram"
,
"libVersion"
:
"3.9.2"
,
"appid"
:
"wxe4dc01e034807383"
,
"projectname"
:
"miniprogram-1"
,
"debugOptions"
:
{
"hidedInDevtools"
:
[]
},
"scripts"
:
{},
"staticServerOptions"
:
{
"baseURL"
:
""
,
"servePath"
:
""
},
"isGameTourist"
:
false
,
"condition"
:
{
"search"
:
{
"list"
:
[]
},
"conversation"
:
{
"list"
:
[]
},
"game"
:
{
"list"
:
[]
},
"plugin"
:
{
"list"
:
[]
},
"gamePlugin"
:
{
"list"
:
[]
},
"miniprogram"
:
{
"list"
:
[]
}
}
}
\ No newline at end of file
frontend/inversment-diary/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map
deleted
100644 → 0
View file @
c5b00f12
{"version":3,"file":"app.js","sources":["App.vue","main.js"],"sourcesContent":["<script>\r\n\texport default {\r\n\t\tonLaunch: function() {\r\n\t\t\tconsole.log('App Launch')\r\n\t\t},\r\n\t\tonShow: function() {\r\n\t\t\tconsole.log('App Show')\r\n\t\t},\r\n\t\tonHide: function() {\r\n\t\t\tconsole.log('App Hide')\r\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style>\r\n\t/*每个页面公共css */\r\n</style>\n","import App from './App'\n\n// #ifndef VUE3\nimport Vue from 'vue'\nimport './uni.promisify.adaptor'\nVue.config.productionTip = false\nApp.mpType = 'app'\nconst app = new Vue({\n ...App\n})\napp.$mount()\n// #endif\n\n// #ifdef VUE3\nimport { createSSRApp } from 'vue'\nexport function createApp() {\n const app = createSSRApp(App)\n return {\n app\n }\n}\n// #endif"],"names":["uni","createSSRApp","App"],"mappings":";;;;;;AACC,MAAK,YAAU;AAAA,EACd,UAAU,WAAW;AACpBA,kBAAAA,MAAA,MAAA,OAAA,gBAAY,YAAY;AAAA,EACxB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,gBAAA,UAAU;AAAA,EACtB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,iBAAA,UAAU;AAAA,EACvB;AACD;ACIM,SAAS,YAAY;AAC1B,QAAM,MAAMC,cAAY,aAACC,SAAG;AAC5B,SAAO;AAAA,IACL;AAAA,EACD;AACH;;;"}
\ No newline at end of file
frontend/inversment-diary/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map
deleted
100644 → 0
View file @
c5b00f12
{"version":3,"file":"assets.js","sources":["static/logo.png"],"sourcesContent":["export default \"__VITE_ASSET__46719607__\""],"names":[],"mappings":";AAAA,MAAe,aAAA;;"}
\ No newline at end of file
frontend/inversment-diary/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
deleted
100644 → 0
View file @
c5b00f12
This diff is collapsed.
Click to expand it.
frontend/inversment-diary/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
deleted
100644 → 0
View file @
c5b00f12
This diff is collapsed.
Click to expand it.
frontend/inversment-diary/unpackage/dist/dev/mp-weixin/app.js
deleted
100644 → 0
View file @
c5b00f12
"
use strict
"
;
Object
.
defineProperty
(
exports
,
Symbol
.
toStringTag
,
{
value
:
"
Module
"
});
const
common_vendor
=
require
(
"
./common/vendor.js
"
);
if
(
!
Math
)
{
"
./pages/index/index.js
"
;
}
const
_sfc_main
=
{
onLaunch
:
function
()
{
common_vendor
.
index
.
__f__
(
"
log
"
,
"
at App.vue:4
"
,
"
App Launch
"
);
},
onShow
:
function
()
{
common_vendor
.
index
.
__f__
(
"
log
"
,
"
at App.vue:7
"
,
"
App Show
"
);
},
onHide
:
function
()
{
common_vendor
.
index
.
__f__
(
"
log
"
,
"
at App.vue:10
"
,
"
App Hide
"
);
}
};
function
createApp
()
{
const
app
=
common_vendor
.
createSSRApp
(
_sfc_main
);
return
{
app
};
}
createApp
().
app
.
mount
(
"
#app
"
);
exports
.
createApp
=
createApp
;
//# sourceMappingURL=../.sourcemap/mp-weixin/app.js.map
frontend/inversment-diary/unpackage/dist/dev/mp-weixin/app.json
deleted
100644 → 0
View file @
c5b00f12
{
"pages"
:
[
"pages/index/index"
],
"window"
:
{
"navigationBarTextStyle"
:
"white"
,
"navigationBarTitleText"
:
"韭家投资日记"
,
"navigationBarBackgroundColor"
:
"#4A90E2"
,
"backgroundColor"
:
"#f5f5f5"
},
"usingComponents"
:
{}
}
\ No newline at end of file
frontend/inversment-diary/unpackage/dist/dev/mp-weixin/app.wxss
deleted
100644 → 0
View file @
c5b00f12
/*每个页面公共css */
page{--status-bar-height:25px;--top-window-height:0px;--window-top:0px;--window-bottom:0px;--window-left:0px;--window-right:0px;--window-magin:0px}[data-c-h="true"]{display: none !important;}
\ No newline at end of file
frontend/inversment-diary/unpackage/dist/dev/mp-weixin/common/assets.js
deleted
100644 → 0
View file @
c5b00f12
"
use strict
"
;
const
_imports_0
=
"
/static/logo.png
"
;
exports
.
_imports_0
=
_imports_0
;
//# sourceMappingURL=../../.sourcemap/mp-weixin/common/assets.js.map
frontend/inversment-diary/unpackage/dist/dev/mp-weixin/common/vendor.js
deleted
100644 → 0
View file @
c5b00f12
This diff is collapsed.
Click to expand it.
frontend/inversment-diary/unpackage/dist/dev/mp-weixin/pages/index/index.js
deleted
100644 → 0
View file @
c5b00f12
This diff is collapsed.
Click to expand it.
frontend/inversment-diary/unpackage/dist/dev/mp-weixin/pages/index/index.json
deleted
100644 → 0
View file @
c5b00f12
{
"navigationBarTitleText"
:
"韭家投资日记"
,
"navigationBarTextStyle"
:
"white"
,
"navigationBarBackgroundColor"
:
"#4A90E2"
,
"backgroundColor"
:
"#f5f5f5"
,
"usingComponents"
:
{}
}
\ No newline at end of file
frontend/inversment-diary/unpackage/dist/dev/mp-weixin/pages/index/index.wxml
deleted
100644 → 0
View file @
c5b00f12
<view class="container data-v-1cf27b2a"><view class="date-header data-v-1cf27b2a"><view class="date-selector data-v-1cf27b2a" bindtap="{{b}}"><text class="date-text data-v-1cf27b2a">{{a}}</text><text class="calendar-icon data-v-1cf27b2a">📅</text></view><view class="edit-toggle data-v-1cf27b2a" bindtap="{{d}}"><text class="edit-toggle-text data-v-1cf27b2a">{{c}}</text></view></view><view wx:if="{{e}}" class="calendar-overlay data-v-1cf27b2a" bindtap="{{l}}"><view class="calendar-popup data-v-1cf27b2a" catchtap="{{k}}"><view class="calendar-header data-v-1cf27b2a"><text class="calendar-title data-v-1cf27b2a">{{f}}年{{g}}月</text><view class="calendar-nav data-v-1cf27b2a"><text class="nav-btn data-v-1cf27b2a" bindtap="{{h}}">◀</text><text class="nav-btn data-v-1cf27b2a" bindtap="{{i}}">▶</text></view></view><view class="calendar-weekdays data-v-1cf27b2a"><text class="weekday data-v-1cf27b2a">一</text><text class="weekday data-v-1cf27b2a">二</text><text class="weekday data-v-1cf27b2a">三</text><text class="weekday data-v-1cf27b2a">四</text><text class="weekday data-v-1cf27b2a">五</text><text class="weekday data-v-1cf27b2a">六</text><text class="weekday data-v-1cf27b2a">日</text></view><view class="calendar-days data-v-1cf27b2a"><view wx:for="{{j}}" wx:for-item="week" wx:key="b" class="calendar-row data-v-1cf27b2a"><view wx:for="{{week.a}}" wx:for-item="day" wx:key="b" class="{{['calendar-day', 'data-v-1cf27b2a', day.c && 'other-month', day.d && 'selected', day.e && 'today']}}" bindtap="{{day.f}}"><text class="day-number data-v-1cf27b2a">{{day.a}}</text></view></view></view></view></view><view class="account-overview data-v-1cf27b2a"><view class="balance-section data-v-1cf27b2a"><view class="balance-left data-v-1cf27b2a"><text class="balance-label data-v-1cf27b2a">账户余额</text><view wx:if="{{m}}" class="balance-amount data-v-1cf27b2a">¥{{n}}</view><input wx:else class="balance-input data-v-1cf27b2a" type="text" placeholder="请输入账户余额" value="{{o}}" bindinput="{{p}}"/></view><view class="balance-right data-v-1cf27b2a"><text class="asset-label data-v-1cf27b2a">持仓仓位</text><view class="{{['progress-circle', 'data-v-1cf27b2a', r]}}" style="{{s}}" bindtap="{{t}}"><text class="progress-text data-v-1cf27b2a">{{q}}%</text></view></view></view><view class="profit-section data-v-1cf27b2a"><view class="profit-item data-v-1cf27b2a"><text class="profit-label data-v-1cf27b2a">今日盈亏</text><view wx:if="{{v}}" class="profit-value positive data-v-1cf27b2a">{{w}}</view><view wx:else class="profit-input-wrapper data-v-1cf27b2a"><input class="profit-input data-v-1cf27b2a" type="text" placeholder="请输入今日盈亏" value="{{x}}" bindinput="{{y}}"/></view></view><view class="profit-item data-v-1cf27b2a"><text class="profit-label data-v-1cf27b2a">盈亏比例</text><text class="profit-value positive data-v-1cf27b2a">{{z}}%</text></view></view></view><view class="holdings-section data-v-1cf27b2a"><view class="section-header data-v-1cf27b2a"><text class="section-title data-v-1cf27b2a">持仓</text><view wx:if="{{A}}" class="add-holding-btn data-v-1cf27b2a" bindtap="{{B}}"><text class="add-icon data-v-1cf27b2a">+</text><text class="add-text data-v-1cf27b2a">新增</text></view></view><view class="holdings-grid data-v-1cf27b2a"><view wx:for="{{C}}" wx:for-item="holding" wx:key="x" class="{{['holding-card', 'data-v-1cf27b2a', holding.y && 'card-deleted']}}"><view wx:if="{{D}}" class="delete-btn data-v-1cf27b2a" bindtap="{{holding.b}}"><text class="delete-icon data-v-1cf27b2a">{{holding.a}}</text></view><view class="holding-header data-v-1cf27b2a"><view wx:if="{{holding.c}}" class="stock-name-wrapper data-v-1cf27b2a"><text class="stock-name data-v-1cf27b2a">{{holding.d}}</text><text wx:if="{{holding.e}}" class="lock-icon data-v-1cf27b2a">🔒</text></view><input wx:else class="stock-name-input data-v-1cf27b2a" type="text" placeholder="股票名称" value="{{holding.f}}" bindinput="{{holding.g}}"/><text class="position-percentage data-v-1cf27b2a">仓位 {{holding.h}}</text></view><view class="stock-price data-v-1cf27b2a"><view wx:if="{{E}}" class="price-value data-v-1cf27b2a">{{holding.i}}</view><input wx:else class="price-input data-v-1cf27b2a" type="text" placeholder="价格" value="{{holding.j}}" bindinput="{{holding.k}}"/><view wx:if="{{F}}" class="{{['stock-change', 'data-v-1cf27b2a', holding.m]}}">{{holding.l}}</view><input wx:else class="change-input data-v-1cf27b2a" type="text" placeholder="涨跌幅" value="{{holding.n}}" bindinput="{{holding.o}}"/></view><view class="holding-amounts data-v-1cf27b2a"><view class="amount-labels data-v-1cf27b2a"><text class="amount-label data-v-1cf27b2a">持仓金额</text><text class="amount-label data-v-1cf27b2a">盈亏金额</text></view><view class="amount-row data-v-1cf27b2a"><view class="amount-field data-v-1cf27b2a"><view wx:if="{{G}}" class="amount-value data-v-1cf27b2a">¥{{holding.p}}</view><input wx:else class="amount-input data-v-1cf27b2a" type="text" placeholder="持仓金额" value="{{holding.q}}" bindinput="{{holding.r}}"/></view><view class="amount-field data-v-1cf27b2a"><view wx:if="{{H}}" class="{{['amount-value', 'data-v-1cf27b2a', holding.t]}}">{{holding.s}}</view><input wx:else class="amount-input data-v-1cf27b2a" type="text" placeholder="盈亏金额" value="{{holding.v}}" bindinput="{{holding.w}}"/></view></view></view></view></view></view><view class="operations-section data-v-1cf27b2a"><text class="section-title data-v-1cf27b2a">今日操作</text><view class="operations-list data-v-1cf27b2a"><view wx:for="{{I}}" wx:for-item="group" wx:key="m" class="operation-group data-v-1cf27b2a"><view class="operation-stock-header data-v-1cf27b2a"><text class="operation-stock data-v-1cf27b2a">{{group.a}}</text><text class="{{['current-price', 'data-v-1cf27b2a', group.c]}}">{{group.b}}</text><text class="{{['price-change', 'data-v-1cf27b2a', group.e]}}">{{group.d}}</text><text class="holder-count data-v-1cf27b2a">{{group.f}}人持有</text></view><view class="operations-list-continuous data-v-1cf27b2a"><view wx:for="{{group.g}}" wx:for-item="op" wx:key="f" class="operation-item data-v-1cf27b2a"><view class="operation-header data-v-1cf27b2a"><view class="{{['operation-type', 'data-v-1cf27b2a', op.c]}}"><text class="type-icon data-v-1cf27b2a">{{op.a}}</text><text class="type-text data-v-1cf27b2a">{{op.b}}</text></view><text class="operation-details data-v-1cf27b2a">价格: {{op.d}} 数量: {{op.e}}</text></view></view></view><view wx:if="{{group.h}}" class="operation-notes data-v-1cf27b2a"><view wx:if="{{group.i}}" class="reasons-section data-v-1cf27b2a"><text class="section-subtitle data-v-1cf27b2a">操作理由</text><view wx:for="{{group.j}}" wx:for-item="reason" wx:key="c" class="reason-item data-v-1cf27b2a"><text class="reason-content data-v-1cf27b2a">{{reason.a}}</text><text class="reason-date data-v-1cf27b2a">{{reason.b}}</text></view></view><view wx:if="{{group.k}}" class="analyses-section data-v-1cf27b2a"><text class="section-subtitle data-v-1cf27b2a">马后炮分析</text><view wx:for="{{group.l}}" wx:for-item="analysis" wx:key="c" class="analysis-item data-v-1cf27b2a"><text class="analysis-content data-v-1cf27b2a">{{analysis.a}}</text><text class="analysis-date data-v-1cf27b2a">{{analysis.b}}</text></view></view></view></view></view></view><view wx:if="{{J}}" class="floating-button data-v-1cf27b2a" bindtap="{{K}}"><text class="float-icon data-v-1cf27b2a">+</text></view><view wx:if="{{L}}" class="edit-buttons data-v-1cf27b2a"><view class="edit-button cancel data-v-1cf27b2a" bindtap="{{M}}"><text class="edit-button-text data-v-1cf27b2a">取消</text></view><view class="edit-button submit data-v-1cf27b2a" bindtap="{{N}}"><text class="edit-button-text data-v-1cf27b2a">保存</text></view></view><view wx:if="{{O}}" class="bottom-button data-v-1cf27b2a" bindtap="{{P}}"><text class="bottom-text data-v-1cf27b2a">提交修改</text></view></view>
\ No newline at end of file
frontend/inversment-diary/unpackage/dist/dev/mp-weixin/pages/index/index.wxss
deleted
100644 → 0
View file @
c5b00f12
.container.data-v-1cf27b2a {
min-height: 100vh;
background: #f5f7fa;
padding-bottom: 120rpx;
}
/* 日期选择器 */
.date-header.data-v-1cf27b2a {
background: white;
padding: 20rpx 30rpx;
border-bottom: 1rpx solid #f0f0f0;
position: -webkit-sticky;
position: sticky;
top: 0;
z-index: 99;
display: flex;
justify-content: space-between;
align-items: center;
}
.date-selector.data-v-1cf27b2a {
display: flex;
align-items: center;
padding: 15rpx 0;
}
.edit-toggle.data-v-1cf27b2a {
padding: 15rpx 25rpx;
background: #007aff;
border-radius: 25rpx;
cursor: pointer;
transition: background-color 0.2s;
}
.edit-toggle.data-v-1cf27b2a:hover {
background: #0056b3;
}
.edit-toggle-text.data-v-1cf27b2a {
color: white;
font-size: 28rpx;
font-weight: 500;
}
.date-text.data-v-1cf27b2a {
color: #333;
font-size: 32rpx;
font-weight: bold;
margin-right: 15rpx;
}
.calendar-icon.data-v-1cf27b2a {
font-size: 28rpx;
color: #007aff;
}
/* 自定义日历 */
.calendar-overlay.data-v-1cf27b2a {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
z-index: 1000;
}
.calendar-popup.data-v-1cf27b2a {
background: white;
width: 90%;
max-width: 600rpx;
border-radius: 20rpx;
padding: 30rpx;
box-shadow: 0 10rpx 30rpx rgba(0, 0, 0, 0.3);
}
.calendar-header.data-v-1cf27b2a {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 30rpx;
padding-bottom: 20rpx;
border-bottom: 1rpx solid #f0f0f0;
}
.calendar-title.data-v-1cf27b2a {
font-size: 36rpx;
font-weight: bold;
color: #333;
}
.calendar-nav.data-v-1cf27b2a {
display: flex;
gap: 30rpx;
}
.nav-btn.data-v-1cf27b2a {
width: 60rpx;
height: 60rpx;
background: #f5f5f5;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 24rpx;
color: #666;
}
.calendar-weekdays.data-v-1cf27b2a {
display: grid;
grid-template-columns: repeat(7, 1fr);
gap: 10rpx;
margin-bottom: 20rpx;
}
.weekday.data-v-1cf27b2a {
text-align: center;
color: #999;
font-size: 24rpx;
padding: 15rpx 0;
}
.calendar-days.data-v-1cf27b2a {
display: flex;
flex-direction: column;
gap: 5rpx;
}
.calendar-row.data-v-1cf27b2a {
display: grid;
grid-template-columns: repeat(7, 1fr);
gap: 5rpx;
}
.calendar-day.data-v-1cf27b2a {
aspect-ratio: 1;
display: flex;
align-items: center;
justify-content: center;
border-radius: 8rpx;
cursor: pointer;
transition: all 0.2s;
}
.calendar-day.other-month.data-v-1cf27b2a {
opacity: 0.3;
}
.calendar-day.selected.data-v-1cf27b2a {
background: #007aff;
color: white;
}
.calendar-day.today.data-v-1cf27b2a {
background: #e8f4ff;
color: #007aff;
font-weight: bold;
}
.calendar-day.selected.today.data-v-1cf27b2a {
background: #007aff;
color: white;
}
.day-number.data-v-1cf27b2a {
font-size: 28rpx;
}
/* 可编辑字段样式 */
.editable-field.data-v-1cf27b2a {
display: flex;
align-items: center;
cursor: pointer;
padding: 4rpx 8rpx;
border-radius: 6rpx;
transition: background-color 0.2s;
position: relative;
}
.editable-field.data-v-1cf27b2a:hover {
background-color: rgba(0, 122, 255, 0.1);
}
.edit-icon.data-v-1cf27b2a {
font-size: 20rpx;
margin-left: 8rpx;
opacity: 0.6;
transition: opacity 0.2s;
}
.editable-field:hover .edit-icon.data-v-1cf27b2a {
opacity: 1;
}
/* 账户概览 */
.account-overview.data-v-1cf27b2a {
background: white;
margin: 20rpx;
border-radius: 16rpx;
padding: 30rpx;
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.1);
}
.balance-section.data-v-1cf27b2a {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 30rpx;
}
.balance-left.data-v-1cf27b2a {
flex: 1;
}
.balance-label.data-v-1cf27b2a {
display: block;
color: #666;
font-size: 28rpx;
margin-bottom: 10rpx;
}
.balance-amount.data-v-1cf27b2a {
display: block;
color: #333;
font-size: 48rpx;
font-weight: bold;
}
.balance-input.data-v-1cf27b2a {
max-width: 300rpx;
font-size: 48rpx;
font-weight: bold;
color: #333;
border: 2rpx solid #007aff;
border-radius: 12rpx;
padding: 15rpx 20rpx;
background: #f8f9fa;
box-shadow: 0 2rpx 8rpx rgba(0, 122, 255, 0.1);
}
.profit-input.data-v-1cf27b2a {
max-width: 200rpx;
font-size: 28rpx;
font-weight: bold;
color: #333;
border: 2rpx solid #007aff;
border-radius: 10rpx;
padding: 12rpx 16rpx;
background: #f8f9fa;
text-align: center;
box-shadow: 0 2rpx 8rpx rgba(0, 122, 255, 0.1);
}
.profit-input-wrapper.data-v-1cf27b2a {
margin-top: 8rpx;
display: flex;
justify-content: center;
}
.balance-right.data-v-1cf27b2a {
text-align: center;
}
.asset-label.data-v-1cf27b2a {
display: block;
color: #666;
font-size: 24rpx;
margin-bottom: 10rpx;
}
.progress-circle.data-v-1cf27b2a {
width: 80rpx;
height: 80rpx;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
/* 不同仓位等级的颜色 - 这些样式已由动态样式替代,可以保留作为备用 */
.progress-circle.position-safe.data-v-1cf27b2a {
/* background: conic-gradient(#00d4aa 0deg 306deg, #e6f7ff 306deg 360deg); */
}
.progress-circle.position-medium.data-v-1cf27b2a {
/* background: conic-gradient(#ffa502 0deg 306deg, #e6f7ff 306deg 360deg); */
}
.progress-circle.position-high.data-v-1cf27b2a {
/* background: conic-gradient(#ff4757 0deg 306deg, #e6f7ff 306deg 360deg); */
}
.progress-circle.data-v-1cf27b2a::after {
content: '';
width: 60rpx;
height: 60rpx;
background: white;
border-radius: 50%;
position: absolute;
}
.progress-text.data-v-1cf27b2a {
font-size: 24rpx;
font-weight: bold;
z-index: 1;
}
/* 不同仓位等级的文字颜色 */
.position-safe .progress-text.data-v-1cf27b2a {
color: #00d4aa;
}
.position-medium .progress-text.data-v-1cf27b2a {
color: #ffa502;
}
.position-high .progress-text.data-v-1cf27b2a {
color: #ff4757;
}
.profit-section.data-v-1cf27b2a {
display: flex;
justify-content: space-between;
}
.profit-item.data-v-1cf27b2a {
text-align: center;
}
.profit-label.data-v-1cf27b2a {
display: block;
color: #666;
font-size: 24rpx;
margin-bottom: 8rpx;
}
.profit-value.data-v-1cf27b2a {
display: block;
font-size: 28rpx;
font-weight: bold;
}
.profit-value.positive.data-v-1cf27b2a {
color: #ff4757;
}
.profit-value.negative.data-v-1cf27b2a {
color: #00d4aa;
}
/* 持仓 */
.holdings-section.data-v-1cf27b2a {
margin: 20rpx;
}
.section-header.data-v-1cf27b2a {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20rpx;
}
.section-title.data-v-1cf27b2a {
display: block;
color: #333;
font-size: 32rpx;
font-weight: bold;
}
.add-holding-btn.data-v-1cf27b2a {
display: flex;
align-items: center;
gap: 8rpx;
padding: 8rpx 15rpx;
background: #007aff;
border-radius: 20rpx;
color: white;
font-size: 24rpx;
font-weight: 500;
cursor: pointer;
transition: background-color 0.2s;
}
.add-holding-btn.data-v-1cf27b2a:hover {
background: #0056b3;
}
.add-icon.data-v-1cf27b2a {
font-size: 28rpx;
}
.add-text.data-v-1cf27b2a {
font-size: 28rpx;
}
.holdings-grid.data-v-1cf27b2a {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 20rpx;
}
.holding-card.data-v-1cf27b2a {
background: white;
border-radius: 16rpx;
padding: 25rpx;
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.1);
position: relative;
}
.card-deleted.data-v-1cf27b2a {
opacity: 0.5;
pointer-events: none;
background: #f5f5f5;
border: 2rpx dashed #ccc;
}
.card-deleted .stock-name.data-v-1cf27b2a,
.card-deleted .amount-value.data-v-1cf27b2a,
.card-deleted .price-value.data-v-1cf27b2a {
color: #999;
text-decoration: line-through;
}
.card-deleted .delete-btn.data-v-1cf27b2a {
background: #00d4aa;
pointer-events: auto;
}
.delete-btn.data-v-1cf27b2a {
position: absolute;
top: 15rpx;
right: 15rpx;
background: #ff4757;
border-radius: 50%;
width: 50rpx;
height: 50rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 30rpx;
color: white;
z-index: 1;
cursor: pointer;
transition: background-color 0.2s;
}
.delete-btn.data-v-1cf27b2a:hover {
background: #e03e4e;
}
.delete-icon.data-v-1cf27b2a {
font-size: 30rpx;
}
.holding-header.data-v-1cf27b2a {
display: flex;
justify-content: space-between;
align-items: flex-start;
margin-bottom: 20rpx;
}
.stock-name-wrapper.data-v-1cf27b2a {
display: flex;
align-items: center;
}
.stock-name.data-v-1cf27b2a {
color: #333;
font-size: 30rpx;
font-weight: bold;
margin-right: 8rpx;
}
.lock-icon.data-v-1cf27b2a {
font-size: 20rpx;
color: #999;
}
.stock-name-input.data-v-1cf27b2a {
max-width: 200rpx;
font-size: 30rpx;
font-weight: bold;
color: #333;
border: 2rpx solid #007aff;
border-radius: 10rpx;
padding: 12rpx 16rpx;
background: #f8f9fa;
text-align: center;
box-shadow: 0 2rpx 8rpx rgba(0, 122, 255, 0.1);
}
.position-percentage.data-v-1cf27b2a {
font-size: 22rpx;
color: #007aff;
background: #e8f4ff;
padding: 4rpx 10rpx;
border-radius: 6rpx;
}
.stock-change.data-v-1cf27b2a {
font-size: 22rpx;
padding: 4rpx 10rpx;
border-radius: 6rpx;
}
.stock-change.positive.data-v-1cf27b2a {
color: #ff4757;
background: #fff1f0;
}
.stock-change.negative.data-v-1cf27b2a {
color: #00d4aa;
background: #f0fff4;
}
.change-input.data-v-1cf27b2a {
max-width: 100rpx;
font-size: 24rpx;
color: #333;
padding: 12rpx 16rpx;
border-radius: 8rpx;
border: 2rpx solid #007aff;
background: #f8f9fa;
text-align: right;
font-weight: 500;
box-shadow: 0 1rpx 6rpx rgba(0, 122, 255, 0.1);
transition: all 0.2s;
}
.stock-price.data-v-1cf27b2a {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 25rpx;
}
.price-value.data-v-1cf27b2a {
font-size: 40rpx;
font-weight: bold;
color: #333;
}
.price-input.data-v-1cf27b2a {
max-width: 100rpx;
font-size: 40rpx;
font-weight: bold;
color: #333;
border: 2rpx solid #007aff;
border-radius: 10rpx;
padding: 12rpx 16rpx;
background: #f8f9fa;
text-align: right;
box-shadow: 0 2rpx 8rpx rgba(0, 122, 255, 0.1);
}
.holding-amounts.data-v-1cf27b2a {
margin-bottom: 25rpx;
}
.amount-labels.data-v-1cf27b2a {
display: flex;
justify-content: space-between;
margin-bottom: 8rpx;
}
.amount-label.data-v-1cf27b2a {
color: #666;
font-size: 22rpx;
}
.amount-row.data-v-1cf27b2a {
display: flex;
justify-content: space-between;
margin-bottom: 8rpx;
}
.amount-field.data-v-1cf27b2a {
flex: 1;
margin-right: 10rpx;
display: flex;
justify-content: center;
align-items: center;
}
.amount-field.data-v-1cf27b2a:last-child {
margin-right: 0;
}
.amount-value.data-v-1cf27b2a {
color: #333;
font-weight: bold;
font-size: 24rpx;
cursor: pointer;
padding: 2rpx 4rpx;
border-radius: 4rpx;
transition: background-color 0.2s;
}
.amount-value.data-v-1cf27b2a:hover {
background-color: #f0f0f0;
}
.amount-value.profit.data-v-1cf27b2a {
color: #ff4757;
}
.amount-value.loss.data-v-1cf27b2a {
color: #00d4aa;
}
.amount-input.data-v-1cf27b2a {
max-width: 150rpx;
font-size: 24rpx;
color: #333;
padding: 12rpx 16rpx;
border-radius: 8rpx;
border: 2rpx solid #007aff;
background: #f8f9fa;
text-align: right;
font-weight: 500;
box-shadow: 0 1rpx 6rpx rgba(0, 122, 255, 0.1);
transition: all 0.2s;
}
/* 今日操作 */
.operations-section.data-v-1cf27b2a {
margin: 20rpx;
}
.operations-list.data-v-1cf27b2a {
background: white;
border-radius: 16rpx;
overflow: hidden;
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.1);
}
.operation-group.data-v-1cf27b2a {
border-bottom: 1rpx solid #f5f5f5;
padding: 30rpx;
}
.operation-group.data-v-1cf27b2a:last-child {
border-bottom: none;
}
.operation-stock-header.data-v-1cf27b2a {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20rpx;
gap: 15rpx;
}
.operation-stock.data-v-1cf27b2a {
color: #333;
font-size: 28rpx;
font-weight: bold;
flex-shrink: 0;
}
.current-price.data-v-1cf27b2a {
font-size: 26rpx;
font-weight: bold;
flex-shrink: 0;
}
.current-price.positive.data-v-1cf27b2a {
color: #ff4757;
}
.current-price.negative.data-v-1cf27b2a {
color: #00d4aa;
}
.price-change.data-v-1cf27b2a {
font-size: 22rpx;
padding: 2rpx 8rpx;
border-radius: 4rpx;
font-weight: 500;
flex-shrink: 0;
}
.price-change.positive.data-v-1cf27b2a {
color: #ff4757;
background: #fff1f0;
}
.price-change.negative.data-v-1cf27b2a {
color: #00d4aa;
background: #f0fff4;
}
.holder-count.data-v-1cf27b2a {
font-size: 20rpx;
color: #007aff;
background: #e8f4ff;
padding: 4rpx 8rpx;
border-radius: 6rpx;
font-weight: 500;
flex-shrink: 0;
}
.operations-list-continuous.data-v-1cf27b2a {
margin-bottom: 20rpx;
}
.operations-list-continuous .operation-item.data-v-1cf27b2a {
margin-bottom: 10rpx;
padding: 15rpx;
background: #f8f9fa;
border-radius: 8rpx;
}
.operations-list-continuous .operation-item.data-v-1cf27b2a:last-child {
margin-bottom: 0;
}
.operation-notes.data-v-1cf27b2a {
margin-top: 15rpx;
}
.reasons-section.data-v-1cf27b2a,
.analyses-section.data-v-1cf27b2a {
margin-bottom: 20rpx;
}
.reasons-section.data-v-1cf27b2a:last-child,
.analyses-section.data-v-1cf27b2a:last-child {
margin-bottom: 0;
}
.section-subtitle.data-v-1cf27b2a {
display: block;
font-size: 26rpx;
font-weight: bold;
color: #333;
margin-bottom: 15rpx;
}
.reason-item.data-v-1cf27b2a,
.analysis-item.data-v-1cf27b2a {
background: #fffbeb;
padding: 20rpx;
border-radius: 8rpx;
margin-bottom: 10rpx;
border-left: 4rpx solid #d97706;
}
.analysis-item.data-v-1cf27b2a {
background: #f0f9ff;
border-left: 4rpx solid #0369a1;
}
.reason-item.data-v-1cf27b2a:last-child,
.analysis-item.data-v-1cf27b2a:last-child {
margin-bottom: 0;
}
.reason-content.data-v-1cf27b2a,
.analysis-content.data-v-1cf27b2a {
display: block;
font-size: 24rpx;
line-height: 1.6;
margin-bottom: 8rpx;
}
.reason-content.data-v-1cf27b2a {
color: #d97706;
}
.analysis-content.data-v-1cf27b2a {
color: #0369a1;
}
.reason-date.data-v-1cf27b2a,
.analysis-date.data-v-1cf27b2a {
display: block;
font-size: 20rpx;
color: #999;
text-align: right;
}
.operation-header.data-v-1cf27b2a {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 10rpx;
}
.operation-type.data-v-1cf27b2a {
display: flex;
align-items: center;
padding: 8rpx 16rpx;
border-radius: 8rpx;
gap: 8rpx;
}
.operation-type.buy.data-v-1cf27b2a {
background: #fff1f0;
color: #ff4757;
}
.operation-type.sell.data-v-1cf27b2a {
background: #f0fff4;
color: #00d4aa;
}
.type-icon.data-v-1cf27b2a {
font-size: 20rpx;
}
.type-text.data-v-1cf27b2a {
font-size: 24rpx;
}
.operation-details.data-v-1cf27b2a {
color: #666;
font-size: 24rpx;
}
/* 悬浮按钮 */
.floating-button.data-v-1cf27b2a {
position: fixed;
right: 30rpx;
bottom: 160rpx;
width: 100rpx;
height: 100rpx;
background: #007aff;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 4rpx 12rpx rgba(0, 122, 255, 0.4);
z-index: 100;
}
.float-icon.data-v-1cf27b2a {
color: white;
font-size: 48rpx;
font-weight: 300;
}
/* 底部按钮 */
.bottom-button.data-v-1cf27b2a {
position: fixed;
bottom: 30rpx;
left: 30rpx;
right: 30rpx;
height: 80rpx;
background: #007aff;
border-radius: 40rpx;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 4rpx 12rpx rgba(0, 122, 255, 0.4);
z-index: 100;
}
.bottom-text.data-v-1cf27b2a {
color: white;
font-size: 32rpx;
font-weight: 500;
}
/* 编辑模式按钮 */
.edit-buttons.data-v-1cf27b2a {
position: fixed;
bottom: 160rpx; /* 调整位置,使其在悬浮按钮下方 */
left: 30rpx;
right: 30rpx;
display: flex;
justify-content: space-around;
z-index: 100;
}
.edit-button.data-v-1cf27b2a {
flex: 1;
margin: 0 10rpx;
height: 80rpx;
border-radius: 40rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 32rpx;
font-weight: 500;
cursor: pointer;
transition: background-color 0.2s;
}
.edit-button.cancel.data-v-1cf27b2a {
background-color: #f0f0f0;
color: #333;
}
.edit-button.submit.data-v-1cf27b2a {
background-color: #007aff;
color: white;
}
.edit-button.cancel.data-v-1cf27b2a:hover {
background-color: #e0e0e0;
}
.edit-button.submit.data-v-1cf27b2a:hover {
background-color: #0056b3;
}
.edit-button-text.data-v-1cf27b2a {
font-size: 32rpx;
}
frontend/inversment-diary/unpackage/dist/dev/mp-weixin/project.config.json
deleted
100644 → 0
View file @
c5b00f12
{
"description"
:
"项目配置文件。"
,
"packOptions"
:
{
"ignore"
:
[]
},
"setting"
:
{
"urlCheck"
:
false
,
"es6"
:
true
,
"postcss"
:
false
,
"minified"
:
false
,
"newFeature"
:
true
,
"bigPackageSizeSupport"
:
true
},
"compileType"
:
"miniprogram"
,
"libVersion"
:
""
,
"appid"
:
"wxdbcad78d98ca9fcc"
,
"projectname"
:
"inversment-diary"
,
"condition"
:
{
"search"
:
{
"current"
:
-1
,
"list"
:
[]
},
"conversation"
:
{
"current"
:
-1
,
"list"
:
[]
},
"game"
:
{
"current"
:
-1
,
"list"
:
[]
},
"miniprogram"
:
{
"current"
:
-1
,
"list"
:
[]
}
}
}
\ No newline at end of file
frontend/inversment-diary/unpackage/dist/dev/mp-weixin/static/logo.png
deleted
100644 → 0
View file @
c5b00f12
3.93 KiB