瀏覽代碼

打印完善

liuyanpeng 3 年之前
父節點
當前提交
a126517bb7
共有 4 個文件被更改,包括 49 次插入69 次删除
  1. 2 0
      src/client/TopNavigation.vue
  2. 1 22
      src/common/X6.js
  3. 18 46
      src/print/PrintCard.vue
  4. 28 1
      src/print/config.js

+ 2 - 0
src/client/TopNavigation.vue

@@ -100,7 +100,9 @@ export default {
 </script>
 
 <style scoped>
+@media (max-width: 768px) {
 .navBack{
   z-index: 9999999;
 }
+}
 </style>

+ 1 - 22
src/common/X6.js

@@ -66,15 +66,13 @@ export default function CreateJPEG(dom) {
         graph.toJPEG(dataUri => {
           // dataUri就是base64的图片地址
           res(dataUri);
-          DataUri.downloadDataUri(dataUri, assetNo);
+          // DataUri.downloadDataUri(dataUri, assetNo);
         }, {
           serializeImages: true,
           quality: 1,
         });
       }, 500);
     });
-
-
   };
 }
 export const base64toFile = (url, imageName) => {
@@ -90,23 +88,4 @@ export const base64toFile = (url, imageName) => {
   return new File([u8arr], `${imageName}.${suffix}`, {
     type: 'image/jpeg',
   });
-};
-
-export const downloadImages = (imageUrl, name) => {
-  const image = new Image();
-  image.setAttribute('crossOrigin', 'anonymous');
-  image.onload = function () {
-    const canvas = document.createElement('canvas');
-    canvas.width = image.width;
-    canvas.height = image.height;
-    const context = canvas.getContext('2d');
-    context.drawImage(image, 0, 0, image.width, image.height);
-    const url = canvas.toDataURL('image/png');
-    const a = document.createElement('a');
-    const event = new MouseEvent('click');
-    a.download = name;
-    a.href = url;
-    a.dispatchEvent(event);
-  };
-  image.src = imageUrl;
 };

+ 18 - 46
src/print/PrintCard.vue

@@ -90,7 +90,9 @@
           >
             打印
           </a-button>
-          <a-button type="dashed" @click="downloadImage"> 下载全部 </a-button>
+          <a-button type="dashed" @click="downloadImageZip">
+            下载全部
+          </a-button>
         </div>
         <a-divider />
         <CommonTable
@@ -199,15 +201,16 @@ import Common from '../common/Common';
 import { message } from 'ant-design-vue';
 import { ref, reactive, onMounted, watch } from 'vue';
 import CreateJPEG from '../common/X6';
-import { base64toFile, downloadImages } from '../common/X6';
+import { base64toFile } from '../common/X6';
 import { SqlApi, Notify } from 'pc-component-v3';
 import { getImageSrc } from '../common/image-src';
-import Download from '../resource/file/DownloadService';
+import DownloadService from '../resource/file/DownloadService';
 import {
   columns,
   dateConvert,
   multipleImageUpload,
   getTemplate,
+  downloadZip,
 } from './config';
 
 const className = ref('com.leanwo.prodog.print.model.LabelPrintLine');
@@ -325,7 +328,6 @@ const searchPrintInfo = () => {
 // 获取所选项的数据
 const selectColumn = rows => {
   select.selectedRows = rows;
-  console.log('onSelectChange', select.selectedRows);
 };
 // 展开打印框
 const showPrintInfo = () => {
@@ -400,7 +402,7 @@ const printCard = async () => {
   let tempStr = JSON.stringify(templateData.value);
   const rows = JSON.parse(JSON.stringify(select.selectedRows));
   for (let key in rows) {
-    let base64 = await getBase64(rows[key], tempStr,rows[key].assetNo);
+    let base64 = await getBase64(rows[key], tempStr, rows[key].assetNo);
     let file = base64toFile(base64, rows[key].id);
     formData.append('file', file);
   }
@@ -426,48 +428,18 @@ const printCard = async () => {
   );
 };
 
-const downloadImage = () => {
-  globalLoading.value = true;
-  if (status.value !== undefined) {
-    queryParams.labelPrintType = status.value.slice(
-      0,
-      status.value.indexOf('-'),
-    );
-  }
-  pager.start = 0;
-  pager.length = 10000;
-  let params = { ...queryParams, ...pager };
-  if (queryParams.batchNo !== '') {
-    SqlApi.execute('20230613_140456', params).then(
-      successData => {
-        const { lines, errorMessage, errorCode } = successData;
-        if (errorCode == 0) {
-          total.value = successData.total;
-          console.log(lines,'-----------------');
-          lines.forEach(item => {
-            let url = getImageSrc(className.value, item.imageUrl);
-            downloadImages(url, item.id);
-          });
-          globalLoading.value = false;
-        } else {
-          Notify.error('查询异常', errorMessage, true);
-        }
-        globalLoading.value = false;
-      },
-      errorData => {
-        Common.processException(errorData);
-        globalLoading.value = false;
-      },
-    );
+const downloadImageZip = () => {
+  if (queryParams.batchNo === '') {
+    message.warning('请选择导入批次');
   } else {
-    message.error('请选择导入批次');
-    status.value = '';
-    dataSource.value = [];
-    queryParams.clientName = '';
-    queryParams.costCenterName = '';
-    queryParams.depositoryUser = '';
-    queryParams.organizationName = '';
-    globalLoading.value = false;
+    globalLoading.value = true;
+    let params = { batchNo: queryParams.batchNo };
+    downloadZip(params).then(successData => {
+      const downloadUrl = `/api/LabelPrintResource/batchImageDownload?batchNo=${queryParams.batchNo}`;
+      window.open(downloadUrl);
+      message.success('下载成功');
+      globalLoading.value = false;
+    });
   }
 };
 

+ 28 - 1
src/print/config.js

@@ -96,7 +96,7 @@ export const columns = [
   },
 ].map(item => ({ ...item, align: 'center' }));
 
-
+// 图片上传
 export const multipleImageUpload = params => {
   var requestUrl = 'LabelPrintResource/multipleImageUpload';
 
@@ -120,6 +120,8 @@ export const multipleImageUpload = params => {
     });
   });
 };
+
+// 获取模板信息
 export const getTemplate = () => {
   var requestUrl = 'printPageResource/loadCustomerTemplateX6';
 
@@ -141,6 +143,31 @@ export const getTemplate = () => {
     });
   });
 };
+
+// 图片下载 zip
+export const downloadZip = params => {
+  var requestUrl = 'LabelPrintResource/batchImageDownload';
+
+  return new Promise((resolve, reject) => {
+    $.ajax({
+      url: Common.getApiURL(requestUrl),
+      type: 'get',
+      data: params,
+      // dataType: 'octet-stream',
+      beforeSend: function (request) {
+        Common.addTokenToRequest(request);
+      },
+      success: function (data) {
+        resolve(data);
+      },
+      error: function (XMLHttpRequest, textStatus, errorThrown) {
+        reject(XMLHttpRequest);
+      },
+    });
+  });
+};
+
+
 const plusZero = n => {
   return n > 10 ? n : '0' + n;
 };