yxh
3 天以前 531d433ab95e1c5ca48637eca9dc157380f675c0
src/main.js
@@ -19,6 +19,7 @@
import '@/assets/styles/theme-runtime.scss'
import '@/assets/styles/element-override.scss'
import '@/assets/styles/pdf-resize-dialog.scss'
import '@/assets/styles/money.scss'
import App from './App'
import FilePreview from '@/components/FilePreview/index.vue'
import store from './store'
@@ -46,6 +47,7 @@
// 图片上传组件
import ImageUpload from "@/components/ImageUpload"
import AttachmentPreviewPane from "@/components/AttachmentPreviewPane/index.vue"
import { formatMoneyValue, moneyColumnFormatter } from '@/utils/money'
// 字典标签组件
import DictTag from '@/components/DictTag'
// 头部标签组件
@@ -104,6 +106,13 @@
    }
  },
  methods: {
    formatMoneyValue,
    formatMoney: moneyColumnFormatter,
    normalizeMoney(row, key) {
      if (row && key) {
        row[key] = formatMoneyValue(row[key])
      }
    },
    openEmbeddedPreview(item) {
      if (!item) return
      const ext = String(item.name || '').toLowerCase().split('.').pop()
@@ -144,7 +153,7 @@
Vue.config.productionTip = false
// 前端构建标识:用于确认浏览器实际加载的是哪一版代码
window.__APP_BUILD__ = '2026-11-03-PDF-PREVIEW-18'
window.__APP_BUILD__ = '2026-11-12-MONEY-1'
const app = new Vue({
  el: '#app',
@@ -168,3 +177,22 @@
  }
  fallbackPreview.open(files, index)
}
// 金额列内可编辑输入框失焦后统一两位小数
document.addEventListener('focusout', e => {
  const target = e.target
  if (!target || target.tagName !== 'INPUT') return
  if (!target.closest('.money-column')) return
  const raw = String(target.value || '').trim()
  if (raw === '') return
  const num = Number(raw)
  if (!Number.isFinite(num)) return
  const text = num.toFixed(2)
  if (target.value === text) return
  const setter = Object.getOwnPropertyDescriptor(
    window.HTMLInputElement.prototype,
    'value'
  ).set
  setter.call(target, text)
  target.dispatchEvent(new Event('input', { bubbles: true }))
})