leiyun 2 дней назад
Родитель
Сommit
1b4b5df128
2 измененных файлов: 8 добавлений и 5 удалений
  1. +2
    -1
      src/controller/mp.js
  2. +6
    -4
      src/service/screenshot.js

+ 2
- 1
src/controller/mp.js Просмотреть файл

@@ -380,7 +380,7 @@ module.exports = class extends Base {
// 获取患者姓名 // 获取患者姓名
const user = await this.model('wechat_user').where({ id: mpUser.id, status: 1 }).find(); const user = await this.model('wechat_user').where({ id: mpUser.id, status: 1 }).find();
if (think.isEmpty(user) || !user.patient_id) return this.json({ code: 1, msg: '请先完成实名认证' }); if (think.isEmpty(user) || !user.patient_id) return this.json({ code: 1, msg: '请先完成实名认证' });
const patient = await this.model('patient').field('name').where({ id: user.patient_id, is_deleted: 0 }).find();
const patient = await this.model('patient').field('name, id_card').where({ id: user.patient_id, is_deleted: 0 }).find();
if (think.isEmpty(patient)) return this.json({ code: 1, msg: '患者信息不存在' }); if (think.isEmpty(patient)) return this.json({ code: 1, msg: '患者信息不存在' });


// 获取协议内容 // 获取协议内容
@@ -397,6 +397,7 @@ module.exports = class extends Base {
content: doc.content, content: doc.content,
signImageUrl: signImage, signImageUrl: signImage,
signerName: patient.name, signerName: patient.name,
signerIdCard: patient.id_card,
signTime, signTime,
amount: type === 'income' ? amount : null amount: type === 'income' ? amount : null
}); });


+ 6
- 4
src/service/screenshot.js Просмотреть файл

@@ -9,14 +9,15 @@ module.exports = class extends think.Service {
* @param {string} params.content - 协议富文本内容 * @param {string} params.content - 协议富文本内容
* @param {string} params.signImageUrl - 签名图片URL * @param {string} params.signImageUrl - 签名图片URL
* @param {string} params.signerName - 签署人姓名 * @param {string} params.signerName - 签署人姓名
* @param {string} params.signerIdCard - 签署人身份证号
* @param {string} params.signTime - 签署时间 * @param {string} params.signTime - 签署时间
* @param {number} [params.amount] - 收入金额(仅income类型) * @param {number} [params.amount] - 收入金额(仅income类型)
* @returns {string} 合成图COS URL * @returns {string} 合成图COS URL
*/ */
async generate({ title, content, signImageUrl, signerName, signTime, amount }) {
async generate({ title, content, signImageUrl, signerName, signerIdCard, signTime, amount }) {
const puppeteer = require('puppeteer'); const puppeteer = require('puppeteer');


const html = this._buildHtml({ title, content, signImageUrl, signerName, signTime, amount });
const html = this._buildHtml({ title, content, signImageUrl, signerName, signerIdCard, signTime, amount });


let browser; let browser;
try { try {
@@ -54,10 +55,10 @@ module.exports = class extends think.Service {
/** /**
* 构建 HTML 模板 * 构建 HTML 模板
*/ */
_buildHtml({ title, content, signImageUrl, signerName, signTime, amount }) {
_buildHtml({ title, content, signImageUrl, signerName, signerIdCard, signTime, amount }) {
const amountHtml = amount ? ` const amountHtml = amount ? `
<div style="margin: 30px 0; padding: 20px; background: #f8f9fa; border-radius: 8px; border: 1px solid #e9ecef;"> <div style="margin: 30px 0; padding: 20px; background: #f8f9fa; border-radius: 8px; border: 1px solid #e9ecef;">
<span style="font-size: 28px; color: #555;">个人可支配收入:</span>
<span style="font-size: 28px; color: #555;">个人可支配收入:</span>
<span style="font-size: 32px; color: #0e63e3; font-weight: 600;">¥${amount}</span> <span style="font-size: 32px; color: #0e63e3; font-weight: 600;">¥${amount}</span>
</div>` : ''; </div>` : '';


@@ -127,6 +128,7 @@ module.exports = class extends think.Service {
<img class="sign-img" src="${signImageUrl}" /> <img class="sign-img" src="${signImageUrl}" />
</div> </div>
<div class="sign-info">签署人:${signerName}</div> <div class="sign-info">签署人:${signerName}</div>
<div class="sign-info">身份证:${signerIdCard}</div>
<div class="sign-info">签署时间:${signTime}</div> <div class="sign-info">签署时间:${signTime}</div>
</div> </div>
</body> </body>


Загрузка…
Отмена
Сохранить