diff --git a/public/documents/chapter-4-superadmin-build-and-deploy.md b/public/documents/chapter-4-superadmin-build-and-deploy.md index 242e52a0..519c0569 100644 --- a/public/documents/chapter-4-superadmin-build-and-deploy.md +++ b/public/documents/chapter-4-superadmin-build-and-deploy.md @@ -263,15 +263,28 @@ API Gateway เป็นส่วนสำคัญในระบบ Microservi # ขั้นตอนการติดตั้งระบบ -เอกสารสำหรับการติดตั้งระบบของ BMA HRMS โปรแกรมในยุคปัจจุบันจะทำงานบนเทคโนโลยีคอนเทนเนอร์ เพื่อยืดหยุ่นในการทำงาน ตั้งแต่การพัฒนา ทดสอบและ ใช้งานจริง (Production) จำเป็นต้องเข้าใจพื้นฐานการทำงาน Docker เสียก่อน ก็จะสามารถจัดการบริการเพิ่มเติมที่จะเกิดขึ้นอนาคต เนื่องจากการใช้งานเป็นรูปแบบเดียวกัน นอกจากการใช้งานผ่านคำสั่งแล้วสามารถใช้ Portainer ในการจัดการผ่าน Web UI ได้ การติดตั้งจะอยู่ในเอกสารนี้ +ผู้อ่านจำเป็นต้องมีความรู้และเข้าใจคำสั่ง และระบบไฟล์ของ Linux เป็นอย่างดีมาก่อน เอกสารจะแสดงวิธีการติดตั้งระบบของ BMA HRMS บนเทคโนโลยีคอนเทนเนอร์ มีการปูพื้นคำสั่งพื้นฐานของ Docker ที่จำเป็นให้ ลักษณะการติดตั้งและใช้งานจะอยู่ในรูปแบบเดียวกัน ทำให้ สามารถจัดการบริการเพิ่มเติมที่จะเกิดขึ้นอนาคตได้ นอกจากการใช้งานผ่านคำสั่งแล้วสามารถใช้ Portainer จัดการผ่าน Web UI ได้ การติดตั้งจะอยู่ในเอกสารนี้ ![Network Diagram](images/buildanddeploy/build-network-diagram.png) +## Linux VM +เครื่องโฮสเป็น debian 12 แบบมาตรฐาน ตั้งค่า locale และ Time Zone ให้เหมาะสำหรับประเทศไทย +``` +sudo dpkg-reconfigure locales +sudo timedatectl set-timezone Asia/Bangkok +date +``` + +![เลือกlocale](images/buildanddeploy/build-locale-eng-US.png) + +![Default locale](images/buildanddeploy/build-locale-final.png) + + ## ติดตั้ง Docker Docker คอนเทนเนอร์สามารถเรียนรู้ ตั้งค่า ดูแล รักษาได้ง่ายและรวดเร็ว รองรับการขยายตัว สามารถเพิ่มคลัสเตอร์ได้ง่าย และสามารถปรับเปลี่ยนเป็น Kubernates ได้ในอนาคต -สำหรับเอกสารนี้จะเป็นการติดตั้ง Docker บน debian 12 สำหรับบนวินโดว์(เพื่อการทดสอบเท่านั้น)ให้ติดตั้งบน WSL2 หรือใช้ Linux VM -การติดตั้งโดยละเอียดดูได้จาก [คู่มือในเวปของ Docker](https://docs.docker.com/engine/install/debian/) วิธีการติดตั้งแบบย่อผ่าน +สำหรับเอกสารนี้จะเป็นการติดตั้ง Docker บน debian 12 สำหรับบนวินโดว์(เพื่อการทดสอบเท่านั้น)ให้ติดตั้ง docker บน WSL2 +การติดตั้งโดยละเอียดดูได้จาก [คู่มือในเวปหลักของ Docker](https://docs.docker.com/engine/install/debian/) ตัวอย่างด้านล่างเป็นวิธีการติดตั้งแบบย่อผ่าน [convenience script](https://docs.docker.com/engine/install/debian/#install-using-the-convenience-script) ทำตามวิธีการนี้ ``` @@ -327,7 +340,9 @@ docker network create [network_name] # สร้างเน็ตเวิร สามารถเพิ่มจำนวนคอนเทนเนอร์ในแต่ละบริการได้ง่ายโดยใช้ docker-compose up --scale ## ตัวอย่างของไฟล์ docker-compose.yaml -เป็นตัวอย่างแบบง่ายเพื่อใช้งาน nginx เป็นเวปเซิร์ฟเวอร์ ที่พอร์ต 9082 บนเครื่องโฮส ถ้าไม่สั่งหยุดการทำงาน nginx จะเริ่มตัวเองเองถ้าโฮสเปิดขึ้นเครื่องใหม่ ทำงานในเน็ตเวิร์ก hrms การใช้งานใช้เว็บบราวเซอร์ไปที่ http://IP:9082 +เป็นตัวอย่างแบบง่ายเพื่อใช้งาน เซอร์วิส web ใช้อิมเมจโปรแกรม nginx เนื้อหาไฟล์ในโฟลเดอร์ ./html จะไปปรากฏบนคอนเทนเนอร์ที่ /usr/share/nginx/html เปิดพอร์ต 9082 บนเครื่องโฮส ถ้าไม่สั่งหยุดการทำงาน nginx จะเริ่มตัวเองเองถ้าโฮสเปิดขึ้นเครื่องใหม่ ทำงานในเน็ตเวิร์ก hrms ที่สร้างจากภายนอก + +การใช้งานใช้เว็บบราวเซอร์ไปที่ http://IP:9082 ```yaml services: @@ -348,7 +363,7 @@ networks: ## การใช้งานคำสั่ง docker compose docker compose จะรันคอนเทนเนอร์ของ docker หลายๆตัวพร้อมกันได้ โดยดูการตั้งค่าจากไฟล์ compose.yaml หรือ docker-compose.yaml -ที่อยู่ในโฟลเดอร์ที่เรียกคำสั่ง ในการทำงานทั่วไปเพื่อที่จะให้ง่ายต่อการใช้งาน จะใช้ docker compose เป็นหลัก ซึ่งจะมีผลเฉพาะ service ที่เขียนไว้ในไฟล์ compose +ที่อยู่ในโฟลเดอร์ที่เรียกคำสั่ง ในการทำงานทั่วไปเพื่อง่ายต่อการใช้งานจะใช้ docker compose เป็นหลัก ซึ่งจะมีผลเฉพาะ service ที่เขียนไว้ในไฟล์ compose คำสั่ง docker compose พื้นฐาน (ต้องมีไฟล์ compose.yaml หรือ docker-compose.yaml ในโฟลเดอร์ที่เรียกคำสั่ง) @@ -388,7 +403,7 @@ nano html/index.html # สร้างหน้าเวปสำหรับท ```sh mkdir -P apisix mkdir -p bmahrms-service/{edm_config,elasticsearch_config,init_mysql,keycloak_config,report-server-templates} -ืืmkdir -p bmahrms-service/report-server-templates/{docx,xlsx} +mkdir -p bmahrms-service/report-server-templates/{docx,xlsx} mkdir -p bmahrms ``` @@ -518,7 +533,56 @@ curl https://bma-hrms-id.bangkok.go.th -vvv - **Frappet Report Server (bmahrms-report-server)** ใช้สำหรับสร้างรายงานจากเอกสารต้นแบบ ออกแบบเองได้ในรูปของ ไฟล์ docx และ xlsx เอกสารที่สร้างสามารถส่งออกเป็น docx, xlsx, pdf ได้ - **Frappet EDM** ใช้สำหรับจัดการเอกสารที่ปลอดภัยรองรับโหลดจำนวนมากได้ จะมีระบบย่อยเบื้องหลังหลายตัว (bmahrms-edm,bmahrms-elasticsearch,bmahrms-kibana,bmahrms-mq) -docker/bmahrms-service/compose.yaml ให้แก้ตัวแปรให้เหมาะสมตาม +docker/bmahrms-service/service.env +การตั้งค่าและรหัสผ่านของคอนเทนเนอร์ผ่านตัวแปรแวดล้อม สามารถทำแต่ละ server กำหนดในไฟล์คอมโพส หรือแยกออกมาเป็นไฟล์เพื่อใช้ร่วมกันหลาย Service ก็ได้ ในตัวอย่างนี้จะใช้ ไฟล์ service.env +ให้แก้ตัวแปรซึ่งเป็นระหัสผ่านให้เหมาะสม KEYCLOAK_ADMIN_PASSWORD, KC_DB_PASSWORD, POSTGRES_PASSWORD, MINIO_ROOT_PASSWORD RABBITMQ_DEFAULT_PASS, MYSQL_ROOT_PASSWORD, MYSQL_PASSWORD +``` +# Generic +TZ=Asia/Bangkok +# Keycloak +KEYCLOAK_ADMIN=admin +KEYCLOAK_ADMIN_PASSWORD=put_keycloak_admin_password_here + +# Keycloak +KC_DB=postgres +#KC_DB_URL=jdbc:postgresql://postgres:5432/keycloak +KC_DB_URL_HOST=bmahrms-postgres +KC_DB_URL_DATABASE=keycloak +KC_DB_PASSWORD=put_keycloak_db_password_here +KC_DB_USERNAME=keycloak +KC_DB_SCHEMA=public + +# PostgreSQL (keycloak) +POSTGRES_DB=keycloak +POSTGRES_USER=keycloak +POSTGRES_PASSWORD=put_keycloak_db_password_here + +# MiniO +MINIO_ROOT_USER=admin +MINIO_ROOT_PASSWORD=put_minio_admin_password_here +MINIO_BROWSER_REDIRECT_URL=https://bmahrms-s3.bangkok.go.th/console/ + +# RabbitMQ +RABBITMQ_DEFAULT_USER=admin +RABBITMQ_DEFAULT_PASS=put_rabbitmq_admin_password_here + +# MySQL +MYSQL_ROOT_PASSWORD=put_mysql_admin_password_here +MYSQL_DATABASE=bma_ehr +MYSQL_USER=frappet +MYSQL_PASSWORD=put_mysql_db_password_here + +# Elasticsearch & Kibana +xpack.security.enabled=false +discovery.type=single-node +ELASTICSEARCH_HOSTS=http://bmahrms-elasticsearch:9200 + +# REDIS +REDIS_PORT=6379 +REDIS_DATABASES=16 +``` + +docker/bmahrms-service/compose.yaml ให้แก้ค่า PUBLIC_KEY MINIO_ACCESS_KEY,MINIO_SECRET_KEY, ipaddress_bma_hrms_id ให้เหมาะสม ```yaml networks: @@ -576,10 +640,6 @@ services: env_file: "service.env" mem_limit: "1g" restart: unless-stopped - environment: - - TZ=Asia/Bangkok - - RABBITMQ_DEFAULT_USER=admin - - RABBITMQ_DEFAULT_PASS=MQ_PASSWORD ports: - 5672:5672 # - 9122:15672 # UI @@ -610,16 +670,16 @@ services: bmahrms-elasticsearch: image: docker.frappet.com/core/elasticsearch-icu:8.14.3 env_file: "service.env" - mem_limit: "4g" + mem_limit: "4g" volumes: - elasticsearch_data:/usr/share/elasticsearch/data - ./elasticsearch_config/config.yaml:/usr/share/elasticsearch/config/elasticsearch.yml restart: unless-stopped - # disable ulimits for Proxmox LXC - # ulimits: - # memlock: - # soft: -1 - # hard: -1 + # disable below ulimits if run inside LXC + ulimits: + memlock: + soft: -1 + hard: -1 networks: - hrms bmahrms-kibana: @@ -640,15 +700,15 @@ services: volumes: - ./edm_config/keycloak.json:/app/static/keycloak.json:ro environment: - - PUBLIC_KEY=REALMS_PUBLIC_KEY + - PUBLIC_KEY=put_realm_edm_public_key_here - REALM_URL=https://bma-hrms-id.bangkok.go.th/realms/EDM - PREFERRED_AUTH=online - MANAGEMENT_ROLE=doc-management - MINIO_HOST=bmahrms-s3.bangkok.go.th - MINIO_PORT=443 - MINIO_SSL=true - - MINIO_ACCESS_KEY=dIYTJ2nXmD9cDln7yrwE - - MINIO_SECRET_KEY=pENPrGWpkngbLHnPBBh0dp2BoMQL5KZH60MucN6I + - MINIO_ACCESS_KEY=put_minio_access_key_here + - MINIO_SECRET_KEY=put_minio_secret_key_here # Bucket notification event needed to be configured # Can use prepare script to create bucket - MINIO_BUCKET=edm @@ -657,11 +717,11 @@ services: - ELASTICSEARCH_PORT=9200 # Can use prepare script - ELASTICSEARCH_INDEX=edm-index - - AMQ_URL=amqp://admin:admin123456@bmahrms-mq:5672 + - AMQ_URL=amqp://admin:put_rabbitmq_admin_password_here@bmahrms-mq:5672 - AMQ_QUEUE=edm - NODE_TLS_REJECT_UNAUTHORIZED=false extra_hosts: - - bma-hrms-id.bangkok.go.th:192.168.2.101 + - bma-hrms-id.bangkok.go.th:ipaddress_bma_hrms_id depends_on: - bmahrms-postgres diff --git a/public/toc.json b/public/toc.json index 8f151bbc..293344dc 100644 --- a/public/toc.json +++ b/public/toc.json @@ -1,337 +1,251 @@ -[ - { - "icon": "mdi-home-variant-outline", - "activeIcon": "mdi-home-variant", - "label": "หน้าแรก", - "path": "/" - }, - { - "icon": "mdi-file-outline", - "activeIcon": "mdi-file", - "label": "คู่มือการใช้งานระบบแอดมิน", - "children": [ - { - "label": "การใช้งานผู้ดูแลระบบ", - "path": "/manual/chapter-1-superadmin-maintenance" - }, - { - "label": "การใช้งานผู้ดูแลระบบระดับสูง", - "path": "/manual/chapter-2-superadmin-maintenance" - }, - { - "label": "คู่มือการตรวจสอบและแก้ไข", - "path": "/manual/chapter-3-superadmin-debug" - }, - { - "label": "คู่มือการจัดการระบบ", - "path": "/manual/chapter-4-superadmin-build-and-deploy" - } - ] - }, - { - "icon": "mdi-file-outline", - "activeIcon": "mdi-file", - "label": "คู่มือการใช้งานระบบบริหารจัดการ", - "children": [ - { - "label": "การเข้าสู่ระบบ", - "path": "/manual/chapter-1-admin-login" - }, +[{ + "icon": "mdi-home-variant-outline", + "activeIcon": "mdi-home-variant", + "path": "/" + }, + { + "icon": "mdi-file-outline", + "activeIcon": "mdi-file", + "label": "คู่มือการใช้งานระบบแอดมิน", + "children": [{ + "label": "การใช้งานผู้ดูแลระบบ", + "path": "/manual/chapter-1-superadmin-maintenance" + }, + { + "label": "การใช้งานผู้ดูแลระบบระดับสูง", + "path": "/manual/chapter-2-superadmin-maintenance" + }, + { + "label": "คู่มือการตรวจสอบและแก้ไข", + "path": "/manual/chapter-3-superadmin-debug" + }, + { + "label": "คู่มือการจัดการระบบ", + "path": "/manual/chapter-4-superadmin-build-and-deploy" + } + ] + }, + { + "icon": "mdi-file-outline", + "activeIcon": "mdi-file", + "label": "คู่มือการใช้งานระบบบริหารจัดการ", + "children": [{ + "label": "การเข้าสู่ระบบ", + "path": "/manual/chapter-1-admin-login" + }, - { - "label": "ระบบข้อมูลการประเมิน", - "children": [ - { - "label": "ตัวชี้วัด", - "children": [ - { - "label": "ตามแผน", - "path": "/manual/chapter-2-1-admin-evaluate" - }, - { - "label": "ตามตำแหน่ง", - "path": "/manual/chapter-2-2-admin-evaluate" - }, - { - "label": "งานอื่นๆ ที่ได้รับมอบหมาย", - "path": "/manual/chapter-2-3-admin-evaluate" - } - ] - }, + { + "label": "ระบบข้อมูลการประเมิน", + "children": [{ + "label": "ตัวชี้วัด", + "children": [{ + "label": "ตามแผน", + "path": "/manual/chapter-2-1-admin-evaluate" + }, + { + "label": "ตามตำแหน่ง", + "path": "/manual/chapter-2-2-admin-evaluate" + }, + { + "label": "งานอื่นๆ ที่ได้รับมอบหมาย", + "path": "/manual/chapter-2-3-admin-evaluate" + } + ] + }, - { - "label": "สมรรถนะ", - "path": "/manual/chapter-2-4-admin-evaluate" - }, - { - "label": "ยุทธศาสตร์", - "path": "/manual/chapter-2-5-admin-evaluate" - } + { + "label": "สมรรถนะ", + "path": "/manual/chapter-2-4-admin-evaluate" + }, + { + "label": "ยุทธศาสตร์", + "path": "/manual/chapter-2-5-admin-evaluate" + } + ] + }, + { + "label": "ระบบโครงสร้างอัตรากำลัง", + "path": "/manual/chapter-3-admin-organization" + }, + { + "label": "ระบบรักษาการในตำแหน่ง", + "path": "/manual/chapter-4-admin-acting" + }, + { + "label": "ระบบอัตรากำลังลูกจ้าง", + "path": "/manual/chapter-5-admin-position-employee" + }, + { + "key": "3.6", + "label": "ระบบทะเบียนประวัติ", + "children": [{ + "label": "ข้าราชการ กทม. สามัญ", + "path": "/manual/chapter-6-1-admin-registry" + }, + { + "label": "ลูกจ้างประจำ กทม.", + "path": "/manual/chapter-6-2-admin-registry" + }, + { + "label": "ลูกจ้างชั่วคราว", + "path": "/manual/chapter-6-admin-registry" + } + ] + }, + { + "label": "ระบบทะเบียนประวัติลูกจ้าง", + "path": "/manual/chapter-7-admin-registry-employee" + }, + { + "label": "ระบบออกคำสั่ง", + "path": "/manual/chapter-8-admin-order" + }, + { + "label": "ระบบสรรหา", + "path": "/manual/chapter-9-admin-recruit" + }, + { + "label": "ระบบบรรจุ", + "path": "/manual/chapter-10-admin-appointment" + }, + { + "label": "ทดลองปฏิบัติหน้าที่ราชการ", + "path": "/manual/chapter-11-admin-probation" + }, + { + "label": "ระบบพ้นจากราชการ", + "path": "/manual/chapter-12-admin-retirement" + }, + { + "label": "ระบบเครื่องราช", + "path": "/manual/chapter-13-admin-insignia" + }, + { + "label": "ระบบการลา", + "path": "/manual/chapter-14-admin-leave" + }, + { + "label": "ระบบวินัย", + "path": "/manual/chapter-15-admin-discipline" + }, + { + "label": "ระบบประเมินบุคคล", + "path": "/manual/chapter-16-admin-KPI" + }, + { + "label": "ระบบเงินเดือนและค่าจ้าง", + "path": "/manual/chapter-17-admin-salary" + }, + { + "label": "ระบบประเมินผลการปฎิบัติ", + "path": "/manual/chapter-18-admin-perf-evaluation" + }, + { + "label": "ระบบพัฒนา", + "path": "/manual/chapter-19-admin-development" + } ] - }, - { - "label": "ระบบโครงสร้างอัตรากำลัง", - "path": "/manual/chapter-3-admin-organization" - }, - { - "label": "ระบบรักษาการในตำแหน่ง", - "path": "/manual/chapter-4-admin-acting" - }, - { - "label": "ระบบอัตรากำลังลูกจ้าง", - "path": "/manual/chapter-5-admin-position-employee" - }, - { - "key": "3.6", - "label": "ระบบทะเบียนประวัติ", - "children": [ - { - "label": "ข้าราชการ กทม. สามัญ", - "path": "/manual/chapter-6-1-admin-registry" - }, - { - "label": "ลูกจ้างประจำ กทม.", - "path": "/manual/chapter-6-2-admin-registry" - }, - { - "label": "ลูกจ้างชั่วคราว", - "path": "/manual/chapter-6-admin-registry" - } - ] - }, - { - "label": "ระบบทะเบียนประวัติลูกจ้าง", - "path": "/manual/chapter-7-admin-registry-employee" - }, - { - "label": "ระบบออกคำสั่ง", - "path": "/manual/chapter-7-admin-order" - }, - { - "label": "ระบบสรรหา", - "children": [ - { - "label": "ตั้งค่าระบบสรรหา", - "path": "/manual/chapter-8-admin-recruit" - }, - { - "label": "สอบแข่งขัน", - "children": [ - { - "label": "จัดการรอบสอบแข่งขัน", - "path": "/manual/chapter-8-2-1-admin-compete-period" - }, - { - "label": "สถิติสมัครสอบแข่งขัน", - "path": "/manual/chapter-8-2-2-admin-compete-period-stat" - } - ] - }, - { - "label": "คัดเลือก", - "children": [ - { - "label": "จัดการรอบคัดเลือก", - "path": "/manual/chapter-8-3-1-admin-qualify-period" - }, - { - "label": "จัดการรอบคัดเลือกคนพิการ", - "path": "/manual/chapter-8-3-2-admin-disable-period" - }, - { - "label": "จัดการรายชื่อคัดเลือก", - "path": "/manual/chapter-8-3-3-admin-qualify-manage" - }, - { - "label": "สถิติสมัครคัดเลือก", - "path": "/manual/chapter-8-3-4-admin-qualify-period-stat" - }, - { - "label": "สถิติสมัครคัดเลือกคนพิการ", - "path": "/manual/chapter-8-3-5-admin-qualify-disable-stat" - } - ] - } - ] - }, - { - "label": "ระบบบรรจุ แต่งตั้ง ย้าย โอน", - "children": [ - { - "label": "รายชื่อผู้สอบผ่าน", - "path": "/manual/chapter-9-admin-placement" - }, - { - "label": "รายการขอโอน", - "path": "/manual/chapter-9-2-admin-transfer" - }, - { - "label": "รายการรับโอน", - "path": "/manual/chapter-9-3-admin-receive" - }, - { - "label": "รายการช่วยราชการ", - "path": "/manual/chapter-9-4-admin-help-government" - }, - { - "label": "รายการส่งตัวกลับ", - "path": "/manual/chapter-9-5-admin-repatriate" - }, - { - "label": "รายการแต่งตั้ง-เลื่อน-ย้าย", - "path": "/manual/chapter-9-6-admin-appoint-promote" - }, - { - "label": "ปรับระดับชั้นงาน-ย้ายลูกจ้าง", - "path": "/manual/chapter-9-7-admin-appoint-employee" - }, - { - "label": "รายการอื่นๆ", - "path": "/manual/chapter-9-8-admin-other" - } - ] - }, - { - "label": "ทดลองปฏิบัติหน้าที่ราชการ", - "path": "/manual/chapter-11-admin-probation" - }, - { - "label": "ระบบพ้นจากราชการ", - "path": "/manual/chapter-12-admin-retirement" - }, - { - "label": "ระบบเครื่องราช", - "path": "/manual/chapter-13-admin-insignia" - }, - { - "label": "ระบบการลา", - "path": "/manual/chapter-14-admin-leave" - }, - { - "label": "ระบบวินัย", - "path": "/manual/chapter-15-admin-discipline" - }, - { - "label": "ระบบประเมินบุคคล", - "path": "/manual/chapter-16-admin-KPI" - }, - { - "label": "ระบบเงินเดือนและค่าจ้าง", - "path": "/manual/chapter-17-admin-salary" - }, - { - "label": "ระบบประเมินผลการปฎิบัติ", - "path": "/manual/chapter-18-admin-perf-evaluation" - }, - { - "label": "ระบบพัฒนา", - "path": "/manual/chapter-19-admin-development" - } - ] - }, - { - "key": 4, - "icon": "mdi-file-outline", - "activeIcon": "mdi-file", - "label": "คู่มือการใช้งานระบบผู้ใช้งานทั่วไป", - "children": [ - { - "key": 4.1, - "label": "คู่มือการใช้งานระบบข้าราชการกรุงเทพหานครสามัญ", - "children": [ - { - "label": "ระบบแผนผังองค์กร", - "path": "/manual/chapter-1-user-organization-chart" - }, - { - "label": "ระบบทะเบียนประวัติ", - "path": "/manual/chapter-2-user-registry" - }, - { - "label": "ระบบประเมินบุคคล", - "path": "/manual/chapter-3-user-evaluate" - }, - { - "label": "ระบบการลา", - "path": "/manual/chapter-4-user-leave" - }, - { - "label": "ระบบผลงาน", - "path": "/manual/chapter-5-user-portfolio" - }, - { - "label": "ระบบขอโอน", - "path": "/manual/chapter-6-user-transfer" - }, - { - "label": "ระบบอุทธรณ์ร้องทุกข์", - "path": "/manual/chapter-7-user-appeal-complain" - }, - { - "label": "ระบบผู้ขอรับประเมิน (KPI)", - "path": "/manual/chapter-8-user-KPI" - }, - { - "label": "ระบบผู้ประเมิน (KPI)", - "path": "/manual/chapter-9-user-KPI-evaluator" - }, - { - "label": "ระบบทุนการศึกษา/ฝึกอบรม", - "path": "/manual/chapter-10-user-scholarship" - }, - { - "label": "ระบบการพัฒนารายบุคคล", - "path": "/manual/chapter-11-user-Individual-development" - }, - { - "label": "ระบบลาออก", - "path": "/manual/chapter-12-user-retire" - }, - { - "label": "ระบบบันทึกการลงเวลาปฏิบัติงาน", - "path": "/manual/chapter-13-user-worktimerecord" - }, - { - "label": "ระบบทุนการศึกษา/ฝึกอบรม", - "path": "/manual/chapter-14-user-service-testing" - } - ] - }, + }, + { + "key": 4, + "icon": "mdi-file-outline", + "activeIcon": "mdi-file", + "label": "คู่มือการใช้งานระบบผู้ใช้งานทั่วไป", + "children": [{ + "key": 4.1, + "label": "คู่มือการใช้งานระบบข้าราชการกรุงเทพหานครสามัญ", + "children": [{ + "label": "ระบบแผนผังองค์กร", + "path": "/manual/chapter-1-user-organization-chart" + }, + { + "label": "ระบบทะเบียนประวัติ", + "path": "/manual/chapter-2-user-registry" + }, + { + "label": "ระบบประเมินบุคคล", + "path": "/manual/chapter-3-user-evaluate" + }, + { + "label": "ระบบการลา", + "path": "/manual/chapter-4-user-leave" + }, + { + "label": "ระบบผลงาน", + "path": "/manual/chapter-5-user-portfolio" + }, + { + "label": "ระบบขอโอน", + "path": "/manual/chapter-6-user-transfer" + }, + { + "label": "ระบบอุทธรณ์ร้องทุกข์", + "path": "/manual/chapter-7-user-appeal-complain" + }, + { + "label": "ระบบผู้ขอรับประเมิน (KPI)", + "path": "/manual/chapter-8-user-KPI" + }, + { + "label": "ระบบผู้ประเมิน (KPI)", + "path": "/manual/chapter-9-user-KPI-evaluator" + }, + { + "label": "ระบบทุนการศึกษา/ฝึกอบรม", + "path": "/manual/chapter-10-user-scholarship" + }, + { + "label": "ระบบการพัฒนารายบุคคล", + "path": "/manual/chapter-11-user-Individual-development" + }, + { + "label": "ระบบลาออก", + "path": "/manual/chapter-12-user-retire" + }, + { + "label": "ระบบบันทึกการลงเวลาปฏิบัติงาน", + "path": "/manual/chapter-13-user-worktimerecord" + }, + { + "label": "ระบบทุนการศึกษา/ฝึกอบรม", + "path": "/manual/chapter-14-user-service-testing" + } + ] + }, - { - "key": 4.2, - "label": "คู่มือการใช้งานระบบลูกจ้างประจำกรุงเทพมหานคร", - "children": [ - { - "label": "ระบบแผนผังองค์กร", - "path": "/manual/chapter-1-user-employee-organization-chart" - }, - { - "label": "ระบบทะเบียนประวัติ", - "path": "/manual/chapter-2-user-employee-registry" - }, - { - "label": "ระบบการลา", - "path": "/manual/chapter-3-user-employee-leave" - }, - { - "label": "ระบบลงเวลา (ยังไม่ได้ทำ)", - "path": "/manual/" - }, - { - "label": "ระบบอุทธรณ์ร้องทุกข์", - "path": "/manual/chapter-5-user-employee-appeal-complain" - }, - { - "label": "ระบบลาออก", - "path": "/manual/chapter-6-user-employee-retire" - }, - { - "label": "ระบบบันทึกการลงเวลาปฏิบัติงาน", - "path": "/manual/chapter-7-user-employee-worktimerecord" - } + { + "key": 4.2, + "label": "คู่มือการใช้งานระบบลูกจ้างประจำกรุงเทพมหานคร", + "children": [{ + "label": "ระบบแผนผังองค์กร", + "path": "/manual/chapter-1-user-employee-organization-chart" + }, + { + "label": "ระบบทะเบียนประวัติ", + "path": "/manual/chapter-2-user-employee-registry" + }, + { + "label": "ระบบการลา", + "path": "/manual/chapter-3-user-employee-leave" + }, + { + "label": "ระบบลงเวลา (ยังไม่ได้ทำ)", + "path": "/manual/" + }, + { + "label": "ระบบอุทธรณ์ร้องทุกข์", + "path": "/manual/chapter-5-user-employee-appeal-complain" + }, + { + "label": "ระบบลาออก", + "path": "/manual/chapter-6-user-employee-retire" + }, + { + "label": "ระบบบันทึกการลงเวลาปฏิบัติงาน", + "path": "/manual/chapter-7-user-employee-worktimerecord" + } + ] + } ] - } - ] - } -] + } +] \ No newline at end of file