49322d00 by lihua

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

1 parent 7e3b567e
...@@ -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>
...@@ -1207,7 +1213,7 @@ const clickContractDetail = (item) => { ...@@ -1207,7 +1213,7 @@ const clickContractDetail = (item) => {
1207 <div class="list_item" :style="{ width: '60%' }"> 1213 <div class="list_item" :style="{ width: '60%' }">
1208 <span class="item_label">评价对象范围:</span> 1214 <span class="item_label">评价对象范围:</span>
1209 <span class="item_value">{{ evaDetailInfo.evaluationRangeStart + '~' + evaDetailInfo.evaluationRangeEnd 1215 <span class="item_value">{{ evaDetailInfo.evaluationRangeStart + '~' + evaDetailInfo.evaluationRangeEnd
1210 }}</span> 1216 }}</span>
1211 </div> 1217 </div>
1212 <div class="list_item is_block"> 1218 <div class="list_item is_block">
1213 <span class="item_label">质量评价结果:</span> 1219 <span class="item_label">质量评价结果:</span>
...@@ -1260,78 +1266,82 @@ const clickContractDetail = (item) => { ...@@ -1260,78 +1266,82 @@ const clickContractDetail = (item) => {
1260 </div> 1266 </div>
1261 </ContentWrap> 1267 </ContentWrap>
1262 1268
1263 <ContentWrap id="id-certificate" title="证件信息" v-if="route.query.type == 'certificate'" style="margin: 16px 16px 16px" > 1269 <ContentWrap id="id-certificate" title="证件信息" v-if="route.query.type == 'certificate'"
1264 <div class="list_panel"> 1270 style="margin: 16px 16px 16px">
1265 <div class="list_item"> 1271 <div class="list_panel">
1266 <span class="item_label">证件编码:</span> 1272 <div class="list_item">
1267 <span class="item_value">{{ certificateDetail.daCode ?? '--' }}</span> 1273 <span class="item_label">证件编码:</span>
1268 </div> 1274 <span class="item_value">{{ certificateDetail.daCode ?? '--' }}</span>
1269 <div class="list_item"> 1275 </div>
1270 <span class="item_label">登记时间:</span> 1276 <div class="list_item">
1271 <span class="item_value">{{ certificateDetail.registerTime ?? '--' }}</span> 1277 <span class="item_label">登记时间:</span>
1272 </div> 1278 <span class="item_value">{{ certificateDetail.registerTime ?? '--' }}</span>
1273 <div class="list_item"> 1279 </div>
1274 <span class="item_label">有效期:</span> 1280 <div class="list_item">
1275 <span class="item_value">{{ certificateDetail.effectiveDate ?? '--' }}</span> 1281 <span class="item_label">有效期:</span>
1276 </div> 1282 <span class="item_value">{{ certificateDetail.effectiveDate ?? '--' }}</span>
1277 <div class="list_item">
1278 <span class="item_label">发证主体:</span>
1279 <span class="item_value"><ellipsis-tooltip :content="certificateDetail.issuingEntityName ?? '--'"
1280 class-name="w100f mr8-i" :refName="'tooltipOver' + 'issuingEntityName'"></ellipsis-tooltip></span>
1281 </div>
1282 <div class="list_item">
1283 <span class="item_label">证件类型:</span>
1284 <span class="item_value">{{ certificateDetail.documentType == 1 ? 'A证' : (certificateDetail.documentType == 2 ? 'B证' :
1285 'C证') }}</span>
1286 </div>
1287 <div class="list_item">
1288 <span class="item_label">证件类别:</span>
1289 <span class="item_value">{{ certificateDetail.documentCategoryName ?? '--' }}</span>
1290 </div>
1291 <div class="list_item is_block" v-if="certificateDetail.documentFile?.length" :style="{ 'max-width': '700px' }">
1292 <span class="item_label">证件:</span>
1293 <span class="item_value">
1294 <div class="file-operate">
1295 <template
1296 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'">
1297 <img class="file-img" src="../../assets/images/excel.png" />
1298 </template>
1299 <template
1300 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'">
1301 <img class="file-img" src="../../assets/images/word.png" />
1302 </template>
1303 <template
1304 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'zip'">
1305 <img class="file-img" src="../../assets/images/zip.png" />
1306 </template>
1307 <template
1308 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'rar'">
1309 <img class="file-img" src="../../assets/images/RAR.png" />
1310 </template>
1311 <template
1312 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'pdf'">
1313 <img class="file-img" src="../../assets/images/PDF.png" />
1314 </template>
1315 <template
1316 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'png'">
1317 <img class="file-img" src="../../assets/images/png.png" />
1318 </template>
1319 <template
1320 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'">
1321 <img class="file-img" src="../../assets/images/jpg.png" />
1322 </template>
1323 <div class="file-name"><ellipsis-tooltip :content="certificateDetail.documentFile[0].name ?? ''"
1324 class-name="w100f" refName="tooltipOver"></ellipsis-tooltip></div>
1325 <div :style="{ right: '36px' }" class="file-preview"
1326 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'"
1327 @click="onUploadFilePreview(certificateDetail.documentFile?.[0])">查看</div>
1328 <div :style="{ right: '0px' }" class="file-preview"
1329 @click="onUploadFileDownload(certificateDetail.documentFile?.[0])">下载</div>
1330 </div>
1331 </span>
1332 </div>
1333 </div> 1283 </div>
1334 </ContentWrap> 1284 <div class="list_item">
1285 <span class="item_label">发证主体:</span>
1286 <span class="item_value"><ellipsis-tooltip :content="certificateDetail.issuingEntityName ?? '--'"
1287 class-name="w100f mr8-i" :refName="'tooltipOver' + 'issuingEntityName'"></ellipsis-tooltip></span>
1288 </div>
1289 <div class="list_item">
1290 <span class="item_label">证件类型:</span>
1291 <span class="item_value">{{ certificateDetail.documentType == 1 ? 'A证' : (certificateDetail.documentType ==
1292 2 ?
1293 'B证' :
1294 'C证') }}</span>
1295 </div>
1296 <div class="list_item">
1297 <span class="item_label">证件类别:</span>
1298 <span class="item_value">{{ certificateDetail.documentCategoryName ?? '--' }}</span>
1299 </div>
1300 <div class="list_item is_block" v-if="certificateDetail.documentFile?.length"
1301 :style="{ 'max-width': '700px' }">
1302 <span class="item_label">证件:</span>
1303 <span class="item_value">
1304 <div class="file-operate">
1305 <template
1306 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'">
1307 <img class="file-img" src="../../assets/images/excel.png" />
1308 </template>
1309 <template
1310 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'">
1311 <img class="file-img" src="../../assets/images/word.png" />
1312 </template>
1313 <template
1314 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'zip'">
1315 <img class="file-img" src="../../assets/images/zip.png" />
1316 </template>
1317 <template
1318 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'rar'">
1319 <img class="file-img" src="../../assets/images/RAR.png" />
1320 </template>
1321 <template
1322 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'pdf'">
1323 <img class="file-img" src="../../assets/images/PDF.png" />
1324 </template>
1325 <template
1326 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'png'">
1327 <img class="file-img" src="../../assets/images/png.png" />
1328 </template>
1329 <template
1330 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'">
1331 <img class="file-img" src="../../assets/images/jpg.png" />
1332 </template>
1333 <div class="file-name"><ellipsis-tooltip :content="certificateDetail.documentFile[0].name ?? ''"
1334 class-name="w100f" refName="tooltipOver"></ellipsis-tooltip></div>
1335 <div :style="{ right: '36px' }" class="file-preview"
1336 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'"
1337 @click="onUploadFilePreview(certificateDetail.documentFile?.[0])">查看</div>
1338 <div :style="{ right: '0px' }" class="file-preview"
1339 @click="onUploadFileDownload(certificateDetail.documentFile?.[0])">下载</div>
1340 </div>
1341 </span>
1342 </div>
1343 </div>
1344 </ContentWrap>
1335 1345
1336 <ContentWrap 1346 <ContentWrap
1337 v-if="(route.query.type == 'qualityEvaluate' && evaDetailInfo.approveVO && evaDetailInfo.isApprove != 'N') || (route.query.type == 'costAssess' && costAssessDetail.approveVO && costAssessDetail.isApprove != 'N')" 1347 v-if="(route.query.type == 'qualityEvaluate' && evaDetailInfo.approveVO && evaDetailInfo.isApprove != 'N') || (route.query.type == 'costAssess' && costAssessDetail.approveVO && costAssessDetail.isApprove != 'N')"
...@@ -1341,23 +1351,28 @@ const clickContractDetail = (item) => { ...@@ -1341,23 +1351,28 @@ const clickContractDetail = (item) => {
1341 </ApprovalProcess> 1351 </ApprovalProcess>
1342 </ContentWrap> 1352 </ContentWrap>
1343 1353
1344 <ContentWrap v-if="route.query.type == 'asset' && deliveryDetailInfo.length" id="id-deliverFile" title="交付物" description="" 1354 <ContentWrap v-if="route.query.type == 'asset' && deliveryDetailInfo.length" id="id-deliverFile" title="交付物"
1345 style="margin: 16px 16px 16px"> 1355 description="" style="margin: 16px 16px 16px">
1346 <el-table ref="deliveryTableRef" :data="deliveryDetailInfo" :highlight-current-row="true" stripe border 1356 <el-table ref="deliveryTableRef" :data="deliveryDetailInfo" :highlight-current-row="true" stripe border
1347 height="100%" :span-method="deliverySpanMethod" tooltip-effect="light" row-key="guid" :style="{ 1357 height="100%" :span-method="deliverySpanMethod" tooltip-effect="light" row-key="guid" :style="{
1348 width: '100%', 1358 width: '100%',
1349 display: 'inline-block', 1359 display: 'inline-block',
1350 }"> 1360 }">
1351 <el-table-column label="序号" type="index" width="56px" align="center" > 1361 <el-table-column label="序号" type="index" width="56px" align="center">
1352 </el-table-column> 1362 </el-table-column>
1353 <el-table-column prop="dataDeliveryName" label="数据交付物" width="240px" align="left" > 1363 <el-table-column prop="dataDeliveryName" label="数据交付物" width="240px" align="left">
1364 <template #default="scope">
1365 <a underline="hover" style="cursor: pointer;" @click="viewDeliveryFile(scope.row.dataDeliveryFile)">{{
1366 scope.row.dataDeliveryName }}</a>
1367 </template>
1354 </el-table-column> 1368 </el-table-column>
1355 <el-table-column prop="dataReceiveName" label="数据接收方" width="240px" align="left"> 1369 <el-table-column prop="dataReceiveName" label="数据接收方" width="240px" align="left">
1356 </el-table-column> 1370 </el-table-column>
1357 <el-table-column prop="contract" label="合同" min-width="200px" align="left"> 1371 <el-table-column prop="contract" label="合同" min-width="200px" align="left">
1358 <template #default="scope"> 1372 <template #default="scope">
1359 <a v-for="item in scope.row.contractInfo" underline="hover" style="margin-right: 12px;cursor: pointer;" @click="clickContractDetail(item)">{{ 1373 <a v-for="item in scope.row.contractInfo" underline="hover" style="margin-right: 12px;cursor: pointer;"
1360 item.dataContractName }}</a> 1374 @click="clickContractDetail(item)">{{
1375 item.dataContractName }}</a>
1361 </template> 1376 </template>
1362 </el-table-column> 1377 </el-table-column>
1363 <el-table-column prop="uploadTime" label="上传时间" width="180px" align="left"> 1378 <el-table-column prop="uploadTime" label="上传时间" width="180px" align="left">
...@@ -1369,7 +1384,7 @@ const clickContractDetail = (item) => { ...@@ -1369,7 +1384,7 @@ const clickContractDetail = (item) => {
1369 v-if="toolBtns.length && (route.query.type == 'qualityEvaluate' || route.query.type == 'costAssess' || route.query.type == 'asset')"> 1384 v-if="toolBtns.length && (route.query.type == 'qualityEvaluate' || route.query.type == 'costAssess' || route.query.type == 'asset')">
1370 <div class="btns"> 1385 <div class="btns">
1371 <el-button v-for="btn in toolBtns" :type="btn.type" :plain="btn.plain" @click="btnClick(btn)">{{ btn.label 1386 <el-button v-for="btn in toolBtns" :type="btn.type" :plain="btn.plain" @click="btnClick(btn)">{{ btn.label
1372 }}</el-button> 1387 }}</el-button>
1373 </div> 1388 </div>
1374 </div> 1389 </div>
1375 <Dialog :dialogInfo="passDialogInfo" @btnClick="passDialogBtnClick" @inputChange=passDialogInputChange /> 1390 <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!