style(api): 统一代码格式化规范

- 调整 import 语句格式,统一空格和引号风格
- 修复函数参数跨行时的格式对齐问题
- 清理多余空行和注释中的空白字符
- 统一对象属性结尾逗号的使用规范
- 规范化字符串拼接和模板语法的格式
- 优化长参数列表的换行和缩进格式
This commit is contained in:
2026-01-17 17:04:46 +08:00
parent 836fd4d8d0
commit 4af50e6449
416 changed files with 24611 additions and 22733 deletions

View File

@@ -1,5 +1,5 @@
VITE_APP_NAME=后台管理(开发环境)
VITE_API_URL=http://127.0.0.1:9200/api
#VITE_API_URL=http://127.0.0.1:9200/api
#VITE_SERVER_API_URL=http://127.0.0.1:8000/api

View File

@@ -1,7 +1,7 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import { MODULES_API_URL } from '@/config/setting';
import {ShopOrder, ShopOrderParam} from "@/api/shop/shopOrder/model";
import { ShopOrder, ShopOrderParam } from '@/api/shop/shopOrder/model';
/**
* 分页查询百色中学-捐款记录
@@ -19,7 +19,6 @@ export async function pageBszxOrder(params: ShopOrderParam) {
return Promise.reject(new Error(res.data.message));
}
/**
* 统计订单总金额(只统计有效订单)
*/

View File

@@ -2,7 +2,7 @@ import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { BszxPay, BszxPayParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
import {ShopOrder} from "@/api/shop/shopOrder/model";
import { ShopOrder } from '@/api/shop/shopOrder/model';
/**
* 分页查询百色中学-捐款记录

View File

@@ -2,7 +2,7 @@ import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { BszxPayRanking, BszxPayRankingParam } from './model';
import { MODULES_API_URL } from '@/config/setting';
import {BszxClass, BszxClassParam} from "@/api/bszx/bszxClass/model";
import { BszxClass, BszxClassParam } from '@/api/bszx/bszxClass/model';
/**
* 分页查询百色中学-捐款排行
@@ -62,8 +62,6 @@ export async function ranking2(params?: BszxClassParam) {
return Promise.reject(new Error(res.data.message));
}
/**
* 添加百色中学-捐款排行
*/

View File

@@ -22,12 +22,9 @@ export async function pageCmsArticle(params: CmsArticleParam) {
* 查询文章列表
*/
export async function listCmsArticle(params?: CmsArticleParam) {
const res = await request.get<ApiResult<CmsArticle[]>>(
'/cms/cms-article',
{
const res = await request.get<ApiResult<CmsArticle[]>>('/cms/cms-article', {
params
}
);
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
@@ -38,10 +35,7 @@ export async function listCmsArticle(params?: CmsArticleParam) {
* 添加文章
*/
export async function addCmsArticle(data: CmsArticle) {
const res = await request.post<ApiResult<unknown>>(
'/cms/cms-article',
data
);
const res = await request.post<ApiResult<unknown>>('/cms/cms-article', data);
if (res.data.code === 0) {
return res.data.message;
}
@@ -52,10 +46,7 @@ export async function addCmsArticle(data: CmsArticle) {
* 修改文章
*/
export async function updateCmsArticle(data: CmsArticle) {
const res = await request.put<ApiResult<unknown>>(
'/cms/cms-article',
data
);
const res = await request.put<ApiResult<unknown>>('/cms/cms-article', data);
if (res.data.code === 0) {
return res.data.message;
}
@@ -141,7 +132,6 @@ export async function getCount(params: CmsArticleParam) {
return Promise.reject(new Error(res.data.message));
}
/**
* 文章批量导入
*/

View File

@@ -79,7 +79,9 @@ export async function removeCmsArticleComment(id?: number) {
/**
* 批量删除文章评论表
*/
export async function removeBatchCmsArticleComment(data: (number | undefined)[]) {
export async function removeBatchCmsArticleComment(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-comment/batch',
{

View File

@@ -79,7 +79,9 @@ export async function removeCmsArticleContent(id?: number) {
/**
* 批量删除文章记录表
*/
export async function removeBatchCmsArticleContent(data: (number | undefined)[]) {
export async function removeBatchCmsArticleContent(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-article-content/batch',
{

View File

@@ -135,7 +135,6 @@ export async function resolvable(id: number) {
return Promise.reject(new Error(res.data.message));
}
/**
* 根据授权主域名
*/
@@ -144,7 +143,9 @@ export async function getAuthorizedDomain() {
return false;
}
const res = await request.get<ApiResult<CmsDomain>>(
SERVER_API_URL + '/cms/cms-domain/getAuthorizedDomain/' + localStorage.getItem('WebsiteId')
SERVER_API_URL +
'/cms/cms-domain/getAuthorizedDomain/' +
localStorage.getItem('WebsiteId')
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;

View File

@@ -120,7 +120,6 @@ export async function getCmsNavigation(id: number) {
return Promise.reject(new Error(res.data.message));
}
/**
* 根据code查询导航
*/

View File

@@ -1,6 +1,6 @@
import type { PageParam } from '@/api';
import {CmsWebsiteSetting} from "@/api/cms/cmsWebsiteSetting/model";
import {CmsNavigation} from "@/api/cms/cmsNavigation/model";
import { CmsWebsiteSetting } from '@/api/cms/cmsWebsiteSetting/model';
import { CmsNavigation } from '@/api/cms/cmsNavigation/model';
/**
* 网站信息记录表
@@ -43,7 +43,7 @@ export interface CmsWebsite {
// 应用类型 0应用 1插件
plugin?: boolean;
// 默认编辑器
editor?: number,
editor?: number;
// 服务到期时间
expirationTime?: string;
// 模版ID

View File

@@ -79,7 +79,9 @@ export async function removeCmsWebsiteSetting(id?: number) {
/**
* 批量删除网站设置
*/
export async function removeBatchCmsWebsiteSetting(data: (number | undefined)[]) {
export async function removeBatchCmsWebsiteSetting(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/cms/cms-website-setting/batch',
{

View File

@@ -1,17 +1,21 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CreditAdministrativeLicense, CreditAdministrativeLicenseParam } from './model';
import type {
CreditAdministrativeLicense,
CreditAdministrativeLicenseParam
} from './model';
/**
* 分页查询行政许可
*/
export async function pageCreditAdministrativeLicense(params: CreditAdministrativeLicenseParam) {
const res = await request.get<ApiResult<PageResult<CreditAdministrativeLicense>>>(
'/credit/credit-administrative-license/page',
{
export async function pageCreditAdministrativeLicense(
params: CreditAdministrativeLicenseParam
) {
const res = await request.get<
ApiResult<PageResult<CreditAdministrativeLicense>>
>('/credit/credit-administrative-license/page', {
params
}
);
});
if (res.data.code === 0) {
return res.data.data;
}
@@ -21,7 +25,9 @@ export async function pageCreditAdministrativeLicense(params: CreditAdministrati
/**
* 查询行政许可列表
*/
export async function listCreditAdministrativeLicense(params?: CreditAdministrativeLicenseParam) {
export async function listCreditAdministrativeLicense(
params?: CreditAdministrativeLicenseParam
) {
const res = await request.get<ApiResult<CreditAdministrativeLicense[]>>(
'/credit/credit-administrative-license',
{
@@ -37,7 +43,9 @@ export async function listCreditAdministrativeLicense(params?: CreditAdministrat
/**
* 添加行政许可
*/
export async function addCreditAdministrativeLicense(data: CreditAdministrativeLicense) {
export async function addCreditAdministrativeLicense(
data: CreditAdministrativeLicense
) {
const res = await request.post<ApiResult<unknown>>(
'/credit/credit-administrative-license',
data
@@ -51,7 +59,9 @@ export async function addCreditAdministrativeLicense(data: CreditAdministrativeL
/**
* 修改行政许可
*/
export async function updateCreditAdministrativeLicense(data: CreditAdministrativeLicense) {
export async function updateCreditAdministrativeLicense(
data: CreditAdministrativeLicense
) {
const res = await request.put<ApiResult<unknown>>(
'/credit/credit-administrative-license',
data
@@ -78,7 +88,9 @@ export async function removeCreditAdministrativeLicense(id?: number) {
/**
* 批量删除行政许可
*/
export async function removeBatchCreditAdministrativeLicense(data: (number | undefined)[]) {
export async function removeBatchCreditAdministrativeLicense(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/credit/credit-administrative-license/batch',
{
@@ -107,7 +119,10 @@ export async function getCreditAdministrativeLicense(id: number) {
/**
* 导入行政许可
*/
export async function importCreditAdministrativeLicense(file: File, companyId?: number) {
export async function importCreditAdministrativeLicense(
file: File,
companyId?: number
) {
const formData = new FormData();
formData.append('file', file);
if (companyId != null) {

View File

@@ -78,7 +78,9 @@ export async function removeCreditBankruptcy(id?: number) {
/**
* 批量删除破产重整
*/
export async function removeBatchCreditBankruptcy(data: (number | undefined)[]) {
export async function removeBatchCreditBankruptcy(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/credit/credit-bankruptcy/batch',
{

View File

@@ -5,7 +5,9 @@ import type { CreditBreachOfTrust, CreditBreachOfTrustParam } from './model';
/**
* 分页查询失信被执行人
*/
export async function pageCreditBreachOfTrust(params: CreditBreachOfTrustParam) {
export async function pageCreditBreachOfTrust(
params: CreditBreachOfTrustParam
) {
const res = await request.get<ApiResult<PageResult<CreditBreachOfTrust>>>(
'/credit/credit-breach-of-trust/page',
{
@@ -21,7 +23,9 @@ export async function pageCreditBreachOfTrust(params: CreditBreachOfTrustParam)
/**
* 查询失信被执行人列表
*/
export async function listCreditBreachOfTrust(params?: CreditBreachOfTrustParam) {
export async function listCreditBreachOfTrust(
params?: CreditBreachOfTrustParam
) {
const res = await request.get<ApiResult<CreditBreachOfTrust[]>>(
'/credit/credit-breach-of-trust',
{
@@ -78,7 +82,9 @@ export async function removeCreditBreachOfTrust(id?: number) {
/**
* 批量删除失信被执行人
*/
export async function removeBatchCreditBreachOfTrust(data: (number | undefined)[]) {
export async function removeBatchCreditBreachOfTrust(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/credit/credit-breach-of-trust/batch',
{
@@ -107,7 +113,10 @@ export async function getCreditBreachOfTrust(id: number) {
/**
* 导入失信被执行人
*/
export async function importCreditBreachOfTrust(file: File, companyId?: number) {
export async function importCreditBreachOfTrust(
file: File,
companyId?: number
) {
const formData = new FormData();
formData.append('file', file);
if (companyId != null) {

View File

@@ -78,7 +78,9 @@ export async function removeCreditCaseFiling(id?: number) {
/**
* 批量删除司法大数据
*/
export async function removeBatchCreditCaseFiling(data: (number | undefined)[]) {
export async function removeBatchCreditCaseFiling(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/credit/credit-case-filing/batch',
{

View File

@@ -78,7 +78,9 @@ export async function removeCreditCompetitor(id?: number) {
/**
* 批量删除竞争对手
*/
export async function removeBatchCreditCompetitor(data: (number | undefined)[]) {
export async function removeBatchCreditCompetitor(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/credit/credit-competitor/batch',
{

View File

@@ -1,11 +1,16 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CreditCourtAnnouncement, CreditCourtAnnouncementParam } from './model';
import type {
CreditCourtAnnouncement,
CreditCourtAnnouncementParam
} from './model';
/**
* 分页查询法院公告司法大数据
*/
export async function pageCreditCourtAnnouncement(params: CreditCourtAnnouncementParam) {
export async function pageCreditCourtAnnouncement(
params: CreditCourtAnnouncementParam
) {
const res = await request.get<ApiResult<PageResult<CreditCourtAnnouncement>>>(
'/credit/credit-court-announcement/page',
{
@@ -21,7 +26,9 @@ export async function pageCreditCourtAnnouncement(params: CreditCourtAnnouncemen
/**
* 查询法院公告司法大数据列表
*/
export async function listCreditCourtAnnouncement(params?: CreditCourtAnnouncementParam) {
export async function listCreditCourtAnnouncement(
params?: CreditCourtAnnouncementParam
) {
const res = await request.get<ApiResult<CreditCourtAnnouncement[]>>(
'/credit/credit-court-announcement',
{
@@ -37,7 +44,9 @@ export async function listCreditCourtAnnouncement(params?: CreditCourtAnnounceme
/**
* 添加法院公告司法大数据
*/
export async function addCreditCourtAnnouncement(data: CreditCourtAnnouncement) {
export async function addCreditCourtAnnouncement(
data: CreditCourtAnnouncement
) {
const res = await request.post<ApiResult<unknown>>(
'/credit/credit-court-announcement',
data
@@ -51,7 +60,9 @@ export async function addCreditCourtAnnouncement(data: CreditCourtAnnouncement)
/**
* 修改法院公告司法大数据
*/
export async function updateCreditCourtAnnouncement(data: CreditCourtAnnouncement) {
export async function updateCreditCourtAnnouncement(
data: CreditCourtAnnouncement
) {
const res = await request.put<ApiResult<unknown>>(
'/credit/credit-court-announcement',
data
@@ -78,7 +89,9 @@ export async function removeCreditCourtAnnouncement(id?: number) {
/**
* 批量删除法院公告司法大数据
*/
export async function removeBatchCreditCourtAnnouncement(data: (number | undefined)[]) {
export async function removeBatchCreditCourtAnnouncement(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/credit/credit-court-announcement/batch',
{
@@ -107,7 +120,10 @@ export async function getCreditCourtAnnouncement(id: number) {
/**
* 导入法院公告司法大数据
*/
export async function importCreditCourtAnnouncement(file: File, companyId?: number) {
export async function importCreditCourtAnnouncement(
file: File,
companyId?: number
) {
const formData = new FormData();
formData.append('file', file);
if (companyId != null) {

View File

@@ -78,7 +78,9 @@ export async function removeCreditCourtSession(id?: number) {
/**
* 批量删除开庭公告司法大数据
*/
export async function removeBatchCreditCourtSession(data: (number | undefined)[]) {
export async function removeBatchCreditCourtSession(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/credit/credit-court-session/batch',
{

View File

@@ -5,7 +5,9 @@ import type { CreditDeliveryNotice, CreditDeliveryNoticeParam } from './model';
/**
* 分页查询送达公告司法大数据
*/
export async function pageCreditDeliveryNotice(params: CreditDeliveryNoticeParam) {
export async function pageCreditDeliveryNotice(
params: CreditDeliveryNoticeParam
) {
const res = await request.get<ApiResult<PageResult<CreditDeliveryNotice>>>(
'/credit/credit-delivery-notice/page',
{
@@ -21,7 +23,9 @@ export async function pageCreditDeliveryNotice(params: CreditDeliveryNoticeParam
/**
* 查询送达公告司法大数据列表
*/
export async function listCreditDeliveryNotice(params?: CreditDeliveryNoticeParam) {
export async function listCreditDeliveryNotice(
params?: CreditDeliveryNoticeParam
) {
const res = await request.get<ApiResult<CreditDeliveryNotice[]>>(
'/credit/credit-delivery-notice',
{
@@ -78,7 +82,9 @@ export async function removeCreditDeliveryNotice(id?: number) {
/**
* 批量删除送达公告司法大数据
*/
export async function removeBatchCreditDeliveryNotice(data: (number | undefined)[]) {
export async function removeBatchCreditDeliveryNotice(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/credit/credit-delivery-notice/batch',
{
@@ -107,7 +113,10 @@ export async function getCreditDeliveryNotice(id: number) {
/**
* 导入送达公告司法大数据
*/
export async function importCreditDeliveryNotice(file: File, companyId?: number) {
export async function importCreditDeliveryNotice(
file: File,
companyId?: number
) {
const formData = new FormData();
formData.append('file', file);
if (companyId != null) {

View File

@@ -78,7 +78,9 @@ export async function removeCreditFinalVersion(id?: number) {
/**
* 批量删除终本案件
*/
export async function removeBatchCreditFinalVersion(data: (number | undefined)[]) {
export async function removeBatchCreditFinalVersion(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/credit/credit-final-version/batch',
{

View File

@@ -1,17 +1,21 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CreditHistoricalLegalPerson, CreditHistoricalLegalPersonParam } from './model';
import type {
CreditHistoricalLegalPerson,
CreditHistoricalLegalPersonParam
} from './model';
/**
* 分页查询历史法定代表人
*/
export async function pageCreditHistoricalLegalPerson(params: CreditHistoricalLegalPersonParam) {
const res = await request.get<ApiResult<PageResult<CreditHistoricalLegalPerson>>>(
'/credit/credit-historical-legal-person/page',
{
export async function pageCreditHistoricalLegalPerson(
params: CreditHistoricalLegalPersonParam
) {
const res = await request.get<
ApiResult<PageResult<CreditHistoricalLegalPerson>>
>('/credit/credit-historical-legal-person/page', {
params
}
);
});
if (res.data.code === 0) {
return res.data.data;
}
@@ -21,7 +25,9 @@ export async function pageCreditHistoricalLegalPerson(params: CreditHistoricalLe
/**
* 查询历史法定代表人列表
*/
export async function listCreditHistoricalLegalPerson(params?: CreditHistoricalLegalPersonParam) {
export async function listCreditHistoricalLegalPerson(
params?: CreditHistoricalLegalPersonParam
) {
const res = await request.get<ApiResult<CreditHistoricalLegalPerson[]>>(
'/credit/credit-historical-legal-person',
{
@@ -37,7 +43,9 @@ export async function listCreditHistoricalLegalPerson(params?: CreditHistoricalL
/**
* 添加历史法定代表人
*/
export async function addCreditHistoricalLegalPerson(data: CreditHistoricalLegalPerson) {
export async function addCreditHistoricalLegalPerson(
data: CreditHistoricalLegalPerson
) {
const res = await request.post<ApiResult<unknown>>(
'/credit/credit-historical-legal-person',
data
@@ -51,7 +59,9 @@ export async function addCreditHistoricalLegalPerson(data: CreditHistoricalLegal
/**
* 修改历史法定代表人
*/
export async function updateCreditHistoricalLegalPerson(data: CreditHistoricalLegalPerson) {
export async function updateCreditHistoricalLegalPerson(
data: CreditHistoricalLegalPerson
) {
const res = await request.put<ApiResult<unknown>>(
'/credit/credit-historical-legal-person',
data
@@ -78,7 +88,9 @@ export async function removeCreditHistoricalLegalPerson(id?: number) {
/**
* 批量删除历史法定代表人
*/
export async function removeBatchCreditHistoricalLegalPerson(data: (number | undefined)[]) {
export async function removeBatchCreditHistoricalLegalPerson(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/credit/credit-historical-legal-person/batch',
{

View File

@@ -5,7 +5,9 @@ import type { CreditJudgmentDebtor, CreditJudgmentDebtorParam } from './model';
/**
* 分页查询被执行人
*/
export async function pageCreditJudgmentDebtor(params: CreditJudgmentDebtorParam) {
export async function pageCreditJudgmentDebtor(
params: CreditJudgmentDebtorParam
) {
const res = await request.get<ApiResult<PageResult<CreditJudgmentDebtor>>>(
'/credit/credit-judgment-debtor/page',
{
@@ -21,7 +23,9 @@ export async function pageCreditJudgmentDebtor(params: CreditJudgmentDebtorParam
/**
* 查询被执行人列表
*/
export async function listCreditJudgmentDebtor(params?: CreditJudgmentDebtorParam) {
export async function listCreditJudgmentDebtor(
params?: CreditJudgmentDebtorParam
) {
const res = await request.get<ApiResult<CreditJudgmentDebtor[]>>(
'/credit/credit-judgment-debtor',
{
@@ -78,7 +82,9 @@ export async function removeCreditJudgmentDebtor(id?: number) {
/**
* 批量删除被执行人
*/
export async function removeBatchCreditJudgmentDebtor(data: (number | undefined)[]) {
export async function removeBatchCreditJudgmentDebtor(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/credit/credit-judgment-debtor/batch',
{
@@ -107,7 +113,10 @@ export async function getCreditJudgmentDebtor(id: number) {
/**
* 导入被执行人
*/
export async function importCreditJudgmentDebtor(file: File, companyId?: number) {
export async function importCreditJudgmentDebtor(
file: File,
companyId?: number
) {
const formData = new FormData();
formData.append('file', file);
if (companyId != null) {

View File

@@ -42,7 +42,6 @@ export interface CreditJudgmentDebtor {
updateTime?: string;
// 历史ID
historyId?: number;
}
/**

View File

@@ -1,17 +1,21 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CreditJudgmentDebtorHistory, CreditJudgmentDebtorHistoryParam } from './model';
import type {
CreditJudgmentDebtorHistory,
CreditJudgmentDebtorHistoryParam
} from './model';
/**
* 分页查询被执行人
*/
export async function pageCreditJudgmentDebtorHistory(params: CreditJudgmentDebtorHistoryParam) {
const res = await request.get<ApiResult<PageResult<CreditJudgmentDebtorHistory>>>(
'/credit/credit-judgment-debtor-history/page',
{
export async function pageCreditJudgmentDebtorHistory(
params: CreditJudgmentDebtorHistoryParam
) {
const res = await request.get<
ApiResult<PageResult<CreditJudgmentDebtorHistory>>
>('/credit/credit-judgment-debtor-history/page', {
params
}
);
});
if (res.data.code === 0) {
return res.data.data;
}
@@ -21,7 +25,9 @@ export async function pageCreditJudgmentDebtorHistory(params: CreditJudgmentDebt
/**
* 查询被执行人列表
*/
export async function listCreditJudgmentDebtorHistory(params?: CreditJudgmentDebtorHistoryParam) {
export async function listCreditJudgmentDebtorHistory(
params?: CreditJudgmentDebtorHistoryParam
) {
const res = await request.get<ApiResult<CreditJudgmentDebtorHistory[]>>(
'/credit/credit-judgment-debtor-history',
{
@@ -37,7 +43,9 @@ export async function listCreditJudgmentDebtorHistory(params?: CreditJudgmentDeb
/**
* 添加被执行人
*/
export async function addCreditJudgmentDebtorHistory(data: CreditJudgmentDebtorHistory) {
export async function addCreditJudgmentDebtorHistory(
data: CreditJudgmentDebtorHistory
) {
const res = await request.post<ApiResult<unknown>>(
'/credit/credit-judgment-debtor-history',
data
@@ -51,7 +59,9 @@ export async function addCreditJudgmentDebtorHistory(data: CreditJudgmentDebtorH
/**
* 修改被执行人
*/
export async function updateCreditJudgmentDebtorHistory(data: CreditJudgmentDebtorHistory) {
export async function updateCreditJudgmentDebtorHistory(
data: CreditJudgmentDebtorHistory
) {
const res = await request.put<ApiResult<unknown>>(
'/credit/credit-judgment-debtor-history',
data
@@ -78,7 +88,9 @@ export async function removeCreditJudgmentDebtorHistory(id?: number) {
/**
* 批量删除被执行人
*/
export async function removeBatchCreditJudgmentDebtorHistory(data: (number | undefined)[]) {
export async function removeBatchCreditJudgmentDebtorHistory(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/credit/credit-judgment-debtor-history/batch',
{

View File

@@ -1,11 +1,16 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CreditJudicialDocument, CreditJudicialDocumentParam } from './model';
import type {
CreditJudicialDocument,
CreditJudicialDocumentParam
} from './model';
/**
* 分页查询裁判文书司法大数据
*/
export async function pageCreditJudicialDocument(params: CreditJudicialDocumentParam) {
export async function pageCreditJudicialDocument(
params: CreditJudicialDocumentParam
) {
const res = await request.get<ApiResult<PageResult<CreditJudicialDocument>>>(
'/credit/credit-judicial-document/page',
{
@@ -21,7 +26,9 @@ export async function pageCreditJudicialDocument(params: CreditJudicialDocumentP
/**
* 查询裁判文书司法大数据列表
*/
export async function listCreditJudicialDocument(params?: CreditJudicialDocumentParam) {
export async function listCreditJudicialDocument(
params?: CreditJudicialDocumentParam
) {
const res = await request.get<ApiResult<CreditJudicialDocument[]>>(
'/credit/credit-judicial-document',
{
@@ -51,7 +58,9 @@ export async function addCreditJudicialDocument(data: CreditJudicialDocument) {
/**
* 修改裁判文书司法大数据
*/
export async function updateCreditJudicialDocument(data: CreditJudicialDocument) {
export async function updateCreditJudicialDocument(
data: CreditJudicialDocument
) {
const res = await request.put<ApiResult<unknown>>(
'/credit/credit-judicial-document',
data
@@ -78,7 +87,9 @@ export async function removeCreditJudicialDocument(id?: number) {
/**
* 批量删除裁判文书司法大数据
*/
export async function removeBatchCreditJudicialDocument(data: (number | undefined)[]) {
export async function removeBatchCreditJudicialDocument(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/credit/credit-judicial-document/batch',
{
@@ -107,7 +118,10 @@ export async function getCreditJudicialDocument(id: number) {
/**
* 导入裁判文书司法大数据
*/
export async function importCreditJudicialDocument(file: File, companyId?: number) {
export async function importCreditJudicialDocument(
file: File,
companyId?: number
) {
const formData = new FormData();
formData.append('file', file);
if (companyId != null) {

View File

@@ -5,7 +5,9 @@ import type { CreditNearbyCompany, CreditNearbyCompanyParam } from './model';
/**
* 分页查询附近企业
*/
export async function pageCreditNearbyCompany(params: CreditNearbyCompanyParam) {
export async function pageCreditNearbyCompany(
params: CreditNearbyCompanyParam
) {
const res = await request.get<ApiResult<PageResult<CreditNearbyCompany>>>(
'/credit/credit-nearby-company/page',
{
@@ -21,7 +23,9 @@ export async function pageCreditNearbyCompany(params: CreditNearbyCompanyParam)
/**
* 查询附近企业列表
*/
export async function listCreditNearbyCompany(params?: CreditNearbyCompanyParam) {
export async function listCreditNearbyCompany(
params?: CreditNearbyCompanyParam
) {
const res = await request.get<ApiResult<CreditNearbyCompany[]>>(
'/credit/credit-nearby-company',
{
@@ -78,7 +82,9 @@ export async function removeCreditNearbyCompany(id?: number) {
/**
* 批量删除附近企业
*/
export async function removeBatchCreditNearbyCompany(data: (number | undefined)[]) {
export async function removeBatchCreditNearbyCompany(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/credit/credit-nearby-company/batch',
{
@@ -107,7 +113,10 @@ export async function getCreditNearbyCompany(id: number) {
/**
* 导入附近企业
*/
export async function importCreditNearbyCompany(file: File, companyId?: number) {
export async function importCreditNearbyCompany(
file: File,
companyId?: number
) {
const formData = new FormData();
formData.append('file', file);
if (companyId != null) {

View File

@@ -78,7 +78,9 @@ export async function removeCreditRiskRelation(id?: number) {
/**
* 批量删除风险关系表
*/
export async function removeBatchCreditRiskRelation(data: (number | undefined)[]) {
export async function removeBatchCreditRiskRelation(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/credit/credit-risk-relation/batch',
{

View File

@@ -1,17 +1,21 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { CreditSuspectedRelationship, CreditSuspectedRelationshipParam } from './model';
import type {
CreditSuspectedRelationship,
CreditSuspectedRelationshipParam
} from './model';
/**
* 分页查询疑似关系
*/
export async function pageCreditSuspectedRelationship(params: CreditSuspectedRelationshipParam) {
const res = await request.get<ApiResult<PageResult<CreditSuspectedRelationship>>>(
'/credit/credit-suspected-relationship/page',
{
export async function pageCreditSuspectedRelationship(
params: CreditSuspectedRelationshipParam
) {
const res = await request.get<
ApiResult<PageResult<CreditSuspectedRelationship>>
>('/credit/credit-suspected-relationship/page', {
params
}
);
});
if (res.data.code === 0) {
return res.data.data;
}
@@ -21,7 +25,9 @@ export async function pageCreditSuspectedRelationship(params: CreditSuspectedRel
/**
* 查询疑似关系列表
*/
export async function listCreditSuspectedRelationship(params?: CreditSuspectedRelationshipParam) {
export async function listCreditSuspectedRelationship(
params?: CreditSuspectedRelationshipParam
) {
const res = await request.get<ApiResult<CreditSuspectedRelationship[]>>(
'/credit/credit-suspected-relationship',
{
@@ -37,7 +43,9 @@ export async function listCreditSuspectedRelationship(params?: CreditSuspectedRe
/**
* 添加疑似关系
*/
export async function addCreditSuspectedRelationship(data: CreditSuspectedRelationship) {
export async function addCreditSuspectedRelationship(
data: CreditSuspectedRelationship
) {
const res = await request.post<ApiResult<unknown>>(
'/credit/credit-suspected-relationship',
data
@@ -51,7 +59,9 @@ export async function addCreditSuspectedRelationship(data: CreditSuspectedRelati
/**
* 修改疑似关系
*/
export async function updateCreditSuspectedRelationship(data: CreditSuspectedRelationship) {
export async function updateCreditSuspectedRelationship(
data: CreditSuspectedRelationship
) {
const res = await request.put<ApiResult<unknown>>(
'/credit/credit-suspected-relationship',
data
@@ -78,7 +88,9 @@ export async function removeCreditSuspectedRelationship(id?: number) {
/**
* 批量删除疑似关系
*/
export async function removeBatchCreditSuspectedRelationship(data: (number | undefined)[]) {
export async function removeBatchCreditSuspectedRelationship(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/credit/credit-suspected-relationship/batch',
{

View File

@@ -5,7 +5,7 @@ import type { UpdatePasswordParam, NoticeResult } from './model';
import { SERVER_API_URL } from '@/config/setting';
import { Company } from '@/api/system/company/model';
import { CmsWebsite } from '@/api/cms/cmsWebsite/model';
import {Menu} from "@/api/system/menu/model";
import { Menu } from '@/api/system/menu/model';
/**
* 获取当前登录的用户信息、菜单、权限、角色
@@ -24,12 +24,9 @@ export async function getTenantInfo(): Promise<Company> {
* 获取网站信息 https://cms-api.websoft.top/api
*/
export async function getSiteInfo() {
const res = await request.get<ApiResult<CmsWebsite>>(
'/shop/getShopInfo',
{
const res = await request.get<ApiResult<CmsWebsite>>('/shop/getShopInfo', {
params: {}
}
);
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
@@ -66,9 +63,7 @@ export async function updateLoginUser(data: User) {
* @return
*/
export async function getServerTime() {
const res = await request.get<ApiResult<any>>(
'/cms/website/getServerTime'
);
const res = await request.get<ApiResult<any>>('/cms/website/getServerTime');
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
@@ -80,9 +75,7 @@ export async function getServerTime() {
* @return
*/
export async function getNext7day() {
const res = await request.get<ApiResult<any>>(
'/cms/website/getNext7day'
);
const res = await request.get<ApiResult<any>>('/cms/website/getNext7day');
console.log('res.data.code: ', res.data.code);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
@@ -120,7 +113,8 @@ export async function updatePassword(
*/
export async function createCmsWebSite(data: CmsWebsite) {
const res = await request.post<ApiResult<unknown>>(
SERVER_API_URL + '/superAdminRegister',data
SERVER_API_URL + '/superAdminRegister',
data
);
if (res.data.code === 0) {
return res.data.message;

View File

@@ -50,7 +50,9 @@ export async function generateQrCode(): Promise<QrCodeResponse> {
/**
* 检查二维码状态
*/
export async function checkQrCodeStatus(token: string): Promise<QrCodeStatusResponse> {
export async function checkQrCodeStatus(
token: string
): Promise<QrCodeStatusResponse> {
const res = await request.get<ApiResult<QrCodeStatusResponse>>(
SERVER_API_URL + `/qr-login/status/${token}`
);
@@ -65,12 +67,14 @@ export async function checkQrCodeStatus(token: string): Promise<QrCodeStatusResp
/**
* 扫码确认登录(移动端调用)
*/
export async function confirmQrLogin(requestData: QrLoginConfirmRequest): Promise<QrCodeStatusResponse> {
export async function confirmQrLogin(
requestData: QrLoginConfirmRequest
): Promise<QrCodeStatusResponse> {
const res = await request.post<ApiResult<QrCodeStatusResponse>>(
SERVER_API_URL + '/qr-login/confirm',
requestData
);
console.log(res,'>>>89898989')
console.log(res, '>>>89898989');
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
@@ -96,7 +100,9 @@ export async function scanQrCode(token: string): Promise<boolean> {
/**
* 微信小程序扫码登录确认
*/
export async function wechatMiniProgramConfirm(requestData: QrLoginConfirmRequest): Promise<QrCodeStatusResponse> {
export async function wechatMiniProgramConfirm(
requestData: QrLoginConfirmRequest
): Promise<QrCodeStatusResponse> {
const res = await request.post<ApiResult<QrCodeStatusResponse>>(
SERVER_API_URL + '/qr-login/wechat-confirm',
requestData
@@ -106,5 +112,7 @@ export async function wechatMiniProgramConfirm(requestData: QrLoginConfirmReques
return res.data.data;
}
return Promise.reject(new Error(res.data.message || '微信小程序登录确认失败'));
return Promise.reject(
new Error(res.data.message || '微信小程序登录确认失败')
);
}

View File

@@ -4,8 +4,8 @@ import type {ShopDealerOrder, ShopDealerOrderParam} from './model';
import { utils, writeFile } from 'xlsx';
import { message } from 'ant-design-vue';
import { getTenantId } from '@/utils/domain';
import {listShopDealerOrder} from "@/api/shop/shopDealerOrder";
import {MODULES_API_URL} from "@/config/setting";
import { listShopDealerOrder } from '@/api/shop/shopDealerOrder';
import { MODULES_API_URL } from '@/config/setting';
/**
* 导入分销商订单
@@ -113,7 +113,6 @@ export async function exportSdyDealerOrder(params?: ShopDealerOrderParam) {
message.destroy();
message.success(`成功导出 ${list.length} 条记录`);
}, 1000);
} catch (error: any) {
message.destroy();
message.error(error.message || '导出失败,请重试');

View File

@@ -78,7 +78,9 @@ export async function removeShopCommissionRole(id?: number) {
/**
* 批量删除分红角色
*/
export async function removeBatchShopCommissionRole(data: (number | undefined)[]) {
export async function removeBatchShopCommissionRole(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/shop/shop-commission-role/batch',
{

View File

@@ -22,12 +22,9 @@ export async function pageShopCoupon(params: ShopCouponParam) {
* 查询优惠券列表
*/
export async function listShopCoupon(params?: ShopCouponParam) {
const res = await request.get<ApiResult<ShopCoupon[]>>(
'/shop/shop-coupon',
{
const res = await request.get<ApiResult<ShopCoupon[]>>('/shop/shop-coupon', {
params
}
);
});
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
@@ -38,10 +35,7 @@ export async function listShopCoupon(params?: ShopCouponParam) {
* 添加优惠券
*/
export async function addShopCoupon(data: ShopCoupon) {
const res = await request.post<ApiResult<unknown>>(
'/shop/shop-coupon',
data
);
const res = await request.post<ApiResult<unknown>>('/shop/shop-coupon', data);
if (res.data.code === 0) {
return res.data.message;
}
@@ -52,10 +46,7 @@ export async function addShopCoupon(data: ShopCoupon) {
* 修改优惠券
*/
export async function updateShopCoupon(data: ShopCoupon) {
const res = await request.put<ApiResult<unknown>>(
'/shop/shop-coupon',
data
);
const res = await request.put<ApiResult<unknown>>('/shop/shop-coupon', data);
if (res.data.code === 0) {
return res.data.message;
}

View File

@@ -1,6 +1,6 @@
import type { PageParam } from '@/api/index';
import {ShopCouponApplyCate} from "@/api/shop/shopCouponApplyCate/model";
import {ShopCouponApplyItem} from "@/api/shop/shopCouponApplyItem/model";
import { ShopCouponApplyCate } from '@/api/shop/shopCouponApplyCate/model';
import { ShopCouponApplyItem } from '@/api/shop/shopCouponApplyItem/model';
/**
* 优惠券

View File

@@ -1,4 +1,3 @@
/**
* 优惠券
*/
@@ -7,5 +6,4 @@ export interface ShopCouponApplyCate {
couponId?: number;
cateId?: number;
cateLevel?: number;
}

View File

@@ -1,4 +1,3 @@
/**
* 优惠券
*/
@@ -7,5 +6,4 @@ export interface ShopCouponApplyItem {
couponId?: number;
type?: number;
pk?: number;
}

View File

@@ -116,7 +116,10 @@ export async function approveShopDealerApply(id: number) {
/**
* 驳回分销商申请
*/
export async function rejectShopDealerApply(id: number, data: { rejectReason: string }) {
export async function rejectShopDealerApply(
id: number,
data: { rejectReason: string }
) {
const res = await request.put<ApiResult<unknown>>(
`/shop/shop-dealer-apply/${id}/reject`,
data

View File

@@ -78,7 +78,9 @@ export async function removeShopDealerCapital(id?: number) {
/**
* 批量删除分销商资金明细表
*/
export async function removeBatchShopDealerCapital(data: (number | undefined)[]) {
export async function removeBatchShopDealerCapital(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/shop/shop-dealer-capital/batch',
{

View File

@@ -213,7 +213,6 @@ export async function exportShopDealerOrder(params?: ShopDealerOrderParam) {
message.destroy();
message.success(`成功导出 ${list.length} 条记录`);
}, 1000);
} catch (error: any) {
message.destroy();
message.error(error.message || '导出失败,请重试');

View File

@@ -104,7 +104,10 @@ export async function removeBatchShopDealerPoster(ids: (number | undefined)[]) {
* 生成海报
*/
export async function generatePoster(userId: number, config?: any) {
const res = await request.post('/shop/dealer/poster/generate', { userId, config });
const res = await request.post('/shop/dealer/poster/generate', {
userId,
config
});
if (res.data.code === 0) {
return res.data.data;
}
@@ -118,11 +121,15 @@ export async function uploadPosterBackground(file: File) {
const formData = new FormData();
formData.append('file', file);
const res = await request.post('/shop/dealer/poster/upload/background', formData, {
const res = await request.post(
'/shop/dealer/poster/upload/background',
formData,
{
headers: {
'Content-Type': 'multipart/form-data'
}
});
}
);
if (res.data.code === 0) {
return res.data.data;

View File

@@ -79,7 +79,9 @@ export async function removeShopDealerRecord(id?: number) {
/**
* 批量删除客户跟进情况
*/
export async function removeBatchShopDealerRecord(data: (number | undefined)[]) {
export async function removeBatchShopDealerRecord(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/shop/shop-dealer-record/batch',
{

View File

@@ -78,7 +78,9 @@ export async function removeShopDealerReferee(id?: number) {
/**
* 批量删除分销商推荐关系表
*/
export async function removeBatchShopDealerReferee(data: (number | undefined)[]) {
export async function removeBatchShopDealerReferee(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/shop/shop-dealer-referee/batch',
{

View File

@@ -78,7 +78,9 @@ export async function removeShopDealerSetting(id?: number) {
/**
* 批量删除分销商设置表
*/
export async function removeBatchShopDealerSetting(data: (number | undefined)[]) {
export async function removeBatchShopDealerSetting(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/shop/shop-dealer-setting/batch',
{

View File

@@ -129,12 +129,9 @@ export async function importShopDealerUsers(file: File) {
* 导出分销商用户
*/
export async function exportShopDealerUsers(params?: ShopDealerUserParam) {
const res = await request.get<Blob>(
'/shop/shop-dealer-user/export',
{
const res = await request.get<Blob>('/shop/shop-dealer-user/export', {
params,
responseType: 'blob'
}
);
});
return res.data;
}

View File

@@ -78,7 +78,9 @@ export async function removeShopDealerWithdraw(id?: number) {
/**
* 批量删除分销商提现明细表
*/
export async function removeBatchShopDealerWithdraw(data: (number | undefined)[]) {
export async function removeBatchShopDealerWithdraw(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/shop/shop-dealer-withdraw/batch',
{

View File

@@ -52,10 +52,7 @@ export async function addShopExpress(data: ShopExpress) {
* 修改物流公司
*/
export async function updateShopExpress(data: ShopExpress) {
const res = await request.put<ApiResult<unknown>>(
'/shop/shop-express',
data
);
const res = await request.put<ApiResult<unknown>>('/shop/shop-express', data);
if (res.data.code === 0) {
return res.data.message;
}

View File

@@ -5,7 +5,9 @@ import type { ShopExpressTemplate, ShopExpressTemplateParam } from './model';
/**
* 分页查询运费模板
*/
export async function pageShopExpressTemplate(params: ShopExpressTemplateParam) {
export async function pageShopExpressTemplate(
params: ShopExpressTemplateParam
) {
const res = await request.get<ApiResult<PageResult<ShopExpressTemplate>>>(
'/shop/shop-express-template/page',
{
@@ -21,7 +23,9 @@ export async function pageShopExpressTemplate(params: ShopExpressTemplateParam)
/**
* 查询运费模板列表
*/
export async function listShopExpressTemplate(params?: ShopExpressTemplateParam) {
export async function listShopExpressTemplate(
params?: ShopExpressTemplateParam
) {
const res = await request.get<ApiResult<ShopExpressTemplate[]>>(
'/shop/shop-express-template',
{
@@ -78,7 +82,9 @@ export async function removeShopExpressTemplate(id?: number) {
/**
* 批量删除运费模板
*/
export async function removeBatchShopExpressTemplate(data: (number | undefined)[]) {
export async function removeBatchShopExpressTemplate(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/shop/shop-express-template/batch',
{

View File

@@ -1,17 +1,21 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ShopExpressTemplateDetail, ShopExpressTemplateDetailParam } from './model';
import type {
ShopExpressTemplateDetail,
ShopExpressTemplateDetailParam
} from './model';
/**
* 分页查询运费模板
*/
export async function pageShopExpressTemplateDetail(params: ShopExpressTemplateDetailParam) {
const res = await request.get<ApiResult<PageResult<ShopExpressTemplateDetail>>>(
'/shop/shop-express-template-detail/page',
{
export async function pageShopExpressTemplateDetail(
params: ShopExpressTemplateDetailParam
) {
const res = await request.get<
ApiResult<PageResult<ShopExpressTemplateDetail>>
>('/shop/shop-express-template-detail/page', {
params
}
);
});
if (res.data.code === 0) {
return res.data.data;
}
@@ -21,7 +25,9 @@ export async function pageShopExpressTemplateDetail(params: ShopExpressTemplateD
/**
* 查询运费模板列表
*/
export async function listShopExpressTemplateDetail(params?: ShopExpressTemplateDetailParam) {
export async function listShopExpressTemplateDetail(
params?: ShopExpressTemplateDetailParam
) {
const res = await request.get<ApiResult<ShopExpressTemplateDetail[]>>(
'/shop/shop-express-template-detail',
{
@@ -37,7 +43,9 @@ export async function listShopExpressTemplateDetail(params?: ShopExpressTemplate
/**
* 添加运费模板
*/
export async function addShopExpressTemplateDetail(data: ShopExpressTemplateDetail) {
export async function addShopExpressTemplateDetail(
data: ShopExpressTemplateDetail
) {
const res = await request.post<ApiResult<unknown>>(
'/shop/shop-express-template-detail',
data
@@ -51,7 +59,9 @@ export async function addShopExpressTemplateDetail(data: ShopExpressTemplateDeta
/**
* 修改运费模板
*/
export async function updateShopExpressTemplateDetail(data: ShopExpressTemplateDetail) {
export async function updateShopExpressTemplateDetail(
data: ShopExpressTemplateDetail
) {
const res = await request.put<ApiResult<unknown>>(
'/shop/shop-express-template-detail',
data
@@ -78,7 +88,9 @@ export async function removeShopExpressTemplateDetail(id?: number) {
/**
* 批量删除运费模板
*/
export async function removeBatchShopExpressTemplateDetail(data: (number | undefined)[]) {
export async function removeBatchShopExpressTemplateDetail(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
'/shop/shop-express-template-detail/batch',
{

View File

@@ -79,7 +79,9 @@ export async function removeShopGoodsCategory(id?: number) {
/**
* 批量删除商品分类
*/
export async function removeBatchShopGoodsCategory(data: (number | undefined)[]) {
export async function removeBatchShopGoodsCategory(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/shop/shop-goods-category/batch',
{

View File

@@ -1,12 +1,17 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import { MODULES_API_URL } from '@/config/setting';
import { ShopGoodsRoleCommission, ShopGoodsRoleCommissionParam } from '@/api/shop/shopGoodsRoleCommission/model';
import {
ShopGoodsRoleCommission,
ShopGoodsRoleCommissionParam
} from '@/api/shop/shopGoodsRoleCommission/model';
/**
* 分页查询商品绑定角色的分润金额
*/
export async function pageShopGoodsRoleCommission(params: ShopGoodsRoleCommissionParam) {
export async function pageShopGoodsRoleCommission(
params: ShopGoodsRoleCommissionParam
) {
const res = await request.get<ApiResult<PageResult<ShopGoodsRoleCommission>>>(
MODULES_API_URL + '/shop/shop-goods-role-commission/page',
{
@@ -22,7 +27,9 @@ export async function pageShopGoodsRoleCommission(params: ShopGoodsRoleCommissio
/**
* 查询商品绑定角色的分润金额列表
*/
export async function listShopGoodsRoleCommission(params?: ShopGoodsRoleCommissionParam) {
export async function listShopGoodsRoleCommission(
params?: ShopGoodsRoleCommissionParam
) {
const res = await request.get<ApiResult<ShopGoodsRoleCommission[]>>(
MODULES_API_URL + '/shop/shop-goods-role-commission',
{
@@ -38,7 +45,9 @@ export async function listShopGoodsRoleCommission(params?: ShopGoodsRoleCommissi
/**
* 添加商品绑定角色的分润金额
*/
export async function addShopGoodsRoleCommission(data: ShopGoodsRoleCommission) {
export async function addShopGoodsRoleCommission(
data: ShopGoodsRoleCommission
) {
const res = await request.post<ApiResult<unknown>>(
MODULES_API_URL + '/shop/shop-goods-role-commission',
data
@@ -52,7 +61,9 @@ export async function addShopGoodsRoleCommission(data: ShopGoodsRoleCommission)
/**
* 修改商品绑定角色的分润金额
*/
export async function updateShopGoodsRoleCommission(data: ShopGoodsRoleCommission) {
export async function updateShopGoodsRoleCommission(
data: ShopGoodsRoleCommission
) {
const res = await request.put<ApiResult<unknown>>(
MODULES_API_URL + '/shop/shop-goods-role-commission',
data
@@ -79,7 +90,9 @@ export async function removeShopGoodsRoleCommission(id?: number) {
/**
* 批量删除商品绑定角色的分润金额
*/
export async function removeBatchShopGoodsRoleCommission(data: (number | undefined)[]) {
export async function removeBatchShopGoodsRoleCommission(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/shop/shop-goods-role-commission/batch',
{

View File

@@ -6,7 +6,9 @@ import { MODULES_API_URL } from '@/config/setting';
/**
* 分页查询商户账号
*/
export async function pageShopMerchantAccount(params: ShopMerchantAccountParam) {
export async function pageShopMerchantAccount(
params: ShopMerchantAccountParam
) {
const res = await request.get<ApiResult<PageResult<ShopMerchantAccount>>>(
MODULES_API_URL + '/shop/shop-merchant-account/page',
{
@@ -22,7 +24,9 @@ export async function pageShopMerchantAccount(params: ShopMerchantAccountParam)
/**
* 查询商户账号列表
*/
export async function listShopMerchantAccount(params?: ShopMerchantAccountParam) {
export async function listShopMerchantAccount(
params?: ShopMerchantAccountParam
) {
const res = await request.get<ApiResult<ShopMerchantAccount[]>>(
MODULES_API_URL + '/shop/shop-merchant-account',
{
@@ -79,7 +83,9 @@ export async function removeShopMerchantAccount(id?: number) {
/**
* 批量删除商户账号
*/
export async function removeBatchShopMerchantAccount(data: (number | undefined)[]) {
export async function removeBatchShopMerchantAccount(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/shop/shop-merchant-account/batch',
{

View File

@@ -1,5 +1,5 @@
import type { PageParam } from '@/api';
import {OrderGoods} from "@/api/system/orderGoods/model";
import { OrderGoods } from '@/api/system/orderGoods/model';
/**
* 订单
@@ -136,9 +136,9 @@ export interface ShopOrder {
// 系统版本号 0当前版本 value=其他版本
version?: number;
// 买家备注
buyerRemarks: undefined,
buyerRemarks: undefined;
// 商家备注
merchantRemarks: undefined,
merchantRemarks: undefined;
// 用户id
userId?: number;
// 备注

View File

@@ -79,7 +79,9 @@ export async function removeChatConversation(id?: number) {
/**
* 批量删除聊天消息表
*/
export async function removeBatchChatConversation(data: (number | undefined)[]) {
export async function removeBatchChatConversation(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
MODULES_API_URL + '/shop/chat-conversation/batch',
{

View File

@@ -1,5 +1,5 @@
import type { PageParam } from '@/api';
import type {Menu} from "@/api/system/menu/model";
import type { Menu } from '@/api/system/menu/model';
/**
* 企业信息

View File

@@ -49,7 +49,6 @@ export async function getByCompanyId(id: number) {
return Promise.reject(new Error(res.data.message));
}
/**
* 添加应用详情
*/

View File

@@ -79,7 +79,9 @@ export async function removeCompanyParameter(id?: number) {
/**
* 批量删除应用参数
*/
export async function removeBatchCompanyParameter(data: (number | undefined)[]) {
export async function removeBatchCompanyParameter(
data: (number | undefined)[]
) {
const res = await request.delete<ApiResult<unknown>>(
SERVER_API_URL + '/system/company-parameter/batch',
{

View File

@@ -89,7 +89,6 @@ export async function deleteParentMenu(id?: number) {
return Promise.reject(new Error(res.data.message));
}
/**
* 安装应用
*/

View File

@@ -287,12 +287,9 @@ export async function listAdminsByPhoneAll(params?: UserParam){
* 导出用户列表
*/
export async function exportUsers(params?: UserParam) {
const res = await request.get<Blob>(
SERVER_API_URL + '/system/user/export',
{
const res = await request.get<Blob>(SERVER_API_URL + '/system/user/export', {
params,
responseType: 'blob'
}
);
});
return res.data;
}

View File

@@ -45,7 +45,7 @@
// 字典数据
const data = getDictionaryOptions(props.dictCode);
const content = ref<any>()
const content = ref<any>();
/* 更新选中数据 */
const updateValue = () => {

View File

@@ -16,7 +16,7 @@
<script lang="ts" setup>
import { ref } from 'vue';
import {listDictData} from "@/api/system/dict-data";
import { listDictData } from '@/api/system/dict-data';
const data = ref<any[]>([]);
@@ -43,8 +43,8 @@
);
// 字典数据
listDictData({dictCode: props.dictCode}).then(res => {
data.value = res.map(d => {
listDictData({ dictCode: props.dictCode }).then((res) => {
data.value = res.map((d) => {
return {
dictDataId: d.dictDataId,
dictDataCode: d.dictDataCode,
@@ -61,7 +61,10 @@
const updateValue = (value: string) => {
emit('update:value', value);
emit('index', Number(props.index));
emit('done', data.value.find(d => d.value === value))
emit(
'done',
data.value.find((d) => d.value === value)
);
};
/* 失去焦点 */

View File

@@ -10,16 +10,14 @@
<div class="flex p-3 flex-col justify-center items-center">
<ele-qr-code-svg :value="`${data}`" :size="260" />
<span class="text-gray-400 py-3" @click="copyText(data)">{{ data }}</span>
<span class="text-gray-500 text-lg">
使用手机扫一扫
</span>
<span class="text-gray-500 text-lg"> 使用手机扫一扫 </span>
</div>
</a-modal>
</template>
<script lang="ts" setup>
import {CmsArticle} from "@/api/cms/cmsArticle/model";
import {copyText} from "@/utils/common";
import { CmsArticle } from '@/api/cms/cmsArticle/model';
import { copyText } from '@/utils/common';
withDefaults(
defineProps<{

View File

@@ -11,7 +11,7 @@
<!-- 演示控制面板 -->
<div class="demo-controls">
<h4>演示控制</h4>
<a-space direction="vertical" style="width: 100%;">
<a-space direction="vertical" style="width: 100%">
<a-button @click="simulateScanned" type="primary" ghost>
模拟扫码
</a-button>
@@ -21,9 +21,7 @@
<a-button @click="simulateExpired" type="default">
模拟过期
</a-button>
<a-button @click="simulateError" danger>
模拟错误
</a-button>
<a-button @click="simulateError" danger> 模拟错误 </a-button>
</a-space>
</div>
@@ -48,7 +46,7 @@
</a-card>
<!-- 日志显示 -->
<a-card title="操作日志" :bordered="false" style="margin-top: 16px;">
<a-card title="操作日志" :bordered="false" style="margin-top: 16px">
<div class="demo-logs">
<div
v-for="(log, index) in logs"
@@ -73,10 +71,13 @@ import QrLogin from './index.vue';
const currentQrKey = ref<string>('');
const currentStatus = ref<string>('loading');
const remainingTime = ref<number>(300);
const logs = ref<Array<{time: string, message: string, type: string}>>([]);
const logs = ref<Array<{ time: string; message: string; type: string }>>([]);
// 添加日志
const addLog = (message: string, type: 'info' | 'success' | 'error' | 'warning' = 'info') => {
const addLog = (
message: string,
type: 'info' | 'success' | 'error' | 'warning' = 'info'
) => {
const now = new Date();
const time = now.toLocaleTimeString();
logs.value.unshift({ time, message, type });

View File

@@ -7,22 +7,29 @@
<p class="loading-text">正在生成二维码...</p>
</div>
<div v-else-if="qrCodeStatus === 'active'" class="qr-active cursor-pointer">
<ele-qr-code-svg :value="qrCodeData" :size="200" @click="refreshQrCode" />
<div
v-else-if="qrCodeStatus === 'active'"
class="qr-active cursor-pointer"
>
<ele-qr-code-svg
:value="qrCodeData"
:size="200"
@click="refreshQrCode"
/>
<p class="qr-tip">请使用手机APP或小程序扫码登录</p>
<p class="qr-expire-tip">二维码有效期{{ formatTime(expireTime) }}</p>
</div>
<div v-else-if="qrCodeStatus === 'scanned'" class="qr-scanned">
<div class="scanned-icon">
<CheckCircleOutlined style="font-size: 48px; color: #52c41a;" />
<CheckCircleOutlined style="font-size: 48px; color: #52c41a" />
</div>
<p class="scanned-text">扫码成功请在手机上确认登录</p>
</div>
<div v-else-if="qrCodeStatus === 'expired'" class="qr-expired">
<div class="expired-icon">
<ClockCircleOutlined style="font-size: 48px; color: #ff4d4f;" />
<ClockCircleOutlined style="font-size: 48px; color: #ff4d4f" />
</div>
<p class="expired-text">二维码已过期</p>
<a-button type="primary" @click="refreshQrCode">刷新二维码</a-button>
@@ -30,7 +37,7 @@
<div v-else-if="qrCodeStatus === 'error'" class="qr-error">
<div class="error-icon">
<ExclamationCircleOutlined style="font-size: 48px; color: #ff4d4f;" />
<ExclamationCircleOutlined style="font-size: 48px; color: #ff4d4f" />
</div>
<p class="error-text">{{ errorMessage || '生成二维码失败' }}</p>
<a-button type="primary" @click="refreshQrCode">重新生成</a-button>
@@ -55,7 +62,12 @@ import {
ExclamationCircleOutlined,
ReloadOutlined
} from '@ant-design/icons-vue';
import {generateQrCode, checkQrCodeStatus, type QrCodeResponse, QrCodeStatusResponse} from '@/api/passport/qrLogin';
import {
generateQrCode,
checkQrCodeStatus,
type QrCodeResponse,
QrCodeStatusResponse
} from '@/api/passport/qrLogin';
// 定义组件事件
const emit = defineEmits<{
@@ -66,7 +78,9 @@ const emit = defineEmits<{
// 响应式数据
const qrCodeData = ref<string>('');
const qrCodeToken = ref<string>('');
const qrCodeStatus = ref<'loading' | 'active' | 'scanned' | 'expired' | 'error'>('loading');
const qrCodeStatus = ref<
'loading' | 'active' | 'scanned' | 'expired' | 'error'
>('loading');
const expireTime = ref<number>(0);
const errorMessage = ref<string>('');
const refreshing = ref<boolean>(false);
@@ -105,7 +119,6 @@ const generateQrCodeData = async () => {
startStatusCheck();
// 开始倒计时
startExpireCountdown();
} catch (error: any) {
qrCodeStatus.value = 'error';
errorMessage.value = error.message || '生成二维码失败';
@@ -132,7 +145,7 @@ const startStatusCheck = () => {
case 'confirmed':
// 登录成功
if (status.tenantId) {
localStorage.setItem('TenantId', `${status.tenantId}`)
localStorage.setItem('TenantId', `${status.tenantId}`);
}
qrCodeStatus.value = 'active';
stopAllTimers();

View File

@@ -46,7 +46,7 @@ const props = withDefaults(
const showEdit = ref(false);
// 当前编辑数据
const current = ref<CmsDesign | null>(null);
const content = ref<any>(props.value)
const content = ref<any>(props.value);
/* 打开编辑弹窗 */
const openEdit = (row?: CmsDesign) => {

View File

@@ -28,7 +28,9 @@
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'name'">
<div class="cursor-pointer" @click="onRadio(record)">{{ record.name }}</div>
<div class="cursor-pointer" @click="onRadio(record)">{{
record.name
}}</div>
</template>
<template v-if="column.key === 'action'">
<template v-if="pageId == record.pageId">
@@ -118,7 +120,7 @@
};
const onRadio = (record: CmsDesign) => {
pageId.value = Number(record.pageId)
pageId.value = Number(record.pageId);
updateVisible(false);
emit('done', record);
};

View File

@@ -40,7 +40,7 @@
}
);
const content = ref<any>(props.value)
const content = ref<any>(props.value);
const emit = defineEmits<{
(e: 'done', Dict): void;

View File

@@ -47,8 +47,8 @@
import { User, UserParam } from '@/api/system/user/model';
import { EleProTable } from 'ele-admin-pro';
import useSearch from '@/utils/use-search';
import {pageHjmFence} from "@/api/hjm/hjmFence";
import {HjmFenceParam} from "@/api/hjm/hjmFence/model";
import { pageHjmFence } from '@/api/hjm/hjmFence';
import { HjmFenceParam } from '@/api/hjm/hjmFence/model';
const props = defineProps<{
// 弹窗是否打开

View File

@@ -28,7 +28,7 @@
import { BulbOutlined } from '@ant-design/icons-vue';
import { ref, watch } from 'vue';
import SelectData from './components/select-data.vue';
import {HjmFence} from "@/api/hjm/hjmFence/model";
import { HjmFence } from '@/api/hjm/hjmFence/model';
const props = withDefaults(
defineProps<{
@@ -50,7 +50,7 @@ const emit = defineEmits<{
const showEdit = ref(false);
// 当前编辑数据
const current = ref<HjmFence | null>(null);
const content = ref<HjmFence>(props.value)
const content = ref<HjmFence>(props.value);
/* 打开编辑弹窗 */
const openEdit = (row?: HjmFence) => {
@@ -64,7 +64,6 @@ const onChange = (row?: HjmFence) => {
// 查询租户列表
// const appList = ref<App[] | undefined>([]);
watch(
() => props.value,
(visible) => {

View File

@@ -64,19 +64,12 @@
@search="reload"
@pressEnter="reload"
/>
<a-button
type="text"
@click="openUrl('/cms/photo/dict')"
<a-button type="text" @click="openUrl('/cms/photo/dict')"
>管理分组</a-button
>
<a-alert
message="双击行也可以选择"
banner
closable
/>
<a-alert message="双击行也可以选择" banner closable />
</a-space>
</div>
</div>
</template>
<template #bodyCell="{ column, record }">
@@ -140,7 +133,12 @@
ColumnItem,
DatasourceFunction
} from 'ele-admin-pro/es/ele-pro-table/types';
import {pageFiles, removeFile, uploadOss, uploadOssByGroupId} from '@/api/system/file';
import {
pageFiles,
removeFile,
uploadOss,
uploadOssByGroupId
} from '@/api/system/file';
import { EleProTable, messageLoading } from 'ele-admin-pro';
import { FileRecord, FileRecordParam } from '@/api/system/file/model';
import { EditOutlined, UploadOutlined } from '@ant-design/icons-vue';
@@ -341,7 +339,6 @@
});
};
/* 自定义行属性 */
const customRow = (record: FileRecord) => {
return {
@@ -356,7 +353,7 @@
if (!isMobileDevice()) {
record.path = record.url || record.downloadUrl;
}
console.log(record,'rec......')
console.log(record, 'rec......');
emit('done', record);
}
};

View File

@@ -44,11 +44,15 @@
</template>
<script lang="ts" setup>
import { PlusOutlined, CloseOutlined, YoutubeOutlined } from '@ant-design/icons-vue';
import {
PlusOutlined,
CloseOutlined,
YoutubeOutlined
} from '@ant-design/icons-vue';
import { ref } from 'vue';
import SelectData from './components/select-data.vue';
import { FileRecord } from '@/api/system/file/model';
import { isImage } from "@/utils/common";
import { isImage } from '@/utils/common';
const props = withDefaults(
defineProps<{

View File

@@ -55,7 +55,10 @@
} from 'ele-admin-pro/es/ele-pro-table/types';
import { pageShopMerchant } from '@/api/shop/shopMerchant';
import { EleProTable } from 'ele-admin-pro';
import { ShopMerchant, ShopMerchantParam } from '@/api/shop/shopMerchant/model';
import {
ShopMerchant,
ShopMerchantParam
} from '@/api/shop/shopMerchant/model';
const props = defineProps<{
// 弹窗是否打开
@@ -99,7 +102,7 @@
},
{
title: '商户类型',
dataIndex: 'shopType',
dataIndex: 'shopType'
// key: 'shopType'
},
{

View File

@@ -48,7 +48,7 @@
// 是否显示编辑弹窗
const showEdit = ref(false);
const content = ref<string>(props.value)
const content = ref<string>(props.value);
// 当前编辑数据
const current = ref<ShopMerchant | null>(null);

View File

@@ -61,8 +61,8 @@
} from 'ele-admin-pro/es/ele-pro-table/types';
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import { EleProTable } from 'ele-admin-pro';
import {pageCmsModel} from "@/api/cms/cmsModel";
import {CmsModel, CmsModelParam} from "@/api/cms/cmsModel/model";
import { pageCmsModel } from '@/api/cms/cmsModel';
import { CmsModel, CmsModelParam } from '@/api/cms/cmsModel/model';
const props = defineProps<{
// 弹窗是否打开

View File

@@ -46,7 +46,7 @@ const props = withDefaults(
// 是否显示编辑弹窗
const showEdit = ref(false);
const content = ref<any>(props.value)
const content = ref<any>(props.value);
// 当前编辑数据
const current = ref<Company | null>(null);

View File

@@ -46,7 +46,7 @@ const props = withDefaults(
const showEdit = ref(false);
// 当前编辑数据
const current = ref<Environment | null>(null);
const content = ref<any>(props.value)
const content = ref<any>(props.value);
/* 打开编辑弹窗 */
const openEdit = (row?: Environment) => {

View File

@@ -46,7 +46,7 @@ const props = withDefaults(
const showEdit = ref(false);
// 当前编辑数据
const current = ref<CmsMpPages | null>(null);
const page = ref<any>()
const page = ref<any>();
/* 打开编辑弹窗 */
const openEdit = (row?: CmsMpPages) => {

View File

@@ -62,7 +62,10 @@
<script lang="ts" setup>
import { ref } from 'vue';
import { listCmsNavigation, pageCmsNavigation } from '@/api/cms/cmsNavigation';
import {
listCmsNavigation,
pageCmsNavigation
} from '@/api/cms/cmsNavigation';
import { EleProTable } from 'ele-admin-pro';
import { useI18n } from 'vue-i18n';
import { toTreeData, eachTreeData } from 'ele-admin-pro/es';
@@ -71,7 +74,10 @@
ColumnItem,
EleProTableDone
} from 'ele-admin-pro/es/ele-pro-table/types';
import type { CmsNavigation, CmsNavigationParam } from '@/api/cms/cmsNavigation/model';
import type {
CmsNavigation,
CmsNavigationParam
} from '@/api/cms/cmsNavigation/model';
const props = defineProps<{
// 弹窗是否打开

View File

@@ -46,7 +46,7 @@ const props = withDefaults(
const showEdit = ref(false);
// 当前编辑数据
const current = ref<Organization | null>(null);
const content = ref<any>(props.value)
const content = ref<any>(props.value);
/* 打开编辑弹窗 */
const openEdit = (row?: Organization) => {

View File

@@ -48,7 +48,7 @@ const props = withDefaults(
const showEdit = ref(false);
// 当前编辑数据
const current = ref<Grade | null>(null);
const content = ref<any>(props.value)
const content = ref<any>(props.value);
/* 打开编辑弹窗 */
const openEdit = (row?: Grade) => {

View File

@@ -48,7 +48,7 @@ const props = withDefaults(
const showEdit = ref(false);
// 当前编辑数据
const current = ref<Spec | null>(null);
const content = ref<any>(props.value)
const content = ref<any>(props.value);
/* 打开编辑弹窗 */
const openEdit = (row?: Spec) => {

View File

@@ -54,11 +54,11 @@
const onChange = (value: any) => {
console.log(value);
data.value.map(d => {
data.value.map((d) => {
if (d.value == value) {
emit('done',d, Number(props.index))
emit('done', d, Number(props.index));
}
})
});
};
watch(
@@ -66,11 +66,11 @@
(specId) => {
if (specId) {
listSpecValue({ specId }).then((list) => {
data.value = list.map(v => {
v.label = v.specValue
v.value = v.specValue
data.value = list.map((v) => {
v.label = v.specValue;
v.value = v.specValue;
return v;
})
});
});
} else {
data.value = [];

View File

@@ -49,7 +49,7 @@
const showEdit = ref(false);
// 当前编辑数据
const current = ref<User | null>(null);
const content = ref<any>()
const content = ref<any>();
/* 打开编辑弹窗 */
const openEdit = (row?: User) => {

View File

@@ -40,8 +40,8 @@
DatasourceFunction
} from 'ele-admin-pro/es/ele-pro-table/types';
import { EleProTable } from 'ele-admin-pro';
import {User, UserParam} from "@/api/system/user/model";
import {pageUsers} from "@/api/system/user";
import { User, UserParam } from '@/api/system/user/model';
import { pageUsers } from '@/api/system/user';
const props = defineProps<{
// 弹窗是否打开
@@ -86,7 +86,7 @@
title: '域名',
dataIndex: 'domain',
key: 'domain'
},
}
// {
// title: '状态',
// dataIndex: 'status',

View File

@@ -1,7 +1,13 @@
<template>
<div>
<a-button @click="openEdit">
<template #icon><BulbOutlined v-if="value > 20" class="ele-text-heading" /><BulbOutlined v-else class="ele-text-danger" /></template>
<template #icon
><BulbOutlined
v-if="value > 20"
class="ele-text-heading" /><BulbOutlined
v-else
class="ele-text-danger"
/></template>
</a-button>
<!-- 选择弹窗 -->
<SelectData
@@ -18,7 +24,7 @@
import { BulbOutlined } from '@ant-design/icons-vue';
import { ref } from 'vue';
import SelectData from './components/select-data.vue';
import {User} from "@/api/system/user/model";
import { User } from '@/api/system/user/model';
const props = withDefaults(
defineProps<{

View File

@@ -48,7 +48,7 @@ const props = withDefaults(
const showEdit = ref(false);
// 当前编辑数据
const current = ref<User | null>(null);
const user = ref<User>(props.value)
const user = ref<User>(props.value);
/* 打开编辑弹窗 */
const openEdit = (row?: User) => {

View File

@@ -67,7 +67,7 @@ import {ExclamationCircleOutlined} from '@ant-design/icons-vue';
import { EleProTable } from 'ele-admin-pro';
import { Company, CompanyParam } from '@/api/system/company/model';
import { CmsWebsiteField } from '@/api/cms/cmsWebsiteField/model';
import {pageWebsiteField} from "@/api/system/website/field";
import { pageWebsiteField } from '@/api/system/website/field';
const props = defineProps<{
// 弹窗是否打开

View File

@@ -28,7 +28,7 @@
import { BulbOutlined } from '@ant-design/icons-vue';
import { ref } from 'vue';
import SelectData from './components/select-data.vue';
import {CmsWebsiteField} from "@/api/cms/cmsWebsiteField/model";
import { CmsWebsiteField } from '@/api/cms/cmsWebsiteField/model';
const props = withDefaults(
defineProps<{
@@ -50,7 +50,7 @@ const emit = defineEmits<{
const showEdit = ref(false);
// 当前编辑数据
const current = ref<CmsWebsiteField | null>(null);
const content = ref<any>(props.value)
const content = ref<any>(props.value);
/* 打开编辑弹窗 */
const openEdit = (row?: CmsWebsiteField) => {

View File

@@ -276,11 +276,18 @@ export function setupTextIndent(editor: TinyMCEEditor) {
// 获取当前段落元素
let paragraph = selectedNode;
while (paragraph && paragraph.nodeName !== 'P' && paragraph.nodeName !== 'DIV') {
while (
paragraph &&
paragraph.nodeName !== 'P' &&
paragraph.nodeName !== 'DIV'
) {
paragraph = paragraph.parentNode as Element;
}
if (paragraph && (paragraph.nodeName === 'P' || paragraph.nodeName === 'DIV')) {
if (
paragraph &&
(paragraph.nodeName === 'P' || paragraph.nodeName === 'DIV')
) {
const currentIndent = (paragraph as HTMLElement).style.textIndent;
if (currentIndent === '2em' || currentIndent === '32px') {
@@ -305,7 +312,11 @@ export function setupTextIndent(editor: TinyMCEEditor) {
const content = selection.getContent();
if (content) {
// 如果有选择内容,将选择的内容包装在带缩进的段落中
editor.execCommand('mceInsertContent', false, `<p style="text-indent: 2em;">${content}</p>`);
editor.execCommand(
'mceInsertContent',
false,
`<p style="text-indent: 2em;">${content}</p>`
);
} else {
// 如果没有选择内容,在当前位置插入带缩进的段落
editor.execCommand('FormatBlock', false, 'p');

View File

@@ -151,23 +151,28 @@ export class PerformanceManager {
// 收集性能数据
private collectPerformanceData() {
const navigation = performance.getEntriesByType('navigation')[0] as PerformanceNavigationTiming;
const navigation = performance.getEntriesByType(
'navigation'
)[0] as PerformanceNavigationTiming;
const memory = (performance as any).memory;
return {
// 页面加载性能
pageLoad: {
domContentLoaded: navigation?.domContentLoadedEventEnd - navigation?.fetchStart,
domContentLoaded:
navigation?.domContentLoadedEventEnd - navigation?.fetchStart,
loadComplete: navigation?.loadEventEnd - navigation?.fetchStart,
firstByte: navigation?.responseStart - navigation?.fetchStart
},
// 内存使用
memory: memory ? {
memory: memory
? {
used: Math.round(memory.usedJSHeapSize / 1024 / 1024),
total: Math.round(memory.totalJSHeapSize / 1024 / 1024),
limit: Math.round(memory.jsHeapSizeLimit / 1024 / 1024)
} : null,
}
: null,
// 资源加载
resources: this.getResourceMetrics(),
@@ -189,7 +194,7 @@ export class PerformanceManager {
let totalDuration = 0;
resources.forEach(resource => {
resources.forEach((resource) => {
const duration = resource.duration;
totalDuration += duration;
@@ -273,13 +278,15 @@ export class PerformanceAdvisor {
// 检查资源加载
const resources = performance.getEntriesByType('resource');
const slowResources = resources.filter(r => r.duration > 2000);
const slowResources = resources.filter((r) => r.duration > 2000);
if (slowResources.length > 0) {
advice.push(`发现 ${slowResources.length} 个加载缓慢的资源,建议优化`);
}
// 检查页面加载时间
const navigation = performance.getEntriesByType('navigation')[0] as PerformanceNavigationTiming;
const navigation = performance.getEntriesByType(
'navigation'
)[0] as PerformanceNavigationTiming;
if (navigation) {
const loadTime = navigation.loadEventEnd - navigation.fetchStart;
if (loadTime > 3000) {
@@ -310,7 +317,11 @@ export const performanceManager = new PerformanceManager();
// 性能装饰器
export function performanceTrack(name: string) {
return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {
return function (
target: any,
propertyKey: string,
descriptor: PropertyDescriptor
) {
const originalMethod = descriptor.value;
descriptor.value = function (...args: any[]) {

View File

@@ -7,11 +7,14 @@ export const APP_SECRET = import.meta.env.VITE_APP_SECRET || '';
// 开发商官方网站
export const domain = import.meta.env.VITE_DOMAIN || 'https://your-domain.com';
// 主节点
export const SERVER_API_URL = import.meta.env.VITE_SERVER_API_URL || 'https://your-api.com/api';
export const SERVER_API_URL =
import.meta.env.VITE_SERVER_API_URL || 'https://your-api.com/api';
// 模块节点
export const MODULES_API_URL = localStorage.getItem('ApiUrl') || import.meta.env.VITE_API_URL;
export const MODULES_API_URL =
localStorage.getItem('ApiUrl') || import.meta.env.VITE_API_URL;
// 文件服务器地址
export const FILE_SERVER = import.meta.env.VITE_FILE_SERVER || 'https://your-file-server.com';
export const FILE_SERVER =
import.meta.env.VITE_FILE_SERVER || 'https://your-file-server.com';
/**
* 以下配置一般不需要修改

View File

@@ -10,5 +10,5 @@ export default {
loading: 'loading',
oldPassword: 'Old',
newPassword: 'New',
confirm: 'Confirm',
confirm: 'Confirm'
};

View File

@@ -10,5 +10,5 @@ export default {
loading: '登录中',
oldPassword: '旧密码',
newPassword: '新密码',
confirm: '确认密码',
confirm: '确认密码'
};

View File

@@ -26,7 +26,7 @@ const visible = ref<boolean>(false);
// 通知数据
const notice = ref<ChatMessage[]>([]);
console.log(userStore.info?.userId,'.....userId')
console.log(userStore.info?.userId, '.....userId');
// chatStore.connectSocketIO(userStore.info?.userId || 0);
// 未读数量

View File

@@ -42,9 +42,11 @@
}}</span>
</div>
<div class="text-gray-400">
用户ID<span class="ele-text-secondary" @click="copyText(loginUser.userId)">{{
loginUser.userId
}}</span>
用户ID<span
class="ele-text-secondary"
@click="copyText(loginUser.userId)"
>{{ loginUser.userId }}</span
>
</div>
<div class="text-gray-400">
昵称<span class="ele-text-secondary">{{
@@ -57,9 +59,11 @@
}}</span>
</div>
<div class="text-gray-400">
租户<span class="ele-text-secondary" @click="copyText(loginUser.tenantId)">{{
loginUser.tenantId
}}</span>
租户<span
class="ele-text-secondary"
@click="copyText(loginUser.tenantId)"
>{{ loginUser.tenantId }}</span
>
</div>
<div class="text-gray-400">
角色
@@ -81,26 +85,39 @@
<a-menu-divider />
<a-menu-item key="profile">
<div class="ele-cell">
<div class="ele-cell-content"> {{ t('layout.header.profile') }}</div>
<div class="ele-cell-content">
{{ t('layout.header.profile') }}</div
>
</div>
</a-menu-item>
<a-menu-divider />
<a-menu-item key="password">
<div class="ele-cell">
<div class="ele-cell-content"> {{ t('layout.header.password') }}</div>
<div class="ele-cell-content">
{{ t('layout.header.password') }}</div
>
</div>
</a-menu-item>
<template v-if="loginUser.username == 'admin' || loginUser.username == 'superAdmin'">
<template
v-if="
loginUser.username == 'admin' ||
loginUser.username == 'superAdmin'
"
>
<a-menu-divider />
<a-menu-item key="accessKey">
<div class="ele-cell">
<div class="ele-cell-content"> {{ t('layout.header.accessKey') }}</div>
<div class="ele-cell-content">
{{ t('layout.header.accessKey') }}</div
>
</div>
</a-menu-item>
<a-menu-divider />
<a-menu-item key="system">
<div class="ele-cell">
<div class="ele-cell-content"> {{ t('layout.header.system') }}</div>
<div class="ele-cell-content">
{{ t('layout.header.system') }}</div
>
</div>
</a-menu-item>
</template>
@@ -150,9 +167,9 @@ import {useUserStore} from '@/store/modules/user';
import { logout } from '@/utils/page-tab-util';
import { listRoles } from '@/api/system/role';
import { useSiteStore } from '@/store/modules/site';
import Qrcode from "@/components/QrCode/index.vue";
import {AppInfo} from "@/api/cms/cmsWebsite/model";
import {getCmsWebsiteFieldByCode} from "@/api/cms/cmsWebsiteField";
import Qrcode from '@/components/QrCode/index.vue';
import { AppInfo } from '@/api/cms/cmsWebsite/model';
import { getCmsWebsiteFieldByCode } from '@/api/cms/cmsWebsiteField';
// 是否开启响应式布局
const themeStore = useThemeStore();
@@ -218,7 +235,7 @@ const onUserDropClick = ({key}) => {
const hideShare = () => {
showQrcode.value = false;
}
};
/* 打开主题设置抽屉 */
// const openSetting = () => {
@@ -247,11 +264,11 @@ const reload = () => {
}
// 检查是否启动自定义接口
if (import.meta.env.PROD) {
getCmsWebsiteFieldByCode('ApiUrl').then(res => {
getCmsWebsiteFieldByCode('ApiUrl').then((res) => {
if (res) {
localStorage.setItem('ApiUrl', `${res.value}`);
}
})
});
}
};

View File

@@ -1,6 +1,10 @@
<!-- 全局页脚 -->
<template>
<div v-if="config.setting?.showAdminCopyright" class="ele-text-center" style="padding: 16px 0">
<div
v-if="config.setting?.showAdminCopyright"
class="ele-text-center"
style="padding: 16px 0"
>
<div class="ele-text-secondary" style="margin-top: 8px">
{{ t('layout.footer.copyright') }}
</div>
@@ -9,8 +13,8 @@
<script lang="ts" setup>
import { useI18n } from 'vue-i18n';
import {useWebsiteSettingStore} from "@/store/modules/setting";
import {getSettingByKey} from "@/api/system/setting";
import { useWebsiteSettingStore } from '@/store/modules/setting';
import { getSettingByKey } from '@/api/system/setting';
const { t } = useI18n();
const config = useWebsiteSettingStore();
@@ -18,9 +22,9 @@ const config = useWebsiteSettingStore();
const reload = async () => {
if (!config.setting) {
const info = await getSettingByKey('privacy');
config.setSetting(info)
}
config.setSetting(info);
}
};
reload();
</script>

View File

@@ -725,7 +725,8 @@ initColorValue();
background: none;
&.is-empty {
background: conic-gradient(from 90deg at 50% 50%,
background: conic-gradient(
from 90deg at 50% 50%,
rgb(255, 0, 0) -19.41deg,
rgb(255, 0, 0) 18.76deg,
rgb(255, 138, 0) 59.32deg,
@@ -736,7 +737,8 @@ initColorValue();
rgb(173, 0, 255) 260.13deg,
rgb(255, 0, 199) 300.69deg,
rgb(255, 0, 0) 340.59deg,
rgb(255, 0, 0) 378.76deg);
rgb(255, 0, 0) 378.76deg
);
& + .ele-color-picker-trigger-arrow {
display: none;

View File

@@ -130,7 +130,7 @@
// 是否刷新页面
if (localStorage.getItem('Reload')) {
window.location.reload();
localStorage.removeItem('Reload')
localStorage.removeItem('Reload');
}
const themeStore = useThemeStore();

View File

@@ -71,7 +71,7 @@ class PortCache {
let expired = 0;
let active = 0;
cache.forEach(config => {
cache.forEach((config) => {
if (now - config.lastUsed > this.CACHE_EXPIRY) {
expired++;
} else {
@@ -88,7 +88,10 @@ class PortUtils {
/**
* 检查端口是否可用
*/
static async isPortAvailable(port: number, host: string = 'localhost'): Promise<boolean> {
static async isPortAvailable(
port: number,
host = 'localhost'
): Promise<boolean> {
try {
// 在浏览器环境中,我们无法直接检测端口占用
// 这里使用一个模拟的检测方法
@@ -112,7 +115,7 @@ class PortUtils {
static async findAvailablePort(
startPort: number,
endPort: number,
host: string = 'localhost'
host = 'localhost'
): Promise<number | null> {
for (let port = startPort; port <= endPort; port++) {
if (await this.isPortAvailable(port, host)) {
@@ -139,7 +142,8 @@ class PortUtils {
* 计算租户端口偏移
*/
static calculateTenantOffset(tenantId: string | number): number {
const id = typeof tenantId === 'string' ? parseInt(tenantId) || 0 : tenantId;
const id =
typeof tenantId === 'string' ? parseInt(tenantId) || 0 : tenantId;
return (id % 1000) * 10; // 每个租户分配10个端口的空间
}
@@ -148,9 +152,9 @@ class PortUtils {
*/
static calculateEnvironmentOffset(environment: string): number {
const offsets = {
'development': 0,
'test': 1000,
'production': 2000
development: 0,
test: 1000,
production: 2000
};
return offsets[environment as keyof typeof offsets] || 0;
}
@@ -191,13 +195,17 @@ export class PortManager {
projectName?: string;
preferredPort?: number;
}): Promise<PortConfig> {
const tenantId = options?.tenantId || await getTenantId();
const tenantId = options?.tenantId || (await getTenantId());
const projectName = options?.projectName || 'mp-vue';
const portKey = PortUtils.generatePortKey(tenantId, this.environment, projectName);
const portKey = PortUtils.generatePortKey(
tenantId,
this.environment,
projectName
);
// 1. 检查缓存中的端口
const cachedPort = this.cache.get(portKey);
if (cachedPort && await PortUtils.isPortAvailable(cachedPort.port)) {
if (cachedPort && (await PortUtils.isPortAvailable(cachedPort.port))) {
cachedPort.lastUsed = Date.now();
this.updateCache(portKey, cachedPort);
console.log('📋 使用缓存端口:', cachedPort.port);
@@ -207,7 +215,11 @@ export class PortManager {
// 2. 尝试首选端口
if (options?.preferredPort) {
if (await PortUtils.isPortAvailable(options.preferredPort)) {
const config = this.createPortConfig(options.preferredPort, tenantId, projectName);
const config = this.createPortConfig(
options.preferredPort,
tenantId,
projectName
);
this.updateCache(portKey, config);
console.log('✨ 使用首选端口:', options.preferredPort);
return config;
@@ -216,7 +228,11 @@ export class PortManager {
// 3. 智能分配端口
const recommendedPort = await this.allocateSmartPort(tenantId, projectName);
const config = this.createPortConfig(recommendedPort, tenantId, projectName);
const config = this.createPortConfig(
recommendedPort,
tenantId,
projectName
);
this.updateCache(portKey, config);
console.log('🎯 智能分配端口:', recommendedPort);
@@ -269,7 +285,9 @@ export class PortManager {
}
// 最后的备选方案
throw new Error(`无法在端口范围 ${this.strategy.portRange[0]}-${this.strategy.portRange[1]} 内找到可用端口`);
throw new Error(
`无法在端口范围 ${this.strategy.portRange[0]}-${this.strategy.portRange[1]} 内找到可用端口`
);
}
/**

View File

@@ -237,7 +237,9 @@ export class PortStrategyManager {
getCurrentStrategy(): EnvironmentPortStrategy {
const strategy = this.strategies.get(this.currentEnvironment);
if (!strategy) {
console.warn(`未找到环境 ${this.currentEnvironment} 的策略,使用开发环境策略`);
console.warn(
`未找到环境 ${this.currentEnvironment} 的策略,使用开发环境策略`
);
return this.strategies.get('development')!;
}
return strategy;
@@ -253,7 +255,10 @@ export class PortStrategyManager {
/**
* 设置环境策略
*/
setStrategy(environment: Environment, strategy: EnvironmentPortStrategy): void {
setStrategy(
environment: Environment,
strategy: EnvironmentPortStrategy
): void {
this.strategies.set(environment, strategy);
console.log(`✅ 已更新 ${environment} 环境的端口策略`);
}
@@ -275,7 +280,7 @@ export class PortStrategyManager {
// 获取备选策略(按优先级排序)
const allStrategies = Array.from(this.strategies.values())
.filter(s => s.environment !== this.currentEnvironment)
.filter((s) => s.environment !== this.currentEnvironment)
.sort((a, b) => a.priority - b.priority);
fallback.push(...allStrategies);
@@ -320,7 +325,10 @@ export class PortStrategyManager {
}
// 检查基础端口
if (strategy.basePort < strategy.portRange[0] || strategy.basePort > strategy.portRange[1]) {
if (
strategy.basePort < strategy.portRange[0] ||
strategy.basePort > strategy.portRange[1]
) {
errors.push('基础端口不在允许的端口范围内');
}
@@ -330,11 +338,17 @@ export class PortStrategyManager {
}
// 检查环境特定规则
if (strategy.environment === 'production' && !strategy.restrictions.requireHttps) {
if (
strategy.environment === 'production' &&
!strategy.restrictions.requireHttps
) {
warnings.push('生产环境建议启用 HTTPS');
}
if (strategy.environment === 'development' && strategy.restrictions.requireHttps) {
if (
strategy.environment === 'development' &&
strategy.restrictions.requireHttps
) {
warnings.push('开发环境启用 HTTPS 可能增加配置复杂度');
}
@@ -358,12 +372,14 @@ export class PortStrategyManager {
isValid: boolean;
}>;
} {
const strategies = Array.from(this.strategies.entries()).map(([env, strategy]) => ({
const strategies = Array.from(this.strategies.entries()).map(
([env, strategy]) => ({
environment: env,
priority: strategy.priority,
portRange: strategy.portRange,
isValid: this.validateStrategy(strategy).isValid
}));
})
);
return {
current: this.currentEnvironment,

View File

@@ -75,7 +75,10 @@ class TenantPortCache {
localStorage.removeItem(this.CACHE_KEY);
}
static generateKey(tenantId: string | number, environment: Environment): string {
static generateKey(
tenantId: string | number,
environment: Environment
): string {
return `${tenantId}-${environment}`;
}
}
@@ -107,7 +110,7 @@ export class TenantPortManager {
}): Promise<PortAllocationResult> {
try {
// 1. 获取租户信息
const tenantId = options?.tenantId || await getTenantId();
const tenantId = options?.tenantId || (await getTenantId());
const tenantInfo = await getTenantInfo();
if (!tenantId) {
@@ -119,7 +122,10 @@ export class TenantPortManager {
}
// 2. 检查现有绑定
const bindingKey = TenantPortCache.generateKey(tenantId, this.currentEnvironment);
const bindingKey = TenantPortCache.generateKey(
tenantId,
this.currentEnvironment
);
const existingBinding = this.bindings.get(bindingKey);
if (existingBinding && !options?.forceNew) {
@@ -148,7 +154,11 @@ export class TenantPortManager {
});
// 4. 创建租户端口绑定
const binding = this.createTenantBinding(tenantId, tenantInfo, portConfig);
const binding = this.createTenantBinding(
tenantId,
tenantInfo,
portConfig
);
this.updateBinding(bindingKey, binding);
console.log('🎯 为租户分配新端口:', {
@@ -163,7 +173,6 @@ export class TenantPortManager {
binding,
recommendations: this.generateRecommendations(binding)
};
} catch (error) {
console.error('❌ 租户端口分配失败:', error);
return {
@@ -177,7 +186,9 @@ export class TenantPortManager {
/**
* 验证端口绑定是否有效
*/
private async validatePortBinding(binding: TenantPortBinding): Promise<boolean> {
private async validatePortBinding(
binding: TenantPortBinding
): Promise<boolean> {
try {
// 检查端口是否仍然可用
const response = await fetch(`http://localhost:${binding.assignedPort}`, {
@@ -214,7 +225,9 @@ export class TenantPortManager {
metadata: {
projectName: portConfig.projectName || 'mp-vue',
version: '1.0.0',
description: `${tenantInfo?.name || '租户'} - ${this.currentEnvironment}环境`
description: `${tenantInfo?.name || '租户'} - ${
this.currentEnvironment
}环境`
}
};
}
@@ -238,7 +251,9 @@ export class TenantPortManager {
switch (binding.environment) {
case 'development':
recommendations.push('开发环境:建议配置热重载和调试工具');
recommendations.push(`访问地址http://localhost:${binding.assignedPort}`);
recommendations.push(
`访问地址http://localhost:${binding.assignedPort}`
);
break;
case 'test':
recommendations.push('测试环境:建议配置自动化测试和监控');
@@ -252,7 +267,10 @@ export class TenantPortManager {
}
// 端口范围建议
if (binding.assignedPort < strategy.portRange[0] || binding.assignedPort > strategy.portRange[1]) {
if (
binding.assignedPort < strategy.portRange[0] ||
binding.assignedPort > strategy.portRange[1]
) {
recommendations.push('⚠️ 分配的端口超出推荐范围,可能存在冲突风险');
}
@@ -267,14 +285,17 @@ export class TenantPortManager {
history: TenantPortBinding[];
recommendations: string[];
}> {
const targetTenantId = tenantId || await getTenantId();
const targetTenantId = tenantId || (await getTenantId());
const history: TenantPortBinding[] = [];
let current: TenantPortBinding | undefined;
// 查找当前和历史绑定
this.bindings.forEach(binding => {
this.bindings.forEach((binding) => {
if (binding.tenantId === targetTenantId) {
if (binding.environment === this.currentEnvironment && binding.isActive) {
if (
binding.environment === this.currentEnvironment &&
binding.isActive
) {
current = binding;
}
history.push(binding);
@@ -296,14 +317,19 @@ export class TenantPortManager {
*/
async releaseTenantPort(tenantId?: string | number): Promise<boolean> {
try {
const targetTenantId = tenantId || await getTenantId();
const bindingKey = TenantPortCache.generateKey(targetTenantId, this.currentEnvironment);
const targetTenantId = tenantId || (await getTenantId());
const bindingKey = TenantPortCache.generateKey(
targetTenantId,
this.currentEnvironment
);
const binding = this.bindings.get(bindingKey);
if (binding) {
binding.isActive = false;
this.updateBinding(bindingKey, binding);
console.log(`🔓 已释放租户 ${targetTenantId} 的端口 ${binding.assignedPort}`);
console.log(
`🔓 已释放租户 ${targetTenantId} 的端口 ${binding.assignedPort}`
);
return true;
}
@@ -329,13 +355,16 @@ export class TenantPortManager {
activeBindings: 0,
environmentStats: {} as Record<Environment, number>,
portRangeUsage: { min: Infinity, max: 0, average: 0 },
topTenants: [] as Array<{ tenantId: string | number; bindingsCount: number }>
topTenants: [] as Array<{
tenantId: string | number;
bindingsCount: number;
}>
};
const tenantCounts = new Map<string | number, number>();
let portSum = 0;
this.bindings.forEach(binding => {
this.bindings.forEach((binding) => {
// 活跃绑定统计
if (binding.isActive) {
stats.activeBindings++;
@@ -346,8 +375,14 @@ export class TenantPortManager {
(stats.environmentStats[binding.environment] || 0) + 1;
// 端口范围统计
stats.portRangeUsage.min = Math.min(stats.portRangeUsage.min, binding.assignedPort);
stats.portRangeUsage.max = Math.max(stats.portRangeUsage.max, binding.assignedPort);
stats.portRangeUsage.min = Math.min(
stats.portRangeUsage.min,
binding.assignedPort
);
stats.portRangeUsage.max = Math.max(
stats.portRangeUsage.max,
binding.assignedPort
);
portSum += binding.assignedPort;
// 租户统计
@@ -356,9 +391,8 @@ export class TenantPortManager {
});
// 计算平均端口
stats.portRangeUsage.average = stats.totalBindings > 0
? Math.round(portSum / stats.totalBindings)
: 0;
stats.portRangeUsage.average =
stats.totalBindings > 0 ? Math.round(portSum / stats.totalBindings) : 0;
// 修复无限大的情况
if (stats.portRangeUsage.min === Infinity) {

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