push
10
nervui-party-construction/.env
Normal file
@@ -0,0 +1,10 @@
|
||||
# port
|
||||
VITE_PORT = 3377
|
||||
#mode
|
||||
VITE_GLOB_APP_RUN_TYPE = saas
|
||||
|
||||
# spa-title
|
||||
VITE_GLOB_APP_TITLE = Party Construction
|
||||
|
||||
# spa shortname
|
||||
VITE_GLOB_APP_SHORT_NAME = party-construction
|
||||
22
nervui-party-construction/.env.development
Normal file
@@ -0,0 +1,22 @@
|
||||
# Whether to open mock
|
||||
VITE_USE_MOCK = true
|
||||
|
||||
# public path
|
||||
VITE_PUBLIC_PATH = /nervui-party-construction/
|
||||
|
||||
# Cross-domain proxy, you can configure multiple
|
||||
# Please note that no line breaks http://100.73.70.51
|
||||
|
||||
#VITE_PROXY = {"/community":{ "target":"http://100.73.70.51","changeOrigin": true,"prependPath":false},"/parking":{ "target":"http://100.73.70.246:8080","changeOrigin": true,"iprependPath":false}}
|
||||
# VITE_PROXY=[["/api","http://100.73.70.51"],["/parking","http://100.73.70.246:8080"]]
|
||||
# Delete console
|
||||
VITE_DROP_CONSOLE = false
|
||||
|
||||
# Basic interface address SPA
|
||||
VITE_GLOB_API_URL=/basic-api
|
||||
|
||||
# File upload address, optional
|
||||
VITE_GLOB_UPLOAD_URL=/upload
|
||||
|
||||
# Interface prefix
|
||||
VITE_GLOB_API_URL_PREFIX=
|
||||
35
nervui-party-construction/.env.production
Normal file
@@ -0,0 +1,35 @@
|
||||
# Whether to open mock
|
||||
VITE_USE_MOCK = true
|
||||
|
||||
# public path
|
||||
VITE_PUBLIC_PATH = /nervui-party-construction/
|
||||
|
||||
# Delete console
|
||||
VITE_DROP_CONSOLE = true
|
||||
|
||||
# Whether to enable gzip or brotli compression
|
||||
# Optional: gzip | brotli | none
|
||||
# If you need multiple forms, you can use `,` to separate
|
||||
VITE_BUILD_COMPRESS = 'none'
|
||||
|
||||
# Whether to delete origin files when using compress, default false
|
||||
VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false
|
||||
|
||||
# Basic interface address SPA
|
||||
VITE_GLOB_API_URL=/basic-api
|
||||
|
||||
# File upload address, optional
|
||||
# It can be forwarded by nginx or write the actual address directly
|
||||
VITE_GLOB_UPLOAD_URL=/upload
|
||||
|
||||
# Interface prefix
|
||||
VITE_GLOB_API_URL_PREFIX=
|
||||
|
||||
# Whether to enable image compression
|
||||
VITE_USE_IMAGEMIN= true
|
||||
|
||||
# use pwa
|
||||
VITE_USE_PWA = false
|
||||
|
||||
# Is it compatible with older browsers
|
||||
VITE_LEGACY = false
|
||||
1
nervui-party-construction/.version
Normal file
@@ -0,0 +1 @@
|
||||
1.0.12
|
||||
74
nervui-party-construction/build.sh
Executable file
@@ -0,0 +1,74 @@
|
||||
#!/bin/bash
|
||||
SOURCE="$0"
|
||||
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
|
||||
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
SOURCE="$(readlink "$SOURCE")"
|
||||
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
||||
done
|
||||
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
|
||||
if [ -z $WORKSPACE ];then
|
||||
echo "WORKSPACE not exists"
|
||||
else
|
||||
set DIR=$WORKSPACE
|
||||
fi
|
||||
|
||||
echo "current dir"
|
||||
echo "$DIR"
|
||||
|
||||
cd "$DIR"
|
||||
projectname=$(basename `pwd`)
|
||||
|
||||
npm run party-construction-build
|
||||
|
||||
if [ -d "$DIR/dist" ];then
|
||||
|
||||
cd "$DIR/dist"
|
||||
|
||||
# copy module.json
|
||||
cp ../module.json ./
|
||||
|
||||
# package
|
||||
VERSION=$(cat ../.version)
|
||||
lastdir=../release/
|
||||
if [ -d ${lastdir} ];then
|
||||
echo "删除旧release文件夹"
|
||||
rm -rf ${lastdir}
|
||||
else
|
||||
echo "文件夹不存在!"
|
||||
fi
|
||||
mkdir -p ${lastdir}
|
||||
|
||||
dir=../release/nerv/$projectname/$VERSION
|
||||
mkdir -p ${dir}
|
||||
tar -zcvf "${dir}/$projectname-$VERSION.tgz" ./*
|
||||
|
||||
templatedir=../release/resources/templates/nerv/$projectname/$VERSION/$projectname
|
||||
mkdir -p ${templatedir}
|
||||
cp -r ../resources/templates/* ${templatedir}
|
||||
|
||||
cd ../
|
||||
|
||||
releasefile=nerv-$projectname-$VERSION.tgz
|
||||
if [ -f ${releasefile} ];then
|
||||
echo "删除旧包!"
|
||||
rm -rf ${releasefile}
|
||||
fi
|
||||
|
||||
tar -zcvf ${releasefile} ./release/* release.yaml
|
||||
|
||||
mkdir -p ./release/nervui
|
||||
cp -r ./release/nerv/* ./release/nervui
|
||||
|
||||
if [ -f ${releasefile} ];then
|
||||
echo "编译成功!"
|
||||
mv ${releasefile} ./release
|
||||
else
|
||||
echo "编译失败!!!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
else
|
||||
echo "编译失败!!!"
|
||||
exit 1
|
||||
fi
|
||||
23
nervui-party-construction/index.html
Normal file
@@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" href="/favicon.ico" />
|
||||
<meta name="referrer" content="never" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<!-- <script src="https://s.url.cn/qqun/qun/qqweb/m/qun/confession/js/vconsole.min.js "></script> -->
|
||||
<title>党建知识答题平台</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script type="module" src="./src/main.ts"></script>
|
||||
<script>
|
||||
let bodyWidth = window.innerWidth;
|
||||
let scaleX = bodyWidth / 1920;
|
||||
document.body.style.zoom = scaleX;
|
||||
</script>
|
||||
</body>
|
||||
|
||||
|
||||
</html>
|
||||
BIN
nervui-party-construction/public/asset/file/carWashStore.xlsx
Normal file
BIN
nervui-party-construction/public/asset/file/defenceArea.xlsx
Normal file
BIN
nervui-party-construction/public/asset/file/ownerImport.xlsx
Normal file
BIN
nervui-party-construction/public/asset/file/ownerImport111.xlsx
Normal file
BIN
nervui-party-construction/public/asset/file/ownerImport替换.xlsx
Normal file
BIN
nervui-party-construction/public/asset/file/roadParkImport.xlsx
Normal file
BIN
nervui-party-construction/public/asset/file/testPaper.xlsx
Normal file
BIN
nervui-party-construction/public/asset/file/warrantyImport.xlsx
Normal file
BIN
nervui-party-construction/public/asset/file/whiteListUser.xlsx
Normal file
BIN
nervui-party-construction/public/asset/file/白名单车辆导入.xlsx
Normal file
BIN
nervui-party-construction/public/asset/file/访客车辆导入.xlsx
Normal file
BIN
nervui-party-construction/public/asset/font/FZDeSHJW_511M.TTF
Normal file
BIN
nervui-party-construction/public/asset/font/QuartzMS.TTF
Normal file
BIN
nervui-party-construction/public/asset/image/addHtml.jpg
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
nervui-party-construction/public/asset/image/buttonBg.png
Normal file
|
After Width: | Height: | Size: 85 KiB |
BIN
nervui-party-construction/public/asset/image/login/adminIcon.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 420 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
BIN
nervui-party-construction/public/asset/image/login/icon_name.png
Normal file
|
After Width: | Height: | Size: 769 B |
|
After Width: | Height: | Size: 806 B |
|
After Width: | Height: | Size: 126 KiB |
BIN
nervui-party-construction/public/asset/image/login/logo-paas.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
BIN
nervui-party-construction/public/asset/image/login/role.png
Normal file
|
After Width: | Height: | Size: 342 KiB |
BIN
nervui-party-construction/public/asset/image/map-back.png
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
nervui-party-construction/public/asset/image/mark-off.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
nervui-party-construction/public/asset/image/mark.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
nervui-party-construction/public/asset/image/noResource.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
nervui-party-construction/public/asset/image/off-line.png
Normal file
|
After Width: | Height: | Size: 904 B |
BIN
nervui-party-construction/public/asset/image/on-line.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
nervui-party-construction/public/asset/image/pointBg.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
nervui-party-construction/public/asset/image/testimg.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
nervui-party-construction/public/asset/image/uploadImg.jpg
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
nervui-party-construction/public/asset/image/welcomeBg.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
nervui-party-construction/public/asset/image/welcomeBg1.png
Normal file
|
After Width: | Height: | Size: 3.0 MiB |
BIN
nervui-party-construction/public/favicon.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
12
nervui-party-construction/release.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
# 上传release目录信息到nerv-file仓库
|
||||
release:
|
||||
- {src: release, dest: /upload/pkg, include: [".*(.tgz)$"]}
|
||||
- {src: release/resources/templates, dest: /upload/templates}
|
||||
register:
|
||||
name: nervui-party-construction
|
||||
version: 1.0.12
|
||||
components:
|
||||
- type: nervui-party-construction
|
||||
resources:
|
||||
- {type: template, relativePath: /nervui-party-construction/deploy.json}
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
echo "=====================================================create====================================================="
|
||||
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function create() {
|
||||
|
||||
if [ -d "$nervui_app_home" ];then
|
||||
echo "$nervui_app_home exists!"
|
||||
else
|
||||
echo "start mkdir $nervui_app_home"
|
||||
mkdir -p "$nervui_app_home"
|
||||
fi
|
||||
|
||||
pkg_file_name=${pkg_url##*/}
|
||||
pkg_file_path="$nervui_app_home$pkg_file_name"
|
||||
|
||||
|
||||
echo "start download $pkg_url"
|
||||
curl -L -o $pkg_file_path $pkg_url
|
||||
|
||||
|
||||
echo "start install $pkg_file_path"
|
||||
tar -xf $pkg_file_path -C $nervui_app_home
|
||||
|
||||
}
|
||||
|
||||
if [ "$pkg_url" == "" ]; then
|
||||
echo {\"error\":\"pkg_url is empty\"}
|
||||
exit 1
|
||||
elif [ "$nervui_app_home" == "" ]; then
|
||||
echo {\"error\":\"nervui_app_home is empty\"}
|
||||
exit 1
|
||||
else
|
||||
create
|
||||
fi
|
||||
@@ -0,0 +1 @@
|
||||
echo "=====================================================delete====================================================="
|
||||
@@ -0,0 +1 @@
|
||||
echo "=====================================================setup====================================================="
|
||||
@@ -0,0 +1 @@
|
||||
echo "=====================================================start====================================================="
|
||||
@@ -0,0 +1 @@
|
||||
echo "=====================================================stop====================================================="
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"name": "/nervui/nervui-party-construction",
|
||||
"operations": [
|
||||
{
|
||||
"name": "Create",
|
||||
"type": "shell",
|
||||
"implementor": "create.sh"
|
||||
},
|
||||
{
|
||||
"name": "Delete",
|
||||
"type": "shell",
|
||||
"implementor": "delete.sh"
|
||||
},
|
||||
{
|
||||
"name": "Setup",
|
||||
"type": "shell",
|
||||
"implementor": "setup.sh"
|
||||
},
|
||||
{
|
||||
"name": "Start",
|
||||
"type": "shell",
|
||||
"implementor": "start.sh"
|
||||
},
|
||||
{
|
||||
"name": "Stop",
|
||||
"type": "shell",
|
||||
"implementor": "stop.sh"
|
||||
}
|
||||
]
|
||||
}
|
||||
64
nervui-party-construction/resources/templates/deploy.json
Normal file
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"name": "/nervui/nervui-party-construction",
|
||||
"version": 1,
|
||||
"inputs": [
|
||||
{
|
||||
"name": "server_ip",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"description": "应用安装IP地址",
|
||||
"inputType": "ipSelectType"
|
||||
},
|
||||
{
|
||||
"name": "version",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"description": "软件版本",
|
||||
"inputType": "versionSelectType"
|
||||
},
|
||||
{
|
||||
"name": "install_dir",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"defaultValue": "/data",
|
||||
"inputType": "textInputType",
|
||||
"description": "安装目录"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"name": "nervui-party-construction",
|
||||
"type": "/nerv/nerv-orchestrator/cluster/Nervui",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "file_repository",
|
||||
"value": "${nerv_file_repository}"
|
||||
},
|
||||
{
|
||||
"name": "install_dir",
|
||||
"value": "${install_dir}"
|
||||
},
|
||||
{
|
||||
"name": "pkg_url",
|
||||
"value": "/api/pkg/nerv/nervui-party-construction/${version}/nervui-party-construction-${version}.tgz"
|
||||
}
|
||||
],
|
||||
"dependencies": [
|
||||
{
|
||||
"type": "contained",
|
||||
"target": "host"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "host",
|
||||
"type": "/nerv/nerv-orchestrator/compute/Host",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "address",
|
||||
"value": "${server_ip}"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
58
nervui-party-construction/src/App.vue
Normal file
@@ -0,0 +1,58 @@
|
||||
<template>
|
||||
<a-config-provider :locale="locale">
|
||||
<router-view />
|
||||
</a-config-provider>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent, watch, ref } from 'vue';
|
||||
import zhCN from 'ant-design-vue/es/locale/zh_CN';
|
||||
import { useRouter } from 'vue-router';
|
||||
import Cookies from 'js-cookie';
|
||||
import { message } from 'ant-design-vue';
|
||||
export default defineComponent({
|
||||
name: 'App',
|
||||
|
||||
setup() {
|
||||
const router = useRouter();
|
||||
// router.beforeEach((to, from) => {
|
||||
// if (Cookies.get('nervsid') === undefined && to.fullPath !== '/login') {
|
||||
// if (from.name !== undefined) {
|
||||
// message.warn('登陆信息已过期,请重新登录!', 1);
|
||||
// }
|
||||
// router.push('/login');
|
||||
// }
|
||||
// });
|
||||
|
||||
const cachedViews = ['Status'];
|
||||
|
||||
// watch(
|
||||
// () => router.currentRoute.value,
|
||||
// (e) => {
|
||||
// // if (Cookies.get('nervsid') === undefined && e.fullPath !== '/login') {
|
||||
// // message.warn('登陆信息已过期,请重新登录!', 1);
|
||||
// // router.push('/login');
|
||||
// // }
|
||||
// // } else {
|
||||
// // if (Cookies.get('nervsid') !== undefined && e === '/login') {
|
||||
// // let url = window.sessionStorage.getItem('url');
|
||||
// // url === null ? window.sessionStorage.setItem('url', '/doorway/visitor/audit') : '';
|
||||
// // router.push(url === null ? '/doorway' : url);
|
||||
// // }
|
||||
// // }
|
||||
// }
|
||||
// );
|
||||
return {
|
||||
cachedViews,
|
||||
locale: zhCN,
|
||||
};
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
<style>
|
||||
#app {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
6
nervui-party-construction/src/api/index.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
/***
|
||||
*配置接口 格式 module:Array<resource>
|
||||
*/
|
||||
export const apiModule = {
|
||||
parking: ['User', 'CurrentUser', 'Organizational'],
|
||||
};
|
||||
20
nervui-party-construction/src/api/user.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import { http } from '/nerv-lib/util/http';
|
||||
|
||||
enum Api {
|
||||
// USER_LOGIN = '/api/community/objs/Login', //用户登录
|
||||
// USER_INFO = '/api/community/community/objs/CurrentUser', //获取用户信息
|
||||
|
||||
USER_LOGIN = '/api/exam_op/objs/Login', //用户登录
|
||||
USER_INFO = '/api/exam_op/objs/CurrentUser', //获取用户信息
|
||||
USER_RESOURCE = '/api/community/objs/User/Resource', //获取用户资源
|
||||
}
|
||||
export const userLogin = (data: RoomListModel) => http.post(Api.USER_LOGIN, data);
|
||||
export const userInfo = () => http.get(Api.USER_INFO);
|
||||
export const userResource = () => http.get(Api.USER_RESOURCE);
|
||||
/**
|
||||
* @description 用户登录
|
||||
* @property `[fatherRegionUuid]` 父级区域唯一标识
|
||||
*/
|
||||
interface RoomListModel {
|
||||
data: string;
|
||||
}
|
||||
99
nervui-party-construction/src/config/app.config.ts
Normal file
@@ -0,0 +1,99 @@
|
||||
/** @format */
|
||||
import Cookies from 'js-cookie';
|
||||
import { NsMessage } from '/nerv-lib/component/message';
|
||||
import { dateUtil } from '/nerv-lib/util/date-util';
|
||||
import user from '/@/menus/user.json';
|
||||
|
||||
export const appConfig = {
|
||||
projectType: 'web',
|
||||
baseApi: '/api',
|
||||
enablePermissions: true,
|
||||
siderPosition: 'left',
|
||||
customLogin: () => import('/@/view/login/login.vue'),
|
||||
customUpdatePwd: () => import('/@/view/updatePassword/updatePassword.vue'),
|
||||
baseHeader: '/operationsManage',
|
||||
baseRouter: '/operationsManage/operationsManage/index',
|
||||
timeout: 30 * 1000,
|
||||
userLoginApi: '/api/exam_op/objs/Login',
|
||||
userInfoApi: '/api/exam_op/objs/CurrentUser',
|
||||
userResourceApi: '/api/exam_op/objs/User/Resource',
|
||||
// 修改密码配置
|
||||
updatePassWordInfo: {
|
||||
title: '修改密码',
|
||||
subtitle: '党建知识答题平台',
|
||||
api: '/api/exam_op/objs/User/changePassword',
|
||||
},
|
||||
useHistoryTag: false,
|
||||
// headerBellInfo: {
|
||||
// isShow: true,
|
||||
// api: '',
|
||||
// toRouterName: 'NoticeManageIndex',
|
||||
// },
|
||||
resourceInfo: {
|
||||
application: {
|
||||
version: '1.0.0',
|
||||
label: '党建知识答题平台',
|
||||
dataScope: {
|
||||
scopeMode: 0,
|
||||
scopeType: '',
|
||||
dataTips: '',
|
||||
},
|
||||
},
|
||||
api: '/api/exam_op/qa/Operation/Resources/Op/init',
|
||||
token: `${dateUtil().format('YYYYMMDD')}pensionwebui`,
|
||||
},
|
||||
userCustomRouterGuard: async (to, from, next, whiteNameList, authorizationStore, appConfig) => {
|
||||
next();
|
||||
whiteNameList.push('register');
|
||||
if (
|
||||
!Cookies.get('nervsid') &&
|
||||
to.fullPath !== '/login' &&
|
||||
to.name &&
|
||||
!whiteNameList.includes(to.name as string)
|
||||
) {
|
||||
NsMessage.error('登陆信息已过期,请重新登录!', 1);
|
||||
next({ name: 'login' });
|
||||
} else {
|
||||
// 存储用户信息
|
||||
|
||||
if (to.fullPath !== '/login') {
|
||||
const initUserInfo = window.sessionStorage['userInfo'];
|
||||
if (Cookies.get('nervsid')) {
|
||||
try {
|
||||
const info = await appConfig.userInfo();
|
||||
info.success
|
||||
? window.sessionStorage.setItem('userInfo', JSON.stringify(info.data))
|
||||
: '';
|
||||
} catch (err) {
|
||||
Cookies.remove('nervsid');
|
||||
}
|
||||
} else {
|
||||
if (initUserInfo) {
|
||||
const userInfo = JSON.parse(initUserInfo);
|
||||
authorizationStore.setEnterpriseName(
|
||||
!userInfo.organizationalName ? '' : userInfo.organizationalName,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (to.name && !whiteNameList.includes(to.name as string)) {
|
||||
if (appConfig.enablePermissions !== undefined && appConfig.enablePermissions) {
|
||||
const res = await appConfig.userResource();
|
||||
if (Array.isArray(user)) {
|
||||
if (!res.data) res.data = [];
|
||||
res.data = [...res.data, ...user];
|
||||
authorizationStore.updateUserResource(res.data);
|
||||
} else {
|
||||
res.data.push(user);
|
||||
authorizationStore.updateUserResource(res.data);
|
||||
}
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
2
nervui-party-construction/src/config/index.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
import { appConfig } from '/@/config/app.config';
|
||||
export { appConfig };
|
||||
22
nervui-party-construction/src/enum/http-enum.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
export enum ResultEnum {
|
||||
SUCCESS = 0,
|
||||
ERROR = 1,
|
||||
TIMEOUT = 401,
|
||||
TOKEN_INVALID = 403,
|
||||
}
|
||||
|
||||
export enum RequestEnum {
|
||||
GET = 'GET',
|
||||
POST = 'POST',
|
||||
PUT = 'PUT',
|
||||
DELETE = 'DELETE',
|
||||
}
|
||||
|
||||
export enum ContentTypeEnum {
|
||||
// json
|
||||
JSON = 'application/json;charset=UTF-8',
|
||||
// form-data qs
|
||||
FORM_URLENCODED = 'application/x-www-form-urlencoded;charset=UTF-8',
|
||||
// form-data upload
|
||||
FORM_DATA = 'multipart/form-data;charset=UTF-8',
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
<svg width="20" height="22" viewBox="0 0 20 22" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1.75 5.05097H2.7V18.251C2.7 19.7973 3.95364 21.051 5.5 21.051H14.5C16.0464 21.051 17.3 19.7973 17.3 18.251V7.25097C17.3 7.0388 17.2157 6.83532 17.0657 6.68529C16.9157 6.53526 16.7122 6.45097 16.5 6.45097C16.2878 6.45097 16.0843 6.53526 15.9343 6.68529C15.7843 6.83532 15.7 7.0388 15.7 7.25097V18.251C15.7 18.4086 15.669 18.5646 15.6087 18.7102C15.5483 18.8558 15.46 18.9881 15.3485 19.0995C15.2371 19.2109 15.1048 19.2993 14.9592 19.3596C14.8136 19.4199 14.6576 19.451 14.5 19.451H5.5C5.34241 19.451 5.18637 19.4199 5.04078 19.3596C4.89519 19.2993 4.7629 19.2109 4.65147 19.0995C4.54004 18.9881 4.45165 18.8558 4.39134 18.7102C4.33104 18.5646 4.3 18.4086 4.3 18.251V5.05097H18.25C18.4622 5.05097 18.6657 4.96669 18.8157 4.81666C18.9657 4.66663 19.05 4.46315 19.05 4.25097C19.05 4.0388 18.9657 3.83532 18.8157 3.68529C18.6657 3.53526 18.4622 3.45097 18.25 3.45097H1.75C1.53783 3.45097 1.33434 3.53526 1.18431 3.68529C1.03429 3.83532 0.95 4.0388 0.95 4.25097C0.95 4.46315 1.03429 4.66663 1.18431 4.81666C1.33434 4.96669 1.53783 5.05097 1.75 5.05097ZM7.43431 2.31666C7.58434 2.46669 7.78783 2.55098 8 2.55098H12C12.2122 2.55098 12.4157 2.46669 12.5657 2.31666C12.7157 2.16663 12.8 1.96315 12.8 1.75098C12.8 1.5388 12.7157 1.33532 12.5657 1.18529C12.4157 1.03526 12.2122 0.950977 12 0.950977H8C7.78783 0.950977 7.58434 1.03526 7.43431 1.18529C7.28429 1.33532 7.2 1.5388 7.2 1.75098C7.2 1.96315 7.28429 2.16663 7.43431 2.31666ZM7.43431 8.68529C7.28429 8.83531 7.2 9.0388 7.2 9.25097V15.251C7.2 15.4631 7.28429 15.6666 7.43431 15.8167C7.58434 15.9667 7.78783 16.051 8 16.051C8.21217 16.051 8.41566 15.9667 8.56569 15.8167C8.71571 15.6666 8.8 15.4631 8.8 15.251V9.25097C8.8 9.0388 8.71571 8.83531 8.56569 8.68529C8.41566 8.53526 8.21217 8.45097 8 8.45097C7.78783 8.45097 7.58434 8.53526 7.43431 8.68529ZM11.4343 8.68529C11.2843 8.83531 11.2 9.0388 11.2 9.25097V15.251C11.2 15.4631 11.2843 15.6666 11.4343 15.8167C11.5843 15.9667 11.7878 16.051 12 16.051C12.2122 16.051 12.4157 15.9667 12.5657 15.8167C12.7157 15.6666 12.8 15.4631 12.8 15.251V9.25097C12.8 9.0388 12.7157 8.83531 12.5657 8.68529C12.4157 8.53526 12.2122 8.45097 12 8.45097C11.7878 8.45097 11.5843 8.53526 11.4343 8.68529Z" fill="white" stroke="white" stroke-width="0.1"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1.875 14.0289H3.11243L11.2619 5.87944L10.0245 4.64199L1.875 12.7915V14.0289ZM15.875 15.7789H0.125V12.0667L11.8806 0.310973C12.2224 -0.0307409 12.7764 -0.0307409 13.118 0.310973L15.593 2.78584C15.9347 3.12755 15.9347 3.68157 15.593 4.02328L5.58731 14.0289H15.875V15.7789ZM11.2619 3.40456L12.4993 4.64199L13.7368 3.40456L12.4993 2.16713L11.2619 3.40456Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 481 B |
@@ -0,0 +1,3 @@
|
||||
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M16.699 1.30809L16.627 1.23609C15.8305 0.444379 14.7531 0 13.63 0C12.507 0 11.4295 0.444379 10.633 1.23609L6.81211 5.05536C6.02029 5.85216 5.57587 6.92986 5.57587 8.05318C5.57587 9.1765 6.02029 10.2542 6.81211 11.051L6.88247 11.1214C7.01993 11.2572 7.1672 11.3815 7.31611 11.4977L8.71356 10.0986C8.54992 10.0037 8.39611 9.88591 8.25702 9.74682L8.18665 9.67809C7.75647 9.24706 7.51487 8.66297 7.51487 8.054C7.51487 7.44503 7.75647 6.86094 8.18665 6.42991L12.0092 2.609C12.4397 2.17902 13.0232 1.93751 13.6317 1.93751C14.2401 1.93751 14.8236 2.17902 15.2541 2.609L15.3245 2.67936C15.7545 3.11012 15.9961 3.69394 15.9961 4.30264C15.9961 4.91134 15.7545 5.49516 15.3245 5.92591L13.5981 7.65718C13.8976 8.40009 14.0399 9.18882 14.0252 9.97591L16.699 7.30373C17.4911 6.50742 17.9358 5.42991 17.9358 4.30673C17.9358 3.18354 17.4911 2.10604 16.699 1.30973V1.30809ZM11.0536 6.81282C10.9173 6.67755 10.7718 6.5518 10.6183 6.43645L9.22083 7.83391C9.38447 7.93209 9.53992 8.04664 9.67902 8.18736L9.75101 8.25773C10.1811 8.68848 10.4227 9.2723 10.4227 9.881C10.4227 10.4897 10.1811 11.0735 9.75101 11.5043L5.93011 15.3252C5.49886 15.755 4.91485 15.9963 4.30602 15.9963C3.69718 15.9963 3.11317 15.755 2.68193 15.3252L2.61156 15.2532C2.18148 14.8224 1.93993 14.2386 1.93993 13.6299C1.93993 13.0212 2.18148 12.4374 2.61156 12.0066L4.33956 10.2803C4.04271 9.54391 3.89691 8.75538 3.91084 7.96155L1.23702 10.6305C0.444705 11.4273 -3.05176e-05 12.5054 -3.05176e-05 13.6291C-3.05176e-05 14.7528 0.444705 15.8309 1.23702 16.6277L1.30738 16.6997C2.10439 17.4911 3.18201 17.9353 4.3052 17.9353C5.42839 17.9353 6.50601 17.4911 7.30302 16.6997L11.1239 12.8772C11.9153 12.0802 12.3595 11.0026 12.3595 9.87936C12.3595 8.75617 11.9153 7.67855 11.1239 6.88155L11.0536 6.81118V6.81282Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg width="23" height="15" viewBox="0 0 23 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11.5001 0.791992C14.078 0.791992 16.5639 1.96116 18.8888 3.88741C19.6852 4.54866 20.4068 5.25399 21.0431 5.96124L21.3105 6.26407L21.6306 6.64549L21.851 6.92724C21.9745 7.09278 22.0412 7.29379 22.0412 7.50033C22.0412 7.70686 21.9745 7.90787 21.851 8.07341L21.6306 8.35516L21.3105 8.73657L21.0422 9.03941C20.3753 9.78203 19.6553 10.4751 18.8878 11.1132C16.5639 13.0395 14.078 14.2087 11.5001 14.2087C8.92214 14.2087 6.43622 13.0395 4.1113 11.1132C3.34383 10.4751 2.62382 9.78203 1.95697 9.03941L1.6896 8.73657L1.36951 8.35516L1.1491 8.07341C1.02559 7.90787 0.958862 7.70686 0.958862 7.50033C0.958862 7.29379 1.02559 7.09278 1.1491 6.92724L1.36951 6.64549L1.6896 6.26407L1.95793 5.96124C2.62447 5.21865 3.34416 4.52554 4.1113 3.88741C6.43622 1.96116 8.92214 0.791992 11.5001 0.791992ZM11.5001 2.70866C9.44634 2.70866 7.34664 3.69574 5.33509 5.36324C4.63977 5.94126 3.98734 6.56902 3.38297 7.24158L3.15393 7.50033L3.38201 7.75812C3.98665 8.43103 4.6394 9.05912 5.33509 9.63741C7.34759 11.3049 9.44634 12.292 11.5001 12.292C13.5538 12.292 15.6535 11.3049 17.665 9.63741C18.3607 9.05912 19.0135 8.43103 19.6181 7.75812L19.8452 7.49937L19.6181 7.24253C19.0135 6.56962 18.3607 5.94153 17.665 5.36324C15.6525 3.69574 13.5538 2.70866 11.5001 2.70866ZM11.5001 4.14616C12.3896 4.14616 13.2428 4.49954 13.8718 5.12857C14.5008 5.7576 14.8542 6.61074 14.8542 7.50033C14.8542 8.38991 14.5008 9.24305 13.8718 9.87208C13.2428 10.5011 12.3896 10.8545 11.5001 10.8545C10.6105 10.8545 9.75733 10.5011 9.1283 9.87208C8.49927 9.24305 8.14589 8.38991 8.14589 7.50033C8.14589 6.61074 8.49927 5.7576 9.1283 5.12857C9.75733 4.49954 10.6105 4.14616 11.5001 4.14616ZM11.5001 6.06283C11.1188 6.06283 10.7532 6.21428 10.4836 6.48386C10.214 6.75344 10.0626 7.11908 10.0626 7.50033C10.0626 7.88157 10.214 8.24721 10.4836 8.51679C10.7532 8.78637 11.1188 8.93783 11.5001 8.93783C11.8813 8.93783 12.2469 8.78637 12.5165 8.51679C12.7861 8.24721 12.9376 7.88157 12.9376 7.50033C12.9376 7.11908 12.7861 6.75344 12.5165 6.48386C12.2469 6.21428 11.8813 6.06283 11.5001 6.06283Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
3
nervui-party-construction/src/icon/chart.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="15" height="14" viewBox="0 0 15 14" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1.47344 11.7922V0.6875H0V13.2797H14.0031V11.7937H1.47344V11.7922ZM5.71719 8.50469L10.5188 8.78125L13.2031 2.6375L11.8547 2.03906L9.58125 7.23906L5.00313 6.975L2.35313 10.6094L3.54063 11.4891L5.71719 8.50469Z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 352 B |
3
nervui-party-construction/src/icon/decline.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="12" height="7" viewBox="0 0 12 7" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11.544 6.03906H8.97597C8.72397 6.03906 8.51996 5.83506 8.51996 5.58306C8.51996 5.33106 8.72397 5.12706 8.97597 5.12706H10.41L7.84197 2.55906L5.05196 5.36706C4.94996 5.46906 4.81196 5.51706 4.67396 5.51106C4.54196 5.51706 4.40996 5.46906 4.30796 5.36706L0.167964 1.22706C-0.0240361 1.03506 -0.0240361 0.717063 0.167964 0.525064C0.359964 0.333064 0.677964 0.333064 0.869964 0.525064L4.67996 4.32906L7.49996 1.50906C7.69196 1.31706 8.00996 1.31706 8.20196 1.50906C8.21996 1.52706 8.23796 1.54506 8.24996 1.56906L11.088 4.40706V3.02106C11.088 2.76906 11.292 2.56506 11.544 2.56506C11.796 2.56506 12 2.76906 12 3.02106V5.58306C12 5.83506 11.796 6.03906 11.544 6.03906Z" fill="#27AE60"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 793 B |
3
nervui-party-construction/src/icon/headerLogin.svg
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
468
nervui-party-construction/src/icon/login.svg
Normal file
@@ -0,0 +1,468 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="471px" height="128px" viewBox="0 0 471 128" enable-background="new 0 0 471 128" xml:space="preserve"> <image id="image0" width="471" height="128" x="0" y="0"
|
||||
href="data:image/png;base64,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
|
||||
rkJggg==" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 35 KiB |
20
nervui-party-construction/src/icon/passWord.svg
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="27px" height="27px" viewBox="0 0 27 27" enable-background="new 0 0 27 27" xml:space="preserve"> <image id="image0" width="27" height="27" x="0" y="0"
|
||||
href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
|
||||
AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABFFBMVEUAAAAAv78AyLYAya4A
|
||||
yLEAv6oAzLMAw7QAxqoA//8AxLEAyLYAxa8Ax68A/6oAv58AwbAAw60Ay7QAyrUA//8Au6oAv60A
|
||||
xsYHxrEGzbQAxqoFxq8Bx7EBx7EBx7IBx7IDxrEAxa0A/4AFzLMBx7EBx7ECybICx7MByLEDx7EA
|
||||
0bkCybEBxrEEyLEGzrYBx7ABx7IHya4AxLEAxa4ByLECxrEDxrIEyrEDyrEByLIBx7ECyLACx7AB
|
||||
yLECyLIA27YFx7AByLIDyLQByLECyLMCyLIByLEByLIAyKQDx7ABx7EDx7EByLIBxrADyLADxrAB
|
||||
x7ICxrEGx64DxrAByLIBx7IBx7ICybEFyLIFw64Bx7H///9/bN2AAAAAWnRSTlMABA4TFxgUEQkB
|
||||
DRwjIAMIHSIiGAIPHAkkKRI2tvP70FUfAjLo8puN2l8LpPdFKtLfJhoW5aZmSFvtsYGR7pgHN/5i
|
||||
/ZBw3roOZLNbvblhXuF9KVrrzLJsOC/GUEoAAAAAAWJLR0RbdLyVNAAAAAd0SU1FB+YIEQs0EQnT
|
||||
FeAAAAEMSURBVCjPfZLpVgIxDIUjIssQVHBUUBhFUQQUBQWVRUDFfQHFhXn/B7HlJJ0inN4fbXO/
|
||||
k542CQBrzjfvXwgEQ2H4p7AVQVI0sDiBlpZRUyyo5VpxnNSKzWgVp7RGmes4Q/4xsqPKSCQ9aEm2
|
||||
wdFmKu1sbXOUEbfuxCjYze7t5w6cPEMfQIHPxcMjxNLxSZniCsAps7OqXGvuORs2cD0uLusNoWbr
|
||||
qkROG+iVna7LyhErAB2uhXlz27sT2z1ZD5z3KMwnxGexvai8iMdeEd801uZ3Sua+Y19jNv9vzAYf
|
||||
jscqqi6fkg2/5Pqt6kL1TGb5C90fVU/uQ/mXNNL6YOqfse/GeTHOmXE+Z8/1H7m9PuesaZKhAAAA
|
||||
JXRFWHRkYXRlOmNyZWF0ZQAyMDIyLTA4LTE3VDA5OjUyOjE3KzAyOjAwAAEBzQAAACV0RVh0ZGF0
|
||||
ZTptb2RpZnkAMjAyMi0wOC0xN1QwOTo1MjoxNyswMjowMHFcuXEAAAAASUVORK5CYII=" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
3
nervui-party-construction/src/icon/person.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="200" height="200" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M99.988 102.053C124.324 102.053 144.128 82.3216 144.128 58.0383C144.128 33.7572 124.326 14 99.988 14C75.6524 14 55.8475 33.7309 55.8475 58.0143C55.8475 82.2954 75.6501 102.053 99.988 102.053ZM99.988 28.7785C116.167 28.7785 129.323 41.907 129.323 58.0143C129.323 74.1216 116.167 87.2501 99.988 87.2501C83.8086 87.2501 70.653 74.1216 70.653 58.0143C70.653 41.907 83.8086 28.7785 99.988 28.7785ZM139.3 104.831H60.7C38.2651 104.831 20 123.027 20 145.416C20 167.804 38.2651 186 60.7 186H139.3C161.735 186 180 167.804 180 145.416C180 123.026 161.71 104.831 139.3 104.831ZM83.2598 119.634H116.716L99.988 136.31L83.2598 119.634ZM139.3 171.198H60.7C46.4213 171.198 34.8296 159.628 34.8296 145.416C34.8296 131.203 46.4213 119.634 60.7 119.634H62.299L94.7663 152.001C96.215 153.446 98.1163 154.172 100.012 154.172C101.908 154.172 103.809 153.446 105.258 152.001L137.725 119.634H139.324C153.603 119.634 165.194 131.203 165.194 145.416C165.194 159.623 153.56 171.198 139.3 171.198Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
4
nervui-party-construction/src/icon/point.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="200" height="200" viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M100 12.5391C51.7773 12.5391 12.5391 51.7773 12.5391 100C12.5391 148.223 51.7773 187.461 100 187.461C148.223 187.461 187.461 148.223 187.461 100C187.461 51.7773 148.223 12.5391 100 12.5391ZM100 172.832C59.8437 172.832 27.168 140.156 27.168 100C27.168 59.8437 59.8437 27.168 100 27.168C140.156 27.168 172.832 59.8437 172.832 100C172.832 140.156 140.156 172.832 100 172.832Z" fill="black"/>
|
||||
<path d="M143.34 83.2617L117.93 79.5703L106.562 56.543C105.332 54.043 102.793 52.4609 100 52.4609C97.207 52.4609 94.6679 54.043 93.4375 56.543L82.0703 79.5703L56.6601 83.2617C53.9062 83.6523 51.621 85.5859 50.7617 88.2422C49.9023 90.8984 50.625 93.7891 52.6171 95.7422L71.0156 113.672L66.6796 138.984C66.2109 141.719 67.3437 144.492 69.5898 146.133C71.8554 147.773 74.8242 147.988 77.2851 146.68L100 134.746L122.734 146.699C123.809 147.266 124.98 147.539 126.133 147.539C127.656 147.539 129.16 147.07 130.43 146.152C132.676 144.512 133.809 141.738 133.34 139.004L129.004 113.672L147.402 95.7422C149.394 93.8086 150.117 90.8984 149.258 88.2422C148.398 85.6055 146.094 83.6719 143.34 83.2617ZM116.035 105.879C114.316 107.559 113.535 109.98 113.926 112.344L116.406 126.836L103.379 120C102.324 119.434 101.152 119.16 99.9804 119.16C98.8085 119.16 97.6367 119.434 96.582 120L83.5546 126.836L86.0351 112.344C86.4453 109.98 85.6445 107.559 83.9257 105.879L73.3789 95.6055L87.9296 93.4961C90.3125 93.1445 92.3632 91.6602 93.4375 89.4922L99.9414 76.3086L106.445 89.4922C107.5 91.6602 109.57 93.1445 111.953 93.4961L126.504 95.6055L116.035 105.879Z" fill="black"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
5
nervui-party-construction/src/icon/questionMark.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M8.01498 15.0148C4.16196 15.0233 1.01518 11.8936 1.00752 8.0453C0.999847 4.19163 4.12841 1.04646 7.97776 1.0381C11.8147 1.02977 14.9755 4.15661 14.985 7.97007C14.9947 11.8589 11.8807 15.0062 8.01498 15.0148ZM2.18562 8.07934C2.19246 11.304 4.78774 13.8927 8.01354 13.8924C11.2266 13.8921 13.8444 11.2804 13.8475 8.07183C13.8506 4.84877 11.22 2.2299 7.987 2.23763C4.77031 2.24528 2.17879 4.85486 2.18562 8.07934Z" fill="black" fill-opacity="0.4"/>
|
||||
<path d="M8.33914 9.53222C7.89456 9.53222 7.51787 9.53222 7.11054 9.53222C6.98279 8.75294 7.15506 8.08389 7.74295 7.5369C7.9558 7.33886 8.17259 7.14072 8.3558 6.91662C8.48067 6.76386 8.57688 6.57477 8.63924 6.38647C8.77059 5.98985 8.58673 5.5435 8.25097 5.37165C7.90122 5.19264 7.45954 5.28405 7.18848 5.61523C7.07849 5.7496 6.99865 5.91328 6.92776 6.07365C6.86204 6.22232 6.82653 6.38434 6.76331 6.58652C6.29538 6.47295 5.83533 6.3613 5.3526 6.24413C5.51211 5.33145 5.83926 4.54483 6.72302 4.17165C7.66841 3.77243 8.6385 3.76004 9.5235 4.33939C10.3371 4.87204 10.565 6.1698 10.0103 7.03053C9.8019 7.35397 9.5152 7.64152 9.21776 7.8898C8.7066 8.31647 8.22163 8.73583 8.33914 9.53222Z" fill="black" fill-opacity="0.4"/>
|
||||
<path d="M8.48498 11.8147C7.96316 11.8147 7.47571 11.8147 6.96222 11.8147C6.96222 11.29 6.96222 10.7819 6.96222 10.2505C7.47223 10.2505 7.96775 10.2505 8.48498 10.2505C8.48498 10.7734 8.48498 11.2718 8.48498 11.8147Z" fill="black" fill-opacity="0.4"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
4
nervui-party-construction/src/icon/questringAnswer.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="200" height="200" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M178.125 34.3752H142.477C135.972 34.3576 129.529 35.6301 123.52 38.119C117.511 40.6079 112.056 44.2638 107.469 48.8752C104.601 51.7387 102.092 54.9414 100 58.4123C97.9075 54.9414 95.3994 51.7387 92.5313 48.8752C87.9444 44.2638 82.4886 40.6079 76.4796 38.119C70.4705 35.6301 64.0275 34.3576 57.5234 34.3752H21.875C20.0102 34.3752 18.2218 35.116 16.9032 36.4346C15.5845 37.7532 14.8438 39.5416 14.8438 41.4064V158.594C14.8438 159.709 15.1088 160.807 15.6171 161.8C16.1253 162.792 16.8621 163.649 17.7668 164.3C18.6715 164.951 19.718 165.378 20.8201 165.545C21.9222 165.713 23.0483 165.616 24.1055 165.262C45.6187 158.039 68.793 157.373 90.6855 163.348L98.1543 165.379C98.4437 165.457 98.738 165.517 99.0352 165.557C99.0645 165.557 99.0937 165.557 99.125 165.569C99.2363 165.582 99.3496 165.594 99.4629 165.604H99.5742C99.7109 165.604 99.8496 165.617 99.9883 165.617H100.012C100.15 165.617 100.289 165.617 100.426 165.604H100.537C100.65 165.604 100.764 165.582 100.875 165.569C100.906 165.569 100.936 165.569 100.965 165.557C101.262 165.517 101.556 165.457 101.846 165.379L109.314 163.348C131.207 157.374 154.381 158.04 175.895 165.262C176.952 165.616 178.078 165.713 179.18 165.545C180.282 165.378 181.329 164.951 182.233 164.3C183.138 163.649 183.875 162.792 184.383 161.8C184.891 160.807 185.156 159.709 185.156 158.594V41.4064C185.156 39.5416 184.415 37.7532 183.097 36.4346C181.778 35.116 179.99 34.3752 178.125 34.3752ZM171.094 149.203C150.065 143.861 128.025 143.933 107.031 149.414V109.647C107.031 107.782 106.29 105.993 104.972 104.675C103.653 103.356 101.865 102.615 100 102.615C98.1352 102.615 96.3468 103.356 95.0282 104.675C93.7095 105.993 92.9688 107.782 92.9688 109.647V149.414C71.9751 143.933 49.9345 143.862 28.9062 149.209V48.4377H57.5234C77.0684 48.4377 92.9688 64.3381 92.9688 83.883C92.9688 85.7478 93.7095 87.5362 95.0282 88.8548C96.3468 90.1735 98.1352 90.9142 100 90.9142C101.865 90.9142 103.653 90.1735 104.972 88.8548C106.29 87.5362 107.031 85.7478 107.031 83.883C107.031 64.3381 122.932 48.4377 142.477 48.4377H171.094V149.203Z" />
|
||||
<path d="M65.3789 81.8359H48.4121C46.5473 81.8359 44.7589 82.5767 43.4403 83.8953C42.1217 85.214 41.3809 87.0024 41.3809 88.8672C41.3809 90.732 42.1217 92.5204 43.4403 93.839C44.7589 95.1576 46.5473 95.8984 48.4121 95.8984H65.3789C67.2437 95.8984 69.0321 95.1576 70.3507 93.839C71.6694 92.5204 72.4102 90.732 72.4102 88.8672C72.4102 87.0024 71.6694 85.214 70.3507 83.8953C69.0321 82.5767 67.2437 81.8359 65.3789 81.8359ZM127.59 88.8672C127.59 90.732 128.331 92.5204 129.649 93.839C130.968 95.1576 132.756 95.8984 134.621 95.8984H151.588C153.453 95.8984 155.241 95.1576 156.56 93.839C157.878 92.5204 158.619 90.732 158.619 88.8672C158.619 87.0024 157.878 85.214 156.56 83.8953C155.241 82.5767 153.453 81.8359 151.588 81.8359H134.621C132.756 81.8359 130.968 82.5767 129.649 83.8953C128.331 85.214 127.59 87.0024 127.59 88.8672Z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
3
nervui-party-construction/src/icon/rise.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="14" height="8" viewBox="0 0 14 8" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.4678 0.625H10.4718C10.1778 0.625 9.93983 0.863 9.93983 1.157C9.93983 1.451 10.1778 1.689 10.4718 1.689H12.1448L9.14883 4.685L5.89383 1.409C5.77483 1.29 5.61383 1.234 5.45283 1.241C5.29883 1.234 5.14483 1.29 5.02583 1.409L0.195832 6.239C-0.028168 6.463 -0.028168 6.834 0.195832 7.058C0.419832 7.282 0.790832 7.282 1.01483 7.058L5.45983 2.62L8.74983 5.91C8.97383 6.134 9.34483 6.134 9.56883 5.91C9.58983 5.889 9.61083 5.868 9.62483 5.84L12.9358 2.529V4.146C12.9358 4.44 13.1738 4.678 13.4678 4.678C13.7618 4.678 13.9998 4.44 13.9998 4.146V1.157C13.9998 0.863 13.7618 0.625 13.4678 0.625Z" fill="#EB5757"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 718 B |
3
nervui-party-construction/src/icon/studengManger.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="200" height="200" viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M161.04 77.2214C158.082 85.9438 152.419 93.4967 144.875 98.7834C155.342 103.561 164.216 111.243 170.442 120.915C176.669 130.587 179.986 141.843 180 153.344V166.672C179.994 170.205 178.588 173.592 176.089 176.09C173.589 178.589 170.201 179.994 166.667 180H73.3333C69.7988 179.994 66.4106 178.589 63.9113 176.09C61.412 173.592 60.0055 170.205 60 166.672V153.344C60.0136 141.843 63.3309 130.587 69.5575 120.915C75.7842 111.243 84.6583 103.561 95.125 98.7834C87.5806 93.4967 81.9184 85.9438 78.9605 77.2214C76.0025 68.4991 75.9029 59.0614 78.6759 50.2786C81.449 41.4958 86.9505 33.8252 94.3815 28.3803C101.813 22.9355 110.786 20 120 20C129.214 20 138.187 22.9355 145.618 28.3803C153.05 33.8252 158.551 41.4958 161.324 50.2786C164.097 59.0614 163.997 68.4991 161.04 77.2214ZM95.0559 46.7211C91.7595 51.6526 90 57.4504 90 63.3814C90.011 71.3312 93.1753 78.9523 98.799 84.5737C104.423 90.195 112.047 93.358 120 93.369C125.933 93.369 131.734 91.6103 136.667 88.3152C141.601 85.0201 145.446 80.3367 147.716 74.8571C149.987 69.3776 150.581 63.3481 149.424 57.5311C148.266 51.714 145.409 46.3707 141.213 42.1769C137.018 37.983 131.672 35.127 125.853 33.9699C120.033 32.8128 114.001 33.4067 108.52 35.6764C103.038 37.9461 98.3524 41.7897 95.0559 46.7211ZM73.3333 166.672H166.667V153.344C166.667 140.973 161.75 129.108 152.998 120.36C144.247 111.611 132.377 106.697 120 106.697C107.623 106.697 95.7534 111.611 87.0017 120.36C78.25 129.108 73.3333 140.973 73.3333 153.344V166.672ZM37.2447 162.762C39.744 165.261 43.1321 166.667 46.6667 166.672C48.4348 166.672 50.1305 167.374 51.3807 168.624C52.631 169.874 53.3333 171.569 53.3333 173.336C53.3333 175.103 52.631 176.798 51.3807 178.048C50.1305 179.298 48.4348 180 46.6667 180C39.5959 179.994 32.8164 177.184 27.8166 172.187C22.8168 167.189 20.0055 160.412 20 153.344V60.0494C20.0055 52.9816 22.8168 46.2048 27.8166 41.2071C32.8164 36.2094 39.5959 33.3992 46.6667 33.3937H66.6667C68.4348 33.3937 70.1305 34.0958 71.3807 35.3455C72.631 36.5953 73.3333 38.2903 73.3333 40.0576C73.3333 41.825 72.631 43.52 71.3807 44.7697C70.1305 46.0195 68.4348 46.7216 66.6667 46.7216H46.6667C43.1321 46.7271 39.744 48.133 37.2447 50.6313C34.7454 53.1295 33.3388 56.5163 33.3333 60.0494V153.344C33.3388 156.877 34.7454 160.264 37.2447 162.762ZM54.7643 82.562H46.8861C44.7966 82.562 42.7928 81.9035 41.3153 80.7314C39.8379 79.5593 39.0078 77.9696 39.0078 76.312C39.0078 74.6544 39.8379 73.0647 41.3153 71.8926C42.7928 70.7205 44.7966 70.062 46.8861 70.062H54.7643C56.8537 70.062 58.8576 70.7205 60.3351 71.8926C61.8125 73.0647 62.6426 74.6544 62.6426 76.312C62.6426 77.9696 61.8125 79.5593 60.3351 80.7314C58.8576 81.9035 56.8537 82.562 54.7643 82.562ZM68.2133 105.731C66.7358 106.904 64.732 107.562 62.6426 107.562H46.8861C44.7966 107.562 42.7928 106.904 41.3153 105.731C39.8379 104.559 39.0078 102.97 39.0078 101.312C39.0078 99.6544 39.8379 98.0647 41.3153 96.8926C42.7928 95.7205 44.7966 95.062 46.8861 95.062H62.6426C64.732 95.062 66.7358 95.7205 68.2133 96.8926C69.6908 98.0647 70.5208 99.6544 70.5208 101.312C70.5208 102.97 69.6908 104.559 68.2133 105.731Z" fill="black"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.2 KiB |
4
nervui-party-construction/src/icon/triviaManage.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="200" height="200" viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M71.0715 61.7861H125.357V76.0718H71.0715V61.7861ZM71.4287 96.429H125.714V110.715H71.4287V96.429Z" fill="black"/>
|
||||
<path d="M168.214 20H45.3572C41.4287 20 38.2144 23.2143 38.2144 27.1429V132.857H15.7144C11.7858 132.857 8.57153 136.071 8.57153 140V156.786C8.57153 169.643 18.9287 180 31.4287 180H137.143C149.643 180 160 169.643 160 157.143V67.1429H183.929C187.857 67.1429 191.072 63.9286 191.072 60V43.2143C191.429 30.3571 181.072 20 168.214 20ZM31.7858 165.714C26.7858 165.714 23.2144 161.786 23.2144 156.786V147.143H113.214V156.071C113.214 159.286 113.929 162.5 115 165.357H31.7858V165.714ZM146.072 157.143C146.072 161.786 142.143 165.714 137.5 165.714H136.429C131.072 165.714 127.143 161.429 127.143 156.429V140.357C127.143 136.429 123.929 133.214 120 133.214H52.5001V34.2857H145.714V157.143H146.072ZM177.143 52.8571H160.357V34.2857H168.572C173.572 34.2857 177.143 38.2143 177.143 43.2143V52.8571Z" fill="black"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
21
nervui-party-construction/src/icon/userName.svg
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="27px" height="27px" viewBox="0 0 27 27" enable-background="new 0 0 27 27" xml:space="preserve"> <image id="image0" width="27" height="27" x="0" y="0"
|
||||
href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
|
||||
AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABIFBMVEUAAAAA//8A0bkAzLsA
|
||||
ya4AzLMAw7QAxLEAzMwAxsYAwq0Ay7QAxa8AyrAAgIAAzLgAx68AzLMAybIAwrYA//8Av6oA27YA
|
||||
w7QAv7MAxa0AuaIAv68CyLIBx7IBx7EByLIEx68AxKoAwbICx7MBx7EGxrAGxrMCyLAAzrYGzrYC
|
||||
yLMAyK0ByLIDx7EDybIByLEByLEHxrEDxbAByLEBxrACx68HxLEAyKQDyLQCyLECyLICyLIAwbAC
|
||||
yLIFzLMAv58AyLEEyLMByLICyLAAqqoBx7EAxqoFybMBx7ECx7ADyLQBxrECx7IEyrEDxbIDx7EF
|
||||
w7QAzKoAzK0AxqoAxLMAz68AxrMA/6oAv68Av6oA1aoAxbkAxLEAyrUBx7H///+f7y28AAAAXnRS
|
||||
TlMAAgsPExQRDQUJGSIjHQIZIAohFQEMByIUHwsQgeDwukAeIY3lLSh4FSqQHOJlY/3BJFSruYAn
|
||||
DliKj3QdmDIIFzz+lAOxGy/ye2LvqUhPTjMPGRIeEBsDIBgGFhoYBqEzEAAAAAFiS0dEX3PRUS0A
|
||||
AAAHdElNRQfmCBELNBEJ0xXgAAABH0lEQVQoz3WSZ1/CMBDGr2BbxFirlmEV3Av3wi2odQ9QFHe+
|
||||
/8cwNHdpSvV59Tz3/zV3TQ6AZKTSPaZlZyCh3mwfk+q3nBjJDDBNrq2hwSEW17BHKMcSyiLMF5KM
|
||||
FUPkjbC/5HfYqIpjpfL4BIVJcao3RWmaC83MUhTD+uTnyh3G59U4AAvkF0PEK5QLDiypdsshW1E5
|
||||
D67yq2sCrW9ok2pjb25t71SjuBt9t7dfETo4VIOm4AjdMUeVTrBSg7o0p2fE+DmyAGw8USF+ISuX
|
||||
AIF0V9eK3chKWtxnUdrbO0T38i9cQ7AAH7b68CjUaGK3p/+elrFnfNxWEr0YtBSv3aj9Fi2T/x5D
|
||||
pqcvoWNFd/7x2b28Xq319d3+MXOqE/wCMOFBJy+4pMgAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjIt
|
||||
MDgtMTdUMDk6NTI6MTcrMDI6MDAAAQHNAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTA4LTE3VDA5
|
||||
OjUyOjE3KzAyOjAwcVy5cQAAAABJRU5ErkJggg==" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
15
nervui-party-construction/src/main.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import { createApp } from 'vue';
|
||||
import App from '/@/App.vue';
|
||||
import { saasInit } from '/nerv-lib/saas';
|
||||
import { apiModule } from '/@/api';
|
||||
import { appConfig } from '/@/config';
|
||||
import defaultResource from '/@/menus/admin.json';
|
||||
|
||||
const app = createApp(App);
|
||||
saasInit({
|
||||
app,
|
||||
apiModule,
|
||||
appConfig,
|
||||
defaultResource,
|
||||
});
|
||||
app.mount('#app');
|
||||
251
nervui-party-construction/src/menus/admin.json
Normal file
@@ -0,0 +1,251 @@
|
||||
[
|
||||
{
|
||||
"code":"triviaManage",
|
||||
"sort":2,
|
||||
"label":"知识问答",
|
||||
"type":"menus",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"",
|
||||
"menus":[
|
||||
{
|
||||
"code":"menuManage",
|
||||
"sort":999,
|
||||
"label":"栏目管理",
|
||||
"type":"noChildrenMenu",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"triviaManage",
|
||||
"menus":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"code":"User",
|
||||
"sort":999,
|
||||
"label":"学员管理",
|
||||
"type":"noChildrenMenu",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"triviaManage",
|
||||
"menus":[
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"UserReset",
|
||||
"name":"",
|
||||
"label":"重置密码",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"POST",
|
||||
"url":"/api/objs/person/reset"
|
||||
}
|
||||
],
|
||||
"parentCode":"User"
|
||||
},
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"UserRemove",
|
||||
"name":"",
|
||||
"label":"删除",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"POST",
|
||||
"url":"/api/objs/ArrearsOrder/scrap"
|
||||
}
|
||||
],
|
||||
"parentCode":"User"
|
||||
},
|
||||
{
|
||||
"code":"UserAdd",
|
||||
"sort":999,
|
||||
"label":"新增",
|
||||
"type":"op",
|
||||
"name":"UserAdd",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"User"
|
||||
},
|
||||
{
|
||||
"code":"UserEdit",
|
||||
"sort":999,
|
||||
"label":"编辑",
|
||||
"type":"op",
|
||||
"name":"UserEdit",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"User"
|
||||
},
|
||||
{
|
||||
"code":"UserDetail",
|
||||
"sort":999,
|
||||
"label":"详情",
|
||||
"type":"op",
|
||||
"name":"UserDetail",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"User"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"code":"TestPaperManage",
|
||||
"sort":999,
|
||||
"label":"试卷管理",
|
||||
"type":"noChildrenMenu",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"GET",
|
||||
"url":"/api/objs/admin/questionnaireForm/pageList"
|
||||
}
|
||||
],
|
||||
"parentCode":"triviaManage",
|
||||
"menus":[
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"TestPaperManageDelete",
|
||||
"name":"",
|
||||
"label":"删除",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"TestPaperManage"
|
||||
},
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"TestPaperManageUpload",
|
||||
"name":"",
|
||||
"label":"上传试题",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"TestPaperManage"
|
||||
},
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"TestPaperManageRelease",
|
||||
"name":"",
|
||||
"label":"发布",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"TestPaperManage"
|
||||
},
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"TestPaperManageStop",
|
||||
"name":"",
|
||||
"label":"暂停发布",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"TestPaperManage"
|
||||
},
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"TestPaperManageAdd",
|
||||
"name":"",
|
||||
"label":"新增试卷",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"TestPaperManage"
|
||||
},
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"TestPaperManageEdit",
|
||||
"name":"",
|
||||
"label":"编辑",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"TestPaperManage"
|
||||
},
|
||||
{
|
||||
"code":"TestPaperManageDetail",
|
||||
"sort":999,
|
||||
"label":"查看",
|
||||
"type":"op",
|
||||
"name":"TestPaperManageDetail",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"TestPaperManage"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"code":"PointsManage",
|
||||
"sort":999,
|
||||
"label":"积分管理",
|
||||
"type":"noChildrenMenu",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"GET",
|
||||
"url":"/api/objs/admin/questionnairePoint/getRank"
|
||||
}
|
||||
],
|
||||
"parentCode":"triviaManage",
|
||||
"menus":[
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"PointsManageExp",
|
||||
"name":"",
|
||||
"label":"批量导出",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"GET",
|
||||
"url":"/api/objs/admin/questionnairePoint/export"
|
||||
}
|
||||
],
|
||||
"parentCode":"PointsManage"
|
||||
},
|
||||
{
|
||||
"code":"PointsManageDetail",
|
||||
"sort":999,
|
||||
"label":"查看",
|
||||
"type":"op",
|
||||
"name":"PointsManageDetail",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"GET",
|
||||
"url":"/api/objs/admin/questionnairePoint/getPointLog"
|
||||
}
|
||||
],
|
||||
"parentCode":"PointsManage"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"code":"register",
|
||||
"sort":3,
|
||||
"label":"用户注册",
|
||||
"type":"menus",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":""
|
||||
}
|
||||
]
|
||||
347
nervui-party-construction/src/menus/admin_copy.json
Normal file
@@ -0,0 +1,347 @@
|
||||
[
|
||||
{
|
||||
"code":"welcome",
|
||||
"sort":1,
|
||||
"label":"个人中心",
|
||||
"type":"menus",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":""
|
||||
},
|
||||
{
|
||||
"code":"triviaManage",
|
||||
"sort":2,
|
||||
"label":"知识问答",
|
||||
"type":"menus",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"",
|
||||
"menus":[
|
||||
{
|
||||
"code":"menuManage",
|
||||
"sort":999,
|
||||
"label":"栏目管理",
|
||||
"type":"noChildrenMenu",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"triviaManage",
|
||||
"menus":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"code":"User",
|
||||
"sort":999,
|
||||
"label":"学员管理",
|
||||
"type":"noChildrenMenu",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"triviaManage",
|
||||
"menus":[
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"UserReset",
|
||||
"name":"",
|
||||
"label":"重置密码",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"POST",
|
||||
"url":"/api/objs/person/reset"
|
||||
}
|
||||
],
|
||||
"parentCode":"User"
|
||||
},
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"UserRemove",
|
||||
"name":"",
|
||||
"label":"删除",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"POST",
|
||||
"url":"/api/objs/ArrearsOrder/scrap"
|
||||
}
|
||||
],
|
||||
"parentCode":"User"
|
||||
},
|
||||
{
|
||||
"code":"UserAdd",
|
||||
"sort":999,
|
||||
"label":"新增",
|
||||
"type":"op",
|
||||
"name":"UserAdd",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"User"
|
||||
},
|
||||
{
|
||||
"code":"UserEdit",
|
||||
"sort":999,
|
||||
"label":"编辑",
|
||||
"type":"op",
|
||||
"name":"UserEdit",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"User"
|
||||
},
|
||||
{
|
||||
"code":"UserDetail",
|
||||
"sort":999,
|
||||
"label":"详情",
|
||||
"type":"op",
|
||||
"name":"UserDetail",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"User"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"code":"TestPaperManage",
|
||||
"sort":999,
|
||||
"label":"试卷管理",
|
||||
"type":"noChildrenMenu",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"GET",
|
||||
"url":"/api/objs/admin/questionnaireForm/pageList"
|
||||
}
|
||||
],
|
||||
"parentCode":"triviaManage",
|
||||
"menus":[
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"TestPaperManageDelete",
|
||||
"name":"",
|
||||
"label":"删除",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"TestPaperManage"
|
||||
},
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"TestPaperManageUpload",
|
||||
"name":"",
|
||||
"label":"上传试题",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"TestPaperManage"
|
||||
},
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"TestPaperManageRelease",
|
||||
"name":"",
|
||||
"label":"发布",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"TestPaperManage"
|
||||
},
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"TestPaperManageStop",
|
||||
"name":"",
|
||||
"label":"暂停发布",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"TestPaperManage"
|
||||
},
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"TestPaperManageAdd",
|
||||
"name":"",
|
||||
"label":"新增试卷",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"TestPaperManage"
|
||||
},
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"TestPaperManageEdit",
|
||||
"name":"",
|
||||
"label":"编辑",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"TestPaperManage"
|
||||
},
|
||||
{
|
||||
"code":"TestPaperManageDetail",
|
||||
"sort":999,
|
||||
"label":"查看",
|
||||
"type":"op",
|
||||
"name":"TestPaperManageDetail",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"TestPaperManage"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"code":"PointsManage",
|
||||
"sort":999,
|
||||
"label":"积分管理",
|
||||
"type":"noChildrenMenu",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"GET",
|
||||
"url":"/api/objs/admin/questionnairePoint/getRank"
|
||||
}
|
||||
],
|
||||
"parentCode":"triviaManage",
|
||||
"menus":[
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"PointsManageExp",
|
||||
"name":"",
|
||||
"label":"批量导出",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"GET",
|
||||
"url":"/api/objs/admin/questionnairePoint/export"
|
||||
}
|
||||
],
|
||||
"parentCode":"PointsManage"
|
||||
},
|
||||
{
|
||||
"code":"PointsManageDetail",
|
||||
"sort":999,
|
||||
"label":"查看",
|
||||
"type":"op",
|
||||
"name":"PointsManageDetail",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"GET",
|
||||
"url":"/api/objs/admin/questionnairePoint/getPointLog"
|
||||
}
|
||||
],
|
||||
"parentCode":"PointsManage"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"code":"QuestionAnswering",
|
||||
"sort":999,
|
||||
"label":"知识问答",
|
||||
"type":"menus",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"GET",
|
||||
"url":"/api/objs/Role"
|
||||
}
|
||||
],
|
||||
"parentCode":"triviaManage",
|
||||
"menus":[
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"PointsManageRemove",
|
||||
"name":"",
|
||||
"label":"删除",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"POST",
|
||||
"url":"/api/objs/ArrearsOrder/scrap"
|
||||
}
|
||||
],
|
||||
"parentCode":"QuestionAnswering"
|
||||
},
|
||||
{
|
||||
"code":"Answer",
|
||||
"sort":999,
|
||||
"label":"答题",
|
||||
"type":"menus",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"GET",
|
||||
"url":"/api/objs/Role"
|
||||
}
|
||||
],
|
||||
"parentCode":"QuestionAnswering"
|
||||
},
|
||||
{
|
||||
"code":"AnswerDetail",
|
||||
"sort":999,
|
||||
"label":"查看",
|
||||
"type":"menus",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"GET",
|
||||
"url":"/api/objs/Role"
|
||||
}
|
||||
],
|
||||
"parentCode":"QuestionAnswering"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"code":"register",
|
||||
"sort":3,
|
||||
"label":"用户注册",
|
||||
"type":"menus",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":""
|
||||
},
|
||||
{
|
||||
"code":"userCenter",
|
||||
"sort":4,
|
||||
"label":"个人中心",
|
||||
"type":"menus",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"",
|
||||
"menus":[
|
||||
{
|
||||
"code":"Center",
|
||||
"sort":999,
|
||||
"label":"个人中心",
|
||||
"type":"noChildrenMenu",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"userCenter",
|
||||
"menus":[
|
||||
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
109
nervui-party-construction/src/menus/user.json
Normal file
@@ -0,0 +1,109 @@
|
||||
[
|
||||
{
|
||||
"code":"welcome",
|
||||
"sort":1,
|
||||
"label":"个人中心",
|
||||
"type":"menus",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":""
|
||||
},
|
||||
{
|
||||
"code":"register",
|
||||
"sort":3,
|
||||
"label":"用户注册",
|
||||
"type":"menus",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":""
|
||||
},
|
||||
{
|
||||
"code":"userCenter",
|
||||
"sort":4,
|
||||
"label":"个人中心",
|
||||
"type":"menus",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"",
|
||||
"menus":[
|
||||
{
|
||||
"code":"QuestionAnswering",
|
||||
"sort":999,
|
||||
"label":"知识问答",
|
||||
"type":"menus",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"GET",
|
||||
"url":"/api/objs/Role"
|
||||
}
|
||||
],
|
||||
"parentCode":"triviaManage",
|
||||
"menus":[
|
||||
{
|
||||
"sort":999,
|
||||
"type":"op",
|
||||
"code":"PointsManageRemove",
|
||||
"name":"",
|
||||
"label":"删除",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"POST",
|
||||
"url":"/api/objs/ArrearsOrder/scrap"
|
||||
}
|
||||
],
|
||||
"parentCode":"QuestionAnswering"
|
||||
},
|
||||
{
|
||||
"code":"Answer",
|
||||
"sort":999,
|
||||
"label":"答题",
|
||||
"type":"menus",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"GET",
|
||||
"url":"/api/objs/Role"
|
||||
}
|
||||
],
|
||||
"parentCode":"QuestionAnswering"
|
||||
},
|
||||
{
|
||||
"code":"AnswerDetail",
|
||||
"sort":999,
|
||||
"label":"查看",
|
||||
"type":"menus",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
{
|
||||
"method":"GET",
|
||||
"url":"/api/objs/Role"
|
||||
}
|
||||
],
|
||||
"parentCode":"QuestionAnswering"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"code":"Center",
|
||||
"sort":999,
|
||||
"label":"个人中心",
|
||||
"type":"noChildrenMenu",
|
||||
"name":"",
|
||||
"backApi":[
|
||||
|
||||
],
|
||||
"parentCode":"userCenter",
|
||||
"menus":[
|
||||
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
11
nervui-party-construction/src/router/index.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
/** @format */
|
||||
|
||||
const RootRoute = {
|
||||
path: '/',
|
||||
name: 'root',
|
||||
redirect: { name: 'login' },
|
||||
meta: {
|
||||
title: 'Root',
|
||||
},
|
||||
};
|
||||
export default RootRoute;
|
||||
11
nervui-party-construction/src/router/register/index.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
/** @format */
|
||||
|
||||
// const Base = () => import('/nerv-lib/saas/view/system/layout/content.vue');
|
||||
const register = {
|
||||
path: '/register',
|
||||
name: 'register',
|
||||
meta: { title: '用户注册', icon: 'doorway', index: 3 },
|
||||
component: () => import('/@/view/login/register.vue'),
|
||||
// redirect: { name: 'WelcomeIndex' },
|
||||
};
|
||||
export default register;
|
||||
252
nervui-party-construction/src/router/triviaManage/index.ts
Normal file
@@ -0,0 +1,252 @@
|
||||
/** @format */
|
||||
|
||||
const Base = () => import('/nerv-lib/saas/view/system/layout/content.vue');
|
||||
const triviaManage = {
|
||||
path: '/triviaManage',
|
||||
name: 'triviaManage',
|
||||
meta: { title: '知识问答', icon: 'questringAnswer', index: 2 },
|
||||
redirect: { name: 'TestPaperManage' },
|
||||
children: [
|
||||
{
|
||||
path: 'menuManage',
|
||||
name: 'menuManage',
|
||||
// hideResource: true,
|
||||
meta: { title: '栏目管理', icon: 'parkingCarPark', hideChildren: true },
|
||||
component: Base,
|
||||
redirect: { name: 'menuManageIndex' },
|
||||
children: [
|
||||
{
|
||||
path: 'index',
|
||||
name: 'menuManageIndex',
|
||||
component: () => import('/nerv-lib/saas/view/menuManage/index.vue'),
|
||||
meta: { title: '栏目管理', keepAlive: true },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'testPaperManage',
|
||||
name: 'TestPaperManage',
|
||||
meta: { title: '试卷管理', icon: 'triviaManage', hideChildren: true },
|
||||
redirect: { name: 'TestPaperManageIndex' },
|
||||
component: Base,
|
||||
children: [
|
||||
{
|
||||
path: 'index',
|
||||
name: 'TestPaperManageIndex',
|
||||
component: () => import('/@/view/triviaManage/testPaperManage/index.vue'),
|
||||
meta: {
|
||||
title: '试卷管理',
|
||||
keepAlive: true,
|
||||
operates: [
|
||||
{
|
||||
title: '删除',
|
||||
code: 'TestPaperManageDelete',
|
||||
backApi: [],
|
||||
},
|
||||
{
|
||||
title: '上传试题',
|
||||
code: 'TestPaperManageUpload',
|
||||
backApi: [],
|
||||
},
|
||||
{
|
||||
title: '发布',
|
||||
code: 'TestPaperManageRelease',
|
||||
backApi: [],
|
||||
},
|
||||
{
|
||||
title: '暂停发布',
|
||||
code: 'TestPaperManageStop',
|
||||
backApi: [],
|
||||
},
|
||||
{
|
||||
title: '新增试卷',
|
||||
code: 'TestPaperManageAdd',
|
||||
backApi: [],
|
||||
},
|
||||
{
|
||||
title: '编辑',
|
||||
code: 'TestPaperManageEdit',
|
||||
backApi: [],
|
||||
},
|
||||
],
|
||||
backApi: [
|
||||
{
|
||||
method: 'GET',
|
||||
url: '/api/objs/admin/questionnaireForm/pageList',
|
||||
},
|
||||
{
|
||||
method: 'GET',
|
||||
url: '/api/objs/admin/questionnaireForm/detail',
|
||||
},
|
||||
{
|
||||
method: 'POST',
|
||||
url: '/api/objs/admin/questionnaireForm/delete',
|
||||
},
|
||||
{
|
||||
method: 'POST',
|
||||
url: '/api/objs/admin/questionnaireForm/questionImport',
|
||||
},
|
||||
{
|
||||
method: 'POST',
|
||||
url: '/api/objs/admin/questionnaireForm/updateStatus',
|
||||
},
|
||||
{
|
||||
method: 'POST',
|
||||
url: '/api/objs/admin/questionnaireForm/update',
|
||||
},
|
||||
{
|
||||
method: 'POST',
|
||||
url: '/api/objs/admin/questionnaireForm/add',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'detail',
|
||||
name: 'TestPaperManageDetail',
|
||||
component: () => import('/@/view/triviaManage/testPaperManage/detail.vue'),
|
||||
meta: {
|
||||
title: '查看',
|
||||
type: 'op',
|
||||
backApi: [
|
||||
{
|
||||
method: 'GET',
|
||||
url: '/api/objs/admin/questionnaireForm/detail',
|
||||
},
|
||||
{
|
||||
method: 'GET',
|
||||
url: '/api/objs/admin/questionnaireForm/statisticsOption',
|
||||
},
|
||||
{
|
||||
method: 'GET',
|
||||
url: '/api/objs/admin/questionnaireForm/statisticsUser',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'pointsManage',
|
||||
name: 'PointsManage',
|
||||
meta: { title: '积分管理', icon: 'studengManger', hideChildren: true },
|
||||
redirect: { name: 'PointsManageIndex' },
|
||||
component: Base,
|
||||
children: [
|
||||
{
|
||||
path: 'index',
|
||||
name: 'PointsManageIndex',
|
||||
component: () => import('/@/view/triviaManage/pointsManage/index.vue'),
|
||||
meta: {
|
||||
title: '积分管理',
|
||||
keepAlive: true,
|
||||
operates: [
|
||||
{
|
||||
title: '批量导出',
|
||||
code: 'PointsManageExp',
|
||||
backApi: [
|
||||
{
|
||||
method: 'GET',
|
||||
url: '/api/objs/admin/questionnairePoint/export',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
backApi: [
|
||||
{
|
||||
method: 'GET',
|
||||
url: '/api/objs/admin/questionnairePoint/getRank',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'detail',
|
||||
name: 'PointsManageDetail',
|
||||
component: () => import('/@/view/triviaManage/pointsManage/detail.vue'),
|
||||
meta: {
|
||||
title: '查看',
|
||||
type: 'op',
|
||||
backApi: [
|
||||
{
|
||||
method: 'GET',
|
||||
url: '/api/objs/admin/questionnairePoint/getPointLog',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'user',
|
||||
name: 'User',
|
||||
meta: { title: '学员管理', hideChildren: true },
|
||||
redirect: { name: 'UserIndex' },
|
||||
component: Base,
|
||||
children: [
|
||||
{
|
||||
path: 'index',
|
||||
name: 'UserIndex',
|
||||
component: () => import('/@/view/userManage/userList/index.vue'),
|
||||
meta: {
|
||||
title: '学员管理',
|
||||
keepAlive: true,
|
||||
operates: [
|
||||
{
|
||||
title: '重置密码',
|
||||
code: 'UserReset',
|
||||
backApi: [
|
||||
{
|
||||
method: 'POST',
|
||||
url: '/api/objs/admin/WorkUser/reset',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: '新增',
|
||||
code: 'UserAdd',
|
||||
backApi: [
|
||||
{
|
||||
method: 'POST',
|
||||
url: '/api/objs/admin/WorkUser',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: '编辑',
|
||||
code: 'UserEdit',
|
||||
backApi: [
|
||||
{
|
||||
method: 'POST',
|
||||
url: '/api/objs/admin/WorkUser/update',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: '删除',
|
||||
code: 'UserRemove',
|
||||
backApi: [
|
||||
{
|
||||
method: 'POST',
|
||||
url: '/api/objs/admin/WorkUser/delete',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
backApi: [
|
||||
{
|
||||
method: 'GET',
|
||||
url: '/api/objs/admin/WorkUser',
|
||||
},
|
||||
{
|
||||
method: 'POST',
|
||||
url: '/api/objs/admin/WorkUser/operation',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
export default triviaManage;
|
||||
92
nervui-party-construction/src/router/userCenter/index.ts
Normal file
@@ -0,0 +1,92 @@
|
||||
/** @format */
|
||||
|
||||
const Base = () => import('/nerv-lib/saas/view/system/layout/content.vue');
|
||||
const userCenter = {
|
||||
path: '/userCenter',
|
||||
name: 'userCenter',
|
||||
meta: { title: '个人中心', icon: 'person', index: 4 },
|
||||
redirect: { name: 'Center' },
|
||||
children: [
|
||||
{
|
||||
path: 'center',
|
||||
name: 'Center',
|
||||
// hideResource: true,
|
||||
meta: { title: '个人中心', icon: 'person', hideChildren: true },
|
||||
component: Base,
|
||||
redirect: { name: 'CenterIndex' },
|
||||
children: [
|
||||
{
|
||||
path: 'index',
|
||||
name: 'CenterIndex',
|
||||
component: () => import('/@/view/welcome/center.vue'),
|
||||
meta: { title: '个人中心' },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'questionAnswering',
|
||||
name: 'QuestionAnswering',
|
||||
meta: { title: '知识问答', hideChildren: true },
|
||||
redirect: { name: 'QuestionAnsweringIndex' },
|
||||
component: Base,
|
||||
children: [
|
||||
{
|
||||
path: 'index',
|
||||
name: 'QuestionAnsweringIndex',
|
||||
component: () => import('/@/view/triviaManage/questionAnswering/index.vue'),
|
||||
meta: {
|
||||
title: '知识问答',
|
||||
keepAlive: true,
|
||||
operates: [
|
||||
{
|
||||
title: '删除',
|
||||
code: 'PointsManageRemove',
|
||||
backApi: [
|
||||
{
|
||||
method: 'POST',
|
||||
url: '/api/objs/ArrearsOrder/scrap',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
backApi: [
|
||||
{
|
||||
method: 'GET',
|
||||
url: '/api/objs/Role',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'answer',
|
||||
name: 'Answer',
|
||||
component: () => import('/@/view/triviaManage/questionAnswering/answer.vue'),
|
||||
meta: {
|
||||
title: '答题',
|
||||
backApi: [
|
||||
{
|
||||
method: 'GET',
|
||||
url: '/api/objs/Role',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'detail',
|
||||
name: 'AnswerDetail',
|
||||
component: () => import('/@/view/triviaManage/questionAnswering/detail.vue'),
|
||||
meta: {
|
||||
title: '查看',
|
||||
backApi: [
|
||||
{
|
||||
method: 'GET',
|
||||
url: '/api/objs/Role',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
export default userCenter;
|
||||
11
nervui-party-construction/src/router/welcome/index.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
/** @format */
|
||||
|
||||
// const Base = () => import('/nerv-lib/saas/view/system/layout/content.vue');
|
||||
const welcome = {
|
||||
path: '/welcome',
|
||||
name: 'welcome',
|
||||
meta: { title: '学员欢迎', icon: 'doorway', index: 1 },
|
||||
component: () => import('/@/view/welcome/index.vue'),
|
||||
// redirect: { name: 'WelcomeIndex' },
|
||||
};
|
||||
export default welcome;
|
||||
12
nervui-party-construction/src/store/item.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import { defineStore } from 'pinia';
|
||||
|
||||
export const items = defineStore({
|
||||
id: 'items',
|
||||
state() {
|
||||
return { list: [], count: 10 };
|
||||
},
|
||||
getters: {
|
||||
double: (state: any) => state.count * 2,
|
||||
},
|
||||
actions: {},
|
||||
});
|
||||
73
nervui-party-construction/src/theme/global.scss
Normal file
@@ -0,0 +1,73 @@
|
||||
@font-face {
|
||||
font-family: 'QuartzMS';
|
||||
src: url('/asset/font/QuartzMS.TTF') format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'FZDeSHJW_511M';
|
||||
src: url('/asset/font/FZDeSHJW_511M.TTF') format('truetype');
|
||||
}
|
||||
|
||||
//侧边导航
|
||||
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected {
|
||||
background: rgba(184, 46, 45, 0.1) !important;
|
||||
}
|
||||
|
||||
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected::before{
|
||||
background-color: rgba(0,0,0,0)!important;
|
||||
}
|
||||
|
||||
.ant-menu.ant-menu-dark .ant-menu-item-selected {
|
||||
color: #fff;
|
||||
background: #CB2026 !important;
|
||||
}
|
||||
|
||||
.ant-menu-dark.ant-menu-horizontal>.ant-menu-item:hover {
|
||||
background-color: #CB2026 !important;
|
||||
}
|
||||
|
||||
.ant-menu-inline .ant-menu-item,
|
||||
.ant-menu-inline .ant-menu-submenu-title {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.ns-basic-table .ant-btn:hover {
|
||||
border-color: transparent !important;
|
||||
}
|
||||
|
||||
.ns-basic-table .ant-btn-link:hover {
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
// .ns-detail {
|
||||
// padding: 0px 24px 10px 24px !important;
|
||||
// }
|
||||
|
||||
.ant-tabs-nav-wrap {
|
||||
padding: 0 24px; // 列表tab边距
|
||||
}
|
||||
|
||||
.ant-tabs-nav {
|
||||
margin: 0 !important; // 列表tab下边距
|
||||
}
|
||||
|
||||
.ns-richText-ZIndex {
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.ant-input-number {
|
||||
width: 100%; //inputNumber组件宽度
|
||||
}
|
||||
|
||||
// header菜单字体样式
|
||||
.ant-menu-dark.ant-menu-horizontal>.ant-menu-item,
|
||||
.ant-menu-dark.ant-menu-horizontal>.ant-menu-submenu {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.ant-menu-dark .ant-menu-item,
|
||||
.ant-menu-dark .ant-menu-item-group-title,
|
||||
.ant-menu-dark .ant-menu-item>a,
|
||||
.ant-menu-dark .ant-menu-item>span>a {
|
||||
color: #fff;
|
||||
}
|
||||
2
nervui-party-construction/src/theme/theme.scss
Normal file
@@ -0,0 +1,2 @@
|
||||
@import "variable";
|
||||
@import "global";
|
||||
4
nervui-party-construction/src/theme/variable.less
Normal file
@@ -0,0 +1,4 @@
|
||||
@primary-color: #CB2026; // 全局主色
|
||||
@layout-header-hover: #CB2026; //hover
|
||||
|
||||
@layout-header-background: #CB2026; // 头部背景色
|
||||
65
nervui-party-construction/src/theme/variable.scss
Normal file
@@ -0,0 +1,65 @@
|
||||
// $primary-color: #37ABC4; // 全局主色
|
||||
// $link-color: #37ABC4; // 链接色
|
||||
// $success-color: #17BE6B; // 成功色
|
||||
// $warning-color: #FF9901; // 警告色
|
||||
// $error-color: #FF1744; // 错误色
|
||||
// $font-size-base: 14px; // 主字号
|
||||
// $font-size-lg:14px;
|
||||
// $font-size-lg:14px;
|
||||
// $heading-font-size-lg:16px;//标题字号
|
||||
// $heading-font-weight:600;//标题加粗
|
||||
// $font-line-height:22px;//文字行高
|
||||
// $heading-font-line-height:24px;//标题文字行高
|
||||
// $heading-color: rgba(0, 0, 0, 0.85); // 标题色
|
||||
// $text-color: #323232; // 主文本色
|
||||
// $text-color-secondary: rgba(0, 0, 0, 0.45); // 次文本色
|
||||
// $disabled-color: #BFBFBF; // 失效色
|
||||
// $border-radius-base: 2px; // 组件/浮层圆角
|
||||
// $border-color-base: #dcdfe2; // 边框色
|
||||
// $box-shadow-base: 0 2px 8px rgba(0, 0, 0, 0.15); // 浮层阴影
|
||||
// $layout-body-background: #f0f2f5; //框架背景色
|
||||
// $layout-header-background:#37ABC4; // 头部背景色
|
||||
|
||||
// $layout-sider-width:208px; //侧边导航宽度
|
||||
// $layout-sider-arrow-color:#808d96;//侧边导航箭头颜色
|
||||
// $border-style-base:solid;
|
||||
// $layout-header-height:48px;//头部高度
|
||||
// $line-height-base:22px;
|
||||
|
||||
// //btn
|
||||
// $btn-height-base:30px;
|
||||
// $btn-height-lg: 30px;
|
||||
// $btn-disable-color: #9b9b9b;//禁用按钮color
|
||||
// $btn-disable-bg: #dfe3e9;//禁用按钮background
|
||||
// $btn-disable-border: 1px solid #ced0da;
|
||||
// $btn-border-radius-base: $border-radius-base;//圆角边框
|
||||
// $btn-border-width: 1px;
|
||||
// $btn-border-style: $border-style-base;
|
||||
// $btn-link-hover-bg: #37ABC4;
|
||||
// $btn-text-hover-bg: #46ebdb;
|
||||
// $btn-font-size-lg: $font-size-lg;
|
||||
|
||||
// //input
|
||||
// $input-height-base: 30px;
|
||||
// $input-hover-focus-border-color:#a5a5b5;
|
||||
// // @input-hover-border-color: rgba(0,0,0,.85);//鼠标滑过input边框
|
||||
|
||||
// //form
|
||||
// $label-color:#52616f;
|
||||
// $form-vertical-label-padding: 0;
|
||||
// $form-vertical-label-margin: 0,0,16,0px;
|
||||
// $form-item-label-height:$input-height-base;
|
||||
// $form-item-margin-bottom: 16px;
|
||||
|
||||
// //menu
|
||||
// $menu-item-height: 48px;
|
||||
// $menu-item-active-bg: none;
|
||||
// $menu-item-boundary-margin: 0px;
|
||||
|
||||
// //spin
|
||||
// $spin-dot-size-sm: 14px;
|
||||
// $spin-dot-size: 20px;
|
||||
// $spin-dot-size-lg: 32px;
|
||||
|
||||
// $border-width-base: 1px;
|
||||
// $border-style-base: solid;
|
||||
BIN
nervui-party-construction/src/view/login/img/background.png
Normal file
|
After Width: | Height: | Size: 660 KiB |
BIN
nervui-party-construction/src/view/login/img/icon_clear.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
nervui-party-construction/src/view/login/img/icon_name.png
Normal file
|
After Width: | Height: | Size: 769 B |
BIN
nervui-party-construction/src/view/login/img/icon_password.png
Normal file
|
After Width: | Height: | Size: 806 B |
BIN
nervui-party-construction/src/view/login/img/login.png
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
nervui-party-construction/src/view/login/img/login_complete.png
Normal file
|
After Width: | Height: | Size: 174 KiB |
|
After Width: | Height: | Size: 1.9 MiB |
BIN
nervui-party-construction/src/view/login/img/logo.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
302
nervui-party-construction/src/view/login/login.vue
Normal file
@@ -0,0 +1,302 @@
|
||||
<!-- @format -->
|
||||
|
||||
<template>
|
||||
<div style="height: 100%">
|
||||
<a-layout style="height: 100%">
|
||||
<a-layout-content class="center-content">
|
||||
<div class="lg_card">
|
||||
<h1 class="lg_title">党建知识答题平台</h1>
|
||||
<h1 class="lg_card_title">账号登录</h1>
|
||||
<p v-show="errorShow" class="lg_card_error">{{ errorMsg }}</p>
|
||||
<a-input
|
||||
placeholder="登录账号"
|
||||
v-model:value="userName"
|
||||
style="height: 52px; margin-bottom: 24px; border-radius: 4px">
|
||||
<template #prefix>
|
||||
<img src="/asset/image/login/icon_name.png" style="margin-right: 5px" />
|
||||
</template>
|
||||
</a-input>
|
||||
<a-input-password
|
||||
placeholder="登录密码"
|
||||
v-model:value="password"
|
||||
style="height: 52px; margin-bottom: 24px; border-radius: 4px">
|
||||
<template #prefix>
|
||||
<img src="/asset/image/login/icon_password.png" style="margin-right: 5px" />
|
||||
</template>
|
||||
</a-input-password>
|
||||
<a-button
|
||||
@click="submit"
|
||||
:loading="loading"
|
||||
type="primary"
|
||||
style="width: 100%; height: 52px; border-radius: 4px; margin-bottom: 25px"
|
||||
>登录</a-button
|
||||
>
|
||||
<div style="width: 100%; text-align: right; color: rgba(0, 0, 0, 0.65)">
|
||||
没有账号?去 <a @click="$router.push({ name: 'register' })">注册</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">Copyright 2021 鼎云科技 All Rights Reserved</div>
|
||||
</a-layout-content>
|
||||
</a-layout>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent, ref } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { appConfigStore } from '/nerv-lib/saas/store/modules/app-config';
|
||||
import { authorizationService } from '/nerv-base/store/modules/authorization-service';
|
||||
import { NsMessage } from '/nerv-lib/component/message';
|
||||
import { base64encode, base64decode } from './service';
|
||||
import user from '/@/menus/user.json';
|
||||
export default defineComponent({
|
||||
name: 'UserLogin',
|
||||
setup() {
|
||||
const url = ref('/asset/image/login/background1.png');
|
||||
const userName = ref<string>('');
|
||||
const password = ref<string>('');
|
||||
const logUrl = ref<string>('');
|
||||
const bgUrl = ref<string>('');
|
||||
const errorMsg = ref<string>('');
|
||||
const errorShow = ref<boolean>(false);
|
||||
const router = useRouter();
|
||||
const title = ref<string>('');
|
||||
const initUrl = ref('');
|
||||
title.value = '账号登录';
|
||||
// title.value = appConfig.title ? appConfig.title : '账号登录';
|
||||
const loading = ref<boolean>(false);
|
||||
const configStore = appConfigStore();
|
||||
const useAuthorization = authorizationService();
|
||||
let rememberPwdOp = ref(false);
|
||||
if (localStorage.getItem('rememberPwdOp')) {
|
||||
rememberPwdOp.value = JSON.parse(localStorage.getItem('rememberPwdOp'));
|
||||
}
|
||||
if (localStorage.getItem('loginOpData')) {
|
||||
let data = JSON.parse(localStorage.getItem('loginOpData'));
|
||||
userName.value = data.userName;
|
||||
password.value = data['isEncrypted'] ? base64decode(data.password) : data.password;
|
||||
}
|
||||
const submit = (): void => {
|
||||
if (password.value === '') {
|
||||
errorMsg.value = '请输入密码';
|
||||
errorShow.value = true;
|
||||
}
|
||||
if (userName.value === '') {
|
||||
errorMsg.value = '请输入账号';
|
||||
errorShow.value = true;
|
||||
}
|
||||
if (userName.value !== '' && password.value !== '') {
|
||||
errorShow.value = false;
|
||||
let data = JSON.stringify({
|
||||
userName: userName.value,
|
||||
password: password.value,
|
||||
isEncrypted: true, //兼容之前没有加密的账号
|
||||
});
|
||||
loading.value = true;
|
||||
async function logins() {
|
||||
try {
|
||||
const res = await configStore.userLogin(JSON.parse(data));
|
||||
console.log(res);
|
||||
|
||||
if (res.success) {
|
||||
if (rememberPwdOp.value) {
|
||||
const saveData = JSON.parse(data);
|
||||
saveData['password'] = base64encode(saveData.password);
|
||||
localStorage.setItem('loginOpData', JSON.stringify(saveData));
|
||||
} else {
|
||||
localStorage.removeItem('loginOpData');
|
||||
}
|
||||
const info = await configStore.userInfo();
|
||||
info.success
|
||||
? window.sessionStorage.setItem('userInfo', JSON.stringify(info.data))
|
||||
: '';
|
||||
loading.value = false;
|
||||
|
||||
if (configStore.enablePermissions) {
|
||||
const res = await configStore.userResource();
|
||||
initUrl.value = '';
|
||||
const dealInitUrl = (item) => {
|
||||
console.log(item);
|
||||
if (item.type === 'menus' && item.menus && item.menus?.length !== 0) {
|
||||
dealInitUrl(item.menus[0]);
|
||||
} else {
|
||||
// if (item.type === 'noChildrenMenu') {
|
||||
initUrl.value = item.code;
|
||||
// }
|
||||
}
|
||||
};
|
||||
// let accountType = JSON.parse(sessionStorage.getItem('userInfo')).accountType;
|
||||
if (Array.isArray(user)) {
|
||||
if (!res.data) res.data = [];
|
||||
res.data = [...res.data, ...user];
|
||||
console.log(res.data);
|
||||
} else {
|
||||
res.data.push(user);
|
||||
}
|
||||
|
||||
dealInitUrl(res.data[0]);
|
||||
useAuthorization.updateUserResource(res.data);
|
||||
const initRouterList = useAuthorization.getInitRouterList;
|
||||
console.log(initRouterList);
|
||||
console.log(initUrl.value);
|
||||
router.push({
|
||||
name: initRouterList.length === 0 ? 'error403' : initUrl.value,
|
||||
});
|
||||
} else {
|
||||
router.replace({ name: 'root' });
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
// NsMessage.error('该账号暂无权限');
|
||||
loading.value = false;
|
||||
}
|
||||
}
|
||||
logins();
|
||||
}
|
||||
};
|
||||
const checkoutLogo = (): void => {
|
||||
logUrl.value = '';
|
||||
};
|
||||
const checkoutBg = (): void => {
|
||||
Math.random() > 0.5
|
||||
? (url.value = 'src/assetimg/background.jpg')
|
||||
: (url.value = 'src/assetimg/background.png');
|
||||
};
|
||||
const onChange = () => {
|
||||
localStorage.setItem('rememberPwdOp', JSON.stringify(rememberPwdOp.value));
|
||||
};
|
||||
return {
|
||||
title,
|
||||
url,
|
||||
loading,
|
||||
userName,
|
||||
password,
|
||||
submit,
|
||||
errorMsg,
|
||||
bgUrl,
|
||||
logUrl,
|
||||
checkoutLogo,
|
||||
checkoutBg,
|
||||
errorShow,
|
||||
rememberPwdOp,
|
||||
onChange,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
const _this = this;
|
||||
console.log('执行了');
|
||||
window.sessionStorage.clear();
|
||||
document.onkeydown = function (e) {
|
||||
const key = window.event === undefined ? e.keyCode : window.event.keyCode;
|
||||
key === 13 ? _this.submit() : '';
|
||||
};
|
||||
},
|
||||
beforeUnmount() {
|
||||
document.onkeydown = function (e) {};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
// if (Cookies.get('nervsid') !== undefined) {
|
||||
// this.$router.push('/home');
|
||||
// }
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.home_header {
|
||||
height: 64px !important;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
:deep(.center-content) {
|
||||
background: url('./img/background.png') center center no-repeat;
|
||||
background-size: cover;
|
||||
|
||||
// background-position-y: -120px;
|
||||
margin: 0;
|
||||
}
|
||||
.icon {
|
||||
color: @primary-color;
|
||||
// background: #000;
|
||||
// min-height: 25px;
|
||||
// min-width: 25px;
|
||||
// display: flex;
|
||||
// justify-content: center;
|
||||
// align-items: center;
|
||||
// border-radius: 50%;
|
||||
}
|
||||
.ant-layout-header {
|
||||
min-height: 64px;
|
||||
background: #fff !important;
|
||||
}
|
||||
|
||||
.ant-layout-content {
|
||||
height: calc(100vh - 112px);
|
||||
width: 100%;
|
||||
min-height: 400px;
|
||||
}
|
||||
|
||||
.ant-layout-footer {
|
||||
max-height: 48px;
|
||||
min-height: 48px;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #8f8f8f;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.lg_card {
|
||||
width: 420px;
|
||||
height: 353px;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 28%;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
.lg_card .lg_title {
|
||||
font-family: 'Kaiti';
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
font-size: 36px;
|
||||
line-height: 50px;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
color: #c50001;
|
||||
margin-bottom: 62px;
|
||||
}
|
||||
|
||||
.lg_card .lg_card_title {
|
||||
font-family: 'PingFang';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-size: 16px;
|
||||
line-height: 22px;
|
||||
margin-bottom: 24px;
|
||||
text-align: left;
|
||||
// font-family: 'Kaiti';
|
||||
}
|
||||
|
||||
.lg_card_error {
|
||||
text-align: left;
|
||||
color: #e4393c;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.footer {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
bottom: 48px;
|
||||
color: rgba(0, 0, 0, 0.4);
|
||||
font-family: 'PingFang';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-size: 14px;
|
||||
}
|
||||
</style>
|
||||
284
nervui-party-construction/src/view/login/register.vue
Normal file
@@ -0,0 +1,284 @@
|
||||
<!-- @format -->
|
||||
|
||||
<template>
|
||||
<div style="height: 100%">
|
||||
<a-layout style="height: 100%">
|
||||
<a-layout-content class="center-content">
|
||||
<div class="lg_card">
|
||||
<a-page-header style="border: 1px solid rgb(235, 237, 240)" @back="$router.back()">
|
||||
<template #backIcon>
|
||||
<div class="back_icon"><left-outlined style="font-size: 20px" /><h1>返回</h1></div>
|
||||
</template>
|
||||
<template #title>
|
||||
<h1 class="lg_card_title">注册党建知识答题平台</h1>
|
||||
</template>
|
||||
</a-page-header>
|
||||
<ns-form
|
||||
:labelWrap="true"
|
||||
style="margin: 32px auto 0; width: 50%"
|
||||
ref="mainRef"
|
||||
formLayout="vertical"
|
||||
:schemas="formSchema"
|
||||
:model="data"
|
||||
v-bind="$attrs" />
|
||||
<a-button
|
||||
@click="submit"
|
||||
:loading="loading"
|
||||
:disabled="!mainRef?.validateResult"
|
||||
type="primary"
|
||||
style="
|
||||
width: 420px;
|
||||
height: 52px;
|
||||
border-radius: 4px;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
"
|
||||
>注册</a-button
|
||||
>
|
||||
<div class="login_link" @click="$router.push({ name: 'login' })">
|
||||
登录已有账号<right-outlined style="font-size: 14px" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">Copyright 2021 鼎云科技 All Rights Reserved</div>
|
||||
</a-layout-content>
|
||||
</a-layout>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent, ref, watch } from 'vue';
|
||||
import { LeftOutlined, RightOutlined } from '@ant-design/icons-vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { NsMessage } from '/nerv-lib/component/message';
|
||||
import { http } from '/nerv-lib/util/http';
|
||||
import { router } from '/nerv-lib/saas/router';
|
||||
export default defineComponent({
|
||||
name: 'UserRegister',
|
||||
components: {
|
||||
LeftOutlined,
|
||||
RightOutlined,
|
||||
},
|
||||
setup() {
|
||||
const mainRef = ref();
|
||||
let data = ref({});
|
||||
let loading = ref(false);
|
||||
watch(
|
||||
() => data.value.password,
|
||||
() => {
|
||||
if (data.value.confirmPassword) mainRef.value.formElRef.validateFields('confirmPassword');
|
||||
},
|
||||
{ deep: true },
|
||||
);
|
||||
let formSchema = ref([
|
||||
{
|
||||
field: 'telNum',
|
||||
},
|
||||
{
|
||||
label: '手机号码',
|
||||
field: 'accountName',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
placeholder: '请输入手机号作为登录账号',
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
validator: async (rule, value) => {
|
||||
data.value.telNum = value;
|
||||
if (!value) return Promise.reject('请输入手机号码');
|
||||
if (!/^[1][3456789][\d]{9}$/.test(value))
|
||||
return Promise.reject('请输入正确的手机号码');
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '学员姓名',
|
||||
field: 'userName',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
placeholder: '请输入真实姓名',
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
validator: async (rule, value) => {
|
||||
const _reg = /^[^\x00-\xff]$/;
|
||||
if (!value) return Promise.reject('请输入真实姓名');
|
||||
if (value.includes(' ')) return Promise.reject('不支持空格');
|
||||
if (value) {
|
||||
let strLength = 0;
|
||||
let strArray = value.split('');
|
||||
strArray.forEach((item) => {
|
||||
if (_reg.test(item)) {
|
||||
strLength += 2;
|
||||
} else {
|
||||
strLength += 1;
|
||||
}
|
||||
});
|
||||
if (strLength > 32) {
|
||||
return Promise.reject('不支持空格,长度不得超过32个字符,中文占两个字符');
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '用户密码',
|
||||
field: 'password',
|
||||
component: 'NsInputPassword',
|
||||
componentProps: {
|
||||
placeholder: '请输入登录密码,密码6~18位,支持字母、数字、特殊字符!@#$%^&*',
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
validator: async (rule, value) => {
|
||||
let reg = /^[0-9a-zA-Z!@#$%^&*]{6,18}$/;
|
||||
if (!value) return Promise.reject('请输入登录密码');
|
||||
if (!reg.test(value))
|
||||
return Promise.reject('支持数字、字母、特殊字符!@#$%^&*,6~18位字符');
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '确认密码',
|
||||
field: 'confirmPassword',
|
||||
component: 'NsInputPassword',
|
||||
componentProps: {
|
||||
placeholder: '请再次输入密码',
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
validator: async (rule, value) => {
|
||||
if (value !== data.value.password) return Promise.reject('两次密码输入不一致');
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
]);
|
||||
const submit = () => {
|
||||
loading.value = true;
|
||||
mainRef.value
|
||||
.triggerSubmit()
|
||||
.then((data) => {
|
||||
http
|
||||
.post('/api/exam_op/objs/admin/WorkUser/register', data)
|
||||
.then((res) => {
|
||||
loading.value = false;
|
||||
NsMessage.success('注册成功', 1, () => {
|
||||
router.push({ path: '/login' });
|
||||
});
|
||||
})
|
||||
.catch((err) => {
|
||||
loading.value = false;
|
||||
});
|
||||
})
|
||||
.catch((err) => {
|
||||
loading.value = false;
|
||||
});
|
||||
};
|
||||
return {
|
||||
data,
|
||||
formSchema,
|
||||
mainRef,
|
||||
submit,
|
||||
loading,
|
||||
};
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
:deep(.center-content) {
|
||||
background: url('./img/background.png') center center no-repeat;
|
||||
background-size: cover;
|
||||
|
||||
// background-position-y: -120px;
|
||||
margin: 0;
|
||||
}
|
||||
.ant-layout-content {
|
||||
height: calc(100vh - 112px);
|
||||
width: 100%;
|
||||
min-height: 400px;
|
||||
}
|
||||
.lg_card {
|
||||
width: 1200px;
|
||||
height: 560px;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 23%;
|
||||
transform: translateX(-50%);
|
||||
background: #ffffff;
|
||||
border: 1px solid rgba(0, 0, 0, 0.06);
|
||||
}
|
||||
.ant-page-header {
|
||||
border: none !important;
|
||||
border-bottom: 1px solid rgb(235, 237, 240) !important;
|
||||
height: 84px;
|
||||
}
|
||||
.back_icon {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
h1 {
|
||||
margin: 0;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
color: rgba(0, 0, 0, 0.85);
|
||||
}
|
||||
}
|
||||
.lg_card_title {
|
||||
font-family: 'PingFang SC';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-size: 32px;
|
||||
line-height: 36px;
|
||||
text-align: center;
|
||||
color: #172e3d;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
bottom: 8px;
|
||||
}
|
||||
:deep(.ant-page-header-heading) {
|
||||
height: 100%;
|
||||
align-items: center;
|
||||
}
|
||||
.login_link {
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-radius: 4px;
|
||||
position: absolute;
|
||||
bottom: 32px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
&:hover {
|
||||
color: #c50001;
|
||||
}
|
||||
}
|
||||
.footer {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
bottom: 48px;
|
||||
color: rgba(0, 0, 0, 0.4);
|
||||
font-family: 'PingFang';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-size: 14px;
|
||||
}
|
||||
:deep(.ant-input-affix-wrapper) {
|
||||
height: 52px;
|
||||
}
|
||||
:deep(.ant-form-item-label-wrap) {
|
||||
line-height: 52px;
|
||||
}
|
||||
:deep(.ant-col-6) {
|
||||
flex: 0 0 20%;
|
||||
}
|
||||
</style>
|
||||
117
nervui-party-construction/src/view/login/service.ts
Normal file
@@ -0,0 +1,117 @@
|
||||
/** @format */
|
||||
|
||||
const base64EncodeChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
||||
const base64DecodeChars = [
|
||||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
|
||||
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27,
|
||||
28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
|
||||
-1, -1, -1, -1, -1,
|
||||
];
|
||||
|
||||
//加密方法
|
||||
export const base64encode = (input: string) => {
|
||||
if (!input) {
|
||||
return '';
|
||||
}
|
||||
let output = '';
|
||||
let chr1, chr2, chr3, enc1, enc2, enc3, enc4;
|
||||
let i = 0;
|
||||
input = _utf8_encode(input);
|
||||
while (i < input.length) {
|
||||
chr1 = input.charCodeAt(i++);
|
||||
chr2 = input.charCodeAt(i++);
|
||||
chr3 = input.charCodeAt(i++);
|
||||
enc1 = chr1 >> 2;
|
||||
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
|
||||
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
|
||||
enc4 = chr3 & 63;
|
||||
if (isNaN(chr2)) {
|
||||
enc3 = enc4 = 64;
|
||||
} else if (isNaN(chr3)) {
|
||||
enc4 = 64;
|
||||
}
|
||||
output =
|
||||
output +
|
||||
base64EncodeChars.charAt(enc1) +
|
||||
base64EncodeChars.charAt(enc2) +
|
||||
base64EncodeChars.charAt(enc3) +
|
||||
base64EncodeChars.charAt(enc4);
|
||||
}
|
||||
return output;
|
||||
};
|
||||
|
||||
//解密方法
|
||||
export const base64decode = (input: string) => {
|
||||
let output = '';
|
||||
let chr1, chr2, chr3;
|
||||
let enc1, enc2, enc3, enc4;
|
||||
let i = 0;
|
||||
if (!input) {
|
||||
return '';
|
||||
}
|
||||
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '');
|
||||
// input = input.replace(/[^A-F0-9]/g, "");
|
||||
while (i < input.length) {
|
||||
enc1 = base64EncodeChars.indexOf(input.charAt(i++));
|
||||
enc2 = base64EncodeChars.indexOf(input.charAt(i++));
|
||||
enc3 = base64EncodeChars.indexOf(input.charAt(i++));
|
||||
enc4 = base64EncodeChars.indexOf(input.charAt(i++));
|
||||
chr1 = (enc1 << 2) | (enc2 >> 4);
|
||||
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
|
||||
chr3 = ((enc3 & 3) << 6) | enc4;
|
||||
output = output + String.fromCharCode(chr1);
|
||||
if (enc3 != 64) {
|
||||
output = output + String.fromCharCode(chr2);
|
||||
}
|
||||
if (enc4 != 64) {
|
||||
output = output + String.fromCharCode(chr3);
|
||||
}
|
||||
}
|
||||
output = _utf8_decode(output);
|
||||
return output;
|
||||
};
|
||||
|
||||
export const _utf8_encode = (string: string) => {
|
||||
string = string.replace(/\r\n/g, '\n');
|
||||
let utftext = '';
|
||||
for (let n = 0; n < string.length; n++) {
|
||||
const c = string.charCodeAt(n);
|
||||
if (c < 128) {
|
||||
utftext += String.fromCharCode(c);
|
||||
} else if (c > 127 && c < 2048) {
|
||||
utftext += String.fromCharCode((c >> 6) | 192);
|
||||
utftext += String.fromCharCode((c & 63) | 128);
|
||||
} else {
|
||||
utftext += String.fromCharCode((c >> 12) | 224);
|
||||
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
|
||||
utftext += String.fromCharCode((c & 63) | 128);
|
||||
}
|
||||
}
|
||||
return utftext;
|
||||
};
|
||||
|
||||
// private method for UTF-8 decoding
|
||||
export const _utf8_decode = (utftext: string) => {
|
||||
let string = '';
|
||||
let i = 0;
|
||||
let [c, c2, c3] = [0, 0, 0];
|
||||
while (i < utftext.length) {
|
||||
c = utftext.charCodeAt(i);
|
||||
if (c < 128) {
|
||||
string += String.fromCharCode(c);
|
||||
i++;
|
||||
} else if (c > 191 && c < 224) {
|
||||
c2 = utftext.charCodeAt(i + 1);
|
||||
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
|
||||
i += 2;
|
||||
} else {
|
||||
c2 = utftext.charCodeAt(i + 1);
|
||||
c3 = utftext.charCodeAt(i + 2);
|
||||
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
|
||||
i += 3;
|
||||
}
|
||||
}
|
||||
return string;
|
||||
};
|
||||
719
nervui-party-construction/src/view/roleType/addOrEdit.vue
Normal file
@@ -0,0 +1,719 @@
|
||||
<template>
|
||||
<div>
|
||||
<ns-view-add-form
|
||||
:schemas="formSchema"
|
||||
:model="data"
|
||||
:title="collectionCode?'编辑角色':'添加角色'"
|
||||
:api="collectionCode?'/api/exam_op/objs/ResCollResource/save':'/api/exam_op/objs/ResCollResource/save'"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { defineComponent, reactive, ref, provide, watch } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { http } from '/nerv-lib/util/http';
|
||||
import { random } from 'lodash-es';
|
||||
import RoleAuthority from './component/roleAuthority.vue';
|
||||
export default defineComponent({
|
||||
name: 'roleTypeAddOrEdit',
|
||||
components: {
|
||||
RoleAuthority
|
||||
},
|
||||
setup() {
|
||||
provide('components', () => {
|
||||
return {RoleAuthority}
|
||||
});
|
||||
const router = useRouter();
|
||||
let data = ref({});
|
||||
const collectionCode = router.currentRoute.value.query['collectionCode'];
|
||||
const collectionName = router.currentRoute.value.query['collectionName'];
|
||||
const describe = router.currentRoute.value.query['describe'];
|
||||
const synOrganize = router.currentRoute.value.query['synOrganize'];
|
||||
// 角色基本信息
|
||||
data.value['collectionName'] = collectionName;
|
||||
data.value['describe'] = describe;
|
||||
data.value['collectionCode'] = collectionCode;
|
||||
data.value['synOrganize'] = synOrganize?synOrganize:0;
|
||||
let show= ref(false)
|
||||
let originalForm= ref([
|
||||
{
|
||||
field: 'collectionCode',
|
||||
show: false,
|
||||
component: 'NsInput',
|
||||
},
|
||||
{
|
||||
field: 'fields',
|
||||
label: '',
|
||||
displayFormItem: false,
|
||||
class: 'ns-form-item-full',
|
||||
component: 'NsChildForm',
|
||||
componentProps: {
|
||||
title: '基本信息',
|
||||
schemas: [
|
||||
{
|
||||
field: 'collectionName',
|
||||
label: '角色名称',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
placeholder: '请输入',
|
||||
disabled: collectionCode && true,
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: '不得为空',
|
||||
trigger: 'blur',
|
||||
},
|
||||
// {
|
||||
// pattern: /^[\u4E00-\u9FA5]{1,12}$/,
|
||||
// message: '仅支持中文汉字,长度范围最少2位',
|
||||
// trigger: 'blur',
|
||||
// },
|
||||
],
|
||||
},
|
||||
{
|
||||
field: 'describe',
|
||||
label: '角色描述',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
placeholder: '请输入',
|
||||
// disabled: collectionCode && true,
|
||||
},
|
||||
rules: [
|
||||
// {
|
||||
// required: true,
|
||||
// message: '不得为空',
|
||||
// trigger: 'blur',
|
||||
// },
|
||||
{
|
||||
pattern: /^.{0,150}$/,
|
||||
message: '由18位阿拉伯数字或大写英文字母组成',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
field: 'synOrganize',
|
||||
component: 'NsSwitch',
|
||||
label: '是否同步修改企业',
|
||||
componentProps: {
|
||||
checkInfo: {
|
||||
checked: '是',
|
||||
unChecked: '否',
|
||||
},
|
||||
checkedValue: 1,
|
||||
unCheckedValue: 0
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'fields',
|
||||
label: '',
|
||||
displayFormItem: false,
|
||||
class: 'ns-form-item-full',
|
||||
component: 'NsChildForm',
|
||||
componentProps: {
|
||||
title: '角色权限设置',
|
||||
schemas: [
|
||||
{
|
||||
field: 'resourceCodeMap',
|
||||
label: '',
|
||||
class: 'ns-form-item-full ns-form-item-padding',
|
||||
component: 'RoleAuthority',
|
||||
componentProps: {
|
||||
placeholder: '请输入',
|
||||
field: 'resourceCodeMap',
|
||||
dataSource: data.value,
|
||||
// disabled: collectionCode && true,
|
||||
},
|
||||
rules: [
|
||||
// {
|
||||
// required: true,
|
||||
// message: '不得为空',
|
||||
// trigger: 'blur',
|
||||
// },
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
])
|
||||
|
||||
function load(): void {
|
||||
if (!collectionCode) {
|
||||
return;
|
||||
}
|
||||
const requestArr = [];
|
||||
// 角色基本信息
|
||||
// const request1 = http.get('/api/exam_op/objs/Role/detail', { collectionCode: collectionCode }).then()// 角色权限
|
||||
const request2 = http.get('/api/exam_op/objs/ResCollResource', { collectionCode: collectionCode }).then()
|
||||
const request3 = http.get('/api/exam_op/objs/Resources/AllList').then()// 获取当前应用所有权限资源
|
||||
// requestArr.push(request1);
|
||||
requestArr.push(request2);
|
||||
requestArr.push(request3);
|
||||
Promise.all(requestArr).then(res => {
|
||||
if (res && res.length === 2) {
|
||||
// const roleInfo = res[0] && res[0]['data'] ? res[0]['data'] : '';
|
||||
const roleAuth = res[0] && res[0]['data']['data'] ? res[0]['data']['data'] : '';
|
||||
const allResources = res[1] && res[1]['data'] ? res[1]['data'] : [];
|
||||
// 赋予角色基本信息
|
||||
// if (collectionName) {
|
||||
// 角色基本信息
|
||||
data.value['collectionName'] = collectionName;
|
||||
data.value['describe'] = describe;
|
||||
data.value['collectionCode'] = collectionCode;
|
||||
// }
|
||||
// 全局应用权限资源信息,数据权限处理, 过滤form中的全局数据权限项
|
||||
handleDataAuth(allResources, originalForm.value);
|
||||
show.value= true
|
||||
|
||||
// 本角色权限资源信息
|
||||
if (roleAuth) {
|
||||
if (typeof roleAuth == 'string') {
|
||||
try {
|
||||
JSON.parse(roleAuth);
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
data.value['resourceCodeMap'] = JSON.parse(roleAuth);
|
||||
} else if (roleAuth instanceof Array) {
|
||||
data.value['resourceCodeMap'] = roleAuth;
|
||||
}
|
||||
}
|
||||
}
|
||||
}).catch(error => {
|
||||
show.value= true
|
||||
// this.messageService.error('错误', '获得模块信息失败, 错误原因: ' + error, error);
|
||||
});
|
||||
}
|
||||
async function loadResource() {
|
||||
/**
|
||||
* 获得module.json中的配置数据
|
||||
*/
|
||||
await http
|
||||
.get('/api/exam_op/objs/Resources/AllList')
|
||||
.then((res) => {
|
||||
if(res.data){
|
||||
handleDataAuth(res.data, originalForm.value);
|
||||
show.value= true
|
||||
}else{
|
||||
show.value= true
|
||||
}
|
||||
});
|
||||
}
|
||||
if(collectionCode){
|
||||
load()
|
||||
}else{
|
||||
loadResource()
|
||||
}
|
||||
// handleDataAuth([
|
||||
// {
|
||||
// "appLabel": "养老应用a",
|
||||
// "appId": "11100as",
|
||||
// "menus": [
|
||||
// {
|
||||
// "extend": "扩展信息",
|
||||
// "code": "index",
|
||||
// "parentCode": "",
|
||||
// "icon": "",
|
||||
// "name": "index",
|
||||
// "label": "首页",
|
||||
// "sort": 0,
|
||||
// "type": "other"
|
||||
// },
|
||||
// {
|
||||
// "code": "business-center",
|
||||
// "parentCode": "",
|
||||
// "icon": "",
|
||||
// "name": "business-center",
|
||||
// "label": "业务中心",
|
||||
// "menus": [
|
||||
// {
|
||||
// "code": "advice-service",
|
||||
// "parentCode": "business-center",
|
||||
// "icon": "",
|
||||
// "name": "advice-service",
|
||||
// "label": "咨询入住",
|
||||
// "menus": [
|
||||
// {
|
||||
// "code": "advice-register",
|
||||
// "parentCode": "advice-service",
|
||||
// "name": "advice-register",
|
||||
// "label": "咨询登记",
|
||||
// "menus": [
|
||||
// {
|
||||
// "code": "advice-register/add",
|
||||
// "parentCode": "advice-register",
|
||||
// "name": "add",
|
||||
// "label": "新增",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "advice-register/remove",
|
||||
// "parentCode": "advice-register",
|
||||
// "name": "remove",
|
||||
// "label": "删除",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "advice-register/edit",
|
||||
// "parentCode": "advice-register",
|
||||
// "name": "edit",
|
||||
// "label": "编辑",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "advice-register/export",
|
||||
// "parentCode": "advice-register",
|
||||
// "name": "export",
|
||||
// "label": "导出",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "advice-register/checkIn",
|
||||
// "parentCode": "advice-register",
|
||||
// "name": "checkIn",
|
||||
// "label": "入住",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// }
|
||||
// ],
|
||||
// "sort": 0,
|
||||
// "type": "menus"
|
||||
// },
|
||||
// {
|
||||
// "code": "order-register",
|
||||
// "parentCode": "advice-service",
|
||||
// "name": "order-register",
|
||||
// "label": "预约登记",
|
||||
// "menus": [
|
||||
// {
|
||||
// "code": "order-register/detail",
|
||||
// "parentCode": "order-register",
|
||||
// "name": "detail",
|
||||
// "label": "详情",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "order-register/add",
|
||||
// "parentCode": "order-register",
|
||||
// "name": "add",
|
||||
// "label": "新增",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "order-register/remove",
|
||||
// "parentCode": "order-register",
|
||||
// "name": "remove",
|
||||
// "label": "删除",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "order-register/edit",
|
||||
// "parentCode": "order-register",
|
||||
// "name": "edit",
|
||||
// "label": "编辑",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "order-register/export",
|
||||
// "parentCode": "order-register",
|
||||
// "name": "export",
|
||||
// "label": "导出",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "order-register/cancel",
|
||||
// "parentCode": "order-register",
|
||||
// "name": "cancel",
|
||||
// "label": "取消",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "order-register/checkIn",
|
||||
// "parentCode": "order-register",
|
||||
// "name": "unsubscribe",
|
||||
// "label": "入住",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// }
|
||||
// ],
|
||||
// "sort": 0,
|
||||
// "type": "menus"
|
||||
// },
|
||||
// {
|
||||
// "code": "check-in",
|
||||
// "parentCode": "advice-service",
|
||||
// "name": "check-in",
|
||||
// "label": "入住登记",
|
||||
// "menus": [
|
||||
// {
|
||||
// "code": "check-in/add",
|
||||
// "parentCode": "check-in",
|
||||
// "name": "add",
|
||||
// "label": "新增",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "check-in/remove",
|
||||
// "parentCode": "check-in",
|
||||
// "name": "remove",
|
||||
// "label": "删除",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "check-in/edit",
|
||||
// "parentCode": "check-in",
|
||||
// "name": "edit",
|
||||
// "label": "编辑",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "check-in/export",
|
||||
// "parentCode": "check-in",
|
||||
// "name": "export",
|
||||
// "label": "导出数据",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "check-in/import",
|
||||
// "parentCode": "check-in",
|
||||
// "name": "import",
|
||||
// "label": "批量导入",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// }
|
||||
// ],
|
||||
// "sort": 0,
|
||||
// "type": "menus"
|
||||
// },
|
||||
// {
|
||||
// "code": "bed-search",
|
||||
// "parentCode": "advice-service",
|
||||
// "name": "bed-search",
|
||||
// "label": "床位查询",
|
||||
// "sort": 0,
|
||||
// "type": "menus"
|
||||
// },
|
||||
// {
|
||||
// "code": "charging-standard",
|
||||
// "parentCode": "advice-service",
|
||||
// "name": "charging-standard",
|
||||
// "label": "收费标准",
|
||||
// "sort": 0,
|
||||
// "type": "menus"
|
||||
// }
|
||||
// ],
|
||||
// "sort": 0,
|
||||
// "type": "menus"
|
||||
// }
|
||||
// ],
|
||||
// "sort": 0,
|
||||
// "type": "menus"
|
||||
// }
|
||||
// ],
|
||||
// "dataScope": {
|
||||
// "dataTips": "",
|
||||
// "scopeType": "",
|
||||
// "dataConfig": {},
|
||||
// "scopeMode": 0
|
||||
// },
|
||||
// "version": "1.4.4.201"
|
||||
// },
|
||||
// {
|
||||
// "appLabel": "养老应用app",
|
||||
// "appId": "11100as2",
|
||||
// "menus": [
|
||||
// {
|
||||
// "code": "homepage",
|
||||
// "parentCode": "",
|
||||
// "icon": "",
|
||||
// "name": "homepage",
|
||||
// "label": "主页",
|
||||
// "menus": [
|
||||
// {
|
||||
// "code": "gaffer-information",
|
||||
// "parentCode": "homepage",
|
||||
// "name": "gaffer-information",
|
||||
// "label": "老人信息",
|
||||
// "menus": [
|
||||
// {
|
||||
// "code": "gaffer-list",
|
||||
// "parentCode": "gaffer-information",
|
||||
// "name": "gaffer-list",
|
||||
// "label": "老人列表",
|
||||
// "sort": 0,
|
||||
// "type": "menus"
|
||||
// },
|
||||
// {
|
||||
// "code": "basic-information",
|
||||
// "parentCode": "gaffer-information",
|
||||
// "name": "basic-information",
|
||||
// "label": "基本信息",
|
||||
// "sort": 0,
|
||||
// "type": "menus"
|
||||
// }
|
||||
// ],
|
||||
// "sort": 0,
|
||||
// "type": "menus"
|
||||
// },
|
||||
// {
|
||||
// "code": "service-transact",
|
||||
// "parentCode": "homepage",
|
||||
// "name": "service-transact",
|
||||
// "label": "服务办理",
|
||||
// "menus": [
|
||||
// {
|
||||
// "code": "bed-record",
|
||||
// "parentCode": "service-transact",
|
||||
// "name": "bed-record",
|
||||
// "label": "换床记录",
|
||||
// "menus": [
|
||||
// {
|
||||
// "code": "bed-record/detail",
|
||||
// "parentCode": "bed-record",
|
||||
// "name": "detail",
|
||||
// "label": "查看",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "bed-record/add",
|
||||
// "parentCode": "bed-record",
|
||||
// "name": "add",
|
||||
// "label": "新增",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "bed-record/edit",
|
||||
// "parentCode": "bed-record",
|
||||
// "name": "edit",
|
||||
// "label": "编辑",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "bed-record/cancel",
|
||||
// "parentCode": "bed-record",
|
||||
// "name": "cancel",
|
||||
// "label": "取消",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// }
|
||||
// ],
|
||||
// "sort": 0,
|
||||
// "type": "menus"
|
||||
// },
|
||||
// {
|
||||
// "code": "nursing-level-change",
|
||||
// "parentCode": "service-transact",
|
||||
// "name": "nursing-level-change",
|
||||
// "label": "护理等级更换",
|
||||
// "menus": [
|
||||
// {
|
||||
// "code": "nursing-level-change/detail",
|
||||
// "parentCode": "nursing-level-change",
|
||||
// "name": "detail",
|
||||
// "label": "查看",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "nursing-level-change/add",
|
||||
// "parentCode": "nursing-level-change",
|
||||
// "name": "add",
|
||||
// "label": "新增",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "nursing-level-change/edit",
|
||||
// "parentCode": "nursing-level-change",
|
||||
// "name": "edit",
|
||||
// "label": "编辑",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "nursing-level-change/cancel",
|
||||
// "parentCode": "nursing-level-change",
|
||||
// "name": "cancel",
|
||||
// "label": "取消",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// }
|
||||
// ],
|
||||
// "sort": 0,
|
||||
// "type": "menus"
|
||||
// },
|
||||
// {
|
||||
// "code": "nursing-group-change",
|
||||
// "parentCode": "service-transact",
|
||||
// "name": "nursing-group-change",
|
||||
// "label": "护理组更换",
|
||||
// "menus": [
|
||||
// {
|
||||
// "code": "nursing-group-change/detail",
|
||||
// "parentCode": "nursing-group-change",
|
||||
// "name": "detail",
|
||||
// "label": "查看",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "nursing-group-change/add",
|
||||
// "parentCode": "nursing-group-change",
|
||||
// "name": "add",
|
||||
// "label": "新增",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "nursing-group-change/edit",
|
||||
// "parentCode": "nursing-group-change",
|
||||
// "name": "edit",
|
||||
// "label": "编辑",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// },
|
||||
// {
|
||||
// "code": "nursing-group-change/cancel",
|
||||
// "parentCode": "nursing-group-change",
|
||||
// "name": "cancel",
|
||||
// "label": "取消",
|
||||
// "sort": 0,
|
||||
// "type": "op"
|
||||
// }
|
||||
// ],
|
||||
// "sort": 0,
|
||||
// "type": "menus"
|
||||
// }
|
||||
// ],
|
||||
// "sort": 0,
|
||||
// "type": "menus"
|
||||
// }
|
||||
// ],
|
||||
// "sort": 0,
|
||||
// "type": "menus"
|
||||
// }
|
||||
// ],
|
||||
// "version": "1.4.4.7"
|
||||
// }
|
||||
// ],originalForm.value)
|
||||
|
||||
async function handleDataAuth(allResources, form) {
|
||||
|
||||
// 1. 存储所有资源权限
|
||||
data.value['allResources'] = allResources;
|
||||
|
||||
// 2. 确定数据权限模式
|
||||
/** 目前考虑场景:
|
||||
* dataScope['scopeMode']为 0:没有数据权限,1. 有全局数据权限 2. 各自有数据权限
|
||||
* 1. 全局数据权限:各应用都没有数据权限,即各资源无dataScope参数 或 dataScope下面参数 scopeMode = 0
|
||||
* 2. 局部数据权限:各应用有各自数据权限, 即 dataScope下面参数 scopeMode = 2
|
||||
* 3. todo 各个应用有的是全局数据权限,有的是独有的数据权限:暂未处理该场景*/
|
||||
if (allResources && allResources instanceof Array) {
|
||||
let modeArr = [];
|
||||
await allResources.forEach(resource => {
|
||||
if (resource['dataScope']) {
|
||||
const dataScope = resource['dataScope'];
|
||||
if (Object.keys(dataScope).length > 0) {
|
||||
const scopeMode = dataScope['scopeMode'];
|
||||
modeArr.push(scopeMode);
|
||||
if (scopeMode == 1) {
|
||||
data.value['commonDataScope'] = dataScope; // 存在全局数据权限,任取一个应用的数据权限定义
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
if (modeArr.length == 0) {
|
||||
data.value['dataAuthMode'] = 0; // 无数据权限
|
||||
} else if (modeArr.length > 0) {
|
||||
let newArr = Array.from(new Set(modeArr));
|
||||
if (newArr.includes(1)) { // 可能有全局数据权限
|
||||
if (newArr.includes(2)) {
|
||||
// this.messageService.confirm('提示', '权限资源注册有误'); // 有的有全局数据权限,有的有自己的数据权限
|
||||
|
||||
return;
|
||||
} else {
|
||||
data.value['dataAuthMode'] = 1; // 全局数据权限
|
||||
}
|
||||
} else { // 无数据权限或者有的含有自己的数据权限
|
||||
if (newArr.includes(2)) { // 可能有各自的数据权限
|
||||
data.value['dataAuthMode'] = 2; // 局部数据权限
|
||||
} else {
|
||||
data.value['dataAuthMode'] = 0; // 无数据权限
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 3.根据数据模式参数确定全局数据权限是否显示
|
||||
// if (data.value['dataAuthMode'] != 1) {
|
||||
// const tempForm = JSON.parse(JSON.stringify(form));
|
||||
// if (tempForm) {
|
||||
// tempForm = tempForm.filter(fd => {
|
||||
// return fd['field'] != 'dataScope';
|
||||
// });
|
||||
// originalForm = tempForm;
|
||||
// }
|
||||
// } else {
|
||||
// originalForm = form;
|
||||
// }
|
||||
}
|
||||
// async function getData() {
|
||||
// await http
|
||||
// .get('/api/exam_op/objs/enterprise/detail', { collectionCode: collectionCode })
|
||||
// .then((res) => {
|
||||
// if(res.data){
|
||||
// data.value= res.data
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// if(collectionCode){
|
||||
// getData()
|
||||
// }
|
||||
let formSchema = ref([]);
|
||||
watch(
|
||||
() => show.value,
|
||||
() => {
|
||||
if (show.value) {
|
||||
formSchema.value = originalForm.value
|
||||
}
|
||||
},
|
||||
{
|
||||
immediate: true,
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return {
|
||||
data,
|
||||
formSchema,
|
||||
collectionCode,
|
||||
collectionName,
|
||||
describe
|
||||
};
|
||||
},
|
||||
});
|
||||
</script>
|
||||