thienkimlove/nova-test-field

一个 Laravel Nova 字段。

dev-master 2020-05-31 17:17 UTC

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>