diff --git a/bs-ui/package.json b/bs-ui/package.json index 1e57e37..9bd5d2e 100644 --- a/bs-ui/package.json +++ b/bs-ui/package.json @@ -48,6 +48,7 @@ "js-beautify": "1.13.0", "js-cookie": "3.0.1", "jsencrypt": "3.0.0-rc.1", + "moment": "^2.30.1", "nprogress": "0.2.0", "quill": "1.3.7", "screenfull": "5.0.2", diff --git a/bs-ui/src/api/system/file.js b/bs-ui/src/api/system/file.js new file mode 100644 index 0000000..e69de29 diff --git a/bs-ui/src/components/MyImageViewer/image-viewer.vue b/bs-ui/src/components/MyImageViewer/image-viewer.vue new file mode 100644 index 0000000..20e558e --- /dev/null +++ b/bs-ui/src/components/MyImageViewer/image-viewer.vue @@ -0,0 +1,385 @@ + + + + \ No newline at end of file diff --git a/bs-ui/src/components/MyImageViewer/index.vue b/bs-ui/src/components/MyImageViewer/index.vue new file mode 100644 index 0000000..b63ce30 --- /dev/null +++ b/bs-ui/src/components/MyImageViewer/index.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/bs-ui/src/main.js b/bs-ui/src/main.js index db87cbf..4b78186 100644 --- a/bs-ui/src/main.js +++ b/bs-ui/src/main.js @@ -33,6 +33,8 @@ import FileUpload from "@/components/FileUpload" import ImageUpload from "@/components/ImageUpload" // 图片预览组件 import ImagePreview from "@/components/ImagePreview" +// 图片预览组件 +import MyImageViewer from "@/components/MyImageViewer" // 字典标签组件 import DictTag from '@/components/DictTag' // 头部标签组件 @@ -59,6 +61,7 @@ Vue.component('Editor', Editor) Vue.component('FileUpload', FileUpload) Vue.component('ImageUpload', ImageUpload) Vue.component('ImagePreview', ImagePreview) +Vue.component('MyImageViewer', MyImageViewer) Vue.mixin(CommonMixin); diff --git a/bs-ui/src/permission.js b/bs-ui/src/permission.js index 609d215..8c66e9b 100644 --- a/bs-ui/src/permission.js +++ b/bs-ui/src/permission.js @@ -8,7 +8,7 @@ import { isRelogin } from '@/utils/request' NProgress.configure({ showSpinner: false }) -const whiteList = ['/login', '/register'] +const whiteList = ['/login', '/register', '/test'] router.beforeEach((to, from, next) => { NProgress.start() diff --git a/bs-ui/src/router/index.js b/bs-ui/src/router/index.js index 71907b6..05239fb 100644 --- a/bs-ui/src/router/index.js +++ b/bs-ui/src/router/index.js @@ -51,6 +51,11 @@ export const constantRoutes = [ component: () => import('@/views/register'), hidden: true }, + { + path: '/test', + hidden: true, + component: () => import('@/views/test/index'), + }, { path: '/404', component: () => import('@/views/error/404'), diff --git a/bs-ui/src/utils/index.js b/bs-ui/src/utils/index.js index d406bd0..a43ff18 100644 --- a/bs-ui/src/utils/index.js +++ b/bs-ui/src/utils/index.js @@ -388,3 +388,39 @@ export function isNumberStr(str) { return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str) } +// 下载文件 +export function downloadFile(obj, name, suffix) { + let reader = new FileReader(); + let resObj; + reader.readAsText(obj, 'utf-8'); + reader.onload = () => { + try { + resObj = JSON.parse(reader.result); + // 如果转换成功说明后端已经抛出异常 + this.$message.error(resObj.msg) + } catch (e) { + // 转换异常说明是正常的文件流 + oldDownloadFile(obj, name, suffix); + } + } +} + +function oldDownloadFile(obj, name, suffix) { + const url = window.URL.createObjectURL(new Blob([obj])) + const link = document.createElement('a') + link.style.display = 'none' + link.href = url + // const fileName = formatDate(new Date()) + '-' + name + '.' + suffix + const _suffix = '.' + suffix + let fileName + if (suffix) { + fileName = name + _suffix + } else { + fileName = name + } + link.setAttribute('download', fileName) + document.body.appendChild(link) + link.click() + document.body.removeChild(link) +} + diff --git a/bs-ui/src/views/gallery/list/components/ImageItem.vue b/bs-ui/src/views/gallery/list/components/ImageItem.vue new file mode 100644 index 0000000..9adf853 --- /dev/null +++ b/bs-ui/src/views/gallery/list/components/ImageItem.vue @@ -0,0 +1,61 @@ + + + + + \ No newline at end of file diff --git a/bs-ui/src/views/gallery/list/index.vue b/bs-ui/src/views/gallery/list/index.vue new file mode 100644 index 0000000..2b23e44 --- /dev/null +++ b/bs-ui/src/views/gallery/list/index.vue @@ -0,0 +1,59 @@ + + + + + \ No newline at end of file diff --git a/bs-ui/src/views/test/index.vue b/bs-ui/src/views/test/index.vue new file mode 100644 index 0000000..802c15a --- /dev/null +++ b/bs-ui/src/views/test/index.vue @@ -0,0 +1,18 @@ + + + + + \ No newline at end of file