diff --git a/package.json b/package.json index 9a6bcc5..36a4b15 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "@vueuse/core": "10.9.0", "axios": "^1.4.0", "date-fns": "^2.30.0", + "dayjs": "^1.11.10", "esno": "^0.16.3", "file-saver": "^2.0.5", "imagesloaded": "^5.0.0", diff --git a/src/config/aside.ts b/src/config/aside.ts index 6e339ea..5ba3b4d 100644 --- a/src/config/aside.ts +++ b/src/config/aside.ts @@ -1,5 +1,5 @@ +import { IzCustomlevel, IzCustomname, IzCustomtype, IzfirmVue, IzProductVue, IzProjecttype, IzProjectVue, IztaskrromVue, IztaskstatusVue, IzVisitcity, IzvisitproVue, PictureDownloadVue, PictureTypeVue, PictureUploadVue, PlanVue, ReportUserVue, SimilarityVue, TimeVue } from '@/views/home/aside/comp/items' import type { Component } from 'vue' -import { IzCustomlevel, IzCustomname, IzCustomtype, IzProductVue, IzProjectVue, IzProjecttype, IzShowVue, IzVisitcity, IzfirmVue, IztaskrromVue, IztaskstatusVue, IzvisitproVue, PictureDownloadVue, PictureTypeVue, PictureUploadVue, PlaceHolderVue, PlanVue, ReportUserVue, SimilarityVue, TimeVue } from '@/views/home/aside/comp/items' export interface AsideEntity { label: string @@ -52,7 +52,7 @@ export const asideMap: Recordable = { izyear: { label: '年份', defaultValue: null, - isDefaultFilter: false, + isDefaultFilter: true, key: 'izyear', component: TimeVue, }, @@ -72,28 +72,28 @@ export const asideMap: Recordable = { inFilterList: false, }, izcustomtype: { - label: '客户类型', + label: '拜访客户类型', defaultValue: null, isDefaultFilter: false, key: 'izcustomtype', component: IzCustomtype, }, izcustomlevel: { - label: '客户级别', + label: '拜访客户级别', defaultValue: null, isDefaultFilter: false, key: 'izcustomlevel', component: IzCustomlevel, }, izcustomname: { - label: '客户名称', + label: '拜访客户名称', defaultValue: null, isDefaultFilter: false, key: 'izcustomname', component: IzCustomname, }, izprojecttype: { - label: '项目类型', + label: '拜访项目类型', defaultValue: null, isDefaultFilter: false, key: 'izprojecttype', @@ -114,14 +114,14 @@ export const asideMap: Recordable = { component: IztaskstatusVue, }, izvisitpro: { - label: '拜访省份', + label: '拜访省份/直辖市', defaultValue: null, isDefaultFilter: false, key: 'izvisitpro', component: IzvisitproVue, }, izvisitcity: { - label: '发布地区', + label: '拜访城市', defaultValue: null, isDefaultFilter: false, key: 'izvisitcity', @@ -141,38 +141,31 @@ export const asideMap: Recordable = { key: 'izproductname', component: IzProductVue, }, - izdesc: { - label: '添加备注', - defaultValue: null, - isDefaultFilter: false, - key: 'izdesc', - component: PlaceHolderVue, - inFilterList: false, - render: false, - }, - izsearchmanager: { - label: '自定义筛选', - defaultValue: null, - isDefaultFilter: false, - key: 'izsearchmanager', - component: PlaceHolderVue, - inFilterList: false, - render: false, - }, - izshow: { - label: '分类', - defaultValue: null, - isDefaultFilter: false, - key: 'izshow', - component: IzShowVue, - }, - izsearch: { - label: '自定义过滤', - defaultValue: null, - isDefaultFilter: false, - key: 'izsearch', - component: PlaceHolderVue, - inFilterList: false, - render: false, - }, + // izdesc: { + // label: '添加备注', + // defaultValue: null, + // isDefaultFilter: false, + // key: 'izdesc', + // component: PlaceHolderVue, + // inFilterList: false, + // render: false, + // }, + // izsearchmanager: { + // label: '自定义筛选', + // defaultValue: null, + // isDefaultFilter: false, + // key: 'izsearchmanager', + // component: PlaceHolderVue, + // inFilterList: false, + // render: false, + // }, + // izsearch: { + // label: '自定义过滤', + // defaultValue: null, + // isDefaultFilter: false, + // key: 'izsearch', + // component: PlaceHolderVue, + // inFilterList: false, + // render: false, + // }, } diff --git a/src/layout/components/Header/UserSettings.vue b/src/layout/components/Header/UserSettings.vue index b69304f..db042e2 100644 --- a/src/layout/components/Header/UserSettings.vue +++ b/src/layout/components/Header/UserSettings.vue @@ -101,8 +101,8 @@ const options = computed(() => {
- {{ useInfo.username }} - {{ useInfo.departname }} + {{ useInfo.username }} + {{ useInfo.departname }}
@@ -120,7 +120,7 @@ const options = computed(() => {
退出登录
-
+
{{ option.label }}
@@ -130,6 +130,18 @@ const options = computed(() => { + +::v-deep(.n-input__separator) { + color: #999999 !important; + ; +} diff --git a/src/views/home/aside/comp/items/index.ts b/src/views/home/aside/comp/items/index.ts index 6ef2592..7843f5b 100644 --- a/src/views/home/aside/comp/items/index.ts +++ b/src/views/home/aside/comp/items/index.ts @@ -1,24 +1,24 @@ -import PictureTypeVue from './PictureType.vue' -import PlanVue from './Plan.vue' -import ReportUserVue from './ReportUser.vue' -import PictureDownloadVue from './PictureDownload.vue' -import TimeVue from './Time.vue' -import RegionVue from './Region.vue' -import PictureUploadVue from './PictureUpload.vue' -import SimilarityVue from './Similarity.vue' -import PlaceHolderVue from './PlaceHolder.vue' -import IzShowVue from './IzShow.vue' -import IzProjectVue from './IzProject.vue' -import IztaskrromVue from './Iztaskrrom.vue' -import IztaskstatusVue from './Iztaskstatus.vue' -import IzvisitproVue from './Izvisitpro.vue' -import IzfirmVue from './Izfirm.vue' import IzCustomlevel from './IzCustomlevel.vue' import IzCustomname from './IzCustomname.vue' import IzCustomtype from './IzCustomtype.vue' +import IzfirmVue from './Izfirm.vue' import IzProductVue from './IzProduct.vue' +import IzProjectVue from './IzProject.vue' import IzProjecttype from './IzProjecttype.vue' -import IzVisitcity from './IzVisitcity.vue' import IzStatus from './IzStatus.vue' +import IztaskrromVue from './Iztaskrrom.vue' +import IztaskstatusVue from './Iztaskstatus.vue' +import IzVisitcity from './IzVisitcity.vue' +import IzvisitproVue from './Izvisitpro.vue' +import PictureDownloadVue from './PictureDownload.vue' +import PictureTypeVue from './PictureType.vue' +import PictureUploadVue from './PictureUpload.vue' +import PlaceHolderVue from './PlaceHolder.vue' +import PlanVue from './Plan.vue' +import RegionVue from './Region.vue' +import ReportUserVue from './ReportUser.vue' +import SimilarityVue from './Similarity.vue' +import TimeVue from './Time.vue' + +export { IzProjecttype, IzStatus, IzVisitcity, IzCustomlevel, IzCustomtype, IzCustomname, IzfirmVue, IzProductVue, IzvisitproVue, IztaskstatusVue, IztaskrromVue, IzProjectVue, PictureDownloadVue, PictureUploadVue, PlaceHolderVue, RegionVue, SimilarityVue, ReportUserVue, PlanVue, PictureTypeVue, TimeVue } -export { IzProjecttype, IzStatus, IzVisitcity, IzCustomlevel, IzCustomtype, IzCustomname, IzfirmVue, IzProductVue, IzvisitproVue, IztaskstatusVue, IztaskrromVue, IzProjectVue, IzShowVue, PictureDownloadVue, PictureUploadVue, PlaceHolderVue, RegionVue, SimilarityVue, ReportUserVue, PlanVue, PictureTypeVue, TimeVue } diff --git a/src/views/home/content/Content.vue b/src/views/home/content/Content.vue index 5e22d73..46e5ce1 100644 --- a/src/views/home/content/Content.vue +++ b/src/views/home/content/Content.vue @@ -17,6 +17,7 @@ import { computed, nextTick, onMounted, onUnmounted, onUpdated, reactive, ref, u import GeneratePackageModal from './modal/GeneratePackageModal.vue' import LoginSuccessModal from './modal/LoginSuccessModal.vue' import PackageSettingsModal from './modal/PackageSettingsModal.vue' +import type { PictureSortParam } from "/#/api" const deviceHeight = ref(600) let _masonry: null | Masonry = null @@ -35,7 +36,10 @@ const LoginSuccessModalRef = ref(null) const loading = ref(false) const message = useMessage() const totalCount = ref(0) -const sortBy = ref<'asc' | 'desc'>('desc') +const sortBy: PictureSortParam = { + orderbyname: "asc", + orderbyvalue: "pictureResult", +}; const imageRef = ref() let canloadMore = true let filterId = null @@ -64,7 +68,7 @@ const layout = debounce(() => { _masonry = new Masonry(masonryRef.value as any, { itemSelector: '.grid-item', - gutter: 18, + gutter: 17, columnWidth: 182, percentPosition: true, stagger: 10, @@ -128,7 +132,7 @@ async function featchList() { const asideParams = unref(configStore.getAsideValue) const params = filterId ? { userSearchId: filterId } : asideParams - const result = await getPictureList({ ...pagination, ...contentParams, ...params, ordertype: sortBy.value }) + const result = await getPictureList({ ...pagination, ...contentParams, ...params, ...sortBy }) const { data, pageCount, total } = result totalCount.value = total canloadMore = pageCount >= pagination.pageNo && pageCount > 0 @@ -261,8 +265,9 @@ function getAvatar(url: string): string { return url ? getImgUrl(url) : avatar } -function sortHandler() { - sortBy.value = sortBy.value === 'asc' ? 'desc' : 'asc' +function sortHandler(orderby: "pictureResult" | "fromuptime") { + sortBy.orderbyvalue = orderby; + sortBy.orderbyname = sortBy.orderbyname === "asc" ? "desc" : "asc"; refreshHandler() } async function downloadImage(item) { @@ -338,10 +343,14 @@ function previewHandler(index: number,event: MouseEvent) {
- +
+
+ 时间排序 + +
{{ totalCount }} @@ -380,10 +389,10 @@ function previewHandler(index: number,event: MouseEvent) { {{ item.upname }} -
+
diff --git a/types/home.d.ts b/types/home.d.ts index a960b57..92643d0 100644 --- a/types/home.d.ts +++ b/types/home.d.ts @@ -8,6 +8,8 @@ export interface Filter { export interface FilterEntity { id: string name: string // 过滤名称 + createtime: string // 创建时间 + searchname: string // 搜索名称 favorite: boolean// 是否收藏 isDefaultFilter: boolean// 默认筛选 filterList: Filter[] // 过滤项列表