Commit cf19a0ee by pangchong

chore(proxy): 更新代理请求中的 Cookie 信息

- 修改代理配置中的 Cookie 值以确保请求身份正确
- 添加新的 XML 资产文件 AMEA-A282400-02-1_0_0_R0.xml,内容为空
parent 5a4fb611
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -126,9 +126,8 @@
<template v-else-if="PARA_SET.has(node.tagName)">
<component
:is="renderInline ? 'span' : 'div'"
class="text-sm leading-relaxed py-1 flex flex-wrap items-center"
:class="[isInsideAlert ? 'text-inherit' : 'text-color2', renderInline ? 'inline mx-0.5' : 'flex']"
:style="{ justifyContent: 'var(--cell-align, flex-start)' }"
class="text-sm leading-relaxed py-1"
:class="[isInsideAlert ? 'text-inherit' : 'text-color2', renderInline ? 'inline mx-0.5' : 'block doc-node-para']"
>
<template v-if="node.mixedContent && node.mixedContent.length > 0">
<template v-for="(item, index) in node.mixedContent" :key="index">
......@@ -1107,6 +1106,16 @@
</div>
</template>
<!-- 25.6 CEP 节点(打印预览模式下展现任务号并递归渲染子节点) -->
<template v-else-if="node.tagName === 'CEP'">
<div class="space-y-1">
<div class="my-2">
<div class="text-sm font-bold text-color1">任务 {{ getCepTaskNumber(node) }}</div>
</div>
<DocNodeRenderer v-for="child in node.children" :key="child.id" :node="child" :parent="node" />
</div>
</template>
<!-- 26. 其它所有容器节点(如 JOBCARD, TFMATR, SUBTASK, LIST1... -->
<template v-else-if="isContainer">
<div class="space-y-1">
......@@ -1210,20 +1219,9 @@ const getImgSrc = (gnbr: string) => {
return gnbr
}
if (gnbr.startsWith('/')) {
// vite.config.ts 已将 /mnt 代理到 https://amro.anyremote.cn,直接使用相对路径
return gnbr
}
// 拼接工卡基础物理路径目录,让 vite proxy 代理到真实图片地址
const basePath = '/mnt/disk2/ftp/tdms/jobcard/cep/MU/MU-B-3333-20260701-001/A320/SMJC/AMEA-A282400-02-1/0/'
const lowerGnbr = gnbr.toLowerCase()
const hasExtension =
lowerGnbr.endsWith('.png') ||
lowerGnbr.endsWith('.jpg') ||
lowerGnbr.endsWith('.jpeg') ||
lowerGnbr.endsWith('.gif') ||
lowerGnbr.endsWith('.svg')
return `${basePath}${gnbr}${hasExtension ? '' : '.png'}`
return gnbr
}
const getInheritedTitle = () => {
......@@ -1333,6 +1331,17 @@ const {
content: ', ';
color: inherit;
}
.doc-node-para {
text-align: left;
}
[style*='--cell-align: center'] .doc-node-para,
[style*='--cell-align:center'] .doc-node-para {
text-align: center;
}
[style*='--cell-align: flex-end'] .doc-node-para,
[style*='--cell-align:flex-end'] .doc-node-para {
text-align: right;
}
/* 保护 TXTGRPHC 的严格等宽与中英文 2:1 比例 */
[data-tag-name='TXTGRPHC'],
[data-tag-name='TXTGRPHC'] *,
......
......@@ -145,11 +145,15 @@ export function useEditor() {
cls.startsWith('outline-') ||
cls === 'outline' ||
cls.startsWith('bg-primary') ||
cls.startsWith('border-primary') ||
cls.includes('focus:') ||
cls.includes('hover:') ||
cls === 'cursor-pointer' ||
cls === 'transition-all' ||
cls === 'transition-colors'
cls === 'transition-colors' ||
cls === 'cell-selected-highlight' ||
cls === 'inserted-row-highlight' ||
cls === 'inserted-cell-highlight'
) {
el.classList.remove(cls)
}
......@@ -238,6 +242,150 @@ export function useEditor() {
padding: 40px !important;
font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
/* 全局预览字体与行高紧凑化 */
.print-preview-root {
font-size: 12px !important;
line-height: 1.2 !important;
}
/* 移除多余的块级 margin */
.print-preview-root .doc-node-wrapper.block {
margin-top: 0px !important;
margin-bottom: 0px !important;
}
/* 紧凑段落样式 */
.print-preview-root [data-tag-name="PARA"],
.print-preview-root [data-tag-name="PARAC"] {
padding-top: 1px !important;
padding-bottom: 1px !important;
margin: 0 !important;
}
.print-preview-root [data-tag-name="PARA"] > div,
.print-preview-root [data-tag-name="PARAC"] > div {
padding-top: 0 !important;
padding-bottom: 0 !important;
}
/* 表格内部段落彻底去除间距,防表格臃肿 */
table.cals-table [data-tag-name="PARA"],
table.cals-table [data-tag-name="PARAC"] {
padding-top: 0 !important;
padding-bottom: 0 !important;
margin: 0 !important;
}
table.cals-table [data-tag-name="PARA"] > div,
table.cals-table [data-tag-name="PARAC"] > div {
padding-top: 0 !important;
padding-bottom: 0 !important;
}
/* 警告/提醒框紧凑化,并释放左边距以增加折行宽度 */
.print-preview-root [data-tag-name="WARNING"],
.print-preview-root [data-tag-name="CAUTION"],
.print-preview-root [data-tag-name="NOTE"] {
margin-top: 3px !important;
margin-bottom: 3px !important;
}
.print-preview-root [data-tag-name="WARNING"] > div {
padding-left: 120px !important;
padding-top: 1px !important;
padding-bottom: 1px !important;
}
.print-preview-root [data-tag-name="CAUTION"] > div {
padding-left: 130px !important;
padding-top: 1px !important;
padding-bottom: 1px !important;
}
.print-preview-root [data-tag-name="NOTE"] > div {
padding-left: 80px !important;
padding-top: 1px !important;
padding-bottom: 1px !important;
}
/* 对齐标签 span 与首行内容文字的基线 */
.print-preview-root [data-tag-name="WARNING"] > div > span,
.print-preview-root [data-tag-name="CAUTION"] > div > span,
.print-preview-root [data-tag-name="NOTE"] > div > span {
padding-top: 4px !important;
line-height: 1.2 !important;
top: 0 !important;
}
/* 列表项紧凑化 */
.print-preview-root [data-tag-name="L1ITEM"],
.print-preview-root [data-tag-name="L2ITEM"],
.print-preview-root [data-tag-name="L3ITEM"],
.print-preview-root [data-tag-name="L4ITEM"],
.print-preview-root [data-tag-name="UNLITEM"],
.print-preview-root [data-tag-name="NUMLITEM"] {
margin: 0 !important;
padding: 0 !important;
}
.print-preview-root [data-tag-name="L1ITEM"] .flex,
.print-preview-root [data-tag-name="L2ITEM"] .flex,
.print-preview-root [data-tag-name="L3ITEM"] .flex,
.print-preview-root [data-tag-name="L4ITEM"] .flex,
.print-preview-root [data-tag-name="UNLITEM"] .flex,
.print-preview-root [data-tag-name="NUMLITEM"] .flex {
margin-top: 0px !important;
margin-bottom: 0px !important;
}
/* 缩减嵌套列表的缩进增量,使段落层次更紧凑前移 */
.print-preview-root [data-tag-name="L2ITEM"],
.print-preview-root [data-tag-name="L3ITEM"],
.print-preview-root [data-tag-name="L4ITEM"],
.print-preview-root [data-tag-name="UNLITEM"] [data-tag-name="UNLITEM"],
.print-preview-root [data-tag-name="NUMLITEM"] [data-tag-name="NUMLITEM"] {
margin-left: -28px !important;
}
/* TOPIC / PRETOPIC / SUBTASK 紧凑化 */
.print-preview-root [data-tag-name="TOPIC"],
.print-preview-root [data-tag-name="PRETOPIC"] {
margin-top: 4px !important;
margin-bottom: 4px !important;
}
.print-preview-root [data-tag-name="SUBTASK"] > div {
margin-top: 2px !important;
margin-bottom: 2px !important;
padding-left: 12px !important;
}
/* 适用性节点紧凑化 */
.print-preview-root [data-tag-name="EFFECT"],
.print-preview-root [data-tag-name="CONEFFECT"],
.print-preview-root [data-tag-name="SBEFF"],
.print-preview-root [data-tag-name="SBEFFC"] {
margin-top: 2px !important;
margin-bottom: 2px !important;
padding-top: 1px !important;
padding-bottom: 1px !important;
}
/* 标题紧凑化 */
.print-preview-root [data-tag-name="TITLEC"],
.print-preview-root [data-tag-name="TITLE"] {
padding-top: 1px !important;
padding-bottom: 1px !important;
margin-top: 2px !important;
margin-bottom: 2px !important;
}
.print-preview-root [data-tag-name="TITLEC"] > div,
.print-preview-root [data-tag-name="TITLE"] > div {
padding-top: 0 !important;
padding-bottom: 0 !important;
margin-top: 2px !important;
margin-bottom: 2px !important;
}
/* 记录行、EINLST 及签字点紧凑化 */
.print-preview-root [data-tag-name="RECORD-LINE"] > div {
margin-top: 0px !important;
margin-bottom: 0px !important;
padding-top: 0 !important;
padding-bottom: 0 !important;
}
.print-preview-root [data-tag-name="EINLST"] > div {
margin-top: 2px !important;
margin-bottom: 2px !important;
padding-top: 0 !important;
padding-bottom: 0 !important;
}
.print-preview-root [data-tag-name="SIGNOFF"] > div {
margin-top: 4px !important;
margin-bottom: 4px !important;
}
/* 移除非表格元素的虚线边框、段落分隔线以及容器装饰边框 */
.border-b.border-divider\\/30,
.border-b.border-divider,
......@@ -282,8 +430,9 @@ export function useEditor() {
}
table.cals-table th, table.cals-table td {
border: 1px solid #000000 !important;
padding: 6px 8px !important;
padding: 2px 4px !important;
word-break: break-word !important;
min-width: 50px !important;
}
@media print {
body {
......@@ -392,9 +541,37 @@ export function useEditor() {
const unregisterBridge = registerEditorBridgeListeners(() => {
const cleaned = prepareCleanedHtml()
if (!cleaned) return { html: '', css: '' }
// 提取纯 CSS 文本,不包含 <style> 和 <link> 标签包装
let pureCss = ''
// 1. 收集所有 style 标签的文本内容
document.querySelectorAll('style').forEach((styleEl) => {
pureCss += (styleEl.textContent || '') + '\n'
})
// 2. 收集同源 link 标签的 CSS rules
Array.from(document.styleSheets).forEach((sheet) => {
if (sheet.ownerNode && (sheet.ownerNode as HTMLElement).tagName === 'LINK') {
try {
const rules = sheet.cssRules || sheet.rules
if (rules) {
Array.from(rules).forEach((rule) => {
pureCss += rule.cssText + '\n'
})
}
} catch (e) {
// 跨域 link 标签跳过
}
}
})
// 3. 加上自定义的 printStyles (不需要 style 标签包起来)
pureCss += '\n' + printStyles
return {
html: `<div class="print-preview-root">${cleaned.innerHTML}</div>`,
css: `${cleaned.styles}\n<style>${printStyles}</style>`
css: pureCss
}
})
cleanupFns.push(unregisterBridge)
......
......@@ -68,7 +68,7 @@ export default defineConfig(({ mode }) => {
changeOrigin: true,
secure: false,
headers: {
Cookie: '_udid=23a51873-35b9-4cf9-b676-ce04ab9fef35; JSESSIONID=AD12C8D556906E98F16EBAC56B0E1ECA; _amro_sk=dc32fa12-7d12-4235-960f-189a36eeac98'
Cookie: '_udid=19255f9f-aa6a-4696-8227-7531620fc311; JSESSIONID=FB8FE3057D9C9E7A57761199BA345BB7; _amro_sk=985347ad-b8be-4874-b1e8-ec67ef283c3a'
}
},
'/mnt': {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment