zhangqing 1 éve
szülő
commit
c0279636b6

+ 23 - 0
src/components/jimureport/api.js

@@ -0,0 +1,23 @@
+import request from '@/utils/request';
+
+export async function getServiceurl () {
+  const res = await request.get('sys/jimureport/getServiceurl');
+  if (res.data.code == 0 && res.data.data) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+export async function getPrintMap () {
+  const res = await request.get('sys/jimureport/getPrintMap');
+  if (res.data.code == 0 && res.data.data) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+export async function getJmPrintViewUrl (code) {
+  const res = await request.get('sys/jimureport/getJmPrintViewUrl/'+code);
+  if (res.data.code == 0 && res.data.data) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 23 - 0
src/components/jimureport/browse.vue

@@ -0,0 +1,23 @@
+<template>
+  <iframe
+    :src="url"
+    width="100%"
+    style="height: calc(100vh - 100px)"
+    frameborder="0"
+    allowfullscreen="true"
+  ></iframe>
+</template>
+
+<script>
+  export default {
+    props: {
+      url: ''
+    },
+    data() {
+      return {};
+    },
+
+    methods: {}
+  };
+</script>
+<style scoped lang="scss"></style>

+ 52 - 0
src/components/jimureport/browseModal.vue

@@ -0,0 +1,52 @@
+<template>
+  <div>
+    <ele-modal
+      :visible.sync="showEditFlag"
+      :close-on-click-modal="false"
+      custom-class="ele-dialog-form"
+      append-to-body
+      :fullscreen="true"
+    >
+      <browse :url="fileUrl"></browse
+    ></ele-modal>
+    <el-link type="primary" @click="open">{{ text }}</el-link>
+  </div>
+</template>
+
+<script>
+  import { getToken } from '@/utils/token-util';
+  import { getJmPrintViewUrl } from './api.js';
+  import browse from './browse.vue';
+
+  export default {
+    components: {
+      browse
+    },
+    props: {
+      text: {
+        default: '打印预览'
+      },
+      businessId: {
+        default: ''
+      },
+      businessCode: {
+        default: ''
+      }
+    },
+    data() {
+      return {
+        fileUrl: '',
+        showEditFlag: false
+      };
+    },
+
+    methods: {
+      async open() {
+        this.showEditFlag = true;
+        let url = await getJmPrintViewUrl(this.businessCode);
+        this.fileUrl = `${url}?token=${getToken()}&id=${this.businessId}`;
+      }
+    }
+  };
+</script>
+<style scoped lang="scss"></style>

+ 4 - 0
src/store/modules/user.js

@@ -19,6 +19,10 @@ const formatRouter = (list) => {
         // authorities.push(p);
         p.hide = true;
       }
+      //报表菜单 source = 2 为报表时 extend 为报表id
+      if (p.source === 2 && p.extend) {
+        p.path = p.path + '/' + p.extend;
+      }
       //  else {
       if (p.children?.length) {
         p.children = fn(p.children);

+ 44 - 0
src/views/reportForms/sourceLink/index.vue

@@ -0,0 +1,44 @@
+<template>
+    <div class="ele-body">
+        <jimureportBrowse :url="fileUrl"></jimureportBrowse>
+    </div>
+  </template>
+  
+  <script>
+  import jimureportBrowse from '@/components/jimureport/browse.vue';
+  import { getServiceurl } from '@/components/jimureport/api.js';
+  import { getToken } from '@/utils/token-util';
+  export default {
+    components: {
+        jimureportBrowse
+    },
+  
+    data() {
+      return {
+        fileUrl: ''
+      };
+    },
+    computed: {},
+    watch: {
+      '$route'(to, from) {
+        if (to.path) {
+          this.getJmPrintBrowse();  // 重新加载数据
+        }
+      }
+    },
+    created() {
+        this.getJmPrintBrowse()
+    },
+    methods: {
+       async getJmPrintBrowse(){
+        let id = this.$route.path.split('/').pop()
+        let url = await getServiceurl();
+        this.fileUrl = `${url}/jmreport/view/${id}?token=${getToken()}`;
+       }
+    }
+  };
+  </script>
+  <style lang="scss" scoped>
+
+  </style>
+