UNPKG

vue3-form-producer

Version:

業務アプリケーションに必要とされるフォームの作成から、フォームを使った入力画面、データ表示画面までをJSONデータで連携し、Vue.js / Bootstrap-Vue-Next でのフロントエンド開発におけるフォーム開発の生産性を飛躍的に向上するコンポーネントです。

409 lines (403 loc) 14.1 kB
import { v4 as uuidv4 } from 'uuid'; import SwLanguage from './sw-language.js' const { get_language } = SwLanguage() export default function (){ // ブラウザからデフォルトの言語を取得する let locale = navigator.language; if( locale != "ja" && locale != "en" ) locale = "en"; const get_schema_type = (item_type) => { //console.log("get_schema_type:item_type="+item_type) let schema_info = schema[item_type]; schema_info.item_uuid = uuidv4(); //console.log("get_schema_type:schema_info="+JSON.stringify(schema_info)) return schema_info; }; const schema = { "-- 短いテキスト --": "-- 短いテキスト --", "type_short_text": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_short_text", "item_name": get_language(locale,"type_short_text"), "item_placeholder": "", "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": false, "item_required_badge": false, "item_max_length": 32, "item_allowed_type": "All" }, "-- 長いテキスト --": "-- 長いテキスト --", "type_long_text": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_long_text", "item_name": get_language(locale,"type_long_text"), "item_placeholder": "", "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": false, "item_required_badge": false, "item_max_length": 256, "item_number_of_rows": 3 }, "-- 数値 --": "-- 数値 --", "type_numeric": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_numeric", "item_name": get_language(locale,"type_numeric"), "item_placeholder": "", "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": false, "item_required_badge": false, "item_min_number": 1, "item_max_number": 100, "item_init_number": 1, "item_unit": "" }, "-- 単一選択 --": "-- 単一選択 --", "type_single_select": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_single_select", "item_name": get_language(locale,"type_single_select"), "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": true, "item_required_badge": false, "item_line_selected": false, "item_choice_columns": [ {"text":get_language(locale,"selection1"),"value":get_language(locale,"selection1")}, {"text":get_language(locale,"selection2"),"value":get_language(locale,"selection2")} ], "item_choiced_value": get_language(locale,"selection1"), }, "-- 複数選択 --": "-- 複数選択 --", "type_multi_select": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_multi_select", "item_name": get_language(locale,"type_multi_select"), "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": true, "item_required_badge": false, "item_line_selected": false, "item_choice_columns": [ {"text":get_language(locale,"selection1"),"value":get_language(locale,"selection1")}, {"text":get_language(locale,"selection2"),"value":get_language(locale,"selection2")} ], }, "-- スイッチ --": "-- スイッチ --", "type_switch": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_switch", "item_name": get_language(locale,"type_switch"), "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": false, "item_required_badge": false, "item_on_value": "ON", "item_off_value": "OFF" }, "-- 日付 --": "-- 日付 --", "type_date": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_date", "item_name": get_language(locale,"type_date"), "item_placeholder": "", "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": false, "item_required_badge": false, "item_output_format": "ShortDate" }, "-- 時刻 --": "-- 時刻 --", "type_time": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_time", "item_name": get_language(locale,"type_time"), "item_placeholder": "", "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": false, "item_required_badge": false, "item_output_format": "ShortTime" }, "-- 日時 --": "-- 日時 --", "type_datetime": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_datetime", "item_name": get_language(locale,"type_datetime"), "item_placeholder": "", "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": false, "item_required_badge": false, "item_output_format": "ShortDateTime1" }, "-- 写真 --":"-- 写真 --", "type_picture": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_picture", "item_name": get_language(locale,"type_picture"), "item_placeholder": "", "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": false, "item_required_badge": false, "item_droparea_view_selected": true, "item_max_width": 80, "item_max_height": 80 }, "-- パスワード --": "-- パスワード --", "type_password": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_password", "item_name": get_language(locale,"type_password"), "item_placeholder": "", "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": false, "item_required_badge": false, "item_min_characters": 8, "item_character_type_selected": ["Lowercase", "Uppercase", "Numeric"], "item_password_hash_selected": true, "item_password_view_selected": true }, "-- 氏名 --": "-- 氏名 --", "type_full_name": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_full_name", "item_name_1": get_language(locale,"family_name"), "item_name_2": get_language(locale,"first_name"), "item_placeholder_1": "", "item_placeholder_2": "", "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": false, "item_required_badge": false, "item_max_length": 100 }, "-- 電話番号 --": "-- 電話番号 --", "type_phone_number": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_phone_number", "item_name": get_language(locale,"type_phone_number"), "item_placeholder": "", "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": false, "item_required_badge": false, "item_hyphen_selected": false, "item_international_selected": false }, "-- メールアドレス --": "-- メールアドレス --", "type_mail_address": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_mail_address", "item_name": get_language(locale,"type_mail_address"), "item_placeholder": "", "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": false, "item_required_badge": false, "item_mail_address_selected": false }, "-- プルダウン --": "-- プルダウン --", "type_pulldown": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_pulldown", "item_name": get_language(locale,"type_pulldown"), "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": true, "item_required_badge": false, "item_choice_columns": [ {"text":get_language(locale,"selection1"),"value":get_language(locale,"selection1")}, {"text":get_language(locale,"selection2"),"value":get_language(locale,"selection2")} ], "item_choiced_value": get_language(locale,"selection1"), }, "-- マークダウン --": "-- マークダウン --", "type_markdown": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_markdown", "item_name": get_language(locale,"type_markdown"), "item_placeholder": "", "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": false, "item_required_badge": false, "item_max_length": 256, "item_number_of_rows": 6 }, "-- URL --": "-- URL --", "type_url": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_url", "item_name": get_language(locale,"type_url"), "item_placeholder": "", "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": false, "item_required_badge": false, "item_url_link_selected": false }, "-- ラベル --": "-- ラベル --", "type_label": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_label", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_label": get_language(locale,"type_label"), "item_markdown_selected": false, "item_show_selected": false }, "-- 表 --": "-- 表 --", "type_table": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_table", "item_name": get_language(locale,"type_table"), "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": false, "item_required_badge": false, "item_rows_columns": [ {"text":get_language(locale,"row_name_1"),"value":get_language(locale,"row_name_1")}, {"text":get_language(locale,"row_name_2"),"value":get_language(locale,"row_name_2")} ], "item_columns_columns": [ {"text":get_language(locale,"column_name_1"),"value":get_language(locale,"column_name_1")}, {"text":get_language(locale,"column_name_2"),"value":get_language(locale,"column_name_2")} ], "item_max_length": 32, "item_allowed_type": "All" }, "-- ファイル --":"-- ファイル --", "type_file": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_file", "item_name": get_language(locale,"type_file"), "item_placeholder": "", "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": false, "item_required_badge": false, "item_droparea_view_selected": true, "item_output_method_selected": true, "item_max_files": 5, "item_max_size": 10 }, "-- 手書きサイン --":"-- 手書きサイン --", "type_sign": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_sign", "item_name": get_language(locale,"type_sign"), "item_placeholder": "", "item_description": "", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_required_selected": false, "item_required_badge": false, "item_height": 300, }, "-- 外部リンク --":"-- 外部リンク --", "type_link": { "item_body_visible": true, "item_uuid": "", "item_sequence": 0, "item_type": "type_link", "item_key": "", "item_condition_key": "", "item_condition_value": "", "item_label": get_language(locale,"type_link"), "item_prefix": "詳しくは", "item_postfix": "をご覧ください。", "item_link_word": "こちら", "item_link_url": "https://www.shadows-works.com/" }, } return { get_schema_type } }