9b123ce8 by lihua

添加数据产品下载源文件

1 parent 4cee3cc6
...@@ -35,6 +35,7 @@ import { ...@@ -35,6 +35,7 @@ import {
35 getContractStrategy 35 getContractStrategy
36 } from "@/api/modules/dataDelivery"; 36 } from "@/api/modules/dataDelivery";
37 import StrategyTable from '../data_smart_contract/components/strategyTable.vue'; 37 import StrategyTable from '../data_smart_contract/components/strategyTable.vue';
38 import { getDownFileSignByUrl, obsDownloadRequest, parseAndDecodeUrl } from '@/api/modules/obsService';
38 39
39 const router = useRouter(); 40 const router = useRouter();
40 const route = useRoute(); 41 const route = useRoute();
...@@ -477,26 +478,44 @@ const handleTableViewData = (scope) => { ...@@ -477,26 +478,44 @@ const handleTableViewData = (scope) => {
477 } 478 }
478 479
479 /** 下载数据 */ 480 /** 下载数据 */
480 const handleTableViewDataDown = (scope) => { 481 const handleTableViewDataDown = async (scope) => {
481 downloadTableDataCheck({ 482 if (foundMode.value == 'download' || foundMode.value == 'readAndDown') {
482 userGuid: route.query.useGuid, 483 downloadTableDataCheck({
483 subjectGuid: scope.row.guid 484 userGuid: route.query.useGuid,
484 }).then((res: any) => { 485 subjectGuid: scope.row.guid
485 if (res?.code == proxy.$passCode) { 486 }).then((res: any) => {
486 downloadTableData({ 487 if (res?.code == proxy.$passCode) {
487 userGuid: route.query.useGuid, 488 downloadTableData({
488 subjectGuid: scope.row.guid 489 userGuid: route.query.useGuid,
489 }).then((res: any) => { 490 subjectGuid: scope.row.guid
490 if (res && !res.msg) { 491 }).then((res: any) => {
491 download(res, `${scope.row.tableChName}.xlsx`, 'excel'); 492 if (res && !res.msg) {
492 } else { 493 download(res, `${scope.row.tableChName}.xlsx`, 'excel');
493 res?.msg && ElMessage.error(res?.msg); 494 } else {
494 } 495 res?.msg && ElMessage.error(res?.msg);
495 }) 496 }
496 } else { 497 })
497 ElMessage.error(res?.msg || '下载失败'); 498 } else {
499 ElMessage.error(res?.msg || '下载失败');
500 }
501 })
502 } else if (foundMode.value == '1') { //下载源文件
503 let fileUrl = scope.row.fileUrl;
504 const refSignInfo: any = await getDownFileSignByUrl(parseAndDecodeUrl(fileUrl).fileName);
505 if (!refSignInfo?.data) {
506 refSignInfo?.msg && ElMessage.error(refSignInfo?.msg);
507 return;
498 } 508 }
499 }) 509 obsDownloadRequest(refSignInfo?.data).then((res: any) => {
510 if (res && !res.msg) {
511 let name = scope.row.fileName;
512 var fileSuffix = name ? name.substring(name.lastIndexOf('.') + 1) : '';
513 download(res, name, fileSuffix);
514 } else {
515 res?.msg && ElMessage.error(res?.msg);
516 }
517 })
518 }
500 } 519 }
501 520
502 const toolBtns: any = computed(() => { 521 const toolBtns: any = computed(() => {
...@@ -1528,9 +1547,10 @@ const respParamsTableInfo = ref({ ...@@ -1528,9 +1547,10 @@ const respParamsTableInfo = ref({
1528 <template #default="scope"> 1547 <template #default="scope">
1529 <!-- 如果是下载,就只显示下载,如果是查看和下载就都显示,就两个按钮都显示。仅查看,就仅查看 --> 1548 <!-- 如果是下载,就只显示下载,如果是查看和下载就都显示,就两个按钮都显示。仅查看,就仅查看 -->
1530 <span v-show="foundMode != 'download'" class="text_btn" @click="handleTableViewData(scope)">查看样例数据</span> 1549 <span v-show="foundMode != 'download'" class="text_btn" @click="handleTableViewData(scope)">查看样例数据</span>
1531 <el-divider v-show="foundMode == 'readAndDown'" direction="vertical" /> 1550 <el-divider v-show="foundMode == 'readAndDown' || foundMode == '1'" direction="vertical" />
1532 <span v-show="foundMode == 'download' || foundMode == 'readAndDown'" class="text_btn" 1551 <span v-show="foundMode == 'download' || foundMode == 'readAndDown'" class="text_btn"
1533 @click="handleTableViewDataDown(scope)">下载数据</span> 1552 @click="handleTableViewDataDown(scope)">下载数据</span>
1553 <span v-show="foundMode == '1'" class="text_btn" @click="handleTableViewDataDown(scope)">下载</span>
1534 </template> 1554 </template>
1535 </el-table-column> 1555 </el-table-column>
1536 </el-table> 1556 </el-table>
...@@ -1575,10 +1595,9 @@ const respParamsTableInfo = ref({ ...@@ -1575,10 +1595,9 @@ const respParamsTableInfo = ref({
1575 <img class="file-img" src="../../assets/images/jpg.png" /> 1595 <img class="file-img" src="../../assets/images/jpg.png" />
1576 </template> 1596 </template>
1577 <div class="file-name">{{ item.name }}</div> 1597 <div class="file-name">{{ item.name }}</div>
1578 <div :style="{ right: '36px' }" 1598 <div :style="{ right: '36px' }" v-if="foundMode != 'download' && item.name.substring(item.name.lastIndexOf('.') + 1) == 'pdf' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'png' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpg' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpeg'"
1579 v-if="item.name.substring(item.name.lastIndexOf('.') + 1) == 'pdf' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'png' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpg' || item.name.substring(item.name.lastIndexOf('.') + 1) == 'jpeg'"
1580 class="file-preview" @click="onUploadFilePreview(item)">查看</div> 1599 class="file-preview" @click="onUploadFilePreview(item)">查看</div>
1581 <div :style="{ right: '0px' }" class="file-preview" @click="onUploadFileDownload(item)">下载</div> 1600 <div v-if="foundMode == 'download' || foundMode == 'readAndDown' || foundMode == '1'" :style="{ right: '0px' }" class="file-preview" @click="onUploadFileDownload(item)">下载</div>
1582 </div> 1601 </div>
1583 </span> 1602 </span>
1584 </div> 1603 </div>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!