Formalar bo'limining asosiy funksionali web-sahifa foydalanuvchilari tomonidan ma'lumotlar kiritilishi uchun mo'ljallangan oyna shaklini yasash hisoblanadi.
Forma yaratish uchun Platon platformasi navigatsiya panelining Formalar bo'limiga o'tiladi. Ushbu ochilgan sahifada Platon platformasida ilgari ochilgan formalar ro'yxati aks etadi. Ushbu sahifa pastgi qismida joylashgan Qo'shish tugmasi bosiladi va quyidagi oyna ("forma") ochiladi:
Oyna quyidagi yacheykalardan iborat:
back
nomli maxsus url dan foydalaniladi; // misol uchun
test_post
// misol uchun
temp_guids
// misol uchun
seq_nimadur
// misol uchun
type_id=#type_id
// misol uchun
username
// misol uchun
reject_type_id
// misol uchun
2
// misol uchun
back
// misol uchun
Realsoft
Tillarni ozgartirish quyidagi yacheykalardan iborat:
// misol uchun
қўшиш
добавить
qo’shish
add
// misol uchun
тахрирлаш
изменить
tahrirlash
edit
// misol uchun
фойдаланувчи кўшиш
добавить пользователя
foydalanuvchi qo’shish
add user
// misol uchun
фойдаланувчи малумотини тахрирлаш
изменить информацию о пользователи
foydalanuvchi malumotlarini qo’shish
edit user
Sql formalari
// misol uchun
select int01 as region_id, int02 as district_id, int03 as sector_id, id as mahalla_id, 2022 as ayear
from lists
where id=#mahalla_id
// misol uchun
select l.total_sum, extract(month from now()) as month, m.name1 as mahalla
from credit_limits l
left join lists m on m.type_id=4 and m.state=1 and m.id=l.mahalla_id
where l.id=#id
// misol uchun
Realsoft
// misol uchun
call send_user_password_sms(@mobile_phone::bigint, @username, @raw.password);
insert into auth_users_groups (id, created_at, state, version, user_id, group_id) values (nextval('seq_user_group'), now(), 1, 1, @id, (case when #org_type=200 then 13 when #org_type=301 then 94 else 15 end))
// misol uchun
Realsoft
// misol uchun
call send_user_password_sms(@mobile_phone::bigint, @username, @raw.password);
// misol uchun
update auth_users set username=concat('user', @id) where id=@id
// misol uchun
Realsoft
// misol uchun
Realsoft
// misol uchun
Realsoft
JS / CSS
// misol uchun
$form.formElementsWithKey.open_sum.maxValue = $form.params.total_sum
});
// misol uchun
.platon-form[form-name="mahalla"] .card {
border: none;
}
.platon-form[form-name="mahalla"] .card-body {
padding: 0;
}
// misol uchun
$user.has_perm('platon.admin')
// misol uchun
$user.has_perm('platon.admin') || ($user.level ==1 && $user.bank_group_id == 1)
// misol uchun
$user.has_perm('platon.admin') || ($user.level ==1 && $user.bank_group_id == 1)
// misol uchun
$user.has_perm('platon.admin')
Forma yaratib olinganidan so'ng quyidagi oyna paydo bo'ladi:
Ushbu oynada quyidagi tugmalar mavjud:
Ushbu tugmani bosish orqali formaga kirilgan ma'lumotlar saqlanadi.
Ushbu tugmani bosish orqali forma shaklidan chiqib ketiladi.
Ushbu tugmadan formaga o'zgartirishlar kiritish uchun foydalaniladi.
Ushbu tugmadan formaga yangi elementlar (foydalanuvchi tomonidan ma'lumotlar kiritishga mo'ljallangan yacheykalar) qo'shish uchun foydalaniladi
Ushbu tugmani bosish orqali forma sahifasidagi barcha elementlar ro'yxatini ko'rish mimkin.
Ushbu tugmadan formaga yangi elementlar (foydalanuvchi tomonidan ma'lumotlar kiritishga mo'ljallangan yacheykalar) qo'shish uchun foydalaniladi. Ushbu tugma bosilganida quyidagi oyna ochiladi:
Oyna quyidagi yacheykalardan iborat:
fieldset
- elementlarni joylashtirish uchun yangi maydon shakllantirib beradi;text
- tekst kiritish uchun input yaratadi;raw_json
- faqat json turidagi ma'lumotlarni qabul qilish uchun ishlatiladi;number
- son (natural son) kiritish uchun input yaratadi;file
- fayllar qabul qilish uchun input yaratadi;image
- rasmlar qabul qilish uchun input yaratadi;button
- turli xil so'rovlarni yuborish uchun tugma yaratadi;date
- sanalarni qabul qilish uchun input yaratadi;select
- bir nechta ma'lumotlardan birini tanlash imkoniyatini beruvchi input yaratadi;time
- vaqtni qabul qilish uchun input yaratadi;multiselect
- bir nechta ma'lumotlarni tanlash imkoniyatini beruvchi input yaratadi;checkbox
- boolean turidagi ma'lumot qaytaradigan element yaratadi;textarea
- katta hajmdagi tekstlarni kiritish uchun input yaratadi(description uchun);phone
- telefon raqami formatidagi ma'lumotni kiritish uchun ishlatiladigan input;code
- turli xil dasturlash tilidagi kodni saqlash imkoniyatini beradi (js, html, css, sql
)html
- bu orqali hohlagan API ga so'rov yuborish va hohlagan ko'rinishdagi dizayn yaratish mumkin;geo
- ushbu element turi bo'yicha geopozitsiyani kiritish imkoniyati mavjud (map_center, map_zoom
). Bunda qaysi karta orqali tanlashni active_map
maydonida ko'rsatib ketiladi;geo polygon
- ushbu elementda turi bo'yicha bir nechta geopozitsiyani kiritish imkoniyati mavjud (map_center, map_zoom, is
). Bunda qaysi karta orqali tanlashni active_map
maydonida ko'rsatib ketiladi. Bundan tashqari bir nechta geopozitsiyalarni kiritish uchun is_multiple
tugmasi active holatga keltiriladi;simple key-value
- unikal qiymatlarni shakllantirish uchun qo'llaniladi;tab
- turli xil ma'lumotlarni sahifaviy joylashtirish uchun ishlatiladi;tab container
- sahifaviy joylashtirilgan ma'lumotlarni ma'lum bir ko'rinishda jamlash;markdown editor
, monaco_editor
, vue_editor
, wysiwyg
- kontentlarni tahrirlash;SELECT
not EXISTS (SELECT 1 FROM table_name WHERE name = @name)
Bu yerda agar kiritilayotgan name aval kiritlgan bo'lsa xatolik qaytaradi!
null
qiymatni saqlaydi;Platon formalarning JS qismiga JavaScript ES6 kodlari yoziladi vue emas
Ushbu funktsiya formadagi malumotlar saqlanishidan oldin ishladi. Odatda saqlashdan oldin inputlardagi ma'lumotlarni tekshirish , validatsiya qilish va boshqa turlixil maqsadlarda ishlatiladi. Masalan:
// Ishlatilishi.
this.beforeSave=()=>{
// javascript codlar
// ushbu funkisya ichidagam fetch apilarni o'zimiz hohlaganimizdak ishlatishimiz mumkin. Masalan:
// this.$api.get('api-url').then(res=>{})
return true
}
Agar beforeSave da retrun false qaytsa formadagi ma'lumotlar saqlanmaydi.
Ushbu funktisya yuqoridagi beforeSave
singari ishlaydi faqat formadagi ma'lumotlar saqlanganidan so'ng ishlaydi.
// Ishlatilishi
this.afterSave=(id)=>{
// bu yerda ham biz JavaScript kodlarimizni yozishimiz mumkin .
// id bu forma saqlangandagi malumotlar bazasiga tushgana qaytgan id
}
Ushbu metod platon formadagi inputlarga default ma'lumot yoki boshqa holatlarda ma'lumotlar yozish uchun ishlatiladi. Masalan:
$setVal('Data_field' , 'value')
// Data_field qaysi inputga ma'lumot yozishi kerakligi
// value yozilishi kerak bo'lgan ma'lumot
Ushbu metod formaning edit (taxrirlanayotgan) yoki yangi saqlanayotganligini tekshirishimiz uchun ishlatiladi. Ishlatilishi this.editId
. Masalan:
if(this.editId != null){
// Ushbu holatda ushbu forma edit yoki edit emasligini tekshirilmoqda
}
Platon formalarning edit (taxrirlash) oynasini ochish uchun linkda formadan so'ng id berish orqali ochishimiz mumkin. Masalan
forms/add_car/id
id yani formaning ID raqami.
$w orqali Platon formadagi inputlarning o'zgarishini ushlab olishimiz mumkin. Masalan username Data_field
inputini o'zgarganida qandaydir funktsiyani avtomatik ishlatmoqchi bo'lsak.
const testFunc = () => {
// odatiy JavaScript funktsiyasi
}
$w('username', testFunc);
Platon formalar ochilayotganda linkga qo'shimcha qiymatlarham berishimiz mumkin.
Masalan qayerdandur forma uchun link bor va u linkga userning user_id parametrini berishimiz kerak bo'lsa:
forma linkiga 'forms/my-user?user_id=22'
// user_id ni formaning SQL qismida ushlamoqchi bo'lsa #user_id orqali murojat qilamiz.
// user_id ni formaning Javascript qismida ushlamoqchi bo'lsa this.q('user_id') orqali murojat qilamiz.