qymljy 1 ヶ月 前
コミット
826c1c9f5a

+ 7 - 7
src/HDrpManagement/serveWorkBill/components/printTable.vue

@@ -183,7 +183,7 @@
             <td colspan="5">
             <td colspan="5">
               <img
               <img
                 ref="nameImage"
                 ref="nameImage"
-                style="width: 400px"
+                style="width: 450px; height: 100px"
                 v-if="signatureName.length"
                 v-if="signatureName.length"
                 :src="signatureName[0].url"
                 :src="signatureName[0].url"
                 alt=""
                 alt=""
@@ -362,7 +362,7 @@
             <td colspan="5">
             <td colspan="5">
               <img
               <img
                 ref="nameImage"
                 ref="nameImage"
-                style="width: 200px"
+                style="width: 450px; height: 100px"
                 v-if="signatureName.length"
                 v-if="signatureName.length"
                 :src="signatureName[0].url"
                 :src="signatureName[0].url"
                 alt=""
                 alt=""
@@ -520,7 +520,7 @@
             <td colspan="5">
             <td colspan="5">
               <img
               <img
                 ref="nameImage"
                 ref="nameImage"
-                style="width: 200px"
+                style="width: 450px; height: 100px"
                 v-if="signatureName.length"
                 v-if="signatureName.length"
                 :src="signatureName[0].url"
                 :src="signatureName[0].url"
                 alt=""
                 alt=""
@@ -707,7 +707,7 @@
             <td colspan="5">
             <td colspan="5">
               <img
               <img
                 ref="nameImage"
                 ref="nameImage"
-                style="width: 200px"
+                style="width: 450px; height: 100px"
                 v-if="signatureName.length"
                 v-if="signatureName.length"
                 :src="signatureName[0].url"
                 :src="signatureName[0].url"
                 alt=""
                 alt=""
@@ -841,14 +841,14 @@ export default {
           let node = this.$refs.nameImage;
           let node = this.$refs.nameImage;
           console.log(node.height);
           console.log(node.height);
           let CANVAS = document.createElement("canvas");
           let CANVAS = document.createElement("canvas");
-          CANVAS.width = node.width;
-          CANVAS.height = node.width;
+          CANVAS.width = 900;
+          CANVAS.height = 200;
           let context = CANVAS.getContext("2d");
           let context = CANVAS.getContext("2d");
           let img = new Image();
           let img = new Image();
           img.crossOrigin = "anonymous";
           img.crossOrigin = "anonymous";
           img.onload = function () {
           img.onload = function () {
             console.log(img);
             console.log(img);
-            context.drawImage(img, 0, 0, node.width, node.height);
+            context.drawImage(img, 0, 0, 900, 200);
             let dataURL = CANVAS.toDataURL("image/jpg");
             let dataURL = CANVAS.toDataURL("image/jpg");
             node.src = dataURL;
             node.src = dataURL;
             console.log(
             console.log(

+ 1000 - 0
src/HDrpManagement/serveWorkBill/components/printTableCopy.vue

@@ -0,0 +1,1000 @@
+
+<template>
+  <div style="display: flex">
+    <!-- <canvas id="mycanvas" width="400" hight="400"></canvas> -->
+    <img
+      style="width: 100%; object-fit: fill"
+      :src="previewImage"
+      alt=""
+      v-if="previewImage"
+    />
+    <div style="display: inline-block; margin: 0 auto" v-else>
+      <!--非工序确认单-->
+      <div
+        ref="container"
+        style="background: #ffffff"
+        v-if="detail.workorder.actiontype == '非工序模板'"
+      >
+        <div slot="title">
+          <h2 style="margin: 0; text-align: center">
+            {{ $t("浙江班尼戈流体控制有限公司") }}
+          </h2>
+          <h3 style="text-align: center">{{ $t("服务确认单") }}</h3>
+          <div class="flex">
+            <p>{{ $t("日期") }}:{{ detail.createdate }}</p>
+            <p>{{ $t("编号") }}:{{ detail.confirmationno }}</p>
+          </div>
+        </div>
+        <table
+          id="header__table"
+          border="1"
+          style="border-collapse: collapse; border: 1px solid #ebebed"
+        >
+          <tr>
+            <td class="td__title">{{ $t("项目名称") }}</td>
+            <td>{{ detail.workorder.projectname || "--" }}</td>
+            <td class="td__title">{{ $t("保质期") }}</td>
+            <td>
+              {{ detail.workorder.isouritem === 1 ? $t("内") : $t("外") }}
+            </td>
+            <td class="td__title">{{ $t("服务方式") }}</td>
+            <td>{{ detail.workorder.type || "--" }}</td>
+          </tr>
+          <tr>
+            <td class="td__title">{{ $t("服务单号") }}</td>
+            <td>{{ detail.workorder.servicebillno || "--" }}</td>
+            <td class="td__title">{{ $t("服务类型") }}</td>
+            <td>{{ detail.workorder.servicetype || "--" }}</td>
+            <td class="td__title">{{ $t("订单号") }}</td>
+            <td>{{ detail.workorder.sonum || "--" }}</td>
+          </tr>
+          <tr>
+            <td class="td__title">{{ $t("联系人") }}</td>
+            <td>{{ detail.workorder.scenecontact || "--" }}</td>
+            <td class="td__title">{{ $t("联系方式") }}</td>
+            <td>{{ detail.workorder.scenecontactphonenumber || "--" }}</td>
+            <td class="td__title">{{ $t("应用系统") }}</td>
+            <td>{{ detail.workorder.class1 || "--" }}</td>
+          </tr>
+          <tr>
+            <td class="td__title">{{ $t("是否保内") }}</td>
+            <td>
+              {{
+                detail.workorder.inqualityguaranteeperiod ? $t("是") : $t("否")
+              }}
+            </td>
+            <td class="td__title">{{ $t("售后人员") }}</td>
+            <td>{{ detail.workorder.projectleader || "--" }}</td>
+            <td class="td__title">{{ $t("经销商名称") }}</td>
+            <td>{{ detail.workorder.enterprisename || "--" }}</td>
+          </tr>
+          <tr>
+            <td class="td__title">{{ $t("申请原因") }}</td>
+            <td colspan="6">{{ detail.workorder.reason || "--" }}</td>
+          </tr>
+          <tr>
+            <td class="td__title">{{ $t("地址") }}</td>
+            <td colspan="6">
+              {{
+                detail.workorder.province +
+                detail.workorder.city +
+                detail.workorder.county +
+                detail.workorder.address
+              }}
+            </td>
+          </tr>
+          <tr>
+            <td colspan="6" style="padding: 0">
+              <el-table
+                :data="detail.trainertitems"
+                :header-cell-style="{ background: '#F2F3F5', color: '#000000' }"
+                size="mini"
+              >
+                <el-table-column
+                  width="260"
+                  prop="itemname"
+                  :label="$t(`产品名`)"
+                >
+                  <template slot-scope="scope">
+                    {{ scope.row.itemname ? scope.row.itemname : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column prop="itemno" width="200" :label="$t('编号')">
+                  <template slot-scope="scope">
+                    {{ scope.row.itemno ? scope.row.itemno : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column width="100" prop="qty" :label="$t(`数量`)">
+                  <template slot-scope="scope">
+                    {{ scope.row.qty ? scope.row.qty : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column width="200" prop="model" :label="$t('型号')">
+                  <template slot-scope="scope">
+                    {{ scope.row.model ? scope.row.model : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column width="200" prop="spec" :label="$t('规格')">
+                  <template slot-scope="scope">
+                    {{ scope.row.spec ? scope.row.spec : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  width="200"
+                  prop="reason_service"
+                  :label="$t(`异常现象`)"
+                >
+                  <template slot-scope="scope">
+                    {{ scope.row.reason_service ? scope.row.reason_service : "--" }}
+                  </template>
+                </el-table-column>
+              </el-table>
+            </td>
+          </tr>
+          <tr>
+            <td class="td__title" colspan="6" style="text-align: center">
+              {{ $t("处理方式") }}
+            </td>
+          </tr>
+          <tr
+            v-for="(item, index) in detail.trainertitems"
+            :key="item.sa_workorder_node_itemsid"
+          >
+            <td>
+              <p>{{ item.itemname }}</p>
+              <p>{{ item.itemno }}</p>
+            </td>
+            <td colspan="6">{{ item.processing }}</td>
+          </tr>
+          <tr></tr>
+          <tr>
+            <td class="td__title" colspan="6" style="text-align: center">
+              {{ $t("处理结果") }}
+            </td>
+          </tr>
+          <tr
+            v-for="(item, index) in detail.trainertitems"
+            :key="item.sa_workorder_node_itemsid"
+          >
+            <td>
+              <p>{{ item.itemname }}</p>
+              <p>{{ item.itemno }}</p>
+            </td>
+            <td colspan="6">{{ item.result }}</td>
+          </tr>
+          <tr></tr>
+<!--          <tr>-->
+<!--            <td class="td__title" colspan="6" style="text-align: center">-->
+<!--              {{ $t("原因分析") }}-->
+<!--            </td>-->
+<!--          </tr>-->
+<!--          <tr-->
+<!--            v-for="(item, index) in detail.trainertitems"-->
+<!--            :key="item.sa_workorder_node_itemsid"-->
+<!--          >-->
+<!--            <td>-->
+<!--              <p>{{ item.itemname }}</p>-->
+<!--              <p>{{ item.itemno }}</p>-->
+<!--            </td>-->
+<!--            <td colspan="6">{{ item.reason }}</td>-->
+<!--          </tr>-->
+          <tr>
+            <td style="background: #fafafa">{{ $t("客户意见及签字确认") }}:</td>
+            <td colspan="5">
+              <img
+                ref="nameImage"
+                style="width: 400px"
+                v-if="signatureName.length"
+                :src="signatureName[0].url"
+                alt=""
+              />
+            </td>
+          </tr>
+          <tr>
+            <td style="background: #fafafa">{{ $t("反应速度") }}</td>
+            <td colspan="1">{{ detail.responsescore }}</td>
+            <td style="background: #fafafa">{{ $t("配合态度") }}</td>
+            <td colspan="1">{{ detail.attitudescore }}</td>
+            <td style="background: #fafafa">{{ $t("满意度") }}</td>
+            <td colspan="1">{{ detail.satisfaction }}</td>
+          </tr>
+          <tr>
+            <td style="background: #fafafa"></td>
+            <td colspan="5">
+              {{
+                $t(
+                  "尊敬的用户,感谢您一直以来对我们公司的信任和支持,为更好的为您提供优质服务和产品,请允许我们的客户人员带回您最宝贵的意见"
+                )
+              }}
+            </td>
+          </tr>
+        </table>
+      </div>
+      <!--安装培训确认单-->
+      <div
+        ref="container"
+        style="background: #ffffff"
+        v-else-if="detail.workorder.type == '安装培训'"
+      >
+        <div slot="title">
+          <h2 style="margin: 0; text-align: center">
+            {{ $t("浙江班尼戈智慧管网股份有限公司") }}
+          </h2>
+          <h3 style="text-align: center">
+            {{ $t("BZ/Q(EO)P38-02系统《E服务确认单》") }}
+          </h3>
+          <div class="flex">
+            <p>{{ $t("日期") }}:{{ detail.createdate }}</p>
+            <p>{{ $t("编号") }}:{{ detail.confirmationno }}</p>
+          </div>
+        </div>
+        <table
+          id="header__table"
+          border="1"
+          style="border-collapse: collapse; border: 1px solid #ebebed"
+        >
+          <tr>
+            <td class="td__title">{{ $t("服务分类") }}</td>
+            <td>{{ detail.workorder.type || "--" }}</td>
+            <td class="td__title">{{ $t("应用系统") }}</td>
+            <td>{{ detail.workorder.class1 || "--" }}</td>
+            <td class="td__title">{{ $t("工单负责人") }}</td>
+            <td>{{ detail.workorder.projectleader || "--" }}</td>
+          </tr>
+          <tr>
+            <td class="td__title">{{ $t("项目名称") }}</td>
+            <td>{{ detail.workorder.projectname || "--" }}</td>
+            <td class="td__title">{{ $t("业务员负责人") }}</td>
+            <td>{{ detail.workorder.saler_name || "--" }}</td>
+            <td class="td__title">{{ $t("服务经销商") }}</td>
+            <td>{{ detail.workorder.abbreviation || "--" }}</td>
+          </tr>
+          <tr>
+            <td class="td__title">{{ $t("联系人") }}</td>
+            <td>{{ detail.workorder.scenecontact || "--" }}</td>
+            <td class="td__title">{{ $t("联系方式") }}</td>
+            <td>{{ detail.workorder.scenecontactphonenumber || "--" }}</td>
+            <td class="td__title">{{ $t("地址") }}</td>
+            <td>
+              {{
+                detail.workorder.province +
+                detail.workorder.city +
+                detail.workorder.county +
+                detail.workorder.address
+              }}
+            </td>
+          </tr>
+          <tr>
+            <td colspan="6" style="padding: 0">
+              <el-table
+                :data="detail.trainers"
+                :header-cell-style="{ background: '#F2F3F5', color: '#000000' }"
+                size="mini"
+              >
+                <el-table-column
+                  width="260"
+                  prop="name"
+                  :label="$t(`培训人员姓名`)"
+                >
+                  <template slot-scope="scope">
+                    {{ scope.row.name ? scope.row.name : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column prop="position" :label="$t(`职务`)">
+                  <template slot-scope="scope">
+                    {{ scope.row.position ? scope.row.position : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  width="200"
+                  prop="phonenumber"
+                  :label="$t(`电话`)"
+                >
+                  <template slot-scope="scope">
+                    {{ scope.row.phonenumber ? scope.row.phonenumber : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  width="200"
+                  prop="enterprisename"
+                  :label="$t(`所属经销商`)"
+                >
+                  <template slot-scope="scope">
+                    {{
+                      scope.row.enterprisename ? scope.row.enterprisename : "--"
+                    }}
+                  </template>
+                </el-table-column>
+              </el-table>
+            </td>
+          </tr>
+          <tr>
+            <td colspan="6" style="padding: 0">
+              <el-table
+                :data="detail.trainertitems"
+                :header-cell-style="{ background: '#F2F3F5', color: '#000000' }"
+                size="mini"
+              >
+                <el-table-column
+                  width="260"
+                  prop="itemname"
+                  :label="$t(`产品名`)"
+                >
+                  <template slot-scope="scope">
+                    {{ scope.row.itemname ? scope.row.itemname : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column prop="itemno" width="200" :label="$t('编号')">
+                  <template slot-scope="scope">
+                    {{ scope.row.itemno ? scope.row.itemno : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column width="60" prop="qty" :label="$t(`数量`)">
+                  <template slot-scope="scope">
+                    {{ scope.row.qty ? scope.row.qty : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column width="200" prop="model" :label="$t('型号')">
+                  <template slot-scope="scope">
+                    {{ scope.row.model ? scope.row.model : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column width="200" prop="spec" :label="$t('规格')">
+                  <template slot-scope="scope">
+                    {{ scope.row.spec ? scope.row.spec : "--" }}
+                  </template>
+                </el-table-column>
+              </el-table>
+            </td>
+          </tr>
+          <tr>
+            <td style="background: #fafafa">{{ $t("现场培训内容") }}</td>
+            <td colspan="5">{{ text.descriptions1 }}</td>
+          </tr>
+          <tr>
+            <td style="background: #fafafa">
+              {{ $t("现场互动及测试培训效果") }}
+            </td>
+            <td colspan="5">{{ text.descriptions2 }}</td>
+          </tr>
+          <tr>
+            <td style="background: #fafafa">{{ $t("客户意见及签字确认") }}:</td>
+            <td colspan="5">
+              <img
+                ref="nameImage"
+                style="width: 200px"
+                v-if="signatureName.length"
+                :src="signatureName[0].url"
+                alt=""
+              />
+            </td>
+          </tr>
+          <tr>
+            <td style="background: #fafafa">{{ $t("反应速度") }}</td>
+            <td colspan="2">{{ detail.responsescore }}</td>
+            <td style="background: #fafafa">{{ $t("配合态度") }}</td>
+            <td colspan="2">{{ detail.attitudescore }}</td>
+          </tr>
+          <tr>
+            <td style="background: #fafafa"></td>
+            <td colspan="5">
+              {{
+                $t(
+                  "尊敬的用户,感谢您一直以来对我们公司的信任和支持,为更好的为您提供优质服务和产品,请允许我们的客户人员带回您最宝贵的意见"
+                )
+              }}
+            </td>
+          </tr>
+        </table>
+      </div>
+      <!--服务确认单-->
+      <div
+        ref="container"
+        style="background: #ffffff"
+        v-else-if="detail.workorder.type == '服务'"
+      >
+        <div slot="title" style="text-align: center; width: 100%">
+          <h2 style="margin: 0">{{ $t("浙江班尼戈智慧管网股份有限公司") }}</h2>
+          <h3 style="padding: 10px; text-align: center">
+            {{ $t("售后服务确认单") }}
+          </h3>
+          <div class="flex">
+            <p>{{ $t("日期") }}:{{ detail.createdate }}</p>
+            <p>{{ $t("编号") }}:{{ detail.confirmationno }}</p>
+          </div>
+        </div>
+        <table
+          id="header__table"
+          border="1"
+          style="border-collapse: collapse; border: 1px solid #ebebed"
+        >
+          <tr>
+            <td class="td__title">{{ $t("项目名称") }}</td>
+            <td>{{ detail.workorder.projectname || "--" }}</td>
+            <td class="td__title">{{ $t("保质期") }}</td>
+            <td>
+              {{ detail.workorder.isouritem === 1 ? $t("内") : $t("外") }}
+            </td>
+            <td class="td__title">{{ $t("是否有偿服务") }}</td>
+            <td>{{ text.descriptions4 > 0 ? $t("是") : $t("否") }}</td>
+          </tr>
+          <tr>
+            <td class="td__title">{{ $t("服务金额") }}</td>
+            <td>{{ text.descriptions4 }}</td>
+            <td class="td__title">{{ $t("联系人") }}</td>
+            <td>{{ detail.workorder.scenecontact || "--" }}</td>
+            <td class="td__title">{{ $t("联系方式") }}</td>
+            <td>{{ detail.workorder.scenecontactphonenumber || "--" }}</td>
+          </tr>
+          <tr>
+            <td class="td__title">{{ $t("应用系统") }}</td>
+            <td>{{ detail.workorder.class1 || "--" }}</td>
+            <td class="td__title">{{ $t("客诉大类") }}</td>
+            <td>{{ detail.workorder.class2 || "--" }}</td>
+            <td class="td__title">{{ $t("地址") }}</td>
+            <td>
+              {{
+                detail.workorder.province +
+                detail.workorder.city +
+                detail.workorder.county +
+                detail.workorder.address
+              }}
+            </td>
+          </tr>
+          <tr>
+            <td colspan="6" style="padding: 0">
+              <el-table
+                :data="detail.trainertitems"
+                :header-cell-style="{ background: '#F2F3F5', color: '#000000' }"
+                size="mini"
+              >
+                <el-table-column
+                  width="260"
+                  prop="itemname"
+                  :label="$t(`产品名`)"
+                >
+                  <template slot-scope="scope">
+                    {{ scope.row.itemname ? scope.row.itemname : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column prop="itemno" width="200" :label="$t('编号')">
+                  <template slot-scope="scope">
+                    {{ scope.row.itemno ? scope.row.itemno : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column width="200" prop="qty" :label="$t(`数量`)">
+                  <template slot-scope="scope">
+                    {{ scope.row.qty ? scope.row.qty : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column width="200" prop="model" :label="$t('型号')">
+                  <template slot-scope="scope">
+                    {{ scope.row.model ? scope.row.model : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column width="200" prop="spec" :label="$t('规格')">
+                  <template slot-scope="scope">
+                    {{ scope.row.spec ? scope.row.spec : "--" }}
+                  </template>
+                </el-table-column>
+              </el-table>
+            </td>
+          </tr>
+          <tr>
+            <td style="background: #fafafa">{{ $t("问题简述") }}</td>
+            <td colspan="5">{{ detail.workorder.reason || "--" }}</td>
+          </tr>
+          <tr>
+            <td style="background: #fafafa">{{ $t("原因及处理措施") }}</td>
+            <td colspan="5">
+              {{
+                detail.confirmationcontent[8]
+                  ? detail.confirmationcontent[8].treatment.confirm_value
+                  : ""
+              }}
+            </td>
+          </tr>
+          <tr>
+            <td style="background: #fafafa">{{ $t("下次处理日期") }}</td>
+            <td colspan="5">
+              {{
+                detail.confirmationcontent[7]
+                  ? detail.confirmationcontent[7].nextTreatmentTime
+                      .confirm_value
+                  : ""
+              }}
+            </td>
+          </tr>
+          <tr>
+            <td style="background: #fafafa">{{ $t("事项说明") }}</td>
+            <td colspan="5">
+              {{
+                detail.confirmationcontent[9]
+                  ? detail.confirmationcontent[9].explain.confirm_value
+                  : ""
+              }}
+            </td>
+          </tr>
+          <tr>
+            <td style="background: #fafafa">{{ $t("客户意见及签字确认") }}:</td>
+            <td colspan="5">
+              <img
+                ref="nameImage"
+                style="width: 200px"
+                v-if="signatureName.length"
+                :src="signatureName[0].url"
+                alt=""
+              />
+            </td>
+          </tr>
+          <tr>
+            <td style="background: #fafafa">{{ $t("反应速度") }}</td>
+            <td colspan="2">{{ detail.responsescore }}</td>
+            <td style="background: #fafafa">{{ $t("配合态度") }}</td>
+            <td colspan="2">{{ detail.attitudescore }}</td>
+          </tr>
+          <tr>
+            <td style="background: #fafafa"></td>
+            <td colspan="5">
+              {{
+                $t(
+                  "尊敬的用户,感谢您一直以来对我们公司的信任和支持,为更好的为您提供优质服务和产品,请允许我们的客户人员带回您最宝贵的意见"
+                )
+              }}
+            </td>
+          </tr>
+        </table>
+      </div>
+      <!--安装调试确认单-->
+      <div
+        ref="container"
+        style="background: #ffffff"
+        v-else-if="detail.workorder.type == '安装调试'"
+      >
+        <div slot="title">
+          <h2 style="margin: 0; text-align: center">
+            {{ $t("浙江班尼戈智慧管网股份有限公司") }}
+          </h2>
+          <h3 style="text-align: center">
+            {{ $t("BZ/Q(EO)P38-02系统《E服务确认单》") }}
+          </h3>
+          <div class="flex">
+            <p>{{ $t("日期") }}:{{ detail.createdate }}</p>
+            <p>{{ $t("编号") }}:{{ detail.confirmationno }}</p>
+          </div>
+        </div>
+        <table
+          id="header__table"
+          border="1"
+          style="border-collapse: collapse; border: 1px solid #ebebed"
+        >
+          <tr>
+            <td class="td__title">{{ $t("服务分类") }}</td>
+            <td>{{ detail.workorder.type || "--" }}</td>
+            <td class="td__title">{{ $t("应用系统") }}</td>
+            <td>{{ detail.workorder.class1 || "--" }}</td>
+            <td class="td__title">{{ $t("工单负责人") }}</td>
+            <td>{{ detail.workorder.projectleader || "--" }}</td>
+          </tr>
+          <tr>
+            <td class="td__title">{{ $t("项目名称") }}</td>
+            <td>{{ detail.workorder.projectname || "--" }}</td>
+            <td class="td__title">{{ $t("业务员负责人") }}</td>
+            <td>{{ detail.workorder.saler_name || "--" }}</td>
+            <td class="td__title">{{ $t("服务经销商") }}</td>
+            <td>{{ detail.workorder.abbreviation || "--" }}</td>
+          </tr>
+          <tr>
+            <td class="td__title">{{ $t("联系人") }}</td>
+            <td>{{ detail.workorder.scenecontact || "--" }}</td>
+            <td class="td__title">{{ $t("联系方式") }}</td>
+            <td>{{ detail.workorder.scenecontactphonenumber || "--" }}</td>
+            <td class="td__title">{{ $t("地址") }}</td>
+            <td>
+              {{
+                detail.workorder.province +
+                detail.workorder.city +
+                detail.workorder.county +
+                detail.workorder.address
+              }}
+            </td>
+          </tr>
+          <tr>
+            <td colspan="6" style="padding: 0">
+              <el-table
+                :data="detail.trainertitems"
+                :header-cell-style="{ background: '#F2F3F5', color: '#000000' }"
+                size="mini"
+              >
+                <el-table-column
+                  width="260"
+                  prop="itemname"
+                  :label="$t(`产品名`)"
+                >
+                  <template slot-scope="scope">
+                    {{ scope.row.itemname ? scope.row.itemname : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column prop="itemno" :label="$t('编号')">
+                  <template slot-scope="scope">
+                    {{ scope.row.itemno ? scope.row.itemno : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column width="200" prop="qty" :label="$t(`数量`)">
+                  <template slot-scope="scope">
+                    {{ scope.row.qty ? scope.row.qty : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column width="200" prop="model" :label="$t('型号')">
+                  <template slot-scope="scope">
+                    {{ scope.row.model ? scope.row.model : "--" }}
+                  </template>
+                </el-table-column>
+                <el-table-column width="200" prop="spec" :label="$t('规格')">
+                  <template slot-scope="scope">
+                    {{ scope.row.spec ? scope.row.spec : "--" }}
+                  </template>
+                </el-table-column>
+              </el-table>
+            </td>
+          </tr>
+          <tr>
+            <td colspan="2" style="background: #fafafa">
+              {{ $t("客诉情况") }}
+            </td>
+            <td colspan="1">{{ detail.workorder.reason }}</td>
+            <td colspan="2" style="background: #fafafa">
+              {{ $t("是否为我公司生产、出货产品?") }}
+            </td>
+            <td colspan="1">
+              {{ detail.workorder.isouritem === 1 ? this.$t("是") :  this.$t("否") }}
+            </td>
+          </tr>
+          <tr>
+            <td colspan="2" style="background: #fafafa">
+              {{ $t("是否可以在线维修、调试") }}
+            </td>
+            <td colspan="1">{{ text.descriptions1 }}</td>
+            <td colspan="2" style="background: #fafafa">
+              {{ $t("是否需要拆卸配件或整拆?") }}
+            </td>
+            <td colspan="1">{{ text.descriptions2 }}</td>
+          </tr>
+          <tr>
+            <td colspan="2" style="background: #fafafa">
+              {{ $t("与现场协商确认维修方案(包含周期)") }}?
+            </td>
+            <td colspan="1">{{ text.descriptions3 }}</td>
+            <td colspan="2" style="background: #fafafa">
+              {{ $t("是否有偿服务") }}
+            </td>
+            <td colspan="5">
+              {{ text.descriptions4 > 0 ? $t("是") : $t("否") }}
+            </td>
+          </tr>
+          <tr>
+            <td colspan="2" style="background: #fafafa">
+              {{ $t("服务金额") }}
+            </td>
+            <td colspan="1">{{ text.descriptions4 }}</td>
+            <td colspan="2" style="background: #fafafa">
+              {{ $t("实施内容") }}
+            </td>
+            <td colspan="1">{{ text.descriptions5 }}</td>
+          </tr>
+          <tr>
+            <td colspan="2" style="background: #fafafa">
+              {{ $t("服务测试内容描述") }}
+            </td>
+            <td colspan="1">{{ text.descriptions6 }}</td>
+            <td colspan="2" style="background: #fafafa">
+              {{ $t("现场交代事项") }}
+            </td>
+            <td colspan="1">{{ text.descriptions7 }}</td>
+          </tr>
+          <tr>
+            <td style="background: #fafafa">{{ $t("保质期") }}</td>
+            <td colspan="5">
+              {{ detail.workorder.isouritem === 1 ? $t("内") : $t("外") }}
+            </td>
+          </tr>
+          <tr>
+            <td style="background: #fafafa">{{ $t("备注说明") }}</td>
+            <td colspan="5">{{ detail.workorder.remarks || "--" }}</td>
+          </tr>
+          <tr>
+            <td style="background: #fafafa">{{ $t("客户意见及签字确认") }}:</td>
+            <td colspan="5">
+              <img
+                ref="nameImage"
+                style="width: 200px"
+                v-if="signatureName.length"
+                :src="signatureName[0].url"
+                alt=""
+              />
+            </td>
+          </tr>
+          <tr>
+            <td style="background: #fafafa">{{ $t("反应速度") }}</td>
+            <td colspan="2">{{ detail.responsescore }}</td>
+            <td style="background: #fafafa">{{ $t("配合态度") }}</td>
+            <td colspan="2">{{ detail.attitudescore }}</td>
+          </tr>
+          <tr>
+            <td style="background: #fafafa"></td>
+            <td colspan="5">
+              {{
+                $t(
+                  "尊敬的用户,感谢您一直以来对我们公司的信任和支持,为更好的为您提供优质服务和产品,请允许我们的客户人员带回您最宝贵的意见"
+                )
+              }}
+            </td>
+          </tr>
+        </table>
+      </div>
+      <!-- <el-button style="margin:20px 0" type="primary" size="small" @click="submit">生 成 图 片</el-button> -->
+    </div>
+  </div>
+</template>
+
+<script>
+import domtoimage from "dom-to-image";
+export default {
+  props: ["data"],
+  data() {
+    return {
+      previewImage: "",
+      detail: {
+        servicetype: {},
+        workorder: {},
+        servicetitems: [],
+        confirmationcontent: [],
+      },
+      signatureName: [],
+      needSignName: true,
+      show: true,
+      text: {
+        descriptions1: "",
+        descriptions2: "",
+        descriptions3: "",
+        descriptions4: 0,
+        descriptions5: "",
+        descriptions6: "",
+        descriptions7: "",
+      },
+      folderid: this.$route.query.parentid,
+      params: {
+        accesstoken: this.$route.query.token,
+        classname: "system.attachment.huawei.OBS",
+        method: "getFileName",
+        content: {
+          filename: "",
+          filetype: "",
+          parentid: "", //归属文件夹ID
+        },
+      },
+    };
+  },
+  methods: {
+    async listData() {
+      let that = this;
+      let param = {
+        id: "20230211105803",
+        content: {
+          sa_workorder_confirmationid: this.$route.query.ownerid,
+        },
+      };
+      let res = await this.$api.requested(param);
+      if (res.data.workorder.type == "安装测试") {
+        res.data.confirmationcontent.forEach((e) => {
+          Object.keys(e).map((key, index) => {
+            this.text.descriptions4 += e[key].amount;
+            if (key.includes("现场培训内容")) {
+              this.text.descriptions1 = e[key].confirm_value;
+            }
+            if (key.includes("是否需要拆卸配件或整拆")) {
+              this.text.descriptions2 = e[key].confirm_value;
+            }
+            if (key.includes("维修方案")) {
+              this.text.descriptions3 = e[key].confirm_value
+                ? e[key].confirm_value
+                : e[key].textcontent;
+            }
+            if (key.includes("实施内容记录")) {
+              this.text.descriptions5 = e[key].confirm_value
+                ? e[key].confirm_value
+                : e[key].textcontent;
+            }
+            if (key.includes("与现场协商试运行测试并验收")) {
+              this.text.descriptions6 = e[key].confirm_value
+                ? e[key].confirm_value
+                : e[key].textcontent;
+            }
+            if (key.includes("现场交代注意事项")) {
+              this.text.descriptions7 = e[key].confirm_value
+                ? e[key].confirm_value
+                : e[key].textcontent;
+            }
+          });
+        });
+      } else {
+        res.data.confirmationcontent.forEach((e) => {
+          Object.keys(e).map((key, index) => {
+            this.text.descriptions4 += e[key].amount;
+            if (key.includes("现场培训内容")) {
+              this.text.descriptions1 = e[key].confirm_value;
+            }
+            if (key.includes("测试培训效果")) {
+              this.text.descriptions2 = e[key].confirm_value;
+            }
+          });
+        });
+      }
+      this.detail = res.data;
+      this.signatureName = this.detail.attinfos.filter((e) => {
+        if (e.usetype === "signature") {
+          return e;
+        }
+      });
+      if (this.signatureName.length) {
+        this.$nextTick(() => {
+          let node = this.$refs.nameImage;
+          console.log(node.height);
+          let CANVAS = document.createElement("canvas");
+          CANVAS.width = node.width;
+          CANVAS.height = node.width;
+          let context = CANVAS.getContext("2d");
+          let img = new Image();
+          img.crossOrigin = "anonymous";
+          img.onload = function () {
+            console.log(img);
+            context.drawImage(img, 0, 0, node.width, node.height);
+            let dataURL = CANVAS.toDataURL("image/jpg");
+            node.src = dataURL;
+            console.log(
+              that.detail.status,
+              that.detail.status == "新建",
+              "结果",
+              that.detail.status == "新建" || that.$route.query.action == 1,
+              that.$route.query.action == 1
+            );
+            if (that.detail.status == "新建" || that.$route.query.action == 1) {
+              that.submit();
+            } else {
+              domtoimage
+                .toJpeg(that.$refs.container, {
+                  width: that.$refs.container.width,
+                  height: that.$refs.container.height,
+                  cacheBust: true,
+                })
+                .then((res) => {
+                  that.previewImage = res;
+                });
+            }
+          };
+          img.src = this.signatureName[0].url + "?time=" + Date.now();
+        });
+      } else {
+        this.$nextTick(() => {
+          if (that.detail.status == "新建" || that.$route.query.action == 1) {
+            that.submit();
+          } else {
+            domtoimage
+              .toJpeg(that.$refs.container, {
+                width: that.$refs.container.width,
+                height: that.$refs.container.height,
+                cacheBust: true,
+              })
+              .then((res) => {
+                that.previewImage = res;
+              });
+          }
+        });
+      }
+    },
+    submit() {
+      let that = this;
+      console.log(this.$refs.container);
+      domtoimage.toBlob(this.$refs.container).then(function (blob) {
+        let file = new File([blob], that.detail.workorder.type, {
+          type: blob.type,
+        });
+        that.params.content.filename = that.detail.workorder.type + ".jpg";
+        that.params.content.filetype = "jpg";
+        that.getUploadUrl(file, "jpg");
+
+        that.previewImage = URL.createObjectURL(blob);
+        console.log(that.previewImage, "执行");
+      });
+    },
+    // 获取华为云上传地址
+    async getUploadUrl(file, ext) {
+      this.params.content.parentid = this.folderid;
+      const res = await this.$api.requested(this.params);
+      let url = res.data.uploadurl;
+      let obsfilename = res.data.serialfilename;
+
+      this.upoladFileToServer(url, file, ext, obsfilename);
+    },
+
+    // 上传到华为云
+    async upoladFileToServer(url, file, ext, obsfilename) {
+      console.log(file);
+      let THIS = this;
+      let config = {
+        headers:
+          ext === "pdf"
+            ? { "Content-Type": "application/pdf" }
+            : ext === "svg"
+            ? { "Content-Type": "image/svg+xml" }
+            : { "Content-Type": "application/octet-stream" },
+      };
+      const res = await this.$upload.hw_upload(url, file, config);
+      this.createFileRecord(obsfilename);
+    },
+
+    // 上传成功以后生成附件记录
+    async createFileRecord(obsfilename, attinfos) {
+      let obj = {
+        serialfilename: obsfilename,
+      };
+      obj = Object.assign({}, obj, this.bindData);
+      let param = {
+        accesstoken: this.$route.query.token,
+        classname: "system.attachment.huawei.OBS",
+        method: "uploadSuccess",
+        content: obj,
+      };
+      const res = await this.$api.requested(param);
+      if (res.code === 1) {
+        let res2 = await this.$api.requested({
+          accesstoken: this.$route.query.token,
+          classname: "system.attachment.Attachment",
+          method: "createFileLink",
+          content: {
+            ownertable: "sa_workorder_confirmation",
+            ownerid: this.$route.query.ownerid,
+            usetype: "comfirmbill",
+            attachmentids: [res.data.attachmentids[0]],
+          },
+        });
+        this.$emit("onSuccess", res);
+      }
+    },
+  },
+  created() {
+    if (sessionStorage.getItem("active_account")) {
+      let result = JSON.parse(sessionStorage.getItem("active_account"));
+      result.token = this.$route.query.token;
+      sessionStorage.setItem("active_account", JSON.stringify(result));
+    } else {
+      sessionStorage.setItem(
+        "active_account",
+        JSON.stringify({ token: this.$route.query.token })
+      );
+    }
+  },
+  mounted() {
+    this.listData();
+  },
+};
+</script>
+<style scoped>
+#header__table tr td {
+  width: 120px;
+  padding: 10px;
+}
+.td__title {
+  background: #fafafa;
+  color: #000000;
+}
+.flex {
+  display: flex;
+  justify-content: space-between;
+}
+.noborder td {
+  border-left: none;
+  border-top: none;
+  border-bottom: none;
+}
+</style>