批量建单:
openCreateDialog 新增 batchItems 分支 —— 待采购清单勾选多个物料时,
明细表一次性铺成 N 行,实现一单多品的合并采购。单条与批量共用
fillRowFromPrefill 做字段映射,不各写一份。
商家链接一键跳转:
输入框加后置按钮,点击在新标签页打开,方便采购员比对价格。
★ 链接先过 safeHref 白名单(只放行 http/https)—— 该字段由用户自由填写,
直接交给 window.open 会让 javascript: 之类的伪协议被当成代码执行。
非法时按钮置灰,不做静默失败。
交接方式:
单行与批量统一走 localStorage(query 里只传一次性 key,取完即删),
不经过 URL。原因:material_base.purchase_link 是 text,实测已有 516 字符的
真实外链,走 URL 会撞上长度上限并被静默截断。曾经单行走 query 时被迫引入
一个「链接多长就不带」的硬编码阈值,导致同一物料单行跳转带链接、批量跳转
不带 —— 现在两条路径统一,无长度上限。
Vue 3 + TypeScript + Vite
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 <script setup> SFCs, check out the script setup docs to learn more.
Learn more about the recommended Project Setup and IDE Support in the Vue Docs TypeScript Guide.