Commit 95c2e332 by llj

feat:可配置pdf模板渲染

1 parent 754e97a1
...@@ -45,7 +45,7 @@ export default { ...@@ -45,7 +45,7 @@ export default {
return { return {
isMobile: +getQueryVariable('mobile') === 1, isMobile: +getQueryVariable('mobile') === 1,
isPrint: +getQueryVariable('print') === 1, isPrint: +getQueryVariable('print') === 1,
projectType: +getQueryVariable('projectType') || 6, projectType: +getQueryVariable('projectType') || 20,
// componentName: getQueryVariable('componentName') || 'XrkBi' // componentName: getQueryVariable('componentName') || 'XrkBi'
componentName: 'editScene' componentName: 'editScene'
}; };
......
<template> <template>
<div> <div>
<div class="title">张三—任务记录数据报表</div> <div class="title">{{ resData.fullName }}—任务记录数据报表</div>
<div class="block_box"> <div class="block_box">
<div class="bi_title"> <div class="bi_title">
<div class="bi_title_text"> <div class="bi_title_text">
...@@ -19,39 +19,37 @@ ...@@ -19,39 +19,37 @@
<div class="info"> <div class="info">
<div class="info-item"> <div class="info-item">
<span>项目执行人:</span> <span>项目执行人:</span>
<span>张三</span> <span>{{ resData.fullName }}</span>
</div> </div>
<div class="info-item"> <div class="info-item">
<span>项目名称:</span> <span>项目名称:</span>
<span>xxxx准入</span> <span>{{ resData.projectName }}</span>
</div> </div>
<div class="info-item"> <div class="info-item">
<span>电话:</span> <span>电话:</span>
<span>13222222222</span> <span>{{ resData.phone }}</span>
</div> </div>
<div class="info-item"> <div v-if="resData.gongyeNameIsShow == 1" class="info-item">
<span>发行单位</span> <span>项目方</span>
<span> <span>
杭州大江东产业集聚区设宝广告设计工作室杭州大江东产业集聚区设宝广告设计工作室杭州大江东产业集聚区设宝广告设计工作室杭州大江东产业集聚区设宝广告设计工作室 {{ resData.gongyeName }}
</span> </span>
</div> </div>
<div class="info-item"> <div class="info-item">
<span v-if="from === 'gongye'">工业:</span> <span>{{ resData.enterpriseTitle }}</span>
<span v-if="from === 'cso'">服务商:</span> <span>{{ resData.enterpriseName }}</span>
<span>XXXXX服务商</span>
</div> </div>
<div class="info-item"> <div class="info-item">
<span>任务提交时间:</span> <span>任务提交时间:</span>
<span>2021-03-31 21:21:21</span> <span>{{ dateFormat(resData.finishDt) }}</span>
</div> </div>
<div class="info-item"> <div class="info-item">
<span>任务编码:</span> <span>任务编码:</span>
<span>PZ_1620375371338</span> <span>{{ resData.taskCode }}</span>
</div> </div>
<div class="info-item"> <div v-if="resData.isAuditGongye > 0" class="info-item">
<span v-if="from === 'gongye'">工业审核人:</span> <span>服务商审核人:</span>
<span v-if="from === 'cso'">服务商审核人:</span> <span>{{ resData.csoAuditUser }}</span>
<span>xxxxxxx</span>
</div> </div>
</div> </div>
</div> </div>
...@@ -59,10 +57,15 @@ ...@@ -59,10 +57,15 @@
</template> </template>
<script> <script>
import dateFormat from '../../../../../tools/dateFormat';
export default { export default {
props: { props: {
from: { from: String,
type: String resData: Object
},
methods: {
dateFormat(e) {
return dateFormat(e);
} }
} }
}; };
......
<template> <template>
<div> <div>
<div class="block_box"> <div v-if="+projectType === 20" class="block_box">
<div class="bi_title"> <div class="bi_title">
<div class="bi_title_text"> <div class="bi_title_text">
<div class="bi_title_text_content"> <div class="bi_title_text_content">
...@@ -55,7 +55,10 @@ ...@@ -55,7 +55,10 @@
<div class="bi_title"> <div class="bi_title">
<div class="bi_title_text"> <div class="bi_title_text">
<div class="bi_title_text_content"> <div class="bi_title_text_content">
<div class="bi_title_text_index">03</div> <!-- 任务内容信息标题顺序 可配置是03 调研是02 -->
<div class="bi_title_text_index">
{{ { 19: '02', 20: '03' }[+projectType] }}
</div>
任务内容信息 任务内容信息
</div> </div>
<img <img
...@@ -67,7 +70,7 @@ ...@@ -67,7 +70,7 @@
</div> </div>
</div> </div>
<div v-for="(item, index) in resData.contentTitleList" :key="item.id"> <div v-for="(item, index) in resData.contentTitleList" :key="item.id">
<!-- 单选题/投票题/多选 --> <!-- 单选题/多选/投票题 -->
<div v-if="[1, 2, 3].includes(item.type)" class="question-item"> <div v-if="[1, 2, 3].includes(item.type)" class="question-item">
<div class="question-item-title"> <div class="question-item-title">
<span>{{ `${index + 1}.${item.title}` }}</span> <span>{{ `${index + 1}.${item.title}` }}</span>
...@@ -92,7 +95,7 @@ ...@@ -92,7 +95,7 @@
<!-- 单填空/多填空/数字填空/打分/时间/月度/描述 --> <!-- 单填空/多填空/数字填空/打分/时间/月度/描述 -->
<div <div
v-else-if="[4, 5, 19, 6, 14, 15, 18].includes(item.type)" v-else-if="[4, 5, 6, 7, 19, 14, 15, 17, 18].includes(item.type)"
class="question-item" class="question-item"
> >
<div class="question-item-title"> <div class="question-item-title">
...@@ -112,17 +115,17 @@ ...@@ -112,17 +115,17 @@
备注:{{ item.remark }} 备注:{{ item.remark }}
</div> </div>
</div> </div>
<!-- 图片题/签名题 --> <!-- 图片题/签名题/定位题 -->
<div v-else-if="[20, 13].includes(item.type)" class="question-item"> <div v-else-if="[20, 13, 16].includes(item.type)" class="question-item">
<div class="question-item-title"> <div class="question-item-title">
<span>{{ `${index + 1}.${item.title}` }}</span> <span>{{ `${index + 1}.${item.title}` }}</span>
<span>{{ titleMap(item.type) }}</span> <span>{{ titleMap(item.type) }}</span>
</div> </div>
<img <img
v-if="item.type === 20" v-if="item.type === 20 || item.type === 16"
style="margin-top: 10px" style="margin-top: 10px"
width="180" width="180"
:src="item.answer" :src="item.type === 20 ? item.answer : item.addressPicUrl"
alt="img" alt="img"
/> />
<img <img
...@@ -140,7 +143,7 @@ ...@@ -140,7 +143,7 @@
</div> </div>
<!-- 文件题 --> <!-- 文件题 -->
<div <div
v-else-if="[9, 10, 11, 12].includes(item.type)" v-else-if="[8, 9, 10, 11, 12].includes(item.type)"
class="question-item" class="question-item"
> >
<div class="question-item-title"> <div class="question-item-title">
...@@ -173,20 +176,26 @@ const qustionMap = { ...@@ -173,20 +176,26 @@ const qustionMap = {
4: '【单项填空题】', 4: '【单项填空题】',
5: '【多项填空题】', 5: '【多项填空题】',
6: '【打分题】', 6: '【打分题】',
19: '【数字填空题】', 7: '【地址题】',
20: '【图片题】', 8: '【上传附件】',
9: '【上传pdf】', 9: '【上传pdf】',
10: '【上传word】', 10: '【上传word】',
12: '【上传ppt】',
11: '【上传excel】', 11: '【上传excel】',
12: '【上传ppt】',
13: '【图片题】', 13: '【图片题】',
14: '【时间题】', 14: '【时间题】',
15: '【月度题】', 15: '【月度题】',
18: '【描述题】' 16: '【定位题】',
17: '【描述题】',
18: '【描述题】',
19: '【数字填空题】',
20: '【图片题】',
22: '【姓名填空题】'
}; };
export default { export default {
props: { props: {
resData: Object resData: Object,
projectType: [String, Number]
}, },
data() { data() {
return {}; return {};
...@@ -198,9 +207,6 @@ export default { ...@@ -198,9 +207,6 @@ export default {
titleMap(type) { titleMap(type) {
return qustionMap[type]; return qustionMap[type];
} }
},
created() {
console.log(this.resData, 'questionList');
} }
}; };
</script> </script>
......
<template> <template>
<div class="template-container"> <div class="template-container">
<Header :from="from"></Header> <Header :from="from" :resData="resData"></Header>
<Main :resData="resData"></Main> <Main :resData="resData" :projectType="projectType"></Main>
<Footer></Footer> <Footer></Footer>
</div> </div>
</template> </template>
...@@ -16,14 +16,13 @@ export default { ...@@ -16,14 +16,13 @@ export default {
props: { props: {
from: { from: {
type: String, type: String,
default: 'cso' default: 'gongye'
}, },
projectType: { projectType: {
type: String || Number, type: [Number, String]
default: '20'
}, },
taskId: { taskId: {
type: String || Number, type: [String, Number],
default: '1209161' default: '1209161'
} }
}, },
...@@ -39,7 +38,7 @@ export default { ...@@ -39,7 +38,7 @@ export default {
}, },
created() { created() {
makeSceneTaskInfo({ taskId: this.taskId }).then(res => { makeSceneTaskInfo({ taskId: this.taskId }).then(res => {
this.resData = res.data[0]; this.resData = res.data;
}); });
} }
}; };
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!