更新后台

This commit is contained in:
全栈小学生 2023-05-31 11:17:46 +08:00
parent 39b4608da0
commit 9967c90bb7
188 changed files with 4847 additions and 2154 deletions

View File

@ -5,7 +5,7 @@ import request from '@/utils/request'
* @returns
*/
export function getAddonLocal(params: Record<string, any>) {
return request.get('addon/local', params, { showErrorMessage: true, showSuccessMessage: true })
return request.get('addon/local', params, { showSuccessMessage: true })
}
/**
@ -22,7 +22,7 @@ export function getAddonDetial(id: number) {
* @returns
*/
export function installAddon(params: Record<string, any>) {
return request.post(`addon/install/${params.addon}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.post(`addon/install/${params.addon}`, params, { showErrorMessage: true })
}
/**
@ -31,5 +31,33 @@ export function installAddon(params: Record<string, any>) {
* @returns
*/
export function uninstallAddon(params: Record<string, any>) {
return request.post(`addon/uninstall/${params.addon}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.post(`addon/uninstall/${params.addon}`, params, { showSuccessMessage: true })
}
/**
*
* @param addon
* @returns
*/
export function preInstallCheck(addon: string) {
return request.get(`addon/install/check/${addon}`, { timeout: 30 * 1000 })
}
/**
*
* @param addon
* @param key
* @returns
*/
export function getAddonInstallTaskState(addon: string, key: string) {
return request.get(`addon/install/${addon}/status/${key}`)
}
/**
*
* @param params
* @returns
*/
export function executeInstall(addon: string) {
return request.post(`addon/install/execute/${addon}`, {}, { showErrorMessage: true })
}

View File

@ -14,7 +14,7 @@ export function getAliappConfig() {
* @returns
*/
export function setAliappConfig(params: Record<string, any>) {
return request.put('aliapp/config', params, { showErrorMessage: true, showSuccessMessage: true })
return request.put('aliapp/config', params, { showSuccessMessage: true })
}
/**

View File

@ -26,7 +26,7 @@ export function getArticleInfo(id: number) {
* @returns
*/
export function addArticle(params: Record<string, any>) {
return request.post('article/article', params, { showErrorMessage: true, showSuccessMessage: true })
return request.post('article/article', params, { showSuccessMessage: true })
}
/**
@ -36,7 +36,7 @@ export function addArticle(params: Record<string, any>) {
* @returns
*/
export function editArticle(params: Record<string, any>) {
return request.put(`article/article/${params.id}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`article/article/${params.id}`, params, { showSuccessMessage: true })
}
/**
@ -45,7 +45,7 @@ export function editArticle(params: Record<string, any>) {
* @returns
*/
export function deleteArticle(id: number) {
return request.delete(`article/article/${id}`, { showErrorMessage: true, showSuccessMessage: true })
return request.delete(`article/article/${id}`, { showSuccessMessage: true })
}
/***************************************************** 文章分类管理 ****************************************************/
@ -83,7 +83,7 @@ export function getArticleCategoryInfo(category_id: number) {
* @returns
*/
export function addArticleCategory(params: Record<string, any>) {
return request.post('article/category', params, { showErrorMessage: true, showSuccessMessage: true })
return request.post('article/category', params, { showSuccessMessage: true })
}
/**
@ -92,7 +92,7 @@ export function addArticleCategory(params: Record<string, any>) {
* @returns
*/
export function editArticleCategory(params: Record<string, any>) {
return request.put(`article/category/${params.category_id}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`article/category/${params.category_id}`, params, { showSuccessMessage: true })
}
/**
@ -101,5 +101,5 @@ export function editArticleCategory(params: Record<string, any>) {
* @returns
*/
export function deleteArticleCategory(category_id: number) {
return request.delete(`article/category/${category_id}`, { showErrorMessage: true, showSuccessMessage: true });
return request.delete(`article/category/${category_id}`, { showSuccessMessage: true });
}

View File

@ -6,7 +6,7 @@ import request from '@/utils/request'
* @returns
*/
export function login(params: Record<string, any>, app_type: string) {
return request.get(`login/${app_type}`, { params, showErrorMessage: true })
return request.get(`login/${app_type}`, { params })
}
/**

View File

@ -26,7 +26,7 @@ export function getDiyPageInfo(id: number) {
* @returns
*/
export function addDiyPage(params: Record<string, any>) {
return request.post('diy/diy', params, { showErrorMessage: true, showSuccessMessage: true })
return request.post('diy/diy', params, { showSuccessMessage: true })
}
/**
@ -34,7 +34,7 @@ export function addDiyPage(params: Record<string, any>) {
* @param params
*/
export function editDiyPage(params: Record<string, any>) {
return request.put(`diy/diy/${params.id}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`diy/diy/${params.id}`, params, { showSuccessMessage: true })
}
/**
@ -42,7 +42,7 @@ export function editDiyPage(params: Record<string, any>) {
* @param params
*/
export function setUseDiyPage(params: Record<string, any>) {
return request.put(`diy/use`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`diy/use`, params, { showSuccessMessage: true })
}
/**
@ -50,7 +50,7 @@ export function setUseDiyPage(params: Record<string, any>) {
* @param params
*/
export function editDiyPageShare(params: Record<string, any>) {
return request.put(`diy/diy/share`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`diy/diy/share`, params, { showSuccessMessage: true })
}
/**
@ -59,7 +59,7 @@ export function editDiyPageShare(params: Record<string, any>) {
* @returns
*/
export function deleteDiyPage(id: number) {
return request.delete(`diy/diy/${id}`, { showErrorMessage: true, showSuccessMessage: true })
return request.delete(`diy/diy/${id}`, { showSuccessMessage: true })
}
/**
@ -89,14 +89,14 @@ export function getDiyBottom(params: Record<string, any>) {
* @returns
*/
export function setDiyBottom(params: Record<string, any>) {
return request.post('diy/bottom', params, { showErrorMessage: true, showSuccessMessage: true })
return request.post('diy/bottom', params, { showSuccessMessage: true })
}
/**
*
*
*/
export function getDiyPageType(params: Record<string, any>) {
return request.get(`diy/type`, { params })
export function getDiyTemplate(params: Record<string, any>) {
return request.get(`diy/template`, { params })
}
/**
@ -121,5 +121,5 @@ export function getDiyRouteInfo(params: Record<string, any>) {
* @param params
*/
export function editDiyRouteShare(params: Record<string, any>) {
return request.put(`diy/route/share`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`diy/route/share`, params, { showSuccessMessage: true })
}

View File

@ -14,5 +14,5 @@ export function getH5Config() {
* @returns
*/
export function setH5Config(params: Record<string, any>) {
return request.put('channel/h5/config', params, { showErrorMessage: true, showSuccessMessage: true })
return request.put('channel/h5/config', params, { showSuccessMessage: true })
}

View File

@ -21,13 +21,21 @@ export function getMemberInfo(id: number) {
return request.get(`member/member/${id}`);
}
/**
*
* @returns
*/
export function getMemberNo() {
return request.get(`member/memberno`);
}
/**
*
* @param params
* @returns
*/
export function addMember(params: Record<string, any>) {
return request.post(`member/member`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.post(`member/member`, params, { showSuccessMessage: true })
}
/**
@ -48,6 +56,15 @@ export function getRegisterChannelType(params: Record<string, any>) {
return request.get(`member/register/channel`, params)
}
/**
*
* @param params
* @returns
*/
export function deleteMember(member_id: number) {
return request.delete(`member/member/${member_id}`, { showSuccessMessage: true })
}
/***************************************************** 会员标签 ****************************************************/
@ -76,7 +93,7 @@ export function getMemberLabelInfo(label_id: number) {
* @returns
*/
export function addMemberLabel(params: Record<string, any>) {
return request.post('member/label', params, { showErrorMessage: true, showSuccessMessage: true })
return request.post('member/label', params, { showSuccessMessage: true })
}
/**
@ -86,7 +103,7 @@ export function addMemberLabel(params: Record<string, any>) {
* @returns
*/
export function updateMemberLabel(params: Record<string, any>) {
return request.put(`member/label/${params.label_id}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`member/label/${params.label_id}`, params, { showSuccessMessage: true })
}
/**
@ -95,7 +112,7 @@ export function updateMemberLabel(params: Record<string, any>) {
* @returns
*/
export function deleteMemberLabel(label_id: number) {
return request.delete(`member/label/${label_id}`, { showErrorMessage: true, showSuccessMessage: true })
return request.delete(`member/label/${label_id}`, { showSuccessMessage: true })
}
/**
@ -114,7 +131,7 @@ export function getMemberLabelAll() {
* @returns
*/
export function editMemberDetail(params: Record<string, any>) {
return request.put(`member/member/modify/${params.member_id}/${params.field}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`member/member/modify/${params.member_id}/${params.field}`, params, { showSuccessMessage: true })
}
/***************************************************** 会员零钱 ****************************************************/
@ -171,7 +188,7 @@ export function getCommissionList(params: Record<string, any>) {
* @returns
*/
export function adjustPoint(params: Record<string, any>) {
return request.post(`member/account/point`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.post(`member/account/point`, params, { showSuccessMessage: true })
}
/**
*
@ -179,7 +196,7 @@ export function adjustPoint(params: Record<string, any>) {
* @returns
*/
export function adjustBalance(params: Record<string, any>) {
return request.post(`member/account/balance`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.post(`member/account/balance`, params, { showSuccessMessage: true })
}
/***************************************************** 会员相关设置 ****************************************************/
@ -189,8 +206,8 @@ export function adjustBalance(params: Record<string, any>) {
* @param params
* @returns
*/
export function getLoginConfig(params: Record<string, any>) {
return request.get(`member/config/login`, params)
export function getLoginConfig() {
return request.get(`member/config/login`)
}
/**
*
@ -198,9 +215,29 @@ export function getLoginConfig(params: Record<string, any>) {
* @returns
*/
export function setLoginConfig(params: Record<string, any>) {
return request.post(`member/config/login`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.post(`member/config/login`, params, { showSuccessMessage: true })
}
/**
*
* @param params
* @returns
*/
export function getMemberConfig() {
return request.get(`member/config/member`)
}
/**
*
* @param params
* @returns
*/
export function setMemberConfig(params: Record<string, any>) {
return request.post(`member/config/member`, params, { showSuccessMessage: true })
}
/**
*
* @param params
@ -210,6 +247,25 @@ export function getTransfertype() {
return request.get(`member/cash_out/transfertype`)
}
/**
*
* @param params
* @returns
*/
export function getCommissionSum(params: Record<string, any>) {
return request.get(`member/account/sum_commission`, { params })
}
/**
*
* @param params
* @returns
*/
export function getPointSum(params: Record<string, any>) {
return request.get(`member/account/sum_point`, { params })
}
/**
*
* @param params
@ -243,7 +299,7 @@ export function getAccountType(params: Record<string, any>) {
* @param params
* @returns
*/
export function getWithdrawConfig() {
export function getCashOutConfig() {
return request.get(`member/config/cash_out`)
}
/**
@ -251,8 +307,8 @@ export function getWithdrawConfig() {
* @param params
* @returns
*/
export function setWithdrawConfig(params: Record<string, any>) {
return request.post(`member/config/cash_out`, params, { showErrorMessage: true, showSuccessMessage: true })
export function setCashOutConfig(params: Record<string, any>) {
return request.post(`member/config/cash_out`, params, { showSuccessMessage: true })
}
/**
@ -260,7 +316,7 @@ export function setWithdrawConfig(params: Record<string, any>) {
* @param params
* @returns
*/
export function getWithdrawList(params: Record<string, any>) {
export function getCashOutList(params: Record<string, any>) {
return request.get(`member/cash_out`, { params })
}
@ -269,7 +325,7 @@ export function getWithdrawList(params: Record<string, any>) {
* @param params
* @returns id
*/
export function getWithdrawDetail(id: number) {
export function getCashOutDetail(id: number) {
return request.get(`member/cash_out/${id}`, {})
}
@ -280,7 +336,7 @@ export function getWithdrawDetail(id: number) {
* @returns
*/
export function memberAudit(params: Record<string, any>) {
return request.put(`member/cash_out/audit/${params.id}/${params.action}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`member/cash_out/audit/${params.id}/${params.action}`, params, { showSuccessMessage: true })
}
/**
@ -290,7 +346,7 @@ export function memberAudit(params: Record<string, any>) {
* @returns
*/
export function memberTransfer(params: Record<string, any>) {
return request.put(`member/cash_out/transfer/${params.id}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`member/cash_out/transfer/${params.id}`, params, { showSuccessMessage: true })
}
/**
@ -300,7 +356,7 @@ export function memberTransfer(params: Record<string, any>) {
* @returns
*/
export function editMemberStatus(params: Record<string, any>) {
return request.put(`member/setstatus/${params.status}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`member/setstatus/${params.status}`, params, { showSuccessMessage: true })
}
/**
@ -308,6 +364,15 @@ export function editMemberStatus(params: Record<string, any>) {
* @param params
* @returns
*/
export function getWithdrawStatusList() {
export function getCashOutStatusList() {
return request.get(`member/cash_out/status`)
}
/**
*
* @returns
*/
export function getCashOutStat() {
return request.get(`member/cash_out/stat`)
}

View File

@ -35,7 +35,7 @@ export function getNoticeLog(params: any) {
* @returns
*/
export function editNoticeStatus(params: Record<string, any>) {
return request.post(`notice/notice/editstatus`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.post(`notice/notice/editstatus`, params, { showSuccessMessage: true })
}
/**
@ -44,7 +44,7 @@ export function editNoticeStatus(params: Record<string, any>) {
* @returns
*/
export function editNotice(params: Record<string, any>) {
return request.post(`notice/notice/edit`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.post(`notice/notice/edit`, params, { showSuccessMessage: true })
}
/**
@ -71,7 +71,7 @@ export function getSmsInfo(sms_type: string) {
* @returns
*/
export function editSms(params: Record<string, any>) {
return request.put(`notice/notice/sms/${params.sms_type}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`notice/notice/sms/${params.sms_type}`, params, { showSuccessMessage: true })
}
/**
@ -81,5 +81,5 @@ export function editSms(params: Record<string, any>) {
* @returns
*/
export function getSmsLog(params: Record<string, any>) {
return request.put(`notice/sms/log`, params)
return request.get(`notice/sms/log`, params)
}

View File

@ -11,6 +11,15 @@ export function getRechargeOrderList(params: Record<string, any>) {
return request.get(`order/recharge`, { params })
}
/**
*
* @param params
* @returns
*/
export function getRechargeStat(params: Record<string, any>) {
return request.get(`order/recharge/stat`, { params })
}
/**
*
* @param order_id
@ -48,6 +57,14 @@ export function getRefundStatus() {
* 退
* @returns
*/
export function rechargeRefund(id) {
return request.get(`order/recharge/refund/${id}`);
export function rechargeRefund(id: number) {
return request.put(`order/recharge/refund/${id}`, {}, { showSuccessMessage: true });
}
/**
* 退
* @returns
*/
export function getRefundStat() {
return request.get(`refund/stat`);
}

View File

@ -13,6 +13,6 @@ export function getUserInfo(type: string) {
* @returns
*/
export function setUserInfo(params: Record<string, any>) {
return request.put(`auth/edit`, params, { showErrorMessage: true, showSuccessMessage: true });
return request.put(`auth/edit`, params, { showSuccessMessage: true });
}

View File

@ -28,7 +28,7 @@ export function getSiteInfo(site_id: number) {
* @returns
*/
export function addSite(params: Record<string, any>) {
return request.post('site/site', params, { showErrorMessage: true, showSuccessMessage: true })
return request.post('site/site', params, { showSuccessMessage: true })
}
/**
@ -38,7 +38,27 @@ export function addSite(params: Record<string, any>) {
* @returns
*/
export function editSite(params: Record<string, any>) {
return request.put(`site/site/${params.site_id}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`site/site/${params.site_id}`, params, { showSuccessMessage: true })
}
/**
*
* @param id
* @param params
* @returns
*/
export function closeSite(params: Record<string, any>) {
return request.put(`site/closesite/${params.site_id}`, params, { showSuccessMessage: true })
}
/**
*
* @param id
* @param params
* @returns
*/
export function openSite(params: Record<string, any>) {
return request.put(`site/opensite/${params.site_id}`, params, { showSuccessMessage: true })
}
/**
@ -77,7 +97,7 @@ export function getSiteGroupInfo(site_id: number) {
* @returns
*/
export function addSiteGroup(params: Record<string, any>) {
return request.post('site/group', params, { showErrorMessage: true, showSuccessMessage: true })
return request.post('site/group', params, { showSuccessMessage: true })
}
/**
@ -87,7 +107,7 @@ export function addSiteGroup(params: Record<string, any>) {
* @returns
*/
export function editSiteGroup(params: Record<string, any>) {
return request.put(`site/group/${params.group_id}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`site/group/${params.group_id}`, params, { showSuccessMessage: true })
}
/**
@ -97,7 +117,7 @@ export function editSiteGroup(params: Record<string, any>) {
* @returns
*/
export function deleteSiteGroup(group_id: number) {
return request.delete(`site/group/${group_id}`, { showErrorMessage: true, showSuccessMessage: true });
return request.delete(`site/group/${group_id}`, { showSuccessMessage: true });
}
/**
@ -135,7 +155,7 @@ export function getUserInfo(uid: number) {
* @returns
*/
export function addUser(params: Record<string, any>) {
return request.post('site/user', params, { showErrorMessage: true, showSuccessMessage: true })
return request.post('site/user', params, { showSuccessMessage: true })
}
/**
@ -145,7 +165,7 @@ export function addUser(params: Record<string, any>) {
* @returns
*/
export function editUser(params: Record<string, any>) {
return request.put(`site/user/${params.uid}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`site/user/${params.uid}`, params, { showSuccessMessage: true })
}
/**
@ -154,7 +174,7 @@ export function editUser(params: Record<string, any>) {
* @returns
*/
export function deleteUser(uid: number) {
return request.delete(`site/user/${uid}`, { showErrorMessage: true, showSuccessMessage: true })
return request.delete(`site/user/${uid}`, { showSuccessMessage: true })
}

View File

@ -42,7 +42,7 @@ export function getRoleInfo(roleId: number) {
* @returns
*/
export function addRole(params: Record<string, any>) {
return request.post(`sys/role`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.post(`sys/role`, params, { showSuccessMessage: true })
}
/**
@ -52,7 +52,7 @@ export function addRole(params: Record<string, any>) {
* @returns
*/
export function editRole(params: Record<string, any>) {
return request.put(`sys/role/${params.role_id}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`sys/role/${params.role_id}`, params, { showSuccessMessage: true })
}
/**
@ -61,7 +61,7 @@ export function editRole(params: Record<string, any>) {
* @returns
*/
export function deleteRole(roleId: number) {
return request.delete(`sys/role/${roleId}`, { showErrorMessage: true, showSuccessMessage: true })
return request.delete(`sys/role/${roleId}`, { showSuccessMessage: true })
}
/**
@ -97,7 +97,7 @@ export function getMenuInfo(menu_key: string) {
* @returns
*/
export function addMenu(params: Record<string, any>) {
return request.post('sys/menu', params, { showErrorMessage: true, showSuccessMessage: true })
return request.post('sys/menu', params, { showSuccessMessage: true })
}
/**
@ -107,7 +107,7 @@ export function addMenu(params: Record<string, any>) {
* @returns
*/
export function editMenu(params: Record<string, any>) {
return request.put(`sys/menu/${params.menu_key}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`sys/menu/${params.menu_key}`, params, { showSuccessMessage: true })
}
/**
@ -116,7 +116,7 @@ export function editMenu(params: Record<string, any>) {
* @returns
*/
export function deleteMenu(menu_key: string) {
return request.delete(`sys/menu/${menu_key}`, { showErrorMessage: true, showSuccessMessage: true })
return request.delete(`sys/menu/${menu_key}`, { showSuccessMessage: true })
}
/***************************************************** 站点菜单 ****************************************************/
@ -140,13 +140,21 @@ export function getWebsite() {
return request.get('sys/config/website')
}
/**
*
* @returns
*/
export function getWebConfig() {
return request.get('sys/web/website')
}
/**
*
* @param params
* @returns
*/
export function setWebsite(params: Record<string, any>) {
return request.put(`sys/config/website`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`sys/config/website`, params, { showSuccessMessage: true })
}
/**
@ -157,13 +165,21 @@ export function getCopyright() {
return request.get('sys/config/copyright')
}
/**
*
* @returns
*/
export function getService() {
return request.get('sys/config/service')
}
/**
*
* @param params
* @returns
*/
export function setCopyright(params: Record<string, any>) {
return request.put(`sys/config/copyright`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`sys/config/copyright`, params, { showSuccessMessage: true })
}
/**
@ -180,7 +196,7 @@ export function getAttachmentCategoryList(params: Record<string, any>) {
* @param params
*/
export function addAttachmentCategory(params: Record<string, any>) {
return request.post(`sys/attachment/category`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.post(`sys/attachment/category`, params, { showSuccessMessage: true })
}
/**
@ -189,7 +205,7 @@ export function addAttachmentCategory(params: Record<string, any>) {
* @returns
*/
export function editAttachmentCategory(params: Record<string, any>) {
return request.put(`sys/attachment/category/${params.id}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`sys/attachment/category/${params.id}`, params, { showSuccessMessage: true })
}
/**
@ -198,7 +214,7 @@ export function editAttachmentCategory(params: Record<string, any>) {
* @returns
*/
export function deleteAttachmentCategory(id: number) {
return request.delete(`sys/attachment/category/${id}`, { showErrorMessage: true, showSuccessMessage: true })
return request.delete(`sys/attachment/category/${id}`, { showSuccessMessage: true })
}
/**
@ -216,7 +232,7 @@ export function getAttachmentList(params: Record<string, any>) {
* @returns
*/
export function deleteAttachment(params: Record<string, any>) {
return request.delete(`sys/attachment/del`, { data: params, showErrorMessage: true, showSuccessMessage: true })
return request.delete(`sys/attachment/del`, { data: params, showSuccessMessage: true })
}
/**
@ -275,7 +291,7 @@ export function getStorageInfo(type: string) {
* @returns
*/
export function editStorage(params: Record<string, any>) {
return request.put(`sys/storage/${params.storage_type}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`sys/storage/${params.storage_type}`, params, { showSuccessMessage: true })
}
/***************************************************** 支付设置 ****************************************************/
@ -293,7 +309,7 @@ export function getPayConfig(type: string) {
* @returns
*/
export function setPayConfig(params: Record<string, any>) {
return request.put(`pay/config/${params.type}`, params, { showErrorMessage: true, showSuccessMessage: true });
return request.put(`pay/config/${params.type}`, params, { showSuccessMessage: true });
}
/**
@ -371,7 +387,7 @@ export function getAgreementInfo(key: string) {
* @returns
*/
export function editAgreement(params: Record<string, any>) {
return request.put(`sys/agreement/${params.key}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`sys/agreement/${params.key}`, params, { showSuccessMessage: true })
}
/**
@ -408,7 +424,7 @@ export function getConfigLogin() {
* @returns
*/
export function setConfigLogin(params: Record<string, any>) {
return request.put(`sys/config/login`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`sys/config/login`, params, { showSuccessMessage: true })
}
/**
@ -422,7 +438,7 @@ export function getPayConfigList() {
*
*/
export function setPatConfig(params: Record<string, any>) {
return request.post(`pay/channel/set/all`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.post(`pay/channel/set/all`, params, { showSuccessMessage: true })
}
@ -431,9 +447,17 @@ export function setPatConfig(params: Record<string, any>) {
*
*/
export function menuRefresh(params: Record<string, any>) {
return request.post(`sys/menu/refresh`,{},{ showErrorMessage: true, showSuccessMessage: true })
return request.post(`sys/menu/refresh`, {}, { showSuccessMessage: true })
}
/**
*
*/
export function clearSchemaCache(params: Record<string, any>) {
return request.post(`sys/schema/clear`, {}, { showSuccessMessage: true })
}
/***************************************************** 获取应用 ****************************************************/
/**
*
@ -442,3 +466,5 @@ export function getAppMange() {
return request.get(`sys/applist`)
}

View File

@ -26,7 +26,7 @@ export function getGenerateTableInfo(id: number) {
* @returns
*/
export function addGenerateTable(params: Record<string, any>) {
return request.post('generator/generator', params, { showErrorMessage: true, showSuccessMessage: true })
return request.post('generator/generator', params, { showSuccessMessage: true })
}
/**
@ -36,7 +36,7 @@ export function addGenerateTable(params: Record<string, any>) {
* @returns
*/
export function editGenerateTable(params: Record<string, any>) {
return request.put(`generator/generator/${params.id}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`generator/generator/${params.id}`, params, { showSuccessMessage: true })
}
/**
@ -45,7 +45,7 @@ export function editGenerateTable(params: Record<string, any>) {
* @returns
*/
export function deleteGenerateTable(id: number) {
return request.delete(`generator/generator/${id}`, { showErrorMessage: true, showSuccessMessage: true })
return request.delete(`generator/generator/${id}`, { showSuccessMessage: true })
}
/**

View File

@ -28,7 +28,7 @@ export function getUserInfo(uid: number) {
* @returns
*/
export function addUser(params: Record<string, any>) {
return request.post('user/user', params, { showErrorMessage: true, showSuccessMessage: true })
return request.post('user/user', params, { showSuccessMessage: true })
}
/**
@ -38,6 +38,6 @@ export function addUser(params: Record<string, any>) {
* @returns
*/
export function editUser(params: Record<string, any>) {
return request.put(`user/user/${params.uid}`, params, { showErrorMessage: true, showSuccessMessage: true })
return request.put(`user/user/${params.uid}`, params, { showSuccessMessage: true })
}

View File

@ -14,7 +14,7 @@ export function getWeappConfig() {
* @returns
*/
export function setWeappConfig(params: Record<string, any>) {
return request.put('weapp/config', params, { showErrorMessage: true, showSuccessMessage: true })
return request.put('weapp/config', params, { showSuccessMessage: true })
}
/**
@ -31,5 +31,5 @@ export function getTemplateList() {
* @returns
*/
export function getBatchAcquisition(params: Record<string, any>) {
return request.put('weapp/template/sync', params, { showErrorMessage: true, showSuccessMessage: true })
return request.put('weapp/template/sync', params, { showSuccessMessage: true })
}

View File

@ -23,7 +23,7 @@ export function getWechatStatic() {
* @returns
*/
export function editWechatConfig(params: Record<string, any>) {
return request.put('wechat/config', params, { showErrorMessage: true, showSuccessMessage: true })
return request.put('wechat/config', params, { showSuccessMessage: true })
}
/**
@ -40,7 +40,7 @@ export function getWechatMenu() {
* @returns
*/
export function editWechatMenu(params: Record<string, any>) {
return request.put('wechat/menu', params, { showErrorMessage: true, showSuccessMessage: true })
return request.put('wechat/menu', params, { showSuccessMessage: true })
}
/**
@ -58,7 +58,7 @@ export function getTemplateList() {
* @returns
*/
export function getBatchAcquisition(params: Record<string, any>) {
return request.put('wechat/template/sync', params, { showErrorMessage: true, showSuccessMessage: true })
return request.put('wechat/template/sync', params, { showSuccessMessage: true })
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 907 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 843 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 KiB

After

Width:  |  Height:  |  Size: 655 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -118,12 +118,12 @@ import { CollectionTag } from '@element-plus/icons-vue';
getLink({}).then((res: any) => {
link.value = res.data;
childList.value = link.value[0].child_list;
childList.value = Object.values(link.value)[0].child_list;
if (value.value.name != '') {
selectLink.value = cloneDeep(value.value);
} else {
selectLink.value = {
parent: link.value[0].name
parent: Object.values(link.value)[0].name
};
}
parentLinkName.value = selectLink.value.parent;

View File

@ -47,7 +47,7 @@ const element = computed(() => {
// iconfont
const iconfont = computed(() => {
const iconfile = import.meta.globEager('@/styles/icon/iconfont.css')['/src/styles/iconfont.css'].default
const iconfile = import.meta.globEager('@/styles/iconfont.css')['/src/styles/iconfont.css'].default
const icons = Array.from(iconfile.matchAll(/(icon.*)\:before/g))
return icons.map(item => {

View File

@ -2,7 +2,8 @@
<div class="flex border-t border-b main-wrap border-color w-full" :class="scene == 'select' ? 'h-[40vh]' : 'h-full'">
<!-- 分组 -->
<div class="group-wrap w-[180px] p-[15px] h-full border-r border-color flex flex-col">
<el-input v-model="categoryParam.name" class="m-0" :placeholder="t('upload.attachmentCategoryPlaceholder')"
<el-input v-model="categoryParam.name" class="m-0" :placeholder="t('upload.attachmentCategoryPlaceholder')" clearable
prefix-icon="Search" @input="getAttachmentCategoryList()" />
<div class="group-list flex-1 my-[10px]">
<el-scrollbar>
@ -40,23 +41,26 @@
<el-col :span="12">
<div class="flex">
<el-upload v-bind="upload" ref="uploadRef">
<el-button type="primary">{{ t('upload.upload' + type) }}</el-button>
<el-button type="primary">{{ t('upload.upload' + type) }} {{ isOpen }}</el-button>
</el-upload>
<el-button v-if="operate === false" class="ml-[10px]" type="primary" @click="operate = true">{{
t('edit') }}</el-button>
<el-button v-else class="ml-[10px]" type="primary" @click="operate = false">{{ t('complete')
}}</el-button>
<div v-if="scene == 'attachment'">
<el-button v-if="operate === false" class="ml-[10px]" type="primary" @click="operate = true">{{
t('edit') }}</el-button>
<el-button v-else class="ml-[10px]" type="primary" @click="operate = false">{{ t('complete')
}}</el-button>
</div>
</div>
</el-col>
<el-col :span="12" class="text-right">
<el-input v-model="attachmentParam.real_name" class="m-0 w-[200px]"
<el-input v-model="attachmentParam.real_name" class="m-0 w-[200px]" clearable
:placeholder="t('upload.placeholder' + type + 'Name')" prefix-icon="Search"
@input="getAttachmentList()" />
</el-col>
</el-row>
<div class="flex-1 my-[15px] h-0" v-loading="attachment.loading">
<el-scrollbar>
<div class="flex flex-wrap" v-if="attachment.data.length && operate === true">
<div class="flex flex-wrap" v-if="attachment.data.length && (operate === true || scene != 'attachment')">
<div class="attachment-item mr-[10px]" :class="scene == 'select' ? 'w-[100px]' : 'w-[120px]'"
v-for="(item, index) in attachment.data" :key="index">
<div class="attachment-wrap w-full rounded cursor-pointer overflow-hidden relative flex items-center justify-center"
@ -348,7 +352,7 @@ const upload = computed(() => {
},
headers,
onSuccess: (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => {
if (response.code == 200) {
if (response.code >= 1) {
getAttachmentList()
uploadRef.value?.handleRemove(uploadFile)
} else {

View File

@ -156,7 +156,7 @@
"captcha_key":backToken.value
}
reqCheck(data).then(res=>{
if (res.code == "200") {
if (res.code == 1) {
barAreaColor.value = '#4cae4c'
barAreaBorderColor.value = '#5cb85c'
text.value = '验证成功'
@ -214,7 +214,7 @@
captchaType:captchaType.value
}
reqGet(data).then(res=>{
if (res.code == "200") {
if (res.code == 1) {
pointBackImgBase.value = res.data.originalImageBase64
backToken.value = res.data.token
secretKey.value = res.data.secretKey

View File

@ -248,7 +248,7 @@
"captcha_key":backToken.value
}
reqCheck(data).then(res=>{
if (res.code == "200") {
if (res.code == 1) {
moveBlockBackgroundColor.value = '#5cb85c'
leftBarBorderColor.value = '#5cb85c'
iconColor.value = '#fff'
@ -319,7 +319,7 @@
captchaType:captchaType.value
}
reqGet(data).then(res=>{
if (res.code == "200") {
if (res.code == 1) {
backImgBase.value = res.data.originalImageBase64
blockBackImgBase.value = res.data.jigsawImageBase64
backToken.value = res.data.token

View File

@ -1,5 +1,5 @@
{
"title": "Niushop Vite Management side",
"title": "Niucloud Vite Management side",
"login": "Login",
"logging": "Logging",
"userPlaceholder": "Please enter your account number",

View File

@ -0,0 +1,32 @@
{
"noPlug":"暂无应用",
"install":"安装",
"unload":"卸载",
"installLabel":"已安装",
"uninstalledLabel":"未安装",
"version":"版本",
"title":"名称",
"desc":"描述",
"plugDetail": "插件信息",
"author": "作者",
"addonInstall": "插件安装",
"dirPermission": "目录读写权限",
"path": "路径",
"demand": "要求",
"readable": "可读",
"write": "可写",
"packageManageTool": "包管理工具",
"name": "名称",
"addonInstallSuccess": "插件安装成功",
"envCheck": "环境检查",
"installProgress": "安装进度",
"installComplete": "安装完成",
"localAppText":"本地应用",
"marketAppText":"官方市场",
"installShowDialogCloseTips": "安装任务尚未完成,关闭任务仍会执行,确定要继续关闭吗?",
"marketDevelopMessage":"官方市场正在开发中!",
"jobError": "任务队列未启动 请在服务端源码部署目录打开终端执行 php think queue:listen",
"conflictFiles": "冲突文件",
"process": "启动进程",
"open": "开启"
}

View File

@ -14,5 +14,6 @@
"sortNumber":"排序号必须是数字",
"sortBetween":"排序号不能超过10000",
"show":"显示",
"hide":"不显示"
"hide":"不显示",
"articleNumber": "文章数量"
}

View File

@ -1,12 +1,13 @@
{
"categoryName":"栏目",
"ID":"ID",
"title":"标题",
"intro":"简介",
"summary":"摘要",
"image":"封面",
"author":"作者",
"content":"文章内容",
"visit":"实际浏览量",
"visit":"浏览量",
"visitVirtual":"虚拟浏览量",
"isShow":"是否显示",
"sort":"排序",
@ -17,4 +18,5 @@
"titlePlaceholder":"请输入文章标题",
"categoryIdPlaceholder":"请选择文章栏目",
"articleDeleteTips" : "确定要删除该文章吗?"
}

View File

@ -6,5 +6,6 @@
"roleNamePlaceholder": "请输入角色名称",
"rulesPlaceholder": "请选择权限",
"checkStrictly": "父子级不关联",
"permission": "权限"
"permission": "权限",
"foldText":"展开/折叠"
}

View File

@ -17,6 +17,7 @@
"status":"用户状态",
"statusUnlock":"正常",
"statusLock":"锁定",
"adminDisabled":"超级管理员不可编辑",
"userUnlockTips":"确定要解锁该管理员吗?",
"userLockTips":"确定要锁定该管理员吗?"
}

View File

@ -3,5 +3,6 @@
"preview": "预览图",
"copy": "复制",
"clickVisit": "点击访问",
"PCDomainName": "pc域名"
"PCDomainName": "pc域名",
"newInfo": "最新消息"
}

View File

@ -80,10 +80,11 @@
"400": "错误的请求",
"401": "请重新登录",
"403": "拒绝访问",
"404": "请求错误,未找到该资源",
"404": "请求错误",
"405": "请求方法未允许",
"408": "请求超时",
"500": "服务器端出错",
"409": "请求跨域",
"500": "服务器端出错,错误原因:",
"501": "网络未实现",
"502": "网络错误",
"503": "服务不可用",
@ -100,5 +101,7 @@
"diyLinkUrlPlaceholder": "请输入跳转路径",
"diyLinkUrlNotEmpty": "跳转路径不能为空",
"returnToPreviousPage": "返回",
"preview": "预览"
"preview": "预览",
"emptyApp": "暂未安装任何应用",
"newInfo": "最新消息"
}

View File

@ -1,9 +1,23 @@
{
"pageSet": "页面设置",
"tabEditContent": "内容",
"tabEditStyle": "样式",
"pageStyle": "页面样式",
"pageContent": "页面内容",
"pageName": "页面名称",
"pageNamePlaceholder": "请输入页面名称",
"pageBgColor": "页面颜色",
"bgUrl": "背景图片",
"marginSet": "边距设置",
"componentStyleTitle": "组件样式",
"bottomBgColor": "底部背景",
"bottomBgTips": "底部背景包含边距和圆角",
"componentBgColor": "组件背景",
"marginTop": "上边距",
"marginBottom": "下边距",
"marginBoth": "左右边距",
"topRounded": "上圆角",
"bottomRounded": "下圆角",
"warmPrompt": "温馨提示",
"leavePageTitleTips": "确定离开此页面?",
"leavePageContentTips": "系统可能不会保存您所做的更改。",
@ -28,6 +42,8 @@
"addImageAd": "添加图片",
"imageUrlTip": "请上传图片",
"articleData": "文章数据",
"articleStyle": "文章样式",
"articleBgColor": "文章背景",
"dataSources": "数据来源",
"defaultSources": "默认",
"manualSelectionSources": "手动选择",
@ -65,6 +81,7 @@
"addGraphicNav": "添加导航",
"blankHeightSet": "高度设置",
"blankHeight": "空白高度",
"styleSet": "风格设置",
"titleStyle": "标题样式",
"selectStyle": "风格选择",
"titleContent": "标题内容",
@ -73,6 +90,7 @@
"textAlign": "对齐方式",
"textAlignLeft": "居左",
"textAlignCenter": "居中",
"textSet": "文字设置",
"textFontSize": "文字大小",
"textFontWeight": "文字粗细",
"fontWeightBold": "加粗",
@ -84,5 +102,6 @@
"moreContent": "“更多”按钮内容",
"more": "文字",
"morePlaceholder": "请输入文字",
"moreIsShow": "是否显示"
"moreIsShow": "是否显示",
"memberStyle": "会员样式"
}

View File

@ -1,9 +1,11 @@
{
"title": "页面名称",
"typeName": "页面类型",
"typeName": "页面模板",
"addPageTips": "创建新页面",
"pageTypePlaceholder": "请选择页面类型",
"pageTemplatePlaceholder": "请选择页面模板",
"nameMax": "名称不能超过12个字符",
"templateName": "模板名称",
"empty": "空白",
"status": "状态",
"updateTime": "更新时间",
"use": "使用",

View File

@ -0,0 +1,88 @@
{
"pageSet": "页面设置",
"pageContent": "页面内容",
"pageName": "页面名称",
"pageNamePlaceholder": "请输入页面名称",
"pageBgColor": "页面颜色",
"warmPrompt": "温馨提示",
"leavePageTitleTips": "确定离开此页面?",
"leavePageContentTips": "系统可能不会保存您所做的更改。",
"decorating": "正在装修",
"moveUpComponent": "上移",
"moveDownComponent": "下移",
"copyComponent": "复制",
"delComponent": "删除",
"resetComponent": "重置",
"tabbar": "底部导航",
"tabbarSwitchTips": "此处控制当前页面底部导航菜单是否显示",
"link": "链接地址",
"delComponentTips": "确定要删除吗?",
"notCopy": "无法复制",
"componentCanOnlyAdd": "组件只能添加",
"piece": "个",
"resetComponentTips": "确认要重置组件默认数据吗?",
"image": "图片上传",
"imageUpload": "图片上传",
"imageSet": "图片设置",
"imageAdsTips": "建议上传尺寸相同的图片推荐尺寸750*350",
"addImageAd": "添加图片",
"imageUrlTip": "请上传图片",
"articleData": "文章数据",
"dataSources": "数据来源",
"defaultSources": "默认",
"manualSelectionSources": "手动选择",
"articleNum": "文章数量",
"selectPlaceholder": "请选择",
"selectArticleTips": "文章选择",
"articleTitle": "标题",
"articleImage": "封面",
"articleCategoryName": "栏目",
"articleSummary": "摘要",
"selected": "已选",
"selectArticleTip": "请选择文章",
"graphicNavModeTitle": "导航模式",
"layoutMode": "排版模式",
"layoutModeHorizontal": "横排",
"layoutModeVertical": "竖排",
"graphicNavSelectMode": "选择模式",
"graphicNavModeGraphic": "图文导航",
"graphicNavModeImg": "图片导航",
"graphicNavModeText": "文字导航",
"graphicNavImageSet": "图片设置",
"graphicNavImageSize": "图片大小",
"graphicNavAroundRadius": "图片圆角",
"graphicNavShowStyle": "展示风格",
"graphicNavStyleFixed": "固定显示",
"graphicNavStyleSingleSlide": "单行滑动",
"graphicNavStylePageSlide": "分页滑动",
"graphicNavRowCount": "每行数量",
"graphicNavPageCount": "每行数量",
"graphicNavSetLabel": "导航设置",
"line": "行",
"graphicNavTips": "建议上传尺寸相同的图片推荐尺寸60*60",
"graphicNavTitle": "标题",
"graphicNavTitlePlaceholder": "请输入标题",
"addGraphicNav": "添加导航",
"blankHeightSet": "高度设置",
"blankHeight": "空白高度",
"titleStyle": "标题样式",
"selectStyle": "风格选择",
"titleContent": "标题内容",
"title": "标题名称",
"titlePlaceholder": "请输入标题",
"textAlign": "对齐方式",
"textAlignLeft": "居左",
"textAlignCenter": "居中",
"textFontSize": "文字大小",
"textFontWeight": "文字粗细",
"fontWeightBold": "加粗",
"fontWeightNormal": "常规",
"textColor": "文字颜色",
"subTitleContent": "标题内容",
"subTitle": "副标题",
"subTitlePlaceholder": "请输入副标题",
"moreContent": "“更多”按钮内容",
"more": "文字",
"morePlaceholder": "请输入文字",
"moreIsShow": "是否显示"
}

View File

@ -2,14 +2,14 @@
"siteId":"站点id",
"title":"页面名称",
"name":"页面标识",
"type":"页面类型",
"type":"页面模板",
"value":"页面数据json格式",
"isDefault":"是否默认页面10否",
"visitCount":"访问量",
"siteIdPlaceholder":"请输入站点id",
"titlePlaceholder":"请输入页面名称",
"namePlaceholder":"请输入页面标识",
"typePlaceholder":"请输入页面类型",
"typePlaceholder":"请输入页面模板",
"valuePlaceholder":"请输入页面数据json格式",
"isDefaultPlaceholder":"请输入是否默认页面10否",
"visitCountPlaceholder":"请输入访问量",

View File

@ -4,6 +4,10 @@
"orderNoPlaceholder":"请输入订单编号",
"createTime":"创建时间",
"rechargeMoney":"充值金额",
"totalTransfered":"累计提现(元)",
"totalCashOuting":"提现中(元)",
"transfered":"累计提现",
"cashOuting":"提现中",
"orderMoney":"订单金额",
"member":"买家",
"orderFromName":"订单来源",
@ -34,6 +38,11 @@
"nickname":"会员名称",
"headimg":"会员头像",
"cashOutDetail":"提现详情",
"cashOutMoney": "转账金额"
"cashOutMoney": "转账金额",
"auditTime": "审核时间",
"transferTime": "转账时间",
"memberInfoPlaceholder":"请输入会员名称/会员昵称/手机号",
"cashOutNumber": "提现单号",
"cashOutNumberPlaceholder": "请输入提现单号"
}

View File

@ -1,18 +1,23 @@
{
"orderNo":"订单编号",
"orderStatus":"订单状态",
"orderNoPlaceholder":"请输入订单编号",
"createTime":"创建时间",
"rechargeMoney":"充值金额",
"orderMoney":"订单金额",
"member":"买家",
"orderFromName":"订单来源",
"payTypeName":"支付方式",
"startDate":"开始时间",
"endDate":"结束时间",
"namePlaceholder":"请选择",
"refundBtn":"退款",
"refundContent":"是否确认退款"
"totalRechargeRefundMoney":"充值退款(元)",
"totalRechargeMoney":"充值金额(元)",
"rechargeRefundMoney":"充值退款",
"rechargeNo":"充值单号",
"orderStatus":"订单状态",
"rechargeNoPlaceholder":"请输入充值单号",
"createTime":"充值时间",
"rechargeMoney":"充值金额",
"orderMoney":"订单金额",
"member":"会员信息",
"orderFromName":"订单来源",
"payTypeName":"支付方式",
"startDate":"开始时间",
"endDate":"结束时间",
"namePlaceholder":"请选择",
"refundBtn":"退款",
"refundContent":"是否确认退款",
"payTime": "支付时间",
"refundStatus": "退款状态",
"startMoney": "起始金额",
"endMoney": "结束金额"
}

View File

@ -6,9 +6,19 @@
"refundTime":"退款时间",
"detail": "详情",
"statusName": "状态",
"memberInfo": "会员",
"memberInfo": "会员信息",
"refundSource": "退款来源",
"startDate":"开始时间",
"endDate":"结束时间",
"refundStatus": "退款状态"
"refundStatus": "退款状态",
"accumulateRefundMoney": "累计退款金额(元)",
"haveRefundMoney": "退款中金额(元)",
"refundSuccessMonry": "退款成功金额(元)",
"refundFailMoney": "退款失败金额(元)",
"memberInfoPlaceholder":"请输入会员编号/昵称/手机号",
"refundNumberPlaceholder":"请输入退款单号",
"orderNumber": "来源单号",
"orderNumberPlaceholder": "请输入来源单号",
"refundDetail": "退款详情",
"nickname": "会员昵称"
}

View File

@ -1,5 +1,5 @@
{
"dataSummarize": "数据概",
"dataSummarize": "数据概",
"todayData": "今日数据",
"memberNumb": "新增会员数",
"orderMoney": "订单金额",
@ -38,8 +38,14 @@
"newSite": "新增站点",
"appMarketplace": "应用市场",
"siteDistribution": "站点分布",
"siteSum": "站点数",
"memberSum": "用户数",
"appSum": "应用数",
"installAppSun": "安装应用数"
"normalSiteSum": "正常站点(个)",
"expireSiteSum": "过期站点(个)",
"noInstallAppSun": "未安装应用(个)",
"installAppSun": "已安装应用(个)",
"officialAccount": "Niucloud官方公众号",
"officialAccountDesc": "微信扫码关注",
"WeCom": "客服二维码",
"WeComDesc": "扫码联系客服",
"tel": "服务热线:"
}

View File

@ -1,12 +1,14 @@
{
"accountData":"金额",
"memberId":"会员编号",
"accountData":"变动金额",
"fromType":"来源/用途",
"balanceInfo":"余额变动详情",
"memberInfo":"会员信息",
"memo":"备注",
"mobile":"手机号码",
"nickName":"会员昵称",
"headimg":"会员头像",
"createTime":"生时间",
"createTime":"生时间",
"startDate":"开始时间",
"endDate":"结束时间",
"searchMember":"昵称/手机号",
@ -21,7 +23,12 @@
"addMemberAccountLog":"添加会员账单表",
"updateMemberAccountLog":"编辑会员账单表",
"memberAccountLogDeleteTips":"确定要删除该会员账单表吗?",
"balance": "不可提现余额",
"money":"可提现余额",
"balanceType":"账户类型"
"totalAllBalance": "余额(元)",
"totalBalance": "不可提现(元)",
"totalMoney": "可提现(元)",
"balance": "不可提现",
"money":"可提现",
"balanceType":"账户类型",
"accountSum" : "剩余金额",
"memberInfoPlaceholder":"请输入会员编号/昵称/手机号"
}

View File

@ -1,12 +1,18 @@
{
"accountData":"金额",
"totalCommission":"累计佣金(元)",
"commission":"未提现佣金(元)",
"withdrawnCommission":"已提现佣金(元)",
"cashOutingCommission":"提现中佣金(元)",
"accountData":"变动金额",
"memberId":"会员编号",
"accountSum":"剩余金额",
"fromType":"来源/用途",
"moneyInfo":"佣金变动详情",
"memo":"备注",
"mobile":"手机号码",
"nickName":"会员信息",
"headimg":"会员头像",
"createTime":"生时间",
"createTime":"生时间",
"startDate":"开始时间",
"endDate":"结束时间",
"searchMember":"昵称/手机号",
@ -20,5 +26,8 @@
"memoPlaceholder":"请输入备注信息",
"addMemberAccountLog":"添加会员账单表",
"updateMemberAccountLog":"编辑会员账单表",
"member_account_logDeleteTips":"确定要删除该会员账单表吗?"
"member_account_logDeleteTips":"确定要删除该会员账单表吗?",
"memberInfo":"会员信息",
"memberInfoPlaceholder":"请输入会员编号/昵称/手机号"
}

View File

@ -5,6 +5,7 @@
"adjustReducePoint":"减少积分",
"adjustAddPoint":"增加积分",
"adjustBalance":"调整余额",
"memberNo":"会员编号",
"currBalance":"当前余额",
"currPoint":"当前积分",
"memo":"备注",

View File

@ -1,5 +1,6 @@
{
"labelName":"标签名称",
"memberNumber":"会员数量",
"memo":"备注",
"sort":"排序",
"siteIdPlaceholder":"请输入站点id",

View File

@ -1,6 +1,7 @@
{
"registerChannel":"注册来源",
"nickname":"会员名称",
"memberNo":"会员编号",
"mobile":"手机号",
"createTime":"注册时间",
"lastVisitTime":"最后访问时间",
@ -9,9 +10,11 @@
"nickNamePlaceholder":"请输入会员名称",
"mobilePlaceholder":"请输入手机号",
"channelPlaceholder":"请选择注册类型",
"memberNoPlaceholder":"请选择会员编号",
"memberDeleteTips" : "确定要删除该会员吗?",
"detail": "详情",
"edit": "编辑",
"memberDelete":"删除",
"adjust":"调整",
"startDate": "开始时间",
"endDate": "结束时间",
@ -37,13 +40,14 @@
"passwordCopy": "确认密码",
"passwordPlaceholder": "请输入密码",
"doubleCipherHint": "输入的两次密码不一致",
"memberNoHint":"会员编号只能输入字母和数字",
"mobileHint": "请输入正确的手机号!",
"lable": "标签",
"setLable": "标签",
"notAvailable": "暂无",
"memberLabelPlaceholder": "请选择会员标签",
"memberInfo":"会员信息",
"memberInfoPlaceholder":"请输入会员名称/会员昵称/手机号",
"memberInfoPlaceholder":"请输入会员编号/昵称/手机号",
"lock": "锁定",
"scrubLock": "取消锁定"
"normal": "正常"
}

View File

@ -1,24 +0,0 @@
{
"accountData":"金额",
"fromType":"来源/用途",
"moneyInfo":"零钱变动详情",
"memo":"备注",
"mobile":"手机号码",
"nickName":"会员信息",
"headimg":"会员头像",
"createTime":"产生时间",
"startDate":"开始时间",
"endDate":"结束时间",
"searchMember":"昵称/手机号",
"searchMemberPlaceholder":"请输入会员昵称/手机号码",
"memberIdPlaceholder":"请输入会员id",
"accountTypePlaceholder":"请输入账户类型",
"accountDataPlaceholder":"请输入账户数据",
"fromTypePlaceholder":"请输入来源类型",
"relatedIdPlaceholder":"请输入关联Id",
"createTimePlaceholder":"请输入创建时间",
"memoPlaceholder":"请输入备注信息",
"addMemberAccountLog":"添加会员账单表",
"updateMemberAccountLog":"编辑会员账单表",
"member_account_logDeleteTips":"确定要删除该会员账单表吗?"
}

View File

@ -1,12 +1,16 @@
{
"accountData":"积分数量",
"pointGet":"累计发放积分",
"pointUse":"累计使用积分",
"accountData":"变动积分",
"accountSum":"剩余积分",
"fromType":"来源/用途",
"memberId":"会员编号",
"pointInfo":"积分变动详情",
"memo":"备注",
"mobile":"手机号码",
"nickName":"会员信息",
"headimg":"会员头像",
"createTime":"生时间",
"createTime":"生时间",
"startDate":"开始时间",
"endDate":"结束时间",
"searchMember":"昵称/手机号",
@ -20,5 +24,7 @@
"memoPlaceholder":"请输入备注信息",
"addMemberAccountLog":"添加会员账单表",
"updateMemberAccountLog":"编辑会员账单表",
"member_account_logDeleteTips":"确定要删除该会员账单表吗?"
"member_account_logDeleteTips":"确定要删除该会员账单表吗?",
"memberInfo":"会员信息",
"memberInfoPlaceholder":"请输入会员编号/昵称/手机号"
}

View File

@ -1,7 +1,8 @@
{
"isCaptcha": "是否启用验证码",
"bgImg": "背景图片",
"bgImg": "登录页广告图",
"admin": "平台端",
"isBgImgTip": "建议上传尺寸为450*400px",
"site": "站点端"
"adminBgImgTip": "建议上传尺寸为450*400px",
"site": "站点端",
"siteBgImgTip": "建议上传尺寸为450*400px"
}

View File

@ -1,11 +1,15 @@
{
"logonMode": "普通注册方式",
"isUsername": "账号密码登录",
"isMobile": "手机验证码登录",
"isAuthRegister": "第三方自动注册",
"isBindMobile": "强制绑定手机",
"isUsernameTip": "开启之后可以使用账号+密码进行注册和登录",
"isMobileTip": "开启之后可以使用手机+验证码进行注册和登录",
"isAuthRegisterTip": "开启之后,微信公众号、小程序等等第三方平台可以自动注册会员。方便会员自动登录",
"isBindMobileTip": "开启之后,会员通过账号或者第三方注册账户会强制绑定手机号,方便商家进行管理,同时方便会员在不同端口统一账号"
"logonMode": "普通注册方式",
"isUsername": "账号密码登录",
"isMobile": "手机验证码登录",
"isAuthRegister": "第三方自动注册",
"isBindMobile": "强制绑定手机",
"isUsernameTip": "开启之后可以使用账号+密码进行注册和登录",
"isMobileTip": "开启之后可以使用手机+验证码进行注册和登录",
"isAuthRegisterTip": "开启之后,微信公众号、小程序等等第三方平台可以自动注册会员。方便会员自动登录",
"isBindMobileTip": "开启之后,会员通过账号或者第三方注册账户会强制绑定手机号,方便商家进行管理,同时方便会员在不同端口统一账号",
"agreement": "政策协议",
"agreementTips": "注册时服务协议和隐私协议是否进行展示",
"commonSetting": "通用设置",
"tripartiteSetting": "第三方设置"
}

View File

@ -0,0 +1,11 @@
{
"memberNoRule": "会员编号生成规则",
"prefix": "编码前缀",
"prefixPlaceholder": "请输入编码前缀",
"prefixHint":"编码前缀只能为英文字母",
"lengthHint":"编码长度包含前缀去除前缀最少不能低于4位,最多不能超过30位",
"prefixTips": "编码格式如:",
"length": "编码长度",
"lengthPlaceholder": "请输入编码长度",
"lengthTips": "编码长度包含前缀去除前缀最少不能低于4位,最多不能超过30位"
}

View File

@ -16,6 +16,7 @@
"content": "模板内容",
"weappTempKey" : "模板编号",
"smsId":"短信模版ID",
"smsIdPlaceholder":"短信模版ID"
"smsIdPlaceholder":"短信模版ID",
"noticeType":"消息类型"
}

View File

@ -0,0 +1,19 @@
{
"oplatformSetting": "开放平台设置",
"appidPlaceholder": "微信第三方平台AppId",
"appsecretPlaceholder": "微信第三方平台AppSecret",
"oplatformComm": "开放平台通信",
"empowerStartDomain": "授权发起页域名",
"empowerReceiveUrl": "授权事件接收URL",
"messageValidationToken": "消息校验Token",
"messageDecryptKey": "消息加解密Key",
"messageReceiveUrl": "消息与事件接收URL",
"wechatDomain": "公众号开发域名",
"weappDomain": "小程序服务器域名",
"weappBusinessDomain": "小程序业务域名",
"oplatformBuilder": "开发者设置",
"builderEmail": "开发者邮箱",
"builderMobile": "开发者手机号",
"builderQQ": "开发者QQ",
"builderWx": "开发者微信"
}

View File

@ -46,7 +46,7 @@
"enablePaymentMode": "请先开启该支付方式",
"clickConfigure": "点击配置",
"setConfig": "设置支付配置",
"open": "开启",
"open": "开启",
"notOpen": "未开启",
"cancel": "取消"

View File

@ -1,25 +1,34 @@
{
"websiteInfo":"网站设置",
"contactAddress":"联系地址",
"siteName": "站点名称",
"keywords": "网站关键字",
"logo": "网站Logo",
"desc": "网站简介",
"province": "省",
"city": "市",
"district": "区/县",
"selectAddress": "请选择地址",
"address": "详细地址",
"phone": "客服电话",
"businessHours": "营业时间",
"contactAddressPlaceholder":"联系地址",
"siteNamePlaceholder": "站点名称",
"keywordsPlaceholder": "网站关键字",
"logoPlaceholder": "网站Logo",
"descPlaceholder": "网站简介",
"addressPlaceholder": "详细地址",
"phonePlaceholder": "客服电话",
"businessHoursPlaceholder": "营业时间",
"businessHoursTips": "例上午9:00-12:00下午2:00-6:00"
"websiteInfo":"后台设置",
"contactAddress":"联系地址",
"siteName": "站点名称",
"keywords": "网站关键字",
"logo": "网站Logo",
"desc": "网站简介",
"province": "省",
"city": "市",
"district": "区/县",
"selectAddress": "请选择地址",
"address": "详细地址",
"phone": "客服电话",
"businessHours": "营业时间",
"contactAddressPlaceholder":"联系地址",
"siteNamePlaceholder": "站点名称",
"keywordsPlaceholder": "网站关键字",
"logoPlaceholder": "网站Logo",
"descPlaceholder": "网站简介",
"addressPlaceholder": "详细地址",
"phonePlaceholder": "客服电话",
"businessHoursPlaceholder": "营业时间",
"businessHoursTips": "例上午9:00-12:00下午2:00-6:00",
"frontEndInfo": "前台设置",
"frontEndName": "前台名称",
"frontEndNamePlaceholder": "请输入前台名称",
"frontEndLogo": "前台Logo",
"icon": "网站图标",
"serviceInformation": "服务信息",
"wechatCode": "公众号二维码",
"customerServiceCode": "客服二维码",
"contactsTel": "联系电话",
"contactsTelPlaceholder": "请输入联系电话"
}

View File

@ -16,5 +16,6 @@
"checkStrictly": "父子级不关联",
"remark": "套餐说明",
"reset": "重置",
"search": "搜索"
"search": "搜索",
"foldText":"展开/折叠"
}

View File

@ -25,6 +25,17 @@
"userRealNamePlaceholder": "请输入名称",
"expireTimePlaceholder":"请选择到期时间",
"confirmPasswordError": "两次输入的密码不一致",
"operationTip": "温馨提示:站点登录页面"
"operationTip": "温馨提示:站点登录页面",
"siteId": "站点ID",
"siteInfo": "站点信息",
"siteInlet": "站点入口",
"enterSite": "访问站点",
"siteList": "站点列表",
"openClose": "开启/停止",
"closeTxt":"停止",
"openTxt":"开启",
"siteUrlDevelopMessage": "站点域名功能正在开发中",
"url": "域名",
"startDate":"开始时间",
"endDate":"开始时间"
}

View File

@ -14,6 +14,8 @@
"userRoleName": "角色",
"isAdmin":"超级管理员",
"siteName":"站点名称",
"siteId": "站点ID",
"enterSite": "访问站点",
"userRolePlaceholder": "请选择角色",
"siteNamePlaceholder":"请输入站点名称"
}

View File

@ -1,9 +1,9 @@
{
"todayData": "今日数据",
"memberNumb": "新增会员数",
"orderMoney": "订单金额",
"todayData": "实时概况",
"memberNumb": "新增会员数(人)",
"orderMoney": "订单金额(元)",
"numberOfSites": "站点数量",
"numberOfVisitors": "今日访客数",
"numberOfVisitors": "今日访客数(人)",
"commonlyUsedFunction": "常用功能",
"articleList": "文章列表",
"memberManagement": "会员管理",
@ -22,11 +22,23 @@
"channel": "获取渠道",
"serviceSupport": "服务支持",
"officialWbsite": "官网",
"pageView": "访问量",
"pageView": "访客数(人)",
"siteInfo":"站点信息",
"siteName":"站点名称",
"groupName":"站点套餐",
"expireTime":"过期时间",
"permanent":"永久",
"statusName":"站点状态"
"statusName":"站点状态",
"orderNumber": "订单数(笔)",
"wechatCode": "公众号二维码",
"wechatCodeDesc": "微信扫码关注",
"enterpriseWechatCode": "客服二维码",
"enterpriseWechatCodeDesc": "扫码联系客服",
"tel": "服务热线:",
"message": "请联系客服",
"messageTitle": "提示",
"accumulative":"累计",
"officialAccount": "Niucloud官方公众号",
"officialAccountDesc": "微信扫码关注",
"WeCom": "添加企业微信群"
}

View File

@ -1,12 +0,0 @@
{
"noPlug":"暂无插件",
"install":"安装",
"unload":"卸载",
"installLabel":"已安装",
"uninstalledLabel":"未安装",
"version":"版本",
"title":"名称",
"desc":"描述",
"plugDetail": "插件信息",
"author": "作者"
}

View File

@ -1,15 +1,16 @@
{
"title": "名称",
"serverInformation": "服务器信息",
"systemDemand": "系统环境要求",
"authorityStatus": "权限状态",
"name": "选项",
"demand": "要求",
"status": "状态",
"environment": "环境",
"version": "版本",
"phpType": "PHP版本",
"phpTypeValue": "大于等于8.0.0",
"mysqlType": "mysql版本",
"mysqlTypeValue": "大于等于5.7"
"title": "名称",
"serverInformation": "服务器信息",
"systemDemand": "系统环境要求",
"authorityStatus": "权限状态",
"name": "选项",
"demand": "要求",
"status": "状态",
"environment": "环境",
"version": "版本",
"phpType": "PHP版本",
"phpTypeValue": "大于等于8.0.0",
"mysqlType": "mysql版本",
"mysqlTypeValue": "大于等于5.7",
"process": "启动进程"
}

View File

@ -1,5 +1,5 @@
<template>
<el-container class="w-screen h-screen">
<el-container class="w-screen h-screen min-w-[1200px]">
<router-view></router-view>
</el-container>
</template>

View File

@ -1,10 +1,9 @@
<template>
<el-aside class="h-screen layout-aside w-auto">
<el-aside :class="['h-screen layout-aside w-auto',{'bright': !dark}]">
<side class="hidden-xs-only" />
</el-aside>
<el-drawer v-model="systemStore.menuDrawer" direction="ltr" :with-header="false" custom-class="aside-drawer"
size="210px">
<el-drawer v-model="systemStore.menuDrawer" direction="ltr" :with-header="false" custom-class="aside-drawer" size="210px">
<template #default>
<side />
</template>
@ -12,15 +11,17 @@
</template>
<script lang="ts" setup>
import { watch } from 'vue'
import { watch,computed } from 'vue'
import { useRoute } from 'vue-router'
import side from './side.vue'
import useSystemStore from '@/stores/modules/system'
const systemStore = useSystemStore()
const dark = computed(()=>{
return systemStore.dark
})
const route = useRoute()
watch(route, () => {
systemStore.$patch(state => {
state.menuDrawer = false
@ -33,6 +34,26 @@ watch(route, () => {
background-color: var(--side-dark-color, var(--el-bg-color));
border-right: 1px solid var(--el-border-color-lighter);
z-index: 101;
&.bright{
background-color: #F5F7F9;
li{
background-color: #F5F7F9;
&.is-active:not(.is-opened){
position: relative;
color: #333;
background-color: #fff;
&::after{
content: "";
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 2px;
background-color: var(--el-menu-active-color);
}
}
}
}
}
.aside-drawer {

View File

@ -2,22 +2,32 @@
<template v-if="meta.show">
<el-sub-menu v-if="routes.children" :index="String(routes.name)">
<template #title>
<icon v-if="meta.icon" :name="meta.icon" class="mr-[6px] w-auto" />
<span>{{ meta.title }}</span>
<div v-if="meta.icon && routes.meta.class == 1" class="w-[16px] h-[16px] relative flex items-center">
<icon v-if="meta.icon" :name="meta.icon" class="absolute !w-auto" />
</div>
<span :class="['ml-[10px]', {'text-[15px]': routes.meta.class == 1}, {'text-[14px]': routes.meta.class != 1}]">{{ meta.title }}</span>
</template>
<menu-item v-for="(route, index) in routes.children" :routes="route" :route-path="resolvePath(route.path)"
:key="index" />
</el-sub-menu>
<el-menu-item v-else :index="String(routes.name)" :route="routePath">
<icon v-if="meta.icon" :name="meta.icon" class="mr-[6px] w-auto" />
<el-menu-item v-else-if="routes.meta.class == 1" :index="String(routes.name)" :route="routePath">
<div v-if="meta.icon" class="w-[16px] h-[16px] relative flex justify-center">
<icon :name="meta.icon" class="absolute top-[50%] -translate-y-[50%]" />
</div>
<template #title>
<span>{{ meta.title }}</span>
<span :class="['ml-[10px]', {'text-[15px]': routes.meta.class == 1}, {'text-[14px]': routes.meta.class != 1}]">{{ meta.title }}</span>
</template>
</el-menu-item>
<el-menu-item v-else :index="String(routes.name)" :route="routePath">
<template #title>
<span :class="[{'text-[15px]': routes.meta.class == 1}, {'text-[14px]': routes.meta.class != 1}, {'ml-[10px]': routes.meta.class == 2, 'ml-[15px]': routes.meta.class == 3}]">{{ meta.title }}</span>
</template>
</el-menu-item>
</template>
</template>
<script lang="ts" setup>
import { CollectionTag } from '@element-plus/icons-vue'
import { computed } from 'vue'
import menuItem from './menu-item.vue'
@ -38,8 +48,16 @@ const resolvePath = (path: string) => {
}
</script>
<style lang="scss" scoped>
.w-auto {
width: auto !important;
<style lang="scss">
.el-sub-menu{
.el-icon{
width: auto;
}
li{
font-size: 15px;
}
}
.el-alert .el-alert__description{
margin-top: 0;
}
</style>

View File

@ -14,8 +14,7 @@
<el-scrollbar>
<el-menu :default-active="menuActive" :router="true" class="aside-menu h-full" unique-opened="true"
:collapse="systemStore.menuIsCollapse">
<menu-item v-for="(route, index) in userStore.routers" :routes="route" :route-path="route.path"
:key="index" />
<menu-item v-for="(route, index) in userStore.routers" :routes="route" :route-path="route.path" :key="index" />
</el-menu>
</el-scrollbar>
</el-main>
@ -38,9 +37,23 @@ const route = useRoute()
const siteInfo = storage.get('siteInfo') || false
const menuActive = computed(() => String(route.name))
userStore.routers.forEach((item,index) => {
item.meta.class = 1;
if(item.children){
item.children.forEach((subItem,subIndex) => {
subItem.meta.class = 2;
if(subItem.children){
subItem.children.forEach((threeItem,threeIndex) => {
threeItem.meta.class = 3;
})
}
})
}
});
</script>
<style lang="scss" scoped>
<style lang="scss">
.aside-menu:not(.el-menu--collapse) {
width: var(--aside-width);
}
@ -66,15 +79,15 @@ const menuActive = computed(() => String(route.name))
}
.menu-wrap {
flex: 1;
height: 0;
padding: 0;
flex: 1 !important;
height: 0 !important;
padding: 0 !important;
:deep(.el-menu) {
.el-menu {
border-right: 0 !important;
}
}
::v-deep.sidebar-dark-mode{
.sidebar-dark-mode{
background-color: #191a23;
& > .logo-wrap{
.logo>i{
@ -84,23 +97,29 @@ const menuActive = computed(() => String(route.name))
}
.el-menu{
background-color: #191a23;
ul.el-menu--inline{
background-color: #101117;
.el-sub-menu{
background: transparent !important;
}
.el-sub-menu__title, .el-menu-item{
background: transparent !important;
color: #B7B7ba;
&:hover{
background-color: transparent;
color: #fff;
background-color: transparent !important;
color: #fff !important;
}
}
.el-menu-item.is-active{
color: #fff;
background-color: var(--el-color-primary);
color: #fff !important;
background-color: var(--el-color-primary) !important;
}
li::after{
content: "";
width: 0;
height: 0;
}
}
}
::v-deep.sidebar-brightness-mode{
.sidebar-brightness-mode{
& > .logo-wrap{
.logo>i{
font-size: 20px;

View File

@ -1,5 +1,5 @@
<template>
<el-container class="layout-header h-full border-b border-color px-[10px]">
<el-container :class="['h-full px-[10px]',{'layout-header border-b border-color': !dark}]" >
<el-row class="w-100 h-full w-full">
<el-col :span="12">
<div class="left-panel h-full flex items-center">
@ -33,8 +33,7 @@
<el-col :span="12">
<div class="right-panel h-full flex items-center justify-end">
<!-- 预览 只有站点时展示-->
<img class="w-[16px] h-[16px] mr-1" v-if="appType == 'site'" src="@/assets/images/icon_preview.png"
:alt="t('preview')" :title="t('preview')">
<i class="iconfont iconlingdang-xianxing cursor-pointer px-[8px]" :title="t('newInfo')" v-if="appType == 'site'"></i>
<!-- 切换语言 -->
<div class="navbar-item flex items-center h-full cursor-pointer">
<switch-lang />
@ -90,6 +89,10 @@ const appStore = useAppStore()
const route = useRoute()
const screenWidth = ref(window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth)
const dark = computed(()=>{
return systemStore.dark
})
// start
const detectionLoginDialog = ref(false)
const comparisonToken = ref('')
@ -164,6 +167,11 @@ const backFn = () => {
</script>
<style lang="scss" scoped>
.layout-header{
position: relative;
z-index: 5;
box-shadow: 0px 0px 4px 0px rgba(0,145,255,0.1);
}
.navbar-item {
padding: 0 8px;

View File

@ -1,5 +1,5 @@
<template>
<div class="common-layout">
<div class="common-layout min-w-[1200px]" >
<el-container class="w-100 h-screen">
<layout-aside></layout-aside>
@ -8,9 +8,9 @@
<layout-header></layout-header>
</el-header>
<el-main class="main-wrap h-full bg-page p-0">
<el-main :class="['main-wrap h-full p-0',{'bg-page': dark}]">
<el-scrollbar>
<div class="p-[16px]">
<div class="p-[10px]">
<router-view v-slot="{ Component, route }" v-if="appStore.routeRefrehTag">
<keep-alive :include="tabbarStore.tabNames">
<component :is="Component" :key="route.fullPath" />
@ -26,13 +26,19 @@
</template>
<script lang="ts" setup>
import { computed } from 'vue'
import layoutHeader from './components/header/index.vue'
import layoutAside from './components/aside/index.vue'
import useAppStore from '@/stores/modules/app'
import useTabbarStore from '@/stores/modules/tabbar'
import useSystemStore from '@/stores/modules/system'
const appStore = useAppStore()
const tabbarStore = useTabbarStore()
const systemStore = useSystemStore()
const dark = computed(()=>{
return systemStore.dark
})
</script>
<style lang="scss" scoped></style>

View File

@ -10,7 +10,7 @@ import storage from '@/utils/storage'
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [...STATIC_ROUTES, ADMIN_ROUTE, SITE_ROUTE]
routes: [ADMIN_ROUTE, SITE_ROUTE, ...STATIC_ROUTES]
})
/**
@ -33,14 +33,23 @@ router.beforeEach(async (to, from, next) => {
const userStore = useUserStore()
const siteInfo = storage.get('siteInfo') || false
let title = (to.meta?.title || '') + (siteInfo.site_name ? ('-' + siteInfo.site_name) : '')
let title = (to.meta.title ? (to.meta.title + ' - ') : '') + (siteInfo.site_name ? siteInfo.site_name : '')
// 设置网站标题
setWindowTitle(title)
// 加载语言包
await language.loadLocaleMessages(to.path, useSystemStore().lang);
const loginPath = to.path == '/' ? '/admin/login' : `${to.matched[0].path}/login`
let matched: any = to.matched;
if (matched && matched.length && matched[0].path != '/:pathMatch(.*)*') {
matched = matched[0].path;
} else {
matched = 'site';
}
const loginPath = to.path == '/' ? '/admin/login' : `${matched}/login`
// 判断是否需登录
if (NO_LOGIN_ROUTES.includes(to.path)) {

View File

@ -4,40 +4,91 @@ import {toRaw, watch} from 'vue'
import {ElMessage, ElMessageBox} from 'element-plus'
import {cloneDeep, range, isEmpty} from 'lodash-es'
interface Diy {
// 全局属性
id: number
load: boolean,
currentIndex: number,
currentComponent: string, // 当前正在编辑的组件
name: string, // 页面标识
type: string, // 页面类型
typeName: string, // 页面类型名称
components: any[], // 组件集合
global: {
title: string,
pageBgColor: string, // 页面背景颜色
tabbarSwitch: boolean, // 底部导航开关
},
// 组件集合
value: any[]
}
const useDiyStore = defineStore('diy', {
state: (): Diy => {
state: () => {
return {
id: 0,
load: false, // 加载状态
currentIndex: -99,
currentComponent: 'edit-page',
name: '',
type: '',
typeName: '',
components: [],
currentIndex: -99, // 当前正在编辑的组件下标
currentComponent: 'edit-page', // 当前正在编辑的组件名称
editTab: 'content',// 编辑页面
name: '', // 页面标识
type: '', // 页面模板
typeName: '', // 页面模板名称
isDefault: 0, // 是否默认页面
predefineColors: [
'#F4391c',
'#ff4500',
'#ff8c00',
'#FFD009',
'#ffd700',
'#19C650',
'#90ee90',
'#00ced1',
'#1e90ff',
'#c71585',
'#FF407E',
'#CFAF70',
'#A253FF',
'rgba(255, 69, 0, 0.68)',
'rgb(255, 120, 0)',
'hsl(181, 100%, 37%)',
'hsla(209, 100%, 56%, 0.73)',
'#c7158577'
],
components: [], // 组件集合
global: {
title: "页面",
title: "页面", // 页面标题
pageBgColor: "", // 页面背景颜色
tabbarSwitch: true
bgUrl: '', // 页面背景图片
imgWidth: '', // 页面背景图片宽度
imgHeight: '', // 页面背景图片高度
// 顶部状态栏
topStatusBar: {
bgColor: "#ffffff", // 背景颜色
isTransparent: false, // 是否透明
isShow: true, // 是否显示
style: 'style-1', // 风格样式
textColor: "#333333", // 文字颜色
textAlign: 'center', // 文字对齐方式
},
bottomTabBarSwitch: true, // 底部导航开关
// 弹框 count不弹出 -1首次弹出 1每次弹出 0
popWindow: {
imgUrl: "",
imgWidth: '',
imgHeight: '',
count: -1,
show: 0,
link: {
name: ""
},
},
// 公共模板属性,所有组件都继承,无需重复定义,组件内部根据业务自行调用
template: {
textColor: "#303133", // 文字颜色
pageBgColor: '', // 底部背景颜色
componentBgColor: '', // 组件背景颜色
topRounded: 0, // 组件上圆角
bottomRounded: 0, // 组件下圆角
elementBgColor: '', // 元素背景颜色
topElementRounded: 0, // 元素上圆角
bottomElementRounded: 0, // 元素下圆角
margin: {
top: 0, // 上边距
bottom: 0, // 下边距
both: 0, // 左右边距
}
}
},
// 组件集合
value: []
@ -45,10 +96,71 @@ const useDiyStore = defineStore('diy', {
},
getters: {
editComponent: (state) => {
return state.value[state.currentIndex];
if (state.currentIndex == -99) {
return state.global;
} else {
return state.value[state.currentIndex];
}
},
},
actions: {
// 初始化数据
init() {
this.global = {
title: "页面", // 页面标题
pageBgColor: "", // 页面背景颜色
bgUrl: '', // 页面背景图片
imgWidth: '', // 页面背景图片宽度
imgHeight: '', // 页面背景图片高度
// 顶部状态栏
topStatusBar: {
bgColor: "#ffffff", // 背景颜色
isTransparent: false, // 是否透明
isShow: true, // 是否显示
style: 'style-1', // 风格样式
textColor: "#333333", // 文字颜色
textAlign: 'center', // 文字对齐方式
},
bottomTabBarSwitch: true, // 底部导航开关
// 弹框 count不弹出 -1首次弹出 1每次弹出 0
popWindow: {
imgUrl: "",
imgWidth: '',
imgHeight: '',
count: -1,
show: 0,
link: {
name: ""
},
},
// 公共模板属性,所有组件都继承,无需重复定义,组件内部根据业务自行调用
template: {
textColor: "#303133", // 文字颜色
pageBgColor: '', // 底部背景颜色
componentBgColor: '', // 组件背景颜色
topRounded: 0, // 组件上圆角
bottomRounded: 0, // 组件下圆角
elementBgColor: '', // 元素背景颜色
topElementRounded: 0, // 元素上圆角
bottomElementRounded: 0, // 元素下圆角
margin: {
top: 0, // 上边距
bottom: 0, // 下边距
both: 0, // 左右边距
}
}
};
this.value = [];
},
// 添加组件
addComponent(key: string, data: any) {
// 加载完才能添加组件
@ -60,14 +172,17 @@ const useDiyStore = defineStore('diy', {
component.id = this.generateRandom();
component.componentName = key;
component.componentTitle = component.title;
component.maxCount = component.max_count;
component.ignore = []; // 忽略公共属性
Object.assign(component, component.value);
delete component.title;
delete component.value;
delete component.type;
delete component.icon;
delete component.max_count;
// 继承全局属性
let template = cloneDeep(this.global.template);
Object.assign(component, template);
if (!this.checkComponentIsAdd(component)) return;
@ -180,7 +295,7 @@ const useDiyStore = defineStore('diy', {
if (!this.checkComponentIsAdd(component)) {
ElMessage({
type: 'warning',
message: `${t('notCopy')}${component.componentTitle}${t('componentCanOnlyAdd')}${component.maxCount}${t('piece')}`,
message: `${t('notCopy')}${component.componentTitle}${t('componentCanOnlyAdd')}${component.uses}${t('piece')}`,
});
return;
}
@ -194,15 +309,15 @@ const useDiyStore = defineStore('diy', {
// 检测组件是否允许添加true允许 false不允许
checkComponentIsAdd(component: any) {
//maxCount为0时不处理
if (component.maxCount === 0) return true;
//为0时不处理
if (component.uses === 0) return true;
var count = 0;
//遍历已添加的自定义组件,检测是否超出数量
for (var i in this.value) if (this.value[i].componentName === component.componentName) count++;
if (count >= component.maxCount) return false;
if (count >= component.uses) return false;
else return true;
},
// 重置当前组件数据

View File

@ -1,21 +1,12 @@
:root {
--aside-width: 210px;
--el-mask-color: rgba(255,255,255,1)
--el-mask-color: rgba(255,255,255,1);
}
.border-color {
border-color: var(--el-border-color-lighter);
}
.table-search-wrap {
background: #f5f7fa !important;
border-radius: 0!important;
.el-form {
margin-bottom: -18px;
}
}
.el-form {
.form-tip {
width: 100%;
@ -97,3 +88,79 @@ textarea:-webkit-autofill,
select:-webkit-autofill {
box-shadow: 0 0 50px 50px white inset;
}
// 表格
.el-pager li.is-active{
font-weight: normal !important;
}
// 筛选框
.table-search-wrap {
.el-card__body{
padding: 10px 0;
}
.el-form {
margin-bottom: -18px;
}
}
// 背景颜色
.base-bg{
background-color: transparent !important;
// background-color: #F5F7F9 !important; 原来的颜色
}
// 数据展示面板
.el-statistic {
--el-statistic-content-font-size: 28px !important;
}
.region-input {
--region-input-border-color: var(--el-border-color);
display: flex;
box-shadow: 0 0 0 1px var(--region-input-border-color) inset;
border-radius: var(--el-input-border-radius,var(--el-border-radius-base));
height: calc(var(--el-input-inner-height) - 2px);
line-height: calc(var(--el-input-inner-height) - 2px);
transition: var(--el-transition-box-shadow);
&:hover {
--region-input-border-color: var(--el-color-primary);
}
.separator {
flex: 1;
display: inline-flex;
justify-content: center;
align-items: center;
height: 100%;
padding: 0 5px;
margin: 0;
font-size: 14px;
word-break: keep-all;
color: var(--el-text-color-primary);
}
.el-form-item {
flex: 1;
}
input {
padding: 0 10px;
appearance: none;
border: none;
outline: 0;
display: inline-block;
height: 30px;
line-height: 30px;
margin: 0;
text-align: center;
font-size: var(--el-font-size-base);
color: var(--el-text-color-regular);
background-color: transparent;
&::placeholder {
color: var(--el-text-color-placeholder);
}
}
}

View File

@ -5,6 +5,21 @@
--el-header-height: 64px !important;
}
.el-table {
--el-table-header-bg-color: #F5F7F9!important;
--el-table-header-text-color:#333!important;
}
.dark {
.el-table {
--el-table-header-text-color: var(--el-text-color-secondary)!important;
}
}
.el-table thead, .el-table thead th {
font-weight: normal !important;
}
.el-button {
background-color: var(--el-button-bg-color, var(--el-color-white));
}
@ -13,10 +28,6 @@
max-width: calc(100vw - 50px);
}
.el-table {
--el-table-header-bg-color: #f5f7fa!important
}
.el-date-editor--daterange, .el-date-editor--timerange, .el-date-editor.el-input, .el-date-editor .el-input__wrapper {
--el-date-editor-width: 100%!important;
width: 100%;

View File

@ -1,8 +1,8 @@
@font-face {
font-family: "iconfont"; /* Project id 3883393 */
src: url('//at.alicdn.com/t/c/font_3883393_4jlgm3tby7.woff2?t=1683947082967') format('woff2'),
url('//at.alicdn.com/t/c/font_3883393_4jlgm3tby7.woff?t=1683947082967') format('woff'),
url('//at.alicdn.com/t/c/font_3883393_4jlgm3tby7.ttf?t=1683947082967') format('truetype');
src: url('//at.alicdn.com/t/c/font_3883393_pok9rb5nvbr.woff2?t=1685440441519') format('woff2'),
url('//at.alicdn.com/t/c/font_3883393_pok9rb5nvbr.woff?t=1685440441519') format('woff'),
url('//at.alicdn.com/t/c/font_3883393_pok9rb5nvbr.ttf?t=1685440441519') format('truetype');
}
.iconfont {
@ -13,6 +13,62 @@
-moz-osx-font-smoothing: grayscale;
}
.iconyingyongshichang1:before {
content: "\e61c";
}
.iconyingyongshichang2:before {
content: "\e60b";
}
.iconlingdang-xianxing:before {
content: "\e8c0";
}
.icondianhua:before {
content: "\e8c3";
}
.iconic_manage_assignprop:before {
content: "\e60c";
}
.iconchengshi:before {
content: "\ec70";
}
.icontaocanliebiao:before {
content: "\e6b2";
}
.iconweixin:before {
content: "\e647";
}
.iconhuiyuanguanli:before {
content: "\e64c";
}
.iconhuangjinhuiyuan0101-copy:before {
content: "\e621";
}
.iconhuiyuan1:before {
content: "\e644";
}
.iconqianbao:before {
content: "\e6ca";
}
.iconic_description_file24px:before {
content: "\e61a";
}
.iconzhuangxiu1:before {
content: "\e66b";
}
.icontuikuanjilu:before {
content: "\e8cf";
}

View File

@ -2,6 +2,6 @@
@import 'element-plus/theme-chalk/dark/css-vars.css';
@import 'element-plus/theme-chalk/display.css';
@import 'tailwind.css';
@import 'element-plus.css';
@import 'element-plus.scss';
@import 'iconfont.css';
@import 'common.scss';

View File

@ -13,6 +13,6 @@ declare module '@wangeditor/editor' {
}
}
interface AnyObject {
declare interface AnyObject {
[key: string]: any;
}

View File

@ -1,18 +1,16 @@
import axios, { HttpStatusCode } from 'axios'
import type { AxiosInstance, InternalAxiosRequestConfig, AxiosResponse, AxiosRequestConfig } from 'axios'
import { getToken } from './common';
import { getToken, isUrl } from './common';
import { ElMessage } from 'element-plus'
import { t } from '@/lang'
import useUserStore from '@/stores/modules/user'
import storage from '@/utils/storage'
interface RequestConfig extends AxiosRequestConfig {
showErrorMessage?: boolean
showSuccessMessage?: boolean
}
interface InternalRequestConfig extends InternalAxiosRequestConfig {
showErrorMessage?: boolean
showSuccessMessage?: boolean
}
@ -26,7 +24,7 @@ class Request {
constructor() {
this.instance = axios.create({
baseURL: import.meta.env.VITE_APP_BASE_URL,
timeout: 5000,
timeout: 30000,
headers: {
'Content-Type': 'application/x-www-form-urlencoded;',
'lang': storage.get('lang') ?? 'zh-cn'
@ -54,7 +52,7 @@ class Request {
const res = response.data
if (res.code != 1) {
this.handleAuthError(res.code)
if (response.config.showErrorMessage) ElMessage({ message: res.msg, type: 'error' })
if (res.code != 401) ElMessage({ message: res.msg, type: 'error' })
return Promise.reject(new Error(res.msg || 'Error'))
} else {
if (response.config.showSuccessMessage) ElMessage({ message: res.msg, type: 'success' })
@ -113,7 +111,8 @@ class Request {
* @param err
*/
private handleNetworkError(err: any) {
let errMessage = t('axios.unknownError')
let errMessage = t('axios.requestError')
if (err.response && err.response.status) {
const errStatus = err.response.status
switch (errStatus) {
@ -127,7 +126,8 @@ class Request {
errMessage = t('axios.403')
break
case 404:
errMessage = t('axios.404')
const baseURL = isUrl(err.response.config.baseURL) ? err.response.config.baseURL : location.origin
errMessage = baseURL + t('axios.404')
break
case 405:
errMessage = t('axios.405')
@ -135,6 +135,9 @@ class Request {
case 408:
errMessage = t('axios.408')
break
case 409:
errMessage = t('axios.409')
break
case 500:
errMessage = t('axios.500')
break

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