creat:新建仓库

This commit is contained in:
大黑 2025-12-20 14:20:26 +08:00
parent 53dd64cb2c
commit 6119956bd4
281 changed files with 331573 additions and 0 deletions

0
({ Normal file
View File

3
.browserslistrc Normal file
View File

@ -0,0 +1,3 @@
> 1%
last 2 versions
not ie <= 9

62
.cz-config.js Normal file
View File

@ -0,0 +1,62 @@
/*
* @Author: DevinShi
* @Date: 2020-02-03 09:01:16
* @LastEditors: DevinShi
* @LastEditTime: 2020-02-03 09:08:38
* @Description: file content description
*/
"use strict";
module.exports = {
types: [
{ value: "feat", name: "功能: 一个新的功能" },
{ value: "fix", name: "修复: 修复一个Bug" },
{ value: "docs", name: "文档: 变更的只有文档" },
{ value: "style", name: "格式: 空格, 分号等格式修复" },
{ value: "refactor", name: "重构: 代码重构,注意和特性、修复区分开" },
{ value: "perf", name: "性能: 提升性能" },
{ value: "test", name: "测试: 添加一个测试" },
{ value: "chore", name: "工具: 开发工具变动(构建、脚手架工具等)" },
{ value: "revert", name: "回滚: 代码回退" }
],
// scopes: [
// {name: '模块1'},
// {name: '模块2'},
// {name: '模块3'},
// {name: '模块4'}
// ],
// it needs to match the value for field type. Eg.: 'fix'
scopeOverrides: {
fix: [
{ name: "功能" },
{ name: "样式" },
{ name: "e2e测试" },
{ name: "单元测试" }
],
chore: [{
name: '依赖修改',
}, {
name: '打包工具'
}]
},
// override the messages, defaults are as follows
messages: {
type: "选择一种你的提交类型:",
scope: "选择一个scope (可选):",
// used if allowCustomScopes is true
customScope: "自定义一个scope用于这次提交:",
subject: "短说明:\n",
body: '长说明,使用"|"换行(可选)\n',
breaking: "非兼容性说明 (可选):\n",
footer: "关联关闭的issue例如#31, #34(可选):\n",
confirmCommit: "确定提交说明?"
},
allowCustomScopes: true,
allowBreakingChanges: ["feat", "fix"],
// limit subject length
subjectLimit: 100
};

1
.czrc Normal file
View File

@ -0,0 +1 @@
{ "path": "node_modules/cz-customizable" }

20
.editorconfig Normal file
View File

@ -0,0 +1,20 @@
root = true
[*]
charset=utf-8
end_of_line=lf
insert_final_newline=false
indent_style=space
indent_size=2
[{.eslintrc,.babelrc,.stylelintrc,*.json}]
indent_style=space
indent_size=2
[*.less]
indent_style=space
indent_size=2
[*.{js,jsx,ts,tsx,vue,html}]
indent_style=space
indent_size=2

3
.env Normal file
View File

@ -0,0 +1,3 @@
VUE_APP_BASE_DOMAIN=http://dcloud-demo.definesys.cn:31213
VUE_APP_TENANT_ID=254638499280453633
VUE_APP_PUBLIC_PATH=/app/

17
.eslintignore Normal file
View File

@ -0,0 +1,17 @@
*.sh
node_modules
lib
*.md
*.scss
*.woff
*.ttf
.vscode
.idea
/build/
/dist/
/public/
/script/
/config/
/docs
.vscode

31
.eslintrc.js Normal file
View File

@ -0,0 +1,31 @@
module.exports = {
root: true,
env: {
node: true
},
extends: ['plugin:vue/recommended', '@vue/standard'],
rules: {
// 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
// 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'space-before-function-paren': 'off',
// 禁止在计算属性中对属性修改
'vue/no-side-effects-in-computed-properties': 'off',
// 属性空格
'vue/attribute-hyphenation': 'off',
'vue/html-closing-bracket-newline': 'off',
'vue/html-self-closing': 'off',
'vue/require-default-prop': 'off',
'vue/max-attributes-per-line': 'off'
},
parserOptions: {
parser: 'babel-eslint'
},
overrides: [
{
files: ['**/__tests__/*.{j,t}s?(x)'],
env: {
jest: true
}
}
]
}

26
.gitignore vendored Normal file
View File

@ -0,0 +1,26 @@
.DS_Store
node_modules
/dist
/tests/e2e/reports/
selenium-debug.log
chromedriver.log
geckodriver.log
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

1
.npmrc Normal file
View File

@ -0,0 +1 @@
sass_binary_site=https://registry.npmmirror.com/-/binary/node-sass

10
.stylelintignore Normal file
View File

@ -0,0 +1,10 @@
*.js
*.png
*.eot
*.ttf
*.woff
/dist/
/lib/
/public/
.output.js

0
0 Normal file
View File

BIN
apaas-custom-mydemo.zip Normal file

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,139 @@
{
"entry": "index.js",
"copyAssets": ["public/custom/apaas-custom-mydemo"],
"router": {
"apaas-custom-modalContorl":{
"name": "apaas-custom-modalContorl",
"path": "apaas-custom-modalContorl",
"meta": {
"title": "模板管理"
}
},
"apaas-custom-selfEnginedata":{
"name": "apaas-custom-selfEnginedata",
"path": "apaas-custom-selfEnginedata",
"meta": {
"title": "玉柴发动机数据"
}
},
"apaas-custom-otherEnginedata":{
"name": "apaas-custom-otherEnginedata",
"path": "apaas-custom-otherEnginedata",
"meta": {
"title": "竞品发动机数据"
}
},
"apaas-custom-checkData":{
"name": "apaas-custom-checkData",
"path": "apaas-custom-checkData",
"meta": {
"title": "数据检查"
}
},
"apaas-custom-report":{
"name": "apaas-custom-report",
"path": "apaas-custom-report",
"meta": {
"title": "对标报告"
}
},
"apaas-custom-reportDetail":{
"name": "apaas-custom-reportDetail",
"path": "apaas-custom-reportDetail",
"meta": {
"title": "报告详情"
}
},
"apaas-custom-reportCheck":{
"name": "apaas-custom-reportCheck",
"path": "apaas-custom-reportCheck",
"meta": {
"title": "报告检查"
}
},
"apaas-custom-modelDetail":{
"name": "apaas-custom-modelDetail",
"path": "apaas-custom-modelDetail",
"meta": {
"title": "系统参数管理"
}
},
"apaas-custom-engineDetail":{
"name": "apaas-custom-engineDetail",
"path": "apaas-custom-engineDetail",
"meta": {
"title": "发动机参数详情"
}
},
"apaas-custom-approvalManagement":{
"name": "apaas-custom-approvalManagement",
"path": "apaas-custom-approvalManagement",
"meta": {
"title": "模板审批管理"
}
},
"apaas-custom-toDoList":{
"name": "apaas-custom-toDoList",
"path": "apaas-custom-toDoList",
"meta": {
"title": "数据待办"
}
},
"apaas-custom-myDone":{
"name": "apaas-custom-myDone",
"path": "apaas-custom-myDone",
"meta": {
"title": "我的已办"
}
},
"apaas-custom-mySend":{
"name": "apaas-custom-mySend",
"path": "apaas-custom-mySend",
"meta": {
"title": "我发起的"
}
},
"apaas-custom-selfEngineCheck":{
"name": "apaas-custom-selfEngineCheck",
"path": "apaas-custom-selfEngineCheck",
"meta": {
"title": "玉柴发动机审核"
}
},
"apaas-custom-otherEngineCheck":{
"name": "apaas-custom-otherEngineCheck",
"path": "apaas-custom-otherEngineCheck",
"meta": {
"title": "竞品发动机审核"
}
},
"apaas-custom-managerData":{
"name": "apaas-custom-managerData",
"path": "apaas-custom-managerData",
"meta": {
"title": "责任人管理"
}
},
"apaas-custom-fillerData":{
"name": "apaas-custom-fillerData",
"path": "apaas-custom-fillerData",
"meta": {
"title": "填写人管理"
}
},
"apaas-custom-permissionManagement":{
"name": "apaas-custom-permissionManagement",
"path": "apaas-custom-permissionManagement",
"meta": {
"title": "权限管理"
}
}
},
"customWidgetList": [
{
"code": "mydemo",
"text": "mydemo"
}
],
"outputName": "apaas-custom-mydemo"
}

View File

@ -0,0 +1,10 @@
<meta charset="utf-8">
<title>apaas-custom-mydemo demo</title>
<script src="./apaas-custom-mydemo.umd.js"></script>
<link rel="stylesheet" href="./apaas-custom-mydemo.css">
<script>
console.log(apaas-custom-mydemo)
</script>

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

55
babel.config.js Normal file
View File

@ -0,0 +1,55 @@
/**
* Element UI 懒加载插件由于我们需要使用懒加载scss动态编译主题所以不使用
*/
// eslint-disable-next-line no-unused-vars
const elementUIComponentPlugin = [
'component',
{
libraryName: 'element-ui',
styleLibraryName: '../packages/theme-chalk/src',
ext: '.scss'
},
'element-ui'
]
const XLibComponentPlugin = [
'component',
{
libraryName: '@x-ui/x-dcloud-ui',
styleLibrary: {
base: false,
name: 'theme-chalk/theme'
},
ext: '.scss'
},
'@x-ui/x-dcloud-ui'
]
const XDcloudPageWebPlugin = [
'component',
{
libraryName: '@x-apaas/x-dcloud-page-web',
styleLibrary: {
base: false,
name: 'theme-chalk/theme'
},
ext: '.scss'
},
'@x-apaas/x-dcloud-page-web'
]
module.exports = {
presets: [
[
'@vue/cli-plugin-babel/preset',
{
useBuiltIns: 'entry'
}
]
],
plugins: [
elementUIComponentPlugin,
XLibComponentPlugin,
XDcloudPageWebPlugin
]
}

125
build/build-all.js Normal file
View File

@ -0,0 +1,125 @@
const shell = require('shelljs')
const path = require('path')
const fs = require('fs')
const rimraf = require('rimraf')
const customs = fs.readdirSync(path.resolve(process.cwd(), 'src/custom'))
const all = customs.reduce((result, dir) => {
// ignore directories whose name starts without `apaas-custom-plugin-`
if (dir.indexOf('apaas-custom-plugin-')) return result
try {
const apaasJson = JSON.parse(fs.readFileSync(path.resolve(process.cwd(), 'src', 'custom', dir, 'apaas.json')))
// match every plugins except those whose local.notAll is true
if (apaasJson && (!apaasJson.local || !apaasJson.local.notAll)) result.push(dir.slice(20))
} catch (e) {
} finally {
return result
}
}, [])
const help = `
插件打包入口
格式
1. node thisJs xx <params> <value> 用指定的参数和值打包xx插件
2. node thisJs xx 打包xx插件
3. node thisJs <params> <value> 用指定的参数和值打包xx插件notes: 必须要包含 -i 或者 -a 参数
参数
-i <plugin_name> 指定插件名优先级高于格式1和格式2指定的插件名
-b 采用批量打包模式批量打包默认的插件为上文中的 all 变量值指定的插件集合此参数将忽略 -i 指定的具体插件名
批量打包默认的插件: ${all.join(',')}
-c 加密命名插件打包后的文件夹或压缩文件使用 md5 加密插件 code 后的字符串命名
-Z 取消压缩默认会给每一个插件打包使用此命令则取消打包这一步
-A <plugins_str> 声明参与批量打包的所有插件用英文逗号分隔多个插件 oo,aa 表示打包oo和aa这两个插件需要 -b 参数才会实际生效
-a 使用异步打包模式
-h, --help 查看打包命令帮助
--clean, --rm 清除所有打包产生的文件
支持缩略形式的参数 -cZ 相当于 -c -Z其后需要跟变量的参数写在省略形式前的会读取其后的变量值并生效
-iA oo 表示指定打包oo插件-Ai oo,aa表示指定需要批量打包的插件为 oo aa
`
let crypto = 'noc'
let noZip = 'noz'
let batchMode = false
let plugin = ''
let async = false
const pickValue = function(a, i) {
return a && a[i] && !a[i].startsWith('-') && a[i]
}
const parseArgv = function(argv) {
const localArgv = [...argv]
for (let i = 0; i < localArgv.length; i++) {
if (localArgv[i].startsWith('--')) {
switch (localArgv[i]) {
case '--clean':
case '--rm':
rimraf(path.resolve(process.cwd(), 'crypto'))
rimraf(path.resolve(process.cwd(), 'PLUGIN_*'))
rimraf(path.resolve(process.cwd(), 'PLUGIN_*.zip'))
process.exit(0)
case '--help':
console.log(help)
process.exit(0)
default:
break
}
} else if (localArgv[i].startsWith('-')) {
const flag = localArgv[i].slice(0)
const flags = (flag && flag.split('')) || []
flags.forEach((f) => {
let a
switch (f) {
case 'c':
crypto = '-c'
break
case 'b':
batchMode = true
break
case 'a':
async = true
break
case 'A':
;(a = pickValue(localArgv, i + 1)) && a && ((all = a.split(',')), i++)
break
case 'Z':
noZip = '-Z'
break
case 'i':
;(a = pickValue(localArgv, i + 1)) && a && ((plugin = a), i++)
break
case 'h':
console.log(help)
process.exit(0)
default:
break
}
})
}
}
if (!batchMode && !plugin) {
val = process.argv.slice(2, 3)[0]
val && !val.startsWith('-') && (plugin = val)
if (!plugin) {
console.error('未指定插件名')
process.exit(0)
}
}
}
parseArgv(process.argv.slice(2))
const scriptPath = path.resolve(process.cwd(), 'build/build-plugins.js')
const doBuild = (item) => {
shell.exec(`node ${scriptPath} ${item} ${crypto} ${noZip}`, { async: async })
}
if (batchMode) {
all.forEach(doBuild)
} else {
doBuild(plugin)
}

View File

@ -0,0 +1 @@
["admin", "app", "mobile", "workbench", "workbenchm"]

181
build/build-plugins.js Normal file
View File

@ -0,0 +1,181 @@
const shell = require('shelljs')
const fs = require('fs')
const path = require('path')
const zipper = require('zip-local')
const colors = require('colors')
const envDefine = require('./build-en-define.json')
const md5 = require('md5')
const lib = async (cmd, program) => {
const customModule = cmd.custom
const crypto = cmd.crypto === '-c'
const noZip = cmd.noZip === '-Z'
// 获取指定 custom 目录下的apaas.json
const customModulePath = path.resolve(process.cwd(), 'src/custom', customModule)
const customModuleConfigPath = path.resolve(customModulePath, 'apaas.json')
if (!fs.existsSync(customModuleConfigPath)) {
console.log(`Error: 自开发模块 ${customModule} 下不存在需要的 apaas.json 文件`['red'])
console.log(`exit`['red'])
process.exit(0)
}
const apaasConfig = JSON.parse(fs.readFileSync(customModuleConfigPath))
const buildArray = envDefine
.map((_) => {
if (!apaasConfig[_]) {
return
}
const newConfig = { ...apaasConfig }
delete newConfig[_]
newConfig.outputName = md5(apaasConfig.code)
return {
// 排第一,且不会被覆盖
entry: apaasConfig[_],
...newConfig,
entry: apaasConfig[_],
type: _
}
})
.filter((item) => item)
const result = buildArray.map((config) => doLib(config, customModulePath, crypto))
if (result === [-1, -1]) {
process.exit(0)
}
const cryptoPath = crypto ? 'crypto/' + md5(apaasConfig.code) : apaasConfig.code
writeApaasJson(cryptoPath, apaasConfig)
if (!noZip) {
zip(cryptoPath, cryptoPath)
}
}
/**
* @params apaasModuleConfig 源配置信息
* @params customModulePath 打包入口
*/
const doLib = (apaasModuleConfig, customModulePath, crypto) => {
const customModuleEntryPath = path.resolve(customModulePath, apaasModuleConfig.entry)
const moduleType = apaasModuleConfig.type
const outputName = (crypto ? 'crypto/' + md5(apaasModuleConfig.code) : apaasModuleConfig.code) + '/' + moduleType
if (!fs.existsSync(customModuleEntryPath)) {
console.log(`Error: apaas.json 指定的entry: ${apaasModuleConfig.entry} 的路径错误 `['red'])
console.log(`error path is ${customModuleEntryPath}`['red'])
return -1
}
const customCliPath = path.resolve(
process.cwd(),
'./node_modules/@vue/cli-service/bin/vue-cli-service.js'
)
// 使用vue build 打包,并生成文件
shell.exec(
`node ${customCliPath} build --target lib --name ${apaasModuleConfig.outputName} --dest ${outputName} ${customModuleEntryPath}`
)
const suffix = ['umd.js', 'umd.min.js', 'common.js', 'css']
suffix.forEach((item => {
shell.mv(path.resolve(process.cwd(), `${outputName}/${apaasModuleConfig.outputName}.${item}`), path.resolve(process.cwd(), `${outputName}/index.${item}`))
}))
// shell.cp('-R', customModuleConfigPath, `${outputPath}/`)
const newOutputConfig = { ...apaasModuleConfig }
envDefine.forEach((_) => {
delete newOutputConfig[_]
})
const outputPath = path.resolve(process.cwd(), outputName)
// 拷贝public文件到指定目录
apaasModuleConfig.copyAssets.forEach((copyAsset) => {
copyAssetSource = copyAsset + copyAsset.endsWith('/') ? moduleType : '/' + moduleType
const assetPath = path.resolve(process.cwd(), copyAssetSource)
if (fs.existsSync(assetPath)) {
const outputAsset = path.resolve(outputPath, copyAsset.replace('public/', 'static/'))
shell.mkdir('-p', outputAsset)
shell.cp('-R', `${assetPath}/*`, `${outputAsset}/`)
}
})
}
/**
* @params outputPath 目标文件夹命
* @params originJson 源配置信息
*/
const writeApaasJson = function (outputPath, originJson) {
const newOutputConfig = { ...originJson }
delete newOutputConfig.type
delete newOutputConfig.outputName
delete newOutputConfig.local
newOutputConfig.extraConfig = { ...newOutputConfig.extraConfig }
envDefine.forEach(item => {
if (newOutputConfig[item]) {
newOutputConfig.extraConfig[item] = true
delete newOutputConfig[item]
newOutputConfig.extraConfig[item + 'Css'] = fs.existsSync(path.resolve(process.cwd(), outputPath, item, 'index.css'))
}
})
fs.writeFile(`${outputPath}/apaas.json`, JSON.stringify(newOutputConfig, null, ' '), function (
error
) {
if (error) {
console.log(`配置信息写入失败\n${error}`['red'])
}
})
}
/**
* @params originPath 源文件夹名
* @params outputName 目标文件名
*/
const zip = function (originName, outputName) {
const originPath = path.resolve(process.cwd(), originName)
const outputZipPath = path.resolve(process.cwd(), `${outputName}.zip`)
if (fs.existsSync(outputZipPath)) {
shell.rm(outputZipPath)
}
// 生成zip并压缩
zipper.zip(originPath, function (error, zipped) {
if (!error) {
zipped.compress() // compress before exporting
var buff = zipped.memory() // get the zipped file as a Buffer
zipped.save(outputZipPath, function (error) {
if (!error) {
console.log(`zipped successfully !`['green'])
// 删除指定生成目录
// shell.rm('-r',originPath)
} else {
console.log(`write error: ${error}`['red'])
}
})
} else {
console.log(`read error: ${error}`['red'])
}
})
}
const argv = process.argv.splice(2, 1)[0]
if (!argv) {
console.log(`未指定插件名`['red'])
process.exit(0)
}
const crypto = process.argv.splice(2, 1)[0]
const noZip = process.argv.splice(2, 1)[0]
module.exports = lib(
{
custom: `apaas-custom-plugin-${argv}`,
crypto,
noZip,
},
{}
)

73
build/build.js Normal file
View File

@ -0,0 +1,73 @@
const shell = require('shelljs');
const fs = require('fs')
const path = require('path')
const zipper = require("zip-local");
const colors = require('colors');
const lib = async (cmd, program) => {
const customModule = cmd.custom
// 获取指定 custom 目录下的apaas.json
const customModulePath = path.resolve(`${process.cwd()}`, 'src/custom', customModule)
const customModuleConfigPath = path.resolve(customModulePath, 'apaas.json')
if (!fs.existsSync(customModuleConfigPath)) {
console.log(`Error: 自开发模块 ${customModule} 下不存在需要的 apass.json 文件`['red'])
console.log(`exit`['red'])
process.exit(0)
}
const apaasConfig = JSON.parse(fs.readFileSync(customModuleConfigPath))
const customModuleEntryPath = path.resolve(customModulePath, apaasConfig.entry)
if (!fs.existsSync(customModuleEntryPath)) {
console.log(`Error: apaas.json 指定的entry: ${apaasConfig.entry} 的路径错误 `['red'])
console.log(`error path is ${customModuleEntryPath}`['red'])
console.log(`exit`['red'])
process.exit(0)
}
const customCliPath = path.resolve(`${process.cwd()}`, './node_modules/.bin/vue-cli-service')
const outputPath = path.resolve(`${process.cwd()}`, `${apaasConfig.outputName}`)
const outputZipPath = path.resolve(`${process.cwd()}`, `${apaasConfig.outputName}.zip`)
// 使用vue build 打包,并生成文件
shell.exec(`node ${customCliPath} build --target lib --name ${apaasConfig.outputName} --dest ${apaasConfig.outputName} ${customModuleEntryPath}`)
shell.cp('-R', customModuleConfigPath, `${outputPath}/`)
// 拷贝public文件到指定目录
apaasConfig.copyAssets.forEach(copyAsset => {
const assetPath = path.resolve(`${process.cwd()}`, copyAsset)
const outputAsset = path.resolve(outputPath, copyAsset.replace('public/', 'static/'))
shell.mkdir('-p', outputAsset)
shell.cp('-R', `${assetPath}/*`, `${outputAsset}/`)
});
if (fs.existsSync(outputZipPath)) {
shell.rm(outputZipPath)
}
// 生成zip并压缩
zipper.zip(outputPath, function(error, zipped) {
if(!error) {
zipped.compress(); // compress before exporting
var buff = zipped.memory(); // get the zipped file as a Buffer
zipped.save(`${outputZipPath}`, function(error) {
if(!error) {
console.log("saved successfully !");
// 删除指定生成目录
// shell.rm('-r',outputPath)
}
});
}
})
}
module.exports = lib({
custom: 'apaas-custom-{{moduleName}}'
}, {})

75
build/init.js Normal file
View File

@ -0,0 +1,75 @@
const program = require('commander');
const shelljs = require('shelljs');
const userHome = require('user-home');
const fs = require('fs')
const path = require('path')
const colors = require('colors');
const init = (cmd, program) => {
const moduleName = cmd.moduleName
const projectPath = path.resolve(`${process.cwd()}`, `apaas-custom-${moduleName}`)
const customPath = path.resolve(projectPath, 'src/custom');
const staticPath = path.resolve(projectPath, 'public/custom');
//检查控制台是否以运行`git `开头的命令
if (!shelljs.which('git')) {
//在控制台输出内容
console.log('error 本机上没有git请检查git是否安装或相关环境变量是否正确'['red']);
shelljs.exit(1);
}
const version = 'v0.0.1'
const gitTemplateRepo = `${userHome}/.apaasCliRepo`
shelljs.rm('-rf', gitTemplateRepo)
shelljs.mkdir('-p', gitTemplateRepo)
shelljs.exec(`git clone --branch ${version} https://gitee.com/shiyutian/apaas-custom-vue-starter.git --depth=1 ${gitTemplateRepo}`);
shelljs.rm('-rf', path.resolve(`${gitTemplateRepo}`, '.git'))
if (fs.existsSync(projectPath)) {
// 当前路径已经在相关工程
console.log('error 当前路径已经存在工程,请检查相关目录设置'['red'])
shelljs.exit(1);
} else {
shelljs.mkdir('-p', `${process.cwd()}`)
}
shelljs.cp('-R', `${gitTemplateRepo}/.`, projectPath)
const demoCustomModuleName = 'hello'
const demoCustomModulePath = path.resolve(customPath, `apaas-custom-${demoCustomModuleName}`)
const writeAndReplaceFileSync = (filePath) => {
const stat = fs.lstatSync(filePath)
if (stat.isDirectory()) {
const customModuleFileNames = fs.readdirSync(filePath)
customModuleFileNames.forEach(fileName => {
const tempFilePath = path.join(filePath, fileName)
writeAndReplaceFileSync(tempFilePath)
})
} else {
let fileContent = fs.readFileSync(filePath, 'utf-8')
fileContent = fileContent.replace(/{{moduleName}}/g, moduleName)
fileContent = fileContent.replace(/{{ModuleName}}/g, moduleName.charAt(0).toUpperCase() + moduleName.slice(1))
fs.writeFileSync(filePath, fileContent)
}
}
writeAndReplaceFileSync(demoCustomModulePath)
fs.renameSync(demoCustomModulePath, path.resolve(customPath, `apaas-custom-${moduleName}`))
fs.renameSync(path.resolve(staticPath, `apaas-custom-${demoCustomModuleName}`), path.resolve(staticPath, `apaas-custom-${moduleName}`))
}
module.exports = init
init({ moduleName : 'nice' }, program)

3
commitlint.config.js Normal file
View File

@ -0,0 +1,3 @@
module.exports = {
extends: ['@commitlint/config-conventional']
}

9
jest.config.js Normal file
View File

@ -0,0 +1,9 @@
module.exports = {
preset: '@vue/cli-plugin-unit-jest',
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1',
'^@examples/(.*)$': '<rootDir>/examples/$1',
'^@packages/(.*)$': '<rootDir>/packages/$1',
'\\.(css|less|sass)$': 'identity-obj-proxy'
}
}

88
package.json Normal file
View File

@ -0,0 +1,88 @@
{
"name": "x-project-app",
"version": "0.0.1",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"inspect": "vue-cli-service inspect",
"build": "vue-cli-service build",
"test:unit": "vue-cli-service test:unit",
"test:e2e": "vue-cli-service test:e2e",
"lint": "vue-cli-service lint --fix",
"build-rule": "node ./build/build-plugins.js rule-functions -c",
"cm": "git-cz"
},
"dependencies": {
"@x-ui/x-dcloud-ui": "^0.2.1",
"@x-apaas/x-dcloud-page-web": "rc",
"@x-apaas/x-dcloud-page-engine": "rc",
"@x-apaas/x-apaas-frontend-i18n": "rc",
"core-js": "^3.6.4",
"dayjs": "^1.8.27",
"element-ui": "^2.13.2",
"js-file-download": "^0.4.12",
"lodash-es": "^4.17.21",
"md5": "^2.3.0",
"normalize.css": "^8.0.1",
"register-service-worker": "^1.7.1",
"vue": "^2.6.11",
"vue-router": "^3.1.6",
"vuex": "^3.1.3",
"vuex-persist": "^2.2.0",
"x-extension": "^0.2.2"
},
"devDependencies": {
"@babel/polyfill": "^7.8.7",
"@commitlint/cli": "^8.3.5",
"@commitlint/config-conventional": "^8.3.4",
"@vue/cli-plugin-babel": "^4.3.0",
"@vue/cli-plugin-e2e-nightwatch": "^4.3.0",
"@vue/cli-plugin-eslint": "^4.3.0",
"@vue/cli-plugin-pwa": "^4.3.0",
"@vue/cli-plugin-router": "^4.3.0",
"@vue/cli-plugin-unit-jest": "^4.3.0",
"@vue/cli-plugin-vuex": "^4.3.0",
"@vue/cli-service": "^4.3.0",
"@vue/eslint-config-prettier": "^6.0.0",
"@vue/eslint-config-standard": "^4.0.0",
"@vue/test-utils": "1.0.0-beta.31",
"babel-eslint": "^10.1.0",
"babel-plugin-component": "^1.1.1",
"colors": "^1.4.0",
"commitizen": "^4.1.2",
"commitlint-config-cz": "^0.13.1",
"conventional-changelog-cli": "^2.0.34",
"cz-conventional-changelog": "^3.2.0",
"cz-customizable": "^6.2.0",
"eslint": "^6.7.2",
"eslint-plugin-prettier": "^3.1.1",
"eslint-plugin-vue": "^6.2.2",
"husky": "^4.2.5",
"lint-staged": "^9.5.0",
"node-sass": "^4.12.0",
"path": "^0.12.7",
"prettier": "^1.19.1",
"progress-bar-webpack-plugin": "^2.1.0",
"sass-loader": "^8.0.2",
"sass-resources-loader": "^2.0.3",
"shelljs": "^0.8.4",
"svg-sprite-loader": "^5.0.0",
"vue-i18n": "^8.17.7",
"vue-template-compiler": "^2.6.11",
"webpack-bundle-analyzer": "^3.8.0",
"webpack-theme-color-replacer": "^1.3.13",
"zip-local": "^0.3.4"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged",
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
},
"lint-staged": {
"*.{js,jsx,vue}": [
"vue-cli-service lint --fix",
"git add"
]
}
}

5
postcss.config.js Normal file
View File

@ -0,0 +1,5 @@
module.exports = {
plugins: {
autoprefixer: {}
}
}

13
prettier.config.js Normal file
View File

@ -0,0 +1,13 @@
module.exports = {
printWidth: 100,
tabWidth: 2,
useTabs: false,
semi: false,
singleQuote: true,
bracketSpacing: true,
jsxBracketSameLine: false,
arrowParens: 'always',
proseWrap: 'never',
htmlWhitespaceSensitivity: 'strict',
endOfLine: 'lf'
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

17
public/index.html Normal file
View File

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>

2
public/robots.txt Normal file
View File

@ -0,0 +1,2 @@
User-agent: *
Disallow:

77
src/App.vue Normal file
View File

@ -0,0 +1,77 @@
<!--
* @Author: your name
* @Date: 2020-05-26 10:06:34
* @LastEditTime: 2020-05-26 17:05:42
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /x-product-workspace/packages/x-project-app/src/App.vue
-->
<template>
<div id="app">
<component :is="layout">
<router-view />
</component>
</div>
</template>
<script>
import { mapMutations } from 'vuex'
import { SET_USER_INFO } from '@/store/auth.store'
import { initUserRole } from '@/utils/userRole'
import BlackLayout from '@/layouts/black.layout'
import DefaultLayout from '@/layouts/default.layout'
import NoSidebarLayout from '@/layouts/no-sidebar.layout'
export default {
components: {
BlackLayout,
DefaultLayout,
NoSidebarLayout
},
data() {
return {
}
},
computed: {
layout() {
return this.$route.meta.layout || 'DefaultLayout'
}
},
created() {
this.setUserInfo({
'loginName': 'admin',
'id': '1',
'phone': '17729389320',
'email': '17728389320@163.com',
'enableStatus': 'ENABLED',
'headPortrait': null,
'userName': '赵站洋',
'credentialNo': '110101199003076675',
'gender': 'male'
})
},
mounted() {
//
this.$nextTick(() => {
initUserRole(this).catch((err) => {
console.error('初始化用户角色信息失败:', err)
})
})
},
methods: {
...mapMutations('authModule', {
setUserInfo: SET_USER_INFO
})
}
}
</script>
<style lang="scss">
#app {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
color: $--app-font-color;
background-color: $--app-bg-Color;
}
</style>

46
src/api/account/index.js Normal file
View File

@ -0,0 +1,46 @@
/*
* @Author: your name
* @Date: 2020-05-30 16:05:14
* @LastEditTime: 2020-05-30 19:20:52
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /x-product-workspace/packages/x-project-app/src/api/account/index.js
*/
export default {
'USER_LOGIN': { // 用户登录
url: '/xdap-admin/user/login',
method: 'post'
},
'USER_REGISTER': { // 用户注册
url: '/xdap-admin/user/register',
method: 'post'
},
'USER_MODIFY_PASSWORD_BY_PHONE': { // 通过手机号修改密码
url: '/xdap-admin/user/find/password',
method: 'post'
},
'CREATE_ORG': { // 创建组织
url: '/xdap-admin/tenant/add/newTenant',
method: 'post'
},
'JOIN_ORG': {
url: '/xdap-admin/tenant/join/tenant',
method: 'get'
},
'SING_OUT': {
url: '/xdap-admin/user/signOut',
method: 'get'
},
'UPDATE_USER_PHONE': {
url: '/xdap-admin/user/update/userPhone',
method: 'post'
},
'UPDATE_USER_EMAIL': {
url: '/xdap-admin/user/update/userEmail',
method: 'post'
},
'IS_BELONG_TO_TENANT': {
url: '/xdap-admin/tenant/query/isBelongToTenant',
method: 'get'
}
}

167
src/api/admin/index.js Normal file
View File

@ -0,0 +1,167 @@
export default {
// 获取组织列表
QUERY_ORG_LIST_BY_NAME: {
url: '/xdap-app/department/query/departmentListByName',
method: 'post',
disableSuccessMsg: true
},
// 组织树
QUERY_ORG_TREE: {
url: '/xdap-app/department/query/departmentTree',
method: 'post',
disableSuccessMsg: true
},
// 新增部门
ADD_AND_EDIT_ORG: {
url: '/xdap-app/department/edit/department',
method: 'post'
},
// 删除部门
DELETE_ORG: {
url: '/xdap-app/department/remove/department',
method: 'post'
},
// 根据节点查询成员
QUERY_MEMBER_BY_ORG_ID: {
url: '/xdap-app/department/query/departmentMembers',
method: 'post',
disableSuccessMsg: true
},
QUERY_ALL_MEMBER_BY_ORG_ID: {
url: '/xdap-app/department/queryAll/departmentMembers',
method: 'post',
disableSuccessMsg: true
},
// 上级部门值列表
QUERY_DEPARTMENT_LIST: {
url: '/xdap-app/department/query/departmentList',
method: 'post',
disableSuccessMsg: true
},
// 人员移出部门
REMOVE_USER_FORM_ORG: {
url: '/xdap-app/department/remove/departmentMember',
method: 'post'
},
// 批量移出zu
ALL_REMOVE_USER_FORM_ORG: {
url: '/xdap-app/department/batchRemove/departmentMember',
method: 'post'
},
// 人员移出组织
REMOVE_USER_FORM_TENANT: {
url: '/xdap-app/department/remove/tenantMember',
method: 'post'
},
// 批量移出组织
ALL_REMOVE_USER_FORM_TENANT: {
url: '/xdap-app/department/batchRemove/tenantMember',
method: 'post'
},
// 修改在职/离职
CHANGE_WORK_STATUS: {
url: '/xdap-app/department/update/memberWorkStatus',
method: 'post'
},
// 批量修改在职/离职
ALL_CHANGE_WORK_STATUS: {
url: '/xdap-app/department/batchUpdate/memberWorkStatus',
method: 'post'
},
// 邀请部分接口
QUERY_DATA_INVITE: {
url: '/xdap-app/invitation/get/invitationCodeInfo',
method: 'post',
disableSuccessMsg: true
},
// 重新生成邀请码
RELOAD_DATA_INVITE: {
url: '/xdap-app/invitation/generate/invitationCode',
method: 'post'
},
SAVE_INVITE_CONFIG: {
url: '/xdap-app/invitation/modify/invitationCode',
method: 'post',
disableSuccessMsg: true
},
// 设置是否启用邀请码
SHOW_INVITE_BY_STATUS: {
url: '/xdap-app/invitation/update/invitationCodeStatus',
method: 'post',
disableSuccessMsg: true
},
// 组织树拖拽
TREE_NODE_MOVE: {
url: '/xdap-app/department/queue/departmentTree',
method: 'post',
disableSuccessMsg: true
},
// 获取待审核条数
GET_AUDIT_COUNT: {
url: '/xdap-app/invitation/count/approvingUsers',
method: 'post',
disableSuccessMsg: true
},
// 获取待审核成员信息
QUERY_AUDIT_TABLE_DATA: {
url: '/xdap-app/invitation/query/approvingUsers',
method: 'post',
disableSuccessMsg: true
},
// 拒绝
REFUSE_ADD_USER: {
url: '/xdap-app/invitation/refuse/approvingUser',
method: 'post'
},
// 同意
AGREE_ADD_USER: {
url: '/xdap-app/invitation/agree/approvingUser',
method: 'post'
},
// 批量同意
ALL_AGREE_ADD_USER: {
url: '/xdap-app/invitation/batchAgree/approvingUser',
method: 'post'
},
// 批量拒绝
ALL_REFUSE_ADD_USER: {
url: '/xdap-app/invitation/batchRefuse/approvingUser',
method: 'post'
},
// 编辑成员信息
EDIT_USER_DATA: {
url: '/xdap-app/department/update/memberInfo',
method: 'post'
},
DEPARTMENT_ADD_USERS: {
url: '/xdap-app/department/add/departmentMember',
method: 'post'
},
// 查询短信条数
QUERY_SMS_DATA_LIST: {
url: '/xdap-app/noticeHistory/query/smsLogHistoryList',
method: 'post',
disableSuccessMsg: true
},
// 查询邮件发送记录
QUERY_EMAIL_DATA_LIST: {
url: '/xdap-app/noticeHistory/query/emailLogHistoryList',
method: 'post',
disableSuccessMsg: true
},
// 导出短信发送记录
EXPORT_LIST_SMS_DATA: {
url: '/xdap-app/noticeHistory/export/smsLogHistory',
method: 'get'
},
// 导出邮件发送记录
EXPORT_LIST_EMAIL_DATA: {
url: '/xdap-app/noticeHistory/export/emailLogHistory',
method: 'get'
},
// 员工工作的转交
TRANSFER_USER_WORK: {
url: '/xdap-app/work/update/workTransfer',
method: 'post'
}
}

151
src/api/app-page/index.js Normal file
View File

@ -0,0 +1,151 @@
/**
* @Author: your name
* @Date: 2020-06-12 12:19:21
* @LastEditTime: 2020-06-13 17:19:01
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /x-project-app/src/api/app-page/index.js
*/
export default {
QUERY_LIST_PAGE_CONFIG_BY_ID: {
url: '/xdap-app/form/query/listPageConfigById',
method: 'get',
disableSuccessMsg: true
},
QUERY_LIST_PAGE_CONFIG_BY_TAB_ID: {
url: '/xdap-app/form/query/listPageViewDetail',
method: 'get',
disableSuccessMsg: true
},
QUERY_LIST_BUSINESS_DATA: {
url: '/xdap-app/business/query/listPageBusinessData',
method: 'post',
disableSuccessMsg: true
},
QUERY_CALC_LIST_BUSINESS_DATA: {
url: '/xdap-app/business/query/virtualBusinessData',
method: 'post',
disableSuccessMsg: true
},
QUERY_LIST_PAGE_BUTTON: {
url: '/xdap-app/form/query/listPageButton',
method: 'get',
disableSuccessMsg: true
},
// 数据导出
EXPORT_LIST_TO_EXCEL: {
url: 'xdap-app/excel/export/excelData',
method: 'post',
disableSuccessMsg: true
},
// 统计接口
STATISTICAL_TABLE: {
url: '/xdap-app/business/query/calAggregate',
method: 'post',
disableSuccessMsg: true
},
// 数据导入下载模板接口
EXPORT_TEMPLATE_TO_EXCEL: {
url: '/xdap-app/excel/export/excelTemplate',
method: 'get',
disableSuccessMsg: true
},
// 数据导入上传接口
IMPORT_EXCEL_DATA: {
url: '/xdap-app/excel/importExcelData',
method: 'post',
disableSuccessMsg: true
},
// 异常数据查询
EXCEL_IMPORT_LOGS: {
url: '/xdap-app/excel/query/excelImportLogs',
method: 'get',
disableSuccessMsg: true
},
ADD_MENU_COLLECT: {
url: '/xdap-app/menu/add/star',
method: 'post'
},
REMOVE_MENU_COLLECT: {
url: '/xdap-app/menu/remove/star',
method: 'post'
},
HAS_MENU_COLLECT: {
url: '/xdap-app/menu/has/menuStar',
method: 'post',
disableSuccessMsg: true
},
// 批量删除接口
BATCH_DELETE_DATA: {
url: '/xdap-app/business/delete/batchDocument',
method: 'post',
timeout: 1000 * 60 * 1
},
// 批量同意接口
BATCH_AGREE_DATA: {
url: '/xdap-app/process/batch/approve',
method: 'post',
timeout: 1000 * 600 * 1
},
// 批量拒绝接口
BATCH_REJECT_DATA: {
url: '/xdap-app/process/batch/reject',
method: 'post',
timeout: 1000 * 600 * 1
},
QUERY_STATISTICS_VALUE_COLUME: {
url: '/xdap-app/business/query/dataStatisticValue',
method: 'post',
disableSuccessMsg: true
},
QUERY_TREE_VIEW_TREE_NODE: {
url: '/xdap-app/business/query/treeNodeBusinessData',
method: 'post',
disableSuccessMsg: true
},
QUERY_TREE_VIEW_TREE_TABLE_DATA: {
url: '/xdap-app/business/query/childNodeListBusinessData',
method: 'post',
disableSuccessMsg: true
},
QUERY_OPERATION_COLUMN: {
url: '/xdap-app/form/query/listButton',
method: 'post',
disableSuccessMsg: true
},
// 查询聚合表列表配置
QUERY_COMBINE_LIST_PAGE_VIEW: {
url: '/xdap-app/query/combineListPageView',
method: 'get',
disableSuccessMsg: true
},
// 聚合表查询数据接口
QUERY_COMBINE_LIST_BUSINESSDATA: {
url: '/xdap-app/query/queryCombineListBusinessData',
method: 'post',
disableSuccessMsg: true
},
// 查询聚合表组件
QUERY_COMBINE_COMPONENT: {
url: '/xdap-app/query/combineComponent',
method: 'post',
disableSuccessMsg: true
},
// 聚合表按钮查询
QUERY_COMBINE_LISTBUTTON: {
url: '/xdap-app/query/combineListButton',
method: 'get',
disableSuccessMsg: true
},
QUERY_ADVANCE_SEARCH: {
url: '/xdap-app/dataFilter/query/dataFilter',
method: 'get',
disableSuccessMsg: true
},
// * 新的表单字段查询接口
QUERY_FORM_FIELD_ALL_IN_ONE: {
url: '/xdap-app/form/query/formComponent',
method: 'post',
disableSuccessMsg: true
},
}

24
src/api/common.js Normal file
View File

@ -0,0 +1,24 @@
/*
* @Author: your name
* @Date: 2020-05-30 16:05:14
* @LastEditTime: 2020-05-30 20:13:11
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /x-product-workspace/packages/x-project-app/src/api/common.js
*/
export default {
'SEND_PHONE_CODE': { // 发送手机验证码
url: '/xdap-admin/user/send/smsCode',
method: 'post'
},
'SEND_EMAIL_CODE': { // 发送邮箱验证码
url: '/xdap-admin/user/send/emailCode',
method: 'post'
},
// 切换租户保存租户信息
'SAVE_ORG_ID_BY_CHANGE': {
url: '/xdap-admin/tenant/switch/tenant',
method: 'post',
disableSuccessMsg: true
}
}

420
src/api/demo/index.js Normal file
View File

@ -0,0 +1,420 @@
export default {
// 导出邮件发送记录
DEMO_GET: {
url: '/custom/delete/getUserId',
method: 'get'
},
SUBMIT_FORM: {
url: '/xdap-app/process/submit',
method: 'post'
},
DOWNLOAD_FILE: {
url: '/xdap-app/attachments/downloadFile',
method: 'get'
},
// 测试获取人员
DEMO_GET_PERSON: {
url: '/custom/support/demo/getPerson',
method: 'get'
},
//添加模板
ADD_MODEL: {
url: '/custom/template/insertTemplate',
method: 'post'
},
//模板管理列表
GET_MODEL_LIST: {
url: '/custom/template/getTemplateByCondition',
method: 'get'
},
//导入模板
IMPORT_MODEL: {
url: '/custom/template/import',
method: 'post'
},
//修改模板
EDIT_MODEL: {
url: '/custom/template/updateTemplate',
method: 'post'
},
//查看版本
CHECK_MODEL_VERISON: {
url: '/custom/template/getTemplateVersion',
method: 'get'
},
//下载
DOWNLODE_MODEL: {
url: '/custom/template/export',
method: 'get'
},
//获取部门
GET_DEPARTMENT: {
url: '/custom/template/getDept',
method: 'get'
},
//查询详情
GET_MODEL_DETAIL: {
url: '/custom/parameter/getParameterByCondition',
method: 'get'
},
//测试文件上传
TEST_FILE_UPLOAD: {
url: '/custom/benchmark/uploadFile',
method: 'post'
},
//添加参数
ADD_MODEL_PARAM: {
url: '/custom/parameter/insertParameter',
method: 'post'
},
//维护参数
EDIT_MODEL_PARAM: {
url: '/custom/parameter/maintenanceParameters',
method: 'post'
},
DELETE_MODEL_PARAM: {
url: '/custom/parameter/deleteParameter',
method: 'get'
},
START_APPROVAL: {
url: '/custom/approval/startApproval',
method: 'post'
},
GET_APPROVAL_LIST: {
url: '/custom/approval/getApprovalList',
method: 'get'
},
HANDLE_APPROVAL: {
url: '/custom/approval/handleApproval',
method: 'post'
},
//获取审批详情
// GET_APPROVAL_DETAIL: {
// url: '/custom/approval/getApprovalDetail',
// method: 'get'
// },
//获取所有人
GET_ALLUSERS: {
url: '/custom/approval/getUsersByCondition',
method: 'get'
},
//获取审批变更
GET_APPROVAL_CHANGE: {
url: '/custom/approval/getTemplateChanges',
method: 'get'
}, //获取审批所有
GET_PPROVAL_ALL: {
url: '/custom/approval/getApprovalProcess',
method: 'get'
},
GET_SUB_DEPT: {
url: '/custom/responsible/getSubDepartmentById',
method: 'get'
},
//处理模板审批撤回
RETURN_APPROVAL: {
url: '/custom/approval/handleReturn',
method: 'post'
},
//获取用户列表
SELECT_USER_BY_DEPT: {
url: '/custom/responsible/getUserByDepartmentId',
method: 'get'
},
//保存责任管理
SAVE_MANAGER_DATA: {
url: '/custom/responsible/saveResponsiblePerson',
method: 'post'
},
//判断是否是责任人
IS_RESPONSIBLE: {
url: '/custom/responsible/isResponsiblePerson',
method: 'get'
},
//获取责任人
GET_MANAGER_DATA: {
url: '/custom/responsible/getDeptResponsible',
method: 'get'
},
EDIT_MANAGER_DATA: {
url: '/custom/responsible/updateResponsiblePerson',
method: 'post'
},
DELETE_MANAGER_DATA: {
url: '/custom/responsible/deleteResponsiblePerson',
method: 'get'
},
//新增填写人管理
SAVE_FILLER_DATA: {
url: '/custom/responsible/saveFilledPerson',
method: 'post'
},
GET_SUBSYSTEM_LIST: {
url: '/custom/responsible/getAllSubsystem',
method: 'get'
},
//判断是否是填写人
IS_FILLER: {
url: '/custom/filler/isFillerPerson',
method: 'get'
},
//获取填写人
GET_FILLER_DATA: {
url: '/custom/responsible/getDeptFilled',
method: 'get'
},
GET_REPORT_LIST: {
url: '/custom/benchmark/getReportAndTodoByCondition',
method: 'post'
},
ADD_REPORT: {
url: '/custom/benchmark/startReportApproval',
method: 'post'
},
SAVE_REPORT: {
url: '/custom/benchmark/insertReport',
method: 'post'
},
EDIT_REPORT: {
url: '/custom/benchmark/updateReport',
method: 'post'
},
RESTART_REPORT_APPROVAL: {
url: '/custom/benchmark/restartReportApproval',
method: 'post'
},
START_REPORT_APPROVAL: {
url: '/custom/benchmark/handleReportApproval',
method: 'post'
},
GET_REPORT_DETAIL: {
url: '/custom/benchmark/getReportDetail',
method: 'get'
},
GET_REPORT_DETAIL_PROCESS: {
url: '/custom/benchmark/getReportProcess',
method: 'get'
},
DOWNLOAD_REPORT: {
url: '/custom/benchmark/downloadReport',
method: 'get'
},
//权限管理相关接口
//获取权限管理列表
GET_PERMISSION_DATA: {
url: '/custom/permission/getUserRoleAndPermission',
method: 'get'
},
//保存权限管理
SAVE_PERMISSION_DATA: {
url: '/custom/permission/insertRole',
method: 'post'
},
//修改权限管理
EDIT_PERMISSION_DATA: {
url: '/custom/permission/updatePermission',
method: 'post'
},
//删除权限管理
DELETE_PERMISSION_DATA: {
url: '/custom/permission/deletePermission',
method: 'get'
},
//获取所有权限表
GET_ALL_PERMISSION_LIST: {
url: '/custom/permission/getAllPermission',
method: 'get'
},
DELETE_PERMISSION_DATA: {
url: '/custom/permission/deleteRole',
method: 'get'
},
GET_ALL_DATA_SYSTEAM_LIST: {
url: '/custom/common/getSystemAndPara',
method: 'get'
},
GET_ALL_SYSTEM_ROLE_LIST: {
url: '/custom/responsible/getAllSubsystem',
method: 'get'
},
GET_USER_COMMONLY_USED: {
url: '/custom/common/getModelCommon',
method: 'get'
},
UPDATE_USER_COMMONLY_USED: {
url: '/custom/common/updateModelCommon',
method: 'post'
},
ADD_USER_COMMONLY_USED: {
url: '/custom/common/insertModelCommon',
method: 'post'
},
//亚松
GET_USER_SELF_ROLE: {
url: '/custom/permission/selectPersByUser',
method: 'get'
},
EDIT_PERMISSION_DATA_ROLE: {
url: '/custom/permission/updateRole?userID=',
method: 'post'
},
//获取引擎列表
GET_ENGINE_LIST_SELF: {
url: '/custom/dataEntryEngineModel/selectByPage',
method: 'post'
},
DOWNLOAD_ENGINE_DEMO: {
url: '/custom/dataEntryEngineModel/excelExport',
method: 'get'
},
//添加引擎
ADD_ENGINE_MODEL: {
url: '/custom/dataEntryEngineModel/insert',
method: 'post'
},
//导入引擎
IMPORT_ENGINE_MODEL: {
url: '/custom/dataEntryEngineModel/import',
method: 'post'
},
//获取参数列表
GET_PARAM_LIST: {
url: '/custom/engineParamDetailPojo/selectParamList',
method: 'get'
},
IMPORT_ENGINE_MODEL_PARAM: {
url: '/custom/dataEntryEngineModel/excelImport',
method: 'post'
},
//获取引擎详情
GET_ENGINE_DETAIL: {
url: '/custom/engineParamDetailPojo/selectValueByMoreParam',
method: 'post'
},
GET_ENGINE_TABLE_DETAIL: {
url: '/custom/engineParamDetailPojo/selectParamListAndModel',
method: 'get'
},
GET_ENGINE_DETAIL_QUERY: {
url: '/custom/engineParamDetailPojo/selectParamList',
method: 'get'
},
//获取待办列表
GET_TODO_LIST: {
url: '/custom/todoTaskPojo/selectByresPersonPage',
method: 'post'
},
//获取创建人待办
GET_TODO_LIST_BY_CREATOR: {
url: '/custom/todoTaskPojo/selectByPage',
method: 'post'
},
//更新参数
UPDATE_PARAM: {
url: '/custom/engineParamDetailPojo/updateParamValue?userID=',
method: 'post'
},
//导出模板
EXPORT_TEMPLATE: {
url: '/custom/engineParamDetailPojo/excelExport',
method: 'get'
},
//导入
IMPORT_ENGINE_MODEL: {
url: '/custom/engineParamDetailPojo/excelImport',
method: 'post'
},
//责任人分发
HANDLE_RESPONSIBLE_DISPATCH: {
url: '/custom/engineParamDetailPojo/updateToInsertFiledBy?userID=',
method: 'post'
},
//分发给责任人
HANDLE_TODO_DISPATCH: {
url: '/custom/todoTaskPojo/createResPerson?userID=',
method: 'post'
},
ENGINE_CHECK_LIST: {
url: '/custom/activiti/showEngReview',
method: 'post'
},
START_ENGINE_CHECK: {
url: '/custom/activiti/startActiviti',
method: 'post'
},
HANDLE_ENGINE_CHECK: {
url: '/custom/activiti/handleApproval',
method: 'post'
},
//撤回
RETURN_ENGINE_CHECK: {
url: '/custom/activiti/returnApproval',
method: 'get'
},
GET_ENGINE_CHECK_DETAIL: {
url: '/custom/activiti/showActiviti',
method: 'post'
},
CHANGE_ENGINE_DATA: {
url: '/custom/activiti/initiateApproval',
method: 'get'
},
CHECK_ROLE_USER_DEPT:{
url: '/custom/permission/selectUserOrDeptByRole',
method: 'get'
},
GET_ENGINE_VERSIONS: {
url: '/custom/engineParamDetailPojo/selectVersionList',
method: 'post'
},
GET_NOW_USER_ROLE: {
url: '/custom/permission/selectPermByUserId',
method: 'get'
},
ADD_ROLE_PERMISSION: {
url: '/custom/permission/addRoles',
method: 'post'
},
GET_ROLE_PERMISSION: {
url: '/custom/permission/selectRoles',
method: 'get'
},
DELETE_ROLE_PERMISSION: {
url: '/custom/permission/removeRoles',
method: 'get'
},
GET_ROLE_PERMISSION_BING: {
url: '/custom/permission/userRoleBinding',
method: 'post'
},
GET_SUB_SYSTEM_DATA_LIST: {
url: '/custom/permission/getAllParameters',
method: 'get'
},
EDIT_ROLE_CONTROL_LIST: {
url: '/custom/permission/updatePerForRole',
method: 'post'
},
GET_ROLE_CONTROL_LIST: {
url: '/custom/permission/selectPersByRole',
method: 'get'
},
TEXT_DEMO: {
url: '/custom/delete/submitApproval',
method: 'get'
},
GET_CHECK_DATA_CHARTS: {
url: '/custom/analysis/showReport',
method: 'post'
},
GET_MODEL_QUERY: {
url: '/custom/tcDataQuery/tcDataSelectByPartsNames',
method: 'post'
},
GET_MY_SEND_LIST: {
url: '/custom/todoTaskPojo/selectByPageByCreate',
method: 'post'
},
}

25
src/api/index.js Normal file
View File

@ -0,0 +1,25 @@
/*
* @Author: your name
* @Date: 2020-05-30 09:41:36
* LastEditTime: 2020-09-18 10:10:08
* LastEditors: Mosuzi
* @Description: In User Settings Edit
* @FilePath: /x-product-workspace/packages/x-project-app/src/api/index.js
*/
import CommonApi from './common'
import AccountApi from './account'
import AdminApi from './admin'
import PersonalApi from './personal'
import WorkbenchApi from './workbench'
import AppPage from './app-page'
import demoApi from './demo'
export default {
...CommonApi,
...AccountApi,
...AdminApi,
...PersonalApi,
...WorkbenchApi,
...AppPage,
...demoApi
}

53
src/api/personal/index.js Normal file
View File

@ -0,0 +1,53 @@
/*
* @Author: your name
* @Date: 2020-05-30 10:07:21
* @LastEditTime: 2020-06-06 12:27:21
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /x-product-workspace/packages/x-project-app/src/api/personal-center/index.js
*/
export default {
QUERY_USER_INFO: {
url: '/xdap-admin/user/query/userInfo',
method: 'post',
disableSuccessMsg: true
},
UPDATE_USER_INFO: {
url: '/xdap-admin/user/update/userInfo',
method: 'post'
},
QUERY_ACCOUNT_INFO: {
url: '/xdap-admin/user/query/accountInfo',
method: 'get',
disableSuccessMsg: true
},
// 查询用户绑定第三方账号信息
QUERY_ACCOUNT_BIND: {
url: '/xdap-admin/user/query/userBind',
method: 'get',
disableSuccessMsg: true
},
QUIT_TENANT: {
url: '/xdap-admin/tenant/quit/tenant',
method: 'post'
},
UPDATE_USER_PASSWORD: {
url: '/xdap-admin/user/update/userPassword',
method: 'post'
},
UPLOAD_USER_AVATAR: {
url: '/xdap-admin/user/upload/userAvatar',
method: 'post',
disableSuccessMsg: true
},
// 绑定微信
BIND_OPNE_WECHAT: {
url: '/xdap-admin/user/bind/openWechat',
method: 'post'
},
// 解绑第三方账号
UNBIND_THIRD_PLATFORM: {
url: '/xdap-admin/user/unbind/userThirdPlatform',
method: 'post'
}
}

View File

@ -0,0 +1,36 @@
/*
* @Author: your name
* @Date: 2020-05-30 16:15:05
* LastEditTime: 2020-09-22 11:11:01
* LastEditors: Mosuzi
* @Description: In User Settings Edit
* @FilePath: /x-product-workspace/packages/x-project-app/src/api/workbench/index.js
*/
export default {
QUERY_MY_TENANT_LIST: {
url: '/xdap-admin/tenant/query/myTenantList',
method: 'get',
disableSuccessMsg: true
},
// 查询首页应用
QUERY_HOME_LIST: {
url: '/xdap-app/app/query/workspaceHome',
method: 'get',
disableSuccessMsg: true
},
QUERY_TENANT_LIST_BY_USER: {
url: '/xdap-admin/tenant/query/tenantListByUser',
method: 'get',
disableSuccessMsg: true
},
QUERY_USER_TENANT_INFO: {
url: '/xdap-admin/tenant/query/userTenantInfo',
method: 'get',
disableSuccessMsg: true
},
USER_APP_CONFIG_UPDATE: {
url: '/xdap-app/user/config/update',
method: 'post',
disableSuccessMsg: true
}
}

17
src/assets-loader.js Normal file
View File

@ -0,0 +1,17 @@
export default {
requireAllSvg: function() {
const requireAll = (requireContext) => requireContext.keys().map(requireContext)
const req = require.context('./assets/icon', true, /\.svg$/)
requireAll(req)
},
/**
* 支持App应用动态导入图标
* @param { require.context('./assets/icon', true, /\.svg$/) }
*/
requireAppSvg: function(reqContext) {
const requireAll = (requireContext) => requireContext.keys().map(requireContext)
const req = reqContext
requireAll(req)
}
}

View File

@ -0,0 +1 @@
<svg t="1590552052885" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2626" width="200" height="200"><path d="M780.757333 248.149333l-254.634666-74.666666a47.104 47.104 0 0 0-30.549334 0l-258.048 74.666666c-13.568 3.413333-23.765333 16.981333-23.765333 33.962667v339.498667c13.568 40.746667 37.333333 78.08 67.882667 105.258666 40.746667 37.333333 139.221333 88.32 193.536 115.456l13.568 6.784c3.413333 3.413333 10.24 3.413333 16.981333 3.413334 6.826667 0 13.610667 0 20.394667-3.413334 47.530667-23.765333 162.986667-81.493333 207.104-122.24 30.549333-30.549333 54.314667-64.512 67.882666-105.258666l3.413334-339.498667c0-13.568-10.197333-27.178667-23.765334-33.962667z m-27.178666 363.306667a181.888 181.888 0 0 1-54.314667 81.493333c-37.333333 37.333333-146.005333 88.234667-193.536 112l-10.154667-3.413333c-47.530667-23.722667-146.005333-74.666667-183.338666-108.629333-23.765333-23.765333-44.16-50.901333-54.357334-81.493334V292.266667l251.264-74.666667 247.850667 74.666667-3.413333 319.146666z" fill="currentColor" p-id="2627"></path><path d="M512.725333 529.109333c-64.853333 0-116.053333-51.2-116.053333-116.053333 0-64.853333 51.2-116.053333 116.053333-116.053333 64.853333 0 116.053333 51.2 116.053334 116.053333 0 64.853333-51.2 116.053333-116.053334 116.053333z m0-193.962666c-42.24 0-77.909333 35.712-77.909333 77.909333 0 42.24 35.712 77.909333 77.909333 77.909333 42.24 0 77.909333-35.712 77.909334-77.909333 0-42.24-35.712-77.909333-77.909334-77.909333z" fill="currentColor" p-id="2628"></path><path d="M512.725333 695.68c-12.245333 0-20.394667-5.12-20.394666-12.714667v-172.629333c0-7.637333 8.149333-12.714667 20.394666-12.714667s20.394667 5.12 20.394667 12.714667v172.629333c0 7.637333-8.149333 12.714667-20.394667 12.714667z" fill="currentColor" p-id="2629"></path><path d="M515.882667 662.613333h-75.093334c-10.24 0-17.066667-7.978667-17.066666-19.925333s6.826667-19.882667 17.066666-19.882667h75.093334c10.24 0 17.066667 7.936 17.066666 19.882667s-6.826667 19.882667-17.066666 19.882667z" fill="currentColor" p-id="2630"></path></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1 @@
<svg t="1590477302758" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2141" width="200" height="200"><path d="M810.666667 770.56a21.333333 21.333333 0 0 1-21.205334 21.461333H234.922667A21.674667 21.674667 0 0 1 213.333333 770.56c0-11.861333 9.813333-16.512 21.589334-16.512h41.472V277.504c0-23.466667 19.328-42.837333 42.837333-42.837333h235.818667c23.509333 0 42.88 19.242667 42.88 42.837333v107.221333h107.178666c23.552 0 42.837333 19.2 42.837334 42.837334v326.485333h41.514666c11.818667 0 21.205333 4.693333 21.205334 16.512z m-250.794667-342.997333V274.517333H314.197333v479.530667h245.717334V427.52h-0.042667z m149.248 326.485333V427.52h-111.232v326.485333h111.232zM383.616 400.597333c-11.861333 0-21.418667-8.405333-21.504-18.688 0-10.24 9.685333-18.688 21.504-18.688h107.178667c11.818667 0 21.461333 8.405333 21.461333 18.688 0 10.24-9.642667 18.688-21.461333 18.688H383.616z m0 257.152c-11.861333 0-21.504-8.405333-21.504-18.645333 0-10.282667 9.685333-18.688 21.504-18.688h107.178667c11.818667 0 21.461333 8.405333 21.461333 18.688 0 10.24-9.642667 18.645333-21.461333 18.645333H383.616z m257.194667-107.136c-11.776 0-21.461333-8.362667-21.461334-18.645333 0-10.24 9.685333-18.688 21.461334-18.688h21.504c11.776 0 21.461333 8.405333 21.461333 18.688 0 10.24-9.685333 18.645333-21.461333 18.645333h-21.504z m0 107.136c-11.776 0-21.461333-8.405333-21.461334-18.645333 0-10.282667 9.685333-18.688 21.461334-18.688h21.504c11.776 0 21.461333 8.405333 21.461333 18.688 0 10.24-9.685333 18.645333-21.461333 18.645333h-21.504z m-257.194667-128.597333c-11.861333 0-21.504-8.362667-21.504-18.645333 0-10.24 9.685333-18.645333 21.504-18.645334h107.178667c11.818667 0 21.461333 8.362667 21.461333 18.645334 0 10.24-9.642667 18.645333-21.461333 18.645333H383.616z" fill="currentColor" p-id="2142"></path></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1 @@
<svg t="1591263911723" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6540" width="200" height="200"><path d="M590.165333 337.706667a21.333333 21.333333 0 0 0-1.493333-32.768 29.397333 29.397333 0 0 0-37.461333 0.938666l-202.709334 190.037334a21.077333 21.077333 0 0 0-1.365333 30.421333c0.341333 0.426667 204.117333 191.573333 204.117333 191.573333 10.026667 9.429333 26.88 9.941333 37.632 1.152a21.333333 21.333333 0 0 0 1.28-32.938666l-185.813333-174.293334 185.813333-174.122666z" fill="currentColor" p-id="6541"></path></svg>

After

Width:  |  Height:  |  Size: 575 B

View File

@ -0,0 +1 @@
<svg t="1590488917054" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2447" width="200" height="200"><path d="M433.834667 337.706667a21.333333 21.333333 0 0 1 1.493333-32.768 29.397333 29.397333 0 0 1 37.461333 0.938666l202.709334 190.037334a21.077333 21.077333 0 0 1 1.365333 30.421333c-0.341333 0.426667-204.117333 191.573333-204.117333 191.573333a29.354667 29.354667 0 0 1-37.632 1.152 21.333333 21.333333 0 0 1-1.28-32.938666l185.813333-174.293334-185.813333-174.122666z" fill="currentColor" p-id="2448"></path></svg>

After

Width:  |  Height:  |  Size: 566 B

View File

@ -0,0 +1 @@
<svg t="1590740427585" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3045" width="200" height="200"><path d="M337.706667 590.165333a21.333333 21.333333 0 0 1-32.768-1.493333 29.397333 29.397333 0 0 1 0.938666-37.461333l190.037334-202.709334a21.077333 21.077333 0 0 1 30.421333-1.365333c0.426667 0.341333 191.573333 204.117333 191.573333 204.117333 9.429333 10.026667 9.941333 26.88 1.152 37.632a21.333333 21.333333 0 0 1-32.938666 1.28l-174.293334-185.813333-174.122666 185.813333z" fill="currentColor" p-id="3046"></path></svg>

After

Width:  |  Height:  |  Size: 574 B

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1590563130922" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2748" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M122.517333 130.474667c24.213333-7.872 39.850667-0.853333 46.976 21.034666l236.586667 774.186667c7.125333 21.888-1.408 36.778667-25.6 44.629333-24.213333 7.872-39.872 0.853333-46.976-21.034666L96.917333 175.104c-7.125333-21.888 1.408-36.778667 25.6-44.629333z" fill="#D7D7D7" p-id="2749"></path><path d="M512 597.333333l448-53.333333-149.333333-202.666667 74.666666-256-383.829333 40.298667z" fill="#2B8FFF" p-id="2750"></path><path d="M512 602.432l165.568-81.493333L512 362.666667z" fill="#027AFF" p-id="2751"></path><path d="M170.666667 170.666667l384-85.333334 117.333333 426.666667L298.666667 597.333333z" fill="#66AEFF" p-id="2752"></path></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

1
src/assets/icon/date.svg Normal file
View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1592965424758" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6516" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M797.909333 219.818667h-91.306666v-21.333334a27.392 27.392 0 0 0-54.784 0v21.333334H371.754667v-21.333334a27.392 27.392 0 1 0-54.784 0v21.333334H225.621333c-30.293333 0-54.784 24.490667-54.784 54.784v523.605333c0 30.293333 24.490667 54.784 54.826667 54.784H797.866667c30.293333 0 54.826667-24.618667 54.826666-54.784V274.602667c0-30.293333-24.490667-54.784-54.826666-54.784zM317.013333 270.805333v19.029334a27.392 27.392 0 0 0 54.784 0v-19.029334h280.064v19.029334a27.392 27.392 0 0 0 54.784 0v-19.029334h95.146667v95.146667H221.866667v-95.146667h95.104z m487.04 533.205334H219.989333V414.592h584.021334v389.418667zM341.333333 512.042667h48.64a24.362667 24.362667 0 0 1 0 48.725333H341.333333a24.32 24.32 0 1 1 0-48.682667V512z m146.090667 0h48.682667a24.362667 24.362667 0 0 1 0 48.725333h-48.64a24.32 24.32 0 0 1 0-48.682667L487.424 512z m146.090667 0h48.768a24.362667 24.362667 0 0 1 0 48.725333h-48.768a24.32 24.32 0 1 1 0-48.682667V512zM341.333333 659.626667h48.768a24.362667 24.362667 0 0 1 0 48.682666H341.333333a24.32 24.32 0 0 1 0-48.682666z m146.176 0h48.682667a24.362667 24.362667 0 0 1 0 48.682666h-48.725333a24.32 24.32 0 0 1 0-48.682666z" fill="#B2B2B2" p-id="6517"></path></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1590495671939" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6498" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M896 135.68l-188.714667 203.946667a6.016 6.016 0 0 0-1.493333 5.333333 36.906667 36.906667 0 0 1-62.72 33.066667l-150.442667 150.4 14.848 198.698666L676.352 896 896 135.68z" fill="#007FFF" p-id="6499"></path><path d="M893.952 140.8l-186.709333 201.813333a6.016 6.016 0 0 0-1.493334 5.333334 36.394667 36.394667 0 0 1-62.08 32.682666l-147.84 147.84a2.986667 2.986667 0 0 0-0.853333 2.304l14.592 195.114667 376.490667-567.936 8.106666-17.066667-0.213333-0.085333z" fill="#0069FF" p-id="6500"></path><path d="M888.32 128l-203.946667 188.714667a6.016 6.016 0 0 1-5.333333 1.536 36.906667 36.906667 0 0 0-33.024 62.72l-150.442667 150.442666-198.613333-14.933333L128 347.605333l760.32-219.605333z" fill="#00EED4" p-id="6501"></path><path d="M883.2 130.304L681.386667 317.013333a6.016 6.016 0 0 1-5.290667 1.493334 36.394667 36.394667 0 0 0-32.682667 62.08l-147.882666 147.84a2.986667 2.986667 0 0 1-2.346667 0.853333l-195.114667-14.592 567.978667-376.490667 17.066667-8.106666 0.128 0.213333z" fill="#00D3B4" p-id="6502"></path></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M293.12 810.666667a39.68 39.68 0 0 1-39.68-39.68V674.133333H298.666667v85.333334h466.346666V260.266667H298.666667v85.333333H253.44V253.013333A39.68 39.68 0 0 1 293.12 213.333333h477.866667a39.68 39.68 0 0 1 39.68 39.68v517.546667a40.106667 40.106667 0 0 1-39.68 40.106667z m213.333333-98.133334l-73.386666-55.893333a40.106667 40.106667 0 0 1-14.08-42.666667l54.186666-180.053333-18.773333-45.653333a39.68 39.68 0 0 1 21.333333-52.053334 36.693333 36.693333 0 0 1 15.36-2.986666h80.64a39.68 39.68 0 0 1 39.68 39.68 36.693333 36.693333 0 0 1-2.986666 15.36l-18.773334 45.653333 53.76 180.053333a42.666667 42.666667 0 0 1-13.653333 42.666667L554.666667 712.533333a42.666667 42.666667 0 0 1-48.64 0z m-49.066666-85.333333l74.666666 55.466667 73.386667-55.893334L554.666667 452.266667h-42.666667z m50.346666-213.333333H554.666667l16.64-39.68h-78.933334z m-274.346666 230.4a23.466667 23.466667 0 0 1-20.053334-27.306667 23.04 23.04 0 0 1 20.053334-19.626667h91.306666a23.893333 23.893333 0 0 1 0 46.933334zM298.666667 548.693333H253.44v-73.813333H298.666667v73.813333zM233.386667 426.666667a23.893333 23.893333 0 0 1 0-46.933334h91.306666a21.333333 21.333333 0 0 1 19.626667 23.466667 21.76 21.76 0 0 1-19.626667 23.466667z" /></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1590563124043" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2624" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M64 902.613333h896V960H64v-57.386667z m92.693333-79.445333h715.029334v35.306667H156.693333v-35.306667z" fill="#B3D7FF" p-id="2625"></path><path d="M600.32 222.890667l251.605333 119.168v485.546666H603.584z" fill="#2B8FFF" p-id="2626"></path><path d="M165.525333 187.584L604.629333 64v763.584H165.546667z" fill="#66AEFF" p-id="2627"></path><path d="M396.501333 306.773333h141.226667v15.530667h-141.226667v-15.552z m-164.778666 0h141.226666v15.530667h-141.226666v-15.552z m164.778666 82.368h141.226667v15.552h-141.226667v-15.552z m-164.778666 0h141.226666v15.552h-141.226666v-15.552z m164.778666 82.389334h141.226667v15.552h-141.226667v-15.552z m-164.778666 0h141.226666v15.552h-141.226666v-15.552z m164.778666 82.410666h141.226667v15.530667h-141.226667v-15.530667z m-164.778666 0h141.226666v15.530667h-141.226666v-15.530667z m164.778666 82.389334h141.226667v15.530666h-141.226667v-15.530666z m-164.778666 0h141.226666v15.530666h-141.226666v-15.530666z" fill="#FFFFFF" p-id="2628"></path><path d="M852.608 452.416v23.530667h-129.493333v-23.530667zM852.608 553.941333v23.530667h-129.493333v-23.530667z" fill="#FFFFFF" p-id="2629"></path><path d="M130.197333 849.664h768v52.949333h-768z" fill="#95C5FA" p-id="2630"></path></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1 @@
<svg t="1590477404744" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2380" width="200" height="200"><path d="M759.978667 497.493333a17.152 17.152 0 0 1 2.304 25.728c-2.261333 0-2.261333 2.133333-2.261334 2.133334l-111.189333 109.226666a20.693333 20.693333 0 0 1-15.573333 6.4 20.565333 20.565333 0 0 1-15.616-6.4 20.138667 20.138667 0 0 1 0-29.994666l73.386666-70.656h-213.504c-13.354667 0-22.272-8.576-22.272-21.418667 0-12.885333 8.917333-21.418667 22.272-21.418667h213.546667l-73.386667-70.656a20.138667 20.138667 0 0 1 0-29.994666 22.016 22.016 0 0 1 31.146667 0l111.146667 107.093333z m-17.749334 193.365334c13.354667 0 22.272 8.533333 22.272 21.418666v14.933334c0 36.437333-28.970667 64.256-66.773333 64.256H322.901333c-37.845333 0-66.730667-27.818667-66.730666-64.256V298.922667c0-36.394667 28.928-64.256 66.730666-64.256h374.826667c37.845333 0 66.773333 27.861333 66.773333 64.256v14.933333c0 12.885333-8.96 21.461333-22.314666 21.461333-13.354667 0-22.186667-8.576-22.186667-21.461333v-14.933333c0-12.842667-8.96-21.418667-22.272-21.418667H322.901333c-13.397333 0-22.229333 8.533333-22.229333 21.418667v428.330666c0 12.842667 8.874667 21.418667 22.229333 21.418667h374.826667c13.397333 0 22.272-8.533333 22.272-21.418667v-14.933333c0-12.885333 8.874667-21.461333 22.229333-21.461333z" fill="currentColor" p-id="2381"></path></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1590564441419" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3571" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M448.170667 273.706667a59.477333 59.477333 0 1 0 118.954666 0 59.477333 59.477333 0 0 0-118.954666 0zM448.170667 510.293333a59.221333 59.221333 0 1 0 118.442666 0 59.221333 59.221333 0 0 0-118.442666 0zM448.682667 747.221333a59.221333 59.221333 0 1 0 118.442666 0 59.221333 59.221333 0 0 0-118.442666 0z" p-id="3572"></path></svg>

After

Width:  |  Height:  |  Size: 708 B

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1590559458705" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2505" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M583.722667 498.133333l38.272-38.272a122.026667 122.026667 0 0 1-162.56 162.56l38.272-38.229333a73.130667 73.130667 0 0 0 86.058666-86.058667z m-62.421334-58.24a73.130667 73.130667 0 0 0-81.877333 81.877334l-39.253333 39.253333a122.026667 122.026667 0 0 1 160.384-160.384l-39.253334 39.253333z m181.76-61.098666l34.688-34.688C808.533333 408.021333 853.333333 484.053333 853.333333 512.426667c0 52.565333-153.344 268.202667-341.333333 268.202666-57.941333 0-112.554667-20.48-160.426667-50.346666l35.456-35.456c37.888 22.101333 80.256 37.034667 124.970667 37.034666 161.578667 0 292.565333-195.029333 292.565333-219.434666 0-13.354667-39.338667-77.952-101.504-133.632z m-69.802666-50.858667c-36.949333-20.949333-77.994667-34.944-121.258667-34.944-161.578667 0-292.565333 195.072-292.565333 219.434667 0 13.141333 38.058667 75.861333 98.432 130.901333l-34.645334 34.645333C214.144 614.656 170.666667 540.416 170.666667 512.426667c0-52.565333 153.344-268.202667 341.333333-268.202667 56.490667 0 109.824 19.456 156.842667 48.128l-35.584 35.584z m169.6-109.866667a23.466667 23.466667 0 0 1 0 33.194667l-552.533334 552.533333a23.466667 23.466667 0 1 1-33.194666-33.194666l552.533333-552.533334a23.466667 23.466667 0 0 1 33.194667 0z" fill="#B2B2B2" p-id="2506"></path></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1590559452407" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2386" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512 585.386667a73.130667 73.130667 0 1 0 0-146.304 73.130667 73.130667 0 0 0 0 146.304z m0-195.029334a122.026667 122.026667 0 0 1 121.898667 121.898667A122.026667 122.026667 0 0 1 512 634.154667a122.026667 122.026667 0 0 1-121.898667-121.898667A122.026667 122.026667 0 0 1 512 390.357333z m0 341.333334c161.578667 0 292.565333-195.072 292.565333-219.434667 0-24.405333-130.986667-219.434667-292.565333-219.434667-161.578667 0-292.565333 195.029333-292.565333 219.434667 0 24.362667 130.986667 219.434667 292.565333 219.434667zM512 244.053333c187.989333 0 341.333333 215.637333 341.333333 268.202667 0 52.565333-153.344 268.16-341.333333 268.16-187.989333 0-341.333333-215.594667-341.333333-268.16 0-52.565333 153.344-268.202667 341.333333-268.202667z" fill="#B2B2B2" p-id="2387"></path></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M749.226667 325.546667l-205.653334-102.4a68.693333 68.693333 0 0 0-63.146666 0L274.773333 325.973333a70.4 70.4 0 0 0-39.68 63.573334v244.48a72.106667 72.106667 0 0 0 39.253334 64l205.653333 102.826666a72.106667 72.106667 0 0 0 63.573333 0l205.653334-102.826666a70.4 70.4 0 0 0 39.68-63.573334V389.546667a71.68 71.68 0 0 0-39.68-64z m-256 436.906666l-200.96-99.84a32.426667 32.426667 0 0 1-17.493334-28.586666V393.386667h7.68l209.493334 104.96z m19.2-298.666666L298.666667 357.546667h3.84l194.56-97.28a32.426667 32.426667 0 0 1 28.16 0L725.333333 357.546667h-3.84L512 463.786667zM748.8 640a31.146667 31.146667 0 0 1-17.066667 23.893333l-199.68 99.84v-265.386666l209.066667-104.106667h6.826667z" /></svg>

After

Width:  |  Height:  |  Size: 990 B

View File

@ -0,0 +1 @@
<svg t="1590477172452" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1903" width="200" height="200"><path d="M511.274667 213.589333a297.813333 297.813333 0 0 0-297.685334 297.685334 297.813333 297.813333 0 0 0 297.685334 297.728 297.856 297.856 0 0 0 297.728-297.728 297.898667 297.898667 0 0 0-297.728-297.685334z m0 553.301334a255.573333 255.573333 0 1 1 0-511.146667 255.573333 255.573333 0 1 1 0 511.146667z m152.405333-120.490667a154.453333 154.453333 0 0 0-87.296-102.144 114.176 114.176 0 0 0 52.992-96.426667 114.474667 114.474667 0 0 0-114.389333-114.346666c-63.146667 0-114.346667 51.2-114.432 114.346666 0 40.746667 21.034667 76.373333 52.906666 96.426667a153.344 153.344 0 0 0-87.552 102.144 20.394667 20.394667 0 0 0 29.994667 22.656 20.309333 20.309333 0 0 0 9.386667-12.458667 112.938667 112.938667 0 0 1 218.666666 0 20.48 20.48 0 0 0 24.832 14.506667 20.053333 20.053333 0 0 0 14.890667-24.746667z m-148.608-272.213333a73.6 73.6 0 1 1 0 147.2 73.6 73.6 0 0 1 0-147.2z" fill="currentColor" p-id="1904"></path></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1 @@
<svg t="1590551997856" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2507" width="200" height="200"><path d="M244.608 213.333333C204.8 213.333333 170.666667 256.042667 170.666667 295.850667V728.32c0 39.808 34.133333 82.346667 73.941333 82.346667h534.784C819.2 810.666667 853.333333 768.128 853.333333 728.32V295.850667C853.333333 256.042667 819.2 213.333333 779.392 213.333333H244.608zM775.253333 763.093333H248.746667c-19.925333 0-29.866667-20.693333-29.866667-37.76V295.850667c0-19.882667 12.8-34.133333 29.866667-34.133334h526.506666c19.925333 0 34.133333 17.066667 34.133334 34.133334V725.333333c0 19.925333-17.066667 37.76-34.133334 37.76zM742.4 388.266667h-153.6c-8.533333 0-14.208 8.533333-14.208 19.925333 0 11.349333 5.674667 19.882667 14.208 19.882667h153.6c8.533333 0 14.208-8.533333 14.208-19.882667 0-11.392-5.674667-19.925333-14.208-19.925333z m0 98.133333h-153.6c-8.533333 0-14.208 8.533333-14.208 19.925333 0 11.349333 5.674667 19.882667 14.208 19.882667h153.6c8.533333 0 14.208-8.533333 14.208-19.882667 0-11.392-5.674667-19.925333-14.208-19.925333z m0 102.4h-128c-8.533333 0-14.208 8.533333-14.208 19.925333 0 11.349333 5.674667 19.882667 14.208 19.882667h128c8.533333 0 14.208-8.533333 14.208-19.882667 0-11.392-5.674667-19.925333-14.208-19.925333z m-290.133333-48.64c22.741333-17.066667 34.133333-45.525333 34.133333-73.941333 0-54.058667-42.666667-96.725333-96.725333-96.725334-54.016 0-96.682667 42.666667-96.682667 96.725334 0 31.274667 14.208 56.874667 34.133333 73.941333-36.992 17.066667-68.266667 51.2-82.517333 93.866667-2.816 8.533333 2.858667 19.925333 11.392 22.741333 11.392 2.858667 19.925333-2.816 22.741333-11.349333 14.250667-48.384 56.917333-79.658667 108.117334-79.658667 48.341333 0 93.866667 31.274667 108.074666 79.658667 2.858667 8.533333 11.392 14.208 17.066667 14.208h5.674667a19.328 19.328 0 0 0 11.392-22.741334c-8.533333-45.525333-36.992-79.658667-76.8-96.725333zM389.674667 401.109333c34.133333 0 59.733333 25.6 59.733333 59.733334 0 34.133333-25.6 59.733333-59.733333 59.733333-34.133333 0-59.733333-25.6-59.733334-59.733333 0-34.133333 28.458667-59.733333 59.733334-59.733334z" fill="currentColor" p-id="2508"></path></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1590495765910" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6740" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M668.330667 756.266667a12.672 12.672 0 0 0 2.688 2.474666 162.901333 162.901333 0 0 1 48.384 87.04 52.778667 52.778667 0 0 0 15.402666 34.218667 52.992 52.992 0 1 0 43.050667-90.154667 162.901333 162.901333 0 0 1-90.709333-50.474666 12.672 12.672 0 0 0-18.773334 16.896" fill="#FB6500" p-id="6741"></path><path d="M835.925333 797.013333a12.672 12.672 0 0 0 2.432-2.688 162.901333 162.901333 0 0 1 87.04-48.384 52.778667 52.778667 0 0 0 34.261334-15.402666 52.992 52.992 0 1 0-90.197334-43.050667 162.901333 162.901333 0 0 1-50.474666 90.709333 12.672 12.672 0 0 0 16.938666 18.773334" fill="#0082EF" p-id="6742"></path><path d="M876.629333 629.418667a12.672 12.672 0 0 0-2.645333-2.432 162.901333 162.901333 0 0 1-48.426667-87.04 52.778667 52.778667 0 0 0-15.402666-34.261334 52.992 52.992 0 1 0-43.050667 90.197334 162.901333 162.901333 0 0 1 90.709333 50.474666 12.672 12.672 0 0 0 18.816-16.938666" fill="#2DBC00" p-id="6743"></path><path d="M709.077333 588.714667a12.672 12.672 0 0 0-2.474666 2.645333 162.901333 162.901333 0 0 1-87.04 48.426667 52.778667 52.778667 0 0 0-34.218667 15.402666 53.034667 53.034667 0 1 0 90.154667 43.050667 162.901333 162.901333 0 0 1 50.474666-90.709333 12.672 12.672 0 0 0-16.896-18.816" fill="#FFCC00" p-id="6744"></path><path d="M787.882667 329.770667a325.12 325.12 0 0 0-58.88-83.584c-61.44-63.573333-147.498667-104.533333-242.261334-115.285334-16.64-1.92-33.408-2.858667-50.133333-2.901333-15.488 0-31.616 0.896-48 2.688-95.146667 10.325333-181.717333 51.072-243.626667 114.688a325.290667 325.290667 0 0 0-59.178666 83.328 291.242667 291.242667 0 0 0-30.336 129.365333c0 57.728 17.578667 114.602667 50.773333 164.565334 18.773333 28.245333 50.944 64.768 78.421333 87.168l-15.232 62.976-4.352 17.749333a28.501333 28.501333 0 0 0-1.792 5.504c-0.256 1.152-0.341333 2.346667-0.469333 3.584-0.085333 0.896-0.256 1.792-0.256 2.730667 0 16.213333 13.098667 29.354667 29.312 29.354666a29.013333 29.013333 0 0 0 14.506667-3.968l0.384-0.256c0.64-0.341333 1.28-0.682667 1.877333-1.109333l108.8-54.613333a422.058667 422.058667 0 0 0 71.125333 13.738666 440.490667 440.490667 0 0 0 98.133334-0.256 426.410667 426.410667 0 0 0 96.085333-22.485333 52.821333 52.821333 0 0 1-36.096-55.381333c-22.186667 7.04-44.970667 11.946667-68.096 14.549333a369.109333 369.109333 0 0 1-82.218667 0.256c-2.773333-0.298667-5.546667-0.725333-8.277333-1.109333a362.581333 362.581333 0 0 1-53.930667-11.306667 36.778667 36.778667 0 0 0-29.013333 2.986667l-2.304 1.152-69.76 41.173333H232.96c-1.450667 0.853333-2.261333 1.194667-3.029333 1.194667a4.522667 4.522667 0 0 1-4.437334-4.650667l2.56-10.410667 2.986667-11.306666 10.325333-39.338667a28.16 28.16 0 0 0-10.112-31.232 296.106667 296.106667 0 0 1-27.946666-23.466667 273.493333 273.493333 0 0 1-39.68-46.933333 234.24 234.24 0 0 1-40.192-129.792c0-35.2 8.064-69.461333 23.893333-101.76a260.949333 260.949333 0 0 1 47.530667-66.858667C245.76 238.250667 317.354667 204.8 396.373333 196.138667c13.354667-1.493333 26.794667-2.218667 40.234667-2.261334 13.568 0 27.733333 0.853333 41.984 2.432 78.677333 8.96 149.845333 42.666667 200.362667 94.890667 19.541333 20.224 35.413333 42.752 47.232 66.986667a229.12 229.12 0 0 1 23.509333 100.949333c0 3.626667-0.213333 7.253333-0.426667 10.837333a52.906667 52.906667 0 0 1 65.066667 7.637334c0.896 0.853333 1.664 1.877333 2.474667 2.816a290.986667 290.986667 0 0 0-28.970667-150.656" fill="#0079DE" p-id="6745"></path></svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -0,0 +1 @@
<svg t="1590737166026" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2926" width="200" height="200"><path d="M731.733333 675.584a28.885333 28.885333 0 0 1 11.093334 6.954667l164.010666 163.968a29.013333 29.013333 0 0 1-40.96 41.002666l-164.010666-163.968a28.928 28.928 0 0 1-6.144-9.045333 338.176 338.176 0 1 1 35.968-38.912z m-265.557333 70.826667a280.192 280.192 0 1 0 0-560.426667 280.192 280.192 0 0 0 0 560.384z" fill="currentColor" p-id="2927"></path></svg>

After

Width:  |  Height:  |  Size: 510 B

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1590495761583" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6620" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M676.522667 359.296c10.666667 0 21.376 0.725333 31.872 1.962667-28.672-133.376-171.349333-232.576-334.293334-232.576-182.186667 0-331.264 124.16-331.264 281.770666 0 91.008 49.664 165.802667 132.693334 223.701334L142.336 733.866667l115.754667-58.026667c41.514667 8.149333 74.837333 16.554667 116.138666 16.554667 10.325333 0 20.650667-0.554667 30.976-1.28a249.045333 249.045333 0 0 1-10.154666-69.461334c-0.170667-144.768 123.989333-262.357333 281.429333-262.357333z m-178.090667-89.728c24.917333 0 41.472 16.384 41.472 41.301333 0 24.746667-16.554667 41.514667-41.472 41.514667-24.746667 0-49.706667-16.597333-49.706667-41.514667s24.746667-41.301333 49.706667-41.301333z m-231.893333 82.773333c-24.746667 0-49.92-16.554667-49.92-41.472s25.173333-41.301333 49.92-41.301333 41.301333 16.384 41.301333 41.301333-16.554667 41.514667-41.301333 41.514667z" fill="#1AAC18" p-id="6621"></path><path d="M978.944 617.557333c0-132.48-132.522667-240.426667-281.386667-240.426666-157.653333 0-281.770667 107.946667-281.770666 240.426666 0 132.693333 124.16 240.469333 281.770666 240.469334 32.938667 0 66.218667-8.362667 99.370667-16.554667l90.837333 49.664-24.96-82.773333c66.645333-49.749333 116.138667-115.968 116.138667-190.805334z m-372.778667-41.301333c-16.554667 0-33.109333-16.384-33.109333-33.152 0-16.554667 16.725333-33.109333 33.109333-33.109333 25.130667 0 41.514667 16.554667 41.514667 33.109333 0 16.768-16.384 33.152-41.514667 33.152z m182.186667 0c-16.341333 0-32.938667-16.384-32.938667-33.152 0-16.554667 16.597333-33.109333 32.981334-33.109333 24.746667 0 41.472 16.554667 41.472 33.109333 0 16.768-16.554667 33.152-41.472 33.152z" fill="#1AAC18" p-id="6622"></path></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1 @@
<svg t="1590478942182" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2618" width="200" height="200"><path d="M842.026667 727.594667H181.248V245.632h660.778667v481.962667z m-713.642667 0a52.906667 52.906667 0 0 0 52.864 52.906666h660.693333c29.269333 0 52.864-23.68 52.864-52.906666V245.632a52.906667 52.906667 0 0 0-52.906666-52.864H181.290667c-29.269333 0-52.906667 23.68-52.906667 52.906667v481.92z m629.333333 176.597333a26.368 26.368 0 0 0 26.368-26.410667v-1.194666a26.453333 26.453333 0 0 0-26.368-26.453334H265.557333a26.368 26.368 0 0 0-26.410666 26.453334v1.194666c0 14.592 11.818667 26.410667 26.410666 26.410667h492.16z m-273.109333-53.546667h52.864v-70.144h-51.626667l-1.28 70.144z" fill="currentColor" p-id="2619"></path><path d="M323.754667 530.773333a25.088 25.088 0 0 0 0 50.176h143.061333a25.088 25.088 0 0 0 0-50.133333H323.754667z m0-125.44a25.088 25.088 0 0 0 0 50.133334h353.749333a25.088 25.088 0 0 0 0.128-50.133334H323.754667z" fill="currentColor" p-id="2620"></path></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M702.293333 669.013333a54.613333 54.613333 0 0 0 0-23.466666A58.88 58.88 0 0 0 655.786667 597.333333h-2.56a58.026667 58.026667 0 0 0-66.133334 46.08 58.453333 58.453333 0 0 0 0 24.32 59.306667 59.306667 0 0 0 46.506667 46.933334h11.946667a57.6 57.6 0 0 0 56.746666-45.653334z m-57.173333 9.813334a24.32 24.32 0 0 1-24.32-24.32 24.32 24.32 0 1 1 24.32 24.32z" /><path fill="currentColor" d="M802.56 651.52a122.88 122.88 0 0 1-5.546667-27.733333 23.466667 23.466667 0 0 0-20.053333-18.346667h-2.56a30.293333 30.293333 0 0 1-30.293333-29.866667 53.333333 53.333333 0 0 1 0-8.106666 10.666667 10.666667 0 0 0 0-3.413334 27.306667 27.306667 0 0 0-9.386667-31.146666l-36.693333-20.906667h-10.666667a23.466667 23.466667 0 0 0-20.48 8.96 47.786667 47.786667 0 0 1-23.04 13.653333 49.066667 49.066667 0 0 1-21.76-11.52h-2.986667a29.013333 29.013333 0 0 0-20.48-8.96c-4.266667 0-6.826667 0-8.96 2.133334l-39.253333 20.48a28.16 28.16 0 0 0-8.96 31.146666 53.76 53.76 0 0 1 0 11.52 30.293333 30.293333 0 0 1-29.44 30.72 24.32 24.32 0 0 0-20.48 20.053334 188.586667 188.586667 0 0 0-4.266667 31.146666 82.346667 82.346667 0 0 0 4.266667 30.72 23.466667 23.466667 0 0 0 20.48 20.48 29.013333 29.013333 0 0 1 20.906667 8.533334 30.72 30.72 0 0 1 9.386666 20.906666 48.213333 48.213333 0 0 1 0 7.68 14.506667 14.506667 0 0 0 0 3.84 27.733333 27.733333 0 0 0 9.386667 31.146667l36.693333 20.48a17.493333 17.493333 0 0 1 9.386667 0 23.04 23.04 0 0 0 20.053333-8.96c3.84-3.84 15.786667-15.36 24.746667-15.36a45.653333 45.653333 0 0 1 25.173333 15.36 28.16 28.16 0 0 0 20.053334 8.96 22.186667 22.186667 0 0 0 11.52 0l37.12-20.48a28.16 28.16 0 0 0 8.96-31.146667 35.84 35.84 0 0 1 0-11.52 30.293333 30.293333 0 0 1 29.44-30.72h3.413333a24.32 24.32 0 0 0 20.48-20.053333 188.586667 188.586667 0 0 0 4.266667-31.146667z m-197.973333 109.653333a29.013333 29.013333 0 0 0-5.12 5.12l-21.333334-12.373333a61.013333 61.013333 0 0 0 3.84-17.92 64 64 0 0 0-53.76-62.72 26.453333 26.453333 0 0 0 0-5.546667 116.053333 116.053333 0 0 1 0-13.226666 90.453333 90.453333 0 0 1 0-10.24v-8.533334a62.72 62.72 0 0 0 53.333334-63.573333 49.493333 49.493333 0 0 0-3.84-17.493333l23.466666-12.8a30.72 30.72 0 0 0 9.386667 7.253333 57.6 57.6 0 0 0 34.133333 12.373333 60.586667 60.586667 0 0 0 34.133334-12.373333 34.56 34.56 0 0 1 6.4-5.546667h2.56l23.466666 12.8a61.013333 61.013333 0 0 0-3.84 17.493334 64.426667 64.426667 0 0 0 53.76 63.573333v5.12a114.346667 114.346667 0 0 1 0 14.08 52.906667 52.906667 0 0 1 0 18.346667 61.866667 61.866667 0 0 0-53.333333 63.146666 49.066667 49.066667 0 0 0 3.413333 17.493334l-23.466666 12.8-5.12-11.093334a61.013333 61.013333 0 0 0-35.84-12.8 71.68 71.68 0 0 0-36.266667 12.8 34.56 34.56 0 0 1-5.973333 3.84z" /><path fill="currentColor" d="M480.853333 754.773333H290.986667a30.72 30.72 0 0 1-29.013334-29.866666 209.066667 209.066667 0 0 1 188.586667-206.933334h22.613333a142.08 142.08 0 0 0 78.933334-25.173333l8.106666-5.973333a149.333333 149.333333 0 0 0 56.32-116.48 144.64 144.64 0 0 0-42.666666-104.533334A146.346667 146.346667 0 0 0 469.333333 221.866667a148.053333 148.053333 0 0 0-145.92 147.626666 150.613333 150.613333 0 0 0 56.746667 116.906667l6.4 3.84-6.4 2.56A250.026667 250.026667 0 0 0 221.013333 725.333333a70.826667 70.826667 0 0 0 70.4 71.68h187.733334a19.626667 19.626667 0 0 0 18.346666-20.053333 19.2 19.2 0 0 0-16.64-22.186667z m-116.48-384A106.666667 106.666667 0 1 1 469.333333 476.16a107.946667 107.946667 0 0 1-104.96-106.24z" /></svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M695.466667 488.106667h-60.586667a20.053333 20.053333 0 1 0 0 40.106666h60.586667a20.053333 20.053333 0 0 0 0-40.106666zM480.853333 494.08v-2.56a148.053333 148.053333 0 0 0-85.333333-267.946667 148.053333 148.053333 0 0 0-85.333333 267.946667l3.413333 2.56h-3.84a262.826667 262.826667 0 0 0-174.506667 247.04 20.48 20.48 0 0 0 40.533334 0 221.866667 221.866667 0 0 1 443.306666 0 20.053333 20.053333 0 0 0 40.106667 0 262.826667 262.826667 0 0 0-178.346667-247.04z m-85.333333-15.36a107.946667 107.946667 0 1 1 0-215.893333 107.946667 107.946667 0 0 1 107.946667 107.946666 107.946667 107.946667 0 0 1-110.08 107.946667zM819.2 307.626667h-184.32a20.053333 20.053333 0 0 0 0 40.106666h184.32a20.053333 20.053333 0 0 0 0-40.106666zM755.2 396.8h-120.32a20.053333 20.053333 0 0 0 0 40.106667h120.32a20.053333 20.053333 0 1 0 0-40.106667z" /></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M502.613333 269.226667h-20.053333a265.386667 265.386667 0 0 0-105.813333 21.76 273.92 273.92 0 0 0-144.64 144.213333 270.506667 270.506667 0 0 0 58.453333 298.666667 269.226667 269.226667 0 0 0 85.333333 58.026666 264.96 264.96 0 0 0 105.386667 21.76h3.413333a271.36 271.36 0 0 0 102.4-21.333333 276.48 276.48 0 0 0 144.64-144.64 272.213333 272.213333 0 0 0 21.333334-105.386667v-20.053333h-250.453334z m210.773334 291.84a229.12 229.12 0 0 1-66.986667 144.213333 232.96 232.96 0 0 1-163.413333 67.84 232.96 232.96 0 0 1-163.413334-67.84 232.106667 232.106667 0 0 1 145.066667-395.52v251.306667z" /><path fill="#ffffff" d="M792.746667 369.493333a250.453333 250.453333 0 0 0-55.466667-82.346666 259.413333 259.413333 0 0 0-82.346667-55.466667A256 256 0 0 0 554.666667 213.333333h-19.626667v279.04H810.666667V469.333333a256 256 0 0 0-17.92-99.84z m-218.88 81.066667V251.733333a219.306667 219.306667 0 0 1 198.4 198.826667z" /></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M608.426667 258.986667A117.333333 117.333333 0 0 0 512 308.48a116.906667 116.906667 0 0 0-96-49.493333H219.306667V733.866667h182.186666c33.28 0 85.333333 9.813333 92.16 28.586666v2.56h37.546667v-2.986666c5.973333-17.92 58.453333-28.16 92.16-28.16h179.626667V258.986667zM423.253333 298.666667a70.826667 70.826667 0 0 1 69.973334 61.44v349.013333a162.133333 162.133333 0 0 0-91.733334-17.066667H261.546667V298.666667h161.706666z m341.333334 0v390.826666h-139.52a163.413333 163.413333 0 0 0-92.16 17.066667V359.68A69.546667 69.546667 0 0 1 602.026667 298.666667h162.986666z" /></svg>

After

Width:  |  Height:  |  Size: 868 B

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M745.386667 631.466667v-42.666667A62.72 62.72 0 0 0 682.666667 526.08h-151.466667v-49.493333h47.36a59.733333 59.733333 0 0 0 58.88-61.013334v-128a62.72 62.72 0 0 0-61.44-60.16h-128a63.146667 63.146667 0 0 0-61.44 61.44v128a62.72 62.72 0 0 0 61.866667 61.013334h42.666666v49.493333H341.333333a62.72 62.72 0 0 0-61.44 61.44v42.666667a62.293333 62.293333 0 0 0-61.44 61.013333v42.666667a62.72 62.72 0 0 0 61.44 61.44h42.666667a61.013333 61.013333 0 0 0 42.666667-18.346667 59.733333 59.733333 0 0 0 16.64-42.666667v-42.666666a62.72 62.72 0 0 0-61.013334-61.44v-46.933334a22.613333 22.613333 0 0 1 20.48-20.48h150.186667v67.413334h-0.853333a63.146667 63.146667 0 0 0-61.44 61.013333v42.666667a63.146667 63.146667 0 0 0 61.44 61.44h45.226666a60.16 60.16 0 0 0 58.88-61.44v-42.666667a62.72 62.72 0 0 0-61.44-61.013333h-2.133333v-67.413334H682.666667a22.186667 22.186667 0 0 1 20.906666 23.466667v42.666667h-2.133333A63.146667 63.146667 0 0 0 640 692.906667v42.666666a63.146667 63.146667 0 0 0 61.44 61.44h44.8a61.013333 61.013333 0 0 0 42.666667-18.346666 59.733333 59.733333 0 0 0 16.64-42.666667v-42.666667a63.146667 63.146667 0 0 0-60.16-61.866666z m-423.68 38.4h2.986666a22.613333 22.613333 0 0 1 14.933334 7.253333 20.48 20.48 0 0 1 5.546666 16.213333v44.8a21.76 21.76 0 0 1-21.76 20.48h-46.933333a23.893333 23.893333 0 0 1-15.36-7.253333 24.746667 24.746667 0 0 1-5.12-16.213333v-42.666667a22.186667 22.186667 0 0 1 6.4-16.64 20.48 20.48 0 0 1 16.64-5.973333z m213.333333 0h2.56a22.613333 22.613333 0 0 1 15.36 7.253333 20.48 20.48 0 0 1 5.546667 16.213333v42.666667a2.56 2.56 0 0 1 0 2.56 22.613333 22.613333 0 0 1-7.253334 15.36 23.466667 23.466667 0 0 1-14.506666 5.546667h-46.933334a22.613333 22.613333 0 0 1-20.906666-23.466667v-45.653333a22.186667 22.186667 0 0 1 7.68-14.933334 20.906667 20.906667 0 0 1 16.213333-5.546666z m-85.333333-231.253334h-2.56a22.186667 22.186667 0 0 1-20.48-23.466666v-128a22.186667 22.186667 0 0 1 22.186666-20.48h131.413334a22.613333 22.613333 0 0 1 20.906666 23.466666v128a22.186667 22.186667 0 0 1-22.186666 20.48h-128z m320.426666 298.666667v2.56a21.333333 21.333333 0 0 1-7.68 15.36 21.76 21.76 0 0 1-14.506666 5.546667h-47.36a22.186667 22.186667 0 0 1-20.906667-23.466667v-46.933333a22.186667 22.186667 0 0 1 23.466667-20.48h42.666666a21.76 21.76 0 0 1 15.36 6.4l2.133334 2.133333a20.906667 20.906667 0 0 1 4.693333 14.933333z" /></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

BIN
src/assets/img/close.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

BIN
src/assets/img/loading.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

BIN
src/assets/img/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
src/assets/img/refresh.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
src/assets/img/slider.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

322
src/assets/js/captcha.js Normal file
View File

@ -0,0 +1,322 @@
'use strict'
var _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) { return typeof obj } : function (obj) { return obj && typeof Symbol === 'function' && obj.constructor === Symbol ? 'symbol' : typeof obj };
(function () {
// var canvasRef = ''
var opts = {
imgurl: '',
cw: 60,
ch: 60,
precision: 5,
onSuccess: null,
onError: null,
successText: '',
failText: '',
eventinfo: {
flag: false,
left: 0,
clipleft: 0,
currentX: 0
}
}
function isArray(obj) {
return Object.prototype.toString.call(obj) === '[object Array]'
}
function createCaptchaBox(canvas) {
var captchaBox = document.createElement('div')
captchaBox.className = 'captcha-box'
captchaBox.style.width = canvas.width + 'px'
var dragBox = document.createElement('div')
dragBox.className = 'drag-box'
dragBox.id = 'drag-box'
var canvasBox = document.createElement('div')
canvasBox.className = 'canvas-box'
canvasBox.appendChild(canvas.cloneNode(true))
canvasBox.appendChild(createResult())
captchaBox.appendChild(canvasBox)
captchaBox.appendChild(createDragBar())
canvas.parentNode.replaceChild(captchaBox, canvas)
captchaBox.appendChild(dragBox)
return captchaBox
}
function createDragBar() {
var dragbar = document.createElement('div')
dragbar.className = 'captcha-dragbar'
dragbar.innerHTML = '\n <div class="drag-option-bg">\n <div class="drag-option">\n <div class="drag-track"></div>\n <div id="drag-slider" class="drag-slider"></div>\n <div class="drag-btn">\n <i id="drag-btn-refresh" class="refresh"></i>\n </div>\n </div>\n </div>\n '
return dragbar
}
function createResult() {
var result = document.createElement('div')
result.id = 'captcha-result'
result.className = 'captcha-result'
return result
}
function createCanvas(w, h) {
var canvas = document.createElement('canvas')
canvas.width = w
canvas.height = h
return canvas
}
function clipPath(ctx, startx, starty) {
startx = startx + 0.2
starty = starty + 0.2
var subw = parseInt((opts.cw - 1) / 6)
var subh = parseInt((opts.ch - 1) / 6)
var radius = Math.min(subw, subh)
var clipw = subw * 5 + 0.5
var cliph = subh * 5 + 0.5
ctx.beginPath()
ctx.moveTo(startx, starty)
ctx.lineTo(startx + clipw, starty)
ctx.lineTo(startx + clipw, starty + parseInt(cliph / 2) - radius)
ctx.arc(startx + clipw, starty + parseInt(cliph / 2), radius, -Math.PI / 2, Math.PI / 2, false)
ctx.lineTo(startx + clipw, starty + cliph)
ctx.lineTo(startx + clipw - (parseInt(clipw / 2) - radius), starty + cliph)
ctx.arc(startx + parseInt(clipw / 2), starty + cliph, radius, 0, Math.PI, false)
ctx.lineTo(startx, starty + cliph)
ctx.lineTo(startx, starty)
ctx.closePath()
}
function fillClip(canvas, startx, starty, alpha) {
var ctx = canvas.getContext('2d')
clipPath(ctx, startx, starty)
ctx.fillStyle = 'rgba(0,0,0, ' + alpha + ')'
ctx.fill()
}
function strokeClip(canvas, startx, starty) {
var ctx = canvas.getContext('2d')
clipPath(ctx, startx, starty)
ctx.strokeStyle = '#fff'
ctx.stroke()
}
function randomNum(min, max) {
var rangeNum = max - min
var num = min + Math.round(Math.random() * rangeNum)
return num
}
function getStartPoint(w, h) {
var padding = 10
var startw = opts.cw + padding
var starth = opts.ch + padding
if (w < startw * 2 || h < starth) return
var startPoint = {
startx: randomNum(startw, w - startw),
starty: randomNum(padding, h - starth)
}
return startPoint
}
function eventInit(startx, refreshMethod) {
var dragBox = document.getElementById('drag-box')
var slider = document.getElementById('drag-slider')
var clipcanvas = document.getElementById('captcha-clipcanvas')
var result = document.getElementById('captcha-result')
var refreshBtn = document.getElementById('drag-btn-refresh')
var resultClass = result.className
opts.eventinfo.left = parseFloat(getComputedStyle(slider, null).getPropertyValue('left'))
opts.eventinfo.clipleft = parseFloat(getComputedStyle(clipcanvas, null).getPropertyValue('left'))
// var close = function close() {}
var reset = function reset() {
var boxClassName = window.captchaBox.className
// window.captchaBox.className += ' shake';
setTimeout(function () {
slider.style.left = '10px'
clipcanvas.style.left = '20px'
opts.eventinfo.left = 10
opts.eventinfo.clipleft = 20
}, 500)
setTimeout(function () {
result.className = resultClass
window.captchaBox.className = boxClassName
}, 1000)
}
var moveStart = function moveStart(e) {
opts.eventinfo.flag = true
if (e.touches) {
opts.eventinfo.currentX = e.touches[0].clientX
} else {
opts.eventinfo.currentX = e.clientX
}
dragBox.className = dragBox.className + ' drag-box-over'
}
var move = function move(e) {
if (opts.eventinfo.flag) {
if (e.touches) {
var disX = e.touches[0].clientX - opts.eventinfo.currentX
} else {
disX = e.clientX - opts.eventinfo.currentX
}
if (disX >= -10 && disX <= (dragBox.clientWidth - opts.cw - 10)) {
slider.style.left = opts.eventinfo.left + disX + 'px'
clipcanvas.style.left = opts.eventinfo.clipleft + disX + 'px'
} else {
e.preventDefault()
}
if (e.preventDefault) {}
return false
}
}
var moveEnd = function moveEnd(e) {
dragBox.className = 'drag-box'
if (opts.eventinfo.flag) {
opts.eventinfo.flag = false
opts.eventinfo.left = parseFloat(getComputedStyle(slider, null).getPropertyValue('left'))
opts.eventinfo.clipleft = parseFloat(getComputedStyle(clipcanvas, null).getPropertyValue('left'))
if (Math.abs(startx - opts.eventinfo.left) <= opts.precision) {
result.innerHTML = opts.successText
result.className = resultClass + ' success'
opts.onSuccess && opts.onSuccess()
} else {
result.innerHTML = opts.failText
result.className = resultClass + ' fail'
reset()
opts.onError && opts.onError()
}
}
}
window.captchaMoveEnd = moveEnd
slider.addEventListener('touchstart', moveStart)
slider.addEventListener('mousedown', moveStart)
slider.addEventListener('touchmove', move)
slider.addEventListener('mousemove', move)
document.addEventListener('touchend', moveEnd)
document.addEventListener('mouseup', moveEnd)
dragBox.addEventListener('touchmove', move)
dragBox.addEventListener('mousemove', move)
refreshBtn.addEventListener('click', refreshMethod)
}
var imgCaptcha = function imgCaptcha(canvas, options) {
if (window.captchaMoveEnd) {
document.removeEventListener('touchend', window.captchaMoveEnd)
document.removeEventListener('mouseup', window.captchaMoveEnd)
window.captchaMoveEnd = undefined
}
for (var k in options) {
if (options.hasOwnProperty(k)) {
opts[k] = options[k]
}
}
if (!canvas || !opts.imgurl) {
console.error('verify params is error')
return
}
if (canvas.tagName !== 'CANVAS') {
console.error('param canvas must be canvas')
return
}
const resetCanvas = canvas.cloneNode()
window.captchaBox = createCaptchaBox(canvas)
var refresh = function refresh() {
if (options.container) {
options.container.innerHTML = ''
const innerCanvas = resetCanvas.cloneNode()
options.container.appendChild(innerCanvas)
imgCaptcha(innerCanvas, options)
}
}
readerCaptcha(refresh)
return {
refresh
}
}
var readerCaptcha = function readerCaptcha(refresh) {
let canvas = window.captchaBox.children[0].children[0]
canvas.className += canvas.className + ' captcha-bg'
var img = new Image()
img.onload = function () {
var w = canvas.width
var h = canvas.height
var startPoint = getStartPoint(w, h)
if (!startPoint) {
console.error('can not get the start point')
return
}
var startx = startPoint.startx
var starty = startPoint.starty
canvas.getContext('2d').drawImage(img, 0, 0, w, h)
fillClip(canvas, startx, starty, 0.7)
var sourceCanvas = createCanvas(w, h)
var sctx = sourceCanvas.getContext('2d')
sctx.drawImage(img, 0, 0, w, h)
sctx.globalCompositeOperation = 'destination-in'
var destCanvas = createCanvas(opts.cw, opts.ch)
fillClip(destCanvas, 0, 0, 1)
sctx.drawImage(destCanvas, startx, starty)
var clipCanvas = createCanvas(opts.cw, opts.ch)
clipCanvas.id = 'captcha-clipcanvas'
clipCanvas.className = 'captcha-clipcanvas'
clipCanvas.getContext('2d').putImageData(sctx.getImageData(startx, starty, opts.cw, opts.ch), 0, 0)
strokeClip(clipCanvas, 0, 0)
clipCanvas.style.top = starty + 'px'
// captchaBox.appendChild(clipCanvas)
eventInit(startx, refresh)
}
opts.imgurl = isArray(opts.imgurl) ? opts.imgurl : [opts.imgurl]
var urlIndex = Math.floor(Math.random() * opts.imgurl.length)
img.src = opts.imgurl[urlIndex]
}
// if ((typeof exports === 'undefined' ? 'undefined' : _typeof(exports)) === 'object') {
// module.exports = imgCaptcha
// } else if (typeof define === 'function' && define.amd) {
// define([], function () {
// return imgCaptcha
// })
// } else if (window) {
// window.imgCaptcha = imgCaptcha
// }
})()

View File

@ -0,0 +1,33 @@
[
{
"id":"123",
"userName":"张嘉豪",
"department":"结构开发部"
},
{
"id":"2131",
"userName":"李四",
"department":"结构开发部"
},
{
"id":"3214",
"userName":"杜学凯",
"department":"平台部"
},
{
"id":"1231",
"userName":"李亚松",
"department":"平台部"
},
{
"id":"1232",
"userName":"王五",
"department":"结构开发部"
},
{
"id":"1233",
"userName":"张三",
"department":"平台部"
},
]

View File

@ -0,0 +1,32 @@
// 主题色
$--app-primary-color: #027AFF;
$--app-sky-color: #1296db;
$--app-danger-color: #F56C6C;
$--app-info-color: #F5F7FA;
$--app-notice-color: #B2B2B2;
$--app-selected-color: #E6F2FF;
$--app-active-color: #7ED321;
$--app-success-color: #5ebf70;
$--app-fail-color: #de715b;
$--app-light-color: #ffffff;
$--app-opacity-color: #eeeeee;
$--app-warning-color: #F5A623;
$--app-description-color: #929292;
// 标准盒子边框色
$--app-border-color: #DCDFE6;
// 分割线颜色
$--app-split-color: #EBEEF5;
// 标准字体颜色
$--app-font-color: #303133;
// 标准背景色
$--app-bg-Color: #F7F7F7;
// 标准盒子阴影
$--app-box-shadow: 0 0 8px 0 $--app-split-color;
// 标准圆角
$--app-border-radius: 2px;
// 标准加粗字体
$--app-font-weight: bold;
// 标准字体大小
$--app-font-size: 12px;
// 标题字体大小
$--app-title-fontSize: 14px;

Some files were not shown because too many files have changed in this diff Show More