基于Taro.js开发的H5应用

This commit is contained in:
2025-07-05 23:13:44 +08:00
commit 3db95dbe9b
262 changed files with 18029 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
/pnpm-lock.yaml
/.swc/
/.idea/

8
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,8 @@
# 默认忽略的文件
/shelf/
/workspace.xml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

365
README.md Normal file
View File

@@ -0,0 +1,365 @@
# 红色文化宣传小程序
> 基于 Taro 4.0 + React + TypeScript 构建的多端应用主要面向微信小程序平台集成红色文化宣传和AI问答功能
[![Taro](https://img.shields.io/badge/Taro-4.0.8-blue?style=flat-square&logo=taro)](https://taro.aotu.io/)
[![React](https://img.shields.io/badge/React-18.3.1-61DAFB?style=flat-square&logo=react)](https://reactjs.org/)
[![TypeScript](https://img.shields.io/badge/TypeScript-5.7.2-blue?style=flat-square&logo=typescript)](https://www.typescriptlang.org/)
[![NutUI](https://img.shields.io/badge/NutUI-2.7.4-orange?style=flat-square)](https://nutui.jd.com/)
[![Tailwind CSS](https://img.shields.io/badge/Tailwind%20CSS-3.4.17-38B2AC?style=flat-square&logo=tailwind-css)](https://tailwindcss.com/)
## 🌟 项目特色
- **🚀 多端开发** - 基于Taro框架一套代码多端运行微信小程序、H5、支付宝小程序等
- **📱 小程序优化** - 专为微信小程序优化,用户体验流畅
- **🎨 现代UI组件** - 集成NutUI组件库界面美观统一
- **🔴 红色文化主题** - 专注红色文化宣传,内容丰富
- **🤖 AI问答功能** - 集成智能问答系统,提供互动体验
- **🔧 CMS集成** - 与WebSoft CMS系统深度集成内容动态管理
- **📊 数据可视化** - 集成ECharts图表组件数据展示直观
- **🔐 用户系统** - 完整的用户注册、登录、个人中心功能
## 🏗️ 技术架构
### 前端技术栈
- **框架**: Taro 4.0.8 (多端统一开发框架)
- **语言**: TypeScript 5.7.2
- **UI库**: React 18.3.1
- **组件库**: NutUI React Taro 2.7.4
- **样式**: Tailwind CSS 3.4.17 + Sass
- **图表**: ECharts Taro3 React
- **构建工具**: Webpack 5.78.0
- **代码规范**: ESLint + TypeScript ESLint
### 后端集成
- **API服务**: https://cms-api.websoft.top/api
- **租户ID**: 10556
- **内容管理**: WebSoft CMS系统
- **用户认证**: JWT Token认证
- **多租户**: 支持多租户架构
## 📁 项目结构
```
template-10556/
├── src/
│ ├── pages/ # 页面目录
│ │ ├── index/ # 首页
│ │ │ ├── index.tsx # 首页主组件
│ │ │ ├── Banner.tsx # 轮播图组件
│ │ │ ├── Menu.tsx # 菜单组件
│ │ │ └── Login.tsx # 登录组件
│ │ ├── study/ # AI问答页面
│ │ ├── user/ # 用户中心页面
│ │ ├── article/ # 文章页面
│ │ └── kefu/ # 客服页面
│ ├── passport/ # 用户认证模块
│ │ ├── login.tsx # 登录页面
│ │ ├── register.tsx # 注册页面
│ │ ├── forget.tsx # 忘记密码
│ │ └── setting.tsx # 设置页面
│ ├── user/ # 用户相关页面
│ │ ├── profile/ # 个人资料
│ │ ├── company/ # 企业信息
│ │ ├── setting/ # 用户设置
│ │ └── userVerify/ # 用户认证
│ ├── components/ # 公共组件
│ │ ├── Header.tsx # 头部组件
│ │ ├── TabBar.tsx # 底部导航
│ │ └── Gap.tsx # 间距组件
│ ├── api/ # API 接口封装
│ │ ├── cms/ # CMS相关API
│ │ ├── system/ # 系统管理API
│ │ ├── layout/ # 布局相关API
│ │ └── passport/ # 用户认证API
│ ├── utils/ # 工具函数
│ │ ├── request.ts # HTTP请求封装
│ │ ├── config.ts # 配置文件
│ │ ├── common.ts # 通用工具
│ │ └── server.ts # 服务端工具
│ ├── assets/ # 静态资源
│ │ └── tabbar/ # 底部导航图标
│ ├── app.config.ts # 应用配置
│ ├── app.scss # 全局样式
│ └── app.ts # 应用入口
├── config/ # 环境配置
│ ├── dev.ts # 开发环境配置
│ ├── prod.ts # 生产环境配置
│ └── index.ts # 配置入口
├── dist/ # 构建输出目录
├── types/ # TypeScript类型定义
├── project.config.json # 微信小程序配置
├── package.json # 项目依赖
├── tailwind.config.js # Tailwind配置
├── tsconfig.json # TypeScript配置
└── README.md # 项目说明
```
## 🚀 快速开始
### 环境要求
- Node.js 18.0 或更高版本
- npm 或 pnpm 包管理器
- 微信开发者工具(用于小程序开发调试)
### 安装依赖
```bash
# 克隆项目
git clone <repository-url>
cd template-10556
# 安装依赖推荐使用pnpm
pnpm install
# 或使用npm
npm install
```
### 项目配置
项目配置文件位于 `src/utils/config.ts`
```typescript
// 租户ID
export const TenantId = 10556;
// 接口地址
export const BaseUrl = 'https://cms-api.websoft.top/api';
// 当前版本
export const Version = 'v3.0.8';
// 版权信息
export const Copyright = 'WebSoft Inc.';
```
### 开发调试
```bash
# 微信小程序开发
npm run dev:weapp
# H5开发
npm run dev:h5
# 支付宝小程序开发
npm run dev:alipay
# 其他平台
npm run dev:swan # 百度小程序
npm run dev:tt # 字节跳动小程序
npm run dev:qq # QQ小程序
npm run dev:jd # 京东小程序
```
### 构建生产版本
```bash
# 构建微信小程序
npm run build:weapp
# 构建H5
npm run build:h5
# 构建其他平台
npm run build:alipay
npm run build:swan
npm run build:tt
```
## 🎨 功能模块
### 主要页面
1. **首页** - 红色文化宣传主页,包含轮播图、菜单导航等
2. **AI问答** - 智能问答系统,提供红色文化相关知识问答
3. **用户中心** - 个人信息管理、设置等功能
4. **文章页面** - 红色文化文章展示和阅读
5. **客服页面** - 在线客服功能
### 用户认证模块
- **登录注册** - 支持手机号登录、短信验证码登录
- **忘记密码** - 密码重置功能
- **用户设置** - 个人信息修改、密码修改
- **协议页面** - 用户协议和隐私政策
### 底部导航
- **首页** - 主要内容展示
- **AI问答** - 智能问答功能
- **我的** - 用户个人中心
## 🔧 核心功能
### 多端适配
- **微信小程序**: 主要目标平台,完整功能支持
- **H5页面**: 支持在浏览器中运行
- **其他小程序**: 支持支付宝、百度、字节跳动等小程序平台
- **响应式设计**: 自适应不同屏幕尺寸
### CMS内容管理
- **动态内容**: 从WebSoft CMS系统动态获取内容
- **文章管理**: 支持文章发布、分类、评论等功能
- **用户管理**: 完整的用户注册、认证、权限管理
- **多租户**: 支持多租户架构租户ID: 10556
### API集成
- **统一封装**: 完整的API请求封装支持TypeScript类型安全
- **错误处理**: 统一的错误处理和用户提示机制
- **认证管理**: JWT Token自动管理和刷新
- **请求拦截**: 自动添加租户ID和认证信息
## 🛠️ 开发指南
### 添加新页面
1.`src/pages` 目录下创建新页面文件夹
2. 创建页面组件和配置文件
```typescript
// src/pages/new-page/new-page.tsx
import { useEffect } from 'react';
import Taro from '@tarojs/taro';
const NewPage = () => {
useEffect(() => {
Taro.setNavigationBarTitle({
title: '新页面'
});
}, []);
return (
<div className="p-4">
<h1>新页面</h1>
</div>
);
};
export default NewPage;
```
```typescript
// src/pages/new-page/new-page.config.ts
export default definePageConfig({
navigationBarTitleText: '新页面'
});
```
3.`src/app.config.ts` 中注册页面路由
### 创建新组件
```typescript
// src/components/NewComponent.tsx
import React from 'react';
interface NewComponentProps {
title: string;
content: string;
}
const NewComponent: React.FC<NewComponentProps> = ({ title, content }) => {
return (
<div className="p-4">
<h2 className="text-xl font-bold">{title}</h2>
<p>{content}</p>
</div>
);
};
export default NewComponent;
```
### API调用示例
```typescript
// 获取网站信息
import { getSiteInfo } from '@/api/layout';
const siteInfo = await getSiteInfo();
console.log(siteInfo.websiteName);
// 使用封装的请求方法
import { request } from '@/utils/request';
const result = await request({
url: '/cms/article/list',
method: 'GET',
data: {
page: 1,
limit: 10
}
});
```
## 📱 部署指南
### 微信小程序部署
1. 使用微信开发者工具打开项目
2. 构建小程序版本:`npm run build:weapp`
3. 在微信开发者工具中预览和上传代码
4. 在微信公众平台提交审核
### H5部署
1. 构建H5版本`npm run build:h5`
2.`dist` 目录部署到Web服务器
3. 配置域名和HTTPS证书
### 其他小程序平台
```bash
# 支付宝小程序
npm run build:alipay
# 百度小程序
npm run build:swan
# 字节跳动小程序
npm run build:tt
```
## 🔍 性能优化
- **代码分割**: Taro自动按页面分割代码
- **图片优化**: 使用Taro Image组件优化图片加载
- **缓存策略**: 合理的API请求缓存
- **包体积优化**: 按需引入组件和工具库
- **懒加载**: 页面和组件懒加载
## 🤝 贡献指南
1. Fork 项目
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 创建 Pull Request
## 📄 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情
## 📞 联系我们
- **官网**: https://websoft.top
- **邮箱**: contact@websoft.top
- **电话**: 0771-5386339
- **地址**: 广西南宁市
## 🙏 致谢
感谢以下开源项目:
- [Taro](https://taro.aotu.io/) - 多端统一开发框架
- [React](https://reactjs.org/) - 用户界面库
- [NutUI](https://nutui.jd.com/) - 移动端组件库
- [TypeScript](https://www.typescriptlang.org/) - JavaScript的超集
- [Tailwind CSS](https://tailwindcss.com/) - 实用优先的CSS框架
- [ECharts](https://echarts.apache.org/) - 数据可视化图表库
---
**WebSoft Inc.** - 红色文化宣传小程序 🚀

24
babel.config.js Normal file
View File

@@ -0,0 +1,24 @@
// babel-preset-taro 更多选项和默认值:
// https://github.com/NervJS/taro/blob/next/packages/babel-preset-taro/README.md
module.exports = {
presets: [
['taro',
{
framework: 'react',
ts: 'true',
compiler: 'webpack5',
}]
],
plugins: [
[
"import",
{
"libraryName": "@nutui/nutui-react-taro",
"libraryDirectory": "dist/esm",
"style": 'css',
"camel2DashComponentName": false
},
'nutui-react-taro'
]
]
}

25
config/dev.ts Normal file
View File

@@ -0,0 +1,25 @@
import type { UserConfigExport } from "@tarojs/cli";
export default {
logger: {
quiet: false,
stats: true
},
mini: {
miniCssExtractPluginOption: {
ignoreOrder: true
}
},
h5: {
devServer: {
hot: true,
liveReload: false,
client: {
overlay: {
errors: true,
warnings: false,
runtimeErrors: false
}
}
}
}
} satisfies UserConfigExport<'webpack5'>

113
config/index.ts Normal file
View File

@@ -0,0 +1,113 @@
import { defineConfig, type UserConfigExport } from '@tarojs/cli'
import TsconfigPathsPlugin from 'tsconfig-paths-webpack-plugin'
import devConfig from './dev'
import prodConfig from './prod'
// import vitePluginImp from 'vite-plugin-imp'
// https://taro-docs.jd.com/docs/next/config#defineconfig-辅助函数
export default defineConfig<'webpack5'>(async (merge, {}) => {
const baseConfig: UserConfigExport<'webpack5'> = {
projectName: 'red-culture-react',
date: '2024-12-30',
plugins: ['@tarojs/plugin-html'],
designWidth (input:any) {
// 配置 NutUI 375 尺寸
if (input?.file?.replace(/\\+/g, '/').indexOf('@nutui') > -1) {
return 375
}
// 全局使用 Taro 默认的 750 尺寸
return 750
},
deviceRatio: {
640: 2.34 / 2,
750: 1,
828: 1.81 / 2,
375: 2 / 1
},
sourceRoot: 'src',
outputRoot: 'dist',
defineConstants: {
},
copy: {
patterns: [
],
options: {
}
},
framework: 'react',
compiler: {
type: 'webpack5',
prebundle: {
exclude: ['@nutui/nutui-react-taro', '@nutui/icons-react-taro'],
enable: false
}
},
cache: {
enable: false // Webpack 持久化缓存配置建议开启。默认配置请参考https://docs.taro.zone/docs/config-detail#cache
},
mini: {
postcss: {
pxtransform: {
enable: true,
config: {
selectorBlackList: ['nut-']
}
},
cssModules: {
enable: false, // 默认为 false如需使用 css modules 功能,则设为 true
config: {
namingPattern: 'module', // 转换模式,取值为 global/module
generateScopedName: '[name]__[local]___[hash:base64:5]'
}
}
},
webpackChain(chain) {
chain.resolve.plugin('tsconfig-paths').use(TsconfigPathsPlugin)
}
},
h5: {
publicPath: '/',
staticDirectory: 'static',
output: {
filename: 'js/[name].[hash:8].js',
chunkFilename: 'js/[name].[chunkhash:8].js'
},
miniCssExtractPluginOption: {
ignoreOrder: true,
filename: 'css/[name].[hash].css',
chunkFilename: 'css/[name].[chunkhash].css'
},
postcss: {
autoprefixer: {
enable: true,
config: {}
},
cssModules: {
enable: false, // 默认为 false如需使用 css modules 功能,则设为 true
config: {
namingPattern: 'module', // 转换模式,取值为 global/module
generateScopedName: '[name]__[local]___[hash:base64:5]'
}
}
},
webpackChain(chain) {
chain.resolve.plugin('tsconfig-paths').use(TsconfigPathsPlugin)
}
},
rn: {
appName: 'taroDemo',
postcss: {
cssModules: {
enable: false, // 默认为 false如需使用 css modules 功能,则设为 true
}
}
}
}
if (process.env.NODE_ENV === 'development') {
// 本地开发构建配置(不混淆压缩)
return merge({}, baseConfig, devConfig)
}
// 生产构建配置(默认开启压缩混淆等)
return merge({}, baseConfig, prodConfig)
})

36
config/prod.ts Normal file
View File

@@ -0,0 +1,36 @@
import type { UserConfigExport } from "@tarojs/cli";
export default {
mini: {
miniCssExtractPluginOption: {
ignoreOrder: true
}
},
h5: {
/**
* WebpackChain 插件配置
* @docs https://github.com/neutrinojs/webpack-chain
*/
// webpackChain (chain) {
// /**
// * 如果 h5 端编译后体积过大,可以使用 webpack-bundle-analyzer 插件对打包体积进行分析。
// * @docs https://github.com/webpack-contrib/webpack-bundle-analyzer
// */
// chain.plugin('analyzer')
// .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin, [])
// /**
// * 如果 h5 端首屏加载时间过长,可以使用 prerender-spa-plugin 插件预加载首页。
// * @docs https://github.com/chrisvfritz/prerender-spa-plugin
// */
// const path = require('path')
// const Prerender = require('prerender-spa-plugin')
// const staticDir = path.join(__dirname, '..', 'dist')
// chain
// .plugin('prerender')
// .use(new Prerender({
// staticDir,
// routes: [ '/pages/index/index' ],
// postProcess: (context) => ({ ...context, outputPath: path.join(staticDir, 'index.html') })
// }))
// }
}
} satisfies UserConfigExport<'webpack5'>

97
package.json Normal file
View File

@@ -0,0 +1,97 @@
{
"name": "template-10556",
"version": "1.0.0",
"private": true,
"description": "红色文化宣传",
"templateInfo": {
"name": "react-NutUI",
"typescript": true,
"css": "Sass",
"framework": "React"
},
"scripts": {
"build:weapp": "taro build --type weapp",
"build:swan": "taro build --type swan",
"build:alipay": "taro build --type alipay",
"build:tt": "taro build --type tt",
"build:h5": "taro build --type h5",
"build:rn": "taro build --type rn",
"build:qq": "taro build --type qq",
"build:jd": "taro build --type jd",
"build:quickapp": "taro build --type quickapp",
"dev:weapp": "npm run build:weapp -- --watch",
"dev:swan": "npm run build:swan -- --watch",
"dev:alipay": "npm run build:alipay -- --watch",
"dev:tt": "npm run build:tt -- --watch",
"dev:h5": "npm run build:h5 -- --watch",
"dev:rn": "npm run build:rn -- --watch",
"dev:qq": "npm run build:qq -- --watch",
"dev:jd": "npm run build:jd -- --watch",
"dev:quickapp": "npm run build:quickapp -- --watch",
"build:tailwind": "postcss --config tailwind.config.js -o ./dist/index.css ./src/app.css"
},
"browserslist": [
"last 3 versions",
"Android >= 4.1",
"ios >= 8"
],
"author": "",
"dependencies": {
"@babel/runtime": "^7.26.0",
"@nutui/icons-react-taro": "^2.0.1",
"@nutui/nutui-react-taro": "^2.7.4",
"@tarojs/components": "4.0.8",
"@tarojs/helper": "4.0.8",
"@tarojs/plugin-framework-react": "4.0.8",
"@tarojs/plugin-html": "4.0.8",
"@tarojs/plugin-platform-alipay": "4.0.8",
"@tarojs/plugin-platform-h5": "4.0.8",
"@tarojs/plugin-platform-jd": "4.0.8",
"@tarojs/plugin-platform-qq": "4.0.8",
"@tarojs/plugin-platform-swan": "4.0.8",
"@tarojs/plugin-platform-tt": "4.0.8",
"@tarojs/plugin-platform-weapp": "4.0.8",
"@tarojs/react": "4.0.8",
"@tarojs/runtime": "4.0.8",
"@tarojs/shared": "4.0.8",
"@tarojs/taro": "4.0.8",
"crypto-js": "^4.2.0",
"dayjs": "^1.11.13",
"echarts-taro3-react": "^1.0.13",
"js-base64": "^3.7.7",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-markdown": "^10.1.0",
"react-router-dom": "^7.1.1"
},
"devDependencies": {
"@babel/core": "^7.26.0",
"@babel/plugin-proposal-class-properties": "7.14.5",
"@babel/preset-react": "^7.26.3",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.15",
"@tarojs/cli": "4.0.8",
"@tarojs/taro-loader": "4.0.8",
"@tarojs/webpack5-runner": "4.0.8",
"@types/node": "^18.19.68",
"@types/react": "^18.3.18",
"@types/webpack-env": "^1.18.5",
"@typescript-eslint/eslint-plugin": "^6.21.0",
"@typescript-eslint/parser": "^6.21.0",
"autoprefixer": "^10.4.20",
"babel-plugin-import": "^1.13.8",
"babel-preset-taro": "4.0.8",
"eslint": "^8.57.1",
"eslint-config-taro": "4.0.8",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-react": "^7.37.3",
"eslint-plugin-react-hooks": "^4.6.2",
"postcss": "^8.4.49",
"react-refresh": "^0.11.0",
"stylelint": "^14.16.1",
"tailwindcss": "^3.4.17",
"ts-node": "^10.9.2",
"tsconfig-paths-webpack-plugin": "^4.2.0",
"typescript": "^5.7.2",
"webpack": "5.78.0"
}
}

6
postcss.config.js Normal file
View File

@@ -0,0 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}

25
project.config.json Normal file
View File

@@ -0,0 +1,25 @@
{
"miniprogramRoot": "dist/",
"projectname": "red-culture",
"description": "红色文化宣传",
"appid": "wxd2723d1afd9c4553",
"setting": {
"urlCheck": true,
"es6": false,
"enhance": false,
"compileHotReLoad": false,
"postcss": false,
"preloadBackgroundData": false,
"minified": false,
"newFeature": true,
"autoAudits": false,
"coverView": true,
"showShadowRootInWxmlPanel": false,
"scopeDataCheck": false,
"useCompilerModule": false
},
"compileType": "miniprogram",
"simulatorType": "wechat",
"simulatorPluginLibVersion": {},
"condition": {}
}

13
project.tt.json Normal file
View File

@@ -0,0 +1,13 @@
{
"miniprogramRoot": "./",
"projectname": "red-culture-react",
"description": "红色文化宣传小程序",
"appid": "touristappid",
"setting": {
"urlCheck": true,
"es6": false,
"postcss": false,
"minified": false
},
"compileType": "miniprogram"
}

104
src/api/cms/cmsAd/index.ts Normal file
View File

@@ -0,0 +1,104 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsAd, CmsAdParam } from './model';
/**
* 分页查询广告位
*/
export async function pageCmsAd(params: CmsAdParam) {
const res = await request.get<ApiResult<PageResult<CmsAd>>>(
'/cms/cms-ad/page',
params
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询广告位列表
*/
export async function listCmsAd(params?: CmsAdParam) {
const res = await request.get<ApiResult<CmsAd[]>>(
'/cms/cms-ad',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加广告位
*/
export async function addCmsAd(data: CmsAd) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-ad',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改广告位
*/
export async function updateCmsAd(data: CmsAd) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-ad',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除广告位
*/
export async function removeCmsAd(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-ad/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除广告位
*/
export async function removeBatchCmsAd(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-ad/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询广告位
*/
export async function getCmsAd(id: number) {
const res = await request.get<ApiResult<CmsAd>>(
'/cms/cms-ad/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,60 @@
import type { PageParam } from '@/api/index';
/**
* 广告位
*/
export interface CmsAd {
// ID
adId?: number;
// 页面ID
designId?: number;
// 广告类型
adType?: string;
// 广告类型
type?: string;
// 广告位名称
name?: string;
// 宽
width?: string;
// 高
height?: string;
// 广告图片
images?: string;
// 图片列表
imageList?: any[];
// 路由/链接地址
path?: string;
// 用户ID
userId?: number;
// 页面ID
pageId?: number;
// 页面名称
pageName?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
merchantId?: number;
// 图片数组
imgArr?: any[];
}
/**
* 广告位搜索条件
*/
export interface CmsAdParam extends PageParam {
adId?: number;
type?: string;
adType?: string;
pageId?: number;
pageName?: string;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsAdRecord, CmsAdRecordParam } from './model';
/**
* 分页查询广告图片
*/
export async function pageCmsAdRecord(params: CmsAdRecordParam) {
const res = await request.get<ApiResult<PageResult<CmsAdRecord>>>(
'/cms/cms-ad-record/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询广告图片列表
*/
export async function listCmsAdRecord(params?: CmsAdRecordParam) {
const res = await request.get<ApiResult<CmsAdRecord[]>>(
'/cms/cms-ad-record',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加广告图片
*/
export async function addCmsAdRecord(data: CmsAdRecord) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-ad-record',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改广告图片
*/
export async function updateCmsAdRecord(data: CmsAdRecord) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-ad-record',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除广告图片
*/
export async function removeCmsAdRecord(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-ad-record/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除广告图片
*/
export async function removeBatchCmsAdRecord(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-ad-record/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询广告图片
*/
export async function getCmsAdRecord(id: number) {
const res = await request.get<ApiResult<CmsAdRecord>>(
'/cms/cms-ad-record/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,35 @@
import type { PageParam } from '@/api';
/**
* 广告图片
*/
export interface CmsAdRecord {
// ID
adRecordId?: number;
// 广告标题
title?: string;
// 图片地址
path?: string;
// 链接地址
url?: string;
// 广告位ID
adId?: number;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0正常, 1冻结
status?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 广告图片搜索条件
*/
export interface CmsAdRecordParam extends PageParam {
adRecordId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,208 @@
import request from '@/utils/request';
import type {ApiResult, PageResult} from '@/api/index';
import type {CmsArticle, CmsArticleParam} from './model';
/**
* 分页查询文章
*/
export async function pageCmsArticle(params: CmsArticleParam) {
const res = await request.get<ApiResult<PageResult<CmsArticle>>>(
'/cms/cms-article/page',
params
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询文章列表
*/
export async function listCmsArticle(params?: CmsArticleParam) {
const res = await request.get<ApiResult<CmsArticle[]>>(
'/cms/cms-article',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加文章
*/
export async function addCmsArticle(data: CmsArticle) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-article',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改文章
*/
export async function updateCmsArticle(data: CmsArticle) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-article',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除文章
*/
export async function removeCmsArticle(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-article/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除文章
*/
export async function removeBatchCmsArticle(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-article/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询文章
*/
export async function getCmsArticle(id: number) {
const res = await request.get<ApiResult<CmsArticle>>(
'/cms/cms-article/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
export async function getCount(params?: CmsArticleParam) {
const res = await request.get<ApiResult<unknown>>('/cms/cms-article/data', {
params
});
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 上一篇
* @param params
*/
export async function getPrevious(params?: CmsArticleParam) {
const res = await request.get<ApiResult<CmsArticle>>(
'/cms/cms-article/getPrevious/' + params?.articleId,
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 下一篇
* @param params
*/
export async function getNext(params?: CmsArticleParam) {
const res = await request.get<ApiResult<CmsArticle>>(
'/cms/cms-article/getNext/' + params?.articleId,
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 验证文章密码
* @param params
*/
export async function checkArticlePassword(params?: CmsArticleParam) {
const res = await request.get<ApiResult<unknown>>(
'/cms/cms-article/checkArticlePassword',
{
params
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
export async function findTags(params?: CmsArticleParam) {
const res = await request.get<ApiResult<CmsArticle[]>>(
'/cms/cms-article/findTags',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
export async function pageTags(params?: CmsArticleParam) {
const res = await request.get<ApiResult<CmsArticle[]>>(
'/cms/cms-article/pageTags',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 按IDS查询文章
* @param params
*/
export async function getByIds(params?: CmsArticleParam) {
const res = await request.get<ApiResult<CmsArticle[]>>(
'/cms/cms-article/getByIds',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,132 @@
import type { PageParam } from '@/api/index';
/**
* 文章
*/
export interface CmsArticle {
// 文章ID
articleId?: number;
// 文章标题
title?: string;
// 文章类型 0常规 1视频
type?: number;
// 文章模型
model?: string;
// 文章详情页模板
detail?: string;
// banner图片
banner?: string;
// 列表显示方式(10小图展示 20大图展示)
showType?: number;
// 话题
topic?: string;
// 标签
tags?: any;
// 栏目ID
categoryId?: number;
// 栏目名称
categoryName?: string;
// 封面图
image?: string;
// 价格
price?: number;
startTime?: any;
endTime?: any;
// 缩列图
thumbnail?: string;
// 来源
source?: string;
// 产品概述
overview?: string;
// 虚拟阅读量(仅用作展示)
virtualViews?: number;
// 实际阅读量
actualViews?: number;
// 购买人数
bmUsers?: number;
// 浏览权限(0公开 1会员 2密码)
permission?: number;
// 访问密码
password?: string;
// 确认密码
password2?: string;
// 发布来源客户端 (APP、H5、小程序等)
platform?: string;
// 文章附件
files?: string;
// 视频地址
video?: string;
// 接受的文件类型
accept?: string;
// 经度
longitude?: string;
// 纬度
latitude?: string;
// 所在省份
province?: string;
// 所在城市
city?: string;
// 所在辖区
region?: string;
// 街道地址
address?: string;
// 点赞数
likes?: number;
// pdf地址
pdfUrl?: string;
// 评论数
commentNumbers?: number;
// 提醒谁看
toUsers?: string;
// 文章内容
content?: string;
// 是否推荐
recommend?: number;
// 用户ID
userId?: number;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0已发布, 1待审核 2已驳回 3违规内容
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
// 父级id
parentId?: number;
nickname?: string;
username?: string;
author?: string;
shopId?: number;
tenantName?: string;
logo?: string;
fileList?: any;
// 编辑器类型
editor?: number;
}
/**
* 文章搜索条件
*/
export interface CmsArticleParam extends PageParam {
articleId?: number;
articleIds?: string;
categoryId?: number;
parentId?: number;
status?: number;
// 是否推荐
recommend?: number;
keywords?: string;
// 验证密码
password?: string;
password2?: string;
tags?: string;
detail?: string;
sceneType?: string;
}

View File

@@ -0,0 +1,108 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsArticleCategory, CmsArticleCategoryParam } from './model';
/**
* 分页查询文章分类表
*/
export async function pageCmsArticleCategory(params: CmsArticleCategoryParam) {
const res = await request.get<ApiResult<PageResult<CmsArticleCategory>>>(
'/cms/cms-article-category/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询文章分类表列表
*/
export async function listCmsArticleCategory(params?: CmsArticleCategoryParam) {
const res = await request.get<ApiResult<CmsArticleCategory[]>>(
'/cms/cms-article-category',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加文章分类表
*/
export async function addCmsArticleCategory(data: CmsArticleCategory) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-article-category',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改文章分类表
*/
export async function updateCmsArticleCategory(data: CmsArticleCategory) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-article-category',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除文章分类表
*/
export async function removeCmsArticleCategory(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-article-category/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除文章分类表
*/
export async function removeBatchCmsArticleCategory(
data: (number | undefined)[]
) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-article-category/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询文章分类表
*/
export async function getCmsArticleCategory(id: number) {
const res = await request.get<ApiResult<CmsArticleCategory>>(
'/cms/cms-article-category/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,59 @@
import type { PageParam } from '@/api/index';
/**
* 文章分类表
*/
export interface CmsArticleCategory {
// 文章分类ID
categoryId?: number;
// 分类标识
categoryCode?: string;
// 分类名称
title?: string;
// 类型 0列表 1单页 2外链
type?: number;
// 分类图片
image?: string;
// 上级分类ID
parentId?: number;
// 路由/链接地址
path?: string;
// 组件路径
component?: string;
// 绑定的页面
pageId?: number;
// 用户ID
userId?: number;
// 文章数量
count?: number;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 是否隐藏, 0否, 1是(仅注册路由不显示在左侧菜单)
hide?: number;
// 是否推荐
recommend?: number;
// 是否显示在首页
showIndex?: number;
// 状态, 0正常, 1禁用
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
value?: number;
label?: string;
}
/**
* 文章分类表搜索条件
*/
export interface CmsArticleCategoryParam extends PageParam {
categoryId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsArticleComment, CmsArticleCommentParam } from './model';
/**
* 分页查询文章评论表
*/
export async function pageCmsArticleComment(params: CmsArticleCommentParam) {
const res = await request.get<ApiResult<PageResult<CmsArticleComment>>>(
'/cms/cms-article-comment/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询文章评论表列表
*/
export async function listCmsArticleComment(params?: CmsArticleCommentParam) {
const res = await request.get<ApiResult<CmsArticleComment[]>>(
'/cms/cms-article-comment',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加文章评论表
*/
export async function addCmsArticleComment(data: CmsArticleComment) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-article-comment',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改文章评论表
*/
export async function updateCmsArticleComment(data: CmsArticleComment) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-article-comment',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除文章评论表
*/
export async function removeCmsArticleComment(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-article-comment/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除文章评论表
*/
export async function removeBatchCmsArticleComment(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-article-comment/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询文章评论表
*/
export async function getCmsArticleComment(id: number) {
const res = await request.get<ApiResult<CmsArticleComment>>(
'/cms/cms-article-comment/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,47 @@
import type { PageParam } from '@/api';
/**
* 文章评论表
*/
export interface CmsArticleComment {
// 评价ID
commentId?: number;
// 文章ID
articleId?: number;
// 评分 (10好评 20中评 30差评)
score?: number;
// 评价内容
content?: string;
// 是否为图片评价
isPicture?: number;
// 评论者ID
userId?: number;
// 被评价者ID
toUserId?: number;
// 回复的评论ID
replyCommentId?: number;
// 回复者ID
replyUserId?: number;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0未读, 1已读
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 文章评论表搜索条件
*/
export interface CmsArticleCommentParam extends PageParam {
commentId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsArticleContent, CmsArticleContentParam } from './model';
/**
* 分页查询文章记录表
*/
export async function pageCmsArticleContent(params: CmsArticleContentParam) {
const res = await request.get<ApiResult<PageResult<CmsArticleContent>>>(
'/cms/cms-article-content/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询文章记录表列表
*/
export async function listCmsArticleContent(params?: CmsArticleContentParam) {
const res = await request.get<ApiResult<CmsArticleContent[]>>(
'/cms/cms-article-content',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加文章记录表
*/
export async function addCmsArticleContent(data: CmsArticleContent) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-article-content',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改文章记录表
*/
export async function updateCmsArticleContent(data: CmsArticleContent) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-article-content',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除文章记录表
*/
export async function removeCmsArticleContent(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-article-content/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除文章记录表
*/
export async function removeBatchCmsArticleContent(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-article-content/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询文章记录表
*/
export async function getCmsArticleContent(id: number) {
const res = await request.get<ApiResult<CmsArticleContent>>(
'/cms/cms-article-content/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,25 @@
import type { PageParam } from '@/api';
/**
* 文章记录表
*/
export interface CmsArticleContent {
//
id?: number;
// 文章ID
articleId?: number;
// 文章内容
content?: string;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 文章记录表搜索条件
*/
export interface CmsArticleContentParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsArticleCount, CmsArticleCountParam } from './model';
/**
* 分页查询点赞文章
*/
export async function pageCmsArticleCount(params: CmsArticleCountParam) {
const res = await request.get<ApiResult<PageResult<CmsArticleCount>>>(
'/cms/cms-article-count/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询点赞文章列表
*/
export async function listCmsArticleCount(params?: CmsArticleCountParam) {
const res = await request.get<ApiResult<CmsArticleCount[]>>(
'/cms/cms-article-count',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加点赞文章
*/
export async function addCmsArticleCount(data: CmsArticleCount) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-article-count',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改点赞文章
*/
export async function updateCmsArticleCount(data: CmsArticleCount) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-article-count',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除点赞文章
*/
export async function removeCmsArticleCount(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-article-count/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除点赞文章
*/
export async function removeBatchCmsArticleCount(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-article-count/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询点赞文章
*/
export async function getCmsArticleCount(id: number) {
const res = await request.get<ApiResult<CmsArticleCount>>(
'/cms/cms-article-count/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,25 @@
import type { PageParam } from '@/api';
/**
* 点赞文章
*/
export interface CmsArticleCount {
// 主键ID
id?: number;
// 文章ID
articleId?: number;
// 用户ID
userId?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 点赞文章搜索条件
*/
export interface CmsArticleCountParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsArticleLike, CmsArticleLikeParam } from './model';
/**
* 分页查询点赞文章
*/
export async function pageCmsArticleLike(params: CmsArticleLikeParam) {
const res = await request.get<ApiResult<PageResult<CmsArticleLike>>>(
'/cms/cms-article-like/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询点赞文章列表
*/
export async function listCmsArticleLike(params?: CmsArticleLikeParam) {
const res = await request.get<ApiResult<CmsArticleLike[]>>(
'/cms/cms-article-like',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加点赞文章
*/
export async function addCmsArticleLike(data: CmsArticleLike) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-article-like',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改点赞文章
*/
export async function updateCmsArticleLike(data: CmsArticleLike) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-article-like',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除点赞文章
*/
export async function removeCmsArticleLike(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-article-like/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除点赞文章
*/
export async function removeBatchCmsArticleLike(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-article-like/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询点赞文章
*/
export async function getCmsArticleLike(id: number) {
const res = await request.get<ApiResult<CmsArticleLike>>(
'/cms/cms-article-like/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,25 @@
import type { PageParam } from '@/api';
/**
* 点赞文章
*/
export interface CmsArticleLike {
// 主键ID
id?: number;
// 文章ID
articleId?: number;
// 用户ID
userId?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 点赞文章搜索条件
*/
export interface CmsArticleLikeParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsComponents, CmsComponentsParam } from './model';
/**
* 分页查询组件
*/
export async function pageCmsComponents(params: CmsComponentsParam) {
const res = await request.get<ApiResult<PageResult<CmsComponents>>>(
'/cms/cms-components/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询组件列表
*/
export async function listCmsComponents(params?: CmsComponentsParam) {
const res = await request.get<ApiResult<CmsComponents[]>>(
'/cms/cms-components',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加组件
*/
export async function addCmsComponents(data: CmsComponents) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-components',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改组件
*/
export async function updateCmsComponents(data: CmsComponents) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-components',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除组件
*/
export async function removeCmsComponents(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-components/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除组件
*/
export async function removeBatchCmsComponents(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-components/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询组件
*/
export async function getCmsComponents(id: number) {
const res = await request.get<ApiResult<CmsComponents>>(
'/cms/cms-components/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,43 @@
import type { PageParam } from '@/api';
/**
* 组件
*/
export interface CmsComponents {
// ID
id?: number;
// 组件标题
title?: string;
// 关联导航ID
navigationId?: number;
// 组件类型
type?: string;
// 页面关键词
keywords?: string;
// 页面描述
description?: string;
// 组件路径
path?: string;
// 组件图标
icon?: string;
// 用户ID
userId?: number;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0正常, 1冻结
status?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 组件搜索条件
*/
export interface CmsComponentsParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsDesign, CmsDesignParam } from './model';
/**
* 分页查询页面管理记录表
*/
export async function pageCmsDesign(params: CmsDesignParam) {
const res = await request.get<ApiResult<PageResult<CmsDesign>>>(
'/cms/cms-design/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询页面管理记录表列表
*/
export async function listCmsDesign(params?: CmsDesignParam) {
const res = await request.get<ApiResult<CmsDesign[]>>(
'/cms/cms-design',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加页面管理记录表
*/
export async function addCmsDesign(data: CmsDesign) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-design',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改页面管理记录表
*/
export async function updateCmsDesign(data: CmsDesign) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-design',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除页面管理记录表
*/
export async function removeCmsDesign(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-design/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除页面管理记录表
*/
export async function removeBatchCmsDesign(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-design/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询页面管理记录表
*/
export async function getCmsDesign(id: number) {
const res = await request.get<ApiResult<CmsDesign>>(
'/cms/cms-design/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,60 @@
import type { PageParam } from '@/api/index';
/**
* 页面管理记录表
*/
export interface CmsDesign {
pageId?: number;
name?: string;
keywords?: string;
description?: string;
path?: string;
component?: string;
photo?: string;
content?: string;
// 类型
type?: string;
categoryId?: number;
// 宽
width?: string;
// 高
height?: string;
// 页面样式
style?: string;
// 附件
images?: string;
// 用户ID
userId?: number;
// 设为首页
home?: number;
// 排序
sortNumber?: number;
// 备注
comments?: string;
// 状态
status?: number;
// 创建时间
createTime?: string;
// 更新时间
updateTime?: string;
// 页面布局
layout?: string;
backgroundColor?: string;
// 关联网站导航ID
navigationId?: number;
showLayout?: boolean;
btn?: any[];
showBanner?: boolean;
buyUrl?: string;
demoUrl?: string;
account?: string;
docUrl?: string;
}
/**
* 页面管理记录表搜索条件
*/
export interface CmsDesignParam extends PageParam {
pageId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsDesignRecord, CmsDesignRecordParam } from './model';
/**
* 分页查询页面组件表
*/
export async function pageCmsDesignRecord(params: CmsDesignRecordParam) {
const res = await request.get<ApiResult<PageResult<CmsDesignRecord>>>(
'/cms/cms-design-record/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询页面组件表列表
*/
export async function listCmsDesignRecord(params?: CmsDesignRecordParam) {
const res = await request.get<ApiResult<CmsDesignRecord[]>>(
'/cms/cms-design-record',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加页面组件表
*/
export async function addCmsDesignRecord(data: CmsDesignRecord) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-design-record',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改页面组件表
*/
export async function updateCmsDesignRecord(data: CmsDesignRecord) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-design-record',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除页面组件表
*/
export async function removeCmsDesignRecord(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-design-record/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除页面组件表
*/
export async function removeBatchCmsDesignRecord(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-design-record/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询页面组件表
*/
export async function getCmsDesignRecord(id: number) {
const res = await request.get<ApiResult<CmsDesignRecord>>(
'/cms/cms-design-record/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,51 @@
import type { PageParam } from '@/api';
/**
* 页面组件表
*/
export interface CmsDesignRecord {
// ID
id?: number;
// 关联导航ID
navigationId?: number;
parentId?: number;
pageId?: number;
// 组件
title?: string;
// 组件标识
dictCode?: string;
// 组件样式
styles?: string;
// 卡片阴影显示时机
shadow?: string;
// 页面关键词
keywords?: string;
// 页面描述
description?: string;
// 页面路由地址
path?: string;
// 缩列图
photo?: string;
// 用户ID
userId?: number;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0正常, 1冻结
status?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 所属期次
periodId?: number;
}
/**
* 页面组件表搜索条件
*/
export interface CmsDesignRecordParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsDocs, CmsDocsParam } from './model';
/**
* 分页查询文档管理记录表
*/
export async function pageCmsDocs(params: CmsDocsParam) {
const res = await request.get<ApiResult<PageResult<CmsDocs>>>(
'/cms/cms-docs/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询文档管理记录表列表
*/
export async function listCmsDocs(params?: CmsDocsParam) {
const res = await request.get<ApiResult<CmsDocs[]>>(
'/cms/cms-docs',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加文档管理记录表
*/
export async function addCmsDocs(data: CmsDocs) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-docs',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改文档管理记录表
*/
export async function updateCmsDocs(data: CmsDocs) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-docs',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除文档管理记录表
*/
export async function removeCmsDocs(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-docs/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除文档管理记录表
*/
export async function removeBatchCmsDocs(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-docs/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询文档管理记录表
*/
export async function getCmsDocs(id: number) {
const res = await request.get<ApiResult<CmsDocs>>(
'/cms/cms-docs/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,45 @@
import type { PageParam } from '@/api';
/**
* 文档管理记录表
*/
export interface CmsDocs {
// 文档ID
docsId?: number;
// 文档标题
title?: string;
// 上级目录
parentId?: number;
// 书籍ID
bookId?: number;
// 可见性(public,private,protected)
visibility?: string;
// 虚拟阅读量(仅用作展示)
virtualViews?: number;
// 实际阅读量
actualViews?: number;
// 用户ID
userId?: number;
// 备注
comments?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 文档管理记录表搜索条件
*/
export interface CmsDocsParam extends PageParam {
docsId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsDocsBook, CmsDocsBookParam } from './model';
/**
* 分页查询书籍记录表
*/
export async function pageCmsDocsBook(params: CmsDocsBookParam) {
const res = await request.get<ApiResult<PageResult<CmsDocsBook>>>(
'/cms/cms-docs-book/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询书籍记录表列表
*/
export async function listCmsDocsBook(params?: CmsDocsBookParam) {
const res = await request.get<ApiResult<CmsDocsBook[]>>(
'/cms/cms-docs-book',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加书籍记录表
*/
export async function addCmsDocsBook(data: CmsDocsBook) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-docs-book',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改书籍记录表
*/
export async function updateCmsDocsBook(data: CmsDocsBook) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-docs-book',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除书籍记录表
*/
export async function removeCmsDocsBook(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-docs-book/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除书籍记录表
*/
export async function removeBatchCmsDocsBook(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-docs-book/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询书籍记录表
*/
export async function getCmsDocsBook(id: number) {
const res = await request.get<ApiResult<CmsDocsBook>>(
'/cms/cms-docs-book/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,37 @@
import type { PageParam } from '@/api';
/**
* 书籍记录表
*/
export interface CmsDocsBook {
// ID
bookId?: number;
// 书籍名称
name?: string;
// 书籍标识
code?: string;
// 封面图
photo?: string;
// 备注
comments?: string;
// 文档内容
content?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 书籍记录表搜索条件
*/
export interface CmsDocsBookParam extends PageParam {
bookId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsDocsContent, CmsDocsContentParam } from './model';
/**
* 分页查询文档内容记录表
*/
export async function pageCmsDocsContent(params: CmsDocsContentParam) {
const res = await request.get<ApiResult<PageResult<CmsDocsContent>>>(
'/cms/cms-docs-content/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询文档内容记录表列表
*/
export async function listCmsDocsContent(params?: CmsDocsContentParam) {
const res = await request.get<ApiResult<CmsDocsContent[]>>(
'/cms/cms-docs-content',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加文档内容记录表
*/
export async function addCmsDocsContent(data: CmsDocsContent) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-docs-content',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改文档内容记录表
*/
export async function updateCmsDocsContent(data: CmsDocsContent) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-docs-content',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除文档内容记录表
*/
export async function removeCmsDocsContent(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-docs-content/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除文档内容记录表
*/
export async function removeBatchCmsDocsContent(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-docs-content/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询文档内容记录表
*/
export async function getCmsDocsContent(id: number) {
const res = await request.get<ApiResult<CmsDocsContent>>(
'/cms/cms-docs-content/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,25 @@
import type { PageParam } from '@/api';
/**
* 文档内容记录表
*/
export interface CmsDocsContent {
// ID
id?: number;
// 文档ID
docsId?: number;
// 文档内容
content?: string;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 文档内容记录表搜索条件
*/
export interface CmsDocsContentParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,151 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsDomain, CmsDomainParam } from './model';
import {SERVER_API_URL} from "@/utils/server";
/**
* 分页查询网站域名记录表
*/
export async function pageCmsDomain(params: CmsDomainParam) {
const res = await request.get<ApiResult<PageResult<CmsDomain>>>(
SERVER_API_URL + '/cms/cms-domain/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询网站域名记录表列表
*/
export async function listCmsDomain(params?: CmsDomainParam) {
const res = await request.get<ApiResult<CmsDomain[]>>(
SERVER_API_URL + '/cms/cms-domain',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加网站域名记录表
*/
export async function addCmsDomain(data: CmsDomain) {
const res = await request.post<ApiResult<unknown>>(
SERVER_API_URL + '/cms/cms-domain',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改网站域名记录表
*/
export async function updateCmsDomain(data: CmsDomain) {
const res = await request.post<ApiResult<unknown>>(
SERVER_API_URL + '/cms/cms-domain/domain',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除网站域名记录表
*/
export async function removeCmsDomain(id?: number) {
const res = await request.del<ApiResult<unknown>>(
SERVER_API_URL + '/cms/cms-domain/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除网站域名记录表
*/
export async function removeBatchCmsDomain(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
SERVER_API_URL + '/cms/cms-domain/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询网站域名记录表
*/
export async function getCmsDomain(id: number) {
const res = await request.get<ApiResult<CmsDomain>>(
SERVER_API_URL + '/cms/cms-domain/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 检查IP是否存在
*/
export async function checkExistence(
field: string,
value: string,
id?: number
) {
const res = await request.get<ApiResult<unknown>>(
SERVER_API_URL + '/cms/domain/existence',
{
params: { field, value, id }
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
export async function resolvable(id: number) {
const res = await request.get<ApiResult<CmsDomain>>(
SERVER_API_URL + '/cms/domain/resolvable/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
export async function getTenantIdByDomain(params: CmsDomainParam) {
const res = await request.get<ApiResult<PageResult<CmsDomain>>>(
SERVER_API_URL + '/cms/cms-domain/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,44 @@
import type { PageParam } from '@/api';
/**
* 网站域名记录表
*/
export interface CmsDomain {
// ID
id?: number;
// 类型 0赠送域名 1绑定域名
type?: number;
// 域名
domain?: string;
// 主机记录
hostName?: string;
// 记录值
hostValue?: string;
// 状态
status?: number;
// 排序号
sortNumber?: number;
// 网站ID
websiteId?: number;
// 租户ID
appId?: number;
// 用户ID
userId?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 网站域名记录表搜索条件
*/
export interface CmsDomainParam extends PageParam {
id?: number;
domain?: string;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsForm, CmsFormParam } from './model';
/**
* 分页查询表单设计表
*/
export async function pageCmsForm(params: CmsFormParam) {
const res = await request.get<ApiResult<PageResult<CmsForm>>>(
'/cms/cms-form/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询表单设计表列表
*/
export async function listCmsForm(params?: CmsFormParam) {
const res = await request.get<ApiResult<CmsForm[]>>(
'/cms/cms-form',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加表单设计表
*/
export async function addCmsForm(data: CmsForm) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-form',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改表单设计表
*/
export async function updateCmsForm(data: CmsForm) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-form',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除表单设计表
*/
export async function removeCmsForm(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-form/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除表单设计表
*/
export async function removeBatchCmsForm(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-form/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询表单设计表
*/
export async function getCmsForm(id: number) {
const res = await request.get<ApiResult<CmsForm>>(
'/cms/cms-form/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,53 @@
import type { PageParam } from '@/api';
/**
* 表单设计表
*/
export interface CmsForm {
// ID
formId?: number;
// 表单标题
name?: string;
// 顶部图片
photo?: string;
// 背景图片
background?: string;
// 视频文件
video?: string;
// 提交次数
submitNumber?: number;
// 页面布局
layout?: string;
// 是否隐藏顶部图片
hidePhoto?: number;
// 是否隐藏背景图片
hideBackground?: number;
// 是否隐藏视频
hideVideo?: number;
// 背景图片透明度
opacity?: string;
// 用户ID
userId?: number;
// 商户ID
merchantId?: number;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 表单设计表搜索条件
*/
export interface CmsFormParam extends PageParam {
formId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsFormRecord, CmsFormRecordParam } from './model';
/**
* 分页查询表单数据记录表
*/
export async function pageCmsFormRecord(params: CmsFormRecordParam) {
const res = await request.get<ApiResult<PageResult<CmsFormRecord>>>(
'/cms/cms-form-record/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询表单数据记录表列表
*/
export async function listCmsFormRecord(params?: CmsFormRecordParam) {
const res = await request.get<ApiResult<CmsFormRecord[]>>(
'/cms/cms-form-record',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加表单数据记录表
*/
export async function addCmsFormRecord(data: CmsFormRecord) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-form-record',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改表单数据记录表
*/
export async function updateCmsFormRecord(data: CmsFormRecord) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-form-record',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除表单数据记录表
*/
export async function removeCmsFormRecord(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-form-record/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除表单数据记录表
*/
export async function removeBatchCmsFormRecord(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-form-record/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询表单数据记录表
*/
export async function getCmsFormRecord(id: number) {
const res = await request.get<ApiResult<CmsFormRecord>>(
'/cms/cms-form-record/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,41 @@
import type { PageParam } from '@/api/index';
/**
* 表单数据记录表
*/
export interface CmsFormRecord {
// ID
formRecordId?: number;
// 手机号
phone?: string;
// 表单数据
formData?: string;
// 表单ID
formId?: number;
// 用户ID
userId?: number;
// 商户ID
merchantId?: number;
// 姓名
name?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 表单数据记录表搜索条件
*/
export interface CmsFormRecordParam extends PageParam {
formRecordId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsLang, CmsLangParam } from './model';
/**
* 分页查询国际化
*/
export async function pageCmsLang(params: CmsLangParam) {
const res = await request.get<ApiResult<PageResult<CmsLang>>>(
'/cms/cms-lang/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询国际化列表
*/
export async function listCmsLang(params?: CmsLangParam) {
const res = await request.get<ApiResult<CmsLang[]>>(
'/cms/cms-lang',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加国际化
*/
export async function addCmsLang(data: CmsLang) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-lang',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改国际化
*/
export async function updateCmsLang(data: CmsLang) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-lang',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除国际化
*/
export async function removeCmsLang(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-lang/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除国际化
*/
export async function removeBatchCmsLang(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-lang/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询国际化
*/
export async function getCmsLang(id: number) {
const res = await request.get<ApiResult<CmsLang>>(
'/cms/cms-lang/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,39 @@
import type { PageParam } from '@/api';
/**
* 国际化
*/
export interface CmsLang {
// ID
id?: number;
// 名称
name?: string;
// 菜单组件地址, 目录可为空
code?: string;
// 启用语言
lang?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 0禁用 1启用
enable?: boolean;
// 状态, 0禁用 1启用
status?: boolean;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 国际化搜索条件
*/
export interface CmsLangParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,105 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsLangLog, CmsLangLogParam } from './model';
/**
* 分页查询国际化记录启用
*/
export async function pageCmsLangLog(params: CmsLangLogParam) {
const res = await request.get<ApiResult<PageResult<CmsLangLog>>>(
'/cms/cms-lang-log/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询国际化记录启用列表
*/
export async function listCmsLangLog(params?: CmsLangLogParam) {
const res = await request.get<ApiResult<CmsLangLog[]>>(
'/cms/cms-lang-log',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加国际化记录启用
*/
export async function addCmsLangLog(data: CmsLangLog) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-lang-log',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改国际化记录启用
*/
export async function updateCmsLangLog(data: CmsLangLog) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-lang-log',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除国际化记录启用
*/
export async function removeCmsLangLog(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-lang-log/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除国际化记录启用
*/
export async function removeBatchCmsLangLog(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-lang-log/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询国际化记录启用
*/
export async function getCmsLangLog(id: number) {
const res = await request.get<ApiResult<CmsLangLog>>(
'/cms/cms-lang-log/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,27 @@
import type { PageParam } from '@/api';
/**
* 国际化记录启用
*/
export interface CmsLangLog {
// ID
id?: number;
// 关联ID
langId?: number;
// 编码
code?: string;
// 名称
lang?: string;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 国际化记录启用搜索条件
*/
export interface CmsLangLogParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsLink, CmsLinkParam } from './model';
/**
* 分页查询常用链接
*/
export async function pageCmsLink(params: CmsLinkParam) {
const res = await request.get<ApiResult<PageResult<CmsLink>>>(
'/cms/cms-link/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询常用链接列表
*/
export async function listCmsLink(params?: CmsLinkParam) {
const res = await request.get<ApiResult<CmsLink[]>>(
'/cms/cms-link',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加常用链接
*/
export async function addCmsLink(data: CmsLink) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-link',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改常用链接
*/
export async function updateCmsLink(data: CmsLink) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-link',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除常用链接
*/
export async function removeCmsLink(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-link/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除常用链接
*/
export async function removeBatchCmsLink(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-link/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询常用链接
*/
export async function getCmsLink(id: number) {
const res = await request.get<ApiResult<CmsLink>>(
'/cms/cms-link/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,43 @@
import type { PageParam } from '@/api';
/**
* 常用链接
*/
export interface CmsLink {
// 自增ID
id?: number;
// 链接名称
name?: string;
// 图标
icon?: string;
// 链接地址
url?: string;
// 链接分类
linkType?: string;
// 应用ID
appId?: number;
// 用户ID
userId?: number;
// 是否推荐
recommend?: number;
// 备注
comments?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 状态, 0正常, 1待确认
status?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 常用链接搜索条件
*/
export interface CmsLinkParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsModel, CmsModelParam } from './model';
/**
* 分页查询模型
*/
export async function pageCmsModel(params: CmsModelParam) {
const res = await request.get<ApiResult<PageResult<CmsModel>>>(
'/cms/cms-model/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询模型列表
*/
export async function listCmsModel(params?: CmsModelParam) {
const res = await request.get<ApiResult<CmsModel[]>>(
'/cms/cms-model',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加模型
*/
export async function addCmsModel(data: CmsModel) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-model',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改模型
*/
export async function updateCmsModel(data: CmsModel) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-model',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除模型
*/
export async function removeCmsModel(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-model/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除模型
*/
export async function removeBatchCmsModel(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-model/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询模型
*/
export async function getCmsModel(id: number) {
const res = await request.get<ApiResult<CmsModel>>(
'/cms/cms-model/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,57 @@
import type { PageParam } from '@/api';
/**
* 模型
*/
export interface CmsModel {
// ID
modelId?: number;
// 模型名称
name?: string;
// 唯一标识
model?: string;
// 菜单路由地址
path?: string;
// 菜单组件地址, 目录可为空
component?: string;
// 模型banner图片
banner?: string;
// 缩列图
thumb?: string;
// 封面图宽
imageWidth?: string;
// 封面图高
imageHeight?: string;
// 样式
style?: string;
// Banner上的标题
title?: string;
// Banner上的描述
desc?: string;
// 列表显示方式(10小图展示 20大图展示)
showType?: number;
// 用户ID
userId?: number;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0已发布, 1待审核 2已驳回 3违规内容
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 模型搜索条件
*/
export interface CmsModelParam extends PageParam {
modelId?: number;
keywords?: string;
}

106
src/api/cms/cmsMp/index.ts Normal file
View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsMp, CmsMpParam } from './model';
/**
* 分页查询小程序信息
*/
export async function pageCmsMp(params: CmsMpParam) {
const res = await request.get<ApiResult<PageResult<CmsMp>>>(
'/cms/cms-mp/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询小程序信息列表
*/
export async function listCmsMp(params?: CmsMpParam) {
const res = await request.get<ApiResult<CmsMp[]>>(
'/cms/cms-mp',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加小程序信息
*/
export async function addCmsMp(data: CmsMp) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-mp',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改小程序信息
*/
export async function updateCmsMp(data: CmsMp) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-mp',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除小程序信息
*/
export async function removeCmsMp(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-mp/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除小程序信息
*/
export async function removeBatchCmsMp(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-mp/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询小程序信息
*/
export async function getCmsMp(id: number) {
const res = await request.get<ApiResult<CmsMp>>(
'/cms/cms-mp/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,61 @@
import type { PageParam } from '@/api';
/**
* 小程序信息
*/
export interface CmsMp {
// ID
mpId?: number;
// 是否主账号
type?: number;
// 小程序ID
appId?: string;
// 小程序密钥
appSecret?: string;
// 小程序名称
mpName?: string;
// 小程序简称
shortName?: string;
// 头像
avatar?: string;
// 小程序码
mpQrcode?: string;
// 微信认证
authentication?: number;
// 主体信息
companyName?: string;
// 小程序备案
icpNo?: string;
// 登录邮箱
email?: string;
// 登录密码
password?: string;
// 原始ID
ghId?: string;
// 入口页面
mainPath?: string;
// 过期时间
expirationTime?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 介绍
comments?: string;
// 用户ID
userId?: number;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 小程序信息搜索条件
*/
export interface CmsMpParam extends PageParam {
mpId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsMpAd, CmsMpAdParam } from './model';
/**
* 分页查询小程序广告位
*/
export async function pageCmsMpAd(params: CmsMpAdParam) {
const res = await request.get<ApiResult<PageResult<CmsMpAd>>>(
'/cms/cms-mp-ad/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询小程序广告位列表
*/
export async function listCmsMpAd(params?: CmsMpAdParam) {
const res = await request.get<ApiResult<CmsMpAd[]>>(
'/cms/cms-mp-ad',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加小程序广告位
*/
export async function addCmsMpAd(data: CmsMpAd) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-mp-ad',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改小程序广告位
*/
export async function updateCmsMpAd(data: CmsMpAd) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-mp-ad',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除小程序广告位
*/
export async function removeCmsMpAd(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-mp-ad/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除小程序广告位
*/
export async function removeBatchCmsMpAd(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-mp-ad/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询小程序广告位
*/
export async function getCmsMpAd(id: number) {
const res = await request.get<ApiResult<CmsMpAd>>(
'/cms/cms-mp-ad/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,47 @@
import type { PageParam } from '@/api';
/**
* 小程序广告位
*/
export interface CmsMpAd {
// ID
adId?: number;
// 页面ID
pageId?: number;
// 广告类型
adType?: string;
// 广告位名称
name?: string;
// 宽
width?: string;
// 高
height?: string;
// 广告图片
images?: string;
// 路由/链接地址
path?: string;
// 页面名称
pageName?: string;
// 用户ID
userId?: number;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 小程序广告位搜索条件
*/
export interface CmsMpAdParam extends PageParam {
adId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsMpField, CmsMpFieldParam } from './model';
/**
* 分页查询小程序配置
*/
export async function pageCmsMpField(params: CmsMpFieldParam) {
const res = await request.get<ApiResult<PageResult<CmsMpField>>>(
'/cms/cms-mp-field/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询小程序配置列表
*/
export async function listCmsMpField(params?: CmsMpFieldParam) {
const res = await request.get<ApiResult<CmsMpField[]>>(
'/cms/cms-mp-field',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加小程序配置
*/
export async function addCmsMpField(data: CmsMpField) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-mp-field',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改小程序配置
*/
export async function updateCmsMpField(data: CmsMpField) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-mp-field',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除小程序配置
*/
export async function removeCmsMpField(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-mp-field/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除小程序配置
*/
export async function removeBatchCmsMpField(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-mp-field/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询小程序配置
*/
export async function getCmsMpField(id: number) {
const res = await request.get<ApiResult<CmsMpField>>(
'/cms/cms-mp-field/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,35 @@
import type { PageParam } from '@/api';
/**
* 小程序配置
*/
export interface CmsMpField {
// 自增ID
id?: number;
// 类型0文本 1图片 2其他
type?: number;
// 名称
name?: string;
// 备注
comments?: string;
// 名称
value?: string;
// 页面ID
pageId?: number;
// 排序(数字越小越靠前)
sortNumber?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 小程序配置搜索条件
*/
export interface CmsMpFieldParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsMpMenu, CmsMpMenuParam } from './model';
/**
* 分页查询小程序端菜单
*/
export async function pageCmsMpMenu(params: CmsMpMenuParam) {
const res = await request.get<ApiResult<PageResult<CmsMpMenu>>>(
'/cms/cms-mp-menu/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询小程序端菜单列表
*/
export async function listCmsMpMenu(params?: CmsMpMenuParam) {
const res = await request.get<ApiResult<CmsMpMenu[]>>(
'/cms/cms-mp-menu',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加小程序端菜单
*/
export async function addCmsMpMenu(data: CmsMpMenu) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-mp-menu',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改小程序端菜单
*/
export async function updateCmsMpMenu(data: CmsMpMenu) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-mp-menu',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除小程序端菜单
*/
export async function removeCmsMpMenu(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-mp-menu/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除小程序端菜单
*/
export async function removeBatchCmsMpMenu(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-mp-menu/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询小程序端菜单
*/
export async function getCmsMpMenu(id: number) {
const res = await request.get<ApiResult<CmsMpMenu>>(
'/cms/cms-mp-menu/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,79 @@
import type { PageParam } from '@/api';
/**
* 小程序端菜单
*/
export interface CmsMpMenu {
// ID
menuId?: number;
// 上级id, 0是顶级
parentId?: number;
// 菜单名称
title?: string;
// 类型 0功能图标 1订单状态图标 2首页导航图标 3 商城导航图标 4管理人员功能图标
type?: number;
// 是否微信小程序菜单
isMpWeixin?: string;
// 菜单路由地址
path?: string;
// 菜单组件地址, 目录可为空
component?: string;
// 打开位置
target?: string;
// 菜单图标
avatar?: string;
// 图标颜色
color?: string;
// 上传图标
icon?: string;
// 是否隐藏, 0否, 1是(仅注册路由不显示在左侧菜单)
hide?: number;
// 位置 0不限 1顶部 2底部
position?: number;
// 0 第一行 1第二行
rows?: number;
// 菜单侧栏选中的path
active?: string;
// 其它路由元信息
meta?: string;
// 绑定的页面
pageId?: number;
// 绑定的文章分类ID
articleCategoryId?: number;
// 绑定的文章ID
articleId?: number;
// 绑定的表单ID
formId?: number;
// 绑定的书籍标识
bookCode?: string;
// 绑定的商品分类ID
goodsCategoryId?: number;
// 绑定的商品ID
goodsId?: number;
// 用户ID
userId?: number;
// 是否管理人员可见
adminShow?: number;
// 设为首页
home?: number;
// 分组名称
groupName?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0正常, 1冻结
status?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 小程序端菜单搜索条件
*/
export interface CmsMpMenuParam extends PageParam {
menuId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsMpPages, CmsMpPagesParam } from './model';
/**
* 分页查询小程序页面
*/
export async function pageCmsMpPages(params: CmsMpPagesParam) {
const res = await request.get<ApiResult<PageResult<CmsMpPages>>>(
'/cms/cms-mp-pages/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询小程序页面列表
*/
export async function listCmsMpPages(params?: CmsMpPagesParam) {
const res = await request.get<ApiResult<CmsMpPages[]>>(
'/cms/cms-mp-pages',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加小程序页面
*/
export async function addCmsMpPages(data: CmsMpPages) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-mp-pages',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改小程序页面
*/
export async function updateCmsMpPages(data: CmsMpPages) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-mp-pages',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除小程序页面
*/
export async function removeCmsMpPages(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-mp-pages/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除小程序页面
*/
export async function removeBatchCmsMpPages(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-mp-pages/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询小程序页面
*/
export async function getCmsMpPages(id: number) {
const res = await request.get<ApiResult<CmsMpPages>>(
'/cms/cms-mp-pages/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,47 @@
import type { PageParam } from '@/api';
/**
* 小程序页面
*/
export interface CmsMpPages {
// ID
id?: number;
// 上级id, 0是顶级
parentId?: number;
// 页面名称
title?: string;
// 页面路径
path?: string;
// 设为首页
home?: number;
// 分包
subpackage?: string;
// 图标
icon?: string;
// 未选中图标
iconPath?: string;
// 选中的图标
selectedIconPath?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 用户ID
userId?: number;
// 状态, 0正常, 1冻结
status?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 小程序页面搜索条件
*/
export interface CmsMpPagesParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,133 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsNavigation, CmsNavigationParam } from './model';
/**
* 分页查询网站导航记录表
*/
export async function pageCmsNavigation(params: CmsNavigationParam) {
const res = await request.get<ApiResult<PageResult<CmsNavigation>>>(
'/cms/cms-navigation/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询网站导航记录表列表
*/
export async function listCmsNavigation(params?: CmsNavigationParam) {
const res = await request.get<ApiResult<CmsNavigation[]>>(
'/cms/cms-navigation',
params
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询导航列表(树形结构)
*/
export async function treeNavigation(params?: CmsNavigationParam) {
const res = await request.get<ApiResult<CmsNavigation[]>>(
'/cms/cms-navigation/tree',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加网站导航记录表
*/
export async function addCmsNavigation(data: CmsNavigation) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-navigation',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改网站导航记录表
*/
export async function updateCmsNavigation(data: CmsNavigation) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-navigation',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除网站导航记录表
*/
export async function removeCmsNavigation(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-navigation/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除网站导航记录表
*/
export async function removeBatchCmsNavigation(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-navigation/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询网站导航记录表
*/
export async function getCmsNavigation(id: number) {
const res = await request.get<ApiResult<CmsNavigation>>(
'/cms/cms-navigation/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
export async function getNavigationByPath(params: CmsNavigationParam) {
const res = await request.get<ApiResult<CmsNavigation>>(
'/cms/cms-navigation/getNavigationByPath',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,114 @@
import type {PageParam} from '@/api/index';
import type {CmsDesign} from "@/api/cms/cmsDesign/model";
import type {CmsModel} from "@/api/cms/cmsModel/model";
/**
* 网站导航记录表
*/
export interface CmsNavigation {
// ID
navigationId?: number;
// 上级id, 0是顶级
parentId?: number;
// 菜单名称
title?: string;
// 模型
model?: string;
// 标识
code?: string;
// 菜单路由地址
path?: string;
// 菜单组件地址, 目录可为空
component?: string;
// 组件路径
componentPath?: string;
// 打开位置
target?: string;
// 菜单图标
icon?: string;
// banner图片
banner?: string;
// 图标颜色
color?: string;
// 是否隐藏, 0否, 1是(仅注册路由不显示在左侧菜单)
hide?: number;
// 可见类型 0所有人 1登录可见 2密码可见
permission?: number;
// 访问密码
password?: string;
// 位置 0不限 1顶部 2底部
position?: number;
// 仅在顶部显示
top?: number;
// 仅在底部显示
bottom?: number;
// 菜单侧栏选中的path
active?: string;
// 其它路由元信息
meta?: string;
// css样式
style?: string;
// 父级栏目路由
parentPath?: string;
// 父级栏目名称
parentName?: string;
// 模型名称
modelName?: string;
// 类型(已废弃)
type?: number;
// 绑定的页面(已废弃)
pageId?: number;
// 项目ID
itemId?: number;
// 是否微信小程序菜单
isMpWeixin?: string;
// 用户ID
userId?: number;
// 设为首页
home?: number;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 是否删除, 0否, 1是
deleted?: number;
// 状态, 0正常, 1冻结
status?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 父级栏目
parent?: CmsNavigation;
// 子级栏目
children?: CmsNavigation[];
// 模型信息
modelInfo?: CmsModel;
// 栏目名称
categoryName?: string;
// 是否禁用
disabled?: boolean;
// 链接地址
design?: CmsDesign;
// 子级数量
childHeight?: number,
// 是否展开
showChild?: boolean
// 布局
layout?: any;
// 标题
label?: string;
// 值
value?: number;
}
/**
* 网站导航记录表搜索条件
*/
export interface CmsNavigationParam extends PageParam {
navigationId?: number;
parentId?: number;
hide?: number;
model?: string;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsOrder, CmsOrderParam } from './model';
/**
* 分页查询订单
*/
export async function pageCmsOrder(params: CmsOrderParam) {
const res = await request.get<ApiResult<PageResult<CmsOrder>>>(
'/cms/cms-order/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询订单列表
*/
export async function listCmsOrder(params?: CmsOrderParam) {
const res = await request.get<ApiResult<CmsOrder[]>>(
'/cms/cms-order',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加订单
*/
export async function addCmsOrder(data: CmsOrder) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-order',
data
);
if (res.code === 0) {
return res;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改订单
*/
export async function updateCmsOrder(data: CmsOrder) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-order',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除订单
*/
export async function removeCmsOrder(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-order/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除订单
*/
export async function removeBatchCmsOrder(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-order/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询订单
*/
export async function getCmsOrder(id: number) {
const res = await request.get<ApiResult<CmsOrder>>(
'/cms/cms-order/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,69 @@
import type { PageParam } from '@/api/index';
/**
* 订单
*/
export interface CmsOrder {
// 订单号
orderId?: number;
// 关联模型
model?: string;
// 订单标题
title?: string;
// 订单编号
orderNo?: string;
// 订单类型0商城 1询价 2留言
type?: number;
// 关联文章ID
articleId?: number;
// 真实姓名
realName?: string;
// 手机号码
phone?: string;
// 电子邮箱
email?: string;
// 收货地址
address?: string;
// 订单内容
content?: string;
// 订单总额
totalPrice?: string;
// 实际付款
payPrice?: string;
// 报价询价
price?: string;
// 购买数量
totalNum?: number;
// 二维码地址,保存订单号,支付成功后才生成
qrcode?: string;
// 下单渠道0网站 1小程序 2其他
channel?: number;
// 过期时间
expirationTime?: string;
// 订单是否已结算(0未结算 1已结算)
isSettled?: number;
// 用户id
userId?: number;
// 备注
comments?: string;
// 排序号
sortNumber?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 图像验证码
code?: string;
// 图像验证码内容
text?: string;
}
/**
* 订单搜索条件
*/
export interface CmsOrderParam extends PageParam {
orderId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,116 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsProduct, CmsProductParam } from './model';
/**
* 分页查询产品
*/
export async function pageCmsProduct(params: CmsProductParam) {
const res = await request.get<ApiResult<PageResult<CmsProduct>>>(
'/cms/cms-product/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询产品列表
*/
export async function listCmsProduct(params?: CmsProductParam) {
const res = await request.get<ApiResult<CmsProduct[]>>(
'/cms/cms-product',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加产品
*/
export async function addCmsProduct(data: CmsProduct) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-product',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改产品
*/
export async function updateCmsProduct(data: CmsProduct) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-product',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除产品
*/
export async function removeCmsProduct(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-product/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除产品
*/
export async function removeBatchCmsProduct(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-product/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询产品
*/
export async function getCmsProduct(id: number) {
const res = await request.get<ApiResult<CmsProduct>>(
'/cms/cms-product/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
export async function getCount(params: CmsProductParam) {
const res = await request.get('/cms/cms-product/data', {
params
});
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,98 @@
import type { PageParam } from '@/api';
/**
* 产品
*/
export interface CmsProduct {
// 自增ID
productId?: number;
// 类型 0软件产品 1实物商品 2虚拟商品
type?: number;
// 产品编码
code?: string;
// 产品标题
title?: string;
// 封面图
image?: string;
// 产品详情
content?: string;
// 父级分类ID
parentId?: number;
// 父级栏目名称
parentName?: string;
// 产品分类ID
categoryId?: number;
// 分类名称
categoryName?: string;
// 关联的菜单ID
menuId?: number;
// 控制台入口
path?: string;
// 产品规格 0单规格 1多规格
specs?: number;
// 货架
position?: string;
// 单位名称 (个)
unitName?: string;
// 进货价格
price?: string;
// 销售价格
salePrice?: string;
// 标签
tag?: string;
// 库存计算方式(10下单减库存 20付款减库存)
deductStockType?: number;
// 交付方式
deliveryMethod?: number;
// 购买时长
durationMethod?: number;
// 服务套餐
serverMethod?: number;
// 套餐版本
packageMethod?: number;
// 可购买数量
canBuyNumber?: number;
// 轮播图
files?: string;
// 销量
sales?: number;
// 库存
stock?: number;
// 消费赚取积分
gainIntegral?: string;
// 推荐
recommend?: number;
// 是否官方自营
official?: number;
// 商户ID
merchantId?: number;
// 状态0未上架1上架
isShow?: string;
// 状态, 0上架 1待上架 2待审核 3审核不通过
status?: number;
// 备注
comments?: string;
// 排序号
sortNumber?: number;
// 用户ID
userId?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
}
/**
* 产品搜索条件
*/
export interface CmsProductParam extends PageParam {
productId?: number;
type?: number;
official?: number;
status?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type {ApiResult, PageResult} from '@/api';
import type {CmsProductComment, CmsProductCommentParam} from './model';
/**
* 分页查询产品评论
*/
export async function pageCmsProductComment(params: CmsProductCommentParam) {
const res = await request.get<ApiResult<PageResult<CmsProductComment>>>(
'/cms/cms-product-comment/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询产品评论列表
*/
export async function listCmsProductComment(params?: CmsProductCommentParam) {
const res = await request.get<ApiResult<CmsProductComment[]>>(
'/cms/cms-product-comment',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加产品评论
*/
export async function addCmsProductComment(data: CmsProductComment) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-product-comment',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改产品评论
*/
export async function updateCmsProductComment(data: CmsProductComment) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-product-comment',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除产品评论
*/
export async function removeCmsProductComment(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-product-comment/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除产品评论
*/
export async function removeBatchCmsProductComment(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-product-comment/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询产品评论
*/
export async function getCmsProductComment(id: number) {
const res = await request.get<ApiResult<CmsProductComment>>(
'/cms/cms-product-comment/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,37 @@
import type { PageParam } from '@/api';
/**
* 产品评论
*/
export interface CmsProductComment {
// ID
id?: number;
// 产品ID
productId?: number;
// 用户ID
userId?: number;
// 昵称
nickname?: string;
// 用户头像
avatar?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 评论内容
comments?: string;
// 状态
status?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
image?: string;
}
/**
* 产品评论搜索条件
*/
export interface CmsProductCommentParam extends PageParam {
id?: number;
userId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsProductParameter, CmsProductParameterParam } from './model';
/**
* 分页查询产品参数
*/
export async function pageCmsProductParameter(params: CmsProductParameterParam) {
const res = await request.get<ApiResult<PageResult<CmsProductParameter>>>(
'/cms/cms-product-parameter/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询产品参数列表
*/
export async function listCmsProductParameter(params?: CmsProductParameterParam) {
const res = await request.get<ApiResult<CmsProductParameter[]>>(
'/cms/cms-product-parameter',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加产品参数
*/
export async function addCmsProductParameter(data: CmsProductParameter) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-product-parameter',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改产品参数
*/
export async function updateCmsProductParameter(data: CmsProductParameter) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-product-parameter',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除产品参数
*/
export async function removeCmsProductParameter(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-product-parameter/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除产品参数
*/
export async function removeBatchCmsProductParameter(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-product-parameter/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询产品参数
*/
export async function getCmsProductParameter(id: number) {
const res = await request.get<ApiResult<CmsProductParameter>>(
'/cms/cms-product-parameter/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,33 @@
import type { PageParam } from '@/api';
/**
* 产品参数
*/
export interface CmsProductParameter {
// 自增ID
id?: number;
// 产品ID
productId?: number;
// 参数名称
name?: string;
// 参数内容
value?: string;
// 备注
comments?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 状态, 0正常, 1待确认
status?: number;
// 创建时间
createTime?: string;
// 租户id
tenantId?: number;
}
/**
* 产品参数搜索条件
*/
export interface CmsProductParameterParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsProductSpec, CmsProductSpecParam } from './model';
/**
* 分页查询规格
*/
export async function pageCmsProductSpec(params: CmsProductSpecParam) {
const res = await request.get<ApiResult<PageResult<CmsProductSpec>>>(
'/cms/cms-product-spec/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询规格列表
*/
export async function listCmsProductSpec(params?: CmsProductSpecParam) {
const res = await request.get<ApiResult<CmsProductSpec[]>>(
'/cms/cms-product-spec',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加规格
*/
export async function addCmsProductSpec(data: CmsProductSpec) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-product-spec',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改规格
*/
export async function updateCmsProductSpec(data: CmsProductSpec) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-product-spec',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除规格
*/
export async function removeCmsProductSpec(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-product-spec/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除规格
*/
export async function removeBatchCmsProductSpec(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-product-spec/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询规格
*/
export async function getCmsProductSpec(id: number) {
const res = await request.get<ApiResult<CmsProductSpec>>(
'/cms/cms-product-spec/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,35 @@
import type { PageParam } from '@/api';
/**
* 规格
*/
export interface CmsProductSpec {
// 规格ID
specId?: number;
// 规格名称
specName?: string;
// 规格值
specValue?: string;
// 创建用户
userId?: number;
// 更新者
updater?: number;
// 备注
comments?: string;
// 状态, 0正常, 1待修,2异常已修3异常未修
status?: number;
// 排序号
sortNumber?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 规格搜索条件
*/
export interface CmsProductSpecParam extends PageParam {
specId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsProductSpecValue, CmsProductSpecValueParam } from './model';
/**
* 分页查询规格值
*/
export async function pageCmsProductSpecValue(params: CmsProductSpecValueParam) {
const res = await request.get<ApiResult<PageResult<CmsProductSpecValue>>>(
'/cms/cms-product-spec-value/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询规格值列表
*/
export async function listCmsProductSpecValue(params?: CmsProductSpecValueParam) {
const res = await request.get<ApiResult<CmsProductSpecValue[]>>(
'/cms/cms-product-spec-value',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加规格值
*/
export async function addCmsProductSpecValue(data: CmsProductSpecValue) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-product-spec-value',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改规格值
*/
export async function updateCmsProductSpecValue(data: CmsProductSpecValue) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-product-spec-value',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除规格值
*/
export async function removeCmsProductSpecValue(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-product-spec-value/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除规格值
*/
export async function removeBatchCmsProductSpecValue(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-product-spec-value/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询规格值
*/
export async function getCmsProductSpecValue(id: number) {
const res = await request.get<ApiResult<CmsProductSpecValue>>(
'/cms/cms-product-spec-value/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,29 @@
import type { PageParam } from '@/api';
/**
* 规格值
*/
export interface CmsProductSpecValue {
// 规格值ID
specValueId?: number;
// 规格组ID
specId?: number;
// 规格值
specValue?: string;
// 备注
comments?: string;
// 排序号
sortNumber?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 规格值搜索条件
*/
export interface CmsProductSpecValueParam extends PageParam {
specValueId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type {ApiResult, PageResult} from '@/api';
import type {CmsProductUrl, CmsProductUrlParam} from './model';
/**
* 分页查询域名
*/
export async function pageCmsProductUrl(params: CmsProductUrlParam) {
const res = await request.get<ApiResult<PageResult<CmsProductUrl>>>(
'/cms/cms-product-url/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询域名列表
*/
export async function listCmsProductUrl(params?: CmsProductUrlParam) {
const res = await request.get<ApiResult<CmsProductUrl[]>>(
'/cms/cms-product-url',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加域名
*/
export async function addCmsProductUrl(data: CmsProductUrl) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-product-url',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改域名
*/
export async function updateCmsProductUrl(data: CmsProductUrl) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-product-url',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除域名
*/
export async function removeCmsProductUrl(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-product-url/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除域名
*/
export async function removeBatchCmsProductUrl(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-product-url/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询域名
*/
export async function getCmsProductUrl(id: number) {
const res = await request.get<ApiResult<CmsProductUrl>>(
'/cms/cms-product-url/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,41 @@
import type { PageParam } from '@/api/index';
/**
* 域名
*/
export interface CmsProductUrl {
// 自增ID
id?: number;
// 产品ID
productId?: number;
// 域名类型
type?: string;
// 域名
domain?: string;
// 账号
account?: string;
// 密码
password?: string;
// 商户ID
merchantId?: number;
// 二维码
qrcode?: string;
// 备注
comments?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 状态, 0正常, 1待确认
status?: number;
// 创建时间
createTime?: string;
// 租户id
tenantId?: number;
}
/**
* 域名搜索条件
*/
export interface CmsProductUrlParam extends PageParam {
id?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsSpec, CmsSpecParam } from './model';
/**
* 分页查询规格
*/
export async function pageCmsSpec(params: CmsSpecParam) {
const res = await request.get<ApiResult<PageResult<CmsSpec>>>(
'/cms/cms-spec/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询规格列表
*/
export async function listCmsSpec(params?: CmsSpecParam) {
const res = await request.get<ApiResult<CmsSpec[]>>(
'/cms/cms-spec',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加规格
*/
export async function addCmsSpec(data: CmsSpec) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-spec',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改规格
*/
export async function updateCmsSpec(data: CmsSpec) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-spec',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除规格
*/
export async function removeCmsSpec(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-spec/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除规格
*/
export async function removeBatchCmsSpec(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-spec/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询规格
*/
export async function getCmsSpec(id: number) {
const res = await request.get<ApiResult<CmsSpec>>(
'/cms/cms-spec/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,35 @@
import type { PageParam } from '@/api';
/**
* 规格
*/
export interface CmsSpec {
// 规格ID
specId?: number;
// 规格名称
specName?: string;
// 规格值
specValue?: string;
// 创建用户
userId?: number;
// 更新者
updater?: number;
// 备注
comments?: string;
// 状态, 0正常, 1待修,2异常已修3异常未修
status?: number;
// 排序号
sortNumber?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 规格搜索条件
*/
export interface CmsSpecParam extends PageParam {
specId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsSpecValue, CmsSpecValueParam } from './model';
/**
* 分页查询规格值
*/
export async function pageCmsSpecValue(params: CmsSpecValueParam) {
const res = await request.get<ApiResult<PageResult<CmsSpecValue>>>(
'/cms/cms-spec-value/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询规格值列表
*/
export async function listCmsSpecValue(params?: CmsSpecValueParam) {
const res = await request.get<ApiResult<CmsSpecValue[]>>(
'/cms/cms-spec-value',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加规格值
*/
export async function addCmsSpecValue(data: CmsSpecValue) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-spec-value',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改规格值
*/
export async function updateCmsSpecValue(data: CmsSpecValue) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-spec-value',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除规格值
*/
export async function removeCmsSpecValue(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-spec-value/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除规格值
*/
export async function removeBatchCmsSpecValue(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-spec-value/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询规格值
*/
export async function getCmsSpecValue(id: number) {
const res = await request.get<ApiResult<CmsSpecValue>>(
'/cms/cms-spec-value/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,29 @@
import type { PageParam } from '@/api';
/**
* 规格值
*/
export interface CmsSpecValue {
// 规格值ID
specValueId?: number;
// 规格组ID
specId?: number;
// 规格值
specValue?: string;
// 备注
comments?: string;
// 排序号
sortNumber?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 规格值搜索条件
*/
export interface CmsSpecValueParam extends PageParam {
specValueId?: number;
keywords?: string;
}

View File

@@ -0,0 +1,147 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsWebsite, CmsWebsiteParam } from './model';
/**
* 分页查询网站信息记录表
*/
export async function pageCmsWebsite(params: CmsWebsiteParam) {
const res = await request.get<ApiResult<PageResult<CmsWebsite>>>(
'/cms/cms-website/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询网站
*/
export async function getCmsWebsiteAll(id: number) {
const res = await request.get<ApiResult<CmsWebsite>>(
'/cms/cms-website/getAll/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询网站信息记录表列表
*/
export async function listCmsWebsite(params?: CmsWebsiteParam) {
const res = await request.get<ApiResult<CmsWebsite[]>>(
'/cms/cms-website',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加网站信息记录表
*/
export async function addCmsWebsite(data: CmsWebsite) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-website',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改网站信息记录表
*/
export async function updateCmsWebsite(data: CmsWebsite) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-website',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除网站信息记录表
*/
export async function removeCmsWebsite(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-website/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除网站信息记录表
*/
export async function removeBatchCmsWebsite(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-website/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询网站信息记录表
*/
export async function getCmsWebsite(id: number) {
const res = await request.get<ApiResult<CmsWebsite>>(
'/cms/cms-website/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 清除缓存
*/
export async function removeSiteInfoCache(key?: string) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-website/clearSiteInfo/' + key
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 分页查询网站信息记录表
* @param params
*/
export async function pageCmsWebsiteAll(params: CmsWebsiteParam) {
const res = await request.get<ApiResult<PageResult<CmsWebsite>>>(
'/cms/cms-website/pageAll',
params
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,110 @@
import type { PageParam } from '@/api/index';
import type {CmsNavigation} from "@/api/cms/cmsNavigation/model";
/**
* 网站信息记录表
*/
export interface CmsWebsite {
// 站点ID
websiteId?: number;
// 网站名称
websiteName?: string;
// 网站标识
websiteCode?: string;
// 网站LOGO
websiteIcon?: string;
// 网站LOGO
websiteLogo?: string;
// 网站LOGO(深色模式)
websiteDarkLogo?: string;
// 网站类型
websiteType?: string;
// 网站关键词
keywords?: string;
// 域名前缀
prefix?: string;
// 绑定域名
domain?: string;
// 全局样式
style?: string;
// 后台管理地址
adminUrl?: string;
// 应用版本 10免费版 20专业版 30永久授权
version?: number;
// 服务到期时间
expirationTime?: string;
// 模版ID
templateId?: number;
// 行业类型(父级)
industryParent?: string;
// 行业类型(子级)
industryChild?: string;
// 企业ID
companyId?: number;
// 所在国家
country?: string;
// 所在省份
province?: string;
// 所在城市
city?: string;
// 所在辖区
region?: string;
// 经度
longitude?: string;
// 纬度
latitude?: string;
// 街道地址
address?: string;
// 联系电话
phone?: string;
// 电子邮箱
email?: string;
// ICP备案号
icpNo?: string;
// 公安备案
policeNo?: string;
// 备注
comments?: string;
// 是否推荐
recommend?: number;
// 运行状态
running?: number;
// 状态 0未开通 1运行中 2维护中 3已关闭 4已欠费停机 5违规关停
status?: number;
// 维护说明
statusText?: string;
// 关闭说明
statusClose?: string;
// 状态图标
statusIcon?: string;
// 全局样式
styles?: string;
// 排序号
sortNumber?: number;
// 用户ID
userId?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
// 修改时间
updateTime?: string;
// 网站配置
config?: any;
topNavs?: CmsNavigation[];
bottomNavs?: CmsNavigation[];
loginUser?: any;
search?: boolean;
}
/**
* 网站信息记录表搜索条件
*/
export interface CmsWebsiteParam extends PageParam {
websiteId?: number;
status?: number;
phone?: string;
keywords?: string;
}

View File

@@ -0,0 +1,131 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type {CmsWebsiteField, CmsWebsiteFieldParam, Config} from './model';
/**
* 分页查询应用参数
*/
export async function pageCmsWebsiteField(params: CmsWebsiteFieldParam) {
const res = await request.get<ApiResult<PageResult<CmsWebsiteField>>>(
'/cms/cms-website-field/page',
params
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询应用参数列表
*/
export async function listCmsWebsiteField(params?: CmsWebsiteFieldParam) {
const res = await request.get<ApiResult<CmsWebsiteField[]>>(
'/cms/cms-website-field',
params
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加应用参数
*/
export async function addCmsWebsiteField(data: CmsWebsiteField) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-website-field',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改应用参数
*/
export async function updateCmsWebsiteField(data: CmsWebsiteField) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-website-field',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除应用参数
*/
export async function removeCmsWebsiteField(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-website-field/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除应用参数
*/
export async function removeBatchCmsWebsiteField(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/cms-website-field/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询应用参数
*/
export async function getCmsWebsiteField(id: number) {
const res = await request.get<ApiResult<CmsWebsiteField>>(
'/cms/cms-website-field/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 恢复项目参数
*/
export async function undeleteWebsiteField(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/website-field/undelete/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询项目参数列表
*/
export async function configWebsiteField(params?: CmsWebsiteFieldParam) {
const res = await request.get<ApiResult<Config>>(
'/cms/cms-website-field/config',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,56 @@
import type { PageParam } from '@/api/index';
/**
* 应用参数
*/
export interface CmsWebsiteField {
// 自增ID
id?: number;
// 类型0文本 1图片 2其他
type?: number;
// 名称
name?: string;
// 默认值
defaultValue?: string;
// 可修改的值 [on|off]
modifyRange?: string;
// 备注
comments?: string;
// css样式
style?: string;
// 名称
value?: string;
// 排序(数字越小越靠前)
sortNumber?: number;
// 是否删除, 0否, 1是
deleted?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 应用参数搜索条件
*/
export interface CmsWebsiteFieldParam extends PageParam {
id?: number;
name?: string;
keywords?: string;
}
export interface Config {
siteName?: string;
siteLogo?: string;
domain?: string;
icpNo?: string;
copyright?: string;
loginBgImg?: string;
address?: string;
tel?: string;
kefu2?: string;
kefu1?: string;
email?: string;
loginTitle?: string;
sysLogo?: string;
}

113
src/api/cms/link/index.ts Normal file
View File

@@ -0,0 +1,113 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { Link, LinkParam } from './model';
/**
* 分页查询链接
*/
export async function pageLink(params: LinkParam) {
const res = await request.get<ApiResult<PageResult<Link>>>(
'/oa/link/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询链接列表
*/
export async function listLink(params?: LinkParam) {
const res = await request.get<ApiResult<Link[]>>(
'/oa/link',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加链接
*/
export async function addLink(data: Link) {
const res = await request.post<ApiResult<unknown>>(
'/oa/link',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改链接
*/
export async function updateLink(data: Link) {
const res = await request.put<ApiResult<unknown>>(
'/oa/link',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除链接
*/
export async function removeLink(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/oa/link/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除链接
*/
export async function removeBatchLink(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/oa/link/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 检查IP是否存在
*/
export async function checkExistence(
field: string,
value: string,
id?: number
) {
const res = await request.get<ApiResult<unknown>>(
'/oa/link/existence',
{
params: { field, value, id }
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,31 @@
import type { PageParam } from '@/api/index';
/**
* 链接
*/
export interface Link {
id?: number;
name?: string;
icon?: string;
url?: string;
linkType?: string;
appId?: number;
categoryId?: number;
userId?: number;
comments?: string;
recommend?: number;
sortNumber?: number;
deleted?: number;
status?: number;
createTime?: number;
}
/**
* 链接搜索条件
*/
export interface LinkParam extends PageParam {
id?: number;
linkType?: string;
categoryId?: number;
name?: string;
}

View File

@@ -0,0 +1,106 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import type { MpOfficialMenu, MpOfficialMenuParam } from './model';
/**
* 分页查询小程序端菜单
*/
export async function pageMpOfficialMenu(params: MpOfficialMenuParam) {
const res = await request.get<ApiResult<PageResult<MpOfficialMenu>>>(
'/cms/mp-official-menu/page',
{
params
}
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 查询小程序端菜单列表
*/
export async function listMpOfficialMenu(params?: MpOfficialMenuParam) {
const res = await request.get<ApiResult<MpOfficialMenu[]>>(
'/cms/mp-official-menu',
{
params
}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加小程序端菜单
*/
export async function addMpOfficialMenu(data: MpOfficialMenu) {
const res = await request.post<ApiResult<unknown>>(
'/cms/mp-official-menu',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改小程序端菜单
*/
export async function updateMpOfficialMenu(data: MpOfficialMenu) {
const res = await request.put<ApiResult<unknown>>(
'/cms/mp-official-menu',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除小程序端菜单
*/
export async function removeMpOfficialMenu(id?: number) {
const res = await request.del<ApiResult<unknown>>(
'/cms/mp-official-menu/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 批量删除小程序端菜单
*/
export async function removeBatchMpOfficialMenu(data: (number | undefined)[]) {
const res = await request.del<ApiResult<unknown>>(
'/cms/mp-official-menu/batch',
{
data
}
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 根据id查询小程序端菜单
*/
export async function getMpOfficialMenu(id: number) {
const res = await request.get<ApiResult<MpOfficialMenu>>(
'/cms/mp-official-menu/' + id
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,37 @@
import type { PageParam } from '@/api';
/**
* 小程序端菜单
*/
export interface MpOfficialMenu {
// ID
id?: number;
// 上级id, 0是顶级
parentId?: number;
// 菜单名称
name?: string;
// 类型
type?: string;
// 菜单值
key?: string;
// 用户ID
userId?: number;
// 排序(数字越小越靠前)
sortNumber?: number;
// 备注
comments?: string;
// 状态, 0正常, 1冻结
status?: number;
// 租户id
tenantId?: number;
// 创建时间
createTime?: string;
}
/**
* 小程序端菜单搜索条件
*/
export interface MpOfficialMenuParam extends PageParam {
id?: number;
keywords?: string;
}

62
src/api/index.ts Normal file
View File

@@ -0,0 +1,62 @@
/**
* 接口统一返回结果
*/
export interface ApiResult<T> {
// 状态码
code: number;
// 状态信息
message?: string;
// 返回数据
data?: T;
}
/**
* 分页查询统一结果
*/
export interface PageResult<T> {
// 返回数据
list: T[];
// 总数量
count: number;
}
/**
* 分页查询基本参数
*/
export interface PageParam {
// 第几页
page?: number;
// 每页多少条
limit?: number;
// 排序字段
sort?: string;
sortNum?: string;
// 排序方式, asc升序, desc降序
order?: string;
// 租户ID
tenantId?: number;
// 企业ID
companyId?: number;
// 商户ID
merchantId?: number;
merchantName?: string;
categoryIds?: any;
// 商品分类
categoryId?: number;
categoryName?: string;
// 搜素关键词
keywords?: string;
// 起始时间
createTimeStart?: string;
// 结束时间
createTimeEnd?: string;
timeStart?: number;
timeEnd?: number;
isExpireTime?: number;
showSoldStatus?: boolean;
dateTime?: string;
lang?: string;
model?: string;
type?: string;
BaseUrl?: string;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

117
src/api/layout/index.ts Normal file
View File

@@ -0,0 +1,117 @@
import request from '@/utils/request';
import type { ApiResult } from '@/api/index';
import type { User } from '@/api/system/user/model';
import type { UpdatePasswordParam } from './model';
import type {CmsWebsite} from "@/api/cms/cmsWebsite/model";
import {SERVER_API_URL} from "@/utils/server";
/**
* 获取网站信息
*/
export async function getSiteInfo() {
const res = await request.get<ApiResult<CmsWebsite>>(
'/cms/cms-website/getSiteInfo'
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 获取当前登录的用户信息、菜单、权限、角色
*/
export async function getUserInfo(): Promise<User> {
const res = await request.get<ApiResult<User>>(SERVER_API_URL + '/auth/user');
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
export async function updateUserInfo(data: User): Promise<User> {
const res = await request.put<ApiResult<unknown>>(
SERVER_API_URL + '/auth/user',
data
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 获取服务器时间(实时)
* @return
*/
export async function getServerTime() {
const res = await request.get<ApiResult<any>>(
'/cms/website/getServerTime'
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 获取未来7天的日期
* @return
*/
export async function getNext7day() {
const res = await request.get<ApiResult<any>>(
'/cms/website/getNext7day'
);
console.log('res.data.code: ', res.data.code);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 向子模块传递token
* @param url
*/
export async function transferToken(url: string): Promise<string> {
const res = await request.get<ApiResult<unknown>>(url);
return Promise.reject(new Error(res.message));
}
/**
* 修改当前登录的用户密码
*/
export async function updatePassword(
data: UpdatePasswordParam
): Promise<string> {
const res = await request.put<ApiResult<unknown>>(
'/auth/password',
data
);
if (res.code === 0) {
return res.message ?? '修改成功';
}
return Promise.reject(new Error(res.message));
}
/**
* 获取微信小程序登录凭证
*/
export async function getWxOpenId(data: any) {
const res = await request.post<ApiResult<any>>(SERVER_API_URL + '/wx-login/getWxOpenId',data);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
// 获取微信openId
export async function loginByOpenId(data: any) {
const res = await request.post<ApiResult<any>>(SERVER_API_URL + '/wx-login/loginByOpenId', data);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,29 @@
/**
* 首页布局样式
*/
export interface Layout {
// 内容区域的宽度
width?: string;
// 文字颜色
color?: string;
// 高亮颜色
hover?: string;
// 背景颜色
backgroundColor?: string;
headerStyle?: any;
siteNameStyle?: any;
showBanner?: boolean;
// 背景图片
banner?: string;
}
/**
* 修改密码参数
*/
export interface UpdatePasswordParam {
// 新密码
password: string;
// 原始密码
oldPassword: string;
}

View File

@@ -0,0 +1,140 @@
import request from '@/utils/request';
import type { ApiResult } from '@/api/index';
import type {
LoginParam,
LoginResult,
CaptchaResult,
SmsCaptchaResult
} from './model';
import {saveStorageByLoginUser, SERVER_API_URL} from "@/utils/server";
/**
* 登录
*/
export async function login(data: LoginParam) {
const res = await request.post<ApiResult<LoginResult>>(
SERVER_API_URL + '/login',
data
);
if (res.code === 0) {
// setToken(res.data.data?.access_token, data.remember);
if (res.data?.user) {
const user = res.data?.user;
localStorage.setItem('TenantId', String(user.tenantId));
localStorage.setItem('UserId', String(user.userId));
}
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 获取验证码
*/
export async function getCaptcha() {
const res = await request.get<ApiResult<CaptchaResult>>(
SERVER_API_URL + '/captcha',
{}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
export async function loginBySms(data: LoginParam) {
const res = await request.post<ApiResult<LoginResult>>(
SERVER_API_URL + '/loginBySms',
data
);
if (res.code === 0) {
if(res.data?.user){
saveStorageByLoginUser(`${res.data?.access_token}`, res.data?.user)
}
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 发送短信验证码
*/
export async function sendSmsCaptcha(data: LoginParam) {
const res = await request.post<ApiResult<SmsCaptchaResult>>(
SERVER_API_URL + '/sendSmsCaptcha',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
export async function getOpenId(data: any){
const res = request.post<ApiResult<LoginResult>>(
SERVER_API_URL + '/wx-login/getOpenId',
data
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
export async function loginByOpenId(data:any){
const res = request.post<ApiResult<LoginResult>>(
SERVER_API_URL + '/wx-login/loginByOpenId',
data
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 登录
*/
export async function remoteLogin(data: LoginParam) {
const res = await request.post<ApiResult<LoginResult>>(
'https://open.gxwebsoft.com/api/login',
data
);
if (res.code === 0) {
// setToken(res.data.data?.access_token, data.remember);
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 获取企业微信登录链接
*/
export async function getWxWorkQrConnect(data: any) {
const res = await request.post<ApiResult<unknown>>(
'/wx-work',
data
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
export async function loginMpWxMobile(data: {
refereeId: number;
gradeId: number;
code: any;
sceneType: string;
comments: string;
encryptedData: any;
tenantId: string;
iv: any;
notVerifyPhone: boolean
}) {
const res = request.post<ApiResult<unknown>>(SERVER_API_URL + '/wx-login/loginByMpWxPhone', data);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}

View File

@@ -0,0 +1,46 @@
import type { User } from '@/api/system/user/model';
/**
* 登录参数
*/
export interface LoginParam {
// 账号
username?: string;
// 密码
password?: string;
// 租户id
tenantId?: number;
// 是否记住密码
remember?: boolean;
// 手机号码
phone?: string;
// 短信验证码
code?: string;
}
/**
* 登录返回结果
*/
export interface LoginResult {
// token
access_token?: string;
// 用户信息
user?: User;
}
/**
* 图形验证码返回结果
*/
export interface CaptchaResult {
// 图形验证码base64数据
base64: string;
// 验证码文本
text: string;
}
/**
* 短信验证码返回结果
*/
export interface SmsCaptchaResult {
// 验证码文本
text: string;
}

View File

@@ -0,0 +1,59 @@
import request from '@/utils/request';
import type { ApiResult } from '@/api/index';
import type { AccessKey, AccessKeyParam } from './model';
import { PageResult } from '@/api/index';
import {SERVER_API_URL} from "@/utils/server";
/**
* 查询AccessKey列表
*/
export async function pageAccessKey(params: AccessKeyParam) {
const res = await request.get<ApiResult<PageResult<AccessKey>>>(
SERVER_API_URL + '/system/access-key/page',
{ params }
);
if (res.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
/**
* 添加AccessKey
*/
export async function addAccessKey(data: AccessKey) {
const res = await request.post<ApiResult<unknown>>(
SERVER_API_URL + '/system/access-key',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 修改AccessKey
*/
export async function updateAccessKey(data: AccessKey) {
const res = await request.put<ApiResult<unknown>>(
SERVER_API_URL + '/system/access-key',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 删除AccessKey
*/
export async function removeAccessKey(id?: number) {
const res = await request.del<ApiResult<unknown>>(
SERVER_API_URL + '/system/access-key/' + id
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}

Some files were not shown because too many files have changed in this diff Show More