Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
CFFP-HB
Overview
Overview
Details
Activity
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chao Sun
CFFP-HB
Commits
6bf15b7d
Commit
6bf15b7d
authored
Oct 23, 2026
by
yuzhenWang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature-20261023-修改薪资单' into 'dev'
Feature 20261023 修改薪资单 See merge request
!141
parents
53dbeb4a
f64974fd
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
158 additions
and
87 deletions
+158
-87
index.html
+119
-51
myPackageA/salary/salaryList.vue
+39
-36
No files found.
index.html
View file @
6bf15b7d
<!DOCTYPE html>
<html
lang=
"en"
>
<head>
<meta
charset=
"UTF-8"
/>
<!-- ===== vConsole 提前加载 ===== -->
<!-- <script src="https://unpkg.com/vconsole@latest/dist/vconsole.min.js"></script> -->
<!-- <script>
// 立即初始化,不依赖任何框架
var vConsole = new window.VConsole();
console.log('[vConsole] 已初始化');
</script> -->
<!-- ===== vConsole 加载结束 ===== -->
<!-- ===== 1. 状态栏占位 ===== -->
<script>
(
function
()
{
function
getQueryParam
(
name
)
{
var
searchParams
=
new
URLSearchParams
(
window
.
location
.
search
);
if
(
searchParams
.
has
(
name
))
return
searchParams
.
get
(
name
);
var
hash
=
window
.
location
.
hash
;
var
queryIndex
=
hash
.
indexOf
(
'?'
);
if
(
queryIndex
!==
-
1
)
{
var
params
=
new
URLSearchParams
(
hash
.
substring
(
queryIndex
+
1
));
if
(
params
.
has
(
name
))
return
params
.
get
(
name
);
}
return
null
;
}
<head>
<meta
charset=
"UTF-8"
/>
<script>
// ============ 新增:解析 URL 参数并设置状态栏占位 ============
//解决项目以h5的方式内嵌到app的webview中,手机状态栏和页面顶部内容重叠的问题
(
function
()
{
function
getQueryParam
(
name
)
{
// 从 hash 中提取查询参数
const
hash
=
window
.
location
.
hash
;
const
queryIndex
=
hash
.
indexOf
(
'?'
);
console
.
log
(
'queryIndex'
,
queryIndex
);
if
(
queryIndex
===
-
1
)
return
null
;
const
queryString
=
hash
.
substring
(
queryIndex
+
1
);
const
reg
=
new
RegExp
(
'(^|&)'
+
name
+
'=([^&]*)(&|$)'
);
const
r
=
queryString
.
match
(
reg
);
console
.
log
(
'匹配结果'
,
r
);
if
(
r
!=
null
)
return
decodeURIComponent
(
r
[
2
]);
return
null
;
}
const
statusBarHeight
=
getQueryParam
(
'statusBarHeight'
);
console
.
log
(
'状态栏高度'
,
statusBarHeight
);
if
(
statusBarHeight
)
{
const
height
=
parseInt
(
statusBarHeight
,
10
);
if
(
!
isNaN
(
height
)
&&
height
>
0
)
{
document
.
write
(
'<style>'
+
'html, body { margin:0; padding:0; height:100%; overflow:hidden; }'
+
'body { padding-top: '
+
height
+
'px; box-sizing: border-box; }'
+
'#app { height: 100%; overflow-y: auto; }'
+
'</style>'
);
}
}
})();
// ============ 新增结束 ============
var
coverSupport
=
'CSS'
in
window
&&
typeof
CSS
.
supports
===
'function'
&&
(
CSS
.
supports
(
'top: env(a)'
)
||
CSS
.
supports
(
'top: constant(a)'
))
document
.
write
(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0'
+
(
coverSupport
?
', viewport-fit=cover'
:
''
)
+
'" />'
)
var
statusBarHeight
=
getQueryParam
(
'statusBarHeight'
);
if
(
statusBarHeight
)
{
var
height
=
parseInt
(
statusBarHeight
,
10
);
if
(
!
isNaN
(
height
)
&&
height
>
0
)
{
var
style
=
document
.
createElement
(
'style'
);
style
.
textContent
=
'html, body { margin:0; padding:0; height:100%; overflow:hidden; }'
+
'body { padding-top: '
+
height
+
'px; box-sizing: border-box; }'
+
'#app { height: 100%; overflow-y: auto; }'
;
document
.
head
.
appendChild
(
style
);
}
}
})();
</script>
// 判断是否在小程序Webview环境中
function
isInMiniProgram
()
{
// 更安全的小程序环境判断
try
{
return
typeof
wx
!==
'undefined'
&&
wx
.
miniProgram
&&
wx
.
miniProgram
.
getEnv
;
}
catch
(
e
)
{
return
false
;
}
}
<!-- ===== 2. Viewport ===== -->
<meta
name=
"viewport"
content=
"width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover"
/>
<title>
银盾家办
</title>
<link
rel=
"stylesheet"
href=
"./static/font/iconfont.css"
>
<link
rel=
"shortcut icon"
href=
"./static/suplogo.ico"
>
</head>
<body>
<div
id=
"app"
></div>
<script
type=
"module"
src=
"/main.js"
></script>
</body>
</html>
\ No newline at end of file
// 页面加载完成后执行
document
.
addEventListener
(
'DOMContentLoaded'
,
function
()
{
// 非小程序环境才加载微信JS-SDK
if
(
!
isInMiniProgram
())
{
var
script
=
document
.
createElement
(
'script'
);
script
.
src
=
'https://res2.wx.qq.com/open/js/jweixin-1.6.0.js'
;
document
.
head
.
appendChild
(
script
);
console
.
log
(
'加载微信JS-SDK'
);
}
else
{
console
.
log
(
'小程序Webview环境,不加载微信JS-SDK'
);
}
});
</script>
<title>
银盾家办
</title>
<link
rel=
"stylesheet"
href=
"./static/font/iconfont.css"
>
<link
rel=
"shortcut icon"
href=
"./static/suplogo.ico"
>
</head>
<body>
<div
id=
"app"
>
<!--app-html-->
</div>
<script>
(
function
()
{
// 1. 判断是否在 App WebView 中
function
isAppWebView
()
{
// 检测 5+ App(plus 对象)
if
(
typeof
window
.
plus
!==
'undefined'
)
{
return
true
;
}
// 检测 UserAgent
var
ua
=
navigator
.
userAgent
.
toLowerCase
();
if
(
ua
.
indexOf
(
'html5plus'
)
!==
-
1
||
ua
.
indexOf
(
'uni-app'
)
!==
-
1
)
{
return
true
;
}
// 检测 uni-app 注入的全局对象(部分版本)
if
(
typeof
window
.
__uni__
!==
'undefined'
)
{
return
true
;
}
return
false
;
}
if
(
isAppWebView
())
{
console
.
log
(
'[环境] 检测到 App WebView,开始加载 uni.webview.js'
);
var
script
=
document
.
createElement
(
'script'
);
script
.
type
=
'text/javascript'
;
script
.
src
=
'/appYdhomeoffice/static/uni.webview.1.5.4.js'
;
script
.
onload
=
function
()
{
// 脚本加载成功后,执行原有逻辑(挂载 webViewJs)
var
webViewJs
=
window
.
uni
?.
webView
;
if
(
!
webViewJs
)
{
console
.
error
(
'uni.webview.js 加载成功但 webViewJs 不存在'
);
}
else
{
console
.
log
(
'uni.webview.js 加载成功'
,
webViewJs
);
window
.
webViewJs
=
webViewJs
;
console
.
log
(
'window.webViewJs 已挂载'
,
window
);
}
};
script
.
onerror
=
function
()
{
console
.
error
(
'uni.webview.js 加载失败,请检查路径'
);
};
document
.
head
.
appendChild
(
script
);
}
else
{
console
.
log
(
'[环境] 非 App WebView,跳过加载 uni.webview.js'
);
}
})();
</script>
<script
type=
"module"
src=
"/main.js"
></script>
</body>
</html>
myPackageA/salary/salaryList.vue
View file @
6bf15b7d
...
...
@@ -5,7 +5,7 @@
<view
class=
"wapperBox"
>
<view
class=
"header"
>
<text
class=
"title"
>
薪资
<text
class=
"highlight"
>
单
</text></text>
<text
class=
"title"
>
<text
class=
"highlight"
>
积分
</text></text>
<view
class=
"year-badge"
@
click=
"showTime1=true"
>
<CommonTimePicker
:timeData=
"startDate"
:visible=
"showTime1"
@
confirmDate=
"changeStartTime"
@
closeTime=
"showTime1=false"
:showMonth=
"false"
iconColor=
"#2A36AE"
/>
...
...
@@ -30,7 +30,7 @@
<!--
<text
class=
"label"
>
{{
item
.
statusName
}}
</text>
-->
<view
class=
"money"
@
click=
"showMoney(index)"
>
<text
v-if=
"item.mask"
class=
"mask-text"
>
*****
</text>
<text
v-else
class=
"real-text"
>
¥
{{
item
.
paidAmount
.
toFixed
(
2
)
}}
</text>
<text
v-else
class=
"real-text"
>
{{
item
.
paidAmount
.
toFixed
(
2
)
}}
(HKD)
</text>
</view>
</view>
</view>
...
...
@@ -44,31 +44,31 @@
<!--
<view
style=
"border-top:2px solid #dce3ed; margin:0px 0;"
></view>
-->
<view
class=
"detail-grid"
>
<view
class=
"grid-row"
>
<view
class=
"grid-row"
v-if=
" item.detail.grossAmount"
>
<text
class=
"label"
>
应发金额
</text>
<text
class=
"value"
>
{{
item
.
detail
.
grossAmount
.
toFixed
(
2
)
}}
(HKD)
</text>
</view>
<view
class=
"grid-row"
>
<view
class=
"grid-row"
v-if=
" item.detail.mpfAmount"
>
<text
class=
"label"
>
MPF事项金额
</text>
<text
class=
"value"
>
{{
item
.
detail
.
mpfAmount
.
toFixed
(
2
)
}}
(HKD)
</text>
</view>
<view
class=
"grid-row"
>
<view
class=
"grid-row"
v-if=
" item.detail.otherAmount"
>
<text
class=
"label"
>
其他调整总金额
</text>
<text
class=
"value"
>
{{
item
.
detail
.
otherAmount
.
toFixed
(
2
)
}}
(HKD)
</text>
</view>
<view
class=
"grid-row"
>
<view
class=
"grid-row"
v-if=
" item.detail.paidAmount"
>
<text
class=
"label"
>
实发金额
</text>
<text
class=
"value"
>
{{
item
.
detail
.
paidAmount
.
toFixed
(
2
)
}}
(HKD)
</text>
</view>
<view
class=
"grid-row"
>
<view
class=
"grid-row"
v-if=
" item.detail.remark"
>
<text
class=
"label"
>
备注
</text>
<text
class=
"value txtValue"
>
{{
item
.
detail
.
remark
||
'--'
}}
</text>
</view>
<view
class=
"grid-row"
>
<view
class=
"grid-row"
v-if=
" item.detail.otherRemark"
>
<text
class=
"label"
>
其他调整备注
</text>
<text
class=
"value txtValue"
>
{{
item
.
detail
.
otherRemark
||
'--'
}}
</text>
</view>
<view
class=
"grid-row"
style=
"margin-bottom: 10rpx;"
>
<view
class=
"grid-row"
style=
"margin-bottom: 10rpx;"
v-if=
" item.detail.cancelRemark"
>
<text
class=
"label"
>
取消理由
</text>
<text
class=
"value txtValue"
>
{{
item
.
detail
.
cancelRemark
||
'--'
}}
</text>
</view>
...
...
@@ -84,7 +84,7 @@
<text
class=
"value negative"
>
-¥
{{
Math
.
abs
(
sub
.
amount
).
toFixed
(
2
)
}}
</text>
</view>
-->
</view>
<view
class=
"detail-header"
>
<view
class=
"detail-header"
style=
"margin-top: 30rpx;"
>
<text
class=
"total-label"
>
打款明细
</text>
<!--
<text
class=
"total-amount"
>
¥
{{
item
.
detail
.
grossAmount
}}
<text
class=
"unit"
>
元
</text></text>
-->
</view>
...
...
@@ -92,33 +92,36 @@
<view
class=
"detail-grid"
v-for=
"(bank,index) in item.detail.apiSalaryRemittanceFzDTO.salaryRemittanceDTOList"
:key=
"bank.salaryRemittanceBizId"
>
<view
class=
"detail-title"
>
打款信息
{{
index
+
1
}}
</view>
<view
class=
"grid-row"
>
<text
class=
"label"
>
收款银行
</text>
<text
class=
"value txtValue"
>
{{
bank
.
bankName
}}
</text>
</view>
<view
class=
"grid-row"
>
<text
class=
"label"
>
账户尾号
</text>
<text
class=
"value"
>
{{
bank
.
accountEndNo
}}
</text>
</view>
<view
class=
"grid-row"
>
<text
class=
"label"
>
发放金额
</text>
<text
class=
"value"
>
{{
bank
.
amount
.
toFixed
(
2
)
}}
<text
v-if=
"bank.currency"
>
(
{{
bank
.
currency
}}
)
</text></text>
</view>
<view
class=
"grid-row"
>
<text
class=
"label"
>
币种
</text>
<text
class=
"value"
>
{{
bank
.
currency
}}
</text>
</view>
<view
class=
"grid-row"
>
<text
class=
"label"
>
汇率
</text>
<text
class=
"value"
>
{{
bank
.
exchangeRate
.
toFixed
(
4
)
}}
</text>
</view>
<view
class=
"grid-row"
>
<text
class=
"label"
>
备注
</text>
<text
class=
"value txtValue"
>
{{
bank
.
remark
||
'--'
}}
</text>
<view
class=
""
v-if=
"bank.amount"
>
<view
class=
"detail-title"
>
打款信息
{{
index
+
1
}}
</view>
<view
class=
"grid-row"
>
<text
class=
"label"
>
收款银行
</text>
<text
class=
"value txtValue"
>
{{
bank
.
bankName
}}
</text>
</view>
<view
class=
"grid-row"
>
<text
class=
"label"
>
账户尾号
</text>
<text
class=
"value"
>
{{
bank
.
accountEndNo
}}
</text>
</view>
<view
class=
"grid-row"
>
<text
class=
"label"
>
发放金额
</text>
<text
class=
"value"
>
{{
bank
.
amount
.
toFixed
(
2
)
}}
<text
v-if=
"bank.currency"
>
(
{{
bank
.
currency
}}
)
</text></text>
</view>
<!--
<view
class=
"grid-row"
>
<text
class=
"label"
>
币种
</text>
<text
class=
"value"
>
{{
bank
.
currency
}}
</text>
</view>
-->
<view
class=
"grid-row"
>
<text
class=
"label"
>
汇率
</text>
<text
class=
"value"
>
{{
bank
.
exchangeRate
.
toFixed
(
4
)
}}
</text>
</view>
<view
class=
"grid-row"
v-if=
"bank.remark"
>
<text
class=
"label"
>
备注
</text>
<text
class=
"value txtValue"
>
{{
bank
.
remark
||
'--'
}}
</text>
</view>
</view>
</view>
...
...
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