Bladeren bron

更新依赖,以及PDF预览测试

ZaiZai 1 jaar geleden
bovenliggende
commit
d689d6024a
9 gewijzigde bestanden met toevoegingen van 106 en 34 verwijderingen
  1. 1 1
      package.json
  2. 1 1
      src/config/index.json
  3. 6 0
      src/router/modules/base.js
  4. 1 0
      src/router/modules/token.js
  5. 27 22
      src/test/index.vue
  6. 18 0
      src/utils/btn-auth.js
  7. 47 0
      src/views/home/pdf.vue
  8. 1 1
      vite.config.js
  9. 4 9
      yarn.lock

+ 1 - 1
package.json

@@ -21,7 +21,7 @@
         "dayjs": "^1.11.10",
         "echarts": "^5.4.3",
         "element-plus": "2.5.0",
-        "hc-vue3-ui": "^2.8.8",
+        "hc-vue3-ui": "^2.8.9",
         "js-base64": "^3.7.5",
         "js-fast-way": "^0.3.8",
         "js-md5": "^0.8.3",

+ 1 - 1
src/config/index.json

@@ -1,6 +1,6 @@
 {
     "version": "20230607160059",
-    "target": "http://192.168.0.109:8090",
+    "target": "http://39.108.216.210:8090",
     "smsPhone": "",
     "vite": {
         "port": 5180,

+ 6 - 0
src/router/modules/base.js

@@ -37,6 +37,12 @@ export default [
                 meta: { title: '系统设置' },
                 component: () => import('~src/views/home/config.vue'),
             },
+            {
+                path: '/pdf',
+                name: 'pdf',
+                meta: { title: 'pdf文件预览' },
+                component: () => import('~src/views/home/pdf.vue'),
+            },
         ],
     },
     {

+ 1 - 0
src/router/modules/token.js

@@ -3,6 +3,7 @@ export default [
     'home',
     'home-index',
     'home-config',
+    'pdf',
     'user-index',
     'test-index',
 ]

+ 27 - 22
src/test/index.vue

@@ -1,33 +1,38 @@
 <template>
-    <HcCard>
+    <hc-card>
         <template #header>
-            <el-button size="large" type="primary">
-                <HcIcon name="search-2" />
-                <span>搜索</span>
-            </el-button>
+            <el-button hc-btn type="primary" @click="test1Click">测试1</el-button>
+            <el-button hc-btn type="warning" @click="test2Click">测试2</el-button>
         </template>
-        <template #extra>
-            extra
-        </template>
-
-        <iframe v-if="isPdf" :src="source" width="100%" height="100%" />
-
-        <template #action>
-            action
-        </template>
-    </HcCard>
+        测试的
+    </hc-card>
 </template>
 
 <script setup>
-import { onMounted, ref } from 'vue'
+import { useRouter } from 'vue-router'
+import { encode } from '~uti/btn-auth'
+
+const router = useRouter()
 
-const isPdf = ref(false)
-const url = 'https://bladex-oss-chongqing.oss-cn-shenzhen.aliyuncs.com//upload/20240118/bf848a1a64acf788f8dfd4acb0d95582.pdf'
-const source = ref(`/plugins/pdfjs/4.0.379/web/viewer.html?file=${url}#zoom=100`)
+const test1Click = () => {
+    const url = encode('https://bladex-oss-chongqing.oss-cn-shenzhen.aliyuncs.com//upload/20240118/bf848a1a64acf788f8dfd4acb0d95582.pdf')
+    router.push({
+        name: 'pdf',
+        query: {
+            code: url,
+        },
+    })
+}
 
-onMounted(() => {
-    isPdf.value = true
-})
+const test2Click = () => {
+    const url = encode('https://bladex-oss-chongqing.oss-cn-shenzhen.aliyuncs.com//upload/20230925/0a604927fb3584a2860c757ee9afd12f.pdf')
+    router.push({
+        name: 'pdf',
+        query: {
+            code: url,
+        },
+    })
+}
 </script>
 
 <style lang="scss" scoped>

+ 18 - 0
src/utils/btn-auth.js

@@ -0,0 +1,18 @@
+import { getObjVal } from 'js-fast-way'
+import pinia from '~src/store/init'
+import { useAppStore } from '~src/store'
+import { decode, encode } from 'js-base64'
+
+const store = useAppStore(pinia)
+
+// 按钮权限
+export const btnAuth = (key) => {
+    try {
+        const info = store.getButtonsVal(key)
+        return !!getObjVal(info)
+    } catch {
+        return false
+    }
+}
+
+export { encode, decode }

+ 47 - 0
src/views/home/pdf.vue

@@ -0,0 +1,47 @@
+<template>
+    <hc-new-card>
+        <hc-pdf :src="pdfUrl" :download="isDownload" :print="isPrint" />
+    </hc-new-card>
+</template>
+
+<script setup>
+import { isNullES } from 'js-fast-way'
+import { onActivated, ref } from 'vue'
+import { useRoute } from 'vue-router'
+import { btnAuth, decode } from '~uti/btn-auth'
+
+//初始变量
+const useRoutes = useRoute()
+const isDownload = ref(btnAuth('measure-pdf-download'))
+const isPrint = ref(btnAuth('measure-pdf-print'))
+
+defineOptions({
+    name: 'Pdf',
+})
+
+//渲染完成
+const pdfUrl = ref('')
+onActivated(() => {
+    const { url, code } = useRoutes.query
+    //如果url和code都为空,不做处理
+    if (isNullES(url) && isNullES(code)) {
+        return
+    }
+    //如果url不为空,code为空,以url为准
+    if (!isNullES(url) && isNullES(code)) {
+        pdfUrl.value = url
+        return
+    }
+    //如果url为空,code不为空,以code为准
+    if (isNullES(url) && !isNullES(code)) {
+        pdfUrl.value = decode(code ?? '')
+        return
+    }
+    //两个都有的情况下,以code为准
+    pdfUrl.value = decode(code ?? '')
+})
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 1 - 1
vite.config.js

@@ -28,7 +28,7 @@ export default defineConfig({
         rollupOptions: {
             output: {
                 manualChunks(id) {
-                    let libStr = '@vue,element-plus,echarts,vue-router,pinia,js-fast-way,vuedraggable,split.js,hc-vue3-ui,nprogress,pdfjs-dist'
+                    let libStr = '@vue,element-plus,echarts,vue-router,pinia,js-fast-way,vuedraggable,split.js,hc-vue3-ui,nprogress'
                     const libs = libStr.split(',')
                     if (id.includes('node_modules')) {
                         const arr = id.toString().split('node_modules/')[1].split('/')

+ 4 - 9
yarn.lock

@@ -1844,10 +1844,10 @@ has-flag@^4.0.0:
   resolved "http://39.108.216.210:9000/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
   integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
 
-hc-vue3-ui@^2.8.8:
-  version "2.8.8"
-  resolved "http://39.108.216.210:9000/hc-vue3-ui/-/hc-vue3-ui-2.8.8.tgz#836f9f5f03f17f67a9f9e5d9090d3c8eb7bd104d"
-  integrity sha512-AQq7GFUEdAQEAbdvcw5rsjeYf9YvEyooydE9q25AYVaF5ERktV8heRjwB6E24tl4QIYGRAWsAN0hp9W+JWgQ9w==
+hc-vue3-ui@^2.8.9:
+  version "2.8.9"
+  resolved "http://39.108.216.210:9000/hc-vue3-ui/-/hc-vue3-ui-2.8.9.tgz#a63427cde9bd476ca6e47da5cf122e147214d309"
+  integrity sha512-XduD4R3plk2VYOAKFPh3eo2nE/Nz1tSMvpXeGjjB30CZrOgoXCEDmEiOszSvv+4vJ5LyOftqCRV1nzUdX5eJeA==
 
 human-signals@^2.1.0:
   version "2.1.0"
@@ -2736,11 +2736,6 @@ vue-eslint-parser@^9.4.0:
     lodash "^4.17.21"
     semver "^7.3.6"
 
-vue-pdf-embed@^1.2.1:
-  version "1.2.1"
-  resolved "http://39.108.216.210:9000/vue-pdf-embed/-/vue-pdf-embed-1.2.1.tgz#013ce78005b548eb5c74f2026afc00b633f00e3d"
-  integrity sha512-4uUm4wxaEGT9cS1cyuagAmMJjBxfQXWG1MvdGPesD3CiXhhSp4i0VMUCYwhFXtZ5+QqWv4mXbfLJ29Wpt+Qcuw==
-
 vue-router@^4.2.5:
   version "4.2.5"
   resolved "http://39.108.216.210:9000/vue-router/-/vue-router-4.2.5.tgz#b9e3e08f1bd9ea363fdd173032620bc50cf0e98a"