ソースを参照

Merge branch 'master' of http://116.63.33.55/git/read_opc

Zt 1 年間 前
コミット
a364314523

+ 5 - 1
chuanyi_client2/src/components/HeaderMain/index.vue

@@ -1,6 +1,6 @@
 <template>
   <el-tabs v-if="roleCodeList.indexOf(__self.clientRole) > -1" class="cy-tabs" type="border-card"
-           :before-leave="tabsConfirmLeave">
+           :before-leave="tabsConfirmLeave" @tab-click="tabClickEvent">
     <el-tab-pane>
       <div slot="label" class="tab-div">
         <el-image :src="require('@/assets/images/report_model.png')" fit="contain"></el-image>
@@ -921,6 +921,10 @@ export default {
         goPage(this, '/groupItem')
       }
     },
+    /** Tab 切换事件 */
+    tabClickEvent(tab) {
+      this.$emit("changeTabType", tab)
+    },
     /** 判断是否组织 Tabs 的切换 */
     async tabsConfirmLeave() {
       let status = checkReportChangeStatus()

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

@@ -5,7 +5,7 @@ export default {
     'host': '192.168.1.99',
 
     'clientRole': 'ClientRole',
-    'invalidData': 'com#',
+    'invalidData': '',
 
     '100': '系统提示',
 

+ 6 - 6
chuanyi_client2/src/views/data_model/index.vue

@@ -140,15 +140,17 @@
         :append-to-body="true">
       <el-form ref="dataModelForm" :model="dataModelForm" :rules="dataModelRules" label-width="110px" label-position="top">
         <el-form-item label="名称" prop="remark">
-          <el-input v-model="dataModelForm.remark" placeholder="请输入名称" maxlength="20" show-word-limit></el-input>
+          <el-input v-model="dataModelForm.remark" placeholder="请输入名称" maxlength="20"></el-input>
         </el-form-item>
         <el-form-item label="替换规则" prop="operationRule">
           <span>当数据项值为</span>
           <el-input v-model="dataModelForm.operationRule" size="mini"
                     placeholder="请输入值" style="width: 110px; margin: 0 10px;"></el-input>
           <span>时,则替换成</span>
-          <el-input v-model="dataModelForm.replacingValue" size="mini"
-                    placeholder="请输入替换值" style="width: 110px; margin-left: 10px;"></el-input>
+<!--          <el-input v-model="dataModelForm.replacingValue" size="mini"-->
+<!--                    placeholder="请输入替换值" style="width: 110px; margin-left: 10px;"></el-input>-->
+          <el-input-number v-model="dataModelForm.replacingValue" size="mini" placeholder="请输入替换值"
+                           :min="0" :max="99" :controls="false" :precision="0" style="width: 110px; margin-left: 10px;"></el-input-number>
         </el-form-item>
         <el-form-item style="text-align: center;">
           <el-button type="primary" @click="saveDataModelEvent">确定</el-button>
@@ -263,9 +265,7 @@ export default {
     /** 四则运算表达式验证 */
     validateCalc(rule, value, callback) {
       if (this.dataModelForm.modelType == 1) {
-        if (value == '' || value == null
-            || this.dataModelForm.replacingValue == ''
-            || this.dataModelForm.replacingValue == null) {
+        if (value == '' || value == null) {
           callback(new Error('替换规则不能为空'))
         } else {
           callback()

+ 28 - 23
chuanyi_client2/src/views/home/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="cqcy-content">
+  <div v-if="hideMainViewFlag" class="cqcy-content">
     <el-button v-if="roleCodeList.indexOf(__self.clientRole) > -1"
                type="primary" icon="el-icon-circle-plus-outline"
                size="mini" @click="addIndexChartBtnEvent">添加图表
@@ -84,22 +84,22 @@
                     v-model="chartForm.valueTakingMode"
                     :label="item.value">{{ item.label }}</el-radio>
         </el-form-item>
-        <el-form-item label="取值时间:" prop="dateRange">
-          <el-date-picker
-              v-model="chartForm.dateRange"
-              type="datetimerange"
-              :clearable="false"
-              range-separator="至"
-              start-placeholder="开始时间"
-              end-placeholder="结束时间"
-              placeholder="选择取值时间范围"
-              :picker-options="{
-                      format: 'yyyy-MM-dd HH:mm:ss'
-                    }"
-              value-format="yyyy-MM-dd HH:mm:ss"
-              :default-time="['09:00:00', '18:00:00']">
-          </el-date-picker>
-        </el-form-item>
+<!--        <el-form-item label="取值时间:" prop="dateRange">-->
+<!--          <el-date-picker-->
+<!--              v-model="chartForm.dateRange"-->
+<!--              type="datetimerange"-->
+<!--              :clearable="false"-->
+<!--              range-separator="至"-->
+<!--              start-placeholder="开始时间"-->
+<!--              end-placeholder="结束时间"-->
+<!--              placeholder="选择取值时间范围"-->
+<!--              :picker-options="{-->
+<!--                      format: 'yyyy-MM-dd HH:mm:ss'-->
+<!--                    }"-->
+<!--              value-format="yyyy-MM-dd HH:mm:ss"-->
+<!--              :default-time="['09:00:00', '18:00:00']">-->
+<!--          </el-date-picker>-->
+<!--        </el-form-item>-->
         <el-divider content-position="left">取值周期设置</el-divider>
         <div class="cy-line">
           <el-form-item label="时间单位:" prop="bucketType">
@@ -139,6 +139,7 @@
     <!-- 选择用户组 -->
     <user-group ref="userGroup" @update-message="updateUserGroupEmit"></user-group>
   </div>
+  <div v-else></div>
 </template>
 
 <script>
@@ -158,6 +159,7 @@ export default {
     return {
       roleCodeList: [],
       dialogIndexChartVisible: false,
+      hideMainViewFlag: true,
       chartDataList: [],
       chartTotal: 0,
       chartPage: 1,
@@ -223,6 +225,9 @@ export default {
     this.getIndexAllChart()
   },
   methods: {
+    hideMainView(flag) {
+      this.hideMainViewFlag = flag
+    },
     sizeChartChangeEvent(val) {
       this.chartPage = 1
       this.chartLimit = val
@@ -274,10 +279,10 @@ export default {
         showAlertMsgWin(this, null, '图表名称不能为空!')
         return
       }
-      if (this.chartForm.dateRange.length == 0) {
-        showAlertMsgWin(this, null, '取值时间不能为空!')
-        return
-      }
+      // if (this.chartForm.dateRange.length == 0) {
+      //   showAlertMsgWin(this, null, '取值时间不能为空!')
+      //   return
+      // }
       if (this.chartForm.chartItemList.length == 0) {
         showAlertMsgWin(this, null, '数据项不能为空!')
         return
@@ -286,8 +291,8 @@ export default {
         showAlertMsgWin(this, null, '用户组不能为空!')
         return
       }
-      this.chartForm.startTime = this.chartForm.dateRange[0]
-      this.chartForm.endTime = this.chartForm.dateRange[1]
+      // this.chartForm.startTime = this.chartForm.dateRange[0]
+      // this.chartForm.endTime = this.chartForm.dateRange[1]
       saveIndexChart(this.chartForm).then(res => {
         this.dialogIndexChartVisible = false
         this.getIndexAllChart()

+ 7 - 2
chuanyi_client2/src/views/index.vue

@@ -11,14 +11,14 @@
                     split="vertical">
           <template slot="paneL">
             <header-main :refreshReportTemplateData="refreshReportTemplateDataFlag"
-                         :style="leftMenuStyle"></header-main>
+                         :style="leftMenuStyle" @changeTabType="changeTabType"></header-main>
             <div @click="expandEvent" style="position: absolute; top: 25px; right: 0; z-index: 2; cursor: pointer;">
               <i :class="expandIcon" style="color: #FFFFFF;"></i>
             </div>
           </template>
           <template slot="paneR">
             <header-personal></header-personal>
-            <router-view @refreshReportTemplateData="refreshReportTemplateData" :key="refreshKey"></router-view>
+            <router-view ref="childView" @refreshReportTemplateData="refreshReportTemplateData" :key="refreshKey"></router-view>
           </template>
         </split-pane>
         <template v-else>
@@ -109,9 +109,14 @@ export default {
       } else if (type == 4) {
         gotoPage(this, '/userGroup')
       } else {
+        this.changeTabType()
         gotoPage(this, '/index')
       }
     },
+    /** Tab 改变事件 */
+    changeTabType(tab) {
+      if (this.$refs.childView) this.$refs.childView.hideMainView(tab == null)
+    },
     refreshReportTemplateData(val) {
       this.refreshReportTemplateDataFlag = val
     }

+ 19 - 1
chuanyi_client2/src/views/my_report/index.vue

@@ -1250,9 +1250,25 @@ export default {
         }
       })
     },
+    /** 删除不合理数据值 */
+    updateLocalExcelContent() {
+      let option = luckysheet.getAllSheets()[0]
+      option.celldata.map(item => {
+        if (item.v.v) {
+          item.v.v = String(item.v.v).trim()
+          // 替换${xxx}内部数据
+          if (item.v.v.match(/\${([^}]+)}/g)) {
+            luckysheet.setCellValue(item.r, item.c, '')
+          }
+        }
+      })
+    },
     /** 绘制表格数据 */
     drawTableData(tableItemList, type) {
-      if (!tableItemList || tableItemList.length == 0) return
+      if (!tableItemList || tableItemList.length == 0) {
+        this.updateLocalExcelContent()
+        return
+      }
       // 事件驱动报表
       if (type == 2 || type == 4) {
         tableItemList.forEach((tableItem, i) => {
@@ -1279,6 +1295,7 @@ export default {
             })
           }
         })
+        this.updateLocalExcelContent()
         return
       }
       // 其余报表信息
@@ -1296,6 +1313,7 @@ export default {
           console.warn(e)
         }
       })
+      this.updateLocalExcelContent()
     },
     /** 向 Excel 插入图表 */
     insertEChartInfo(chart) {

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

@@ -610,7 +610,7 @@
               </el-radio-group>
             </div>
           </template>
-          <template v-if="!hasBelongDataFlag">
+          <template v-if="!hasBelongDataFlag && templateReportType != 0">
             <el-divider content-position="left">值显示数量</el-divider>
             <div class="cy-line custom-tree" style="display: flex; align-items: center;">
               <div style="width: 50%;display: none;">

+ 20 - 2
chuanyi_client2/src/views/run_config/index.vue

@@ -100,7 +100,7 @@
                            v-if="uid == scope.row.userId"
                            size="small"
                            icon="el-icon-printer"
-                           @click="setAutoPrint(scope.row)">打印
+                           @click="setAutoPrint(scope.row)">打印配置
                 </el-button>
                 <el-button type="text"
                            v-if="uid == scope.row.userId"
@@ -1384,9 +1384,25 @@ export default {
         }
       })
     },
+    /** 删除不合理数据值 */
+    updateLocalExcelContent() {
+      let option = luckysheet.getAllSheets()[0]
+      option.celldata.map(item => {
+        if (item.v.v) {
+          item.v.v = String(item.v.v).trim()
+          // 替换${xxx}内部数据
+          if (item.v.v.match(/\${([^}]+)}/g)) {
+            luckysheet.setCellValue(item.r, item.c, '')
+          }
+        }
+      })
+    },
     /** 绘制表格数据 */
     drawTableData(tableItemList, type) {
-      if (!tableItemList || tableItemList.length == 0) return
+      if (!tableItemList || tableItemList.length == 0) {
+        this.updateLocalExcelContent()
+        return
+      }
       // 事件驱动报表
       if (type == 2 || type == 4) {
         tableItemList.forEach((tableItem, i) => {
@@ -1413,6 +1429,7 @@ export default {
             })
           }
         })
+        this.updateLocalExcelContent()
         return
       }
       // 其余报表信息
@@ -1430,6 +1447,7 @@ export default {
           console.warn(e)
         }
       })
+      this.updateLocalExcelContent()
     },
     /** 向 Excel 插入图表 */
     insertEChartInfo(chart) {