|
@@ -41,16 +41,19 @@
|
|
</el-aside>
|
|
</el-aside>
|
|
<el-container>
|
|
<el-container>
|
|
<el-header v-if="!hiddenHeader">
|
|
<el-header v-if="!hiddenHeader">
|
|
- <span v-if="header" style="margin-left:20px">
|
|
|
|
- <span v-if="!report.taskName"> 报告名称:{{ report.reportName?report.reportName:report.name}}</span>
|
|
|
|
- <span v-else>
|
|
|
|
|
|
+ <div v-if="header" style="margin-left:20px;width:100%">
|
|
|
|
+ <div v-if="!report.taskName" style="display:flex;justify-content: space-between;">
|
|
|
|
+ <p>报告名称:{{ report.reportName?report.reportName:report.name}}</p>
|
|
|
|
+ <p class="menus" v-if="report.showMenu"><span v-if="[1,2].includes(report.status)&&[0,1,2,3].includes(report.type)"><el-link @click="handleFields">自定义字段</el-link></span><span v-if="[2,3].includes(report.status)"><el-link @click="exportReport">导出报告</el-link></span></p>
|
|
|
|
+ </div>
|
|
|
|
+ <p v-else>
|
|
<span > 报告名称:<el-link @click.native="checkReport(report)" style="font-size:16px;vertical-align: inherit;margin-right: 20px;">{{ report.reportName?report.reportName:report.name}}</el-link></span>
|
|
<span > 报告名称:<el-link @click.native="checkReport(report)" style="font-size:16px;vertical-align: inherit;margin-right: 20px;">{{ report.reportName?report.reportName:report.name}}</el-link></span>
|
|
<span > 任务名称:{{ report.taskName}}</span>
|
|
<span > 任务名称:{{ report.taskName}}</span>
|
|
- </span>
|
|
|
|
|
|
+ </p>
|
|
<!-- <span v-if="!report.taskName"> 报告名称:{{ report.reportName?report.reportName:report.name}}</span>
|
|
<!-- <span v-if="!report.taskName"> 报告名称:{{ report.reportName?report.reportName:report.name}}</span>
|
|
<span v-else> 报告名称:<el-link @click.native="checkReport(report)" style="font-size:16px;vertical-align: inherit;margin-right: 20px;">{{ report.reportName?report.reportName:report.name}}</el-link></span>
|
|
<span v-else> 报告名称:<el-link @click.native="checkReport(report)" style="font-size:16px;vertical-align: inherit;margin-right: 20px;">{{ report.reportName?report.reportName:report.name}}</el-link></span>
|
|
<span v-if="report.taskName"> 任务名称:{{ report.taskName}}</span> -->
|
|
<span v-if="report.taskName"> 任务名称:{{ report.taskName}}</span> -->
|
|
- </span>
|
|
|
|
|
|
+ </div>
|
|
</el-header>
|
|
</el-header>
|
|
<el-main class="admin-main-box">
|
|
<el-main class="admin-main-box">
|
|
<router-view style=""></router-view>
|
|
<router-view style=""></router-view>
|
|
@@ -62,6 +65,22 @@
|
|
</el-container>
|
|
</el-container>
|
|
</el-container>
|
|
</el-container>
|
|
</section>
|
|
</section>
|
|
|
|
+ <el-dialog width="1000px" title="选择模板" :visible.sync="reportTemplate" :before-close="close1" >
|
|
|
|
+ <div v-loading="loadingTemplate"
|
|
|
|
+ element-loading-text="报告导出中"
|
|
|
|
+ element-loading-spinner="el-icon-loading"
|
|
|
|
+ >
|
|
|
|
+ <Report-Template :reportType="report.type" @getReportTemplateId="getReportTemplateId"></Report-Template>
|
|
|
|
+ <div slot="footer" class="dialog-footer" style="display: flex;justify-content: flex-end;">
|
|
|
|
+ <el-button @click="close1">取 消</el-button>
|
|
|
|
+ <el-button type="primary" @click="submitExport" :loading="btnLoading">确 定</el-button>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ </el-dialog>
|
|
|
|
+ <el-dialog width="1100px" title="自定义字段" :visible.sync="setVisible" :before-close="close">
|
|
|
|
+ <Project-Field :reportId="report.id"></Project-Field>
|
|
|
|
+ </el-dialog>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -70,14 +89,24 @@ import { mapGetters } from "vuex";
|
|
import UserBar from "./components/UserBar";
|
|
import UserBar from "./components/UserBar";
|
|
import { webSocket } from "./mixins";
|
|
import { webSocket } from "./mixins";
|
|
import Footer from "../components/footer/footer.vue";
|
|
import Footer from "../components/footer/footer.vue";
|
|
|
|
+import { downLoad2 } from "@/utils";
|
|
|
|
+import ReportTemplate from '@/views/report/components/ReportTemplate.vue';
|
|
|
|
+import ProjectField from '@/views/layout/components/field.vue';
|
|
export default {
|
|
export default {
|
|
components: {
|
|
components: {
|
|
Footer,
|
|
Footer,
|
|
UserBar,
|
|
UserBar,
|
|
|
|
+ ReportTemplate,
|
|
|
|
+ ProjectField
|
|
},
|
|
},
|
|
mixins: [webSocket],
|
|
mixins: [webSocket],
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ setVisible:false,
|
|
|
|
+ reportTemplate:false,
|
|
|
|
+ loadingTemplate:false,
|
|
|
|
+ reportTemplateId:null,
|
|
|
|
+ btnLoading:false,
|
|
header:false,
|
|
header:false,
|
|
hiddenHeader:false,
|
|
hiddenHeader:false,
|
|
report:{},
|
|
report:{},
|
|
@@ -124,6 +153,56 @@ export default {
|
|
// this.getSelect()
|
|
// this.getSelect()
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ //自定义字段
|
|
|
|
+ handleFields() {
|
|
|
|
+ this.setVisible = true
|
|
|
|
+ },
|
|
|
|
+ close(){
|
|
|
|
+ this.setVisible = false
|
|
|
|
+ },
|
|
|
|
+ //导出报告
|
|
|
|
+ exportReport(){
|
|
|
|
+ this.reportTemplate = true
|
|
|
|
+ },
|
|
|
|
+ getReportTemplateId(val){
|
|
|
|
+ this.reportTemplateId = val
|
|
|
|
+ },
|
|
|
|
+ submitExport(){
|
|
|
|
+ if (this.reportTemplateId) {
|
|
|
|
+ this.loadingTemplate=true
|
|
|
|
+ var a = {
|
|
|
|
+ reportId : this.report.id,
|
|
|
|
+ templeId :this.reportTemplateId
|
|
|
|
+ }
|
|
|
|
+ this.$api.exportReport(a).then(response => {
|
|
|
|
+ if (response.code == 200) {
|
|
|
|
+ this.$message.success('导出成功')
|
|
|
|
+ downLoad2(response.data)
|
|
|
|
+ this.reportTemplateId = ''
|
|
|
|
+ this.reportTemplate = false
|
|
|
|
+ this.loadingTemplate=false
|
|
|
|
+ } else{
|
|
|
|
+ this.$message.error('导出失败,请重试')
|
|
|
|
+ this.loadingTemplate=false
|
|
|
|
+ }
|
|
|
|
+ }).catch(error => {
|
|
|
|
+ this.$message.error('导出失败,请重试')
|
|
|
|
+ this.loadingTemplate=false
|
|
|
|
+ })
|
|
|
|
+ }else{
|
|
|
|
+ this.$alert('请选择报告模板', '提示', {
|
|
|
|
+ confirmButtonText: '确定',
|
|
|
|
+ callback: action => {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ close1(){
|
|
|
|
+ this.reportTemplateId = null
|
|
|
|
+ this.reportTemplate = false
|
|
|
|
+ },
|
|
checkReport(row) {
|
|
checkReport(row) {
|
|
row.type = row.reportType
|
|
row.type = row.reportType
|
|
row.name = row.taskName
|
|
row.name = row.taskName
|
|
@@ -187,7 +266,17 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
|
|
+<style>
|
|
|
|
+ .menus span{
|
|
|
|
+ margin-right: 10px;
|
|
|
|
+ }
|
|
|
|
+ .menus el-link{
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ color: black;
|
|
|
|
+ }
|
|
|
|
+</style>
|
|
<style lang="scss">
|
|
<style lang="scss">
|
|
|
|
+
|
|
.tenant .el-input__inner{
|
|
.tenant .el-input__inner{
|
|
height: 32px;
|
|
height: 32px;
|
|
line-height: 32px;
|
|
line-height: 32px;
|