|  | @@ -29,6 +29,7 @@
 | 
	
		
			
				|  |  |  import MxCondition from '@/components/MxCondition/mx-condition'
 | 
	
		
			
				|  |  |  import { classesResult, getRound } from '@/api/webApi/elective/dispatch'
 | 
	
		
			
				|  |  |  import { mapGetters } from 'vuex'
 | 
	
		
			
				|  |  | +import LinkVue from '../../../../../layout/components/Sidebar/Link.vue'
 | 
	
		
			
				|  |  |  export default {
 | 
	
		
			
				|  |  |    components: { MxCondition },
 | 
	
		
			
				|  |  |    data() {
 | 
	
	
		
			
				|  | @@ -107,23 +108,50 @@ export default {
 | 
	
		
			
				|  |  |        console.log('query取消')
 | 
	
		
			
				|  |  |        this.round = {}
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    getStyle () {
 | 
	
		
			
				|  |  | -      let str = '',
 | 
	
		
			
				|  |  | -      styles = document.querySelectorAll('style');
 | 
	
		
			
				|  |  | -      for (var i = 0; i < styles.length; i++) {
 | 
	
		
			
				|  |  | -        str += styles[i].outerHTML;
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      console.log(str)
 | 
	
		
			
				|  |  | -      return str;
 | 
	
		
			
				|  |  | +    getStyleFromLink(href) {
 | 
	
		
			
				|  |  | +      return new Promise((resolve, reject) => {
 | 
	
		
			
				|  |  | +        fetch(href).then(res => {
 | 
	
		
			
				|  |  | +          if (res.ok) {
 | 
	
		
			
				|  |  | +            res.blob().then(blob => {
 | 
	
		
			
				|  |  | +              const reader = new FileReader();
 | 
	
		
			
				|  |  | +              reader.readAsText(blob, 'utf-8');
 | 
	
		
			
				|  |  | +              reader.onload = () => {
 | 
	
		
			
				|  |  | +                if (reader.result && reader.result.length > 0) {
 | 
	
		
			
				|  |  | +                  const data = reader?.result??'';
 | 
	
		
			
				|  |  | +                  resolve(data);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            console.log('请求失败');
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }).catch(err => {
 | 
	
		
			
				|  |  | +          console.log(err);
 | 
	
		
			
				|  |  | +          resolve('');
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    print(content, title = '') {
 | 
	
		
			
				|  |  | +    async print(content, title = '') {
 | 
	
		
			
				|  |  |        // 搜集打印需要的样式,把当前document的所有style拿过来
 | 
	
		
			
				|  |  | -      // 如果有link引入的样式文件,用通用的方式处理一下
 | 
	
		
			
				|  |  |        let style = '',
 | 
	
		
			
				|  |  | -      styles = document.querySelectorAll('style');
 | 
	
		
			
				|  |  | -      for (let i = 0; i < styles.length; i++) {
 | 
	
		
			
				|  |  | -        style += styles[i].outerHTML;
 | 
	
		
			
				|  |  | +      stylesNodes = document.querySelectorAll('style, link, meta');
 | 
	
		
			
				|  |  | +      const linkPromises = [];
 | 
	
		
			
				|  |  | +      for (let i = 0; i < stylesNodes.length; i++) {
 | 
	
		
			
				|  |  | +        // 经测试,link的样式文件在iframe中不生效,所以提取所有样式文件内容拼接到style中
 | 
	
		
			
				|  |  | +        if (stylesNodes[i].nodeName === 'LINK' && stylesNodes[i].rel === 'stylesheet') {
 | 
	
		
			
				|  |  | +          linkPromises.push(this.getStyleFromLink(stylesNodes[i].href));
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          style += stylesNodes[i].outerHTML;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | +      let linkStyles = ''
 | 
	
		
			
				|  |  | +      await Promise.all(linkPromises).then(styles => {
 | 
	
		
			
				|  |  | +        linkStyles = styles.reduce((prev, next) => {
 | 
	
		
			
				|  |  | +          return prev + next;
 | 
	
		
			
				|  |  | +        }, '<style type="text/css">');
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      linkStyles += '</style>';
 | 
	
		
			
				|  |  | +      style += linkStyles;
 | 
	
		
			
				|  |  |        // 额外的样式
 | 
	
		
			
				|  |  |        style += `<style>
 | 
	
		
			
				|  |  |        @media print {
 |