thienkimlove / nova-test-field
一个 Laravel Nova 字段。
Requires
- php: >=7.3.0
- brick/money: *
- symfony/intl: *
This package is auto-updated.
Last update: 2024-08-29 05:24:38 UTC
README
这是我正在开发的一个 Laravel\Nova 应用程序中的自定义货币字段。Nova 默认提供的货币字段并不完全符合我的需求,所以我最终创建了这一个。
- 支持小数单位(更新和显示)
- 以正确的货币符号和适当的地区格式显示金额
- 将货币符号添加到创建/更新字段中
安装
您可以通过 composer 将此包安装到您的 Nova 应用程序中
composer require everestmx/nova-money-field
使用
在您的 nova 资源文件中,将以下内容添加到您的 Fields 方法中
use Everestmx\NovaMoneyField\Money;
public function fields (Request $request)
{
return [
Money::make('Price'),
];
}
选项
您可以选择添加列名,如果与显示名称不同,则与任何 Nova 字段一样
Money::make('Price', 'price_column');
默认货币是 GBP,但可以使用 currency() 在每个字段中更改
Money::make('Price')->currency('USD');
默认地区是 Laravel 配置文件中设置的,但可以使用 locale() 在每个字段中更改
Money::make('Price')->locale('en_US');
默认情况下,我们假设您存储的值不是小数单位,但您可以使用 minor(true) 进行更改
Money::make('Price')->minor(true);
这将自动将所有输入值格式化为小数单位,所以请记得从您的模型中删除任何 Laravel 设置/获取属性方法!
高级
此包的默认设置(货币、地区等)在 src\Money.php 中的 'loadDefaults' 方法中加载
关于 Nova 包和一切。
- 为了使
composer update与 nova 包一起立即工作
我们应该首先获取最新提交的前 6 个字符。
并使用 composer require thienkimlove/nova-test-field:dev-master#78ff77
- 为了使 Laravel Nova 在编辑 nova 包后直接工作
cd ./vendor/laravel/nova
mv webpack.mix.js.dist webpack.mix.js
npm install
npm run dev
rm -rf node_modules
cd -
php artisan nova:publish
然后返回 ./vendor/laravel/nova 并运行 npm run watch
转到 packages 并运行
npm install
npm run dev or npm run watch
-
之后,我们可以从 Chrome 安装 vuedevtool。
-
将包添加到 Packagist
https://packagist.org.cn/packages/submit -
有关示例的链接,该示例尚未实现,但学到了很多
https://github.com/avarixe/myfifa-vue/blob/9ccb0e00efbad03c163cef5c0aa8b446e370660e/helpers/VMoneyField.vue
-
未实现
https://vuejs-tips.github.io/vue-the-mask/ -
Nova 关于 npm 的文档
Your Nova field contains a webpack.mix.js file, which is generated when Nova creates your field. You may build your field using the NPM dev and prod commands:
// Compile your assets for local development...
npm run dev
// Compile and minify your assets...
npm run prod
In addition, you may run the NPM watch command to auto-compile your assets when they are changed:
npm run watch
- 输入掩码 nova 但简单
https://github.com/wemersonrv/input-mask/blob/master/resources/js/components/FormField.vue
-
有关输入掩码的一切
https://github.com/RobinHerbots/Inputmask -
使用此
https://github.com/gnatishen/ticketService/blob/fa92060c7ab38b8a278411ca3b7dea875c1d839e/resources/js/components/ClientFormComponent.vue
- 未尝试
import Inputmask from "inputmask";
export default {
mounted() {
let parentSelector = this.$refs.ipInput
let selector = parentSelector.$el.children[1];
Inputmask({"mask": "999.999.999.999"}).mask(selector);
},
}
- 另一个
https://github.com/wemersonrv/input-mask/blob/master/resources/js/components/FormField.vue
https://novapackages.com/packages/everestmx/nova-money-field
- 重要
请注意,在编辑 nova 包的 github 代码后,
我们必须运行
npm run dev
npm run prod
以重建 field.js
之后,我们提交到 github 并使用提交哈希更新 composer
composer require thienkimlove/nova-test-field:dev-master#<commit-hash>