2bc45da1 by lihua

fix: 详情给交付物添加下载功能

1 parent bc825221
...@@ -226,9 +226,9 @@ export const getPastTime = (duration, type) => { ...@@ -226,9 +226,9 @@ export const getPastTime = (duration, type) => {
226 } 226 }
227 227
228 /** 根据流获取url地址,用于文件查看。 */ 228 /** 根据流获取url地址,用于文件查看。 */
229 export const getDownloadUrl = (data, fileName, type: any = null,flag=true) => { 229 export const getDownloadUrl= (data, fileName, type: any = null,flag=true) => {
230 let mineType = 'application/octet-stream' 230 let mineType = 'application/octet-stream'
231 if (type == 'excel') { 231 if (type == 'excel' || type == 'xlsx' || type == 'xls' || type == 'csv') {
232 mineType = 'application/vnd.ms-excel' 232 mineType = 'application/vnd.ms-excel'
233 } else if (type == 'word') { 233 } else if (type == 'word') {
234 mineType = 'application/msword' 234 mineType = 'application/msword'
......
...@@ -168,18 +168,17 @@ const getTaskDetail = () => { ...@@ -168,18 +168,17 @@ const getTaskDetail = () => {
168 }) 168 })
169 } 169 }
170 170
171 const toPath = () => {
172 userStore.setTabbar(userStore.tabbar.filter((tab: any) => tab.fullPath !== fullPath));
173 assetStore.set(true);
174 router.push({
175 name: 'contractManagement',
176 })
177 }
178
179 const btnClick = async (btn) => { 171 const btnClick = async (btn) => {
180 const type = btn.value; 172 const type = btn.value;
181 if (type == 'cancel') { 173 if (type == 'cancel') {
182 toPath() 174 userStore.setTabbar(userStore.tabbar.filter((tab: any) => tab.fullPath !== fullPath));
175 router.push({
176 name: 'registerCatalogDetail',
177 query: {
178 guid: route.query.damGuid,
179 type: 'asset'
180 }
181 })
183 } 182 }
184 } 183 }
185 184
......
...@@ -128,6 +128,7 @@ const getDetailInfo = () => { ...@@ -128,6 +128,7 @@ const getDetailInfo = () => {
128 dataReceiveGuid: rece.dataReceiveGuid, 128 dataReceiveGuid: rece.dataReceiveGuid,
129 contractInfo: rece.contractInfo || [], 129 contractInfo: rece.contractInfo || [],
130 dataDeliveryName: d.dataDelivery[0].name, 130 dataDeliveryName: d.dataDelivery[0].name,
131 dataDeliveryFile: d.dataDelivery[0],
131 rowspan: index + 1, 132 rowspan: index + 1,
132 }); 133 });
133 }) 134 })
...@@ -948,12 +949,12 @@ const deliverySpanMethod = ({ ...@@ -948,12 +949,12 @@ const deliverySpanMethod = ({
948 columnIndex, 949 columnIndex,
949 }) => { 950 }) => {
950 if (columnIndex === 0 || columnIndex === 1 || columnIndex === 4) { 951 if (columnIndex === 0 || columnIndex === 1 || columnIndex === 4) {
951 let currentSpan = deliveryDetailInfo.value[rowIndex].rowspan; 952 let currentSpan = deliveryDetailInfo.value[rowIndex].rowspan;
952 let rowspan = deliveryDetailInfo.value[rowIndex + 1]?.rowspan 953 let rowspan = deliveryDetailInfo.value[rowIndex + 1]?.rowspan
953 if (rowspan && rowspan > 1) { 954 if (rowspan && rowspan > 1) {
954 return { rowspan: rowspan, colspan: 1 }; 955 return { rowspan: rowspan, colspan: 1 };
955 } else { 956 } else {
956 return { rowspan: currentSpan == 1 ? 1 : 0, colspan: currentSpan == 1 ? 1 : 0 } 957 return { rowspan: currentSpan == 1 ? 1 : 0, colspan: currentSpan == 1 ? 1 : 0 }
957 } 958 }
958 } else { 959 } else {
959 return { rowspan: 1, colspan: 1 } 960 return { rowspan: 1, colspan: 1 }
...@@ -967,11 +968,16 @@ const clickContractDetail = (item) => { ...@@ -967,11 +968,16 @@ const clickContractDetail = (item) => {
967 guid: item.dataContractGuid, 968 guid: item.dataContractGuid,
968 name: item.dataContractName, 969 name: item.dataContractName,
969 type: 'detail', 970 type: 'detail',
970 tenantGuid: userData.tenantGuid 971 tenantGuid: userData.tenantGuid,
972 damGuid: catalogGuid
971 } 973 }
972 }) 974 })
973 } 975 }
974 976
977 const viewDeliveryFile = (file) => {
978 onUploadFileDownload(file);
979 }
980
975 </script> 981 </script>
976 982
977 <template> 983 <template>
...@@ -1206,7 +1212,7 @@ const clickContractDetail = (item) => { ...@@ -1206,7 +1212,7 @@ const clickContractDetail = (item) => {
1206 <div class="list_item" :style="{ width: '60%' }"> 1212 <div class="list_item" :style="{ width: '60%' }">
1207 <span class="item_label">评价对象范围:</span> 1213 <span class="item_label">评价对象范围:</span>
1208 <span class="item_value">{{ evaDetailInfo.evaluationRangeStart + '~' + evaDetailInfo.evaluationRangeEnd 1214 <span class="item_value">{{ evaDetailInfo.evaluationRangeStart + '~' + evaDetailInfo.evaluationRangeEnd
1209 }}</span> 1215 }}</span>
1210 </div> 1216 </div>
1211 <div class="list_item is_block"> 1217 <div class="list_item is_block">
1212 <span class="item_label">质量评价结果:</span> 1218 <span class="item_label">质量评价结果:</span>
...@@ -1259,78 +1265,82 @@ const clickContractDetail = (item) => { ...@@ -1259,78 +1265,82 @@ const clickContractDetail = (item) => {
1259 </div> 1265 </div>
1260 </ContentWrap> 1266 </ContentWrap>
1261 1267
1262 <ContentWrap id="id-certificate" title="证件信息" v-if="route.query.type == 'certificate'" style="margin: 16px 16px 16px" > 1268 <ContentWrap id="id-certificate" title="证件信息" v-if="route.query.type == 'certificate'"
1263 <div class="list_panel"> 1269 style="margin: 16px 16px 16px">
1264 <div class="list_item"> 1270 <div class="list_panel">
1265 <span class="item_label">证件编码:</span> 1271 <div class="list_item">
1266 <span class="item_value">{{ certificateDetail.daCode ?? '--' }}</span> 1272 <span class="item_label">证件编码:</span>
1267 </div> 1273 <span class="item_value">{{ certificateDetail.daCode ?? '--' }}</span>
1268 <div class="list_item"> 1274 </div>
1269 <span class="item_label">登记时间:</span> 1275 <div class="list_item">
1270 <span class="item_value">{{ certificateDetail.registerTime ?? '--' }}</span> 1276 <span class="item_label">登记时间:</span>
1271 </div> 1277 <span class="item_value">{{ certificateDetail.registerTime ?? '--' }}</span>
1272 <div class="list_item"> 1278 </div>
1273 <span class="item_label">有效期:</span> 1279 <div class="list_item">
1274 <span class="item_value">{{ certificateDetail.effectiveDate ?? '--' }}</span> 1280 <span class="item_label">有效期:</span>
1275 </div> 1281 <span class="item_value">{{ certificateDetail.effectiveDate ?? '--' }}</span>
1276 <div class="list_item">
1277 <span class="item_label">发证主体:</span>
1278 <span class="item_value"><ellipsis-tooltip :content="certificateDetail.issuingEntityName ?? '--'"
1279 class-name="w100f mr8-i" :refName="'tooltipOver' + 'issuingEntityName'"></ellipsis-tooltip></span>
1280 </div>
1281 <div class="list_item">
1282 <span class="item_label">证件类型:</span>
1283 <span class="item_value">{{ certificateDetail.documentType == 1 ? 'A证' : (certificateDetail.documentType == 2 ? 'B证' :
1284 'C证') }}</span>
1285 </div>
1286 <div class="list_item">
1287 <span class="item_label">证件类别:</span>
1288 <span class="item_value">{{ certificateDetail.documentCategoryName ?? '--' }}</span>
1289 </div>
1290 <div class="list_item is_block" v-if="certificateDetail.documentFile?.length" :style="{ 'max-width': '700px' }">
1291 <span class="item_label">证件:</span>
1292 <span class="item_value">
1293 <div class="file-operate">
1294 <template
1295 v-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'xls' || certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'xlsx'">
1296 <img class="file-img" src="../../assets/images/excel.png" />
1297 </template>
1298 <template
1299 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'doc' || certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'docx'">
1300 <img class="file-img" src="../../assets/images/word.png" />
1301 </template>
1302 <template
1303 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'zip'">
1304 <img class="file-img" src="../../assets/images/zip.png" />
1305 </template>
1306 <template
1307 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'rar'">
1308 <img class="file-img" src="../../assets/images/RAR.png" />
1309 </template>
1310 <template
1311 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'pdf'">
1312 <img class="file-img" src="../../assets/images/PDF.png" />
1313 </template>
1314 <template
1315 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'png'">
1316 <img class="file-img" src="../../assets/images/png.png" />
1317 </template>
1318 <template
1319 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'jpg' || certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'jpeg'">
1320 <img class="file-img" src="../../assets/images/jpg.png" />
1321 </template>
1322 <div class="file-name"><ellipsis-tooltip :content="certificateDetail.documentFile[0].name ?? ''"
1323 class-name="w100f" refName="tooltipOver"></ellipsis-tooltip></div>
1324 <div :style="{ right: '36px' }" class="file-preview"
1325 v-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'pdf' || certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'png' || certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'jpg' || certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'jpeg'"
1326 @click="onUploadFilePreview(certificateDetail.documentFile?.[0])">查看</div>
1327 <div :style="{ right: '0px' }" class="file-preview"
1328 @click="onUploadFileDownload(certificateDetail.documentFile?.[0])">下载</div>
1329 </div>
1330 </span>
1331 </div>
1332 </div> 1282 </div>
1333 </ContentWrap> 1283 <div class="list_item">
1284 <span class="item_label">发证主体:</span>
1285 <span class="item_value"><ellipsis-tooltip :content="certificateDetail.issuingEntityName ?? '--'"
1286 class-name="w100f mr8-i" :refName="'tooltipOver' + 'issuingEntityName'"></ellipsis-tooltip></span>
1287 </div>
1288 <div class="list_item">
1289 <span class="item_label">证件类型:</span>
1290 <span class="item_value">{{ certificateDetail.documentType == 1 ? 'A证' : (certificateDetail.documentType ==
1291 2 ?
1292 'B证' :
1293 'C证') }}</span>
1294 </div>
1295 <div class="list_item">
1296 <span class="item_label">证件类别:</span>
1297 <span class="item_value">{{ certificateDetail.documentCategoryName ?? '--' }}</span>
1298 </div>
1299 <div class="list_item is_block" v-if="certificateDetail.documentFile?.length"
1300 :style="{ 'max-width': '700px' }">
1301 <span class="item_label">证件:</span>
1302 <span class="item_value">
1303 <div class="file-operate">
1304 <template
1305 v-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'xls' || certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'xlsx'">
1306 <img class="file-img" src="../../assets/images/excel.png" />
1307 </template>
1308 <template
1309 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'doc' || certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'docx'">
1310 <img class="file-img" src="../../assets/images/word.png" />
1311 </template>
1312 <template
1313 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'zip'">
1314 <img class="file-img" src="../../assets/images/zip.png" />
1315 </template>
1316 <template
1317 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'rar'">
1318 <img class="file-img" src="../../assets/images/RAR.png" />
1319 </template>
1320 <template
1321 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'pdf'">
1322 <img class="file-img" src="../../assets/images/PDF.png" />
1323 </template>
1324 <template
1325 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'png'">
1326 <img class="file-img" src="../../assets/images/png.png" />
1327 </template>
1328 <template
1329 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'jpg' || certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'jpeg'">
1330 <img class="file-img" src="../../assets/images/jpg.png" />
1331 </template>
1332 <div class="file-name"><ellipsis-tooltip :content="certificateDetail.documentFile[0].name ?? ''"
1333 class-name="w100f" refName="tooltipOver"></ellipsis-tooltip></div>
1334 <div :style="{ right: '36px' }" class="file-preview"
1335 v-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'pdf' || certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'png' || certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'jpg' || certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'jpeg'"
1336 @click="onUploadFilePreview(certificateDetail.documentFile?.[0])">查看</div>
1337 <div :style="{ right: '0px' }" class="file-preview"
1338 @click="onUploadFileDownload(certificateDetail.documentFile?.[0])">下载</div>
1339 </div>
1340 </span>
1341 </div>
1342 </div>
1343 </ContentWrap>
1334 1344
1335 <ContentWrap 1345 <ContentWrap
1336 v-if="(route.query.type == 'qualityEvaluate' && evaDetailInfo.approveVO && evaDetailInfo.isApprove != 'N') || (route.query.type == 'costAssess' && costAssessDetail.approveVO && costAssessDetail.isApprove != 'N')" 1346 v-if="(route.query.type == 'qualityEvaluate' && evaDetailInfo.approveVO && evaDetailInfo.isApprove != 'N') || (route.query.type == 'costAssess' && costAssessDetail.approveVO && costAssessDetail.isApprove != 'N')"
...@@ -1340,23 +1350,28 @@ const clickContractDetail = (item) => { ...@@ -1340,23 +1350,28 @@ const clickContractDetail = (item) => {
1340 </ApprovalProcess> 1350 </ApprovalProcess>
1341 </ContentWrap> 1351 </ContentWrap>
1342 1352
1343 <ContentWrap v-if="route.query.type == 'asset' && deliveryDetailInfo.length" id="id-deliverFile" title="交付物" description="" 1353 <ContentWrap v-if="route.query.type == 'asset' && deliveryDetailInfo.length" id="id-deliverFile" title="交付物"
1344 style="margin: 16px 16px 16px"> 1354 description="" style="margin: 16px 16px 16px">
1345 <el-table ref="deliveryTableRef" :data="deliveryDetailInfo" :highlight-current-row="true" stripe border 1355 <el-table ref="deliveryTableRef" :data="deliveryDetailInfo" :highlight-current-row="true" stripe border
1346 height="100%" :span-method="deliverySpanMethod" tooltip-effect="light" row-key="guid" :style="{ 1356 height="100%" :span-method="deliverySpanMethod" tooltip-effect="light" row-key="guid" :style="{
1347 width: '100%', 1357 width: '100%',
1348 display: 'inline-block', 1358 display: 'inline-block',
1349 }"> 1359 }">
1350 <el-table-column label="序号" type="index" width="56px" align="center" > 1360 <el-table-column label="序号" type="index" width="56px" align="center">
1351 </el-table-column> 1361 </el-table-column>
1352 <el-table-column prop="dataDeliveryName" label="数据交付物" width="240px" align="left" > 1362 <el-table-column prop="dataDeliveryName" label="数据交付物" width="240px" align="left">
1363 <template #default="scope">
1364 <a underline="hover" style="cursor: pointer;" @click="viewDeliveryFile(scope.row.dataDeliveryFile)">{{
1365 scope.row.dataDeliveryName }}</a>
1366 </template>
1353 </el-table-column> 1367 </el-table-column>
1354 <el-table-column prop="dataReceiveName" label="数据接收方" width="240px" align="left"> 1368 <el-table-column prop="dataReceiveName" label="数据接收方" width="240px" align="left">
1355 </el-table-column> 1369 </el-table-column>
1356 <el-table-column prop="contract" label="合同" min-width="200px" align="left"> 1370 <el-table-column prop="contract" label="合同" min-width="200px" align="left">
1357 <template #default="scope"> 1371 <template #default="scope">
1358 <a v-for="item in scope.row.contractInfo" underline="hover" style="margin-right: 12px;cursor: pointer;" @click="clickContractDetail(item)">{{ 1372 <a v-for="item in scope.row.contractInfo" underline="hover" style="margin-right: 12px;cursor: pointer;"
1359 item.dataContractName }}</a> 1373 @click="clickContractDetail(item)">{{
1374 item.dataContractName }}</a>
1360 </template> 1375 </template>
1361 </el-table-column> 1376 </el-table-column>
1362 <el-table-column prop="uploadTime" label="上传时间" width="180px" align="left"> 1377 <el-table-column prop="uploadTime" label="上传时间" width="180px" align="left">
...@@ -1368,7 +1383,7 @@ const clickContractDetail = (item) => { ...@@ -1368,7 +1383,7 @@ const clickContractDetail = (item) => {
1368 v-if="toolBtns.length && (route.query.type == 'qualityEvaluate' || route.query.type == 'costAssess' || route.query.type == 'asset')"> 1383 v-if="toolBtns.length && (route.query.type == 'qualityEvaluate' || route.query.type == 'costAssess' || route.query.type == 'asset')">
1369 <div class="btns"> 1384 <div class="btns">
1370 <el-button v-for="btn in toolBtns" :type="btn.type" :plain="btn.plain" @click="btnClick(btn)">{{ btn.label 1385 <el-button v-for="btn in toolBtns" :type="btn.type" :plain="btn.plain" @click="btnClick(btn)">{{ btn.label
1371 }}</el-button> 1386 }}</el-button>
1372 </div> 1387 </div>
1373 </div> 1388 </div>
1374 <Dialog :dialogInfo="passDialogInfo" @btnClick="passDialogBtnClick" @inputChange=passDialogInputChange /> 1389 <Dialog :dialogInfo="passDialogInfo" @btnClick="passDialogBtnClick" @inputChange=passDialogInputChange />
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!