Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-csf-front
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
1
Merge Requests
1
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
yuzhenWang
yd-csf-front
Commits
885faee5
Commit
885faee5
authored
Jun 10, 2026
by
yuzhenWang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'wyz' into 'test'
修复薪资发放和出账检核发测试 See merge request
!167
parents
50a7d03c
0234a429
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
5 additions
and
239 deletions
+5
-239
src/views/financialCenter/financialBilling.vue
+3
-3
src/views/financialCenter/financialSalary.vue
+2
-4
src/views/sign/appointment/components/fileUpload.vue
+0
-232
No files found.
src/views/financialCenter/financialBilling.vue
View file @
885faee5
...
...
@@ -498,7 +498,7 @@ const splitTableColumns = ref([
editType
:
'input'
,
prop
:
'originalAmount'
,
label
:
'原币种金额'
,
inputType
:
'decimal'
,
inputType
:
'decimal
Number
'
,
required
:
true
,
width
:
150
},
...
...
@@ -632,7 +632,7 @@ const rateExchangeConfig = [
type
:
'input'
,
prop
:
'originalAmount'
,
label
:
'原币种金额'
,
inputType
:
'decimal'
,
inputType
:
'decimal
Number
'
,
rules
:
[{
required
:
true
,
message
:
'只能输入正整数和小数'
,
trigger
:
'blur'
}]
},
// 汇率3(原币种->港币)
...
...
@@ -1219,7 +1219,7 @@ const addCheckRecordConfig = [
type
:
'input'
,
prop
:
'originalAmount'
,
label
:
'原币种金额'
,
inputType
:
'decimal'
,
inputType
:
'decimal
Number
'
,
rules
:
[{
required
:
true
,
message
:
'只能输入正整数和小数'
,
trigger
:
'blur'
}]
},
// 汇率3(原币种->港币)
...
...
src/views/financialCenter/financialSalary.vue
View file @
885faee5
...
...
@@ -120,7 +120,7 @@
<el-col
:xs=
"24"
:sm=
"12"
:md=
"6"
class=
"text-center mb-4"
>
<el-statistic
title=
"原币种总金额"
:value=
"currentRow.
hkd
Amount"
:value=
"currentRow.
payout
Amount"
:formatter=
"value => formatCurrency(value, '', 4)"
/>
</el-col>
...
...
@@ -207,8 +207,6 @@
</el-table-column>
<el-table-column
label=
"原币种金额"
prop=
"fromAmount"
width=
"150"
>
<
template
#
default=
"scope"
>
<!--等生产没问题再删除 @input="val => (scope.row.fromAmount = amountInput.filterInput(val, 4))"
@blur="billInputBlur('fromAmount', scope.row)" -->
<el-input
v-model=
"scope.row.fromAmount"
placeholder=
"请输入"
...
...
@@ -678,7 +676,7 @@ const getSplitTableList = async (searchParams = {}) => {
billTableList
.
value
=
[
{
brokerName
:
currentRow
.
value
.
broker
,
fromAmount
:
Number
(
currentRow
.
value
.
hkd
Amount
).
toFixed
(
4
),
fromAmount
:
Number
(
currentRow
.
value
.
payout
Amount
).
toFixed
(
4
),
internalNumber
:
userSale
.
data
?
userSale
.
data
.
internalNumber
:
''
,
id
:
generateId
(),
exchangeRate
:
'0.00'
,
...
...
src/views/sign/appointment/components/fileUpload.vue
View file @
885faee5
...
...
@@ -151,54 +151,6 @@
<!-- 文件预览弹窗 -->
<FilePreview
ref=
"filePreviewRef"
/>
<!-- <el-dialog
v-model="previewDialogVisible"
:title="previewFileName"
width="90%"
:close-on-click-modal="false"
destroy-on-close
@close="closePreview"
>
<div class="preview-container">
<div v-if="previewFileType === 'image'" class="preview-image-wrapper">
<img :src="previewUrl" class="preview-image" alt="预览图片" />
</div>
<div v-else-if="previewFileType === 'pdf'" class="pdf-viewer">
<div class="pdf-toolbar">
<el-button-group>
<el-button size="small" @click="zoomOut">
<el-icon><ZoomOut /></el-icon> 缩小
</el-button>
<el-button size="small" @click="zoomIn">
<el-icon><ZoomIn /></el-icon> 放大
</el-button>
</el-button-group>
<span class="page-info">共 {{ pdfTotalPages }} 页</span>
</div>
<div
class="pdf-scroll-wrapper"
v-loading="pdfLoading"
element-loading-text="正在渲染页面..."
>
<div ref="pdfScrollContainer" class="pdf-scroll-container"></div>
</div>
</div>
<div v-else-if="previewFileType === 'unsupported'" class="preview-unsupported">
<el-icon :size="48" color="#909399"><Document /></el-icon>
<p>暂不支持预览此类型文件</p>
<el-button type="primary" @click="previewDialogVisible = false"> 关闭 </el-button>
</div>
</div>
</el-dialog> -->
<el-dialog
v-model=
"imageViewerVisible"
title=
"图片预览"
width=
"60%"
>
<div
style=
"text-align: center"
>
<el-image
:src=
"imageUrl"
fit=
"contain"
/>
</div>
</el-dialog>
</div>
</template>
...
...
@@ -247,160 +199,7 @@ const limit = ref(10)
const
fileSize
=
ref
(
10
)
const
headers
=
ref
({
Authorization
:
'Bearer '
+
getToken
()
})
const
uploadImgUrl
=
ref
(
import
.
meta
.
env
.
VITE_APP_BASE_API
+
'/oss/api/oss/upload'
)
// 上传的服务器地址
// PDF 预览相关
const
pdfCanvasRef
=
ref
(
null
)
// canvas 元素引用
// 修改 pdfDoc 的定义
const
pdfDoc
=
shallowRef
(
null
)
// pdf 文档实例
const
pdfScale
=
ref
(
1.2
)
// 缩放比例
// 新增标志:是否取消PDF加载
let
pdfLoadingCanceled
=
false
// ==================== 文件预览弹窗 ====================
const
previewDialogVisible
=
ref
(
false
)
const
previewUrl
=
ref
(
''
)
const
previewFileName
=
ref
(
''
)
const
previewFileType
=
ref
(
''
)
// 'image', 'pdf', 'unsupported'
const
pdfScrollContainer
=
ref
(
null
)
// 滚动容器的 ref
const
pdfTotalPages
=
ref
(
0
)
// 总页数(仅供显示)
const
isRendering
=
ref
(
false
)
// 防止重复渲染
const
loadPdf
=
async
url
=>
{
pdfLoadingCanceled
=
false
pdfLoading
.
value
=
true
try
{
if
(
pdfDoc
.
value
)
{
await
pdfDoc
.
value
.
destroy
().
catch
(()
=>
{})
pdfDoc
.
value
=
null
}
// 清空滚动容器
if
(
pdfScrollContainer
.
value
)
{
pdfScrollContainer
.
value
.
innerHTML
=
''
}
const
loadingTask
=
PDFJS
.
getDocument
(
url
)
pdfDoc
.
value
=
await
loadingTask
.
promise
if
(
pdfLoadingCanceled
)
{
if
(
pdfDoc
.
value
)
pdfDoc
.
value
.
destroy
()
pdfLoading
.
value
=
false
return
}
pdfTotalPages
.
value
=
pdfDoc
.
value
.
numPages
await
renderAllPages
(
pdfScale
.
value
)
// 渲染所有页面
pdfLoading
.
value
=
false
}
catch
(
err
)
{
if
(
!
pdfLoadingCanceled
)
{
console
.
error
(
'PDF 加载失败'
,
err
)
ElMessage
.
error
(
'PDF 文件加载失败,请检查文件链接'
)
previewDialogVisible
.
value
=
false
}
pdfLoading
.
value
=
false
}
}
// 修改 renderPdfPage,增加有效性检查
const
renderPdfPage
=
async
pageNum
=>
{
if
(
!
pdfDoc
.
value
||
pdfLoadingCanceled
)
return
try
{
const
page
=
await
pdfDoc
.
value
.
getPage
(
pageNum
)
const
viewport
=
page
.
getViewport
({
scale
:
pdfScale
.
value
})
const
canvas
=
pdfCanvasRef
.
value
if
(
!
canvas
)
return
const
context
=
canvas
.
getContext
(
'2d'
)
canvas
.
height
=
viewport
.
height
canvas
.
width
=
viewport
.
width
const
renderContext
=
{
canvasContext
:
context
,
viewport
:
viewport
}
await
page
.
render
(
renderContext
).
promise
}
catch
(
err
)
{
if
(
!
pdfLoadingCanceled
)
{
console
.
error
(
'渲染PDF页失败'
,
err
)
}
}
}
const
renderAllPages
=
async
scale
=>
{
if
(
!
pdfDoc
.
value
||
pdfLoadingCanceled
||
isRendering
.
value
)
return
isRendering
.
value
=
true
pdfLoading
.
value
=
true
// 显示加载状态
const
container
=
pdfScrollContainer
.
value
if
(
!
container
)
{
isRendering
.
value
=
false
return
}
// 清空之前的 canvas
container
.
innerHTML
=
''
try
{
const
promises
=
[]
for
(
let
pageNum
=
1
;
pageNum
<=
pdfTotalPages
.
value
;
pageNum
++
)
{
if
(
pdfLoadingCanceled
)
break
const
page
=
await
pdfDoc
.
value
.
getPage
(
pageNum
)
const
viewport
=
page
.
getViewport
({
scale
})
// 创建 canvas 元素
const
canvas
=
document
.
createElement
(
'canvas'
)
canvas
.
className
=
'pdf-page-canvas'
const
context
=
canvas
.
getContext
(
'2d'
)
canvas
.
height
=
viewport
.
height
canvas
.
width
=
viewport
.
width
// 添加一些底部间距,便于区分页面
canvas
.
style
.
marginBottom
=
'16px'
canvas
.
style
.
boxShadow
=
'0 2px 8px rgba(0,0,0,0.1)'
container
.
appendChild
(
canvas
)
// 渲染该页
const
renderTask
=
page
.
render
({
canvasContext
:
context
,
viewport
:
viewport
})
promises
.
push
(
renderTask
.
promise
)
}
await
Promise
.
all
(
promises
)
}
catch
(
err
)
{
if
(
!
pdfLoadingCanceled
)
{
console
.
error
(
'渲染多页 PDF 失败'
,
err
)
ElMessage
.
error
(
'渲染 PDF 页面失败'
)
}
}
finally
{
isRendering
.
value
=
false
pdfLoading
.
value
=
false
}
}
// 修改 previewFile 中的 PDF 分支
// function previewFile(file) {
// console.log('====================================')
// console.log('file', file)
// console.log('====================================')
// const url = file.url || file.fileUrl
// if (!url) {
// ElMessage.warning('文件地址不存在')
// return
// }
// const ext = (file.originalName || '').split('.').pop().toLowerCase()
// previewUrl.value = url
// previewFileName.value = file.originalName || '文件'
// if (['jpg', 'jpeg', 'png', 'webp', 'gif', 'bmp', 'svg'].includes(ext)) {
// previewFileType.value = 'image'
// previewDialogVisible.value = true
// } else if (ext === 'pdf') {
// previewFileType.value = 'pdf'
// previewDialogVisible.value = true
// // 先清理旧的资源
// closePreview()
// nextTick(() => {
// loadPdf(previewUrl.value)
// })
// } else {
// previewFileType.value = 'unsupported'
// previewDialogVisible.value = true
// }
// }
// 在需要预览文件的地方调用(例如原来的 previewFile 函数)
function
previewFile
(
file
)
{
// 确保传入对象包含 url 和 name 属性
...
...
@@ -409,32 +208,6 @@ function previewFile(file) {
name
:
file
.
originalName
||
file
.
name
})
}
const
closePreview
=
()
=>
{
pdfLoadingCanceled
=
true
// 取消任何进行中的渲染
pdfLoading
.
value
=
false
isRendering
.
value
=
false
if
(
pdfDoc
.
value
)
{
pdfDoc
.
value
.
destroy
().
catch
(()
=>
{})
pdfDoc
.
value
=
null
}
pdfTotalPages
.
value
=
0
pdfScale
.
value
=
1.2
if
(
pdfScrollContainer
.
value
)
{
pdfScrollContainer
.
value
.
innerHTML
=
''
}
}
const
zoomIn
=
()
=>
{
pdfScale
.
value
=
Math
.
min
(
pdfScale
.
value
+
0.2
,
3.0
)
renderAllPages
(
pdfScale
.
value
)
}
const
zoomOut
=
()
=>
{
pdfScale
.
value
=
Math
.
max
(
pdfScale
.
value
-
0.2
,
0.5
)
renderAllPages
(
pdfScale
.
value
)
}
// 图片查看相关状态
const
imageViewerVisible
=
ref
(
false
)
const
imageUrl
=
ref
(
''
)
const
downLoading
=
ref
(
false
)
const
data
=
reactive
({
form
:
{},
...
...
@@ -678,11 +451,6 @@ const handleUpdate = row => {
uploadedFiles
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
row
.
fileBizIdList
))
}
}
const
handleView
=
row
=>
{
imageUrl
.
value
=
row
.
fileUrl
imageViewerVisible
.
value
=
true
}
// 下载材料包
const
downloadFile
=
()
=>
{
let
apiMaterialDtoList
=
[]
...
...
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