Skip to content

VJSPフロントエンドアーキテクチャ説明ドキュメント

1. プロジェクト概要

VJSPはWebベースのエンタープライズ級アプリケーションプラットフォームであり、フロントエンドとバックエンドの分離アーキテクチャを採用しています。フロントエンドはカスタムフレームワーク(VJSPフレームワーク)を使用して構築され、多数のサードパーティライブラリとコンポーネントを統合し、多言語対応、テーマ切り替えなどの機能をサポートしています。このシステムには、ユーザー管理、権限制御、ワークフロー、フォーム処理などのエンタープライズアプリケーションで一般的な機能が含まれています。

2. 技術スタック

2.1 コアフレームワーク

  • VJSP自社開発フレームワーク (vjsp.all.min.js)

2.2 UIコンポーネントライブラリ

  • EasyUI (vjsp.eui.min.js)
  • LayUI
  • ZTree (vjsp.zt.min.js)

2.3 チャートと可視化

  • ECharts 5 (vjsp.ec.min.js)

2.4 リッチテキストエディタ

  • UEditor (vjsp.ue.min.js)

2.5 日付選択

  • LayDate

2.6 ファイルアップロード

  • WebUploader (vjsp.wu.min.js)

2.7 マルチメディア再生

  • Plyr (vjsp.pl.min.js)

2.8 カレンダー

  • FullCalendar (vjsp.fc.min.js)

3. プロジェクト構造

vjsphtml/
├── CommonDialog/           # 共通ダイアログコンポーネント
├── home/                   # ホーム関連ページ
│   ├── main.html           # デスクトップ版メインインターフェース
│   └── portal.html         # ポータルページ
├── httpStatus/             # HTTPステータスページ
├── modules/                # 業務モジュール
│   └── customer/           # 顧客管理モジュール
├── system/                 # システム管理モジュール
│   ├── account/            # アカウント管理
│   ├── dept/               # 部門管理
│   ├── dic/                # データ辞書
│   ├── exportSql/          # SQLエクスポート
│   ├── flowRole/           # フロー役割
│   ├── log/                # ログ管理
│   ├── menu/               # メニュー管理
│   ├── role/               # 役割管理
│   └── user/               # ユーザー管理
├── vjsp-resource/          # リソースファイル
│   └── resource/
│       └── static/
│           ├── theme-customMade/  # カスタムテーマ
│           ├── theme-default/     # デフォルトテーマ
│           └── workflow/          # ワークフローリソース
├── vjsp-static/            # 静的リソース
│   ├── script/             # JSスクリプトファイル
│   ├── style/              # CSSスタイルファイル
│   ├── theme-default/      # デフォルトテーマリソース
│   └── thirdlibs/          # サードパーティライブラリ
│       ├── easyui/         # EasyUIライブラリ
│       ├── echarts5/       # EChartsチャートライブラリ
│       ├── fullcalendar/   # カレンダーコンポーネント
│       ├── laydate/        # 日付選択ツール
│       ├── layui/          # LayUIコンポーネントライブラリ
│       ├── plyr/           # メディアプレーヤー
│       ├── ueditor/        # リッチテキストエディタ
│       ├── webuploader/    # ファイルアップロードコンポーネント
│       └── ztree/          # ツリーコントロール
├── vjspflow/               # ワークフロー関連ページ
└── _vjsp_setting/          # システム設定ファイル

4. コア機能モジュール

4.1 認証と認可

  • トークンベースの認証
  • 権限制御システム
  • マルチロールサポート
  • スーパー管理者特権

4.2 ユーザーインターフェース

  • マルチテーマサポート
  • カスタムテーマ
  • 多言語サポート(中国語、英語など)

4.3 システム管理

  • ユーザー管理
  • 役割管理
  • 部門管理
  • メニュー管理
  • 権限設定
  • ログ管理
  • データ辞書

4.4 ワークフロー

  • プロセス定義
  • プロセスインスタンス
  • タスク管理
  • プロセス記録

4.5 フォームシステム

  • 動的フォーム
  • フォーム検証
  • フォームデータ処理

5. アーキテクチャの特徴

5.1 フロントエンドとバックエンドの分離

  • フロントエンドはUIレンダリングとユーザーインタラクションを担当
  • バックエンドはRESTful APIを提供
  • トークンベースの認証

5.2 モジュール設計

  • 機能モジュールの独立したカプセル化
  • ビジネスロジックの分離
  • 拡張性が高い

5.3 マルチデバイス対応

  • レスポンシブレイアウト
  • デバイス認識と適応

5.4 国際化サポート

  • 多言語切り替え
  • 言語パック管理
  • ローカライズ設定

5.5 テーマカスタマイズ

  • テーマ切り替え機能
  • カスタムテーマサポート
  • 動的スタイル調整

6. 開発規範

6.1 ファイル命名

  • HTMLファイル:機能名.html
  • 言語ファイル:機能名.lang.言語コード.json

6.2 ディレクトリ構造

  • 機能モジュールごとに編成
  • 静的リソースの集中管理
  • サードパーティライブラリの独立した保存

6.3 コードスタイル

  • VJSPフレームワークに基づくコンポーネントベース開発
  • イベント駆動型のインタラクション処理
  • 統一されたAPI呼び出し方法

7. セキュリティメカニズム

  • トークンベースの認証
  • 詳細な権限制御
  • インターフェース認証検証
  • セッション管理
  • セキュリティヘッダー設定

8. デプロイと実行

8.1 環境要件

  • モダンブラウザのサポート
  • IE9+との互換性(polyfillを通じて)

8.2 リソース読み込み

  • 静的リソースのバージョン管理(URLパラメータ_t)
  • オンデマンドでのコンポーネント読み込み
  • キャッシュ制御

9. 拡張とカスタマイズ

9.1 新しいモジュールの追加

  1. modulesディレクトリに新しいモジュールディレクトリを作成
  2. モジュールのHTML、JS、CSSファイルを実装
  3. システムメニューに新しいモジュールエントリを追加

9.2 テーマカスタマイズ

  1. theme-customMadeディレクトリでスタイルファイルを修正
  2. 色、フォントなどのUI要素を調整
  3. 画像とアイコンリソースを更新

9.3 言語拡張

  1. 新しい言語パックファイルを作成(*.lang.言語コード.json)
  2. システム設定に新しい言語オプションを追加
  3. 言語切り替え機能を実装

10. ベストプラクティス

  • VJSPフレームワークが提供するコンポーネントとAPIを使用
  • モジュール化とコンポーネントベースの開発方法に従う
  • サードパーティライブラリの機能を適切に利用
  • モバイル対応とレスポンシブデザインに注意
  • 国際化とローカライズサポートを実装