diff --git a/api/cms/cmsWebsite/index.ts b/api/cms/cmsWebsite/index.ts index 64fdf6d..d356396 100644 --- a/api/cms/cmsWebsite/index.ts +++ b/api/cms/cmsWebsite/index.ts @@ -95,9 +95,9 @@ export async function removeBatchCmsWebsite(data: (number | undefined)[]) { /** * 根据id查询网站信息记录表 */ -export async function getCmsWebsite(id: number) { +export async function getCmsWebsiteAll(id: number) { const res = await request.get>( - 'https://cms-api.websoft.top/api/cms/cms-website/' + id + '/cms/cms-website/all/' + id ); if (res.code === 0 && res.data) { return res.data; @@ -120,7 +120,7 @@ export async function removeSiteInfoCache(key?: string) { export async function pageCmsWebsiteAll(params: CmsWebsiteParam) { const res = await request.get>>( - 'https://cms-api.websoft.top/api/cms/cms-website/pageAll', + '/cms/cms-website/pageAll', { params } diff --git a/api/cms/cmsWebsite/model/index.ts b/api/cms/cmsWebsite/model/index.ts index f708eba..e825dfb 100644 --- a/api/cms/cmsWebsite/model/index.ts +++ b/api/cms/cmsWebsite/model/index.ts @@ -19,6 +19,16 @@ export interface CmsWebsite { websiteDarkLogo?: string; // 网站类型 websiteType?: string; + // 评分 + rate?: number; + // 点赞数 + likes?: number; + // 点击量 + clicks?: number; + // 购买量 + buys?: number; + // 下载安装 + downloads?: number; // 网站截图 files?: string; // 网站关键词 @@ -106,5 +116,6 @@ export interface CmsWebsite { export interface CmsWebsiteParam extends PageParam { websiteId?: number; status?: number; + recommend?: number; keywords?: string; } diff --git a/api/layout/index.ts b/api/layout/index.ts index ae9bac4..26a4f7a 100644 --- a/api/layout/index.ts +++ b/api/layout/index.ts @@ -25,7 +25,11 @@ export async function getSiteInfo(params: CmsWebsiteParam) { */ export async function getUserInfo(): Promise { const config = useRuntimeConfig(); - const res = await request.get>(config.public.apiServer + '/auth/user'); + const res = await request.get>(config.public.apiServer + '/auth/user',{ + headers: { + TenantId: `${localStorage.getItem('TID_ADMIN')}` + } + }); if (res.code === 0 && res.data) { return res.data; } diff --git a/api/passport/login/index.ts b/api/passport/login/index.ts index f789b8b..d5318c4 100644 --- a/api/passport/login/index.ts +++ b/api/passport/login/index.ts @@ -8,6 +8,7 @@ import type { SmsCaptchaResult } from './model'; import { SERVER_API_URL } from '~/config'; +import type {UserParam} from "~/api/system/user/model"; /** * 登录 @@ -49,18 +50,22 @@ export async function loginBySms(data: LoginParam) { data ); if (res.code === 0) { - console.log(res.data,'登录成功') - // setToken(res.data.data?.access_token, data.remember); - // if (res.data.data?.user) { - // const user = res.data.data?.user; - // localStorage.setItem('TenantId', String(user.tenantId)); - // localStorage.setItem('Phone', String(user.phone)); - // localStorage.setItem('UserId', String(user.userId)); - // localStorage.setItem('MerchantId', String(user.merchantId)); - // localStorage.setItem('MerchantName', String(user.merchantName)); - // } + return res.data; + } + return Promise.reject(new Error(res.message)); +} - return res.message; +/** + * 用户注册 + * @param data + */ +export async function register(data: UserParam) { + const res = await request.post>( + SERVER_API_URL + '/register', + data + ); + if (res.code === 0) { + return res.data; } return Promise.reject(new Error(res.message)); } diff --git a/api/passport/login/model/index.ts b/api/passport/login/model/index.ts index 1f1c822..96d5ac2 100644 --- a/api/passport/login/model/index.ts +++ b/api/passport/login/model/index.ts @@ -15,6 +15,8 @@ export interface LoginParam { phone?: string; // 短信验证码 code?: string; + // 是否超级管理员 + isSuperAdmin?: boolean; } /** diff --git a/api/system/user/model/index.ts b/api/system/user/model/index.ts index 83b9513..9551936 100644 --- a/api/system/user/model/index.ts +++ b/api/system/user/model/index.ts @@ -135,6 +135,7 @@ export interface UserParam extends PageParam { type?: any; userId?: number; username?: string; + password?: string; nickname?: string; realName?: string; gradeId?: unknown; @@ -144,12 +145,15 @@ export interface UserParam extends PageParam { cityMate?: string; sex?: string; phone?: string; + email?: string; + code?: string; status?: number; organizationId?: number; parentId?: number; sexName?: string; roleId?: string; isAdmin?: number; + isSuperAdmin?: boolean; showProfile?: boolean; isStaff?: boolean; } diff --git a/assets/css/model.css b/assets/css/model.css index a69b92c..0541140 100644 --- a/assets/css/model.css +++ b/assets/css/model.css @@ -2329,7 +2329,6 @@ h3.tag a:hover { .relate h4 { line-height: 30px; border-bottom: 1px solid #0c6fcd; - padding-left: 5px; } #relate_p .img img { diff --git a/assets/images/O1CN01yz6fEl1MwaRtkJyvf_!!6000000001499-55-tps-70-70.svg b/assets/images/O1CN01yz6fEl1MwaRtkJyvf_!!6000000001499-55-tps-70-70.svg new file mode 100644 index 0000000..a7b3b75 --- /dev/null +++ b/assets/images/O1CN01yz6fEl1MwaRtkJyvf_!!6000000001499-55-tps-70-70.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/components/AppHeader/Login/Login.vue b/components/AppHeader/Login/Login.vue index 1201eb1..59aaa09 100644 --- a/components/AppHeader/Login/Login.vue +++ b/components/AppHeader/Login/Login.vue @@ -1,23 +1,74 @@ diff --git a/composables/configState.ts b/composables/configState.ts index 14d4356..d9cd6c1 100644 --- a/composables/configState.ts +++ b/composables/configState.ts @@ -56,7 +56,12 @@ export const useProductAffix = () => export const useSysDomain = () => useState('SysDomain', () => ''); // 登录凭证 -export const useToken = () => useState('token', () => ''); +export const useToken = () => useState('token', () => { + if(localStorage.getItem('token')){ + return localStorage.getItem('token') + } + return '' +}); // 用户信息 export const useUser = () => diff --git a/lang/zh.json b/lang/zh.json index 2146e5d..d09cc53 100644 --- a/lang/zh.json +++ b/lang/zh.json @@ -127,7 +127,7 @@ "label": "标签", "seeMore": "查看更多", "onlineInquiry": "在线询价", - "searchKeywords": "搜索关键词", + "searchKeywords": "站内搜索", "tel": "电话", "map": "地图", "message": "留言" diff --git a/pages/article/[id].vue b/pages/article/[id].vue index 6ab63a3..c487914 100644 --- a/pages/article/[id].vue +++ b/pages/article/[id].vue @@ -6,13 +6,8 @@ - - + -
-
{{ item.comments }}
-
+ + +
{{ getViews(item) }}
@@ -117,7 +112,6 @@ const reload = async () => { const goBack = () => { router.back(); // 返回上一页 - // window.history.back(); } /** diff --git a/pages/case/index.vue b/pages/case/index.vue new file mode 100644 index 0000000..8ca7a07 --- /dev/null +++ b/pages/case/index.vue @@ -0,0 +1,173 @@ + + + diff --git a/pages/detail/[id].vue b/pages/detail/[id].vue index ec36a8b..72dde07 100644 --- a/pages/detail/[id].vue +++ b/pages/detail/[id].vue @@ -6,50 +6,70 @@ - - + + -
-

{{ form.title }}

-
-

- {{ $t('createTime') }}:{{ dayjs(form.createTime).format('YYYY-MM-DD') }} - {{ $t('author') }}:{{ form.nickname }} - {{ $t('click') }}:{{ getViews(form) }} -

- @@ -61,9 +81,7 @@ import {getNavIdByParamsId, getViews, locationUrl, navTo, paramsId} from "~/util import type {CmsArticle, CmsArticleParam} from "~/api/cms/cmsArticle/model"; import useFormData from "~/utils/use-form-data"; import dayjs from "dayjs"; -import Banner from "@/components/Banner.vue"; import type {Layout} from "~/api/layout/model"; -import Left from "~/components/Left.vue"; import { getCmsArticle } from "~/api/cms/cmsArticle"; @@ -71,8 +89,6 @@ import {listCmsNavigation} from "~/api/cms/cmsNavigation"; import CmsArticleRecently from "~/components/CmsRecently.vue"; import Tags from "~/components/Tags.vue"; import Content from "~/components/Content.vue"; -import CmsArticleList from "~/components/CmsArticleList.vue"; -import PageBanner from "~/pages/item/components/PageBanner.vue"; // 引入状态管理 const route = useRoute(); @@ -83,6 +99,7 @@ const i18n = useI18n(); const breadcrumb = ref(); const showPassword = ref(); const category = ref([]); +const srcList = ref([]); // 配置信息 const {form, assignFields} = useFormData({ @@ -182,6 +199,13 @@ const reload = async () => { await getCmsArticle(articleId.value).then(data => { assignFields(data) layout.value.banner = data?.banner; + // 应用截图 + if(data.files){ + const imgArr = JSON.parse(data.files); + imgArr.map((item: any) => { + srcList.value.push(item) + }) + } // 二级栏目分类 if (data.parentId) { listCmsNavigation({parentId: data.parentId}).then(list => { @@ -223,4 +247,14 @@ watch( diff --git a/pages/docs/[id].vue b/pages/docs/[id].vue new file mode 100644 index 0000000..9c3dee3 --- /dev/null +++ b/pages/docs/[id].vue @@ -0,0 +1,137 @@ + + diff --git a/pages/docs/index.vue b/pages/docs/index.vue new file mode 100644 index 0000000..4181f6d --- /dev/null +++ b/pages/docs/index.vue @@ -0,0 +1,123 @@ + + diff --git a/pages/item/[id].vue b/pages/item/[id].vue index 2e15109..e5d1905 100644 --- a/pages/item/[id].vue +++ b/pages/item/[id].vue @@ -1,41 +1,26 @@ - + diff --git a/pages/item/components/Comments.vue b/pages/item/components/Comments.vue index 898ce9d..ac31439 100644 --- a/pages/item/components/Comments.vue +++ b/pages/item/components/Comments.vue @@ -1,4 +1,10 @@ - - + + +
+ + + +

{{ $t('articleUrl') }}:{{ locationUrl() }}

+
@@ -18,11 +24,12 @@ diff --git a/pages/search/[keywords].vue b/pages/search/[keywords].vue new file mode 100644 index 0000000..1a2deb8 --- /dev/null +++ b/pages/search/[keywords].vue @@ -0,0 +1,123 @@ + + + diff --git a/pages/search/components/ArticleList.vue b/pages/search/components/ArticleList.vue new file mode 100644 index 0000000..eb7e279 --- /dev/null +++ b/pages/search/components/ArticleList.vue @@ -0,0 +1,53 @@ + + + + diff --git a/pages/search/components/SiteList.vue b/pages/search/components/SiteList.vue new file mode 100644 index 0000000..5253a0a --- /dev/null +++ b/pages/search/components/SiteList.vue @@ -0,0 +1,53 @@ + + + + diff --git a/pages/show/components/PageBanner.vue b/pages/show/components/PageBanner.vue index 8799328..0e74509 100644 --- a/pages/show/components/PageBanner.vue +++ b/pages/show/components/PageBanner.vue @@ -29,7 +29,7 @@
diff --git a/pages/user/auth.vue b/pages/user/auth.vue new file mode 100644 index 0000000..76e2519 --- /dev/null +++ b/pages/user/auth.vue @@ -0,0 +1,72 @@ + + diff --git a/pages/user/components/Auth.vue b/pages/user/components/Auth.vue new file mode 100644 index 0000000..d2303d7 --- /dev/null +++ b/pages/user/components/Auth.vue @@ -0,0 +1,460 @@ + + + + diff --git a/pages/user/components/Base.vue b/pages/user/components/Base.vue new file mode 100644 index 0000000..fb74ab7 --- /dev/null +++ b/pages/user/components/Base.vue @@ -0,0 +1,46 @@ + + + + diff --git a/pages/user/components/Order.vue b/pages/user/components/Order.vue new file mode 100644 index 0000000..f5289e6 --- /dev/null +++ b/pages/user/components/Order.vue @@ -0,0 +1,45 @@ + + + + diff --git a/pages/user/components/Password.vue b/pages/user/components/Password.vue new file mode 100644 index 0000000..2fbb62f --- /dev/null +++ b/pages/user/components/Password.vue @@ -0,0 +1,31 @@ + + + + diff --git a/pages/user/components/UserMenu.vue b/pages/user/components/UserMenu.vue new file mode 100644 index 0000000..8546f2e --- /dev/null +++ b/pages/user/components/UserMenu.vue @@ -0,0 +1,60 @@ + + + + diff --git a/pages/user/index.vue b/pages/user/index.vue new file mode 100644 index 0000000..1fb1469 --- /dev/null +++ b/pages/user/index.vue @@ -0,0 +1,108 @@ + + diff --git a/pages/user/logout.vue b/pages/user/logout.vue new file mode 100644 index 0000000..ce757da --- /dev/null +++ b/pages/user/logout.vue @@ -0,0 +1,34 @@ + + diff --git a/pages/user/order.vue b/pages/user/order.vue new file mode 100644 index 0000000..241cb2e --- /dev/null +++ b/pages/user/order.vue @@ -0,0 +1,102 @@ + + diff --git a/pages/user/password.vue b/pages/user/password.vue new file mode 100644 index 0000000..4355ad6 --- /dev/null +++ b/pages/user/password.vue @@ -0,0 +1,151 @@ + + diff --git a/utils/request.ts b/utils/request.ts index 7092395..36159d3 100644 --- a/utils/request.ts +++ b/utils/request.ts @@ -11,7 +11,7 @@ export const request = (url:string, options?: UseFetchOptions) => onRequest({ options }: any){ let token = '' if(import.meta.client){ - token = useToken().value + token = `${useToken().value}` } options.headers = { TenantId, diff --git a/归档.zip b/归档.zip new file mode 100644 index 0000000..49b4edf Binary files /dev/null and b/归档.zip differ