---
description: ruoyi-ui 前端规范（与 .cursor/rules/vue-frontend.mdc 同步）
globs: ["**/ruoyi-ui/**/*.vue","**/ruoyi-ui/**/*.js"]
alwaysApply: false
---

# 前端规范（Vue2 + Element UI）

## 目录

- API：`ruoyi-ui/src/api/{module}/{business}.js`
- 页面：`ruoyi-ui/src/views/{module}/{business}/index.vue`

## 关键约束

- 请求：`@/utils/request`
- 权限：`v-hasPermi="['busi:OBJECT:add']"`
- 字典：`dicts: ['xxx']` + `<dict-tag>`
- 分页：`<pagination>` + pageNum/pageSize
- 删除：`this.$modal.confirm()`
- 主键 ID：**string** 类型

## 参考

- `ruoyi-ui/src/views/system/user/index.vue`

## 禁止

- Vue3 / Element Plus / Pinia / Vite
- SqSearchTableFrame 等 yudao 组件
- 裸 axios/fetch
