Selaa lähdekoodia

Merge remote-tracking branch 'origin/master'

guoyujia 1 vuosi sitten
vanhempi
commit
d54a006488

+ 11 - 2
src/api/business/outsourcedOrder.js

@@ -1,5 +1,5 @@
 import request from '@/utils/request'
-import { download } from '@/utils/request'
+import { download,downloadPdf } from '@/utils/request'
 const baseUrl = import.meta.env.VITE_APP_PRODUCTION_API
 
 // 查询外协单
@@ -57,7 +57,16 @@ export function exportOutsource(data) {
   )
 }
 
-
+//打印
+export function printOutsource(data) {
+  downloadPdf(
+    baseUrl+"/business/outsource/printDetailPdf",
+    {
+      ...data,
+    },
+    `外协发出单_${new Date().getTime()}.pdf`
+  )
+}
 
 
 // 修改外协单

+ 28 - 0
src/utils/request.js

@@ -169,4 +169,32 @@ export function download(url, params, filename, config) {
     })
 }
 
+// 通用pdf打印方法
+export function downloadPdf(url, params, filename, config) {
+  downloadLoadingInstance = ElLoading.service({ text: "正在下载数据,请稍候", background: "rgba(0, 0, 0, 0.7)", })
+  return service.post(url, params, {
+    transformRequest: [(params) => { return tansParams(params) }],
+    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
+    responseType: 'blob',
+    ...config
+  }).then(async (data) => {
+    const isLogin = await blobValidate(data);
+    if (isLogin) {
+      const blob = new Blob([data], { type: 'application/pdf' })
+      var url = URL.createObjectURL(blob);
+      window.open(url, 'filename');
+    } else {
+      const resText = await data.text();
+      const rspObj = JSON.parse(resText);
+      const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
+      ElMessage.error(errMsg);
+    }
+    downloadLoadingInstance.close();
+  }).catch((r) => {
+    console.error(r)
+    ElMessage.error('下载文件出现错误,请联系管理员!')
+    downloadLoadingInstance.close();
+  })
+}
+
 export default service

+ 1 - 0
src/views/business/outsource/form.vue

@@ -843,6 +843,7 @@ const handleMultipleSelectedProcesses = (selection) => {
   const processNames = selection.map((item) => item.processAlias);
   // 使用join方法将数组转换为以逗号分隔的字符串
   let commaSeparatedString = processNames.join(",");
+  currentDetail.value.processes = [];
   currentDetail.value.processNames = commaSeparatedString;
   selection.forEach((item) => {
     const newProcess = {

+ 15 - 0
src/views/business/outsource/index.vue

@@ -103,6 +103,15 @@
       >
         导出
       </el-button>
+      <el-button
+        type="warning"
+        icon="Download"
+        :disabled="ids.length != 1"
+        @click="handlePrint"
+        v-hasPermi="['business:outsource:export']"
+      >
+        打印
+      </el-button>
     </div>
 
     <!-- 渲染数据区 -->
@@ -247,6 +256,7 @@ import {
   listOrder,
   delOrder,
   exportOutsource,
+  printOutsource,
 } from "@/api/business/outsourcedOrder";
 import orderForm from "./form";
 const { proxy } = getCurrentInstance();
@@ -346,5 +356,10 @@ function handleExport() {
   exportOutsource({ id: ids.value[0] });
 }
 
+/** 导出按钮操作 */
+function handlePrint() {
+  printOutsource({ id: ids.value[0] });
+}
+
 getList();
 </script>