diff --git a/jero-web/package.json b/jero-web/package.json
index 7e8428dc..a8c88d53 100644
--- a/jero-web/package.json
+++ b/jero-web/package.json
@@ -32,6 +32,7 @@
"moment": "^2.29.4",
"nprogress": "^0.2.0",
"tinymce": "5.4.1",
+ "v-viewer": "^1.6.4",
"viser-vue": "^2.4.8",
"vue": "^2.6.10",
"vue-area-linkage": "^5.1.0",
diff --git a/jero-web/src/components/jero/JImageUpload.vue b/jero-web/src/components/jero/JImageUpload.vue
index cb77725d..d9915af8 100644
--- a/jero-web/src/components/jero/JImageUpload.vue
+++ b/jero-web/src/components/jero/JImageUpload.vue
@@ -10,22 +10,21 @@
:fileList="fileList"
:beforeUpload="beforeUpload"
:disabled="disabled"
- :isMultiple="isMultiple"
- :showUploadList="isMultiple"
v-bind="$attrs"
+ :accept="accept"
v-on="childListeners"
@change="handleChange"
@preview="handlePreview"
- :class="!isMultiple?'imgupload':''">
-
-
![]()
-
-
+ :class="[!isMultiple?'imgupload':'', (!isMultiple && picUrl)?'image-upload-single-over':'' ]">
+
+
@@ -33,14 +32,15 @@
import Vue from 'vue'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import { getFileAccessHttpUrl } from '@/api/manage'
-
+import JImagePreviewModal from './modal/JImagePreviewModal'
// const Base64 = require('js-base64').Base64
const uidGenerator = () => {
- return '-' + parseInt(Math.random() * 10000 + 1, 10)
+ return '-' + parseInt(Math.random() * 10000 + 1 + '', 10)
}
export default {
name: 'JImageUpload',
+ components: { JImagePreviewModal },
data () {
return {
uploadAction: window._CONFIG.domianURL + '/sys/common/upload',
@@ -48,6 +48,7 @@ export default {
picUrl: false,
headers: {},
fileList: [],
+ accept: 'image/png, image/jpeg',
previewImage: ''
}
},
@@ -88,7 +89,6 @@ export default {
computed: {
// 透传给下级组件的事件,需要排除本组件使用的change事件
childListeners () {
- // const vm = this
const result = Object.assign({},
this.$listeners
)
@@ -123,15 +123,23 @@ export default {
return
}
this.picUrl = true
+ const fileList = []
const arr = paths.split(',')
for (let a = 0; a < arr.length; a++) {
- this.fileList.forEach((item) => {
- if (item.url === arr[a]) {
- item.uid = uidGenerator()
- item.response.status = 'history'
+ const url = getFileAccessHttpUrl(arr[a])
+ fileList.push({
+ uid: uidGenerator(),
+ name: arr[a],
+ status: 'done',
+ url: url,
+ response: {
+ status: 'history',
+ message: arr[a]
}
})
}
+
+ this.fileList = fileList
},
beforeUpload: function (file) {
const fileType = file.type
@@ -144,7 +152,7 @@ export default {
this.picUrl = false
let fileList = info.fileList
// update-begin-author:wangshuai date:20201022 for:LOWCOD-969 判断number是否大于0和是否多选,返回选定的元素。
- if (this.number > 0 && this.isMultiple) {
+ if (this.number > 0) {
fileList = fileList.slice(-this.number)
}
// update-end-author:wangshuai date:20201022 for:LOWCOD-969 判断number是否大于0和是否多选,返回选定的元素。
@@ -153,7 +161,7 @@ export default {
this.picUrl = true
fileList = fileList.map((file) => {
if (file.response) {
- file.url = `${file.response.result.id}?token=${Vue.ls.get(ACCESS_TOKEN)}&fullfilename=${file.response.result.fileName}`
+ file.url = `${file.response.result.id}`
}
return file
})
@@ -172,9 +180,11 @@ export default {
// 预览
handlePreview (file) {
if (file && file.url) {
- const fileFullUrl = `${window._CONFIG.domianWebSocketURL}/sys/common/download/${file.response.result.id}?token=${Vue.ls.get(ACCESS_TOKEN)}&fullfilename=${file.name}`
- const url = `${window._CONFIG.onlinePreviewDomainURL}?url=${encodeURIComponent(fileFullUrl)}`
- window.open(url)
+ console.log(file)
+ // const fileFullUrl = `${window._CONFIG.domianWebSocketURL}/${file.url}`
+ // const url = `${window._CONFIG.onlinePreviewDomainURL}?url=${encodeURIComponent(Base64.encode(fileFullUrl))}`
+ // window.open(url)
+ this.$refs.JImagePreviewModal.open(file)
}
},
getAvatarView () {
@@ -190,7 +200,7 @@ export default {
path = ''
}
const arr = []
- if (!this.isMultiple) {
+ if (!this.isMultiple && uploadFiles && uploadFiles.length > 0) {
arr.push(uploadFiles[uploadFiles.length - 1].url)
} else {
for (let a = 0; a < uploadFiles.length; a++) {
diff --git a/jero-web/src/components/jero/modal/JImagePreviewModal.vue b/jero-web/src/components/jero/modal/JImagePreviewModal.vue
index 2eb47ac2..a06f1622 100644
--- a/jero-web/src/components/jero/modal/JImagePreviewModal.vue
+++ b/jero-web/src/components/jero/modal/JImagePreviewModal.vue
@@ -7,36 +7,42 @@
:footer="null"
@cancel="close"
cancelText="关闭">
-
![]()
+
+
+
diff --git a/jero-web/src/main.js b/jero-web/src/main.js
index 6ed36814..765298d0 100644
--- a/jero-web/src/main.js
+++ b/jero-web/src/main.js
@@ -20,6 +20,8 @@ import '@/utils/filter' // base filtermybatis-plus
import Print from 'vue-print-nb-jeecg'
import preview from 'vue-photo-preview'
import 'vue-photo-preview/dist/skin.css'
+import Viewer from 'v-viewer'
+import 'viewerjs/dist/viewer.css'
import SSO from '@/cas/sso.js'
import {
ACCESS_TOKEN,
@@ -63,6 +65,12 @@ Vue.use(preview)
Vue.use(vueBus)
Vue.use(JeroComponents)
Vue.use(VueAreaLinkage)
+Vue.use(Viewer)
+Viewer.setDefaults({
+ // 需要配置的属性 注意属性并没有引号
+ title: false,
+ toolbar: false
+})
SSO.init(() => {
main()