Commit ea6c5f86 by lxyang

feat:提交

parents
# 告诉EditorConfig插件,这是根文件,不用继续往上查找
root = true
# 匹配全部文件
[*]
# 设置字符集
charset = utf-8
# 缩进风格,可选space、tab
indent_style = space
# 缩进的空格数
indent_size = 2
# 结尾换行符,可选lf、cr、crlf
end_of_line = lf
# 在文件结尾插入新行
insert_final_newline = true
# 删除一行中的前后空格
trim_trailing_whitespace = true
# 匹配md结尾的文件
[*.md]
insert_final_newline = false
trim_trailing_whitespace = false
# 生产环境配置
ENV = 'production'
VUE_APP_TITLE='production'
VUE_APP_BASE_API = '//admin-api.adsdesk.cn/admin'
# 本地环境配置
ENV = 'development'
VUE_APP_TITLE='dev'
VUE_APP_BASE_API = '//admin-test1.adsdesk.cn/admin'
VUE_APP_BASE_API_bat = '//admin-test1.adsdesk.cn/admin'
# 预生产环境配置
ENV = 'production'
VUE_APP_TITLE='pre'
VUE_APP_BASE_API = '//admin-pre.adsdesk.cn/admin'
VUE_APP_BASE_API_bat = '//admin-pre.adsdesk.cn/admin'
# 测试环境1配置
ENV = 'production'
VUE_APP_TITLE='test'
VUE_APP_BASE_API_bat = '//admin-test1.adsdesk.cn/admin'
VUE_APP_BASE_API = '//admin-test1.adsdesk.cn/admin'
# 测试环境2配置
ENV = 'production'
VUE_APP_TITLE='test2'
VUE_APP_BASE_API = '//admin-test2.adsdesk.cn/admin'
VUE_APP_BASE_API_bat = '//admin-test2.adsdesk.cn/admin'
# 忽略build目录下类型为js的文件的语法检查
build/*.js
# 忽略src/assets目录下文件的语法检查
src/assets
# 忽略public目录下文件的语法检查
public
# 忽略当前目录下为js的文件的语法检查
*.js
# 忽略当前目录下为vue的文件的语法检查
*.vue
\ No newline at end of file
// ESlint 检查配置
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint',
sourceType: 'module'
},
env: {
browser: true,
node: true,
es6: true,
},
extends: ['plugin:vue/recommended', 'eslint:recommended'],
// add your custom rules here
//it is base on https://github.com/vuejs/eslint-config-vue
rules: {
"vue/max-attributes-per-line": [2, {
"singleline": 10,
"multiline": {
"max": 1,
"allowFirstLine": false
}
}],
"vue/singleline-html-element-content-newline": "off",
"vue/multiline-html-element-content-newline":"off",
"vue/name-property-casing": ["error", "PascalCase"],
"vue/no-v-html": "off",
'accessor-pairs': 2,
'arrow-spacing': [2, {
'before': true,
'after': true
}],
'block-spacing': [2, 'always'],
'brace-style': [2, '1tbs', {
'allowSingleLine': true
}],
'camelcase': [0, {
'properties': 'always'
}],
'comma-dangle': [2, 'never'],
'comma-spacing': [2, {
'before': false,
'after': true
}],
'comma-style': [2, 'last'],
'constructor-super': 2,
'curly': [2, 'multi-line'],
'dot-location': [2, 'property'],
'eol-last': 2,
'eqeqeq': ["error", "always", {"null": "ignore"}],
'generator-star-spacing': [2, {
'before': true,
'after': true
}],
'handle-callback-err': [2, '^(err|error)$'],
'indent': [2, 2, {
'SwitchCase': 1
}],
'jsx-quotes': [2, 'prefer-single'],
'key-spacing': [2, {
'beforeColon': false,
'afterColon': true
}],
'keyword-spacing': [2, {
'before': true,
'after': true
}],
'new-cap': [2, {
'newIsCap': true,
'capIsNew': false
}],
'new-parens': 2,
'no-array-constructor': 2,
'no-caller': 2,
'no-console': 'off',
'no-class-assign': 2,
'no-cond-assign': 2,
'no-const-assign': 2,
'no-control-regex': 0,
'no-delete-var': 2,
'no-dupe-args': 2,
'no-dupe-class-members': 2,
'no-dupe-keys': 2,
'no-duplicate-case': 2,
'no-empty-character-class': 2,
'no-empty-pattern': 2,
'no-eval': 2,
'no-ex-assign': 2,
'no-extend-native': 2,
'no-extra-bind': 2,
'no-extra-boolean-cast': 2,
'no-extra-parens': [2, 'functions'],
'no-fallthrough': 2,
'no-floating-decimal': 2,
'no-func-assign': 2,
'no-implied-eval': 2,
'no-inner-declarations': [2, 'functions'],
'no-invalid-regexp': 2,
'no-irregular-whitespace': 2,
'no-iterator': 2,
'no-label-var': 2,
'no-labels': [2, {
'allowLoop': false,
'allowSwitch': false
}],
'no-lone-blocks': 2,
'no-mixed-spaces-and-tabs': 2,
'no-multi-spaces': 2,
'no-multi-str': 2,
'no-multiple-empty-lines': [2, {
'max': 1
}],
'no-native-reassign': 2,
'no-negated-in-lhs': 2,
'no-new-object': 2,
'no-new-require': 2,
'no-new-symbol': 2,
'no-new-wrappers': 2,
'no-obj-calls': 2,
'no-octal': 2,
'no-octal-escape': 2,
'no-path-concat': 2,
'no-proto': 2,
'no-redeclare': 2,
'no-regex-spaces': 2,
'no-return-assign': [2, 'except-parens'],
'no-self-assign': 2,
'no-self-compare': 2,
'no-sequences': 2,
'no-shadow-restricted-names': 2,
'no-spaced-func': 2,
'no-sparse-arrays': 2,
'no-this-before-super': 2,
'no-throw-literal': 2,
'no-trailing-spaces': 2,
'no-undef': 2,
'no-undef-init': 2,
'no-unexpected-multiline': 2,
'no-unmodified-loop-condition': 2,
'no-unneeded-ternary': [2, {
'defaultAssignment': false
}],
'no-unreachable': 2,
'no-unsafe-finally': 2,
'no-unused-vars': [2, {
'vars': 'all',
'args': 'none'
}],
'no-useless-call': 2,
'no-useless-computed-key': 2,
'no-useless-constructor': 2,
'no-useless-escape': 0,
'no-whitespace-before-property': 2,
'no-with': 2,
'one-var': [2, {
'initialized': 'never'
}],
'operator-linebreak': [2, 'after', {
'overrides': {
'?': 'before',
':': 'before'
}
}],
'padded-blocks': [2, 'never'],
'quotes': [2, 'single', {
'avoidEscape': true,
'allowTemplateLiterals': true
}],
'semi': [2, 'never'],
'semi-spacing': [2, {
'before': false,
'after': true
}],
'space-before-blocks': [2, 'always'],
'space-before-function-paren': [2, 'never'],
'space-in-parens': [2, 'never'],
'space-infix-ops': 2,
'space-unary-ops': [2, {
'words': true,
'nonwords': false
}],
'spaced-comment': [2, 'always', {
'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
}],
'template-curly-spacing': [2, 'never'],
'use-isnan': 2,
'valid-typeof': 2,
'wrap-iife': [2, 'any'],
'yield-star-spacing': [2, 'both'],
'yoda': [2, 'never'],
'prefer-const': 2,
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
'object-curly-spacing': [2, 'always', {
objectsInObjects: false
}],
'array-bracket-spacing': [2, 'never']
}
}
.DS_Store
node_modules/
dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
**/*.log
.history/
tests/**/coverage/
tests/e2e/reports
selenium-debug.log
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.local
package-lock.json
yarn.lock
### Node template
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.test
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
### Example user template template
### Example user template
# IntelliJ project files
.idea
*.iml
out
gen
## ����
```bash
# ��¡��Ŀ
git clone https://gitee.com/y_project/RuoYi-Vue
# ������ĿĿ¼
cd ruoyi-ui
# ��װ����
npm install
# ���鲻Ҫֱ��ʹ�� cnpm ��װ���������и��ֹ���� bug������ͨ�����²������ npm �����ٶ���������
npm install --registry=https://registry.npm.taobao.org
# ��������
npm run dev
```
��������� http://localhost:80
## ����
```bash
# �������Ի���
npm run build:stage
# ������������
npm run build:prod
```
test1 环境访问地址
http://54.222.213.124:9191/
test1 可外网访问地址
54.222.213.124:9090
test1 vpn网访问地址
172.21.6.245:9090
\ No newline at end of file
module.exports = {
presets: [
'@vue/app'
]
}
@echo off
echo.
echo [信息] 打包Web工程,生成node_modules包文件。
echo.
%~d0
cd %~dp0
cd ..
npm install --registry=https://registry.npm.taobao.org
pause
\ No newline at end of file
@echo off
echo.
echo [Ϣ] ʹ Vue Web ̡
echo.
%~d0
cd %~dp0
cd ..
npm run dev
pause
\ No newline at end of file
const { run } = require('runjs')
const chalk = require('chalk')
const config = require('../vue.config.js')
const rawArgv = process.argv.slice(2)
const args = rawArgv.join(' ')
if (process.env.npm_config_preview || rawArgv.includes('--preview')) {
const report = rawArgv.includes('--report')
run(`vue-cli-service build ${args}`)
const port = 9526
const publicPath = config.publicPath
var connect = require('connect')
var serveStatic = require('serve-static')
const app = connect()
app.use(
publicPath,
serveStatic('./dist', {
index: ['index.html', '/']
})
)
app.listen(port, function () {
console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`))
if (report) {
console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`))
}
})
} else {
run(`vue-cli-service build ${args}`)
}
{
"name": "adsdesk-admin-ui",
"version": "1.0.2",
"description": "adsdesk-admin-ui",
"author": "adsdesk",
"license": "MIT",
"scripts": {
"dev": "vue-cli-service serve",
"build": "vue-cli-service build --mode build",
"build:prod": "vue-cli-service build",
"build:pre": "vue-cli-service build --mode pre",
"build:stage": "vue-cli-service build --mode staging",
"build:test2": "vue-cli-service build --mode test2",
"preview": "node build/index.js --preview",
"lint": "eslint --ext .js,.vue src",
"test:unit": "jest --clearCache && vue-cli-service test:unit",
"test:ci": "npm run lint && npm run test:unit",
"svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml",
"new": "plop"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"src/**/*.{js,vue}": [
"eslint --fix",
"git add"
]
},
"keywords": [
"vue",
"admin",
"dashboard",
"element-ui",
"boilerplate",
"admin-template",
"management-system"
],
"repository": {
"type": "git",
"url": "http://chenmingyang@git.minrow.com/peihaoming/ads-desk-admin-ui.git"
},
"dependencies": {
"@riophae/vue-treeselect": "0.1.0",
"axios": "0.18.1",
"echarts": "4.2.1",
"element-ui": "2.15.8",
"fuse.js": "3.4.4",
"js-cookie": "2.2.0",
"moment": "^2.24.0",
"node-sass": "^4.14.1",
"normalize.css": "7.0.0",
"nprogress": "0.2.0",
"path-to-regexp": "2.4.0",
"screenfull": "4.2.0",
"vue": "2.6.10",
"vue-count-to": "1.0.13",
"vue-cropper": "0.4.9",
"vue-quill-editor": "^3.0.6",
"vue-router": "3.0.2",
"vue-splitpane": "1.0.4",
"vuex": "3.1.0"
},
"devDependencies": {
"@babel/core": "7.0.0",
"@babel/register": "7.0.0",
"@vue/cli-plugin-babel": "3.5.3",
"@vue/cli-plugin-eslint": "^3.9.1",
"@vue/cli-plugin-unit-jest": "3.5.3",
"@vue/cli-service": "3.5.3",
"@vue/test-utils": "1.0.0-beta.29",
"autoprefixer": "^9.5.1",
"babel-core": "7.0.0-bridge.0",
"babel-eslint": "10.0.1",
"babel-jest": "23.6.0",
"chalk": "2.4.2",
"chokidar": "2.1.5",
"connect": "3.6.6",
"eslint": "5.15.3",
"eslint-plugin-vue": "5.2.2",
"html-webpack-plugin": "3.2.0",
"http-proxy-middleware": "^0.19.1",
"husky": "1.3.1",
"lint-staged": "8.1.5",
"mockjs": "1.0.1-beta3",
"plop": "2.3.0",
"runjs": "^4.3.2",
"sass-loader": "7.1.0",
"script-ext-html-webpack-plugin": "2.1.3",
"script-loader": "0.7.2",
"serve-static": "^1.13.2",
"svg-sprite-loader": "4.1.3",
"svgo": "1.2.0",
"vue-template-compiler": "2.6.10"
},
"engines": {
"node": ">=8.9",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions"
]
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= webpackConfig.name %></title>
<style>
html,
body,
#app {
height: 100%;
margin: 0px;
padding: 0px;
}
.chromeframe {
margin: 0.2em 0;
background: #ccc;
color: #000;
padding: 0.2em 0;
}
#loader-wrapper {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 999999;
}
#loader {
display: block;
position: relative;
left: 50%;
top: 50%;
width: 150px;
height: 150px;
margin: -75px 0 0 -75px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #FFF;
-webkit-animation: spin 2s linear infinite;
-ms-animation: spin 2s linear infinite;
-moz-animation: spin 2s linear infinite;
-o-animation: spin 2s linear infinite;
animation: spin 2s linear infinite;
z-index: 1001;
}
#loader:before {
content: "";
position: absolute;
top: 5px;
left: 5px;
right: 5px;
bottom: 5px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #FFF;
-webkit-animation: spin 3s linear infinite;
-moz-animation: spin 3s linear infinite;
-o-animation: spin 3s linear infinite;
-ms-animation: spin 3s linear infinite;
animation: spin 3s linear infinite;
}
#loader:after {
content: "";
position: absolute;
top: 15px;
left: 15px;
right: 15px;
bottom: 15px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #FFF;
-moz-animation: spin 1.5s linear infinite;
-o-animation: spin 1.5s linear infinite;
-ms-animation: spin 1.5s linear infinite;
-webkit-animation: spin 1.5s linear infinite;
animation: spin 1.5s linear infinite;
}
@-webkit-keyframes spin {
0% {
-webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes spin {
0% {
-webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg);
transform: rotate(360deg);
}
}
#loader-wrapper .loader-section {
position: fixed;
top: 0;
width: 51%;
height: 100%;
background: #7171C6;
z-index: 1000;
-webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0);
}
#loader-wrapper .loader-section.section-left {
left: 0;
}
#loader-wrapper .loader-section.section-right {
right: 0;
}
.loaded #loader-wrapper .loader-section.section-left {
-webkit-transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
}
.loaded #loader-wrapper .loader-section.section-right {
-webkit-transform: translateX(100%);
-ms-transform: translateX(100%);
transform: translateX(100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
}
.loaded #loader {
opacity: 0;
-webkit-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
}
.loaded #loader-wrapper {
visibility: hidden;
-webkit-transform: translateY(-100%);
-ms-transform: translateY(-100%);
transform: translateY(-100%);
-webkit-transition: all 0.3s 1s ease-out;
transition: all 0.3s 1s ease-out;
}
.no-js #loader-wrapper {
display: none;
}
.no-js h1 {
color: #222222;
}
#loader-wrapper .load_title {
font-family: 'Open Sans';
color: #FFF;
font-size: 19px;
width: 100%;
text-align: center;
z-index: 9999999999999;
position: absolute;
top: 60%;
opacity: 1;
line-height: 30px;
}
#loader-wrapper .load_title span {
font-weight: normal;
font-style: italic;
font-size: 13px;
color: #FFF;
opacity: 0.5;
}
</style>
</head>
<body>
<div id="app">
<div id="loader-wrapper">
<div id="loader"></div>
<div class="loader-section section-left"></div>
<div class="loader-section section-right"></div>
<div class="load_title">正在加载系统资源,请耐心等待</div>
</div>
</div>
</body>
</html>
<template>
<div id="app">
<router-view />
</div>
</template>
<script>
export default {
name: 'App'
}
</script>
import request from '@/utils/request'
// 精选人群包查询
export function queryFeaturedApi({ ...data }) {
return request({
url: '/tools/ads_dmp/choice_pack/search',
method: 'post',
data
})
}
// 定制人群分页查询
export function queryCustomApi({ ...data }) {
return request({
url: '/tools/ads_dmp/custom_pack/search',
method: 'post',
data
})
}
// 定制人群详情
export function queryDetailApi({ ...data }) {
return request({
url: '/tools/ads_dmp/custom_pack/get',
method: 'post',
data
})
}
// 精选包删除
export function delFeaturedApi({ ...data }) {
return request({
url: '/tools/ads_dmp/choice/delete',
method: 'post',
data
})
}
// 确认工单
export function confirmCustomApi({ ...data }) {
return request({
url: '/tools/ads_dmp/audience_work_order/confirm',
method: 'post',
data
})
}
// 用户属性查询
export function queryUserTagApi({ ...data }) {
return request({
url: '/tools/ads_dmp/custom_pack/user_tag/tree',
method: 'post',
data
})
}
// 用户库人群包列表
export function userAudienceSearch(data) {
return request({
url: '/system/action/audience/search',
method: 'POST',
data
})
}
// 用户库人群包列表审核
export function userUserlibAudit(data) {
return request({
url: '/system/userlib/audit',
method: 'POST',
data
})
}
// 用户库人群包详情
export function userAudienceDetail(data) {
return request({
url: '/system/action/audience/detail',
method: 'POST',
data
})
}
// 用户库下载关系表
export function userUserlibExport() {
return request({
url: '/system/userlib/export',
responseType: 'arraybuffer',
method: 'GET'
})
}
// 用户库关系列表
export function userUserlibSearch(data) {
return request({
url: '/system/userlib/search',
method: 'POST',
data
})
}
// 用户库刷新按钮
export function userUserlibRefresh() {
return request({
url: '/system/userlib/refresh',
method: 'POST'
})
}
import request from '@/utils/request'
/**
* 客户下拉列表
*/
export function getCustomerList() {
return request({
method: 'POST',
url: '/system/customer/select',
})
}
/**
* 新增&修改 配置
* @param {*} param0
*/
export function addConfig({ customerId, module, key, value }) {
return request({
url: '/system/customer/fee/config',
method: 'POST',
data: { customerId, module, key, value }
})
}
/**
* 删除配置
* @param {*} param0
*/
export function deleteConfig({ configId }) {
return request({
url: '/system/customer/fee/config/delete',
method: 'POST',
data: { configId}
})
}
/**
* 系统权限配置 list 查询
* @param {String} param0 - 父级 id
*/
export function getCustomerDict({ parentId, parentCode }) {
return request({
url: '/system/customer/dict/list',
method: 'POST',
data: { parentId, parentCode }
})
}
/**
* 获取用户权限列表
* @param {Object} param0
*/
export function getConfigSearch({ current, size, customerName, module }) {
return request({
url: '/system/customer/fee/config/search',
method: 'POST',
data: { current, size, customerName, module }
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询参数列表
export function listConfig(query) {
return request({
url: '/system/config/list',
method: 'get',
params: query
})
}
// 查询参数详细
export function getConfig(configId) {
return request({
url: '/system/config/' + configId,
method: 'get'
})
}
// 根据参数键名查询参数值
export function getConfigKey(configKey) {
return request({
url: '/system/config/configKey/' + configKey,
method: 'get'
})
}
// 新增参数配置
export function addConfig(data) {
return request({
url: '/system/config',
method: 'post',
data: data
})
}
// 修改参数配置
export function updateConfig(data) {
return request({
url: '/system/config',
method: 'put',
data: data
})
}
// 删除参数配置
export function delConfig(configId) {
return request({
url: '/system/config/' + configId,
method: 'delete'
})
}
\ No newline at end of file
import request from '@/utils/request'
/**
* 新增客户
* @param customerName 客户名
* @param customerEmail 客户邮箱
* @param customerContact 客户联系人
* @param customerPhone 客户电话
* @param customerAddress 客户地址
* @param status 状态
* @param startTime 开始时间
* @param endTim 结束时间
*/
export function addCustomer({ userName, nickName, password, roleId }) {
return request({
url: '/system/user/add',
method: 'POST',
data: { userName, nickName, password, roleId }
})
}
/**
* 修改客户
* @param customerId 客户ID
* @param customerName 客户名称
* @param customerEmail 客户邮箱
* @param customerContact 客户联系人
* @param customerPhone 客户联系电话
* @param customerAddress 客户地址
* @param status 状态
* @param contractTime 合同时间
*/
export function editCustomer({ userId, nickName, roleId }) {
return request({
url: '/system/user/update_user',
method: 'POST',
data: { userId, nickName, roleId }
})
}
/**
* 获取客户列表
* @param current 当前页
* @param size 每页记录数
* @param customerName 客户名称
* @param status 客户状态
* @param startTime
* @param endTime
* @returns {Promise<void> | * | AxiosPromise<any> | ClientHttp2Stream | http.ClientRequest}
*/
export function listCustomer({userId, userName, nickName, roleId }) {
return request({
url: '/system/user/search',
method: 'POST',
data: {userId, userName, nickName, roleId }
})
}
/**
* 获取客户
* @param customerId 客户ID
*/
export function getCustomer(customerId) {
return request({
url: '/system/customer/' + customerId,
method: 'GET'
})
}
/**
* 删除客户
* @param customerId 客户ID
*/
export function deleteCustomer(customerId) {
return request({
url: '/system/customer/' + customerId,
method: 'DELETE'
})
}
export function getAu(userId) {
return request({
url: '/system/function/user/list',
method: 'POST',
data: { userId}
})
}
export function editStatus(userId, status) {
return request({
url: '/system/user/update_status' ,
method: 'POST',
data: { userId, status }
})
}
export function editCheckList(userId, funCode) {
return request({
url: '/system/function/config' ,
method: 'POST',
data: { userId, funCode }
})
}
export function resetPassword(userId,password,rePassword) {
return request({
url: '/system/user/update_password',
method: 'POST',
data: { userId,password,rePassword}
})
}
export function getRz(userId) {
return request({
url: '/system/user/google/auth/bind',
method: 'POST',
data: { userId}
})
}
export function getRzImg(qrFile) {
return request({
url: '/system/user/google/auth/get_qr_file',
method: 'POST',
data: { qrFile},
responseType: 'blob'
})
}
export function handleCancelRz(userId) {
return request({
url: '/system/user/google/auth/unbind',
method: 'POST',
data: { userId},
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询部门列表
export function listDept(query) {
return request({
url: '/system/dept/list',
method: 'get',
params: query
})
}
// 查询部门详细
export function getDept(deptId) {
return request({
url: '/system/dept/' + deptId,
method: 'get'
})
}
// 查询部门下拉树结构
export function treeselect() {
return request({
url: '/system/dept/treeselect',
method: 'get'
})
}
// 根据角色ID查询部门树结构
export function roleDeptTreeselect(roleId) {
return request({
url: '/system/dept/roleDeptTreeselect/' + roleId,
method: 'get'
})
}
// 新增部门
export function addDept(data) {
return request({
url: '/system/dept',
method: 'post',
data: data
})
}
// 修改部门
export function updateDept(data) {
return request({
url: '/system/dept',
method: 'put',
data: data
})
}
// 删除部门
export function delDept(deptId) {
return request({
url: '/system/dept/' + deptId,
method: 'delete'
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询字典数据列表
export function listData(query) {
return request({
url: '/system/dict/data/list',
method: 'get',
params: query
})
}
// 查询字典数据详细
export function getData(dictCode) {
return request({
url: '/system/dict/data/' + dictCode,
method: 'get'
})
}
// 根据字典类型查询字典数据信息
export function getDicts(dictType) {
return request({
url: '/system/dict/data/dictType/' + dictType,
method: 'get'
})
}
// 新增字典数据
export function addData(data) {
return request({
url: '/system/dict/data',
method: 'post',
data: data
})
}
// 修改字典数据
export function updateData(data) {
return request({
url: '/system/dict/data',
method: 'put',
data: data
})
}
// 删除字典数据
export function delData(dictCode) {
return request({
url: '/system/dict/data/' + dictCode,
method: 'delete'
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询字典类型列表
export function listType(query) {
return request({
url: '/system/dict/type/list',
method: 'get',
params: query
})
}
// 查询字典类型详细
export function getType(dictId) {
return request({
url: '/system/dict/type/' + dictId,
method: 'get'
})
}
// 新增字典类型
export function addType(data) {
return request({
url: '/system/dict/type',
method: 'post',
data: data
})
}
// 修改字典类型
export function updateType(data) {
return request({
url: '/system/dict/type',
method: 'put',
data: data
})
}
// 删除字典类型
export function delType(dictId) {
return request({
url: '/system/dict/type/' + dictId,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询菜单列表
export function listMenu(query) {
return request({
url: '/system/menu/list',
method: 'get',
params: query
})
}
// 查询菜单详细
export function getMenu(menuId) {
return request({
url: '/system/menu/' + menuId,
method: 'get'
})
}
// 查询菜单下拉树结构
export function treeselect() {
return request({
url: '/system/menu/treeselect',
method: 'get'
})
}
// 根据角色ID查询菜单下拉树结构
export function roleMenuTreeselect(roleId) {
return request({
url: '/system/menu/roleMenuTreeselect/' + roleId,
method: 'get'
})
}
// 新增菜单
export function addMenu(data) {
return request({
url: '/system/menu',
method: 'post',
data: data
})
}
// 修改菜单
export function updateMenu(data) {
return request({
url: '/system/menu',
method: 'put',
data: data
})
}
// 删除菜单
export function delMenu(menuId) {
return request({
url: '/system/menu/' + menuId,
method: 'delete'
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询公告列表
export function listNotice(query) {
return request({
url: '/system/notice/list',
method: 'get',
params: query
})
}
// 查询公告详细
export function getNotice(noticeId) {
return request({
url: '/system/notice/' + noticeId,
method: 'get'
})
}
// 新增公告
export function addNotice(data) {
return request({
url: '/system/notice',
method: 'post',
data: data
})
}
// 修改公告
export function updateNotice(data) {
return request({
url: '/system/notice',
method: 'put',
data: data
})
}
// 删除公告
export function delNotice(noticeId) {
return request({
url: '/system/notice/' + noticeId,
method: 'delete'
})
}
\ No newline at end of file
import request from '@/utils/request'
// 操作日志列表查询
export function getOperatLogList(data) {
return request({
url: '/system/log/search',
method: 'post',
data: data
})
}
\ No newline at end of file
import request from '@/utils/request'
/**
* 人群客户管理-用户列表
*/
export function getPackList(data) {
return request({
url: '/tools/ads_dmp/customer/search',
method: 'POST',
data
})
}
/**
* 人群客户管理-获取客户下拉列表
*/
export function getPackOption({
...data
}) {
return request({
url: '/tools/ads_dmp/customer/add/select',
method: 'POST',
data
})
}
/**
* 人群客户管理-确认添加
*/
export function addCustomer(data) {
return request({
url: '/tools/ads_dmp/customer/add',
method: 'POST',
data
})
}
/**
* 人群客户管理-配置
*/
export function updateCustomer(data) {
return request({
url: '/tools/ads_dmp/customer/config',
method: 'POST',
data
})
}
/**
* 人群客户管理-配置-详情
*/
export function getCustomerInfo({
...data
}) {
return request({
url: '/tools/ads_dmp/customer/config/get',
method: 'POST',
data
})
}
/**
* 人群客户管理-充值
*/
export function rechargeCustomer(data) {
return request({
url: '/tools/ads_dmp/customer/recharge',
method: 'POST',
data
})
}
/**
* 人群客户管理-充值-明细
*/
export function getRechargeDetail({
...data
}) {
return request({
url: '/tools/ads_dmp/customer/amount_journal/search',
method: 'POST',
data
})
}
/**
* 人群客户管理-人群客户投放账号添加接口
*/
export const addMedia = ({
...data
}) => {
return request({
url: '/user/dmp/media_account/add',
method: 'POST',
data
})
}
/**
* 人群客户管理-模板下载
*/
export const Downloads = () => {
return request({
method: 'POST',
url: '/user/dmp/media_account/template/download',
responseType: 'arraybuffer',
data: {}
})
}
/**
* 人群客户管理-列表
*/
export const getLists = (data) => {
return request({
method: 'POST',
url: '/user/dmp/media_account/search',
data
})
}
/**
* 人群客户管理-修改
*/
export const updateMedia = (data) => {
return request({
method: 'POST',
url: '/user/dmp/media_account/edit',
data
})
}
/**
* 人群客户管理-删除
*/
export const deleteMedia = (data) => {
return request({
method: 'POST',
url: '/user/dmp/media_account/delete',
data
})
}
/**
* 人群客户管理-上传
*/
export const trackUpload = (formData) => {
return request({
method: 'POST',
url: '/user/dmp/media_account/template/upload',
headers: {
'Content-Type': 'multipart/form-data'
},
data: formData
})
}
// 二进制流下载
export const hackDownloadFile = (data, filename) => {
if (!data) {
return
}
let url = window.URL.createObjectURL(new Blob([data]))
let link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', filename || `模板.xls`)
document.body.appendChild(link)
link.click()
}
\ No newline at end of file
import request from '@/utils/request'
// 查询岗位列表
export function listPost(query) {
return request({
url: '/system/post/list',
method: 'get',
params: query
})
}
// 查询岗位详细
export function getPost(postId) {
return request({
url: '/system/post/' + postId,
method: 'get'
})
}
// 新增岗位
export function addPost(data) {
return request({
url: '/system/post',
method: 'post',
data: data
})
}
// 修改岗位
export function updatePost(data) {
return request({
url: '/system/post',
method: 'put',
data: data
})
}
// 删除岗位
export function delPost(postId) {
return request({
url: '/system/post/' + postId,
method: 'delete'
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询角色列表
export function listRole(query) {
return request({
url: '/system/role/list',
method: 'get',
params: query
})
}
// 查询角色详细
export function getRole(roleId) {
return request({
url: '/system/role/' + roleId,
method: 'get'
})
}
// 新增角色
export function addRole(data) {
return request({
url: '/system/role',
method: 'post',
data: data
})
}
// 修改角色
export function updateRole(data) {
return request({
url: '/system/role',
method: 'put',
data: data
})
}
// 角色数据权限
export function dataScope(data) {
return request({
url: '/system/role/dataScope',
method: 'put',
data: data
})
}
// 角色状态修改
export function changeRoleStatus(roleId, status) {
const data = {
roleId,
status
}
return request({
url: '/system/role/changeStatus',
method: 'put',
data: data
})
}
// 删除角色
export function delRole(roleId) {
return request({
url: '/system/role/' + roleId,
method: 'delete'
})
}
\ No newline at end of file
import request from '@/utils/request'
// 获取安全配置规则
export function getSecurityConfig() {
return request({
url: '/system/security/get_config',
method: 'post'
})
}
// 修改系统安全规则配置
export function setSecurityConfig(data) {
return request({
url: '/system/security/set_config',
method: 'post',
data: data
})
}
import request from '@/utils/request'
// 查询用户列表
export function listUser(query) {
return request({
url: '/system/user/list',
method: 'get',
params: query
})
}
// 查询用户详细
export function getUser(userId) {
return request({
url: '/system/user/' + userId,
method: 'get'
})
}
// 新增用户
export function addUser(data) {
return request({
url: '/system/user',
method: 'post',
data: data
})
}
// 修改用户
export function updateUser(data) {
return request({
url: '/system/user',
method: 'put',
data: data
})
}
// 删除用户
export function delUser(userId) {
return request({
url: '/system/user/' + userId,
method: 'delete'
})
}
// 用户密码重置
export function resetUserPwd(userId, password) {
const data = {
userId,
password
}
return request({
url: '/system/user/resetPwd',
method: 'put',
data: data
})
}
// 用户状态修改
export function changeUserStatus(userId, status) {
const data = {
userId,
status
}
return request({
url: '/system/user/changeStatus',
method: 'put',
data: data
})
}
// 查询用户个人信息
export function getUserProfile() {
return request({
url: '/system/user/profile',
method: 'get'
})
}
// 修改用户个人信息
export function updateUserProfile(data) {
return request({
url: '/system/user/profile',
method: 'put',
data: data
})
}
// 用户密码重置
export function updateUserPwd(oldPassword, newPassword) {
const data = {
oldPassword: oldPassword,
newPassword: newPassword
}
return request({
url: '/system/user/password',
method: 'PUT',
data: data
})
}
// 用户头像上传
export function uploadAvatar(data) {
return request({
url: '/system/user/profile/avatar',
method: 'post',
data: data
})
}
import request from '@/utils/request'
/**
* 客户下拉列表
*/
export function getCustomerList() {
return request({
method: 'POST',
url: '/system/customer/select',
})
}
/**
* 新增&修改 配置
* @param {*} param0
*/
export function addConfig({ customerId, module, key, value }) {
return request({
url: '/system/customer/fee/config',
method: 'POST',
data: { customerId, module, key, value }
})
}
/**
* 删除配置
* @param {*} param0
*/
export function deleteConfig({ id }) {
return request({
url: '/user/yun_jing/apply/delete',
method: 'POST',
data: { id}
})
}
/**
* 系统权限配置 list 查询
* @param {String} param0 - 父级 id
*/
export function getCustomerDict({ parentId, parentCode }) {
return request({
url: '/system/customer/dict/list',
method: 'POST',
data: { parentId, parentCode }
})
}
/**
* 获取用户权限列表
* @param {Object} param0
*/
export function getConfigSearch({ current, size, name }) {
return request({
url: '/user/yun_jing/apply/search',
method: 'POST',
data: { current, size, name }
})
}
export function changeStatus({ ids }) {
return request({
url: '/user/yun_jing/apply/mark',
method: 'POST',
data: { ids }
})
}
\ No newline at end of file
import request from '@/utils/request'
/**
* 新增客户
* @param customerName 客户名
* @param customerEmail 客户邮箱
* @param customerContact 客户联系人
* @param customerPhone 客户电话
* @param customerAddress 客户地址
* @param status 状态
* @param startTime 开始时间
* @param endTim 结束时间
*/
export function addCustomer({
mediaCode,customerId, customerName,contact, contactPhone,contactEmail,payMethod,contractStartTime ,contractEndTime,role
}) {
return request({
url: '/user/yun_jing/customer/add',
method: 'POST',
data: {
mediaCode,customerId, customerName,contact, contactPhone,contactEmail,payMethod,contractStartTime ,contractEndTime,role
}
})
}
export function getCustomerList() {
return request({
method: 'POST',
url: '/system/customer/select',
})
}
/**
* 修改客户
* @param customerId 客户ID
* @param customerName 客户名称
* @param customerEmail 客户邮箱
* @param customerContact 客户联系人
* @param customerPhone 客户联系电话
* @param customerAddress 客户地址
* @param status 状态
* @param contractTime 合同时间
*/
export function editCustomer({ id,mediaCode,customerId, customerName,contact, contactPhone,contactEmail,payMethod,contractStartTime ,contractEndTime,role }) {
return request({
url: '/user/yun_jing/customer/edit',
method: 'POST',
data: {
id,mediaCode,customerId, customerName,contact, contactPhone,contactEmail,payMethod,contractStartTime ,contractEndTime,role
}
})
}
/**
* 获取客户列表
* @param current 当前页
* @param size 每页记录数
* @param customerName 客户名称
* @param status 客户状态
* @param startTime
* @param endTime
* @returns {Promise<void> | * | AxiosPromise<any> | ClientHttp2Stream | http.ClientRequest}
*/
export function listCustomer({ current,size,mediaCode, name, status, startTime, endTime }) {
return request({
url: '/user/yun_jing/customer/search',
method: 'POST',
data: { current,size,mediaCode, name, status, startTime, endTime }
})
}
/**
* 获取客户
* @param customerId 客户ID
*/
export function getCustomer(customerId) {
return request({
url: '/system/customer/' + customerId,
method: 'GET'
})
}
/**
* 删除客户
* @param customerId 客户ID
*/
export function deleteCustomer(customerId) {
return request({
url: '/system/customer/' + customerId,
method: 'DELETE'
})
}
export function editStatus(customerId, status) {
return request({
url: '/system/customer/' + customerId + '/' + status,
method: 'PUT'
})
}
export function resetPassword(customerId) {
return request({
url: `/system/customer/${customerId}/password/reset`,
method: 'POST'
})
}
import request from '@/utils/request'
// 查询字典数据列表
export function listData(query) {
return request({
url: '/system/dict/data/list',
method: 'get',
params: query
})
}
// 查询字典数据详细
export function getData(dictCode) {
return request({
url: '/system/dict/data/' + dictCode,
method: 'get'
})
}
// 根据字典类型查询字典数据信息
export function getDicts(dictType) {
return request({
url: '/system/dict/data/dictType/' + dictType,
method: 'get'
})
}
// 新增字典数据
export function addData(data) {
return request({
url: '/system/dict/data',
method: 'post',
data: data
})
}
// 修改字典数据
export function updateData(data) {
return request({
url: '/system/dict/data',
method: 'put',
data: data
})
}
// 删除字典数据
export function delData(dictCode) {
return request({
url: '/system/dict/data/' + dictCode,
method: 'delete'
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询字典类型列表
export function listType(query) {
return request({
url: '/system/dict/type/list',
method: 'get',
params: query
})
}
// 查询字典类型详细
export function getType(dictId) {
return request({
url: '/system/dict/type/' + dictId,
method: 'get'
})
}
// 新增字典类型
export function addType(data) {
return request({
url: '/system/dict/type',
method: 'post',
data: data
})
}
// 修改字典类型
export function updateType(data) {
return request({
url: '/system/dict/type',
method: 'put',
data: data
})
}
// 删除字典类型
export function delType(dictId) {
return request({
url: '/system/dict/type/' + dictId,
method: 'delete'
})
}
import request from '@/utils/request'
/**
* 人群客户管理-用户列表
*/
export function getPackList(data) {
return request({
url: '/tools/ads_dmp/customer/search',
method: 'POST',
data
})
}
/**
* 人群客户管理-获取客户下拉列表
*/
export function getPackOption({
...data
}) {
return request({
url: '/tools/ads_dmp/customer/add/select',
method: 'POST',
data
})
}
/**
* 人群客户管理-确认添加
*/
export function addCustomer(data) {
return request({
url: '/tools/ads_dmp/customer/add',
method: 'POST',
data
})
}
/**
* 人群客户管理-配置
*/
export function updateCustomer(data) {
return request({
url: '/tools/ads_dmp/customer/config',
method: 'POST',
data
})
}
/**
* 人群客户管理-配置-详情
*/
export function getCustomerInfo({
...data
}) {
return request({
url: '/tools/ads_dmp/customer/config/get',
method: 'POST',
data
})
}
/**
* 人群客户管理-充值
*/
export function rechargeCustomer(data) {
return request({
url: '/tools/ads_dmp/customer/recharge',
method: 'POST',
data
})
}
/**
* 人群客户管理-充值-明细
*/
export function getRechargeDetail({
...data
}) {
return request({
url: '/tools/ads_dmp/customer/amount_journal/search',
method: 'POST',
data
})
}
/**
* 人群客户管理-人群客户投放账号添加接口
*/
export const addMedia = ({
...data
}) => {
return request({
url: '/user/yun_jing/customer/media_account/add',
method: 'POST',
data
})
}
/**
* 人群客户管理-模板下载
*/
export const Downloads = () => {
return request({
method: 'POST',
url: '/user/yun_jing/customer/media_account/template/download',
responseType: 'arraybuffer',
data: {}
})
}
/**
* 人群客户管理-列表
*/
export const getLists = (data) => {
return request({
method: 'POST',
url: '/user/yun_jing/customer/media_account/search',
data
})
}
/**
* 人群客户管理-修改
*/
export const updateMedia = (data) => {
return request({
method: 'POST',
url: '/user/yun_jing/customer/media_account/edit',
data
})
}
/**
* 人群客户管理-删除
*/
export const deleteMedia = (data) => {
return request({
method: 'POST',
url: '/user/dmp/media_account/delete',
data
})
}
/**
* 人群客户管理-上传
*/
export const trackUpload = (formData) => {
return request({
method: 'POST',
url: '/user/yun_jing/customer/media_account/template/upload',
headers: {
'Content-Type': 'multipart/form-data'
},
data: formData
})
}
// 二进制流下载
export const hackDownloadFile = (data, filename) => {
if (!data) {
return
}
let url = window.URL.createObjectURL(new Blob([data]))
let link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', filename || `模板.xls`)
document.body.appendChild(link)
link.click()
}
\ No newline at end of file
import request from '@/utils/request'
/**
* 媒体列表
*/
export function queryMediaCodes(data) {
return request({
url: '/report/dashboard/medias',
method: 'POST',
data
})
}
/**
* 获取公司列表
*/
export function queryCompanyList(data) {
return request({
url: '/report/dashboard/campanys',
method: 'POST',
data
})
}
/**
* 消耗-下载报表
*/
export function downloadTableData(data) {
return request({
url: '/report/dashboard/export',
method: 'POST',
responseType: 'arraybuffer',
data
})
}
/**
* 消耗-趋势图
*/
export function queryConsumeLineChartData(data) {
return request({
url: '/report/dashboard/line_chart',
method: 'POST',
data
})
}
/**
* 消耗-列表
*/
export function queryConsumeTableData(data) {
return request({
url: '/report/dashboard/page',
method: 'POST',
data
})
}
/**
* 消耗-总计
*/
export function queryConsumeTotal(data) {
return request({
url: '/report/dashboard/total',
method: 'POST',
data
})
}
import request from '@/utils/request'
// 登录方法
export function login(username, password, code, uuid) {
const data = {
username,
password,
code,
uuid
}
return request({
url: '/login',
method: 'post',
params: data
})
}
// 获取用户详细信息
export function getInfo() {
return request({
url: '/getInfo',
method: 'get'
})
}
// 退出方法
export function logout() {
return request({
url: '/logout',
method: 'post'
})
}
// 获取验证码
export function getCodeImg() {
return request({
url: '/captchaImage',
method: 'get'
})
}
\ No newline at end of file
import request from '@/utils/request'
// 获取路由
export const getRouters = () => {
return request({
url: '/getRouters',
method: 'get'
})
}
export function getAu(userId) {
return request({
url: '/system/function/user/list',
method: 'POST',
data: {userId}
})
}
export function checkExpire(userName) {
return request({
url: '/system/user/password/check_expire',
method: 'POST',
data: { userName}
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询登录日志列表
export function list(query) {
return request({
url: '/monitor/logininfor/list',
method: 'get',
params: query
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询在线用户列表
export function list(query) {
return request({
url: '/monitor/online/list',
method: 'get',
params: query
})
}
// 强退用户
export function forceLogout(tokenId) {
return request({
url: '/monitor/online/' + tokenId,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询操作日志列表
export function list(query) {
return request({
url: '/monitor/operlog/list',
method: 'get',
params: query
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询服务器详细
export function getServer() {
return request({
url: '/monitor/server',
method: 'get'
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询用户信息列表
export function listReport(query) {
return request({
url: '/report/operate/list',
method: 'post',
params: query
})
}
// 导出用户信息
export function exportReport(query) {
return request({
method: 'post',
url: '/report/operate/export',
params: query,
responseType: 'arraybuffer'
})
}
\ No newline at end of file
import request from '@/utils/request'
// 未登陆用户密码重置
export function resetPassword(data) {
return request({
url: '/system/user/password/set',
method: 'post',
data
})
}
import request from '@/utils/request'
/**
* 获取账号列表
*/
export function listAccount(queryParams) {
return request({
url: '/system/account/list',
method: 'POST',
data: queryParams
})
}
import request from '@/utils/request'
/**
* 客户下拉列表
*/
export function getCustomerList() {
return request({
method: 'POST',
url: '/system/customer/select',
})
}
/**
* 新增&修改 配置
* @param {*} param0
*/
export function addConfig({ customerId, module, key, value }) {
return request({
url: '/system/customer/fee/config',
method: 'POST',
data: { customerId, module, key, value }
})
}
/**
* 删除配置
* @param {*} param0
*/
export function deleteConfig({ configId }) {
return request({
url: '/system/customer/fee/config/delete',
method: 'POST',
data: { configId}
})
}
/**
* 系统权限配置 list 查询
* @param {String} param0 - 父级 id
*/
export function getCustomerDict({ parentId, parentCode }) {
return request({
url: '/system/customer/dict/list',
method: 'POST',
data: { parentId, parentCode }
})
}
/**
* 获取用户权限列表
* @param {Object} param0
*/
export function getConfigSearch({ current, size, customerName, module }) {
return request({
url: '/system/customer/fee/config/search',
method: 'POST',
data: { current, size, customerName, module }
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询参数列表
export function listConfig(query) {
return request({
url: '/system/config/list',
method: 'get',
params: query
})
}
// 查询参数详细
export function getConfig(configId) {
return request({
url: '/system/config/' + configId,
method: 'get'
})
}
// 根据参数键名查询参数值
export function getConfigKey(configKey) {
return request({
url: '/system/config/configKey/' + configKey,
method: 'get'
})
}
// 新增参数配置
export function addConfig(data) {
return request({
url: '/system/config',
method: 'post',
data: data
})
}
// 修改参数配置
export function updateConfig(data) {
return request({
url: '/system/config',
method: 'put',
data: data
})
}
// 删除参数配置
export function delConfig(configId) {
return request({
url: '/system/config/' + configId,
method: 'delete'
})
}
\ No newline at end of file
import request from '@/utils/request'
// 获取可见创意权限账号配置模板
export function getUserConfigTemplate(data) {
return request({
url: '/system/customer/user/config/template',
responseType: 'arraybuffer',
method: 'POST',
data
})
}
// 查询已经上传可见创意灵感账号配置表格列表
export function getUserList(data) {
return request({
url: '/system/customer/user/config/file/search',
method: 'POST',
data
})
}
// 删除可见创意灵感Ads账号表格记录
export function delectUserConfigRecord(data) {
return request({
url: '/system/customer/user/config/file/delete',
method: 'POST',
data
})
}
import request from '@/utils/request'
/**
* 新增客户
* @param customerName 客户名
* @param customerEmail 客户邮箱
* @param customerContact 客户联系人
* @param customerPhone 客户电话
* @param customerAddress 客户地址
* @param status 状态
* @param startTime 开始时间
* @param endTim 结束时间
*/
export function addCustomer({ customerName, customerEmail, customerContact, customerPhone, customerAddress, status, customerOperator, customerArea, contractTime, type }) {
return request({
url: '/system/customer/',
method: 'POST',
data: { customerName, customerEmail, customerContact, customerPhone, customerAddress, customerOperator, customerArea, status, contractTime, type }
})
}
/**
* 修改客户
* @param customerId 客户ID
* @param customerName 客户名称
* @param customerEmail 客户邮箱
* @param customerContact 客户联系人
* @param customerPhone 客户联系电话
* @param customerAddress 客户地址
* @param status 状态
* @param contractTime 合同时间
*/
export function editCustomer({ customerId, customerName, customerEmail, customerContact, customerPhone, customerAddress, customerOperator, customerArea, status, contractTime, type }) {
return request({
url: '/system/customer/' + customerId,
method: 'PUT',
data: {
customerId,
customerName,
customerEmail,
customerContact,
customerPhone,
customerAddress,
status,
contractTime,
customerOperator,
customerArea,
type
}
})
}
/**
* 获取客户列表
* @param current 当前页
* @param size 每页记录数
* @param customerName 客户名称
* @param status 客户状态
* @param startTime
* @param endTime
* @returns {Promise<void> | * | AxiosPromise<any> | ClientHttp2Stream | http.ClientRequest}
*/
export function listCustomer({ current, size, customerName, customerArea, customerOperator, status, startTime, endTime, type }) {
return request({
url: '/system/customer/list',
method: 'POST',
data: { current, size, customerName, status, startTime, endTime, customerArea, customerOperator, type }
})
}
/**
* 获取客户
* @param customerId 客户ID
*/
export function getCustomer(customerId) {
return request({
url: '/system/customer/' + customerId,
method: 'GET'
})
}
/**
* 删除客户
* @param customerId 客户ID
*/
export function deleteCustomer(customerId) {
return request({
url: '/system/customer/' + customerId,
method: 'DELETE'
})
}
export function editStatus(customerId, status) {
return request({
url: '/system/customer/' + customerId + '/' + status,
method: 'PUT'
})
}
export function resetPassword(customerId) {
return request({
url: `/system/customer/${customerId}/password/reset`,
method: 'POST'
})
}
/**
* 客户产品List - 导出数据接口
* @param customerName 客户名称
* @param status 客户状态
* @param startTime
* @param endTime
* **/
export function productExport(data) {
return request({
url: '/system/customer/export',
method: 'POST',
data,
responseType: 'arraybuffer'
})
}
import request from '@/utils/request'
/**
* Dashboard分页
* @param filtering {} 筛选维度
* @param startDate 开始日期
* @param endDate 结束日期
* @param mediaCode 媒体
* @param customerType 客户类型
* @param customerArea 客户区域
* @param customerId 客户ID
* @param customerName 客户名称
* @param groupBy {} 聚合维度
* @param dateInt 日期聚合
* @param mediaCode 媒体聚合
* @param customerArea 客户区域聚合
* @param customerType 客户类型聚合
* @param customerId 客户ID聚合
* @param customerName 客户名称聚合
* @param sortBy 排序字段
* @param pageNo 搜索页码
* @param pageSize 一页显示的数据条数
*/
export function dashboardPage(data) {
return request({
url: '/ops/report/dashboard/page',
method: 'POST',
data
})
}
/**
* Dashboard导出
* @param filtering {} 筛选维度
* @param startDate 开始日期
* @param endDate 结束日期
* @param mediaCode 媒体
* @param customerType 客户类型
* @param customerArea 客户区域
* @param customerId 客户ID
* @param customerName 客户名称
* @param groupBy {} 聚合维度
* @param dateInt 日期聚合
* @param mediaCode 媒体聚合
* @param customerArea 客户区域聚合
* @param customerType 客户类型聚合
* @param customerId 客户ID聚合
* @param customerName 客户名称聚合
* @param sortBy 排序字段
* @param pageNo 搜索页码
* @param pageSize 一页显示的数据条数
*/
export function dashboardExport(data) {
return request({
url: '/ops/report/dashboard/export',
method: 'POST',
data,
responseType: 'arraybuffer'
})
}
import request from '@/utils/request'
// 查询部门列表
export function listDept(query) {
return request({
url: '/system/dept/list',
method: 'get',
params: query
})
}
// 查询部门详细
export function getDept(deptId) {
return request({
url: '/system/dept/' + deptId,
method: 'get'
})
}
// 查询部门下拉树结构
export function treeselect() {
return request({
url: '/system/dept/treeselect',
method: 'get'
})
}
// 根据角色ID查询部门树结构
export function roleDeptTreeselect(roleId) {
return request({
url: '/system/dept/roleDeptTreeselect/' + roleId,
method: 'get'
})
}
// 新增部门
export function addDept(data) {
return request({
url: '/system/dept',
method: 'post',
data: data
})
}
// 修改部门
export function updateDept(data) {
return request({
url: '/system/dept',
method: 'put',
data: data
})
}
// 删除部门
export function delDept(deptId) {
return request({
url: '/system/dept/' + deptId,
method: 'delete'
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询字典数据列表
export function listData(query) {
return request({
url: '/system/dict/data/list',
method: 'get',
params: query
})
}
// 查询字典数据详细
export function getData(dictCode) {
return request({
url: '/system/dict/data/' + dictCode,
method: 'get'
})
}
// 根据字典类型查询字典数据信息
export function getDicts(dictType) {
return request({
url: '/system/dict/data/dictType/' + dictType,
method: 'get'
})
}
// 新增字典数据
export function addData(data) {
return request({
url: '/system/dict/data',
method: 'post',
data: data
})
}
// 修改字典数据
export function updateData(data) {
return request({
url: '/system/dict/data',
method: 'put',
data: data
})
}
// 删除字典数据
export function delData(dictCode) {
return request({
url: '/system/dict/data/' + dictCode,
method: 'delete'
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询字典类型列表
export function listType(query) {
return request({
url: '/system/dict/type/list',
method: 'get',
params: query
})
}
// 查询字典类型详细
export function getType(dictId) {
return request({
url: '/system/dict/type/' + dictId,
method: 'get'
})
}
// 新增字典类型
export function addType(data) {
return request({
url: '/system/dict/type',
method: 'post',
data: data
})
}
// 修改字典类型
export function updateType(data) {
return request({
url: '/system/dict/type',
method: 'put',
data: data
})
}
// 删除字典类型
export function delType(dictId) {
return request({
url: '/system/dict/type/' + dictId,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询菜单列表
export function listMenu(query) {
return request({
url: '/system/menu/list',
method: 'get',
params: query
})
}
// 查询菜单详细
export function getMenu(menuId) {
return request({
url: '/system/menu/' + menuId,
method: 'get'
})
}
// 查询菜单下拉树结构
export function treeselect() {
return request({
url: '/system/menu/treeselect',
method: 'get'
})
}
// 根据角色ID查询菜单下拉树结构
export function roleMenuTreeselect(roleId) {
return request({
url: '/system/menu/roleMenuTreeselect/' + roleId,
method: 'get'
})
}
// 新增菜单
export function addMenu(data) {
return request({
url: '/system/menu',
method: 'post',
data: data
})
}
// 修改菜单
export function updateMenu(data) {
return request({
url: '/system/menu',
method: 'put',
data: data
})
}
// 删除菜单
export function delMenu(menuId) {
return request({
url: '/system/menu/' + menuId,
method: 'delete'
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询公告列表
export function listNotice(query) {
return request({
url: '/system/notice/list',
method: 'get',
params: query
})
}
// 查询公告详细
export function getNotice(noticeId) {
return request({
url: '/system/notice/' + noticeId,
method: 'get'
})
}
// 新增公告
export function addNotice(data) {
return request({
url: '/system/notice',
method: 'post',
data: data
})
}
// 修改公告
export function updateNotice(data) {
return request({
url: '/system/notice',
method: 'put',
data: data
})
}
// 删除公告
export function delNotice(noticeId) {
return request({
url: '/system/notice/' + noticeId,
method: 'delete'
})
}
\ No newline at end of file
import request from '@/utils/request'
/**
* 人群客户管理-用户列表
*/
export function getPackList(data) {
return request({
url: '/tools/ads_dmp/customer/search',
method: 'POST',
data
})
}
/**
* 人群客户管理-获取客户下拉列表
*/
export function getPackOption({
...data
}) {
return request({
url: '/tools/ads_dmp/customer/add/select',
method: 'POST',
data
})
}
/**
* 人群客户管理-确认添加
*/
export function addCustomer(data) {
return request({
url: '/tools/ads_dmp/customer/add',
method: 'POST',
data
})
}
/**
* 人群客户管理-配置
*/
export function updateCustomer(data) {
return request({
url: '/tools/ads_dmp/customer/config',
method: 'POST',
data
})
}
/**
* 人群客户管理-配置-详情
*/
export function getCustomerInfo({
...data
}) {
return request({
url: '/tools/ads_dmp/customer/config/get',
method: 'POST',
data
})
}
/**
* 人群客户管理-充值
*/
export function rechargeCustomer(data) {
return request({
url: '/tools/ads_dmp/customer/recharge',
method: 'POST',
data
})
}
/**
* 人群客户管理-充值-明细
*/
export function getRechargeDetail({
...data
}) {
return request({
url: '/tools/ads_dmp/customer/amount_journal/search',
method: 'POST',
data
})
}
/**
* 人群客户管理-人群客户投放账号添加接口
*/
export const addMedia = ({
...data
}) => {
return request({
url: '/user/dmp/media_account/add',
method: 'POST',
data
})
}
/**
* 人群客户管理-模板下载
*/
export const Downloads = () => {
return request({
method: 'POST',
url: '/user/dmp/media_account/template/download',
responseType: 'arraybuffer',
data: {}
})
}
/**
* 人群客户管理-列表
*/
export const getLists = (data) => {
return request({
method: 'POST',
url: '/user/dmp/media_account/search',
data
})
}
/**
* 人群客户管理-修改
*/
export const updateMedia = (data) => {
return request({
method: 'POST',
url: '/user/dmp/media_account/edit',
data
})
}
/**
* 人群客户管理-删除
*/
export const deleteMedia = (data) => {
return request({
method: 'POST',
url: '/user/dmp/media_account/delete',
data
})
}
/**
* 人群客户管理-上传
*/
export const trackUpload = (formData) => {
return request({
method: 'POST',
url: '/user/dmp/media_account/template/upload',
headers: {
'Content-Type': 'multipart/form-data'
},
data: formData
})
}
// 二进制流下载
export const hackDownloadFile = (data, filename) => {
if (!data) {
return
}
let url = window.URL.createObjectURL(new Blob([data]))
let link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', filename || `模板.xls`)
document.body.appendChild(link)
link.click()
}
\ No newline at end of file
import request from '@/utils/request'
/**
* Admin后台-消息新增
*/
export function popUpPoticeMessage(data) {
return request({
url: '/system/message',
method: 'POST',
data
})
}
/**
* Admin后台-消息中心列表查询
*/
export function popUpPoticeMessageList(data) {
return request({
url: '/system/message/list',
method: 'POST',
data
})
}
/**
* Admin后台-消息中心列表删除
*/
export function popUpPoticeMessageDelete(data) {
return request({
url: '/system/message/' + data,
method: 'delete'
})
}
/**
* Admin后台-消息中心列表删除
*/
export function popUpPoticeMessageGet(data) {
return request({
url: '/system/message/' + data,
method: 'get'
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询岗位列表
export function listPost(query) {
return request({
url: '/system/post/list',
method: 'get',
params: query
})
}
// 查询岗位详细
export function getPost(postId) {
return request({
url: '/system/post/' + postId,
method: 'get'
})
}
// 新增岗位
export function addPost(data) {
return request({
url: '/system/post',
method: 'post',
data: data
})
}
// 修改岗位
export function updatePost(data) {
return request({
url: '/system/post',
method: 'put',
data: data
})
}
// 删除岗位
export function delPost(postId) {
return request({
url: '/system/post/' + postId,
method: 'delete'
})
}
\ No newline at end of file
import request from '@/utils/request'
/**
* Dashboard分页
* @param filtering {} 筛选维度
* @param startDate 开始日期
* @param endDate 结束日期
* @param mediaCode 媒体
* @param source 数据来源*
* @param appName 应用名称*
* @param appPackageName 应用包名*
* @param customerType 客户类型
* @param customerArea 客户区域
* @param customerId 客户ID
* @param customerName 客户名称
* @param groupBy {} 聚合维度
* @param dateInt 日期聚合
* @param mediaCode 媒体聚合
* @param customerArea 客户区域
* @param customerType 客户类型
* @param customerId 客户ID
* @param customerName 客户名称
* @param corporationName 资质主体名称*
* @param firstIndustryName 一级行业*
* @param secondIndustryName 二级行业*
* @param source 数据来源*
* @param sortBy 排序字段
* @param pageNo 搜索页码
* @param pageSize 一页显示的数据条数
*/
export function planPage(data) {
return request({
url: '/ops/report/plan/page',
method: 'POST',
data
})
}
/**
* Dashboard导出
* @param filtering {} 筛选维度
* @param startDate 开始日期
* @param endDate 结束日期
* @param mediaCode 媒体
* @param source 数据来源*
* @param appName 应用名称*
* @param appPackageName 应用包名*
* @param customerType 客户类型
* @param customerArea 客户区域
* @param customerId 客户ID
* @param customerName 客户名称
* @param groupBy {} 聚合维度
* @param dateInt 日期聚合
* @param mediaCode 媒体聚合
* @param customerArea 客户区域
* @param customerType 客户类型
* @param customerId 客户ID
* @param customerName 客户名称
* @param corporationName 资质主体名称*
* @param firstIndustryName 一级行业*
* @param secondIndustryName 二级行业*
* @param source 数据来源*
* @param sortBy 排序字段
*/
export function planExport(data) {
return request({
url: '/ops/report/plan/export',
method: 'POST',
data,
responseType: 'arraybuffer'
})
}
\ No newline at end of file
import request from '@/utils/request'
/**
* 客户产品list分页
* @param filtering {} 筛选维度
* @param mediaCode 媒体
* @param customerId 客户ID
* @param customerName 客户名称
* @param pageNo 搜索页码
* @param pageSize 一页显示的数据条数
*/
export function productPage(data) {
return request({
url: '/ops/report/product/page',
method: 'POST',
data
})
}
/**
* 客户产品list导出
* @param filtering {} 筛选维度
* @param mediaCode 媒体
* @param customerId 客户ID
* @param customerName 客户名称
* @param pageNo 搜索页码
* @param pageSize 一页显示的数据条数
*/
export function productExport(data) {
return request({
url: '/ops/report/product/export',
method: 'POST',
data,
responseType: 'arraybuffer'
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询角色列表
export function listRole(query) {
return request({
url: '/system/role/list',
method: 'get',
params: query
})
}
// 查询角色详细
export function getRole(roleId) {
return request({
url: '/system/role/' + roleId,
method: 'get'
})
}
// 新增角色
export function addRole(data) {
return request({
url: '/system/role',
method: 'post',
data: data
})
}
// 修改角色
export function updateRole(data) {
return request({
url: '/system/role',
method: 'put',
data: data
})
}
// 角色数据权限
export function dataScope(data) {
return request({
url: '/system/role/dataScope',
method: 'put',
data: data
})
}
// 角色状态修改
export function changeRoleStatus(roleId, status) {
const data = {
roleId,
status
}
return request({
url: '/system/role/changeStatus',
method: 'put',
data: data
})
}
// 删除角色
export function delRole(roleId) {
return request({
url: '/system/role/' + roleId,
method: 'delete'
})
}
\ No newline at end of file
import request from '@/utils/request'
// 查询用户列表
export function listUser(query) {
return request({
url: '/system/user/list',
method: 'get',
params: query
})
}
// 查询用户详细
export function getUser(userId) {
return request({
url: '/system/user/' + userId,
method: 'get'
})
}
// 新增用户
export function addUser(data) {
return request({
url: '/system/user',
method: 'post',
data: data
})
}
// 修改用户
export function updateUser(data) {
return request({
url: '/system/user',
method: 'put',
data: data
})
}
// 删除用户
export function delUser(userId) {
return request({
url: '/system/user/' + userId,
method: 'delete'
})
}
// 用户密码重置
export function resetUserPwd(userId, password) {
const data = {
userId,
password
}
return request({
url: '/system/user/resetPwd',
method: 'put',
data: data
})
}
// 用户状态修改
export function changeUserStatus(userId, status) {
const data = {
userId,
status
}
return request({
url: '/system/user/changeStatus',
method: 'put',
data: data
})
}
// 查询用户个人信息
export function getUserProfile() {
return request({
url: '/system/user/profile',
method: 'get'
})
}
// 修改用户个人信息
export function updateUserProfile(data) {
return request({
url: '/system/user/profile',
method: 'put',
data: data
})
}
// 用户密码重置
export function updateUserPwd(oldPassword, newPassword) {
const data = {
oldPassword: oldPassword,
newPassword: newPassword
}
return request({
url: '/system/user/password',
method: 'PUT',
data: data
})
}
// 用户头像上传
export function uploadAvatar(data) {
return request({
url: '/system/user/profile/avatar',
method: 'post',
data: data
})
}
// 收数服务白名单新增
export function shoushuWhiteAdd(data) {
return request({
url: '/system/shoushu/white/add',
method: 'post',
data: data
})
}
// 收数服务白名单修改
export function shoushuWhiteEdit(data) {
return request({
url: '/system/shoushu/white/edit',
method: 'post',
data: data
})
}
// 收数服务白名单修改状态
export function shoushuWhiteEditStatus(data) {
return request({
url: '/system/shoushu/white/edit/status',
method: 'post',
data: data
})
}
// 收数服务白名单查询
export function shoushuWhiteSearch(data) {
return request({
url: '/system/shoushu/white/search',
method: 'post',
data: data
})
}
// 查询没有配置的下拉
export function shoushuWhiteCustomerList(data) {
return request({
url: '/system/shoushu/white/customer/list',
method: 'post',
data: data
})
}
// 查询单个配置
export function shoushuWhiteGet(data) {
return request({
url: '/system/shoushu/white/get',
method: 'post',
data: data
})
}
import request from '@/utils/request'
/**
* 产品洞察-产品列表
*/
export function queryProductList(data) {
return request({
url: '/analysis/product/list',
method: 'POST',
data
})
}
/**
* 产品洞察-打标签(新增、修改)
*/
export function addTag(data) {
return request({
url: '/analysis/product/mark_tags',
method: 'POST',
data
})
}
import Vue from 'vue'
import SvgIcon from '@/components/SvgIcon'// svg component
// register globally
Vue.component('svg-icon', SvgIcon)
const req = require.context('./svg', false, /\.svg$/)
const requireAll = requireContext => requireContext.keys().map(requireContext)
requireAll(req)
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M121.718 73.272v9.953c3.957-7.584 6.199-16.05 6.199-24.995C127.917 26.079 99.273 0 63.958 0 28.644 0 0 26.079 0 58.23c0 .403.028.806.028 1.21l22.97-25.953h13.34l-19.76 27.187h6.42V53.77l13.728-19.477v49.361H22.998V73.272H2.158c5.951 20.284 23.608 36.208 45.998 41.399-1.44 3.3-5.618 11.263-12.565 12.674-8.607 1.764 23.358.428 46.163-13.178 17.519-4.611 31.938-15.849 39.77-30.513h-13.506V73.272H85.02V59.464l22.998-25.977h13.008l-19.429 27.187h6.421v-7.433l13.727-19.402v39.433h-.027zm-78.24 2.822a10.516 10.516 0 0 1-.996-4.535V44.548c0-1.613.332-3.124.996-4.535a11.66 11.66 0 0 1 2.713-3.68c1.134-1.032 2.49-1.864 4.04-2.468 1.55-.605 3.21-.908 4.982-.908h11.292c1.77 0 3.431.303 4.981.908 1.522.604 2.85 1.41 3.986 2.418l-12.26 16.303v-2.898a1.96 1.96 0 0 0-.665-1.512c-.443-.403-.996-.604-1.66-.604-.665 0-1.218.201-1.661.604a1.96 1.96 0 0 0-.664 1.512v9.071L44.364 77.606a10.556 10.556 0 0 1-.886-1.512zm35.73-4.535c0 1.613-.332 3.124-.997 4.535a11.66 11.66 0 0 1-2.712 3.68c-1.134 1.032-2.49 1.864-4.04 2.469-1.55.604-3.21.907-4.982.907H55.185c-1.77 0-3.431-.303-4.981-.907-1.55-.605-2.906-1.437-4.041-2.47a12.49 12.49 0 0 1-1.384-1.512l13.727-18.217v6.375c0 .605.222 1.109.665 1.512.442.403.996.604 1.66.604.664 0 1.218-.201 1.66-.604a1.96 1.96 0 0 0 .665-1.512V53.87L75.97 36.838c.913.932 1.66 1.99 2.214 3.175.664 1.41.996 2.922.996 4.535v27.011h.028z"/></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M127.88 73.143c0 1.412-.506 2.635-1.518 3.669-1.011 1.033-2.209 1.55-3.592 1.55h-17.887c0 9.296-1.783 17.178-5.35 23.645l16.609 17.044c1.011 1.034 1.517 2.257 1.517 3.67 0 1.412-.506 2.635-1.517 3.668-.958 1.033-2.155 1.55-3.593 1.55-1.438 0-2.635-.517-3.593-1.55l-15.811-16.063a15.49 15.49 0 0 1-1.196 1.06c-.532.434-1.65 1.208-3.353 2.322a50.104 50.104 0 0 1-5.192 2.974c-1.758.87-3.94 1.658-6.546 2.364-2.607.706-5.189 1.06-7.748 1.06V47.044H58.89v73.062c-2.716 0-5.417-.367-8.106-1.102-2.688-.734-5.003-1.631-6.945-2.692a66.769 66.769 0 0 1-5.268-3.179c-1.571-1.057-2.73-1.94-3.476-2.65L33.9 109.34l-14.611 16.877c-1.066 1.14-2.344 1.711-3.833 1.711-1.277 0-2.422-.434-3.434-1.304-1.012-.978-1.557-2.187-1.635-3.627-.079-1.44.333-2.705 1.236-3.794l16.129-18.51c-3.087-6.197-4.63-13.644-4.63-22.342H5.235c-1.383 0-2.58-.517-3.592-1.55S.125 74.545.125 73.132c0-1.412.506-2.635 1.518-3.668 1.012-1.034 2.21-1.55 3.592-1.55h17.887V43.939L9.308 29.833c-1.012-1.033-1.517-2.256-1.517-3.669 0-1.412.505-2.635 1.517-3.668 1.012-1.034 2.21-1.55 3.593-1.55s2.58.516 3.593 1.55l13.813 14.106h67.396l13.814-14.106c1.012-1.034 2.21-1.55 3.592-1.55 1.384 0 2.581.516 3.593 1.55 1.012 1.033 1.518 2.256 1.518 3.668 0 1.413-.506 2.636-1.518 3.67l-13.814 14.105v23.975h17.887c1.383 0 2.58.516 3.593 1.55 1.011 1.033 1.517 2.256 1.517 3.668l-.005.01zM89.552 26.175H38.448c0-7.23 2.489-13.386 7.466-18.469C50.892 2.623 56.92.082 64 .082c7.08 0 13.108 2.541 18.086 7.624 4.977 5.083 7.466 11.24 7.466 18.469z"/></svg>
\ No newline at end of file
<?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="1568899741379" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2054" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M960 591.424V368.96c0-0.288 0.16-0.512 0.16-0.768S960 367.68 960 367.424V192a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v175.424c0 0.288-0.16 0.512-0.16 0.768s0.16 0.48 0.16 0.768v222.464c0 0.288-0.16 0.512-0.16 0.768s0.16 0.48 0.16 0.768V864a32 32 0 0 0 32 32h832a32 32 0 0 0 32-32v-271.04c0-0.288 0.16-0.512 0.16-0.768S960 591.68 960 591.424z m-560-31.232v-160H608v160h-208z m208 64V832h-208v-207.808H608z m-480-224h208v160H128v-160z m544 0h224v160h-224v-160zM896 224v112.192H128V224h768zM128 624.192h208V832H128v-207.808zM672 832v-207.808h224V832h-224z" p-id="2055"></path></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M0 54.857h36.571V128H0V54.857zM91.429 27.43H128V128H91.429V27.429zM45.714 0h36.572v128H45.714V0z"/></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M54.857 118.857h64V73.143H89.143c-1.902 0-3.52-.668-4.855-2.002-1.335-1.335-2.002-2.954-2.002-4.855V36.57H54.857v82.286zM73.143 16v-4.571a2.2 2.2 0 0 0-.677-1.61 2.198 2.198 0 0 0-1.609-.676H20.571c-.621 0-1.158.225-1.609.676a2.198 2.198 0 0 0-.676 1.61V16a2.2 2.2 0 0 0 .676 1.61c.451.45.988.676 1.61.676h50.285c.622 0 1.158-.226 1.61-.677.45-.45.676-.987.676-1.609zm18.286 48h21.357L91.43 42.642V64zM128 73.143v48c0 1.902-.667 3.52-2.002 4.855-1.335 1.335-2.953 2.002-4.855 2.002H52.57c-1.901 0-3.52-.667-4.854-2.002-1.335-1.335-2.003-2.953-2.003-4.855v-11.429H6.857c-1.902 0-3.52-.667-4.855-2.002C.667 106.377 0 104.759 0 102.857v-96c0-1.902.667-3.52 2.002-4.855C3.337.667 4.955 0 6.857 0h77.714c1.902 0 3.52.667 4.855 2.002 1.335 1.335 2.003 2.953 2.003 4.855V30.29c1 .622 1.856 1.29 2.569 2.003l29.147 29.147c1.335 1.335 2.478 3.145 3.429 5.43.95 2.287 1.426 4.383 1.426 6.291v-.018z"/></svg>
\ No newline at end of file
<?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="1546567861908" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2422" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M318.577778 819.2L17.066667 512l301.511111-307.2 45.511111 45.511111L96.711111 512l267.377778 261.688889zM705.422222 819.2l-45.511111-45.511111L927.288889 512l-267.377778-261.688889 45.511111-45.511111L1006.933333 512zM540.785778 221.866667l55.751111 11.150222L483.157333 802.133333l-55.751111-11.093333z" fill="#bfbfbf" p-id="2423"></path></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h54.857v54.857H0V0zm0 73.143h54.857V128H0V73.143zm73.143 0H128V128H73.143V73.143zm27.428-18.286C115.72 54.857 128 42.577 128 27.43 128 12.28 115.72 0 100.571 0 85.423 0 73.143 12.28 73.143 27.429c0 15.148 12.28 27.428 27.428 27.428z"/></svg>
\ No newline at end of file
<svg width="128" height="100" xmlns="http://www.w3.org/2000/svg"><path d="M27.429 63.638c0-2.508-.893-4.65-2.679-6.424-1.786-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.465 2.662-1.785 1.774-2.678 3.916-2.678 6.424 0 2.508.893 4.65 2.678 6.424 1.786 1.775 3.94 2.662 6.465 2.662 2.524 0 4.678-.887 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zm13.714-31.801c0-2.508-.893-4.65-2.679-6.424-1.785-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zM71.714 65.98l7.215-27.116c.285-1.23.107-2.378-.536-3.443-.643-1.064-1.56-1.762-2.75-2.094-1.19-.33-2.333-.177-3.429.462-1.095.639-1.81 1.573-2.143 2.804l-7.214 27.116c-2.857.237-5.405 1.266-7.643 3.088-2.238 1.822-3.738 4.152-4.5 6.992-.952 3.644-.476 7.098 1.429 10.364 1.905 3.265 4.69 5.37 8.357 6.317 3.667.947 7.143.474 10.429-1.42 3.285-1.892 5.404-4.66 6.357-8.305.762-2.84.619-5.607-.429-8.305-1.047-2.697-2.762-4.85-5.143-6.46zm47.143-2.342c0-2.508-.893-4.65-2.678-6.424-1.786-1.775-3.94-2.662-6.465-2.662-2.524 0-4.678.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.786 1.775 3.94 2.662 6.464 2.662 2.524 0 4.679-.887 6.465-2.662 1.785-1.775 2.678-3.916 2.678-6.424zm-45.714-45.43c0-2.509-.893-4.65-2.679-6.425C68.68 10.01 66.524 9.122 64 9.122c-2.524 0-4.679.887-6.464 2.661-1.786 1.775-2.679 3.916-2.679 6.425 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zm32 13.629c0-2.508-.893-4.65-2.679-6.424-1.785-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zM128 63.638c0 12.351-3.357 23.78-10.071 34.286-.905 1.372-2.19 2.058-3.858 2.058H13.93c-1.667 0-2.953-.686-3.858-2.058C3.357 87.465 0 76.037 0 63.638c0-8.613 1.69-16.847 5.071-24.703C8.452 31.08 13 24.312 18.714 18.634c5.715-5.68 12.524-10.199 20.429-13.559C47.048 1.715 55.333.035 64 .035c8.667 0 16.952 1.68 24.857 5.04 7.905 3.36 14.714 7.88 20.429 13.559 5.714 5.678 10.262 12.446 13.643 20.301 3.38 7.856 5.071 16.09 5.071 24.703z"/></svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="128" height="100" xmlns="http://www.w3.org/2000/svg"><path d="M13.5384615,0 L2.46153846,0 C1.10769231,0 0,1.10769231 0,2.46153846 L0,13.5384615 C0,14.8923077 1.10769231,16 2.46153846,16 L13.5384615,16 C14.8923077,16 16,14.8923077 16,13.5384615 L16,2.46153846 C16,1.10769231 14.8923077,0 13.5384615,0 Z M11.0769231,11.6923077 C11.0769231,12.0369231 10.8061538,12.3076923 10.4615385,12.3076923 L4.30769231,12.3076923 C3.96307692,12.3076923 3.69230769,12.0369231 3.69230769,11.6923077 L3.69230769,11.6923077 C3.69230769,11.3476923 3.96307692,11.0769231 4.30769231,11.0769231 L10.4615385,11.0769231 C10.8061538,11.0769231 11.0769231,11.3476923 11.0769231,11.6923077 L11.0769231,11.6923077 Z M3.69230769,8 C3.69230769,7.65538462 3.96307692,7.38461538 4.30769231,7.38461538 L9.23076923,7.38461538 C9.57538462,7.38461538 9.84615385,7.65538462 9.84615385,8 C9.84615385,8.34461538 9.57538462,8.61538462 9.23076923,8.61538462 L4.30769231,8.61538462 C3.96307692,8.61538462 3.69230769,8.34461538 3.69230769,8 Z M11.6923077,4.92307692 L4.30769231,4.92307692 C3.96307692,4.92307692 3.69230769,4.65230769 3.69230769,4.30769231 C3.69230769,3.96307692 3.96307692,3.69230769 4.30769231,3.69230769 L11.6923077,3.69230769 C12.0369231,3.69230769 12.3076923,3.96307692 12.3076923,4.30769231 C12.3076923,4.65230769 12.0369231,4.92307692 11.6923077,4.92307692 Z" id="形状"></path></svg>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="128" height="100" xmlns="http://www.w3.org/2000/svg"><path d="M8,0 C9.94285714,0 11.4285714,1.48571429 11.4285714,3.42857143 L11.4285714,4.71428571 C11.4285714,6.65714286 9.94285714,8.14285714 8,8.14285714 C6.05714286,8.14285714 4.57142857,6.65714286 4.57142857,4.71428571 L4.57142857,3.42857143 C4.57142857,1.48571429 6.05714286,0 8,0 Z" id="路径"></path></svg>
<svg width="128" height="100" xmlns="http://www.w3.org/2000/svg"><path d="M1.6,10.476923 L7.31428571,8.876923 C7.77142857,8.76263729 8.11428571,8.76263729 8.57142857,8.876923 L14.2857143,10.476923 C15.3142857,10.7054944 15.8857143,13.2571429 15.8857143,14.2857143 L15.8857143,14.8571429 C15.8857143,15.5428571 15.4285714,16 14.7428571,16 L1.14285714,16 C0.457142857,16 0,15.5428571 0,14.8571429 L0,14.2857143 C0,13.2571429 0.685714286,10.7054944 1.6,10.476923 Z" id="路径"></path></svg>
</svg>
\ No newline at end of file
<?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="1567417179372" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1155" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M947.2 1024 76.8 1024C38.4 1024 0 992 0 953.6L0 172.8c0-38.4 38.4-70.4 76.8-70.4l38.4 0 0 102.4c0 38.4 38.4 70.4 76.8 70.4l76.8 0c44.8 0 76.8-32 76.8-70.4L345.6 102.4l313.6 0 0 102.4c0 38.4 38.4 70.4 76.8 70.4l76.8 0c44.8 0 76.8-32 76.8-70.4L889.6 102.4l38.4 0c44.8 0 76.8 32 76.8 70.4l0 787.2C1024 992 985.6 1024 947.2 1024zM352 339.2 115.2 339.2 115.2 512l236.8 0L352 339.2zM352 544 115.2 544l0 172.8 236.8 0L352 544zM352 748.8 115.2 748.8l0 172.8 236.8 0L352 748.8zM627.2 339.2 396.8 339.2 396.8 512l236.8 0L633.6 339.2zM627.2 544 396.8 544l0 172.8 236.8 0L633.6 544zM627.2 748.8 396.8 748.8l0 172.8 236.8 0L633.6 748.8zM908.8 339.2l-236.8 0L672 512l236.8 0L908.8 339.2zM908.8 544l-236.8 0 0 172.8 236.8 0L908.8 544zM908.8 748.8l-236.8 0 0 172.8 236.8 0L908.8 748.8zM787.2 236.8c-44.8 0-76.8-32-76.8-70.4L710.4 70.4c0-38.4 38.4-70.4 76.8-70.4s76.8 32 76.8 70.4l0 102.4C864 211.2 832 236.8 787.2 236.8zM236.8 236.8C192 236.8 160 211.2 160 172.8L160 70.4C160 32 192 0 236.8 0s76.8 32 76.8 70.4l0 102.4C313.6 211.2 281.6 236.8 236.8 236.8z" p-id="1156"></path></svg>
\ No newline at end of file
<?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="1566035680909" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3601" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M1002.0848 744.672l-33.568 10.368c0.96 7.264 2.144 14.304 2.144 21.76 0 7.328-1.184 14.432-2.368 21.568l33.792 10.56c7.936 2.24 14.496 7.616 18.336 14.752 3.84 7.328 4.672 15.808 1.952 23.552-5.376 16-23.168 24.672-39.936 19.68l-34.176-10.624c-7.136 12.8-15.776 24.672-26.208 35.2l20.8 27.488a28.96 28.96 0 0 1 5.824 22.816 29.696 29.696 0 0 1-12.704 19.616 32.544 32.544 0 0 1-44.416-6.752l-20.8-27.552c-13.696 6.56-28.192 11.2-43.008 13.888v33.632c0 16.736-14.112 30.432-31.648 30.432-17.6 0-31.872-13.696-31.872-30.432v-33.632a167.616 167.616 0 0 1-42.88-13.888l-20.928 27.552c-10.72 13.76-30.08 16.64-44.288 6.752a29.632 29.632 0 0 1-12.704-19.616 29.28 29.28 0 0 1 5.696-22.816l20.896-27.808a166.72 166.72 0 0 1-27.008-34.688l-33.376 10.432c-16.8 5.184-34.56-3.552-39.936-19.616a29.824 29.824 0 0 1 20.224-38.24l33.472-10.432c-0.8-7.264-2.016-14.304-2.016-21.824 0-7.36 1.184-14.496 2.304-21.632l-33.792-10.368c-16.672-5.376-25.632-22.496-20.224-38.432 5.376-16 23.136-24.672 39.936-19.68l34.016 10.752c7.328-12.672 15.84-24.8 26.336-35.328l-20.8-27.552a29.44 29.44 0 0 1 6.944-42.432 32.704 32.704 0 0 1 44.384 6.752l20.832 27.616c13.696-6.432 28.224-11.2 43.104-13.952v-33.568c0-16.736 14.048-30.432 31.648-30.432 17.536 0 31.808 13.568 31.808 30.432v33.504c15.072 2.688 29.344 7.808 42.848 14.016l20.992-27.616a32.48 32.48 0 0 1 44.224-6.752 29.568 29.568 0 0 1 7.136 42.432l-21.024 27.808c10.432 10.432 19.872 21.888 27.04 34.752l33.376-10.432c16.768-5.12 34.56 3.68 39.936 19.68 5.536 15.936-3.712 33.056-20.32 38.304z m-206.016-74.432c-61.344 0-111.136 47.808-111.136 106.56 0 58.88 49.792 106.496 111.136 106.496 61.312 0 111.104-47.616 111.104-106.496 0-58.752-49.792-106.56-111.104-106.56z" p-id="3602"></path><path d="M802.7888 57.152h-76.448c0-22.08-21.024-38.24-42.848-38.24H39.3968a39.68 39.68 0 0 0-39.36 40.032v795.616s41.888 120.192 110.752 120.192H673.2848a227.488 227.488 0 0 1-107.04-97.44H117.6368s-40.608-13.696-40.608-41.248l470.304-0.256 1.664 3.36a227.68 227.68 0 0 1-12.64-73.632c0-60.576 24-118.624 66.88-161.44a228.352 228.352 0 0 1 123.552-63.392l-3.2 0.288 2.144-424.672h38.208l0.576 421.024c27.04 0 52.672 4.8 76.64 13.344V101.536c0.032 0-6.304-44.384-38.368-44.384zM149.7648 514.336H72.3888v-77.408H149.7648v77.408z m0-144.32H72.3888v-77.44H149.7648v77.44z m0-137.248H72.3888v-77.44H149.7648v77.44z m501.856 281.568H206.0848v-77.408h445.536v77.408z m0-144.32H206.0848v-77.44h445.536v77.44z m0-137.248H206.0848v-77.44h445.536v77.44z" p-id="3603"></path></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M71.984 44.815H115.9L71.984 9.642v35.173zM16.094.05h63.875l47.906 38.37v76.74c0 3.392-1.682 6.645-4.677 9.044-2.995 2.399-7.056 3.746-11.292 3.746H16.094c-4.236 0-8.297-1.347-11.292-3.746-2.995-2.399-4.677-5.652-4.677-9.044V12.84C.125 5.742 7.23.05 16.094.05zm71.86 102.32V89.58h-71.86v12.79h71.86zm23.952-25.58V64H16.094v12.79h95.812z"/></svg>
\ No newline at end of file
<?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="1569915748289" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3062" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M768.35456 416a256 256 0 1 0-512 0 192 192 0 1 0 0 384v64a256 256 0 0 1-58.88-505.216 320.128 320.128 0 0 1 629.76 0A256.128 256.128 0 0 1 768.35456 864v-64a192 192 0 0 0 0-384z m-512 384h64v64H256.35456v-64z m448 0h64v64h-64v-64z" fill="#333333" p-id="3063"></path><path d="M539.04256 845.248V512.192a32.448 32.448 0 0 0-32-32.192c-17.664 0-32 14.912-32 32.192v333.056l-36.096-36.096a32.192 32.192 0 0 0-45.056 0.192 31.616 31.616 0 0 0-0.192 45.056l90.88 90.944a31.36 31.36 0 0 0 22.528 9.088 30.08 30.08 0 0 0 22.4-9.088l90.88-90.88a32.192 32.192 0 0 0-0.192-45.12 31.616 31.616 0 0 0-45.056-0.192l-36.096 36.096z" fill="#333333" p-id="3064"></path></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M73.137 29.08h-9.209 29.7L63.886.093 34.373 29.08h20.49v27.035H27.238v17.948h27.625v27.133h18.274V74.063h27.41V56.115h-27.41V29.08zm-9.245 98.827l27.518-26.711H36.59l27.302 26.71zM.042 64.982l27.196 27.029V38.167L.042 64.982zm100.505-26.815V92.01l27.41-27.029-27.41-26.815z"/></svg>
\ No newline at end of file
<?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="1566036347051" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5853" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M832 128H192a64.19 64.19 0 0 0-64 64v640a64.19 64.19 0 0 0 64 64h640a64.19 64.19 0 0 0 64-64V192a64.19 64.19 0 0 0-64-64z m0 703.89l-0.11 0.11H192.11l-0.11-0.11V768h640zM832 544H720L605.6 696.54 442.18 435.07 333.25 544H192v-64h114.75l147.07-147.07L610.4 583.46 688 480h144z m0-288H192v-63.89l0.11-0.11h639.78l0.11 0.11z" p-id="5854"></path></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M106.133 67.2a4.797 4.797 0 0 0-4.8 4.8c0 .187.014.36.027.533h-.027V118.4H9.6V26.667h50.133c2.654 0 4.8-2.147 4.8-4.8 0-2.654-2.146-4.8-4.8-4.8H9.6a9.594 9.594 0 0 0-9.6 9.6V118.4c0 5.307 4.293 9.6 9.6 9.6h91.733c5.307 0 9.6-4.293 9.6-9.6V72.533h-.026c.013-.173.026-.346.026-.533 0-2.653-2.146-4.8-4.8-4.8z"/><path d="M125.16 13.373L114.587 2.8c-3.747-3.747-9.854-3.72-13.6.027l-52.96 52.96a4.264 4.264 0 0 0-.907 1.36L33.813 88.533c-.746 1.76-.226 3.534.907 4.68 1.133 1.147 2.92 1.667 4.693.92l31.4-13.293c.507-.213.96-.52 1.36-.907l52.96-52.96c3.747-3.746 3.774-9.853.027-13.6zM66.107 72.4l-18.32 7.76 7.76-18.32L92.72 24.667l10.56 10.56L66.107 72.4zm52.226-52.227l-8.266 8.267-10.56-10.56 8.266-8.267.027-.026 10.56 10.56-.027.026z"/></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M88.883 119.565c-7.284 0-19.434 2.495-21.333 8.25v.127c-4.232.13-5.222 0-7.108 0-1.895-5.76-14.045-8.256-21.333-8.256H0V0h42.523c9.179 0 17.109 5.47 21.47 13.551C68.352 5.475 76.295 0 85.478 0H128v119.57l-39.113-.005h-.004zM60.442 24.763c0-9.651-8.978-16.507-17.777-16.507H7.108V111.43H39.11c7.054-.14 18.177.082 21.333 6.12v-4.628c-.134-5.722-.004-13.522 0-13.832V27.413l.004-2.655-.004.005zm60.442-16.517h-35.55c-8.802 0-17.78 6.856-17.78 16.493v74.259c.004.32.138 8.115 0 13.813v4.627c3.155-6.022 14.279-6.26 21.333-6.114h32V8.25l-.003-.005z"/></svg>
\ No newline at end of file
<svg width="128" height="96" xmlns="http://www.w3.org/2000/svg"><path d="M64.125 56.975L120.188.912A12.476 12.476 0 0 0 115.5 0h-103c-1.588 0-3.113.3-4.513.838l56.138 56.137z"/><path d="M64.125 68.287l-62.3-62.3A12.42 12.42 0 0 0 0 12.5v71C0 90.4 5.6 96 12.5 96h103c6.9 0 12.5-5.6 12.5-12.5v-71a12.47 12.47 0 0 0-1.737-6.35L64.125 68.287z"/></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M96.258 57.462h31.421C124.794 27.323 100.426 2.956 70.287.07v31.422a32.856 32.856 0 0 1 25.971 25.97zm-38.796-25.97V.07C27.323 2.956 2.956 27.323.07 57.462h31.422a32.856 32.856 0 0 1 25.97-25.97zm12.825 64.766v31.421c30.46-2.885 54.507-27.253 57.713-57.712H96.579c-2.886 13.466-13.146 23.726-26.292 26.291zM31.492 70.287H.07c2.886 30.46 27.253 54.507 57.713 57.713V96.579c-13.466-2.886-23.726-13.146-26.291-26.292z"/></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M78.208 16.576v8.384h38.72v5.376h-38.72v8.704h38.72v5.376h-38.72v8.576h38.72v5.376h-38.72v8.576h38.72v5.376h-38.72v8.576h38.72v5.376h-38.72v8.512h38.72v5.376h-38.72v11.136H128v-94.72H78.208zM0 114.368L72.128 128V0L0 13.632v100.736z"/><path d="M28.672 82.56h-11.2l14.784-23.488-14.08-22.592h11.52l8.192 14.976 8.448-14.976h11.136l-14.08 22.208L58.368 82.56H46.656l-8.768-15.68z"/></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M49.217 41.329l-.136-35.24c-.06-2.715-2.302-4.345-5.022-4.405h-3.65c-2.712-.06-4.866 2.303-4.806 5.016l.152 19.164-24.151-23.79a6.698 6.698 0 0 0-9.499 0 6.76 6.76 0 0 0 0 9.526l23.93 23.713-18.345.074c-2.712-.069-5.228 1.813-5.64 5.02v3.462c.069 2.721 2.31 4.97 5.022 5.03l35.028-.207c.052.005.087.025.133.025l2.457.054a4.626 4.626 0 0 0 3.436-1.38c.88-.874 1.205-2.096 1.169-3.462l-.262-2.465c0-.048.182-.081.182-.136h.002zm52.523 51.212l18.32-.073c2.713.06 5.224-1.609 5.64-4.815v-3.462c-.068-2.722-2.317-4.97-5.021-5.04l-34.58.21c-.053 0-.086-.021-.138-.021l-2.451-.06a4.64 4.64 0 0 0-3.445 1.381c-.885.868-1.201 2.094-1.174 3.46l.27 2.46c.005.06-.177.095-.177.141l.141 34.697c.069 2.713 2.31 4.338 5.022 4.397l3.45.006c2.705.062 4.867-2.31 4.8-5.026l-.153-18.752 24.151 23.946a6.69 6.69 0 0 0 9.494 0 6.747 6.747 0 0 0 0-9.523L101.74 92.54v.001zM48.125 80.662a4.636 4.636 0 0 0-3.437-1.382l-2.457.06c-.05 0-.082.022-.137.022l-35.025-.21c-2.712.07-4.957 2.318-5.022 5.04v3.462c.409 3.206 2.925 4.874 5.633 4.814l18.554.06-24.132 23.928c-2.62 2.626-2.62 6.89 0 9.524a6.694 6.694 0 0 0 9.496 0l24.155-23.79-.155 18.866c-.06 2.722 2.094 5.093 4.801 5.025h3.65c2.72-.069 4.962-1.685 5.022-4.406l.141-34.956c0-.05-.182-.082-.182-.136l.262-2.46c.03-1.366-.286-2.592-1.166-3.46h-.001zM80.08 47.397a4.62 4.62 0 0 0 3.443 1.374l2.45-.054c.055 0 .088-.02.143-.028l35.08.21c2.712-.062 4.953-2.312 5.021-5.033l.009-3.463c-.417-3.211-2.937-5.084-5.64-5.025l-18.615-.073 23.917-23.715c2.63-2.623 2.63-6.879.008-9.513a6.691 6.691 0 0 0-9.494 0L92.251 26.016l.155-19.312c.065-2.713-2.097-5.085-4.802-5.025h-3.45c-2.713.069-4.954 1.693-5.022 4.406l-.139 35.247c0 .054.18.088.18.136l-.267 2.465c-.028 1.366.288 2.588 1.174 3.463v.001z"/></svg>
\ No newline at end of file
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="128" height="128"><defs><style/></defs><path d="M512 128q69.675 0 135.51 21.163t115.498 54.997 93.483 74.837 73.685 82.006 51.67 74.837 32.17 54.827L1024 512q-2.347 4.992-6.315 13.483T998.87 560.17t-31.658 51.669-44.331 59.99-56.832 64.34-69.504 60.16-82.347 51.5-94.848 34.687T512 896q-69.675 0-135.51-21.163t-115.498-54.826-93.483-74.326-73.685-81.493-51.67-74.496-32.17-54.997L0 513.707q2.347-4.992 6.315-13.483t18.816-34.816 31.658-51.84 44.331-60.33 56.832-64.683 69.504-60.331 82.347-51.84 94.848-34.816T512 128.085zm0 85.333q-46.677 0-91.648 12.331t-81.152 31.83-70.656 47.146-59.648 54.485-48.853 57.686-37.675 52.821-26.325 43.99q12.33 21.674 26.325 43.52t37.675 52.351 48.853 57.003 59.648 53.845T339.2 767.02t81.152 31.488T512 810.667t91.648-12.331 81.152-31.659 70.656-46.848 59.648-54.186 48.853-57.344 37.675-52.651T927.957 512q-12.33-21.675-26.325-43.648t-37.675-52.65-48.853-57.345-59.648-54.186-70.656-46.848-81.152-31.659T512 213.334zm0 128q70.656 0 120.661 50.006T682.667 512 632.66 632.661 512 682.667 391.339 632.66 341.333 512t50.006-120.661T512 341.333zm0 85.334q-35.328 0-60.33 25.002T426.666 512t25.002 60.33T512 597.334t60.33-25.002T597.334 512t-25.002-60.33T512 426.666z"/></svg>
\ No newline at end of file
<svg width="128" height="64" xmlns="http://www.w3.org/2000/svg"><path d="M127.072 7.994c1.37-2.208.914-5.152-.914-6.87-2.056-1.717-4.797-1.226-6.396.982-.229.245-25.586 32.382-55.74 32.382-29.24 0-55.74-32.382-55.968-32.627-1.6-1.963-4.57-2.208-6.397-.49C-.17 3.086-.399 6.275 1.2 8.238c.457.736 5.94 7.36 14.62 14.72L4.17 35.96c-1.828 1.963-1.6 5.152.228 6.87.457.98 1.6 1.471 2.742 1.471s2.284-.49 3.198-1.472l12.564-13.983c5.94 4.416 13.021 8.587 20.788 11.53l-4.797 17.418c-.685 2.699.686 5.397 3.198 6.133h1.37c2.057 0 3.884-1.472 4.341-3.68L52.6 42.83c3.655.736 7.538 1.227 11.422 1.227 3.883 0 7.767-.49 11.422-1.227l4.797 17.173c.457 2.208 2.513 3.68 4.34 3.68.457 0 .914 0 1.143-.246 2.513-.736 3.883-3.434 3.198-6.133l-4.797-17.172c7.767-2.944 14.848-7.114 20.788-11.53l12.336 13.738c.913.981 2.056 1.472 3.198 1.472s2.284-.49 3.198-1.472c1.828-1.963 1.828-4.906.228-6.87l-11.65-13.001c9.366-7.36 14.849-14.474 14.849-14.474z"/></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M84.068 23.784c-1.02 0-1.877-.32-2.572-.96a8.588 8.588 0 0 1-1.738-2.237 11.524 11.524 0 0 1-1.042-2.621c-.232-.895-.348-1.641-.348-2.238V0h.278c.834 0 1.622.085 2.363.256.742.17 1.645.575 2.711 1.214 1.066.64 2.363 1.535 3.892 2.686 1.53 1.15 3.453 2.664 5.77 4.54 2.502 2.045 4.494 3.771 5.977 5.178 1.483 1.406 2.618 2.6 3.406 3.58.787.98 1.274 1.812 1.46 2.494.185.682.277 1.278.277 1.79v2.046H84.068zM127.3 84.01c.278.682.464 1.535.556 2.558.093 1.023-.37 2.003-1.39 2.94-.463.427-.88.832-1.25 1.215-.372.384-.696.704-.974.96a6.69 6.69 0 0 1-.973.767l-11.816-10.741a44.331 44.331 0 0 0 1.877-1.535 31.028 31.028 0 0 1 1.737-1.406c1.112-.938 2.317-1.343 3.615-1.215 1.297.128 2.363.405 3.197.83.927.427 1.923 1.173 2.989 2.239 1.065 1.065 1.876 2.195 2.432 3.388zM78.23 95.902c2.038 0 3.752-.511 5.143-1.534l-26.969 25.83H18.037c-1.761 0-3.684-.47-5.77-1.407a24.549 24.549 0 0 1-5.838-3.709 21.373 21.373 0 0 1-4.518-5.306c-1.204-2.003-1.807-4.07-1.807-6.202V16.495c0-1.79.44-3.665 1.32-5.626A18.41 18.41 0 0 1 5.04 5.562a21.798 21.798 0 0 1 5.213-3.964C12.198.533 14.237 0 16.37 0h53.24v15.984c0 1.62.278 3.367.834 5.242a16.704 16.704 0 0 0 2.572 5.179c1.159 1.577 2.665 2.898 4.518 3.964 1.853 1.066 4.078 1.598 6.673 1.598h20.295v42.325L85.458 92.45c1.02-1.364 1.529-2.856 1.529-4.476 0-2.216-.857-4.113-2.572-5.69-1.714-1.577-3.776-2.366-6.186-2.366H26.1c-2.409 0-4.448.789-6.116 2.366-1.668 1.577-2.502 3.474-2.502 5.69 0 2.217.834 4.092 2.502 5.626 1.668 1.535 3.707 2.302 6.117 2.302h52.13zM26.1 47.951c-2.41 0-4.449.789-6.117 2.366-1.668 1.577-2.502 3.473-2.502 5.69 0 2.216.834 4.092 2.502 5.626 1.668 1.534 3.707 2.302 6.117 2.302h52.13c2.409 0 4.47-.768 6.185-2.302 1.715-1.534 2.572-3.41 2.572-5.626 0-2.217-.857-4.113-2.572-5.69-1.714-1.577-3.776-2.366-6.186-2.366H26.1zm52.407 64.063l1.807-1.663 3.476-3.196a479.75 479.75 0 0 0 4.587-4.284 500.757 500.757 0 0 1 5.004-4.667c3.985-3.666 8.48-7.758 13.485-12.276l11.677 10.741-13.485 12.404-5.004 4.603-4.587 4.22a179.46 179.46 0 0 0-3.267 3.068c-.88.853-1.367 1.322-1.46 1.407-.463.341-.973.703-1.529 1.087-.556.383-1.112.703-1.668.959-.556.256-1.413.575-2.572.959a83.5 83.5 0 0 1-3.545 1.087 72.2 72.2 0 0 1-3.475.895c-1.112.256-1.946.426-2.502.511-1.112.17-1.854.043-2.224-.383-.371-.426-.464-1.151-.278-2.174.092-.511.278-1.279.556-2.302.278-1.023.602-2.067.973-3.132l1.042-3.005c.325-.938.58-1.577.765-1.918a10.157 10.157 0 0 1 2.224-2.941z"/></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M38.47 52L52 38.462l-23.648-23.67L43.209 0H.035L0 43.137l14.757-14.865L38.47 52zm74.773 47.726L89.526 76 76 89.536l23.648 23.672L84.795 128h43.174L128 84.863l-14.757 14.863zM89.538 52l23.668-23.648L128 43.207V.038L84.866 0 99.73 14.76 76 38.472 89.538 52zM38.46 76L14.792 99.651 0 84.794v43.173l43.137.033-14.865-14.757L52 89.53 38.46 76z"/></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M1.482 70.131l36.204 16.18 69.932-65.485-61.38 70.594 46.435 18.735c1.119.425 2.397-.17 2.797-1.363v-.085L127.998.047 1.322 65.874c-1.12.597-1.519 1.959-1.04 3.151.32.511.72.937 1.2 1.107zm44.676 57.821L64.22 107.26l-18.062-7.834v28.527z"/></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M115.147.062a13 13 0 0 1 4.94.945c1.55.63 2.907 1.526 4.069 2.688a13.148 13.148 0 0 1 2.761 4.069c.678 1.55 1.017 3.245 1.017 5.086v102.3c0 3.681-1.187 6.733-3.56 9.155-2.373 2.422-5.352 3.633-8.937 3.633H12.992c-3.875 0-7-1.26-9.373-3.779-2.373-2.518-3.56-5.667-3.56-9.445V12.704c0-3.39 1.163-6.345 3.488-8.863C5.872 1.32 8.972.062 12.847.062h102.3zM81.434 109.047c1.744 0 3.003-.412 3.778-1.235.775-.824 1.163-1.914 1.163-3.27 0-1.26-.388-2.325-1.163-3.197-.775-.872-2.034-1.307-3.778-1.307H72.57c.097-.194.145-.485.145-.872V27.09h9.01c1.743 0 2.954-.436 3.633-1.308.678-.872 1.017-1.938 1.017-3.197 0-1.26-.34-2.325-1.017-3.197-.679-.872-1.89-1.308-3.633-1.308H46.268c-1.743 0-2.954.436-3.632 1.308-.678.872-1.018 1.938-1.018 3.197 0 1.26.34 2.325 1.018 3.197.678.872 1.889 1.308 3.632 1.308h8.138v72.075c0 .193.024.339.073.436.048.096.072.242.072.436H46.56c-1.744 0-3.003.435-3.778 1.307-.775.872-1.163 1.938-1.163 3.197 0 1.356.388 2.446 1.163 3.27.775.823 2.034 1.235 3.778 1.235h34.875z"/></svg>
\ No newline at end of file
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M83.287 103.01c-1.57-3.84-6.778-10.414-15.447-19.548-2.327-2.444-2.182-4.306-1.338-9.862v-.64c.553-3.81 1.513-6.05 14.313-8.087 6.516-1.018 8.203 1.57 10.589 5.178l.785 1.193a12.625 12.625 0 0 0 6.43 5.207c1.134.524 2.53 1.164 4.421 2.24 4.596 2.53 4.596 5.41 4.596 11.753v.727a26.91 26.91 0 0 1-5.178 17.454 59.055 59.055 0 0 1-19.025 11.026c3.49-6.546.814-14.313 0-16.553l-.146-.087zM64 5.12a58.502 58.502 0 0 1 25.484 5.818 54.313 54.313 0 0 0-12.859 10.327c-.93 1.28-1.716 2.473-2.472 3.579-2.444 3.694-3.637 5.352-5.818 5.614a25.105 25.105 0 0 1-4.219 0c-4.276-.29-10.094-.64-11.956 4.422-1.193 3.23-1.396 11.956 2.444 16.495.66 1.077.778 2.4.32 3.578a7.01 7.01 0 0 1-2.066 3.229 18.938 18.938 0 0 1-2.909-2.91 18.91 18.91 0 0 0-8.32-6.603c-1.25-.349-2.647-.64-3.985-.93-3.782-.786-8.03-1.688-9.019-3.812a14.895 14.895 0 0 1-.727-5.818 21.935 21.935 0 0 0-1.396-9.25 8.873 8.873 0 0 0-5.557-4.946A58.705 58.705 0 0 1 64 5.12zM0 64c0 35.346 28.654 64 64 64 35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64z"/></svg>
\ No newline at end of file
<?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="1566036191400" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5472" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M934.912 1016.832H192c-14.336 0-25.6-11.264-25.6-25.6v-189.44c0-14.336 11.264-25.6 25.6-25.6s25.6 11.264 25.6 25.6v163.84h691.712V64H217.6v148.48c0 14.336-11.264 25.6-25.6 25.6s-25.6-11.264-25.6-25.6v-174.08c0-14.336 11.264-25.6 25.6-25.6h742.912c14.336 0 25.6 11.264 25.6 25.6v952.832c0 14.336-11.264 25.6-25.6 25.6z" p-id="5473"></path><path d="M232.96 371.2h-117.76c-14.336 0-25.6-11.264-25.6-25.6s11.264-25.6 25.6-25.6h117.76c14.336 0 25.6 11.264 25.6 25.6s-11.264 25.6-25.6 25.6zM232.96 540.16h-117.76c-14.336 0-25.6-11.264-25.6-25.6s11.264-25.6 25.6-25.6h117.76c14.336 0 25.6 11.264 25.6 25.6s-11.264 25.6-25.6 25.6zM232.96 698.88h-117.76c-14.336 0-25.6-11.264-25.6-25.6s11.264-25.6 25.6-25.6h117.76c14.336 0 25.6 11.264 25.6 25.6s-11.264 25.6-25.6 25.6zM574.464 762.88c-134.144 0-243.2-109.056-243.2-243.2S440.32 276.48 574.464 276.48s243.2 109.056 243.2 243.2-109.056 243.2-243.2 243.2z m0-435.2c-105.984 0-192 86.016-192 192S468.48 711.68 574.464 711.68s192-86.016 192-192S680.448 327.68 574.464 327.68z" p-id="5474"></path><path d="M663.04 545.28h-87.04c-14.336 0-25.6-11.264-25.6-25.6s11.264-25.6 25.6-25.6h87.04c14.336 0 25.6 11.264 25.6 25.6s-11.264 25.6-25.6 25.6z" p-id="5475"></path><path d="M576 545.28c-14.336 0-25.6-11.264-25.6-25.6v-87.04c0-14.336 11.264-25.6 25.6-25.6s25.6 11.264 25.6 25.6v87.04c0 14.336-11.264 25.6-25.6 25.6z" p-id="5476"></path></svg>
\ No newline at end of file
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment