src/assets/styles/money.scss
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ /* éé¢å/éé¢è¾å ¥æ¡ç»ä¸å³å¯¹é½ */ .money-column .cell { text-align: right; font-variant-numeric: tabular-nums; } .money-input .el-input__inner, .money-input .el-input-number__decrease, .money-input .el-input-number__increase { text-align: right; font-variant-numeric: tabular-nums; } 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 })) }) src/utils/money.js
@@ -1,240 +1,22 @@ /** * éé¢è®¡ç®å·¥å · * * èæ¯ï¼æ¬ç³»ç»éé¢ä¸å¾ä»¥ãå ã为åä½ãä¿ç 2 ä½å°æ°ï¼å±è´¢å¡æ°æ®ã * JS ç Number æ¯ IEEE-754 å精度浮ç¹ï¼ç´æ¥åå åä¹ä¼å¼å ¥äºè¿å¶èå ¥è¯¯å·®ï¼ * å ¸å表ç°ï¼ * 0.1 + 0.2 -> 0.30000000000000004 * 1.1 * 3 -> 3.3000000000000003 * 0.3 - 0.2 - 0.1 -> -2.7755575615628914e-17 ï¼éè´¹/æ£ç¨ç¸ååæ®çå°¾å·®ï¼ * è¿ç±»å°¾å·®å¯¼è´ãå计对ä¸ä¸ããé颿¾ç¤ºä¸º -0ããç¸çå¤æå¤±è´¥ãç线ä¸é®é¢ï¼ * ä¸ä¼éåæ®æµè½¬è¢«åå ¥æ°æ®åºï¼äºåé¾ä»¥è¿½æº¯ã * * å æ¤ï¼ææéé¢è¿ç®ç»ä¸èµ°æ¬æ¨¡åï¼ç¦æ¢ç´æ¥å¯¹éé¢ä½¿ç¨ + - * / ä¸ parseFloat ç´¯å ã * å é¨åºäº decimal.jsï¼package.json å·²å¼å ¥ï¼ï¼ä¿è¯åè¿å¶ç²¾ç¡®è¿ç®ã * * ç¨æ³ç¤ºä¾ï¼ * import { moneySum, moneyMul, moneySub, moneyRound, moneyEq } from "@/utils/money"; * * // ç´¯å æç»ï¼è¿æ»¤éæ°åä¸ç©ºå¼ï¼ä¸ä¼æ NaN ä¼ æç»åè®¡ï¼ * const total = moneySum(this.rbDetails, "amount"); * * // åä»· à æ°é * const preTax = moneyMul(row.price, row.quantity); * * // ç¨å - æ£ç¨ = ç¨å * const afterTax = moneySub(row.amount, row.taxamount); * * // è½åº/å±ç¤ºåç»ä¸ä¿ç 2 ä½ï¼åèäºå ¥ï¼ * this.form.amountrequested = moneyRound(total); * * // é颿¯è¾ï¼å¿ç¨ == / === æ parseFloat åç¸åï¼ * if (!moneyEq(sumOfPayees, this.form.amountrequested)) { ... } * éé¢å±ç¤ºæ ¼å¼åï¼ * - null/undefined/ç©ºä¸²ä¿æç©ºï¼ * - 0 æ¾ç¤º 0.00ï¼ * - æ°åç»ä¸ä¸¤ä½å°æ°ï¼ * - éæ°ååæ ·è¿åï¼é¿å æå¼å¸¸æ°æ®åæã */ import Decimal from 'decimal.js' /** éé¢ä¿çå°æ°ä½ */ export const MONEY_SCALE = 2 /** * 转为 Decimalï¼æ æ³è¯å«çå¼ï¼ç©ºä¸²/undefined/null/NaN/éæ°åï¼ä¸å¾æ 0 å¤çã * æ 0 å¤çèéæéï¼æ¯ä¸ºäºä¿ææ¢æé¡µé¢ã!isNaN(parseFloat(x)) æç´¯å ãçè¡ä¸ºï¼ * åæ¶é¿å NaN æ±¡ææ´æ¡å计é¾ã * * @param {string|number|Decimal|null|undefined} value * @returns {Decimal} */ export function toMoney(value) { if (value === null || value === undefined || value === '') { return new Decimal(0) export function formatMoneyValue(value) { if (value === null || value === undefined || value === "") { return ""; } if (value instanceof Decimal) { return value const num = Number(value); if (!Number.isFinite(num)) { return value; } let d try { d = new Decimal(value) } catch (e) { return new Decimal(0) } return d.isFinite() ? d : new Decimal(0) return num.toFixed(2); } /** * 夿æ¯å¦ä¸ºææéé¢ï¼å¯åä¸è®¡ç®ï¼ãç¨äºåæ¬ !isNaN(parseFloat(x)) çæ ¡éªåºæ¯ã * * @param {*} value * @returns {boolean} */ export function isValidMoney(value) { if (value === null || value === undefined || value === '') { return false } if (value instanceof Decimal) { return value.isFinite() } if (typeof value === 'number') { return Number.isFinite(value) } const s = String(value).trim() if (s === '') { return false } try { return new Decimal(s).isFinite() } catch (e) { return false } } /** * ç´¯å æ±åã * * @param {Array} list å¾ ç´¯å çæ°ç» * @param {string|Function} [selector] åéé¢çæ¹å¼ï¼ * å符串 -> å该项çè¯¥å±æ§åï¼å¦ "amount"ï¼ * 彿° -> ç¨è¿åå¼ï¼å¦ (item) => item.detail && item.detail.amountï¼ * çç¥ -> ç´æ¥ç´¯å æ°ç»å ç´ æ¬èº«ã * @returns {number} æ±åç»æï¼Numberï¼ä¾¿äºèµå¼ç»è¡¨ååæ®µï¼ */ export function moneySum(list, selector) { if (!Array.isArray(list) || list.length === 0) { return 0 } let acc = new Decimal(0) for (let i = 0; i < list.length; i++) { const raw = selector === undefined ? list[i] : typeof selector === 'function' ? selector(list[i]) : list[i][selector] acc = acc.plus(toMoney(raw)) } return acc.toNumber() } /** * æ±ååä¿ç 2 ä½å°æ°ï¼ä¼å å¨å±ç¤º/è½åºæ¶ä½¿ç¨ï¼ã */ export function moneySumRound(list, selector) { return roundNumber(moneySum(list, selector)) } /** * ç²¾ç¡®å æ³ãæ¯æå¤åæ°ææ°ç»ï¼moneyAdd(1.1, 2.2) / moneyAdd([1.1, 2.2]) */ export function moneyAdd(...args) { const list = args.length === 1 && Array.isArray(args[0]) ? args[0] : args let acc = new Decimal(0) list.forEach((v) => { acc = acc.plus(toMoney(v)) }) return acc.toNumber() } /** * ç²¾ç¡®åæ³ a - bï¼å¯ä¼ å¤ä¸ªï¼a - b - cï¼ */ export function moneySub(a, ...rest) { let acc = toMoney(a) rest.forEach((v) => { acc = acc.minus(toMoney(v)) }) return acc.toNumber() } /** * ç²¾ç¡®ä¹æ³ï¼åä»· à æ°éãéé¢ Ã ç¨çï¼ */ export function moneyMul(a, ...rest) { let acc = toMoney(a) rest.forEach((v) => { acc = acc.times(toMoney(v)) }) return acc.toNumber() } /** * ç²¾ç¡®é¤æ³ï¼éé¢ Ã· æ°éï¼ï¼divideBy 为 0 æ¶è¿å 0ï¼ä¸äº§ç Infinity */ export function moneyDiv(a, b) { const divisor = toMoney(b) if (divisor.isZero()) { return 0 } return toMoney(a).div(divisor).toNumber() } /** * é颿¯å¦ç¸çï¼åè¿å¶ç²¾ç¡®æ¯è¾ï¼ä¸åæµ®ç¹å°¾å·®å½±åï¼ã * ä¼èªå¨å½ä¸åå° 2 ä½ï¼é¿å 100 ä¸ 100.001 è¿ç±»è¾¹ç误å¤ã * * @returns {boolean} */ export function moneyEq(a, b) { return roundDecimal(a).eq(roundDecimal(b)) } /** * éé¢å¤§å°æ¯è¾ï¼a > b è¿å 1ï¼a < b è¿å -1ï¼ç¸çè¿å 0 */ export function moneyCmp(a, b) { return roundDecimal(a).cmp(roundDecimal(b)) } /** * ä¿ç 2 ä½å°æ°å¹¶è¿å Numberï¼åèäºå ¥ï¼ROUND_HALF_UPï¼ã * ç¨äºèµå¼ç»è¡¨ååæ®µãåä¸å端交äºã * * @param {*} value * @param {number} [scale=2] * @returns {number} */ export function moneyRound(value, scale = MONEY_SCALE) { return roundDecimal(value, scale).toNumber() } /** * ä¿ç 2 ä½å°æ°å¹¶è¿åå符串ï¼ç¨äºéé¢å±ç¤ºï¼é¿å 大颿¶åºç°ç§å¦è®¡æ°æ³ï¼ã * * @param {*} value * @param {number} [scale=2] * @returns {string} */ export function moneyText(value, scale = MONEY_SCALE) { return roundDecimal(value, scale).toFixed(scale) } /** * ä¿ç 2 ä½å°æ°å¹¶è¿å Decimalï¼ä¾åç»ç»§ç»ç²¾ç¡®è¿ç® */ export function moneyDecimal(value, scale = MONEY_SCALE) { return roundDecimal(value, scale) } function roundDecimal(value, scale = MONEY_SCALE) { return toMoney(value).toDecimalPlaces(scale, Decimal.ROUND_HALF_UP) } // moneySum å é¨å·²è¿å Numberï¼è¿éç»ä¸èµ°åä¸å¥åèäºå ¥ function roundNumber(value) { return roundDecimal(value).toNumber() } export default { MONEY_SCALE, toMoney, isValidMoney, moneySum, moneySumRound, moneyAdd, moneySub, moneyMul, moneyDiv, moneyEq, moneyCmp, moneyRound, moneyText, moneyDecimal /** el-table-column formatter ç¾åï¼(row, column, cellValue, index) */ export function moneyColumnFormatter(row, column, cellValue) { return formatMoneyValue(cellValue); } src/views/project/fund/applyDetail/index.vue
@@ -49,7 +49,7 @@ </el-col> <el-col :span="5" v-if="ismanager == true"> <el-form-item label="ç³è¯·éé¢" prop="pretaxcost"> <el-input v-model="form.pretaxcost" placeholder="ç¨åéé¢å计" :disabled="true" /> <el-input :value="formatMoneyValue(form.pretaxcost)" class="money-input" placeholder="ç¨åéé¢å计" :disabled="true" /> </el-form-item> </el-col> <el-col :span="5"> @@ -124,7 +124,7 @@ </el-row> <el-row> <el-table :data="rbDetails" v-loading="loading" max-height="800" border highlight-current-row> <el-table-column prop="orderno" align="center" label="åºå·" width="88"> <el-table-column prop="orderno" align="center" label="åºå·" width="75"> <template slot-scope="scope"> <el-input v-model="scope.row.orderno" placeholder="åºå·" /> </template> @@ -155,7 +155,7 @@ </el-select> </template> </el-table-column> <el-table-column prop="price" align="center" label="åä»·" width="120" v-if="businessType == 4"> <el-table-column prop="price" align="right" header-align="right" label="åä»·" width="120" v-if="businessType == 4" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.price" placeholder="åä»·" @blur=" val => { @@ -173,23 +173,29 @@ " /> </template> </el-table-column> <el-table-column prop="amount" align="center" :label="amountlabel" width="120"> <el-table-column prop="amount" align="right" header-align="right" class-name="money-column" :label="amountlabel" width="120" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.amount" placeholder="éé¢" /> <el-input v-model="scope.row.amount" class="money-input" placeholder="éé¢" @blur="normalizeMoney(scope.row, 'amount')" /> </template> </el-table-column> <el-table-column prop="taxamount" align="center" label="å³å¡ä¸ªç¨" width="120" v-if=" <el-table-column prop="vatAmount" align="right" header-align="right" class-name="money-column" label="å¢å¼ç¨" width="110" :formatter="formatMoney" v-if="businessType == '1'" /> <el-table-column prop="cityTaxAmount" align="right" header-align="right" class-name="money-column" label="å建ç¨" width="110" :formatter="formatMoney" v-if="businessType == '1'" /> <el-table-column prop="laborPretaxAmount" align="right" header-align="right" class-name="money-column" label="å³å¡ç¨å" width="120" :formatter="formatMoney" v-if="businessType == '1'" /> <el-table-column prop="taxamount" align="right" header-align="right" class-name="money-column" label="å³å¡ä¸ªç¨" width="120" v-if=" ismanager == true && (businessType == '1' || businessType == '2') "> " :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.taxamount" placeholder="å³å¡ä¸ªç¨" /> <el-input v-model="scope.row.taxamount" class="money-input" placeholder="å³å¡ä¸ªç¨" @blur="normalizeMoney(scope.row, 'taxamount')" /> </template> </el-table-column> <el-table-column prop="taxedamount" align="center" label="å³å¡ç¨å" width="120" v-if="businessType == '1' || businessType == '2'"> <el-table-column prop="taxedamount" align="right" header-align="right" class-name="money-column" label="å³å¡ç¨å" width="120" v-if="businessType == '1' || businessType == '2'" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.taxedamount" placeholder="å³å¡ç¨å" /> <el-input v-model="scope.row.taxedamount" class="money-input" placeholder="å³å¡ç¨å" @blur="normalizeMoney(scope.row, 'taxedamount')" /> </template> </el-table-column> <el-table-column prop="beneficiaryname" column-key="sdad" align="center" :label="beneficiarylabel" @@ -283,7 +289,7 @@ <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileListto" :show-file-list="false" multiple drag :headers="headers" :on-success="(response, file, fileList) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled="operationType == 'detail'" :on-error="handleUploadError" " :on-preview="downFile" :disabled="operationType == 'detail'" :on-error="handleUploadError" :before-upload="beforeUploadCheck" :on-remove="remove" accept="image/*,.pdf"> <i class="el-icon-upload"></i> <div class="el-upload__text"> @@ -291,7 +297,14 @@ <em><el-button :disabled="operationType == 'detail'" size="small" type="primary">ç¹å»ä¸ä¼ </el-button></em> </div> </el-upload> <el-table :data="fileListto" @row-click="downFile" style="width: 100%" height="400"> <div v-if="operationType == 'detail'" class="upload-disabled-tip" > <i class="el-icon-warning-outline" /> å½å为æ¥ç模å¼ï¼ä¸è½ä¸ä¼ éä»¶ </div> <el-table ref="annexTable" :data="fileListto" :row-class-name="annexRowClass" @row-click="downFile" style="width: 100%" height="400"> <el-table-column prop="name" :show-overflow-tooltip="true" label="åç§°"> <template slot-scope="scope"> <i style="color:#409EFF" class=" el-icon-s-order" />{{ @@ -536,13 +549,13 @@ /> <div style="margin-bottom: 10px;"> <el-table :data="tableDatatop" style="width: 100%"> <el-table-column v-if="businessType == 4" prop="price" align="center" label="åä»·"> <el-table-column v-if="businessType == 4" prop="price" align="right" header-align="right" class-name="money-column" label="åä»·" :formatter="formatMoney"> </el-table-column> <el-table-column prop="quantity" align="center" label="æ°é" v-if="businessType == 4"> </el-table-column> <el-table-column prop="amount" align="center" :label="amountlabel"> <el-table-column prop="amount" align="right" header-align="right" class-name="money-column" :label="amountlabel" :formatter="formatMoney"> </el-table-column> <el-table-column prop="taxedamount" align="center" label="å³å¡ç¨å" v-if=" <el-table-column prop="taxedamount" align="right" header-align="right" class-name="money-column" label="å³å¡ç¨å" :formatter="formatMoney" v-if=" (this.ismanager == true) & (form.applytype == '1' || form.applytype == '2') "> @@ -587,7 +600,7 @@ <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileListto" :show-file-list="false" multiple drag :headers="headers" :on-success="(response, file, fileList) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled="operationType == 'detail'" :on-error="handleUploadError" " :on-preview="downFile" :disabled="operationType == 'detail'" :on-error="handleUploadError" :before-upload="beforeUploadCheck" :on-remove="remove" accept="image/*,.pdf"> <i class="el-icon-upload"></i> <div class="el-upload__text"> @@ -596,7 +609,14 @@ type="primary">ç¹å»ä¸ä¼ </el-button></em> </div> </el-upload> <el-table :data="fileListto" @row-click="downFile" style="width: 100%" height="400"> <div v-if="operationType == 'detail'" class="upload-disabled-tip" > <i class="el-icon-warning-outline" /> å½å为æ¥ç模å¼ï¼ä¸è½ä¸ä¼ éä»¶ </div> <el-table ref="annexTable2" :data="fileListto" :row-class-name="annexRowClass" @row-click="downFile" style="width: 100%" height="400"> <el-table-column prop="name" :show-overflow-tooltip="true" label="åç§°"> <template slot-scope="scope"> <i style="color:#409EFF" class=" el-icon-s-order" /> @@ -628,7 +648,7 @@ <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="invoicefileList" :show-file-list="false" multiple drag :headers="headers" :on-success="(response, file, fileList) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled="operationType == 'detail'" :on-error="handleUploadError" " :on-preview="downFile" :disabled="operationType == 'detail'" :on-error="handleUploadError" :before-upload="beforeUploadCheck" :on-remove="remove" accept="image/*,.pdf"> <i class="el-icon-upload"></i> <div class="el-upload__text"> @@ -637,7 +657,14 @@ type="primary">ç¹å»ä¸ä¼ </el-button></em> </div> </el-upload> <el-table :data="invoicefileListto" @row-click="downFile" style="width: 100%" height="400"> <div v-if="operationType == 'detail'" class="upload-disabled-tip" > <i class="el-icon-warning-outline" /> å½å为æ¥ç模å¼ï¼ä¸è½ä¸ä¼ éä»¶ </div> <el-table ref="invoiceTable" :data="invoicefileListto" :row-class-name="invoiceRowClass" @row-click="downFile" style="width: 100%" height="400"> <el-table-column prop="name" :show-overflow-tooltip="true" label="åç§°"> <template slot-scope="scope"> <i style="color:#409EFF" class=" el-icon-s-order" /> @@ -1112,6 +1139,9 @@ fileListto: [], invoicefileList: [], invoicefileListto: [], // 2026-11-10ï¼æ°ä¸ä¼ éä»¶è¡é«äº®ç¨ï¼éä»¶ / åç¥¨ï¼ flashAnnexName: "", flashInvoiceName: "", invoicepdfimg: "", invoicepdfimgsrcList: [], invoDatatop: [], @@ -2950,7 +2980,97 @@ invoicehandleViewerClose() { this.invoiceviewerVisible = false; }, handleUploadError() { }, /** * 2026-11-10ï¼ä¸ä¼ åç½®æ ¡éªï¼before-uploadï¼ * åå®ç°ææä»¶åæ ¡éªæ¾å¨ on-successï¼æä»¶**å·²ç»ä¼ å°æå¡å¨**æå¤æï¼ * ä¸åæ ¼å°±ç´æ¥ä¸¢å¼ â æå¡å¨çå徿件ãçé¢åªéªä¸ä¸æç¤ºï¼ç¨æ·æè§"没ååº"ã * è¿éåç§»å°ä¸ä¼ åï¼ä¸åæ ¼ç´æ¥ä¸å请æ±ã * @returns {boolean} false 黿¢ä¸ä¼ */ beforeUploadCheck(file) { if (this.operationType === "detail") { this.$modal.msgError("å½å为æ¥ç模å¼ï¼ä¸è½ä¸ä¼ éä»¶"); return false; } return this.checkUploadFileName(file); }, /** * 2026-11-10ï¼ä¸ä¼ ç»æå¼å¸¸æ¶çç»ä¸æç¤º * å端 /common/upload åºéæ¶è¿å HTTP 200 + code 500/401ï¼el-upload ä¼èµ° on-successï¼ * å¿ é¡»å¨è¿éç»åºæç¡®æç¤ºï¼å¦åç¨æ·çä¸å°ä»»ä½åé¦ã */ notifyUploadFail(response) { const code = response && response.code; const msg = (response && response.msg) || "æªç¥é误"; if (code === 401 || code === 403) { this.$modal.msgError("ç»å½å·²è¿æï¼è¯·éæ°ç»å½ååä¸ä¼ éä»¶"); return; } this.$modal.msgError("ä¸ä¼ 失败ï¼" + msg); }, /** * 2026-11-10ï¼ä¸ä¼ 失败ï¼HTTP é 2xx / æç½ / 被ç½å ³æ¦æªçï¼ * åå®ç°æ¯ç©ºå½æ° `handleUploadError() { }`ï¼å¤±è´¥æ¶å®å ¨æ²¡ææç¤ºã */ handleUploadError(err, file, fileList) { const status = err && err.status; const fileName = (file && file.name) || "æä»¶"; if (status === 401 || status === 403) { this.$modal.msgError("ç»å½å·²è¿æï¼è¯·éæ°ç»å½ååä¸ä¼ éä»¶"); return; } let msg = "ä¸ä¼ 失败"; if (status) { msg += "ï¼HTTP " + status + "ï¼å¯è½æ¯æä»¶è¿å¤§æç½ç»å¼å¸¸ï¼"; } else if (err && err.message) { msg += "ï¼" + err.message; } this.$modal.msgError(msg + "ï¼æä»¶ï¼" + fileName); }, /** æ°ä¸ä¼ è¡é«äº®ï¼é件表 */ annexRowClass({ row }) { return row && row.name === this.flashAnnexName ? "row-flash" : ""; }, /** æ°ä¸ä¼ è¡é«äº®ï¼å票表 */ invoiceRowClass({ row }) { return row && row.name === this.flashInvoiceName ? "row-flash" : ""; }, /** * 2026-11-10ï¼æ°ä¸ä¼ éä»¶å®ä½ ââ é«äº® + æ»å¨å°è¡¨æ ¼åºé¨ * @param {string} refName è¡¨æ ¼ ref * @param {string} name æä»¶åï¼ç¨äº row-class-name å¹é ï¼ * @param {string} kind annex | invoice */ flashTable(refName, name, kind) { if (kind === "annex") { this.flashAnnexName = name; } else { this.flashInvoiceName = name; } this.$nextTick(() => { const table = this.$refs[refName]; const wrap = table && table.$el ? table.$el.querySelector(".el-table__body-wrapper") : null; if (wrap) { wrap.scrollTop = wrap.scrollHeight; } }); setTimeout(() => { if (kind === "annex") { this.flashAnnexName = ""; } else { this.flashInvoiceName = ""; } }, 2000); }, remove(file, fileList) { const rbDetails = [...this.rbDetails]; if (this.activeName == "common") { @@ -3036,8 +3156,12 @@ url: response.fileName }); this.pdftitle = "å ±" + this.pdfimgsrcList.length + "项"; // 2026-11-10ï¼æ°è¡é«äº®å¹¶æ»å¨å°å¯è§ä½ç½®ï¼é¿å "çä¸åºæååº" this.flashTable("annexTable", file.name, "annex"); this.flashTable("annexTable2", file.name, "annex"); } else { console.log(response.msg); // 2026-11-10ï¼å端è¿å HTTP 200 + é 200 ä¸å¡ç æ¶ï¼åæ¥åª console.logï¼ç颿 æç¤º this.notifyUploadFail(response); } } else { if (response.code == 200) { @@ -3067,6 +3191,11 @@ url: response.fileName }); this.pdftitle = "å ±" + this.invoicepdfimgsrcList.length + "项"; // 2026-11-10ï¼æ°è¡é«äº®å¹¶æ»å¨å°å¯è§ä½ç½® this.flashTable("invoiceTable", file.name, "invoice"); } else { // 2026-11-10ï¼åæ¥è¯¥åæ¯æ²¡æ elseï¼å¤±è´¥æ¶å®å ¨æ æç¤º this.notifyUploadFail(response); } } }, @@ -3628,6 +3757,19 @@ text-align: center; } /* 2026-11-10ï¼æ¥ç模å¼ä¸ä¸ä¼ åºç说æ + æ°ä¸ä¼ è¡é«äº® */ .upload-disabled-tip { margin-top: 6px; font-size: 13px; color: #e6a23c; text-align: center; } ::v-deep .el-table .row-flash td { background-color: #e7f1f4 !important; transition: background-color 0.3s ease; } .pdfimg { display: flex; // text-align: center; width: 100%; src/views/project/fund/applyDetail0/index.vue
ÎļþÒÑɾ³ý src/views/project/fund/ethicalExpertFeeApply/index.vue
@@ -102,10 +102,10 @@ /> <el-table-column label="ç³è¯·éé¢" align="center" align="right" header-align="right" prop="pretaxcost" width="200px" /> / class-name="money-column" :formatter="formatMoney"> <el-table-column label="æå±ç»å«" align="center" @@ -588,11 +588,11 @@ </el-table-column> <el-table-column prop="amount" align="center" align="right" header-align="right" label="ç¨åéé¢" width="120" v-if="form.applytype != 3" > class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.amount" @@ -607,12 +607,33 @@ </el-table-column> <el-table-column prop="vatAmount" align="right" header-align="right" label="å¢å¼ç¨" width="110" v-if="form.applytype != '3'" / class-name="money-column" :formatter="formatMoney"> <el-table-column prop="cityTaxAmount" align="right" header-align="right" label="å建ç¨" width="110" v-if="form.applytype != '3'" / class-name="money-column" :formatter="formatMoney"> <el-table-column prop="laborPretaxAmount" align="right" header-align="right" label="å³å¡ç¨å" width="120" v-if="form.applytype != '3'" / class-name="money-column" :formatter="formatMoney"> <el-table-column prop="taxedamount" align="center" align="right" header-align="right" label="å³å¡ç¨å" width="120" v-if="form.applytype != '3'" > class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.taxedamount" src/views/project/fund/expertFeeApply/index.vue
@@ -102,10 +102,10 @@ /> <!-- <el-table-column label="ç³è¯·éé¢" align="center" align="right" header-align="right" prop="pretaxcost" width="200px" /> --> / class-name="money-column" :formatter="formatMoney"> --> <el-table-column label="æç®äºº" align="center" @@ -150,7 +150,7 @@ </template> </el-table-column> <!-- <el-table-column label="ç³è¯·éé¢" align="center" prop="amountrequested" width="120px" /> <el-table-column label="ç³è¯·éé¢" align="right" header-align="right" prop="amountrequested" width="120px" / class-name="money-column" :formatter="formatMoney"> <el-table-column label="èç³»çµè¯" align="center" prop="phone" width="150px" /> <el-table-column label="å·¥ä½åä½" align="center" prop="unitname" width="220px" /> --> @@ -618,10 +618,10 @@ <el-table-column v-if="this.ismanager == true" prop="amount" align="center" align="right" header-align="right" label="ç¨åéé¢" width="120" > class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-select v-model="scope.row.amount" @@ -641,12 +641,30 @@ </template> </el-table-column> <el-table-column prop="vatAmount" align="right" header-align="right" label="å¢å¼ç¨" width="110" / class-name="money-column" :formatter="formatMoney"> <el-table-column prop="cityTaxAmount" align="right" header-align="right" label="å建ç¨" width="110" / class-name="money-column" :formatter="formatMoney"> <el-table-column prop="laborPretaxAmount" align="right" header-align="right" label="å³å¡ç¨å" width="120" / class-name="money-column" :formatter="formatMoney"> <el-table-column prop="taxedamount" align="center" align="right" header-align="right" label="å³å¡ç¨å" width="120" v-if="this.ismanager == true" > class-name="money-column" :formatter="formatMoney"> <!-- v-if="form.applytype != '3'"ä¸å --> <template slot-scope="scope"> <el-input src/views/project/fund/index.vue
@@ -76,9 +76,9 @@ <el-table-column label="å®¶å±èç³»çµè¯" align="center" prop="phone" /> <el-table-column label="é¶è¡å¡ç §çè·¯å¾ å¤ä¸ªç¨;åå¼" align="center" prop="annexbankcard" /> <el-table-column label="ç»è®°è¡¨ç §çè·¯å¾ å¤ä¸ªç¨;åå¼" align="center" prop="annexregistform" /> <el-table-column label="ç³è¯·éé¢" align="center" prop="amountrequested" /> <el-table-column label="ç³è¯·éé¢" align="right" header-align="right" class-name="money-column" prop="amountrequested" :formatter="formatMoney" /> <el-table-column label="è´¹ç¨ç±»å« è§åå ¸sys_ConsolationType" align="center" prop="applytype" /> <el-table-column label="颿¯è´¹ç¨" align="center" prop="prepaidamount" /> <el-table-column label="颿¯è´¹ç¨" align="right" header-align="right" class-name="money-column" prop="prepaidamount" :formatter="formatMoney" /> <el-table-column label="åç¥¨å¼ æ°" align="center" prop="invoicecount" /> <el-table-column label="éä»¶æ°" align="center" prop="attachcount" /> <el-table-column label="é¨é¨ä¸»ç®¡å·¥å·" align="center" prop="managerno" /> src/views/project/fund/medicalCostApply/index.vue
@@ -48,7 +48,7 @@ </template> </el-table-column> <el-table-column label="ç»å人" align="center" prop="username" width="120px" /> <el-table-column label="ç³è¯·éé¢" align="center" prop="pretaxcost" width="200px" /> <el-table-column label="ç³è¯·éé¢" align="right" header-align="right" class-name="money-column" prop="pretaxcost" width="200px" :formatter="formatMoney" /> <el-table-column label="å®¡æ ¸ç¶æ" align="center" prop="recordstatus"> <template slot-scope="scope"> <dict-tag :options="dict.type.sys_recordstatus" :value="scope.row.recordstatus" /> src/views/project/fund/officeExpenseApply/index.vue
@@ -112,10 +112,10 @@ /> <el-table-column label="ç³è¯·éé¢" align="center" align="right" header-align="right" prop="pretaxcost" width="150px" /> / class-name="money-column" :formatter="formatMoney"> <el-table-column label="æå±ç»å«" align="center" @@ -439,11 +439,11 @@ </el-table-column> --> <el-table-column prop="amount" align="center" align="right" header-align="right" label="ç¨åéé¢" width="120" v-if="form.applytype != 3" > class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-select v-model="scope.row.amount" @@ -474,12 +474,33 @@ </template> </el-table-column> <el-table-column prop="vatAmount" align="right" header-align="right" label="å¢å¼ç¨" width="110" v-if="form.applytype != '3'" / class-name="money-column" :formatter="formatMoney"> <el-table-column prop="cityTaxAmount" align="right" header-align="right" label="å建ç¨" width="110" v-if="form.applytype != '3'" / class-name="money-column" :formatter="formatMoney"> <el-table-column prop="laborPretaxAmount" align="right" header-align="right" label="å³å¡ç¨å" width="120" v-if="form.applytype != '3'" / class-name="money-column" :formatter="formatMoney"> <el-table-column prop="taxamount" align="center" align="right" header-align="right" label="å³å¡ä¸ªç¨" width="120" v-if="form.applytype != '3'" > class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.taxamount" @@ -494,11 +515,11 @@ </el-table-column> <el-table-column prop="taxedamount" align="center" align="right" header-align="right" label="å³å¡ç¨å" width="120" v-if="form.applytype != '3'" > class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.taxedamount" @@ -547,11 +568,11 @@ <el-table-column prop="amount" align="center" align="right" header-align="right" label="éé¢" width="120" v-if="form.applytype == '3'" > class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.amount" src/views/project/fund/performanceApply/index.vue
@@ -129,10 +129,10 @@ /> <el-table-column label="ç³è¯·éé¢" align="center" align="right" header-align="right" prop="pretaxcost" width="150px" /> / class-name="money-column" :formatter="formatMoney"> <el-table-column label="å®¡æ ¸ç¶æ" src/views/project/fund/performancedetails/index.vue
@@ -235,43 +235,79 @@ </el-table-column> --> <el-table-column prop="amount" align="center" align="right" header-align="right" class-name="money-column" label="ç¨åéé¢" width="120" > :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.amount" class="money-input" placeholder="ç¨åéé¢" @blur="chargeSum" @blur="normalizeMoney(scope.row, 'amount'); chargeSum()" /> </template> </el-table-column> <el-table-column prop="vatAmount" align="right" header-align="right" class-name="money-column" label="å¢å¼ç¨" width="110" :formatter="formatMoney" /> <el-table-column prop="cityTaxAmount" align="right" header-align="right" class-name="money-column" label="å建ç¨" width="110" :formatter="formatMoney" /> <el-table-column prop="laborPretaxAmount" align="right" header-align="right" class-name="money-column" label="å³å¡ç¨å" width="120" :formatter="formatMoney" /> <el-table-column prop="taxamount" align="center" align="right" header-align="right" class-name="money-column" label="å³å¡ä¸ªç¨" width="120" > :formatter="formatMoney"> <template slot-scope="scope"> <el-input @blur="chargeSum" @blur="normalizeMoney(scope.row, 'taxamount'); chargeSum()" v-model="scope.row.taxamount" class="money-input" placeholder="å³å¡ä¸ªç¨" /> </template> </el-table-column> <el-table-column prop="taxedamount" align="center" align="right" header-align="right" class-name="money-column" label="å³å¡ç¨å" width="120" > :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.taxedamount" class="money-input" placeholder="å³å¡ç¨å" @blur="queenchargeSum" @blur="normalizeMoney(scope.row, 'taxedamount'); queenchargeSum()" /> </template> </el-table-column> src/views/project/fundcheck/ethicalExpertFeeCheck/index.vue
@@ -76,7 +76,7 @@ <span>{{ parseTime(scope.row.applyTime, "{y}-{m}-{d}") }}</span> </template> </el-table-column> <el-table-column label="ç³è¯·éé¢" align="center" prop="pretaxcost" width="120px" /> <el-table-column label="ç³è¯·éé¢" align="right" header-align="right" prop="pretaxcost" width="120px" / class-name="money-column" :formatter="formatMoney"> <el-table-column label="ç»å人" align="center" prop="username" width="90px" /> <el-table-column label="ææé¢å®¡ç¶æ" width="140px" align="center" prop="checkFlag"> <template slot-scope="scope"> @@ -239,7 +239,7 @@ </el-select> </template> </el-table-column> <el-table-column prop="amount" align="center" label="ç¨åéé¢" width="150"> <el-table-column prop="amount" align="right" header-align="right" label="ç¨åéé¢" width="150" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.amount" @blur=" val => { @@ -250,18 +250,18 @@ </el-table-column> <!-- <el-table-column prop="taxamount" align="center" align="right" header-align="right" label="å³å¡ä¸ªç¨" width="150" > class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.taxamount" placeholder="å³å¡ä¸ªç¨" /> </template> </el-table-column> --> <el-table-column prop="vatAmount" align="center" label="å¢å¼ç¨" width="120" /> <el-table-column prop="cityTaxAmount" align="center" label="å建ç¨" width="120" /> <el-table-column prop="laborPretaxAmount" align="center" label="å³å¡ç¨å" width="130" /> <el-table-column prop="taxedamount" align="center" label="å³å¡ç¨å" width="150"> <el-table-column prop="vatAmount" align="right" header-align="right" label="å¢å¼ç¨" width="120" / class-name="money-column" :formatter="formatMoney"> <el-table-column prop="cityTaxAmount" align="right" header-align="right" label="å建ç¨" width="120" / class-name="money-column" :formatter="formatMoney"> <el-table-column prop="laborPretaxAmount" align="right" header-align="right" label="å³å¡ç¨å" width="130" / class-name="money-column" :formatter="formatMoney"> <el-table-column prop="taxedamount" align="right" header-align="right" label="å³å¡ç¨å" width="150" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.taxedamount" placeholder="å³å¡ç¨å" @blur=" val => { src/views/project/fundcheck/expertFeeCheck/index.vue
@@ -103,13 +103,13 @@ <span>{{ parseTime(scope.row.applyTime, "{y}-{m}-{d}") }}</span> </template> </el-table-column> <el-table-column label="ç³è¯·éé¢" align="center" prop="pretaxcost" width="120px" /> <el-table-column label="ç³è¯·éé¢" align="right" header-align="right" prop="pretaxcost" width="120px" / class-name="money-column" :formatter="formatMoney"> <el-table-column label="ç»å人" align="center" prop="username" width="90px" /> <!-- <el-table-column label="å·¥ä½åä½" align="center" prop="unitname" width="230px" /> --> <!-- <el-table-column label="èç³»çµè¯" align="center" prop="phone" width="160" /> --> <!-- <el-table-column label="å³å¡ç¨å" align="center" prop="taxedcost" width="120px" /> <el-table-column label="ç³è¯·éé¢" align="center" prop="amountrequested" width="120px" /> <el-table-column label="颿¯è´¹ç¨" align="center" prop="prepaidamount" width="120px" /> --> <!-- <el-table-column label="å³å¡ç¨å" align="right" header-align="right" prop="taxedcost" width="120px" / class-name="money-column" :formatter="formatMoney"> <el-table-column label="ç³è¯·éé¢" align="right" header-align="right" prop="amountrequested" width="120px" / class-name="money-column" :formatter="formatMoney"> <el-table-column label="颿¯è´¹ç¨" align="right" header-align="right" prop="prepaidamount" width="120px" / class-name="money-column" :formatter="formatMoney"> --> <el-table-column label="ææé¢å®¡ç¶æ" align="center" prop="checkstatus" width="140px"> <template slot-scope="scope"> <dict-tag :options="dict.type.sys_stage_type" :value="scope.row.checkstatus" /> @@ -300,7 +300,7 @@ <el-input v-model="scope.row.title" placeholder="èç§°" /> </template> </el-table-column> <el-table-column v-if="show === 1" prop="amount" align="center" label="ç¨åéé¢" width="100"> <el-table-column v-if="show === 1" prop="amount" align="right" header-align="right" label="ç¨åéé¢" width="100" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.amount" v-on:input=" val => { @@ -309,10 +309,10 @@ " placeholder="ç¨åéé¢" /> </template> </el-table-column> <el-table-column v-if="show === 1" prop="vatAmount" align="center" label="å¢å¼ç¨" width="100" /> <el-table-column v-if="show === 1" prop="cityTaxAmount" align="center" label="å建ç¨" width="100" /> <el-table-column v-if="show === 1" prop="laborPretaxAmount" align="center" label="å³å¡ç¨å" width="110" /> <el-table-column v-if="show === 1" prop="taxedamount" align="center" label="å³å¡ç¨å" width="100"> <el-table-column v-if="show === 1" prop="vatAmount" align="right" header-align="right" label="å¢å¼ç¨" width="100" / class-name="money-column" :formatter="formatMoney"> <el-table-column v-if="show === 1" prop="cityTaxAmount" align="right" header-align="right" label="å建ç¨" width="100" / class-name="money-column" :formatter="formatMoney"> <el-table-column v-if="show === 1" prop="laborPretaxAmount" align="right" header-align="right" label="å³å¡ç¨å" width="110" / class-name="money-column" :formatter="formatMoney"> <el-table-column v-if="show === 1" prop="taxedamount" align="right" header-align="right" label="å³å¡ç¨å" width="100" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.taxedamount" placeholder="å³å¡ç¨å" /> </template> src/views/project/fundcheck/medicalCostCheck/index.vue
@@ -82,11 +82,11 @@ <span>{{ parseTime(scope.row.applyTime, "{y}-{m}-{d}") }}</span> </template> </el-table-column> <el-table-column label="ç³è¯·éé¢" align="center" prop="pretaxcost" width="120px" /> <el-table-column label="ç³è¯·éé¢" align="right" header-align="right" prop="pretaxcost" width="120px" / class-name="money-column" :formatter="formatMoney"> <el-table-column label="ç»å人" align="center" prop="username" width="90px" /> <!--<el-table-column label="æç®ç¼å·" align="center" prop="donorno" />--> <!-- <el-table-column label="颿¯è´¹ç¨" align="center" prop="prepaidamount" width="120px" /> <el-table-column label="颿¯è´¹ç¨" align="right" header-align="right" prop="prepaidamount" width="120px" / class-name="money-column" :formatter="formatMoney"> <el-table-column label="å·¥ä½åä½" align="center" prop="unitname" width="230px" /> <el-table-column label="èç³»çµè¯" align="center" prop="phone" width="160" /> <el-table-column label="å½åå®¡æ ¸çº§å«" width="180" align="center" prop="flowlevel"> @@ -277,7 +277,7 @@ </el-select> </template> </el-table-column>--> <el-table-column prop="amount" align="center" label="ç¨åéé¢" width="120" v-if="form.applytype != 3"> <el-table-column prop="amount" align="right" header-align="right" label="ç¨åéé¢" width="120" v-if="form.applytype != 3" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-select v-model="scope.row.amount" placeholder="ç¨åéé¢" clearable filterable allow-create @change="selectamount(scope.row)"> @@ -286,15 +286,15 @@ </el-select> </template> </el-table-column> <el-table-column prop="vatAmount" align="center" label="å¢å¼ç¨" width="120" v-if="form.applytype != '3'" /> <el-table-column prop="cityTaxAmount" align="center" label="å建ç¨" width="120" v-if="form.applytype != '3'" /> <el-table-column prop="laborPretaxAmount" align="center" label="å³å¡ç¨å" width="120" v-if="form.applytype != '3'" /> <el-table-column prop="taxamount" align="center" label="å³å¡ä¸ªç¨" width="120" v-if="form.applytype != '3'"> <el-table-column prop="vatAmount" align="right" header-align="right" label="å¢å¼ç¨" width="120" v-if="form.applytype != '3'" / class-name="money-column" :formatter="formatMoney"> <el-table-column prop="cityTaxAmount" align="right" header-align="right" label="å建ç¨" width="120" v-if="form.applytype != '3'" / class-name="money-column" :formatter="formatMoney"> <el-table-column prop="laborPretaxAmount" align="right" header-align="right" label="å³å¡ç¨å" width="120" v-if="form.applytype != '3'" / class-name="money-column" :formatter="formatMoney"> <el-table-column prop="taxamount" align="right" header-align="right" label="å³å¡ä¸ªç¨" width="120" v-if="form.applytype != '3'" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.taxamount" placeholder="å³å¡ä¸ªç¨" /> </template> </el-table-column> <el-table-column prop="taxedamount" align="center" label="å³å¡ç¨å" width="120" v-if="form.applytype != '3'"> <el-table-column prop="taxedamount" align="right" header-align="right" label="å³å¡ç¨å" width="120" v-if="form.applytype != '3'" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.taxedamount" placeholder="å³å¡ç¨å" /> </template> @@ -319,7 +319,7 @@ </template> </el-table-column> <el-table-column prop="amount" align="center" label="éé¢" width="120" v-if="form.applytype == '3'"> <el-table-column prop="amount" align="right" header-align="right" label="éé¢" width="120" v-if="form.applytype == '3'" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.amount" placeholder="ä»·æ ¼" /> </template> src/views/project/fundcheck/officeExpenseCheck/index.vue
@@ -83,11 +83,11 @@ <span>{{ parseTime(scope.row.applyTime, "{y}-{m}-{d}") }}</span> </template> </el-table-column> <el-table-column label="ç³è¯·éé¢" align="center" prop="pretaxcost" width="120px" /> <el-table-column label="ç³è¯·éé¢" align="right" header-align="right" prop="pretaxcost" width="120px" / class-name="money-column" :formatter="formatMoney"> <el-table-column label="ç»å人" align="center" prop="username" width="90px" /> <!--<el-table-column label="æç®ç¼å·" align="center" prop="donorno" />--> <!-- <el-table-column label="颿¯è´¹ç¨" align="center" prop="prepaidamount" width="120px" /> <el-table-column label="颿¯è´¹ç¨" align="right" header-align="right" prop="prepaidamount" width="120px" / class-name="money-column" :formatter="formatMoney"> <el-table-column label="å·¥ä½åä½" align="center" prop="unitname" width="230px" /> <el-table-column label="èç³»çµè¯" align="center" prop="phone" width="160" /> <el-table-column label="å½åå®¡æ ¸çº§å«" width="180" align="center" prop="flowlevel"> @@ -280,7 +280,7 @@ </el-select> </template> </el-table-column>--> <el-table-column prop="amount" align="center" label="ç¨åéé¢" width="120" v-if="form.applytype != 3"> <el-table-column prop="amount" align="right" header-align="right" label="ç¨åéé¢" width="120" v-if="form.applytype != 3" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-select v-model="scope.row.amount" placeholder="ç¨åéé¢" clearable filterable allow-create @change="selectamount(scope.row)"> @@ -289,15 +289,15 @@ </el-select> </template> </el-table-column> <el-table-column prop="vatAmount" align="center" label="å¢å¼ç¨" width="120" v-if="form.applytype != '3'" /> <el-table-column prop="cityTaxAmount" align="center" label="å建ç¨" width="120" v-if="form.applytype != '3'" /> <el-table-column prop="laborPretaxAmount" align="center" label="å³å¡ç¨å" width="120" v-if="form.applytype != '3'" /> <el-table-column prop="taxamount" align="center" label="å³å¡ä¸ªç¨" width="120" v-if="form.applytype != '3'"> <el-table-column prop="vatAmount" align="right" header-align="right" label="å¢å¼ç¨" width="120" v-if="form.applytype != '3'" / class-name="money-column" :formatter="formatMoney"> <el-table-column prop="cityTaxAmount" align="right" header-align="right" label="å建ç¨" width="120" v-if="form.applytype != '3'" / class-name="money-column" :formatter="formatMoney"> <el-table-column prop="laborPretaxAmount" align="right" header-align="right" label="å³å¡ç¨å" width="120" v-if="form.applytype != '3'" / class-name="money-column" :formatter="formatMoney"> <el-table-column prop="taxamount" align="right" header-align="right" label="å³å¡ä¸ªç¨" width="120" v-if="form.applytype != '3'" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.taxamount" placeholder="å³å¡ä¸ªç¨" /> </template> </el-table-column> <el-table-column prop="taxedamount" align="center" label="å³å¡ç¨å" width="120" v-if="form.applytype != '3'"> <el-table-column prop="taxedamount" align="right" header-align="right" label="å³å¡ç¨å" width="120" v-if="form.applytype != '3'" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.taxedamount" placeholder="å³å¡ç¨å" /> </template> @@ -322,7 +322,7 @@ </template> </el-table-column> <el-table-column prop="amount" align="center" label="éé¢" width="120" v-if="form.applytype == '3'"> <el-table-column prop="amount" align="right" header-align="right" label="éé¢" width="120" v-if="form.applytype == '3'" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.amount" placeholder="ä»·æ ¼" /> </template> src/views/project/fundcheck/performanceCheck/index.vue
@@ -64,7 +64,7 @@ </template> </el-table-column> <el-table-column label="ç»å人" align="center" prop="username" width="90px" /> <el-table-column label="ç³è¯·éé¢" align="center" prop="pretaxcost" width="120px" /> <el-table-column label="ç³è¯·éé¢" align="right" header-align="right" prop="pretaxcost" width="120px" / class-name="money-column" :formatter="formatMoney"> <el-table-column label="绩æç±»å" width="150px" align="center" prop="Performancetype"> <template slot-scope="scope"> <dict-tag :options="dict.type.sys_performance_type" :value="scope.row.Performancetype" /> src/views/project/tallage/computingBill/index.vue
@@ -148,7 +148,7 @@ align="center" fixed label="åºå·" width="120" width="60" > </el-table-column> <el-table-column @@ -161,7 +161,7 @@ <template slot-scope="scope"> <el-input v-model="scope.row.donorname" placeholder="æ¡ä¾æç®è " placeholder="æç®è " :disabled="true" /> </template> @@ -185,7 +185,7 @@ prop="deptmentname" align="center" label="æå±ç»å«" width="280" width="150" > <template slot-scope="scope"> <el-input @@ -199,7 +199,7 @@ prop="applyTime" align="center" label="ç³è¯·æ¥æ" width="200" width="150" > <template slot-scope="scope"> <el-date-picker @@ -215,7 +215,7 @@ </el-date-picker> </template> </el-table-column> <el-table-column prop="pretaxcost" align="center" label="ç¨åéé¢"> <el-table-column prop="pretaxcost" align="right" label="ç¨åéé¢" width="120" header-align="right" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.pretaxcost" @@ -224,7 +224,7 @@ /> </template> </el-table-column> <el-table-column prop="vatCost" align="center" label="å¢å¼ç¨"> <el-table-column prop="vatCost" align="right" label="å¢å¼ç¨" width="120" header-align="right" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.vatCost" @@ -233,7 +233,7 @@ /> </template> </el-table-column> <el-table-column prop="cityTaxCost" align="center" label="å建ç¨"> <el-table-column prop="cityTaxCost" align="right" label="å建ç¨" width="120" header-align="right" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.cityTaxCost" @@ -242,7 +242,7 @@ /> </template> </el-table-column> <el-table-column prop="laborPretaxCost" align="center" label="å³å¡ç¨å"> <el-table-column prop="laborPretaxCost" align="right" label="å³å¡ç¨å" width="120" header-align="right" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.laborPretaxCost" @@ -251,7 +251,7 @@ /> </template> </el-table-column> <el-table-column label="å³å¡ä¸ªç¨" align="center" prop="taxcost"> <el-table-column label="å³å¡ä¸ªç¨" prop="taxcost" width="120" align="right" header-align="right" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.taxcost" @@ -261,7 +261,7 @@ </template> </el-table-column> <el-table-column prop="taxedcost" align="center" label="å³å¡ç¨å"> <el-table-column prop="taxedcost" label="å³å¡ç¨å" width="120" align="right" header-align="right" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input @blur="chargeSum" @@ -450,37 +450,37 @@ prop="pretaxcost" label="ç¨åéé¢" show-overflow-tooltip > align="right" header-align="right" class-name="money-column" :formatter="formatMoney"> </el-table-column> <el-table-column prop="vatCost" label="å¢å¼ç¨" show-overflow-tooltip > align="right" header-align="right" class-name="money-column" :formatter="formatMoney"> </el-table-column> <el-table-column prop="cityTaxCost" label="å建ç¨" show-overflow-tooltip > align="right" header-align="right" class-name="money-column" :formatter="formatMoney"> </el-table-column> <el-table-column prop="laborPretaxCost" label="å³å¡ç¨å" show-overflow-tooltip > align="right" header-align="right" class-name="money-column" :formatter="formatMoney"> </el-table-column> <el-table-column prop="taxcost" label="å³å¡ä¸ªç¨" show-overflow-tooltip > align="right" header-align="right" class-name="money-column" :formatter="formatMoney"> </el-table-column> <el-table-column prop="taxedcost" label="å³å¡ç¨å" show-overflow-tooltip > align="right" header-align="right" class-name="money-column" :formatter="formatMoney"> </el-table-column> <el-table-column prop="remark" src/views/project/tallage/index.vue
@@ -97,13 +97,13 @@ prop="applyno" /> <el-table-column label="ç¨åéé¢" align="center" prop="pretaxamount" width="110" > <el-table-column label="ç¨åéé¢" align="right" header-align="right" prop="pretaxamount" width="110" class-name="money-column" :formatter="formatMoney"> </el-table-column> <el-table-column label="å¢å¼ç¨" align="center" prop="vatAmount" width="100" /> <el-table-column label="å建ç¨" align="center" prop="cityTaxAmount" width="100" /> <el-table-column label="å³å¡ç¨å" align="center" prop="laborPretaxAmount" width="110" /> <el-table-column label="å³å¡ä¸ªç¨" align="center" prop="taxMoney" width="100" /> <el-table-column label="å³å¡ç¨å" align="center" prop="taxedamount" width="100" /> <el-table-column label="å¢å¼ç¨" align="right" header-align="right" prop="vatAmount" width="100" / class-name="money-column" :formatter="formatMoney"> <el-table-column label="å建ç¨" align="right" header-align="right" prop="cityTaxAmount" width="100" / class-name="money-column" :formatter="formatMoney"> <el-table-column label="å³å¡ç¨å" align="right" header-align="right" prop="laborPretaxAmount" width="110" / class-name="money-column" :formatter="formatMoney"> <el-table-column label="å³å¡ä¸ªç¨" align="right" header-align="right" prop="taxMoney" width="100" / class-name="money-column" :formatter="formatMoney"> <el-table-column label="å³å¡ç¨å" align="right" header-align="right" prop="taxedamount" width="100" / class-name="money-column" :formatter="formatMoney"> <el-table-column label="æ¯å¦ç®ç¨" align="center" prop="istax" width="90" > <template slot-scope="scope"> <dict-tag @@ -112,7 +112,7 @@ /> </template> </el-table-column> <!-- <el-table-column label="æ»éé¢" align="center" prop="taxamount" /> --> <!-- <el-table-column label="æ»éé¢" align="right" header-align="right" prop="taxamount" / class-name="money-column" :formatter="formatMoney"> --> <el-table-column label="ç®ç¨æ¶é´" align="center" prop="taxedtime" /> <el-table-column label="仿¬¾ç¶æ" align="center" prop="isdistribute" width="100" > src/views/project/travelexpenseapply/index.vue
@@ -92,7 +92,7 @@ <!-- <el-table-column label="åºå·®äºº" width="180" align="center" prop="travelers"> </el-table-column>--> <el-table-column label="æ¥ééé¢" width="120" align="center" prop="amountrequested"> <el-table-column label="æ¥ééé¢" width="120" align="right" header-align="right" prop="amountrequested" class-name="money-column" :formatter="formatMoney"> </el-table-column> <el-table-column label="æå±ç»å«" width="120" align="center" prop="deptmentname" /> <el-table-column label="ç»é¿" width="100" align="center" prop="managername" /> @@ -552,7 +552,7 @@ <el-input v-model="scope.row.bankcardno" placeholder="é¶è¡å¡å·" /> </template> </el-table-column> <el-table-column prop="amount" slot="" label="ææ¬¾éé¢" align="center" fixed width="130"> <el-table-column prop="amount" slot="" label="ææ¬¾éé¢" align="right" header-align="right" fixed width="130" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.amount" placeholder="ææ¬¾éé¢" /> </template> src/views/project/travelexpenseapply/travelexpensedetail/index.vue
@@ -55,11 +55,11 @@ </el-select> </el-form-item> </el-col> <el-col :span="4"> <!-- <el-col :span="4"> <div style="margin-left: 10px;"> <dict-tag :options="dict.type.sys_DonationStatus" :value="form.invoicecount" /> </div> </el-col> </el-col> --> </el-row> <el-row style="margin-top: 10px"> <el-col :span="5"> @@ -182,7 +182,7 @@ <el-row> <el-table :data="rbDetails" ref="table" border max-height="800" highlight-current-row :summary-method="getSummaries" show-summary> <el-table-column prop="orderno" slot="" label="åºå·" align="center" fixed width="88"> <el-table-column prop="orderno" slot="" label="åºå·" align="center" fixed width="60"> <template slot-scope="scope"> <el-input v-model="scope.row.orderno" placeholder="åºå·" /> </template> @@ -199,7 +199,7 @@ </template> </el-table-column> <el-table-column prop="persontype" slot="" label="人åç±»å«" align="center" fixed width="130"> <el-table-column prop="persontype" slot="" label="人åç±»å«" align="center" fixed width="120"> <template slot-scope="scope"> <el-select v-model="scope.row.persontype" value-key="value" placeholder="人åç±»å«" @change="getPersons(scope.row)"> @@ -265,7 +265,7 @@ </el-select> </template> </el-table-column> <el-table-column prop="days" label="天æ°" width="100" align="center"> <el-table-column prop="days" label="天æ°" width="70" align="center"> <template slot-scope="scope"> <el-input v-model="scope.row.days" @blur="getallowance(scope.row)" placeholder="天æ°" /> </template> @@ -372,7 +372,7 @@ <el-input v-model="scope.row.total" placeholder="å计" /> </template> </el-table-column> <el-table-column fixed="right" label="æä½" align="center" width="120"> <el-table-column fixed="right" label="æä½" align="center" width="180"> <template slot-scope="scope"> <el-button type="text" size="mini" @click="addDetailRow(scope.$index)" v-if="operationType == 'edit'">æ°å¢</el-button> @@ -392,7 +392,7 @@ <el-row style="margin-top: 5px"> <el-table :data="rbPayees" border max-height="400" highlight-current-row :summary-method="getSummaries" show-summary> <el-table-column prop="orderno" slot="" label="åºå·" align="center" fixed width="65"> <el-table-column prop="orderno" slot="" label="åºå·" align="center" fixed width="60"> <template slot-scope="scope"> <el-input v-model="scope.row.orderno" placeholder="åºå·" /> </template> @@ -410,7 +410,7 @@ </template> </el-table-column> <el-table-column prop="persontype" slot="" label="æ¶æ¬¾äººç±»å«" align="center" fixed width="150"> <el-table-column prop="persontype" slot="" label="æ¶æ¬¾äººç±»å«" align="center" fixed width="120"> <template slot-scope="scope"> <el-select v-model="scope.row.persontype" value-key="value" placeholder="æ¶æ¬¾äººç±»å«" @change="getPersons(scope.row)"> @@ -419,7 +419,7 @@ </el-select> </template> </el-table-column> <el-table-column prop="personname" slot="" label="æ¶æ¬¾äºº" align="center" fixed width="200"> <el-table-column prop="personname" slot="" label="æ¶æ¬¾äºº" align="center" fixed width="240"> <template slot-scope="scope"> <el-select v-model="scope.row.personname" clearable filterable allow-create ref="getReportname" default-first-option placeholder="è¯·éæ©" @change="getAccountinfo2(scope.row, scope.row.persontype)"> @@ -428,17 +428,17 @@ </el-select> </template> </el-table-column> <el-table-column prop="bankname" slot="" label="æ¶æ¬¾é¶è¡" align="center" fixed width="250"> <el-table-column prop="bankname" slot="" label="æ¶æ¬¾é¶è¡" align="center" fixed width="300"> <template slot-scope="scope"> <el-input v-model="scope.row.bankname" placeholder="æ¶æ¬¾é¶è¡" /> </template> </el-table-column> <el-table-column prop="bankcardno" slot="" label="é¶è¡è´¦å·" align="center" fixed width="200"> <el-table-column prop="bankcardno" slot="" label="é¶è¡è´¦å·" align="center" fixed width="220"> <template slot-scope="scope"> <el-input v-model="scope.row.bankcardno" placeholder="é¶è¡è´¦å·" /> </template> </el-table-column> <el-table-column prop="amount" slot="" label="ææ¬¾éé¢" align="center" fixed width="130"> <el-table-column prop="amount" slot="" label="ææ¬¾éé¢" align="right" header-align="right" fixed width="130" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.amount" placeholder="ææ¬¾éé¢" /> </template> @@ -456,7 +456,7 @@ </el-date-picker> </template> </el-table-column>--> <el-table-column label="æä½" align="center" width="100" v-if="operationType == 'edit'"> <el-table-column label="æä½" align="center" width="150" v-if="operationType == 'edit'"> <template slot-scope="scope"> <el-button type="text" size="mini" @click="addPayeeRow(scope.$index)">æ°å¢</el-button> <el-button @click.native.prevent=" src/views/project/travelexpensecheck/index.vue
@@ -98,7 +98,7 @@ <span>{{ parseTime(scope.row.applyTime, "{y}-{m}-{d}") }}</span> </template> </el-table-column> <el-table-column label="æ¥ééé¢" width="120" align="center" prop="amountrequested" /> <el-table-column label="æ¥ééé¢" width="120" align="right" header-align="right" prop="amountrequested" / class-name="money-column" :formatter="formatMoney"> <el-table-column label="ç»å人" width="100" align="center" prop="username" /> <el-table-column label="ææé¢å®¡ç¶æ" width="140" align="center" prop="checkstatus"> <template slot-scope="scope"> @@ -538,7 +538,7 @@ <el-input v-model="scope.row.bankcardno" placeholder="é¶è¡å¡å·" /> </template> </el-table-column> <el-table-column prop="amount" slot="" label="ææ¬¾éé¢" align="center" fixed width="130"> <el-table-column prop="amount" slot="" label="ææ¬¾éé¢" align="right" header-align="right" fixed width="130" class-name="money-column" :formatter="formatMoney"> <template slot-scope="scope"> <el-input v-model="scope.row.amount" placeholder="ææ¬¾éé¢" /> </template>