|  | @@ -1,943 +1,930 @@
 | 
	
		
			
				|  |  |  <template>
 | 
	
		
			
				|  |  |    <div>
 | 
	
		
			
				|  |  | -      <avue-crud :option="option"
 | 
	
		
			
				|  |  | -                 :table-loading="loading"
 | 
	
		
			
				|  |  | -                 :data="data"
 | 
	
		
			
				|  |  | -                 :page.sync="page"
 | 
	
		
			
				|  |  | -                 :permission="permissionList"
 | 
	
		
			
				|  |  | -                 v-model="form"
 | 
	
		
			
				|  |  | -                 ref="crud"
 | 
	
		
			
				|  |  | -                 id="out-table"
 | 
	
		
			
				|  |  | -                 :header-cell-class-name="headerClassName"
 | 
	
		
			
				|  |  | -                 :search.sync="query"
 | 
	
		
			
				|  |  | -                 @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 312.3)"
 | 
	
		
			
				|  |  | -                 @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 312.3)"
 | 
	
		
			
				|  |  | -                 @search-change="searchChange"
 | 
	
		
			
				|  |  | -                 @search-reset="searchReset"
 | 
	
		
			
				|  |  | -                 @selection-change="selectionChange"
 | 
	
		
			
				|  |  | -                 @current-change="currentChange"
 | 
	
		
			
				|  |  | -                 @size-change="sizeChange"
 | 
	
		
			
				|  |  | -                 @refresh-change="refreshChange"
 | 
	
		
			
				|  |  | -                 @on-load="onLoad">
 | 
	
		
			
				|  |  | -          <template slot-scope="scope" slot="menu">
 | 
	
		
			
				|  |  | -              <el-link type="primary" :disabled="scope.row.status == 1"
 | 
	
		
			
				|  |  | -                       @click="reportsGetReportDatafun(scope.row.url,scope.row)">预览报表</el-link>
 | 
	
		
			
				|  |  | -          </template>
 | 
	
		
			
				|  |  | -      </avue-crud>
 | 
	
		
			
				|  |  | -      <reportContainer ref="reportContainer"></reportContainer>
 | 
	
		
			
				|  |  | +    <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" :permission="permissionList"
 | 
	
		
			
				|  |  | +      v-model="form" ref="crud" id="out-table" :header-cell-class-name="headerClassName" :search.sync="query"
 | 
	
		
			
				|  |  | +      @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 312.4)"
 | 
	
		
			
				|  |  | +      @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 312.4)" @search-change="searchChange"
 | 
	
		
			
				|  |  | +      @search-reset="searchReset" @selection-change="selectionChange" @current-change="currentChange"
 | 
	
		
			
				|  |  | +      @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
 | 
	
		
			
				|  |  | +      <template slot-scope="scope" slot="menu">
 | 
	
		
			
				|  |  | +        <el-link type="primary" :disabled="scope.row.status == 1"
 | 
	
		
			
				|  |  | +          @click="reportsGetReportDatafun(scope.row.url, scope.row)">预览报表</el-link>
 | 
	
		
			
				|  |  | +      </template>
 | 
	
		
			
				|  |  | +    </avue-crud>
 | 
	
		
			
				|  |  | +    <reportContainer ref="reportContainer"></reportContainer>
 | 
	
		
			
				|  |  |    </div>
 | 
	
		
			
				|  |  |  </template>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <script>
 | 
	
		
			
				|  |  | -  import {getList, getDetail, add, update, remove,reportsGetReportData} from "@/api/iosBasicData/reports";
 | 
	
		
			
				|  |  | -  import {getUserApprovalList} from "@/api/approval/processConfig";
 | 
	
		
			
				|  |  | -  import {mapGetters} from "vuex";
 | 
	
		
			
				|  |  | -  import {billsDetail} from '@/api/iosBasicData/bills'
 | 
	
		
			
				|  |  | -  import {bbusinesstypeList} from "@/api/iosBasicData/bbusinesstype";
 | 
	
		
			
				|  |  | -  import reportContainer from "@/views/iosBasicData/report-container/report-container.vue"
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  export default {
 | 
	
		
			
				|  |  | -    components: {
 | 
	
		
			
				|  |  | -      reportContainer
 | 
	
		
			
				|  |  | +import { getList, getDetail, add, update, remove, reportsGetReportData } from "@/api/iosBasicData/reports";
 | 
	
		
			
				|  |  | +import { getUserApprovalList } from "@/api/approval/processConfig";
 | 
	
		
			
				|  |  | +import { mapGetters } from "vuex";
 | 
	
		
			
				|  |  | +import { billsDetail } from '@/api/iosBasicData/bills'
 | 
	
		
			
				|  |  | +import { bbusinesstypeList } from "@/api/iosBasicData/bbusinesstype";
 | 
	
		
			
				|  |  | +import reportContainer from "@/views/iosBasicData/report-container/report-container.vue"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +export default {
 | 
	
		
			
				|  |  | +  components: {
 | 
	
		
			
				|  |  | +    reportContainer
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  props: {
 | 
	
		
			
				|  |  | +    id: {
 | 
	
		
			
				|  |  | +      type: String
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    props: {
 | 
	
		
			
				|  |  | -      id: {
 | 
	
		
			
				|  |  | -        type: String
 | 
	
		
			
				|  |  | +    disabled: {
 | 
	
		
			
				|  |  | +      type: Boolean,
 | 
	
		
			
				|  |  | +      default: false,
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  data() {
 | 
	
		
			
				|  |  | +    return {
 | 
	
		
			
				|  |  | +      userList: [],
 | 
	
		
			
				|  |  | +      isPrintTheBoxNumber: false,
 | 
	
		
			
				|  |  | +      bbDisabled: false,
 | 
	
		
			
				|  |  | +      form: {
 | 
	
		
			
				|  |  | +        businessType: 'HYCK'
 | 
	
		
			
				|  |  |        },
 | 
	
		
			
				|  |  | -      disabled:{
 | 
	
		
			
				|  |  | -        type:Boolean,
 | 
	
		
			
				|  |  | -        default:false,
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    data() {
 | 
	
		
			
				|  |  | -      return {
 | 
	
		
			
				|  |  | -        userList: [],
 | 
	
		
			
				|  |  | -        isPrintTheBoxNumber: false,
 | 
	
		
			
				|  |  | -        bbDisabled: false,
 | 
	
		
			
				|  |  | -        form: {
 | 
	
		
			
				|  |  | -            businessType:'HYCK'
 | 
	
		
			
				|  |  | -        },
 | 
	
		
			
				|  |  | -        formReport: {},
 | 
	
		
			
				|  |  | -        query: {
 | 
	
		
			
				|  |  | -            businessType:'HYCK',
 | 
	
		
			
				|  |  | -            classifyCode:'业务',
 | 
	
		
			
				|  |  | -        },
 | 
	
		
			
				|  |  | -        loading: true,
 | 
	
		
			
				|  |  | -        page: {
 | 
	
		
			
				|  |  | -          pageSize: 10,
 | 
	
		
			
				|  |  | -          currentPage: 1,
 | 
	
		
			
				|  |  | -          total: 0
 | 
	
		
			
				|  |  | -        },
 | 
	
		
			
				|  |  | -        selectionList: [],
 | 
	
		
			
				|  |  | -        option: {},
 | 
	
		
			
				|  |  | -        optionBack: {
 | 
	
		
			
				|  |  | -          height:'auto',
 | 
	
		
			
				|  |  | -          calcHeight: 30,
 | 
	
		
			
				|  |  | -          tip: false,
 | 
	
		
			
				|  |  | -          searchShow: true,
 | 
	
		
			
				|  |  | -          searchMenuSpan: 6,
 | 
	
		
			
				|  |  | -          border: true,
 | 
	
		
			
				|  |  | -          index: true,
 | 
	
		
			
				|  |  | -          viewBtn: true,
 | 
	
		
			
				|  |  | -          selection: true,
 | 
	
		
			
				|  |  | -          dialogClickModal: false,
 | 
	
		
			
				|  |  | -          menuWidth:100,
 | 
	
		
			
				|  |  | -          column: [
 | 
	
		
			
				|  |  | -            {
 | 
	
		
			
				|  |  | -              label: "组别",
 | 
	
		
			
				|  |  | -              prop: "groupCode",
 | 
	
		
			
				|  |  | -              rules: [{
 | 
	
		
			
				|  |  | -                required: true,
 | 
	
		
			
				|  |  | -                message: "请输入组别",
 | 
	
		
			
				|  |  | -                trigger: "blur"
 | 
	
		
			
				|  |  | -              }]
 | 
	
		
			
				|  |  | -            },
 | 
	
		
			
				|  |  | -            {
 | 
	
		
			
				|  |  | -              label: "业务类别",
 | 
	
		
			
				|  |  | -              prop: "classifyCode",
 | 
	
		
			
				|  |  | -              type: 'select',
 | 
	
		
			
				|  |  | -              search:true,
 | 
	
		
			
				|  |  | -              dicData: [{
 | 
	
		
			
				|  |  | +      formReport: {},
 | 
	
		
			
				|  |  | +      query: {
 | 
	
		
			
				|  |  | +        businessType: 'HYCK',
 | 
	
		
			
				|  |  | +        classifyCode: '业务',
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      loading: true,
 | 
	
		
			
				|  |  | +      page: {
 | 
	
		
			
				|  |  | +        pageSize: 10,
 | 
	
		
			
				|  |  | +        currentPage: 1,
 | 
	
		
			
				|  |  | +        total: 0
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      selectionList: [],
 | 
	
		
			
				|  |  | +      option: {},
 | 
	
		
			
				|  |  | +      optionBack: {
 | 
	
		
			
				|  |  | +        height: 'auto',
 | 
	
		
			
				|  |  | +        calcHeight: 30,
 | 
	
		
			
				|  |  | +        tip: false,
 | 
	
		
			
				|  |  | +        searchShow: true,
 | 
	
		
			
				|  |  | +        searchMenuSpan: 6,
 | 
	
		
			
				|  |  | +        border: true,
 | 
	
		
			
				|  |  | +        index: true,
 | 
	
		
			
				|  |  | +        viewBtn: true,
 | 
	
		
			
				|  |  | +        selection: true,
 | 
	
		
			
				|  |  | +        dialogClickModal: false,
 | 
	
		
			
				|  |  | +        menuWidth: 100,
 | 
	
		
			
				|  |  | +        column: [
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            label: "组别",
 | 
	
		
			
				|  |  | +            prop: "groupCode",
 | 
	
		
			
				|  |  | +            rules: [{
 | 
	
		
			
				|  |  | +              required: true,
 | 
	
		
			
				|  |  | +              message: "请输入组别",
 | 
	
		
			
				|  |  | +              trigger: "blur"
 | 
	
		
			
				|  |  | +            }]
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            label: "业务类别",
 | 
	
		
			
				|  |  | +            prop: "classifyCode",
 | 
	
		
			
				|  |  | +            type: 'select',
 | 
	
		
			
				|  |  | +            search: true,
 | 
	
		
			
				|  |  | +            dicData: [{
 | 
	
		
			
				|  |  |                label: '业务',
 | 
	
		
			
				|  |  | -              value:'业务'
 | 
	
		
			
				|  |  | +              value: '业务'
 | 
	
		
			
				|  |  |              }, {
 | 
	
		
			
				|  |  | -             label:'费用',
 | 
	
		
			
				|  |  | -             value: '费用'
 | 
	
		
			
				|  |  | -          }, {
 | 
	
		
			
				|  |  | -             label:'单证',
 | 
	
		
			
				|  |  | -             value: '单证'
 | 
	
		
			
				|  |  | -          }]
 | 
	
		
			
				|  |  | -            },
 | 
	
		
			
				|  |  | -            {
 | 
	
		
			
				|  |  | -              label: "报表编码",
 | 
	
		
			
				|  |  | -              prop: "code",
 | 
	
		
			
				|  |  | -              rules: [{
 | 
	
		
			
				|  |  | -                required: true,
 | 
	
		
			
				|  |  | -                message: "请输入报表编码",
 | 
	
		
			
				|  |  | -                trigger: "blur"
 | 
	
		
			
				|  |  | -              }]
 | 
	
		
			
				|  |  | -            },
 | 
	
		
			
				|  |  | -            {
 | 
	
		
			
				|  |  | -              label: "中文名称",
 | 
	
		
			
				|  |  | -              prop: "cnName",
 | 
	
		
			
				|  |  | -              rules: [{
 | 
	
		
			
				|  |  | -                required: true,
 | 
	
		
			
				|  |  | -                message: "请输入中文名称",
 | 
	
		
			
				|  |  | -                trigger: "blur"
 | 
	
		
			
				|  |  | -              }]
 | 
	
		
			
				|  |  | -            },
 | 
	
		
			
				|  |  | -            {
 | 
	
		
			
				|  |  | -              label: "英文名称",
 | 
	
		
			
				|  |  | -              prop: "enName"
 | 
	
		
			
				|  |  | -            },
 | 
	
		
			
				|  |  | -            {
 | 
	
		
			
				|  |  | -              label: "报表格式",
 | 
	
		
			
				|  |  | -              prop: "content",
 | 
	
		
			
				|  |  | -              rules: [{
 | 
	
		
			
				|  |  | -                required: true,
 | 
	
		
			
				|  |  | -                message: "请输入报表格式",
 | 
	
		
			
				|  |  | -                trigger: "blur"
 | 
	
		
			
				|  |  | -              }]
 | 
	
		
			
				|  |  | -            },
 | 
	
		
			
				|  |  | -            {
 | 
	
		
			
				|  |  | -              label: "备注",
 | 
	
		
			
				|  |  | -              prop: "remarks"
 | 
	
		
			
				|  |  | -            },
 | 
	
		
			
				|  |  | -          ]
 | 
	
		
			
				|  |  | -        },
 | 
	
		
			
				|  |  | -        data: []
 | 
	
		
			
				|  |  | +              label: '费用',
 | 
	
		
			
				|  |  | +              value: '费用'
 | 
	
		
			
				|  |  | +            }, {
 | 
	
		
			
				|  |  | +              label: '单证',
 | 
	
		
			
				|  |  | +              value: '单证'
 | 
	
		
			
				|  |  | +            }]
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            label: "报表编码",
 | 
	
		
			
				|  |  | +            prop: "code",
 | 
	
		
			
				|  |  | +            rules: [{
 | 
	
		
			
				|  |  | +              required: true,
 | 
	
		
			
				|  |  | +              message: "请输入报表编码",
 | 
	
		
			
				|  |  | +              trigger: "blur"
 | 
	
		
			
				|  |  | +            }]
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            label: "中文名称",
 | 
	
		
			
				|  |  | +            prop: "cnName",
 | 
	
		
			
				|  |  | +            rules: [{
 | 
	
		
			
				|  |  | +              required: true,
 | 
	
		
			
				|  |  | +              message: "请输入中文名称",
 | 
	
		
			
				|  |  | +              trigger: "blur"
 | 
	
		
			
				|  |  | +            }]
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            label: "英文名称",
 | 
	
		
			
				|  |  | +            prop: "enName"
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            label: "报表格式",
 | 
	
		
			
				|  |  | +            prop: "content",
 | 
	
		
			
				|  |  | +            rules: [{
 | 
	
		
			
				|  |  | +              required: true,
 | 
	
		
			
				|  |  | +              message: "请输入报表格式",
 | 
	
		
			
				|  |  | +              trigger: "blur"
 | 
	
		
			
				|  |  | +            }]
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            label: "备注",
 | 
	
		
			
				|  |  | +            prop: "remarks"
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +        ]
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      data: []
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  async created() {
 | 
	
		
			
				|  |  | +    this.option = await this.getColumnData(this.getColumnName(312.4), this.optionBack);
 | 
	
		
			
				|  |  | +    getUserApprovalList().then(res => {
 | 
	
		
			
				|  |  | +      this.findObject(this.option.column, "authorizedUsersId").dicData = res.data.data
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +    // 获取业务类型
 | 
	
		
			
				|  |  | +    bbusinesstypeList(1, 20).then(res => {
 | 
	
		
			
				|  |  | +      this.findObject(this.option.column, "businessType").dicData = res.data.data.records
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  computed: {
 | 
	
		
			
				|  |  | +    ...mapGetters(["permission"]),
 | 
	
		
			
				|  |  | +    permissionList() {
 | 
	
		
			
				|  |  | +      return {
 | 
	
		
			
				|  |  | +        addBtn: this.vaildData(this.permission.reports_add, false),
 | 
	
		
			
				|  |  | +        viewBtn: this.vaildData(this.permission.reports_view, false),
 | 
	
		
			
				|  |  | +        delBtn: this.vaildData(this.permission.reports_delete, false),
 | 
	
		
			
				|  |  | +        editBtn: this.vaildData(this.permission.reports_edit, false)
 | 
	
		
			
				|  |  |        };
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    async created () {
 | 
	
		
			
				|  |  | -      this.option = await this.getColumnData(this.getColumnName(312.3), this.optionBack);
 | 
	
		
			
				|  |  | -      getUserApprovalList().then(res=>{
 | 
	
		
			
				|  |  | -        this.findObject(this.option.column, "authorizedUsersId").dicData = res.data.data
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -        // 获取业务类型
 | 
	
		
			
				|  |  | -        bbusinesstypeList(1,20).then(res=>{
 | 
	
		
			
				|  |  | -            this.findObject(this.option.column, "businessType").dicData = res.data.data.records
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    computed: {
 | 
	
		
			
				|  |  | -      ...mapGetters(["permission"]),
 | 
	
		
			
				|  |  | -      permissionList() {
 | 
	
		
			
				|  |  | -        return {
 | 
	
		
			
				|  |  | -          addBtn: this.vaildData(this.permission.reports_add, false),
 | 
	
		
			
				|  |  | -          viewBtn: this.vaildData(this.permission.reports_view, false),
 | 
	
		
			
				|  |  | -          delBtn: this.vaildData(this.permission.reports_delete, false),
 | 
	
		
			
				|  |  | -          editBtn: this.vaildData(this.permission.reports_edit, false)
 | 
	
		
			
				|  |  | -        };
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      ids() {
 | 
	
		
			
				|  |  | -        let ids = [];
 | 
	
		
			
				|  |  | -        this.selectionList.forEach(ele => {
 | 
	
		
			
				|  |  | -          ids.push(ele.id);
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | -        return ids.join(",");
 | 
	
		
			
				|  |  | +    ids() {
 | 
	
		
			
				|  |  | +      let ids = [];
 | 
	
		
			
				|  |  | +      this.selectionList.forEach(ele => {
 | 
	
		
			
				|  |  | +        ids.push(ele.id);
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      return ids.join(",");
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  methods: {
 | 
	
		
			
				|  |  | +    // 设计报表
 | 
	
		
			
				|  |  | +    async reportDesignButton(url) {
 | 
	
		
			
				|  |  | +      Stimulsoft.Base.StiLicense.key = '6vJhGtLLLz2GNviWmUTrhSqnOItdDwjBylQzQcAOiHn0s4gy0Fr5YoUZ9V00Y0igCSFQzwEqYBh/N77k4f0fWXTHW5rqeBNLkaurJDenJ9o97TyqHs9HfvINK18Uwzsc/bG01Rq+x3H3Rf+g7AY92gvWmp7VA2Uxa30Q97f61siWz2dE5kdBVcCnSFzC6awE74JzDcJMj8OuxplqB1CYcpoPcOjKy1PiATlC3UsBaLEXsok1xxtRMQ283r282tkh8XQitsxtTczAJBxijuJNfziYhci2jResWXK51ygOOEbVAxmpflujkJ8oEVHkOA/CjX6bGx05pNZ6oSIu9H8deF94MyqIwcdeirCe60GbIQByQtLimfxbIZnO35X3fs/94av0ODfELqrQEpLrpU6FNeHttvlMc5UVrT4K+8lPbqR8Hq0PFWmFrbVIYSi7tAVFMMe2D1C59NWyLu3AkrD3No7YhLVh7LV0Tttr/8FrcZ8xirBPcMZCIGrRIesrHxOsZH2V8t/t0GXCnLLAWX+TNvdNXkB8cF2y9ZXf1enI064yE5dwMs2fQ0yOUG/xornE'
 | 
	
		
			
				|  |  | +      // Stimulsoft.Base.StiLicense.Key = '6vJhGtLLLz2GNviWmUTrhSqnOItdDwjBylQzQcAOiHkcgIvwL0jnpsDqRpWg5FI5kt2G7A0tYIcUygBh1sPs7plofUOqPB1a4HBIXJB621mau2oiAIj+ysU7gKUXfjn/D5BocmduNB+ZMiDGPxFrAp3PoD0nYNkkWh8r7gBZ1v/JZSXGE3bQDrCQCNSy6mgby+iFAMV8/PuZ1z77U+Xz3fkpbm6MYQXYp3cQooLGLUti7k1TFWrnawT0iEEDJ2iRcU9wLqn2g9UiWesEZtKwI/UmEI2T7nv5NbgV+CHguu6QU4WWzFpIgW+3LUnKCT/vCDY+ymzgycw9A9+HFSzARiPzgOaAuQYrFDpzhXV+ZeX31AxWlnzjDWqpfluygSNPtGul5gyNt2CEoJD1Yom0VN9fvRonYsMsimkFFx2AwyVpPcs+JfVBtpPbTcZscnzUdmiIvxv8Gcin6sNSibM6in/uUKFt3bVgW/XeMYa7MLGF53kvBSwi78poUDigA2n12SmghLR0AHxyEDIgZGOTbNI33GWu7ZsPBeUdGu55R8w='
 | 
	
		
			
				|  |  | +      Stimulsoft.Base.Localization.StiLocalization.addLocalizationFile('/reports/stimulsoft/Localization/zh-CHS.xml', true, 'zh-CHS')
 | 
	
		
			
				|  |  | +      Stimulsoft.Base.Localization.StiLocalization.setLocalizationFile('/reports/stimulsoft/Localization/zh-CHS.xml')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      var options = new Stimulsoft.Designer.StiDesignerOptions()
 | 
	
		
			
				|  |  | +      options.appearance.fullScreenMode = true
 | 
	
		
			
				|  |  | +      options.allowChangeWindowTitle = false
 | 
	
		
			
				|  |  | +      options.toolbar.showSaveDialog = false
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      options.toolbar.showFileMenuSave = false
 | 
	
		
			
				|  |  | +      options.toolbar.showFileMenuAbout = false
 | 
	
		
			
				|  |  | +      options.toolbar.showFileMenuClose = false
 | 
	
		
			
				|  |  | +      options.toolbar.showFileMenuExit = false
 | 
	
		
			
				|  |  | +      options.toolbar.showFileMenuInfo = false
 | 
	
		
			
				|  |  | +      options.toolbar.showFileMenuHelp = false
 | 
	
		
			
				|  |  | +      options.toolbar.showFileMenuNew = false
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      options.appearance.showTooltips = false
 | 
	
		
			
				|  |  | +      options.appearance.showDialogsHelp = false
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      options.toolbar.showSetupToolboxButton = true
 | 
	
		
			
				|  |  | +      options.appearance.htmlRenderMode = Stimulsoft.Report.Export.StiHtmlExportMode.Table
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      let designer = new Stimulsoft.Designer.StiDesigner(
 | 
	
		
			
				|  |  | +        options,
 | 
	
		
			
				|  |  | +        'StiDesigner',
 | 
	
		
			
				|  |  | +        false
 | 
	
		
			
				|  |  | +      )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      designer.onSaveReport = (e) => {
 | 
	
		
			
				|  |  | +        console.log('onSaveReport')
 | 
	
		
			
				|  |  | +        // let jsObject = this.jsObject
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if (!e.report.isModified)
 | 
	
		
			
				|  |  | +          return
 | 
	
		
			
				|  |  | +        var jsonString = e.report.saveToJsonString()
 | 
	
		
			
				|  |  | +        // console.log(jsonString)
 | 
	
		
			
				|  |  | +        this.form.url = jsonString;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        console.log('保存url')
 | 
	
		
			
				|  |  | +        console.log(jsonString)
 | 
	
		
			
				|  |  | +        console.log('保存url结束')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    methods: {
 | 
	
		
			
				|  |  | -      // 设计报表
 | 
	
		
			
				|  |  | -      async reportDesignButton(url) {
 | 
	
		
			
				|  |  | -            Stimulsoft.Base.StiLicense.key = '6vJhGtLLLz2GNviWmUTrhSqnOItdDwjBylQzQcAOiHn0s4gy0Fr5YoUZ9V00Y0igCSFQzwEqYBh/N77k4f0fWXTHW5rqeBNLkaurJDenJ9o97TyqHs9HfvINK18Uwzsc/bG01Rq+x3H3Rf+g7AY92gvWmp7VA2Uxa30Q97f61siWz2dE5kdBVcCnSFzC6awE74JzDcJMj8OuxplqB1CYcpoPcOjKy1PiATlC3UsBaLEXsok1xxtRMQ283r282tkh8XQitsxtTczAJBxijuJNfziYhci2jResWXK51ygOOEbVAxmpflujkJ8oEVHkOA/CjX6bGx05pNZ6oSIu9H8deF94MyqIwcdeirCe60GbIQByQtLimfxbIZnO35X3fs/94av0ODfELqrQEpLrpU6FNeHttvlMc5UVrT4K+8lPbqR8Hq0PFWmFrbVIYSi7tAVFMMe2D1C59NWyLu3AkrD3No7YhLVh7LV0Tttr/8FrcZ8xirBPcMZCIGrRIesrHxOsZH2V8t/t0GXCnLLAWX+TNvdNXkB8cF2y9ZXf1enI064yE5dwMs2fQ0yOUG/xornE'
 | 
	
		
			
				|  |  | -            // Stimulsoft.Base.StiLicense.Key = '6vJhGtLLLz2GNviWmUTrhSqnOItdDwjBylQzQcAOiHkcgIvwL0jnpsDqRpWg5FI5kt2G7A0tYIcUygBh1sPs7plofUOqPB1a4HBIXJB621mau2oiAIj+ysU7gKUXfjn/D5BocmduNB+ZMiDGPxFrAp3PoD0nYNkkWh8r7gBZ1v/JZSXGE3bQDrCQCNSy6mgby+iFAMV8/PuZ1z77U+Xz3fkpbm6MYQXYp3cQooLGLUti7k1TFWrnawT0iEEDJ2iRcU9wLqn2g9UiWesEZtKwI/UmEI2T7nv5NbgV+CHguu6QU4WWzFpIgW+3LUnKCT/vCDY+ymzgycw9A9+HFSzARiPzgOaAuQYrFDpzhXV+ZeX31AxWlnzjDWqpfluygSNPtGul5gyNt2CEoJD1Yom0VN9fvRonYsMsimkFFx2AwyVpPcs+JfVBtpPbTcZscnzUdmiIvxv8Gcin6sNSibM6in/uUKFt3bVgW/XeMYa7MLGF53kvBSwi78poUDigA2n12SmghLR0AHxyEDIgZGOTbNI33GWu7ZsPBeUdGu55R8w='
 | 
	
		
			
				|  |  | -            Stimulsoft.Base.Localization.StiLocalization.addLocalizationFile( '/reports/stimulsoft/Localization/zh-CHS.xml', true, 'zh-CHS')
 | 
	
		
			
				|  |  | -            Stimulsoft.Base.Localization.StiLocalization.setLocalizationFile('/reports/stimulsoft/Localization/zh-CHS.xml' )
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            var options = new Stimulsoft.Designer.StiDesignerOptions()
 | 
	
		
			
				|  |  | -            options.appearance.fullScreenMode = true
 | 
	
		
			
				|  |  | -            options.allowChangeWindowTitle = false
 | 
	
		
			
				|  |  | -            options.toolbar.showSaveDialog = false
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            options.toolbar.showFileMenuSave = false
 | 
	
		
			
				|  |  | -            options.toolbar.showFileMenuAbout = false
 | 
	
		
			
				|  |  | -            options.toolbar.showFileMenuClose = false
 | 
	
		
			
				|  |  | -            options.toolbar.showFileMenuExit = false
 | 
	
		
			
				|  |  | -            options.toolbar.showFileMenuInfo = false
 | 
	
		
			
				|  |  | -            options.toolbar.showFileMenuHelp = false
 | 
	
		
			
				|  |  | -            options.toolbar.showFileMenuNew = false
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            options.appearance.showTooltips = false
 | 
	
		
			
				|  |  | -            options.appearance.showDialogsHelp = false
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            options.toolbar.showSetupToolboxButton = true
 | 
	
		
			
				|  |  | -            options.appearance.htmlRenderMode = Stimulsoft.Report.Export.StiHtmlExportMode.Table
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            let designer = new Stimulsoft.Designer.StiDesigner(
 | 
	
		
			
				|  |  | -              options,
 | 
	
		
			
				|  |  | -              'StiDesigner',
 | 
	
		
			
				|  |  | -              false
 | 
	
		
			
				|  |  | -            )
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            designer.onSaveReport = (e)=>{
 | 
	
		
			
				|  |  | -              console.log('onSaveReport')
 | 
	
		
			
				|  |  | -              // let jsObject = this.jsObject
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -              if (!e.report.isModified)
 | 
	
		
			
				|  |  | -                return
 | 
	
		
			
				|  |  | -              var jsonString = e.report.saveToJsonString()
 | 
	
		
			
				|  |  | -              // console.log(jsonString)
 | 
	
		
			
				|  |  | -              this.form.url = jsonString;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -              console.log('保存url')
 | 
	
		
			
				|  |  | -              console.log(jsonString)
 | 
	
		
			
				|  |  | -              console.log('保存url结束')
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | +      let report = new window.Stimulsoft.Report.StiReport();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            let report = new window.Stimulsoft.Report.StiReport();
 | 
	
		
			
				|  |  | +      report.styles.loadFile('static/Plugins/reports/css/Styles.sts')
 | 
	
		
			
				|  |  | +      report.applyStyles()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            report.styles.loadFile('static/Plugins/reports/css/Styles.sts')
 | 
	
		
			
				|  |  | -            report.applyStyles()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +      console.log("从 url 报表");
 | 
	
		
			
				|  |  | +      console.log(url)
 | 
	
		
			
				|  |  | +      console.log("结束");
 | 
	
		
			
				|  |  | +      if (url) {
 | 
	
		
			
				|  |  | +        report.load(url)
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            console.log("从 url 报表");
 | 
	
		
			
				|  |  | -            console.log(url)
 | 
	
		
			
				|  |  | -        console.log("结束");
 | 
	
		
			
				|  |  | -            if (url) {
 | 
	
		
			
				|  |  | -              report.load(url)
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | +      // 加载文件
 | 
	
		
			
				|  |  | +      // if (this.id) {
 | 
	
		
			
				|  |  | +      //   billsDetail(this.id).then(res => {
 | 
	
		
			
				|  |  | +      //     var data = res.data.data
 | 
	
		
			
				|  |  | +      //     data.pageOne = 'Page : 1 of 1'
 | 
	
		
			
				|  |  | +      //     // 处理超长数据
 | 
	
		
			
				|  |  | +      //     if (data.hshipperDetails) {
 | 
	
		
			
				|  |  | +      //       var consignerIndex2 = data.hshipperDetails.indexOf( '\n' )
 | 
	
		
			
				|  |  | +      //       for (let i = 0; i < 4; i++) {
 | 
	
		
			
				|  |  | +      //         consignerIndex2 = data.hshipperDetails.indexOf( '\n', consignerIndex2 + 1 );
 | 
	
		
			
				|  |  | +      //       }
 | 
	
		
			
				|  |  | +      //       if (consignerIndex2 != -1) {
 | 
	
		
			
				|  |  | +      //         var hshipperDetails = data.hshipperDetails.substring(consignerIndex2 + 2, data.hshipperDetails.length)
 | 
	
		
			
				|  |  | +      //         data.hshipperDetails = data.hshipperDetails.substring(0, consignerIndex2) + ' *'
 | 
	
		
			
				|  |  | +      //         data.commodityDescr += '\n*' + hshipperDetails
 | 
	
		
			
				|  |  | +      //       }
 | 
	
		
			
				|  |  | +      //     }
 | 
	
		
			
				|  |  | +      //
 | 
	
		
			
				|  |  | +      //     if (data.hconsigneeDetails) {
 | 
	
		
			
				|  |  | +      //       var consigneeIndex2 = data.hconsigneeDetails.indexOf( '\n' )
 | 
	
		
			
				|  |  | +      //       for (let i = 0; i < 3; i++) {
 | 
	
		
			
				|  |  | +      //         consigneeIndex2 = data.hconsigneeDetails.indexOf( '\n', consigneeIndex2 + 1 );
 | 
	
		
			
				|  |  | +      //       }
 | 
	
		
			
				|  |  | +      //       if (consigneeIndex2 != -1) {
 | 
	
		
			
				|  |  | +      //         var hconsigneeDetails = data.hconsigneeDetails.substring(consigneeIndex2 + 2, data.hconsigneeDetails.length)
 | 
	
		
			
				|  |  | +      //         data.hconsigneeDetails = data.hconsigneeDetails.substring(0, consigneeIndex2) + ' **'
 | 
	
		
			
				|  |  | +      //         data.commodityDescr += '\n**' + hconsigneeDetails
 | 
	
		
			
				|  |  | +      //       }
 | 
	
		
			
				|  |  | +      //     }
 | 
	
		
			
				|  |  | +      //
 | 
	
		
			
				|  |  | +      //     if (data.hnotifyDetails) {
 | 
	
		
			
				|  |  | +      //       var notifierIndex2 = data.hnotifyDetails.indexOf( '\n' )
 | 
	
		
			
				|  |  | +      //       for (let i = 0; i < 3; i++) {
 | 
	
		
			
				|  |  | +      //         notifierIndex2 = data.hnotifyDetails.indexOf( '\n', notifierIndex2 + 1 );
 | 
	
		
			
				|  |  | +      //       }
 | 
	
		
			
				|  |  | +      //       if (notifierIndex2 != -1) {
 | 
	
		
			
				|  |  | +      //         var hnotifyDetails = data.hnotifyDetails.substring(notifierIndex2 + 2, data.hnotifyDetails.length)
 | 
	
		
			
				|  |  | +      //         data.hnotifyDetails = data.hnotifyDetails.substring(0, notifierIndex2) + ' ***'
 | 
	
		
			
				|  |  | +      //         data.commodityDescr += '\n***' + hnotifyDetails
 | 
	
		
			
				|  |  | +      //       }
 | 
	
		
			
				|  |  | +      //     }
 | 
	
		
			
				|  |  | +      //
 | 
	
		
			
				|  |  | +      //     // 处理箱号
 | 
	
		
			
				|  |  | +      //     if (this.isPrintTheBoxNumber) {
 | 
	
		
			
				|  |  | +      //       data.commodityDescr += '\n.\n.\n'
 | 
	
		
			
				|  |  | +      //     }
 | 
	
		
			
				|  |  | +      //
 | 
	
		
			
				|  |  | +      //     // PLACE & DATE OF ISSUE
 | 
	
		
			
				|  |  | +      //     data.placeAndDateOfIssue = ''
 | 
	
		
			
				|  |  | +      //     if (data.issueAt) {
 | 
	
		
			
				|  |  | +      //       data.placeAndDateOfIssue += data.issueAt
 | 
	
		
			
				|  |  | +      //     }
 | 
	
		
			
				|  |  | +      //     if (data.issueDate) {
 | 
	
		
			
				|  |  | +      //       let date = new Date(data.issueDate.replace(/-/g,'/'));
 | 
	
		
			
				|  |  | +      //       let yyyy = date.getFullYear();
 | 
	
		
			
				|  |  | +      //       let mmmm = date.toDateString().split(" ")[1]
 | 
	
		
			
				|  |  | +      //       let dd = date.getDate()
 | 
	
		
			
				|  |  | +      //       data.placeAndDateOfIssue += ', ' + dd + '-' + mmmm + '-' + yyyy
 | 
	
		
			
				|  |  | +      //     }
 | 
	
		
			
				|  |  | +      //
 | 
	
		
			
				|  |  | +      //     // Total number of containers or packages received by the Carriers
 | 
	
		
			
				|  |  | +      //     if (data.preContainersList) {
 | 
	
		
			
				|  |  | +      //       let boxMap = new Map();
 | 
	
		
			
				|  |  | +      //       for (let boxQuantity of data.preContainersList) {
 | 
	
		
			
				|  |  | +      //         if (boxMap.get(boxQuantity.cntrTypeCode)) {
 | 
	
		
			
				|  |  | +      //           let v = boxMap.get(boxQuantity.cntrTypeCode)
 | 
	
		
			
				|  |  | +      //           boxMap.set(boxQuantity.cntrTypeCode, v + boxQuantity.quantity)
 | 
	
		
			
				|  |  | +      //         } else {
 | 
	
		
			
				|  |  | +      //           boxMap.set(boxQuantity.cntrTypeCode, boxQuantity.quantity)
 | 
	
		
			
				|  |  | +      //         }
 | 
	
		
			
				|  |  | +      //       }
 | 
	
		
			
				|  |  | +      //       let boxs = ''
 | 
	
		
			
				|  |  | +      //       boxMap.forEach(function (value, key, map) {
 | 
	
		
			
				|  |  | +      //         boxs += value + 'x' + key + ', '
 | 
	
		
			
				|  |  | +      //       })
 | 
	
		
			
				|  |  | +      //       boxs = boxs.substring(0, boxs.length - 2)
 | 
	
		
			
				|  |  | +      //
 | 
	
		
			
				|  |  | +      //       data.boxQuantity = boxs + ' CONTAINER(S) ONLY'
 | 
	
		
			
				|  |  | +      //     }
 | 
	
		
			
				|  |  | +      //
 | 
	
		
			
				|  |  | +      //     // Number of original B/Ls
 | 
	
		
			
				|  |  | +      //     if (data.numberOfObl) {
 | 
	
		
			
				|  |  | +      //       data.numberOfObl += ' (' + data.numberOfOblDigit + ')'
 | 
	
		
			
				|  |  | +      //     }
 | 
	
		
			
				|  |  | +      //
 | 
	
		
			
				|  |  | +      //     if (data.commodityDescr) {
 | 
	
		
			
				|  |  | +      //       var descriptionIndex2 = data.commodityDescr.indexOf( '\n' )
 | 
	
		
			
				|  |  | +      //       for (let i = 0; i < 19; i++) {
 | 
	
		
			
				|  |  | +      //         descriptionIndex2 = data.commodityDescr.indexOf( '\n', descriptionIndex2 + 1 );
 | 
	
		
			
				|  |  | +      //       }
 | 
	
		
			
				|  |  | +      //       if (descriptionIndex2 != -1) {
 | 
	
		
			
				|  |  | +      //         data.pageOne = 'Page : 1 of 2'
 | 
	
		
			
				|  |  | +      //         data.pageTwo = 'Page : 2 of 2'
 | 
	
		
			
				|  |  | +      //         var extraLongText = data.commodityDescr.substring(descriptionIndex2 + 2, data.commodityDescr.length)
 | 
	
		
			
				|  |  | +      //         data.commodityDescr = data.commodityDescr.substring(0, descriptionIndex2)
 | 
	
		
			
				|  |  | +      //         data.extraLongTips = '** TO BE CONTINUED ON ATTACHED LIST **'
 | 
	
		
			
				|  |  | +      //         data.extraLongText = extraLongText
 | 
	
		
			
				|  |  | +      //       }
 | 
	
		
			
				|  |  | +      //     }
 | 
	
		
			
				|  |  | +      //     var dataSet = new Stimulsoft.System.Data.DataSet(
 | 
	
		
			
				|  |  | +      //       'reportData'
 | 
	
		
			
				|  |  | +      //     )
 | 
	
		
			
				|  |  | +      //     dataSet.readJson(data)
 | 
	
		
			
				|  |  | +      //     report.regData('reportData', 'reportData', dataSet)
 | 
	
		
			
				|  |  | +      //     // 从模版和数据加载报表
 | 
	
		
			
				|  |  | +      //     // loadReport(report, '', {})
 | 
	
		
			
				|  |  | +      //
 | 
	
		
			
				|  |  | +      //     designer.report = report
 | 
	
		
			
				|  |  | +      //   })
 | 
	
		
			
				|  |  | +      // }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      // let data = [
 | 
	
		
			
				|  |  | +      //   {
 | 
	
		
			
				|  |  | +      //     id: 2,
 | 
	
		
			
				|  |  | +      //     billNo: 'JOB NO',
 | 
	
		
			
				|  |  | +      //     billDate: 'DATE',
 | 
	
		
			
				|  |  | +      //     operatorName: 'OP',
 | 
	
		
			
				|  |  | +      //     bookingNo: 'bookingNo',
 | 
	
		
			
				|  |  | +      //     mblno: 'ob/l no',
 | 
	
		
			
				|  |  | +      //     carrierCnName: 'CARRIER',
 | 
	
		
			
				|  |  | +      //     polCnName: 'POL',
 | 
	
		
			
				|  |  | +      //     vesselCnName: 'vsl/voy',
 | 
	
		
			
				|  |  | +      //     voyageNo: 'vsl/voy',
 | 
	
		
			
				|  |  | +      //     podCnName: 'POD',
 | 
	
		
			
				|  |  | +      //     cyCnName: 'DEPOT',
 | 
	
		
			
				|  |  | +      //     etd: 'etd/eta',
 | 
	
		
			
				|  |  | +      //     eta: 'etd/eta',
 | 
	
		
			
				|  |  | +      //     mpaymode: 'freight / freight',
 | 
	
		
			
				|  |  | +      //     volume: '箱型箱量',
 | 
	
		
			
				|  |  | +      //     hblno: 'hb/l no',
 | 
	
		
			
				|  |  | +      //     srcType: 'analysis1',
 | 
	
		
			
				|  |  | +      //     srcCnName: 'analysis2',
 | 
	
		
			
				|  |  | +      //     corpCnName: 'analysis3',
 | 
	
		
			
				|  |  | +      //     list: [
 | 
	
		
			
				|  |  | +      //       {
 | 
	
		
			
				|  |  | +      //         id:1,
 | 
	
		
			
				|  |  | +      //         pid:2,
 | 
	
		
			
				|  |  | +      //         feeCnNameData: 'fee list1',
 | 
	
		
			
				|  |  | +      //         usd: 'usd',
 | 
	
		
			
				|  |  | +      //         rmb: 'rmb',
 | 
	
		
			
				|  |  | +      //         tr: '税',
 | 
	
		
			
				|  |  | +      //         corpCnName: 'customer',
 | 
	
		
			
				|  |  | +      //       },
 | 
	
		
			
				|  |  | +      //       {
 | 
	
		
			
				|  |  | +      //         id:2,
 | 
	
		
			
				|  |  | +      //         pid:2,
 | 
	
		
			
				|  |  | +      //         feeCnNameData: 'fee list2',
 | 
	
		
			
				|  |  | +      //         usd: 'usd',
 | 
	
		
			
				|  |  | +      //         rmb: 'rmb',
 | 
	
		
			
				|  |  | +      //         tr: '税',
 | 
	
		
			
				|  |  | +      //         corpCnName: 'customer',
 | 
	
		
			
				|  |  | +      //       },
 | 
	
		
			
				|  |  | +      //     ]
 | 
	
		
			
				|  |  | +      //
 | 
	
		
			
				|  |  | +      //   }, {
 | 
	
		
			
				|  |  | +      //       id:3,
 | 
	
		
			
				|  |  | +      //     billNo: 'JOB NO',
 | 
	
		
			
				|  |  | +      //     billDate: 'DATE',
 | 
	
		
			
				|  |  | +      //     operatorName: 'OP',
 | 
	
		
			
				|  |  | +      //     bookingNo: 'bookingNo',
 | 
	
		
			
				|  |  | +      //     mblno: 'ob/l no',
 | 
	
		
			
				|  |  | +      //     carrierCnName: 'CARRIER',
 | 
	
		
			
				|  |  | +      //     polCnName: 'POL',
 | 
	
		
			
				|  |  | +      //     vesselCnName: 'vsl/voy',
 | 
	
		
			
				|  |  | +      //     voyageNo: 'vsl/voy',
 | 
	
		
			
				|  |  | +      //     podCnName: 'POD',
 | 
	
		
			
				|  |  | +      //     cyCnName: 'DEPOT',
 | 
	
		
			
				|  |  | +      //     etd: 'etd/eta',
 | 
	
		
			
				|  |  | +      //     eta: 'etd/eta',
 | 
	
		
			
				|  |  | +      //     mpaymode: 'freight / freight',
 | 
	
		
			
				|  |  | +      //     volume: '箱型箱量',
 | 
	
		
			
				|  |  | +      //
 | 
	
		
			
				|  |  | +      //     hblno: 'hb/l no',
 | 
	
		
			
				|  |  | +      //     srcType: 'analysis1',
 | 
	
		
			
				|  |  | +      //     srcCnName: 'analysis2',
 | 
	
		
			
				|  |  | +      //     corpCnName: 'analysis3',
 | 
	
		
			
				|  |  | +      //     list: [
 | 
	
		
			
				|  |  | +      //       {
 | 
	
		
			
				|  |  | +      //         id:3,
 | 
	
		
			
				|  |  | +      //         pid:3,
 | 
	
		
			
				|  |  | +      //         feeCnNameData: 'fee list',
 | 
	
		
			
				|  |  | +      //         usd: 'usd',
 | 
	
		
			
				|  |  | +      //         rmb: 'rmb',
 | 
	
		
			
				|  |  | +      //         tr: '税',
 | 
	
		
			
				|  |  | +      //         corpCnName: 'customer',
 | 
	
		
			
				|  |  | +      //       },
 | 
	
		
			
				|  |  | +      //       {
 | 
	
		
			
				|  |  | +      //         id:4,
 | 
	
		
			
				|  |  | +      //         pid:3,
 | 
	
		
			
				|  |  | +      //         feeCnNameData: 'fee list',
 | 
	
		
			
				|  |  | +      //         usd: 'usd',
 | 
	
		
			
				|  |  | +      //         rmb: 'rmb',
 | 
	
		
			
				|  |  | +      //         tr: '税',
 | 
	
		
			
				|  |  | +      //         corpCnName: 'customer',
 | 
	
		
			
				|  |  | +      //       },
 | 
	
		
			
				|  |  | +      //     ]
 | 
	
		
			
				|  |  | +      //
 | 
	
		
			
				|  |  | +      //   }, {
 | 
	
		
			
				|  |  | +      //       id:4,
 | 
	
		
			
				|  |  | +      //     billNo: 'JOB NO',
 | 
	
		
			
				|  |  | +      //     billDate: 'DATE',
 | 
	
		
			
				|  |  | +      //     operatorName: 'OP',
 | 
	
		
			
				|  |  | +      //     bookingNo: 'bookingNo',
 | 
	
		
			
				|  |  | +      //     mblno: 'ob/l no',
 | 
	
		
			
				|  |  | +      //     carrierCnName: 'CARRIER',
 | 
	
		
			
				|  |  | +      //     polCnName: 'POL',
 | 
	
		
			
				|  |  | +      //     vesselCnName: 'vsl/voy',
 | 
	
		
			
				|  |  | +      //     voyageNo: 'vsl/voy',
 | 
	
		
			
				|  |  | +      //     podCnName: 'POD',
 | 
	
		
			
				|  |  | +      //     cyCnName: 'DEPOT',
 | 
	
		
			
				|  |  | +      //     etd: 'etd/eta',
 | 
	
		
			
				|  |  | +      //     eta: 'etd/eta',
 | 
	
		
			
				|  |  | +      //     mpaymode: 'freight / freight',
 | 
	
		
			
				|  |  | +      //     volume: '箱型箱量',
 | 
	
		
			
				|  |  | +      //
 | 
	
		
			
				|  |  | +      //     hblno: 'hb/l no',
 | 
	
		
			
				|  |  | +      //     srcType: 'analysis1',
 | 
	
		
			
				|  |  | +      //     srcCnName: 'analysis2',
 | 
	
		
			
				|  |  | +      //     corpCnName: 'analysis3',
 | 
	
		
			
				|  |  | +      //     list: [
 | 
	
		
			
				|  |  | +      //       {
 | 
	
		
			
				|  |  | +      //         id:10,
 | 
	
		
			
				|  |  | +      //         pid:4,
 | 
	
		
			
				|  |  | +      //         feeCnNameData: 'fee list',
 | 
	
		
			
				|  |  | +      //         usd: 'usd',
 | 
	
		
			
				|  |  | +      //         rmb: 'rmb',
 | 
	
		
			
				|  |  | +      //         tr: '税',
 | 
	
		
			
				|  |  | +      //         corpCnName: 'customer',
 | 
	
		
			
				|  |  | +      //       },
 | 
	
		
			
				|  |  | +      //       {
 | 
	
		
			
				|  |  | +      //         id:11,
 | 
	
		
			
				|  |  | +      //         pid:4,
 | 
	
		
			
				|  |  | +      //         feeCnNameData: 'fee list',
 | 
	
		
			
				|  |  | +      //         usd: 'usd',
 | 
	
		
			
				|  |  | +      //         rmb: 'rmb',
 | 
	
		
			
				|  |  | +      //         tr: '税',
 | 
	
		
			
				|  |  | +      //         corpCnName: 'customer',
 | 
	
		
			
				|  |  | +      //       },
 | 
	
		
			
				|  |  | +      //     ]
 | 
	
		
			
				|  |  | +      //   },
 | 
	
		
			
				|  |  | +      // ]
 | 
	
		
			
				|  |  | +      // 获取报表数据
 | 
	
		
			
				|  |  | +      const res = await reportsGetReportData({
 | 
	
		
			
				|  |  | +        billId: this.id,
 | 
	
		
			
				|  |  | +        reportCode: this.form.code,
 | 
	
		
			
				|  |  | +        groupCode: this.form.groupCode,
 | 
	
		
			
				|  |  | +        type: 'HYCK'
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +      // 获取的数据赋值
 | 
	
		
			
				|  |  | +      console.log(res.data.data, 584)
 | 
	
		
			
				|  |  | +      if (!res.data.data.data) {
 | 
	
		
			
				|  |  | +        var data = res.data.data.data
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        var data = res.data.data.data
 | 
	
		
			
				|  |  | +        // var data = res.data.data.data.map((item,index)=>{
 | 
	
		
			
				|  |  | +        //     item.index = index
 | 
	
		
			
				|  |  | +        //     item.feeCenterList.forEach(ite=>{
 | 
	
		
			
				|  |  | +        //         ite.ppid = index
 | 
	
		
			
				|  |  | +        //     })
 | 
	
		
			
				|  |  | +        //     return item
 | 
	
		
			
				|  |  | +        // })
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            // 加载文件
 | 
	
		
			
				|  |  | -            // if (this.id) {
 | 
	
		
			
				|  |  | -            //   billsDetail(this.id).then(res => {
 | 
	
		
			
				|  |  | -            //     var data = res.data.data
 | 
	
		
			
				|  |  | -            //     data.pageOne = 'Page : 1 of 1'
 | 
	
		
			
				|  |  | -            //     // 处理超长数据
 | 
	
		
			
				|  |  | -            //     if (data.hshipperDetails) {
 | 
	
		
			
				|  |  | -            //       var consignerIndex2 = data.hshipperDetails.indexOf( '\n' )
 | 
	
		
			
				|  |  | -            //       for (let i = 0; i < 4; i++) {
 | 
	
		
			
				|  |  | -            //         consignerIndex2 = data.hshipperDetails.indexOf( '\n', consignerIndex2 + 1 );
 | 
	
		
			
				|  |  | -            //       }
 | 
	
		
			
				|  |  | -            //       if (consignerIndex2 != -1) {
 | 
	
		
			
				|  |  | -            //         var hshipperDetails = data.hshipperDetails.substring(consignerIndex2 + 2, data.hshipperDetails.length)
 | 
	
		
			
				|  |  | -            //         data.hshipperDetails = data.hshipperDetails.substring(0, consignerIndex2) + ' *'
 | 
	
		
			
				|  |  | -            //         data.commodityDescr += '\n*' + hshipperDetails
 | 
	
		
			
				|  |  | -            //       }
 | 
	
		
			
				|  |  | -            //     }
 | 
	
		
			
				|  |  | -            //
 | 
	
		
			
				|  |  | -            //     if (data.hconsigneeDetails) {
 | 
	
		
			
				|  |  | -            //       var consigneeIndex2 = data.hconsigneeDetails.indexOf( '\n' )
 | 
	
		
			
				|  |  | -            //       for (let i = 0; i < 3; i++) {
 | 
	
		
			
				|  |  | -            //         consigneeIndex2 = data.hconsigneeDetails.indexOf( '\n', consigneeIndex2 + 1 );
 | 
	
		
			
				|  |  | -            //       }
 | 
	
		
			
				|  |  | -            //       if (consigneeIndex2 != -1) {
 | 
	
		
			
				|  |  | -            //         var hconsigneeDetails = data.hconsigneeDetails.substring(consigneeIndex2 + 2, data.hconsigneeDetails.length)
 | 
	
		
			
				|  |  | -            //         data.hconsigneeDetails = data.hconsigneeDetails.substring(0, consigneeIndex2) + ' **'
 | 
	
		
			
				|  |  | -            //         data.commodityDescr += '\n**' + hconsigneeDetails
 | 
	
		
			
				|  |  | -            //       }
 | 
	
		
			
				|  |  | -            //     }
 | 
	
		
			
				|  |  | -            //
 | 
	
		
			
				|  |  | -            //     if (data.hnotifyDetails) {
 | 
	
		
			
				|  |  | -            //       var notifierIndex2 = data.hnotifyDetails.indexOf( '\n' )
 | 
	
		
			
				|  |  | -            //       for (let i = 0; i < 3; i++) {
 | 
	
		
			
				|  |  | -            //         notifierIndex2 = data.hnotifyDetails.indexOf( '\n', notifierIndex2 + 1 );
 | 
	
		
			
				|  |  | -            //       }
 | 
	
		
			
				|  |  | -            //       if (notifierIndex2 != -1) {
 | 
	
		
			
				|  |  | -            //         var hnotifyDetails = data.hnotifyDetails.substring(notifierIndex2 + 2, data.hnotifyDetails.length)
 | 
	
		
			
				|  |  | -            //         data.hnotifyDetails = data.hnotifyDetails.substring(0, notifierIndex2) + ' ***'
 | 
	
		
			
				|  |  | -            //         data.commodityDescr += '\n***' + hnotifyDetails
 | 
	
		
			
				|  |  | -            //       }
 | 
	
		
			
				|  |  | -            //     }
 | 
	
		
			
				|  |  | -            //
 | 
	
		
			
				|  |  | -            //     // 处理箱号
 | 
	
		
			
				|  |  | -            //     if (this.isPrintTheBoxNumber) {
 | 
	
		
			
				|  |  | -            //       data.commodityDescr += '\n.\n.\n'
 | 
	
		
			
				|  |  | -            //     }
 | 
	
		
			
				|  |  | -            //
 | 
	
		
			
				|  |  | -            //     // PLACE & DATE OF ISSUE
 | 
	
		
			
				|  |  | -            //     data.placeAndDateOfIssue = ''
 | 
	
		
			
				|  |  | -            //     if (data.issueAt) {
 | 
	
		
			
				|  |  | -            //       data.placeAndDateOfIssue += data.issueAt
 | 
	
		
			
				|  |  | -            //     }
 | 
	
		
			
				|  |  | -            //     if (data.issueDate) {
 | 
	
		
			
				|  |  | -            //       let date = new Date(data.issueDate.replace(/-/g,'/'));
 | 
	
		
			
				|  |  | -            //       let yyyy = date.getFullYear();
 | 
	
		
			
				|  |  | -            //       let mmmm = date.toDateString().split(" ")[1]
 | 
	
		
			
				|  |  | -            //       let dd = date.getDate()
 | 
	
		
			
				|  |  | -            //       data.placeAndDateOfIssue += ', ' + dd + '-' + mmmm + '-' + yyyy
 | 
	
		
			
				|  |  | -            //     }
 | 
	
		
			
				|  |  | -            //
 | 
	
		
			
				|  |  | -            //     // Total number of containers or packages received by the Carriers
 | 
	
		
			
				|  |  | -            //     if (data.preContainersList) {
 | 
	
		
			
				|  |  | -            //       let boxMap = new Map();
 | 
	
		
			
				|  |  | -            //       for (let boxQuantity of data.preContainersList) {
 | 
	
		
			
				|  |  | -            //         if (boxMap.get(boxQuantity.cntrTypeCode)) {
 | 
	
		
			
				|  |  | -            //           let v = boxMap.get(boxQuantity.cntrTypeCode)
 | 
	
		
			
				|  |  | -            //           boxMap.set(boxQuantity.cntrTypeCode, v + boxQuantity.quantity)
 | 
	
		
			
				|  |  | -            //         } else {
 | 
	
		
			
				|  |  | -            //           boxMap.set(boxQuantity.cntrTypeCode, boxQuantity.quantity)
 | 
	
		
			
				|  |  | -            //         }
 | 
	
		
			
				|  |  | -            //       }
 | 
	
		
			
				|  |  | -            //       let boxs = ''
 | 
	
		
			
				|  |  | -            //       boxMap.forEach(function (value, key, map) {
 | 
	
		
			
				|  |  | -            //         boxs += value + 'x' + key + ', '
 | 
	
		
			
				|  |  | -            //       })
 | 
	
		
			
				|  |  | -            //       boxs = boxs.substring(0, boxs.length - 2)
 | 
	
		
			
				|  |  | -            //
 | 
	
		
			
				|  |  | -            //       data.boxQuantity = boxs + ' CONTAINER(S) ONLY'
 | 
	
		
			
				|  |  | -            //     }
 | 
	
		
			
				|  |  | -            //
 | 
	
		
			
				|  |  | -            //     // Number of original B/Ls
 | 
	
		
			
				|  |  | -            //     if (data.numberOfObl) {
 | 
	
		
			
				|  |  | -            //       data.numberOfObl += ' (' + data.numberOfOblDigit + ')'
 | 
	
		
			
				|  |  | -            //     }
 | 
	
		
			
				|  |  | -            //
 | 
	
		
			
				|  |  | -            //     if (data.commodityDescr) {
 | 
	
		
			
				|  |  | -            //       var descriptionIndex2 = data.commodityDescr.indexOf( '\n' )
 | 
	
		
			
				|  |  | -            //       for (let i = 0; i < 19; i++) {
 | 
	
		
			
				|  |  | -            //         descriptionIndex2 = data.commodityDescr.indexOf( '\n', descriptionIndex2 + 1 );
 | 
	
		
			
				|  |  | -            //       }
 | 
	
		
			
				|  |  | -            //       if (descriptionIndex2 != -1) {
 | 
	
		
			
				|  |  | -            //         data.pageOne = 'Page : 1 of 2'
 | 
	
		
			
				|  |  | -            //         data.pageTwo = 'Page : 2 of 2'
 | 
	
		
			
				|  |  | -            //         var extraLongText = data.commodityDescr.substring(descriptionIndex2 + 2, data.commodityDescr.length)
 | 
	
		
			
				|  |  | -            //         data.commodityDescr = data.commodityDescr.substring(0, descriptionIndex2)
 | 
	
		
			
				|  |  | -            //         data.extraLongTips = '** TO BE CONTINUED ON ATTACHED LIST **'
 | 
	
		
			
				|  |  | -            //         data.extraLongText = extraLongText
 | 
	
		
			
				|  |  | -            //       }
 | 
	
		
			
				|  |  | -            //     }
 | 
	
		
			
				|  |  | -            //     var dataSet = new Stimulsoft.System.Data.DataSet(
 | 
	
		
			
				|  |  | -            //       'reportData'
 | 
	
		
			
				|  |  | -            //     )
 | 
	
		
			
				|  |  | -            //     dataSet.readJson(data)
 | 
	
		
			
				|  |  | -            //     report.regData('reportData', 'reportData', dataSet)
 | 
	
		
			
				|  |  | -            //     // 从模版和数据加载报表
 | 
	
		
			
				|  |  | -            //     // loadReport(report, '', {})
 | 
	
		
			
				|  |  | -            //
 | 
	
		
			
				|  |  | -            //     designer.report = report
 | 
	
		
			
				|  |  | -            //   })
 | 
	
		
			
				|  |  | -            // }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        // let data = [
 | 
	
		
			
				|  |  | -        //   {
 | 
	
		
			
				|  |  | -        //     id: 2,
 | 
	
		
			
				|  |  | -        //     billNo: 'JOB NO',
 | 
	
		
			
				|  |  | -        //     billDate: 'DATE',
 | 
	
		
			
				|  |  | -        //     operatorName: 'OP',
 | 
	
		
			
				|  |  | -        //     bookingNo: 'bookingNo',
 | 
	
		
			
				|  |  | -        //     mblno: 'ob/l no',
 | 
	
		
			
				|  |  | -        //     carrierCnName: 'CARRIER',
 | 
	
		
			
				|  |  | -        //     polCnName: 'POL',
 | 
	
		
			
				|  |  | -        //     vesselCnName: 'vsl/voy',
 | 
	
		
			
				|  |  | -        //     voyageNo: 'vsl/voy',
 | 
	
		
			
				|  |  | -        //     podCnName: 'POD',
 | 
	
		
			
				|  |  | -        //     cyCnName: 'DEPOT',
 | 
	
		
			
				|  |  | -        //     etd: 'etd/eta',
 | 
	
		
			
				|  |  | -        //     eta: 'etd/eta',
 | 
	
		
			
				|  |  | -        //     mpaymode: 'freight / freight',
 | 
	
		
			
				|  |  | -        //     volume: '箱型箱量',
 | 
	
		
			
				|  |  | -        //     hblno: 'hb/l no',
 | 
	
		
			
				|  |  | -        //     srcType: 'analysis1',
 | 
	
		
			
				|  |  | -        //     srcCnName: 'analysis2',
 | 
	
		
			
				|  |  | -        //     corpCnName: 'analysis3',
 | 
	
		
			
				|  |  | -        //     list: [
 | 
	
		
			
				|  |  | -        //       {
 | 
	
		
			
				|  |  | -        //         id:1,
 | 
	
		
			
				|  |  | -        //         pid:2,
 | 
	
		
			
				|  |  | -        //         feeCnNameData: 'fee list1',
 | 
	
		
			
				|  |  | -        //         usd: 'usd',
 | 
	
		
			
				|  |  | -        //         rmb: 'rmb',
 | 
	
		
			
				|  |  | -        //         tr: '税',
 | 
	
		
			
				|  |  | -        //         corpCnName: 'customer',
 | 
	
		
			
				|  |  | -        //       },
 | 
	
		
			
				|  |  | -        //       {
 | 
	
		
			
				|  |  | -        //         id:2,
 | 
	
		
			
				|  |  | -        //         pid:2,
 | 
	
		
			
				|  |  | -        //         feeCnNameData: 'fee list2',
 | 
	
		
			
				|  |  | -        //         usd: 'usd',
 | 
	
		
			
				|  |  | -        //         rmb: 'rmb',
 | 
	
		
			
				|  |  | -        //         tr: '税',
 | 
	
		
			
				|  |  | -        //         corpCnName: 'customer',
 | 
	
		
			
				|  |  | -        //       },
 | 
	
		
			
				|  |  | -        //     ]
 | 
	
		
			
				|  |  | -        //
 | 
	
		
			
				|  |  | -        //   }, {
 | 
	
		
			
				|  |  | -        //       id:3,
 | 
	
		
			
				|  |  | -        //     billNo: 'JOB NO',
 | 
	
		
			
				|  |  | -        //     billDate: 'DATE',
 | 
	
		
			
				|  |  | -        //     operatorName: 'OP',
 | 
	
		
			
				|  |  | -        //     bookingNo: 'bookingNo',
 | 
	
		
			
				|  |  | -        //     mblno: 'ob/l no',
 | 
	
		
			
				|  |  | -        //     carrierCnName: 'CARRIER',
 | 
	
		
			
				|  |  | -        //     polCnName: 'POL',
 | 
	
		
			
				|  |  | -        //     vesselCnName: 'vsl/voy',
 | 
	
		
			
				|  |  | -        //     voyageNo: 'vsl/voy',
 | 
	
		
			
				|  |  | -        //     podCnName: 'POD',
 | 
	
		
			
				|  |  | -        //     cyCnName: 'DEPOT',
 | 
	
		
			
				|  |  | -        //     etd: 'etd/eta',
 | 
	
		
			
				|  |  | -        //     eta: 'etd/eta',
 | 
	
		
			
				|  |  | -        //     mpaymode: 'freight / freight',
 | 
	
		
			
				|  |  | -        //     volume: '箱型箱量',
 | 
	
		
			
				|  |  | -        //
 | 
	
		
			
				|  |  | -        //     hblno: 'hb/l no',
 | 
	
		
			
				|  |  | -        //     srcType: 'analysis1',
 | 
	
		
			
				|  |  | -        //     srcCnName: 'analysis2',
 | 
	
		
			
				|  |  | -        //     corpCnName: 'analysis3',
 | 
	
		
			
				|  |  | -        //     list: [
 | 
	
		
			
				|  |  | -        //       {
 | 
	
		
			
				|  |  | -        //         id:3,
 | 
	
		
			
				|  |  | -        //         pid:3,
 | 
	
		
			
				|  |  | -        //         feeCnNameData: 'fee list',
 | 
	
		
			
				|  |  | -        //         usd: 'usd',
 | 
	
		
			
				|  |  | -        //         rmb: 'rmb',
 | 
	
		
			
				|  |  | -        //         tr: '税',
 | 
	
		
			
				|  |  | -        //         corpCnName: 'customer',
 | 
	
		
			
				|  |  | -        //       },
 | 
	
		
			
				|  |  | -        //       {
 | 
	
		
			
				|  |  | -        //         id:4,
 | 
	
		
			
				|  |  | -        //         pid:3,
 | 
	
		
			
				|  |  | -        //         feeCnNameData: 'fee list',
 | 
	
		
			
				|  |  | -        //         usd: 'usd',
 | 
	
		
			
				|  |  | -        //         rmb: 'rmb',
 | 
	
		
			
				|  |  | -        //         tr: '税',
 | 
	
		
			
				|  |  | -        //         corpCnName: 'customer',
 | 
	
		
			
				|  |  | -        //       },
 | 
	
		
			
				|  |  | -        //     ]
 | 
	
		
			
				|  |  | -        //
 | 
	
		
			
				|  |  | -        //   }, {
 | 
	
		
			
				|  |  | -        //       id:4,
 | 
	
		
			
				|  |  | -        //     billNo: 'JOB NO',
 | 
	
		
			
				|  |  | -        //     billDate: 'DATE',
 | 
	
		
			
				|  |  | -        //     operatorName: 'OP',
 | 
	
		
			
				|  |  | -        //     bookingNo: 'bookingNo',
 | 
	
		
			
				|  |  | -        //     mblno: 'ob/l no',
 | 
	
		
			
				|  |  | -        //     carrierCnName: 'CARRIER',
 | 
	
		
			
				|  |  | -        //     polCnName: 'POL',
 | 
	
		
			
				|  |  | -        //     vesselCnName: 'vsl/voy',
 | 
	
		
			
				|  |  | -        //     voyageNo: 'vsl/voy',
 | 
	
		
			
				|  |  | -        //     podCnName: 'POD',
 | 
	
		
			
				|  |  | -        //     cyCnName: 'DEPOT',
 | 
	
		
			
				|  |  | -        //     etd: 'etd/eta',
 | 
	
		
			
				|  |  | -        //     eta: 'etd/eta',
 | 
	
		
			
				|  |  | -        //     mpaymode: 'freight / freight',
 | 
	
		
			
				|  |  | -        //     volume: '箱型箱量',
 | 
	
		
			
				|  |  | -        //
 | 
	
		
			
				|  |  | -        //     hblno: 'hb/l no',
 | 
	
		
			
				|  |  | -        //     srcType: 'analysis1',
 | 
	
		
			
				|  |  | -        //     srcCnName: 'analysis2',
 | 
	
		
			
				|  |  | -        //     corpCnName: 'analysis3',
 | 
	
		
			
				|  |  | -        //     list: [
 | 
	
		
			
				|  |  | -        //       {
 | 
	
		
			
				|  |  | -        //         id:10,
 | 
	
		
			
				|  |  | -        //         pid:4,
 | 
	
		
			
				|  |  | -        //         feeCnNameData: 'fee list',
 | 
	
		
			
				|  |  | -        //         usd: 'usd',
 | 
	
		
			
				|  |  | -        //         rmb: 'rmb',
 | 
	
		
			
				|  |  | -        //         tr: '税',
 | 
	
		
			
				|  |  | -        //         corpCnName: 'customer',
 | 
	
		
			
				|  |  | -        //       },
 | 
	
		
			
				|  |  | -        //       {
 | 
	
		
			
				|  |  | -        //         id:11,
 | 
	
		
			
				|  |  | -        //         pid:4,
 | 
	
		
			
				|  |  | -        //         feeCnNameData: 'fee list',
 | 
	
		
			
				|  |  | -        //         usd: 'usd',
 | 
	
		
			
				|  |  | -        //         rmb: 'rmb',
 | 
	
		
			
				|  |  | -        //         tr: '税',
 | 
	
		
			
				|  |  | -        //         corpCnName: 'customer',
 | 
	
		
			
				|  |  | -        //       },
 | 
	
		
			
				|  |  | -        //     ]
 | 
	
		
			
				|  |  | -        //   },
 | 
	
		
			
				|  |  | -        // ]
 | 
	
		
			
				|  |  | -          // 获取报表数据
 | 
	
		
			
				|  |  | -           const res = await reportsGetReportData({
 | 
	
		
			
				|  |  | -              billId:this.id,
 | 
	
		
			
				|  |  | -              reportCode:this.form.code,
 | 
	
		
			
				|  |  | -              groupCode:this.form.groupCode,
 | 
	
		
			
				|  |  | -               type:'HYCK'
 | 
	
		
			
				|  |  | -          })
 | 
	
		
			
				|  |  | -          // 获取的数据赋值
 | 
	
		
			
				|  |  | -          console.log(res.data.data,584)
 | 
	
		
			
				|  |  | -          if (!res.data.data.data) {
 | 
	
		
			
				|  |  | -              var data = res.data.data.data
 | 
	
		
			
				|  |  | -          }else {
 | 
	
		
			
				|  |  | -              var data = res.data.data.data
 | 
	
		
			
				|  |  | -              // var data = res.data.data.data.map((item,index)=>{
 | 
	
		
			
				|  |  | -              //     item.index = index
 | 
	
		
			
				|  |  | -              //     item.feeCenterList.forEach(ite=>{
 | 
	
		
			
				|  |  | -              //         ite.ppid = index
 | 
	
		
			
				|  |  | -              //     })
 | 
	
		
			
				|  |  | -              //     return item
 | 
	
		
			
				|  |  | -              // })
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +      var dataSet = new Stimulsoft.System.Data.DataSet(
 | 
	
		
			
				|  |  | +        'reportData'
 | 
	
		
			
				|  |  | +      )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -              var dataSet = new Stimulsoft.System.Data.DataSet(
 | 
	
		
			
				|  |  | -                'reportData'
 | 
	
		
			
				|  |  | -              )
 | 
	
		
			
				|  |  | +      dataSet.readJson(data)
 | 
	
		
			
				|  |  | +      report.regData('reportData', 'reportData', dataSet)
 | 
	
		
			
				|  |  | +      // 从模版和数据加载报表
 | 
	
		
			
				|  |  | +      // loadReport(report, '', {})
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -              dataSet.readJson(data)
 | 
	
		
			
				|  |  | -              report.regData('reportData', 'reportData', dataSet)
 | 
	
		
			
				|  |  | -              // 从模版和数据加载报表
 | 
	
		
			
				|  |  | -              // loadReport(report, '', {})
 | 
	
		
			
				|  |  | +      designer.report = report
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -              designer.report = report
 | 
	
		
			
				|  |  | +      this.designer = designer
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            this.designer=designer
 | 
	
		
			
				|  |  | +      this.$refs.reportContainer.showContainer(
 | 
	
		
			
				|  |  | +        () => {
 | 
	
		
			
				|  |  | +          setTimeout(() => {
 | 
	
		
			
				|  |  | +            designer.renderHtml('reportContainer')
 | 
	
		
			
				|  |  | +            this.createDesignerButtons()
 | 
	
		
			
				|  |  | +          }, 50)
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        () => { },
 | 
	
		
			
				|  |  | +      )
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    // 打印报表获取数据
 | 
	
		
			
				|  |  | +    reportsGetReportDatafun(url, row) {
 | 
	
		
			
				|  |  | +      reportsGetReportData({
 | 
	
		
			
				|  |  | +        billId: this.id,
 | 
	
		
			
				|  |  | +        reportCode: row.classifyCode,
 | 
	
		
			
				|  |  | +        groupCode: row.groupCode,
 | 
	
		
			
				|  |  | +        type: 'HYCK'
 | 
	
		
			
				|  |  | +      }).then(res => {
 | 
	
		
			
				|  |  | +        this.handleReportPreview(url, res.data.data.data)
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    // 预览报表
 | 
	
		
			
				|  |  | +    handleReportPreview(url, row) {
 | 
	
		
			
				|  |  | +      Stimulsoft.Base.StiLicense.key = '6vJhGtLLLz2GNviWmUTrhSqnOItdDwjBylQzQcAOiHn0s4gy0Fr5YoUZ9V00Y0igCSFQzwEqYBh/N77k4f0fWXTHW5rqeBNLkaurJDenJ9o97TyqHs9HfvINK18Uwzsc/bG01Rq+x3H3Rf+g7AY92gvWmp7VA2Uxa30Q97f61siWz2dE5kdBVcCnSFzC6awE74JzDcJMj8OuxplqB1CYcpoPcOjKy1PiATlC3UsBaLEXsok1xxtRMQ283r282tkh8XQitsxtTczAJBxijuJNfziYhci2jResWXK51ygOOEbVAxmpflujkJ8oEVHkOA/CjX6bGx05pNZ6oSIu9H8deF94MyqIwcdeirCe60GbIQByQtLimfxbIZnO35X3fs/94av0ODfELqrQEpLrpU6FNeHttvlMc5UVrT4K+8lPbqR8Hq0PFWmFrbVIYSi7tAVFMMe2D1C59NWyLu3AkrD3No7YhLVh7LV0Tttr/8FrcZ8xirBPcMZCIGrRIesrHxOsZH2V8t/t0GXCnLLAWX+TNvdNXkB8cF2y9ZXf1enI064yE5dwMs2fQ0yOUG/xornE'
 | 
	
		
			
				|  |  | +      // Stimulsoft.Base.StiLicense.Key = '6vJhGtLLLz2GNviWmUTrhSqnOItdDwjBylQzQcAOiHkcgIvwL0jnpsDqRpWg5FI5kt2G7A0tYIcUygBh1sPs7plofUOqPB1a4HBIXJB621mau2oiAIj+ysU7gKUXfjn/D5BocmduNB+ZMiDGPxFrAp3PoD0nYNkkWh8r7gBZ1v/JZSXGE3bQDrCQCNSy6mgby+iFAMV8/PuZ1z77U+Xz3fkpbm6MYQXYp3cQooLGLUti7k1TFWrnawT0iEEDJ2iRcU9wLqn2g9UiWesEZtKwI/UmEI2T7nv5NbgV+CHguu6QU4WWzFpIgW+3LUnKCT/vCDY+ymzgycw9A9+HFSzARiPzgOaAuQYrFDpzhXV+ZeX31AxWlnzjDWqpfluygSNPtGul5gyNt2CEoJD1Yom0VN9fvRonYsMsimkFFx2AwyVpPcs+JfVBtpPbTcZscnzUdmiIvxv8Gcin6sNSibM6in/uUKFt3bVgW/XeMYa7MLGF53kvBSwi78poUDigA2n12SmghLR0AHxyEDIgZGOTbNI33GWu7ZsPBeUdGu55R8w='
 | 
	
		
			
				|  |  | +      Stimulsoft.Base.Localization.StiLocalization.addLocalizationFile('/reports/stimulsoft/Localization/zh-CHS.xml', true, 'zh-CHS')
 | 
	
		
			
				|  |  | +      Stimulsoft.Base.Localization.StiLocalization.setLocalizationFile('/reports/stimulsoft/Localization/zh-CHS.xml')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      // 工具栏
 | 
	
		
			
				|  |  | +      var options = new Stimulsoft.Viewer.StiViewerOptions()
 | 
	
		
			
				|  |  | +      options.height = '100%'
 | 
	
		
			
				|  |  | +      options.appearance.scrollbarsMode = true // 滚动条模式
 | 
	
		
			
				|  |  | +      options.toolbar.showDesignButton = false // 显示设计按钮
 | 
	
		
			
				|  |  | +      options.toolbar.showAboutButton = false // 显示关于按钮
 | 
	
		
			
				|  |  | +      options.toolbar.showResourcesButton = false // 显示资源按钮
 | 
	
		
			
				|  |  | +      options.toolbar.showFullScreenButton = false // 显示全屏按钮
 | 
	
		
			
				|  |  | +      options.toolbar.showOpenButton = false // 显示打开按钮
 | 
	
		
			
				|  |  | +      options.appearance.showTooltips = false // 显示工具提示
 | 
	
		
			
				|  |  | +      options.appearance.showDialogsHelp = false // 显示对话框帮助
 | 
	
		
			
				|  |  | +      options.exports.showExportToDocument = false // 显示导出到文档
 | 
	
		
			
				|  |  | +      options.toolbar.showParametersButton = true // 显示参数按钮
 | 
	
		
			
				|  |  | +      options.appearance.bookmarksPrint = true // 书签打印
 | 
	
		
			
				|  |  | +      // options.toolbar.showPrintButton = false // 打印按钮是否显示   下面直接自定义控制打印弹窗是否开启
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      // printDestination 参数:用于指定报表打印的目标位置,可以是打印机、PDF 文件或者直接打印到浏览器等。
 | 
	
		
			
				|  |  | +      // Stimulsoft.Viewer.StiPrintDestination.Direct:表示直接打印到打印机,即将报表内容直接发送至打印机进行打印。
 | 
	
		
			
				|  |  | +      // 通过设置不同的 printDestination 参数,你可以控制报表打印的行为,例如是直接打印到打印机,还是生成 PDF 文件,或者直接在浏览器中预览打印内容等。
 | 
	
		
			
				|  |  | +      options.toolbar.printDestination = Stimulsoft.Viewer.StiPrintDestination.Direct
 | 
	
		
			
				|  |  | +      // htmlRenderMode html渲染模式
 | 
	
		
			
				|  |  | +      options.appearance.htmlRenderMode = Stimulsoft.Report.Export.StiHtmlExportMode.Table
 | 
	
		
			
				|  |  | +      // 是创建一个 Stimulsoft 报表查看器的实例的代码
 | 
	
		
			
				|  |  | +      let viewer = new Stimulsoft.Viewer.StiViewer(options, 'StiViewer', false)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      // 报表
 | 
	
		
			
				|  |  | +      console.log("创建一个报表实例");
 | 
	
		
			
				|  |  | +      let report = new window.Stimulsoft.Report.StiReport();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      // 加载文件
 | 
	
		
			
				|  |  | +      console.log("从url加载报表");
 | 
	
		
			
				|  |  | +      // report.loadFile("/reports/stimulsoft/demos/SimpleList.mrt");
 | 
	
		
			
				|  |  | +      report.load(url)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      // 获取报表数据
 | 
	
		
			
				|  |  | +      var data = row
 | 
	
		
			
				|  |  | +      data.pageOne = 'Page : 1 of 1'
 | 
	
		
			
				|  |  | +      // 处理超长数据
 | 
	
		
			
				|  |  | +      if (data.hshipperDetails) {
 | 
	
		
			
				|  |  | +        var consignerIndex2 = data.hshipperDetails.indexOf('\n')
 | 
	
		
			
				|  |  | +        for (let i = 0; i < 4; i++) {
 | 
	
		
			
				|  |  | +          consignerIndex2 = data.hshipperDetails.indexOf('\n', consignerIndex2 + 1);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (consignerIndex2 != -1) {
 | 
	
		
			
				|  |  | +          var hshipperDetails = data.hshipperDetails.substring(consignerIndex2 + 2, data.hshipperDetails.length)
 | 
	
		
			
				|  |  | +          data.hshipperDetails = data.hshipperDetails.substring(0, consignerIndex2) + ' *'
 | 
	
		
			
				|  |  | +          data.commodityDescr += '\n*' + hshipperDetails
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            this.$refs.reportContainer.showContainer(
 | 
	
		
			
				|  |  | -              ()=> {
 | 
	
		
			
				|  |  | -                setTimeout(() => {
 | 
	
		
			
				|  |  | -                  designer.renderHtml('reportContainer')
 | 
	
		
			
				|  |  | -                  this.createDesignerButtons()
 | 
	
		
			
				|  |  | -                }, 50)
 | 
	
		
			
				|  |  | -              },
 | 
	
		
			
				|  |  | -              ()=>{},
 | 
	
		
			
				|  |  | -          )
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -        // 打印报表获取数据
 | 
	
		
			
				|  |  | -      reportsGetReportDatafun(url,row){
 | 
	
		
			
				|  |  | -          reportsGetReportData({
 | 
	
		
			
				|  |  | -              billId:this.id,
 | 
	
		
			
				|  |  | -              reportCode:row.classifyCode,
 | 
	
		
			
				|  |  | -              groupCode:row.groupCode,
 | 
	
		
			
				|  |  | -              type:'HYCK'
 | 
	
		
			
				|  |  | -          }).then(res=>{
 | 
	
		
			
				|  |  | -              this.handleReportPreview(url,res.data.data.data)
 | 
	
		
			
				|  |  | -          })
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      // 预览报表
 | 
	
		
			
				|  |  | -      handleReportPreview(url,row){
 | 
	
		
			
				|  |  | -          Stimulsoft.Base.StiLicense.key = '6vJhGtLLLz2GNviWmUTrhSqnOItdDwjBylQzQcAOiHn0s4gy0Fr5YoUZ9V00Y0igCSFQzwEqYBh/N77k4f0fWXTHW5rqeBNLkaurJDenJ9o97TyqHs9HfvINK18Uwzsc/bG01Rq+x3H3Rf+g7AY92gvWmp7VA2Uxa30Q97f61siWz2dE5kdBVcCnSFzC6awE74JzDcJMj8OuxplqB1CYcpoPcOjKy1PiATlC3UsBaLEXsok1xxtRMQ283r282tkh8XQitsxtTczAJBxijuJNfziYhci2jResWXK51ygOOEbVAxmpflujkJ8oEVHkOA/CjX6bGx05pNZ6oSIu9H8deF94MyqIwcdeirCe60GbIQByQtLimfxbIZnO35X3fs/94av0ODfELqrQEpLrpU6FNeHttvlMc5UVrT4K+8lPbqR8Hq0PFWmFrbVIYSi7tAVFMMe2D1C59NWyLu3AkrD3No7YhLVh7LV0Tttr/8FrcZ8xirBPcMZCIGrRIesrHxOsZH2V8t/t0GXCnLLAWX+TNvdNXkB8cF2y9ZXf1enI064yE5dwMs2fQ0yOUG/xornE'
 | 
	
		
			
				|  |  | -          // Stimulsoft.Base.StiLicense.Key = '6vJhGtLLLz2GNviWmUTrhSqnOItdDwjBylQzQcAOiHkcgIvwL0jnpsDqRpWg5FI5kt2G7A0tYIcUygBh1sPs7plofUOqPB1a4HBIXJB621mau2oiAIj+ysU7gKUXfjn/D5BocmduNB+ZMiDGPxFrAp3PoD0nYNkkWh8r7gBZ1v/JZSXGE3bQDrCQCNSy6mgby+iFAMV8/PuZ1z77U+Xz3fkpbm6MYQXYp3cQooLGLUti7k1TFWrnawT0iEEDJ2iRcU9wLqn2g9UiWesEZtKwI/UmEI2T7nv5NbgV+CHguu6QU4WWzFpIgW+3LUnKCT/vCDY+ymzgycw9A9+HFSzARiPzgOaAuQYrFDpzhXV+ZeX31AxWlnzjDWqpfluygSNPtGul5gyNt2CEoJD1Yom0VN9fvRonYsMsimkFFx2AwyVpPcs+JfVBtpPbTcZscnzUdmiIvxv8Gcin6sNSibM6in/uUKFt3bVgW/XeMYa7MLGF53kvBSwi78poUDigA2n12SmghLR0AHxyEDIgZGOTbNI33GWu7ZsPBeUdGu55R8w='
 | 
	
		
			
				|  |  | -          Stimulsoft.Base.Localization.StiLocalization.addLocalizationFile( '/reports/stimulsoft/Localization/zh-CHS.xml', true, 'zh-CHS')
 | 
	
		
			
				|  |  | -          Stimulsoft.Base.Localization.StiLocalization.setLocalizationFile('/reports/stimulsoft/Localization/zh-CHS.xml' )
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -          // 工具栏
 | 
	
		
			
				|  |  | -          var options = new Stimulsoft.Viewer.StiViewerOptions()
 | 
	
		
			
				|  |  | -          options.height = '100%'
 | 
	
		
			
				|  |  | -          options.appearance.scrollbarsMode = true // 滚动条模式
 | 
	
		
			
				|  |  | -          options.toolbar.showDesignButton = false // 显示设计按钮
 | 
	
		
			
				|  |  | -          options.toolbar.showAboutButton = false // 显示关于按钮
 | 
	
		
			
				|  |  | -          options.toolbar.showResourcesButton = false // 显示资源按钮
 | 
	
		
			
				|  |  | -          options.toolbar.showFullScreenButton = false // 显示全屏按钮
 | 
	
		
			
				|  |  | -          options.toolbar.showOpenButton = false // 显示打开按钮
 | 
	
		
			
				|  |  | -          options.appearance.showTooltips = false // 显示工具提示
 | 
	
		
			
				|  |  | -          options.appearance.showDialogsHelp = false // 显示对话框帮助
 | 
	
		
			
				|  |  | -          options.exports.showExportToDocument = false // 显示导出到文档
 | 
	
		
			
				|  |  | -          options.toolbar.showParametersButton = true // 显示参数按钮
 | 
	
		
			
				|  |  | -          options.appearance.bookmarksPrint = true // 书签打印
 | 
	
		
			
				|  |  | -          // options.toolbar.showPrintButton = false // 打印按钮是否显示   下面直接自定义控制打印弹窗是否开启
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -          // printDestination 参数:用于指定报表打印的目标位置,可以是打印机、PDF 文件或者直接打印到浏览器等。
 | 
	
		
			
				|  |  | -          // Stimulsoft.Viewer.StiPrintDestination.Direct:表示直接打印到打印机,即将报表内容直接发送至打印机进行打印。
 | 
	
		
			
				|  |  | -          // 通过设置不同的 printDestination 参数,你可以控制报表打印的行为,例如是直接打印到打印机,还是生成 PDF 文件,或者直接在浏览器中预览打印内容等。
 | 
	
		
			
				|  |  | -          options.toolbar.printDestination = Stimulsoft.Viewer.StiPrintDestination.Direct
 | 
	
		
			
				|  |  | -          // htmlRenderMode html渲染模式
 | 
	
		
			
				|  |  | -          options.appearance.htmlRenderMode = Stimulsoft.Report.Export.StiHtmlExportMode.Table
 | 
	
		
			
				|  |  | -          // 是创建一个 Stimulsoft 报表查看器的实例的代码
 | 
	
		
			
				|  |  | -          let viewer = new Stimulsoft.Viewer.StiViewer(options, 'StiViewer', false)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -          // 报表
 | 
	
		
			
				|  |  | -          console.log("创建一个报表实例");
 | 
	
		
			
				|  |  | -          let report = new window.Stimulsoft.Report.StiReport();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -          // 加载文件
 | 
	
		
			
				|  |  | -          console.log("从url加载报表");
 | 
	
		
			
				|  |  | -          // report.loadFile("/reports/stimulsoft/demos/SimpleList.mrt");
 | 
	
		
			
				|  |  | -          report.load(url)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -          // 获取报表数据
 | 
	
		
			
				|  |  | -          var data = row
 | 
	
		
			
				|  |  | -          data.pageOne = 'Page : 1 of 1'
 | 
	
		
			
				|  |  | -          // 处理超长数据
 | 
	
		
			
				|  |  | -          if (data.hshipperDetails) {
 | 
	
		
			
				|  |  | -              var consignerIndex2 = data.hshipperDetails.indexOf( '\n' )
 | 
	
		
			
				|  |  | -              for (let i = 0; i < 4; i++) {
 | 
	
		
			
				|  |  | -                  consignerIndex2 = data.hshipperDetails.indexOf( '\n', consignerIndex2 + 1 );
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | -              if (consignerIndex2 != -1) {
 | 
	
		
			
				|  |  | -                  var hshipperDetails = data.hshipperDetails.substring(consignerIndex2 + 2, data.hshipperDetails.length)
 | 
	
		
			
				|  |  | -                  data.hshipperDetails = data.hshipperDetails.substring(0, consignerIndex2) + ' *'
 | 
	
		
			
				|  |  | -                  data.commodityDescr += '\n*' + hshipperDetails
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | +      if (data.hconsigneeDetails) {
 | 
	
		
			
				|  |  | +        var consigneeIndex2 = data.hconsigneeDetails.indexOf('\n')
 | 
	
		
			
				|  |  | +        for (let i = 0; i < 3; i++) {
 | 
	
		
			
				|  |  | +          consigneeIndex2 = data.hconsigneeDetails.indexOf('\n', consigneeIndex2 + 1);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (consigneeIndex2 != -1) {
 | 
	
		
			
				|  |  | +          var hconsigneeDetails = data.hconsigneeDetails.substring(consigneeIndex2 + 2, data.hconsigneeDetails.length)
 | 
	
		
			
				|  |  | +          data.hconsigneeDetails = data.hconsigneeDetails.substring(0, consigneeIndex2) + ' **'
 | 
	
		
			
				|  |  | +          data.commodityDescr += '\n**' + hconsigneeDetails
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -          if (data.hconsigneeDetails) {
 | 
	
		
			
				|  |  | -              var consigneeIndex2 = data.hconsigneeDetails.indexOf( '\n' )
 | 
	
		
			
				|  |  | -              for (let i = 0; i < 3; i++) {
 | 
	
		
			
				|  |  | -                  consigneeIndex2 = data.hconsigneeDetails.indexOf( '\n', consigneeIndex2 + 1 );
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | -              if (consigneeIndex2 != -1) {
 | 
	
		
			
				|  |  | -                  var hconsigneeDetails = data.hconsigneeDetails.substring(consigneeIndex2 + 2, data.hconsigneeDetails.length)
 | 
	
		
			
				|  |  | -                  data.hconsigneeDetails = data.hconsigneeDetails.substring(0, consigneeIndex2) + ' **'
 | 
	
		
			
				|  |  | -                  data.commodityDescr += '\n**' + hconsigneeDetails
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | +      if (data.hnotifyDetails) {
 | 
	
		
			
				|  |  | +        var notifierIndex2 = data.hnotifyDetails.indexOf('\n')
 | 
	
		
			
				|  |  | +        for (let i = 0; i < 3; i++) {
 | 
	
		
			
				|  |  | +          notifierIndex2 = data.hnotifyDetails.indexOf('\n', notifierIndex2 + 1);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (notifierIndex2 != -1) {
 | 
	
		
			
				|  |  | +          var hnotifyDetails = data.hnotifyDetails.substring(notifierIndex2 + 2, data.hnotifyDetails.length)
 | 
	
		
			
				|  |  | +          data.hnotifyDetails = data.hnotifyDetails.substring(0, notifierIndex2) + ' ***'
 | 
	
		
			
				|  |  | +          data.commodityDescr += '\n***' + hnotifyDetails
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -          if (data.hnotifyDetails) {
 | 
	
		
			
				|  |  | -              var notifierIndex2 = data.hnotifyDetails.indexOf( '\n' )
 | 
	
		
			
				|  |  | -              for (let i = 0; i < 3; i++) {
 | 
	
		
			
				|  |  | -                  notifierIndex2 = data.hnotifyDetails.indexOf( '\n', notifierIndex2 + 1 );
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | -              if (notifierIndex2 != -1) {
 | 
	
		
			
				|  |  | -                  var hnotifyDetails = data.hnotifyDetails.substring(notifierIndex2 + 2, data.hnotifyDetails.length)
 | 
	
		
			
				|  |  | -                  data.hnotifyDetails = data.hnotifyDetails.substring(0, notifierIndex2) + ' ***'
 | 
	
		
			
				|  |  | -                  data.commodityDescr += '\n***' + hnotifyDetails
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | +      // 处理箱号
 | 
	
		
			
				|  |  | +      if (this.isPrintTheBoxNumber) {
 | 
	
		
			
				|  |  | +        data.commodityDescr += '\n.\n.\n'
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -          // 处理箱号
 | 
	
		
			
				|  |  | -          if (this.isPrintTheBoxNumber) {
 | 
	
		
			
				|  |  | -              data.commodityDescr += '\n.\n.\n'
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | +      // PLACE & DATE OF ISSUE
 | 
	
		
			
				|  |  | +      data.placeAndDateOfIssue = ''
 | 
	
		
			
				|  |  | +      if (data.issueAt) {
 | 
	
		
			
				|  |  | +        data.placeAndDateOfIssue += data.issueAt
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      if (data.issueDate) {
 | 
	
		
			
				|  |  | +        let date = new Date(data.issueDate.replace(/-/g, '/'));
 | 
	
		
			
				|  |  | +        let yyyy = date.getFullYear();
 | 
	
		
			
				|  |  | +        let mmmm = date.toDateString().split(" ")[1]
 | 
	
		
			
				|  |  | +        let dd = date.getDate()
 | 
	
		
			
				|  |  | +        data.placeAndDateOfIssue += ', ' + dd + '-' + mmmm + '-' + yyyy
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -          // PLACE & DATE OF ISSUE
 | 
	
		
			
				|  |  | -          data.placeAndDateOfIssue = ''
 | 
	
		
			
				|  |  | -          if (data.issueAt) {
 | 
	
		
			
				|  |  | -              data.placeAndDateOfIssue += data.issueAt
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | -          if (data.issueDate) {
 | 
	
		
			
				|  |  | -              let date = new Date(data.issueDate.replace(/-/g,'/'));
 | 
	
		
			
				|  |  | -              let yyyy = date.getFullYear();
 | 
	
		
			
				|  |  | -              let mmmm = date.toDateString().split(" ")[1]
 | 
	
		
			
				|  |  | -              let dd = date.getDate()
 | 
	
		
			
				|  |  | -              data.placeAndDateOfIssue += ', ' + dd + '-' + mmmm + '-' + yyyy
 | 
	
		
			
				|  |  | +      // Total number of containers or packages received by the Carriers
 | 
	
		
			
				|  |  | +      if (data.preContainersList) {
 | 
	
		
			
				|  |  | +        let boxMap = new Map();
 | 
	
		
			
				|  |  | +        for (let boxQuantity of data.preContainersList) {
 | 
	
		
			
				|  |  | +          if (boxMap.get(boxQuantity.cntrTypeCode)) {
 | 
	
		
			
				|  |  | +            let v = boxMap.get(boxQuantity.cntrTypeCode)
 | 
	
		
			
				|  |  | +            boxMap.set(boxQuantity.cntrTypeCode, v + boxQuantity.quantity)
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            boxMap.set(boxQuantity.cntrTypeCode, boxQuantity.quantity)
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        let boxs = ''
 | 
	
		
			
				|  |  | +        boxMap.forEach(function (value, key, map) {
 | 
	
		
			
				|  |  | +          boxs += value + 'x' + key + ', '
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        boxs = boxs.substring(0, boxs.length - 2)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -          // Total number of containers or packages received by the Carriers
 | 
	
		
			
				|  |  | -          if (data.preContainersList) {
 | 
	
		
			
				|  |  | -              let boxMap = new Map();
 | 
	
		
			
				|  |  | -              for (let boxQuantity of data.preContainersList) {
 | 
	
		
			
				|  |  | -                  if (boxMap.get(boxQuantity.cntrTypeCode)) {
 | 
	
		
			
				|  |  | -                      let v = boxMap.get(boxQuantity.cntrTypeCode)
 | 
	
		
			
				|  |  | -                      boxMap.set(boxQuantity.cntrTypeCode, v + boxQuantity.quantity)
 | 
	
		
			
				|  |  | -                  } else {
 | 
	
		
			
				|  |  | -                      boxMap.set(boxQuantity.cntrTypeCode, boxQuantity.quantity)
 | 
	
		
			
				|  |  | -                  }
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | -              let boxs = ''
 | 
	
		
			
				|  |  | -              boxMap.forEach(function (value, key, map) {
 | 
	
		
			
				|  |  | -                  boxs += value + 'x' + key + ', '
 | 
	
		
			
				|  |  | -              })
 | 
	
		
			
				|  |  | -              boxs = boxs.substring(0, boxs.length - 2)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -              data.boxQuantity = boxs + ' CONTAINER(S) ONLY'
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | +        data.boxQuantity = boxs + ' CONTAINER(S) ONLY'
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -          // Number of original B/Ls
 | 
	
		
			
				|  |  | -          if (data.numberOfObl) {
 | 
	
		
			
				|  |  | -              data.numberOfObl += ' (' + data.numberOfOblDigit + ')'
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | +      // Number of original B/Ls
 | 
	
		
			
				|  |  | +      if (data.numberOfObl) {
 | 
	
		
			
				|  |  | +        data.numberOfObl += ' (' + data.numberOfOblDigit + ')'
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -          if (data.commodityDescr) {
 | 
	
		
			
				|  |  | -              var descriptionIndex2 = data.commodityDescr.indexOf( '\n' )
 | 
	
		
			
				|  |  | -              for (let i = 0; i < 19; i++) {
 | 
	
		
			
				|  |  | -                  descriptionIndex2 = data.commodityDescr.indexOf( '\n', descriptionIndex2 + 1 );
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | -              if (descriptionIndex2 != -1) {
 | 
	
		
			
				|  |  | -                  data.pageOne = 'Page : 1 of 2'
 | 
	
		
			
				|  |  | -                  data.pageTwo = 'Page : 2 of 2'
 | 
	
		
			
				|  |  | -                  var extraLongText = data.commodityDescr.substring(descriptionIndex2 + 2, data.commodityDescr.length)
 | 
	
		
			
				|  |  | -                  data.commodityDescr = data.commodityDescr.substring(0, descriptionIndex2)
 | 
	
		
			
				|  |  | -                  data.extraLongTips = '** TO BE CONTINUED ON ATTACHED LIST **'
 | 
	
		
			
				|  |  | -                  data.extraLongText = extraLongText
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | +      if (data.commodityDescr) {
 | 
	
		
			
				|  |  | +        var descriptionIndex2 = data.commodityDescr.indexOf('\n')
 | 
	
		
			
				|  |  | +        for (let i = 0; i < 19; i++) {
 | 
	
		
			
				|  |  | +          descriptionIndex2 = data.commodityDescr.indexOf('\n', descriptionIndex2 + 1);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (descriptionIndex2 != -1) {
 | 
	
		
			
				|  |  | +          data.pageOne = 'Page : 1 of 2'
 | 
	
		
			
				|  |  | +          data.pageTwo = 'Page : 2 of 2'
 | 
	
		
			
				|  |  | +          var extraLongText = data.commodityDescr.substring(descriptionIndex2 + 2, data.commodityDescr.length)
 | 
	
		
			
				|  |  | +          data.commodityDescr = data.commodityDescr.substring(0, descriptionIndex2)
 | 
	
		
			
				|  |  | +          data.extraLongTips = '** TO BE CONTINUED ON ATTACHED LIST **'
 | 
	
		
			
				|  |  | +          data.extraLongText = extraLongText
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -          // console.log(data.hshipperDetails, 'hshipperDetails2')
 | 
	
		
			
				|  |  | +      // console.log(data.hshipperDetails, 'hshipperDetails2')
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -          // 创建一个 Stimulsoft 数据集(DataSet)的实例的代码
 | 
	
		
			
				|  |  | -          var dataSet = new Stimulsoft.System.Data.DataSet(
 | 
	
		
			
				|  |  | -              'reportData'
 | 
	
		
			
				|  |  | -          )
 | 
	
		
			
				|  |  | +      // 创建一个 Stimulsoft 数据集(DataSet)的实例的代码
 | 
	
		
			
				|  |  | +      var dataSet = new Stimulsoft.System.Data.DataSet(
 | 
	
		
			
				|  |  | +        'reportData'
 | 
	
		
			
				|  |  | +      )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -          dataSet.readJson(data) // 用于将 JSON 格式的数据加载到数据集中。data 是包含报表数据的 JSON 对象。
 | 
	
		
			
				|  |  | -          // 这是一个方法调用,用于在报表中注册数据源。参数 'reportData' 是数据源的名称,
 | 
	
		
			
				|  |  | -          // 第二个 'reportData' 是数据源的别名,dataSet 则是之前创建的数据集实例
 | 
	
		
			
				|  |  | -          report.regData('reportData', 'reportData', dataSet)
 | 
	
		
			
				|  |  | -          // 从模版和数据加载报表
 | 
	
		
			
				|  |  | -          // loadReport(report, '', {})
 | 
	
		
			
				|  |  | +      dataSet.readJson(data) // 用于将 JSON 格式的数据加载到数据集中。data 是包含报表数据的 JSON 对象。
 | 
	
		
			
				|  |  | +      // 这是一个方法调用,用于在报表中注册数据源。参数 'reportData' 是数据源的名称,
 | 
	
		
			
				|  |  | +      // 第二个 'reportData' 是数据源的别名,dataSet 则是之前创建的数据集实例
 | 
	
		
			
				|  |  | +      report.regData('reportData', 'reportData', dataSet)
 | 
	
		
			
				|  |  | +      // 从模版和数据加载报表
 | 
	
		
			
				|  |  | +      // loadReport(report, '', {})
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -          // 这是将报表对象指定给报表查看器的属性。viewer 是报表查看器的实例,而 report 是之前创建的报表对象。
 | 
	
		
			
				|  |  | -          viewer.report = report;
 | 
	
		
			
				|  |  | +      // 这是将报表对象指定给报表查看器的属性。viewer 是报表查看器的实例,而 report 是之前创建的报表对象。
 | 
	
		
			
				|  |  | +      viewer.report = report;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -          this.$refs.reportContainer.showContainer(
 | 
	
		
			
				|  |  | -            ()=> {
 | 
	
		
			
				|  |  | -              setTimeout(() => {
 | 
	
		
			
				|  |  | -                viewer.renderHtml('reportContainer')
 | 
	
		
			
				|  |  | -                this.createViewerButtons(viewer)
 | 
	
		
			
				|  |  | -              }, 50)
 | 
	
		
			
				|  |  | -            },
 | 
	
		
			
				|  |  | -            ()=>{
 | 
	
		
			
				|  |  | -            },
 | 
	
		
			
				|  |  | -          )
 | 
	
		
			
				|  |  | +      this.$refs.reportContainer.showContainer(
 | 
	
		
			
				|  |  | +        () => {
 | 
	
		
			
				|  |  | +          setTimeout(() => {
 | 
	
		
			
				|  |  | +            viewer.renderHtml('reportContainer')
 | 
	
		
			
				|  |  | +            this.createViewerButtons(viewer)
 | 
	
		
			
				|  |  | +          }, 50)
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        () => {
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +      )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -          console.log("加载成功完成!");
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | +      console.log("加载成功完成!");
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      loadReport(report, content, data){
 | 
	
		
			
				|  |  | -        var mimeString = content
 | 
	
		
			
				|  |  | -          .split(',')[0]
 | 
	
		
			
				|  |  | -          .split(':')[1]
 | 
	
		
			
				|  |  | -          .split(';')[0]
 | 
	
		
			
				|  |  | -        var byteString = atob(content.split(',')[1])
 | 
	
		
			
				|  |  | +    loadReport(report, content, data) {
 | 
	
		
			
				|  |  | +      var mimeString = content
 | 
	
		
			
				|  |  | +        .split(',')[0]
 | 
	
		
			
				|  |  | +        .split(':')[1]
 | 
	
		
			
				|  |  | +        .split(';')[0]
 | 
	
		
			
				|  |  | +      var byteString = atob(content.split(',')[1])
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        var ab = new ArrayBuffer(byteString.length)
 | 
	
		
			
				|  |  | -        var ia = new Uint8Array(ab)
 | 
	
		
			
				|  |  | +      var ab = new ArrayBuffer(byteString.length)
 | 
	
		
			
				|  |  | +      var ia = new Uint8Array(ab)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        for (var i = 0; i < byteString.length; i++) {
 | 
	
		
			
				|  |  | -          ia[i] = byteString.charCodeAt(i)
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +      for (var i = 0; i < byteString.length; i++) {
 | 
	
		
			
				|  |  | +        ia[i] = byteString.charCodeAt(i)
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        var blob = new Blob([ab])
 | 
	
		
			
				|  |  | -        JSZip.loadAsync(blob).then(function(unziped) {
 | 
	
		
			
				|  |  | -          unziped
 | 
	
		
			
				|  |  | -            .file('reportfile.json')
 | 
	
		
			
				|  |  | -            .async('string')
 | 
	
		
			
				|  |  | -            .then(res => {
 | 
	
		
			
				|  |  | -              report.load(res)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -              if (!!data) {
 | 
	
		
			
				|  |  | -                var dataSet = new Stimulsoft.System.Data.DataSet(
 | 
	
		
			
				|  |  | -                  'reportData'
 | 
	
		
			
				|  |  | -                )
 | 
	
		
			
				|  |  | -                dataSet.readJson(data)
 | 
	
		
			
				|  |  | -                report.regData('reportData', 'reportData', dataSet)
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | +      var blob = new Blob([ab])
 | 
	
		
			
				|  |  | +      JSZip.loadAsync(blob).then(function (unziped) {
 | 
	
		
			
				|  |  | +        unziped
 | 
	
		
			
				|  |  | +          .file('reportfile.json')
 | 
	
		
			
				|  |  | +          .async('string')
 | 
	
		
			
				|  |  | +          .then(res => {
 | 
	
		
			
				|  |  | +            report.load(res)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      createDesignerButtons(e) {
 | 
	
		
			
				|  |  | -          console.log(e,936)
 | 
	
		
			
				|  |  | -        if (!!e) {
 | 
	
		
			
				|  |  | -          try {
 | 
	
		
			
				|  |  | -            this.designer.jsObject.options.menus.localizationMenu.addEventListener(
 | 
	
		
			
				|  |  | -              'click',
 | 
	
		
			
				|  |  | -              this.createDesignerButtons
 | 
	
		
			
				|  |  | -            )
 | 
	
		
			
				|  |  | -          } catch (error) {
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | +            if (!!data) {
 | 
	
		
			
				|  |  | +              var dataSet = new Stimulsoft.System.Data.DataSet(
 | 
	
		
			
				|  |  | +                'reportData'
 | 
	
		
			
				|  |  | +              )
 | 
	
		
			
				|  |  | +              dataSet.readJson(data)
 | 
	
		
			
				|  |  | +              report.regData('reportData', 'reportData', dataSet)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    createDesignerButtons(e) {
 | 
	
		
			
				|  |  | +      console.log(e, 936)
 | 
	
		
			
				|  |  | +      if (!!e) {
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +          this.designer.jsObject.options.menus.localizationMenu.addEventListener(
 | 
	
		
			
				|  |  | +            'click',
 | 
	
		
			
				|  |  | +            this.createDesignerButtons
 | 
	
		
			
				|  |  | +          )
 | 
	
		
			
				|  |  | +        } catch (error) {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      let toolBarRow = this.designer.jsObject.options.toolBar.firstChild.tr[0]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      let customButton = this.designer.jsObject.StatusPanelButton(
 | 
	
		
			
				|  |  | +        'exitButton',
 | 
	
		
			
				|  |  | +        '关闭',
 | 
	
		
			
				|  |  | +        'LoginControls.Window.CloseWhite.png',
 | 
	
		
			
				|  |  | +        '关闭',
 | 
	
		
			
				|  |  | +        null,
 | 
	
		
			
				|  |  | +        30,
 | 
	
		
			
				|  |  | +        60
 | 
	
		
			
				|  |  | +      )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      customButton.image.style.width = customButton.image.style.height = '16px'
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      let buttonCell = document.createElement('td')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      buttonCell.className = 'stiDesignerToolButtonCell'
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        let toolBarRow =  this.designer.jsObject.options.toolBar.firstChild.tr[0]
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        let customButton =  this.designer.jsObject.StatusPanelButton(
 | 
	
		
			
				|  |  | -          'exitButton',
 | 
	
		
			
				|  |  | -          '关闭',
 | 
	
		
			
				|  |  | -          'LoginControls.Window.CloseWhite.png',
 | 
	
		
			
				|  |  | -          '关闭',
 | 
	
		
			
				|  |  | -          null,
 | 
	
		
			
				|  |  | -          30,
 | 
	
		
			
				|  |  | -          60
 | 
	
		
			
				|  |  | -        )
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        customButton.image.style.width = customButton.image.style.height = '16px'
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        let buttonCell = document.createElement('td')
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        buttonCell.className = 'stiDesignerToolButtonCell'
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        buttonCell.appendChild(customButton)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        toolBarRow.appendChild(buttonCell)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        let that=this
 | 
	
		
			
				|  |  | -        customButton.action = function(e) {
 | 
	
		
			
				|  |  | -          let jsObject = this.jsObject
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -          if (jsObject.options.reportIsModified) {
 | 
	
		
			
				|  |  | -            var messageForm = jsObject.MessageFormForSave()
 | 
	
		
			
				|  |  | -            messageForm.changeVisibleState(true)
 | 
	
		
			
				|  |  | -            messageForm.action = function(state) {
 | 
	
		
			
				|  |  | -              if (state) {
 | 
	
		
			
				|  |  | -                jsObject.SendCommandSaveReport()
 | 
	
		
			
				|  |  | -                setTimeout(() => {
 | 
	
		
			
				|  |  | -                  jsObject.SendCommandCloseReport()
 | 
	
		
			
				|  |  | -                  jsObject.designer.invokeExit()
 | 
	
		
			
				|  |  | -                  if (that.$refs.reportContainer)
 | 
	
		
			
				|  |  | -                    that.$refs.reportContainer.hideContainer()
 | 
	
		
			
				|  |  | -                }, 250)
 | 
	
		
			
				|  |  | -              } else {
 | 
	
		
			
				|  |  | +      buttonCell.appendChild(customButton)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      toolBarRow.appendChild(buttonCell)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      let that = this
 | 
	
		
			
				|  |  | +      customButton.action = function (e) {
 | 
	
		
			
				|  |  | +        let jsObject = this.jsObject
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if (jsObject.options.reportIsModified) {
 | 
	
		
			
				|  |  | +          var messageForm = jsObject.MessageFormForSave()
 | 
	
		
			
				|  |  | +          messageForm.changeVisibleState(true)
 | 
	
		
			
				|  |  | +          messageForm.action = function (state) {
 | 
	
		
			
				|  |  | +            if (state) {
 | 
	
		
			
				|  |  | +              jsObject.SendCommandSaveReport()
 | 
	
		
			
				|  |  | +              setTimeout(() => {
 | 
	
		
			
				|  |  |                  jsObject.SendCommandCloseReport()
 | 
	
		
			
				|  |  |                  jsObject.designer.invokeExit()
 | 
	
		
			
				|  |  |                  if (that.$refs.reportContainer)
 | 
	
		
			
				|  |  |                    that.$refs.reportContainer.hideContainer()
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | +              }, 250)
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +              jsObject.SendCommandCloseReport()
 | 
	
		
			
				|  |  | +              jsObject.designer.invokeExit()
 | 
	
		
			
				|  |  | +              if (that.$refs.reportContainer)
 | 
	
		
			
				|  |  | +                that.$refs.reportContainer.hideContainer()
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -          } else {
 | 
	
		
			
				|  |  | -            jsObject.SendCommandCloseReport()
 | 
	
		
			
				|  |  | -            jsObject.designer.invokeExit()
 | 
	
		
			
				|  |  | -            if (that.$refs.reportContainer)
 | 
	
		
			
				|  |  | -              that.$refs.reportContainer.hideContainer()
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      createViewerButtons (viewer){
 | 
	
		
			
				|  |  | -        viewer.jsObject.collections.images['myClose.png'] =
 | 
	
		
			
				|  |  | -          'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAA0ElEQVQ4ja3TO05CQRQG4A8iOwAbtYWETndAaecK7NwCKmETtJZsSBNLobEz8ZFIJQ0UnOGSm3DnYviTybzO/895DQXGWGCVGQuMEqkRcwcfuMOLalziCaf4TIe9UG9nyMJmFRzNGoRK1BU4xxx9G7cfwostciGk+x8MqgySwDXe4tU53hVV+MNtTmAoX84JGv9NYgrHyR6DV8wUSW7hItZLm36ZVoVQxsFJLOMsPOrH/h7dQwR2cdxOTEn8DtUbPGc4V2H7Vb4Yqfedf/GYSGt8VUmxgyfuBAAAAABJRU5ErkJggg=='
 | 
	
		
			
				|  |  | -        const closeBtn = viewer.jsObject.SmallButton(
 | 
	
		
			
				|  |  | -          'closeBtn',
 | 
	
		
			
				|  |  | -          '关闭',
 | 
	
		
			
				|  |  | -          'myClose.png'
 | 
	
		
			
				|  |  | -        )
 | 
	
		
			
				|  |  | -          // 增加打印弹窗配置
 | 
	
		
			
				|  |  | -        const printBtn = viewer.jsObject.SmallButton(
 | 
	
		
			
				|  |  | -           'printBtn',
 | 
	
		
			
				|  |  | -           '打印报表',
 | 
	
		
			
				|  |  | -           'myClose.png'
 | 
	
		
			
				|  |  | -        )
 | 
	
		
			
				|  |  | -          // console.log(viewer.jsObject.print(),'1013')
 | 
	
		
			
				|  |  | -          // 获取 关闭按钮的dom元素位置
 | 
	
		
			
				|  |  | -        const toolbarTable = viewer.jsObject.controls.toolbar.firstChild.firstChild
 | 
	
		
			
				|  |  | -        const buttonsTable = toolbarTable.rows[0].lastChild.lastChild
 | 
	
		
			
				|  |  | -        const userButtonCell = buttonsTable.rows[0].insertCell(0)
 | 
	
		
			
				|  |  | -          // 获取打印按钮的位置
 | 
	
		
			
				|  |  | -        const buttonsTablePrint = toolbarTable.rows[0].childNodes[0].lastChild // 打印按钮
 | 
	
		
			
				|  |  | -        const userButtonPrint = buttonsTablePrint.rows[0].childNodes[0] // 打印按钮dom位置
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -          userButtonPrint.addEventListener("click", (event)=>{
 | 
	
		
			
				|  |  | -              console.log("打印点击");
 | 
	
		
			
				|  |  | -              // event.preventDefault()
 | 
	
		
			
				|  |  | -          });
 | 
	
		
			
				|  |  | -          userButtonPrint.addEventListener("mouseover", (event) => {
 | 
	
		
			
				|  |  | -              console.log("移入打印按钮");
 | 
	
		
			
				|  |  | -              console.log(event,1035)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -          });
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        userButtonCell.className = 'stiJsViewerClearAllStyles'
 | 
	
		
			
				|  |  | -        userButtonCell.appendChild(closeBtn) // 添加关闭节点
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        // userButtonPrint.prepend(printBtn) // 在 printBtn 节点里最前面增加一个子级节点
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        let that=this
 | 
	
		
			
				|  |  | -          // 关闭按钮的监听点击
 | 
	
		
			
				|  |  | -        closeBtn.action = function() {
 | 
	
		
			
				|  |  | -          console.log(that.$refs.reportContainer,'1022')
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          jsObject.SendCommandCloseReport()
 | 
	
		
			
				|  |  | +          jsObject.designer.invokeExit()
 | 
	
		
			
				|  |  |            if (that.$refs.reportContainer)
 | 
	
		
			
				|  |  | -          that.$refs.reportContainer.hideContainer()
 | 
	
		
			
				|  |  | +            that.$refs.reportContainer.hideContainer()
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    createViewerButtons(viewer) {
 | 
	
		
			
				|  |  | +      viewer.jsObject.collections.images['myClose.png'] =
 | 
	
		
			
				|  |  | +        'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAA0ElEQVQ4ja3TO05CQRQG4A8iOwAbtYWETndAaecK7NwCKmETtJZsSBNLobEz8ZFIJQ0UnOGSm3DnYviTybzO/895DQXGWGCVGQuMEqkRcwcfuMOLalziCaf4TIe9UG9nyMJmFRzNGoRK1BU4xxx9G7cfwostciGk+x8MqgySwDXe4tU53hVV+MNtTmAoX84JGv9NYgrHyR6DV8wUSW7hItZLm36ZVoVQxsFJLOMsPOrH/h7dQwR2cdxOTEn8DtUbPGc4V2H7Vb4Yqfedf/GYSGt8VUmxgyfuBAAAAABJRU5ErkJggg=='
 | 
	
		
			
				|  |  | +      const closeBtn = viewer.jsObject.SmallButton(
 | 
	
		
			
				|  |  | +        'closeBtn',
 | 
	
		
			
				|  |  | +        '关闭',
 | 
	
		
			
				|  |  | +        'myClose.png'
 | 
	
		
			
				|  |  | +      )
 | 
	
		
			
				|  |  | +      // 增加打印弹窗配置
 | 
	
		
			
				|  |  | +      const printBtn = viewer.jsObject.SmallButton(
 | 
	
		
			
				|  |  | +        'printBtn',
 | 
	
		
			
				|  |  | +        '打印报表',
 | 
	
		
			
				|  |  | +        'myClose.png'
 | 
	
		
			
				|  |  | +      )
 | 
	
		
			
				|  |  | +      // console.log(viewer.jsObject.print(),'1013')
 | 
	
		
			
				|  |  | +      // 获取 关闭按钮的dom元素位置
 | 
	
		
			
				|  |  | +      const toolbarTable = viewer.jsObject.controls.toolbar.firstChild.firstChild
 | 
	
		
			
				|  |  | +      const buttonsTable = toolbarTable.rows[0].lastChild.lastChild
 | 
	
		
			
				|  |  | +      const userButtonCell = buttonsTable.rows[0].insertCell(0)
 | 
	
		
			
				|  |  | +      // 获取打印按钮的位置
 | 
	
		
			
				|  |  | +      const buttonsTablePrint = toolbarTable.rows[0].childNodes[0].lastChild // 打印按钮
 | 
	
		
			
				|  |  | +      const userButtonPrint = buttonsTablePrint.rows[0].childNodes[0] // 打印按钮dom位置
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      userButtonPrint.addEventListener("click", (event) => {
 | 
	
		
			
				|  |  | +        console.log("打印点击");
 | 
	
		
			
				|  |  | +        // event.preventDefault()
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      userButtonPrint.addEventListener("mouseover", (event) => {
 | 
	
		
			
				|  |  | +        console.log("移入打印按钮");
 | 
	
		
			
				|  |  | +        console.log(event, 1035)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      userButtonCell.className = 'stiJsViewerClearAllStyles'
 | 
	
		
			
				|  |  | +      userButtonCell.appendChild(closeBtn) // 添加关闭节点
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      // userButtonPrint.prepend(printBtn) // 在 printBtn 节点里最前面增加一个子级节点
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      let that = this
 | 
	
		
			
				|  |  | +      // 关闭按钮的监听点击
 | 
	
		
			
				|  |  | +      closeBtn.action = function () {
 | 
	
		
			
				|  |  | +        console.log(that.$refs.reportContainer, '1022')
 | 
	
		
			
				|  |  | +        if (that.$refs.reportContainer)
 | 
	
		
			
				|  |  | +          that.$refs.reportContainer.hideContainer()
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -          // // // 打印按钮监听
 | 
	
		
			
				|  |  | -          // printBtn.action = (e)=>{
 | 
	
		
			
				|  |  | -          //     console.log('打印')
 | 
	
		
			
				|  |  | -          //     window.print()
 | 
	
		
			
				|  |  | -          // }
 | 
	
		
			
				|  |  | +      // // // 打印按钮监听
 | 
	
		
			
				|  |  | +      // printBtn.action = (e)=>{
 | 
	
		
			
				|  |  | +      //     console.log('打印')
 | 
	
		
			
				|  |  | +      //     window.print()
 | 
	
		
			
				|  |  | +      // }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      searchReset() {
 | 
	
		
			
				|  |  | -        this.query = {};
 | 
	
		
			
				|  |  | -        this.onLoad(this.page);
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      searchChange(params, done) {
 | 
	
		
			
				|  |  | -        this.query = params;
 | 
	
		
			
				|  |  | -        this.page.currentPage = 1;
 | 
	
		
			
				|  |  | -        this.onLoad(this.page, params);
 | 
	
		
			
				|  |  | -        done();
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      selectionChange(list) {
 | 
	
		
			
				|  |  | -        this.selectionList = list;
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      selectionClear() {
 | 
	
		
			
				|  |  | -        this.selectionList = [];
 | 
	
		
			
				|  |  | -        this.$refs.crud.toggleSelection();
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      currentChange(currentPage){
 | 
	
		
			
				|  |  | -        this.page.currentPage = currentPage;
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      sizeChange(pageSize){
 | 
	
		
			
				|  |  | -        this.page.pageSize = pageSize;
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      refreshChange() {
 | 
	
		
			
				|  |  | -        this.onLoad(this.page, this.query);
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      onLoad(page, params = {}) {
 | 
	
		
			
				|  |  | -        this.loading = true;
 | 
	
		
			
				|  |  | -        params.businessType='HYCK'
 | 
	
		
			
				|  |  | -        getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
 | 
	
		
			
				|  |  | -          const data = res.data.data;
 | 
	
		
			
				|  |  | -          this.page.total = data.total;
 | 
	
		
			
				|  |  | -          this.data = data.records;
 | 
	
		
			
				|  |  | -          this.loading = false;
 | 
	
		
			
				|  |  | -          this.selectionClear();
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      //自定义列保存
 | 
	
		
			
				|  |  | -      async saveColumnTwo(ref, option, optionBack, code) {
 | 
	
		
			
				|  |  | -        /**
 | 
	
		
			
				|  |  | -         * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
 | 
	
		
			
				|  |  | -         * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
 | 
	
		
			
				|  |  | -         * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
 | 
	
		
			
				|  |  | -         */
 | 
	
		
			
				|  |  | -        const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
 | 
	
		
			
				|  |  | -        if (inSave) {
 | 
	
		
			
				|  |  | -          this.$message.success("保存成功");
 | 
	
		
			
				|  |  | -          //关闭窗口
 | 
	
		
			
				|  |  | -          this.$refs[ref].$refs.dialogColumn.columnBox = false;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      //自定义列重置
 | 
	
		
			
				|  |  | -      async resetColumnTwo(ref, option, optionBack, code) {
 | 
	
		
			
				|  |  | -        this[option] = this[optionBack];
 | 
	
		
			
				|  |  | -        const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
 | 
	
		
			
				|  |  | -        if (inSave) {
 | 
	
		
			
				|  |  | -          this.$message.success("重置成功");
 | 
	
		
			
				|  |  | -          this.$refs[ref].$refs.dialogColumn.columnBox = false;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      // 更改表格颜色
 | 
	
		
			
				|  |  | -      headerClassName(tab) {
 | 
	
		
			
				|  |  | -        //颜色间隔
 | 
	
		
			
				|  |  | -        let back = ""
 | 
	
		
			
				|  |  | -        if (tab.columnIndex >= 0 && tab.column.level === 1) {
 | 
	
		
			
				|  |  | -          if (tab.columnIndex % 2 === 0) {
 | 
	
		
			
				|  |  | -            back = "back-one"
 | 
	
		
			
				|  |  | -          } else if (tab.columnIndex % 2 === 1) {
 | 
	
		
			
				|  |  | -            back = "back-two"
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | +    searchReset() {
 | 
	
		
			
				|  |  | +      this.query = {};
 | 
	
		
			
				|  |  | +      this.onLoad(this.page);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    searchChange(params, done) {
 | 
	
		
			
				|  |  | +      this.query = params;
 | 
	
		
			
				|  |  | +      this.page.currentPage = 1;
 | 
	
		
			
				|  |  | +      this.onLoad(this.page, params);
 | 
	
		
			
				|  |  | +      done();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    selectionChange(list) {
 | 
	
		
			
				|  |  | +      this.selectionList = list;
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    selectionClear() {
 | 
	
		
			
				|  |  | +      this.selectionList = [];
 | 
	
		
			
				|  |  | +      this.$refs.crud.toggleSelection();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    currentChange(currentPage) {
 | 
	
		
			
				|  |  | +      this.page.currentPage = currentPage;
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    sizeChange(pageSize) {
 | 
	
		
			
				|  |  | +      this.page.pageSize = pageSize;
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    refreshChange() {
 | 
	
		
			
				|  |  | +      this.onLoad(this.page, this.query);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    onLoad(page, params = {}) {
 | 
	
		
			
				|  |  | +      this.loading = true;
 | 
	
		
			
				|  |  | +      params.businessType = 'HYCK'
 | 
	
		
			
				|  |  | +      getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
 | 
	
		
			
				|  |  | +        const data = res.data.data;
 | 
	
		
			
				|  |  | +        this.page.total = data.total;
 | 
	
		
			
				|  |  | +        this.data = data.records;
 | 
	
		
			
				|  |  | +        this.loading = false;
 | 
	
		
			
				|  |  | +        this.selectionClear();
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    //自定义列保存
 | 
	
		
			
				|  |  | +    async saveColumnTwo(ref, option, optionBack, code) {
 | 
	
		
			
				|  |  | +      /**
 | 
	
		
			
				|  |  | +       * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
 | 
	
		
			
				|  |  | +       * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
 | 
	
		
			
				|  |  | +       * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
 | 
	
		
			
				|  |  | +       */
 | 
	
		
			
				|  |  | +      const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
 | 
	
		
			
				|  |  | +      if (inSave) {
 | 
	
		
			
				|  |  | +        this.$message.success("保存成功");
 | 
	
		
			
				|  |  | +        //关闭窗口
 | 
	
		
			
				|  |  | +        this.$refs[ref].$refs.dialogColumn.columnBox = false;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    //自定义列重置
 | 
	
		
			
				|  |  | +    async resetColumnTwo(ref, option, optionBack, code) {
 | 
	
		
			
				|  |  | +      this[option] = this[optionBack];
 | 
	
		
			
				|  |  | +      const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
 | 
	
		
			
				|  |  | +      if (inSave) {
 | 
	
		
			
				|  |  | +        this.$message.success("重置成功");
 | 
	
		
			
				|  |  | +        this.$refs[ref].$refs.dialogColumn.columnBox = false;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    // 更改表格颜色
 | 
	
		
			
				|  |  | +    headerClassName(tab) {
 | 
	
		
			
				|  |  | +      //颜色间隔
 | 
	
		
			
				|  |  | +      let back = ""
 | 
	
		
			
				|  |  | +      if (tab.columnIndex >= 0 && tab.column.level === 1) {
 | 
	
		
			
				|  |  | +        if (tab.columnIndex % 2 === 0) {
 | 
	
		
			
				|  |  | +          back = "back-one"
 | 
	
		
			
				|  |  | +        } else if (tab.columnIndex % 2 === 1) {
 | 
	
		
			
				|  |  | +          back = "back-two"
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        return back;
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -  };
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      return back;
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  |  </script>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <style lang="scss" scoped>
 |