loulijun2021
2022-07-08 32d14164407e86bc68d4ba5e37b1d07eea134dcb
src/views/scgl/gdpg.vue
@@ -1,50 +1,52 @@
<template>
  <div>
    <h3>报表直接打印,通过AJAX方式获取报表模板与报表数据</h3>
    <!--    <p><a href="javascript:void" @click.prevent="ws_ajax_print">直接打印</a></p>-->
    <p><a href="javascript:void" @click.prevent="ws_ajax_print">直接打印</a></p>
    <!--    <h3>自定义打印参数,指定打印机,设置逐份打印与打印份数等</h3>-->
    <!--    <p>-->
    <!--      <a href="javascript:void" @click.prevent="ws_ajax_customprint">自定义参数打印</a>-->
    <!--    </p>-->
    <p><a href="javascript:void" @click.prevent="printClick">直接打印</a></p>
  </div>
</template>
<script>
import { webapp_ws_ajax_run, webapp_urlprotocol_startup, urlAddRandomNo } from '@/utils/grwebapp'
import { MesOrderPrintSearch, MesOrderPrintSearch1 } from '@/api/utils'
import { getCookie } from '@/utils/auth'
// import a from 'public/static/grf/simple.grf'
export default {
  data() {
    return {
      OBJ: {},
      TEXT: ''
    }
  },
  mounted() {
    webapp_urlprotocol_startup()
    // const a = require('public/static/grf/simple.grf')
    // console.log(a, 1)
  },
  methods: {
    async printClick() {
      const data = {
        username: getCookie('admin'),
        mesordercode: 'PO202206280001_4'
      }
      const res = await MesOrderPrintSearch1(data)
      this.OBJ = res.data
      if (res.code === '200') {
        this.ws_ajax_print()
      }
      // console.log(JSON.stringify(this.OBJ), 1)
    },
    ws_ajax_print() {
      // 参数具体说明请参考帮助文档中的“WEB报表(B/S报表)->WEB报表客户端->启动参数说明”部分
      var args = {
        type: 'print',
        // showOptionDlg: false, //如果不显示打印对话框而直接打印,将此行注释去掉即可
        report: urlAddRandomNo('./grf/simple.grf'),
        data: './data/jsonCustomer.txt'
      }
      console.log(args, 1)
      webapp_ws_ajax_run(args)
    },
    ws_ajax_customprint() {
      // 参数具体说明请参考帮助文档中的“WEB报表(B/S报表)->WEB报表客户端->启动参数说明”部分
      var args = {
        type: 'print', // 如果是要进行打印,将 type 设置为 print
        report: urlAddRandomNo('./grf/simple.grf'),
        data: './data/jsonCustomer.txt',
        PrinterName: 'Microsoft Print to PDF', // 指定要输出的打印机名称
        Collate: false, // 不按逐份方式打印
        Copies: 5 // 共打印5份
        type: 'print', // preview
        showOptionDlg: false, // 如果不显示打印对话框而直接打印,将此行注释去掉即可
        report: urlAddRandomNo('./static/grf/产品流传单A4.grf'),
        data: this.OBJ
      }
      webapp_ws_ajax_run(args)
    }
  }
}
</script>