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 @@
diff --git a/src/views/knowledge/knowledge/components/Navili.vue b/src/views/knowledge/knowledge/components/Navili.vue
new file mode 100644
index 000000000..4a2449614
--- /dev/null
+++ b/src/views/knowledge/knowledge/components/Navili.vue
@@ -0,0 +1,25 @@
+
+
+
+ {{ oneli?.atTitle }}
+
+
+
\ No newline at end of file
diff --git a/src/views/knowledge/knowledge/components/archivestype.vue b/src/views/knowledge/knowledge/components/archivestype.vue
new file mode 100644
index 000000000..b6ffb8ceb
--- /dev/null
+++ b/src/views/knowledge/knowledge/components/archivestype.vue
@@ -0,0 +1,310 @@
+
+
+
+
+
+
{{ props.liContent?.atTitle }}
+
+
+
暂无数据
+
+
+
+
+
+
+
+ {{ item.gTitle }}
+ {{ item.gDescribe }}
+
+ {{ formatDate(item.gAddTime) }}
+
+
+ 收藏({{ item.gCollectionSum }} ) 赞({{
+ item.gLikes }} ) 踩({{ item.gStepOn }} )
+ 阅读 ({{ item.gRead }} )
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/knowledge/knowledge/index.vue b/src/views/knowledge/knowledge/index.vue
new file mode 100644
index 000000000..1bb077190
--- /dev/null
+++ b/src/views/knowledge/knowledge/index.vue
@@ -0,0 +1,366 @@
+
+
+
+
+
+
+
+
+
+
+
推荐
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.gTitle }}
+ {{ item.gDescribe }}
+
+ {{ formatDate(item.gAddTime) }}
+
+
+ 收藏({{ item.gCollectionSum }} ) 赞({{
+ item.gLikes }} ) 踩({{ item.gStepOn }} )
+ 阅读 ({{ item.gRead }} )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/sysworkflow/flow/top.vue b/src/views/sysworkflow/flow/top.vue
new file mode 100644
index 000000000..b5bac2538
--- /dev/null
+++ b/src/views/sysworkflow/flow/top.vue
@@ -0,0 +1,36 @@
+
+
+ 全选
+
+
+ {{city}}
+
+
+
diff --git a/tsconfig.json b/tsconfig.json
index b2fbbcf90..b764c8613 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,5 +1,6 @@
{
"compilerOptions": {
+ "outDir": "build",
"target": "esnext",
"useDefineForClassFields": true,
"module": "esnext",
@@ -19,8 +20,9 @@
"skipLibCheck": true /* Skip type checking all .d.ts files. */,
"allowSyntheticDefaultImports": true /* 允许默认导入 */,
"forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */
+
},
- "include": ["src/**/*.ts", "src/**/*.vue", "src/types/**/*.d.ts"],
+ "include": ["src/**/*.ts", "src/**/*.js", "src/**/*.vue", "src/types/**/*.d.ts"],
"exclude": ["node_modules", "dist", "**/*.js"],
"references": [{ "path": "./tsconfig.node.json" }]
}