Forráskód Böngészése

feat(report): add categorized report entries

Developer 1 órája
szülő
commit
4e0ad6cd7a

+ 20 - 25
pagesHome/components/report/generateList.vue

@@ -24,16 +24,18 @@
 						<image class="gbox-item-ask" :src="imgBase+'report_ask.png'" @click="testShow=true" v-if="item.state==1&&item.fileUrl"></image>
 					</view>
 					<view class="gbox-item-bottom adfacjb">
-						<view class="gbox-item-bottom-rightbox adfac" v-if="item.type==1">
-							<view class="gbox-item-bottom-right" @click="reviewPdf(item)" v-if="item.state==1">预览报告</view>
-							<view class="gbox-item-bottom-right" @click="reviewReport(item)" v-if="item.state==1&&item.fileUrl">查看报告</view>
-							<view class="gbox-item-bottom-right" @click="reSendReport(item)" v-if="item.state==-1">重新生成</view>
-						</view>
-						<view class="gbox-item-bottom-rightbox adfac" v-else-if="item.type==2">
-							<view class="gbox-item-bottom-right" @click="forwardReport(item)" v-if="item.state==1&&item.fileUrl">发送邮件</view>
-							<view class="gbox-item-bottom-right" @click="reviewPdf(item)" v-if="item.state==1">预览报告</view>
-							<view class="gbox-item-bottom-right" @click="reviewReport(item)" v-if="item.state==1&&item.fileUrl">查看报告</view>
-							<view class="gbox-item-bottom-right" @click="sendReport(item)" v-if="item.state!=-1">发送报告</view>
+						<view class="gbox-item-bottom-rightbox adfac" v-if="item.type==1">
+							<view class="gbox-item-bottom-right" @click="reviewArtifact(item, 'background')" v-if="item.state==1">背景报告</view>
+							<view class="gbox-item-bottom-right" @click="reviewArtifact(item, 'professional')" v-if="item.state==1">专业版</view>
+							<view class="gbox-item-bottom-right" @click="reviewArtifact(item, 'public')" v-if="item.state==1">公开版</view>
+							<view class="gbox-item-bottom-right" @click="reSendReport(item)" v-if="item.state==-1">重新生成</view>
+						</view>
+						<view class="gbox-item-bottom-rightbox adfac" v-else-if="item.type==2">
+							<view class="gbox-item-bottom-right" @click="reviewArtifact(item, 'background')" v-if="item.state==1">背景报告</view>
+							<view class="gbox-item-bottom-right" @click="reviewArtifact(item, 'professional')" v-if="item.state==1">专业版</view>
+							<view class="gbox-item-bottom-right" @click="reviewArtifact(item, 'public')" v-if="item.state==1">公开版</view>
+							<view class="gbox-item-bottom-right" @click="forwardReport(item)" v-if="item.state==1&&item.fileUrl">发送邮件</view>
+							<view class="gbox-item-bottom-right" @click="sendReport(item)" v-if="item.state!=-1">发送报告</view>
 							<view class="gbox-item-bottom-right" @click="reSendReport(item)" v-if="item.state==-1">重新生成</view>
 						</view>
 					</view>
@@ -60,8 +62,9 @@
 </template>
 
 <script>
-	import { getPlatformInfo } from '@/utils/platform.js'; 
-	import CusSelectTeamUser from '@/components/CusSelectTeamUser/index.vue'
+	import { getPlatformInfo } from '@/utils/platform.js'; 
+	import { reportArtifactUrl } from '@/utils/reportArtifactLinks.js'
+	import CusSelectTeamUser from '@/components/CusSelectTeamUser/index.vue'
 	export default {
 		props:{
 			list:{
@@ -190,23 +193,15 @@
 				this.$refs.selectTeamUser.selectNums = 0;
 				this.$refs.selectTeamUser.selectAll = false;
 			},
-			reviewPdf(item){
-				if(this.isDeerFlowReport(item)) return this.reviewReport(item)
-				let url = `/pagesHome/pdf?reportId=${item.reportId}`;
-				if(item.type==2) url = `/pagesHome/pdfZyb?reportId=${item.reportId}`
-				uni.navigateTo({ url })
-			},
-			isDeerFlowReport(item){
-				return !!(item.fileUrl && item.fileUrl.indexOf('/profile/deerflow/') !== -1)
-			},
-			reviewReport(item){
-				const { isPC, isMobile, platform } = getPlatformInfo();
+			reviewArtifact(item, kind){
+				const url = reportArtifactUrl(item, kind)
+				if(!url) return this.$showToast('该报告尚未生成,请稍后再试。')
+				const { isPC, isMobile, platform } = getPlatformInfo();
 				console.log(platform,'platform');//android
 				if (isPC) {
 					this.$showModal('请在手机端该微信小程序中查看报告')
 				} else if (isMobile||platform==='devtools') {
-					if(!item.fileUrl) return this.$showToast('报告pdf为空,请稍后再试。')
-					this.openReportDocument(item.fileUrl)
+					this.openReportDocument(url)
 					// uni.navigateTo({
 					// 	url:'/pages/webView?src='+item.fileUrl
 					// })

+ 17 - 0
tests/reportArtifactLinks.test.js

@@ -0,0 +1,17 @@
+const assert = require('assert')
+const { reportArtifactUrl, reportArtifactLinks } = require('../utils/reportArtifactLinks')
+
+assert.equal(reportArtifactUrl({ backgroundReportUrl: 'background.docx' }, 'background'), 'background.docx')
+assert.equal(reportArtifactUrl({ professionalReportUrl: 'professional.docx' }, 'professional'), 'professional.docx')
+assert.equal(reportArtifactUrl({ publicReportUrl: '', fileUrl: 'public.pdf' }, 'public'), 'public.pdf')
+assert.deepEqual(reportArtifactLinks({
+	backgroundReportUrl: 'background.docx',
+	professionalReportUrl: 'professional.docx',
+	publicReportUrl: 'public.pdf'
+}), {
+	background: 'background.docx',
+	professional: 'professional.docx',
+	public: 'public.pdf'
+})
+
+console.log('reportArtifactLinks tests passed')

+ 16 - 0
utils/reportArtifactLinks.js

@@ -0,0 +1,16 @@
+function reportArtifactUrl(item = {}, kind) {
+	if (kind === 'background') return item.backgroundReportUrl || ''
+	if (kind === 'professional') return item.professionalReportUrl || ''
+	if (kind === 'public') return item.publicReportUrl || item.fileUrl || ''
+	return ''
+}
+
+function reportArtifactLinks(item = {}) {
+	return {
+		background: reportArtifactUrl(item, 'background'),
+		professional: reportArtifactUrl(item, 'professional'),
+		public: reportArtifactUrl(item, 'public')
+	}
+}
+
+module.exports = { reportArtifactUrl, reportArtifactLinks }