add currency filter
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
import settings from "../lib/settings.js";
|
||||
|
||||
export default function ({ i18n }, value, currencyCode) {
|
||||
if (!value) {
|
||||
return value;
|
||||
}
|
||||
|
||||
value = value / 100;
|
||||
const currencyDisplayMode = settings.getCurrencyDisplayMode();
|
||||
|
||||
if (currencyDisplayMode === 'code') {
|
||||
return `${value} ${currencyCode}`;
|
||||
} else if (currencyDisplayMode === 'name') {
|
||||
const name = i18n.t(`currency.${currencyCode}`);
|
||||
return `${value} ${name}`;
|
||||
} else {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ const serverSettingsCookieKey = 'ACP_SETTINGS';
|
||||
|
||||
const defaultSettings = {
|
||||
lang: 'en',
|
||||
currencyDisplayMode: 'code', // or 'none' or 'name'
|
||||
animate: true,
|
||||
autoDarkMode: true
|
||||
};
|
||||
@@ -32,6 +33,10 @@ function getOriginalOption(key) {
|
||||
return getOriginalSettings()[key];
|
||||
}
|
||||
|
||||
function getOption(key) {
|
||||
return getFinalSettings()[key];
|
||||
}
|
||||
|
||||
function setOption(key, value) {
|
||||
if (!Object.prototype.hasOwnProperty.call(defaultSettings, key)) {
|
||||
return;
|
||||
@@ -61,6 +66,8 @@ function getServerSetting(key) {
|
||||
export default {
|
||||
getLanguage: () => getOriginalOption('lang'),
|
||||
setLanguage: value => setOption('lang', value),
|
||||
getCurrencyDisplayMode: () => getOption('currencyDisplayMode'),
|
||||
setCurrencyDisplayMode: value => setOption('currencyDisplayMode', value),
|
||||
isEnableAnimate: () => getOriginalOption('animate'),
|
||||
setEnableAnimate: value => setOption('animate', value),
|
||||
isEnableAutoDarkMode: () => getOriginalOption('autoDarkMode'),
|
||||
|
||||
@@ -229,6 +229,7 @@ export default {
|
||||
'Cancel': 'Cancel',
|
||||
'Close': 'Close',
|
||||
'Update': 'Update',
|
||||
'None': 'None',
|
||||
'Done': 'Done',
|
||||
'Continue': 'Continue',
|
||||
'Status': 'Status',
|
||||
@@ -287,6 +288,9 @@ export default {
|
||||
'Transfer': 'Transfer',
|
||||
'User Profile': 'User Profile',
|
||||
'Language': 'Language',
|
||||
'Currency Display Mode': 'Currency Display Mode',
|
||||
'Currency Code': 'Currency Code',
|
||||
'Currency Name': 'Currency Name',
|
||||
'Enable Animate': 'Enable Animate',
|
||||
'Enable Auto Dark Mode': 'Enable Auto Dark Mode',
|
||||
'You have been successfully registered': 'You have been successfully registered',
|
||||
|
||||
@@ -229,6 +229,7 @@ export default {
|
||||
'Cancel': '取消',
|
||||
'Close': '关闭',
|
||||
'Update': '更新',
|
||||
'None': '无',
|
||||
'Done': '完成',
|
||||
'Continue': '继续',
|
||||
'Status': '状态',
|
||||
@@ -287,6 +288,9 @@ export default {
|
||||
'Transfer': '转账',
|
||||
'User Profile': '用户信息',
|
||||
'Language': '语言',
|
||||
'Currency Display Mode': '货币显示模式',
|
||||
'Currency Code': '货币代码',
|
||||
'Currency Name': '货币名称',
|
||||
'Enable Animate': '启用动画',
|
||||
'Enable Auto Dark Mode': '启用自动深色模式',
|
||||
'You have been successfully registered': '注册成功',
|
||||
|
||||
@@ -19,6 +19,7 @@ import settings from './lib/settings.js';
|
||||
import services from './lib/services.js';
|
||||
import userstate from './lib/userstate.js';
|
||||
import utils from './lib/utils.js';
|
||||
import currencyFilter from './filters/currency.js';
|
||||
import App from './Mobile.vue';
|
||||
|
||||
Vue.use(VueI18n);
|
||||
@@ -139,6 +140,8 @@ Vue.prototype.$hideLoading = function () {
|
||||
Vue.prototype.$services = services;
|
||||
Vue.prototype.$user = userstate;
|
||||
|
||||
Vue.filter('currency', (value, currencyCode) => currencyFilter({ i18n }, value, currencyCode));
|
||||
|
||||
Vue.prototype.$setLanguage(settings.getLanguage() || getDefaultLanguage());
|
||||
|
||||
// refresh token if user is logined
|
||||
|
||||
@@ -19,6 +19,15 @@
|
||||
:value="locale">{{ lang.displayName }}</option>
|
||||
</select>
|
||||
</f7-list-item>
|
||||
<f7-list-item
|
||||
:title="$t('Currency Display Mode')"
|
||||
smart-select :smart-select-params="{ openIn: 'sheet', closeOnSelect: true, sheetCloseLinkText: $t('Done') }">
|
||||
<select v-model="currencyDisplayMode">
|
||||
<option value="none">{{ $t('None') }}</option>
|
||||
<option value="code">{{ $t('Currency Code') }}</option>
|
||||
<option value="name">{{ $t('Currency Name') }}</option>
|
||||
</select>
|
||||
</f7-list-item>
|
||||
<f7-list-item>
|
||||
<span>{{ $t('Enable Animate') }}</span>
|
||||
<f7-toggle :checked="isEnableAnimate" @toggle:change="isEnableAnimate = $event"></f7-toggle>
|
||||
@@ -58,6 +67,14 @@ export default {
|
||||
this.$setLanguage(value);
|
||||
}
|
||||
},
|
||||
currencyDisplayMode: {
|
||||
get: function () {
|
||||
return this.$settings.getCurrencyDisplayMode();
|
||||
},
|
||||
set: function (value) {
|
||||
this.$settings.setCurrencyDisplayMode(value);
|
||||
}
|
||||
},
|
||||
isEnableAnimate: {
|
||||
get: function () {
|
||||
return this.$settings.isEnableAnimate();
|
||||
|
||||
Reference in New Issue
Block a user