|
@@ -34,10 +34,18 @@
|
|
|
<span>重置</span>
|
|
|
</div>
|
|
|
<el-divider></el-divider>
|
|
|
+ <div class="cy-chart-div" @click="templateEvent()">
|
|
|
+ <svg-icon icon-class="report_template" style="width: 35px;"/>
|
|
|
+ <span>模板库</span>
|
|
|
+ </div>
|
|
|
<div class="cy-chart-div" @click="dataEvent()">
|
|
|
<svg-icon icon-class="report_data" style="width: 35px;"/>
|
|
|
- <span>数据表</span>
|
|
|
+ <span>数据项</span>
|
|
|
</div>
|
|
|
+<!-- <div class="cy-chart-div" @click="dataEvent1()">-->
|
|
|
+<!-- <svg-icon icon-class="report_data" style="width: 35px;"/>-->
|
|
|
+<!-- <span>数据表</span>-->
|
|
|
+<!-- </div>-->
|
|
|
<div class="cy-chart-div" @click="barEvent('bar')">
|
|
|
<svg-icon icon-class="bar_chart"/>
|
|
|
<span>柱状图</span>
|
|
@@ -86,10 +94,10 @@
|
|
|
<el-radio v-model="barChartForm.showLegend" label="1">是</el-radio>
|
|
|
<el-radio v-model="barChartForm.showLegend" label="0">否</el-radio>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="图例:" prop="legendType" v-if="barChartForm.type != 'pie'">
|
|
|
- <el-radio v-model="barChartForm.legendType" label="1">数据项</el-radio>
|
|
|
- <el-radio v-model="barChartForm.legendType" label="0">值</el-radio>
|
|
|
- </el-form-item>
|
|
|
+<!-- <el-form-item label="图例:" prop="legendType" v-if="barChartForm.type != 'pie'">-->
|
|
|
+<!-- <el-radio v-model="barChartForm.legendType" label="1">数据项</el-radio>-->
|
|
|
+<!-- <el-radio v-model="barChartForm.legendType" label="0">值</el-radio>-->
|
|
|
+<!-- </el-form-item>-->
|
|
|
<el-form-item label="数据组:">
|
|
|
<el-select filterable
|
|
|
v-model="chooseDataGroup"
|
|
@@ -259,6 +267,31 @@
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
|
|
|
+ <!-- 公共模板报表类型选择 -->
|
|
|
+ <el-dialog
|
|
|
+ title="选择模板报表"
|
|
|
+ width="500px"
|
|
|
+ center
|
|
|
+ :before-close="dialogClose"
|
|
|
+ :visible.sync="dialogCommReportVisible"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ :append-to-body="true">
|
|
|
+ <div style="height: 220px; overflow: auto;">
|
|
|
+ <div v-for="item in commTemplateList"
|
|
|
+ style="float: left;width: 50%;display: flex;flex-direction: column;align-items: center;margin-top: 10px;">
|
|
|
+ <el-image :src="require('@/assets/images/muban.png')" fit="contain" style="height: 80px;"></el-image>
|
|
|
+ <el-radio v-model="commTemplate" :label="item"
|
|
|
+ style="margin-top: 5px;width: 100%;text-overflow: ellipsis;white-space: nowrap;overflow: hidden;text-align: center;">
|
|
|
+ {{ item.templateName }}
|
|
|
+ </el-radio>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div style="text-align: center; margin-top: 40px;">
|
|
|
+ <el-button type="primary" @click="commReportEvent">确定</el-button>
|
|
|
+ <el-button @click="dialogClose">取消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
</div>
|
|
|
<div v-else></div>
|
|
|
</template>
|
|
@@ -268,7 +301,7 @@ import RulerView from '@/components/RulerView'
|
|
|
import { insertEChart } from 'luckytool'
|
|
|
import {
|
|
|
getAllDataModel,
|
|
|
- getAllItemGroup,
|
|
|
+ getAllItemGroup, getAllTableTemplate,
|
|
|
getTableItemGroupById,
|
|
|
getTableTemplateById,
|
|
|
saveReportTemplate,
|
|
@@ -288,6 +321,7 @@ export default {
|
|
|
dialogDataVisible: false,
|
|
|
dialogDataItemVisible: false,
|
|
|
dialogDataModelVisible: false,
|
|
|
+ dialogCommReportVisible: false,
|
|
|
menuLeft: 0,
|
|
|
menuTop: 0,
|
|
|
visibleChartMenu: false,
|
|
@@ -329,6 +363,8 @@ export default {
|
|
|
{ key: 'calcDataValue', label: 'calcDataValue(数据计算值)', sort: 71 }
|
|
|
],
|
|
|
transferValue: [],
|
|
|
+ commTemplate: null,
|
|
|
+ commTemplateList: [],
|
|
|
templateName: '',
|
|
|
templateId: '',
|
|
|
reportTemplateItem: 'REPORT_TEMPLATE_ITEM',
|
|
@@ -369,15 +405,15 @@ export default {
|
|
|
copy: false, // 复制
|
|
|
copyAs: false, // 复制为
|
|
|
paste: false, // 粘贴
|
|
|
- insertRow: false, // 插入行
|
|
|
- insertColumn: false, // 插入列
|
|
|
- deleteRow: false, // 删除选中行
|
|
|
- deleteColumn: false, // 删除选中列
|
|
|
+ insertRow: true, // 插入行
|
|
|
+ insertColumn: true, // 插入列
|
|
|
+ deleteRow: true, // 删除选中行
|
|
|
+ deleteColumn: true, // 删除选中列
|
|
|
deleteCell: false, // 删除单元格
|
|
|
hideRow: false, // 隐藏选中行和显示选中行
|
|
|
hideColumn: false, // 隐藏选中列和显示选中列
|
|
|
- rowHeight: false, // 行高
|
|
|
- columnWidth: false, // 列宽
|
|
|
+ rowHeight: true, // 行高
|
|
|
+ columnWidth: true, // 列宽
|
|
|
clear: false, // 清除内容
|
|
|
matrix: false, // 矩阵操作选区
|
|
|
sort: false, // 排序选区
|
|
@@ -727,8 +763,44 @@ export default {
|
|
|
})
|
|
|
this.dialogDataModelVisible = false
|
|
|
},
|
|
|
+ /** 报表模板库 */
|
|
|
+ templateEvent() {
|
|
|
+ let params = {
|
|
|
+ 'page': 1,
|
|
|
+ 'limit': 1000,
|
|
|
+ 'userId': 'comm'
|
|
|
+ }
|
|
|
+ getAllTableTemplate(params).then(res => {
|
|
|
+ if (!res.data) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.dialogCommReportVisible = true
|
|
|
+ this.commTemplateList = res.data.tableTemplateList
|
|
|
+ }).catch((e) => {
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /** 选择模板报表 */
|
|
|
+ commReportEvent() {
|
|
|
+ if (!this.commTemplate) {
|
|
|
+ this.$message({
|
|
|
+ message: '请选择模板!',
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let locItem = this.commTemplate.templateData
|
|
|
+ luckysheet.destroy()
|
|
|
+ let option = JSON.parse(JSON.stringify(this.luckysheetOption))
|
|
|
+ option.data = JSON.parse(locItem).data
|
|
|
+ this.toolChart = JSON.parse(locItem).charts
|
|
|
+ luckysheet.create(option)
|
|
|
+ this.dialogClose()
|
|
|
+ },
|
|
|
/** 数据项 */
|
|
|
dataEvent() {
|
|
|
+ },
|
|
|
+ /** 数据表 */
|
|
|
+ dataEvent1() {
|
|
|
let rangeWithFlatten = luckysheet.getRangeWithFlatten()
|
|
|
if (!rangeWithFlatten || rangeWithFlatten.length != 1) {
|
|
|
this.$message({
|
|
@@ -1024,6 +1096,7 @@ export default {
|
|
|
},
|
|
|
/** 弹出层关闭事件 */
|
|
|
dialogClose(done) {
|
|
|
+ this.commTemplate = null
|
|
|
if (typeof(done) === 'function') {
|
|
|
done()
|
|
|
} else {
|
|
@@ -1031,6 +1104,7 @@ export default {
|
|
|
this.dialogDataVisible = false
|
|
|
this.dialogDataItemVisible = false
|
|
|
this.dialogDataModelVisible = false
|
|
|
+ this.dialogCommReportVisible = false
|
|
|
}
|
|
|
},
|
|
|
/** 弹出层关闭事件 */
|