# video-web **Repository Path**: everythingwins_admin/video-web ## Basic Information - **Project Name**: video-web - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-08 - **Last Updated**: 2026-03-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Video On Demand System (UniApp + Vue 2) Based on the architecture document, this project implements a role-based video on demand system for employees and administrators. ## Features 1. **Role Management**: * **Admin**: Access to Learning, Management, and Profile tabs. * **User (Category A/B)**: Access to Learning and Profile tabs. * **Login**: Job ID verification (Mock: `admin`, `A001`, `B001`). 2. **Learning Module**: * **Stage-based Learning**: Unlock stages sequentially (Stage 1 -> Stage 2 -> Stage 3). * **Category Filtering**: Users only see videos relevant to their category (A or B). * **Permissions**: Videos are locked by default until unlocked by Admin (Mocked in `index.vue`). 3. **Video Player**: * **Anti-Fast-Forward**: Prevents dragging the progress bar forward. Only allows rewinding. * **Progress Tracking**: Tracks max watched time. * **Completion**: Marks video as completed when finished. * **Resume Playback**: Saves progress on exit (Mocked). 4. **Admin Dashboard**: * Manage permissions, users, and videos (Mock UI). ## Project Structure * `pages/`: * `login/`: Login page. * `index/`: Learning home page (video list). * `player/`: Video player with restriction logic. * `admin/`: Admin dashboard. * `mine/`: User profile. * `components/`: * `tab-bar/`: Custom tab bar component for role-based navigation. * `store/`: Vuex store for user state management. * `static/`: Assets. ## Setup 1. **Install Dependencies**: ```bash npm install ``` (Already installed: `vuex`, `sass`, `sass-loader`) 2. **Run**: * Use HBuilderX to run directly on WeChat Mini Program or H5. * Or use CLI commands if configured. ## Mock Credentials * **Admin**: `admin` * **User A**: `A001` * **User B**: `B001` ## Key Implementation Details * **Custom TabBar**: Implemented as a Vue component (`components/tab-bar/TabBar.vue`) and used in main pages (`index`, `admin`, `mine`) while hiding the native tab bar via `uni.hideTabBar()`. * **Anti-Fast-Forward**: Logic in `pages/player/player.vue` monitors `timeupdate` event and seeks back if user skips ahead of `maxWatchedTime`.