日常更新
This commit is contained in:
@@ -5,10 +5,8 @@
|
||||
// - 其他币种: 最多6位小数
|
||||
// 返回 { text, truncated, full }
|
||||
|
||||
export function getMaxDecimalsByCoin(coin) {
|
||||
const c = (coin || '').toString().toUpperCase();
|
||||
if (c === 'ETH') return 8;
|
||||
// USDT 与其他币种都按 6 位
|
||||
export function getMaxDecimalsByCoin() {
|
||||
// 全站统一:最多 6 位小数
|
||||
return 6;
|
||||
}
|
||||
|
||||
@@ -36,3 +34,8 @@ export function truncateAmountByCoin(value, coin) {
|
||||
return truncateAmountRaw(value, max);
|
||||
}
|
||||
|
||||
// 默认 6 位截断(非币种语境也可复用)
|
||||
export function truncateTo6(value) {
|
||||
return truncateAmountRaw(value, 6);
|
||||
}
|
||||
|
||||
|
||||
@@ -43,17 +43,94 @@
|
||||
<el-table-column prop="miner" label="机器编号" />
|
||||
<el-table-column prop="algorithm" label="算法" />
|
||||
|
||||
<el-table-column prop="powerDissipation" label="功耗(kw/h)" />
|
||||
<el-table-column prop="theoryPower" label="理论算力" >
|
||||
<template #default="scope">{{ scope.row.theoryPower }} <span v-show="scope.row.theoryPower">{{ scope.row.unit }}</span></template>
|
||||
<el-table-column prop="powerDissipation" label="功耗(kw/h)">
|
||||
<template #default="scope">
|
||||
<span class="num-strong">
|
||||
<el-tooltip
|
||||
v-if="formatNum6(scope.row.powerDissipation).truncated"
|
||||
:content="formatNum6(scope.row.powerDissipation).full"
|
||||
placement="top"
|
||||
>
|
||||
<span>
|
||||
{{ formatNum6(scope.row.powerDissipation).text }}
|
||||
<i class="el-icon-more amount-more"></i>
|
||||
</span>
|
||||
</el-tooltip>
|
||||
<span v-else>{{ formatNum6(scope.row.powerDissipation).text }}</span>
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="theoryPower" label="理论算力">
|
||||
<template #default="scope">
|
||||
<span class="num-strong">
|
||||
<el-tooltip
|
||||
v-if="formatNum6(scope.row.theoryPower).truncated"
|
||||
:content="formatNum6(scope.row.theoryPower).full"
|
||||
placement="top"
|
||||
>
|
||||
<span>
|
||||
{{ formatNum6(scope.row.theoryPower).text }}
|
||||
<i class="el-icon-more amount-more"></i>
|
||||
</span>
|
||||
</el-tooltip>
|
||||
<span v-else>{{ formatNum6(scope.row.theoryPower).text }}</span>
|
||||
</span>
|
||||
<span v-show="scope.row.theoryPower"> {{ scope.row.unit }} </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="computingPower" label="实际算力">
|
||||
<template #default="scope">{{ scope.row.computingPower }} <span v-show="scope.row.computingPower">{{ scope.row.unit }}</span></template>
|
||||
<template #default="scope">
|
||||
<span class="num-strong">
|
||||
<el-tooltip
|
||||
v-if="formatNum6(scope.row.computingPower).truncated"
|
||||
:content="formatNum6(scope.row.computingPower).full"
|
||||
placement="top"
|
||||
>
|
||||
<span>
|
||||
{{ formatNum6(scope.row.computingPower).text }}
|
||||
<i class="el-icon-more amount-more"></i>
|
||||
</span>
|
||||
</el-tooltip>
|
||||
<span v-else>{{ formatNum6(scope.row.computingPower).text }}</span>
|
||||
</span>
|
||||
<span v-show="scope.row.computingPower"> {{ scope.row.unit }} </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="theoryIncome" label="单机理论收入(每日/币种)">
|
||||
<template #default="scope">{{ scope.row.theoryIncome }} <span v-show="scope.row.coin">{{ toUpperText(scope.row.coin) }}</span></template>
|
||||
<template #default="scope">
|
||||
<span class="num-strong">
|
||||
<el-tooltip
|
||||
v-if="formatNum6(scope.row.theoryIncome).truncated"
|
||||
:content="formatNum6(scope.row.theoryIncome).full"
|
||||
placement="top"
|
||||
>
|
||||
<span>
|
||||
{{ formatNum6(scope.row.theoryIncome).text }}
|
||||
<i class="el-icon-more amount-more"></i>
|
||||
</span>
|
||||
</el-tooltip>
|
||||
<span v-else>{{ formatNum6(scope.row.theoryIncome).text }}</span>
|
||||
</span>
|
||||
<span v-show="scope.row.coin"> {{ toUpperText(scope.row.coin) }} </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="theoryUsdtIncome" label="单机理论收入(每日/USDT)">
|
||||
<template #default="scope">
|
||||
<span class="num-strong">
|
||||
<el-tooltip
|
||||
v-if="formatNum6(scope.row.theoryUsdtIncome).truncated"
|
||||
:content="formatNum6(scope.row.theoryUsdtIncome).full"
|
||||
placement="top"
|
||||
>
|
||||
<span>
|
||||
{{ formatNum6(scope.row.theoryUsdtIncome).text }}
|
||||
<i class="el-icon-more amount-more"></i>
|
||||
</span>
|
||||
</el-tooltip>
|
||||
<span v-else>{{ formatNum6(scope.row.theoryUsdtIncome).text }}</span>
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="theoryUsdtIncome" label="单机理论收入(每日/USDT)"/>
|
||||
<!-- <el-table-column prop="state" label="状态" min-width="100" >
|
||||
<template #default="scope">
|
||||
<el-tag :type="scope.row.state === 1 ? 'info' : 'success'">
|
||||
@@ -199,7 +276,20 @@
|
||||
<div class="summary-actions" style="margin-top:16px;display:flex;gap:12px;justify-content:flex-end;">
|
||||
<div class="summary-inline" style="color:#666;">
|
||||
已选机器:<b>{{ selectedMachineCount }}</b> 台
|
||||
<span style="margin-left:12px;">金额合计(USDT):<b>{{ formatTrunc(selectedTotal, 2) }}</b></span>
|
||||
<span style="margin-left:12px;">金额合计(USDT):</span>
|
||||
<span class="price-strong">
|
||||
<el-tooltip
|
||||
v-if="formatAmount(selectedTotal, 'USDT').truncated"
|
||||
:content="formatAmount(selectedTotal, 'USDT').full"
|
||||
placement="top"
|
||||
>
|
||||
<span>
|
||||
{{ formatAmount(selectedTotal, 'USDT').text }}
|
||||
<i class="el-icon-more amount-more"></i>
|
||||
</span>
|
||||
</el-tooltip>
|
||||
<span v-else>{{ formatAmount(selectedTotal, 'USDT').text }}</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="actions-inline" style="display:flex;gap:12px;">
|
||||
<el-button type="danger" :disabled="!selectedMachineCount" @click="handleRemoveSelectedMachines">删除所选机器</el-button>
|
||||
@@ -401,7 +491,7 @@
|
||||
<script>
|
||||
import { getGoodsList, deleteBatchGoods as apiDeleteBatchGoods ,deleteBatchGoodsForIsDelete} from '../../api/shoppingCart'
|
||||
import { addOrders,cancelOrder,getOrdersByIds,getOrdersByStatus , getChainAndListForSeller,getCoinPrice } from '../../api/order'
|
||||
import { truncateAmountByCoin } from '../../utils/amount'
|
||||
import { truncateAmountByCoin, truncateTo6 } from '../../utils/amount'
|
||||
|
||||
export default {
|
||||
name: 'Cart',
|
||||
@@ -526,6 +616,14 @@ export default {
|
||||
formatAmount(value, coin) {
|
||||
return truncateAmountByCoin(value, coin)
|
||||
},
|
||||
/**
|
||||
* 数值格式化(最多6位小数,截断不四舍五入,不补0)
|
||||
* @param {number|string} value
|
||||
* @returns {{text:string,truncated:boolean,full:string}}
|
||||
*/
|
||||
formatNum6(value) {
|
||||
return truncateTo6(value)
|
||||
},
|
||||
/**
|
||||
* 将金额转为整分整数,避免浮点误差
|
||||
* @param {number|string} v
|
||||
@@ -1922,6 +2020,11 @@ export default {
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
.num-strong {
|
||||
font-weight: inherit;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
|
||||
::v-deep .el-input__prefix, .el-input__suffix{
|
||||
top:24%;
|
||||
|
||||
@@ -3,7 +3,7 @@ import { getProductById } from '../../utils/productService'
|
||||
import { addToCart } from '../../utils/cartManager'
|
||||
import { getMachineInfo, getPayTypes } from '../../api/products'
|
||||
import { addCart, getGoodsList } from '../../api/shoppingCart'
|
||||
import { truncateAmountByCoin } from '../../utils/amount'
|
||||
import { truncateAmountByCoin, truncateTo6 } from '../../utils/amount'
|
||||
|
||||
export default {
|
||||
name: 'ProductDetail',
|
||||
@@ -174,6 +174,10 @@ export default {
|
||||
formatAmount(value, coin) {
|
||||
return truncateAmountByCoin(value, coin)
|
||||
},
|
||||
// 数值格式化:最多6位小数,截断不补0
|
||||
formatNum6(value) {
|
||||
return truncateTo6(value)
|
||||
},
|
||||
/**
|
||||
* 首次加载时,将“支付方式筛选”的默认选中值设为与价格列币种一致,
|
||||
* 并同步 filters.chain/filters.coin;仅执行一次,不触发额外查询。
|
||||
|
||||
@@ -136,7 +136,22 @@
|
||||
|
||||
|
||||
<el-table-column prop="theoryPower" label="理论算力" header-align="left" align="left" show-overflow-tooltip>
|
||||
<template #default="scope">{{ scope.row.theoryPower }} {{ scope.row.unit }}</template>
|
||||
<template #default="scope">
|
||||
<span class="num-strong">
|
||||
<el-tooltip
|
||||
v-if="formatNum6(scope.row.theoryPower).truncated"
|
||||
:content="formatNum6(scope.row.theoryPower).full"
|
||||
placement="top"
|
||||
>
|
||||
<span>
|
||||
{{ formatNum6(scope.row.theoryPower).text }}
|
||||
<i class="el-icon-more amount-more"></i>
|
||||
</span>
|
||||
</el-tooltip>
|
||||
<span v-else>{{ formatNum6(scope.row.theoryPower).text }}</span>
|
||||
</span>
|
||||
{{ scope.row.unit }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column header-align="left" align="left" show-overflow-tooltip>
|
||||
@@ -146,7 +161,22 @@
|
||||
<i class="sort-arrow" :class="[(sortStates && sortStates.powerSort) ? 'asc' : 'desc', activeSortField==='powerSort' ? 'active' : '']"></i>
|
||||
</span>
|
||||
</template>
|
||||
<template #default="scope">{{ scope.row.computingPower }} {{ scope.row.unit }}</template>
|
||||
<template #default="scope">
|
||||
<span class="num-strong">
|
||||
<el-tooltip
|
||||
v-if="formatNum6(scope.row.computingPower).truncated"
|
||||
:content="formatNum6(scope.row.computingPower).full"
|
||||
placement="top"
|
||||
>
|
||||
<span>
|
||||
{{ formatNum6(scope.row.computingPower).text }}
|
||||
<i class="el-icon-more amount-more"></i>
|
||||
</span>
|
||||
</el-tooltip>
|
||||
<span v-else>{{ formatNum6(scope.row.computingPower).text }}</span>
|
||||
</span>
|
||||
{{ scope.row.unit }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="powerDissipation" header-align="left" align="left">
|
||||
@@ -164,8 +194,39 @@
|
||||
单机理论收入(每日)
|
||||
<span v-if="getFirstCoinSymbol()">({{ getFirstCoinSymbol() }})</span>
|
||||
</template>
|
||||
<template #default="scope">
|
||||
<span class="num-strong">
|
||||
<el-tooltip
|
||||
v-if="formatNum6(scope.row.theoryIncome).truncated"
|
||||
:content="formatNum6(scope.row.theoryIncome).full"
|
||||
placement="top"
|
||||
>
|
||||
<span>
|
||||
{{ formatNum6(scope.row.theoryIncome).text }}
|
||||
<i class="el-icon-more amount-more"></i>
|
||||
</span>
|
||||
</el-tooltip>
|
||||
<span v-else>{{ formatNum6(scope.row.theoryIncome).text }}</span>
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="theoryUsdtIncome" label="单机理论收入(每日/USDT)" header-align="left" align="left">
|
||||
<template #default="scope">
|
||||
<span class="num-strong">
|
||||
<el-tooltip
|
||||
v-if="formatNum6(scope.row.theoryUsdtIncome).truncated"
|
||||
:content="formatNum6(scope.row.theoryUsdtIncome).full"
|
||||
placement="top"
|
||||
>
|
||||
<span>
|
||||
{{ formatNum6(scope.row.theoryUsdtIncome).text }}
|
||||
<i class="el-icon-more amount-more"></i>
|
||||
</span>
|
||||
</el-tooltip>
|
||||
<span v-else>{{ formatNum6(scope.row.theoryUsdtIncome).text }}</span>
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="theoryUsdtIncome" label="单机理论收入(每日/USDT)" header-align="left" align="left" />
|
||||
|
||||
<el-table-column prop="type" label="矿机型号" header-align="left" align="left" />
|
||||
<el-table-column label="最大可租赁(天)" header-align="left" align="left">
|
||||
@@ -228,13 +289,59 @@
|
||||
<div>
|
||||
<el-table :data="confirmAddDialog.items" height="360" border stripe :header-cell-style="{ textAlign: 'left' }" :cell-style="{ textAlign: 'left' }">
|
||||
<el-table-column prop="theoryPower" label="理论算力" header-align="left" align="left">
|
||||
<template #default="scope">{{ scope.row.theoryPower }} {{ scope.row.unit }}</template>
|
||||
<template #default="scope">
|
||||
<span class="num-strong">
|
||||
<el-tooltip
|
||||
v-if="formatNum6(scope.row.theoryPower).truncated"
|
||||
:content="formatNum6(scope.row.theoryPower).full"
|
||||
placement="top"
|
||||
>
|
||||
<span>
|
||||
{{ formatNum6(scope.row.theoryPower).text }}
|
||||
<i class="el-icon-more amount-more"></i>
|
||||
</span>
|
||||
</el-tooltip>
|
||||
<span v-else>{{ formatNum6(scope.row.theoryPower).text }}</span>
|
||||
</span>
|
||||
{{ scope.row.unit }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="实际算力" header-align="left" align="left">
|
||||
<template #default="scope">{{ scope.row.computingPower }} {{ scope.row.unit }}</template>
|
||||
<template #default="scope">
|
||||
<span class="num-strong">
|
||||
<el-tooltip
|
||||
v-if="formatNum6(scope.row.computingPower).truncated"
|
||||
:content="formatNum6(scope.row.computingPower).full"
|
||||
placement="top"
|
||||
>
|
||||
<span>
|
||||
{{ formatNum6(scope.row.computingPower).text }}
|
||||
<i class="el-icon-more amount-more"></i>
|
||||
</span>
|
||||
</el-tooltip>
|
||||
<span v-else>{{ formatNum6(scope.row.computingPower).text }}</span>
|
||||
</span>
|
||||
{{ scope.row.unit }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="algorithm" label="算法" width="120" header-align="left" align="left" />
|
||||
<el-table-column prop="powerDissipation" label="功耗(kw/h)" header-align="left" align="left" />
|
||||
<el-table-column prop="powerDissipation" label="功耗(kw/h)" header-align="left" align="left">
|
||||
<template #default="scope">
|
||||
<span class="num-strong">
|
||||
<el-tooltip
|
||||
v-if="formatNum6(scope.row.powerDissipation).truncated"
|
||||
:content="formatNum6(scope.row.powerDissipation).full"
|
||||
placement="top"
|
||||
>
|
||||
<span>
|
||||
{{ formatNum6(scope.row.powerDissipation).text }}
|
||||
<i class="el-icon-more amount-more"></i>
|
||||
</span>
|
||||
</el-tooltip>
|
||||
<span v-else>{{ formatNum6(scope.row.powerDissipation).text }}</span>
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="租赁天数(天)" header-align="left" align="left">
|
||||
<template #default="scope">{{ Number(scope.row.leaseTime || 1) }}</template>
|
||||
</el-table-column>
|
||||
@@ -627,6 +734,11 @@ export default {
|
||||
color: #e74c3c;
|
||||
}
|
||||
|
||||
.num-strong {
|
||||
font-weight: inherit;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
/* 支付方式区域(视觉更友好 + 可达性) */
|
||||
.pay-methods {
|
||||
display: flex;
|
||||
|
||||
Binary file not shown.
1
power_leasing/test/css/app.ca4b7f36.css
Normal file
1
power_leasing/test/css/app.ca4b7f36.css
Normal file
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>power_leasing</title><script defer="defer" src="/js/chunk-vendors.f4da7ffe.js"></script><script defer="defer" src="/js/app.d22501a6.js"></script><link href="/css/chunk-vendors.10dd4e95.css" rel="stylesheet"><link href="/css/app.c82f27e9.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but power_leasing doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
||||
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>power_leasing</title><script defer="defer" src="/js/chunk-vendors.f4da7ffe.js"></script><script defer="defer" src="/js/app.d49ccc2c.js"></script><link href="/css/chunk-vendors.10dd4e95.css" rel="stylesheet"><link href="/css/app.ca4b7f36.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but power_leasing doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
||||
2
power_leasing/test/js/app.d49ccc2c.js
Normal file
2
power_leasing/test/js/app.d49ccc2c.js
Normal file
File diff suppressed because one or more lines are too long
1
power_leasing/test/js/app.d49ccc2c.js.map
Normal file
1
power_leasing/test/js/app.d49ccc2c.js.map
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user