From f193b3f5288d08cc70aba97c25aefa74b3b45ddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E9=9C=84?= Date: Tue, 2 Jan 2024 14:39:17 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix=20kkFile=E9=A2=84=E8=A7=88=E6=8F=90?= =?UTF-8?q?=E5=87=BA=E5=85=AC=E5=85=B1=E6=96=B9=E6=B3=95=EF=BC=8C=E5=8A=A0?= =?UTF-8?q?=E6=B0=B4=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/FileEcho.vue | 4 ++-- src/components/UploadFile.vue | 4 ++-- src/components/jero/JUpload.vue | 4 ++-- src/utils/kkFilePreview.js | 19 +++++++++++++++++++ .../modules/BasisDescriptionModal.vue | 4 ++-- .../commonPage/StandardDetailPage.vue | 4 ++-- 6 files changed, 29 insertions(+), 10 deletions(-) create mode 100644 src/utils/kkFilePreview.js diff --git a/src/components/FileEcho.vue b/src/components/FileEcho.vue index 10c14c73..f070926e 100644 --- a/src/components/FileEcho.vue +++ b/src/components/FileEcho.vue @@ -28,6 +28,7 @@ import { ACCESS_TOKEN } from '../store/mutation-types.js' import { downloadFile, getFileAccessHttpUrl } from '../api/manage.js' import { previewPdf } from '../utils/previewPdf.js' import { Base64 } from 'js-base64' +import { kkFilePreview } from '../utils/kkFilePreview' // 支持预览的文件类型 const CAN_PREVIEW_FILE_TYPE = ['pdf', 'image'] @@ -120,8 +121,7 @@ export default { return } // 其余可预览文件仍使用KKFile进行预览 - const url = `${window._CONFIG.onlinePreviewDomainURL}?url=${encodeURIComponent(Base64.encode(fileFullUrl))}` - window.open(url) + kkFilePreview(fileFullUrl) }, /** * 单个文件的下载功能 diff --git a/src/components/UploadFile.vue b/src/components/UploadFile.vue index a4e19fee..3033f413 100644 --- a/src/components/UploadFile.vue +++ b/src/components/UploadFile.vue @@ -54,6 +54,7 @@ import { downloadFile, getFileAccessHttpUrl } from '@/api/manage' import { getFileInfo } from '@/api/api' import { previewPdf } from '@/utils/previewPdf' import Vue from 'vue' +import { kkFilePreview } from '../utils/kkFilePreview' const FILE_TYPE_ALL = 'all' const FILE_TYPE_IMG = 'image' @@ -327,8 +328,7 @@ export default { return } // 其余可预览文件仍使用KKFile进行预览 - const url = `${window._CONFIG.onlinePreviewDomainURL}?url=${encodeURIComponent(Base64.encode(fileFullUrl))}` - window.open(url) + kkFilePreview(fileFullUrl) }, handleDownload (file) { // 下载文件 diff --git a/src/components/jero/JUpload.vue b/src/components/jero/JUpload.vue index 5e5d8884..8b0346de 100644 --- a/src/components/jero/JUpload.vue +++ b/src/components/jero/JUpload.vue @@ -48,6 +48,7 @@ import { ACCESS_TOKEN } from '@/store/mutation-types' import { getFileAccessHttpUrl, downloadFile } from '@/api/manage' import { getFileInfo } from '@/api/api' import { previewPdf } from '../../utils/previewPdf' +import { kkFilePreview } from '../../utils/kkFilePreview' // eslint-disable-next-line no-undef // const Base64 = require('js-base64').Base64 @@ -459,8 +460,7 @@ export default { return } // 其余可预览文件仍使用KKFile进行预览 - const url = `${window._CONFIG.onlinePreviewDomainURL}?url=${encodeURIComponent(Base64.encode(fileFullUrl))}` - window.open(url) + kkFilePreview(fileFullUrl) }, getFileUrl (fileId) { return `${window._CONFIG.domianURL}/sys/common/download/${fileId}` diff --git a/src/utils/kkFilePreview.js b/src/utils/kkFilePreview.js new file mode 100644 index 00000000..c1a2f9b5 --- /dev/null +++ b/src/utils/kkFilePreview.js @@ -0,0 +1,19 @@ +import Vue from 'vue' +import { USER_INFO } from '../store/mutation-types' +import { Base64 } from 'js-base64' + +const md5 = require('md5') + +/** + * kkFile预览文件并添加水印 + * @param fileUrl + */ +export const kkFilePreview = (fileUrl) => { + const userInfo = Vue.ls.get(USER_INFO) + // 水印内容 + const watermarkTxt = `${userInfo.username} ${userInfo.realname}` + // 客户环境预览需要加的加密参数 + const watermarkSign = md5(watermarkTxt, 'cnhtc') + const url = `${window._CONFIG.onlinePreviewDomainURL}?url=${encodeURIComponent(Base64.encode(fileUrl))}&watermarkTxt=${encodeURIComponent(watermarkTxt)}&watermarkSign=${watermarkSign}` + window.open(url) +} \ No newline at end of file diff --git a/src/views/projectLibrary/specialProjectLibrary/modules/BasisDescriptionModal.vue b/src/views/projectLibrary/specialProjectLibrary/modules/BasisDescriptionModal.vue index 44f0d7d3..6c8c6480 100644 --- a/src/views/projectLibrary/specialProjectLibrary/modules/BasisDescriptionModal.vue +++ b/src/views/projectLibrary/specialProjectLibrary/modules/BasisDescriptionModal.vue @@ -95,6 +95,7 @@ import { ACCESS_TOKEN } from '../../../../store/mutation-types' import { downloadFile, getFileAccessHttpUrl } from '../../../../api/manage' import { previewPdf } from '../../../../utils/previewPdf' import { Base64 } from 'js-base64' +import { kkFilePreview } from '../../../../utils/kkFilePreview' export default { name: 'BasisDescriptionModal', @@ -217,8 +218,7 @@ export default { } // word用KKfile预览 if (canPreview && (fileSuffix === 'doc' || fileSuffix === 'docx')) { - const url = `${window._CONFIG.onlinePreviewDomainURL}?url=${encodeURIComponent(Base64.encode(fileFullUrl))}` - window.open(url) + kkFilePreview(fileFullUrl) return } // 如果都不能预览就下载 diff --git a/src/views/standardRegulationLibrary/commonPage/StandardDetailPage.vue b/src/views/standardRegulationLibrary/commonPage/StandardDetailPage.vue index 7bd5b7ab..a52cf665 100644 --- a/src/views/standardRegulationLibrary/commonPage/StandardDetailPage.vue +++ b/src/views/standardRegulationLibrary/commonPage/StandardDetailPage.vue @@ -139,6 +139,7 @@ import { ACCESS_TOKEN } from '../../../store/mutation-types.js' import { downloadFile, getFileAccessHttpUrl } from '../../../api/manage.js' import { previewPdf } from '../../../utils/previewPdf.js' import { Base64 } from 'js-base64' +import { kkFilePreview } from '../../../utils/kkFilePreview' // 国内标准权限 const DomesticStandardPermission = { @@ -396,8 +397,7 @@ export default { return } // 其余可预览文件仍使用KKFile进行预览 - const url = `${window._CONFIG.onlinePreviewDomainURL}?url=${encodeURIComponent(Base64.encode(fileFullUrl))}` - window.open(url) + kkFilePreview(fileFullUrl) }, /** * 无水印下载 From 80cac85d9f187c55043c63a1e044062453f8caeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E9=9C=84?= Date: Tue, 2 Jan 2024 14:45:34 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix=20kkFile=E9=A2=84=E8=A7=88=E6=8F=90?= =?UTF-8?q?=E5=87=BA=E5=85=AC=E5=85=B1=E6=96=B9=E6=B3=95=EF=BC=8C=E5=8A=A0?= =?UTF-8?q?=E6=B0=B4=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/kkFilePreview.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/kkFilePreview.js b/src/utils/kkFilePreview.js index c1a2f9b5..6b5cdf76 100644 --- a/src/utils/kkFilePreview.js +++ b/src/utils/kkFilePreview.js @@ -13,7 +13,7 @@ export const kkFilePreview = (fileUrl) => { // 水印内容 const watermarkTxt = `${userInfo.username} ${userInfo.realname}` // 客户环境预览需要加的加密参数 - const watermarkSign = md5(watermarkTxt, 'cnhtc') + const watermarkSign = md5(watermarkTxt + 'cnhtc') const url = `${window._CONFIG.onlinePreviewDomainURL}?url=${encodeURIComponent(Base64.encode(fileUrl))}&watermarkTxt=${encodeURIComponent(watermarkTxt)}&watermarkSign=${watermarkSign}` window.open(url) } \ No newline at end of file From 64a66bad914fb0b96eb1cb4622647f3c4a56e268 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E9=9C=84?= Date: Tue, 2 Jan 2024 14:46:54 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix=20kkFile=E9=A2=84=E8=A7=88=E6=8F=90?= =?UTF-8?q?=E5=87=BA=E5=85=AC=E5=85=B1=E6=96=B9=E6=B3=95=EF=BC=8C=E5=8A=A0?= =?UTF-8?q?=E6=B0=B4=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/kkFilePreview.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/utils/kkFilePreview.js b/src/utils/kkFilePreview.js index 6b5cdf76..d4560b5e 100644 --- a/src/utils/kkFilePreview.js +++ b/src/utils/kkFilePreview.js @@ -1,8 +1,7 @@ import Vue from 'vue' import { USER_INFO } from '../store/mutation-types' import { Base64 } from 'js-base64' - -const md5 = require('md5') +import md5 from 'md5' /** * kkFile预览文件并添加水印 From 74e6cdba16d11329dc453db1df9c5ce090a33987 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E9=9C=84?= Date: Tue, 2 Jan 2024 14:50:02 +0800 Subject: [PATCH 4/4] =?UTF-8?q?update=20=E6=B0=B4=E5=8D=B0=E9=A2=9C?= =?UTF-8?q?=E8=89=B2=E3=80=81=E5=AD=97=E4=BD=93=E6=8F=90=E5=87=BA=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/api_address_config.js | 5 +++++ src/App.vue | 5 ++++- src/utils/warterMark.js | 3 ++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/public/api_address_config.js b/public/api_address_config.js index 159a102d..b07c0db7 100644 --- a/public/api_address_config.js +++ b/public/api_address_config.js @@ -16,3 +16,8 @@ window._CONFIG.onlyOfficeUrl = 'http://127.0.0.1:8080' window._CONFIG.onlyOfficeDownloadFileUrl = 'http://localhost:8184/sys/common/download' // 管理员角色code,英文逗号拼接 window._CONFIG.adminRoleCode = 'admin' +// 水印配置 +window._CONFIG.watermarkConfig = { + color: 'rgba(180, 180, 180, 0.2)', + font: '13px Microsoft Yahei' +} diff --git a/src/App.vue b/src/App.vue index 2686ee24..498f90d4 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,7 +2,7 @@
-
+
@@ -37,6 +37,9 @@ export default { return this.$store.getters.userInfo.username + this.$store.getters.userInfo.realname } return null + }, + watermarkConfig () { + return window._CONFIG.watermarkConfig } }, watch: { diff --git a/src/utils/warterMark.js b/src/utils/warterMark.js index e5b882ef..113b82b0 100644 --- a/src/utils/warterMark.js +++ b/src/utils/warterMark.js @@ -16,7 +16,7 @@ Vue.directive('watermark', { can.style.display = 'none' const cans = can.getContext('2d') cans.rotate(-20 * Math.PI / 180) - cans.font = font || '13px Microsoft Yahei' + cans.font = font || window._CONFIG.watermarkConfig.font cans.fillStyle = textColor || '#DDDDDD' cans.textAlign = 'left' cans.textBaseline = 'Middle' @@ -38,6 +38,7 @@ Vue.directive('watermark', { parentNode.appendChild(div) } } + if (binding.value.text) { addWaterMarker(binding.value.text, el, binding.value.width, binding.value.height, binding.value.font, binding.value.textColor, binding.value.fillTextX) }