浏览代码

报表加下载

lry 1 年之前
父节点
当前提交
b5bb6c32b5

+ 2 - 2
industry-admin/src/views/report/reportTable/downloadReportType.vue

@@ -1,6 +1,6 @@
 <template>
     <!-- 报表下载类型选择 -->
-    <el-dialog title="选择下载类型" width="500px" center v-dialog-drag v-if="visible" :before-close="dialogClose"
+    <el-dialog title="选择下载类型" width="500px" center v-if="visible" :before-close="dialogClose"
         :visible.sync="visible" :close-on-click-modal="false" :append-to-body="true">
         <div style="text-align: center">
             <el-radio v-model="downloadType" label="1">Excel</el-radio>
@@ -33,4 +33,4 @@ export default {
         }
     }
 }
-</script>
+</script>

+ 2 - 2
industry-admin/src/views/report/reportTable/index.vue

@@ -73,7 +73,7 @@ export default {
             tableHeaderTitle: [
                 {
                     propName: "reportTableName",
-                    labelName: "报表名称",
+                    labelName: "名称",
                     type: "html",
                     formatter: (row, column, cellValue, index) => {
                         let html = `<span style="color: #409eff; cursor: pointer"`
@@ -87,7 +87,7 @@ export default {
                 },
                 {
                     propName: "reportTableType",
-                    labelName: "报表类型",
+                    labelName: "类型",
                     type: "html",
                     formatter: (row, column, cellValue, index) => {
                         if (row.reportTableType == 0) {

+ 12 - 8
industry-admin/src/views/report/reportTable/reportDetail.vue

@@ -16,8 +16,8 @@
         <!-- 操作按钮 -->
         <el-row class="czBtns" type="flex" justify="end">
           <el-col :span="1.5">
-<!--            <el-button type="primary" icon="el-icon-download" size="small"-->
-<!--                       @click="downloadReport">下载</el-button>-->
+            <el-button type="primary" icon="el-icon-download" size="small"
+                       @click="downloadReport">下载</el-button>
           </el-col>
           <el-col :span="1.5" style="margin-left: 15px">
             <el-button type="primary" size="small" icon="el-icon-printer" @click="printReport">
@@ -104,14 +104,18 @@ export default
       },
       /** 下载报表事件 */
       downloadReportEvent(downloadType) {
-
+        this.$refs.downloadReportType.visible = false
+        this.sendMsg({
+          cmd: 'download',
+          data:{
+            dtype:downloadType
+          }
+        })
       },
       printReport(){
-        this.type="print"
-        this.sendToken();
-        // this.sendMsg({
-        //   cmd: 'print',
-        // })
+        this.sendMsg({
+          cmd: 'print',
+        })
       },
     },
     destroyed() {

+ 1 - 1
industry-admin/src/views/report/reportTablePolicy/index.vue

@@ -105,7 +105,7 @@ export default {
                     width: '100'
                 },
                 {
-                    propName: "userGroupDescribe",
+                    propName: "policyRemake",
                     labelName: "备注",
                     align: "left"
                 },

+ 2 - 2
industry-admin/src/views/report/reportTablePolicy/reportDataPolicy.vue

@@ -13,8 +13,8 @@
                                 <el-input v-model="reportDataPolicyForm.reportDataPolicyName" type="text"
                                     auto-complete="off" maxlength="20" placeholder="请输入策略名称"></el-input>
                             </el-form-item>
-                            <el-form-item label="备注" prop="policyDescribe">
-                                <el-input type="textarea" v-model="reportDataPolicyForm.policyDescribe"
+                            <el-form-item label="备注" prop="policyRemake">
+                                <el-input type="textarea" v-model="reportDataPolicyForm.policyRemake"
                                     placeholder="请输入备注" maxlength="100"></el-input>
                             </el-form-item>
                             <el-divider content-position="left">请选择数据组</el-divider>

+ 2 - 2
industry-admin/src/views/report/runConfig/index.vue

@@ -83,7 +83,7 @@ export default {
             tableHeaderTitle: [
                 {
                     propName: "reportTableName",
-                    labelName: "报表名称",
+                    labelName: "名称",
                     type: "html",
                     formatter: (row, column, cellValue, index) => {
                         let html = `<span style="color: #409eff; cursor: pointer"`
@@ -97,7 +97,7 @@ export default {
                 },
                 {
                     propName: "reportTableType",
-                    labelName: "报表类型",
+                    labelName: "类型",
                     type: "html",
                     formatter: (row, column, cellValue, index) => {
                         if (row.reportTableType == 0) {

+ 77 - 44
industry-system/industry-da/src/main/resources/static/reportSheet/js/report-history.js

@@ -56,7 +56,83 @@ window.onload = function() {
 		} else if (json.cmd == 'show') {
 			indexFn.initPage(json.data)
 		} else if(json.cmd=='print'){
-			console.log('print')
+			// console.log('print')
+			const range = luckysheet.getRange()
+			if (range.length > 1) {
+				layer.msg('请选择单个打印区域!', {icon: 2})
+				return
+			}
+			let printArea = ''
+			if (!(range[0].row[0] == range[0].row[1] && range[0].column[0] == range[0].column[1])) {
+				printArea = luckysheet.getTxtByRange(range)
+			}
+			if (printArea == 'B1:B2') {
+				printArea = ''
+			}
+			layui.printW.open({
+				printArea,
+				success: (data, index) => {
+					layer.close(index)
+					layui.excelUtil.xlsxToPdf({
+						data,
+						success: (json) => {
+							printJS({
+								printable: localStorage.getItem('url') + '/' + json.data,
+								type: 'pdf',
+								properties: [
+									'mediaSize',
+									'landscape',
+									'margin',
+									'header',
+									'footer',
+									'style'
+								],
+								header: '',
+								footer: '',
+								style: '', // 不打印页眉和页脚
+								honorColor: true, // 是否打印彩色文本
+								targetStyles: ['*']
+							});
+						}
+					})
+				}
+			})
+		} else if(json.cmd=='download'){
+			//console.log('down');
+			console.log(json.data.dtype);
+			const range = luckysheet.getRange()
+			if (range.length > 1) {
+				layer.msg('请选择单个打印区域!', {icon: 2})
+				return
+			}
+			let printArea = ''
+			if (!(range[0].row[0] == range[0].row[1] && range[0].column[0] == range[0].column[1])) {
+				printArea = luckysheet.getTxtByRange(range)
+			}
+			if (printArea == 'B1:B2') {
+				printArea = ''
+			}
+			let data = {
+				bottomMargin: "10",
+				leftMargin: "10",
+				orientation: "2",
+				paperSize: "9",
+				printArea: "",
+				printQuality: "1",
+				printScale: "1",
+				printType: "1",
+				rightMargin: "10",
+				scale: "",
+				topMargin: "10",
+				wordQuality: "600"
+			};
+			layui.excelUtil.xlsxToPdf({
+				data,
+				success: (json) => {
+					let fileName = localStorage.getItem('url') + '/' + json.data;
+					console.log(fileName);
+				}
+			})
 		}
 	})
 }
@@ -155,49 +231,6 @@ const indexFn = {
 									callback()
 									return
 								}
-								if(data.type=='print'){
-									const range = luckysheet.getRange()
-									if (range.length > 1) {
-										layer.msg('请选择单个打印区域!', {icon: 2})
-										return
-									}
-									let printArea = ''
-									if (!(range[0].row[0] == range[0].row[1] && range[0].column[0] == range[0].column[1])) {
-										printArea = luckysheet.getTxtByRange(range)
-									}
-									if (printArea == 'B1:B2') {
-										printArea = ''
-									}
-									layui.printW.open({
-										printArea,
-										success: (data, index) => {
-											layer.close(index)
-											layui.excelUtil.xlsxToPdf({
-												data,
-												success: (json) => {
-													printJS({
-														printable: localStorage.getItem('url') + '/' + json.data,
-														type: 'pdf',
-														properties: [
-															'mediaSize',
-															'landscape',
-															'margin',
-															'header',
-															'footer',
-															'style'
-														],
-														header: '',
-														footer: '',
-														style: '', // 不打印页眉和页脚
-														honorColor: true, // 是否打印彩色文本
-														targetStyles: ['*']
-													});
-												}
-											})
-										}
-									})
-								}
-
 							}
 						})
 					}

+ 1 - 1
industry-system/industry-da/src/main/resources/static/reportSheet/js/src/model/item-list-table.js

@@ -576,7 +576,7 @@ layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'it
 			//console.log(_this.data.dataSetting)
 			layer.open({
 				type: 1,
-				title: ['点位配置', 'text-align: center;padding-left: 81px;'],
+				title: ['数据域配置', 'text-align: center;padding-left: 81px;'],
 				area: ['70%', '85%'],
 				btn: ['确定', '取消'],
 				content: view.content(),

+ 6 - 6
industry-system/industry-da/src/main/resources/static/reportSheet/js/src/model/right-menu.js

@@ -280,7 +280,7 @@ layui.define(['layer', 'util', 'jquery', 'form', 'sheetTypew', 'chartRightw', 'i
 	}, {
 		clazz: 'img2',
 		img: 'img/svg/report_basedata.svg',
-		txt: '基础点位',
+		txt: '基础数据项',
 		noType: [2, 5],
 		event: 'basedata'
 	}, /* {
@@ -291,7 +291,7 @@ layui.define(['layer', 'util', 'jquery', 'form', 'sheetTypew', 'chartRightw', 'i
 	}, */ {
 		clazz: 'img2',
 		img: 'img/svg/report_data.svg',
-		txt: '点位',
+		txt: '数据域',
 		event: 'data'
 	}, {
 		clazz: 'img2',
@@ -410,19 +410,19 @@ layui.define(['layer', 'util', 'jquery', 'form', 'sheetTypew', 'chartRightw', 'i
 		openBasicData: function() {
 			layer.open({
 				type: 1,
-				title: ['选择基础点位', 'text-align: center;padding-left: 81px;'],
+				title: ['选择基础数据项', 'text-align: center;padding-left: 81px;'],
 				area: ['600px', '400px'],
 				btn: ['确定', '取消'],
 				content: `
 					<div class="layui-form layui-row layui-padding-3">
 						<select id="basic-item-select">
-							<option value="">请选择点位</option>
+							<option value="">请选择基础数据项</option>
 						</select>
 					</div>
 				`,
 				success: function() {
 					layui.api.getDictByKey('base_data_item').then(json => {
-						let html = '<option value="">请选择点位</option>'
+						let html = '<option value="">请选择基础数据项</option>'
 						for (let i = 0; i < json.data.length; i++) {
 							html += `<option value="${json.data[i].dictValue}">${json.data[i].dictKey}</option>`
 						}
@@ -433,7 +433,7 @@ layui.define(['layer', 'util', 'jquery', 'form', 'sheetTypew', 'chartRightw', 'i
 				yes: function(index) {
 					const val = $('#basic-item-select').val()
 					if (!val) {
-						layer.msg('请选择基础点位!', {icon: 2})
+						layer.msg('请选择基础数据项!', {icon: 2})
 						return
 					}
 					const rangeWithFlatten = luckysheet.getRangeWithFlatten()