800b958c by lihua

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

1 parent 5a2932b6
...@@ -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
......
...@@ -127,6 +127,7 @@ const getDetailInfo = () => { ...@@ -127,6 +127,7 @@ const getDetailInfo = () => {
127 dataReceiveGuid: rece.dataReceiveGuid, 127 dataReceiveGuid: rece.dataReceiveGuid,
128 contractInfo: rece.contractInfo || [], 128 contractInfo: rece.contractInfo || [],
129 dataDeliveryName: d.dataDelivery[0].name, 129 dataDeliveryName: d.dataDelivery[0].name,
130 dataDeliveryFile: d.dataDelivery[0],
130 rowspan: index + 1, 131 rowspan: index + 1,
131 }); 132 });
132 }) 133 })
...@@ -951,12 +952,12 @@ const deliverySpanMethod = ({ ...@@ -951,12 +952,12 @@ const deliverySpanMethod = ({
951 columnIndex, 952 columnIndex,
952 }) => { 953 }) => {
953 if (columnIndex === 0 || columnIndex === 1 || columnIndex === 4) { 954 if (columnIndex === 0 || columnIndex === 1 || columnIndex === 4) {
954 let currentSpan = deliveryDetailInfo.value[rowIndex].rowspan; 955 let currentSpan = deliveryDetailInfo.value[rowIndex].rowspan;
955 let rowspan = deliveryDetailInfo.value[rowIndex + 1]?.rowspan 956 let rowspan = deliveryDetailInfo.value[rowIndex + 1]?.rowspan
956 if (rowspan && rowspan > 1) { 957 if (rowspan && rowspan > 1) {
957 return { rowspan: rowspan, colspan: 1 }; 958 return { rowspan: rowspan, colspan: 1 };
958 } else { 959 } else {
959 return { rowspan: currentSpan == 1 ? 1 : 0, colspan: currentSpan == 1 ? 1 : 0 } 960 return { rowspan: currentSpan == 1 ? 1 : 0, colspan: currentSpan == 1 ? 1 : 0 }
960 } 961 }
961 } else { 962 } else {
962 return { rowspan: 1, colspan: 1 } 963 return { rowspan: 1, colspan: 1 }
...@@ -970,11 +971,16 @@ const clickContractDetail = (item) => { ...@@ -970,11 +971,16 @@ const clickContractDetail = (item) => {
970 guid: item.dataContractGuid, 971 guid: item.dataContractGuid,
971 name: item.dataContractName, 972 name: item.dataContractName,
972 type: 'detail', 973 type: 'detail',
973 tenantGuid: userData.tenantGuid 974 tenantGuid: userData.tenantGuid,
975 damGuid: catalogGuid
974 } 976 }
975 }) 977 })
976 } 978 }
977 979
980 const viewDeliveryFile = (file) => {
981 onUploadFileDownload(file);
982 }
983
978 </script> 984 </script>
979 985
980 <template> 986 <template>
...@@ -1094,7 +1100,8 @@ const clickContractDetail = (item) => { ...@@ -1094,7 +1100,8 @@ const clickContractDetail = (item) => {
1094 <span>{{ scope.row["updateTime"] || '--' }}</span> 1100 <span>{{ scope.row["updateTime"] || '--' }}</span>
1095 </template> 1101 </template>
1096 </el-table-column> 1102 </el-table-column>
1097 <el-table-column label="操作" minWidth="120px" align="left" fixed="right" v-if="!detailInfo.zqName" show-overflow-tooltip> 1103 <el-table-column label="操作" minWidth="120px" align="left" fixed="right" v-if="!detailInfo.zqName"
1104 show-overflow-tooltip>
1098 <template #default="scope"> 1105 <template #default="scope">
1099 <span class="text_btn" @click="handleTableViewData(scope)">查看样例数据</span> 1106 <span class="text_btn" @click="handleTableViewData(scope)">查看样例数据</span>
1100 </template> 1107 </template>
...@@ -1192,7 +1199,7 @@ const clickContractDetail = (item) => { ...@@ -1192,7 +1199,7 @@ const clickContractDetail = (item) => {
1192 <div class="list_item" :style="{ width: '60%' }"> 1199 <div class="list_item" :style="{ width: '60%' }">
1193 <span class="item_label">评价对象范围:</span> 1200 <span class="item_label">评价对象范围:</span>
1194 <span class="item_value">{{ evaDetailInfo.evaluationRangeStart + '~' + evaDetailInfo.evaluationRangeEnd 1201 <span class="item_value">{{ evaDetailInfo.evaluationRangeStart + '~' + evaDetailInfo.evaluationRangeEnd
1195 }}</span> 1202 }}</span>
1196 </div> 1203 </div>
1197 <div class="list_item is_block"> 1204 <div class="list_item is_block">
1198 <span class="item_label">质量评价结果:</span> 1205 <span class="item_label">质量评价结果:</span>
...@@ -1245,78 +1252,82 @@ const clickContractDetail = (item) => { ...@@ -1245,78 +1252,82 @@ const clickContractDetail = (item) => {
1245 </div> 1252 </div>
1246 </ContentWrap> 1253 </ContentWrap>
1247 1254
1248 <ContentWrap id="id-certificate" title="证件信息" v-if="route.query.type == 'certificate'" style="margin: 16px 16px 16px" > 1255 <ContentWrap id="id-certificate" title="证件信息" v-if="route.query.type == 'certificate'"
1249 <div class="list_panel"> 1256 style="margin: 16px 16px 16px">
1250 <div class="list_item"> 1257 <div class="list_panel">
1251 <span class="item_label">证件编码:</span> 1258 <div class="list_item">
1252 <span class="item_value">{{ certificateDetail.daCode ?? '--' }}</span> 1259 <span class="item_label">证件编码:</span>
1253 </div> 1260 <span class="item_value">{{ certificateDetail.daCode ?? '--' }}</span>
1254 <div class="list_item"> 1261 </div>
1255 <span class="item_label">登记时间:</span> 1262 <div class="list_item">
1256 <span class="item_value">{{ certificateDetail.registerTime ?? '--' }}</span> 1263 <span class="item_label">登记时间:</span>
1257 </div> 1264 <span class="item_value">{{ certificateDetail.registerTime ?? '--' }}</span>
1258 <div class="list_item"> 1265 </div>
1259 <span class="item_label">有效期:</span> 1266 <div class="list_item">
1260 <span class="item_value">{{ certificateDetail.effectiveDate ?? '--' }}</span> 1267 <span class="item_label">有效期:</span>
1261 </div> 1268 <span class="item_value">{{ certificateDetail.effectiveDate ?? '--' }}</span>
1262 <div class="list_item">
1263 <span class="item_label">发证主体:</span>
1264 <span class="item_value"><ellipsis-tooltip :content="certificateDetail.issuingEntityName ?? '--'"
1265 class-name="w100f mr8-i" :refName="'tooltipOver' + 'issuingEntityName'"></ellipsis-tooltip></span>
1266 </div>
1267 <div class="list_item">
1268 <span class="item_label">证件类型:</span>
1269 <span class="item_value">{{ certificateDetail.documentType == 1 ? 'A证' : (certificateDetail.documentType == 2 ? 'B证' :
1270 'C证') }}</span>
1271 </div>
1272 <div class="list_item">
1273 <span class="item_label">证件类别:</span>
1274 <span class="item_value">{{ certificateDetail.documentCategoryName ?? '--' }}</span>
1275 </div>
1276 <div class="list_item is_block" v-if="certificateDetail.documentFile?.length" :style="{ 'max-width': '700px' }">
1277 <span class="item_label">证件:</span>
1278 <span class="item_value">
1279 <div class="file-operate">
1280 <template
1281 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'">
1282 <img class="file-img" src="../../assets/images/excel.png" />
1283 </template>
1284 <template
1285 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'">
1286 <img class="file-img" src="../../assets/images/word.png" />
1287 </template>
1288 <template
1289 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'zip'">
1290 <img class="file-img" src="../../assets/images/zip.png" />
1291 </template>
1292 <template
1293 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'rar'">
1294 <img class="file-img" src="../../assets/images/RAR.png" />
1295 </template>
1296 <template
1297 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'pdf'">
1298 <img class="file-img" src="../../assets/images/PDF.png" />
1299 </template>
1300 <template
1301 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'png'">
1302 <img class="file-img" src="../../assets/images/png.png" />
1303 </template>
1304 <template
1305 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'">
1306 <img class="file-img" src="../../assets/images/jpg.png" />
1307 </template>
1308 <div class="file-name"><ellipsis-tooltip :content="certificateDetail.documentFile[0].name ?? ''"
1309 class-name="w100f" refName="tooltipOver"></ellipsis-tooltip></div>
1310 <div :style="{ right: '36px' }" class="file-preview"
1311 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'"
1312 @click="onUploadFilePreview(certificateDetail.documentFile?.[0])">查看</div>
1313 <div :style="{ right: '0px' }" class="file-preview"
1314 @click="onUploadFileDownload(certificateDetail.documentFile?.[0])">下载</div>
1315 </div>
1316 </span>
1317 </div>
1318 </div> 1269 </div>
1319 </ContentWrap> 1270 <div class="list_item">
1271 <span class="item_label">发证主体:</span>
1272 <span class="item_value"><ellipsis-tooltip :content="certificateDetail.issuingEntityName ?? '--'"
1273 class-name="w100f mr8-i" :refName="'tooltipOver' + 'issuingEntityName'"></ellipsis-tooltip></span>
1274 </div>
1275 <div class="list_item">
1276 <span class="item_label">证件类型:</span>
1277 <span class="item_value">{{ certificateDetail.documentType == 1 ? 'A证' : (certificateDetail.documentType ==
1278 2 ?
1279 'B证' :
1280 'C证') }}</span>
1281 </div>
1282 <div class="list_item">
1283 <span class="item_label">证件类别:</span>
1284 <span class="item_value">{{ certificateDetail.documentCategoryName ?? '--' }}</span>
1285 </div>
1286 <div class="list_item is_block" v-if="certificateDetail.documentFile?.length"
1287 :style="{ 'max-width': '700px' }">
1288 <span class="item_label">证件:</span>
1289 <span class="item_value">
1290 <div class="file-operate">
1291 <template
1292 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'">
1293 <img class="file-img" src="../../assets/images/excel.png" />
1294 </template>
1295 <template
1296 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'">
1297 <img class="file-img" src="../../assets/images/word.png" />
1298 </template>
1299 <template
1300 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'zip'">
1301 <img class="file-img" src="../../assets/images/zip.png" />
1302 </template>
1303 <template
1304 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'rar'">
1305 <img class="file-img" src="../../assets/images/RAR.png" />
1306 </template>
1307 <template
1308 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'pdf'">
1309 <img class="file-img" src="../../assets/images/PDF.png" />
1310 </template>
1311 <template
1312 v-else-if="certificateDetail.documentFile?.[0]?.name.substring(certificateDetail.documentFile?.[0]?.name.lastIndexOf('.') + 1).toLowerCase() == 'png'">
1313 <img class="file-img" src="../../assets/images/png.png" />
1314 </template>
1315 <template
1316 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'">
1317 <img class="file-img" src="../../assets/images/jpg.png" />
1318 </template>
1319 <div class="file-name"><ellipsis-tooltip :content="certificateDetail.documentFile[0].name ?? ''"
1320 class-name="w100f" refName="tooltipOver"></ellipsis-tooltip></div>
1321 <div :style="{ right: '36px' }" class="file-preview"
1322 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'"
1323 @click="onUploadFilePreview(certificateDetail.documentFile?.[0])">查看</div>
1324 <div :style="{ right: '0px' }" class="file-preview"
1325 @click="onUploadFileDownload(certificateDetail.documentFile?.[0])">下载</div>
1326 </div>
1327 </span>
1328 </div>
1329 </div>
1330 </ContentWrap>
1320 1331
1321 <ContentWrap 1332 <ContentWrap
1322 v-if="(route.query.type == 'qualityEvaluate' && evaDetailInfo.approveVO && evaDetailInfo.isApprove != 'N') || (route.query.type == 'costAssess' && costAssessDetail.approveVO && costAssessDetail.isApprove != 'N')" 1333 v-if="(route.query.type == 'qualityEvaluate' && evaDetailInfo.approveVO && evaDetailInfo.isApprove != 'N') || (route.query.type == 'costAssess' && costAssessDetail.approveVO && costAssessDetail.isApprove != 'N')"
...@@ -1326,23 +1337,28 @@ const clickContractDetail = (item) => { ...@@ -1326,23 +1337,28 @@ const clickContractDetail = (item) => {
1326 </ApprovalProcess> 1337 </ApprovalProcess>
1327 </ContentWrap> 1338 </ContentWrap>
1328 1339
1329 <ContentWrap v-if="route.query.type == 'asset' && deliveryDetailInfo.length" id="id-deliverFile" title="交付物" description="" 1340 <ContentWrap v-if="route.query.type == 'asset' && deliveryDetailInfo.length" id="id-deliverFile" title="交付物"
1330 style="margin: 16px 16px 16px"> 1341 description="" style="margin: 16px 16px 16px">
1331 <el-table ref="deliveryTableRef" :data="deliveryDetailInfo" :highlight-current-row="true" stripe border 1342 <el-table ref="deliveryTableRef" :data="deliveryDetailInfo" :highlight-current-row="true" stripe border
1332 height="100%" :span-method="deliverySpanMethod" tooltip-effect="light" row-key="guid" :style="{ 1343 height="100%" :span-method="deliverySpanMethod" tooltip-effect="light" row-key="guid" :style="{
1333 width: '100%', 1344 width: '100%',
1334 display: 'inline-block', 1345 display: 'inline-block',
1335 }"> 1346 }">
1336 <el-table-column label="序号" type="index" width="56px" align="center" > 1347 <el-table-column label="序号" type="index" width="56px" align="center">
1337 </el-table-column> 1348 </el-table-column>
1338 <el-table-column prop="dataDeliveryName" label="数据交付物" width="240px" align="left" > 1349 <el-table-column prop="dataDeliveryName" label="数据交付物" width="240px" align="left">
1350 <template #default="scope">
1351 <a underline="hover" style="cursor: pointer;" @click="viewDeliveryFile(scope.row.dataDeliveryFile)">{{
1352 scope.row.dataDeliveryName }}</a>
1353 </template>
1339 </el-table-column> 1354 </el-table-column>
1340 <el-table-column prop="dataReceiveName" label="数据接收方" width="240px" align="left"> 1355 <el-table-column prop="dataReceiveName" label="数据接收方" width="240px" align="left">
1341 </el-table-column> 1356 </el-table-column>
1342 <el-table-column prop="contract" label="合同" min-width="200px" align="left"> 1357 <el-table-column prop="contract" label="合同" min-width="200px" align="left">
1343 <template #default="scope"> 1358 <template #default="scope">
1344 <a v-for="item in scope.row.contractInfo" underline="hover" style="margin-right: 12px;cursor: pointer;" @click="clickContractDetail(item)">{{ 1359 <a v-for="item in scope.row.contractInfo" underline="hover" style="margin-right: 12px;cursor: pointer;"
1345 item.dataContractName }}</a> 1360 @click="clickContractDetail(item)">{{
1361 item.dataContractName }}</a>
1346 </template> 1362 </template>
1347 </el-table-column> 1363 </el-table-column>
1348 <el-table-column prop="uploadTime" label="上传时间" width="180px" align="left"> 1364 <el-table-column prop="uploadTime" label="上传时间" width="180px" align="left">
...@@ -1354,7 +1370,7 @@ const clickContractDetail = (item) => { ...@@ -1354,7 +1370,7 @@ const clickContractDetail = (item) => {
1354 v-if="toolBtns.length && (route.query.type == 'qualityEvaluate' || route.query.type == 'costAssess' || route.query.type == 'asset')"> 1370 v-if="toolBtns.length && (route.query.type == 'qualityEvaluate' || route.query.type == 'costAssess' || route.query.type == 'asset')">
1355 <div class="btns"> 1371 <div class="btns">
1356 <el-button v-for="btn in toolBtns" :type="btn.type" :plain="btn.plain" @click="btnClick(btn)">{{ btn.label 1372 <el-button v-for="btn in toolBtns" :type="btn.type" :plain="btn.plain" @click="btnClick(btn)">{{ btn.label
1357 }}</el-button> 1373 }}</el-button>
1358 </div> 1374 </div>
1359 </div> 1375 </div>
1360 <Dialog :dialogInfo="passDialogInfo" @btnClick="passDialogBtnClick" @inputChange=passDialogInputChange /> 1376 <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!