更新后台

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 * @returns
*/ */
export function getAddonLocal(params: Record<string, any>) { 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 * @returns
*/ */
export function installAddon(params: Record<string, any>) { 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 * @returns
*/ */
export function uninstallAddon(params: Record<string, any>) { 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 * @returns
*/ */
export function setAliappConfig(params: Record<string, any>) { 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 * @returns
*/ */
export function addArticle(params: Record<string, any>) { 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 * @returns
*/ */
export function editArticle(params: Record<string, any>) { 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 * @returns
*/ */
export function deleteArticle(id: number) { 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 * @returns
*/ */
export function addArticleCategory(params: Record<string, any>) { 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 * @returns
*/ */
export function editArticleCategory(params: Record<string, any>) { 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 * @returns
*/ */
export function deleteArticleCategory(category_id: number) { 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 * @returns
*/ */
export function login(params: Record<string, any>, app_type: string) { 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 * @returns
*/ */
export function addDiyPage(params: Record<string, any>) { 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 * @param params
*/ */
export function editDiyPage(params: Record<string, any>) { 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 * @param params
*/ */
export function setUseDiyPage(params: Record<string, any>) { 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 * @param params
*/ */
export function editDiyPageShare(params: Record<string, any>) { 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 * @returns
*/ */
export function deleteDiyPage(id: number) { 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 * @returns
*/ */
export function setDiyBottom(params: Record<string, any>) { 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>) { export function getDiyTemplate(params: Record<string, any>) {
return request.get(`diy/type`, { params }) return request.get(`diy/template`, { params })
} }
/** /**
@ -121,5 +121,5 @@ export function getDiyRouteInfo(params: Record<string, any>) {
* @param params * @param params
*/ */
export function editDiyRouteShare(params: Record<string, any>) { 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 * @returns
*/ */
export function setH5Config(params: Record<string, any>) { 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}`); return request.get(`member/member/${id}`);
} }
/**
*
* @returns
*/
export function getMemberNo() {
return request.get(`member/memberno`);
}
/** /**
* *
* @param params * @param params
* @returns * @returns
*/ */
export function addMember(params: Record<string, any>) { 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) 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 * @returns
*/ */
export function addMemberLabel(params: Record<string, any>) { 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 * @returns
*/ */
export function updateMemberLabel(params: Record<string, any>) { 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 * @returns
*/ */
export function deleteMemberLabel(label_id: number) { 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 * @returns
*/ */
export function editMemberDetail(params: Record<string, any>) { 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 * @returns
*/ */
export function adjustPoint(params: Record<string, any>) { 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 * @returns
*/ */
export function adjustBalance(params: Record<string, any>) { 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 * @param params
* @returns * @returns
*/ */
export function getLoginConfig(params: Record<string, any>) { export function getLoginConfig() {
return request.get(`member/config/login`, params) return request.get(`member/config/login`)
} }
/** /**
* *
@ -198,9 +215,29 @@ export function getLoginConfig(params: Record<string, any>) {
* @returns * @returns
*/ */
export function setLoginConfig(params: Record<string, any>) { 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 * @param params
@ -210,6 +247,25 @@ export function getTransfertype() {
return request.get(`member/cash_out/transfertype`) 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 * @param params
@ -243,7 +299,7 @@ export function getAccountType(params: Record<string, any>) {
* @param params * @param params
* @returns * @returns
*/ */
export function getWithdrawConfig() { export function getCashOutConfig() {
return request.get(`member/config/cash_out`) return request.get(`member/config/cash_out`)
} }
/** /**
@ -251,8 +307,8 @@ export function getWithdrawConfig() {
* @param params * @param params
* @returns * @returns
*/ */
export function setWithdrawConfig(params: Record<string, any>) { export function setCashOutConfig(params: Record<string, any>) {
return request.post(`member/config/cash_out`, params, { showErrorMessage: true, showSuccessMessage: true }) return request.post(`member/config/cash_out`, params, { showSuccessMessage: true })
} }
/** /**
@ -260,7 +316,7 @@ export function setWithdrawConfig(params: Record<string, any>) {
* @param params * @param params
* @returns * @returns
*/ */
export function getWithdrawList(params: Record<string, any>) { export function getCashOutList(params: Record<string, any>) {
return request.get(`member/cash_out`, { params }) return request.get(`member/cash_out`, { params })
} }
@ -269,7 +325,7 @@ export function getWithdrawList(params: Record<string, any>) {
* @param params * @param params
* @returns id * @returns id
*/ */
export function getWithdrawDetail(id: number) { export function getCashOutDetail(id: number) {
return request.get(`member/cash_out/${id}`, {}) return request.get(`member/cash_out/${id}`, {})
} }
@ -280,7 +336,7 @@ export function getWithdrawDetail(id: number) {
* @returns * @returns
*/ */
export function memberAudit(params: Record<string, any>) { 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 * @returns
*/ */
export function memberTransfer(params: Record<string, any>) { 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 * @returns
*/ */
export function editMemberStatus(params: Record<string, any>) { 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 * @param params
* @returns * @returns
*/ */
export function getWithdrawStatusList() { export function getCashOutStatusList() {
return request.get(`member/cash_out/status`) 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 * @returns
*/ */
export function editNoticeStatus(params: Record<string, any>) { 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 * @returns
*/ */
export function editNotice(params: Record<string, any>) { 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 * @returns
*/ */
export function editSms(params: Record<string, any>) { 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 * @returns
*/ */
export function getSmsLog(params: Record<string, any>) { 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 }) 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 * @param order_id
@ -19,7 +28,7 @@ export function getRechargeOrderList(params: Record<string, any>) {
export function getRechargeOrderInfo(order_id: number) { export function getRechargeOrderInfo(order_id: number) {
return request.get(`order/recharge/${order_id}`); return request.get(`order/recharge/${order_id}`);
} }
/** /**
* *
* @returns * @returns
@ -48,6 +57,14 @@ export function getRefundStatus() {
* 退 * 退
* @returns * @returns
*/ */
export function rechargeRefund(id) { export function rechargeRefund(id: number) {
return request.get(`order/recharge/refund/${id}`); 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 * @returns
*/ */
export function setUserInfo(params: Record<string, any>) { 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 * @returns
*/ */
export function addSite(params: Record<string, any>) { 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 * @returns
*/ */
export function editSite(params: Record<string, any>) { 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 * @returns
*/ */
export function addSiteGroup(params: Record<string, any>) { 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 * @returns
*/ */
export function editSiteGroup(params: Record<string, any>) { 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 * @returns
*/ */
export function deleteSiteGroup(group_id: number) { 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 * @returns
*/ */
export function addUser(params: Record<string, any>) { 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 * @returns
*/ */
export function editUser(params: Record<string, any>) { 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 * @returns
*/ */
export function deleteUser(uid: number) { 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 * @returns
*/ */
export function addRole(params: Record<string, any>) { 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 * @returns
*/ */
export function editRole(params: Record<string, any>) { 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 * @returns
*/ */
export function deleteRole(roleId: number) { 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 * @returns
*/ */
export function addMenu(params: Record<string, any>) { 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 * @returns
*/ */
export function editMenu(params: Record<string, any>) { 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 * @returns
*/ */
export function deleteMenu(menu_key: string) { 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') return request.get('sys/config/website')
} }
/**
*
* @returns
*/
export function getWebConfig() {
return request.get('sys/web/website')
}
/** /**
* *
* @param params * @param params
* @returns * @returns
*/ */
export function setWebsite(params: Record<string, any>) { 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') return request.get('sys/config/copyright')
} }
/**
*
* @returns
*/
export function getService() {
return request.get('sys/config/service')
}
/** /**
* *
* @param params * @param params
* @returns * @returns
*/ */
export function setCopyright(params: Record<string, any>) { 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 * @param params
*/ */
export function addAttachmentCategory(params: Record<string, any>) { 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 * @returns
*/ */
export function editAttachmentCategory(params: Record<string, any>) { 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 * @returns
*/ */
export function deleteAttachmentCategory(id: number) { 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 * @returns
*/ */
export function deleteAttachment(params: Record<string, any>) { 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 * @returns
*/ */
export function editStorage(params: Record<string, any>) { 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 * @returns
*/ */
export function setPayConfig(params: Record<string, any>) { 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 * @returns
*/ */
export function editAgreement(params: Record<string, any>) { 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 * @returns
*/ */
export function setConfigLogin(params: Record<string, any>) { 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>) { 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>) { 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`) return request.get(`sys/applist`)
} }

View File

@ -26,7 +26,7 @@ export function getGenerateTableInfo(id: number) {
* @returns * @returns
*/ */
export function addGenerateTable(params: Record<string, any>) { 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 * @returns
*/ */
export function editGenerateTable(params: Record<string, any>) { 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 * @returns
*/ */
export function deleteGenerateTable(id: number) { 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 * @returns
*/ */
export function addUser(params: Record<string, any>) { 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 * @returns
*/ */
export function editUser(params: Record<string, any>) { 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 * @returns
*/ */
export function setWeappConfig(params: Record<string, any>) { 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 * @returns
*/ */
export function getBatchAcquisition(params: Record<string, any>) { 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 * @returns
*/ */
export function editWechatConfig(params: Record<string, any>) { 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 * @returns
*/ */
export function editWechatMenu(params: Record<string, any>) { 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 * @returns
*/ */
export function getBatchAcquisition(params: Record<string, any>) { 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

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

View File

@ -47,7 +47,7 @@ const element = computed(() => {
// iconfont // iconfont
const iconfont = computed(() => { 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)) const icons = Array.from(iconfile.matchAll(/(icon.*)\:before/g))
return icons.map(item => { 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="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"> <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()" /> prefix-icon="Search" @input="getAttachmentCategoryList()" />
<div class="group-list flex-1 my-[10px]"> <div class="group-list flex-1 my-[10px]">
<el-scrollbar> <el-scrollbar>
@ -40,23 +41,26 @@
<el-col :span="12"> <el-col :span="12">
<div class="flex"> <div class="flex">
<el-upload v-bind="upload" ref="uploadRef"> <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-upload>
<el-button v-if="operate === false" class="ml-[10px]" type="primary" @click="operate = true">{{ <div v-if="scene == 'attachment'">
t('edit') }}</el-button> <el-button v-if="operate === false" class="ml-[10px]" type="primary" @click="operate = true">{{
<el-button v-else class="ml-[10px]" type="primary" @click="operate = false">{{ t('complete') t('edit') }}</el-button>
}}</el-button> <el-button v-else class="ml-[10px]" type="primary" @click="operate = false">{{ t('complete')
}}</el-button>
</div>
</div> </div>
</el-col> </el-col>
<el-col :span="12" class="text-right"> <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" :placeholder="t('upload.placeholder' + type + 'Name')" prefix-icon="Search"
@input="getAttachmentList()" /> @input="getAttachmentList()" />
</el-col> </el-col>
</el-row> </el-row>
<div class="flex-1 my-[15px] h-0" v-loading="attachment.loading"> <div class="flex-1 my-[15px] h-0" v-loading="attachment.loading">
<el-scrollbar> <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]'" <div class="attachment-item mr-[10px]" :class="scene == 'select' ? 'w-[100px]' : 'w-[120px]'"
v-for="(item, index) in attachment.data" :key="index"> 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" <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, headers,
onSuccess: (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => { onSuccess: (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => {
if (response.code == 200) { if (response.code >= 1) {
getAttachmentList() getAttachmentList()
uploadRef.value?.handleRemove(uploadFile) uploadRef.value?.handleRemove(uploadFile)
} else { } else {

View File

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

View File

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

View File

@ -1,5 +1,5 @@
{ {
"title": "Niushop Vite Management side", "title": "Niucloud Vite Management side",
"login": "Login", "login": "Login",
"logging": "Logging", "logging": "Logging",
"userPlaceholder": "Please enter your account number", "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":"排序号必须是数字", "sortNumber":"排序号必须是数字",
"sortBetween":"排序号不能超过10000", "sortBetween":"排序号不能超过10000",
"show":"显示", "show":"显示",
"hide":"不显示" "hide":"不显示",
"articleNumber": "文章数量"
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,9 +1,11 @@
{ {
"title": "页面名称", "title": "页面名称",
"typeName": "页面类型", "typeName": "页面模板",
"addPageTips": "创建新页面", "addPageTips": "创建新页面",
"pageTypePlaceholder": "请选择页面类型", "pageTemplatePlaceholder": "请选择页面模板",
"nameMax": "名称不能超过12个字符", "nameMax": "名称不能超过12个字符",
"templateName": "模板名称",
"empty": "空白",
"status": "状态", "status": "状态",
"updateTime": "更新时间", "updateTime": "更新时间",
"use": "使用", "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", "siteId":"站点id",
"title":"页面名称", "title":"页面名称",
"name":"页面标识", "name":"页面标识",
"type":"页面类型", "type":"页面模板",
"value":"页面数据json格式", "value":"页面数据json格式",
"isDefault":"是否默认页面10否", "isDefault":"是否默认页面10否",
"visitCount":"访问量", "visitCount":"访问量",
"siteIdPlaceholder":"请输入站点id", "siteIdPlaceholder":"请输入站点id",
"titlePlaceholder":"请输入页面名称", "titlePlaceholder":"请输入页面名称",
"namePlaceholder":"请输入页面标识", "namePlaceholder":"请输入页面标识",
"typePlaceholder":"请输入页面类型", "typePlaceholder":"请输入页面模板",
"valuePlaceholder":"请输入页面数据json格式", "valuePlaceholder":"请输入页面数据json格式",
"isDefaultPlaceholder":"请输入是否默认页面10否", "isDefaultPlaceholder":"请输入是否默认页面10否",
"visitCountPlaceholder":"请输入访问量", "visitCountPlaceholder":"请输入访问量",

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,7 @@
{ {
"registerChannel":"注册来源", "registerChannel":"注册来源",
"nickname":"会员名称", "nickname":"会员名称",
"memberNo":"会员编号",
"mobile":"手机号", "mobile":"手机号",
"createTime":"注册时间", "createTime":"注册时间",
"lastVisitTime":"最后访问时间", "lastVisitTime":"最后访问时间",
@ -9,9 +10,11 @@
"nickNamePlaceholder":"请输入会员名称", "nickNamePlaceholder":"请输入会员名称",
"mobilePlaceholder":"请输入手机号", "mobilePlaceholder":"请输入手机号",
"channelPlaceholder":"请选择注册类型", "channelPlaceholder":"请选择注册类型",
"memberNoPlaceholder":"请选择会员编号",
"memberDeleteTips" : "确定要删除该会员吗?", "memberDeleteTips" : "确定要删除该会员吗?",
"detail": "详情", "detail": "详情",
"edit": "编辑", "edit": "编辑",
"memberDelete":"删除",
"adjust":"调整", "adjust":"调整",
"startDate": "开始时间", "startDate": "开始时间",
"endDate": "结束时间", "endDate": "结束时间",
@ -37,13 +40,14 @@
"passwordCopy": "确认密码", "passwordCopy": "确认密码",
"passwordPlaceholder": "请输入密码", "passwordPlaceholder": "请输入密码",
"doubleCipherHint": "输入的两次密码不一致", "doubleCipherHint": "输入的两次密码不一致",
"memberNoHint":"会员编号只能输入字母和数字",
"mobileHint": "请输入正确的手机号!", "mobileHint": "请输入正确的手机号!",
"lable": "标签", "lable": "标签",
"setLable": "标签", "setLable": "标签",
"notAvailable": "暂无", "notAvailable": "暂无",
"memberLabelPlaceholder": "请选择会员标签", "memberLabelPlaceholder": "请选择会员标签",
"memberInfo":"会员信息", "memberInfo":"会员信息",
"memberInfoPlaceholder":"请输入会员名称/会员昵称/手机号", "memberInfoPlaceholder":"请输入会员编号/昵称/手机号",
"lock": "锁定", "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":"来源/用途", "fromType":"来源/用途",
"memberId":"会员编号",
"pointInfo":"积分变动详情", "pointInfo":"积分变动详情",
"memo":"备注", "memo":"备注",
"mobile":"手机号码", "mobile":"手机号码",
"nickName":"会员信息", "nickName":"会员信息",
"headimg":"会员头像", "headimg":"会员头像",
"createTime":"生时间", "createTime":"生时间",
"startDate":"开始时间", "startDate":"开始时间",
"endDate":"结束时间", "endDate":"结束时间",
"searchMember":"昵称/手机号", "searchMember":"昵称/手机号",
@ -20,5 +24,7 @@
"memoPlaceholder":"请输入备注信息", "memoPlaceholder":"请输入备注信息",
"addMemberAccountLog":"添加会员账单表", "addMemberAccountLog":"添加会员账单表",
"updateMemberAccountLog":"编辑会员账单表", "updateMemberAccountLog":"编辑会员账单表",
"member_account_logDeleteTips":"确定要删除该会员账单表吗?" "member_account_logDeleteTips":"确定要删除该会员账单表吗?",
"memberInfo":"会员信息",
"memberInfoPlaceholder":"请输入会员编号/昵称/手机号"
} }

View File

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

View File

@ -1,11 +1,15 @@
{ {
"logonMode": "普通注册方式", "logonMode": "普通注册方式",
"isUsername": "账号密码登录", "isUsername": "账号密码登录",
"isMobile": "手机验证码登录", "isMobile": "手机验证码登录",
"isAuthRegister": "第三方自动注册", "isAuthRegister": "第三方自动注册",
"isBindMobile": "强制绑定手机", "isBindMobile": "强制绑定手机",
"isUsernameTip": "开启之后可以使用账号+密码进行注册和登录", "isUsernameTip": "开启之后可以使用账号+密码进行注册和登录",
"isMobileTip": "开启之后可以使用手机+验证码进行注册和登录", "isMobileTip": "开启之后可以使用手机+验证码进行注册和登录",
"isAuthRegisterTip": "开启之后,微信公众号、小程序等等第三方平台可以自动注册会员。方便会员自动登录", "isAuthRegisterTip": "开启之后,微信公众号、小程序等等第三方平台可以自动注册会员。方便会员自动登录",
"isBindMobileTip": "开启之后,会员通过账号或者第三方注册账户会强制绑定手机号,方便商家进行管理,同时方便会员在不同端口统一账号" "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": "模板内容", "content": "模板内容",
"weappTempKey" : "模板编号", "weappTempKey" : "模板编号",
"smsId":"短信模版ID", "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": "请先开启该支付方式", "enablePaymentMode": "请先开启该支付方式",
"clickConfigure": "点击配置", "clickConfigure": "点击配置",
"setConfig": "设置支付配置", "setConfig": "设置支付配置",
"open": "开启", "open": "开启",
"notOpen": "未开启", "notOpen": "未开启",
"cancel": "取消" "cancel": "取消"

View File

@ -1,25 +1,34 @@
{ {
"websiteInfo":"网站设置", "websiteInfo":"后台设置",
"contactAddress":"联系地址", "contactAddress":"联系地址",
"siteName": "站点名称", "siteName": "站点名称",
"keywords": "网站关键字", "keywords": "网站关键字",
"logo": "网站Logo", "logo": "网站Logo",
"desc": "网站简介", "desc": "网站简介",
"province": "省", "province": "省",
"city": "市", "city": "市",
"district": "区/县", "district": "区/县",
"selectAddress": "请选择地址", "selectAddress": "请选择地址",
"address": "详细地址", "address": "详细地址",
"phone": "客服电话", "phone": "客服电话",
"businessHours": "营业时间", "businessHours": "营业时间",
"contactAddressPlaceholder":"联系地址", "contactAddressPlaceholder":"联系地址",
"siteNamePlaceholder": "站点名称", "siteNamePlaceholder": "站点名称",
"keywordsPlaceholder": "网站关键字", "keywordsPlaceholder": "网站关键字",
"logoPlaceholder": "网站Logo", "logoPlaceholder": "网站Logo",
"descPlaceholder": "网站简介", "descPlaceholder": "网站简介",
"addressPlaceholder": "详细地址",
"addressPlaceholder": "详细地址", "phonePlaceholder": "客服电话",
"phonePlaceholder": "客服电话", "businessHoursPlaceholder": "营业时间",
"businessHoursPlaceholder": "营业时间", "businessHoursTips": "例上午9:00-12:00下午2:00-6:00",
"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": "父子级不关联", "checkStrictly": "父子级不关联",
"remark": "套餐说明", "remark": "套餐说明",
"reset": "重置", "reset": "重置",
"search": "搜索" "search": "搜索",
"foldText":"展开/折叠"
} }

View File

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

View File

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

View File

@ -1,9 +1,9 @@
{ {
"todayData": "今日数据", "todayData": "实时概况",
"memberNumb": "新增会员数", "memberNumb": "新增会员数(人)",
"orderMoney": "订单金额", "orderMoney": "订单金额(元)",
"numberOfSites": "站点数量", "numberOfSites": "站点数量",
"numberOfVisitors": "今日访客数", "numberOfVisitors": "今日访客数(人)",
"commonlyUsedFunction": "常用功能", "commonlyUsedFunction": "常用功能",
"articleList": "文章列表", "articleList": "文章列表",
"memberManagement": "会员管理", "memberManagement": "会员管理",
@ -22,11 +22,23 @@
"channel": "获取渠道", "channel": "获取渠道",
"serviceSupport": "服务支持", "serviceSupport": "服务支持",
"officialWbsite": "官网", "officialWbsite": "官网",
"pageView": "访问量", "pageView": "访客数(人)",
"siteInfo":"站点信息", "siteInfo":"站点信息",
"siteName":"站点名称", "siteName":"站点名称",
"groupName":"站点套餐", "groupName":"站点套餐",
"expireTime":"过期时间", "expireTime":"过期时间",
"permanent":"永久", "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": "名称", "title": "名称",
"serverInformation": "服务器信息", "serverInformation": "服务器信息",
"systemDemand": "系统环境要求", "systemDemand": "系统环境要求",
"authorityStatus": "权限状态", "authorityStatus": "权限状态",
"name": "选项", "name": "选项",
"demand": "要求", "demand": "要求",
"status": "状态", "status": "状态",
"environment": "环境", "environment": "环境",
"version": "版本", "version": "版本",
"phpType": "PHP版本", "phpType": "PHP版本",
"phpTypeValue": "大于等于8.0.0", "phpTypeValue": "大于等于8.0.0",
"mysqlType": "mysql版本", "mysqlType": "mysql版本",
"mysqlTypeValue": "大于等于5.7" "mysqlTypeValue": "大于等于5.7",
"process": "启动进程"
} }

View File

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

View File

@ -1,10 +1,9 @@
<template> <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" /> <side class="hidden-xs-only" />
</el-aside> </el-aside>
<el-drawer v-model="systemStore.menuDrawer" direction="ltr" :with-header="false" custom-class="aside-drawer" <el-drawer v-model="systemStore.menuDrawer" direction="ltr" :with-header="false" custom-class="aside-drawer" size="210px">
size="210px">
<template #default> <template #default>
<side /> <side />
</template> </template>
@ -12,15 +11,17 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { watch } from 'vue' import { watch,computed } from 'vue'
import { useRoute } from 'vue-router' import { useRoute } from 'vue-router'
import side from './side.vue' import side from './side.vue'
import useSystemStore from '@/stores/modules/system' import useSystemStore from '@/stores/modules/system'
const systemStore = useSystemStore() const systemStore = useSystemStore()
const dark = computed(()=>{
return systemStore.dark
})
const route = useRoute() const route = useRoute()
watch(route, () => { watch(route, () => {
systemStore.$patch(state => { systemStore.$patch(state => {
state.menuDrawer = false state.menuDrawer = false
@ -33,6 +34,26 @@ watch(route, () => {
background-color: var(--side-dark-color, var(--el-bg-color)); background-color: var(--side-dark-color, var(--el-bg-color));
border-right: 1px solid var(--el-border-color-lighter); border-right: 1px solid var(--el-border-color-lighter);
z-index: 101; 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 { .aside-drawer {

View File

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

View File

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

View File

@ -1,5 +1,5 @@
<template> <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-row class="w-100 h-full w-full">
<el-col :span="12"> <el-col :span="12">
<div class="left-panel h-full flex items-center"> <div class="left-panel h-full flex items-center">
@ -33,8 +33,7 @@
<el-col :span="12"> <el-col :span="12">
<div class="right-panel h-full flex items-center justify-end"> <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" <i class="iconfont iconlingdang-xianxing cursor-pointer px-[8px]" :title="t('newInfo')" v-if="appType == 'site'"></i>
:alt="t('preview')" :title="t('preview')">
<!-- 切换语言 --> <!-- 切换语言 -->
<div class="navbar-item flex items-center h-full cursor-pointer"> <div class="navbar-item flex items-center h-full cursor-pointer">
<switch-lang /> <switch-lang />
@ -90,6 +89,10 @@ const appStore = useAppStore()
const route = useRoute() const route = useRoute()
const screenWidth = ref(window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) const screenWidth = ref(window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth)
const dark = computed(()=>{
return systemStore.dark
})
// start // start
const detectionLoginDialog = ref(false) const detectionLoginDialog = ref(false)
const comparisonToken = ref('') const comparisonToken = ref('')
@ -164,6 +167,11 @@ const backFn = () => {
</script> </script>
<style lang="scss" scoped> <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 { .navbar-item {
padding: 0 8px; padding: 0 8px;

View File

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

View File

@ -10,7 +10,7 @@ import storage from '@/utils/storage'
const router = createRouter({ const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL), 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 userStore = useUserStore()
const siteInfo = storage.get('siteInfo') || false 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) setWindowTitle(title)
// 加载语言包 // 加载语言包
await language.loadLocaleMessages(to.path, useSystemStore().lang); 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)) { 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 {ElMessage, ElMessageBox} from 'element-plus'
import {cloneDeep, range, isEmpty} from 'lodash-es' 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', { const useDiyStore = defineStore('diy', {
state: (): Diy => { state: () => {
return { return {
id: 0, id: 0,
load: false, // 加载状态 load: false, // 加载状态
currentIndex: -99, currentIndex: -99, // 当前正在编辑的组件下标
currentComponent: 'edit-page', currentComponent: 'edit-page', // 当前正在编辑的组件名称
name: '', editTab: 'content',// 编辑页面
type: '', name: '', // 页面标识
typeName: '', type: '', // 页面模板
components: [], 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: { global: {
title: "页面", title: "页面", // 页面标题
pageBgColor: "", // 页面背景颜色 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: [] value: []
@ -45,10 +96,71 @@ const useDiyStore = defineStore('diy', {
}, },
getters: { getters: {
editComponent: (state) => { editComponent: (state) => {
return state.value[state.currentIndex]; if (state.currentIndex == -99) {
return state.global;
} else {
return state.value[state.currentIndex];
}
}, },
}, },
actions: { 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) { addComponent(key: string, data: any) {
// 加载完才能添加组件 // 加载完才能添加组件
@ -60,14 +172,17 @@ const useDiyStore = defineStore('diy', {
component.id = this.generateRandom(); component.id = this.generateRandom();
component.componentName = key; component.componentName = key;
component.componentTitle = component.title; component.componentTitle = component.title;
component.maxCount = component.max_count; component.ignore = []; // 忽略公共属性
Object.assign(component, component.value); Object.assign(component, component.value);
delete component.title; delete component.title;
delete component.value; delete component.value;
delete component.type; delete component.type;
delete component.icon; delete component.icon;
delete component.max_count;
// 继承全局属性
let template = cloneDeep(this.global.template);
Object.assign(component, template);
if (!this.checkComponentIsAdd(component)) return; if (!this.checkComponentIsAdd(component)) return;
@ -180,7 +295,7 @@ const useDiyStore = defineStore('diy', {
if (!this.checkComponentIsAdd(component)) { if (!this.checkComponentIsAdd(component)) {
ElMessage({ ElMessage({
type: 'warning', 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; return;
} }
@ -194,15 +309,15 @@ const useDiyStore = defineStore('diy', {
// 检测组件是否允许添加true允许 false不允许 // 检测组件是否允许添加true允许 false不允许
checkComponentIsAdd(component: any) { checkComponentIsAdd(component: any) {
//maxCount为0时不处理 //为0时不处理
if (component.maxCount === 0) return true; if (component.uses === 0) return true;
var count = 0; var count = 0;
//遍历已添加的自定义组件,检测是否超出数量 //遍历已添加的自定义组件,检测是否超出数量
for (var i in this.value) if (this.value[i].componentName === component.componentName) count++; 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; else return true;
}, },
// 重置当前组件数据 // 重置当前组件数据

View File

@ -1,21 +1,12 @@
:root { :root {
--aside-width: 210px; --aside-width: 210px;
--el-mask-color: rgba(255,255,255,1) --el-mask-color: rgba(255,255,255,1);
} }
.border-color { .border-color {
border-color: var(--el-border-color-lighter); border-color: var(--el-border-color-lighter);
} }
.table-search-wrap {
background: #f5f7fa !important;
border-radius: 0!important;
.el-form {
margin-bottom: -18px;
}
}
.el-form { .el-form {
.form-tip { .form-tip {
width: 100%; width: 100%;
@ -96,4 +87,80 @@ html.dark {
textarea:-webkit-autofill, textarea:-webkit-autofill,
select:-webkit-autofill { select:-webkit-autofill {
box-shadow: 0 0 50px 50px white inset; 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-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 { .el-button {
background-color: var(--el-button-bg-color, var(--el-color-white)); background-color: var(--el-button-bg-color, var(--el-color-white));
} }
@ -13,10 +28,6 @@
max-width: calc(100vw - 50px); 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--daterange, .el-date-editor--timerange, .el-date-editor.el-input, .el-date-editor .el-input__wrapper {
--el-date-editor-width: 100%!important; --el-date-editor-width: 100%!important;
width: 100%; width: 100%;

View File

@ -1,8 +1,8 @@
@font-face { @font-face {
font-family: "iconfont"; /* Project id 3883393 */ font-family: "iconfont"; /* Project id 3883393 */
src: url('//at.alicdn.com/t/c/font_3883393_4jlgm3tby7.woff2?t=1683947082967') format('woff2'), src: url('//at.alicdn.com/t/c/font_3883393_pok9rb5nvbr.woff2?t=1685440441519') format('woff2'),
url('//at.alicdn.com/t/c/font_3883393_4jlgm3tby7.woff?t=1683947082967') format('woff'), url('//at.alicdn.com/t/c/font_3883393_pok9rb5nvbr.woff?t=1685440441519') format('woff'),
url('//at.alicdn.com/t/c/font_3883393_4jlgm3tby7.ttf?t=1683947082967') format('truetype'); url('//at.alicdn.com/t/c/font_3883393_pok9rb5nvbr.ttf?t=1685440441519') format('truetype');
} }
.iconfont { .iconfont {
@ -13,6 +13,62 @@
-moz-osx-font-smoothing: grayscale; -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 { .icontuikuanjilu:before {
content: "\e8cf"; content: "\e8cf";
} }

View File

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

View File

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

View File

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

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