Bläddra i källkod

feat(miniprogram): add apply attachment display name helper

Co-authored-by: Cursor <cursoragent@cursor.com>
wuzilong 1 månad sedan
förälder
incheckning
f05e353d1e
1 ändrade filer med 28 tillägg och 0 borttagningar
  1. 28 0
      miniprogram/utils/bxAttachmentDisplayName.js

+ 28 - 0
miniprogram/utils/bxAttachmentDisplayName.js

@@ -0,0 +1,28 @@
+const ILLEGAL = /[/\\:*?"<>|\u0000-\u001f]/g
+
+export function sanitizeRemarkBaseName(remark) {
+  const cleaned = String(remark || '')
+    .trim()
+    .replace(ILLEGAL, '_')
+    .replace(/\s+/g, '_')
+    .replace(/_+/g, '_')
+    .replace(/^_|_$/g, '')
+  if (!cleaned) return ''
+  return cleaned.length > 40 ? cleaned.slice(0, 40) : cleaned
+}
+
+function splitExt(fileName) {
+  const name = String(fileName || '')
+  const i = name.lastIndexOf('.')
+  if (i <= 0 || i === name.length - 1) return { base: name, ext: '' }
+  return { base: name.slice(0, i), ext: name.slice(i) }
+}
+
+export function buildApplyAttachmentDisplayName({ remark, originalFileName, index1 }) {
+  const original = String(originalFileName || '').trim() || '申请附件'
+  const base = sanitizeRemarkBaseName(remark)
+  if (!base) return original
+  const { ext } = splitExt(original)
+  const n = Math.max(1, Math.floor(Number(index1) || 1))
+  return `${base}_${n}${ext}`
+}