feat: 在AICode.cmd中添加npx命令并更新数据库锁定逻辑;在order-print.component.ts中优化日期格式化和样式图片加载逻辑,修复PDF生成过程中的Blob处理

This commit is contained in:
user 2025-06-22 23:34:49 +08:00
parent 54bda60541
commit 5e7c45b9e3
2 changed files with 28 additions and 10 deletions

View File

@ -356,6 +356,8 @@ mvn spring-boot:run -P dev
./mvnw clean package -DskipTests ./mvnw clean package -DskipTests
java -jar target/jewpms-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev java -jar target/jewpms-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
npx @agentdeskai/browser-tools-server
修改为使用Bootstrap Vue的模态框ID方式 修改为使用Bootstrap Vue的模态框ID方式
请初始化git 连接到远程仓库 请初始化git 连接到远程仓库
git remote set-url origin https://admingit:Pan2yu12@gitea.vxnet.cn/admingit/jewpms.git git remote set-url origin https://admingit:Pan2yu12@gitea.vxnet.cn/admingit/jewpms.git
@ -367,4 +369,8 @@ git remote set-url origin https://admingit:Pan2yu12@gitea.vxnet.cn/admingit/jewp
请将已改好的代码 提交并推送, 说明内容需要加双引号. 请将已改好的代码 提交并推送, 说明内容需要加双引号.
SELECT * FROM DATABASECHANGELOGLOCK; SELECT * FROM DATABASECHANGELOGLOCK;
UPDATE DATABASECHANGELOGLOCK SET locked=0, lockgranted=null, lockedby=null WHERE id=1 UPDATE DATABASECHANGELOGLOCK SET locked=0, lockgranted=null, lockedby=null WHERE id=1
... 每次你觉得你修好了,你就在终端里询问我是否满意 ( read -P "修复完成,是否满意?(y/n) " response && echo $response ) ,直到我回复 yes你才能退出如果我不回复或者回复其他的请继续修复重复上面过程直到你读取到 yes这一点非常重要。
你就在终端里询问我是否满意 ( read -P "修复完成,是否满意?(y/n) " response && echo $response ) ,直到我回复 yes你才能退出

View File

@ -6,6 +6,7 @@ import axios from 'axios';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import printJS from 'print-js'; import printJS from 'print-js';
import QrcodeVue from 'qrcode.vue'; import QrcodeVue from 'qrcode.vue';
// @ts-ignore
import html2pdf from 'html2pdf.js'; import html2pdf from 'html2pdf.js';
export default defineComponent({ export default defineComponent({
@ -50,7 +51,7 @@ export default defineComponent({
version: 0, version: 0,
}); });
const formatDate = date => { const formatDate = (date: string | Date | null): string => {
if (!date) return ''; if (!date) return '';
return dayjs(date).format('YYYY-MM-DD'); return dayjs(date).format('YYYY-MM-DD');
}; };
@ -67,7 +68,7 @@ export default defineComponent({
}); });
// 查找property包含{"order":1}的记录 // 查找property包含{"order":1}的记录
const scanType = dictRes.data.find(item => { const scanType = dictRes.data.find((item: any) => {
try { try {
const property = JSON.parse(item.property); const property = JSON.parse(item.property);
return property && property.order === 1; return property && property.order === 1;
@ -88,10 +89,20 @@ export default defineComponent({
// 加载款式图片 // 加载款式图片
if (order.value.styleNo) { if (order.value.styleNo) {
try { try {
// 根据款式编号查询款式信息 // 根据款式编号查询款式信息(通过新接口,参数风格统一)
const styleRes = await axios.get(`api/styles/${order.value.styleNo}`); const res = await axios.get('api/styles', {
if (styleRes.data && styleRes.data.imageUrl) { params: {
styleImage.value = styleRes.data.imageUrl; number: { name: '', op: '=', value: order.value.styleNo },
imageUrl: { name: '' },
status: { op: '=', value: '1' },
},
});
let styleData = res.data;
if (Array.isArray(styleData)) {
styleData = styleData[0];
}
if (styleData && styleData.imageUrl) {
styleImage.value = styleData.imageUrl;
} }
} catch (styleError) { } catch (styleError) {
console.error('获取款式图片失败:', styleError); console.error('获取款式图片失败:', styleError);
@ -119,7 +130,7 @@ export default defineComponent({
}, },
}); });
} catch (error) { } catch (error) {
alertService.showError($t('entity.action.printError'), error); alertService.showError($t('entity.action.printError'));
} }
}; };
@ -149,8 +160,9 @@ export default defineComponent({
compress: true, compress: true,
}, },
}; };
const pdf = await html2pdf().set(opt).from(element).outputPdf('blob'); const pdfData = await html2pdf().set(opt).from(element).outputPdf();
const url = window.URL.createObjectURL(pdf); const pdfBlob = new Blob([pdfData], { type: 'application/pdf' });
const url = window.URL.createObjectURL(pdfBlob);
const link = document.createElement('a'); const link = document.createElement('a');
link.href = url; link.href = url;
link.download = opt.filename; link.download = opt.filename;