mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-18 08:44:25 +08:00
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 = {
|
const defaultSettings = {
|
||||||
lang: 'en',
|
lang: 'en',
|
||||||
|
currencyDisplayMode: 'code', // or 'none' or 'name'
|
||||||
animate: true,
|
animate: true,
|
||||||
autoDarkMode: true
|
autoDarkMode: true
|
||||||
};
|
};
|
||||||
@@ -32,6 +33,10 @@ function getOriginalOption(key) {
|
|||||||
return getOriginalSettings()[key];
|
return getOriginalSettings()[key];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getOption(key) {
|
||||||
|
return getFinalSettings()[key];
|
||||||
|
}
|
||||||
|
|
||||||
function setOption(key, value) {
|
function setOption(key, value) {
|
||||||
if (!Object.prototype.hasOwnProperty.call(defaultSettings, key)) {
|
if (!Object.prototype.hasOwnProperty.call(defaultSettings, key)) {
|
||||||
return;
|
return;
|
||||||
@@ -61,6 +66,8 @@ function getServerSetting(key) {
|
|||||||
export default {
|
export default {
|
||||||
getLanguage: () => getOriginalOption('lang'),
|
getLanguage: () => getOriginalOption('lang'),
|
||||||
setLanguage: value => setOption('lang', value),
|
setLanguage: value => setOption('lang', value),
|
||||||
|
getCurrencyDisplayMode: () => getOption('currencyDisplayMode'),
|
||||||
|
setCurrencyDisplayMode: value => setOption('currencyDisplayMode', value),
|
||||||
isEnableAnimate: () => getOriginalOption('animate'),
|
isEnableAnimate: () => getOriginalOption('animate'),
|
||||||
setEnableAnimate: value => setOption('animate', value),
|
setEnableAnimate: value => setOption('animate', value),
|
||||||
isEnableAutoDarkMode: () => getOriginalOption('autoDarkMode'),
|
isEnableAutoDarkMode: () => getOriginalOption('autoDarkMode'),
|
||||||
|
|||||||
@@ -229,6 +229,7 @@ export default {
|
|||||||
'Cancel': 'Cancel',
|
'Cancel': 'Cancel',
|
||||||
'Close': 'Close',
|
'Close': 'Close',
|
||||||
'Update': 'Update',
|
'Update': 'Update',
|
||||||
|
'None': 'None',
|
||||||
'Done': 'Done',
|
'Done': 'Done',
|
||||||
'Continue': 'Continue',
|
'Continue': 'Continue',
|
||||||
'Status': 'Status',
|
'Status': 'Status',
|
||||||
@@ -287,6 +288,9 @@ export default {
|
|||||||
'Transfer': 'Transfer',
|
'Transfer': 'Transfer',
|
||||||
'User Profile': 'User Profile',
|
'User Profile': 'User Profile',
|
||||||
'Language': 'Language',
|
'Language': 'Language',
|
||||||
|
'Currency Display Mode': 'Currency Display Mode',
|
||||||
|
'Currency Code': 'Currency Code',
|
||||||
|
'Currency Name': 'Currency Name',
|
||||||
'Enable Animate': 'Enable Animate',
|
'Enable Animate': 'Enable Animate',
|
||||||
'Enable Auto Dark Mode': 'Enable Auto Dark Mode',
|
'Enable Auto Dark Mode': 'Enable Auto Dark Mode',
|
||||||
'You have been successfully registered': 'You have been successfully registered',
|
'You have been successfully registered': 'You have been successfully registered',
|
||||||
|
|||||||
@@ -229,6 +229,7 @@ export default {
|
|||||||
'Cancel': '取消',
|
'Cancel': '取消',
|
||||||
'Close': '关闭',
|
'Close': '关闭',
|
||||||
'Update': '更新',
|
'Update': '更新',
|
||||||
|
'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 Code': '货币代码',
|
||||||
|
'Currency Name': '货币名称',
|
||||||
'Enable Animate': '启用动画',
|
'Enable Animate': '启用动画',
|
||||||
'Enable Auto Dark Mode': '启用自动深色模式',
|
'Enable Auto Dark Mode': '启用自动深色模式',
|
||||||
'You have been successfully registered': '注册成功',
|
'You have been successfully registered': '注册成功',
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import settings from './lib/settings.js';
|
|||||||
import services from './lib/services.js';
|
import services from './lib/services.js';
|
||||||
import userstate from './lib/userstate.js';
|
import userstate from './lib/userstate.js';
|
||||||
import utils from './lib/utils.js';
|
import utils from './lib/utils.js';
|
||||||
|
import currencyFilter from './filters/currency.js';
|
||||||
import App from './Mobile.vue';
|
import App from './Mobile.vue';
|
||||||
|
|
||||||
Vue.use(VueI18n);
|
Vue.use(VueI18n);
|
||||||
@@ -139,6 +140,8 @@ Vue.prototype.$hideLoading = function () {
|
|||||||
Vue.prototype.$services = services;
|
Vue.prototype.$services = services;
|
||||||
Vue.prototype.$user = userstate;
|
Vue.prototype.$user = userstate;
|
||||||
|
|
||||||
|
Vue.filter('currency', (value, currencyCode) => currencyFilter({ i18n }, value, currencyCode));
|
||||||
|
|
||||||
Vue.prototype.$setLanguage(settings.getLanguage() || getDefaultLanguage());
|
Vue.prototype.$setLanguage(settings.getLanguage() || getDefaultLanguage());
|
||||||
|
|
||||||
// refresh token if user is logined
|
// refresh token if user is logined
|
||||||
|
|||||||
@@ -19,6 +19,15 @@
|
|||||||
:value="locale">{{ lang.displayName }}</option>
|
:value="locale">{{ lang.displayName }}</option>
|
||||||
</select>
|
</select>
|
||||||
</f7-list-item>
|
</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>
|
<f7-list-item>
|
||||||
<span>{{ $t('Enable Animate') }}</span>
|
<span>{{ $t('Enable Animate') }}</span>
|
||||||
<f7-toggle :checked="isEnableAnimate" @toggle:change="isEnableAnimate = $event"></f7-toggle>
|
<f7-toggle :checked="isEnableAnimate" @toggle:change="isEnableAnimate = $event"></f7-toggle>
|
||||||
@@ -58,6 +67,14 @@ export default {
|
|||||||
this.$setLanguage(value);
|
this.$setLanguage(value);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
currencyDisplayMode: {
|
||||||
|
get: function () {
|
||||||
|
return this.$settings.getCurrencyDisplayMode();
|
||||||
|
},
|
||||||
|
set: function (value) {
|
||||||
|
this.$settings.setCurrencyDisplayMode(value);
|
||||||
|
}
|
||||||
|
},
|
||||||
isEnableAnimate: {
|
isEnableAnimate: {
|
||||||
get: function () {
|
get: function () {
|
||||||
return this.$settings.isEnableAnimate();
|
return this.$settings.isEnableAnimate();
|
||||||
|
|||||||
Reference in New Issue
Block a user