Browse Source

Merge remote-tracking branch 'origin/master'

zhoupeng 1 year ago
parent
commit
3cbed96a55

+ 133 - 114
chuanyi_client2/src/components/HeaderMain/index.vue

@@ -476,55 +476,61 @@
     >
       <el-form label-width="100px">
         <el-row>
-          <el-col :span="6">
-            <el-form-item
-              label="数据源:"
-              style="margin-bottom: 20px; width: 300px"
-            >
-              <el-select v-model="groupBasicForm.dataSourceId" disabled>
-                <el-option
-                  v-for="dict in dataSourceList"
-                  :key="dict.id"
-                  :label="dict.dataSourceName"
-                  :value="dict.id"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item
-              v-if="itemDataStep == 2"
-              label="数据项:"
-              style="margin-bottom: 0px; width: 300px"
-            >
-              <el-input
-                placeholder="请输入数据项名称进行过滤"
-                style=""
-                @input="chooseItemChangeEvent"
-                v-model="filterChooseItemText"
-              ></el-input>
-            </el-form-item>
-          </el-col >
+          <el-col :span="isScreen ? 6 : 12">
+            <el-row>
+              <el-col :span="12">
+                <el-form-item
+                  label="数据源:"
+                  style="margin-bottom: 20px; width: 300px"
+                >
+                  <el-select v-model="groupBasicForm.dataSourceId" disabled>
+                    <el-option
+                      v-for="dict in dataSourceList"
+                      :key="dict.id"
+                      :label="dict.dataSourceName"
+                      :value="dict.id"
+                    ></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item
+                  v-if="itemDataStep == 2"
+                  label="数据项:"
+                  style="margin-bottom: 0px; width: 300px"
+                >
+                  <el-input
+                    placeholder="请输入数据项名称进行过滤"
+                    style=""
+                    @input="chooseItemChangeEvent"
+                    v-model="filterChooseItemText"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-col>
           <template v-if="isScreen">
             <el-select
-                    v-model="queryParams.needItemStr"
-                    multiple
-                    collapse-tags
-                    placeholder="请选择"
+              v-model="queryParams.needItemStr"
+              multiple
+              collapse-tags
+              placeholder="请选择"
             >
-                <el-option
-                        v-for="item in DriverItemData"
-                        :key="item.id"
-                        :label="item.itemName"
-                        :value="item.itemName"
-                >
-                </el-option>
+              <el-option
+                v-for="item in DriverItemData"
+                :key="item.id"
+                :label="item.itemName"
+                :value="item.itemName"
+              >
+              </el-option>
             </el-select>
             <el-button
-                    type="primary"
-                    size="mini"
-                    style="margin-left: 15px;"
-                    
-                    @click="query"
-            >复合筛选</el-button>
+              type="primary"
+              size="mini"
+              style="margin-left: 15px"
+              @click="query"
+              >复合筛选</el-button
+            >
           </template>
         </el-row>
       </el-form>
@@ -552,7 +558,7 @@
                     : 'height: 100%; overflow: auto;'
                 "
               >
-                  <!--                  :show-checkbox="hasLeavesFlag == 1 ? false : true"-->
+                <!--                  :show-checkbox="hasLeavesFlag == 1 ? false : true"-->
                 <el-tree
                   class="cy-item-tree"
                   ref="itemTree"
@@ -1035,7 +1041,7 @@ export default {
         needItemStr: [],
       },
       chooiseItemData: [],
-      isScreen:true
+      isScreen: true,
     };
   },
   props: ["refreshReportTemplateData"],
@@ -1107,68 +1113,81 @@ export default {
   methods: {
     query() {
       this.queryParams.nextItemStr = this.filterItemData;
-        // if (this.filterItemData) {
-        //     this.queryParams.needItemStr = JSON.stringify(
-        //         this.queryParams.needItemStr
-        //     );
-        // }
-        let params = this.queryParams;
-        params.needItemStr = JSON.stringify(this.queryParams.needItemStr.length > 0 ? this.queryParams.needItemStr : [])
-        const treeArr = this.$refs.itemTree.getCheckedNodes();
-        const treeQ = document.getElementsByClassName('el-tree cy-item-tree el-tree--highlight-current')[0]
-            .getElementsByClassName('el-tree-node__content');
-        let seTreeArr = []
-        if (treeArr.length > 0) {
-            for (let i = 0; i < treeQ.length; i++) {
-                if (treeQ[i].parentElement.classList.contains('is-current')) {
-                    // 选择的层级
-                    let treechild = treeQ[i].nextElementSibling.getElementsByClassName('el-tree-node__content');
-                    for (let j = 0; j < treechild.length; j++) {
-                        if (treechild[j].parentElement.classList.contains('is-checked')) {
-                            seTreeArr.push(treechild[j].textContent)
-                        }
-                    }
-                    break;
-                }
+      // if (this.filterItemData) {
+      //     this.queryParams.needItemStr = JSON.stringify(
+      //         this.queryParams.needItemStr
+      //     );
+      // }
+      let params = this.queryParams;
+      params.needItemStr = JSON.stringify(
+        this.queryParams.needItemStr.length > 0
+          ? this.queryParams.needItemStr
+          : []
+      );
+      const treeArr = this.$refs.itemTree.getCheckedNodes();
+      const treeQ = document
+        .getElementsByClassName(
+          "el-tree cy-item-tree el-tree--highlight-current"
+        )[0]
+        .getElementsByClassName("el-tree-node__content");
+      let seTreeArr = [];
+      if (treeArr.length > 0) {
+        for (let i = 0; i < treeQ.length; i++) {
+          if (treeQ[i].parentElement.classList.contains("is-current")) {
+            // 选择的层级
+            let treechild = treeQ[i].nextElementSibling.getElementsByClassName(
+              "el-tree-node__content"
+            );
+            for (let j = 0; j < treechild.length; j++) {
+              if (treechild[j].parentElement.classList.contains("is-checked")) {
+                seTreeArr.push(treechild[j].textContent);
+              }
             }
+            break;
+          }
         }
-        params.nextItemStr = JSON.stringify(seTreeArr)
+      }
+      params.nextItemStr = JSON.stringify(seTreeArr);
       getCompositeScreen(params).then((res) => {
         console.log(this.chooseItemDataListByTree);
         if (res.code === 200) {
           // this.chooiseItemData = res.data;
           // this.chooseItemDataListByTree.push(...res.data);
-            let treeData = this.chooseItemDataListByTree ? this.chooseItemDataListByTree : [];
-            if (res.data && res.data.length > 0) {
-                let lodArr = [];
-                for (let j = 0; j < res.data.length; j++) {
-                    lodArr.push(res.data[j].label ? res.data[j].label : res.data[j].itemName);
-                }
-                console.log(lodArr)
-                let status = false;
-                let idArr = {}
-                for (let i = 0; i < treeData.length; i++) {
-                    if (lodArr.indexOf(treeData[i].label) !== -1) {
-                        idArr[lodArr.indexOf(treeData[i].label)] = '1'
-                    }
-                }
-                console.log(idArr)
-                for (let j = 0; j < res.data.length; j++) {
-                    if (!idArr[j]) {
-                        treeData.push(res.data[j])
-                    } else {
-                        status = true;
-                    }
-                }
-                console.log(treeData)
-                if (status) {
-                    this.$message({
-                        message: '请注意,选择的数据项中含有重复的项',
-                        type: 'warning'
-                    });
-                }
+          let treeData = this.chooseItemDataListByTree
+            ? this.chooseItemDataListByTree
+            : [];
+          if (res.data && res.data.length > 0) {
+            let lodArr = [];
+            for (let j = 0; j < res.data.length; j++) {
+              lodArr.push(
+                res.data[j].label ? res.data[j].label : res.data[j].itemName
+              );
             }
-          
+            console.log(lodArr);
+            let status = false;
+            let idArr = {};
+            for (let i = 0; i < treeData.length; i++) {
+              if (lodArr.indexOf(treeData[i].label) !== -1) {
+                idArr[lodArr.indexOf(treeData[i].label)] = "1";
+              }
+            }
+            console.log(idArr);
+            for (let j = 0; j < res.data.length; j++) {
+              if (!idArr[j]) {
+                treeData.push(res.data[j]);
+              } else {
+                status = true;
+              }
+            }
+            console.log(treeData);
+            if (status) {
+              this.$message({
+                message: "请注意,选择的数据项中含有重复的项",
+                type: "warning",
+              });
+            }
+          }
+
           // let chooseChannelNameList = [];
           // // 去重
           // let arr = JSON.parse(JSON.stringify(this.chooseItemDataListByTree));
@@ -1208,15 +1227,15 @@ export default {
             this.leavesChooseList = [];
             this.queryParams.needItemStr = [];
             this.$refs.itemTree.setCheckedKeys([]);
-              this.$refs.itemTree.setCheckedNodes([]);
+            this.$refs.itemTree.setCheckedNodes([]);
             // this.$refs.chooseItemTree.setCheckedNodes([])
             console.log(this.chooseItemDataListByTree);
           });
           if (!res.data || res.data.length === 0) {
-              this.$message({
-                  message: '没有筛选出符合条件的数据项,请重新筛选',
-                  type: 'warning'
-              });
+            this.$message({
+              message: "没有筛选出符合条件的数据项,请重新筛选",
+              type: "warning",
+            });
           }
         }
       });
@@ -2421,7 +2440,7 @@ export default {
       if (arr.length == 0) {
         arr = chooseChannelNameList;
       } else {
-          let status = false;
+        let status = false;
         for (let i in chooseChannelNameList) {
           let flag = false;
           for (let j in arr) {
@@ -2429,7 +2448,7 @@ export default {
             if (chooseChannelNameList[i].label == tName) {
               flag = true;
               if (!status) {
-                  status = true;
+                status = true;
               }
               break;
             }
@@ -2439,11 +2458,11 @@ export default {
           }
         }
         if (status) {
-            //
-            this.$message({
-                message: '请注意,选择的数据项中含有重复的项',
-                type: 'warning'
-            });
+          //
+          this.$message({
+            message: "请注意,选择的数据项中含有重复的项",
+            type: "warning",
+          });
         }
       }
       this.handleCheckAllChange(false);
@@ -2603,7 +2622,7 @@ export default {
             );
             // this.getEventReportList(this.chooseItemDataList)
           });
-          this.isScreen=false
+          this.isScreen = false;
         })
         .catch((e) => {
           loading.close();
@@ -2874,7 +2893,7 @@ export default {
       } else {
         this.dataItemDialogVisible = false;
       }
-      this.isScreen=true
+      this.isScreen = true;
     },
     /** 弹出层关闭事件 */
     dialogDataModelClose() {

+ 1 - 1
chuanyi_client2/src/utils/print.js

@@ -11,7 +11,7 @@ export function print(id) {
   };
 
   getExcelPrintConfig({ reportTableId: id }).then((res) => {
-    downloadLoadingInstance = Loading.service({
+    let downloadLoadingInstance = Loading.service({
       text: "打印中",
       spinner: "el-icon-loading",
       background: "rgba(0, 0, 0, 0.7)",

+ 5 - 1
chuanyi_client2/src/views/print_config/index.vue

@@ -207,6 +207,7 @@
         <el-form-item label="打印边距">
           <el-row>
             <el-col :span="12">
+              左
               <el-input
                 v-model="dataModelForm.marginLeft"
                 placeholder="请输入左边距"
@@ -218,6 +219,7 @@
             </el-input>
             </el-col>
             <el-col :span="12">
+              右
               <el-input
                 v-model="dataModelForm.marginRight"
                 placeholder="请输入右边距"
@@ -231,6 +233,7 @@
           </el-row>
           <el-row>
             <el-col :span="12">
+              上
               <el-input
                 v-model="dataModelForm.marginTop"
                 placeholder="请输入上边距"
@@ -242,6 +245,7 @@
             </el-input>
             </el-col>
             <el-col :span="12">
+              下
               <el-input
                 v-model="dataModelForm.marginBottom"
                 placeholder="请输入下边距"
@@ -621,7 +625,7 @@ export default {
             this.dataModelForm.pageRangeStart = null;
             this.dataModelForm.pageRangeEnd = null;
           }
-          if (this.dataModelForm.pageRange !== 4) {
+          if (this.dataModelForm.fitToPages !== 4) {
             this.dataModelForm.scale = null;
           }
           if(this.dataModelForm.pageRange===1){

+ 7 - 1
chuanyi_client2/src/views/report_template/index.vue

@@ -809,6 +809,8 @@ import {exportExcel} from "@/utils/export";
 import {insertLuckysheetEChart, cellValueFormat} from "@/utils/luckysheettool";
 import Print from "print-js";
 
+import {print} from '@/utils/print'
+
 export default {
   name: 'index',
   components: {
@@ -1017,7 +1019,8 @@ export default {
           data: false, // 数据验证
           cellFormat: false // 设置单元格格式
         },
-        plugins: ['chart']
+        plugins: ['chart'],
+        printId:null
       }
     }
   },
@@ -2504,6 +2507,7 @@ export default {
     /** 获取模板报表信息 */
     getTableTemplate(id, type) {
       let _this = this
+      this.printId=id
       if (!id || id == -999) {
         this.resetReport(true)
         return
@@ -2627,6 +2631,7 @@ export default {
                 honorColor: true, // 是否打印彩色文本
                 targetStyles: ['*'] // 允许打印所有样式属性
               }) // Print.js插件
+              // print(this.printId)
               if (document.querySelector('#print-area'))
                 document.querySelector('#print-area').style = "display:none";
               loading.close()
@@ -2660,6 +2665,7 @@ export default {
                 honorColor: true, // 是否打印彩色文本
                 targetStyles: ['*'] // 允许打印所有样式属性
               }) // Print.js插件
+              // print(this.printId)
               if (document.querySelector('#print-area'))
                 document.querySelector('#print-area').style = "display:none";
               loading.close()

+ 1 - 0
chuanyi_client2/src/views/run_config/index.vue

@@ -2224,6 +2224,7 @@ export default {
           loading.close();
           if (res.data) {
             this.printForm.id = res.data.id;
+            this.printForm.printConfigId = res.data.printConfigId;
             this.printForm.cronId = res.data.cronId;
             this.printForm.cron = res.data.cron;
             this.printForm.runState = res.data.runState;

+ 1 - 1
reado-app/components/ecahrts/bar-echarts.vue

@@ -203,6 +203,6 @@
 	/* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */
 	.charts-box {
 		width: 100%;
-		height: 600rpx;
+		height: 540rpx;
 	}
 </style>

+ 1 - 1
reado-app/components/ecahrts/pie-echarts.vue

@@ -140,6 +140,6 @@
 	/* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */
 	.charts-box {
 		width: 100%;
-		height: 600rpx;
+		height: 540rpx;
 	}
 </style>

+ 12 - 8
reado-app/pages/homePage/index.vue

@@ -1,5 +1,5 @@
 <template>
-	<view>
+	<view class="container">
 		<div class="moreTime">
 			<div v-for="(item,index) in range" :key="index" @click="change(index)" :class="choiceTime===index?'bod':''">
 				{{item}}
@@ -16,24 +16,25 @@
 		</div>
 
 		<template v-if="clear">
-			<view v-for="item in echartsData" :key="item.id" style="padding-right:20rpx">
-				<view v-if="item.chartType==='pie'">
+			<view v-for="(item,index) in echartsData" :key="item.id" style="padding-right:20rpx">
+				<view v-if="item.chartType==='line'" :style="{top:item.top}"
+					style="position:absolute;width:100%;height:640rpx;display: block;margin-bottom:30px">
 					<view class="title" v-if="echartsData.length">
 						{{item.chartName}}
 					</view>
-					<pieEcharts :echartsData="item" />
+					<web-view :src="item.src" style="width:100%;height:640rpx;"></web-view>
 				</view>
-				<view v-if="item.chartType==='bar'">
+				<view v-if="item.chartType==='pie'" style="margin-bottom:30px">
 					<view class="title" v-if="echartsData.length">
 						{{item.chartName}}
 					</view>
-					<barEcharts :echartsData="item" />
+					<pieEcharts :echartsData="item" />
 				</view>
-				<view v-if="item.chartType==='line'">
+				<view v-if="item.chartType==='bar'" style="margin-bottom:30px">
 					<view class="title" v-if="echartsData.length">
 						{{item.chartName}}
 					</view>
-					<web-view :src="item.src" style="top:14vh;width:100%;height:640rpx;"></web-view>
+					<barEcharts :echartsData="item" />
 				</view>
 			</view>
 		</template>
@@ -171,6 +172,7 @@
 								if (data.chartType === 'line') {
 									data.src =
 										`/static/webview/line-wv.html?id=${data.id}&startTime=${this.startTime}`
+									data.top = this.reportTableList.length * 31 + 'vh'
 								}
 								this.echartsData.push(data)
 							})
@@ -232,6 +234,8 @@
 </script>
 
 <style scoped>
+	.container {}
+
 	.title {
 		margin: 10rpx 0 10rpx 20rpx;
 		font-size: 28rpx;

+ 2 - 2
reado-app/pages/reportForm/data-item.vue

@@ -5,8 +5,8 @@
 				<text>筛选</text>
 		</view>
 		<view class="echarts">
-			<!-- <dataQuery v-if="service.length" :service="service" :serviceTime="serviceTime" /> -->
-			<web-view :src="src" style="top:5vh;width:100%;height:640rpx;"></web-view>
+			<dataQuery v-if="service.length" :service="service" :serviceTime="serviceTime" />
+			<!-- <web-view :src="src" style="top:5vh;width:100%;height:640rpx;"></web-view> -->
 			<view v-if="monthQuery" class="query-screen">
 				<view>
 					数据项选择