ezhizao_zx 9 月之前
父節點
當前提交
500cf9886c
共有 2 個文件被更改,包括 57 次插入22 次删除
  1. 9 1
      src/api/business/certificate.js
  2. 48 21
      src/views/business/certificate/form.vue

+ 9 - 1
src/api/business/certificate.js

@@ -53,7 +53,7 @@ export function generateQrCode(data) {
 }
 }
 
 
 export function printPdf(data) {
 export function printPdf(data) {
-  downloadPdf(
+  return downloadPdf(
     baseUrl + "/business/certificate/printPdf",
     baseUrl + "/business/certificate/printPdf",
     {
     {
       ...data
       ...data
@@ -77,3 +77,11 @@ export function newCertificate(data) {
     data: data
     data: data
   });
   });
 }
 }
+
+export function copyCertificate(data) {
+  return request({
+    url: baseUrl + "/business/certificate/copyCertificate",
+    method: "post",
+    data: data
+  });
+}

+ 48 - 21
src/views/business/certificate/form.vue

@@ -30,22 +30,25 @@
           <el-row :gutter="30" style="margin-top: 10px; padding-top: 10px">
           <el-row :gutter="30" style="margin-top: 10px; padding-top: 10px">
             <el-col :span="6">
             <el-col :span="6">
               <el-form-item label="生成日期:" prop="printDate">
               <el-form-item label="生成日期:" prop="printDate">
-                <el-date-picker v-model="form.printDate" value-format="YYYY-MM-DD" style="width: 210px" />
+                <el-date-picker :disabled="form.generateTime != null" v-model="form.printDate" value-format="YYYY-MM-DD"
+                  style="width: 210px" />
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
             <el-col :span="6">
             <el-col :span="6">
               <el-form-item label="合格证种类:" prop="type">
               <el-form-item label="合格证种类:" prop="type">
-                <el-input readonly v-model="form.type" placeholder="请输入合格证种类" style="width: 210px" />
+                <el-input readonly :disabled="form.generateTime != null" v-model="form.type" placeholder="请输入合格证种类"
+                  style="width: 210px" />
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
             <el-col :span="6">
             <el-col :span="6">
               <el-form-item label="生产批号:" prop="lotCode">
               <el-form-item label="生产批号:" prop="lotCode">
-                <el-input readonly v-model="form.lotCode" style="width: 210px" />
+                <el-input readonly :disabled="form.generateTime != null" v-model="form.lotCode" style="width: 210px" />
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
             <el-col :span="6">
             <el-col :span="6">
               <el-form-item label="生产工段:" prop="deptName">
               <el-form-item label="生产工段:" prop="deptName">
-                <el-input readonly v-model="form.deptName" placeholder="" style="width: 210px">
+                <el-input readonly :disabled="form.generateTime != null" v-model="form.deptName" placeholder=""
+                  style="width: 210px">
                   <template #append>
                   <template #append>
                     <el-button icon="Search" @click="showDeptChoiceDialog"></el-button>
                     <el-button icon="Search" @click="showDeptChoiceDialog"></el-button>
                   </template>
                   </template>
@@ -54,71 +57,82 @@
             </el-col>
             </el-col>
             <el-col :span="6">
             <el-col :span="6">
               <el-form-item label="包装线号:" prop="packageLineNo">
               <el-form-item label="包装线号:" prop="packageLineNo">
-                <el-input readonly v-model="form.packageLineNo" placeholder="" style="width: 210px">
+                <el-input readonly :disabled="form.generateTime != null" v-model="form.packageLineNo" placeholder=""
+                  style="width: 210px">
                   <template #append>
                   <template #append>
-                    <el-button icon="Search" @click="showLineChoiceDialog"></el-button>
+                    <el-button :disabled="form.generateTime != null" icon="Search"
+                      @click="showLineChoiceDialog"></el-button>
                   </template>
                   </template>
                 </el-input>
                 </el-input>
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
             <el-col :span="6">
             <el-col :span="6">
               <el-form-item label="年:" prop="year">
               <el-form-item label="年:" prop="year">
-                <el-input readonly v-model="form.year" placeholder="" style="width: 210px" />
+                <el-input readonly :disabled="form.generateTime != null" v-model="form.year" placeholder=""
+                  style="width: 210px" />
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
             <el-col :span="6">
             <el-col :span="6">
               <el-form-item label="标签数量:" prop="labelNumber">
               <el-form-item label="标签数量:" prop="labelNumber">
-                <el-input-number v-model="form.labelNumber" :step="1" step-strictly :controls="false"
-                  @change="handleLabelNumberChange" style="width: 210px" />
+                <el-input-number :disabled="form.generateTime != null" v-model="form.labelNumber" :step="1"
+                  step-strictly :controls="false" @change="handleLabelNumberChange" style="width: 210px" />
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
             <el-col :span="6">
             <el-col :span="6">
               <el-form-item label="打印份数:" prop="printPages">
               <el-form-item label="打印份数:" prop="printPages">
-                <el-input readonly v-model="form.printPages" style="width: 210px" />
+                <el-input :disabled="form.generateTime != null" v-model="form.printPages" style="width: 210px" />
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
             <el-col :span="6">
             <el-col :span="6">
               <el-form-item label="包装数量:" prop="number">
               <el-form-item label="包装数量:" prop="number">
-                <el-input readonly v-model="form.number" style="width: 210px" />
+                <el-input :disabled="form.generateTime != null" readonly v-model="form.number" style="width: 210px" />
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
             <el-col :span="6">
             <el-col :span="6">
               <el-form-item label="产品描述:" prop="productDescription">
               <el-form-item label="产品描述:" prop="productDescription">
-                <el-input readonly v-model="form.productDescription" placeholder="" style="width: 210px" />
+                <el-input readonly :disabled="form.generateTime != null" v-model="form.productDescription"
+                  placeholder="" style="width: 210px" />
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
             <el-col :span="6">
             <el-col :span="6">
               <el-form-item label="规格:" prop="specification">
               <el-form-item label="规格:" prop="specification">
-                <el-input readonly v-model="form.specification" placeholder="" style="width: 210px" />
+                <el-input readonly :disabled="form.generateTime != null" v-model="form.specification" placeholder=""
+                  style="width: 210px" />
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
             <el-col :span="6">
             <el-col :span="6">
               <el-form-item label="图号:" prop="drawingNumber">
               <el-form-item label="图号:" prop="drawingNumber">
-                <el-input readonly v-model="form.drawingNumber" placeholder="" style="width: 210px" />
+                <el-input readonly :disabled="form.generateTime != null" v-model="form.drawingNumber" placeholder=""
+                  style="width: 210px" />
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
             <el-col :span="6">
             <el-col :span="6">
               <el-form-item label="客户简称:" prop="customerName">
               <el-form-item label="客户简称:" prop="customerName">
-                <el-input readonly v-model="form.customerName" placeholder="" style="width: 210px" />
+                <el-input readonly :disabled="form.generateTime != null" v-model="form.customerName" placeholder=""
+                  style="width: 210px" />
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
             <el-col :span="6">
             <el-col :span="6">
               <el-form-item label="包装箱号:" prop="packageCode">
               <el-form-item label="包装箱号:" prop="packageCode">
-                <el-input readonly v-model="form.packageCode" placeholder="" style="width: 210px">
+                <el-input readonly :disabled="form.generateTime != null" v-model="form.packageCode" placeholder=""
+                  style="width: 210px">
                   <template #append>
                   <template #append>
-                    <el-button icon="Search" @click="showPackageChoiceDialog"></el-button>
+                    <el-button :disabled="form.generateTime != null" icon="Search"
+                      @click="showPackageChoiceDialog"></el-button>
                   </template>
                   </template>
                 </el-input>
                 </el-input>
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
             <el-col :span="6">
             <el-col :span="6">
               <el-form-item label="包装尺寸:" prop="packageStandard">
               <el-form-item label="包装尺寸:" prop="packageStandard">
-                <el-input readonly v-model="form.packageStandard" placeholder="" style="width: 210px" />
+                <el-input readonly :disabled="form.generateTime != null" v-model="form.packageStandard" placeholder=""
+                  style="width: 210px" />
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
             <el-col :span="6">
             <el-col :span="6">
               <el-form-item label="包装形式码:" prop="packageTypeCode">
               <el-form-item label="包装形式码:" prop="packageTypeCode">
-                <el-input readonly v-model="form.packageTypeCode" placeholder="" style="width: 210px" />
+                <el-input readonly :disabled="form.generateTime != null" v-model="form.packageTypeCode" placeholder=""
+                  style="width: 210px" />
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
             <el-col :span="6">
             <el-col :span="6">
@@ -134,12 +148,14 @@
 </template>
 </template>
 <script setup>
 <script setup>
 import { ref } from "vue";
 import { ref } from "vue";
-import { getCertificate, generateQrCode, printPdf, newCertificate } from '@/api/business/certificate'
+import { getCertificate, generateQrCode, printPdf, newCertificate, copyCertificate } from '@/api/business/certificate'
 import useUserStore from "@/store/modules/user";
 import useUserStore from "@/store/modules/user";
 import { debounce } from "lodash";
 import { debounce } from "lodash";
 import DeptChoiceDialog from "./DeptChoiceDialog.vue";
 import DeptChoiceDialog from "./DeptChoiceDialog.vue";
 import PackageLineChoiceDialog from './PackageLineChoiceDialog.vue'
 import PackageLineChoiceDialog from './PackageLineChoiceDialog.vue'
 import PackageTypeChoiceDialog from './PackageTypeChoiceDialog.vue'
 import PackageTypeChoiceDialog from './PackageTypeChoiceDialog.vue'
+import { ElLoading } from 'element-plus'
+const fullscreenLoading = ref(false)
 
 
 /** 父组件传参 */
 /** 父组件传参 */
 const props = defineProps({
 const props = defineProps({
@@ -213,7 +229,12 @@ function handleGenerate() {
     proxy.$modal.msgError("请先选择包装");
     proxy.$modal.msgError("请先选择包装");
     return
     return
   }
   }
+  const loading = ElLoading.service({
+    lock: true,
+  })
   generateQrCode(form.value).then(res => {
   generateQrCode(form.value).then(res => {
+
+    loading.close()
     if (res.code === 200) {
     if (res.code === 200) {
       form.value = res.data
       form.value = res.data
       proxy.$modal.msgSuccess("生成成功");
       proxy.$modal.msgSuccess("生成成功");
@@ -257,7 +278,13 @@ function handlePrint() {
     proxy.$modal.msgError("请先生成二维码")
     proxy.$modal.msgError("请先生成二维码")
     return
     return
   }
   }
-  printPdf({ ...form.value, lots: null })
+  printPdf({ ...form.value, lots: null }).then(_ => {
+    copyCertificate(form.value).then(res => {
+      if (res.code === 200) {
+        form.value = res.data
+      }
+    })
+  })
 }
 }
 
 
 function showDeptChoiceDialog() {
 function showDeptChoiceDialog() {