9bca7e98 by lihua

提交血缘图片的上传和下载

1 parent 96af58b9
...@@ -8,10 +8,14 @@ import { ElMessage, ElMessageBox } from "element-plus"; ...@@ -8,10 +8,14 @@ import { ElMessage, ElMessageBox } from "element-plus";
8 import Table from '@/components/Table/index.vue' 8 import Table from '@/components/Table/index.vue'
9 import TableTools from '@/components/Tools/table_tools.vue' 9 import TableTools from '@/components/Tools/table_tools.vue'
10 import {getAnalysisReportList,delAnalysisRepor,updateAnalysisRepor} from "@/api/modules/dataMetaService" 10 import {getAnalysisReportList,delAnalysisRepor,updateAnalysisRepor} from "@/api/modules/dataMetaService"
11 import { getImageContent } from "@/api/modules/queryService";
12 import Dialog from '@/components/Dialog/index.vue' 11 import Dialog from '@/components/Dialog/index.vue'
13 import { getDownloadUrl, download } from "@/utils/common"; 12 import { getDownloadUrl, download } from "@/utils/common";
14 import { useRouter } from 'vue-router'; 13 import { useRouter } from 'vue-router';
14 import {
15 parseAndDecodeUrl,
16 getDownFileSignByUrl,
17 obsDownloadRequest
18 } from "@/api/modules/obsService";
15 const router = useRouter() 19 const router = useRouter()
16 const page = ref({ 20 const page = ref({
17 limit: 50, 21 limit: 50,
...@@ -119,18 +123,23 @@ const tableSearchItemList: any = ref([{ ...@@ -119,18 +123,23 @@ const tableSearchItemList: any = ref([{
119 placeholder: '血缘关系名称', 123 placeholder: '血缘关系名称',
120 clearable: true 124 clearable: true
121 }]); 125 }]);
122 const tableBtnClick = (scope, btn) => { 126 const tableBtnClick = async (scope, btn) => {
123 const type = btn.value; 127 const type = btn.value;
124 let row = scope.row; 128 let row = scope.row;
125 rowData.value = row 129 rowData.value = row
126 currTableData.value = row; 130 currTableData.value = row;
127 if (type == 'view') { 131 if (type == 'view') {
128 getImageContent(row.analysisReportUrl).then((res: any) => { 132 const refSignInfo: any = await getDownFileSignByUrl(parseAndDecodeUrl(row.analysisReportUrl).decodedPath);
133 if (!refSignInfo?.data) {
134 refSignInfo?.msg && ElMessage.error(refSignInfo?.msg);
135 return;
136 }
137 obsDownloadRequest(refSignInfo?.data).then((res: any) => {
129 if (res && !res.msg) { 138 if (res && !res.msg) {
130 let name = row.analysisReportUrl; 139 let name = row.analysisReportUrl;
131 var fileSuffix = name ? name.substring(name.lastIndexOf('.') + 1) : ''; 140 var fileSuffix = name ? name.substring(name.lastIndexOf('.') + 1) : '';
132 if (fileSuffix === 'png') { //浏览器可以支持图片和pdf预览 141 if (fileSuffix === 'png') { //浏览器可以支持图片和pdf预览
133 let fileUrl = getDownloadUrl(res, name, fileSuffix); 142 let fileUrl = <string>getDownloadUrl(res, name, fileSuffix);
134 let win = window.open(fileUrl, name); 143 let win = window.open(fileUrl, name);
135 win && (win.document.title = name); 144 win && (win.document.title = name);
136 } else { 145 } else {
...@@ -141,7 +150,12 @@ const tableBtnClick = (scope, btn) => { ...@@ -141,7 +150,12 @@ const tableBtnClick = (scope, btn) => {
141 } 150 }
142 }); 151 });
143 } else if (type == 'export') { 152 } else if (type == 'export') {
144 getImageContent(row.analysisReportUrl).then((res: any) => { 153 const refSignInfo: any = await getDownFileSignByUrl(parseAndDecodeUrl(row.analysisReportUrl).decodedPath);
154 if (!refSignInfo?.data) {
155 refSignInfo?.msg && ElMessage.error(refSignInfo?.msg);
156 return;
157 }
158 obsDownloadRequest(refSignInfo?.data).then((res: any) => {
145 if (res && !res.msg) { 159 if (res && !res.msg) {
146 let name = row.analysisReportUrl; 160 let name = row.analysisReportUrl;
147 var fileSuffix = name ? name.substring(name.lastIndexOf('.') + 1) : ''; 161 var fileSuffix = name ? name.substring(name.lastIndexOf('.') + 1) : '';
......
...@@ -22,7 +22,11 @@ import { ...@@ -22,7 +22,11 @@ import {
22 delLineAge, 22 delLineAge,
23 checkTableData 23 checkTableData
24 } from '@/api/modules/dataMetaService'; 24 } from '@/api/modules/dataMetaService';
25 import { getFileUrl } from "@/api/modules/queryService" 25 import {
26 parseAndDecodeUrl,
27 getUpFileSignByUrl,
28 obsUploadRequest
29 } from "@/api/modules/obsService";
26 import { useRouter, useRoute } from "vue-router"; 30 import { useRouter, useRoute } from "vue-router";
27 import useDataMetaStore from "@/store/modules/dataMeta" 31 import useDataMetaStore from "@/store/modules/dataMeta"
28 import { cloneDeep } from 'lodash-es' 32 import { cloneDeep } from 'lodash-es'
...@@ -857,17 +861,23 @@ const pageSave = () => { ...@@ -857,17 +861,23 @@ const pageSave = () => {
857 return 861 return
858 } 862 }
859 863
860 let formData = new FormData(); 864 dialogInfo1.value.footer.btns[1].loading = true;
861 formData.append('file', file.value); 865 return getUpFileSignByUrl({ fileName: `${analysisReportName}.png` })
862 formData.append('fileName', `${analysisReportName}.png`); 866 .then((res: any) => {
863 getFileUrl(formData).then((res) => { 867 obsUploadRequest({
868 signedUrl: res.data.signedUrl,
869 file: file.value,
870 actualSignedRequestHeaders: res.data.actualSignedRequestHeaders
871 }).then(() => {
872 if (res.code == '00000') {
864 saveMetaReportAnalysis({ 873 saveMetaReportAnalysis({
865 table: lastClickNode.value.tableName, 874 table: lastClickNode.value.tableName,
866 database: lastClickNode.value.databaseName, 875 database: lastClickNode.value.databaseName,
867 analysisReportUrl: res.data, 876 analysisReportUrl: res.data?.signedUrl,
868 analysisReportName: analysisReportName, 877 analysisReportName: analysisReportName,
869 databaseChName: lastClickNode.value.databaseChName 878 databaseChName: lastClickNode.value.databaseChName
870 }).then((res: any) => { 879 }).then((res: any) => {
880 dialogInfo1.value.footer.btns[1].loading = false;
871 if (res.code == proxy.$passCode) { 881 if (res.code == proxy.$passCode) {
872 ElMessage({ 882 ElMessage({
873 type: "success", 883 type: "success",
...@@ -883,9 +893,19 @@ const pageSave = () => { ...@@ -883,9 +893,19 @@ const pageSave = () => {
883 }) 893 })
884 } 894 }
885 }) 895 })
896 } else {
897 ElMessage({
898 type: "error",
899 message: res.msg,
900 appendTo: lineageGraph.value.containerRef
901 })
902 }
886 }).catch((res) => { 903 }).catch((res) => {
887 ElMessage.error(res.msg) 904 ElMessage.error(res.msg)
888 }) 905 });
906 }).catch((res) => {
907 ElMessage.error(res.msg)
908 });
889 } 909 }
890 910
891 const formItems1: any = ref([ 911 const formItems1: any = ref([
...@@ -933,7 +953,7 @@ const dialogInfo1 = ref({ ...@@ -933,7 +953,7 @@ const dialogInfo1 = ref({
933 footer: { 953 footer: {
934 btns: [ 954 btns: [
935 { type: "default", label: "取消", value: "cancel" }, 955 { type: "default", label: "取消", value: "cancel" },
936 { type: "primary", label: "保存", value: "submit" }, 956 { type: "primary", label: "保存", value: "submit", loading: false },
937 ], 957 ],
938 }, 958 },
939 }); 959 });
......
...@@ -26,9 +26,13 @@ import { ...@@ -26,9 +26,13 @@ import {
26 saveMetaReportAnalysis, 26 saveMetaReportAnalysis,
27 checkTableData 27 checkTableData
28 } from '@/api/modules/dataMetaService'; 28 } from '@/api/modules/dataMetaService';
29 import { getFileUrl } from "@/api/modules/queryService"
30 import useDataMetaStore from "@/store/modules/dataMeta" 29 import useDataMetaStore from "@/store/modules/dataMeta"
31 import { TableColumnWidth } from '@/utils/enum'; 30 import { TableColumnWidth } from '@/utils/enum';
31 import {
32 parseAndDecodeUrl,
33 getUpFileSignByUrl,
34 obsUploadRequest
35 } from "@/api/modules/obsService";
32 36
33 const { proxy } = getCurrentInstance() as any; 37 const { proxy } = getCurrentInstance() as any;
34 const router = useRouter(); 38 const router = useRouter();
...@@ -556,18 +560,24 @@ const pageSave = () => { ...@@ -556,18 +560,24 @@ const pageSave = () => {
556 }) 560 })
557 return 561 return
558 } 562 }
559 let formData = new FormData();
560 formData.append('file', file.value);
561 formData.append('fileName', `${analysisReportName}.png`);
562 console.log(formInline1.value.pageName) 563 console.log(formInline1.value.pageName)
563 getFileUrl(formData).then((res) => { 564 dialogInfo1.value.footer.btns[1].loading = true;
565 getUpFileSignByUrl({ fileName: `${analysisReportName}.png` })
566 .then((res: any) => {
567 obsUploadRequest({
568 signedUrl: res.data.signedUrl,
569 file: file.value,
570 actualSignedRequestHeaders: res.data.actualSignedRequestHeaders
571 }).then(() => {
572 if (res.code == '00000') {
564 saveMetaReportAnalysis({ 573 saveMetaReportAnalysis({
565 table: sheetInfo.value.tableName, 574 table: sheetInfo.value.tableName,
566 database: sheetInfo.value.databaseName, 575 database: sheetInfo.value.databaseName,
567 analysisReportUrl: res.data, 576 analysisReportUrl: res.data?.signedUrl,
568 analysisReportName: analysisReportName, 577 analysisReportName: analysisReportName,
569 databaseChName: sheetInfo.value.databaseChName 578 databaseChName: sheetInfo.value.databaseChName
570 }).then((res: any) => { 579 }).then((res: any) => {
580 dialogInfo1.value.footer.btns[1].loading = false;
571 if (res.code == proxy.$passCode) { 581 if (res.code == proxy.$passCode) {
572 // ElMessage.success("保存成功") 582 // ElMessage.success("保存成功")
573 ElMessage({ 583 ElMessage({
...@@ -584,13 +594,19 @@ const pageSave = () => { ...@@ -584,13 +594,19 @@ const pageSave = () => {
584 }) 594 })
585 } 595 }
586 }) 596 })
587 }).catch((res) => { 597 } else {
588 ElMessage({ 598 ElMessage({
589 type: "error", 599 type: "error",
590 message: res.msg, 600 message: res.msg,
591 appendTo: lineageGraph.value[0].containerRef 601 appendTo: lineageGraph.value.containerRef
592 })
593 }) 602 })
603 }
604 }).catch((res) => {
605 ElMessage.error(res.msg)
606 });
607 }).catch((res) => {
608 ElMessage.error(res.msg)
609 });
594 } 610 }
595 611
596 const formItems1: any = ref([ 612 const formItems1: any = ref([
...@@ -638,7 +654,7 @@ const dialogInfo1 = ref({ ...@@ -638,7 +654,7 @@ const dialogInfo1 = ref({
638 footer: { 654 footer: {
639 btns: [ 655 btns: [
640 { type: "default", label: "取消", value: "cancel" }, 656 { type: "default", label: "取消", value: "cancel" },
641 { type: "primary", label: "保存", value: "submit" }, 657 { type: "primary", label: "保存", value: "submit", loading: false },
642 ], 658 ],
643 }, 659 },
644 }); 660 });
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!