ソースを参照

数据集预览

rsbi 4 年 前
コミット
5ce033a5a3

+ 9 - 1
src/view/model/DsetAdd.vue

@@ -199,6 +199,9 @@
             </el-table-column>
             </el-table-column>
           </el-table>
           </el-table>
         </el-tab-pane>
         </el-tab-pane>
+        <el-tab-pane label="数据预览" name="dview">
+          <dsetView ref="dsetViewForm"></dsetView>
+        </el-tab-pane>
       </el-tabs>
       </el-tabs>
     </el-form>
     </el-form>
 </template>
 </template>
@@ -206,6 +209,7 @@
 <script>
 <script>
 import { baseUrl, ajax, newGuid } from "@/common/biConfig";
 import { baseUrl, ajax, newGuid } from "@/common/biConfig";
 import dsetTableJoin from "@/view/model/DsetTableJoin";
 import dsetTableJoin from "@/view/model/DsetTableJoin";
+import dsetView from "@/view/model/DsetView";
 import { Loading } from "element-ui";
 import { Loading } from "element-ui";
 import $ from "jquery";
 import $ from "jquery";
 
 
@@ -235,7 +239,7 @@ export default {
     };
     };
   },
   },
   components: {
   components: {
-    dsetTableJoin,
+    dsetTableJoin,dsetView
   },
   },
   mounted() {
   mounted() {
     this.loadDsource();
     this.loadDsource();
@@ -395,6 +399,8 @@ export default {
         ds.joininfo.forEach((v) => {
         ds.joininfo.forEach((v) => {
           ts.selectTables.push({ id: v.ref, name: v.ref });
           ts.selectTables.push({ id: v.ref, name: v.ref });
         });
         });
+        //预览数据
+        this.$refs['dsetViewForm'].loadData(ds.dsetId, ds.dsid);
       } else {
       } else {
         this.selectTables = [];
         this.selectTables = [];
       }
       }
@@ -403,10 +409,12 @@ export default {
       if (isupdate) {
       if (isupdate) {
         $("#tab-cols").show();
         $("#tab-cols").show();
         $("#tab-dyna").show();
         $("#tab-dyna").show();
+        $("#tab-dview").show();
       } else {
       } else {
         //新增状态隐藏 表字段/动态字段
         //新增状态隐藏 表字段/动态字段
         $("#tab-cols").hide();
         $("#tab-cols").hide();
         $("#tab-dyna").hide();
         $("#tab-dyna").hide();
+        $("#tab-dview").hide();
       }
       }
       if (isupdate) {
       if (isupdate) {
         this.cols = ds.cols;
         this.cols = ds.cols;

+ 58 - 0
src/view/model/DsetView.vue

@@ -0,0 +1,58 @@
+<template>
+  <div>
+    <template v-if="dsetId != null">
+      <el-table :data="tableData" style="width: 100%" height="420" border header-row-class-name="tableHeadbg">
+        <template v-for="item in headData">
+          <el-table-column :key="item" :prop="item" :label="item">
+          </el-table-column>
+        </template>
+      </el-table>
+    </template>
+  </div>
+</template>
+
+<script>
+import { baseUrl, ajax } from "@/common/biConfig";
+import $ from "jquery"
+
+export default {
+   name: 'dsetView',
+  data() {
+    return {
+      tableData:[],
+      headData:[],
+      dsetId:null,
+      dsid:null
+    }
+  },
+  props: {
+
+  },
+  components: {
+		
+	},
+  mounted() {
+   
+  },
+  computed: {},
+  methods: {
+	 loadData(dsetId, dsid){
+     this.dsetId = dsetId;
+     ajax({
+       type:"get",
+       url:"model/queryDataset.action",
+       data:{dsetId:dsetId, dsid:dsid},
+       success:(resp)=>{
+         this.headData = resp.rows.header;
+         this.tableData = resp.rows.datas;
+         this.$forceUpdate();
+       }
+     }, this);
+   }
+  }
+};
+</script>
+
+<style lang="less" scoped>
+@import "../../style/mixin";
+</style>

+ 24 - 10
src/view/portal/PortalParamView.vue

@@ -10,31 +10,33 @@
                       <div class="col-sm-3" :key="item.id">
                       <div class="col-sm-3" :key="item.id">
                             <el-form-item :label="item.desc" label-width="80px">
                             <el-form-item :label="item.desc" label-width="80px">
                               <template v-if="item.inputType==='text'">
                               <template v-if="item.inputType==='text'">
-                                <el-input v-model="reportParam[item.id]" placeholder="请录入"></el-input>
+                                <el-input v-model="reportParam[item.id]" :disabled="!showSearchBtn" placeholder="请录入"></el-input>
                               </template>
                               </template>
                               <template v-if="item.inputType==='select'">
                               <template v-if="item.inputType==='select'">
-                                <el-select v-model="reportParam[item.id]" clearable placeholder="请选择" style="width:100%">
+                                <el-select v-model="reportParam[item.id]" :disabled="!showSearchBtn" clearable placeholder="请选择" style="width:100%">
                                   <el-option v-for="item in item.options" :key="item.value" :label="item.text" :value="item.value">
                                   <el-option v-for="item in item.options" :key="item.value" :label="item.text" :value="item.value">
                                   </el-option>
                                   </el-option>
                                 </el-select>
                                 </el-select>
                               </template>
                               </template>
                               <template v-if="item.inputType==='mselect'">
                               <template v-if="item.inputType==='mselect'">
-                                <el-select v-model="reportParam[item.id]" multiple clearable placeholder="请选择" style="width:100%">
+                                <el-select v-model="reportParam[item.id]" :disabled="!showSearchBtn" multiple clearable placeholder="请选择" style="width:100%">
                                   <el-option v-for="item in item.options" :key="item.value" :label="item.text" :value="item.value">
                                   <el-option v-for="item in item.options" :key="item.value" :label="item.text" :value="item.value">
                                   </el-option>
                                   </el-option>
                                 </el-select>
                                 </el-select>
                               </template>
                               </template>
                               <template v-if="item.inputType === 'dateSelect'">
                               <template v-if="item.inputType === 'dateSelect'">
-                                <el-date-picker v-model="reportParam[item.id]" :format="item.dateFormat" 
+                                <el-date-picker v-model="reportParam[item.id]" :disabled="!showSearchBtn" :format="item.dateFormat" 
                                 style="width:100%" :type="item.dateType" placeholder="选择日期" :value-format="item.dateFormat"></el-date-picker>
                                 style="width:100%" :type="item.dateType" placeholder="选择日期" :value-format="item.dateFormat"></el-date-picker>
                               </template>
                               </template>
                             </el-form-item>
                             </el-form-item>
                       </div>
                       </div>
                     </template>
                     </template>
-                    <div class="col-sm-3">
-                          <button type="button" class="btn btn-info btn-sm" @click="search">查询</button>
-                          <button type="button" class="btn btn-success btn-sm" @click="cleardata">清除</button>
-                    </div>
+                    <template v-if="showSearchBtn==true">
+                      <div class="col-sm-3">
+                            <button type="button" class="btn btn-info btn-sm" @click="search">查询</button>
+                            <button type="button" class="btn btn-success btn-sm" @click="cleardata">清除</button>
+                      </div>
+                    </template>
                 </div>
                 </div>
               </div>
               </div>
           </div>
           </div>
@@ -58,6 +60,11 @@ export default {
         type:Array,
         type:Array,
         required:true,
         required:true,
         default:[]
         default:[]
+     },
+     showSearchBtn:{
+       type:Boolean,
+       required:true,
+       default:true
      }
      }
   },
   },
   data() {
   data() {
@@ -106,8 +113,15 @@ export default {
       }, this, loadingInstance);
       }, this, loadingInstance);
     },
     },
     //初始化参数字段
     //初始化参数字段
-    initReportParam(reportParam){
-      let ts = this;
+    initReportParam(urlParam, pms){
+      $(pms).each((a, b)=>{
+        if(b.type === 'checkbox' && urlParam[b.id]){
+          let v = urlParam[b.id];
+          this.reportParam[b.id] = v.split(",");
+        }else{
+          this.reportParam[b.id] = urlParam[b.id];
+        }
+      });
     }
     }
   },
   },
   mounted(){
   mounted(){

+ 8 - 5
src/view/portal/PortalView.vue

@@ -14,7 +14,7 @@
 			<el-menu-item index="4"><i class="fa fa-print"></i> 打印</el-menu-item>
 			<el-menu-item index="4"><i class="fa fa-print"></i> 打印</el-menu-item>
 		</el-menu>
 		</el-menu>
     <!-- 参数区域 -->
     <!-- 参数区域 -->
-    <portal-param-view ref="paramViewForm" :pms="pms"></portal-param-view>
+    <portal-param-view ref="paramViewForm" :showSearchBtn="true" :pms="pms"></portal-param-view>
     <!-- 组件区域 -->
     <!-- 组件区域 -->
     <layout-view ref="optarea" :pageInfo="pageInfo"></layout-view>
     <layout-view ref="optarea" :pageInfo="pageInfo"></layout-view>
    
    
@@ -67,8 +67,6 @@ export default {
         type:"get",
         type:"get",
         success:(resp)=>{
         success:(resp)=>{
           this.pageInfo = JSON.parse(resp.rows);
           this.pageInfo = JSON.parse(resp.rows);
-          //初始化参数字段
-          //this.$refs['paramViewForm'].initReportParam(this.pageInfo.params);
           this.getReport();
           this.getReport();
         }
         }
       });
       });
@@ -87,7 +85,6 @@ export default {
       }, this, loadingInstance);
       }, this, loadingInstance);
     },
     },
     exportReport(tp){
     exportReport(tp){
-      //var pms = getPageParam();
       let pageId = this.reportId;
       let pageId = this.reportId;
       let burl = baseUrl;
       let burl = baseUrl;
       var ctx = `
       var ctx = `
@@ -95,7 +92,13 @@ export default {
       <input type='hidden' name='type' id='type' value='${tp}'>
       <input type='hidden' name='type' id='type' value='${tp}'>
       <input type='hidden' name='pageId' id='pageId' value='${pageId}'>
       <input type='hidden' name='pageId' id='pageId' value='${pageId}'>
       <input type='hidden' name='picinfo' id='picinfo'>
       <input type='hidden' name='picinfo' id='picinfo'>
-      </form>`;
+      `;
+      let pms = this.$refs['paramViewForm'].getParamValues();
+      $(this.pageInfo.params).each((a, b)=>{
+        let v = pms[b.id];
+        ctx += `<input type='hidden' name='${b.id}' value="${v}">`;
+      });
+      ctx += `</form>`;
       if($("#expff").length == 0 ){
       if($("#expff").length == 0 ){
         $(ctx).appendTo("body");
         $(ctx).appendTo("body");
       }
       }

+ 10 - 7
src/view/portal/Print.vue

@@ -1,7 +1,7 @@
 <template>
 <template>
   <div>
   <div>
 	<!-- 参数区域 -->
 	<!-- 参数区域 -->
-    <portal-param-view ref="paramViewForm" :pms="pms"></portal-param-view>
+    <portal-param-view ref="paramViewForm" :showSearchBtn="false" :pms="pms"></portal-param-view>
     <!-- 组件区域 -->
     <!-- 组件区域 -->
     <layout-view ref="optarea" :pageInfo="pageInfo"></layout-view>
     <layout-view ref="optarea" :pageInfo="pageInfo"></layout-view>
   </div>
   </div>
@@ -46,23 +46,26 @@
 					success:(resp)=>{
 					success:(resp)=>{
 						this.pageInfo = JSON.parse(resp.rows);
 						this.pageInfo = JSON.parse(resp.rows);
 						//初始化参数字段
 						//初始化参数字段
-						this.$refs['paramViewForm'].initReportParam(this.pageInfo.params);
-						this.getReport();
+						let urlParam = JSON.parse(JSON.stringify(this.$route.query));
+						delete urlParam.id;
+						this.$refs['paramViewForm'].initReportParam(urlParam, this.pageInfo.params);
+						this.getReport(urlParam);
 					}
 					}
 				});
 				});
 			},
 			},
-			getReport(){
+			getReport(urlParam){
+				urlParam.pageId = this.reportId;
 				let loadingInstance = Loading.service({fullscreen:false, target:document.querySelector('.wrapper-content-nomargin')});
 				let loadingInstance = Loading.service({fullscreen:false, target:document.querySelector('.wrapper-content-nomargin')});
 				ajax({
 				ajax({
 					url:"portal/view.action",
 					url:"portal/view.action",
 					type:"GET",
 					type:"GET",
-					data:{pageId:this.reportId},
+					data:urlParam,
 					success:(resp)=>{
 					success:(resp)=>{
+						this.pms = resp.rows.pms;
 						//渲染组件
 						//渲染组件
 						this.$refs['optarea'].setCompData(resp.rows);
 						this.$refs['optarea'].setCompData(resp.rows);
-						this.pms = resp.rows.pms;
 						this.$nextTick(()=>{
 						this.$nextTick(()=>{
-							window.print();
+							//window.print();
 						});
 						});
 					}
 					}
 				}, this, loadingInstance);
 				}, this, loadingInstance);