# 协议管理页面实现计划 ## 1. 需求分析 根据 `index.js` 中的 API 功能,需要实现以下功能: * 协议列表展示 * 协议状态修改 * 协议删除 * 协议详情查看 * 协议创建 * 协议更新 ## 2. 页面设计 遵循 Element Plus 企业级管理系统设计风格,页面包含: * 卡片式布局 * 表格展示协议列表 * 状态标签显示协议状态 * 操作按钮(编辑、删除、启用/禁用) * 表单用于创建/编辑协议 * 弹窗用于详情查看和表单操作 ## 3. 实现步骤 ### 3.1 页面结构设计 * 使用 `el-card` 包裹主要内容 * 卡片头部包含标题和创建按钮 * 表格展示协议列表,包含协议类型、版本、状态、语言、创建时间等字段 * 操作列包含查看详情、编辑、删除、启用/禁用按钮 ### 3.2 功能实现 * **列表查询**:调用 `getAgreementList` API 获取协议列表 * **状态修改**:点击启用/禁用按钮,调用 `updateAgreementStatus` API * **删除协议**:点击删除按钮,调用 `deleteAgreement` API,带确认提示 * **查看详情**:点击详情按钮,弹窗展示协议详情 * **创建协议**:点击创建按钮,弹窗显示表单,调用 `createAgreement` API * **编辑协议**:点击编辑按钮,弹窗显示表单,调用 `updateAgreement` API ### 3.3 路由配置 在 `permissionRoutes` 数组中添加协议管理路由: * 路径:`agreement-management` * 名称:`AdminAgreement` * 组件:`AdminAgreement` * 标题:`admin.layout.agreementManagement` * 图标:`Document` * 菜单顺序:合理位置 ### 3.4 响应式设计 * 表格在移动端自动调整布局 * 弹窗在移动端自适应宽度 * 表单元素在不同屏幕尺寸下保持良好的用户体验 ## 4. 代码实现 ### 4.1 创建 `index.vue` 文件 * 使用 Composition API * 导入必要的组件和 API 类 * 实现数据响应式 * 实现方法逻辑 * 实现模板结构 * 添加样式 ### 4.2 Vue3 属性绑定语法 所有属性绑定严格使用 Vue3 语法: * 错误:`label="{{label}}"` * 正确:`:label="label"` * 示例: * `:data="tableData"` * `:loading="loading"` * `:visible.sync="dialogVisible"` * `:type="scope.row.status === 1 ? 'success' : 'warning'"` * `@click="handleEdit(scope.row)"` ### 4.3 具体实现细节 * **表格配置**:使用 `:data` 绑定表格数据,`:loading` 绑定加载状态 * **弹窗配置**:使用 `:visible.sync` 控制弹窗显示/隐藏 * **表单配置**:使用 `v-model` 绑定表单数据,`:rules` 绑定验证规则 * **按钮配置**:使用 `@click` 绑定点击事件,`:type` 绑定按钮类型 * **状态标签**:使用 `:type` 绑定标签类型,动态根据状态值变化 ### 4.4 更新路由配置 在 `router/index.js` 中添加协议管理路由 ## 5. 预期效果 * 页面布局符合设计风格指南 * 所有功能正常工作 * 响应式设计适配不同设备 * 交互流畅,反馈清晰 * 严格遵循 Vue3 属性绑定语法 ## 6. 技术要点 * Vue3 Composition API * Element Plus 组件库 * API 异步调用 * 响应式设计 * 中英文切换支持 * 严格的 Vue3 属性绑定语法