Commit 4dba979df8221b2bc05aa9474487ffd2bb559cc6
Merge branch 'fix/save-thumbnail-image' into 'main_dev'
fix: 修改大屏保存缩略图保存不了图片 See merge request yunteng/thingskit-view!115
Showing
2 changed files
with
37 additions
and
3 deletions
| @@ -91,7 +91,7 @@ export const saveDataViewList = (data: object) => { | @@ -91,7 +91,7 @@ export const saveDataViewList = (data: object) => { | ||
| 91 | */ | 91 | */ |
| 92 | export const uploadFile = async (file: FormData, mode: ErrorMessageMode = 'modal') => { | 92 | export const uploadFile = async (file: FormData, mode: ErrorMessageMode = 'modal') => { |
| 93 | return defHttp.post( | 93 | return defHttp.post( |
| 94 | - { url: Api.FILE_UPLOAD, params: file }, | 94 | + { url: Api.FILE_UPLOAD, params: file}, |
| 95 | { | 95 | { |
| 96 | errorMessageMode: mode | 96 | errorMessageMode: mode |
| 97 | } | 97 | } |
| @@ -33,6 +33,8 @@ const option = shallowReactive({ | @@ -33,6 +33,8 @@ const option = shallowReactive({ | ||
| 33 | dataset: '' | 33 | dataset: '' |
| 34 | }) | 34 | }) |
| 35 | 35 | ||
| 36 | + | ||
| 37 | + | ||
| 36 | const getStyle = (radius: number) => { | 38 | const getStyle = (radius: number) => { |
| 37 | return { | 39 | return { |
| 38 | borderRadius: `${radius}px`, | 40 | borderRadius: `${radius}px`, |
| @@ -40,12 +42,44 @@ const getStyle = (radius: number) => { | @@ -40,12 +42,44 @@ const getStyle = (radius: number) => { | ||
| 40 | } | 42 | } |
| 41 | } | 43 | } |
| 42 | 44 | ||
| 45 | +async function getBase64(imgUrl: string): Promise<string> { | ||
| 46 | + return new Promise(resolve => { | ||
| 47 | + let xhr = new XMLHttpRequest(); | ||
| 48 | + xhr.open('get', imgUrl, true); | ||
| 49 | + xhr.responseType = 'blob'; | ||
| 50 | + xhr.onload = function() { | ||
| 51 | + if (this.status == 200) { | ||
| 52 | + //得到一个blob对象 | ||
| 53 | + let blob = this.response; | ||
| 54 | + // 重点2 | ||
| 55 | + let oFileReader = new FileReader(); | ||
| 56 | + oFileReader.onloadend = function(e) { | ||
| 57 | + // 结果 | ||
| 58 | + const base64 = e.target?.result as string | ||
| 59 | + resolve(base64) | ||
| 60 | + }; | ||
| 61 | + oFileReader.readAsDataURL(blob); | ||
| 62 | + } | ||
| 63 | + }; | ||
| 64 | + xhr.send(); | ||
| 65 | + }) | ||
| 66 | +} | ||
| 67 | + | ||
| 43 | // 编辑更新 | 68 | // 编辑更新 |
| 44 | watch( | 69 | watch( |
| 45 | () => props.chartConfig.option.dataset, | 70 | () => props.chartConfig.option.dataset, |
| 46 | - (newData: any) => { | 71 | + async (newData: any) => { |
| 72 | + // const base64 = await getBase64(newData) | ||
| 73 | + // option.dataset = base64 | ||
| 74 | + const reg = /^https?/ig | ||
| 75 | + if(reg.test(newData)){ | ||
| 76 | + const base64 = await getBase64(newData) | ||
| 77 | + option.dataset = base64 | ||
| 78 | + return | ||
| 79 | + } | ||
| 47 | option.dataset = newData | 80 | option.dataset = newData |
| 48 | - }, | 81 | + |
| 82 | + }, | ||
| 49 | { | 83 | { |
| 50 | immediate: true | 84 | immediate: true |
| 51 | } | 85 | } |