Anda perlu "membuat" * Komponen UI Anda sendiri. Anda dapat melakukan ini dengan memperluas Komponen UI Tanggal.
# 1 Tambahkan XML ke formulir Anda
Tambahkan bidang ke bidang pengaturan. Dalam contoh ini, komponen yang akan kita buat dipanggil time. Perhatikan bahwa Anda dapat mendeklarasikan templatedalam XML berikut. Namun, itu tidak benar-benar ada gunanya karena itu adalah template XHTML yang akan membungkus template Knockout yang melakukan rendering yang sebenarnya. Ada node lain yang bisa Anda nyatakan di sini seperti validasi.
<field name="time_field">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="label" xsi:type="string" translate="true">Time</item>
<item name="dataType" xsi:type="string">text</item>
<item name="formElement" xsi:type="string">date</item>
<item name="dataScope" xsi:type="string">time_field</item>
<item name="component" xsi:type="string">Your_Module/js/form/element/time</item>
</item>
</argument>
</field>
# 2 Buat Komponen UI
// app/code/Your/Module/view/adminhtml/web/js/form/element/time.js
define([
'Magento_Ui/js/form/element/date'
], function(Date) {
'use strict';
return Date.extend({
defaults: {
options: {
showsDate: false,
showsTime: true,
timeOnly: true
},
elementTmpl: 'ui/form/element/date'
}
});
});
Beberapa catatan tentang Javascript di atas:
elementTmpltidak perlu. Namun, jika Anda ingin menyesuaikan template (saat ini module-ui/view/base/web/templates/form/element/date.html), buat saja template Anda sendiri dan rujuk dengan elementTmpl.
Ada lebih banyak opsi untuk input. Anda dapat menemukan lebih banyak tentang mereka: http://trentrichardson.com/examples/timepicker/#tp-options . Dalam kode, ada daftar semua default di sini:/lib/web/jquery/jquery-ui-timepicker-addon.js
Hasil akhir:

- Pada titik ini, saya tidak percaya adalah mungkin untuk mendeklarasikan Komponen UI Anda sendiri dengan cara yang mirip dengan itu
definitions.xml. Namun, Anda dapat memperpanjangnya dengan sedikit usaha. (Dan, jika ada jalan, tolong beri tahu saya).