|
@@ -79,6 +79,14 @@
|
|
>
|
|
>
|
|
<el-input v-model="form.middleText" />
|
|
<el-input v-model="form.middleText" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
+ <el-form-item
|
|
|
|
+ v-if="activeName == '5' && myselfUpload == true"
|
|
|
|
+ label="质量等级字母:"
|
|
|
|
+ :rules="[{ required: true, message: '请输入' }]"
|
|
|
|
+ style="width: 400px"
|
|
|
|
+ >
|
|
|
|
+ <el-input v-model="form.ZLName" maxlength="1" />
|
|
|
|
+ </el-form-item>
|
|
<el-form-item label="启用状态:">
|
|
<el-form-item label="启用状态:">
|
|
<el-switch
|
|
<el-switch
|
|
v-model="form.signatureState"
|
|
v-model="form.signatureState"
|
|
@@ -356,6 +364,21 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <!-- 质量等级签章 -->
|
|
|
|
+ <div
|
|
|
|
+ v-if="activeName == '5'"
|
|
|
|
+ style="display: flex; flex-direction: column; align-items: center"
|
|
|
|
+ >
|
|
|
|
+ <div class="showGJBox ZLshowGJBox">
|
|
|
|
+ <div v-if="form.ZLName" ref="ZLRef" class="ZLBox">
|
|
|
|
+ {{ form.ZLName }}
|
|
|
|
+ </div>
|
|
|
|
+ <span v-else>请先设置等级签章字母值</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="operaBox" v-if="form.ZLName">
|
|
|
|
+ <el-button type="primary" @click="updownZLPng">下载</el-button>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
<div v-else>
|
|
<div v-else>
|
|
<!-- //自定义上传 -->
|
|
<!-- //自定义上传 -->
|
|
@@ -473,6 +496,15 @@ const submit = async () => {
|
|
"data:image/png;base64," + response.data.result.entSeal
|
|
"data:image/png;base64," + response.data.result.entSeal
|
|
);
|
|
);
|
|
break;
|
|
break;
|
|
|
|
+ case "5":
|
|
|
|
+ const chartContainer3 = ZLRef.value;
|
|
|
|
+ const canvas3 = await html2canvas(chartContainer3, {
|
|
|
|
+ logging: false, // 可选:关闭日志输出
|
|
|
|
+ backgroundColor: null, // 设置背景颜色为透明
|
|
|
|
+ });
|
|
|
|
+ const img3 = canvas3.toDataURL("image/png");
|
|
|
|
+ blob = base64ToBlob(img3);
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
|
|
|
|
const file = new File([blob], "签章文件.png", {
|
|
const file = new File([blob], "签章文件.png", {
|
|
@@ -661,6 +693,7 @@ const { GJRef, updownGJPng } = GJUseHook();
|
|
//检验签章
|
|
//检验签章
|
|
const JYUseHook = () => {
|
|
const JYUseHook = () => {
|
|
const JYRef = ref(null);
|
|
const JYRef = ref(null);
|
|
|
|
+ const ZLRef = ref(null);
|
|
const updownJYPng = async () => {
|
|
const updownJYPng = async () => {
|
|
const chartContainer = JYRef.value;
|
|
const chartContainer = JYRef.value;
|
|
const canvas = await html2canvas(chartContainer, {
|
|
const canvas = await html2canvas(chartContainer, {
|
|
@@ -670,12 +703,24 @@ const JYUseHook = () => {
|
|
const img = canvas.toDataURL("image/png");
|
|
const img = canvas.toDataURL("image/png");
|
|
const a = document.createElement("a");
|
|
const a = document.createElement("a");
|
|
a.href = img;
|
|
a.href = img;
|
|
- a.download = "手写签名.png";
|
|
|
|
|
|
+ a.download = "签章.png";
|
|
a.click();
|
|
a.click();
|
|
};
|
|
};
|
|
- return { JYRef, updownJYPng };
|
|
|
|
|
|
+ const updownZLPng = async () => {
|
|
|
|
+ const chartContainer = ZLRef.value;
|
|
|
|
+ const canvas = await html2canvas(chartContainer, {
|
|
|
|
+ logging: false, // 可选:关闭日志输出
|
|
|
|
+ backgroundColor: null, // 设置背景颜色为透明
|
|
|
|
+ });
|
|
|
|
+ const img = canvas.toDataURL("image/png");
|
|
|
|
+ const a = document.createElement("a");
|
|
|
|
+ a.href = img;
|
|
|
|
+ a.download = "签章.png";
|
|
|
|
+ a.click();
|
|
|
|
+ };
|
|
|
|
+ return { JYRef, ZLRef, updownJYPng, updownZLPng };
|
|
};
|
|
};
|
|
-const { JYRef, updownJYPng } = JYUseHook();
|
|
|
|
|
|
+const { JYRef, ZLRef, updownJYPng, updownZLPng } = JYUseHook();
|
|
//公章签章
|
|
//公章签章
|
|
const GZUseHook = () => {
|
|
const GZUseHook = () => {
|
|
const GZRef = ref(null);
|
|
const GZRef = ref(null);
|
|
@@ -933,19 +978,40 @@ watch(
|
|
display: flex;
|
|
display: flex;
|
|
.GJBox {
|
|
.GJBox {
|
|
font-size: 20px;
|
|
font-size: 20px;
|
|
|
|
+ padding: 0 3px;
|
|
color: red;
|
|
color: red;
|
|
background-color: transparent !important;
|
|
background-color: transparent !important;
|
|
display: inline;
|
|
display: inline;
|
|
- border: 2px solid red;
|
|
|
|
|
|
+ border: 4px solid red;
|
|
}
|
|
}
|
|
.JYBox {
|
|
.JYBox {
|
|
font-size: 20px;
|
|
font-size: 20px;
|
|
|
|
+ padding: 0 3px;
|
|
|
|
+ color: red;
|
|
|
|
+ background-color: transparent !important;
|
|
|
|
+ display: inline;
|
|
|
|
+ border: 4px solid red;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+.ZLshowGJBox {
|
|
|
|
+ width: 240px;
|
|
|
|
+ height: 140px;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ .ZLBox {
|
|
|
|
+ font-size: 120px;
|
|
|
|
+ font-weight: bolder;
|
|
|
|
+ text-align: center;
|
|
|
|
+ width: 120px;
|
|
|
|
+ height: 120px;
|
|
|
|
+ line-height: 50%;
|
|
|
|
+ padding-top: 25px;
|
|
color: red;
|
|
color: red;
|
|
background-color: transparent !important;
|
|
background-color: transparent !important;
|
|
display: inline;
|
|
display: inline;
|
|
- border: 2px solid red;
|
|
|
|
|
|
+ border: 4px solid red;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
.body {
|
|
.body {
|
|
display: flex;
|
|
display: flex;
|
|
justify-content: space-evenly;
|
|
justify-content: space-evenly;
|