diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 3e5c49325..000000000 --- a/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -node_modules -.DS_Store -dist -dist-ssr -*.local -src/types - -auto-imports.d.ts -components.d.ts -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.local -*.d.ts - -package-lock.json -pnpm-lock.yaml diff --git a/index.html b/index.html index 5f71e6f2a..97a764667 100644 --- a/index.html +++ b/index.html @@ -4,6 +4,7 @@ + diff --git a/package.json b/package.json deleted file mode 100644 index d855b9d8e..000000000 --- a/package.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "name": "appsys", - "private": true, - "version": "2.3.0", - "type": "module", - "scripts": { - "dev": "vite serve --mode development", - "build:prod": "vite build --mode production &&vue-tsc --noEmit", - "prepare": "husky install", - "lint:eslint": "eslint --fix --ext .ts,.js,.vue ./src ", - "lint:prettier": "prettier --write \"**/*.{js,cjs,ts,json,tsx,css,less,scss,vue,html,md}\"", - "lint:stylelint": "stylelint \"**/*.{css,scss,vue}\" --fix", - "lint:lint-staged": "lint-staged", - "commit": "git-cz" - }, - "config": { - "commitizen": { - "path": "node_modules/cz-git" - } - }, - "lint-staged": { - "*.{js,ts}": [ - "eslint --fix", - "prettier --write" - ], - "*.{cjs,json}": [ - "prettier --write" - ], - "*.{vue,html}": [ - "eslint --fix", - "prettier --write", - "stylelint --fix" - ], - "*.{scss,css}": [ - "stylelint --fix", - "prettier --write" - ], - "*.md": [ - "prettier --write" - ] - }, - "dependencies": { - "@element-plus/icons-vue": "^2.1.0", - "@vitejs/plugin-vue": "^4.2.3", - "@vueuse/core": "^10.1.2", - "@wangeditor/editor": "^5.1.23", - "@wangeditor/editor-for-vue": "5.1.10", - "@wecom/jssdk": "^1.3.2", - "axios": "^1.4.0", - "clipboard": "^2.0.11", - "echarts": "^5.2.2", - "element-plus": "^2.3.4", - "js-beautify": "^1.14.8", - "js-md5": "^0.7.3", - "md5": "^2.3.0", - "nprogress": "^0.2.0", - "path-browserify": "^1.0.1", - "path-to-regexp": "^6.2.0", - "pinia": "^2.0.33", - "screenfull": "^6.0.0", - "ts-md5": "^1.3.1", - "vue": "^3.3.1", - "vue-i18n": "9.2.2", - "vue-router": "^4.2.0", - "vuedraggable": "^4.1.0", - "vuedraggable-es": "^4.1.1" - }, - "devDependencies": { - "@commitlint/cli": "^17.6.3", - "@commitlint/config-conventional": "^17.6.3", - "@iconify-json/ep": "^1.1.10", - "@types/md5": "^2.3.2", - "@types/nprogress": "^0.2.0", - "@types/path-browserify": "^1.0.0", - "@typescript-eslint/eslint-plugin": "^5.59.6", - "@typescript-eslint/parser": "^5.59.6", - "autoprefixer": "^10.4.14", - "commitizen": "^4.3.0", - "cz-git": "^1.6.1", - "eslint": "^8.40.0", - "eslint-config-prettier": "^8.8.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-vue": "^9.13.0", - "fast-glob": "^3.2.11", - "husky": "^8.0.3", - "lint-staged": "^13.2.2", - "postcss": "^8.4.23", - "postcss-html": "^1.5.0", - "postcss-scss": "^4.0.6", - "prettier": "^2.8.8", - "sass": "^1.58.3", - "stylelint": "^15.5.0", - "stylelint-config-html": "^1.1.0", - "stylelint-config-recess-order": "^4.0.0", - "stylelint-config-recommended-scss": "11.0.0 ", - "stylelint-config-recommended-vue": "^1.4.0", - "stylelint-config-standard": "^33.0.0", - "stylelint-config-standard-scss": "^9.0.0", - "typescript": "^5.0.4", - "unocss": "^0.51.13", - "unplugin-auto-import": "^0.15.3", - "unplugin-icons": "^0.16.1", - "unplugin-vue-components": "^0.24.1", - "vite": "^4.3.5", - "vite-plugin-svg-icons": "^2.0.1", - "vue-tsc": "^1.6.5 " - }, - "repository": "", - "author": "", - "license": "MIT" -} diff --git a/src/api/knowledge/index.ts b/src/api/knowledge/index.ts new file mode 100644 index 000000000..18b7868bf --- /dev/null +++ b/src/api/knowledge/index.ts @@ -0,0 +1,45 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { UserDetail, UserQuery, NaviQuery, Navi ,PageParam,graphicformList} from './types'; + + +//获取当前用户详细信息 +export function getUserDetail(data: UserQuery): AxiosPromise { + return request({ + url: '/javasys/user/detail', + method: 'post', + data: data, + + }); +} + +//获取左侧导航栏信息 +export function getZxxyNavis(data: NaviQuery): AxiosPromise { + return request({ + url: '/javasys/archive/zxxy', + method: 'post', + data: data, + + }); +} + +//获取推荐分页 +export function getTuijian(data: PageParam): AxiosPromise { + return request({ + url: '/javasys/graphicform/cardlist', + method: 'post', + data: data, + + }); + +} + //获取轮播图数据 + export function getCarousel(data: PageParam): AxiosPromise { + return request({ + url: '/javasys/graphicform/carousel', + method: 'post', + data: data, + + }); + + } diff --git a/src/api/knowledge/scroll.js b/src/api/knowledge/scroll.js new file mode 100644 index 000000000..47801599c --- /dev/null +++ b/src/api/knowledge/scroll.js @@ -0,0 +1,101 @@ + + +// 滚动监听器 +export function onScroll() { + + + // 获取所有锚点元素 + const navContents = document.querySelectorAll('.models') + + // 所有锚点元素的 offsetTop + const offsetTopArr = [] + navContents.forEach(item => { + offsetTopArr.push(item.offsetTop) + }) + // 获取当前文档流的 scrollTop + const scrollTop = document.documentElement.scrollTop || document.body.scrollTop + // 定义当前点亮的导航下标 + let navIndex = 0 + for (let n = 0; n < offsetTopArr.length; n++) { + // 如果 scrollTop 大于等于第n个元素的 offsetTop 则说明 n-1 的内容已经完全不可见 + // 那么此时导航索引就应该是n了 + if (scrollTop+210 >= offsetTopArr[n]) { + navIndex = n + } + //若滚动条已经到底则直接激活最后一个导航 + if (scrollTop + document.documentElement.clientHeight === document.documentElement.scrollHeight) { + navIndex = offsetTopArr.length - 1; + } + } + //active.value = navIndex + return navIndex; + } + + // 跳转到指定索引的元素 + export function scrollTo(index) { + + + // 获取目标的 offsetTop + // css选择器是从 1 开始计数,我们是从 0 开始,所以要 +1 + const targetOffsetTop = document.querySelector(`.content .models:nth-child(${index + 1})`).offsetTop + // 获取当前 offsetTop + let scrollTop = document.documentElement.scrollTop || document.body.scrollTop + // 定义一次跳 150 个像素 + const STEP = 50 + // 判断是往下滑还是往上滑 + if (scrollTop > targetOffsetTop) { + // 往上滑 + smoothUp() + } else { + // 往下滑 + smoothDown() + } + // 定义往下滑函数 + function smoothDown() { + // 如果当前 scrollTop 小于 targetOffsetTop 说明视口还没滑到指定位置 + if (scrollTop < targetOffsetTop) { + // 如果和目标相差距离大于等于 STEP 就跳 STEP + // 否则直接跳到目标点,目标是为了防止跳过了。 + if (targetOffsetTop - scrollTop >= STEP) { + scrollTop += STEP + } else { + scrollTop = targetOffsetTop + } + document.body.scrollTop = scrollTop + document.documentElement.scrollTop = scrollTop + // 关于 requestAnimationFrame 可以自己查一下,在这种场景下,相比 setInterval 性价比更高 + requestAnimationFrame(smoothDown) + } + } + // 定义往上滑函数 + function smoothUp() { + if (scrollTop > targetOffsetTop) { + if (scrollTop - targetOffsetTop >= STEP) { + scrollTop -= STEP + } else { + scrollTop = targetOffsetTop + } + document.body.scrollTop = scrollTop + document.documentElement.scrollTop = scrollTop + requestAnimationFrame(smoothUp) + } + } + } + export function formatDate(timestamp) { + var date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000 + + var Y = date.getFullYear() + '-'; + + var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-'; + + var D = date.getDate() + ' '; + + var h = date.getHours() + ':'; + + var m = date.getMinutes() + ':'; + + var s = date.getSeconds(); + + return Y+M+D+h+m+s; + } + diff --git a/src/api/knowledge/types.ts b/src/api/knowledge/types.ts new file mode 100644 index 000000000..cd7175850 --- /dev/null +++ b/src/api/knowledge/types.ts @@ -0,0 +1,159 @@ +//用户查询 +export interface UserQuery { + userkey: string; + usertoken: string; +} + +//用户信息 +export interface UserDetail { + //证件号码 + idcardno?: string[]; + //姓名 + name: string; + //头像url + icon?: string; + //工号 + wmNumber: string; + //唯一识别码 + wmKey: string; + //adminorg + adminorg:string; + +} + +//导航栏查询 +export interface NaviQuery { + atParentId: string; + +} +//导航栏信息 +export interface Navi{ + + atId:string; + //档案分类名称 + atTitle:string; + //档案分类状态 + atStater:string; + //档案分类父级 + atParentId:string; + //写入时间 + atTime:string; + //添加人员 + atUid:string; + //排序 + atSort:string; + +} +export type cardList = PageResult +//卡片 +export interface Graphicform { + gId?:number|string; + //标题 + gTitle?:string; + //关键字 + gKey?:string; + //描述 + gDescribe?:string; + //父级 + gParent?:number|string; + //分类 + gParentSun?:number|string; + //文档来源(1:原创;2:转载) + gSource?:number|string; + //转载地址 + gSourceUrl?:string; + //缩略图 + gThumbnail?:string; + //排序 + gSort?:number|string; + //评论设置(1:允许评论;2:禁止评论) + gComment?:number|string; + //访问权限(1:公开;2:分厂;3:工段;4:自定义) + gVisitStrat?:number|string; + //状态(1:草稿;2:发表;3:下架;4:删除) + gState?:number|string; + //写入时间 + gAddTime?:number|string; + //修改时间 + gEiteTime?:number|string; + //编辑人员 + gUserKey?:number|string; + //分厂 + gBfId?:number|string; + //工段 + gWsId?:number|string; + //班组 + gTeam?:number|string; + //是否允许下载(1:允许;2:禁止) + gDownloadState?:number|string; + //阅读量 + gRead?:number|string; + //评论数 + gComSum?:number|string; + //收藏数 + gCollectionSum?:number|string; + //点赞数 + gLikes?:number|string; + //推荐(1:推荐,2:不推荐) + gRecommend?:number|string; + //图文详情 + gContent?:string; + //踩数量 + gStepOn?:number|string; + //自定义可见范围 + gRange?:string; + //写入分厂 + gWriteBfid?:number|string; + //正文文档名称 + gTextName?:string; + //正文文档URL + gTestUrl?:string; + //物理地址 + gPhysicsPath?:string; + //写入人员组织 + gWriteGroup?:number|string; + //外部链接 + gOuterLink?:string; + +} +export interface PageParam extends PageQuery{ + total:number; + archivesTypeAtParentId?:string; //知识库or新闻资讯 + gParentSun?:string; //标题分类 + adminorg:string; + key:string; + userkey: string, + usertoken: string, + +} + +/** + * 卡片list + */ +export type graphicformList = PageResultJava + +/** + * 分页响应对象 + */ +interface PageResultJava { + /** + * 数据列表 + */ + list: T; + /** + * 数据总数 + */ + total: number; + //每页条数 + pageSize:number; + //总页数 + pages:number; + //前一页 + prePage:number; + // + size:number; + startRow:number; + //当前页 + pageNum:number; + +} \ No newline at end of file diff --git a/src/assets/404_images/imgNotFound.png b/src/assets/404_images/imgNotFound.png new file mode 100644 index 000000000..dfd587ac9 Binary files /dev/null and b/src/assets/404_images/imgNotFound.png differ diff --git a/src/views/demo/IconSelector.vue b/src/views/demo/IconSelector.vue index 864985003..1332e35aa 100644 --- a/src/views/demo/IconSelector.vue +++ b/src/views/demo/IconSelector.vue @@ -1,6 +1,6 @@