24c9a239 by renchao@pashanhoo.com

style:证书证明预览样式修改

1 parent 6f39450e
......@@ -8,88 +8,81 @@
class="from-clues loadingtext"
v-Loading="loading"
element-loading-text="拼命加载中..."
style="height: 720px; text-align: center"
>
style="height: 720px; text-align: center">
<!-- 表单部分 -->
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="证书预览" name="zsyl">
<el-empty
description="暂无数据"
v-if="headTabBdcqz.length == 0 && noData"
></el-empty>
v-if="headTabBdcqz.length == 0 && noData"></el-empty>
<div class="zsys">
<canvas
ref="zs"
width="1000"
v-show="this.bdcqz.bdcqzlx == 1"
height="700"
></canvas>
height="700"></canvas>
<canvas
ref="zm"
width="1180"
v-show="this.bdcqz.bdcqzlx == 2"
height="780"
></canvas>
height="780"></canvas>
</div>
</el-tab-pane>
<el-tab-pane label="证书详情" name="lcjl">
<div class="slxx_title title-block">
<div class="slxx_title title-block">
证书详情信息
<div class="triangle"></div>
</div>
<el-form :rules="rules" ref="ruleForm" label-width="120px">
<el-row>
<el-col :span="8">
<el-form-item label="权利人" prop="cyxm">
<el-input disabled v-model="bdcqz.qlr" maxlegth="15"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="义务人" prop="jtgxdm">
<el-input disabled v-model="bdcqz.qlr" maxlegth="15"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="坐落" prop="cbfdm">
<el-input disabled v-model="bdcqz.zl" maxlegth="15"></el-input>
</el-form-item>
</el-col>
<el-form :rules="rules" ref="ruleForm" label-width="120px">
<el-row>
<el-col :span="8">
<el-form-item label="权利人" prop="cyxm">
<el-input disabled v-model="bdcqz.qlr" maxlegth="15"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="义务人" prop="jtgxdm">
<el-input disabled v-model="bdcqz.qlr" maxlegth="15"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="坐落" prop="cbfdm">
<el-input disabled v-model="bdcqz.zl" maxlegth="15"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="不动产单元号" prop="cyxm">
<el-input disabled v-model="bdcqz.bdcdyh" maxlegth="15"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="印刷序列号" prop="jtgxdm">
<el-input disabled v-model="bdcqz.ysxlh" maxlegth="15"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="不动产权证号" prop="cbfdm">
<el-input disabled v-model="bdcqz.bdcqzh" maxlegth="15"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="不动产单元号" prop="cyxm">
<el-input disabled v-model="bdcqz.bdcdyh" maxlegth="15"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="印刷序列号" prop="jtgxdm">
<el-input disabled v-model="bdcqz.ysxlh" maxlegth="15"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="不动产权证号" prop="cbfdm">
<el-input disabled v-model="bdcqz.bdcqzh" maxlegth="15"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-row>
</el-form>
<div class="slxx_title title-block">
缮证记录信息
<div class="triangle"></div>
</div>
<div class="from-clues-content">
<lb-table
class="sz"
:column="szxxtableData.columns"
heightNumSetting
:pagination="false"
:key="key"
:data="szxxtableData.data"
>
</lb-table>
</div>
<lb-table
class="sz"
:column="szxxtableData.columns"
heightNumSetting
:pagination="false"
:key="key"
:data="szxxtableData.data">
</lb-table>
<div class="slxx_title title-block">
发证记录信息
<div class="triangle"></div>
......@@ -99,8 +92,7 @@
:column="tableDatas.columns"
:heightNum="100"
:data="tableDatas.data"
:pagination="false"
>
:pagination="false">
</lb-table>
</el-tab-pane>
<el-tab-pane label="电子证照" name="third"> 等一个照片 </el-tab-pane>
......@@ -109,355 +101,291 @@
</template>
<script>
// import { zsyldatas } from "../../javascript/zsyl.js";
import { getSlsqBdcqzList } from "@/api/bdcqz.js";
import { getCertificateList } from "@/api/bdcqz.js";
import { getSzRecordList } from "@/api/bdcqz.js";
import { szxxdatas } from "../../javascript/szxxdatapart";
import { datas } from "../../javascript/fzxxdatapart";
export default {
name: "zsyl",
props: {
formData: {
type: Object,
default: {},
},
},
data() {
return {
key: 0,
noData: false,
imgSrc: require("@/image/bdcqz/bdcqzs2.jpg"),
bdczmSrc: require("@/image/bdcqz/bdczm.jpg"),
loading: false,
//印刷序列号集合
ysxlh: [],
//列名称对象
columns: [],
//选择的不动产权证文件
bdcqz: "",
//证书打开类型 是否需要展示打印按钮
isToPrint: false,
//tab切换栏数组
tabslist: [],
headTabBdcqz: [],
//tab选择绑定值
activeName: "zsyl",
//证书图片预览
previewImage: "",
ruleForm: {
bsmBdcqz: "",
szmc: "不动产权证书",
bsmBdcqz: "",
szzh: "",
ysxlh: "",
},
formdata: {},
szxxtableData: {
total: 0,
columns: szxxdatas.columns(),
data: [],
},
tableDatas: {
total: 0,
columns: datas.columns().fzgrid,
data: [],
// import { zsyldatas } from "../../javascript/zsyl.js";
import { getSlsqBdcqzList } from "@/api/bdcqz.js";
import { getCertificateList } from "@/api/bdcqz.js";
import { getSzRecordList } from "@/api/bdcqz.js";
import { szxxdatas } from "../../javascript/szxxdatapart";
import { datas } from "../../javascript/fzxxdatapart";
export default {
name: "zsyl",
props: {
formData: {
type: Object,
default: {},
},
};
},
mounted() {
this.queryClick();
this.query();
if (this.formData.bdcqz) {
//从缮证进入
this.bdcqz = this.formData.bdcqz;
} else {
//从按钮进入
this.getHeadTabBdcqz();
}
},
methods: {
/**
* @description: queryClick
* @author: miaofang
*/
queryClick() {
this.formdata.bsmSlsq = this.formData.bsmSlsq;
getCertificateList(this.formdata).then((res) => {
if (res.code === 200) {
this.tableDatas.data = res.result ? res.result : [];
console.log("this.tableDatas",this.tableDatas);
}
});
},
/**
* @description: query
* @author: miaofang
*/
query() {
getSzRecordList({ bsmBdcqz: this.formData.bsmBdcqz }).then((res) => {
if (res.code == 200) {
this.szxxtableData.data = res.result;
this.key++;
}
});
},
/**
* @description: 获取证书内容
* @param {*} code
* @author: miaofang
*/
getRowValue(code) {
var value = this.bdcqz[code];
return value;
},
/**
* @description: 获取受理申请下全部不动产权证
* @author: miaofang
*/
getHeadTabBdcqz() {
console.log("formData", this.formData);
this.loading = true;
getSlsqBdcqzList({ bsmSlsq: this.formData.bsmSlsq }).then((res) => {
if (res.code == 200) {
this.noData = true;
if (res.result && res.result.length > 0) {
console.log("res.resultttttttttttttttttttt", res.result);
this.bdcqz = res.result[0];
this.headTabBdcqz = res.result;
if (this.bdcqz.bdcqzlx == 1) {
this.drawTextOnImage();
} else {
this.drawTextzmImage();
}
}
}
this.loading = false;
});
data () {
return {
key: 0,
noData: false,
imgSrc: require("@/image/bdcqz/bdcqzs2.jpg"),
bdczmSrc: require("@/image/bdcqz/bdczm.jpg"),
loading: false,
//印刷序列号集合
ysxlh: [],
//列名称对象
columns: [],
//选择的不动产权证文件
bdcqz: "",
//证书打开类型 是否需要展示打印按钮
isToPrint: false,
//tab切换栏数组
tabslist: [],
headTabBdcqz: [],
//tab选择绑定值
activeName: "zsyl",
//证书图片预览
previewImage: "",
ruleForm: {
bsmBdcqz: "",
szmc: "不动产权证书",
bsmBdcqz: "",
szzh: "",
ysxlh: "",
},
formdata: {},
szxxtableData: {
total: 0,
columns: szxxdatas.columns(),
data: [],
},
tableDatas: {
total: 0,
columns: datas.columns().fzgrid,
data: [],
},
};
},
/**
* @description: tab表头切换方法
* @param {*} e
* @author: miaofang
*/
handleClick(tab, event) {
console.log(tab, event);
this.bdcqz = this.headTabBdcqz[0];
if (this.bdcqz.bdcqzlx == 1) {
this.drawTextOnImage();
mounted () {
this.queryClick();
this.query();
if (this.formData.bdcqz) {
//从缮证进入
this.bdcqz = this.formData.bdcqz;
} else {
this.drawTextzmImage();
//从按钮进入
this.getHeadTabBdcqz();
}
},
/**
* @description: 不动产证书
* @author: miaofang
*/
drawTextOnImage() {
function getByteLen(val) {
var len = 0;
if (!val) return len;
for (var i = 0; i < val.length; i++) {
var length = val.charCodeAt(i);
if (length >= 0 && length <= 128) {
len += 1;
} else {
len += 2;
methods: {
/**
* @description: queryClick
* @author: miaofang
*/
queryClick () {
this.formdata.bsmSlsq = this.formData.bsmSlsq;
getCertificateList(this.formdata).then((res) => {
if (res.code === 200) {
this.tableDatas.data = res.result ? res.result : [];
console.log("this.tableDatas", this.tableDatas);
}
}
return len;
}
const canvas = this.$refs.zs;
const context = canvas.getContext("2d");
const image = new Image();
image.onload = () => {
context.drawImage(image, 0, 0);
context.font = "18px 楷体";
context.fillStyle = "#000000";
context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : "", 60, 56);
context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : "", 113, 56);
context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : "", 180, 56);
context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : "", 370, 56);
context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : "", 129, 97);
context.fillText(this.bdcqz.gyqk ? this.bdcqz.gyqk : "", 129, 136);
this.bdcdyh =
this.bdcqz.bdcdyh.slice(0, 6) +
" " +
this.bdcqz.bdcdyh.slice(6, 12) +
" " +
this.bdcqz.bdcdyh.slice(12, 19) +
" " +
this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length);
context.fillText(this.bdcdyh ? this.bdcdyh : "", 129, 223);
context.fillText(this.bdcqz.qllx ? this.bdcqz.qllx : "", 129, 263);
context.fillText(this.bdcqz.qlxz ? this.bdcqz.qlxz : "", 129, 303);
context.fillText(this.bdcqz.yt ? this.bdcqz.yt : "", 129, 346);
// context.fillText(this.bdcqz.mj ? this.bdcqz.mj : '', 129, 386);
let lines6 = this.bdcqz.mj ? this.bdcqz.mj.split(" ") : [];
if (getByteLen(this.bdcqz.mj) > 41) {
lines6.forEach((line, index) => {
const y = 378 + index * 27; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 330) {
currentLine = testLine;
});
},
/**
* @description: query
* @author: miaofang
*/
query () {
getSzRecordList({ bsmBdcqz: this.formData.bsmBdcqz }).then((res) => {
if (res.code == 200) {
this.szxxtableData.data = res.result;
this.key++;
}
});
},
/**
* @description: 获取证书内容
* @param {*} code
* @author: miaofang
*/
getRowValue (code) {
var value = this.bdcqz[code];
return value;
},
/**
* @description: 获取受理申请下全部不动产权证
* @author: miaofang
*/
getHeadTabBdcqz () {
console.log("formData", this.formData);
this.loading = true;
getSlsqBdcqzList({ bsmSlsq: this.formData.bsmSlsq }).then((res) => {
if (res.code == 200) {
this.noData = true;
if (res.result && res.result.length > 0) {
console.log("res.resultttttttttttttttttttt", res.result);
this.bdcqz = res.result[0];
this.headTabBdcqz = res.result;
if (this.bdcqz.bdcqzlx == 1) {
this.drawTextOnImage();
} else {
arr.push(currentLine);
currentLine = word;
this.drawTextzmImage();
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + index * 20); // 调整行高
});
});
}
this.loading = false;
});
},
/**
* @description: tab表头切换方法
* @param {*} e
* @author: miaofang
*/
handleClick (tab, event) {
console.log(tab, event);
this.bdcqz = this.headTabBdcqz[0];
if (this.bdcqz.bdcqzlx == 1) {
this.drawTextOnImage();
} else {
lines6.forEach((line, index) => {
const y = 386 + index * 27; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 330) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
this.drawTextzmImage();
}
},
/**
* @description: 不动产证书
* @author: miaofang
*/
drawTextOnImage () {
function getByteLen (val) {
var len = 0;
if (!val) return len;
for (var i = 0; i < val.length; i++) {
var length = val.charCodeAt(i);
if (length >= 0 && length <= 128) {
len += 1;
} else {
len += 2;
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + index * 20); // 调整行高
});
});
}
return len;
}
// 权利其他状态
let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split("\n") : [];
for (let i = 0; i < lines.length; i++) {
let num = Math.ceil(getByteLen(lines[i]) / 38);
if (getByteLen(lines[i]) > 38) {
let currentLine = "";
let arr = [];
for (let word of lines[i]) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 323) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
const canvas = this.$refs.zs;
const context = canvas.getContext("2d");
const image = new Image();
image.onload = () => {
context.drawImage(image, 0, 0);
context.font = "18px 楷体";
context.fillStyle = "#000000";
context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : "", 60, 56);
context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : "", 113, 56);
context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : "", 180, 56);
context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : "", 370, 56);
context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : "", 129, 97);
context.fillText(this.bdcqz.gyqk ? this.bdcqz.gyqk : "", 129, 136);
this.bdcdyh =
this.bdcqz.bdcdyh.slice(0, 6) +
" " +
this.bdcqz.bdcdyh.slice(6, 12) +
" " +
this.bdcqz.bdcdyh.slice(12, 19) +
" " +
this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length);
context.fillText(this.bdcdyh ? this.bdcdyh : "", 129, 223);
context.fillText(this.bdcqz.qllx ? this.bdcqz.qllx : "", 129, 263);
context.fillText(this.bdcqz.qlxz ? this.bdcqz.qlxz : "", 129, 303);
context.fillText(this.bdcqz.yt ? this.bdcqz.yt : "", 129, 346);
// context.fillText(this.bdcqz.mj ? this.bdcqz.mj : '', 129, 386);
let lines6 = this.bdcqz.mj ? this.bdcqz.mj.split(" ") : [];
if (getByteLen(this.bdcqz.mj) > 41) {
lines6.forEach((line, index) => {
const y = 378 + index * 27; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 330) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
}
arr.push(currentLine);
if (i > 0) {
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(
line,
129,
490 + 26 * (i - 1) + 4 * num + index * 14
); // 调整行高
context.fillText(line, 129, y + index * 20); // 调整行高
});
} else {
});
} else {
lines6.forEach((line, index) => {
const y = 386 + index * 27; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 330) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, 500 + 26 * (i - 1) + index * 14); // 调整行高
context.fillText(line, 129, y + index * 20); // 调整行高
});
}
} else {
if (i > 0) {
context.fillText(
lines[i] ? lines[i] : "",
129,
500 + 4 * num + 24 * (i - 1)
);
} else {
context.fillText(
lines[i] ? lines[i] : "",
129,
505 + 24 * (i - 1)
);
}
});
}
}
let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split("\n") : [];
lines1.forEach((line, index) => {
const y = 100 + index * 30; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 395) {
currentLine = testLine;
} else {
// 权利其他状态
let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split("\n") : [];
for (let i = 0; i < lines.length; i++) {
let num = Math.ceil(getByteLen(lines[i]) / 38);
if (getByteLen(lines[i]) > 38) {
let currentLine = "";
let arr = [];
for (let word of lines[i]) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 323) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 580, y + index * 30); // 调整行高
});
});
let lines3 = this.bdcqz.syqx ? this.bdcqz.syqx.split(" ") : [];
if (getByteLen(this.bdcqz.syqx) > 41) {
lines3.forEach((line, index) => {
const y = 423 + index * 27; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 330) {
currentLine = testLine;
if (i > 0) {
arr.forEach((line, index) => {
context.fillText(
line,
129,
490 + 26 * (i - 1) + 4 * num + index * 14
); // 调整行高
});
} else {
arr.push(currentLine);
currentLine = word;
arr.forEach((line, index) => {
context.fillText(line, 129, 500 + 26 * (i - 1) + index * 14); // 调整行高
});
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + index * 20); // 调整行高
});
});
} else {
lines3.forEach((line, index) => {
const y = 430 + index * 27; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 315) {
currentLine = testLine;
} else {
if (i > 0) {
context.fillText(
lines[i] ? lines[i] : "",
129,
500 + 4 * num + 24 * (i - 1)
);
} else {
arr.push(currentLine);
currentLine = word;
context.fillText(
lines[i] ? lines[i] : "",
129,
505 + 24 * (i - 1)
);
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + index * 20); // 调整行高
});
});
}
}
let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(" ") : [];
if (getByteLen(this.bdcqz.zl) > 41) {
lines2.forEach((line, index) => {
const y = 170 + index * 20; // 每行文本的垂直位置
let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split("\n") : [];
lines1.forEach((line, index) => {
const y = 100 + index * 30; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 336) {
if (lineWidth <= 395) {
currentLine = testLine;
} else {
arr.push(currentLine);
......@@ -466,314 +394,378 @@ export default {
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + index * 20); // 调整行高
context.fillText(line, 580, y + index * 30); // 调整行高
});
});
} else {
lines2.forEach((line, index) => {
const y = 180 + index * 20; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 336) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
let lines3 = this.bdcqz.syqx ? this.bdcqz.syqx.split(" ") : [];
if (getByteLen(this.bdcqz.syqx) > 41) {
lines3.forEach((line, index) => {
const y = 423 + index * 27; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 330) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + index * 20); // 调整行高
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + index * 20); // 调整行高
});
});
});
}
};
image.src = this.imgSrc;
},
/**
* @description: 不动产证明
* @author: miaofang
*/
drawTextzmImage() {
function getByteLen(val) {
var len = 0;
if (!val) return len;
for (var i = 0; i < val.length; i++) {
var length = val.charCodeAt(i);
if (length >= 0 && length <= 128) {
len += 1;
} else {
len += 2;
lines3.forEach((line, index) => {
const y = 430 + index * 27; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 315) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + index * 20); // 调整行高
});
});
}
}
return len;
}
const canvas = this.$refs.zm;
const context = canvas.getContext("2d");
const image = new Image();
image.onload = () => {
context.drawImage(image, 0, 0);
context.font = "18px 楷体";
context.fillStyle = "#000000";
// ysxlh
context.fillText(this.bdcqz.ysxlh ? this.bdcqz.ysxlh : "", 280, 712);
// djsj
if (this.bdcqz.djsj) {
let djsjList = this.bdcqz.djsj.split(" ")[0].split("/");
context.fillText(djsjList[0] ? djsjList[0] : "", 327, 580);
context.fillText(djsjList[1] ? djsjList[1] : "", 393, 580);
context.fillText(djsjList[2] ? djsjList[2] : "", 443, 580);
}
context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : "", 620, 125);
context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : "", 665, 125);
context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : "", 750, 125);
context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : "", 960, 123);
context.fillText(
this.bdcqz.zmqlhsx ? this.bdcqz.zmqlhsx : "",
775,
180
);
context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : "", 775, 228);
// 义务人
context.fillText(this.bdcqz.ywr ? this.bdcqz.ywr : "", 775, 275);
// context.fillText(this.bdcqz.zl ? this.bdcqz.zl : '', 775, 325);
let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(" ") : [];
if (getByteLen(this.bdcqz.zl) > 41) {
lines2.forEach((line, index) => {
const y = 315 + index * 20; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 295) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(" ") : [];
if (getByteLen(this.bdcqz.zl) > 41) {
lines2.forEach((line, index) => {
const y = 170 + index * 20; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 336) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 775, y + index * 20); // 调整行高
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + index * 20); // 调整行高
});
});
});
} else {
lines2.forEach((line, index) => {
const y = 325 + index * 20; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 295) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
} else {
lines2.forEach((line, index) => {
const y = 180 + index * 20; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 336) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 775, y + index * 20); // 调整行高
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 129, y + index * 20); // 调整行高
});
});
});
}
};
image.src = this.imgSrc;
},
/**
* @description: 不动产证明
* @author: miaofang
*/
drawTextzmImage () {
function getByteLen (val) {
var len = 0;
if (!val) return len;
for (var i = 0; i < val.length; i++) {
var length = val.charCodeAt(i);
if (length >= 0 && length <= 128) {
len += 1;
} else {
len += 2;
}
}
return len;
}
// bdcdyh
this.bdcdyh =
this.bdcqz.bdcdyh.slice(0, 6) +
" " +
this.bdcqz.bdcdyh.slice(6, 12) +
" " +
this.bdcqz.bdcdyh.slice(12, 19) +
" " +
this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length);
context.fillText(this.bdcdyh ? this.bdcdyh : "", 775, 373);
// qlqtzk
const maxWidth = 295; // 最大宽度限制
let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split("\n") : [];
for (let i = 0; i < lines.length; i++) {
let num = Math.ceil(getByteLen(lines[i]) / 37);
if (getByteLen(lines[i]) > 37) {
let currentLine = "";
let arr = [];
for (let word of lines[i]) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= maxWidth) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
const canvas = this.$refs.zm;
const context = canvas.getContext("2d");
const image = new Image();
image.onload = () => {
context.drawImage(image, 0, 0);
context.font = "18px 楷体";
context.fillStyle = "#000000";
// ysxlh
context.fillText(this.bdcqz.ysxlh ? this.bdcqz.ysxlh : "", 280, 712);
// djsj
if (this.bdcqz.djsj) {
let djsjList = this.bdcqz.djsj.split(" ")[0].split("/");
context.fillText(djsjList[0] ? djsjList[0] : "", 327, 580);
context.fillText(djsjList[1] ? djsjList[1] : "", 393, 580);
context.fillText(djsjList[2] ? djsjList[2] : "", 443, 580);
}
context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : "", 620, 125);
context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : "", 665, 125);
context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : "", 750, 125);
context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : "", 960, 123);
context.fillText(
this.bdcqz.zmqlhsx ? this.bdcqz.zmqlhsx : "",
775,
180
);
context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : "", 775, 228);
// 义务人
context.fillText(this.bdcqz.ywr ? this.bdcqz.ywr : "", 775, 275);
// context.fillText(this.bdcqz.zl ? this.bdcqz.zl : '', 775, 325);
let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(" ") : [];
if (getByteLen(this.bdcqz.zl) > 41) {
lines2.forEach((line, index) => {
const y = 315 + index * 20; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 295) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
}
arr.push(currentLine);
if (i > 0) {
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(
line,
770,
428 + 25 * (i - 1) + 5 * num + index * 15
); // 调整行高
context.fillText(line, 775, y + index * 20); // 调整行高
});
} else {
});
} else {
lines2.forEach((line, index) => {
const y = 325 + index * 20; // 每行文本的垂直位置
let currentLine = "";
let arr = [];
for (let word of line) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= 295) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
arr.forEach((line, index) => {
context.fillText(line, 770, 435 + 25 * (i - 1) + index * 14); // 调整行高
context.fillText(line, 775, y + index * 20); // 调整行高
});
}
} else {
if (i > 0) {
context.fillText(
lines[i] ? lines[i] : "",
770,
440 + 5 * num + 24 * (i - 1)
);
} else {
context.fillText(
lines[i] ? lines[i] : "",
770,
440 + 24 * (i - 1)
);
}
});
}
}
// fj
let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split("\n") : [];
for (let i = 0; i < lines1.length; i++) {
let num = Math.ceil(getByteLen(lines1[i]) / 37);
if (getByteLen(lines1[i]) > 37) {
let currentLine = "";
let arr = [];
for (let word of lines1[i]) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= maxWidth) {
currentLine = testLine;
// bdcdyh
this.bdcdyh =
this.bdcqz.bdcdyh.slice(0, 6) +
" " +
this.bdcqz.bdcdyh.slice(6, 12) +
" " +
this.bdcqz.bdcdyh.slice(12, 19) +
" " +
this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length);
context.fillText(this.bdcdyh ? this.bdcdyh : "", 775, 373);
// qlqtzk
const maxWidth = 295; // 最大宽度限制
let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split("\n") : [];
for (let i = 0; i < lines.length; i++) {
let num = Math.ceil(getByteLen(lines[i]) / 37);
if (getByteLen(lines[i]) > 37) {
let currentLine = "";
let arr = [];
for (let word of lines[i]) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= maxWidth) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
if (i > 0) {
arr.forEach((line, index) => {
context.fillText(
line,
770,
428 + 25 * (i - 1) + 5 * num + index * 15
); // 调整行高
});
} else {
arr.push(currentLine);
currentLine = word;
arr.forEach((line, index) => {
context.fillText(line, 770, 435 + 25 * (i - 1) + index * 14); // 调整行高
});
}
}
arr.push(currentLine);
if (i > 0) {
arr.forEach((line, index) => {
} else {
if (i > 0) {
context.fillText(
line,
lines[i] ? lines[i] : "",
770,
610 + 25 * (i - 1) + 5 * num + index * 15
); // 调整行高
});
} else {
arr.forEach((line, index) => {
context.fillText(line, 770, 610 + 25 * (i - 1) + index * 15); // 调整行高
});
440 + 5 * num + 24 * (i - 1)
);
} else {
context.fillText(
lines[i] ? lines[i] : "",
770,
440 + 24 * (i - 1)
);
}
}
} else {
if (i > 0) {
context.fillText(
lines1[i] ? lines1[i] : "",
770,
610 + 5 * num + 23 * (i - 1)
);
}
// fj
let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split("\n") : [];
for (let i = 0; i < lines1.length; i++) {
let num = Math.ceil(getByteLen(lines1[i]) / 37);
if (getByteLen(lines1[i]) > 37) {
let currentLine = "";
let arr = [];
for (let word of lines1[i]) {
const testLine = currentLine + word;
const lineWidth = context.measureText(testLine).width;
if (lineWidth <= maxWidth) {
currentLine = testLine;
} else {
arr.push(currentLine);
currentLine = word;
}
}
arr.push(currentLine);
if (i > 0) {
arr.forEach((line, index) => {
context.fillText(
line,
770,
610 + 25 * (i - 1) + 5 * num + index * 15
); // 调整行高
});
} else {
arr.forEach((line, index) => {
context.fillText(line, 770, 610 + 25 * (i - 1) + index * 15); // 调整行高
});
}
} else {
context.fillText(
lines1[i] ? lines1[i] : "",
770,
610 + 23 * (i - 1)
);
if (i > 0) {
context.fillText(
lines1[i] ? lines1[i] : "",
770,
610 + 5 * num + 23 * (i - 1)
);
} else {
context.fillText(
lines1[i] ? lines1[i] : "",
770,
610 + 23 * (i - 1)
);
}
}
}
}
};
};
image.src = this.bdczmSrc;
image.src = this.bdczmSrc;
},
},
},
computed: {
hdiffHeight() {
return 0;
// return this.headTabBdcqz.length > 1 ? 54 : 0
computed: {
hdiffHeight () {
return 0;
// return this.headTabBdcqz.length > 1 ? 54 : 0
},
},
},
};
};
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
@import "~@/styles/mixin.scss";
.imgClass {
display: inline-block;
height: auto;
max-width: 100%;
}
.imgClass {
display: inline-block;
height: auto;
max-width: 100%;
}
.middle_padding {
padding-bottom: 10px;
}
.middle_padding {
padding-bottom: 10px;
}
.zsyl-button {
text-align: center;
margin-top: 20px;
.zsyl-button {
text-align: center;
margin-top: 20px;
.operation_button {
width: 100px;
border: 1px solid rgb(0, 121, 254);
}
.operation_button {
width: 100px;
border: 1px solid rgb(0, 121, 254);
}
.dy-button {
color: white;
background-color: rgb(0, 121, 254);
.dy-button {
color: white;
background-color: rgb(0, 121, 254);
}
}
}
.table-column {
border-spacing: 1px;
width: 100%;
.table-column {
border-spacing: 1px;
width: 100%;
tr td {
border: 1px solid #ccc;
text-align: center;
height: 40px;
padding: 4px;
font-size: 13px;
background: rgb(251, 249, 229);
tr td {
border: 1px solid #ccc;
text-align: center;
height: 40px;
padding: 4px;
font-size: 13px;
background: rgb(251, 249, 229);
}
}
}
.zsyl-title {
background: #fafbe5;
text-align: center;
padding: 5px 0px;
font-size: 20px;
}
.zsyl-title {
background: #fafbe5;
text-align: center;
padding: 5px 0px;
font-size: 20px;
}
.no-data {
font-size: 18px;
display: flex;
text-align: center;
justify-content: center;
}
.el-tab-pane {
width: 1190px;
height: 670px;
overflow-y: auto;
}
.zsys {
width: 1180px;
height: 670px;
}
/deep/.el-table {
height: 100px !important;
}
/deep/.sz {
height: 340px !important;
}
.el-form{
margin-top: 20px;
}
.no-data {
font-size: 18px;
display: flex;
text-align: center;
justify-content: center;
}
.el-tab-pane {
width: 1190px;
height: 670px;
overflow-y: auto;
}
.zsys {
width: 1180px;
height: 670px;
}
/deep/.el-table {
height: 100px !important;
}
// /deep/.sz {
// height: 340px !important;
// }
.el-form {
margin-top: 20px;
}
</style>
......