sqs.vue 2.93 KB
<!--
 * @Description: 
 * @Autor: renchao
 * @LastEditTime: 2023-11-22 17:09:14
-->
<template>
  <div>
    <el-button type="primary" @click="handlePrint(1)">打印第1页</el-button>
    <el-button type="primary" @click="handlePrint(2)">打印第2页</el-button>
    <!-- 打印模板需要此模块 -->
    <object
      id="LODOP_OB"
      classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA"
      v-show="false">
      <embed
        id="LODOP_EM"
        type="application/x-print-lodop"
        width="820"
        height="450"
        pluginspage="install_lodop32.exe" />
    </object>
  </div>
</template>
<script>
  import Vue from 'vue'
  import { getLodop } from "@/utils/LodopFuncs";
  import { getPrintTemplateByCode } from "@/api/print";
  import { getPrintApplicationForm } from "@/api/workFlow.js";
  export default {
    props: {
      formData: {
        type: Object,
        default: () => {
          return {}
        }
      }
    },
    data () {
      return {
      }
    },
    methods: {
      handlePrint (val) {
        if (val == 1) {
          getPrintTemplateByCode({ tmpno: Vue.prototype.BASE_API.adapter }).then(res => {
            if (res.code === 200) {
              getPrintApplicationForm(this.formData.bsmSldy).then(infoRes => {
                if (infoRes.code === 200) {
                  let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'));

                  // 装载第一个模板并设置数据
                  LODOP.ADD_PRINT_DATA("ProgramData", res.result.tmpcontent);
                  for (let key in infoRes.result) {
                    LODOP.SET_PRINT_STYLEA(key, "CONTENT", infoRes.result[key]);
                  }

                  // 进行预览
                  LODOP.PREVIEW();
                } else {
                  this.$message.error(infoRes.message);
                }
              });
            } else {
              this.$message.error(res.message);
            }
          })
        } else {
          getPrintTemplateByCode({ tmpno: Vue.prototype.BASE_API.adapter + '-2' }).then(res => {
            if (res.code === 200) {
              getPrintApplicationForm(this.formData.bsmSldy).then(infoRes => {
                if (infoRes.code === 200) {
                  let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'));

                  // 装载第一个模板并设置数据
                  LODOP.ADD_PRINT_DATA("ProgramData", res.result.tmpcontent);
                  for (let key in infoRes.result) {
                    LODOP.SET_PRINT_STYLEA(key, "CONTENT", infoRes.result[key]);
                  }

                  // 进行预览
                  LODOP.PREVIEW();
                } else {
                  this.$message.error(infoRes.message);
                }
              });
            } else {
              this.$message.error(res.message);
            }
          })
        }

      }
    }
  }
</script>