Commit 362f0198 authored by wty's avatar wty

修改服务器启动代码2

parent 955eabf8
{
"files": {
"main.css": "/static/css/main.63c35fee.chunk.css",
"main.js": "/static/js/main.bc381f9f.chunk.js",
"main.js.map": "/static/js/main.bc381f9f.chunk.js.map",
"main.js": "/static/js/main.66c1a8e2.chunk.js",
"main.js.map": "/static/js/main.66c1a8e2.chunk.js.map",
"runtime-main.js": "/static/js/runtime-main.4628cb4f.js",
"runtime-main.js.map": "/static/js/runtime-main.4628cb4f.js.map",
"static/css/2.1f1ea42e.chunk.css": "/static/css/2.1f1ea42e.chunk.css",
......@@ -24,6 +24,6 @@
"static/css/2.1f1ea42e.chunk.css",
"static/js/2.c0da6fb9.chunk.js",
"static/css/main.63c35fee.chunk.css",
"static/js/main.bc381f9f.chunk.js"
"static/js/main.66c1a8e2.chunk.js"
]
}
\ No newline at end of file
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" type="image/x-icon" href="https://yun.duiba.com.cn/logo.png"><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>Dui123工具箱-你的第一个工具箱何必是一个工具箱</title><link href="/static/css/2.1f1ea42e.chunk.css" rel="stylesheet"><link href="/static/css/main.63c35fee.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,i,a=r[0],c=r[1],l=r[2],s=0,p=[];s<a.length;s++)i=a[s],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&p.push(o[i][0]),o[i]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(f&&f(r);p.length;)p.shift()();return u.push.apply(u,l||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,a=1;a<t.length;a++){var c=t[a];0!==o[c]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={1:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,a=document.createElement("script");a.charset="utf-8",a.timeout=120,i.nc&&a.setAttribute("nonce",i.nc),a.src=function(e){return i.p+"static/js/"+({}[e]||e)+"."+{3:"4971491c"}[e]+".chunk.js"}(e);var c=new Error;u=function(r){a.onerror=a.onload=null,clearTimeout(l);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:a})}),12e4);a.onerror=a.onload=u,document.head.appendChild(a)}return Promise.all(r)},i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="/",i.oe=function(e){throw console.error(e),e};var a=this.webpackJsonpdui123=this.webpackJsonpdui123||[],c=a.push.bind(a);a.push=r,a=a.slice();for(var l=0;l<a.length;l++)r(a[l]);var f=c;t()}([])</script><script src="/static/js/2.c0da6fb9.chunk.js"></script><script src="/static/js/main.bc381f9f.chunk.js"></script></body></html>
\ No newline at end of file
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" type="image/x-icon" href="https://yun.duiba.com.cn/logo.png"><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><title>Dui123工具箱-你的第一个工具箱何必是一个工具箱</title><link href="/static/css/2.1f1ea42e.chunk.css" rel="stylesheet"><link href="/static/css/main.63c35fee.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,i,a=r[0],c=r[1],l=r[2],s=0,p=[];s<a.length;s++)i=a[s],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&p.push(o[i][0]),o[i]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(f&&f(r);p.length;)p.shift()();return u.push.apply(u,l||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,a=1;a<t.length;a++){var c=t[a];0!==o[c]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={1:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,a=document.createElement("script");a.charset="utf-8",a.timeout=120,i.nc&&a.setAttribute("nonce",i.nc),a.src=function(e){return i.p+"static/js/"+({}[e]||e)+"."+{3:"4971491c"}[e]+".chunk.js"}(e);var c=new Error;u=function(r){a.onerror=a.onload=null,clearTimeout(l);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:a})}),12e4);a.onerror=a.onload=u,document.head.appendChild(a)}return Promise.all(r)},i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="/",i.oe=function(e){throw console.error(e),e};var a=this.webpackJsonpdui123=this.webpackJsonpdui123||[],c=a.push.bind(a);a.push=r,a=a.slice();for(var l=0;l<a.length;l++)r(a[l]);var f=c;t()}([])</script><script src="/static/js/2.c0da6fb9.chunk.js"></script><script src="/static/js/main.66c1a8e2.chunk.js"></script></body></html>
\ No newline at end of file
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:
......@@ -21,7 +21,7 @@
},
"scripts": {
"dev": "react-scripts start",
"start": "node server/bin/www",
"start": "node server/app.js",
"build": "sh build.sh",
"buildWeb": "react-scripts build",
"test": "react-scripts test",
......
......@@ -9,12 +9,10 @@
name="description"
content="Web site created using create-react-app"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
......
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:
......@@ -3,44 +3,44 @@ const MYSQL = require('mysql')
const config = require('../config/dev.json')
const request = require('request')
//应用数据库
const getMysql = new Promise((resolve)=>{
request(config['remote_config_url'],{},(error, request, body)=>{
const data = JSON.parse(body)
const source = data['propertySources'][0]['source']
const username = source['apollo.mysql.duiba_web_tool.username']
const password = source['apollo.mysql.duiba_web_tool.password']
const database = source['apollo.mysql.duiba_web_tool.database']
const host = source['apollo.mysql.duiba_web_tool.url'].split(':')[0]
const port = source['apollo.mysql.duiba_web_tool.url'].split(':')[1]
const Mysql = MYSQL.createPool({
'host': host,
'port': port,
'user': username,
'password': password,
'database': database,
'connectionLimit': 1000
})
console.info('MysqlConfig:',Mysql.config)
console.info('OBJMysql',Mysql)
resolve(Mysql)
})
})
//本地数据库
// const getMysql = new Promise((resolve)=>{
//
// request(config['remote_config_url'],{},(error, request, body)=>{
// const data = JSON.parse(body)
// const source = data['propertySources'][0]['source']
// const username = source['apollo.mysql.duiba_web_tool.username']
// const password = source['apollo.mysql.duiba_web_tool.password']
// const database = source['apollo.mysql.duiba_web_tool.database']
// const host = source['apollo.mysql.duiba_web_tool.url'].split(':')[0]
// const port = source['apollo.mysql.duiba_web_tool.url'].split(':')[1]
// const Mysql = MYSQL.createPool({
// 'host': '127.0.0.1',
// 'port': 3306,
// 'user': 'wty',
// 'password': 'wty990215',
// 'database': 'dui123',
// 'host': host,
// 'port': port,
// 'user': username,
// 'password': password,
// 'database': database,
// 'connectionLimit': 1000
// })
// console.info('MysqlConfig:',Mysql.config)
// console.info('OBJMysql',Mysql)
// resolve(Mysql)
// })
// })
//本地数据库
const getMysql = new Promise((resolve)=>{
const Mysql = MYSQL.createPool({
'host': '127.0.0.1',
'port': 3306,
'user': 'wty',
'password': 'wty990215',
'database': 'dui123',
'connectionLimit': 1000
})
console.info('MysqlConfig:',Mysql.config)
console.info('OBJMysql',Mysql)
resolve(Mysql)
})
module.exports = getMysql
......
......@@ -12,17 +12,20 @@ const deleteRouter = require('./routes/delete')
const updateRouter = require('./routes/update')
const submitRouter = require('./routes/page')
const typeManage = require('./routes/typeManage')
const Eureka = require('eureka-node').default
const DockerApp = require('docker-app-node')
const pkg = require('./package.json')
const http = require("http");
const app = express();
global.domain = 'http://' + os.networkInterfaces()['eth0'][0]['address'] + ':3000'
console.info(global.domain)
// global.domain = 'http://127.0.0.1:3000'
const Eureka = require('eureka-node').default
const DockerApp = require('docker-app-node')
console.info(global.domain)
const pkg = require('./package.json')
const dockerApp = new DockerApp({
app,
......@@ -44,23 +47,28 @@ global.eureka.start().then(() => {
})
})
app.use((req, res, next) => {
const url = req.url
const header = {
'Access-Control-Allow-Credentials': true,
'Access-Control-Allow-Origin': req.headers.origin || '*',
'Access-Control-Allow-Headers': 'X-Requested-With,Content-Type',
'Access-Control-Allow-Methods': 'PUT,POST,GET,DEconstE,OPTIONS',
// 'Access-Control-Allow-Credentials': true,
// 'Access-Control-Allow-Origin': req.headers.origin || '*',
// 'Access-Control-Allow-Headers': 'X-Requested-With,Content-Type',
// 'Access-Control-Allow-Methods': 'PUT,POST,GET,DEconstE,OPTIONS',
'Content-Type': 'application/json; charset=utf-8'
}
if (url.includes('static')){
header["Content-Type"] = 'text/html; charset=utf-8'
console.log('static!!!!!!')
if (url.includes('html')) header["Content-Type"] = 'text/html; charset=utf-8'
else if (url.includes('css')){
console.log('css!!!!!!!!!')
header["Content-Type"] = 'text/css; charset=utf-8'
}
else if(url.includes('js')) header["Content-Type"] = ' text/javascrpt; charset=utf-8'
}
//设置相应头
console.log(header)
res.set(header)
req.method === 'OPTIONS' ? res.status(204).end() : next()
})
......@@ -70,8 +78,6 @@ app.use((req, res, next) => {
app.use(bodyParser.urlencoded({extended: false}))
app.use(bodyParser.json())
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({extended: false}));
app.use(cookieParser());
app.engine('html', engines.mustache)
app.set('view engine', 'html')
......@@ -96,4 +102,7 @@ app.use('/page', submitRouter)
app.use('/typeManage', typeManage)
module.exports = app;
// let server = http.createServer(app);
// server.listen(3000)
// module.exports = app;
#!/usr/bin/env node
/**
* Module dependencies.
*/
let app = require('../app');
let debug = require('debug')('expressserver:server');
let http = require('http');
/**
* Get port from environment and store in Express.
*/
let port = normalizePort(process.env.PORT || '3001');
app.set('port', port);
console.info('port',port)
/**
* Create HTTP server.
*/
let server = http.createServer(app);
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
/**
* Normalize a port into a number, string, or false.
*/
function normalizePort(val) {
let port = parseInt(val, 10);
if (isNaN(port)) {
// named pipe
return val;
}
if (port >= 0) {
// port number
return port;
}
return false;
}
/**
* Event listener for HTTP server "error" event.
*/
function onError(error) {
if (error.syscall !== 'listen') {
throw error;
}
let bind = typeof port === 'string'
? 'Pipe ' + port
: 'Port ' + port;
// handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges');
process.exit(1);
break;
case 'EADDRINUSE':
console.error(bind + ' is already in use');
process.exit(1);
break;
default:
throw error;
}
}
/**
* Event listener for HTTP server "listening" event.
*/
function onListening() {
let addr = server.address();
let bind = typeof addr === 'string'
? 'pipe ' + addr
: 'port ' + addr.port;
debug('Listening on ' + bind);
}
......@@ -3,8 +3,8 @@
"version": "0.0.0",
"private": true,
"scripts": {
"dev": "nodemon bin/www",
"start": "node bin/www"
"dev": "nodemon app.js",
"start": "node app.js"
},
"dependencies": {
"@types/express": "^4.17.13",
......
{
"files": {
"main.css": "/static/css/main.63c35fee.chunk.css",
"main.js": "/static/js/main.bc381f9f.chunk.js",
"main.js.map": "/static/js/main.bc381f9f.chunk.js.map",
"main.js": "/static/js/main.66c1a8e2.chunk.js",
"main.js.map": "/static/js/main.66c1a8e2.chunk.js.map",
"runtime-main.js": "/static/js/runtime-main.4628cb4f.js",
"runtime-main.js.map": "/static/js/runtime-main.4628cb4f.js.map",
"static/css/2.1f1ea42e.chunk.css": "/static/css/2.1f1ea42e.chunk.css",
......@@ -24,6 +24,6 @@
"static/css/2.1f1ea42e.chunk.css",
"static/js/2.c0da6fb9.chunk.js",
"static/css/main.63c35fee.chunk.css",
"static/js/main.bc381f9f.chunk.js"
"static/js/main.66c1a8e2.chunk.js"
]
}
\ No newline at end of file
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" type="image/x-icon" href="https://yun.duiba.com.cn/logo.png"><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>Dui123工具箱-你的第一个工具箱何必是一个工具箱</title><link href="/static/css/2.1f1ea42e.chunk.css" rel="stylesheet"><link href="/static/css/main.63c35fee.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,i,a=r[0],c=r[1],l=r[2],s=0,p=[];s<a.length;s++)i=a[s],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&p.push(o[i][0]),o[i]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(f&&f(r);p.length;)p.shift()();return u.push.apply(u,l||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,a=1;a<t.length;a++){var c=t[a];0!==o[c]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={1:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,a=document.createElement("script");a.charset="utf-8",a.timeout=120,i.nc&&a.setAttribute("nonce",i.nc),a.src=function(e){return i.p+"static/js/"+({}[e]||e)+"."+{3:"4971491c"}[e]+".chunk.js"}(e);var c=new Error;u=function(r){a.onerror=a.onload=null,clearTimeout(l);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:a})}),12e4);a.onerror=a.onload=u,document.head.appendChild(a)}return Promise.all(r)},i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="/",i.oe=function(e){throw console.error(e),e};var a=this.webpackJsonpdui123=this.webpackJsonpdui123||[],c=a.push.bind(a);a.push=r,a=a.slice();for(var l=0;l<a.length;l++)r(a[l]);var f=c;t()}([])</script><script src="/static/js/2.c0da6fb9.chunk.js"></script><script src="/static/js/main.bc381f9f.chunk.js"></script></body></html>
\ No newline at end of file
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" type="image/x-icon" href="https://yun.duiba.com.cn/logo.png"><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><title>Dui123工具箱-你的第一个工具箱何必是一个工具箱</title><link href="/static/css/2.1f1ea42e.chunk.css" rel="stylesheet"><link href="/static/css/main.63c35fee.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,i,a=r[0],c=r[1],l=r[2],s=0,p=[];s<a.length;s++)i=a[s],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&p.push(o[i][0]),o[i]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(f&&f(r);p.length;)p.shift()();return u.push.apply(u,l||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,a=1;a<t.length;a++){var c=t[a];0!==o[c]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={1:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,a=document.createElement("script");a.charset="utf-8",a.timeout=120,i.nc&&a.setAttribute("nonce",i.nc),a.src=function(e){return i.p+"static/js/"+({}[e]||e)+"."+{3:"4971491c"}[e]+".chunk.js"}(e);var c=new Error;u=function(r){a.onerror=a.onload=null,clearTimeout(l);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:a})}),12e4);a.onerror=a.onload=u,document.head.appendChild(a)}return Promise.all(r)},i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="/",i.oe=function(e){throw console.error(e),e};var a=this.webpackJsonpdui123=this.webpackJsonpdui123||[],c=a.push.bind(a);a.push=r,a=a.slice();for(var l=0;l<a.length;l++)r(a[l]);var f=c;t()}([])</script><script src="/static/js/2.c0da6fb9.chunk.js"></script><script src="/static/js/main.66c1a8e2.chunk.js"></script></body></html>
\ No newline at end of file
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:
This source diff could not be displayed because it is too large. You can view the blob instead.
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
/*!
Copyright (c) 2018 Jed Watson.
Licensed under the MIT License (MIT), see
http://jedwatson.github.io/classnames
*/
/** @license React v0.20.2
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v16.13.1
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v17.0.2
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v17.0.2
* react-jsx-runtime.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v17.0.2
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
//! moment.js
//! moment.js locale configuration
This source diff could not be displayed because it is too large. You can view the blob instead.
{"version":3,"sources":["dataCenter/reducer.js","config/apiConfig.js","dataCenter/action.js","dataCenter/Root.jsx","static/logo.png","component/ToolType/ToolType.jsx","static/setting.svg","static/trash.svg","static/dragIcon.svg","modal/ToolModal.jsx","component/ContentAdmin/ContentItemAdmin.jsx","component/Content/ContentItem.jsx","static/followed.png","static/notFollow.png","component/ContentAdmin/Content.jsx","modal/PublishModal.jsx","modal/TypeModal.jsx","modal/PageModal.jsx","modal/RemoveType.jsx","component/AdminIndex/AdminIndex.jsx","page/indexAdmin/index.jsx","component/Content/Content.jsx","page/index/index.jsx","page/login/login.jsx","utils/hook.js","App.js","reportWebVitals.js","index.js"],"names":["initDataCenter","toolBox","type","childType","userInfo","needUpdateIndex","type_id","child_type_id","deepFreeze","obj","Object","getOwnPropertyNames","forEach","name","prop","freeze","dataReducer","state","action","console","table","assign","data","apiConfig","domain","window","location","hostname","CHANGE_TYPE","Root","createContext","PopContext","DataCenter","props","useReducer","dataCenter","dispatch","Provider","value","fetchData","path","requestData","dataName","fetch","paramsStr","keys","map","v","i","join","log","generateUrl","credentials","then","res","json","success","catch","e","error","children","ChildTypeItem","useContext","child_type_name","classNameArr","push","className","onClick","CHANGE_CHILD_TYPE","ToolType","length","type_name","Option","Select","ToolModal","visible","onCancel","Form","useForm","form","useEffect","title","okText","cancelText","onOk","validateFields","values","input","toolbox_name","toolbox_icon","icon","toolbox_desc","depict","toolbox_url","url","message","onCreate","info","labelCol","span","wrapperCol","initialValues","Item","label","rules","required","placeholder","onChange","setFieldsValue","allowClear","ContentItemAdmin","useState","setVisible","showPop","toolbox_id","follow","itemIcon","setItemIcon","jumpUrl","href","src","dragIcon","alt","setting","trash","deleteItem","onError","ContentItem","isFollow","setIsFollow","includes","_follow","slice","index","indexOf","splice","JSON","stringify","uid","Content","filter","PublishModal","code","setcode","page_name","setPageName","oldCode","method","headers","body","page_id","response","width","defaultValue","target","editor","options","styleActiveLine","lineNumbers","theme","tabSize","keyMap","mode","smartIndent","lineWrapping","autofocus","TypeModal","Tabs","TabPane","queryData","React","setValue","isRemove","modifier","Group","hasFeedback","PageModal","onPublish","publish","setPublish","pageData","setpageData","columns","dataIndex","align","render","text","record","size","pageUrl","key","dataSource","queryPage","pagination","pageSize","RemoveType","typeModal","setTypeModal","typeData","settypeData","oldData","setoldData","changeData","list","cb","item","newData","onConfirm","AdminIndex","pageModal","setpageModal","removeType","setremoveType","Index","history","useHistory","setPop","_typeId","hidePop","popName","uname","logo","height","frameBorder","scrolling","hspace","Login","needLogin","setNeedLogin","setInput","setInputData","useCallback","useFormState","getUser","doLogin","App","exact","component","IndexAdmin","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","moment","locale","ReactDOM","StrictMode","zhCN","document","getElementById"],"mappings":"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","file":"static/js/main.003ab051.chunk.js","sourcesContent":["const initDataCenter = {\r\n toolBox: null,\r\n type: null,\r\n childType: null,\r\n userInfo: null,\r\n needUpdateIndex: false,\r\n type_id: 'follow',\r\n child_type_id: 'all'\r\n}\r\n\r\n/**\r\n * deepFreeze()\r\n * @param obj\r\n * @returns {unknown[]}\r\n */\r\nfunction deepFreeze(obj) {\r\n // 取回定义在obj上的属性名\r\n let propNames = Object.getOwnPropertyNames(obj);\r\n\r\n // 在冻结自身之前冻结属性\r\n propNames.forEach(function (name) {\r\n let prop = obj[name];\r\n\r\n // 如果prop是个对象,冻结它\r\n if (typeof prop == 'object' && prop !== null)\r\n deepFreeze(prop);\r\n });\r\n\r\n // 冻结自身(no-op if already frozen)\r\n return Object.freeze(obj);\r\n}\r\n\r\n//任何修改原始对象的操作都是禁止的!\r\ndeepFreeze(initDataCenter)\r\n\r\nconst dataReducer = (state, action) => {\r\n // console.log(action)\r\n console.table(action,['dataCenter的dispatch'])\r\n switch (action.type) {\r\n case 'UPDATE_DATA':\r\n return Object.assign({}, state, {\r\n ...action.data\r\n })\r\n case 'NEED_UPDATE_INDEX':\r\n return Object.assign({}, state, {needUpdateIndex: !state.needUpdateIndex})\r\n case 'CHANGE_TYPE':\r\n return Object.assign({}, state, {type_id: action.type_id})\r\n case 'CHANGE_CHILD_TYPE':\r\n return Object.assign({}, state, {child_type_id: action.child_type_id})\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport {\r\n initDataCenter,\r\n dataReducer,\r\n}\r\n","const apiConfig = {\r\n domain: 'http://' + window.location.hostname + ':3000',\r\n // domain: 'http://127.0.0.1:3001',\r\n}\r\n\r\nexport default apiConfig\r\n","const UPDATE_DATA = data => ({type: 'UPDATE_DATA', data: {...data}})\r\nconst NEED_UPDATE_INDEX = () => ({type: 'NEED_UPDATE_INDEX'})\r\nconst CHANGE_TYPE = type_id => ({type: 'CHANGE_TYPE', type_id: type_id})\r\nconst CHANGE_CHILD_TYPE = child_type_id => ({type: 'CHANGE_CHILD_TYPE', child_type_id: child_type_id})\r\n\r\nexport {\r\n UPDATE_DATA,\r\n NEED_UPDATE_INDEX,\r\n CHANGE_TYPE,\r\n CHANGE_CHILD_TYPE\r\n}\r\n","import React, {createContext, useReducer} from \"react\";\r\nimport {dataReducer, initDataCenter} from \"./reducer\";\r\nimport apiConfig from \"../config/apiConfig\";\r\nimport {UPDATE_DATA} from \"./action\";\r\n\r\nconst Root = createContext({})\r\nconst PopContext = createContext({})\r\n\r\nfunction DataCenter(props) {\r\n const [dataCenter, dispatch] = useReducer(dataReducer, initDataCenter, () => {\r\n return initDataCenter\r\n })\r\n\r\n const generateUrl = (path, requestData) => {\r\n if (requestData) {\r\n const keyArr = Object.keys(requestData)\r\n const paramsStr = keyArr.map((v, i) => {\r\n if (i === 0) {\r\n return '?' + v + '=' + requestData[v]\r\n } else {\r\n return '&' + v + '=' + requestData[v]\r\n }\r\n }).join('')\r\n console.log('发送请求:', apiConfig.domain + path + paramsStr)\r\n return apiConfig.domain + path + paramsStr\r\n }\r\n return apiConfig.domain + path\r\n }\r\n\r\n const fetchData = (path, requestData, dataName) =>\r\n fetch(generateUrl(path, requestData), {credentials: 'include'})\r\n .then(res => res.json())\r\n .then(res => {\r\n console.log(res);\r\n if (res.success) {\r\n !!dataName && dispatch(UPDATE_DATA({[dataName]: res.data}))\r\n } else {\r\n throw res\r\n }\r\n return res\r\n })\r\n .catch(e => {\r\n console.error(e)\r\n throw e\r\n })\r\n\r\n\r\n return (\r\n <Root.Provider value={{dataCenter, dispatch, fetchData}}>\r\n {\r\n props.children\r\n }\r\n </Root.Provider>\r\n )\r\n}\r\n\r\nexport {\r\n Root,\r\n PopContext,\r\n}\r\nexport default DataCenter\r\n\r\n","export default __webpack_public_path__ + \"static/media/logo.c725c5d1.png\";","import './ToolType.scss'\r\nimport {useContext} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\nimport {CHANGE_CHILD_TYPE, CHANGE_TYPE} from \"../../dataCenter/action\";\r\n\r\nconst ChildTypeItem = props => {\r\n const {dataCenter, dispatch} = useContext(Root)\r\n const {child_type_id, child_type_name} = props\r\n const classNameArr = ['child-type-item']\r\n if (child_type_id === dataCenter.child_type_id) {\r\n classNameArr.push('child-type-item-selected')\r\n }\r\n const handleClick = () => {\r\n console.log(child_type_id)\r\n dispatch(CHANGE_CHILD_TYPE(child_type_id))\r\n }\r\n return (\r\n <div className={classNameArr.join(' ')} onClick={handleClick}>{child_type_name}</div>\r\n )\r\n}\r\n\r\n\r\nfunction ToolType(props) {\r\n const {dataCenter, dispatch} = useContext(Root)\r\n return (\r\n <>\r\n <div className=\"tab-tool-type\">\r\n <div className={dataCenter.type_id === 'follow' ? 'item-tool-type item-tool-type-selected' : 'item-tool-type'}\r\n onClick={() => dispatch(CHANGE_TYPE('follow'))}>我的收藏\r\n </div>\r\n {\r\n dataCenter?.type?.length > 0 && dataCenter.type.map(v => {\r\n const classNameArr = ['item-tool-type ']\r\n if (v[\"type_id\"] === dataCenter.type_id) classNameArr.push('item-tool-type-selected')\r\n return (\r\n <div key={v[\"type_id\"]} className={classNameArr.join('')}\r\n onClick={() => dispatch(CHANGE_TYPE( v[\"type_id\"]))}>{v.type_name}</div>\r\n )\r\n })\r\n }\r\n </div>\r\n <div className=\"child-type\">\r\n <ChildTypeItem key={'all'} child_type_id={'all'} child_type_name={'全部'}/>\r\n {\r\n dataCenter?.childType?.length > 0 && dataCenter?.childType.map(v => {\r\n return (\r\n <ChildTypeItem key={v.child_type_id} child_type_id={v.child_type_id}\r\n child_type_name={v.child_type_name}/>\r\n )\r\n })\r\n }\r\n </div>\r\n </>\r\n )\r\n}\r\n\r\nexport default ToolType\r\n","export default __webpack_public_path__ + \"static/media/setting.6a716d85.svg\";","export default __webpack_public_path__ + \"static/media/trash.780a90e8.svg\";","export default __webpack_public_path__ + \"static/media/dragIcon.268403b1.svg\";","import React, { useState, useEffect, useContext } from 'react';\r\nimport { Root } from \"../dataCenter/Root\";\r\nimport { Button, Modal, Form, Input, Radio, Select, message } from 'antd';\r\nimport { NEED_UPDATE_INDEX } from \"../dataCenter/action\";\r\nconst { Option } = Select;\r\nconst ToolModal = ({ visible, onCancel, data }) => {\r\n const [form] = Form.useForm();\r\n const { fetchData, dataCenter, dispatch } = useContext(Root)\r\n const formItemLayout = {\r\n labelCol: { span: 4 },\r\n wrapperCol: { span: 18 },\r\n };\r\n const onCreate = (values) => {\r\n let input = {\r\n toolbox_name: values.name,\r\n toolbox_icon: values.icon,\r\n toolbox_desc: values.depict,\r\n toolbox_url: values.url,\r\n\r\n }\r\n if (!data) {\r\n input = {\r\n ...input,\r\n type_id: values.type,\r\n child_type_id: values.childType\r\n }\r\n console.log(input);\r\n fetchData('/add/addToolBox', input)\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('新建成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n onCancel()\r\n } else {\r\n message.error('新建失败')\r\n }\r\n })\r\n\r\n } else {\r\n fetchData('/update/updateToolBox', input)\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('修改成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n onCancel()\r\n } else {\r\n message.error('新建失败')\r\n }\r\n })\r\n }\r\n };\r\n\r\n const onGenderChange = (value) => {\r\n form.setFieldsValue({\r\n type: value,\r\n });\r\n fetchData('/query/queryChildType', { type_id: value }, 'childType')\r\n .then((res) => {\r\n\r\n console.log(res);\r\n })\r\n console.log(dataCenter);\r\n };\r\n const onChildGenderChange = (value) => {\r\n form.setFieldsValue({\r\n childType: value,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n dataCenter?.type && fetchData('/query/queryChildType', { type_id: dataCenter?.type[0]?.type_id }, 'childType')\r\n .then((res) => {\r\n\r\n console.log(res);\r\n })\r\n }, [])\r\n\r\n return (\r\n <Modal\r\n visible={visible}\r\n title={data ? '修改工具箱' : '新建工具箱'}\r\n okText=\"确定\"\r\n cancelText=\"取消\"\r\n onCancel={onCancel}\r\n onOk={() => {\r\n form\r\n .validateFields()\r\n .then((values) => {\r\n // form.resetFields();\r\n onCreate(values);\r\n })\r\n .catch((info) => {\r\n console.log('Validate Failed:', info);\r\n });\r\n }}\r\n >\r\n <Form\r\n form={form}\r\n // layout=\"vertical\"\r\n {...formItemLayout}\r\n name=\"form_in_modal\"\r\n initialValues={data ? {\r\n name: data.toolbox_name,\r\n icon: data.toolbox_icon,\r\n url: data.toolbox_url,\r\n depict: data.toolbox_desc,\r\n } : { type: dataCenter?.type && dataCenter?.type[0]?.type_id }}\r\n >\r\n <Form.Item\r\n name=\"name\"\r\n label=\"名称\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入名称!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入名称\" />\r\n </Form.Item>\r\n <Form.Item name=\"icon\"\r\n label=\"图标\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入图标url!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入图标url\" />\r\n </Form.Item>\r\n <Form.Item\r\n name=\"depict\"\r\n label=\"描述\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入描述!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入描述\" />\r\n </Form.Item>\r\n <Form.Item\r\n name=\"url\"\r\n label=\"链接\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入链接!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入链接\" />\r\n </Form.Item>\r\n {!data && <Form.Item\r\n name=\"type\"\r\n label=\"类型\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请选择类型!',\r\n },\r\n ]}\r\n >\r\n <Select\r\n placeholder=\"请选择类型\"\r\n onChange={onGenderChange}\r\n // allowClear\r\n >\r\n {\r\n dataCenter?.type?.length && dataCenter?.type.map(v => {\r\n return (\r\n <Option key={v.type_id} value={v.type_id}>{v.type_name}</Option>\r\n )\r\n })\r\n }\r\n\r\n </Select>\r\n </Form.Item>}\r\n {!data && dataCenter?.childType && <Form.Item\r\n name=\"childType\"\r\n label=\"子类型\"\r\n >\r\n <Select\r\n placeholder=\"请选择子类型\"\r\n onChange={onChildGenderChange}\r\n allowClear\r\n >\r\n {\r\n dataCenter?.childType?.length && dataCenter?.childType.map(v => {\r\n return (\r\n <Option key={v.child_type_id} value={v.child_type_id}>{v.child_type_name}</Option>\r\n )\r\n })\r\n }\r\n\r\n </Select>\r\n </Form.Item>}\r\n </Form>\r\n </Modal>\r\n );\r\n};\r\nexport default ToolModal\r\n","import './ContentItem.scss'\r\nimport notFollow from '../../static/notFollow.png'\r\nimport followed from '../../static/followed.png'\r\nimport setting from '../../static/setting.svg'\r\nimport trash from '../../static/trash.svg'\r\nimport dragIcon from '../../static/dragIcon.svg'\r\nimport {useContext, useState} from \"react\";\r\nimport {PopContext, Root} from \"../../dataCenter/Root\";\r\nimport ToolModal from \"../../modal/ToolModal\"\r\n\r\nfunction ContentItemAdmin(props) {\r\n const [visible, setVisible] = useState(false)\r\n\r\n const {fetchData} = useContext(Root)\r\n const {showPop} = useContext(PopContext)\r\n\r\n const {toolbox_icon, toolbox_name, toolbox_desc, toolbox_url, follow, toolbox_id} = props.value\r\n\r\n const [itemIcon, setItemIcon] = useState(toolbox_icon)\r\n\r\n const jumpUrl = url => {\r\n window.location.href = url\r\n }\r\n const deleteItem = toolbox_id => {\r\n fetchData('/delete/deleteToolBoxById', {toolbox_id})\r\n }\r\n\r\n return (\r\n <div className=\"content-item\">\r\n <div className=\"content-adminTool\">\r\n <img src={dragIcon} alt=\"\"/>\r\n <img src={setting} alt=\"\" onClick={() => setVisible(true)}/>\r\n <img src={trash} alt=\"\" onClick={() => deleteItem(toolbox_id)}/>\r\n </div>\r\n <div className=\"item-icon\" onClick={() => jumpUrl(toolbox_url)}>\r\n {\r\n !itemIcon && <div className=\"defaultIcon\">{toolbox_name[0]}</div>\r\n }\r\n {\r\n itemIcon && <img src={itemIcon} alt='' onError={e => setItemIcon(null)}/>\r\n }\r\n </div>\r\n <div className=\"item-name\" onClick={() => jumpUrl(toolbox_url)}>{toolbox_name}</div>\r\n <div className=\"item-desc\">{toolbox_desc}</div>\r\n <a className='item-url' href={toolbox_url}>{toolbox_url}</a>\r\n {/*<div className=\"follow\">*/}\r\n {/* <img className='icon-follow' src={follow ? followed : notFollow} alt=\"\"/>*/}\r\n {/* 收藏*/}\r\n {/*</div>*/}\r\n {visible && <ToolModal\r\n visible={visible}\r\n onCancel={() =>\r\n setVisible(false)\r\n }\r\n data={props.value}\r\n />}\r\n </div>\r\n\r\n )\r\n}\r\n\r\nexport default ContentItemAdmin\r\n","import './ContentItem.scss'\r\nimport notFollow from '../../static/notFollow.png'\r\nimport followed from '../../static/followed.png'\r\nimport {useContext, useEffect, useState} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\n\r\nfunction ContentItem(props) {\r\n const {dataCenter, fetchData} = useContext(Root)\r\n const {toolbox_icon, toolbox_name, toolbox_desc, toolbox_url, toolbox_id} = props.value\r\n const [isFollow, setIsFollow] = useState(false)\r\n const [itemIcon, setItemIcon] = useState(toolbox_icon)\r\n\r\n const jumpUrl = url => window.location.href = url\r\n\r\n const follow = () => {\r\n const _follow = dataCenter.userInfo.follow.slice()\r\n if (!isFollow) {\r\n _follow.push(toolbox_id)\r\n } else {\r\n const index = _follow.indexOf(toolbox_id)\r\n _follow.splice(index, 1)\r\n }\r\n console.log( {follow: JSON.stringify(_follow), uid: dataCenter.userInfo.uid})\r\n fetchData('/users/follow', {follow: JSON.stringify(_follow), uid: dataCenter.userInfo.uid})\r\n .then(() => fetchData('/users/getUser', {uid: 100001}, 'userInfo'))\r\n }\r\n\r\n useEffect(() => {\r\n if (dataCenter.userInfo?.follow.includes(toolbox_id)) {\r\n setIsFollow(true)\r\n } else {\r\n setIsFollow(false)\r\n }\r\n }, [dataCenter.toolBox, dataCenter.userInfo])\r\n\r\n return (\r\n <div className=\"content-item\">\r\n <div className=\"item-icon\" onClick={() => jumpUrl(toolbox_url)}>\r\n {\r\n !itemIcon && <div className=\"defaultIcon\">{toolbox_name[0]}</div>\r\n }\r\n {\r\n itemIcon && <img src={itemIcon} alt='' onError={e => setItemIcon(null)}/>\r\n }\r\n\r\n </div>\r\n <div className=\"item-name\" onClick={() => jumpUrl(toolbox_url)}>{toolbox_name}</div>\r\n <div className=\"item-desc\">{toolbox_desc}</div>\r\n <a className='item-url' href={toolbox_url}>{toolbox_url}</a>\r\n <div className=\"follow\">\r\n <img className='icon-follow' src={isFollow ? followed : notFollow} alt=\"\" onClick={() => follow()}/>\r\n 收藏\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default ContentItem\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOUAAADICAYAAAAX+yb+AAAAAXNSR0IArs4c6QAAFLJJREFUeF7tnXu0XHV1x7/7zJ0zSaFd6FIK3jtnAiSZmfDSNoWKdJkUUJCwAHkUVGihFVZBeUgBQbvABJSHj6SiFKo8VSywsPIWQkkVNS2mIJDMzA1g7pnw1oW1Ae6cuffsrjP3phBM7pzH73cec/b8m/377r0/v/nmnHvmnH0I8hECQiBVBChV1UgxQkAIQEwpXwIhkDICYsqUbYiUIwTElPIdEAIpIyCmTNmGSDlCQEwp3wEhkDICuTJla2T2MBe6Vbg0H4QqmKoAz97mnhD9GuCNTMZzcPk5A+5GoqHnyBx/bt7T6KRsL1NVzvq5+CPumsNgY3iSJ0cINAyDh5lphJj/cAbmv2FgfYF5lInXF4oTo3Ofwcupak5zMQNrykZlaD+DjYPAqLqEKgHzAWyviicBa5lptWu4qw0Xj7/Q7j6+GJhQpZ8lnfYIZm/C0L5kGPsQY18m7AtgWGEP/0PAKDPWE2HUdXFHfaPzpEL9VEkNjCmfLJd2K8I9CEQHAlgM4J0xk/4dgf+LmR5n0Mp6u/OjmPPHmq5VKR3iuu6BBhkLGfxnALZ9xqGnsvUA7mDXvb++cWKVnhTJqGbalM2R0sGGwYvcKRPukwzCrWclYB0D97Dr3lPfOPEfaaotbC09I7J7CECHEDA3rI7qdQS0GXQPwA85cB7ay8arqnPEqZdJU45apSUu+BQAh8UJK0Ku/wbD+9LcWWt3fxFBJ/alaTXiDCBeJOB6d5JuqD/XGY0dmIKEmTJlBs24tS36jgvjxgX2+EoF+6dNommZR4PxtyAcrC2JRmEGXjeYr2fghqz9R5gJUw6IGbf4ChJwNwM31mzndo3fzcDS66ziCQbjZBAtCrw4vQtuBrnX18YmHk5viW9WlmpTtqxZBzDcMzN0mhpiz+kRl9wbF4x1vxVisbIlDav4SYPpZCb8uTLR9An9EOSuSLs5U2nK1nvwLrdYvICYPpO+fdVTEQN3EfPSuE+11s4pvrfAdBEYR+jpLIWqjEs27egsXbgG3RRWl76nRFpW8UQGXQCglkZgOmvy/g4iYGnNdi7XmWez9jqrdJYBvgjADnHkS1mOnzHT0jT+dJWaI2VruLg3F3pm/KuUbV7s5RD4wQnmZbu3J36iI3kuj47bBnnF5BvOst1fwSYdrMNopsKUDcu8gADPkNu+/SpMd9le43pHzartfEFlGzk/Om4L5RowLa21O3eqZB1WK1FT/nJ49siswuTVDCwJ20AO1t1as53IZw8PA0M7W6WrAD41B8zCtnh5zXY+G3axqnWJmXJ0pLjvpEHfImAPVc0MsM5TBozD59vjz4bpcd1IaZ5h4DqA9w+zPmdrbq/ZzjFJ9pyIKRsV8yhipOr3uSQ3wWdut8D0kXkB76ltlEsfIuKBvg/XJz/fYQQ8xjy0pNZ+/XnfixQGxm7KRtm8kAiXKuwhV1IMOqNud77up+lGpfiVPP2s5IdJgJjfMbkH18cmfh5gjZLQWE3ZsoorGXSAkspzLMKMz9XbzhdnQtAsFx8esLtyEtlxYhxfbTvfjzN5bKZsWibH2djg56Iza3bnn7bWZ8MqPkjoPcImHwUEGLigbjuXKZDyJRGLKVuW2WZgxFdFEuSfAPNptXb36rcuaFrmrQASvVDhv4HsRBL4r6t296Y4KtZuykbZXE1TT6LLRwMBYjqn2u581ZNuWaVreOqRNvloIeDuX7MnfqpF+i2iWk3ZtEzvCutRupvIvT7j86DejRfn556FZgDsYi/do0i0mbJpFVcAdIZmRiIvBOIm8KpZMN6366/Gx3Ql1mLKZqV0Lpiv0FW06AqBZAnQT2ajc3hF09gR5aZsVMyPEeO7yUKT7EJAO4G7qrZzJAGTqjMpNeWoNWtXF+6/A6ioLlT0hEDaCBDx16pjXeXP/Co1ZdMybwbwibTBk3qEgC4CDDqsbnfuVqmvzJQNq3gKga5RWZxoCYEMEHh004SzaOHzeF1VrUpMOVox6y7DO23dSVVhoiMEMkRA6SNfSkwpd5Fk6OsjpWohwEwfrrc7D6gQj2zKhlX6NIG3eg+migJFQwhkgwA9UrU7i1RcjY1kyt6sF5e809Z3ZAOcVCkE9BFgYGnddrxBZJE+kUzZrJjXgXFSpApksRAYIAIMXli3u2uitBTalI2RoUVkGJmYOB0FkKwVAkEIEOjaqt2JNAcptCmblnkbgKODFCyxQiAPBKIeLUOZsmGVDiNwKsbx5WGTpcdsEYh6tAxpSvNHBHwoW6ikWiEQH4EoR8vApmxWzI+D8Z342pNMQiB7BKIcLYOb0jJ/BuD92cMkFQuBeAmEPVoGMmXLKp7AoFjmlMSLT7IJAfUEwh4tA5lSxnuo3zhRHGQC/HLJ6FZ22YDxIF36NuXakdLcgsENAENBEkisEMg1AabDg744yLcpG5XSOcT85VwDluaFQGACvKJmd88Kssy3KZtW6ccA/0UQcYkVAnknwMBTddvZMwgHX6ZcXxl6/yQb3lVX+QgBIRCQABmoVzc4Tb/LfJly1DIvc2WmqF+mEicEtiDggs5eYHeW+8Xiy5Qty2wwUPMrKnFCQAi8hQDh/tqYc4hfJn1N2Rgx9yQDT/gVlDghIAR+n0DNdvp6bfOqvoEyx1W+YkIgOgEDxm5+38Td35SW+SUCEn8PfHQsoiAEkiNgwDhovj2+0k8FfkwpT4T4ISkxQmAGAgw+tW53r/UDqa8pm5b5GwDv9CMmMUJACGyTgO8xlDOa8pmR0ryuwaMCWggIgcgEbqvZzrF+VGY05bqyeZxBuMWPkMQIASEwI4E1NdtZ6IfRjKZsls2lIPyjHyGJEQJCYEYCr9Zsx9efgTOb0jK9d0yeK7CFgBCITsDvb5UzmrJRLn6diD4VvRxREAJCQIkpm1bpXwD+O8EpBIRAdAKKTGl6A7I+Hr0cURACQkCVKW8HcJTgFAJCIDoBVaa8B8BHopcjCkJACCgyZfEhgP5ScAoBIRCdgCJTmt6rCQ6LXo4oCAEhoMSULcu8kYETBacQEALRCBCwtmo7e/hR6XPzQHE5QGf6EZIYISAEZiSg5t7XlmVexMDFAlsICIFoBAi4uGo7X/CjMuORctQqneGCV/gRkhghIARmJHBszXa8d7r2/cxoSnl3SF9+EiAEfBEoALvPs511foL7HSmXuOC7/AhJjBAQAtsm4PfKq6cwoynXzim+t+DSYwJbCAiB8ASCXHnta0ovoGmZrwLYIXxJslII5JwA8zdr7e7pfin0n9FTMX8AxhF+BSVOCAiBLQmw6y6ub5xY5ZdLf1NapbMA/ppfQYkTAkJgCwJjNduZE4SJD1MOfQAwHgkiKrFCQAhMEWDmq+rt7qeD8OhryrULYBY2mS/J35VBsEqsEJg2ZcBTV18XeqYv9sgjXPItEwJBCRCeqI05ewdf5mOF3G7nA5KECIG3E2BcUms7gadB9j199fK05pg1dvEkgCEhLwSEgD8CDF5Yt7tr/EW/GeXLlNOnsDKvJyhdic8tAQJdW7U7p4YB4NuUo1ZJbrkLQ1jW5JJA2KOk7ws9m6m2KuZqZuybS8rStBDwSSDKUTK4Kculs5n4qz5rkzAhkEsCUY6SgU25ofIHO4/zxFPyarxcftekaR8Eoh4lA5uydyW2UvwGM53moz4JEQK5IxD1KBnKlE+XzT0mCKsBbJc74tKwEJiRAC+v2d2zo0LyffX1rYlaFfNSZlwYNbmsFwIDRODxNwxn8fs24LdRewplyqd3w44TXdM7Wu4StQBZLwQGgYDLOHJB2/k3Fb2EMqWXuGmVzgR4uYoiREMIZJuAmtPWzQxCm9ITaJTN1UTyu2W2v1BSfUQCyk5bVZnyeCJ8L2JTslwIZJaAytNWJab0RFpl8w4mHJlZqlK4EAhNQO1pqzJTNoZL86nADwCohO5NFgqB7BG4q2o7RxIwqbr0SH9Tbi6mVTaPY8ItqosTPSGQSgLMqxzqfnQvG96kR+UfJab0qmpa5hUAzlVeoQgKgTQRYH6lWCws3O3ZcVtXWcpMeTFgHGcVH5SXzOraKtFNAwGXseeCtuPd/63to8yUvaNlubgQRA/KkC1t+yXCCRJgcverj038XHcJSk3pFduyiqcw6BrdhYu+EIiZgO+3ZkWtS7kpp4wp77WMujGyPj0EgrxbUkXVWkzZO5WtmJeA8TkVRYqGEEiMQMD3gKioU5spe8a0zMsAnK+iUNEQAgkQ8P1KdJW1aTVl71S2XPwyE52jsmjREgLaCTCvqrW7i7Xn2UoC7ab0cjas4goCnZFEg5JTCAQlEPR9kkH1+8XHYsreqWy5+A2QjBHptyHy7wkTYH6l1u7umGQVsZmydyprla5h8ClJNiy5hcBMBIK8Bl0XyVhNOXXENL8Nwsm6GhJdIRCWQKfjbL/3S3gt7HpV62I3Zc+YlnkTgBNUNSE6QiAqATaMXeobxjdE1VGxPhFT9k5ly+b3mHC8iiZEQwhEIUDM+1Tb3UejaKhcm5gpp4+YtwI4RmVDoiUEghAgokOrY517g6zRHZuoKaePmDK5QPcui/5WCTDzSfV294a04UnclB6QhmXeRcCStMGRegaYANF5tbHOlWnsMBWm7J3Kls37QDg4jZCkpoEjcGXNds5La1epMWXvVNYqPsigA9MKS+rKPgECbqjazklp7iRVpuydylaKq4jpg2mGJrVllsC9Nds5NO3Vp86UU1dlS48A/IG0w5P6MkXg0Zrt7JOFilNpyqkjprma5K3RWfgOZaHGDTXbycx7b1JryqkjpvkLAH+ahV2XGlNL4LWa7Wyf2uq2UliqTdkzZsX8JRh7ZQmq1JoeAmm4wTwojdSbsncqa5lrCVgQtDmJzzeBguPsOO9FvJI1Cpkw5fQRswXG/KwBlnqTIVAAdp9nO+uSyR4ta2ZM6bXZssxnGNg1WsuyetAJsOsurm+cWJXVPjNlyumLP964+HJWgUvd2gnENp9VVyeZM+W0MZ8HsLMuKKKbTQLEfHq13f1mNqt/s+pMmnLqb8ziy2B6d9Y3QOpXQyDugclqqt66SmZNOX3E9F5FtoNOQKKdAQIJDEzWSSXTppw25v8CyNSPwzo3NIfaiQxM1sk586acNuYbAGbpBCXaKSSQ4MBknTQGwpTTxuwCGNIJS7TTQyDpgck6SQyMKaeNyTphiXZKCKRgYLJOEgNlyluBwl6WOaETmGgnTyCL97MGoTZQpvQaXz8XpUnHHA8CQWKzQyAtA5N1Ehs4U3qwXvxjbPfbkrlJJzjRjp9AmgYm6+x+IE3pAXtsDnaY7Zre75jyGQACaRuYrBPpwJrSg9Z6D97FQ2bmHt3RueFZ1E7jwGSdHAfalB64tXO226ngdl/QCVG09RFI68BkfR0DA2/K3sWf4dkjk4XJtk6Qoq2BQIoHJmvo9v8lc2FKr9tmZdYuYPdZnTBFWymBVA9MVtrp28RyY0qv73UjpXmGwaM6gYp2dAJZGJgcvcttK+TKlB6G0YpZdxmZHBOh84uQIu1MDEzWySt3pvRgNkbMPcnAEzrBinYoApkZmByqO5+LcmnK3qlspfgnBtMan5wkTD+BTA1M1okjt6b0oLZGivuwQf+pE7Bo+yKQuYHJvroKGZRrU/ZOZStD+xEbPw3JT5YpIDDoN5gHRZR7U079jTn0QTKMzI4kDLrpaYrP6sBknQzFlNN0W9asAxjuSp2wRXtLAlkemKxzL8WUb6HbKJc+TMT36wQu2lMEsj4wWec+iinfRne0UjrUZb5bJ3TRRuYHJuvcQzHlVuiuK5tHGIQf6ASfV+1BGZisc//ElNug27TMowHcphN+3rQHaWCyzr0TU85At1U2j2PCLTo3IDfaAzYwWee+iSn70G1a5icA3KxzE3KgPXADk3XumZjSB91muXgSiK7zESohbycwoAOTdW60mNIn3ZZV/CSDrvUZLmHoPUG/tmo7ewiMYATElAF4NcvFvwdR5l+1FqDl8KEDPjA5PJj+K8WU/RltEdG0SmcAvCLgstyFy/2s4bdcTBmCXaNc+gwRfyXE0lwsycPAZJ0bKaYMSbdpmecBuDzk8oFdlpeByTo3UEwZgW6rbF7IhEsjSAzU0jwNTNa5cWLKiHQblnmRd6dKRJnML8/bwGSdGyamVEC3WTaXgfB5BVKZlMjjwGSdGyWmVES3YZlfIuCziuSyI5PTgck6N0hMqZBus2xeCcI/KJRMu1RuBybr3BgxpWK6Tau4HKAzFcumTi7vA5N1boiYUgPdRrl4FRGdrkE6LZK5H5iscyPElJroNq3SPwN8qib5JGVlYLJm+mJKjYCbZfPbIJysMUXc0jIwOQbiYkrNkBuWeSMBJ2pOE4e8DEyOg/LU0zXy0U2gWTa/C8LHdOfRqS83mOuku6W2mDIm1k3L/FcAx8aUTmkaGZisFGdfMTFlX0TqAhpl8w4iHKlOUb+SDEzWz/jtGcSUMTNvWuadAA6LOW2odDIwORS2yIvElJERBhdols17QTgk+MpYV8jA5Fhxv5lMTJkQ+JZVfIBBByWUfsa0MjA52V0RUybIv1EuPkxEixIs4fdSy8Dk5HdDTJnwHrQs83oG/ibhMnrpxZBp2AX5nTIVu9CyzIs44QelxZCp+Cps/s8xPcXkuZJEjcl8Wq3dvTrP/NPUu5y+pmg3WpXSp5jZe1B6OKay1oCxrNZ2fhhTPknjg4CY0gekOEN+NWfWnI7rGVP7EyaX79Bxlu30El6Lsz/J1Z+AmLI/o0QiGlZpCQHnA7y/ygIY/OMCCsvm2+PyKnmVYBVqiSkVwtQh1SybhzPhCAIOB/COcDn41wzcYpBxX3Wsc184DVkVFwExZVykFeRpWuYxAI4BoQqXdwbRu7cqy/wKDHoBjAYR3VQd69yrIL1IxERATBkTaB1pGCiMjszeiWliZ0+feOiF+RvfeJGASR35RDMeAmLKeDhLFiHgm4CY0jcqCRQC8RAQU8bDWbIIAd8ExJS+UUmgEIiHgJgyHs6SRQj4JiCm9I1KAoVAPATElPFwlixCwDcBMaVvVBIoBOIhIKaMh7NkEQK+CYgpfaOSQCEQDwExZTycJYsQ8E1ATOkblQQKgXgI/B8gy7sUM0KGDwAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,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\"","import './Content.scss'\r\nimport ContentItemAdmin from \"./ContentItemAdmin\";\r\nimport {useContext} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\nimport ContentItem from \"../Content/ContentItem\";\r\n\r\nfunction Content(props) {\r\n const {dataCenter} = useContext(Root)\r\n\r\n return (\r\n <div className=\"content\">\r\n {\r\n dataCenter.toolBox?.length ? dataCenter?.toolBox?.filter(v => {\r\n if (dataCenter.child_type_id === 'all') return true\r\n else return v.child_type_id === dataCenter.child_type_id\r\n }).map(v => {\r\n return (\r\n <ContentItemAdmin key={v['toolbox_id']} value={v}/>\r\n )\r\n })\r\n :\r\n '没有数据了!'\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport default Content\r\n","import './PublishModal.scss'\r\nimport React, {useContext, useEffect, useState} from 'react';\r\nimport {Root} from \"../dataCenter/Root\";\r\nimport {UnControlled as CodeMirror} from 'react-codemirror2'\r\nimport {Form, Input, message, Modal, Select} from 'antd';\r\nimport apiConfig from \"../config/apiConfig\";\r\n\r\nimport 'codemirror/addon/display/autorefresh';\r\nimport 'codemirror/addon/comment/comment';\r\nimport 'codemirror/addon/edit/matchbrackets';\r\nimport 'codemirror/keymap/sublime';\r\nimport 'codemirror/theme/eclipse.css';\r\nimport 'codemirror/theme/monokai.css';\r\nimport 'codemirror/lib/codemirror.js';\r\nimport 'codemirror/lib/codemirror.css';\r\nimport 'codemirror/theme/solarized.css'\r\nimport 'codemirror/mode/javascript/javascript'\r\nimport 'codemirror/addon/selection/active-line';\r\nimport 'codemirror/addon/fold/foldgutter.css';\r\n\r\nconst { Option } = Select;\r\n\r\n\r\nconst PublishModal = ({ visible, onCancel, data }) => {\r\n const [code, setcode] = useState('')\r\n const [page_name, setPageName] = useState('')\r\n const [oldCode, setoldCode] = useState('')\r\n const { fetchData, dataCenter } = useContext(Root)\r\n console.log(data);\r\n const onCreate = (values) => {\r\n console.log(code);\r\n\r\n if (!code || !page_name) {\r\n message.error('请补全信息!')\r\n return\r\n }\r\n if (data) {\r\n fetch(`${apiConfig.domain}/page/updatePage`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n page_id: data.page_id,\r\n page_name: page_name,\r\n code: code\r\n })\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n if (data.success) {\r\n onCancel()\r\n message.success('替换成功!')\r\n dataCenter?.type && fetchData('/page/queryPage', {}, 'queryPage')\r\n .then((res) => {\r\n \r\n })\r\n } else {\r\n message.error( '替换失败')\r\n }\r\n });\r\n } else {\r\n fetch(`${apiConfig.domain}/page/addPage`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n page_name: page_name,\r\n code: code\r\n })\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n if (data.success) {\r\n onCancel()\r\n message.success('发布成功!')\r\n dataCenter?.type && fetchData('/page/queryPage', {}, 'queryPage')\r\n .then((res) => {\r\n \r\n })\r\n } else {\r\n message.error(data.error || '发布失败')\r\n }\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n data&&setPageName(data.page_name)\r\n }, [data])\r\n\r\n return (\r\n <Modal\r\n visible={visible}\r\n title=\"发布\"\r\n okText=\"发布\"\r\n cancelText=\"取消\"\r\n onCancel={onCancel}\r\n onOk={onCreate}\r\n width='1000px'\r\n >\r\n <Form.Item\r\n name=\"page_name\"\r\n label=\"页面名称\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入页面名称!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入页面名称\" defaultValue={data?.page_name ? data.page_name : page_name} onChange={(e) => { setPageName(e.target.value) }} />\r\n </Form.Item>\r\n <Form.Item\r\n name=\"type\"\r\n label=\"布局代码\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入页面名称!',\r\n },\r\n ]}\r\n >\r\n <div className='codeMain'>\r\n <CodeMirror\r\n onChange={(editor, data, value) => {\r\n setcode(value)\r\n }}\r\n value={oldCode}\r\n options={{\r\n styleActiveLine: true,//光标代码高亮\r\n lineNumbers: true,\r\n theme: 'monokai',\r\n tabSize: 2,\r\n keyMap: 'sublime',\r\n mode: 'text/javascript',\r\n smartIndent: true, //自动缩进\r\n lineWrapping: true,\r\n autofocus: true\r\n }}\r\n />\r\n </div>\r\n </Form.Item>\r\n </Modal>\r\n );\r\n};\r\nexport default PublishModal\r\n","import React from 'react';\r\nimport { Button, Modal, Form, Input, Radio, Select, message, Tabs } from 'antd';\r\nimport { useContext, useEffect, useState } from \"react\";\r\nimport { Root } from \"../dataCenter/Root\";\r\nimport { NEED_UPDATE_INDEX } from \"../dataCenter/action\";\r\nconst { Option } = Select;\r\nconst { TabPane } = Tabs;\r\nconst TypeModal = ({ visible, onCancel, queryData, data }) => {\r\n console.log(data);\r\n const [form] = Form.useForm();\r\n if (data) {\r\n form.setFieldsValue({\r\n type_name: data.type_name,\r\n });\r\n }\r\n const formItemLayout = {\r\n labelCol: { span: 4 },\r\n wrapperCol: { span: 18 },\r\n };\r\n\r\n const { fetchData, dataCenter, dispatch } = useContext(Root)\r\n const [value, setValue] = React.useState(1);\r\n\r\n\r\n const onCreate = (values) => {\r\n if (data) {\r\n console.log(data);\r\n\r\n let input = {\r\n type_id: '',\r\n type_name: ''\r\n }\r\n if (!data.isRemove) {\r\n input = {\r\n type_id: data.type_id,\r\n type_name: values.type_name\r\n }\r\n } else {\r\n input = {\r\n child_type_id: data.type_id,\r\n child_type_name: values.type_name\r\n }\r\n }\r\n fetchData('/typeManage/updateType', input)\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('修改成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n queryData()\r\n onCancel()\r\n }\r\n })\r\n } else {\r\n console.log(values);\r\n fetchData('/add/addType', values)\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('新建成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n onCancel()\r\n }\r\n })\r\n }\r\n\r\n };\r\n // function callback(key) {\r\n // console.log(key);\r\n // }\r\n\r\n const onChange = e => {\r\n console.log('radio checked', e.target.value);\r\n setValue(e.target.value);\r\n };\r\n\r\n const onGenderChange = (value) => {\r\n form.setFieldsValue({\r\n type_id: value,\r\n });\r\n };\r\n\r\n return (\r\n <Modal\r\n visible={visible}\r\n title={`${data ? '修改' : '新建'}类型`}\r\n okText=\"确定\"\r\n cancelText=\"取消\"\r\n onCancel={onCancel}\r\n onOk={() => {\r\n form\r\n .validateFields()\r\n .then((values) => {\r\n // form.resetFields();\r\n onCreate(values);\r\n })\r\n .catch((info) => {\r\n console.log('Validate Failed:', info);\r\n });\r\n }}\r\n >\r\n <Form\r\n form={form}\r\n // layout=\"vertical\"\r\n {...formItemLayout}\r\n name=\"form_in_modal\"\r\n initialValues={{\r\n modifier: 'public',\r\n 'radio-group': 1\r\n }}\r\n >\r\n\r\n {!data && <Form.Item name=\"radio-group\" label=\"类型\">\r\n <Radio.Group onChange={onChange} value={value}>\r\n <Radio value={1}>父类型</Radio>\r\n <Radio value={2}>子类型</Radio>\r\n </Radio.Group>\r\n </Form.Item>}\r\n {value === 1 || data ? <Form.Item\r\n name=\"type_name\"\r\n label={`${data ? '' : '父'}类型`}\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入类型名称!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入类型名称\" />\r\n </Form.Item> :\r\n <>\r\n <Form.Item\r\n name=\"type_id\"\r\n label=\"父类型\"\r\n hasFeedback\r\n rules={[{ required: true, message: '请选择父类型!' }]}\r\n >\r\n <Select\r\n placeholder=\"请选择父类型\"\r\n onChange={onGenderChange}\r\n // allowClear\r\n >\r\n {\r\n dataCenter?.type?.length && dataCenter?.type.map(v => {\r\n return (\r\n <Option key={v.type_id} value={v.type_id}>{v.type_name}</Option>\r\n )\r\n })\r\n }\r\n\r\n </Select>\r\n </Form.Item>\r\n <Form.Item\r\n name=\"child_type_name\"\r\n label=\"子类型\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入类型名称!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入类型名称\" />\r\n </Form.Item>\r\n </>\r\n\r\n }\r\n </Form>\r\n </Modal>\r\n );\r\n};\r\nexport default TypeModal\r\n","import React, {useContext, useEffect, useState} from 'react';\r\nimport {Root} from \"../dataCenter/Root\";\r\nimport {Modal, Space, Table} from 'antd';\r\nimport PublishModal from \"./PublishModal\"\r\n\r\nfunction PageModal({ visible, onCancel, onPublish }) {\r\n\r\n const [publish, setPublish] = useState(false)\r\n const [pageData, setpageData] = useState('')\r\n const { fetchData, dataCenter } = useContext(Root)\r\n\r\n const onChangePage = (values) => {\r\n console.log(values);\r\n setpageData(values);\r\n setPublish(true)\r\n };\r\n const onRemovePage = (values) => {\r\n console.log(values);\r\n // setVisible(false);\r\n };\r\n\r\n\r\n\r\n const columns = [\r\n {\r\n title: '页面Id',\r\n dataIndex: 'page_id',\r\n width: 150,\r\n align: 'center'\r\n },\r\n {\r\n title: '页面名称',\r\n dataIndex: 'page_name',\r\n width: 200,\r\n align: 'center'\r\n },\r\n {\r\n title: '页面Url',\r\n dataIndex: 'pageUrl',\r\n width: 300,\r\n align: 'center',\r\n render: (text, record) => (\r\n <Space size=\"middle\">\r\n <a href={record.pageUrl}>{record.pageUrl}</a>\r\n </Space>\r\n ),\r\n },\r\n {\r\n title: '操作',\r\n key: 'action',\r\n align: 'center',\r\n width: 100,\r\n render: (text, record) => (\r\n <Space size=\"middle\">\r\n <a onClick={() => onChangePage(record)}>替换</a>\r\n {/* <a onClick={() => onRemovePage(record)}>删除</a> */}\r\n </Space>\r\n ),\r\n },\r\n ];\r\n\r\n\r\n useEffect(() => {\r\n console.log(dataCenter);\r\n dataCenter?.type && fetchData('/page/queryPage', {}, 'queryPage')\r\n .then((res) => {\r\n })\r\n }, [])\r\n\r\n\r\n const data = [\r\n {\r\n key: '1',\r\n name: '1 Brown',\r\n age: 32,\r\n address: 'New York No. 1 Lake Park',\r\n },\r\n {\r\n key: '2',\r\n name: '2 Green',\r\n age: 42,\r\n address: 'London No. 1 Lake Park',\r\n },\r\n {\r\n key: '3',\r\n name: '3 Black',\r\n age: 32,\r\n address: 'Sidney No. 1 Lake Park',\r\n },\r\n {\r\n key: '4',\r\n name: '4 Brown',\r\n age: 32,\r\n address: 'New York No. 1 Lake Park',\r\n },\r\n {\r\n key: '5',\r\n name: '5 Green',\r\n age: 42,\r\n address: 'London No. 1 Lake Park',\r\n },\r\n {\r\n key: '6',\r\n name: '6 Black',\r\n age: 32,\r\n address: 'Sidney No. 1 Lake Park',\r\n },\r\n {\r\n key: '7',\r\n name: '7 Brown',\r\n age: 32,\r\n address: 'New York No. 1 Lake Park',\r\n },\r\n {\r\n key: '8',\r\n name: '8 Green',\r\n age: 42,\r\n address: 'London No. 1 Lake Park',\r\n },\r\n {\r\n key: '9',\r\n name: '9 Black',\r\n age: 32,\r\n address: 'Sidney No. 1 Lake Park',\r\n },\r\n {\r\n key: '10',\r\n name: '10 Brown',\r\n age: 32,\r\n address: 'New York No. 1 Lake Park',\r\n },\r\n {\r\n key: '11',\r\n name: '11 Green',\r\n age: 42,\r\n address: 'London No. 1 Lake Park',\r\n },\r\n {\r\n key: '12',\r\n name: '12 Black',\r\n age: 32,\r\n address: 'Sidney No. 1 Lake Park',\r\n },\r\n ];\r\n return (\r\n <>\r\n <Modal\r\n visible={visible}\r\n title=\"页面管理\"\r\n okText=\"确定\"\r\n cancelText=\"取消\"\r\n width='1000px'\r\n onCancel={onCancel}\r\n onOk={onCancel}\r\n >\r\n <Table columns={columns} dataSource={dataCenter?.queryPage && dataCenter.queryPage} pagination={{ pageSize: 10 }} size=\"middle\" />\r\n </Modal>\r\n {publish && <PublishModal\r\n visible={publish}\r\n onCancel={() =>\r\n setPublish(false)\r\n }\r\n data={pageData}\r\n />}\r\n </>\r\n )\r\n}\r\n\r\nexport default PageModal\r\n","import { Menu, Modal, Popconfirm, Space, Table, message } from 'antd';\r\nimport React, { useContext, useEffect, useState } from 'react';\r\nimport TypeModal from '../modal/TypeModal'\r\nimport { NEED_UPDATE_INDEX } from \"../dataCenter/action\";\r\nimport { Root } from \"../dataCenter/Root\";\r\n\r\nconst menu = (\r\n <Menu>\r\n <Menu.Item>Action 1</Menu.Item>\r\n <Menu.Item>Action 2</Menu.Item>\r\n </Menu>\r\n);\r\n\r\nfunction RemoveType({ visible, onCancel }) {\r\n\r\n const [typeModal, setTypeModal] = useState(false)\r\n const [typeData, settypeData] = useState('')\r\n const [oldData, setoldData] = useState('')\r\n const { fetchData, dataCenter, dispatch } = useContext(Root)\r\n\r\n const changType = (data) => {\r\n setoldData(data)\r\n setTypeModal(true)\r\n }\r\n\r\n const changeData = (list, cb) => {\r\n return list.map((item, index) => {\r\n const res = cb(item);\r\n if (item.children) res.children = changeData(item.children, item => ({\r\n isRemove: true,\r\n key: item.child_type_id,\r\n type_id: item.child_type_id,\r\n type_name: item.child_type_name,\r\n }));\r\n return res;\r\n })\r\n }\r\n\r\n const removeType = (data) => {\r\n fetchData('/typeManage/deleteChildType', { child_type_id: data.type_id })\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('刪除成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n queryData()\r\n // onCancel()\r\n }else{\r\n message.error('刪除失败')\r\n }\r\n })\r\n }\r\n\r\n const queryData = () => {\r\n dataCenter?.type && fetchData('/typeManage/queryTypeForManage', {}, 'childTypeData')\r\n .then((res) => {\r\n // console.log(res.data);\r\n const newData = changeData(res.data, item => ({\r\n key: item.type_id,\r\n type_id: item.type_id,\r\n type_name: item.type_name,\r\n }));\r\n // console.log(newData);\r\n settypeData(newData)\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n queryData()\r\n }, [])\r\n\r\n const columns = [\r\n { title: '类型名', width: 100, dataIndex: 'type_name', key: 'type_name' },\r\n { title: 'Id', width: 100, dataIndex: 'type_id', align: 'center', key: 'type_id' },\r\n {\r\n title: '操作', width: 100, key: 'operation', align: 'center',\r\n render: (text, record) => (\r\n <Space size=\"middle\">\r\n {record.isRemove && <Popconfirm title=\"确定删除吗?\" okText=\"确定\" cancelText=\"取消\" onConfirm={() => removeType(record)}>\r\n <a href=\"#\" >删除</a>\r\n </Popconfirm>}\r\n <a href=\"#\" onClick={() => changType(record)}>修改</a>\r\n </Space>\r\n )\r\n },\r\n ];\r\n\r\n return (\r\n <Modal\r\n visible={visible}\r\n title=\"类型管理\"\r\n okText=\"确定\"\r\n cancelText=\"取消\"\r\n width='1000px'\r\n onCancel={onCancel}\r\n onOk={onCancel}\r\n >\r\n <Table\r\n columns={columns}\r\n dataSource={typeData}\r\n />\r\n {typeModal && <TypeModal\r\n visible={typeModal}\r\n onCancel={() =>\r\n setTypeModal(false)\r\n }\r\n queryData={() =>\r\n queryData()\r\n }\r\n data={oldData}\r\n />}\r\n </Modal>\r\n\r\n );\r\n}\r\nexport default RemoveType\r\n","import React, {useState} from 'react'\r\nimport './AdminIndex.scss'\r\nimport {Button} from 'antd';\r\nimport ToolModal from '../../modal/ToolModal'\r\nimport PublishModal from '../../modal/PublishModal'\r\nimport TypeModal from '../../modal/TypeModal'\r\nimport PageModal from '../../modal/PageModal'\r\nimport RemoveType from '../../modal/RemoveType'\r\n\r\nfunction AdminIndex() {\r\n const [visible, setVisible] = useState(false)\r\n const [publish, setPublish] = useState(false)\r\n const [typeModal, setTypeModal] = useState(false)\r\n const [pageModal, setpageModal] = useState(false)\r\n const [removeType, setremoveType] = useState(false)\r\n\r\n return (\r\n <div className='admin'>\r\n <Button onClick={() => setVisible(true)}>新建工具盒</Button>\r\n <Button onClick={() => setTypeModal(true)}>新建类型</Button>\r\n <Button onClick={() => setPublish(true)}>发布</Button>\r\n <Button onClick={() => setpageModal(true)}>页面管理</Button>\r\n <Button onClick={() => setremoveType(true)}>类型管理</Button>\r\n {visible && <ToolModal\r\n visible={visible}\r\n onCancel={() =>\r\n setVisible(false)\r\n }\r\n />}\r\n {publish && <PublishModal\r\n visible={publish}\r\n onCancel={() =>\r\n setPublish(false)\r\n }\r\n />}\r\n {typeModal && <TypeModal\r\n visible={typeModal}\r\n onCancel={() =>\r\n setTypeModal(false)\r\n }\r\n />}\r\n {pageModal && <PageModal\r\n visible={pageModal}\r\n onCancel={() =>\r\n setpageModal(false)\r\n }\r\n />}\r\n {removeType && <RemoveType\r\n visible={removeType}\r\n onCancel={() =>\r\n setremoveType(false)\r\n }\r\n />}\r\n </div>\r\n )\r\n}\r\n\r\nexport default AdminIndex\r\n","import logo from \"../../static/logo.png\";\r\nimport './index.scss'\r\nimport ToolType from \"../../component/ToolType/ToolType\";\r\nimport Content from '../../component/ContentAdmin/Content'\r\nimport {PopContext, Root} from \"../../dataCenter/Root\";\r\nimport {useContext, useEffect, useState} from \"react\";\r\nimport {NEED_UPDATE_INDEX} from \"../../dataCenter/action\";\r\nimport AdminIndex from \"../../component/AdminIndex/AdminIndex\";\r\nimport {useHistory} from \"react-router-dom\";\r\n\r\nfunction Index() {\r\n const history = useHistory()\r\n const [pop, setPop] = useState()\r\n const {fetchData, dataCenter, dispatch} = useContext(Root)\r\n const showPop = popComponent => {\r\n setPop(popComponent)\r\n }\r\n const getUser = () => {\r\n fetchData('/users/getUser', {uid: '100001'}, 'userInfo')\r\n .catch(res =>\r\n res.code === 70001 && (history.push('/login'))\r\n )\r\n }\r\n\r\n useEffect(() => {\r\n fetchData('/query/queryType', {}, 'type')\r\n .then(()=> fetchData('/query/queryChildType',{type_id: dataCenter.type_id},'childType'))\r\n .then(() => dispatch(NEED_UPDATE_INDEX()))\r\n }, [dataCenter.type_id])\r\n\r\n useEffect(() => {\r\n if (dataCenter.needUpdateIndex) {\r\n const _typeId = dataCenter.type_id === 'all' ? {} : dataCenter.type_id === 'follow' ? {\r\n isFollow: true,\r\n type_id: JSON.stringify(dataCenter.userInfo.follow)\r\n } : {type_id: dataCenter.type_id}\r\n fetchData('/query/queryToolBox', _typeId, 'toolBox').then(() => dispatch(NEED_UPDATE_INDEX()))\r\n }\r\n }, [dataCenter.needUpdateIndex])\r\n\r\n useEffect(() => {\r\n getUser()\r\n }, [])\r\n\r\n return (\r\n <PopContext.Provider value={{hidePop: () => setPop(''), showPop: popName => showPop(popName)}}>\r\n <div className=\"index\">\r\n <div className=\"welcome-top\">\r\n <span>欢迎您!\r\n <span className=\"welcome-uname\">{dataCenter?.userInfo?.uname}</span>\r\n <a className=\"login-btn\">退出登录</a>\r\n </span>\r\n </div>\r\n <div className=\"nav\">\r\n <div className=\"nav-title\">\r\n <img src={logo} alt=\"\"/>\r\n </div>\r\n <div className=\"nav-weather\">\r\n <iframe width=\"360\" height=\"40\" frameBorder=\"0\" scrolling=\"no\" hspace=\"0\"\r\n src=\"https://i.tianqi.com/?c=code&a=getcode&id=40&icon=1\"/>\r\n </div>\r\n </div>\r\n <div className=\"tool-nav\">\r\n <ToolType/>\r\n </div>\r\n <div className=\"container\">\r\n <Content/>\r\n </div>\r\n <div className=\"index-footer\">\r\n 兑吧研发中心·杭州兑吧网络科技游戏公司版权所有\r\n <br/>\r\n 浙ICP备14017299号-1\r\n </div>\r\n <AdminIndex/>\r\n </div>\r\n </PopContext.Provider>\r\n )\r\n}\r\n\r\nexport default Index\r\n\r\n","import './Content.scss'\r\nimport ContentItem from \"./ContentItem\";\r\nimport {useContext} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\n\r\nfunction Content(props) {\r\n const {dataCenter} = useContext(Root)\r\n return (\r\n <div className=\"content\">\r\n {\r\n dataCenter.toolBox?.length ? dataCenter?.toolBox?.filter(v => {\r\n if (dataCenter.child_type_id === 'all') return true\r\n else return v.child_type_id === dataCenter.child_type_id\r\n }).map(v => {\r\n return (\r\n <ContentItem key={v['toolbox_id']} value={v}/>\r\n )\r\n })\r\n :\r\n '没有数据了!'\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport default Content\r\n","import logo from \"../../static/logo.png\";\r\nimport './index.scss'\r\nimport ToolType from \"../../component/ToolType/ToolType\";\r\nimport Content from \"../../component/Content/Content\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\nimport {useContext, useEffect} from \"react\";\r\nimport {NEED_UPDATE_INDEX} from \"../../dataCenter/action\";\r\nimport {useHistory} from \"react-router-dom\";\r\n\r\nfunction Index() {\r\n const history = useHistory()\r\n const {fetchData, dataCenter, dispatch} = useContext(Root)\r\n const getUser = () => {\r\n fetchData('/users/getUser', {uid: '100001'}, 'userInfo')\r\n .catch(res =>\r\n res.code === 70001 && (history.push('/login'))\r\n )\r\n }\r\n useEffect(() => {\r\n fetchData('/query/queryType', {}, 'type')\r\n .then(() => fetchData('/query/queryChildType', {type_id: dataCenter.type_id}, 'childType'))\r\n .then(() => dispatch(NEED_UPDATE_INDEX()))\r\n }, [dataCenter.type_id])\r\n useEffect(() => {\r\n if (dataCenter.needUpdateIndex) {\r\n const _typeId = dataCenter.type_id === 'follow' ? {\r\n isFollow: true,\r\n type_id: JSON.stringify(dataCenter.userInfo.follow)\r\n } : {type_id: dataCenter.type_id}\r\n fetchData('/query/queryToolBox', _typeId, 'toolBox').then(() => dispatch(NEED_UPDATE_INDEX()))\r\n }\r\n }, [dataCenter.needUpdateIndex])\r\n\r\n useEffect(() => {\r\n getUser()\r\n }, [])\r\n\r\n return (\r\n\r\n <div className=\"index\">\r\n <div className=\"welcome-top\">\r\n <span>欢迎您!\r\n <span className=\"welcome-uname\">{dataCenter?.userInfo?.uname}</span>\r\n <a className=\"login-btn\">退出登录</a>\r\n </span>\r\n </div>\r\n <div className=\"nav\">\r\n <div className=\"nav-title\">\r\n <img src={logo} alt=\"\"/>\r\n </div>\r\n <div className=\"nav-weather\">\r\n <iframe width=\"360\" height=\"40\" frameBorder=\"0\" scrolling=\"no\" hspace=\"0\"\r\n src=\"https://i.tianqi.com/?c=code&a=getcode&id=40&icon=1\"/>\r\n </div>\r\n </div>\r\n <div className=\"tool-nav\">\r\n <ToolType/>\r\n </div>\r\n <div className=\"container\">\r\n <Content/>\r\n </div>\r\n <div className=\"index-footer\">\r\n 兑吧研发中心·杭州兑吧网络科技有限公司版权所有\r\n <br/>\r\n 浙ICP备14017299号-1\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Index\r\n\r\n","import './login.scss'\r\nimport {useContext, useEffect, useState} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\nimport {useFormState} from \"../../utils/hook\";\r\nimport {useHistory} from \"react-router-dom\";\r\n\r\nfunction Login(props) {\r\n const history = useHistory()\r\n const {fetchData, dataCenter} = useContext(Root)\r\n const [needLogin,setNeedLogin] = useState(false)\r\n const [input, setInput] = useFormState()\r\n const getUser = ()=>{\r\n fetchData('/users/getUser', {uid:'100001'}, 'userInfo')\r\n .then(res => res.data.uid && (history.push('/')))\r\n .catch(res =>\r\n res.code === 70001 && setNeedLogin(true)\r\n )\r\n }\r\n const doLogin = () => {\r\n if (needLogin){\r\n fetchData('/users/login',{uid: '100001'})\r\n .then(()=>{\r\n getUser()\r\n })\r\n }else {\r\n getUser()\r\n }\r\n }\r\n useEffect(() => {\r\n if (dataCenter.userInfo) {\r\n // window.location.href = '/index'\r\n }\r\n }, [dataCenter.userInfo])\r\n\r\n useEffect(() => {\r\n doLogin()\r\n }, [])\r\n return (\r\n <div className=\"login\">\r\n <div className='loginDiv'>\r\n {\r\n needLogin && <input type=\"text\" onChange={e => setInput('uid',e.target.value)} defaultValue={input.uid}/>\r\n }\r\n <button className='btn-login' onClick={() => doLogin()}>登录</button>\r\n </div>\r\n\r\n </div>\r\n )\r\n}\r\n\r\nexport default Login\r\n","import {useCallback, useState} from \"react\";\r\n\r\nconst useFormState = (initialValues = {}) => {\r\n const [input, setInput] = useState(initialValues)\r\n\r\n const setInputData = useCallback((name, value) => {\r\n setInput(() => Object.assign({}, {...input}, {[name]: value}))\r\n }, [input])\r\n\r\n return [input, setInputData]\r\n}\r\n\r\n\r\nconst useDrag = () => {\r\n\r\n}\r\n\r\n\r\n\r\n//这个hook很有意思,怎么样保存return出去的那个组件的数据呢\r\n// function usePopContainer(props) {\r\n// const dragRef = useRef()\r\n// const [offset, setOffset] = useState({x: 0, y: 0})\r\n// const [draggable, setDraggable] = useState(false)\r\n// const handleMouseDown = e => {\r\n// e.stopPropagation()\r\n// setDraggable(true)\r\n// setOffset({\r\n// x: e.clientX - dragRef.current['getBoundingClientRect']().x,\r\n// y: e.clientY - dragRef.current['getBoundingClientRect']().y\r\n// })\r\n// }\r\n//\r\n// const handleMouseUp = () => setDraggable(false)\r\n// const handleMouseMove = e => {\r\n// if (draggable) {\r\n// dragRef.current.style.transform = `translate(${e.clientX - offset.x}px,${e.clientY - offset.y}px)`\r\n// console.log(dragRef.current.style.transform)\r\n// }\r\n// }\r\n// return {\r\n// PopContainer: props => (\r\n// <div className=\"drag-Container\"\r\n// onMouseUp={() => handleMouseUp()}\r\n// onMouseMove={(e) => handleMouseMove(e)}>\r\n// <div className=\"Pop-container\"\r\n// ref={dragRef}\r\n// >\r\n// {props.children}\r\n// </div>\r\n// </div>\r\n// ),\r\n// dragMouseDown: e => handleMouseDown(e)\r\n// }\r\n// }\r\n\r\nexport {\r\n useFormState,\r\n useDrag,\r\n}\r\n","import './App.css';\r\nimport DataCenter from \"./dataCenter/Root\";\r\nimport IndexAdmin from \"./page/indexAdmin\";\r\nimport Index from \"./page/index\";\r\nimport Login from \"./page/login/login\";\r\nimport {HashRouter as Router, Route, Switch} from \"react-router-dom\";\r\nimport {useEffect} from \"react\";\r\n\r\nfunction App() {\r\n useEffect(() => {\r\n console.log(\"%c+\",\r\n `font-size: 1px;\r\n padding: 122px 217px;\r\n background-image: url(https://yun.duiba.com.cn/spark/assets/cc8da992b527b3cd24da7df9a5be8b2361c2e549.jpg);\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n color: transparent;`);\r\n }, [])\r\n return (\r\n <Router>\r\n <DataCenter>\r\n <Switch>\r\n <Route exact path='/login' component={Login}/>\r\n <Route exact path='/' component={Index}/>\r\n <Route exact path='/admin' component={IndexAdmin}/>\r\n </Switch>\r\n </DataCenter>\r\n </Router>\r\n );\r\n}\r\n\r\nexport default App;\r\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport {ConfigProvider} from 'antd';\r\n// 由于 antd 组件的默认文案是英文,所以需要修改为中文\r\nimport zhCN from 'antd/lib/locale/zh_CN';\r\nimport moment from 'moment';\r\nimport 'moment/locale/zh-cn';\r\nimport 'antd/dist/antd.css';\r\nimport './index.css';\r\nimport App from './App';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nmoment.locale('zh-cn');\r\nReactDOM.render(\r\n <React.StrictMode>\r\n <ConfigProvider locale={zhCN}>\r\n <App />\r\n </ConfigProvider>\r\n </React.StrictMode>,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}
\ No newline at end of file
(this.webpackJsonpdui123=this.webpackJsonpdui123||[]).push([[0],{173:function(e,t,n){},174:function(e,t,n){},176:function(e,t,n){},177:function(e,t,n){},178:function(e,t,n){},179:function(e,t,n){},250:function(e,t,n){},251:function(e,t,n){},252:function(e,t,n){},272:function(e,t,n){},273:function(e,t,n){},274:function(e,t,n){},279:function(e,t,n){"use strict";n.r(t);var c=n(0),i=n.n(c),a=n(28),o=n.n(a),l=n(17),r=n(158),s=n.n(r),d=n(134),u=n.n(d),j=(n(171),n(172),n(173),n(174),n(77)),b=n(21),p=n(40),m={toolBox:null,type:null,childType:null,userInfo:null,needUpdateIndex:!1,type_id:"follow",child_type_id:"all"};!function e(t){return Object.getOwnPropertyNames(t).forEach((function(n){var c=t[n];"object"==typeof c&&null!==c&&e(c)})),Object.freeze(t)}(m);var O=function(e,t){switch(console.table(t,["dataCenter\u7684dispatch"]),t.type){case"UPDATE_DATA":return Object.assign({},e,Object(p.a)({},t.data));case"NEED_UPDATE_INDEX":return Object.assign({},e,{needUpdateIndex:!e.needUpdateIndex});case"CHANGE_TYPE":return Object.assign({},e,{type_id:t.type_id});case"CHANGE_CHILD_TYPE":return Object.assign({},e,{child_type_id:t.child_type_id});default:return e}},A={domain:"http://"+window.location.hostname+":3000"},f=function(e){return{type:"CHANGE_TYPE",type_id:e}},g=n(6),h=Object(c.createContext)({}),y=Object(c.createContext)({});var x=function(e){var t=Object(c.useReducer)(O,m,(function(){return m})),n=Object(b.a)(t,2),i=n[0],a=n[1];return Object(g.jsx)(h.Provider,{value:{dataCenter:i,dispatch:a,fetchData:function(e,t,n){return fetch(function(e,t){if(t){var n=Object.keys(t).map((function(e,n){return 0===n?"?"+e+"="+t[e]:"&"+e+"="+t[e]})).join("");return console.log("\u53d1\u9001\u8bf7\u6c42\uff1a",A.domain+e+n),A.domain+e+n}return A.domain+e}(e,t),{credentials:"include"}).then((function(e){return e.json()})).then((function(e){if(console.log(e),!e.success)throw e;var t;return n&&a((t=Object(j.a)({},n,e.data),{type:"UPDATE_DATA",data:Object(p.a)({},t)})),e})).catch((function(e){throw console.error(e),e}))}},children:e.children})},v=n.p+"static/media/logo.c725c5d1.png",E=(n(176),n(177),function(e){var t=Object(c.useContext)(h),n=t.dataCenter,i=t.dispatch,a=e.child_type_id,o=e.child_type_name,l=["child-type-item"];a===n.child_type_id&&l.push("child-type-item-selected");return Object(g.jsx)("div",{className:l.join(" "),onClick:function(){console.log(a),i(function(e){return{type:"CHANGE_CHILD_TYPE",child_type_id:e}}(a))},children:o})});var I=function(e){var t,n,i=Object(c.useContext)(h),a=i.dataCenter,o=i.dispatch;return Object(g.jsxs)(g.Fragment,{children:[Object(g.jsxs)("div",{className:"tab-tool-type",children:[Object(g.jsx)("div",{className:"follow"===a.type_id?"item-tool-type item-tool-type-selected":"item-tool-type",onClick:function(){return o(f("follow"))},children:"\u6211\u7684\u6536\u85cf"}),(null===a||void 0===a||null===(t=a.type)||void 0===t?void 0:t.length)>0&&a.type.map((function(e){var t=["item-tool-type "];return e.type_id===a.type_id&&t.push("item-tool-type-selected"),Object(g.jsx)("div",{className:t.join(""),onClick:function(){return o(f(e.type_id))},children:e.type_name},e.type_id)}))]}),Object(g.jsxs)("div",{className:"child-type",children:[Object(g.jsx)(E,{child_type_id:"all",child_type_name:"\u5168\u90e8"},"all"),(null===a||void 0===a||null===(n=a.childType)||void 0===n?void 0:n.length)>0&&(null===a||void 0===a?void 0:a.childType.map((function(e){return Object(g.jsx)(E,{child_type_id:e.child_type_id,child_type_name:e.child_type_name},e.child_type_id)})))]})]})},C=(n(178),n(179),n.p+"static/media/setting.6a716d85.svg"),k=n.p+"static/media/trash.780a90e8.svg",w=n.p+"static/media/dragIcon.268403b1.svg",D=n(95),T=n(282),R=n(162),S=n(285),J=n(284),B=D.a.Option,N=function(e){var t,n,i,a=e.visible,o=e.onCancel,l=e.data,r=T.a.useForm(),s=Object(b.a)(r,1)[0],d=Object(c.useContext)(h),u=d.fetchData,j=d.dataCenter,m=d.dispatch;return Object(c.useEffect)((function(){var e;(null===j||void 0===j?void 0:j.type)&&u("/query/queryChildType",{type_id:null===j||void 0===j||null===(e=j.type[0])||void 0===e?void 0:e.type_id},"childType").then((function(e){console.log(e)}))}),[]),Object(g.jsx)(S.a,{visible:a,title:l?"\u4fee\u6539\u5de5\u5177\u7bb1":"\u65b0\u5efa\u5de5\u5177\u7bb1",okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",onCancel:o,onOk:function(){s.validateFields().then((function(e){!function(e){var t={toolbox_name:e.name,toolbox_icon:e.icon,toolbox_desc:e.depict,toolbox_url:e.url};l?u("/update/updateToolBox",t).then((function(e){e.success?(R.b.success("\u4fee\u6539\u6210\u529f"),m({type:"NEED_UPDATE_INDEX"}),o()):R.b.error("\u65b0\u5efa\u5931\u8d25")})):(t=Object(p.a)(Object(p.a)({},t),{},{type_id:e.type,child_type_id:e.childType}),console.log(t),u("/add/addToolBox",t).then((function(e){e.success?(R.b.success("\u65b0\u5efa\u6210\u529f"),m({type:"NEED_UPDATE_INDEX"}),o()):R.b.error("\u65b0\u5efa\u5931\u8d25")})))}(e)})).catch((function(e){console.log("Validate Failed:",e)}))},children:Object(g.jsxs)(T.a,Object(p.a)(Object(p.a)({form:s},{labelCol:{span:4},wrapperCol:{span:18}}),{},{name:"form_in_modal",initialValues:l?{name:l.toolbox_name,icon:l.toolbox_icon,url:l.toolbox_url,depict:l.toolbox_desc}:{type:(null===j||void 0===j?void 0:j.type)&&(null===j||void 0===j||null===(t=j.type[0])||void 0===t?void 0:t.type_id)},children:[Object(g.jsx)(T.a.Item,{name:"name",label:"\u540d\u79f0",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u540d\u79f0!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u540d\u79f0"})}),Object(g.jsx)(T.a.Item,{name:"icon",label:"\u56fe\u6807",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u56fe\u6807url!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u56fe\u6807url"})}),Object(g.jsx)(T.a.Item,{name:"depict",label:"\u63cf\u8ff0",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u63cf\u8ff0!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u63cf\u8ff0"})}),Object(g.jsx)(T.a.Item,{name:"url",label:"\u94fe\u63a5",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u94fe\u63a5!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u94fe\u63a5"})}),!l&&Object(g.jsx)(T.a.Item,{name:"type",label:"\u7c7b\u578b",rules:[{required:!0,message:"\u8bf7\u9009\u62e9\u7c7b\u578b!"}],children:Object(g.jsx)(D.a,{placeholder:"\u8bf7\u9009\u62e9\u7c7b\u578b",onChange:function(e){s.setFieldsValue({type:e}),u("/query/queryChildType",{type_id:e},"childType").then((function(e){console.log(e)})),console.log(j)},children:(null===j||void 0===j||null===(n=j.type)||void 0===n?void 0:n.length)&&(null===j||void 0===j?void 0:j.type.map((function(e){return Object(g.jsx)(B,{value:e.type_id,children:e.type_name},e.type_id)})))})}),!l&&(null===j||void 0===j?void 0:j.childType)&&Object(g.jsx)(T.a.Item,{name:"childType",label:"\u5b50\u7c7b\u578b",children:Object(g.jsx)(D.a,{placeholder:"\u8bf7\u9009\u62e9\u5b50\u7c7b\u578b",onChange:function(e){s.setFieldsValue({childType:e})},allowClear:!0,children:(null===j||void 0===j||null===(i=j.childType)||void 0===i?void 0:i.length)&&(null===j||void 0===j?void 0:j.childType.map((function(e){return Object(g.jsx)(B,{value:e.child_type_id,children:e.child_type_name},e.child_type_id)})))})})]}))})};var q=function(e){var t=Object(c.useState)(!1),n=Object(b.a)(t,2),i=n[0],a=n[1],o=Object(c.useContext)(h).fetchData,l=(Object(c.useContext)(y).showPop,e.value),r=l.toolbox_icon,s=l.toolbox_name,d=l.toolbox_desc,u=l.toolbox_url,j=(l.follow,l.toolbox_id),p=Object(c.useState)(r),m=Object(b.a)(p,2),O=m[0],A=m[1],f=function(e){window.location.href=e};return Object(g.jsxs)("div",{className:"content-item",children:[Object(g.jsxs)("div",{className:"content-adminTool",children:[Object(g.jsx)("img",{src:w,alt:""}),Object(g.jsx)("img",{src:C,alt:"",onClick:function(){return a(!0)}}),Object(g.jsx)("img",{src:k,alt:"",onClick:function(){return function(e){o("/delete/deleteToolBoxById",{toolbox_id:e})}(j)}})]}),Object(g.jsxs)("div",{className:"item-icon",onClick:function(){return f(u)},children:[!O&&Object(g.jsx)("div",{className:"defaultIcon",children:s[0]}),O&&Object(g.jsx)("img",{src:O,alt:"",onError:function(e){return A(null)}})]}),Object(g.jsx)("div",{className:"item-name",onClick:function(){return f(u)},children:s}),Object(g.jsx)("div",{className:"item-desc",children:d}),Object(g.jsx)("a",{className:"item-url",href:u,children:u}),i&&Object(g.jsx)(N,{visible:i,onCancel:function(){return a(!1)},data:e.value})]})};n(250);var G=function(e){var t=Object(c.useContext)(h),n=t.dataCenter,i=t.fetchData,a=e.value,o=a.toolbox_icon,l=a.toolbox_name,r=a.toolbox_desc,s=a.toolbox_url,d=a.toolbox_id,u=Object(c.useState)(!1),j=Object(b.a)(u,2),p=j[0],m=j[1],O=Object(c.useState)(o),A=Object(b.a)(O,2),f=A[0],y=A[1],x=function(e){return window.location.href=e};return Object(c.useEffect)((function(){var e;(null===(e=n.userInfo)||void 0===e?void 0:e.follow.includes(d))?m(!0):m(!1)}),[n.toolBox,n.userInfo]),Object(g.jsxs)("div",{className:"content-item",children:[Object(g.jsxs)("div",{className:"item-icon",onClick:function(){return x(s)},children:[!f&&Object(g.jsx)("div",{className:"defaultIcon",children:l[0]}),f&&Object(g.jsx)("img",{src:f,alt:"",onError:function(e){return y(null)}})]}),Object(g.jsx)("div",{className:"item-name",onClick:function(){return x(s)},children:l}),Object(g.jsx)("div",{className:"item-desc",children:r}),Object(g.jsx)("a",{className:"item-url",href:s,children:s}),Object(g.jsxs)("div",{className:"follow",children:[Object(g.jsx)("img",{className:"icon-follow",src:p?"data:image/png;base64,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":"data:image/png;base64,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",alt:"",onClick:function(){return function(){var e=n.userInfo.follow.slice();if(p){var t=e.indexOf(d);e.splice(t,1)}else e.push(d);console.log({follow:JSON.stringify(e),uid:n.userInfo.uid}),i("/users/follow",{follow:JSON.stringify(e),uid:n.userInfo.uid}).then((function(){return i("/users/getUser",{uid:100001},"userInfo")}))}()}}),"\u6536\u85cf"]})]})};var K=function(e){var t,n,i=Object(c.useContext)(h).dataCenter;return Object(g.jsx)("div",{className:"content",children:(null===(t=i.toolBox)||void 0===t?void 0:t.length)?null===i||void 0===i||null===(n=i.toolBox)||void 0===n?void 0:n.filter((function(e){return"all"===i.child_type_id||e.child_type_id===i.child_type_id})).map((function(e){return Object(g.jsx)(q,{value:e},e.toolbox_id)})):"\u6ca1\u6709\u6570\u636e\u4e86\uff01"})},F=(n(251),n(31)),z=(n(252),n(153)),X=(n(253),n(254),n(147),n(255),n(257),n(258),n(52),n(259),n(260),n(261),n(262),n(263),D.a.Option,function(e){var t=e.visible,n=e.onCancel,i=e.data,a=Object(c.useState)(""),o=Object(b.a)(a,2),l=o[0],r=o[1],s=Object(c.useState)(""),d=Object(b.a)(s,2),u=d[0],j=d[1],p=Object(c.useState)(""),m=Object(b.a)(p,2),O=m[0],f=(m[1],Object(c.useContext)(h)),y=f.fetchData,x=f.dataCenter;console.log(i);return Object(c.useEffect)((function(){i&&j(i.page_name)}),[i]),Object(g.jsxs)(S.a,{visible:t,title:"\u53d1\u5e03",okText:"\u53d1\u5e03",cancelText:"\u53d6\u6d88",onCancel:n,onOk:function(e){console.log(l),l&&u?i?fetch("".concat(A.domain,"/page/updatePage"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({page_id:i.page_id,page_name:u,code:l})}).then((function(e){return e.json()})).then((function(e){e.success?(n(),R.b.success("\u66ff\u6362\u6210\u529f\uff01"),(null===x||void 0===x?void 0:x.type)&&y("/page/queryPage",{},"queryPage").then((function(e){}))):R.b.error("\u66ff\u6362\u5931\u8d25")})):fetch("".concat(A.domain,"/page/addPage"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({page_name:u,code:l})}).then((function(e){return e.json()})).then((function(e){e.success?(n(),R.b.success("\u53d1\u5e03\u6210\u529f\uff01"),(null===x||void 0===x?void 0:x.type)&&y("/page/queryPage",{},"queryPage").then((function(e){}))):R.b.error(e.error||"\u53d1\u5e03\u5931\u8d25")})):R.b.error("\u8bf7\u8865\u5168\u4fe1\u606f\uff01")},width:"1000px",children:[Object(g.jsx)(T.a.Item,{name:"page_name",label:"\u9875\u9762\u540d\u79f0",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u9875\u9762\u540d\u79f0!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u9875\u9762\u540d\u79f0",defaultValue:(null===i||void 0===i?void 0:i.page_name)?i.page_name:u,onChange:function(e){j(e.target.value)}})}),Object(g.jsx)(T.a.Item,{name:"type",label:"\u5e03\u5c40\u4ee3\u7801",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u9875\u9762\u540d\u79f0!"}],children:Object(g.jsx)("div",{className:"codeMain",children:Object(g.jsx)(z.UnControlled,{onChange:function(e,t,n){r(n)},value:O,options:{styleActiveLine:!0,lineNumbers:!0,theme:"monokai",tabSize:2,keyMap:"sublime",mode:"text/javascript",smartIndent:!0,lineWrapping:!0,autofocus:!0}})})})]})}),M=n(283),U=n(117),P=D.a.Option,Q=(M.a.TabPane,function(e){var t,n=e.visible,a=e.onCancel,o=e.queryData,l=e.data;console.log(l);var r=T.a.useForm(),s=Object(b.a)(r,1)[0];l&&s.setFieldsValue({type_name:l.type_name});var d=Object(c.useContext)(h),u=d.fetchData,j=d.dataCenter,m=d.dispatch,O=i.a.useState(1),A=Object(b.a)(O,2),f=A[0],y=A[1];return Object(g.jsx)(S.a,{visible:n,title:"".concat(l?"\u4fee\u6539":"\u65b0\u5efa","\u7c7b\u578b"),okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",onCancel:a,onOk:function(){s.validateFields().then((function(e){!function(e){if(l){console.log(l);var t={type_id:"",type_name:""};t=l.isRemove?{child_type_id:l.type_id,child_type_name:e.type_name}:{type_id:l.type_id,type_name:e.type_name},u("/typeManage/updateType",t).then((function(e){e.success&&(R.b.success("\u4fee\u6539\u6210\u529f"),m({type:"NEED_UPDATE_INDEX"}),o(),a())}))}else console.log(e),u("/add/addType",e).then((function(e){e.success&&(R.b.success("\u65b0\u5efa\u6210\u529f"),m({type:"NEED_UPDATE_INDEX"}),a())}))}(e)})).catch((function(e){console.log("Validate Failed:",e)}))},children:Object(g.jsxs)(T.a,Object(p.a)(Object(p.a)({form:s},{labelCol:{span:4},wrapperCol:{span:18}}),{},{name:"form_in_modal",initialValues:{modifier:"public","radio-group":1},children:[!l&&Object(g.jsx)(T.a.Item,{name:"radio-group",label:"\u7c7b\u578b",children:Object(g.jsxs)(U.a.Group,{onChange:function(e){console.log("radio checked",e.target.value),y(e.target.value)},value:f,children:[Object(g.jsx)(U.a,{value:1,children:"\u7236\u7c7b\u578b"}),Object(g.jsx)(U.a,{value:2,children:"\u5b50\u7c7b\u578b"})]})}),1===f||l?Object(g.jsx)(T.a.Item,{name:"type_name",label:"".concat(l?"":"\u7236","\u7c7b\u578b"),rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u7c7b\u578b\u540d\u79f0!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u7c7b\u578b\u540d\u79f0"})}):Object(g.jsxs)(g.Fragment,{children:[Object(g.jsx)(T.a.Item,{name:"type_id",label:"\u7236\u7c7b\u578b",hasFeedback:!0,rules:[{required:!0,message:"\u8bf7\u9009\u62e9\u7236\u7c7b\u578b!"}],children:Object(g.jsx)(D.a,{placeholder:"\u8bf7\u9009\u62e9\u7236\u7c7b\u578b",onChange:function(e){s.setFieldsValue({type_id:e})},children:(null===j||void 0===j||null===(t=j.type)||void 0===t?void 0:t.length)&&(null===j||void 0===j?void 0:j.type.map((function(e){return Object(g.jsx)(P,{value:e.type_id,children:e.type_name},e.type_id)})))})}),Object(g.jsx)(T.a.Item,{name:"child_type_name",label:"\u5b50\u7c7b\u578b",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u7c7b\u578b\u540d\u79f0!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u7c7b\u578b\u540d\u79f0"})})]})]}))})}),Z=n(286),W=n(281);var L=function(e){var t=e.visible,n=e.onCancel,i=(e.onPublish,Object(c.useState)(!1)),a=Object(b.a)(i,2),o=a[0],l=a[1],r=Object(c.useState)(""),s=Object(b.a)(r,2),d=s[0],u=s[1],j=Object(c.useContext)(h),p=j.fetchData,m=j.dataCenter,O=[{title:"\u9875\u9762Id",dataIndex:"page_id",width:150,align:"center"},{title:"\u9875\u9762\u540d\u79f0",dataIndex:"page_name",width:200,align:"center"},{title:"\u9875\u9762Url",dataIndex:"pageUrl",width:300,align:"center",render:function(e,t){return Object(g.jsx)(Z.b,{size:"middle",children:Object(g.jsx)("a",{href:t.pageUrl,children:t.pageUrl})})}},{title:"\u64cd\u4f5c",key:"action",align:"center",width:100,render:function(e,t){return Object(g.jsx)(Z.b,{size:"middle",children:Object(g.jsx)("a",{onClick:function(){return e=t,console.log(e),u(e),void l(!0);var e},children:"\u66ff\u6362"})})}}];return Object(c.useEffect)((function(){console.log(m),(null===m||void 0===m?void 0:m.type)&&p("/page/queryPage",{},"queryPage").then((function(e){}))}),[]),Object(g.jsxs)(g.Fragment,{children:[Object(g.jsx)(S.a,{visible:t,title:"\u9875\u9762\u7ba1\u7406",okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",width:"1000px",onCancel:n,onOk:n,children:Object(g.jsx)(W.a,{columns:O,dataSource:(null===m||void 0===m?void 0:m.queryPage)&&m.queryPage,pagination:{pageSize:10},size:"middle"})}),o&&Object(g.jsx)(X,{visible:o,onCancel:function(){return l(!1)},data:d})]})},V=n(73),Y=n(287);V.a,V.a.Item,V.a.Item;var H=function(e){var t=e.visible,n=e.onCancel,i=Object(c.useState)(!1),a=Object(b.a)(i,2),o=a[0],l=a[1],r=Object(c.useState)(""),s=Object(b.a)(r,2),d=s[0],u=s[1],j=Object(c.useState)(""),p=Object(b.a)(j,2),m=p[0],O=p[1],A=Object(c.useContext)(h),f=A.fetchData,y=A.dataCenter,x=A.dispatch,v=function e(t,n){return t.map((function(t,c){var i=n(t);return t.children&&(i.children=e(t.children,(function(e){return{isRemove:!0,key:e.child_type_id,type_id:e.child_type_id,type_name:e.child_type_name}}))),i}))},E=function(){(null===y||void 0===y?void 0:y.type)&&f("/typeManage/queryTypeForManage",{},"childTypeData").then((function(e){var t=v(e.data,(function(e){return{key:e.type_id,type_id:e.type_id,type_name:e.type_name}}));u(t)}))};Object(c.useEffect)((function(){E()}),[]);var I=[{title:"\u7c7b\u578b\u540d",width:100,dataIndex:"type_name",key:"type_name"},{title:"Id",width:100,dataIndex:"type_id",align:"center",key:"type_id"},{title:"\u64cd\u4f5c",width:100,key:"operation",align:"center",render:function(e,t){return Object(g.jsxs)(Z.b,{size:"middle",children:[t.isRemove&&Object(g.jsx)(Y.a,{title:"\u786e\u5b9a\u5220\u9664\u5417\uff1f",okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",onConfirm:function(){f("/typeManage/deleteChildType",{child_type_id:t.type_id}).then((function(e){e.success?(R.b.success("\u522a\u9664\u6210\u529f"),x({type:"NEED_UPDATE_INDEX"}),E()):R.b.error("\u522a\u9664\u5931\u8d25")}))},children:Object(g.jsx)("a",{href:"#",children:"\u5220\u9664"})}),Object(g.jsx)("a",{href:"#",onClick:function(){return O(t),void l(!0)},children:"\u4fee\u6539"})]})}}];return Object(g.jsxs)(S.a,{visible:t,title:"\u7c7b\u578b\u7ba1\u7406",okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",width:"1000px",onCancel:n,onOk:n,children:[Object(g.jsx)(W.a,{columns:I,dataSource:d}),o&&Object(g.jsx)(Q,{visible:o,onCancel:function(){return l(!1)},queryData:function(){return E()},data:m})]})};var _=function(){var e=Object(c.useState)(!1),t=Object(b.a)(e,2),n=t[0],i=t[1],a=Object(c.useState)(!1),o=Object(b.a)(a,2),l=o[0],r=o[1],s=Object(c.useState)(!1),d=Object(b.a)(s,2),u=d[0],j=d[1],p=Object(c.useState)(!1),m=Object(b.a)(p,2),O=m[0],A=m[1],f=Object(c.useState)(!1),h=Object(b.a)(f,2),y=h[0],x=h[1];return Object(g.jsxs)("div",{className:"admin",children:[Object(g.jsx)(F.a,{onClick:function(){return i(!0)},children:"\u65b0\u5efa\u5de5\u5177\u76d2"}),Object(g.jsx)(F.a,{onClick:function(){return j(!0)},children:"\u65b0\u5efa\u7c7b\u578b"}),Object(g.jsx)(F.a,{onClick:function(){return r(!0)},children:"\u53d1\u5e03"}),Object(g.jsx)(F.a,{onClick:function(){return A(!0)},children:"\u9875\u9762\u7ba1\u7406"}),Object(g.jsx)(F.a,{onClick:function(){return x(!0)},children:"\u7c7b\u578b\u7ba1\u7406"}),n&&Object(g.jsx)(N,{visible:n,onCancel:function(){return i(!1)}}),l&&Object(g.jsx)(X,{visible:l,onCancel:function(){return r(!1)}}),u&&Object(g.jsx)(Q,{visible:u,onCancel:function(){return j(!1)}}),O&&Object(g.jsx)(L,{visible:O,onCancel:function(){return A(!1)}}),y&&Object(g.jsx)(H,{visible:y,onCancel:function(){return x(!1)}})]})},$=n(26);var ee=function(){var e,t=Object($.f)(),n=Object(c.useState)(),i=Object(b.a)(n,2),a=(i[0],i[1]),o=Object(c.useContext)(h),l=o.fetchData,r=o.dataCenter,s=o.dispatch;return Object(c.useEffect)((function(){l("/query/queryType",{},"type").then((function(){return l("/query/queryChildType",{type_id:r.type_id},"childType")})).then((function(){return s({type:"NEED_UPDATE_INDEX"})}))}),[r.type_id]),Object(c.useEffect)((function(){if(r.needUpdateIndex){var e="all"===r.type_id?{}:"follow"===r.type_id?{isFollow:!0,type_id:JSON.stringify(r.userInfo.follow)}:{type_id:r.type_id};l("/query/queryToolBox",e,"toolBox").then((function(){return s({type:"NEED_UPDATE_INDEX"})}))}}),[r.needUpdateIndex]),Object(c.useEffect)((function(){l("/users/getUser",{uid:"100001"},"userInfo").catch((function(e){return 70001===e.code&&t.push("/login")}))}),[]),Object(g.jsx)(y.Provider,{value:{hidePop:function(){return a("")},showPop:function(e){a(e)}},children:Object(g.jsxs)("div",{className:"index",children:[Object(g.jsx)("div",{className:"welcome-top",children:Object(g.jsxs)("span",{children:["\u6b22\u8fce\u60a8\uff01",Object(g.jsx)("span",{className:"welcome-uname",children:null===r||void 0===r||null===(e=r.userInfo)||void 0===e?void 0:e.uname}),Object(g.jsx)("a",{className:"login-btn",children:"\u9000\u51fa\u767b\u5f55"})]})}),Object(g.jsxs)("div",{className:"nav",children:[Object(g.jsx)("div",{className:"nav-title",children:Object(g.jsx)("img",{src:v,alt:""})}),Object(g.jsx)("div",{className:"nav-weather",children:Object(g.jsx)("iframe",{width:"360",height:"40",frameBorder:"0",scrolling:"no",hspace:"0",src:"https://i.tianqi.com/?c=code&a=getcode&id=40&icon=1"})})]}),Object(g.jsx)("div",{className:"tool-nav",children:Object(g.jsx)(I,{})}),Object(g.jsx)("div",{className:"container",children:Object(g.jsx)(K,{})}),Object(g.jsxs)("div",{className:"index-footer",children:["\u5151\u5427\u7814\u53d1\u4e2d\u5fc3\xb7\u676d\u5dde\u5151\u5427\u7f51\u7edc\u79d1\u6280\u6e38\u620f\u516c\u53f8\u7248\u6743\u6240\u6709",Object(g.jsx)("br",{}),"\u6d59ICP\u590714017299\u53f7-1"]}),Object(g.jsx)(_,{})]})})};n(272),n(273);var te=function(e){var t,n,i=Object(c.useContext)(h).dataCenter;return Object(g.jsx)("div",{className:"content",children:(null===(t=i.toolBox)||void 0===t?void 0:t.length)?null===i||void 0===i||null===(n=i.toolBox)||void 0===n?void 0:n.filter((function(e){return"all"===i.child_type_id||e.child_type_id===i.child_type_id})).map((function(e){return Object(g.jsx)(G,{value:e},e.toolbox_id)})):"\u6ca1\u6709\u6570\u636e\u4e86\uff01"})};var ne=function(){var e,t=Object($.f)(),n=Object(c.useContext)(h),i=n.fetchData,a=n.dataCenter,o=n.dispatch;return Object(c.useEffect)((function(){i("/query/queryType",{},"type").then((function(){return i("/query/queryChildType",{type_id:a.type_id},"childType")})).then((function(){return o({type:"NEED_UPDATE_INDEX"})}))}),[a.type_id]),Object(c.useEffect)((function(){if(a.needUpdateIndex){var e="follow"===a.type_id?{isFollow:!0,type_id:JSON.stringify(a.userInfo.follow)}:{type_id:a.type_id};i("/query/queryToolBox",e,"toolBox").then((function(){return o({type:"NEED_UPDATE_INDEX"})}))}}),[a.needUpdateIndex]),Object(c.useEffect)((function(){i("/users/getUser",{uid:"100001"},"userInfo").catch((function(e){return 70001===e.code&&t.push("/login")}))}),[]),Object(g.jsxs)("div",{className:"index",children:[Object(g.jsx)("div",{className:"welcome-top",children:Object(g.jsxs)("span",{children:["\u6b22\u8fce\u60a8\uff01",Object(g.jsx)("span",{className:"welcome-uname",children:null===a||void 0===a||null===(e=a.userInfo)||void 0===e?void 0:e.uname}),Object(g.jsx)("a",{className:"login-btn",children:"\u9000\u51fa\u767b\u5f55"})]})}),Object(g.jsxs)("div",{className:"nav",children:[Object(g.jsx)("div",{className:"nav-title",children:Object(g.jsx)("img",{src:v,alt:""})}),Object(g.jsx)("div",{className:"nav-weather",children:Object(g.jsx)("iframe",{width:"360",height:"40",frameBorder:"0",scrolling:"no",hspace:"0",src:"https://i.tianqi.com/?c=code&a=getcode&id=40&icon=1"})})]}),Object(g.jsx)("div",{className:"tool-nav",children:Object(g.jsx)(I,{})}),Object(g.jsx)("div",{className:"container",children:Object(g.jsx)(te,{})}),Object(g.jsxs)("div",{className:"index-footer",children:["\u5151\u5427\u7814\u53d1\u4e2d\u5fc3\xb7\u676d\u5dde\u5151\u5427\u7f51\u7edc\u79d1\u6280\u6709\u9650\u516c\u53f8\u7248\u6743\u6240\u6709",Object(g.jsx)("br",{}),"\u6d59ICP\u590714017299\u53f7-1"]})]})};n(274);var ce=function(e){var t=Object($.f)(),n=Object(c.useContext)(h),i=n.fetchData,a=n.dataCenter,o=Object(c.useState)(!1),l=Object(b.a)(o,2),r=l[0],s=l[1],d=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object(c.useState)(e),n=Object(b.a)(t,2),i=n[0],a=n[1],o=Object(c.useCallback)((function(e,t){a((function(){return Object.assign({},Object(p.a)({},i),Object(j.a)({},e,t))}))}),[i]);return[i,o]}(),u=Object(b.a)(d,2),m=u[0],O=u[1],A=function(){i("/users/getUser",{uid:"100001"},"userInfo").then((function(e){return e.data.uid&&t.push("/")})).catch((function(e){return 70001===e.code&&s(!0)}))},f=function(){r?i("/users/login",{uid:"100001"}).then((function(){A()})):A()};return Object(c.useEffect)((function(){a.userInfo}),[a.userInfo]),Object(c.useEffect)((function(){f()}),[]),Object(g.jsx)("div",{className:"login",children:Object(g.jsxs)("div",{className:"loginDiv",children:[r&&Object(g.jsx)("input",{type:"text",onChange:function(e){return O("uid",e.target.value)},defaultValue:m.uid}),Object(g.jsx)("button",{className:"btn-login",onClick:function(){return f()},children:"\u767b\u5f55"})]})})},ie=n(91);var ae=function(){return Object(c.useEffect)((function(){console.log("%c+","font-size: 1px;\n padding: 122px 217px;\n background-image: url(https://yun.duiba.com.cn/spark/assets/cc8da992b527b3cd24da7df9a5be8b2361c2e549.jpg);\n background-size: contain;\n background-repeat: no-repeat;\n color: transparent;")}),[]),Object(g.jsx)(ie.a,{children:Object(g.jsx)(x,{children:Object(g.jsxs)($.c,{children:[Object(g.jsx)($.a,{exact:!0,path:"/login",component:ce}),Object(g.jsx)($.a,{exact:!0,path:"/",component:ne}),Object(g.jsx)($.a,{exact:!0,path:"/admin",component:ee})]})})})},oe=function(e){e&&e instanceof Function&&n.e(3).then(n.bind(null,288)).then((function(t){var n=t.getCLS,c=t.getFID,i=t.getFCP,a=t.getLCP,o=t.getTTFB;n(e),c(e),i(e),a(e),o(e)}))};u.a.locale("zh-cn"),o.a.render(Object(g.jsx)(i.a.StrictMode,{children:Object(g.jsx)(l.a,{locale:s.a,children:Object(g.jsx)(ae,{})})}),document.getElementById("root")),oe()}},[[279,1,2]]]);
//# sourceMappingURL=main.003ab051.chunk.js.map
\ No newline at end of file
(this.webpackJsonpdui123=this.webpackJsonpdui123||[]).push([[0],{173:function(e,t,n){},174:function(e,t,n){},176:function(e,t,n){},177:function(e,t,n){},178:function(e,t,n){},179:function(e,t,n){},250:function(e,t,n){},251:function(e,t,n){},252:function(e,t,n){},272:function(e,t,n){},273:function(e,t,n){},274:function(e,t,n){},279:function(e,t,n){"use strict";n.r(t);var c=n(0),i=n.n(c),a=n(28),o=n.n(a),l=n(17),r=n(158),s=n.n(r),d=n(134),u=n.n(d),j=(n(171),n(172),n(173),n(174),n(77)),b=n(21),p=n(40),m={toolBox:null,type:null,childType:null,userInfo:null,needUpdateIndex:!1,type_id:"follow",child_type_id:"all"};!function e(t){return Object.getOwnPropertyNames(t).forEach((function(n){var c=t[n];"object"==typeof c&&null!==c&&e(c)})),Object.freeze(t)}(m);var O=function(e,t){switch(console.table(t,["dataCenter\u7684dispatch"]),t.type){case"UPDATE_DATA":return Object.assign({},e,Object(p.a)({},t.data));case"NEED_UPDATE_INDEX":return Object.assign({},e,{needUpdateIndex:!e.needUpdateIndex});case"CHANGE_TYPE":return Object.assign({},e,{type_id:t.type_id});case"CHANGE_CHILD_TYPE":return Object.assign({},e,{child_type_id:t.child_type_id});default:return e}},A={domain:"http://"+window.location.hostname+":3000"},f=function(e){return{type:"CHANGE_TYPE",type_id:e}},g=n(6),h=Object(c.createContext)({}),y=Object(c.createContext)({});var x=function(e){var t=Object(c.useReducer)(O,m,(function(){return m})),n=Object(b.a)(t,2),i=n[0],a=n[1];return Object(g.jsx)(h.Provider,{value:{dataCenter:i,dispatch:a,fetchData:function(e,t,n){return fetch(function(e,t){if(t){var n=Object.keys(t).map((function(e,n){return 0===n?"?"+e+"="+t[e]:"&"+e+"="+t[e]})).join("");return console.log("\u53d1\u9001\u8bf7\u6c42\uff1a",A.domain+e+n),A.domain+e+n}return A.domain+e}(e,t),{credentials:"include"}).then((function(e){return e.json()})).then((function(e){if(console.log(e),!e.success)throw e;var t;return n&&a((t=Object(j.a)({},n,e.data),{type:"UPDATE_DATA",data:Object(p.a)({},t)})),e})).catch((function(e){throw console.error(e),e}))}},children:e.children})},v=n.p+"static/media/logo.c725c5d1.png",E=(n(176),n(177),function(e){var t=Object(c.useContext)(h),n=t.dataCenter,i=t.dispatch,a=e.child_type_id,o=e.child_type_name,l=["child-type-item"];a===n.child_type_id&&l.push("child-type-item-selected");return Object(g.jsx)("div",{className:l.join(" "),onClick:function(){console.log(a),i(function(e){return{type:"CHANGE_CHILD_TYPE",child_type_id:e}}(a))},children:o})});var I=function(e){var t,n,i=Object(c.useContext)(h),a=i.dataCenter,o=i.dispatch;return Object(g.jsxs)(g.Fragment,{children:[Object(g.jsxs)("div",{className:"tab-tool-type",children:[Object(g.jsx)("div",{className:"follow"===a.type_id?"item-tool-type item-tool-type-selected":"item-tool-type",onClick:function(){return o(f("follow"))},children:"\u6211\u7684\u6536\u85cf"}),(null===a||void 0===a||null===(t=a.type)||void 0===t?void 0:t.length)>0&&a.type.map((function(e){var t=["item-tool-type "];return e.type_id===a.type_id&&t.push("item-tool-type-selected"),Object(g.jsx)("div",{className:t.join(""),onClick:function(){return o(f(e.type_id))},children:e.type_name},e.type_id)}))]}),Object(g.jsxs)("div",{className:"child-type",children:[Object(g.jsx)(E,{child_type_id:"all",child_type_name:"\u5168\u90e8"},"all"),(null===a||void 0===a||null===(n=a.childType)||void 0===n?void 0:n.length)>0&&(null===a||void 0===a?void 0:a.childType.map((function(e){return Object(g.jsx)(E,{child_type_id:e.child_type_id,child_type_name:e.child_type_name},e.child_type_id)})))]})]})},C=(n(178),n(179),n.p+"static/media/setting.6a716d85.svg"),k=n.p+"static/media/trash.780a90e8.svg",w=n.p+"static/media/dragIcon.268403b1.svg",D=n(95),T=n(282),R=n(162),S=n(285),J=n(284),B=D.a.Option,N=function(e){var t,n,i,a=e.visible,o=e.onCancel,l=e.data,r=T.a.useForm(),s=Object(b.a)(r,1)[0],d=Object(c.useContext)(h),u=d.fetchData,j=d.dataCenter,m=d.dispatch;return Object(c.useEffect)((function(){var e;(null===j||void 0===j?void 0:j.type)&&u("/query/queryChildType",{type_id:null===j||void 0===j||null===(e=j.type[0])||void 0===e?void 0:e.type_id},"childType").then((function(e){console.log(e)}))}),[]),Object(g.jsx)(S.a,{visible:a,title:l?"\u4fee\u6539\u5de5\u5177\u7bb1":"\u65b0\u5efa\u5de5\u5177\u7bb1",okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",onCancel:o,onOk:function(){s.validateFields().then((function(e){!function(e){var t={toolbox_name:e.name,toolbox_icon:e.icon,toolbox_desc:e.depict,toolbox_url:e.url};l?u("/update/updateToolBox",t).then((function(e){e.success?(R.b.success("\u4fee\u6539\u6210\u529f"),m({type:"NEED_UPDATE_INDEX"}),o()):R.b.error("\u65b0\u5efa\u5931\u8d25")})):(t=Object(p.a)(Object(p.a)({},t),{},{type_id:e.type,child_type_id:e.childType}),console.log(t),u("/add/addToolBox",t).then((function(e){e.success?(R.b.success("\u65b0\u5efa\u6210\u529f"),m({type:"NEED_UPDATE_INDEX"}),o()):R.b.error("\u65b0\u5efa\u5931\u8d25")})))}(e)})).catch((function(e){console.log("Validate Failed:",e)}))},children:Object(g.jsxs)(T.a,Object(p.a)(Object(p.a)({form:s},{labelCol:{span:4},wrapperCol:{span:18}}),{},{name:"form_in_modal",initialValues:l?{name:l.toolbox_name,icon:l.toolbox_icon,url:l.toolbox_url,depict:l.toolbox_desc}:{type:(null===j||void 0===j?void 0:j.type)&&(null===j||void 0===j||null===(t=j.type[0])||void 0===t?void 0:t.type_id)},children:[Object(g.jsx)(T.a.Item,{name:"name",label:"\u540d\u79f0",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u540d\u79f0!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u540d\u79f0"})}),Object(g.jsx)(T.a.Item,{name:"icon",label:"\u56fe\u6807",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u56fe\u6807url!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u56fe\u6807url"})}),Object(g.jsx)(T.a.Item,{name:"depict",label:"\u63cf\u8ff0",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u63cf\u8ff0!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u63cf\u8ff0"})}),Object(g.jsx)(T.a.Item,{name:"url",label:"\u94fe\u63a5",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u94fe\u63a5!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u94fe\u63a5"})}),!l&&Object(g.jsx)(T.a.Item,{name:"type",label:"\u7c7b\u578b",rules:[{required:!0,message:"\u8bf7\u9009\u62e9\u7c7b\u578b!"}],children:Object(g.jsx)(D.a,{placeholder:"\u8bf7\u9009\u62e9\u7c7b\u578b",onChange:function(e){s.setFieldsValue({type:e}),u("/query/queryChildType",{type_id:e},"childType").then((function(e){console.log(e)})),console.log(j)},children:(null===j||void 0===j||null===(n=j.type)||void 0===n?void 0:n.length)&&(null===j||void 0===j?void 0:j.type.map((function(e){return Object(g.jsx)(B,{value:e.type_id,children:e.type_name},e.type_id)})))})}),!l&&(null===j||void 0===j?void 0:j.childType)&&Object(g.jsx)(T.a.Item,{name:"childType",label:"\u5b50\u7c7b\u578b",children:Object(g.jsx)(D.a,{placeholder:"\u8bf7\u9009\u62e9\u5b50\u7c7b\u578b",onChange:function(e){s.setFieldsValue({childType:e})},allowClear:!0,children:(null===j||void 0===j||null===(i=j.childType)||void 0===i?void 0:i.length)&&(null===j||void 0===j?void 0:j.childType.map((function(e){return Object(g.jsx)(B,{value:e.child_type_id,children:e.child_type_name},e.child_type_id)})))})})]}))})};var q=function(e){var t=Object(c.useState)(!1),n=Object(b.a)(t,2),i=n[0],a=n[1],o=Object(c.useContext)(h).fetchData,l=(Object(c.useContext)(y).showPop,e.value),r=l.toolbox_icon,s=l.toolbox_name,d=l.toolbox_desc,u=l.toolbox_url,j=(l.follow,l.toolbox_id),p=Object(c.useState)(r),m=Object(b.a)(p,2),O=m[0],A=m[1],f=function(e){window.location.href=e};return Object(g.jsxs)("div",{className:"content-item",children:[Object(g.jsxs)("div",{className:"content-adminTool",children:[Object(g.jsx)("img",{src:w,alt:""}),Object(g.jsx)("img",{src:C,alt:"",onClick:function(){return a(!0)}}),Object(g.jsx)("img",{src:k,alt:"",onClick:function(){return function(e){o("/delete/deleteToolBoxById",{toolbox_id:e})}(j)}})]}),Object(g.jsxs)("div",{className:"item-icon",onClick:function(){return f(u)},children:[!O&&Object(g.jsx)("div",{className:"defaultIcon",children:s[0]}),O&&Object(g.jsx)("img",{src:O,alt:"",onError:function(e){return A(null)}})]}),Object(g.jsx)("div",{className:"item-name",onClick:function(){return f(u)},children:s}),Object(g.jsx)("div",{className:"item-desc",children:d}),Object(g.jsx)("a",{className:"item-url",href:u,children:u}),i&&Object(g.jsx)(N,{visible:i,onCancel:function(){return a(!1)},data:e.value})]})};n(250);var G=function(e){var t=Object(c.useContext)(h),n=t.dataCenter,i=t.fetchData,a=e.value,o=a.toolbox_icon,l=a.toolbox_name,r=a.toolbox_desc,s=a.toolbox_url,d=a.toolbox_id,u=Object(c.useState)(!1),j=Object(b.a)(u,2),p=j[0],m=j[1],O=Object(c.useState)(o),A=Object(b.a)(O,2),f=A[0],y=A[1],x=function(e){return window.location.href=e};return Object(c.useEffect)((function(){var e;(null===(e=n.userInfo)||void 0===e?void 0:e.follow.includes(d))?m(!0):m(!1)}),[n.toolBox,n.userInfo]),Object(g.jsxs)("div",{className:"content-item",children:[Object(g.jsxs)("div",{className:"item-icon",onClick:function(){return x(s)},children:[!f&&Object(g.jsx)("div",{className:"defaultIcon",children:l[0]}),f&&Object(g.jsx)("img",{src:f,alt:"",onError:function(e){return y(null)}})]}),Object(g.jsx)("div",{className:"item-name",onClick:function(){return x(s)},children:l}),Object(g.jsx)("div",{className:"item-desc",children:r}),Object(g.jsx)("a",{className:"item-url",href:s,children:s}),Object(g.jsxs)("div",{className:"follow",children:[Object(g.jsx)("img",{className:"icon-follow",src:p?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOUAAADICAYAAAAX+yb+AAAAAXNSR0IArs4c6QAAFLJJREFUeF7tnXu0XHV1x7/7zJ0zSaFd6FIK3jtnAiSZmfDSNoWKdJkUUJCwAHkUVGihFVZBeUgBQbvABJSHj6SiFKo8VSywsPIWQkkVNS2mIJDMzA1g7pnw1oW1Ae6cuffsrjP3phBM7pzH73cec/b8m/377r0/v/nmnHvmnH0I8hECQiBVBChV1UgxQkAIQEwpXwIhkDICYsqUbYiUIwTElPIdEAIpIyCmTNmGSDlCQEwp3wEhkDICuTJla2T2MBe6Vbg0H4QqmKoAz97mnhD9GuCNTMZzcPk5A+5GoqHnyBx/bt7T6KRsL1NVzvq5+CPumsNgY3iSJ0cINAyDh5lphJj/cAbmv2FgfYF5lInXF4oTo3Ofwcupak5zMQNrykZlaD+DjYPAqLqEKgHzAWyviicBa5lptWu4qw0Xj7/Q7j6+GJhQpZ8lnfYIZm/C0L5kGPsQY18m7AtgWGEP/0PAKDPWE2HUdXFHfaPzpEL9VEkNjCmfLJd2K8I9CEQHAlgM4J0xk/4dgf+LmR5n0Mp6u/OjmPPHmq5VKR3iuu6BBhkLGfxnALZ9xqGnsvUA7mDXvb++cWKVnhTJqGbalM2R0sGGwYvcKRPukwzCrWclYB0D97Dr3lPfOPEfaaotbC09I7J7CECHEDA3rI7qdQS0GXQPwA85cB7ay8arqnPEqZdJU45apSUu+BQAh8UJK0Ku/wbD+9LcWWt3fxFBJ/alaTXiDCBeJOB6d5JuqD/XGY0dmIKEmTJlBs24tS36jgvjxgX2+EoF+6dNommZR4PxtyAcrC2JRmEGXjeYr2fghqz9R5gJUw6IGbf4ChJwNwM31mzndo3fzcDS66ziCQbjZBAtCrw4vQtuBrnX18YmHk5viW9WlmpTtqxZBzDcMzN0mhpiz+kRl9wbF4x1vxVisbIlDav4SYPpZCb8uTLR9An9EOSuSLs5U2nK1nvwLrdYvICYPpO+fdVTEQN3EfPSuE+11s4pvrfAdBEYR+jpLIWqjEs27egsXbgG3RRWl76nRFpW8UQGXQCglkZgOmvy/g4iYGnNdi7XmWez9jqrdJYBvgjADnHkS1mOnzHT0jT+dJWaI2VruLg3F3pm/KuUbV7s5RD4wQnmZbu3J36iI3kuj47bBnnF5BvOst1fwSYdrMNopsKUDcu8gADPkNu+/SpMd9le43pHzartfEFlGzk/Om4L5RowLa21O3eqZB1WK1FT/nJ49siswuTVDCwJ20AO1t1as53IZw8PA0M7W6WrAD41B8zCtnh5zXY+G3axqnWJmXJ0pLjvpEHfImAPVc0MsM5TBozD59vjz4bpcd1IaZ5h4DqA9w+zPmdrbq/ZzjFJ9pyIKRsV8yhipOr3uSQ3wWdut8D0kXkB76ltlEsfIuKBvg/XJz/fYQQ8xjy0pNZ+/XnfixQGxm7KRtm8kAiXKuwhV1IMOqNud77up+lGpfiVPP2s5IdJgJjfMbkH18cmfh5gjZLQWE3ZsoorGXSAkspzLMKMz9XbzhdnQtAsFx8esLtyEtlxYhxfbTvfjzN5bKZsWibH2djg56Iza3bnn7bWZ8MqPkjoPcImHwUEGLigbjuXKZDyJRGLKVuW2WZgxFdFEuSfAPNptXb36rcuaFrmrQASvVDhv4HsRBL4r6t296Y4KtZuykbZXE1TT6LLRwMBYjqn2u581ZNuWaVreOqRNvloIeDuX7MnfqpF+i2iWk3ZtEzvCutRupvIvT7j86DejRfn556FZgDsYi/do0i0mbJpFVcAdIZmRiIvBOIm8KpZMN6366/Gx3Ql1mLKZqV0Lpiv0FW06AqBZAnQT2ajc3hF09gR5aZsVMyPEeO7yUKT7EJAO4G7qrZzJAGTqjMpNeWoNWtXF+6/A6ioLlT0hEDaCBDx16pjXeXP/Co1ZdMybwbwibTBk3qEgC4CDDqsbnfuVqmvzJQNq3gKga5RWZxoCYEMEHh004SzaOHzeF1VrUpMOVox6y7DO23dSVVhoiMEMkRA6SNfSkwpd5Fk6OsjpWohwEwfrrc7D6gQj2zKhlX6NIG3eg+migJFQwhkgwA9UrU7i1RcjY1kyt6sF5e809Z3ZAOcVCkE9BFgYGnddrxBZJE+kUzZrJjXgXFSpApksRAYIAIMXli3u2uitBTalI2RoUVkGJmYOB0FkKwVAkEIEOjaqt2JNAcptCmblnkbgKODFCyxQiAPBKIeLUOZsmGVDiNwKsbx5WGTpcdsEYh6tAxpSvNHBHwoW6ikWiEQH4EoR8vApmxWzI+D8Z342pNMQiB7BKIcLYOb0jJ/BuD92cMkFQuBeAmEPVoGMmXLKp7AoFjmlMSLT7IJAfUEwh4tA5lSxnuo3zhRHGQC/HLJ6FZ22YDxIF36NuXakdLcgsENAENBEkisEMg1AabDg744yLcpG5XSOcT85VwDluaFQGACvKJmd88Kssy3KZtW6ccA/0UQcYkVAnknwMBTddvZMwgHX6ZcXxl6/yQb3lVX+QgBIRCQABmoVzc4Tb/LfJly1DIvc2WmqF+mEicEtiDggs5eYHeW+8Xiy5Qty2wwUPMrKnFCQAi8hQDh/tqYc4hfJn1N2Rgx9yQDT/gVlDghIAR+n0DNdvp6bfOqvoEyx1W+YkIgOgEDxm5+38Td35SW+SUCEn8PfHQsoiAEkiNgwDhovj2+0k8FfkwpT4T4ISkxQmAGAgw+tW53r/UDqa8pm5b5GwDv9CMmMUJACGyTgO8xlDOa8pmR0ryuwaMCWggIgcgEbqvZzrF+VGY05bqyeZxBuMWPkMQIASEwI4E1NdtZ6IfRjKZsls2lIPyjHyGJEQJCYEYCr9Zsx9efgTOb0jK9d0yeK7CFgBCITsDvb5UzmrJRLn6diD4VvRxREAJCQIkpm1bpXwD+O8EpBIRAdAKKTGl6A7I+Hr0cURACQkCVKW8HcJTgFAJCIDoBVaa8B8BHopcjCkJACCgyZfEhgP5ScAoBIRCdgCJTmt6rCQ6LXo4oCAEhoMSULcu8kYETBacQEALRCBCwtmo7e/hR6XPzQHE5QGf6EZIYISAEZiSg5t7XlmVexMDFAlsICIFoBAi4uGo7X/CjMuORctQqneGCV/gRkhghIARmJHBszXa8d7r2/cxoSnl3SF9+EiAEfBEoALvPs511foL7HSmXuOC7/AhJjBAQAtsm4PfKq6cwoynXzim+t+DSYwJbCAiB8ASCXHnta0ovoGmZrwLYIXxJslII5JwA8zdr7e7pfin0n9FTMX8AxhF+BSVOCAiBLQmw6y6ub5xY5ZdLf1NapbMA/ppfQYkTAkJgCwJjNduZE4SJD1MOfQAwHgkiKrFCQAhMEWDmq+rt7qeD8OhryrULYBY2mS/J35VBsEqsEJg2ZcBTV18XeqYv9sgjXPItEwJBCRCeqI05ewdf5mOF3G7nA5KECIG3E2BcUms7gadB9j199fK05pg1dvEkgCEhLwSEgD8CDF5Yt7tr/EW/GeXLlNOnsDKvJyhdic8tAQJdW7U7p4YB4NuUo1ZJbrkLQ1jW5JJA2KOk7ws9m6m2KuZqZuybS8rStBDwSSDKUTK4Kculs5n4qz5rkzAhkEsCUY6SgU25ofIHO4/zxFPyarxcftekaR8Eoh4lA5uydyW2UvwGM53moz4JEQK5IxD1KBnKlE+XzT0mCKsBbJc74tKwEJiRAC+v2d2zo0LyffX1rYlaFfNSZlwYNbmsFwIDRODxNwxn8fs24LdRewplyqd3w44TXdM7Wu4StQBZLwQGgYDLOHJB2/k3Fb2EMqWXuGmVzgR4uYoiREMIZJuAmtPWzQxCm9ITaJTN1UTyu2W2v1BSfUQCyk5bVZnyeCJ8L2JTslwIZJaAytNWJab0RFpl8w4mHJlZqlK4EAhNQO1pqzJTNoZL86nADwCohO5NFgqB7BG4q2o7RxIwqbr0SH9Tbi6mVTaPY8ItqosTPSGQSgLMqxzqfnQvG96kR+UfJab0qmpa5hUAzlVeoQgKgTQRYH6lWCws3O3ZcVtXWcpMeTFgHGcVH5SXzOraKtFNAwGXseeCtuPd/63to8yUvaNlubgQRA/KkC1t+yXCCRJgcverj038XHcJSk3pFduyiqcw6BrdhYu+EIiZgO+3ZkWtS7kpp4wp77WMujGyPj0EgrxbUkXVWkzZO5WtmJeA8TkVRYqGEEiMQMD3gKioU5spe8a0zMsAnK+iUNEQAgkQ8P1KdJW1aTVl71S2XPwyE52jsmjREgLaCTCvqrW7i7Xn2UoC7ab0cjas4goCnZFEg5JTCAQlEPR9kkH1+8XHYsreqWy5+A2QjBHptyHy7wkTYH6l1u7umGQVsZmydyprla5h8ClJNiy5hcBMBIK8Bl0XyVhNOXXENL8Nwsm6GhJdIRCWQKfjbL/3S3gt7HpV62I3Zc+YlnkTgBNUNSE6QiAqATaMXeobxjdE1VGxPhFT9k5ly+b3mHC8iiZEQwhEIUDM+1Tb3UejaKhcm5gpp4+YtwI4RmVDoiUEghAgokOrY517g6zRHZuoKaePmDK5QPcui/5WCTDzSfV294a04UnclB6QhmXeRcCStMGRegaYANF5tbHOlWnsMBWm7J3Kls37QDg4jZCkpoEjcGXNds5La1epMWXvVNYqPsigA9MKS+rKPgECbqjazklp7iRVpuydylaKq4jpg2mGJrVllsC9Nds5NO3Vp86UU1dlS48A/IG0w5P6MkXg0Zrt7JOFilNpyqkjprma5K3RWfgOZaHGDTXbycx7b1JryqkjpvkLAH+ahV2XGlNL4LWa7Wyf2uq2UliqTdkzZsX8JRh7ZQmq1JoeAmm4wTwojdSbsncqa5lrCVgQtDmJzzeBguPsOO9FvJI1Cpkw5fQRswXG/KwBlnqTIVAAdp9nO+uSyR4ta2ZM6bXZssxnGNg1WsuyetAJsOsurm+cWJXVPjNlyumLP964+HJWgUvd2gnENp9VVyeZM+W0MZ8HsLMuKKKbTQLEfHq13f1mNqt/s+pMmnLqb8ziy2B6d9Y3QOpXQyDugclqqt66SmZNOX3E9F5FtoNOQKKdAQIJDEzWSSXTppw25v8CyNSPwzo3NIfaiQxM1sk586acNuYbAGbpBCXaKSSQ4MBknTQGwpTTxuwCGNIJS7TTQyDpgck6SQyMKaeNyTphiXZKCKRgYLJOEgNlyluBwl6WOaETmGgnTyCL97MGoTZQpvQaXz8XpUnHHA8CQWKzQyAtA5N1Ehs4U3qwXvxjbPfbkrlJJzjRjp9AmgYm6+x+IE3pAXtsDnaY7Zre75jyGQACaRuYrBPpwJrSg9Z6D97FQ2bmHt3RueFZ1E7jwGSdHAfalB64tXO226ngdl/QCVG09RFI68BkfR0DA2/K3sWf4dkjk4XJtk6Qoq2BQIoHJmvo9v8lc2FKr9tmZdYuYPdZnTBFWymBVA9MVtrp28RyY0qv73UjpXmGwaM6gYp2dAJZGJgcvcttK+TKlB6G0YpZdxmZHBOh84uQIu1MDEzWySt3pvRgNkbMPcnAEzrBinYoApkZmByqO5+LcmnK3qlspfgnBtMan5wkTD+BTA1M1okjt6b0oLZGivuwQf+pE7Bo+yKQuYHJvroKGZRrU/ZOZStD+xEbPw3JT5YpIDDoN5gHRZR7U079jTn0QTKMzI4kDLrpaYrP6sBknQzFlNN0W9asAxjuSp2wRXtLAlkemKxzL8WUb6HbKJc+TMT36wQu2lMEsj4wWec+iinfRne0UjrUZb5bJ3TRRuYHJuvcQzHlVuiuK5tHGIQf6ASfV+1BGZisc//ElNug27TMowHcphN+3rQHaWCyzr0TU85At1U2j2PCLTo3IDfaAzYwWee+iSn70G1a5icA3KxzE3KgPXADk3XumZjSB91muXgSiK7zESohbycwoAOTdW60mNIn3ZZV/CSDrvUZLmHoPUG/tmo7ewiMYATElAF4NcvFvwdR5l+1FqDl8KEDPjA5PJj+K8WU/RltEdG0SmcAvCLgstyFy/2s4bdcTBmCXaNc+gwRfyXE0lwsycPAZJ0bKaYMSbdpmecBuDzk8oFdlpeByTo3UEwZgW6rbF7IhEsjSAzU0jwNTNa5cWLKiHQblnmRd6dKRJnML8/bwGSdGyamVEC3WTaXgfB5BVKZlMjjwGSdGyWmVES3YZlfIuCziuSyI5PTgck6N0hMqZBus2xeCcI/KJRMu1RuBybr3BgxpWK6Tau4HKAzFcumTi7vA5N1boiYUgPdRrl4FRGdrkE6LZK5H5iscyPElJroNq3SPwN8qib5JGVlYLJm+mJKjYCbZfPbIJysMUXc0jIwOQbiYkrNkBuWeSMBJ2pOE4e8DEyOg/LU0zXy0U2gWTa/C8LHdOfRqS83mOuku6W2mDIm1k3L/FcAx8aUTmkaGZisFGdfMTFlX0TqAhpl8w4iHKlOUb+SDEzWz/jtGcSUMTNvWuadAA6LOW2odDIwORS2yIvElJERBhdols17QTgk+MpYV8jA5Fhxv5lMTJkQ+JZVfIBBByWUfsa0MjA52V0RUybIv1EuPkxEixIs4fdSy8Dk5HdDTJnwHrQs83oG/ibhMnrpxZBp2AX5nTIVu9CyzIs44QelxZCp+Cps/s8xPcXkuZJEjcl8Wq3dvTrP/NPUu5y+pmg3WpXSp5jZe1B6OKay1oCxrNZ2fhhTPknjg4CY0gekOEN+NWfWnI7rGVP7EyaX79Bxlu30El6Lsz/J1Z+AmLI/o0QiGlZpCQHnA7y/ygIY/OMCCsvm2+PyKnmVYBVqiSkVwtQh1SybhzPhCAIOB/COcDn41wzcYpBxX3Wsc184DVkVFwExZVykFeRpWuYxAI4BoQqXdwbRu7cqy/wKDHoBjAYR3VQd69yrIL1IxERATBkTaB1pGCiMjszeiWliZ0+feOiF+RvfeJGASR35RDMeAmLKeDhLFiHgm4CY0jcqCRQC8RAQU8bDWbIIAd8ExJS+UUmgEIiHgJgyHs6SRQj4JiCm9I1KAoVAPATElPFwlixCwDcBMaVvVBIoBOIhIKaMh7NkEQK+CYgpfaOSQCEQDwExZTycJYsQ8E1ATOkblQQKgXgI/B8gy7sUM0KGDwAAAABJRU5ErkJggg==":"data:image/png;base64,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",alt:"",onClick:function(){return function(){var e=n.userInfo.follow.slice();if(p){var t=e.indexOf(d);e.splice(t,1)}else e.push(d);console.log({follow:JSON.stringify(e),uid:n.userInfo.uid}),i("/users/follow",{follow:JSON.stringify(e),uid:n.userInfo.uid}).then((function(){return i("/users/getUser",{uid:100001},"userInfo")}))}()}}),"\u6536\u85cf"]})]})};var K=function(e){var t,n,i=Object(c.useContext)(h).dataCenter;return Object(g.jsx)("div",{className:"content",children:(null===(t=i.toolBox)||void 0===t?void 0:t.length)?null===i||void 0===i||null===(n=i.toolBox)||void 0===n?void 0:n.filter((function(e){return"all"===i.child_type_id||e.child_type_id===i.child_type_id})).map((function(e){return Object(g.jsx)(q,{value:e},e.toolbox_id)})):"\u6ca1\u6709\u6570\u636e\u4e86\uff01"})},F=(n(251),n(31)),z=(n(252),n(153)),X=(n(253),n(254),n(147),n(255),n(257),n(258),n(52),n(259),n(260),n(261),n(262),n(263),D.a.Option,function(e){var t=e.visible,n=e.onCancel,i=e.data,a=Object(c.useState)(""),o=Object(b.a)(a,2),l=o[0],r=o[1],s=Object(c.useState)(""),d=Object(b.a)(s,2),u=d[0],j=d[1],p=Object(c.useState)(""),m=Object(b.a)(p,2),O=m[0],f=(m[1],Object(c.useContext)(h)),y=f.fetchData,x=f.dataCenter;return Object(c.useEffect)((function(){i&&j(i.page_name)}),[i]),Object(g.jsxs)(S.a,{visible:t,title:"\u53d1\u5e03",okText:"\u53d1\u5e03",cancelText:"\u53d6\u6d88",onCancel:n,onOk:function(e){console.log(l),l&&u?i?fetch("".concat(A.domain,"/page/updatePage"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({page_id:i.page_id,page_name:u,code:l})}).then((function(e){return e.json()})).then((function(e){e.success?(n(),R.b.success("\u66ff\u6362\u6210\u529f\uff01"),(null===x||void 0===x?void 0:x.type)&&y("/page/queryPage",{},"queryPage").then((function(e){}))):R.b.error("\u66ff\u6362\u5931\u8d25")})):fetch("".concat(A.domain,"/page/addPage"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({page_name:u,code:l})}).then((function(e){return e.json()})).then((function(e){e.success?(n(),R.b.success("\u53d1\u5e03\u6210\u529f\uff01"),(null===x||void 0===x?void 0:x.type)&&y("/page/queryPage",{},"queryPage").then((function(e){}))):R.b.error(e.error||"\u53d1\u5e03\u5931\u8d25")})):R.b.error("\u8bf7\u8865\u5168\u4fe1\u606f\uff01")},width:"1000px",children:[Object(g.jsx)(T.a.Item,{name:"page_name",label:"\u9875\u9762\u540d\u79f0",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u9875\u9762\u540d\u79f0!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u9875\u9762\u540d\u79f0",defaultValue:(null===i||void 0===i?void 0:i.page_name)?i.page_name:u,onChange:function(e){j(e.target.value)}})}),Object(g.jsx)(T.a.Item,{name:"type",label:"\u5e03\u5c40\u4ee3\u7801",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u9875\u9762\u540d\u79f0!"}],children:Object(g.jsx)("div",{className:"codeMain",children:Object(g.jsx)(z.UnControlled,{onChange:function(e,t,n){r(n)},value:O,options:{styleActiveLine:!0,lineNumbers:!0,theme:"monokai",tabSize:2,keyMap:"sublime",mode:"text/javascript",smartIndent:!0,lineWrapping:!0,autofocus:!0}})})})]})}),M=n(283),U=n(117),P=D.a.Option,Q=(M.a.TabPane,function(e){var t,n=e.visible,a=e.onCancel,o=e.queryData,l=e.data;console.log(l);var r=T.a.useForm(),s=Object(b.a)(r,1)[0];l&&s.setFieldsValue({type_name:l.type_name});var d=Object(c.useContext)(h),u=d.fetchData,j=d.dataCenter,m=d.dispatch,O=i.a.useState(1),A=Object(b.a)(O,2),f=A[0],y=A[1];return Object(g.jsx)(S.a,{visible:n,title:"".concat(l?"\u4fee\u6539":"\u65b0\u5efa","\u7c7b\u578b"),okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",onCancel:a,onOk:function(){s.validateFields().then((function(e){!function(e){if(l){console.log(l);var t={type_id:"",type_name:""};t=l.isRemove?{child_type_id:l.type_id,child_type_name:e.type_name}:{type_id:l.type_id,type_name:e.type_name},u("/typeManage/updateType",t).then((function(e){e.success&&(R.b.success("\u4fee\u6539\u6210\u529f"),m({type:"NEED_UPDATE_INDEX"}),o(),a())}))}else console.log(e),u("/add/addType",e).then((function(e){e.success&&(R.b.success("\u65b0\u5efa\u6210\u529f"),m({type:"NEED_UPDATE_INDEX"}),a())}))}(e)})).catch((function(e){console.log("Validate Failed:",e)}))},children:Object(g.jsxs)(T.a,Object(p.a)(Object(p.a)({form:s},{labelCol:{span:4},wrapperCol:{span:18}}),{},{name:"form_in_modal",initialValues:{modifier:"public","radio-group":1},children:[!l&&Object(g.jsx)(T.a.Item,{name:"radio-group",label:"\u7c7b\u578b",children:Object(g.jsxs)(U.a.Group,{onChange:function(e){console.log("radio checked",e.target.value),y(e.target.value)},value:f,children:[Object(g.jsx)(U.a,{value:1,children:"\u7236\u7c7b\u578b"}),Object(g.jsx)(U.a,{value:2,children:"\u5b50\u7c7b\u578b"})]})}),1===f||l?Object(g.jsx)(T.a.Item,{name:"type_name",label:"".concat(l?"":"\u7236","\u7c7b\u578b"),rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u7c7b\u578b\u540d\u79f0!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u7c7b\u578b\u540d\u79f0"})}):Object(g.jsxs)(g.Fragment,{children:[Object(g.jsx)(T.a.Item,{name:"type_id",label:"\u7236\u7c7b\u578b",hasFeedback:!0,rules:[{required:!0,message:"\u8bf7\u9009\u62e9\u7236\u7c7b\u578b!"}],children:Object(g.jsx)(D.a,{placeholder:"\u8bf7\u9009\u62e9\u7236\u7c7b\u578b",onChange:function(e){s.setFieldsValue({type_id:e})},children:(null===j||void 0===j||null===(t=j.type)||void 0===t?void 0:t.length)&&(null===j||void 0===j?void 0:j.type.map((function(e){return Object(g.jsx)(P,{value:e.type_id,children:e.type_name},e.type_id)})))})}),Object(g.jsx)(T.a.Item,{name:"child_type_name",label:"\u5b50\u7c7b\u578b",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u7c7b\u578b\u540d\u79f0!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u7c7b\u578b\u540d\u79f0"})})]})]}))})}),Z=n(286),W=n(281);var L=function(e){var t=e.visible,n=e.onCancel,i=(e.onPublish,Object(c.useState)(!1)),a=Object(b.a)(i,2),o=a[0],l=a[1],r=Object(c.useState)(""),s=Object(b.a)(r,2),d=s[0],u=s[1],j=Object(c.useContext)(h),p=j.fetchData,m=j.dataCenter,O=[{title:"\u9875\u9762Id",dataIndex:"page_id",width:150,align:"center"},{title:"\u9875\u9762\u540d\u79f0",dataIndex:"page_name",width:200,align:"center"},{title:"\u9875\u9762Url",dataIndex:"pageUrl",width:300,align:"center",render:function(e,t){return Object(g.jsx)(Z.b,{size:"middle",children:Object(g.jsx)("a",{href:t.pageUrl,children:t.pageUrl})})}},{title:"\u64cd\u4f5c",key:"action",align:"center",width:100,render:function(e,t){return Object(g.jsx)(Z.b,{size:"middle",children:Object(g.jsx)("a",{onClick:function(){return e=t,console.log(e),u(e),void l(!0);var e},children:"\u66ff\u6362"})})}}];return Object(c.useEffect)((function(){console.log(m),(null===m||void 0===m?void 0:m.type)&&p("/page/queryPage",{},"queryPage").then((function(e){}))}),[]),Object(g.jsxs)(g.Fragment,{children:[Object(g.jsx)(S.a,{visible:t,title:"\u9875\u9762\u7ba1\u7406",okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",width:"1000px",onCancel:n,onOk:n,children:Object(g.jsx)(W.a,{columns:O,dataSource:(null===m||void 0===m?void 0:m.queryPage)&&m.queryPage,pagination:{pageSize:10},size:"middle"})}),o&&Object(g.jsx)(X,{visible:o,onCancel:function(){return l(!1)},data:d})]})},V=n(73),Y=n(287);V.a,V.a.Item,V.a.Item;var H=function(e){var t=e.visible,n=e.onCancel,i=Object(c.useState)(!1),a=Object(b.a)(i,2),o=a[0],l=a[1],r=Object(c.useState)(""),s=Object(b.a)(r,2),d=s[0],u=s[1],j=Object(c.useState)(""),p=Object(b.a)(j,2),m=p[0],O=p[1],A=Object(c.useContext)(h),f=A.fetchData,y=A.dataCenter,x=A.dispatch,v=function e(t,n){return t.map((function(t,c){var i=n(t);return t.children&&(i.children=e(t.children,(function(e){return{isRemove:!0,key:e.child_type_id,type_id:e.child_type_id,type_name:e.child_type_name}}))),i}))},E=function(){(null===y||void 0===y?void 0:y.type)&&f("/typeManage/queryTypeForManage",{},"childTypeData").then((function(e){var t=v(e.data,(function(e){return{key:e.type_id,type_id:e.type_id,type_name:e.type_name}}));u(t)}))};Object(c.useEffect)((function(){E()}),[]);var I=[{title:"\u7c7b\u578b\u540d",width:100,dataIndex:"type_name",key:"type_name"},{title:"Id",width:100,dataIndex:"type_id",align:"center",key:"type_id"},{title:"\u64cd\u4f5c",width:100,key:"operation",align:"center",render:function(e,t){return Object(g.jsxs)(Z.b,{size:"middle",children:[t.isRemove&&Object(g.jsx)(Y.a,{title:"\u786e\u5b9a\u5220\u9664\u5417\uff1f",okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",onConfirm:function(){f("/typeManage/deleteChildType",{child_type_id:t.type_id}).then((function(e){e.success?(R.b.success("\u522a\u9664\u6210\u529f"),x({type:"NEED_UPDATE_INDEX"}),E()):R.b.error("\u522a\u9664\u5931\u8d25")}))},children:Object(g.jsx)("a",{href:"#",children:"\u5220\u9664"})}),Object(g.jsx)("a",{href:"#",onClick:function(){return O(t),void l(!0)},children:"\u4fee\u6539"})]})}}];return Object(g.jsxs)(S.a,{visible:t,title:"\u7c7b\u578b\u7ba1\u7406",okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",width:"1000px",onCancel:n,onOk:n,children:[Object(g.jsx)(W.a,{columns:I,dataSource:d}),o&&Object(g.jsx)(Q,{visible:o,onCancel:function(){return l(!1)},queryData:function(){return E()},data:m})]})};var _=function(){var e=Object(c.useState)(!1),t=Object(b.a)(e,2),n=t[0],i=t[1],a=Object(c.useState)(!1),o=Object(b.a)(a,2),l=o[0],r=o[1],s=Object(c.useState)(!1),d=Object(b.a)(s,2),u=d[0],j=d[1],p=Object(c.useState)(!1),m=Object(b.a)(p,2),O=m[0],A=m[1],f=Object(c.useState)(!1),h=Object(b.a)(f,2),y=h[0],x=h[1];return Object(g.jsxs)("div",{className:"admin",children:[Object(g.jsx)(F.a,{onClick:function(){return i(!0)},children:"\u65b0\u5efa\u5de5\u5177\u76d2"}),Object(g.jsx)(F.a,{onClick:function(){return j(!0)},children:"\u65b0\u5efa\u7c7b\u578b"}),Object(g.jsx)(F.a,{onClick:function(){return r(!0)},children:"\u53d1\u5e03"}),Object(g.jsx)(F.a,{onClick:function(){return A(!0)},children:"\u9875\u9762\u7ba1\u7406"}),Object(g.jsx)(F.a,{onClick:function(){return x(!0)},children:"\u7c7b\u578b\u7ba1\u7406"}),n&&Object(g.jsx)(N,{visible:n,onCancel:function(){return i(!1)}}),l&&Object(g.jsx)(X,{visible:l,onCancel:function(){return r(!1)}}),u&&Object(g.jsx)(Q,{visible:u,onCancel:function(){return j(!1)}}),O&&Object(g.jsx)(L,{visible:O,onCancel:function(){return A(!1)}}),y&&Object(g.jsx)(H,{visible:y,onCancel:function(){return x(!1)}})]})},$=n(26);var ee=function(){var e,t=Object($.f)(),n=Object(c.useContext)(h),i=n.fetchData,a=n.dataCenter,o=n.dispatch;return Object(c.useEffect)((function(){i("/query/queryType",{},"type").then((function(){return i("/query/queryChildType",{type_id:a.type_id},"childType")})).then((function(){return o({type:"NEED_UPDATE_INDEX"})}))}),[a.type_id]),Object(c.useEffect)((function(){if(a.needUpdateIndex){var e="all"===a.type_id?{}:"follow"===a.type_id?{isFollow:!0,type_id:JSON.stringify(a.userInfo.follow)}:{type_id:a.type_id};i("/query/queryToolBox",e,"toolBox").then((function(){return o({type:"NEED_UPDATE_INDEX"})}))}}),[a.needUpdateIndex]),Object(c.useEffect)((function(){i("/users/getUser",{uid:"100001"},"userInfo").catch((function(e){return 70001===e.code&&t.push("/login")}))}),[]),Object(g.jsx)(y.Provider,{value:{hidePop:function(){return setPop("")},showPop:function(e){}},children:Object(g.jsxs)("div",{className:"index",children:[Object(g.jsx)("div",{className:"welcome-top",children:Object(g.jsxs)("span",{children:["\u6b22\u8fce\u60a8\uff01",Object(g.jsx)("span",{className:"welcome-uname",children:null===a||void 0===a||null===(e=a.userInfo)||void 0===e?void 0:e.uname}),Object(g.jsx)("a",{className:"login-btn",children:"\u9000\u51fa\u767b\u5f55"})]})}),Object(g.jsxs)("div",{className:"nav",children:[Object(g.jsx)("div",{className:"nav-title",children:Object(g.jsx)("img",{src:v,alt:""})}),Object(g.jsx)("div",{className:"nav-weather",children:Object(g.jsx)("iframe",{width:"360",height:"40",frameBorder:"0",scrolling:"no",hspace:"0",src:"https://i.tianqi.com/?c=code&a=getcode&id=40&icon=1"})})]}),Object(g.jsx)("div",{className:"tool-nav",children:Object(g.jsx)(I,{})}),Object(g.jsx)("div",{className:"container",children:Object(g.jsx)(K,{})}),Object(g.jsxs)("div",{className:"index-footer",children:["\u5151\u5427\u7814\u53d1\u4e2d\u5fc3\xb7\u676d\u5dde\u5151\u5427\u7f51\u7edc\u79d1\u6280\u6e38\u620f\u516c\u53f8\u7248\u6743\u6240\u6709",Object(g.jsx)("br",{}),"\u6d59ICP\u590714017299\u53f7-1"]}),Object(g.jsx)(_,{})]})})};n(272),n(273);var te=function(e){var t,n,i=Object(c.useContext)(h).dataCenter;return Object(g.jsx)("div",{className:"content",children:(null===(t=i.toolBox)||void 0===t?void 0:t.length)?null===i||void 0===i||null===(n=i.toolBox)||void 0===n?void 0:n.filter((function(e){return"all"===i.child_type_id||e.child_type_id===i.child_type_id})).map((function(e){return Object(g.jsx)(G,{value:e},e.toolbox_id)})):"\u6ca1\u6709\u6570\u636e\u4e86\uff01"})};var ne=function(){var e,t=Object($.f)(),n=Object(c.useContext)(h),i=n.fetchData,a=n.dataCenter,o=n.dispatch;return Object(c.useEffect)((function(){i("/query/queryType",{},"type").then((function(){return i("/query/queryChildType",{type_id:a.type_id},"childType")})).then((function(){return o({type:"NEED_UPDATE_INDEX"})}))}),[a.type_id]),Object(c.useEffect)((function(){if(a.needUpdateIndex){var e="follow"===a.type_id?{isFollow:!0,type_id:JSON.stringify(a.userInfo.follow)}:{type_id:a.type_id};i("/query/queryToolBox",e,"toolBox").then((function(){return o({type:"NEED_UPDATE_INDEX"})}))}}),[a.needUpdateIndex]),Object(c.useEffect)((function(){i("/users/getUser",{uid:"100001"},"userInfo").catch((function(e){return 70001===e.code&&t.push("/login")}))}),[]),Object(g.jsxs)("div",{className:"index",children:[Object(g.jsx)("div",{className:"welcome-top",children:Object(g.jsxs)("span",{children:["\u6b22\u8fce\u60a8\uff01",Object(g.jsx)("span",{className:"welcome-uname",children:null===a||void 0===a||null===(e=a.userInfo)||void 0===e?void 0:e.uname}),Object(g.jsx)("a",{className:"login-btn",children:"\u9000\u51fa\u767b\u5f55"})]})}),Object(g.jsxs)("div",{className:"nav",children:[Object(g.jsx)("div",{className:"nav-title",children:Object(g.jsx)("img",{src:v,alt:""})}),Object(g.jsx)("div",{className:"nav-weather",children:Object(g.jsx)("iframe",{width:"360",height:"40",frameBorder:"0",scrolling:"no",hspace:"0",src:"https://i.tianqi.com/?c=code&a=getcode&id=40&icon=1"})})]}),Object(g.jsx)("div",{className:"tool-nav",children:Object(g.jsx)(I,{})}),Object(g.jsx)("div",{className:"container",children:Object(g.jsx)(te,{})}),Object(g.jsxs)("div",{className:"index-footer",children:["\u5151\u5427\u7814\u53d1\u4e2d\u5fc3\xb7\u676d\u5dde\u5151\u5427\u7f51\u7edc\u79d1\u6280\u6709\u9650\u516c\u53f8\u7248\u6743\u6240\u6709",Object(g.jsx)("br",{}),"\u6d59ICP\u590714017299\u53f7-1"]})]})};n(274);var ce=function(e){var t=Object($.f)(),n=Object(c.useContext)(h),i=n.fetchData,a=n.dataCenter,o=Object(c.useState)(!1),l=Object(b.a)(o,2),r=l[0],s=l[1],d=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object(c.useState)(e),n=Object(b.a)(t,2),i=n[0],a=n[1],o=Object(c.useCallback)((function(e,t){a((function(){return Object.assign({},Object(p.a)({},i),Object(j.a)({},e,t))}))}),[i]);return[i,o]}(),u=Object(b.a)(d,2),m=u[0],O=u[1],A=function(){i("/users/getUser",{uid:"100001"},"userInfo").then((function(e){return e.data.uid&&t.push("/")})).catch((function(e){return 70001===e.code&&s(!0)}))},f=function(){r?i("/users/login",{uid:"100001"}).then((function(){A()})):A()};return Object(c.useEffect)((function(){a.userInfo}),[a.userInfo]),Object(c.useEffect)((function(){f()}),[]),Object(g.jsx)("div",{className:"login",children:Object(g.jsxs)("div",{className:"loginDiv",children:[r&&Object(g.jsx)("input",{type:"text",onChange:function(e){return O("uid",e.target.value)},defaultValue:m.uid}),Object(g.jsx)("button",{className:"btn-login",onClick:function(){return f()},children:"\u767b\u5f55"})]})})},ie=n(91);var ae=function(){return Object(c.useEffect)((function(){console.log("%c+","font-size: 1px;\n padding: 122px 217px;\n background-image: url(https://yun.duiba.com.cn/spark/assets/cc8da992b527b3cd24da7df9a5be8b2361c2e549.jpg);\n background-size: contain;\n background-repeat: no-repeat;\n color: transparent;")}),[]),Object(g.jsx)(ie.a,{children:Object(g.jsx)(x,{children:Object(g.jsxs)($.c,{children:[Object(g.jsx)($.a,{exact:!0,path:"/login",component:ce}),Object(g.jsx)($.a,{exact:!0,path:"/",component:ne}),Object(g.jsx)($.a,{exact:!0,path:"/admin",component:ee})]})})})},oe=function(e){e&&e instanceof Function&&n.e(3).then(n.bind(null,288)).then((function(t){var n=t.getCLS,c=t.getFID,i=t.getFCP,a=t.getLCP,o=t.getTTFB;n(e),c(e),i(e),a(e),o(e)}))};u.a.locale("zh-cn"),o.a.render(Object(g.jsx)(i.a.StrictMode,{children:Object(g.jsx)(l.a,{locale:s.a,children:Object(g.jsx)(ae,{})})}),document.getElementById("root")),oe()}},[[279,1,2]]]);
//# sourceMappingURL=main.66c1a8e2.chunk.js.map
\ No newline at end of file
{"version":3,"sources":["dataCenter/reducer.js","config/apiConfig.js","dataCenter/action.js","dataCenter/Root.jsx","static/logo.png","component/ToolType/ToolType.jsx","static/setting.svg","static/trash.svg","static/dragIcon.svg","modal/ToolModal.jsx","component/ContentAdmin/ContentItemAdmin.jsx","component/Content/ContentItem.jsx","static/followed.png","static/notFollow.png","component/ContentAdmin/Content.jsx","modal/PublishModal.jsx","modal/TypeModal.jsx","modal/PageModal.jsx","modal/RemoveType.jsx","component/AdminIndex/AdminIndex.jsx","page/indexAdmin/index.jsx","component/Content/Content.jsx","page/index/index.jsx","page/login/login.jsx","utils/hook.js","App.js","reportWebVitals.js","index.js"],"names":["initDataCenter","toolBox","type","childType","userInfo","needUpdateIndex","type_id","child_type_id","deepFreeze","obj","Object","getOwnPropertyNames","forEach","name","prop","freeze","dataReducer","state","action","console","table","assign","data","apiConfig","domain","window","location","hostname","CHANGE_TYPE","Root","createContext","PopContext","DataCenter","props","useReducer","dataCenter","dispatch","Provider","value","fetchData","path","requestData","dataName","fetch","paramsStr","keys","map","v","i","join","log","generateUrl","credentials","then","res","json","success","catch","e","error","children","ChildTypeItem","useContext","child_type_name","classNameArr","push","className","onClick","CHANGE_CHILD_TYPE","ToolType","length","type_name","Option","Select","ToolModal","visible","onCancel","Form","useForm","form","useEffect","title","okText","cancelText","onOk","validateFields","values","input","toolbox_name","toolbox_icon","icon","toolbox_desc","depict","toolbox_url","url","message","onCreate","info","labelCol","span","wrapperCol","initialValues","Item","label","rules","required","placeholder","onChange","setFieldsValue","allowClear","ContentItemAdmin","useState","setVisible","showPop","toolbox_id","follow","itemIcon","setItemIcon","jumpUrl","href","src","dragIcon","alt","setting","trash","deleteItem","onError","ContentItem","isFollow","setIsFollow","includes","_follow","slice","index","indexOf","splice","JSON","stringify","uid","Content","filter","PublishModal","code","setcode","page_name","setPageName","oldCode","method","headers","body","page_id","response","width","defaultValue","target","editor","options","styleActiveLine","lineNumbers","theme","tabSize","keyMap","mode","smartIndent","lineWrapping","autofocus","TypeModal","Tabs","TabPane","queryData","React","setValue","isRemove","modifier","Group","hasFeedback","PageModal","onPublish","publish","setPublish","pageData","setpageData","columns","dataIndex","align","render","text","record","size","pageUrl","key","dataSource","queryPage","pagination","pageSize","RemoveType","typeModal","setTypeModal","typeData","settypeData","oldData","setoldData","changeData","list","cb","item","newData","onConfirm","AdminIndex","pageModal","setpageModal","removeType","setremoveType","Index","history","useHistory","_typeId","hidePop","setPop","popName","uname","logo","height","frameBorder","scrolling","hspace","Login","needLogin","setNeedLogin","setInput","setInputData","useCallback","useFormState","getUser","doLogin","App","exact","component","IndexAdmin","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","moment","locale","ReactDOM","StrictMode","zhCN","document","getElementById"],"mappings":"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","file":"static/js/main.66c1a8e2.chunk.js","sourcesContent":["const initDataCenter = {\r\n toolBox: null,\r\n type: null,\r\n childType: null,\r\n userInfo: null,\r\n needUpdateIndex: false,\r\n type_id: 'follow',\r\n child_type_id: 'all'\r\n}\r\n\r\n/**\r\n * deepFreeze()\r\n * @param obj\r\n * @returns {unknown[]}\r\n */\r\nfunction deepFreeze(obj) {\r\n // 取回定义在obj上的属性名\r\n let propNames = Object.getOwnPropertyNames(obj);\r\n\r\n // 在冻结自身之前冻结属性\r\n propNames.forEach(function (name) {\r\n let prop = obj[name];\r\n\r\n // 如果prop是个对象,冻结它\r\n if (typeof prop == 'object' && prop !== null)\r\n deepFreeze(prop);\r\n });\r\n\r\n // 冻结自身(no-op if already frozen)\r\n return Object.freeze(obj);\r\n}\r\n\r\n//任何修改原始对象的操作都是禁止的!\r\ndeepFreeze(initDataCenter)\r\n\r\nconst dataReducer = (state, action) => {\r\n // console.log(action)\r\n console.table(action,['dataCenter的dispatch'])\r\n switch (action.type) {\r\n case 'UPDATE_DATA':\r\n return Object.assign({}, state, {\r\n ...action.data\r\n })\r\n case 'NEED_UPDATE_INDEX':\r\n return Object.assign({}, state, {needUpdateIndex: !state.needUpdateIndex})\r\n case 'CHANGE_TYPE':\r\n return Object.assign({}, state, {type_id: action.type_id})\r\n case 'CHANGE_CHILD_TYPE':\r\n return Object.assign({}, state, {child_type_id: action.child_type_id})\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport {\r\n initDataCenter,\r\n dataReducer,\r\n}\r\n","const apiConfig = {\r\n domain: 'http://' + window.location.hostname + ':3000',\r\n // domain: 'http://127.0.0.1:3001',\r\n}\r\n\r\nexport default apiConfig\r\n","const UPDATE_DATA = data => ({type: 'UPDATE_DATA', data: {...data}})\r\nconst NEED_UPDATE_INDEX = () => ({type: 'NEED_UPDATE_INDEX'})\r\nconst CHANGE_TYPE = type_id => ({type: 'CHANGE_TYPE', type_id: type_id})\r\nconst CHANGE_CHILD_TYPE = child_type_id => ({type: 'CHANGE_CHILD_TYPE', child_type_id: child_type_id})\r\n\r\nexport {\r\n UPDATE_DATA,\r\n NEED_UPDATE_INDEX,\r\n CHANGE_TYPE,\r\n CHANGE_CHILD_TYPE\r\n}\r\n","import React, {createContext, useReducer} from \"react\";\r\nimport {dataReducer, initDataCenter} from \"./reducer\";\r\nimport apiConfig from \"../config/apiConfig\";\r\nimport {UPDATE_DATA} from \"./action\";\r\n\r\nconst Root = createContext({})\r\nconst PopContext = createContext({})\r\n\r\nfunction DataCenter(props) {\r\n const [dataCenter, dispatch] = useReducer(dataReducer, initDataCenter, () => {\r\n return initDataCenter\r\n })\r\n\r\n const generateUrl = (path, requestData) => {\r\n if (requestData) {\r\n const keyArr = Object.keys(requestData)\r\n const paramsStr = keyArr.map((v, i) => {\r\n if (i === 0) {\r\n return '?' + v + '=' + requestData[v]\r\n } else {\r\n return '&' + v + '=' + requestData[v]\r\n }\r\n }).join('')\r\n console.log('发送请求:', apiConfig.domain + path + paramsStr)\r\n return apiConfig.domain + path + paramsStr\r\n }\r\n return apiConfig.domain + path\r\n }\r\n\r\n const fetchData = (path, requestData, dataName) =>\r\n fetch(generateUrl(path, requestData), {credentials: 'include'})\r\n .then(res => res.json())\r\n .then(res => {\r\n console.log(res);\r\n if (res.success) {\r\n !!dataName && dispatch(UPDATE_DATA({[dataName]: res.data}))\r\n } else {\r\n throw res\r\n }\r\n return res\r\n })\r\n .catch(e => {\r\n console.error(e)\r\n throw e\r\n })\r\n\r\n\r\n return (\r\n <Root.Provider value={{dataCenter, dispatch, fetchData}}>\r\n {\r\n props.children\r\n }\r\n </Root.Provider>\r\n )\r\n}\r\n\r\nexport {\r\n Root,\r\n PopContext,\r\n}\r\nexport default DataCenter\r\n\r\n","export default __webpack_public_path__ + \"static/media/logo.c725c5d1.png\";","import './ToolType.scss'\r\nimport {useContext} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\nimport {CHANGE_CHILD_TYPE, CHANGE_TYPE} from \"../../dataCenter/action\";\r\n\r\nconst ChildTypeItem = props => {\r\n const {dataCenter, dispatch} = useContext(Root)\r\n const {child_type_id, child_type_name} = props\r\n const classNameArr = ['child-type-item']\r\n if (child_type_id === dataCenter.child_type_id) {\r\n classNameArr.push('child-type-item-selected')\r\n }\r\n const handleClick = () => {\r\n console.log(child_type_id)\r\n dispatch(CHANGE_CHILD_TYPE(child_type_id))\r\n }\r\n return (\r\n <div className={classNameArr.join(' ')} onClick={handleClick}>{child_type_name}</div>\r\n )\r\n}\r\n\r\n\r\nfunction ToolType(props) {\r\n const {dataCenter, dispatch} = useContext(Root)\r\n return (\r\n <>\r\n <div className=\"tab-tool-type\">\r\n <div className={dataCenter.type_id === 'follow' ? 'item-tool-type item-tool-type-selected' : 'item-tool-type'}\r\n onClick={() => dispatch(CHANGE_TYPE('follow'))}>我的收藏\r\n </div>\r\n {\r\n dataCenter?.type?.length > 0 && dataCenter.type.map(v => {\r\n const classNameArr = ['item-tool-type ']\r\n if (v[\"type_id\"] === dataCenter.type_id) classNameArr.push('item-tool-type-selected')\r\n return (\r\n <div key={v[\"type_id\"]} className={classNameArr.join('')}\r\n onClick={() => dispatch(CHANGE_TYPE( v[\"type_id\"]))}>{v.type_name}</div>\r\n )\r\n })\r\n }\r\n </div>\r\n <div className=\"child-type\">\r\n <ChildTypeItem key={'all'} child_type_id={'all'} child_type_name={'全部'}/>\r\n {\r\n dataCenter?.childType?.length > 0 && dataCenter?.childType.map(v => {\r\n return (\r\n <ChildTypeItem key={v.child_type_id} child_type_id={v.child_type_id}\r\n child_type_name={v.child_type_name}/>\r\n )\r\n })\r\n }\r\n </div>\r\n </>\r\n )\r\n}\r\n\r\nexport default ToolType\r\n","export default __webpack_public_path__ + \"static/media/setting.6a716d85.svg\";","export default __webpack_public_path__ + \"static/media/trash.780a90e8.svg\";","export default __webpack_public_path__ + \"static/media/dragIcon.268403b1.svg\";","import React, { useState, useEffect, useContext } from 'react';\r\nimport { Root } from \"../dataCenter/Root\";\r\nimport { Button, Modal, Form, Input, Radio, Select, message } from 'antd';\r\nimport { NEED_UPDATE_INDEX } from \"../dataCenter/action\";\r\nconst { Option } = Select;\r\nconst ToolModal = ({ visible, onCancel, data }) => {\r\n const [form] = Form.useForm();\r\n const { fetchData, dataCenter, dispatch } = useContext(Root)\r\n const formItemLayout = {\r\n labelCol: { span: 4 },\r\n wrapperCol: { span: 18 },\r\n };\r\n const onCreate = (values) => {\r\n let input = {\r\n toolbox_name: values.name,\r\n toolbox_icon: values.icon,\r\n toolbox_desc: values.depict,\r\n toolbox_url: values.url,\r\n\r\n }\r\n if (!data) {\r\n input = {\r\n ...input,\r\n type_id: values.type,\r\n child_type_id: values.childType\r\n }\r\n console.log(input);\r\n fetchData('/add/addToolBox', input)\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('新建成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n onCancel()\r\n } else {\r\n message.error('新建失败')\r\n }\r\n })\r\n\r\n } else {\r\n fetchData('/update/updateToolBox', input)\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('修改成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n onCancel()\r\n } else {\r\n message.error('新建失败')\r\n }\r\n })\r\n }\r\n };\r\n\r\n const onGenderChange = (value) => {\r\n form.setFieldsValue({\r\n type: value,\r\n });\r\n fetchData('/query/queryChildType', { type_id: value }, 'childType')\r\n .then((res) => {\r\n\r\n console.log(res);\r\n })\r\n console.log(dataCenter);\r\n };\r\n const onChildGenderChange = (value) => {\r\n form.setFieldsValue({\r\n childType: value,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n dataCenter?.type && fetchData('/query/queryChildType', { type_id: dataCenter?.type[0]?.type_id }, 'childType')\r\n .then((res) => {\r\n\r\n console.log(res);\r\n })\r\n }, [])\r\n\r\n return (\r\n <Modal\r\n visible={visible}\r\n title={data ? '修改工具箱' : '新建工具箱'}\r\n okText=\"确定\"\r\n cancelText=\"取消\"\r\n onCancel={onCancel}\r\n onOk={() => {\r\n form\r\n .validateFields()\r\n .then((values) => {\r\n // form.resetFields();\r\n onCreate(values);\r\n })\r\n .catch((info) => {\r\n console.log('Validate Failed:', info);\r\n });\r\n }}\r\n >\r\n <Form\r\n form={form}\r\n // layout=\"vertical\"\r\n {...formItemLayout}\r\n name=\"form_in_modal\"\r\n initialValues={data ? {\r\n name: data.toolbox_name,\r\n icon: data.toolbox_icon,\r\n url: data.toolbox_url,\r\n depict: data.toolbox_desc,\r\n } : { type: dataCenter?.type && dataCenter?.type[0]?.type_id }}\r\n >\r\n <Form.Item\r\n name=\"name\"\r\n label=\"名称\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入名称!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入名称\" />\r\n </Form.Item>\r\n <Form.Item name=\"icon\"\r\n label=\"图标\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入图标url!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入图标url\" />\r\n </Form.Item>\r\n <Form.Item\r\n name=\"depict\"\r\n label=\"描述\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入描述!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入描述\" />\r\n </Form.Item>\r\n <Form.Item\r\n name=\"url\"\r\n label=\"链接\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入链接!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入链接\" />\r\n </Form.Item>\r\n {!data && <Form.Item\r\n name=\"type\"\r\n label=\"类型\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请选择类型!',\r\n },\r\n ]}\r\n >\r\n <Select\r\n placeholder=\"请选择类型\"\r\n onChange={onGenderChange}\r\n // allowClear\r\n >\r\n {\r\n dataCenter?.type?.length && dataCenter?.type.map(v => {\r\n return (\r\n <Option key={v.type_id} value={v.type_id}>{v.type_name}</Option>\r\n )\r\n })\r\n }\r\n\r\n </Select>\r\n </Form.Item>}\r\n {!data && dataCenter?.childType && <Form.Item\r\n name=\"childType\"\r\n label=\"子类型\"\r\n >\r\n <Select\r\n placeholder=\"请选择子类型\"\r\n onChange={onChildGenderChange}\r\n allowClear\r\n >\r\n {\r\n dataCenter?.childType?.length && dataCenter?.childType.map(v => {\r\n return (\r\n <Option key={v.child_type_id} value={v.child_type_id}>{v.child_type_name}</Option>\r\n )\r\n })\r\n }\r\n\r\n </Select>\r\n </Form.Item>}\r\n </Form>\r\n </Modal>\r\n );\r\n};\r\nexport default ToolModal\r\n","import './ContentItem.scss'\r\nimport notFollow from '../../static/notFollow.png'\r\nimport followed from '../../static/followed.png'\r\nimport setting from '../../static/setting.svg'\r\nimport trash from '../../static/trash.svg'\r\nimport dragIcon from '../../static/dragIcon.svg'\r\nimport {useContext, useState} from \"react\";\r\nimport {PopContext, Root} from \"../../dataCenter/Root\";\r\nimport ToolModal from \"../../modal/ToolModal\"\r\n\r\nfunction ContentItemAdmin(props) {\r\n const [visible, setVisible] = useState(false)\r\n\r\n const {fetchData} = useContext(Root)\r\n const {showPop} = useContext(PopContext)\r\n\r\n const {toolbox_icon, toolbox_name, toolbox_desc, toolbox_url, follow, toolbox_id} = props.value\r\n\r\n const [itemIcon, setItemIcon] = useState(toolbox_icon)\r\n\r\n const jumpUrl = url => {\r\n window.location.href = url\r\n }\r\n const deleteItem = toolbox_id => {\r\n fetchData('/delete/deleteToolBoxById', {toolbox_id})\r\n }\r\n\r\n return (\r\n <div className=\"content-item\">\r\n <div className=\"content-adminTool\">\r\n <img src={dragIcon} alt=\"\"/>\r\n <img src={setting} alt=\"\" onClick={() => setVisible(true)}/>\r\n <img src={trash} alt=\"\" onClick={() => deleteItem(toolbox_id)}/>\r\n </div>\r\n <div className=\"item-icon\" onClick={() => jumpUrl(toolbox_url)}>\r\n {\r\n !itemIcon && <div className=\"defaultIcon\">{toolbox_name[0]}</div>\r\n }\r\n {\r\n itemIcon && <img src={itemIcon} alt='' onError={e => setItemIcon(null)}/>\r\n }\r\n </div>\r\n <div className=\"item-name\" onClick={() => jumpUrl(toolbox_url)}>{toolbox_name}</div>\r\n <div className=\"item-desc\">{toolbox_desc}</div>\r\n <a className='item-url' href={toolbox_url}>{toolbox_url}</a>\r\n {/*<div className=\"follow\">*/}\r\n {/* <img className='icon-follow' src={follow ? followed : notFollow} alt=\"\"/>*/}\r\n {/* 收藏*/}\r\n {/*</div>*/}\r\n {visible && <ToolModal\r\n visible={visible}\r\n onCancel={() =>\r\n setVisible(false)\r\n }\r\n data={props.value}\r\n />}\r\n </div>\r\n\r\n )\r\n}\r\n\r\nexport default ContentItemAdmin\r\n","import './ContentItem.scss'\r\nimport notFollow from '../../static/notFollow.png'\r\nimport followed from '../../static/followed.png'\r\nimport {useContext, useEffect, useState} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\n\r\nfunction ContentItem(props) {\r\n const {dataCenter, fetchData} = useContext(Root)\r\n const {toolbox_icon, toolbox_name, toolbox_desc, toolbox_url, toolbox_id} = props.value\r\n const [isFollow, setIsFollow] = useState(false)\r\n const [itemIcon, setItemIcon] = useState(toolbox_icon)\r\n\r\n const jumpUrl = url => window.location.href = url\r\n\r\n const follow = () => {\r\n const _follow = dataCenter.userInfo.follow.slice()\r\n if (!isFollow) {\r\n _follow.push(toolbox_id)\r\n } else {\r\n const index = _follow.indexOf(toolbox_id)\r\n _follow.splice(index, 1)\r\n }\r\n console.log( {follow: JSON.stringify(_follow), uid: dataCenter.userInfo.uid})\r\n fetchData('/users/follow', {follow: JSON.stringify(_follow), uid: dataCenter.userInfo.uid})\r\n .then(() => fetchData('/users/getUser', {uid: 100001}, 'userInfo'))\r\n }\r\n\r\n useEffect(() => {\r\n if (dataCenter.userInfo?.follow.includes(toolbox_id)) {\r\n setIsFollow(true)\r\n } else {\r\n setIsFollow(false)\r\n }\r\n }, [dataCenter.toolBox, dataCenter.userInfo])\r\n\r\n return (\r\n <div className=\"content-item\">\r\n <div className=\"item-icon\" onClick={() => jumpUrl(toolbox_url)}>\r\n {\r\n !itemIcon && <div className=\"defaultIcon\">{toolbox_name[0]}</div>\r\n }\r\n {\r\n itemIcon && <img src={itemIcon} alt='' onError={e => setItemIcon(null)}/>\r\n }\r\n\r\n </div>\r\n <div className=\"item-name\" onClick={() => jumpUrl(toolbox_url)}>{toolbox_name}</div>\r\n <div className=\"item-desc\">{toolbox_desc}</div>\r\n <a className='item-url' href={toolbox_url}>{toolbox_url}</a>\r\n <div className=\"follow\">\r\n <img className='icon-follow' src={isFollow ? followed : notFollow} alt=\"\" onClick={() => follow()}/>\r\n 收藏\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default ContentItem\r\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","import './Content.scss'\r\nimport ContentItemAdmin from \"./ContentItemAdmin\";\r\nimport {useContext} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\nimport ContentItem from \"../Content/ContentItem\";\r\n\r\nfunction Content(props) {\r\n const {dataCenter} = useContext(Root)\r\n\r\n return (\r\n <div className=\"content\">\r\n {\r\n dataCenter.toolBox?.length ? dataCenter?.toolBox?.filter(v => {\r\n if (dataCenter.child_type_id === 'all') return true\r\n else return v.child_type_id === dataCenter.child_type_id\r\n }).map(v => {\r\n return (\r\n <ContentItemAdmin key={v['toolbox_id']} value={v}/>\r\n )\r\n })\r\n :\r\n '没有数据了!'\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport default Content\r\n","import './PublishModal.scss'\r\nimport React, {useContext, useEffect, useState} from 'react';\r\nimport {Root} from \"../dataCenter/Root\";\r\nimport {UnControlled as CodeMirror} from 'react-codemirror2'\r\nimport {Form, Input, message, Modal, Select} from 'antd';\r\nimport apiConfig from \"../config/apiConfig\";\r\n\r\nimport 'codemirror/addon/display/autorefresh';\r\nimport 'codemirror/addon/comment/comment';\r\nimport 'codemirror/addon/edit/matchbrackets';\r\nimport 'codemirror/keymap/sublime';\r\nimport 'codemirror/theme/eclipse.css';\r\nimport 'codemirror/theme/monokai.css';\r\nimport 'codemirror/lib/codemirror.js';\r\nimport 'codemirror/lib/codemirror.css';\r\nimport 'codemirror/theme/solarized.css'\r\nimport 'codemirror/mode/javascript/javascript'\r\nimport 'codemirror/addon/selection/active-line';\r\nimport 'codemirror/addon/fold/foldgutter.css';\r\n\r\nconst { Option } = Select;\r\n\r\n\r\nconst PublishModal = ({ visible, onCancel, data }) => {\r\n const [code, setcode] = useState('')\r\n const [page_name, setPageName] = useState('')\r\n const [oldCode, setoldCode] = useState('')\r\n const { fetchData, dataCenter } = useContext(Root)\r\n const onCreate = (values) => {\r\n console.log(code);\r\n\r\n if (!code || !page_name) {\r\n message.error('请补全信息!')\r\n return\r\n }\r\n if (data) {\r\n fetch(`${apiConfig.domain}/page/updatePage`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n page_id: data.page_id,\r\n page_name: page_name,\r\n code: code\r\n })\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n if (data.success) {\r\n onCancel()\r\n message.success('替换成功!')\r\n dataCenter?.type && fetchData('/page/queryPage', {}, 'queryPage')\r\n .then((res) => {\r\n\r\n })\r\n } else {\r\n message.error( '替换失败')\r\n }\r\n });\r\n } else {\r\n fetch(`${apiConfig.domain}/page/addPage`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n page_name: page_name,\r\n code: code\r\n })\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n if (data.success) {\r\n onCancel()\r\n message.success('发布成功!')\r\n dataCenter?.type && fetchData('/page/queryPage', {}, 'queryPage')\r\n .then((res) => {\r\n\r\n })\r\n } else {\r\n message.error(data.error || '发布失败')\r\n }\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n data&&setPageName(data.page_name)\r\n }, [data])\r\n\r\n return (\r\n <Modal\r\n visible={visible}\r\n title=\"发布\"\r\n okText=\"发布\"\r\n cancelText=\"取消\"\r\n onCancel={onCancel}\r\n onOk={onCreate}\r\n width='1000px'\r\n >\r\n <Form.Item\r\n name=\"page_name\"\r\n label=\"页面名称\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入页面名称!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入页面名称\" defaultValue={data?.page_name ? data.page_name : page_name} onChange={(e) => { setPageName(e.target.value) }} />\r\n </Form.Item>\r\n <Form.Item\r\n name=\"type\"\r\n label=\"布局代码\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入页面名称!',\r\n },\r\n ]}\r\n >\r\n <div className='codeMain'>\r\n <CodeMirror\r\n onChange={(editor, data, value) => {\r\n setcode(value)\r\n }}\r\n value={oldCode}\r\n options={{\r\n styleActiveLine: true,//光标代码高亮\r\n lineNumbers: true,\r\n theme: 'monokai',\r\n tabSize: 2,\r\n keyMap: 'sublime',\r\n mode: 'text/javascript',\r\n smartIndent: true, //自动缩进\r\n lineWrapping: true,\r\n autofocus: true\r\n }}\r\n />\r\n </div>\r\n </Form.Item>\r\n </Modal>\r\n );\r\n};\r\nexport default PublishModal\r\n","import React from 'react';\r\nimport { Button, Modal, Form, Input, Radio, Select, message, Tabs } from 'antd';\r\nimport { useContext, useEffect, useState } from \"react\";\r\nimport { Root } from \"../dataCenter/Root\";\r\nimport { NEED_UPDATE_INDEX } from \"../dataCenter/action\";\r\nconst { Option } = Select;\r\nconst { TabPane } = Tabs;\r\nconst TypeModal = ({ visible, onCancel, queryData, data }) => {\r\n console.log(data);\r\n const [form] = Form.useForm();\r\n if (data) {\r\n form.setFieldsValue({\r\n type_name: data.type_name,\r\n });\r\n }\r\n const formItemLayout = {\r\n labelCol: { span: 4 },\r\n wrapperCol: { span: 18 },\r\n };\r\n\r\n const { fetchData, dataCenter, dispatch } = useContext(Root)\r\n const [value, setValue] = React.useState(1);\r\n\r\n\r\n const onCreate = (values) => {\r\n if (data) {\r\n console.log(data);\r\n\r\n let input = {\r\n type_id: '',\r\n type_name: ''\r\n }\r\n if (!data.isRemove) {\r\n input = {\r\n type_id: data.type_id,\r\n type_name: values.type_name\r\n }\r\n } else {\r\n input = {\r\n child_type_id: data.type_id,\r\n child_type_name: values.type_name\r\n }\r\n }\r\n fetchData('/typeManage/updateType', input)\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('修改成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n queryData()\r\n onCancel()\r\n }\r\n })\r\n } else {\r\n console.log(values);\r\n fetchData('/add/addType', values)\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('新建成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n onCancel()\r\n }\r\n })\r\n }\r\n\r\n };\r\n // function callback(key) {\r\n // console.log(key);\r\n // }\r\n\r\n const onChange = e => {\r\n console.log('radio checked', e.target.value);\r\n setValue(e.target.value);\r\n };\r\n\r\n const onGenderChange = (value) => {\r\n form.setFieldsValue({\r\n type_id: value,\r\n });\r\n };\r\n\r\n return (\r\n <Modal\r\n visible={visible}\r\n title={`${data ? '修改' : '新建'}类型`}\r\n okText=\"确定\"\r\n cancelText=\"取消\"\r\n onCancel={onCancel}\r\n onOk={() => {\r\n form\r\n .validateFields()\r\n .then((values) => {\r\n // form.resetFields();\r\n onCreate(values);\r\n })\r\n .catch((info) => {\r\n console.log('Validate Failed:', info);\r\n });\r\n }}\r\n >\r\n <Form\r\n form={form}\r\n // layout=\"vertical\"\r\n {...formItemLayout}\r\n name=\"form_in_modal\"\r\n initialValues={{\r\n modifier: 'public',\r\n 'radio-group': 1\r\n }}\r\n >\r\n\r\n {!data && <Form.Item name=\"radio-group\" label=\"类型\">\r\n <Radio.Group onChange={onChange} value={value}>\r\n <Radio value={1}>父类型</Radio>\r\n <Radio value={2}>子类型</Radio>\r\n </Radio.Group>\r\n </Form.Item>}\r\n {value === 1 || data ? <Form.Item\r\n name=\"type_name\"\r\n label={`${data ? '' : '父'}类型`}\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入类型名称!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入类型名称\" />\r\n </Form.Item> :\r\n <>\r\n <Form.Item\r\n name=\"type_id\"\r\n label=\"父类型\"\r\n hasFeedback\r\n rules={[{ required: true, message: '请选择父类型!' }]}\r\n >\r\n <Select\r\n placeholder=\"请选择父类型\"\r\n onChange={onGenderChange}\r\n // allowClear\r\n >\r\n {\r\n dataCenter?.type?.length && dataCenter?.type.map(v => {\r\n return (\r\n <Option key={v.type_id} value={v.type_id}>{v.type_name}</Option>\r\n )\r\n })\r\n }\r\n\r\n </Select>\r\n </Form.Item>\r\n <Form.Item\r\n name=\"child_type_name\"\r\n label=\"子类型\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入类型名称!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入类型名称\" />\r\n </Form.Item>\r\n </>\r\n\r\n }\r\n </Form>\r\n </Modal>\r\n );\r\n};\r\nexport default TypeModal\r\n","import React, {useContext, useEffect, useState} from 'react';\r\nimport {Root} from \"../dataCenter/Root\";\r\nimport {Modal, Space, Table} from 'antd';\r\nimport PublishModal from \"./PublishModal\"\r\n\r\nfunction PageModal({ visible, onCancel, onPublish }) {\r\n\r\n const [publish, setPublish] = useState(false)\r\n const [pageData, setpageData] = useState('')\r\n const { fetchData, dataCenter } = useContext(Root)\r\n\r\n const onChangePage = (values) => {\r\n console.log(values);\r\n setpageData(values);\r\n setPublish(true)\r\n };\r\n const onRemovePage = (values) => {\r\n console.log(values);\r\n // setVisible(false);\r\n };\r\n\r\n\r\n\r\n const columns = [\r\n {\r\n title: '页面Id',\r\n dataIndex: 'page_id',\r\n width: 150,\r\n align: 'center'\r\n },\r\n {\r\n title: '页面名称',\r\n dataIndex: 'page_name',\r\n width: 200,\r\n align: 'center'\r\n },\r\n {\r\n title: '页面Url',\r\n dataIndex: 'pageUrl',\r\n width: 300,\r\n align: 'center',\r\n render: (text, record) => (\r\n <Space size=\"middle\">\r\n <a href={record.pageUrl}>{record.pageUrl}</a>\r\n </Space>\r\n ),\r\n },\r\n {\r\n title: '操作',\r\n key: 'action',\r\n align: 'center',\r\n width: 100,\r\n render: (text, record) => (\r\n <Space size=\"middle\">\r\n <a onClick={() => onChangePage(record)}>替换</a>\r\n {/* <a onClick={() => onRemovePage(record)}>删除</a> */}\r\n </Space>\r\n ),\r\n },\r\n ];\r\n\r\n\r\n useEffect(() => {\r\n console.log(dataCenter);\r\n dataCenter?.type && fetchData('/page/queryPage', {}, 'queryPage')\r\n .then((res) => {\r\n })\r\n }, [])\r\n\r\n\r\n const data = [\r\n {\r\n key: '1',\r\n name: '1 Brown',\r\n age: 32,\r\n address: 'New York No. 1 Lake Park',\r\n },\r\n {\r\n key: '2',\r\n name: '2 Green',\r\n age: 42,\r\n address: 'London No. 1 Lake Park',\r\n },\r\n {\r\n key: '3',\r\n name: '3 Black',\r\n age: 32,\r\n address: 'Sidney No. 1 Lake Park',\r\n },\r\n {\r\n key: '4',\r\n name: '4 Brown',\r\n age: 32,\r\n address: 'New York No. 1 Lake Park',\r\n },\r\n {\r\n key: '5',\r\n name: '5 Green',\r\n age: 42,\r\n address: 'London No. 1 Lake Park',\r\n },\r\n {\r\n key: '6',\r\n name: '6 Black',\r\n age: 32,\r\n address: 'Sidney No. 1 Lake Park',\r\n },\r\n {\r\n key: '7',\r\n name: '7 Brown',\r\n age: 32,\r\n address: 'New York No. 1 Lake Park',\r\n },\r\n {\r\n key: '8',\r\n name: '8 Green',\r\n age: 42,\r\n address: 'London No. 1 Lake Park',\r\n },\r\n {\r\n key: '9',\r\n name: '9 Black',\r\n age: 32,\r\n address: 'Sidney No. 1 Lake Park',\r\n },\r\n {\r\n key: '10',\r\n name: '10 Brown',\r\n age: 32,\r\n address: 'New York No. 1 Lake Park',\r\n },\r\n {\r\n key: '11',\r\n name: '11 Green',\r\n age: 42,\r\n address: 'London No. 1 Lake Park',\r\n },\r\n {\r\n key: '12',\r\n name: '12 Black',\r\n age: 32,\r\n address: 'Sidney No. 1 Lake Park',\r\n },\r\n ];\r\n return (\r\n <>\r\n <Modal\r\n visible={visible}\r\n title=\"页面管理\"\r\n okText=\"确定\"\r\n cancelText=\"取消\"\r\n width='1000px'\r\n onCancel={onCancel}\r\n onOk={onCancel}\r\n >\r\n <Table columns={columns} dataSource={dataCenter?.queryPage && dataCenter.queryPage} pagination={{ pageSize: 10 }} size=\"middle\" />\r\n </Modal>\r\n {publish && <PublishModal\r\n visible={publish}\r\n onCancel={() =>\r\n setPublish(false)\r\n }\r\n data={pageData}\r\n />}\r\n </>\r\n )\r\n}\r\n\r\nexport default PageModal\r\n","import { Menu, Modal, Popconfirm, Space, Table, message } from 'antd';\r\nimport React, { useContext, useEffect, useState } from 'react';\r\nimport TypeModal from '../modal/TypeModal'\r\nimport { NEED_UPDATE_INDEX } from \"../dataCenter/action\";\r\nimport { Root } from \"../dataCenter/Root\";\r\n\r\nconst menu = (\r\n <Menu>\r\n <Menu.Item>Action 1</Menu.Item>\r\n <Menu.Item>Action 2</Menu.Item>\r\n </Menu>\r\n);\r\n\r\nfunction RemoveType({ visible, onCancel }) {\r\n\r\n const [typeModal, setTypeModal] = useState(false)\r\n const [typeData, settypeData] = useState('')\r\n const [oldData, setoldData] = useState('')\r\n const { fetchData, dataCenter, dispatch } = useContext(Root)\r\n\r\n const changType = (data) => {\r\n setoldData(data)\r\n setTypeModal(true)\r\n }\r\n\r\n const changeData = (list, cb) => {\r\n return list.map((item, index) => {\r\n const res = cb(item);\r\n if (item.children) res.children = changeData(item.children, item => ({\r\n isRemove: true,\r\n key: item.child_type_id,\r\n type_id: item.child_type_id,\r\n type_name: item.child_type_name,\r\n }));\r\n return res;\r\n })\r\n }\r\n\r\n const removeType = (data) => {\r\n fetchData('/typeManage/deleteChildType', { child_type_id: data.type_id })\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('刪除成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n queryData()\r\n // onCancel()\r\n }else{\r\n message.error('刪除失败')\r\n }\r\n })\r\n }\r\n\r\n const queryData = () => {\r\n dataCenter?.type && fetchData('/typeManage/queryTypeForManage', {}, 'childTypeData')\r\n .then((res) => {\r\n // console.log(res.data);\r\n const newData = changeData(res.data, item => ({\r\n key: item.type_id,\r\n type_id: item.type_id,\r\n type_name: item.type_name,\r\n }));\r\n // console.log(newData);\r\n settypeData(newData)\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n queryData()\r\n }, [])\r\n\r\n const columns = [\r\n { title: '类型名', width: 100, dataIndex: 'type_name', key: 'type_name' },\r\n { title: 'Id', width: 100, dataIndex: 'type_id', align: 'center', key: 'type_id' },\r\n {\r\n title: '操作', width: 100, key: 'operation', align: 'center',\r\n render: (text, record) => (\r\n <Space size=\"middle\">\r\n {record.isRemove && <Popconfirm title=\"确定删除吗?\" okText=\"确定\" cancelText=\"取消\" onConfirm={() => removeType(record)}>\r\n <a href=\"#\" >删除</a>\r\n </Popconfirm>}\r\n <a href=\"#\" onClick={() => changType(record)}>修改</a>\r\n </Space>\r\n )\r\n },\r\n ];\r\n\r\n return (\r\n <Modal\r\n visible={visible}\r\n title=\"类型管理\"\r\n okText=\"确定\"\r\n cancelText=\"取消\"\r\n width='1000px'\r\n onCancel={onCancel}\r\n onOk={onCancel}\r\n >\r\n <Table\r\n columns={columns}\r\n dataSource={typeData}\r\n />\r\n {typeModal && <TypeModal\r\n visible={typeModal}\r\n onCancel={() =>\r\n setTypeModal(false)\r\n }\r\n queryData={() =>\r\n queryData()\r\n }\r\n data={oldData}\r\n />}\r\n </Modal>\r\n\r\n );\r\n}\r\nexport default RemoveType\r\n","import React, {useState} from 'react'\r\nimport './AdminIndex.scss'\r\nimport {Button} from 'antd';\r\nimport ToolModal from '../../modal/ToolModal'\r\nimport PublishModal from '../../modal/PublishModal'\r\nimport TypeModal from '../../modal/TypeModal'\r\nimport PageModal from '../../modal/PageModal'\r\nimport RemoveType from '../../modal/RemoveType'\r\n\r\nfunction AdminIndex() {\r\n const [visible, setVisible] = useState(false)\r\n const [publish, setPublish] = useState(false)\r\n const [typeModal, setTypeModal] = useState(false)\r\n const [pageModal, setpageModal] = useState(false)\r\n const [removeType, setremoveType] = useState(false)\r\n\r\n return (\r\n <div className='admin'>\r\n <Button onClick={() => setVisible(true)}>新建工具盒</Button>\r\n <Button onClick={() => setTypeModal(true)}>新建类型</Button>\r\n <Button onClick={() => setPublish(true)}>发布</Button>\r\n <Button onClick={() => setpageModal(true)}>页面管理</Button>\r\n <Button onClick={() => setremoveType(true)}>类型管理</Button>\r\n {visible && <ToolModal\r\n visible={visible}\r\n onCancel={() =>\r\n setVisible(false)\r\n }\r\n />}\r\n {publish && <PublishModal\r\n visible={publish}\r\n onCancel={() =>\r\n setPublish(false)\r\n }\r\n />}\r\n {typeModal && <TypeModal\r\n visible={typeModal}\r\n onCancel={() =>\r\n setTypeModal(false)\r\n }\r\n />}\r\n {pageModal && <PageModal\r\n visible={pageModal}\r\n onCancel={() =>\r\n setpageModal(false)\r\n }\r\n />}\r\n {removeType && <RemoveType\r\n visible={removeType}\r\n onCancel={() =>\r\n setremoveType(false)\r\n }\r\n />}\r\n </div>\r\n )\r\n}\r\n\r\nexport default AdminIndex\r\n","import logo from \"../../static/logo.png\";\r\nimport './index.scss'\r\nimport ToolType from \"../../component/ToolType/ToolType\";\r\nimport Content from '../../component/ContentAdmin/Content'\r\nimport {PopContext, Root} from \"../../dataCenter/Root\";\r\nimport {useContext, useEffect, useState} from \"react\";\r\nimport {NEED_UPDATE_INDEX} from \"../../dataCenter/action\";\r\nimport AdminIndex from \"../../component/AdminIndex/AdminIndex\";\r\nimport {useHistory} from \"react-router-dom\";\r\n\r\nfunction Index() {\r\n const history = useHistory()\r\n const {fetchData, dataCenter, dispatch} = useContext(Root)\r\n const showPop = popComponent => {}\r\n const getUser = () => {\r\n fetchData('/users/getUser', {uid: '100001'}, 'userInfo')\r\n .catch(res =>\r\n res.code === 70001 && (history.push('/login'))\r\n )\r\n }\r\n\r\n useEffect(() => {\r\n fetchData('/query/queryType', {}, 'type')\r\n .then(()=> fetchData('/query/queryChildType',{type_id: dataCenter.type_id},'childType'))\r\n .then(() => dispatch(NEED_UPDATE_INDEX()))\r\n }, [dataCenter.type_id])\r\n\r\n useEffect(() => {\r\n if (dataCenter.needUpdateIndex) {\r\n const _typeId = dataCenter.type_id === 'all' ? {} : dataCenter.type_id === 'follow' ? {\r\n isFollow: true,\r\n type_id: JSON.stringify(dataCenter.userInfo.follow)\r\n } : {type_id: dataCenter.type_id}\r\n fetchData('/query/queryToolBox', _typeId, 'toolBox').then(() => dispatch(NEED_UPDATE_INDEX()))\r\n }\r\n }, [dataCenter.needUpdateIndex])\r\n\r\n useEffect(() => {\r\n getUser()\r\n }, [])\r\n\r\n return (\r\n <PopContext.Provider value={{hidePop: () => setPop(''), showPop: popName => showPop(popName)}}>\r\n <div className=\"index\">\r\n <div className=\"welcome-top\">\r\n <span>欢迎您!\r\n <span className=\"welcome-uname\">{dataCenter?.userInfo?.uname}</span>\r\n <a className=\"login-btn\">退出登录</a>\r\n </span>\r\n </div>\r\n <div className=\"nav\">\r\n <div className=\"nav-title\">\r\n <img src={logo} alt=\"\"/>\r\n </div>\r\n <div className=\"nav-weather\">\r\n <iframe width=\"360\" height=\"40\" frameBorder=\"0\" scrolling=\"no\" hspace=\"0\"\r\n src=\"https://i.tianqi.com/?c=code&a=getcode&id=40&icon=1\"/>\r\n </div>\r\n </div>\r\n <div className=\"tool-nav\">\r\n <ToolType/>\r\n </div>\r\n <div className=\"container\">\r\n <Content/>\r\n </div>\r\n <div className=\"index-footer\">\r\n 兑吧研发中心·杭州兑吧网络科技游戏公司版权所有\r\n <br/>\r\n 浙ICP备14017299号-1\r\n </div>\r\n <AdminIndex/>\r\n </div>\r\n </PopContext.Provider>\r\n )\r\n}\r\n\r\nexport default Index\r\n\r\n","import './Content.scss'\r\nimport ContentItem from \"./ContentItem\";\r\nimport {useContext} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\n\r\nfunction Content(props) {\r\n const {dataCenter} = useContext(Root)\r\n return (\r\n <div className=\"content\">\r\n {\r\n dataCenter.toolBox?.length ? dataCenter?.toolBox?.filter(v => {\r\n if (dataCenter.child_type_id === 'all') return true\r\n else return v.child_type_id === dataCenter.child_type_id\r\n }).map(v => {\r\n return (\r\n <ContentItem key={v['toolbox_id']} value={v}/>\r\n )\r\n })\r\n :\r\n '没有数据了!'\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport default Content\r\n","import logo from \"../../static/logo.png\";\r\nimport './index.scss'\r\nimport ToolType from \"../../component/ToolType/ToolType\";\r\nimport Content from \"../../component/Content/Content\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\nimport {useContext, useEffect} from \"react\";\r\nimport {NEED_UPDATE_INDEX} from \"../../dataCenter/action\";\r\nimport {useHistory} from \"react-router-dom\";\r\n\r\nfunction Index() {\r\n const history = useHistory()\r\n const {fetchData, dataCenter, dispatch} = useContext(Root)\r\n const getUser = () => {\r\n fetchData('/users/getUser', {uid: '100001'}, 'userInfo')\r\n .catch(res =>\r\n res.code === 70001 && (history.push('/login'))\r\n )\r\n }\r\n useEffect(() => {\r\n fetchData('/query/queryType', {}, 'type')\r\n .then(() => fetchData('/query/queryChildType', {type_id: dataCenter.type_id}, 'childType'))\r\n .then(() => dispatch(NEED_UPDATE_INDEX()))\r\n }, [dataCenter.type_id])\r\n useEffect(() => {\r\n if (dataCenter.needUpdateIndex) {\r\n const _typeId = dataCenter.type_id === 'follow' ? {\r\n isFollow: true,\r\n type_id: JSON.stringify(dataCenter.userInfo.follow)\r\n } : {type_id: dataCenter.type_id}\r\n fetchData('/query/queryToolBox', _typeId, 'toolBox').then(() => dispatch(NEED_UPDATE_INDEX()))\r\n }\r\n }, [dataCenter.needUpdateIndex])\r\n\r\n useEffect(() => {\r\n getUser()\r\n }, [])\r\n\r\n return (\r\n\r\n <div className=\"index\">\r\n <div className=\"welcome-top\">\r\n <span>欢迎您!\r\n <span className=\"welcome-uname\">{dataCenter?.userInfo?.uname}</span>\r\n <a className=\"login-btn\">退出登录</a>\r\n </span>\r\n </div>\r\n <div className=\"nav\">\r\n <div className=\"nav-title\">\r\n <img src={logo} alt=\"\"/>\r\n </div>\r\n <div className=\"nav-weather\">\r\n <iframe width=\"360\" height=\"40\" frameBorder=\"0\" scrolling=\"no\" hspace=\"0\"\r\n src=\"https://i.tianqi.com/?c=code&a=getcode&id=40&icon=1\"/>\r\n </div>\r\n </div>\r\n <div className=\"tool-nav\">\r\n <ToolType/>\r\n </div>\r\n <div className=\"container\">\r\n <Content/>\r\n </div>\r\n <div className=\"index-footer\">\r\n 兑吧研发中心·杭州兑吧网络科技有限公司版权所有\r\n <br/>\r\n 浙ICP备14017299号-1\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Index\r\n\r\n","import './login.scss'\r\nimport {useContext, useEffect, useState} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\nimport {useFormState} from \"../../utils/hook\";\r\nimport {useHistory} from \"react-router-dom\";\r\n\r\nfunction Login(props) {\r\n const history = useHistory()\r\n const {fetchData, dataCenter} = useContext(Root)\r\n const [needLogin,setNeedLogin] = useState(false)\r\n const [input, setInput] = useFormState()\r\n const getUser = ()=>{\r\n fetchData('/users/getUser', {uid:'100001'}, 'userInfo')\r\n .then(res => res.data.uid && (history.push('/')))\r\n .catch(res =>\r\n res.code === 70001 && setNeedLogin(true)\r\n )\r\n }\r\n const doLogin = () => {\r\n if (needLogin){\r\n fetchData('/users/login',{uid: '100001'})\r\n .then(()=>{\r\n getUser()\r\n })\r\n }else {\r\n getUser()\r\n }\r\n }\r\n useEffect(() => {\r\n if (dataCenter.userInfo) {\r\n // window.location.href = '/index'\r\n }\r\n }, [dataCenter.userInfo])\r\n\r\n useEffect(() => {\r\n doLogin()\r\n }, [])\r\n return (\r\n <div className=\"login\">\r\n <div className='loginDiv'>\r\n {\r\n needLogin && <input type=\"text\" onChange={e => setInput('uid',e.target.value)} defaultValue={input.uid}/>\r\n }\r\n <button className='btn-login' onClick={() => doLogin()}>登录</button>\r\n </div>\r\n\r\n </div>\r\n )\r\n}\r\n\r\nexport default Login\r\n","import {useCallback, useState} from \"react\";\r\n\r\nconst useFormState = (initialValues = {}) => {\r\n const [input, setInput] = useState(initialValues)\r\n\r\n const setInputData = useCallback((name, value) => {\r\n setInput(() => Object.assign({}, {...input}, {[name]: value}))\r\n }, [input])\r\n\r\n return [input, setInputData]\r\n}\r\n\r\n\r\nconst useDrag = () => {\r\n\r\n}\r\n\r\n\r\n\r\n//这个hook很有意思,怎么样保存return出去的那个组件的数据呢\r\n// function usePopContainer(props) {\r\n// const dragRef = useRef()\r\n// const [offset, setOffset] = useState({x: 0, y: 0})\r\n// const [draggable, setDraggable] = useState(false)\r\n// const handleMouseDown = e => {\r\n// e.stopPropagation()\r\n// setDraggable(true)\r\n// setOffset({\r\n// x: e.clientX - dragRef.current['getBoundingClientRect']().x,\r\n// y: e.clientY - dragRef.current['getBoundingClientRect']().y\r\n// })\r\n// }\r\n//\r\n// const handleMouseUp = () => setDraggable(false)\r\n// const handleMouseMove = e => {\r\n// if (draggable) {\r\n// dragRef.current.style.transform = `translate(${e.clientX - offset.x}px,${e.clientY - offset.y}px)`\r\n// console.log(dragRef.current.style.transform)\r\n// }\r\n// }\r\n// return {\r\n// PopContainer: props => (\r\n// <div className=\"drag-Container\"\r\n// onMouseUp={() => handleMouseUp()}\r\n// onMouseMove={(e) => handleMouseMove(e)}>\r\n// <div className=\"Pop-container\"\r\n// ref={dragRef}\r\n// >\r\n// {props.children}\r\n// </div>\r\n// </div>\r\n// ),\r\n// dragMouseDown: e => handleMouseDown(e)\r\n// }\r\n// }\r\n\r\nexport {\r\n useFormState,\r\n useDrag,\r\n}\r\n","import './App.css';\r\nimport DataCenter from \"./dataCenter/Root\";\r\nimport IndexAdmin from \"./page/indexAdmin\";\r\nimport Index from \"./page/index\";\r\nimport Login from \"./page/login/login\";\r\nimport {HashRouter as Router, Route, Switch} from \"react-router-dom\";\r\nimport {useEffect} from \"react\";\r\n\r\nfunction App() {\r\n useEffect(() => {\r\n console.log(\"%c+\",\r\n `font-size: 1px;\r\n padding: 122px 217px;\r\n background-image: url(https://yun.duiba.com.cn/spark/assets/cc8da992b527b3cd24da7df9a5be8b2361c2e549.jpg);\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n color: transparent;`);\r\n }, [])\r\n return (\r\n <Router>\r\n <DataCenter>\r\n <Switch>\r\n <Route exact path='/login' component={Login}/>\r\n <Route exact path='/' component={Index}/>\r\n <Route exact path='/admin' component={IndexAdmin}/>\r\n </Switch>\r\n </DataCenter>\r\n </Router>\r\n );\r\n}\r\n\r\nexport default App;\r\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport {ConfigProvider} from 'antd';\r\n// 由于 antd 组件的默认文案是英文,所以需要修改为中文\r\nimport zhCN from 'antd/lib/locale/zh_CN';\r\nimport moment from 'moment';\r\nimport 'moment/locale/zh-cn';\r\nimport 'antd/dist/antd.css';\r\nimport './index.css';\r\nimport App from './App';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nmoment.locale('zh-cn');\r\nReactDOM.render(\r\n <React.StrictMode>\r\n <ConfigProvider locale={zhCN}>\r\n <App />\r\n </ConfigProvider>\r\n </React.StrictMode>,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}
\ No newline at end of file
(this.webpackJsonpdui123=this.webpackJsonpdui123||[]).push([[0],{173:function(e,t,n){},174:function(e,t,n){},176:function(e,t,n){},177:function(e,t,n){},178:function(e,t,n){},179:function(e,t,n){},250:function(e,t,n){},251:function(e,t,n){},252:function(e,t,n){},269:function(e,t,n){},270:function(e,t,n){},271:function(e,t,n){},279:function(e,t,n){"use strict";n.r(t);var c=n(0),i=n.n(c),a=n(28),o=n.n(a),l=n(17),r=n(158),s=n.n(r),d=n(133),u=n.n(d),j=(n(171),n(172),n(173),n(174),n(77)),b=n(21),p=n(40),m={toolBox:null,type:null,childType:null,userInfo:null,needUpdateIndex:!1,type_id:"follow",child_type_id:"all"};!function e(t){return Object.getOwnPropertyNames(t).forEach((function(n){var c=t[n];"object"==typeof c&&null!==c&&e(c)})),Object.freeze(t)}(m);var O=function(e,t){switch(console.table(t,["dataCenter\u7684dispatch"]),t.type){case"UPDATE_DATA":return Object.assign({},e,Object(p.a)({},t.data));case"NEED_UPDATE_INDEX":return Object.assign({},e,{needUpdateIndex:!e.needUpdateIndex});case"CHANGE_TYPE":return Object.assign({},e,{type_id:t.type_id});case"CHANGE_CHILD_TYPE":return Object.assign({},e,{child_type_id:t.child_type_id});default:return e}},A={domain:"http://"+window.location.hostname+":3000"},f=function(e){return{type:"CHANGE_TYPE",type_id:e}},g=n(6),h=Object(c.createContext)({}),y=Object(c.createContext)({});var x=function(e){var t=Object(c.useReducer)(O,m,(function(){return m})),n=Object(b.a)(t,2),i=n[0],a=n[1];return Object(g.jsx)(h.Provider,{value:{dataCenter:i,dispatch:a,fetchData:function(e,t,n){return fetch(function(e,t){if(t){var n=Object.keys(t).map((function(e,n){return 0===n?"?"+e+"="+t[e]:"&"+e+"="+t[e]})).join("");return console.log("\u53d1\u9001\u8bf7\u6c42\uff1a",A.domain+e+n),A.domain+e+n}return A.domain+e}(e,t),{credentials:"include"}).then((function(e){return e.json()})).then((function(e){if(console.log(e),!e.success)throw e;var t;return n&&a((t=Object(j.a)({},n,e.data),{type:"UPDATE_DATA",data:Object(p.a)({},t)})),e})).catch((function(e){throw console.error(e),e}))}},children:e.children})},v=n.p+"static/media/logo.c725c5d1.png",E=(n(176),n(177),function(e){var t=Object(c.useContext)(h),n=t.dataCenter,i=t.dispatch,a=e.child_type_id,o=e.child_type_name,l=["child-type-item"];a===n.child_type_id&&l.push("child-type-item-selected");return Object(g.jsx)("div",{className:l.join(" "),onClick:function(){console.log(a),i(function(e){return{type:"CHANGE_CHILD_TYPE",child_type_id:e}}(a))},children:o})});var I=function(e){var t,n,i=Object(c.useContext)(h),a=i.dataCenter,o=i.dispatch;return Object(g.jsxs)(g.Fragment,{children:[Object(g.jsxs)("div",{className:"tab-tool-type",children:[Object(g.jsx)("div",{className:"follow"===a.type_id?"item-tool-type item-tool-type-selected":"item-tool-type",onClick:function(){return o(f("follow"))},children:"\u6211\u7684\u6536\u85cf"}),(null===a||void 0===a||null===(t=a.type)||void 0===t?void 0:t.length)>0&&a.type.map((function(e){var t=["item-tool-type "];return e.type_id===a.type_id&&t.push("item-tool-type-selected"),Object(g.jsx)("div",{className:t.join(""),onClick:function(){return o(f(e.type_id))},children:e.type_name},e.type_id)}))]}),Object(g.jsxs)("div",{className:"child-type",children:[Object(g.jsx)(E,{child_type_id:"all",child_type_name:"\u5168\u90e8"},"all"),(null===a||void 0===a||null===(n=a.childType)||void 0===n?void 0:n.length)>0&&(null===a||void 0===a?void 0:a.childType.map((function(e){return Object(g.jsx)(E,{child_type_id:e.child_type_id,child_type_name:e.child_type_name},e.child_type_id)})))]})]})},C=(n(178),n(179),"data:image/png;base64,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"),k="data:image/png;base64,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",w=n.p+"static/media/setting.6a716d85.svg",D=n.p+"static/media/trash.780a90e8.svg",T=n.p+"static/media/dragIcon.268403b1.svg",R=n(94),S=n(282),J=n(162),B=n(285),N=n(284),q=R.a.Option,G=function(e){var t,n,i,a=e.visible,o=e.onCancel,l=e.data,r=S.a.useForm(),s=Object(b.a)(r,1)[0],d=Object(c.useContext)(h),u=d.fetchData,j=d.dataCenter,m=d.dispatch;return Object(c.useEffect)((function(){var e;(null===j||void 0===j?void 0:j.type)&&u("/query/queryChildType",{type_id:null===j||void 0===j||null===(e=j.type[0])||void 0===e?void 0:e.type_id},"childType").then((function(e){console.log(e)}))}),[]),Object(g.jsx)(B.a,{visible:a,title:l?"\u4fee\u6539\u5de5\u5177\u7bb1":"\u65b0\u5efa\u5de5\u5177\u7bb1",okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",onCancel:o,onOk:function(){s.validateFields().then((function(e){!function(e){var t={toolbox_name:e.name,toolbox_icon:e.icon,toolbox_desc:e.depict,toolbox_url:e.url};l?u("/update/updateToolBox",t).then((function(e){e.success?(J.b.success("\u4fee\u6539\u6210\u529f"),m({type:"NEED_UPDATE_INDEX"}),o()):J.b.error("\u65b0\u5efa\u5931\u8d25")})):(t=Object(p.a)(Object(p.a)({},t),{},{type_id:e.type,child_type_id:e.childType}),console.log(t),u("/add/addToolBox",t).then((function(e){e.success?(J.b.success("\u65b0\u5efa\u6210\u529f"),m({type:"NEED_UPDATE_INDEX"}),o()):J.b.error("\u65b0\u5efa\u5931\u8d25")})))}(e)})).catch((function(e){console.log("Validate Failed:",e)}))},children:Object(g.jsxs)(S.a,Object(p.a)(Object(p.a)({form:s},{labelCol:{span:4},wrapperCol:{span:18}}),{},{name:"form_in_modal",initialValues:l?{name:l.toolbox_name,icon:l.toolbox_icon,url:l.toolbox_url,depict:l.toolbox_desc}:{type:(null===j||void 0===j?void 0:j.type)&&(null===j||void 0===j||null===(t=j.type[0])||void 0===t?void 0:t.type_id)},children:[Object(g.jsx)(S.a.Item,{name:"name",label:"\u540d\u79f0",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u540d\u79f0!"}],children:Object(g.jsx)(N.a,{placeholder:"\u8bf7\u8f93\u5165\u540d\u79f0"})}),Object(g.jsx)(S.a.Item,{name:"icon",label:"\u56fe\u6807",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u56fe\u6807url!"}],children:Object(g.jsx)(N.a,{placeholder:"\u8bf7\u8f93\u5165\u56fe\u6807url"})}),Object(g.jsx)(S.a.Item,{name:"depict",label:"\u63cf\u8ff0",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u63cf\u8ff0!"}],children:Object(g.jsx)(N.a,{placeholder:"\u8bf7\u8f93\u5165\u63cf\u8ff0"})}),Object(g.jsx)(S.a.Item,{name:"url",label:"\u94fe\u63a5",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u94fe\u63a5!"}],children:Object(g.jsx)(N.a,{placeholder:"\u8bf7\u8f93\u5165\u94fe\u63a5"})}),!l&&Object(g.jsx)(S.a.Item,{name:"type",label:"\u7c7b\u578b",rules:[{required:!0,message:"\u8bf7\u9009\u62e9\u7c7b\u578b!"}],children:Object(g.jsx)(R.a,{placeholder:"\u8bf7\u9009\u62e9\u7c7b\u578b",onChange:function(e){s.setFieldsValue({type:e}),u("/query/queryChildType",{type_id:e},"childType").then((function(e){console.log(e)})),console.log(j)},children:(null===j||void 0===j||null===(n=j.type)||void 0===n?void 0:n.length)&&(null===j||void 0===j?void 0:j.type.map((function(e){return Object(g.jsx)(q,{value:e.type_id,children:e.type_name},e.type_id)})))})}),!l&&(null===j||void 0===j?void 0:j.childType)&&Object(g.jsx)(S.a.Item,{name:"childType",label:"\u5b50\u7c7b\u578b",children:Object(g.jsx)(R.a,{placeholder:"\u8bf7\u9009\u62e9\u5b50\u7c7b\u578b",onChange:function(e){s.setFieldsValue({childType:e})},allowClear:!0,children:(null===j||void 0===j||null===(i=j.childType)||void 0===i?void 0:i.length)&&(null===j||void 0===j?void 0:j.childType.map((function(e){return Object(g.jsx)(q,{value:e.child_type_id,children:e.child_type_name},e.child_type_id)})))})})]}))})};var K=function(e){var t=Object(c.useState)(!1),n=Object(b.a)(t,2),i=n[0],a=n[1],o=Object(c.useContext)(h).fetchData,l=(Object(c.useContext)(y).showPop,e.value),r=l.toolbox_icon,s=l.toolbox_name,d=l.toolbox_desc,u=l.toolbox_url,j=l.follow,p=l.toolbox_id,m=Object(c.useState)(r),O=Object(b.a)(m,2),A=O[0],f=O[1],x=function(e){window.location.href=e};return Object(g.jsxs)("div",{className:"content-item",children:[Object(g.jsxs)("div",{className:"content-adminTool",children:[Object(g.jsx)("img",{src:T,alt:""}),Object(g.jsx)("img",{src:w,alt:"",onClick:function(){return a(!0)}}),Object(g.jsx)("img",{src:D,alt:"",onClick:function(){return function(e){o("/delete/deleteToolBoxById",{toolbox_id:e})}(p)}})]}),Object(g.jsxs)("div",{className:"item-icon",onClick:function(){return x(u)},children:[!A&&Object(g.jsx)("div",{className:"defaultIcon",children:s[0]}),A&&Object(g.jsx)("img",{src:A,alt:"",onError:function(e){return f(null)}})]}),Object(g.jsx)("div",{className:"item-name",onClick:function(){return x(u)},children:s}),Object(g.jsx)("div",{className:"item-desc",children:d}),Object(g.jsx)("a",{className:"item-url",href:u,children:u}),Object(g.jsxs)("div",{className:"follow",children:[Object(g.jsx)("img",{className:"icon-follow",src:j?k:C,alt:""}),"\u6536\u85cf"]}),i&&Object(g.jsx)(G,{visible:i,onCancel:function(){return a(!1)},data:e.value})]})};n(250);var F=function(e){var t=Object(c.useContext)(h),n=t.dataCenter,i=t.fetchData,a=e.value,o=a.toolbox_icon,l=a.toolbox_name,r=a.toolbox_desc,s=a.toolbox_url,d=a.toolbox_id,u=Object(c.useState)(!1),j=Object(b.a)(u,2),p=j[0],m=j[1],O=Object(c.useState)(o),A=Object(b.a)(O,2),f=A[0],y=A[1],x=function(e){return window.location.href=e};return Object(c.useEffect)((function(){var e;(null===(e=n.userInfo)||void 0===e?void 0:e.follow.includes(d))?m(!0):m(!1)}),[n.toolBox,n.userInfo]),Object(g.jsxs)("div",{className:"content-item",children:[Object(g.jsxs)("div",{className:"item-icon",onClick:function(){return x(s)},children:[!f&&Object(g.jsx)("div",{className:"defaultIcon",children:l[0]}),f&&Object(g.jsx)("img",{src:f,alt:"",onError:function(e){return y(null)}})]}),Object(g.jsx)("div",{className:"item-name",onClick:function(){return x(s)},children:l}),Object(g.jsx)("div",{className:"item-desc",children:r}),Object(g.jsx)("a",{className:"item-url",href:s,children:s}),Object(g.jsxs)("div",{className:"follow",children:[Object(g.jsx)("img",{className:"icon-follow",src:p?k:C,alt:"",onClick:function(){return function(){var e=n.userInfo.follow.slice();if(p){var t=e.indexOf(d);e.splice(t,1)}else e.push(d);console.log({follow:JSON.stringify(e),uid:n.userInfo.uid}),i("/users/follow",{follow:JSON.stringify(e),uid:n.userInfo.uid}).then((function(){return i("/users/getUser",{uid:100001},"userInfo")}))}()}}),"\u6536\u85cf"]})]})};var z=function(e){var t,n,i=Object(c.useContext)(h).dataCenter;return Object(g.jsx)("div",{className:"content",children:(null===(t=i.toolBox)||void 0===t?void 0:t.length)?null===i||void 0===i||null===(n=i.toolBox)||void 0===n?void 0:n.filter((function(e){return"all"===i.child_type_id||e.child_type_id===i.child_type_id})).map((function(e){return Object(g.jsx)(K,{value:e},e.toolbox_id)})):"\u6ca1\u6709\u6570\u636e\u4e86\uff01"})},X=(n(251),n(31)),M=(n(252),n(152)),U=(n(253),n(254),n(146),n(255),n(257),n(258),n(52),n(259),n(260),n(261),n(262),n(263),R.a.Option,function(e){var t=e.visible,n=e.onCancel,i=e.data,a=Object(c.useState)(""),o=Object(b.a)(a,2),l=o[0],r=o[1],s=Object(c.useState)(""),d=Object(b.a)(s,2),u=d[0],j=d[1],p=Object(c.useState)(""),m=Object(b.a)(p,2),O=m[0],f=(m[1],Object(c.useContext)(h)),y=f.fetchData,x=f.dataCenter;console.log(i);return Object(c.useEffect)((function(){i&&j(i.page_name)}),[i]),Object(g.jsxs)(B.a,{visible:t,title:"\u53d1\u5e03",okText:"\u53d1\u5e03",cancelText:"\u53d6\u6d88",onCancel:n,onOk:function(e){console.log(l),l&&u?i?fetch("".concat(A.domain,"/page/updatePage"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({page_id:i.page_id,page_name:u,code:l})}).then((function(e){return e.json()})).then((function(e){e.success?(n(),J.b.success("\u66ff\u6362\u6210\u529f\uff01"),(null===x||void 0===x?void 0:x.type)&&y("/page/queryPage",{},"queryPage").then((function(e){}))):J.b.error("\u66ff\u6362\u5931\u8d25")})):fetch("".concat(A.domain,"/page/addPage"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({page_name:u,code:l})}).then((function(e){return e.json()})).then((function(e){e.success?(n(),J.b.success("\u53d1\u5e03\u6210\u529f\uff01"),(null===x||void 0===x?void 0:x.type)&&y("/page/queryPage",{},"queryPage").then((function(e){}))):J.b.error(e.error||"\u53d1\u5e03\u5931\u8d25")})):J.b.error("\u8bf7\u8865\u5168\u4fe1\u606f\uff01")},width:"1000px",children:[Object(g.jsx)(S.a.Item,{name:"page_name",label:"\u9875\u9762\u540d\u79f0",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u9875\u9762\u540d\u79f0!"}],children:Object(g.jsx)(N.a,{placeholder:"\u8bf7\u8f93\u5165\u9875\u9762\u540d\u79f0",defaultValue:(null===i||void 0===i?void 0:i.page_name)?i.page_name:u,onChange:function(e){j(e.target.value)}})}),Object(g.jsx)(S.a.Item,{name:"type",label:"\u5e03\u5c40\u4ee3\u7801",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u9875\u9762\u540d\u79f0!"}],children:Object(g.jsx)("div",{className:"codeMain",children:Object(g.jsx)(M.UnControlled,{onChange:function(e,t,n){r(n)},value:O,options:{styleActiveLine:!0,lineNumbers:!0,theme:"monokai",tabSize:2,keyMap:"sublime",mode:"text/javascript",smartIndent:!0,lineWrapping:!0,autofocus:!0}})})})]})}),P=n(283),Q=n(116),Z=R.a.Option,W=(P.a.TabPane,function(e){var t,n=e.visible,a=e.onCancel,o=e.queryData,l=e.data;console.log(l);var r=S.a.useForm(),s=Object(b.a)(r,1)[0];l&&s.setFieldsValue({type_name:l.type_name});var d=Object(c.useContext)(h),u=d.fetchData,j=d.dataCenter,m=d.dispatch,O=i.a.useState(1),A=Object(b.a)(O,2),f=A[0],y=A[1];return Object(g.jsx)(B.a,{visible:n,title:"".concat(l?"\u4fee\u6539":"\u65b0\u5efa","\u7c7b\u578b"),okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",onCancel:a,onOk:function(){s.validateFields().then((function(e){!function(e){if(l){console.log(l);var t={type_id:"",type_name:""};t=l.isRemove?{child_type_id:l.type_id,child_type_name:e.type_name}:{type_id:l.type_id,type_name:e.type_name},u("/typeManage/updateType",t).then((function(e){e.success&&(J.b.success("\u4fee\u6539\u6210\u529f"),m({type:"NEED_UPDATE_INDEX"}),o(),a())}))}else console.log(e),u("/add/addType",e).then((function(e){e.success&&(J.b.success("\u65b0\u5efa\u6210\u529f"),m({type:"NEED_UPDATE_INDEX"}),a())}))}(e)})).catch((function(e){console.log("Validate Failed:",e)}))},children:Object(g.jsxs)(S.a,Object(p.a)(Object(p.a)({form:s},{labelCol:{span:4},wrapperCol:{span:18}}),{},{name:"form_in_modal",initialValues:{modifier:"public","radio-group":1},children:[!l&&Object(g.jsx)(S.a.Item,{name:"radio-group",label:"\u7c7b\u578b",children:Object(g.jsxs)(Q.a.Group,{onChange:function(e){console.log("radio checked",e.target.value),y(e.target.value)},value:f,children:[Object(g.jsx)(Q.a,{value:1,children:"\u7236\u7c7b\u578b"}),Object(g.jsx)(Q.a,{value:2,children:"\u5b50\u7c7b\u578b"})]})}),1===f||l?Object(g.jsx)(S.a.Item,{name:"type_name",label:"".concat(l?"":"\u7236","\u7c7b\u578b"),rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u7c7b\u578b\u540d\u79f0!"}],children:Object(g.jsx)(N.a,{placeholder:"\u8bf7\u8f93\u5165\u7c7b\u578b\u540d\u79f0"})}):Object(g.jsxs)(g.Fragment,{children:[Object(g.jsx)(S.a.Item,{name:"type_id",label:"\u7236\u7c7b\u578b",hasFeedback:!0,rules:[{required:!0,message:"\u8bf7\u9009\u62e9\u7236\u7c7b\u578b!"}],children:Object(g.jsx)(R.a,{placeholder:"\u8bf7\u9009\u62e9\u7236\u7c7b\u578b",onChange:function(e){s.setFieldsValue({type_id:e})},children:(null===j||void 0===j||null===(t=j.type)||void 0===t?void 0:t.length)&&(null===j||void 0===j?void 0:j.type.map((function(e){return Object(g.jsx)(Z,{value:e.type_id,children:e.type_name},e.type_id)})))})}),Object(g.jsx)(S.a.Item,{name:"child_type_name",label:"\u5b50\u7c7b\u578b",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u7c7b\u578b\u540d\u79f0!"}],children:Object(g.jsx)(N.a,{placeholder:"\u8bf7\u8f93\u5165\u7c7b\u578b\u540d\u79f0"})})]})]}))})}),L=n(286),V=n(281);var Y=function(e){var t=e.visible,n=e.onCancel,i=(e.onPublish,Object(c.useState)(!1)),a=Object(b.a)(i,2),o=a[0],l=a[1],r=Object(c.useState)(""),s=Object(b.a)(r,2),d=s[0],u=s[1],j=Object(c.useContext)(h),p=j.fetchData,m=j.dataCenter,O=[{title:"\u9875\u9762Id",dataIndex:"page_id",width:150,align:"center"},{title:"\u9875\u9762\u540d\u79f0",dataIndex:"page_name",width:200,align:"center"},{title:"\u9875\u9762Url",dataIndex:"pageUrl",width:300,align:"center",render:function(e,t){return Object(g.jsx)(L.b,{size:"middle",children:Object(g.jsx)("a",{href:t.pageUrl,children:t.pageUrl})})}},{title:"\u64cd\u4f5c",key:"action",align:"center",width:100,render:function(e,t){return Object(g.jsx)(L.b,{size:"middle",children:Object(g.jsx)("a",{onClick:function(){return e=t,console.log(e),u(e),void l(!0);var e},children:"\u66ff\u6362"})})}}];return Object(c.useEffect)((function(){console.log(m),(null===m||void 0===m?void 0:m.type)&&p("/page/queryPage",{},"queryPage").then((function(e){}))}),[]),Object(g.jsxs)(g.Fragment,{children:[Object(g.jsx)(B.a,{visible:t,title:"\u9875\u9762\u7ba1\u7406",okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",width:"1000px",onCancel:n,onOk:n,children:Object(g.jsx)(V.a,{columns:O,dataSource:(null===m||void 0===m?void 0:m.queryPage)&&m.queryPage,pagination:{pageSize:10},size:"middle"})}),o&&Object(g.jsx)(U,{visible:o,onCancel:function(){return l(!1)},data:d})]})},H=n(73),_=n(287);H.a,H.a.Item,H.a.Item;var $=function(e){var t=e.visible,n=e.onCancel,i=Object(c.useState)(!1),a=Object(b.a)(i,2),o=a[0],l=a[1],r=Object(c.useState)(""),s=Object(b.a)(r,2),d=s[0],u=s[1],j=Object(c.useState)(""),p=Object(b.a)(j,2),m=p[0],O=p[1],A=Object(c.useContext)(h),f=A.fetchData,y=A.dataCenter,x=A.dispatch,v=function e(t,n){return t.map((function(t,c){var i=n(t);return t.children&&(i.children=e(t.children,(function(e){return{isRemove:!0,key:e.child_type_id,type_id:e.child_type_id,type_name:e.child_type_name}}))),i}))},E=function(){(null===y||void 0===y?void 0:y.type)&&f("/typeManage/queryTypeForManage",{},"childTypeData").then((function(e){var t=v(e.data,(function(e){return{key:e.type_id,type_id:e.type_id,type_name:e.type_name}}));u(t)}))};Object(c.useEffect)((function(){E()}),[]);var I=[{title:"\u7c7b\u578b\u540d",width:100,dataIndex:"type_name",key:"type_name"},{title:"Id",width:100,dataIndex:"type_id",align:"center",key:"type_id"},{title:"\u64cd\u4f5c",width:100,key:"operation",align:"center",render:function(e,t){return Object(g.jsxs)(L.b,{size:"middle",children:[t.isRemove&&Object(g.jsx)(_.a,{title:"\u786e\u5b9a\u5220\u9664\u5417\uff1f",okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",onConfirm:function(){f("/typeManage/deleteChildType",{child_type_id:t.type_id}).then((function(e){e.success?(J.b.success("\u522a\u9664\u6210\u529f"),x({type:"NEED_UPDATE_INDEX"}),E()):J.b.error("\u522a\u9664\u5931\u8d25")}))},children:Object(g.jsx)("a",{href:"#",children:"\u5220\u9664"})}),Object(g.jsx)("a",{href:"#",onClick:function(){return O(t),void l(!0)},children:"\u4fee\u6539"})]})}}];return Object(g.jsxs)(B.a,{visible:t,title:"\u7c7b\u578b\u7ba1\u7406",okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",width:"1000px",onCancel:n,onOk:n,children:[Object(g.jsx)(V.a,{columns:I,dataSource:d}),o&&Object(g.jsx)(W,{visible:o,onCancel:function(){return l(!1)},queryData:function(){return E()},data:m})]})};var ee=function(){var e=Object(c.useState)(!1),t=Object(b.a)(e,2),n=t[0],i=t[1],a=Object(c.useState)(!1),o=Object(b.a)(a,2),l=o[0],r=o[1],s=Object(c.useState)(!1),d=Object(b.a)(s,2),u=d[0],j=d[1],p=Object(c.useState)(!1),m=Object(b.a)(p,2),O=m[0],A=m[1],f=Object(c.useState)(!1),h=Object(b.a)(f,2),y=h[0],x=h[1];return Object(g.jsxs)("div",{className:"admin",children:[Object(g.jsx)(X.a,{onClick:function(){return i(!0)},children:"\u65b0\u5efa\u5de5\u5177\u76d2"}),Object(g.jsx)(X.a,{onClick:function(){return j(!0)},children:"\u65b0\u5efa\u7c7b\u578b"}),Object(g.jsx)(X.a,{onClick:function(){return r(!0)},children:"\u53d1\u5e03"}),Object(g.jsx)(X.a,{onClick:function(){return A(!0)},children:"\u9875\u9762\u7ba1\u7406"}),Object(g.jsx)(X.a,{onClick:function(){return x(!0)},children:"\u7c7b\u578b\u7ba1\u7406"}),n&&Object(g.jsx)(G,{visible:n,onCancel:function(){return i(!1)}}),l&&Object(g.jsx)(U,{visible:l,onCancel:function(){return r(!1)}}),u&&Object(g.jsx)(W,{visible:u,onCancel:function(){return j(!1)}}),O&&Object(g.jsx)(Y,{visible:O,onCancel:function(){return A(!1)}}),y&&Object(g.jsx)($,{visible:y,onCancel:function(){return x(!1)}})]})};var te=function(){var e,t=Object(c.useState)(),n=Object(b.a)(t,2),i=n[0],a=n[1],o=Object(c.useContext)(h),l=o.fetchData,r=o.dataCenter,s=o.dispatch;return Object(c.useEffect)((function(){l("/query/queryType",{},"type").then((function(){return l("/query/queryChildType",{type_id:r.type_id},"childType")})).then((function(){return s({type:"NEED_UPDATE_INDEX"})}))}),[r.type_id]),Object(c.useEffect)((function(){if(r.needUpdateIndex){var e="all"===r.type_id?{}:"follow"===r.type_id?{isFollow:!0,type_id:JSON.stringify(r.userInfo.follow)}:{type_id:r.type_id};l("/query/queryToolBox",e,"toolBox").then((function(){return s({type:"NEED_UPDATE_INDEX"})}))}}),[r.needUpdateIndex]),Object(c.useEffect)((function(){l("/users/getUser",{uid:"100001"},"userInfo").catch((function(e){return 70001===e.code&&(window.location.href="/login")}))}),[]),Object(g.jsx)(y.Provider,{value:{hidePop:function(){return a("")},showPop:function(e){a(e)}},children:Object(g.jsxs)("div",{className:"index",children:[Object(g.jsx)("div",{className:"welcome-top",children:Object(g.jsxs)("span",{children:["\u6b22\u8fce\u60a8\uff01",Object(g.jsx)("span",{className:"welcome-uname",children:null===r||void 0===r||null===(e=r.userInfo)||void 0===e?void 0:e.uname}),Object(g.jsx)("a",{className:"login-btn",children:"\u9000\u51fa\u767b\u5f55"})]})}),Object(g.jsxs)("div",{className:"nav",children:[Object(g.jsx)("div",{className:"nav-title",children:Object(g.jsx)("img",{src:v,alt:""})}),Object(g.jsx)("div",{className:"nav-weather",children:Object(g.jsx)("iframe",{width:"360",height:"40",frameBorder:"0",scrolling:"no",hspace:"0",src:"https://i.tianqi.com/?c=code&a=getcode&id=40&icon=1"})})]}),Object(g.jsx)("div",{className:"tool-nav",children:Object(g.jsx)(I,{})}),Object(g.jsx)("div",{className:"container",children:Object(g.jsx)(z,{})}),i,Object(g.jsxs)("div",{className:"index-footer",children:["\u5151\u5427\u7814\u53d1\u4e2d\u5fc3\xb7\u676d\u5dde\u5151\u5427\u7f51\u7edc\u79d1\u6280\u6e38\u620f\u516c\u53f8\u7248\u6743\u6240\u6709",Object(g.jsx)("br",{}),"\u6d59ICP\u590714017299\u53f7-1"]}),Object(g.jsx)(ee,{})]})})};n(269),n(270);var ne=function(e){var t,n,i=Object(c.useContext)(h).dataCenter;return Object(g.jsx)("div",{className:"content",children:(null===(t=i.toolBox)||void 0===t?void 0:t.length)?null===i||void 0===i||null===(n=i.toolBox)||void 0===n?void 0:n.filter((function(e){return"all"===i.child_type_id||e.child_type_id===i.child_type_id})).map((function(e){return Object(g.jsx)(F,{value:e},e.toolbox_id)})):"\u6ca1\u6709\u6570\u636e\u4e86\uff01"})};var ce=function(){var e,t=Object(c.useContext)(h),n=t.fetchData,i=t.dataCenter,a=t.dispatch;return Object(c.useEffect)((function(){n("/query/queryType",{},"type").then((function(){return n("/query/queryChildType",{type_id:i.type_id},"childType")})).then((function(){return a({type:"NEED_UPDATE_INDEX"})}))}),[i.type_id]),Object(c.useEffect)((function(){if(i.needUpdateIndex){var e="follow"===i.type_id?{isFollow:!0,type_id:JSON.stringify(i.userInfo.follow)}:{type_id:i.type_id};n("/query/queryToolBox",e,"toolBox").then((function(){return a({type:"NEED_UPDATE_INDEX"})}))}}),[i.needUpdateIndex]),Object(c.useEffect)((function(){n("/users/getUser",{uid:"100001"},"userInfo").catch((function(e){return 70001===e.code&&(window.location.href="/login")}))}),[]),Object(g.jsxs)("div",{className:"index",children:[Object(g.jsx)("div",{className:"welcome-top",children:Object(g.jsxs)("span",{children:["\u6b22\u8fce\u60a8\uff01",Object(g.jsx)("span",{className:"welcome-uname",children:null===i||void 0===i||null===(e=i.userInfo)||void 0===e?void 0:e.uname}),Object(g.jsx)("a",{className:"login-btn",children:"\u9000\u51fa\u767b\u5f55"})]})}),Object(g.jsxs)("div",{className:"nav",children:[Object(g.jsx)("div",{className:"nav-title",children:Object(g.jsx)("img",{src:v,alt:""})}),Object(g.jsx)("div",{className:"nav-weather",children:Object(g.jsx)("iframe",{width:"360",height:"40",frameBorder:"0",scrolling:"no",hspace:"0",src:"https://i.tianqi.com/?c=code&a=getcode&id=40&icon=1"})})]}),Object(g.jsx)("div",{className:"tool-nav",children:Object(g.jsx)(I,{})}),Object(g.jsx)("div",{className:"container",children:Object(g.jsx)(ne,{})}),Object(g.jsxs)("div",{className:"index-footer",children:["\u5151\u5427\u7814\u53d1\u4e2d\u5fc3\xb7\u676d\u5dde\u5151\u5427\u7f51\u7edc\u79d1\u6280\u6e38\u620f\u516c\u53f8\u7248\u6743\u6240\u6709",Object(g.jsx)("br",{}),"\u6d59ICP\u590714017299\u53f7-1"]})]})};n(271);var ie=function(e){var t=Object(c.useContext)(h),n=t.fetchData,i=t.dataCenter,a=Object(c.useState)(!1),o=Object(b.a)(a,2),l=o[0],r=o[1],s=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object(c.useState)(e),n=Object(b.a)(t,2),i=n[0],a=n[1],o=Object(c.useCallback)((function(e,t){a((function(){return Object.assign({},Object(p.a)({},i),Object(j.a)({},e,t))}))}),[i]);return[i,o]}(),d=Object(b.a)(s,2),u=d[0],m=d[1],O=function(){n("/users/getUser",{uid:"100001"},"userInfo").then((function(e){return e.data.uid&&(window.location.href="/index")})).catch((function(e){return 70001===e.code&&r(!0)}))},A=function(){l?n("/users/login",{uid:"100001"}).then((function(){O()})):O()};return Object(c.useEffect)((function(){i.userInfo}),[i.userInfo]),Object(c.useEffect)((function(){A()}),[]),Object(g.jsx)("div",{className:"login",children:Object(g.jsxs)("div",{className:"loginDiv",children:[l&&Object(g.jsx)("input",{type:"text",onChange:function(e){return m("uid",e.target.value)},defaultValue:u.uid}),Object(g.jsx)("button",{className:"btn-login",onClick:function(){return A()},children:"\u767b\u5f55"})]})})},ae=n(155),oe=n(26);var le=function(){return Object(c.useEffect)((function(){console.log("%c+","font-size: 1px;\n padding: 122px 217px;\n background-image: url(https://yun.duiba.com.cn/spark/assets/cc8da992b527b3cd24da7df9a5be8b2361c2e549.jpg);\n background-size: contain;\n background-repeat: no-repeat;\n color: transparent;")}),[]),Object(g.jsx)(ae.a,{children:Object(g.jsx)(x,{children:Object(g.jsxs)(oe.c,{children:[Object(g.jsx)(oe.a,{exact:!0,path:"/login",component:ie}),Object(g.jsx)(oe.a,{exact:!0,path:"/",component:ce}),Object(g.jsx)(oe.a,{exact:!0,path:"/admin",component:te})]})})})},re=function(e){e&&e instanceof Function&&n.e(3).then(n.bind(null,288)).then((function(t){var n=t.getCLS,c=t.getFID,i=t.getFCP,a=t.getLCP,o=t.getTTFB;n(e),c(e),i(e),a(e),o(e)}))};u.a.locale("zh-cn"),o.a.render(Object(g.jsx)(i.a.StrictMode,{children:Object(g.jsx)(l.a,{locale:s.a,children:Object(g.jsx)(le,{})})}),document.getElementById("root")),re()}},[[279,1,2]]]);
//# sourceMappingURL=main.b54c2f44.chunk.js.map
\ No newline at end of file
{"version":3,"sources":["dataCenter/reducer.js","config/apiConfig.js","dataCenter/action.js","dataCenter/Root.jsx","static/logo.png","component/ToolType/ToolType.jsx","static/notFollow.png","static/followed.png","static/setting.svg","static/trash.svg","static/dragIcon.svg","modal/ToolModal.jsx","component/ContentAdmin/ContentItemAdmin.jsx","component/Content/ContentItem.jsx","component/ContentAdmin/Content.jsx","modal/PublishModal.jsx","modal/TypeModal.jsx","modal/PageModal.jsx","modal/RemoveType.jsx","component/AdminIndex/AdminIndex.jsx","page/indexAdmin/index.jsx","component/Content/Content.jsx","page/index/index.jsx","page/login/login.jsx","utils/hook.js","App.js","reportWebVitals.js","index.js"],"names":["initDataCenter","toolBox","type","childType","userInfo","needUpdateIndex","type_id","child_type_id","deepFreeze","obj","Object","getOwnPropertyNames","forEach","name","prop","freeze","dataReducer","state","action","console","table","assign","data","apiConfig","domain","window","location","hostname","CHANGE_TYPE","Root","createContext","PopContext","DataCenter","props","useReducer","dataCenter","dispatch","Provider","value","fetchData","path","requestData","dataName","fetch","paramsStr","keys","map","v","i","join","log","generateUrl","credentials","then","res","json","success","catch","e","error","children","ChildTypeItem","useContext","child_type_name","classNameArr","push","className","onClick","CHANGE_CHILD_TYPE","ToolType","length","type_name","Option","Select","ToolModal","visible","onCancel","Form","useForm","form","useEffect","title","okText","cancelText","onOk","validateFields","values","input","toolbox_name","toolbox_icon","icon","toolbox_desc","depict","toolbox_url","url","message","onCreate","info","labelCol","span","wrapperCol","initialValues","Item","label","rules","required","placeholder","onChange","setFieldsValue","allowClear","ContentItemAdmin","useState","setVisible","showPop","follow","toolbox_id","itemIcon","setItemIcon","jumpUrl","href","src","dragIcon","alt","setting","trash","deleteItem","onError","followed","notFollow","ContentItem","isFollow","setIsFollow","includes","_follow","slice","index","indexOf","splice","JSON","stringify","uid","Content","filter","PublishModal","code","setcode","page_name","setPageName","oldCode","method","headers","body","page_id","response","width","defaultValue","target","editor","options","styleActiveLine","lineNumbers","theme","tabSize","keyMap","mode","smartIndent","lineWrapping","autofocus","TypeModal","Tabs","TabPane","queryData","React","setValue","isRemove","modifier","Group","hasFeedback","PageModal","onPublish","publish","setPublish","pageData","setpageData","columns","dataIndex","align","render","text","record","size","pageUrl","key","dataSource","queryPage","pagination","pageSize","RemoveType","typeModal","setTypeModal","typeData","settypeData","oldData","setoldData","changeData","list","cb","item","newData","onConfirm","AdminIndex","pageModal","setpageModal","removeType","setremoveType","Index","pop","setPop","_typeId","hidePop","popName","uname","logo","height","frameBorder","scrolling","hspace","Login","needLogin","setNeedLogin","setInput","setInputData","useCallback","useFormState","getUser","doLogin","App","exact","component","IndexAdmin","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","moment","locale","ReactDOM","StrictMode","zhCN","document","getElementById"],"mappings":"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","file":"static/js/main.b54c2f44.chunk.js","sourcesContent":["const initDataCenter = {\r\n toolBox: null,\r\n type: null,\r\n childType: null,\r\n userInfo: null,\r\n needUpdateIndex: false,\r\n type_id: 'follow',\r\n child_type_id: 'all'\r\n}\r\n\r\n/**\r\n * deepFreeze()\r\n * @param obj\r\n * @returns {unknown[]}\r\n */\r\nfunction deepFreeze(obj) {\r\n // 取回定义在obj上的属性名\r\n let propNames = Object.getOwnPropertyNames(obj);\r\n\r\n // 在冻结自身之前冻结属性\r\n propNames.forEach(function (name) {\r\n let prop = obj[name];\r\n\r\n // 如果prop是个对象,冻结它\r\n if (typeof prop == 'object' && prop !== null)\r\n deepFreeze(prop);\r\n });\r\n\r\n // 冻结自身(no-op if already frozen)\r\n return Object.freeze(obj);\r\n}\r\n\r\n//任何修改原始对象的操作都是禁止的!\r\ndeepFreeze(initDataCenter)\r\n\r\nconst dataReducer = (state, action) => {\r\n // console.log(action)\r\n console.table(action,['dataCenter的dispatch'])\r\n switch (action.type) {\r\n case 'UPDATE_DATA':\r\n return Object.assign({}, state, {\r\n ...action.data\r\n })\r\n case 'NEED_UPDATE_INDEX':\r\n return Object.assign({}, state, {needUpdateIndex: !state.needUpdateIndex})\r\n case 'CHANGE_TYPE':\r\n return Object.assign({}, state, {type_id: action.type_id})\r\n case 'CHANGE_CHILD_TYPE':\r\n return Object.assign({}, state, {child_type_id: action.child_type_id})\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport {\r\n initDataCenter,\r\n dataReducer,\r\n}\r\n","const apiConfig = {\r\n domain: 'http://' + window.location.hostname + ':3000',\r\n // domain: 'http://127.0.0.1:3001',\r\n}\r\n\r\nexport default apiConfig\r\n","const UPDATE_DATA = data => ({type: 'UPDATE_DATA', data: {...data}})\r\nconst NEED_UPDATE_INDEX = () => ({type: 'NEED_UPDATE_INDEX'})\r\nconst CHANGE_TYPE = type_id => ({type: 'CHANGE_TYPE', type_id: type_id})\r\nconst CHANGE_CHILD_TYPE = child_type_id => ({type: 'CHANGE_CHILD_TYPE', child_type_id: child_type_id})\r\n\r\nexport {\r\n UPDATE_DATA,\r\n NEED_UPDATE_INDEX,\r\n CHANGE_TYPE,\r\n CHANGE_CHILD_TYPE\r\n}\r\n","import React, {createContext, useReducer} from \"react\";\r\nimport {dataReducer, initDataCenter} from \"./reducer\";\r\nimport apiConfig from \"../config/apiConfig\";\r\nimport {UPDATE_DATA} from \"./action\";\r\n\r\nconst Root = createContext({})\r\nconst PopContext = createContext({})\r\n\r\nfunction DataCenter(props) {\r\n const [dataCenter, dispatch] = useReducer(dataReducer, initDataCenter, () => {\r\n return initDataCenter\r\n })\r\n\r\n const generateUrl = (path, requestData) => {\r\n if (requestData) {\r\n const keyArr = Object.keys(requestData)\r\n const paramsStr = keyArr.map((v, i) => {\r\n if (i === 0) {\r\n return '?' + v + '=' + requestData[v]\r\n } else {\r\n return '&' + v + '=' + requestData[v]\r\n }\r\n }).join('')\r\n console.log('发送请求:', apiConfig.domain + path + paramsStr)\r\n return apiConfig.domain + path + paramsStr\r\n }\r\n return apiConfig.domain + path\r\n }\r\n\r\n const fetchData = (path, requestData, dataName) =>\r\n fetch(generateUrl(path, requestData), {credentials: 'include'})\r\n .then(res => res.json())\r\n .then(res => {\r\n console.log(res);\r\n if (res.success) {\r\n !!dataName && dispatch(UPDATE_DATA({[dataName]: res.data}))\r\n } else {\r\n throw res\r\n }\r\n return res\r\n })\r\n .catch(e => {\r\n console.error(e)\r\n throw e\r\n })\r\n\r\n\r\n return (\r\n <Root.Provider value={{dataCenter, dispatch, fetchData}}>\r\n {\r\n props.children\r\n }\r\n </Root.Provider>\r\n )\r\n}\r\n\r\nexport {\r\n Root,\r\n PopContext,\r\n}\r\nexport default DataCenter\r\n\r\n","export default __webpack_public_path__ + \"static/media/logo.c725c5d1.png\";","import './ToolType.scss'\r\nimport {useContext} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\nimport {CHANGE_CHILD_TYPE, CHANGE_TYPE} from \"../../dataCenter/action\";\r\n\r\nconst ChildTypeItem = props => {\r\n const {dataCenter, dispatch} = useContext(Root)\r\n const {child_type_id, child_type_name} = props\r\n const classNameArr = ['child-type-item']\r\n if (child_type_id === dataCenter.child_type_id) {\r\n classNameArr.push('child-type-item-selected')\r\n }\r\n const handleClick = () => {\r\n console.log(child_type_id)\r\n dispatch(CHANGE_CHILD_TYPE(child_type_id))\r\n }\r\n return (\r\n <div className={classNameArr.join(' ')} onClick={handleClick}>{child_type_name}</div>\r\n )\r\n}\r\n\r\n\r\nfunction ToolType(props) {\r\n const {dataCenter, dispatch} = useContext(Root)\r\n return (\r\n <>\r\n <div className=\"tab-tool-type\">\r\n <div className={dataCenter.type_id === 'follow' ? 'item-tool-type item-tool-type-selected' : 'item-tool-type'}\r\n onClick={() => dispatch(CHANGE_TYPE('follow'))}>我的收藏\r\n </div>\r\n {\r\n dataCenter?.type?.length > 0 && dataCenter.type.map(v => {\r\n const classNameArr = ['item-tool-type ']\r\n if (v[\"type_id\"] === dataCenter.type_id) classNameArr.push('item-tool-type-selected')\r\n return (\r\n <div key={v[\"type_id\"]} className={classNameArr.join('')}\r\n onClick={() => dispatch(CHANGE_TYPE( v[\"type_id\"]))}>{v.type_name}</div>\r\n )\r\n })\r\n }\r\n </div>\r\n <div className=\"child-type\">\r\n <ChildTypeItem key={'all'} child_type_id={'all'} child_type_name={'全部'}/>\r\n {\r\n dataCenter?.childType?.length > 0 && dataCenter?.childType.map(v => {\r\n return (\r\n <ChildTypeItem key={v.child_type_id} child_type_id={v.child_type_id}\r\n child_type_name={v.child_type_name}/>\r\n )\r\n })\r\n }\r\n </div>\r\n </>\r\n )\r\n}\r\n\r\nexport default ToolType\r\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/setting.6a716d85.svg\";","export default __webpack_public_path__ + \"static/media/trash.780a90e8.svg\";","export default __webpack_public_path__ + \"static/media/dragIcon.268403b1.svg\";","import React, { useState, useEffect, useContext } from 'react';\r\nimport { Root } from \"../dataCenter/Root\";\r\nimport { Button, Modal, Form, Input, Radio, Select, message } from 'antd';\r\nimport { NEED_UPDATE_INDEX } from \"../dataCenter/action\";\r\nconst { Option } = Select;\r\nconst ToolModal = ({ visible, onCancel, data }) => {\r\n const [form] = Form.useForm();\r\n const { fetchData, dataCenter, dispatch } = useContext(Root)\r\n const formItemLayout = {\r\n labelCol: { span: 4 },\r\n wrapperCol: { span: 18 },\r\n };\r\n const onCreate = (values) => {\r\n let input = {\r\n toolbox_name: values.name,\r\n toolbox_icon: values.icon,\r\n toolbox_desc: values.depict,\r\n toolbox_url: values.url,\r\n\r\n }\r\n if (!data) {\r\n input = {\r\n ...input,\r\n type_id: values.type,\r\n child_type_id: values.childType\r\n }\r\n console.log(input);\r\n fetchData('/add/addToolBox', input)\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('新建成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n onCancel()\r\n } else {\r\n message.error('新建失败')\r\n }\r\n })\r\n\r\n } else {\r\n fetchData('/update/updateToolBox', input)\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('修改成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n onCancel()\r\n } else {\r\n message.error('新建失败')\r\n }\r\n })\r\n }\r\n };\r\n\r\n const onGenderChange = (value) => {\r\n form.setFieldsValue({\r\n type: value,\r\n });\r\n fetchData('/query/queryChildType', { type_id: value }, 'childType')\r\n .then((res) => {\r\n\r\n console.log(res);\r\n })\r\n console.log(dataCenter);\r\n };\r\n const onChildGenderChange = (value) => {\r\n form.setFieldsValue({\r\n childType: value,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n dataCenter?.type && fetchData('/query/queryChildType', { type_id: dataCenter?.type[0]?.type_id }, 'childType')\r\n .then((res) => {\r\n\r\n console.log(res);\r\n })\r\n }, [])\r\n\r\n return (\r\n <Modal\r\n visible={visible}\r\n title={data ? '修改工具箱' : '新建工具箱'}\r\n okText=\"确定\"\r\n cancelText=\"取消\"\r\n onCancel={onCancel}\r\n onOk={() => {\r\n form\r\n .validateFields()\r\n .then((values) => {\r\n // form.resetFields();\r\n onCreate(values);\r\n })\r\n .catch((info) => {\r\n console.log('Validate Failed:', info);\r\n });\r\n }}\r\n >\r\n <Form\r\n form={form}\r\n // layout=\"vertical\"\r\n {...formItemLayout}\r\n name=\"form_in_modal\"\r\n initialValues={data ? {\r\n name: data.toolbox_name,\r\n icon: data.toolbox_icon,\r\n url: data.toolbox_url,\r\n depict: data.toolbox_desc,\r\n } : { type: dataCenter?.type && dataCenter?.type[0]?.type_id }}\r\n >\r\n <Form.Item\r\n name=\"name\"\r\n label=\"名称\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入名称!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入名称\" />\r\n </Form.Item>\r\n <Form.Item name=\"icon\"\r\n label=\"图标\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入图标url!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入图标url\" />\r\n </Form.Item>\r\n <Form.Item\r\n name=\"depict\"\r\n label=\"描述\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入描述!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入描述\" />\r\n </Form.Item>\r\n <Form.Item\r\n name=\"url\"\r\n label=\"链接\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入链接!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入链接\" />\r\n </Form.Item>\r\n {!data && <Form.Item\r\n name=\"type\"\r\n label=\"类型\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请选择类型!',\r\n },\r\n ]}\r\n >\r\n <Select\r\n placeholder=\"请选择类型\"\r\n onChange={onGenderChange}\r\n // allowClear\r\n >\r\n {\r\n dataCenter?.type?.length && dataCenter?.type.map(v => {\r\n return (\r\n <Option key={v.type_id} value={v.type_id}>{v.type_name}</Option>\r\n )\r\n })\r\n }\r\n\r\n </Select>\r\n </Form.Item>}\r\n {!data && dataCenter?.childType && <Form.Item\r\n name=\"childType\"\r\n label=\"子类型\"\r\n >\r\n <Select\r\n placeholder=\"请选择子类型\"\r\n onChange={onChildGenderChange}\r\n allowClear\r\n >\r\n {\r\n dataCenter?.childType?.length && dataCenter?.childType.map(v => {\r\n return (\r\n <Option key={v.child_type_id} value={v.child_type_id}>{v.child_type_name}</Option>\r\n )\r\n })\r\n }\r\n\r\n </Select>\r\n </Form.Item>}\r\n </Form>\r\n </Modal>\r\n );\r\n};\r\nexport default ToolModal\r\n","import './ContentItem.scss'\r\nimport notFollow from '../../static/notFollow.png'\r\nimport followed from '../../static/followed.png'\r\nimport setting from '../../static/setting.svg'\r\nimport trash from '../../static/trash.svg'\r\nimport dragIcon from '../../static/dragIcon.svg'\r\nimport {useContext, useState} from \"react\";\r\nimport {PopContext, Root} from \"../../dataCenter/Root\";\r\nimport ToolModal from \"../../modal/ToolModal\"\r\n\r\nfunction ContentItemAdmin(props) {\r\n const [visible, setVisible] = useState(false)\r\n\r\n const {fetchData} = useContext(Root)\r\n const {showPop} = useContext(PopContext)\r\n\r\n const {toolbox_icon, toolbox_name, toolbox_desc, toolbox_url, follow, toolbox_id} = props.value\r\n\r\n const [itemIcon, setItemIcon] = useState(toolbox_icon)\r\n\r\n const jumpUrl = url => {\r\n window.location.href = url\r\n }\r\n const deleteItem = toolbox_id => {\r\n fetchData('/delete/deleteToolBoxById', {toolbox_id})\r\n }\r\n\r\n return (\r\n <div className=\"content-item\">\r\n <div className=\"content-adminTool\">\r\n <img src={dragIcon} alt=\"\"/>\r\n <img src={setting} alt=\"\" onClick={() => setVisible(true)}/>\r\n <img src={trash} alt=\"\" onClick={() => deleteItem(toolbox_id)}/>\r\n </div>\r\n <div className=\"item-icon\" onClick={() => jumpUrl(toolbox_url)}>\r\n {\r\n !itemIcon && <div className=\"defaultIcon\">{toolbox_name[0]}</div>\r\n }\r\n {\r\n itemIcon && <img src={itemIcon} alt='' onError={e => setItemIcon(null)}/>\r\n }\r\n </div>\r\n <div className=\"item-name\" onClick={() => jumpUrl(toolbox_url)}>{toolbox_name}</div>\r\n <div className=\"item-desc\">{toolbox_desc}</div>\r\n <a className='item-url' href={toolbox_url}>{toolbox_url}</a>\r\n <div className=\"follow\">\r\n <img className='icon-follow' src={follow ? followed : notFollow} alt=\"\"/>\r\n 收藏\r\n </div>\r\n {visible && <ToolModal\r\n visible={visible}\r\n onCancel={() =>\r\n setVisible(false)\r\n }\r\n data={props.value}\r\n />}\r\n </div>\r\n\r\n )\r\n}\r\n\r\nexport default ContentItemAdmin\r\n","import './ContentItem.scss'\r\nimport notFollow from '../../static/notFollow.png'\r\nimport followed from '../../static/followed.png'\r\nimport {useContext, useEffect, useState} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\n\r\nfunction ContentItem(props) {\r\n const {dataCenter, fetchData} = useContext(Root)\r\n const {toolbox_icon, toolbox_name, toolbox_desc, toolbox_url, toolbox_id} = props.value\r\n const [isFollow, setIsFollow] = useState(false)\r\n const [itemIcon, setItemIcon] = useState(toolbox_icon)\r\n\r\n const jumpUrl = url => window.location.href = url\r\n\r\n const follow = () => {\r\n const _follow = dataCenter.userInfo.follow.slice()\r\n if (!isFollow) {\r\n _follow.push(toolbox_id)\r\n } else {\r\n const index = _follow.indexOf(toolbox_id)\r\n _follow.splice(index, 1)\r\n }\r\n console.log( {follow: JSON.stringify(_follow), uid: dataCenter.userInfo.uid})\r\n fetchData('/users/follow', {follow: JSON.stringify(_follow), uid: dataCenter.userInfo.uid})\r\n .then(() => fetchData('/users/getUser', {uid: 100001}, 'userInfo'))\r\n }\r\n\r\n useEffect(() => {\r\n if (dataCenter.userInfo?.follow.includes(toolbox_id)) {\r\n setIsFollow(true)\r\n } else {\r\n setIsFollow(false)\r\n }\r\n }, [dataCenter.toolBox, dataCenter.userInfo])\r\n\r\n return (\r\n <div className=\"content-item\">\r\n <div className=\"item-icon\" onClick={() => jumpUrl(toolbox_url)}>\r\n {\r\n !itemIcon && <div className=\"defaultIcon\">{toolbox_name[0]}</div>\r\n }\r\n {\r\n itemIcon && <img src={itemIcon} alt='' onError={e => setItemIcon(null)}/>\r\n }\r\n\r\n </div>\r\n <div className=\"item-name\" onClick={() => jumpUrl(toolbox_url)}>{toolbox_name}</div>\r\n <div className=\"item-desc\">{toolbox_desc}</div>\r\n <a className='item-url' href={toolbox_url}>{toolbox_url}</a>\r\n <div className=\"follow\">\r\n <img className='icon-follow' src={isFollow ? followed : notFollow} alt=\"\" onClick={() => follow()}/>\r\n 收藏\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default ContentItem\r\n","import './Content.scss'\r\nimport ContentItemAdmin from \"./ContentItemAdmin\";\r\nimport {useContext} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\nimport ContentItem from \"../Content/ContentItem\";\r\n\r\nfunction Content(props) {\r\n const {dataCenter} = useContext(Root)\r\n\r\n return (\r\n <div className=\"content\">\r\n {\r\n dataCenter.toolBox?.length ? dataCenter?.toolBox?.filter(v => {\r\n if (dataCenter.child_type_id === 'all') return true\r\n else return v.child_type_id === dataCenter.child_type_id\r\n }).map(v => {\r\n return (\r\n <ContentItemAdmin key={v['toolbox_id']} value={v}/>\r\n )\r\n })\r\n :\r\n '没有数据了!'\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport default Content\r\n","import './PublishModal.scss'\r\nimport React, {useContext, useEffect, useState} from 'react';\r\nimport {Root} from \"../dataCenter/Root\";\r\nimport {UnControlled as CodeMirror} from 'react-codemirror2'\r\nimport {Form, Input, message, Modal, Select} from 'antd';\r\nimport apiConfig from \"../config/apiConfig\";\r\n\r\nimport 'codemirror/addon/display/autorefresh';\r\nimport 'codemirror/addon/comment/comment';\r\nimport 'codemirror/addon/edit/matchbrackets';\r\nimport 'codemirror/keymap/sublime';\r\nimport 'codemirror/theme/eclipse.css';\r\nimport 'codemirror/theme/monokai.css';\r\nimport 'codemirror/lib/codemirror.js';\r\nimport 'codemirror/lib/codemirror.css';\r\nimport 'codemirror/theme/solarized.css'\r\nimport 'codemirror/mode/javascript/javascript'\r\nimport 'codemirror/addon/selection/active-line';\r\nimport 'codemirror/addon/fold/foldgutter.css';\r\n\r\nconst { Option } = Select;\r\n\r\n\r\nconst PublishModal = ({ visible, onCancel, data }) => {\r\n const [code, setcode] = useState('')\r\n const [page_name, setPageName] = useState('')\r\n const [oldCode, setoldCode] = useState('')\r\n const { fetchData, dataCenter } = useContext(Root)\r\n console.log(data);\r\n const onCreate = (values) => {\r\n console.log(code);\r\n\r\n if (!code || !page_name) {\r\n message.error('请补全信息!')\r\n return\r\n }\r\n if (data) {\r\n fetch(`${apiConfig.domain}/page/updatePage`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n page_id: data.page_id,\r\n page_name: page_name,\r\n code: code\r\n })\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n if (data.success) {\r\n onCancel()\r\n message.success('替换成功!')\r\n dataCenter?.type && fetchData('/page/queryPage', {}, 'queryPage')\r\n .then((res) => {\r\n \r\n })\r\n } else {\r\n message.error( '替换失败')\r\n }\r\n });\r\n } else {\r\n fetch(`${apiConfig.domain}/page/addPage`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n page_name: page_name,\r\n code: code\r\n })\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n if (data.success) {\r\n onCancel()\r\n message.success('发布成功!')\r\n dataCenter?.type && fetchData('/page/queryPage', {}, 'queryPage')\r\n .then((res) => {\r\n \r\n })\r\n } else {\r\n message.error(data.error || '发布失败')\r\n }\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n data&&setPageName(data.page_name)\r\n }, [data])\r\n\r\n return (\r\n <Modal\r\n visible={visible}\r\n title=\"发布\"\r\n okText=\"发布\"\r\n cancelText=\"取消\"\r\n onCancel={onCancel}\r\n onOk={onCreate}\r\n width='1000px'\r\n >\r\n <Form.Item\r\n name=\"page_name\"\r\n label=\"页面名称\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入页面名称!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入页面名称\" defaultValue={data?.page_name ? data.page_name : page_name} onChange={(e) => { setPageName(e.target.value) }} />\r\n </Form.Item>\r\n <Form.Item\r\n name=\"type\"\r\n label=\"布局代码\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入页面名称!',\r\n },\r\n ]}\r\n >\r\n <div className='codeMain'>\r\n <CodeMirror\r\n onChange={(editor, data, value) => {\r\n setcode(value)\r\n }}\r\n value={oldCode}\r\n options={{\r\n styleActiveLine: true,//光标代码高亮\r\n lineNumbers: true,\r\n theme: 'monokai',\r\n tabSize: 2,\r\n keyMap: 'sublime',\r\n mode: 'text/javascript',\r\n smartIndent: true, //自动缩进\r\n lineWrapping: true,\r\n autofocus: true\r\n }}\r\n />\r\n </div>\r\n </Form.Item>\r\n </Modal>\r\n );\r\n};\r\nexport default PublishModal\r\n","import React from 'react';\r\nimport { Button, Modal, Form, Input, Radio, Select, message, Tabs } from 'antd';\r\nimport { useContext, useEffect, useState } from \"react\";\r\nimport { Root } from \"../dataCenter/Root\";\r\nimport { NEED_UPDATE_INDEX } from \"../dataCenter/action\";\r\nconst { Option } = Select;\r\nconst { TabPane } = Tabs;\r\nconst TypeModal = ({ visible, onCancel, queryData, data }) => {\r\n console.log(data);\r\n const [form] = Form.useForm();\r\n if (data) {\r\n form.setFieldsValue({\r\n type_name: data.type_name,\r\n });\r\n }\r\n const formItemLayout = {\r\n labelCol: { span: 4 },\r\n wrapperCol: { span: 18 },\r\n };\r\n\r\n const { fetchData, dataCenter, dispatch } = useContext(Root)\r\n const [value, setValue] = React.useState(1);\r\n\r\n\r\n const onCreate = (values) => {\r\n if (data) {\r\n console.log(data);\r\n\r\n let input = {\r\n type_id: '',\r\n type_name: ''\r\n }\r\n if (!data.isRemove) {\r\n input = {\r\n type_id: data.type_id,\r\n type_name: values.type_name\r\n }\r\n } else {\r\n input = {\r\n child_type_id: data.type_id,\r\n child_type_name: values.type_name\r\n }\r\n }\r\n fetchData('/typeManage/updateType', input)\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('修改成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n queryData()\r\n onCancel()\r\n }\r\n })\r\n } else {\r\n console.log(values);\r\n fetchData('/add/addType', values)\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('新建成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n onCancel()\r\n }\r\n })\r\n }\r\n\r\n };\r\n // function callback(key) {\r\n // console.log(key);\r\n // }\r\n\r\n const onChange = e => {\r\n console.log('radio checked', e.target.value);\r\n setValue(e.target.value);\r\n };\r\n\r\n const onGenderChange = (value) => {\r\n form.setFieldsValue({\r\n type_id: value,\r\n });\r\n };\r\n\r\n return (\r\n <Modal\r\n visible={visible}\r\n title={`${data ? '修改' : '新建'}类型`}\r\n okText=\"确定\"\r\n cancelText=\"取消\"\r\n onCancel={onCancel}\r\n onOk={() => {\r\n form\r\n .validateFields()\r\n .then((values) => {\r\n // form.resetFields();\r\n onCreate(values);\r\n })\r\n .catch((info) => {\r\n console.log('Validate Failed:', info);\r\n });\r\n }}\r\n >\r\n <Form\r\n form={form}\r\n // layout=\"vertical\"\r\n {...formItemLayout}\r\n name=\"form_in_modal\"\r\n initialValues={{\r\n modifier: 'public',\r\n 'radio-group': 1\r\n }}\r\n >\r\n\r\n {!data && <Form.Item name=\"radio-group\" label=\"类型\">\r\n <Radio.Group onChange={onChange} value={value}>\r\n <Radio value={1}>父类型</Radio>\r\n <Radio value={2}>子类型</Radio>\r\n </Radio.Group>\r\n </Form.Item>}\r\n {value === 1 || data ? <Form.Item\r\n name=\"type_name\"\r\n label={`${data ? '' : '父'}类型`}\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入类型名称!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入类型名称\" />\r\n </Form.Item> :\r\n <>\r\n <Form.Item\r\n name=\"type_id\"\r\n label=\"父类型\"\r\n hasFeedback\r\n rules={[{ required: true, message: '请选择父类型!' }]}\r\n >\r\n <Select\r\n placeholder=\"请选择父类型\"\r\n onChange={onGenderChange}\r\n // allowClear\r\n >\r\n {\r\n dataCenter?.type?.length && dataCenter?.type.map(v => {\r\n return (\r\n <Option key={v.type_id} value={v.type_id}>{v.type_name}</Option>\r\n )\r\n })\r\n }\r\n\r\n </Select>\r\n </Form.Item>\r\n <Form.Item\r\n name=\"child_type_name\"\r\n label=\"子类型\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入类型名称!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入类型名称\" />\r\n </Form.Item>\r\n </>\r\n\r\n }\r\n </Form>\r\n </Modal>\r\n );\r\n};\r\nexport default TypeModal\r\n","import React, {useContext, useEffect, useState} from 'react';\r\nimport {Root} from \"../dataCenter/Root\";\r\nimport {Modal, Space, Table} from 'antd';\r\nimport PublishModal from \"./PublishModal\"\r\n\r\nfunction PageModal({ visible, onCancel, onPublish }) {\r\n\r\n const [publish, setPublish] = useState(false)\r\n const [pageData, setpageData] = useState('')\r\n const { fetchData, dataCenter } = useContext(Root)\r\n\r\n const onChangePage = (values) => {\r\n console.log(values);\r\n setpageData(values);\r\n setPublish(true)\r\n };\r\n const onRemovePage = (values) => {\r\n console.log(values);\r\n // setVisible(false);\r\n };\r\n\r\n\r\n\r\n const columns = [\r\n {\r\n title: '页面Id',\r\n dataIndex: 'page_id',\r\n width: 150,\r\n align: 'center'\r\n },\r\n {\r\n title: '页面名称',\r\n dataIndex: 'page_name',\r\n width: 200,\r\n align: 'center'\r\n },\r\n {\r\n title: '页面Url',\r\n dataIndex: 'pageUrl',\r\n width: 300,\r\n align: 'center',\r\n render: (text, record) => (\r\n <Space size=\"middle\">\r\n <a href={record.pageUrl}>{record.pageUrl}</a>\r\n </Space>\r\n ),\r\n },\r\n {\r\n title: '操作',\r\n key: 'action',\r\n align: 'center',\r\n width: 100,\r\n render: (text, record) => (\r\n <Space size=\"middle\">\r\n <a onClick={() => onChangePage(record)}>替换</a>\r\n {/* <a onClick={() => onRemovePage(record)}>删除</a> */}\r\n </Space>\r\n ),\r\n },\r\n ];\r\n\r\n\r\n useEffect(() => {\r\n console.log(dataCenter);\r\n dataCenter?.type && fetchData('/page/queryPage', {}, 'queryPage')\r\n .then((res) => {\r\n })\r\n }, [])\r\n\r\n\r\n const data = [\r\n {\r\n key: '1',\r\n name: '1 Brown',\r\n age: 32,\r\n address: 'New York No. 1 Lake Park',\r\n },\r\n {\r\n key: '2',\r\n name: '2 Green',\r\n age: 42,\r\n address: 'London No. 1 Lake Park',\r\n },\r\n {\r\n key: '3',\r\n name: '3 Black',\r\n age: 32,\r\n address: 'Sidney No. 1 Lake Park',\r\n },\r\n {\r\n key: '4',\r\n name: '4 Brown',\r\n age: 32,\r\n address: 'New York No. 1 Lake Park',\r\n },\r\n {\r\n key: '5',\r\n name: '5 Green',\r\n age: 42,\r\n address: 'London No. 1 Lake Park',\r\n },\r\n {\r\n key: '6',\r\n name: '6 Black',\r\n age: 32,\r\n address: 'Sidney No. 1 Lake Park',\r\n },\r\n {\r\n key: '7',\r\n name: '7 Brown',\r\n age: 32,\r\n address: 'New York No. 1 Lake Park',\r\n },\r\n {\r\n key: '8',\r\n name: '8 Green',\r\n age: 42,\r\n address: 'London No. 1 Lake Park',\r\n },\r\n {\r\n key: '9',\r\n name: '9 Black',\r\n age: 32,\r\n address: 'Sidney No. 1 Lake Park',\r\n },\r\n {\r\n key: '10',\r\n name: '10 Brown',\r\n age: 32,\r\n address: 'New York No. 1 Lake Park',\r\n },\r\n {\r\n key: '11',\r\n name: '11 Green',\r\n age: 42,\r\n address: 'London No. 1 Lake Park',\r\n },\r\n {\r\n key: '12',\r\n name: '12 Black',\r\n age: 32,\r\n address: 'Sidney No. 1 Lake Park',\r\n },\r\n ];\r\n return (\r\n <>\r\n <Modal\r\n visible={visible}\r\n title=\"页面管理\"\r\n okText=\"确定\"\r\n cancelText=\"取消\"\r\n width='1000px'\r\n onCancel={onCancel}\r\n onOk={onCancel}\r\n >\r\n <Table columns={columns} dataSource={dataCenter?.queryPage && dataCenter.queryPage} pagination={{ pageSize: 10 }} size=\"middle\" />\r\n </Modal>\r\n {publish && <PublishModal\r\n visible={publish}\r\n onCancel={() =>\r\n setPublish(false)\r\n }\r\n data={pageData}\r\n />}\r\n </>\r\n )\r\n}\r\n\r\nexport default PageModal\r\n","import { Menu, Modal, Popconfirm, Space, Table, message } from 'antd';\r\nimport React, { useContext, useEffect, useState } from 'react';\r\nimport TypeModal from '../modal/TypeModal'\r\nimport { NEED_UPDATE_INDEX } from \"../dataCenter/action\";\r\nimport { Root } from \"../dataCenter/Root\";\r\n\r\nconst menu = (\r\n <Menu>\r\n <Menu.Item>Action 1</Menu.Item>\r\n <Menu.Item>Action 2</Menu.Item>\r\n </Menu>\r\n);\r\n\r\nfunction RemoveType({ visible, onCancel }) {\r\n\r\n const [typeModal, setTypeModal] = useState(false)\r\n const [typeData, settypeData] = useState('')\r\n const [oldData, setoldData] = useState('')\r\n const { fetchData, dataCenter, dispatch } = useContext(Root)\r\n\r\n const changType = (data) => {\r\n setoldData(data)\r\n setTypeModal(true)\r\n }\r\n\r\n const changeData = (list, cb) => {\r\n return list.map((item, index) => {\r\n const res = cb(item);\r\n if (item.children) res.children = changeData(item.children, item => ({\r\n isRemove: true,\r\n key: item.child_type_id,\r\n type_id: item.child_type_id,\r\n type_name: item.child_type_name,\r\n }));\r\n return res;\r\n })\r\n }\r\n\r\n const removeType = (data) => {\r\n fetchData('/typeManage/deleteChildType', { child_type_id: data.type_id })\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('刪除成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n queryData()\r\n // onCancel()\r\n }else{\r\n message.error('刪除失败')\r\n }\r\n })\r\n }\r\n\r\n const queryData = () => {\r\n dataCenter?.type && fetchData('/typeManage/queryTypeForManage', {}, 'childTypeData')\r\n .then((res) => {\r\n // console.log(res.data);\r\n const newData = changeData(res.data, item => ({\r\n key: item.type_id,\r\n type_id: item.type_id,\r\n type_name: item.type_name,\r\n }));\r\n // console.log(newData);\r\n settypeData(newData)\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n queryData()\r\n }, [])\r\n\r\n const columns = [\r\n { title: '类型名', width: 100, dataIndex: 'type_name', key: 'type_name' },\r\n { title: 'Id', width: 100, dataIndex: 'type_id', align: 'center', key: 'type_id' },\r\n {\r\n title: '操作', width: 100, key: 'operation', align: 'center',\r\n render: (text, record) => (\r\n <Space size=\"middle\">\r\n {record.isRemove && <Popconfirm title=\"确定删除吗?\" okText=\"确定\" cancelText=\"取消\" onConfirm={() => removeType(record)}>\r\n <a href=\"#\" >删除</a>\r\n </Popconfirm>}\r\n <a href=\"#\" onClick={() => changType(record)}>修改</a>\r\n </Space>\r\n )\r\n },\r\n ];\r\n\r\n return (\r\n <Modal\r\n visible={visible}\r\n title=\"类型管理\"\r\n okText=\"确定\"\r\n cancelText=\"取消\"\r\n width='1000px'\r\n onCancel={onCancel}\r\n onOk={onCancel}\r\n >\r\n <Table\r\n columns={columns}\r\n dataSource={typeData}\r\n />\r\n {typeModal && <TypeModal\r\n visible={typeModal}\r\n onCancel={() =>\r\n setTypeModal(false)\r\n }\r\n queryData={() =>\r\n queryData()\r\n }\r\n data={oldData}\r\n />}\r\n </Modal>\r\n\r\n );\r\n}\r\nexport default RemoveType\r\n","import React, {useState} from 'react'\r\nimport './AdminIndex.scss'\r\nimport {Button} from 'antd';\r\nimport ToolModal from '../../modal/ToolModal'\r\nimport PublishModal from '../../modal/PublishModal'\r\nimport TypeModal from '../../modal/TypeModal'\r\nimport PageModal from '../../modal/PageModal'\r\nimport RemoveType from '../../modal/RemoveType'\r\n\r\nfunction AdminIndex() {\r\n const [visible, setVisible] = useState(false)\r\n const [publish, setPublish] = useState(false)\r\n const [typeModal, setTypeModal] = useState(false)\r\n const [pageModal, setpageModal] = useState(false)\r\n const [removeType, setremoveType] = useState(false)\r\n\r\n return (\r\n <div className='admin'>\r\n <Button onClick={() => setVisible(true)}>新建工具盒</Button>\r\n <Button onClick={() => setTypeModal(true)}>新建类型</Button>\r\n <Button onClick={() => setPublish(true)}>发布</Button>\r\n <Button onClick={() => setpageModal(true)}>页面管理</Button>\r\n <Button onClick={() => setremoveType(true)}>类型管理</Button>\r\n {visible && <ToolModal\r\n visible={visible}\r\n onCancel={() =>\r\n setVisible(false)\r\n }\r\n />}\r\n {publish && <PublishModal\r\n visible={publish}\r\n onCancel={() =>\r\n setPublish(false)\r\n }\r\n />}\r\n {typeModal && <TypeModal\r\n visible={typeModal}\r\n onCancel={() =>\r\n setTypeModal(false)\r\n }\r\n />}\r\n {pageModal && <PageModal\r\n visible={pageModal}\r\n onCancel={() =>\r\n setpageModal(false)\r\n }\r\n />}\r\n {removeType && <RemoveType\r\n visible={removeType}\r\n onCancel={() =>\r\n setremoveType(false)\r\n }\r\n />}\r\n </div>\r\n )\r\n}\r\n\r\nexport default AdminIndex\r\n","import logo from \"../../static/logo.png\";\r\nimport './index.scss'\r\nimport ToolType from \"../../component/ToolType/ToolType\";\r\nimport Content from '../../component/ContentAdmin/Content'\r\nimport {PopContext, Root} from \"../../dataCenter/Root\";\r\nimport {useContext, useEffect, useState} from \"react\";\r\nimport {NEED_UPDATE_INDEX} from \"../../dataCenter/action\";\r\nimport AdminIndex from \"../../component/AdminIndex/AdminIndex\";\r\n\r\nfunction Index() {\r\n const [pop, setPop] = useState()\r\n const {fetchData, dataCenter, dispatch} = useContext(Root)\r\n const showPop = popComponent => {\r\n setPop(popComponent)\r\n }\r\n const getUser = () => {\r\n fetchData('/users/getUser', {uid: '100001'}, 'userInfo')\r\n .catch(res =>\r\n res.code === 70001 && (window.location.href = '/login')\r\n )\r\n }\r\n\r\n useEffect(() => {\r\n fetchData('/query/queryType', {}, 'type')\r\n .then(()=> fetchData('/query/queryChildType',{type_id: dataCenter.type_id},'childType'))\r\n .then(() => dispatch(NEED_UPDATE_INDEX()))\r\n }, [dataCenter.type_id])\r\n\r\n useEffect(() => {\r\n if (dataCenter.needUpdateIndex) {\r\n const _typeId = dataCenter.type_id === 'all' ? {} : dataCenter.type_id === 'follow' ? {\r\n isFollow: true,\r\n type_id: JSON.stringify(dataCenter.userInfo.follow)\r\n } : {type_id: dataCenter.type_id}\r\n fetchData('/query/queryToolBox', _typeId, 'toolBox').then(() => dispatch(NEED_UPDATE_INDEX()))\r\n }\r\n }, [dataCenter.needUpdateIndex])\r\n\r\n useEffect(() => {\r\n getUser()\r\n }, [])\r\n\r\n return (\r\n <PopContext.Provider value={{hidePop: () => setPop(''), showPop: popName => showPop(popName)}}>\r\n <div className=\"index\">\r\n <div className=\"welcome-top\">\r\n <span>欢迎您!\r\n <span className=\"welcome-uname\">{dataCenter?.userInfo?.uname}</span>\r\n <a className=\"login-btn\">退出登录</a>\r\n </span>\r\n </div>\r\n <div className=\"nav\">\r\n <div className=\"nav-title\">\r\n <img src={logo} alt=\"\"/>\r\n </div>\r\n <div className=\"nav-weather\">\r\n <iframe width=\"360\" height=\"40\" frameBorder=\"0\" scrolling=\"no\" hspace=\"0\"\r\n src=\"https://i.tianqi.com/?c=code&a=getcode&id=40&icon=1\"/>\r\n </div>\r\n </div>\r\n <div className=\"tool-nav\">\r\n <ToolType/>\r\n </div>\r\n <div className=\"container\">\r\n <Content/>\r\n </div>\r\n {\r\n pop\r\n }\r\n <div className=\"index-footer\">\r\n 兑吧研发中心·杭州兑吧网络科技游戏公司版权所有\r\n <br/>\r\n 浙ICP备14017299号-1\r\n </div>\r\n <AdminIndex/>\r\n </div>\r\n </PopContext.Provider>\r\n )\r\n}\r\n\r\nexport default Index\r\n\r\n","import './Content.scss'\r\nimport ContentItem from \"./ContentItem\";\r\nimport {useContext} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\n\r\nfunction Content(props) {\r\n const {dataCenter} = useContext(Root)\r\n return (\r\n <div className=\"content\">\r\n {\r\n dataCenter.toolBox?.length ? dataCenter?.toolBox?.filter(v => {\r\n if (dataCenter.child_type_id === 'all') return true\r\n else return v.child_type_id === dataCenter.child_type_id\r\n }).map(v => {\r\n return (\r\n <ContentItem key={v['toolbox_id']} value={v}/>\r\n )\r\n })\r\n :\r\n '没有数据了!'\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport default Content\r\n","import logo from \"../../static/logo.png\";\r\nimport './index.scss'\r\nimport ToolType from \"../../component/ToolType/ToolType\";\r\nimport Content from \"../../component/Content/Content\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\nimport {useContext, useEffect} from \"react\";\r\nimport {NEED_UPDATE_INDEX} from \"../../dataCenter/action\";\r\n\r\nfunction Index() {\r\n const {fetchData, dataCenter, dispatch} = useContext(Root)\r\n const getUser = () => {\r\n fetchData('/users/getUser', {uid: '100001'}, 'userInfo')\r\n .catch(res =>\r\n res.code === 70001 && (window.location.href = '/login')\r\n )\r\n }\r\n useEffect(() => {\r\n fetchData('/query/queryType', {}, 'type')\r\n .then(() => fetchData('/query/queryChildType', {type_id: dataCenter.type_id}, 'childType'))\r\n .then(() => dispatch(NEED_UPDATE_INDEX()))\r\n }, [dataCenter.type_id])\r\n useEffect(() => {\r\n if (dataCenter.needUpdateIndex) {\r\n const _typeId = dataCenter.type_id === 'follow' ? {\r\n isFollow: true,\r\n type_id: JSON.stringify(dataCenter.userInfo.follow)\r\n } : {type_id: dataCenter.type_id}\r\n fetchData('/query/queryToolBox', _typeId, 'toolBox').then(() => dispatch(NEED_UPDATE_INDEX()))\r\n }\r\n }, [dataCenter.needUpdateIndex])\r\n\r\n useEffect(() => {\r\n getUser()\r\n }, [])\r\n\r\n return (\r\n\r\n <div className=\"index\">\r\n <div className=\"welcome-top\">\r\n <span>欢迎您!\r\n <span className=\"welcome-uname\">{dataCenter?.userInfo?.uname}</span>\r\n <a className=\"login-btn\">退出登录</a>\r\n </span>\r\n </div>\r\n <div className=\"nav\">\r\n <div className=\"nav-title\">\r\n <img src={logo} alt=\"\"/>\r\n </div>\r\n <div className=\"nav-weather\">\r\n <iframe width=\"360\" height=\"40\" frameBorder=\"0\" scrolling=\"no\" hspace=\"0\"\r\n src=\"https://i.tianqi.com/?c=code&a=getcode&id=40&icon=1\"/>\r\n </div>\r\n </div>\r\n <div className=\"tool-nav\">\r\n <ToolType/>\r\n </div>\r\n <div className=\"container\">\r\n <Content/>\r\n </div>\r\n <div className=\"index-footer\">\r\n 兑吧研发中心·杭州兑吧网络科技游戏公司版权所有\r\n <br/>\r\n 浙ICP备14017299号-1\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Index\r\n\r\n","import './login.scss'\r\nimport {useContext, useEffect, useState} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\nimport {useFormState} from \"../../utils/hook\";\r\n\r\nfunction Login(props) {\r\n const {fetchData, dataCenter} = useContext(Root)\r\n const [needLogin,setNeedLogin] = useState(false)\r\n const [input, setInput] = useFormState()\r\n const getUser = ()=>{\r\n fetchData('/users/getUser', {uid:'100001'}, 'userInfo')\r\n .then(res => res.data.uid && (window.location.href = '/index'))\r\n .catch(res =>\r\n res.code === 70001 && setNeedLogin(true)\r\n )\r\n }\r\n const doLogin = () => {\r\n if (needLogin){\r\n fetchData('/users/login',{uid: '100001'})\r\n .then(()=>{\r\n getUser()\r\n })\r\n }else {\r\n getUser()\r\n }\r\n }\r\n useEffect(() => {\r\n if (dataCenter.userInfo) {\r\n // window.location.href = '/index'\r\n }\r\n }, [dataCenter.userInfo])\r\n\r\n useEffect(() => {\r\n doLogin()\r\n }, [])\r\n return (\r\n <div className=\"login\">\r\n <div className='loginDiv'>\r\n {\r\n needLogin && <input type=\"text\" onChange={e => setInput('uid',e.target.value)} defaultValue={input.uid}/>\r\n }\r\n <button className='btn-login' onClick={() => doLogin()}>登录</button>\r\n </div>\r\n\r\n </div>\r\n )\r\n}\r\n\r\nexport default Login\r\n","import {useCallback, useState} from \"react\";\r\n\r\nconst useFormState = (initialValues = {}) => {\r\n const [input, setInput] = useState(initialValues)\r\n\r\n const setInputData = useCallback((name, value) => {\r\n setInput(() => Object.assign({}, {...input}, {[name]: value}))\r\n }, [input])\r\n\r\n return [input, setInputData]\r\n}\r\n\r\n\r\nconst useDrag = () => {\r\n\r\n}\r\n\r\n\r\n\r\n//这个hook很有意思,怎么样保存return出去的那个组件的数据呢\r\n// function usePopContainer(props) {\r\n// const dragRef = useRef()\r\n// const [offset, setOffset] = useState({x: 0, y: 0})\r\n// const [draggable, setDraggable] = useState(false)\r\n// const handleMouseDown = e => {\r\n// e.stopPropagation()\r\n// setDraggable(true)\r\n// setOffset({\r\n// x: e.clientX - dragRef.current['getBoundingClientRect']().x,\r\n// y: e.clientY - dragRef.current['getBoundingClientRect']().y\r\n// })\r\n// }\r\n//\r\n// const handleMouseUp = () => setDraggable(false)\r\n// const handleMouseMove = e => {\r\n// if (draggable) {\r\n// dragRef.current.style.transform = `translate(${e.clientX - offset.x}px,${e.clientY - offset.y}px)`\r\n// console.log(dragRef.current.style.transform)\r\n// }\r\n// }\r\n// return {\r\n// PopContainer: props => (\r\n// <div className=\"drag-Container\"\r\n// onMouseUp={() => handleMouseUp()}\r\n// onMouseMove={(e) => handleMouseMove(e)}>\r\n// <div className=\"Pop-container\"\r\n// ref={dragRef}\r\n// >\r\n// {props.children}\r\n// </div>\r\n// </div>\r\n// ),\r\n// dragMouseDown: e => handleMouseDown(e)\r\n// }\r\n// }\r\n\r\nexport {\r\n useFormState,\r\n useDrag,\r\n}\r\n","import './App.css';\r\nimport DataCenter from \"./dataCenter/Root\";\r\nimport IndexAdmin from \"./page/indexAdmin\";\r\nimport Index from \"./page/index\";\r\nimport Login from \"./page/login/login\";\r\nimport {HashRouter as Router, Route, Switch} from \"react-router-dom\";\r\nimport {useEffect} from \"react\";\r\n\r\nfunction App() {\r\n useEffect(() => {\r\n console.log(\"%c+\",\r\n `font-size: 1px;\r\n padding: 122px 217px;\r\n background-image: url(https://yun.duiba.com.cn/spark/assets/cc8da992b527b3cd24da7df9a5be8b2361c2e549.jpg);\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n color: transparent;`);\r\n }, [])\r\n return (\r\n <Router>\r\n <DataCenter>\r\n <Switch>\r\n <Route exact path='/login' component={Login}/>\r\n <Route exact path='/' component={Index}/>\r\n <Route exact path='/admin' component={IndexAdmin}/>\r\n </Switch>\r\n </DataCenter>\r\n </Router>\r\n );\r\n}\r\n\r\nexport default App;\r\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport {ConfigProvider} from 'antd';\r\n// 由于 antd 组件的默认文案是英文,所以需要修改为中文\r\nimport zhCN from 'antd/lib/locale/zh_CN';\r\nimport moment from 'moment';\r\nimport 'moment/locale/zh-cn';\r\nimport 'antd/dist/antd.css';\r\nimport './index.css';\r\nimport App from './App';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nmoment.locale('zh-cn');\r\nReactDOM.render(\r\n <React.StrictMode>\r\n <ConfigProvider locale={zhCN}>\r\n <App />\r\n </ConfigProvider>\r\n </React.StrictMode>,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}
\ No newline at end of file
(this.webpackJsonpdui123=this.webpackJsonpdui123||[]).push([[0],{173:function(e,t,n){},174:function(e,t,n){},176:function(e,t,n){},177:function(e,t,n){},178:function(e,t,n){},179:function(e,t,n){},250:function(e,t,n){},251:function(e,t,n){},252:function(e,t,n){},272:function(e,t,n){},273:function(e,t,n){},274:function(e,t,n){},279:function(e,t,n){"use strict";n.r(t);var c=n(0),i=n.n(c),a=n(28),o=n.n(a),l=n(17),r=n(158),s=n.n(r),d=n(134),u=n.n(d),j=(n(171),n(172),n(173),n(174),n(77)),b=n(21),p=n(40),m={toolBox:null,type:null,childType:null,userInfo:null,needUpdateIndex:!1,type_id:"follow",child_type_id:"all"};!function e(t){return Object.getOwnPropertyNames(t).forEach((function(n){var c=t[n];"object"==typeof c&&null!==c&&e(c)})),Object.freeze(t)}(m);var O=function(e,t){switch(console.table(t,["dataCenter\u7684dispatch"]),t.type){case"UPDATE_DATA":return Object.assign({},e,Object(p.a)({},t.data));case"NEED_UPDATE_INDEX":return Object.assign({},e,{needUpdateIndex:!e.needUpdateIndex});case"CHANGE_TYPE":return Object.assign({},e,{type_id:t.type_id});case"CHANGE_CHILD_TYPE":return Object.assign({},e,{child_type_id:t.child_type_id});default:return e}},A={domain:"https://"+window.location.hostname+":3000"},f=function(e){return{type:"CHANGE_TYPE",type_id:e}},g=n(6),h=Object(c.createContext)({}),y=Object(c.createContext)({});var x=function(e){var t=Object(c.useReducer)(O,m,(function(){return m})),n=Object(b.a)(t,2),i=n[0],a=n[1];return Object(g.jsx)(h.Provider,{value:{dataCenter:i,dispatch:a,fetchData:function(e,t,n){return fetch(function(e,t){if(t){var n=Object.keys(t).map((function(e,n){return 0===n?"?"+e+"="+t[e]:"&"+e+"="+t[e]})).join("");return console.log("\u53d1\u9001\u8bf7\u6c42\uff1a",A.domain+e+n),A.domain+e+n}return A.domain+e}(e,t),{credentials:"include"}).then((function(e){return e.json()})).then((function(e){if(console.log(e),!e.success)throw e;var t;return n&&a((t=Object(j.a)({},n,e.data),{type:"UPDATE_DATA",data:Object(p.a)({},t)})),e})).catch((function(e){throw console.error(e),e}))}},children:e.children})},v=n.p+"static/media/logo.c725c5d1.png",E=(n(176),n(177),function(e){var t=Object(c.useContext)(h),n=t.dataCenter,i=t.dispatch,a=e.child_type_id,o=e.child_type_name,l=["child-type-item"];a===n.child_type_id&&l.push("child-type-item-selected");return Object(g.jsx)("div",{className:l.join(" "),onClick:function(){console.log(a),i(function(e){return{type:"CHANGE_CHILD_TYPE",child_type_id:e}}(a))},children:o})});var I=function(e){var t,n,i=Object(c.useContext)(h),a=i.dataCenter,o=i.dispatch;return Object(g.jsxs)(g.Fragment,{children:[Object(g.jsxs)("div",{className:"tab-tool-type",children:[Object(g.jsx)("div",{className:"follow"===a.type_id?"item-tool-type item-tool-type-selected":"item-tool-type",onClick:function(){return o(f("follow"))},children:"\u6211\u7684\u6536\u85cf"}),(null===a||void 0===a||null===(t=a.type)||void 0===t?void 0:t.length)>0&&a.type.map((function(e){var t=["item-tool-type "];return e.type_id===a.type_id&&t.push("item-tool-type-selected"),Object(g.jsx)("div",{className:t.join(""),onClick:function(){return o(f(e.type_id))},children:e.type_name},e.type_id)}))]}),Object(g.jsxs)("div",{className:"child-type",children:[Object(g.jsx)(E,{child_type_id:"all",child_type_name:"\u5168\u90e8"},"all"),(null===a||void 0===a||null===(n=a.childType)||void 0===n?void 0:n.length)>0&&(null===a||void 0===a?void 0:a.childType.map((function(e){return Object(g.jsx)(E,{child_type_id:e.child_type_id,child_type_name:e.child_type_name},e.child_type_id)})))]})]})},C=(n(178),n(179),n.p+"static/media/setting.6a716d85.svg"),k=n.p+"static/media/trash.780a90e8.svg",w=n.p+"static/media/dragIcon.268403b1.svg",D=n(95),T=n(282),R=n(162),S=n(285),J=n(284),B=D.a.Option,N=function(e){var t,n,i,a=e.visible,o=e.onCancel,l=e.data,r=T.a.useForm(),s=Object(b.a)(r,1)[0],d=Object(c.useContext)(h),u=d.fetchData,j=d.dataCenter,m=d.dispatch;return Object(c.useEffect)((function(){var e;(null===j||void 0===j?void 0:j.type)&&u("/query/queryChildType",{type_id:null===j||void 0===j||null===(e=j.type[0])||void 0===e?void 0:e.type_id},"childType").then((function(e){console.log(e)}))}),[]),Object(g.jsx)(S.a,{visible:a,title:l?"\u4fee\u6539\u5de5\u5177\u7bb1":"\u65b0\u5efa\u5de5\u5177\u7bb1",okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",onCancel:o,onOk:function(){s.validateFields().then((function(e){!function(e){var t={toolbox_name:e.name,toolbox_icon:e.icon,toolbox_desc:e.depict,toolbox_url:e.url};l?u("/update/updateToolBox",t).then((function(e){e.success?(R.b.success("\u4fee\u6539\u6210\u529f"),m({type:"NEED_UPDATE_INDEX"}),o()):R.b.error("\u65b0\u5efa\u5931\u8d25")})):(t=Object(p.a)(Object(p.a)({},t),{},{type_id:e.type,child_type_id:e.childType}),console.log(t),u("/add/addToolBox",t).then((function(e){e.success?(R.b.success("\u65b0\u5efa\u6210\u529f"),m({type:"NEED_UPDATE_INDEX"}),o()):R.b.error("\u65b0\u5efa\u5931\u8d25")})))}(e)})).catch((function(e){console.log("Validate Failed:",e)}))},children:Object(g.jsxs)(T.a,Object(p.a)(Object(p.a)({form:s},{labelCol:{span:4},wrapperCol:{span:18}}),{},{name:"form_in_modal",initialValues:l?{name:l.toolbox_name,icon:l.toolbox_icon,url:l.toolbox_url,depict:l.toolbox_desc}:{type:(null===j||void 0===j?void 0:j.type)&&(null===j||void 0===j||null===(t=j.type[0])||void 0===t?void 0:t.type_id)},children:[Object(g.jsx)(T.a.Item,{name:"name",label:"\u540d\u79f0",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u540d\u79f0!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u540d\u79f0"})}),Object(g.jsx)(T.a.Item,{name:"icon",label:"\u56fe\u6807",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u56fe\u6807url!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u56fe\u6807url"})}),Object(g.jsx)(T.a.Item,{name:"depict",label:"\u63cf\u8ff0",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u63cf\u8ff0!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u63cf\u8ff0"})}),Object(g.jsx)(T.a.Item,{name:"url",label:"\u94fe\u63a5",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u94fe\u63a5!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u94fe\u63a5"})}),!l&&Object(g.jsx)(T.a.Item,{name:"type",label:"\u7c7b\u578b",rules:[{required:!0,message:"\u8bf7\u9009\u62e9\u7c7b\u578b!"}],children:Object(g.jsx)(D.a,{placeholder:"\u8bf7\u9009\u62e9\u7c7b\u578b",onChange:function(e){s.setFieldsValue({type:e}),u("/query/queryChildType",{type_id:e},"childType").then((function(e){console.log(e)})),console.log(j)},children:(null===j||void 0===j||null===(n=j.type)||void 0===n?void 0:n.length)&&(null===j||void 0===j?void 0:j.type.map((function(e){return Object(g.jsx)(B,{value:e.type_id,children:e.type_name},e.type_id)})))})}),!l&&(null===j||void 0===j?void 0:j.childType)&&Object(g.jsx)(T.a.Item,{name:"childType",label:"\u5b50\u7c7b\u578b",children:Object(g.jsx)(D.a,{placeholder:"\u8bf7\u9009\u62e9\u5b50\u7c7b\u578b",onChange:function(e){s.setFieldsValue({childType:e})},allowClear:!0,children:(null===j||void 0===j||null===(i=j.childType)||void 0===i?void 0:i.length)&&(null===j||void 0===j?void 0:j.childType.map((function(e){return Object(g.jsx)(B,{value:e.child_type_id,children:e.child_type_name},e.child_type_id)})))})})]}))})};var q=function(e){var t=Object(c.useState)(!1),n=Object(b.a)(t,2),i=n[0],a=n[1],o=Object(c.useContext)(h).fetchData,l=(Object(c.useContext)(y).showPop,e.value),r=l.toolbox_icon,s=l.toolbox_name,d=l.toolbox_desc,u=l.toolbox_url,j=(l.follow,l.toolbox_id),p=Object(c.useState)(r),m=Object(b.a)(p,2),O=m[0],A=m[1],f=function(e){window.location.href=e};return Object(g.jsxs)("div",{className:"content-item",children:[Object(g.jsxs)("div",{className:"content-adminTool",children:[Object(g.jsx)("img",{src:w,alt:""}),Object(g.jsx)("img",{src:C,alt:"",onClick:function(){return a(!0)}}),Object(g.jsx)("img",{src:k,alt:"",onClick:function(){return function(e){o("/delete/deleteToolBoxById",{toolbox_id:e})}(j)}})]}),Object(g.jsxs)("div",{className:"item-icon",onClick:function(){return f(u)},children:[!O&&Object(g.jsx)("div",{className:"defaultIcon",children:s[0]}),O&&Object(g.jsx)("img",{src:O,alt:"",onError:function(e){return A(null)}})]}),Object(g.jsx)("div",{className:"item-name",onClick:function(){return f(u)},children:s}),Object(g.jsx)("div",{className:"item-desc",children:d}),Object(g.jsx)("a",{className:"item-url",href:u,children:u}),i&&Object(g.jsx)(N,{visible:i,onCancel:function(){return a(!1)},data:e.value})]})};n(250);var G=function(e){var t=Object(c.useContext)(h),n=t.dataCenter,i=t.fetchData,a=e.value,o=a.toolbox_icon,l=a.toolbox_name,r=a.toolbox_desc,s=a.toolbox_url,d=a.toolbox_id,u=Object(c.useState)(!1),j=Object(b.a)(u,2),p=j[0],m=j[1],O=Object(c.useState)(o),A=Object(b.a)(O,2),f=A[0],y=A[1],x=function(e){return window.location.href=e};return Object(c.useEffect)((function(){var e;(null===(e=n.userInfo)||void 0===e?void 0:e.follow.includes(d))?m(!0):m(!1)}),[n.toolBox,n.userInfo]),Object(g.jsxs)("div",{className:"content-item",children:[Object(g.jsxs)("div",{className:"item-icon",onClick:function(){return x(s)},children:[!f&&Object(g.jsx)("div",{className:"defaultIcon",children:l[0]}),f&&Object(g.jsx)("img",{src:f,alt:"",onError:function(e){return y(null)}})]}),Object(g.jsx)("div",{className:"item-name",onClick:function(){return x(s)},children:l}),Object(g.jsx)("div",{className:"item-desc",children:r}),Object(g.jsx)("a",{className:"item-url",href:s,children:s}),Object(g.jsxs)("div",{className:"follow",children:[Object(g.jsx)("img",{className:"icon-follow",src:p?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOUAAADICAYAAAAX+yb+AAAAAXNSR0IArs4c6QAAFLJJREFUeF7tnXu0XHV1x7/7zJ0zSaFd6FIK3jtnAiSZmfDSNoWKdJkUUJCwAHkUVGihFVZBeUgBQbvABJSHj6SiFKo8VSywsPIWQkkVNS2mIJDMzA1g7pnw1oW1Ae6cuffsrjP3phBM7pzH73cec/b8m/377r0/v/nmnHvmnH0I8hECQiBVBChV1UgxQkAIQEwpXwIhkDICYsqUbYiUIwTElPIdEAIpIyCmTNmGSDlCQEwp3wEhkDICuTJla2T2MBe6Vbg0H4QqmKoAz97mnhD9GuCNTMZzcPk5A+5GoqHnyBx/bt7T6KRsL1NVzvq5+CPumsNgY3iSJ0cINAyDh5lphJj/cAbmv2FgfYF5lInXF4oTo3Ofwcupak5zMQNrykZlaD+DjYPAqLqEKgHzAWyviicBa5lptWu4qw0Xj7/Q7j6+GJhQpZ8lnfYIZm/C0L5kGPsQY18m7AtgWGEP/0PAKDPWE2HUdXFHfaPzpEL9VEkNjCmfLJd2K8I9CEQHAlgM4J0xk/4dgf+LmR5n0Mp6u/OjmPPHmq5VKR3iuu6BBhkLGfxnALZ9xqGnsvUA7mDXvb++cWKVnhTJqGbalM2R0sGGwYvcKRPukwzCrWclYB0D97Dr3lPfOPEfaaotbC09I7J7CECHEDA3rI7qdQS0GXQPwA85cB7ay8arqnPEqZdJU45apSUu+BQAh8UJK0Ku/wbD+9LcWWt3fxFBJ/alaTXiDCBeJOB6d5JuqD/XGY0dmIKEmTJlBs24tS36jgvjxgX2+EoF+6dNommZR4PxtyAcrC2JRmEGXjeYr2fghqz9R5gJUw6IGbf4ChJwNwM31mzndo3fzcDS66ziCQbjZBAtCrw4vQtuBrnX18YmHk5viW9WlmpTtqxZBzDcMzN0mhpiz+kRl9wbF4x1vxVisbIlDav4SYPpZCb8uTLR9An9EOSuSLs5U2nK1nvwLrdYvICYPpO+fdVTEQN3EfPSuE+11s4pvrfAdBEYR+jpLIWqjEs27egsXbgG3RRWl76nRFpW8UQGXQCglkZgOmvy/g4iYGnNdi7XmWez9jqrdJYBvgjADnHkS1mOnzHT0jT+dJWaI2VruLg3F3pm/KuUbV7s5RD4wQnmZbu3J36iI3kuj47bBnnF5BvOst1fwSYdrMNopsKUDcu8gADPkNu+/SpMd9le43pHzartfEFlGzk/Om4L5RowLa21O3eqZB1WK1FT/nJ49siswuTVDCwJ20AO1t1as53IZw8PA0M7W6WrAD41B8zCtnh5zXY+G3axqnWJmXJ0pLjvpEHfImAPVc0MsM5TBozD59vjz4bpcd1IaZ5h4DqA9w+zPmdrbq/ZzjFJ9pyIKRsV8yhipOr3uSQ3wWdut8D0kXkB76ltlEsfIuKBvg/XJz/fYQQ8xjy0pNZ+/XnfixQGxm7KRtm8kAiXKuwhV1IMOqNud77up+lGpfiVPP2s5IdJgJjfMbkH18cmfh5gjZLQWE3ZsoorGXSAkspzLMKMz9XbzhdnQtAsFx8esLtyEtlxYhxfbTvfjzN5bKZsWibH2djg56Iza3bnn7bWZ8MqPkjoPcImHwUEGLigbjuXKZDyJRGLKVuW2WZgxFdFEuSfAPNptXb36rcuaFrmrQASvVDhv4HsRBL4r6t296Y4KtZuykbZXE1TT6LLRwMBYjqn2u581ZNuWaVreOqRNvloIeDuX7MnfqpF+i2iWk3ZtEzvCutRupvIvT7j86DejRfn556FZgDsYi/do0i0mbJpFVcAdIZmRiIvBOIm8KpZMN6366/Gx3Ql1mLKZqV0Lpiv0FW06AqBZAnQT2ajc3hF09gR5aZsVMyPEeO7yUKT7EJAO4G7qrZzJAGTqjMpNeWoNWtXF+6/A6ioLlT0hEDaCBDx16pjXeXP/Co1ZdMybwbwibTBk3qEgC4CDDqsbnfuVqmvzJQNq3gKga5RWZxoCYEMEHh004SzaOHzeF1VrUpMOVox6y7DO23dSVVhoiMEMkRA6SNfSkwpd5Fk6OsjpWohwEwfrrc7D6gQj2zKhlX6NIG3eg+migJFQwhkgwA9UrU7i1RcjY1kyt6sF5e809Z3ZAOcVCkE9BFgYGnddrxBZJE+kUzZrJjXgXFSpApksRAYIAIMXli3u2uitBTalI2RoUVkGJmYOB0FkKwVAkEIEOjaqt2JNAcptCmblnkbgKODFCyxQiAPBKIeLUOZsmGVDiNwKsbx5WGTpcdsEYh6tAxpSvNHBHwoW6ikWiEQH4EoR8vApmxWzI+D8Z342pNMQiB7BKIcLYOb0jJ/BuD92cMkFQuBeAmEPVoGMmXLKp7AoFjmlMSLT7IJAfUEwh4tA5lSxnuo3zhRHGQC/HLJ6FZ22YDxIF36NuXakdLcgsENAENBEkisEMg1AabDg744yLcpG5XSOcT85VwDluaFQGACvKJmd88Kssy3KZtW6ccA/0UQcYkVAnknwMBTddvZMwgHX6ZcXxl6/yQb3lVX+QgBIRCQABmoVzc4Tb/LfJly1DIvc2WmqF+mEicEtiDggs5eYHeW+8Xiy5Qty2wwUPMrKnFCQAi8hQDh/tqYc4hfJn1N2Rgx9yQDT/gVlDghIAR+n0DNdvp6bfOqvoEyx1W+YkIgOgEDxm5+38Td35SW+SUCEn8PfHQsoiAEkiNgwDhovj2+0k8FfkwpT4T4ISkxQmAGAgw+tW53r/UDqa8pm5b5GwDv9CMmMUJACGyTgO8xlDOa8pmR0ryuwaMCWggIgcgEbqvZzrF+VGY05bqyeZxBuMWPkMQIASEwI4E1NdtZ6IfRjKZsls2lIPyjHyGJEQJCYEYCr9Zsx9efgTOb0jK9d0yeK7CFgBCITsDvb5UzmrJRLn6diD4VvRxREAJCQIkpm1bpXwD+O8EpBIRAdAKKTGl6A7I+Hr0cURACQkCVKW8HcJTgFAJCIDoBVaa8B8BHopcjCkJACCgyZfEhgP5ScAoBIRCdgCJTmt6rCQ6LXo4oCAEhoMSULcu8kYETBacQEALRCBCwtmo7e/hR6XPzQHE5QGf6EZIYISAEZiSg5t7XlmVexMDFAlsICIFoBAi4uGo7X/CjMuORctQqneGCV/gRkhghIARmJHBszXa8d7r2/cxoSnl3SF9+EiAEfBEoALvPs511foL7HSmXuOC7/AhJjBAQAtsm4PfKq6cwoynXzim+t+DSYwJbCAiB8ASCXHnta0ovoGmZrwLYIXxJslII5JwA8zdr7e7pfin0n9FTMX8AxhF+BSVOCAiBLQmw6y6ub5xY5ZdLf1NapbMA/ppfQYkTAkJgCwJjNduZE4SJD1MOfQAwHgkiKrFCQAhMEWDmq+rt7qeD8OhryrULYBY2mS/J35VBsEqsEJg2ZcBTV18XeqYv9sgjXPItEwJBCRCeqI05ewdf5mOF3G7nA5KECIG3E2BcUms7gadB9j199fK05pg1dvEkgCEhLwSEgD8CDF5Yt7tr/EW/GeXLlNOnsDKvJyhdic8tAQJdW7U7p4YB4NuUo1ZJbrkLQ1jW5JJA2KOk7ws9m6m2KuZqZuybS8rStBDwSSDKUTK4Kculs5n4qz5rkzAhkEsCUY6SgU25ofIHO4/zxFPyarxcftekaR8Eoh4lA5uydyW2UvwGM53moz4JEQK5IxD1KBnKlE+XzT0mCKsBbJc74tKwEJiRAC+v2d2zo0LyffX1rYlaFfNSZlwYNbmsFwIDRODxNwxn8fs24LdRewplyqd3w44TXdM7Wu4StQBZLwQGgYDLOHJB2/k3Fb2EMqWXuGmVzgR4uYoiREMIZJuAmtPWzQxCm9ITaJTN1UTyu2W2v1BSfUQCyk5bVZnyeCJ8L2JTslwIZJaAytNWJab0RFpl8w4mHJlZqlK4EAhNQO1pqzJTNoZL86nADwCohO5NFgqB7BG4q2o7RxIwqbr0SH9Tbi6mVTaPY8ItqosTPSGQSgLMqxzqfnQvG96kR+UfJab0qmpa5hUAzlVeoQgKgTQRYH6lWCws3O3ZcVtXWcpMeTFgHGcVH5SXzOraKtFNAwGXseeCtuPd/63to8yUvaNlubgQRA/KkC1t+yXCCRJgcverj038XHcJSk3pFduyiqcw6BrdhYu+EIiZgO+3ZkWtS7kpp4wp77WMujGyPj0EgrxbUkXVWkzZO5WtmJeA8TkVRYqGEEiMQMD3gKioU5spe8a0zMsAnK+iUNEQAgkQ8P1KdJW1aTVl71S2XPwyE52jsmjREgLaCTCvqrW7i7Xn2UoC7ab0cjas4goCnZFEg5JTCAQlEPR9kkH1+8XHYsreqWy5+A2QjBHptyHy7wkTYH6l1u7umGQVsZmydyprla5h8ClJNiy5hcBMBIK8Bl0XyVhNOXXENL8Nwsm6GhJdIRCWQKfjbL/3S3gt7HpV62I3Zc+YlnkTgBNUNSE6QiAqATaMXeobxjdE1VGxPhFT9k5ly+b3mHC8iiZEQwhEIUDM+1Tb3UejaKhcm5gpp4+YtwI4RmVDoiUEghAgokOrY517g6zRHZuoKaePmDK5QPcui/5WCTDzSfV294a04UnclB6QhmXeRcCStMGRegaYANF5tbHOlWnsMBWm7J3Kls37QDg4jZCkpoEjcGXNds5La1epMWXvVNYqPsigA9MKS+rKPgECbqjazklp7iRVpuydylaKq4jpg2mGJrVllsC9Nds5NO3Vp86UU1dlS48A/IG0w5P6MkXg0Zrt7JOFilNpyqkjprma5K3RWfgOZaHGDTXbycx7b1JryqkjpvkLAH+ahV2XGlNL4LWa7Wyf2uq2UliqTdkzZsX8JRh7ZQmq1JoeAmm4wTwojdSbsncqa5lrCVgQtDmJzzeBguPsOO9FvJI1Cpkw5fQRswXG/KwBlnqTIVAAdp9nO+uSyR4ta2ZM6bXZssxnGNg1WsuyetAJsOsurm+cWJXVPjNlyumLP964+HJWgUvd2gnENp9VVyeZM+W0MZ8HsLMuKKKbTQLEfHq13f1mNqt/s+pMmnLqb8ziy2B6d9Y3QOpXQyDugclqqt66SmZNOX3E9F5FtoNOQKKdAQIJDEzWSSXTppw25v8CyNSPwzo3NIfaiQxM1sk586acNuYbAGbpBCXaKSSQ4MBknTQGwpTTxuwCGNIJS7TTQyDpgck6SQyMKaeNyTphiXZKCKRgYLJOEgNlyluBwl6WOaETmGgnTyCL97MGoTZQpvQaXz8XpUnHHA8CQWKzQyAtA5N1Ehs4U3qwXvxjbPfbkrlJJzjRjp9AmgYm6+x+IE3pAXtsDnaY7Zre75jyGQACaRuYrBPpwJrSg9Z6D97FQ2bmHt3RueFZ1E7jwGSdHAfalB64tXO226ngdl/QCVG09RFI68BkfR0DA2/K3sWf4dkjk4XJtk6Qoq2BQIoHJmvo9v8lc2FKr9tmZdYuYPdZnTBFWymBVA9MVtrp28RyY0qv73UjpXmGwaM6gYp2dAJZGJgcvcttK+TKlB6G0YpZdxmZHBOh84uQIu1MDEzWySt3pvRgNkbMPcnAEzrBinYoApkZmByqO5+LcmnK3qlspfgnBtMan5wkTD+BTA1M1okjt6b0oLZGivuwQf+pE7Bo+yKQuYHJvroKGZRrU/ZOZStD+xEbPw3JT5YpIDDoN5gHRZR7U079jTn0QTKMzI4kDLrpaYrP6sBknQzFlNN0W9asAxjuSp2wRXtLAlkemKxzL8WUb6HbKJc+TMT36wQu2lMEsj4wWec+iinfRne0UjrUZb5bJ3TRRuYHJuvcQzHlVuiuK5tHGIQf6ASfV+1BGZisc//ElNug27TMowHcphN+3rQHaWCyzr0TU85At1U2j2PCLTo3IDfaAzYwWee+iSn70G1a5icA3KxzE3KgPXADk3XumZjSB91muXgSiK7zESohbycwoAOTdW60mNIn3ZZV/CSDrvUZLmHoPUG/tmo7ewiMYATElAF4NcvFvwdR5l+1FqDl8KEDPjA5PJj+K8WU/RltEdG0SmcAvCLgstyFy/2s4bdcTBmCXaNc+gwRfyXE0lwsycPAZJ0bKaYMSbdpmecBuDzk8oFdlpeByTo3UEwZgW6rbF7IhEsjSAzU0jwNTNa5cWLKiHQblnmRd6dKRJnML8/bwGSdGyamVEC3WTaXgfB5BVKZlMjjwGSdGyWmVES3YZlfIuCziuSyI5PTgck6N0hMqZBus2xeCcI/KJRMu1RuBybr3BgxpWK6Tau4HKAzFcumTi7vA5N1boiYUgPdRrl4FRGdrkE6LZK5H5iscyPElJroNq3SPwN8qib5JGVlYLJm+mJKjYCbZfPbIJysMUXc0jIwOQbiYkrNkBuWeSMBJ2pOE4e8DEyOg/LU0zXy0U2gWTa/C8LHdOfRqS83mOuku6W2mDIm1k3L/FcAx8aUTmkaGZisFGdfMTFlX0TqAhpl8w4iHKlOUb+SDEzWz/jtGcSUMTNvWuadAA6LOW2odDIwORS2yIvElJERBhdols17QTgk+MpYV8jA5Fhxv5lMTJkQ+JZVfIBBByWUfsa0MjA52V0RUybIv1EuPkxEixIs4fdSy8Dk5HdDTJnwHrQs83oG/ibhMnrpxZBp2AX5nTIVu9CyzIs44QelxZCp+Cps/s8xPcXkuZJEjcl8Wq3dvTrP/NPUu5y+pmg3WpXSp5jZe1B6OKay1oCxrNZ2fhhTPknjg4CY0gekOEN+NWfWnI7rGVP7EyaX79Bxlu30El6Lsz/J1Z+AmLI/o0QiGlZpCQHnA7y/ygIY/OMCCsvm2+PyKnmVYBVqiSkVwtQh1SybhzPhCAIOB/COcDn41wzcYpBxX3Wsc184DVkVFwExZVykFeRpWuYxAI4BoQqXdwbRu7cqy/wKDHoBjAYR3VQd69yrIL1IxERATBkTaB1pGCiMjszeiWliZ0+feOiF+RvfeJGASR35RDMeAmLKeDhLFiHgm4CY0jcqCRQC8RAQU8bDWbIIAd8ExJS+UUmgEIiHgJgyHs6SRQj4JiCm9I1KAoVAPATElPFwlixCwDcBMaVvVBIoBOIhIKaMh7NkEQK+CYgpfaOSQCEQDwExZTycJYsQ8E1ATOkblQQKgXgI/B8gy7sUM0KGDwAAAABJRU5ErkJggg==":"data:image/png;base64,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",alt:"",onClick:function(){return function(){var e=n.userInfo.follow.slice();if(p){var t=e.indexOf(d);e.splice(t,1)}else e.push(d);console.log({follow:JSON.stringify(e),uid:n.userInfo.uid}),i("/users/follow",{follow:JSON.stringify(e),uid:n.userInfo.uid}).then((function(){return i("/users/getUser",{uid:100001},"userInfo")}))}()}}),"\u6536\u85cf"]})]})};var K=function(e){var t,n,i=Object(c.useContext)(h).dataCenter;return Object(g.jsx)("div",{className:"content",children:(null===(t=i.toolBox)||void 0===t?void 0:t.length)?null===i||void 0===i||null===(n=i.toolBox)||void 0===n?void 0:n.filter((function(e){return"all"===i.child_type_id||e.child_type_id===i.child_type_id})).map((function(e){return Object(g.jsx)(q,{value:e},e.toolbox_id)})):"\u6ca1\u6709\u6570\u636e\u4e86\uff01"})},F=(n(251),n(31)),z=(n(252),n(153)),X=(n(253),n(254),n(147),n(255),n(257),n(258),n(52),n(259),n(260),n(261),n(262),n(263),D.a.Option,function(e){var t=e.visible,n=e.onCancel,i=e.data,a=Object(c.useState)(""),o=Object(b.a)(a,2),l=o[0],r=o[1],s=Object(c.useState)(""),d=Object(b.a)(s,2),u=d[0],j=d[1],p=Object(c.useState)(""),m=Object(b.a)(p,2),O=m[0],f=(m[1],Object(c.useContext)(h)),y=f.fetchData,x=f.dataCenter;return Object(c.useEffect)((function(){i&&j(i.page_name)}),[i]),Object(g.jsxs)(S.a,{visible:t,title:"\u53d1\u5e03",okText:"\u53d1\u5e03",cancelText:"\u53d6\u6d88",onCancel:n,onOk:function(e){console.log(l),l&&u?i?fetch("".concat(A.domain,"/page/updatePage"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({page_id:i.page_id,page_name:u,code:l})}).then((function(e){return e.json()})).then((function(e){e.success?(n(),R.b.success("\u66ff\u6362\u6210\u529f\uff01"),(null===x||void 0===x?void 0:x.type)&&y("/page/queryPage",{},"queryPage").then((function(e){}))):R.b.error("\u66ff\u6362\u5931\u8d25")})):fetch("".concat(A.domain,"/page/addPage"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({page_name:u,code:l})}).then((function(e){return e.json()})).then((function(e){e.success?(n(),R.b.success("\u53d1\u5e03\u6210\u529f\uff01"),(null===x||void 0===x?void 0:x.type)&&y("/page/queryPage",{},"queryPage").then((function(e){}))):R.b.error(e.error||"\u53d1\u5e03\u5931\u8d25")})):R.b.error("\u8bf7\u8865\u5168\u4fe1\u606f\uff01")},width:"1000px",children:[Object(g.jsx)(T.a.Item,{name:"page_name",label:"\u9875\u9762\u540d\u79f0",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u9875\u9762\u540d\u79f0!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u9875\u9762\u540d\u79f0",defaultValue:(null===i||void 0===i?void 0:i.page_name)?i.page_name:u,onChange:function(e){j(e.target.value)}})}),Object(g.jsx)(T.a.Item,{name:"type",label:"\u5e03\u5c40\u4ee3\u7801",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u9875\u9762\u540d\u79f0!"}],children:Object(g.jsx)("div",{className:"codeMain",children:Object(g.jsx)(z.UnControlled,{onChange:function(e,t,n){r(n)},value:O,options:{styleActiveLine:!0,lineNumbers:!0,theme:"monokai",tabSize:2,keyMap:"sublime",mode:"text/javascript",smartIndent:!0,lineWrapping:!0,autofocus:!0}})})})]})}),M=n(283),U=n(117),P=D.a.Option,Q=(M.a.TabPane,function(e){var t,n=e.visible,a=e.onCancel,o=e.queryData,l=e.data;console.log(l);var r=T.a.useForm(),s=Object(b.a)(r,1)[0];l&&s.setFieldsValue({type_name:l.type_name});var d=Object(c.useContext)(h),u=d.fetchData,j=d.dataCenter,m=d.dispatch,O=i.a.useState(1),A=Object(b.a)(O,2),f=A[0],y=A[1];return Object(g.jsx)(S.a,{visible:n,title:"".concat(l?"\u4fee\u6539":"\u65b0\u5efa","\u7c7b\u578b"),okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",onCancel:a,onOk:function(){s.validateFields().then((function(e){!function(e){if(l){console.log(l);var t={type_id:"",type_name:""};t=l.isRemove?{child_type_id:l.type_id,child_type_name:e.type_name}:{type_id:l.type_id,type_name:e.type_name},u("/typeManage/updateType",t).then((function(e){e.success&&(R.b.success("\u4fee\u6539\u6210\u529f"),m({type:"NEED_UPDATE_INDEX"}),o(),a())}))}else console.log(e),u("/add/addType",e).then((function(e){e.success&&(R.b.success("\u65b0\u5efa\u6210\u529f"),m({type:"NEED_UPDATE_INDEX"}),a())}))}(e)})).catch((function(e){console.log("Validate Failed:",e)}))},children:Object(g.jsxs)(T.a,Object(p.a)(Object(p.a)({form:s},{labelCol:{span:4},wrapperCol:{span:18}}),{},{name:"form_in_modal",initialValues:{modifier:"public","radio-group":1},children:[!l&&Object(g.jsx)(T.a.Item,{name:"radio-group",label:"\u7c7b\u578b",children:Object(g.jsxs)(U.a.Group,{onChange:function(e){console.log("radio checked",e.target.value),y(e.target.value)},value:f,children:[Object(g.jsx)(U.a,{value:1,children:"\u7236\u7c7b\u578b"}),Object(g.jsx)(U.a,{value:2,children:"\u5b50\u7c7b\u578b"})]})}),1===f||l?Object(g.jsx)(T.a.Item,{name:"type_name",label:"".concat(l?"":"\u7236","\u7c7b\u578b"),rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u7c7b\u578b\u540d\u79f0!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u7c7b\u578b\u540d\u79f0"})}):Object(g.jsxs)(g.Fragment,{children:[Object(g.jsx)(T.a.Item,{name:"type_id",label:"\u7236\u7c7b\u578b",hasFeedback:!0,rules:[{required:!0,message:"\u8bf7\u9009\u62e9\u7236\u7c7b\u578b!"}],children:Object(g.jsx)(D.a,{placeholder:"\u8bf7\u9009\u62e9\u7236\u7c7b\u578b",onChange:function(e){s.setFieldsValue({type_id:e})},children:(null===j||void 0===j||null===(t=j.type)||void 0===t?void 0:t.length)&&(null===j||void 0===j?void 0:j.type.map((function(e){return Object(g.jsx)(P,{value:e.type_id,children:e.type_name},e.type_id)})))})}),Object(g.jsx)(T.a.Item,{name:"child_type_name",label:"\u5b50\u7c7b\u578b",rules:[{required:!0,message:"\u8bf7\u8f93\u5165\u7c7b\u578b\u540d\u79f0!"}],children:Object(g.jsx)(J.a,{placeholder:"\u8bf7\u8f93\u5165\u7c7b\u578b\u540d\u79f0"})})]})]}))})}),Z=n(286),W=n(281);var L=function(e){var t=e.visible,n=e.onCancel,i=(e.onPublish,Object(c.useState)(!1)),a=Object(b.a)(i,2),o=a[0],l=a[1],r=Object(c.useState)(""),s=Object(b.a)(r,2),d=s[0],u=s[1],j=Object(c.useContext)(h),p=j.fetchData,m=j.dataCenter,O=[{title:"\u9875\u9762Id",dataIndex:"page_id",width:150,align:"center"},{title:"\u9875\u9762\u540d\u79f0",dataIndex:"page_name",width:200,align:"center"},{title:"\u9875\u9762Url",dataIndex:"pageUrl",width:300,align:"center",render:function(e,t){return Object(g.jsx)(Z.b,{size:"middle",children:Object(g.jsx)("a",{href:t.pageUrl,children:t.pageUrl})})}},{title:"\u64cd\u4f5c",key:"action",align:"center",width:100,render:function(e,t){return Object(g.jsx)(Z.b,{size:"middle",children:Object(g.jsx)("a",{onClick:function(){return e=t,console.log(e),u(e),void l(!0);var e},children:"\u66ff\u6362"})})}}];return Object(c.useEffect)((function(){console.log(m),(null===m||void 0===m?void 0:m.type)&&p("/page/queryPage",{},"queryPage").then((function(e){}))}),[]),Object(g.jsxs)(g.Fragment,{children:[Object(g.jsx)(S.a,{visible:t,title:"\u9875\u9762\u7ba1\u7406",okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",width:"1000px",onCancel:n,onOk:n,children:Object(g.jsx)(W.a,{columns:O,dataSource:(null===m||void 0===m?void 0:m.queryPage)&&m.queryPage,pagination:{pageSize:10},size:"middle"})}),o&&Object(g.jsx)(X,{visible:o,onCancel:function(){return l(!1)},data:d})]})},V=n(73),Y=n(287);V.a,V.a.Item,V.a.Item;var H=function(e){var t=e.visible,n=e.onCancel,i=Object(c.useState)(!1),a=Object(b.a)(i,2),o=a[0],l=a[1],r=Object(c.useState)(""),s=Object(b.a)(r,2),d=s[0],u=s[1],j=Object(c.useState)(""),p=Object(b.a)(j,2),m=p[0],O=p[1],A=Object(c.useContext)(h),f=A.fetchData,y=A.dataCenter,x=A.dispatch,v=function e(t,n){return t.map((function(t,c){var i=n(t);return t.children&&(i.children=e(t.children,(function(e){return{isRemove:!0,key:e.child_type_id,type_id:e.child_type_id,type_name:e.child_type_name}}))),i}))},E=function(){(null===y||void 0===y?void 0:y.type)&&f("/typeManage/queryTypeForManage",{},"childTypeData").then((function(e){var t=v(e.data,(function(e){return{key:e.type_id,type_id:e.type_id,type_name:e.type_name}}));u(t)}))};Object(c.useEffect)((function(){E()}),[]);var I=[{title:"\u7c7b\u578b\u540d",width:100,dataIndex:"type_name",key:"type_name"},{title:"Id",width:100,dataIndex:"type_id",align:"center",key:"type_id"},{title:"\u64cd\u4f5c",width:100,key:"operation",align:"center",render:function(e,t){return Object(g.jsxs)(Z.b,{size:"middle",children:[t.isRemove&&Object(g.jsx)(Y.a,{title:"\u786e\u5b9a\u5220\u9664\u5417\uff1f",okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",onConfirm:function(){f("/typeManage/deleteChildType",{child_type_id:t.type_id}).then((function(e){e.success?(R.b.success("\u522a\u9664\u6210\u529f"),x({type:"NEED_UPDATE_INDEX"}),E()):R.b.error("\u522a\u9664\u5931\u8d25")}))},children:Object(g.jsx)("a",{href:"#",children:"\u5220\u9664"})}),Object(g.jsx)("a",{href:"#",onClick:function(){return O(t),void l(!0)},children:"\u4fee\u6539"})]})}}];return Object(g.jsxs)(S.a,{visible:t,title:"\u7c7b\u578b\u7ba1\u7406",okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",width:"1000px",onCancel:n,onOk:n,children:[Object(g.jsx)(W.a,{columns:I,dataSource:d}),o&&Object(g.jsx)(Q,{visible:o,onCancel:function(){return l(!1)},queryData:function(){return E()},data:m})]})};var _=function(){var e=Object(c.useState)(!1),t=Object(b.a)(e,2),n=t[0],i=t[1],a=Object(c.useState)(!1),o=Object(b.a)(a,2),l=o[0],r=o[1],s=Object(c.useState)(!1),d=Object(b.a)(s,2),u=d[0],j=d[1],p=Object(c.useState)(!1),m=Object(b.a)(p,2),O=m[0],A=m[1],f=Object(c.useState)(!1),h=Object(b.a)(f,2),y=h[0],x=h[1];return Object(g.jsxs)("div",{className:"admin",children:[Object(g.jsx)(F.a,{onClick:function(){return i(!0)},children:"\u65b0\u5efa\u5de5\u5177\u76d2"}),Object(g.jsx)(F.a,{onClick:function(){return j(!0)},children:"\u65b0\u5efa\u7c7b\u578b"}),Object(g.jsx)(F.a,{onClick:function(){return r(!0)},children:"\u53d1\u5e03"}),Object(g.jsx)(F.a,{onClick:function(){return A(!0)},children:"\u9875\u9762\u7ba1\u7406"}),Object(g.jsx)(F.a,{onClick:function(){return x(!0)},children:"\u7c7b\u578b\u7ba1\u7406"}),n&&Object(g.jsx)(N,{visible:n,onCancel:function(){return i(!1)}}),l&&Object(g.jsx)(X,{visible:l,onCancel:function(){return r(!1)}}),u&&Object(g.jsx)(Q,{visible:u,onCancel:function(){return j(!1)}}),O&&Object(g.jsx)(L,{visible:O,onCancel:function(){return A(!1)}}),y&&Object(g.jsx)(H,{visible:y,onCancel:function(){return x(!1)}})]})},$=n(26);var ee=function(){var e,t=Object($.f)(),n=Object(c.useContext)(h),i=n.fetchData,a=n.dataCenter,o=n.dispatch;return Object(c.useEffect)((function(){i("/query/queryType",{},"type").then((function(){return i("/query/queryChildType",{type_id:a.type_id},"childType")})).then((function(){return o({type:"NEED_UPDATE_INDEX"})}))}),[a.type_id]),Object(c.useEffect)((function(){if(a.needUpdateIndex){var e="all"===a.type_id?{}:"follow"===a.type_id?{isFollow:!0,type_id:JSON.stringify(a.userInfo.follow)}:{type_id:a.type_id};i("/query/queryToolBox",e,"toolBox").then((function(){return o({type:"NEED_UPDATE_INDEX"})}))}}),[a.needUpdateIndex]),Object(c.useEffect)((function(){i("/users/getUser",{uid:"100001"},"userInfo").catch((function(e){return 70001===e.code&&t.push("/login")}))}),[]),Object(g.jsx)(y.Provider,{value:{hidePop:function(){return setPop("")},showPop:function(e){}},children:Object(g.jsxs)("div",{className:"index",children:[Object(g.jsx)("div",{className:"welcome-top",children:Object(g.jsxs)("span",{children:["\u6b22\u8fce\u60a8\uff01",Object(g.jsx)("span",{className:"welcome-uname",children:null===a||void 0===a||null===(e=a.userInfo)||void 0===e?void 0:e.uname}),Object(g.jsx)("a",{className:"login-btn",children:"\u9000\u51fa\u767b\u5f55"})]})}),Object(g.jsxs)("div",{className:"nav",children:[Object(g.jsx)("div",{className:"nav-title",children:Object(g.jsx)("img",{src:v,alt:""})}),Object(g.jsx)("div",{className:"nav-weather",children:Object(g.jsx)("iframe",{width:"360",height:"40",frameBorder:"0",scrolling:"no",hspace:"0",src:"https://i.tianqi.com/?c=code&a=getcode&id=40&icon=1"})})]}),Object(g.jsx)("div",{className:"tool-nav",children:Object(g.jsx)(I,{})}),Object(g.jsx)("div",{className:"container",children:Object(g.jsx)(K,{})}),Object(g.jsxs)("div",{className:"index-footer",children:["\u5151\u5427\u7814\u53d1\u4e2d\u5fc3\xb7\u676d\u5dde\u5151\u5427\u7f51\u7edc\u79d1\u6280\u6e38\u620f\u516c\u53f8\u7248\u6743\u6240\u6709",Object(g.jsx)("br",{}),"\u6d59ICP\u590714017299\u53f7-1"]}),Object(g.jsx)(_,{})]})})};n(272),n(273);var te=function(e){var t,n,i=Object(c.useContext)(h).dataCenter;return Object(g.jsx)("div",{className:"content",children:(null===(t=i.toolBox)||void 0===t?void 0:t.length)?null===i||void 0===i||null===(n=i.toolBox)||void 0===n?void 0:n.filter((function(e){return"all"===i.child_type_id||e.child_type_id===i.child_type_id})).map((function(e){return Object(g.jsx)(G,{value:e},e.toolbox_id)})):"\u6ca1\u6709\u6570\u636e\u4e86\uff01"})};var ne=function(){var e,t=Object($.f)(),n=Object(c.useContext)(h),i=n.fetchData,a=n.dataCenter,o=n.dispatch;return Object(c.useEffect)((function(){i("/query/queryType",{},"type").then((function(){return i("/query/queryChildType",{type_id:a.type_id},"childType")})).then((function(){return o({type:"NEED_UPDATE_INDEX"})}))}),[a.type_id]),Object(c.useEffect)((function(){if(a.needUpdateIndex){var e="follow"===a.type_id?{isFollow:!0,type_id:JSON.stringify(a.userInfo.follow)}:{type_id:a.type_id};i("/query/queryToolBox",e,"toolBox").then((function(){return o({type:"NEED_UPDATE_INDEX"})}))}}),[a.needUpdateIndex]),Object(c.useEffect)((function(){i("/users/getUser",{uid:"100001"},"userInfo").catch((function(e){return 70001===e.code&&t.push("/login")}))}),[]),Object(g.jsxs)("div",{className:"index",children:[Object(g.jsx)("div",{className:"welcome-top",children:Object(g.jsxs)("span",{children:["\u6b22\u8fce\u60a8\uff01",Object(g.jsx)("span",{className:"welcome-uname",children:null===a||void 0===a||null===(e=a.userInfo)||void 0===e?void 0:e.uname}),Object(g.jsx)("a",{className:"login-btn",children:"\u9000\u51fa\u767b\u5f55"})]})}),Object(g.jsxs)("div",{className:"nav",children:[Object(g.jsx)("div",{className:"nav-title",children:Object(g.jsx)("img",{src:v,alt:""})}),Object(g.jsx)("div",{className:"nav-weather",children:Object(g.jsx)("iframe",{width:"360",height:"40",frameBorder:"0",scrolling:"no",hspace:"0",src:"https://i.tianqi.com/?c=code&a=getcode&id=40&icon=1"})})]}),Object(g.jsx)("div",{className:"tool-nav",children:Object(g.jsx)(I,{})}),Object(g.jsx)("div",{className:"container",children:Object(g.jsx)(te,{})}),Object(g.jsxs)("div",{className:"index-footer",children:["\u5151\u5427\u7814\u53d1\u4e2d\u5fc3\xb7\u676d\u5dde\u5151\u5427\u7f51\u7edc\u79d1\u6280\u6709\u9650\u516c\u53f8\u7248\u6743\u6240\u6709",Object(g.jsx)("br",{}),"\u6d59ICP\u590714017299\u53f7-1"]})]})};n(274);var ce=function(e){var t=Object($.f)(),n=Object(c.useContext)(h),i=n.fetchData,a=n.dataCenter,o=Object(c.useState)(!1),l=Object(b.a)(o,2),r=l[0],s=l[1],d=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object(c.useState)(e),n=Object(b.a)(t,2),i=n[0],a=n[1],o=Object(c.useCallback)((function(e,t){a((function(){return Object.assign({},Object(p.a)({},i),Object(j.a)({},e,t))}))}),[i]);return[i,o]}(),u=Object(b.a)(d,2),m=u[0],O=u[1],A=function(){i("/users/getUser",{uid:"100001"},"userInfo").then((function(e){return e.data.uid&&t.push("/")})).catch((function(e){return 70001===e.code&&s(!0)}))},f=function(){r?i("/users/login",{uid:"100001"}).then((function(){A()})):A()};return Object(c.useEffect)((function(){a.userInfo}),[a.userInfo]),Object(c.useEffect)((function(){f()}),[]),Object(g.jsx)("div",{className:"login",children:Object(g.jsxs)("div",{className:"loginDiv",children:[r&&Object(g.jsx)("input",{type:"text",onChange:function(e){return O("uid",e.target.value)},defaultValue:m.uid}),Object(g.jsx)("button",{className:"btn-login",onClick:function(){return f()},children:"\u767b\u5f55"})]})})},ie=n(91);var ae=function(){return Object(c.useEffect)((function(){console.log("%c+","font-size: 1px;\n padding: 122px 217px;\n background-image: url(https://yun.duiba.com.cn/spark/assets/cc8da992b527b3cd24da7df9a5be8b2361c2e549.jpg);\n background-size: contain;\n background-repeat: no-repeat;\n color: transparent;")}),[]),Object(g.jsx)(ie.a,{children:Object(g.jsx)(x,{children:Object(g.jsxs)($.c,{children:[Object(g.jsx)($.a,{exact:!0,path:"/login",component:ce}),Object(g.jsx)($.a,{exact:!0,path:"/",component:ne}),Object(g.jsx)($.a,{exact:!0,path:"/admin",component:ee})]})})})},oe=function(e){e&&e instanceof Function&&n.e(3).then(n.bind(null,288)).then((function(t){var n=t.getCLS,c=t.getFID,i=t.getFCP,a=t.getLCP,o=t.getTTFB;n(e),c(e),i(e),a(e),o(e)}))};u.a.locale("zh-cn"),o.a.render(Object(g.jsx)(i.a.StrictMode,{children:Object(g.jsx)(l.a,{locale:s.a,children:Object(g.jsx)(ae,{})})}),document.getElementById("root")),oe()}},[[279,1,2]]]);
//# sourceMappingURL=main.bc381f9f.chunk.js.map
\ No newline at end of file
{"version":3,"sources":["dataCenter/reducer.js","config/apiConfig.js","dataCenter/action.js","dataCenter/Root.jsx","static/logo.png","component/ToolType/ToolType.jsx","static/setting.svg","static/trash.svg","static/dragIcon.svg","modal/ToolModal.jsx","component/ContentAdmin/ContentItemAdmin.jsx","component/Content/ContentItem.jsx","static/followed.png","static/notFollow.png","component/ContentAdmin/Content.jsx","modal/PublishModal.jsx","modal/TypeModal.jsx","modal/PageModal.jsx","modal/RemoveType.jsx","component/AdminIndex/AdminIndex.jsx","page/indexAdmin/index.jsx","component/Content/Content.jsx","page/index/index.jsx","page/login/login.jsx","utils/hook.js","App.js","reportWebVitals.js","index.js"],"names":["initDataCenter","toolBox","type","childType","userInfo","needUpdateIndex","type_id","child_type_id","deepFreeze","obj","Object","getOwnPropertyNames","forEach","name","prop","freeze","dataReducer","state","action","console","table","assign","data","apiConfig","domain","window","location","hostname","CHANGE_TYPE","Root","createContext","PopContext","DataCenter","props","useReducer","dataCenter","dispatch","Provider","value","fetchData","path","requestData","dataName","fetch","paramsStr","keys","map","v","i","join","log","generateUrl","credentials","then","res","json","success","catch","e","error","children","ChildTypeItem","useContext","child_type_name","classNameArr","push","className","onClick","CHANGE_CHILD_TYPE","ToolType","length","type_name","Option","Select","ToolModal","visible","onCancel","Form","useForm","form","useEffect","title","okText","cancelText","onOk","validateFields","values","input","toolbox_name","toolbox_icon","icon","toolbox_desc","depict","toolbox_url","url","message","onCreate","info","labelCol","span","wrapperCol","initialValues","Item","label","rules","required","placeholder","onChange","setFieldsValue","allowClear","ContentItemAdmin","useState","setVisible","showPop","toolbox_id","follow","itemIcon","setItemIcon","jumpUrl","href","src","dragIcon","alt","setting","trash","deleteItem","onError","ContentItem","isFollow","setIsFollow","includes","_follow","slice","index","indexOf","splice","JSON","stringify","uid","Content","filter","PublishModal","code","setcode","page_name","setPageName","oldCode","method","headers","body","page_id","response","width","defaultValue","target","editor","options","styleActiveLine","lineNumbers","theme","tabSize","keyMap","mode","smartIndent","lineWrapping","autofocus","TypeModal","Tabs","TabPane","queryData","React","setValue","isRemove","modifier","Group","hasFeedback","PageModal","onPublish","publish","setPublish","pageData","setpageData","columns","dataIndex","align","render","text","record","size","pageUrl","key","dataSource","queryPage","pagination","pageSize","RemoveType","typeModal","setTypeModal","typeData","settypeData","oldData","setoldData","changeData","list","cb","item","newData","onConfirm","AdminIndex","pageModal","setpageModal","removeType","setremoveType","Index","history","useHistory","_typeId","hidePop","setPop","popName","uname","logo","height","frameBorder","scrolling","hspace","Login","needLogin","setNeedLogin","setInput","setInputData","useCallback","useFormState","getUser","doLogin","App","exact","component","IndexAdmin","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","moment","locale","ReactDOM","StrictMode","zhCN","document","getElementById"],"mappings":"wfAAMA,EAAiB,CACnBC,QAAS,KACTC,KAAM,KACNC,UAAW,KACXC,SAAU,KACVC,iBAAiB,EACjBC,QAAS,SACTC,cAAe,QAQnB,SAASC,EAAWC,GAchB,OAZgBC,OAAOC,oBAAoBF,GAGjCG,SAAQ,SAAUC,GACxB,IAAIC,EAAOL,EAAII,GAGI,iBAARC,GAA6B,OAATA,GAC3BN,EAAWM,MAIZJ,OAAOK,OAAON,GAIzBD,CAAWR,GAEX,IAAMgB,EAAc,SAACC,EAAOC,GAGxB,OADAC,QAAQC,MAAMF,EAAO,CAAC,6BACdA,EAAOhB,MACX,IAAK,cACD,OAAOQ,OAAOW,OAAO,GAAIJ,EAAlBP,OAAA,IAAAA,CAAA,GACAQ,EAAOI,OAElB,IAAK,oBACD,OAAOZ,OAAOW,OAAO,GAAIJ,EAAO,CAACZ,iBAAkBY,EAAMZ,kBAC7D,IAAK,cACD,OAAOK,OAAOW,OAAO,GAAIJ,EAAO,CAACX,QAASY,EAAOZ,UACrD,IAAK,oBACD,OAAOI,OAAOW,OAAO,GAAIJ,EAAO,CAACV,cAAeW,EAAOX,gBAC3D,QACI,OAAOU,IC7CJM,EALG,CACdC,OAAQ,WAAaC,OAAOC,SAASC,SAAW,SCC9CC,EAAc,SAAAtB,GAAO,MAAK,CAACJ,KAAM,cAAeI,QAASA,I,OCGzDuB,EAAOC,wBAAc,IACrBC,EAAaD,wBAAc,IAsDlBE,MApDf,SAAoBC,GAChB,MAA+BC,qBAAWlB,EAAahB,GAAgB,WACnE,OAAOA,KADX,mBAAOmC,EAAP,KAAmBC,EAAnB,KAsCA,OACI,cAACP,EAAKQ,SAAN,CAAeC,MAAO,CAACH,aAAYC,WAAUG,UAnB/B,SAACC,EAAMC,EAAaC,GAApB,OACdC,MAjBgB,SAACH,EAAMC,GACvB,GAAIA,EAAa,CACb,IACMG,EADSlC,OAAOmC,KAAKJ,GACFK,KAAI,SAACC,EAAGC,GAC7B,OAAU,IAANA,EACO,IAAMD,EAAI,IAAMN,EAAYM,GAE5B,IAAMA,EAAI,IAAMN,EAAYM,MAExCE,KAAK,IAER,OADA9B,QAAQ+B,IAAI,iCAAS3B,EAAUC,OAASgB,EAAOI,GACxCrB,EAAUC,OAASgB,EAAOI,EAErC,OAAOrB,EAAUC,OAASgB,EAIpBW,CAAYX,EAAMC,GAAc,CAACW,YAAa,YAC/CC,MAAK,SAAAC,GAAG,OAAIA,EAAIC,UAChBF,MAAK,SAAAC,GAEF,GADAnC,QAAQ+B,IAAII,IACRA,EAAIE,QAGJ,MAAMF,EDrCN,IAAAhC,ECuCJ,OAJMoB,GAAYN,GDnCdd,ECmCmC,eAAEoB,EAAWY,EAAIhC,MDnC3C,CAACpB,KAAM,cAAeoB,KAAK,eAAKA,MCuCtCgC,KAEVG,OAAM,SAAAC,GAEH,MADAvC,QAAQwC,MAAMD,GACRA,OAKd,SAEQzB,EAAM2B,YClDP,MAA0B,iCCKnCC,G,cAAgB,SAAA5B,GAClB,MAA+B6B,qBAAWjC,GAAnCM,EAAP,EAAOA,WAAYC,EAAnB,EAAmBA,SACZ7B,EAAkC0B,EAAlC1B,cAAewD,EAAmB9B,EAAnB8B,gBAChBC,EAAe,CAAC,mBAClBzD,IAAkB4B,EAAW5B,eAC7ByD,EAAaC,KAAK,4BAMtB,OACI,qBAAKC,UAAWF,EAAaf,KAAK,KAAMkB,QALxB,WAChBhD,QAAQ+B,IAAI3C,GACZ6B,EHXkB,SAAA7B,GAAa,MAAK,CAACL,KAAM,oBAAqBK,cAAeA,GGWtE6D,CAAkB7D,KAG3B,SAA+DwD,MAuCxDM,MAlCf,SAAkBpC,GAAQ,IAAD,IACrB,EAA+B6B,qBAAWjC,GAAnCM,EAAP,EAAOA,WAAYC,EAAnB,EAAmBA,SACnB,OACI,qCACI,sBAAK8B,UAAU,gBAAf,UACI,qBAAKA,UAAkC,WAAvB/B,EAAW7B,QAAuB,yCAA2C,iBACxF6D,QAAS,kBAAM/B,EAASR,EAAY,YADzC,uCAIc,OAAVO,QAAU,IAAVA,GAAA,UAAAA,EAAYjC,YAAZ,eAAkBoE,QAAS,GAAKnC,EAAWjC,KAAK4C,KAAI,SAAAC,GAChD,IAAMiB,EAAe,CAAC,mBAEtB,OADIjB,EAAC,UAAgBZ,EAAW7B,SAAS0D,EAAaC,KAAK,2BAEvD,qBAAwBC,UAAWF,EAAaf,KAAK,IAChDkB,QAAS,kBAAM/B,EAASR,EAAamB,EAAC,WAD3C,SAC2DA,EAAEwB,WADnDxB,EAAC,eAM3B,sBAAKmB,UAAU,aAAf,UACI,cAAC,EAAD,CAA2B3D,cAAe,MAAOwD,gBAAiB,gBAA9C,QAEN,OAAV5B,QAAU,IAAVA,GAAA,UAAAA,EAAYhC,iBAAZ,eAAuBmE,QAAS,IAAhC,OAAqCnC,QAArC,IAAqCA,OAArC,EAAqCA,EAAYhC,UAAU2C,KAAI,SAAAC,GAC3D,OACI,cAAC,EAAD,CAAqCxC,cAAewC,EAAExC,cACvCwD,gBAAiBhB,EAAEgB,iBADdhB,EAAExC,0BC9CnC,G,cAAA,IAA0B,qCCA1B,MAA0B,kCCA1B,MAA0B,qC,4CCIjCiE,EAAWC,IAAXD,OAuMOE,EAtMG,SAAC,GAAiC,IAAD,MAA9BC,EAA8B,EAA9BA,QAASC,EAAqB,EAArBA,SAAUtD,EAAW,EAAXA,KACpC,EAAeuD,IAAKC,UAAbC,EAAP,oBACA,EAA4CjB,qBAAWjC,GAA/CU,EAAR,EAAQA,UAAWJ,EAAnB,EAAmBA,WAAYC,EAA/B,EAA+BA,SAsE/B,OARA4C,qBAAU,WAAO,IAAD,GACF,OAAV7C,QAAU,IAAVA,OAAA,EAAAA,EAAYjC,OAAQqC,EAAU,wBAAyB,CAAEjC,QAAO,OAAE6B,QAAF,IAAEA,GAAF,UAAEA,EAAYjC,KAAK,UAAnB,aAAE,EAAqBI,SAAW,aAC7F+C,MAAK,SAACC,GAEHnC,QAAQ+B,IAAII,QAErB,IAGC,cAAC,IAAD,CACIqB,QAASA,EACTM,MAAO3D,EAAO,iCAAU,iCACxB4D,OAAO,eACPC,WAAW,eACXP,SAAUA,EACVQ,KAAM,WACFL,EACKM,iBACAhC,MAAK,SAACiC,IA3EN,SAACA,GACd,IAAIC,EAAQ,CACRC,aAAcF,EAAOzE,KACrB4E,aAAcH,EAAOI,KACrBC,aAAcL,EAAOM,OACrBC,YAAaP,EAAOQ,KAGnBxE,EAmBDiB,EAAU,wBAAyBgD,GAC9BlC,MAAK,SAACC,GACCA,EAAIE,SACJuC,IAAQvC,QAAQ,4BAChBpB,EP1CS,CAAClC,KAAM,sBO2ChB0E,KAEAmB,IAAQpC,MAAM,gCAzB1B4B,EAAK,2BACEA,GADF,IAEDjF,QAASgF,EAAOpF,KAChBK,cAAe+E,EAAOnF,YAE1BgB,QAAQ+B,IAAIqC,GACZhD,EAAU,kBAAmBgD,GACxBlC,MAAK,SAACC,GACCA,EAAIE,SACJuC,IAAQvC,QAAQ,4BAChBpB,EP9BS,CAAClC,KAAM,sBO+BhB0E,KAEAmB,IAAQpC,MAAM,gCAuDdqC,CAASV,MAEZ7B,OAAM,SAACwC,GACJ9E,QAAQ+B,IAAI,mBAAoB+C,OAdhD,SAkBI,eAAC,IAAD,yBACIlB,KAAMA,GAzFK,CACnBmB,SAAU,CAAEC,KAAM,GAClBC,WAAY,CAAED,KAAM,MAsFhB,IAIItF,KAAK,gBACLwF,cAAe/E,EAAO,CAClBT,KAAMS,EAAKkE,aACXE,KAAMpE,EAAKmE,aACXK,IAAKxE,EAAKuE,YACVD,OAAQtE,EAAKqE,cACb,CAAEzF,MAAgB,OAAViC,QAAU,IAAVA,OAAA,EAAAA,EAAYjC,QAAZ,OAAoBiC,QAApB,IAAoBA,GAApB,UAAoBA,EAAYjC,KAAK,UAArC,aAAoB,EAAqBI,UAVzD,UAYI,cAAC,IAAKgG,KAAN,CACIzF,KAAK,OACL0F,MAAM,eACNC,MAAO,CACH,CACIC,UAAU,EACVV,QAAS,oCANrB,SAUI,cAAC,IAAD,CAAOW,YAAY,qCAEvB,cAAC,IAAKJ,KAAN,CAAWzF,KAAK,OACZ0F,MAAM,eACNC,MAAO,CACH,CACIC,UAAU,EACVV,QAAS,uCALrB,SASI,cAAC,IAAD,CAAOW,YAAY,wCAEvB,cAAC,IAAKJ,KAAN,CACIzF,KAAK,SACL0F,MAAM,eACNC,MAAO,CACH,CACIC,UAAU,EACVV,QAAS,oCANrB,SAUI,cAAC,IAAD,CAAOW,YAAY,qCAEvB,cAAC,IAAKJ,KAAN,CACIzF,KAAK,MACL0F,MAAM,eACNC,MAAO,CACH,CACIC,UAAU,EACVV,QAAS,oCANrB,SAUI,cAAC,IAAD,CAAOW,YAAY,sCAErBpF,GAAQ,cAAC,IAAKgF,KAAN,CACNzF,KAAK,OACL0F,MAAM,eACNC,MAAO,CACH,CACIC,UAAU,EACVV,QAAS,oCANX,SAUN,cAAC,IAAD,CACIW,YAAY,iCACZC,SAnHG,SAACrE,GACpByC,EAAK6B,eAAe,CAChB1G,KAAMoC,IAEVC,EAAU,wBAAyB,CAAEjC,QAASgC,GAAS,aAClDe,MAAK,SAACC,GAEHnC,QAAQ+B,IAAII,MAEpBnC,QAAQ+B,IAAIf,IAwGA,UAMkB,OAAVA,QAAU,IAAVA,GAAA,UAAAA,EAAYjC,YAAZ,eAAkBoE,UAAlB,OAA4BnC,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAYjC,KAAK4C,KAAI,SAAAC,GAC7C,OACI,cAACyB,EAAD,CAAwBlC,MAAOS,EAAEzC,QAAjC,SAA2CyC,EAAEwB,WAAhCxB,EAAEzC,kBAOjCgB,IAAD,OAASa,QAAT,IAASA,OAAT,EAASA,EAAYhC,YAAa,cAAC,IAAKmG,KAAN,CAC/BzF,KAAK,YACL0F,MAAM,qBAFyB,SAI/B,cAAC,IAAD,CACIG,YAAY,uCACZC,SA3HQ,SAACrE,GACzByC,EAAK6B,eAAe,CAChBzG,UAAWmC,KA0HCuE,YAAU,EAHd,UAMkB,OAAV1E,QAAU,IAAVA,GAAA,UAAAA,EAAYhC,iBAAZ,eAAuBmE,UAAvB,OAAiCnC,QAAjC,IAAiCA,OAAjC,EAAiCA,EAAYhC,UAAU2C,KAAI,SAAAC,GACvD,OACI,cAACyB,EAAD,CAA8BlC,MAAOS,EAAExC,cAAvC,SAAuDwC,EAAEgB,iBAA5ChB,EAAExC,8BCnIpCuG,MAnDf,SAA0B7E,GACtB,MAA8B8E,oBAAS,GAAvC,mBAAOpC,EAAP,KAAgBqC,EAAhB,KAEOzE,EAAauB,qBAAWjC,GAAxBU,UAGP,GAFkBuB,qBAAW/B,GAAtBkF,QAE6EhF,EAAMK,OAAnFmD,EAAP,EAAOA,aAAcD,EAArB,EAAqBA,aAAcG,EAAnC,EAAmCA,aAAcE,EAAjD,EAAiDA,YAAqBqB,GAAtE,EAA8DC,OAA9D,EAAsED,YAEtE,EAAgCH,mBAAStB,GAAzC,mBAAO2B,EAAP,KAAiBC,EAAjB,KAEMC,EAAU,SAAAxB,GACZrE,OAAOC,SAAS6F,KAAOzB,GAM3B,OACI,sBAAK5B,UAAU,eAAf,UACI,sBAAKA,UAAU,oBAAf,UACI,qBAAKsD,IAAKC,EAAUC,IAAI,KACxB,qBAAKF,IAAKG,EAASD,IAAI,GAAGvD,QAAS,kBAAM6C,GAAW,MACpD,qBAAKQ,IAAKI,EAAOF,IAAI,GAAGvD,QAAS,kBAT1B,SAAA+C,GACf3E,EAAU,4BAA6B,CAAC2E,eAQOW,CAAWX,SAEtD,sBAAKhD,UAAU,YAAYC,QAAS,kBAAMmD,EAAQzB,IAAlD,WAESuB,GAAY,qBAAKlD,UAAU,cAAf,SAA8BsB,EAAa,KAGxD4B,GAAY,qBAAKI,IAAKJ,EAAUM,IAAI,GAAGI,QAAS,SAAApE,GAAC,OAAI2D,EAAY,YAGzE,qBAAKnD,UAAU,YAAYC,QAAS,kBAAMmD,EAAQzB,IAAlD,SAAiEL,IACjE,qBAAKtB,UAAU,YAAf,SAA4ByB,IAC5B,mBAAGzB,UAAU,WAAWqD,KAAM1B,EAA9B,SAA4CA,IAK3ClB,GAAW,cAAC,EAAD,CACRA,QAASA,EACTC,SAAU,kBACNoC,GAAW,IAEf1F,KAAMW,EAAMK,Y,OCGbyF,MAnDf,SAAqB9F,GACjB,MAAgC6B,qBAAWjC,GAApCM,EAAP,EAAOA,WAAYI,EAAnB,EAAmBA,UACnB,EAA4EN,EAAMK,MAA3EmD,EAAP,EAAOA,aAAcD,EAArB,EAAqBA,aAAcG,EAAnC,EAAmCA,aAAcE,EAAjD,EAAiDA,YAAaqB,EAA9D,EAA8DA,WAC9D,EAAgCH,oBAAS,GAAzC,mBAAOiB,EAAP,KAAiBC,EAAjB,KACA,EAAgClB,mBAAStB,GAAzC,mBAAO2B,EAAP,KAAiBC,EAAjB,KAEMC,EAAU,SAAAxB,GAAG,OAAIrE,OAAOC,SAAS6F,KAAOzB,GAuB9C,OARAd,qBAAU,WAAO,IAAD,GACZ,UAAI7C,EAAW/B,gBAAf,aAAI,EAAqB+G,OAAOe,SAAShB,IACrCe,GAAY,GAEZA,GAAY,KAEjB,CAAC9F,EAAWlC,QAASkC,EAAW/B,WAG/B,sBAAK8D,UAAU,eAAf,UACI,sBAAKA,UAAU,YAAYC,QAAS,kBAAMmD,EAAQzB,IAAlD,WAESuB,GAAY,qBAAKlD,UAAU,cAAf,SAA8BsB,EAAa,KAGxD4B,GAAY,qBAAKI,IAAKJ,EAAUM,IAAI,GAAGI,QAAS,SAAApE,GAAC,OAAI2D,EAAY,YAIzE,qBAAKnD,UAAU,YAAYC,QAAS,kBAAMmD,EAAQzB,IAAlD,SAAiEL,IACjE,qBAAKtB,UAAU,YAAf,SAA4ByB,IAC5B,mBAAGzB,UAAU,WAAWqD,KAAM1B,EAA9B,SAA4CA,IAC5C,sBAAK3B,UAAU,SAAf,UACI,qBAAKA,UAAU,cAAcsD,IAAKQ,EClDnC,ihOCAA,qgVFkDoEN,IAAI,GAAGvD,QAAS,kBApChF,WACX,IAAMgE,EAAUhG,EAAW/B,SAAS+G,OAAOiB,QAC3C,GAAKJ,EAEE,CACH,IAAMK,EAAQF,EAAQG,QAAQpB,GAC9BiB,EAAQI,OAAOF,EAAO,QAHtBF,EAAQlE,KAAKiD,GAKjB/F,QAAQ+B,IAAK,CAACiE,OAAQqB,KAAKC,UAAUN,GAAUO,IAAKvG,EAAW/B,SAASsI,MACxEnG,EAAU,gBAAiB,CAAC4E,OAAQqB,KAAKC,UAAUN,GAAUO,IAAKvG,EAAW/B,SAASsI,MACjFrF,MAAK,kBAAMd,EAAU,iBAAkB,CAACmG,IAAK,QAAS,eA0BsCvB,MAD7F,sBGtBGwB,MArBf,SAAiB1G,GAAQ,IAAD,IACbE,EAAc2B,qBAAWjC,GAAzBM,WAEP,OACI,qBAAK+B,UAAU,UAAf,UAEQ,UAAA/B,EAAWlC,eAAX,eAAoBqE,QAApB,OAA6BnC,QAA7B,IAA6BA,GAA7B,UAA6BA,EAAYlC,eAAzC,aAA6B,EAAqB2I,QAAO,SAAA7F,GACjD,MAAiC,QAA7BZ,EAAW5B,eACHwC,EAAExC,gBAAkB4B,EAAW5B,iBAC5CuC,KAAI,SAAAC,GACH,OACI,cAAC,EAAD,CAAwCT,MAAOS,GAAxBA,EAAC,eAIhC,0C,mCC6HL8F,G,mFA9HIpE,IAAXD,OAGa,SAAC,GAAiC,IAA/BG,EAA8B,EAA9BA,QAASC,EAAqB,EAArBA,SAAUtD,EAAW,EAAXA,KACvC,EAAwByF,mBAAS,IAAjC,mBAAO+B,EAAP,KAAaC,EAAb,KACA,EAAiChC,mBAAS,IAA1C,mBAAOiC,EAAP,KAAkBC,EAAlB,KACA,EAA8BlC,mBAAS,IAAvC,mBAAOmC,EAAP,KACA,GADA,KACkCpF,qBAAWjC,IAArCU,EAAR,EAAQA,UAAWJ,EAAnB,EAAmBA,WAgEnB,OAJA6C,qBAAU,WACP1D,GAAM2H,EAAY3H,EAAK0H,aACvB,CAAC1H,IAGA,eAAC,IAAD,CACIqD,QAASA,EACTM,MAAM,eACNC,OAAO,eACPC,WAAW,eACXP,SAAUA,EACVQ,KAtES,SAACE,GACdnE,QAAQ+B,IAAI4F,GAEPA,GAASE,EAIV1H,EACAqB,MAAM,GAAD,OAAIpB,EAAUC,OAAd,oBAAwC,CACzC2H,OAAQ,OACRC,QAAS,CACL,eAAgB,oBAEpBC,KAAMb,KAAKC,UAAU,CACjBa,QAAShI,EAAKgI,QACdN,UAAWA,EACXF,KAAMA,MAGTzF,MAAK,SAAAkG,GAAQ,OAAIA,EAAShG,UAC1BF,MAAK,SAAA/B,GACEA,EAAKkC,SACLoB,IACAmB,IAAQvC,QAAQ,mCACN,OAAVrB,QAAU,IAAVA,OAAA,EAAAA,EAAYjC,OAAQqC,EAAU,kBAAmB,GAAI,aACpDc,MAAK,SAACC,QAIPyC,IAAQpC,MAAO,+BAI3BhB,MAAM,GAAD,OAAIpB,EAAUC,OAAd,iBAAqC,CACtC2H,OAAQ,OACRC,QAAS,CACL,eAAgB,oBAEpBC,KAAMb,KAAKC,UAAU,CACjBO,UAAWA,EACXF,KAAMA,MAGTzF,MAAK,SAAAkG,GAAQ,OAAIA,EAAShG,UAC1BF,MAAK,SAAA/B,GACEA,EAAKkC,SACLoB,IACAmB,IAAQvC,QAAQ,mCACN,OAAVrB,QAAU,IAAVA,OAAA,EAAAA,EAAYjC,OAAQqC,EAAU,kBAAmB,GAAI,aACpDc,MAAK,SAACC,QAIPyC,IAAQpC,MAAMrC,EAAKqC,OAAS,+BAjDxCoC,IAAQpC,MAAM,yCAmEd6F,MAAM,SAPV,UASI,cAAC,IAAKlD,KAAN,CACIzF,KAAK,YACL0F,MAAM,2BACNC,MAAO,CACH,CACIC,UAAU,EACVV,QAAS,gDANrB,SAUI,cAAC,IAAD,CAAOW,YAAY,6CAAU+C,cAAkB,OAAJnI,QAAI,IAAJA,OAAA,EAAAA,EAAM0H,WAAY1H,EAAK0H,UAAYA,EAAWrC,SAAU,SAACjD,GAAQuF,EAAYvF,EAAEgG,OAAOpH,YAErI,cAAC,IAAKgE,KAAN,CACIzF,KAAK,OACL0F,MAAM,2BACNC,MAAO,CACH,CACIC,UAAU,EACVV,QAAS,gDANrB,SAUI,qBAAK7B,UAAU,WAAf,SACI,cAAC,eAAD,CACIyC,SAAU,SAACgD,EAAQrI,EAAMgB,GACrByG,EAAQzG,IAEZA,MAAO4G,EACPU,QAAS,CACLC,iBAAiB,EACjBC,aAAa,EACbC,MAAO,UACPC,QAAS,EACTC,OAAQ,UACRC,KAAM,kBACNC,aAAa,EACbC,cAAc,EACdC,WAAW,c,kBCrI/B7F,EAAWC,IAAXD,OAoKO8F,GAnKKC,IAAZC,QACU,SAAC,GAA4C,IAAD,EAAzC7F,EAAyC,EAAzCA,QAASC,EAAgC,EAAhCA,SAAU6F,EAAsB,EAAtBA,UAAWnJ,EAAW,EAAXA,KAC/CH,QAAQ+B,IAAI5B,GACZ,MAAeuD,IAAKC,UAAbC,EAAP,oBACIzD,GACAyD,EAAK6B,eAAe,CAChBrC,UAAWjD,EAAKiD,YAGxB,IAKA,EAA4CT,qBAAWjC,GAA/CU,EAAR,EAAQA,UAAWJ,EAAnB,EAAmBA,WAAYC,EAA/B,EAA+BA,SAC/B,EAA0BsI,IAAM3D,SAAS,GAAzC,mBAAOzE,EAAP,KAAcqI,EAAd,KA2DA,OACI,cAAC,IAAD,CACIhG,QAASA,EACTM,MAAK,UAAK3D,EAAO,eAAO,eAAnB,gBACL4D,OAAO,eACPC,WAAW,eACXP,SAAUA,EACVQ,KAAM,WACFL,EACKM,iBACAhC,MAAK,SAACiC,IAlEN,SAACA,GACd,GAAIhE,EAAM,CACNH,QAAQ+B,IAAI5B,GAEZ,IAAIiE,EAAQ,CACRjF,QAAS,GACTiE,UAAW,IAQXgB,EANCjE,EAAKsJ,SAME,CACJrK,cAAee,EAAKhB,QACpByD,gBAAiBuB,EAAOf,WAPpB,CACJjE,QAASgB,EAAKhB,QACdiE,UAAWe,EAAOf,WAQ1BhC,EAAU,yBAA0BgD,GAC/BlC,MAAK,SAACC,GACCA,EAAIE,UACJuC,IAAQvC,QAAQ,4BAChBpB,Ed9CS,CAAClC,KAAM,sBc+ChBuK,IACA7F,aAIZzD,QAAQ+B,IAAIoC,GACZ/C,EAAU,eAAgB+C,GACrBjC,MAAK,SAACC,GACCA,EAAIE,UACJuC,IAAQvC,QAAQ,4BAChBpB,EdzDS,CAAClC,KAAM,sBc0DhB0E,QAiCAoB,CAASV,MAEZ7B,OAAM,SAACwC,GACJ9E,QAAQ+B,IAAI,mBAAoB+C,OAdhD,SAkBI,eAAC,IAAD,yBACIlB,KAAMA,GArFK,CACnBmB,SAAU,CAAEC,KAAM,GAClBC,WAAY,CAAED,KAAM,MAkFhB,IAIItF,KAAK,gBACLwF,cAAe,CACXwE,SAAU,SACV,cAAe,GAPvB,WAWMvJ,GAAQ,cAAC,IAAKgF,KAAN,CAAWzF,KAAK,cAAc0F,MAAM,eAApC,SACN,eAAC,IAAMuE,MAAP,CAAanE,SA1CZ,SAAAjD,GACbvC,QAAQ+B,IAAI,gBAAiBQ,EAAEgG,OAAOpH,OACtCqI,EAASjH,EAAEgG,OAAOpH,QAwC2BA,MAAOA,EAAxC,UACI,cAAC,IAAD,CAAOA,MAAO,EAAd,gCACA,cAAC,IAAD,CAAOA,MAAO,EAAd,qCAGG,IAAVA,GAAehB,EAAO,cAAC,IAAKgF,KAAN,CACnBzF,KAAK,YACL0F,MAAK,UAAKjF,EAAO,GAAK,SAAjB,gBACLkF,MAAO,CACH,CACIC,UAAU,EACVV,QAAS,gDANE,SAUnB,cAAC,IAAD,CAAOW,YAAY,iDAEnB,qCACI,cAAC,IAAKJ,KAAN,CACIzF,KAAK,UACL0F,MAAM,qBACNwE,aAAW,EACXvE,MAAO,CAAC,CAAEC,UAAU,EAAMV,QAAS,0CAJvC,SAMI,cAAC,IAAD,CACIW,YAAY,uCACZC,SA/DL,SAACrE,GACpByC,EAAK6B,eAAe,CAChBtG,QAASgC,KA2DO,UAMkB,OAAVH,QAAU,IAAVA,GAAA,UAAAA,EAAYjC,YAAZ,eAAkBoE,UAAlB,OAA4BnC,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAYjC,KAAK4C,KAAI,SAAAC,GAC7C,OACI,cAAC,EAAD,CAAwBT,MAAOS,EAAEzC,QAAjC,SAA2CyC,EAAEwB,WAAhCxB,EAAEzC,iBAOnC,cAAC,IAAKgG,KAAN,CACIzF,KAAK,kBACL0F,MAAM,qBACNC,MAAO,CACH,CACIC,UAAU,EACVV,QAAS,gDANrB,SAUI,cAAC,IAAD,CAAOW,YAAY,4D,kBCQhCsE,MAnKf,YAAsD,IAAjCrG,EAAgC,EAAhCA,QAASC,EAAuB,EAAvBA,SAE1B,GAFiD,EAAbqG,UAENlE,oBAAS,IAAvC,mBAAOmE,EAAP,KAAgBC,EAAhB,KACA,EAAgCpE,mBAAS,IAAzC,mBAAOqE,EAAP,KAAiBC,EAAjB,KACA,EAAkCvH,qBAAWjC,GAArCU,EAAR,EAAQA,UAAWJ,EAAnB,EAAmBA,WAcbmJ,EAAU,CACZ,CACIrG,MAAO,iBACPsG,UAAW,UACX/B,MAAO,IACPgC,MAAO,UAEX,CACIvG,MAAO,2BACPsG,UAAW,YACX/B,MAAO,IACPgC,MAAO,UAEX,CACIvG,MAAO,kBACPsG,UAAW,UACX/B,MAAO,IACPgC,MAAO,SACPC,OAAQ,SAACC,EAAMC,GAAP,OACJ,cAAC,IAAD,CAAOC,KAAK,SAAZ,SACI,mBAAGrE,KAAMoE,EAAOE,QAAhB,SAA0BF,EAAOE,cAI7C,CACI5G,MAAO,eACP6G,IAAK,SACLN,MAAO,SACPhC,MAAO,IACPiC,OAAQ,SAACC,EAAMC,GAAP,OACJ,cAAC,IAAD,CAAOC,KAAK,SAAZ,SACI,mBAAGzH,QAAS,kBA3CNmB,EA2CyBqG,EA1C3CxK,QAAQ+B,IAAIoC,GACZ+F,EAAY/F,QACZ6F,GAAW,GAHM,IAAC7F,GA2CN,+BA0FhB,OAlFAN,qBAAU,WACN7D,QAAQ+B,IAAIf,IACF,OAAVA,QAAU,IAAVA,OAAA,EAAAA,EAAYjC,OAAQqC,EAAU,kBAAmB,GAAI,aAChDc,MAAK,SAACC,SAEZ,IA8EC,qCACI,cAAC,IAAD,CACIqB,QAASA,EACTM,MAAM,2BACNC,OAAO,eACPC,WAAW,eACXqE,MAAM,SACN5E,SAAUA,EACVQ,KAAMR,EAPV,SASI,cAAC,IAAD,CAAO0G,QAASA,EAASS,YAAsB,OAAV5J,QAAU,IAAVA,OAAA,EAAAA,EAAY6J,YAAa7J,EAAW6J,UAAWC,WAAY,CAAEC,SAAU,IAAMN,KAAK,aAE1HV,GAAW,cAAC,EAAD,CACRvG,QAASuG,EACTtG,SAAU,kBACNuG,GAAW,IAEf7J,KAAM8J,Q,iBC3JjB,IACI,IAAK9E,KACL,IAAKA,KAyGC6F,MArGf,YAA4C,IAAtBxH,EAAqB,EAArBA,QAASC,EAAY,EAAZA,SAE3B,EAAkCmC,oBAAS,GAA3C,mBAAOqF,EAAP,KAAkBC,EAAlB,KACA,EAAgCtF,mBAAS,IAAzC,mBAAOuF,EAAP,KAAiBC,EAAjB,KACA,EAA8BxF,mBAAS,IAAvC,mBAAOyF,EAAP,KAAgBC,EAAhB,KACA,EAA4C3I,qBAAWjC,GAA/CU,EAAR,EAAQA,UAAWJ,EAAnB,EAAmBA,WAAYC,EAA/B,EAA+BA,SAOzBsK,EAAa,SAAbA,EAAcC,EAAMC,GACtB,OAAOD,EAAK7J,KAAI,SAAC+J,EAAMxE,GACnB,IAAM/E,EAAMsJ,EAAGC,GAOf,OANIA,EAAKjJ,WAAUN,EAAIM,SAAW8I,EAAWG,EAAKjJ,UAAU,SAAAiJ,GAAI,MAAK,CACjEjC,UAAU,EACVkB,IAAKe,EAAKtM,cACVD,QAASuM,EAAKtM,cACdgE,UAAWsI,EAAK9I,qBAEbT,MAkBTmH,EAAY,YACJ,OAAVtI,QAAU,IAAVA,OAAA,EAAAA,EAAYjC,OAAQqC,EAAU,iCAAkC,GAAI,iBAC/Dc,MAAK,SAACC,GAEH,IAAMwJ,EAAUJ,EAAWpJ,EAAIhC,MAAM,SAAAuL,GAAI,MAAK,CAC1Cf,IAAKe,EAAKvM,QACVA,QAASuM,EAAKvM,QACdiE,UAAWsI,EAAKtI,cAGpBgI,EAAYO,OAIxB9H,qBAAU,WACNyF,MACD,IAEH,IAAMa,EAAU,CACZ,CAAErG,MAAO,qBAAOuE,MAAO,IAAK+B,UAAW,YAAaO,IAAK,aACzD,CAAE7G,MAAO,KAAMuE,MAAO,IAAK+B,UAAW,UAAWC,MAAO,SAAUM,IAAK,WACvE,CACI7G,MAAO,eAAMuE,MAAO,IAAKsC,IAAK,YAAaN,MAAO,SAClDC,OAAQ,SAACC,EAAMC,GAAP,OACJ,eAAC,IAAD,CAAOC,KAAK,SAAZ,UACKD,EAAOf,UAAY,cAAC,IAAD,CAAY3F,MAAM,uCAASC,OAAO,eAAKC,WAAW,eAAK4H,UAAW,WAtClGxK,EAAU,8BAA+B,CAAEhC,cAsCwEoL,EAtCpDrL,UAC1D+C,MAAK,SAACC,GACCA,EAAIE,SACJuC,IAAQvC,QAAQ,4BAChBpB,EhB1Ca,CAAClC,KAAM,sBgB2CpBuK,KAGA1E,IAAQpC,MAAM,gCA8BM,SAChB,mBAAG4D,KAAK,IAAR,4BAEJ,mBAAGA,KAAK,IAAIpD,QAAS,kBA3DjCsI,EA2DiDd,QA1DjDU,GAAa,IA0DD,gCAMhB,OACI,eAAC,IAAD,CACI1H,QAASA,EACTM,MAAM,2BACNC,OAAO,eACPC,WAAW,eACXqE,MAAM,SACN5E,SAAUA,EACVQ,KAAMR,EAPV,UASI,cAAC,IAAD,CACI0G,QAASA,EACTS,WAAYO,IAEfF,GAAa,cAAC,EAAD,CACVzH,QAASyH,EACTxH,SAAU,kBACNyH,GAAa,IAEjB5B,UAAW,kBACPA,KAEJnJ,KAAMkL,QCnDPQ,MAhDf,WACI,MAA8BjG,oBAAS,GAAvC,mBAAOpC,EAAP,KAAgBqC,EAAhB,KACA,EAA8BD,oBAAS,GAAvC,mBAAOmE,EAAP,KAAgBC,EAAhB,KACA,EAAkCpE,oBAAS,GAA3C,mBAAOqF,EAAP,KAAkBC,EAAlB,KACA,EAAkCtF,oBAAS,GAA3C,mBAAOkG,EAAP,KAAkBC,EAAlB,KACA,EAAoCnG,oBAAS,GAA7C,mBAAOoG,EAAP,KAAmBC,EAAnB,KAEA,OACI,sBAAKlJ,UAAU,QAAf,UACI,cAAC,IAAD,CAAQC,QAAS,kBAAM6C,GAAW,IAAlC,4CACA,cAAC,IAAD,CAAQ7C,QAAS,kBAAMkI,GAAa,IAApC,sCACA,cAAC,IAAD,CAAQlI,QAAS,kBAAMgH,GAAW,IAAlC,0BACA,cAAC,IAAD,CAAQhH,QAAS,kBAAM+I,GAAa,IAApC,sCACA,cAAC,IAAD,CAAQ/I,QAAS,kBAAMiJ,GAAc,IAArC,sCACCzI,GAAW,cAAC,EAAD,CACRA,QAASA,EACTC,SAAU,kBACNoC,GAAW,MAGlBkE,GAAW,cAAC,EAAD,CACRvG,QAASuG,EACTtG,SAAU,kBACNuG,GAAW,MAGlBiB,GAAa,cAAC,EAAD,CACVzH,QAASyH,EACTxH,SAAU,kBACNyH,GAAa,MAGpBY,GAAa,cAAC,EAAD,CACVtI,QAASsI,EACTrI,SAAU,kBACNsI,GAAa,MAGpBC,GAAc,cAAC,EAAD,CACXxI,QAASwI,EACTvI,SAAU,kBACNwI,GAAc,U,QC0BnBC,OAlEf,WAAkB,IAAD,EACPC,EAAUC,cAChB,EAA0CzJ,qBAAWjC,GAA9CU,EAAP,EAAOA,UAAWJ,EAAlB,EAAkBA,WAAYC,EAA9B,EAA8BA,SA6B9B,OApBA4C,qBAAU,WACNzC,EAAU,mBAAoB,GAAI,QAC7Bc,MAAK,kBAAKd,EAAU,wBAAwB,CAACjC,QAAS6B,EAAW7B,SAAS,gBAC1E+C,MAAK,kBAAMjB,ElBvBS,CAAClC,KAAM,2BkBwBjC,CAACiC,EAAW7B,UAEf0E,qBAAU,WACN,GAAI7C,EAAW9B,gBAAiB,CAC5B,IAAMmN,EAAiC,QAAvBrL,EAAW7B,QAAoB,GAA4B,WAAvB6B,EAAW7B,QAAuB,CAClF0H,UAAU,EACV1H,QAASkI,KAAKC,UAAUtG,EAAW/B,SAAS+G,SAC5C,CAAC7G,QAAS6B,EAAW7B,SACzBiC,EAAU,sBAAuBiL,EAAS,WAAWnK,MAAK,kBAAMjB,ElBhC3C,CAAClC,KAAM,4BkBkCjC,CAACiC,EAAW9B,kBAEf2E,qBAAU,WAtBNzC,EAAU,iBAAkB,CAACmG,IAAK,UAAW,YACxCjF,OAAM,SAAAH,GAAG,OACO,QAAbA,EAAIwF,MAAmBwE,EAAQrJ,KAAK,eAsB7C,IAGC,cAAClC,EAAWM,SAAZ,CAAqBC,MAAO,CAACmL,QAAS,kBAAMC,OAAO,KAAKzG,QAAS,SAAA0G,MAAjE,SACI,sBAAKzJ,UAAU,QAAf,UACI,qBAAKA,UAAU,cAAf,SACI,4DACI,sBAAMA,UAAU,gBAAhB,gBAAiC/B,QAAjC,IAAiCA,GAAjC,UAAiCA,EAAY/B,gBAA7C,aAAiC,EAAsBwN,QACvD,mBAAG1J,UAAU,YAAb,2CAGR,sBAAKA,UAAU,MAAf,UACI,qBAAKA,UAAU,YAAf,SACI,qBAAKsD,IAAKqG,EAAMnG,IAAI,OAExB,qBAAKxD,UAAU,cAAf,SACI,wBAAQsF,MAAM,MAAMsE,OAAO,KAAKC,YAAY,IAAIC,UAAU,KAAKC,OAAO,IAC9DzG,IAAI,6DAGpB,qBAAKtD,UAAU,WAAf,SACI,cAAC,EAAD,MAEJ,qBAAKA,UAAU,YAAf,SACI,cAAC,EAAD,MAEJ,sBAAKA,UAAU,eAAf,qJAEI,uBAFJ,qCAKA,cAAC,EAAD,U,cC7CDyE,OApBf,SAAiB1G,GAAQ,IAAD,IACbE,EAAc2B,qBAAWjC,GAAzBM,WACP,OACI,qBAAK+B,UAAU,UAAf,UAEQ,UAAA/B,EAAWlC,eAAX,eAAoBqE,QAApB,OAA6BnC,QAA7B,IAA6BA,GAA7B,UAA6BA,EAAYlC,eAAzC,aAA6B,EAAqB2I,QAAO,SAAA7F,GACjD,MAAiC,QAA7BZ,EAAW5B,eACHwC,EAAExC,gBAAkB4B,EAAW5B,iBAC5CuC,KAAI,SAAAC,GACH,OACI,cAAC,EAAD,CAAmCT,MAAOS,GAAxBA,EAAC,eAI3B,0CCmDLsK,OA7Df,WAAkB,IAAD,EACPC,EAAUC,cAChB,EAA0CzJ,qBAAWjC,GAA9CU,EAAP,EAAOA,UAAWJ,EAAlB,EAAkBA,WAAYC,EAA9B,EAA8BA,SA0B9B,OAnBA4C,qBAAU,WACNzC,EAAU,mBAAoB,GAAI,QAC7Bc,MAAK,kBAAMd,EAAU,wBAAyB,CAACjC,QAAS6B,EAAW7B,SAAU,gBAC7E+C,MAAK,kBAAMjB,EpBpBS,CAAClC,KAAM,2BoBqBjC,CAACiC,EAAW7B,UACf0E,qBAAU,WACN,GAAI7C,EAAW9B,gBAAiB,CAC5B,IAAMmN,EAAiC,WAAvBrL,EAAW7B,QAAuB,CAC9C0H,UAAU,EACV1H,QAASkI,KAAKC,UAAUtG,EAAW/B,SAAS+G,SAC5C,CAAC7G,QAAS6B,EAAW7B,SACzBiC,EAAU,sBAAuBiL,EAAS,WAAWnK,MAAK,kBAAMjB,EpB5B3C,CAAClC,KAAM,4BoB8BjC,CAACiC,EAAW9B,kBAEf2E,qBAAU,WApBNzC,EAAU,iBAAkB,CAACmG,IAAK,UAAW,YACxCjF,OAAM,SAAAH,GAAG,OACO,QAAbA,EAAIwF,MAAmBwE,EAAQrJ,KAAK,eAoB7C,IAIC,sBAAKC,UAAU,QAAf,UACI,qBAAKA,UAAU,cAAf,SACQ,4DACI,sBAAMA,UAAU,gBAAhB,gBAAiC/B,QAAjC,IAAiCA,GAAjC,UAAiCA,EAAY/B,gBAA7C,aAAiC,EAAsBwN,QACvD,mBAAG1J,UAAU,YAAb,2CAGZ,sBAAKA,UAAU,MAAf,UACI,qBAAKA,UAAU,YAAf,SACI,qBAAKsD,IAAKqG,EAAMnG,IAAI,OAExB,qBAAKxD,UAAU,cAAf,SACI,wBAAQsF,MAAM,MAAMsE,OAAO,KAAKC,YAAY,IAAIC,UAAU,KAAKC,OAAO,IAC9DzG,IAAI,6DAGpB,qBAAKtD,UAAU,WAAf,SACI,cAAC,EAAD,MAEJ,qBAAKA,UAAU,YAAf,SACI,cAAC,GAAD,MAEJ,sBAAKA,UAAU,eAAf,qJAEI,uBAFJ,yC,OCXGgK,OA5Cf,SAAejM,GACX,IAAMqL,EAAUC,cAChB,EAAgCzJ,qBAAWjC,GAApCU,EAAP,EAAOA,UAAWJ,EAAlB,EAAkBA,WAClB,EAAiC4E,oBAAS,GAA1C,mBAAOoH,EAAP,KAAiBC,EAAjB,KACA,ECRiB,WAAyB,IAAxB/H,EAAuB,uDAAP,GAClC,EAA0BU,mBAASV,GAAnC,mBAAOd,EAAP,KAAc8I,EAAd,KAEMC,EAAeC,uBAAY,SAAC1N,EAAMyB,GACpC+L,GAAS,kBAAM3N,OAAOW,OAAO,GAAdX,OAAA,IAAAA,CAAA,GAAsB6E,GAAtB7E,OAAA,IAAAA,CAAA,GAAgCG,EAAOyB,SACvD,CAACiD,IAEJ,MAAO,CAACA,EAAO+I,GDCWE,GAA1B,mBAAOjJ,EAAP,KAAc8I,EAAd,KACMI,EAAU,WACZlM,EAAU,iBAAkB,CAACmG,IAAI,UAAW,YACvCrF,MAAK,SAAAC,GAAG,OAAIA,EAAIhC,KAAKoH,KAAQ4E,EAAQrJ,KAAK,QAC1CR,OAAM,SAAAH,GAAG,OACO,QAAbA,EAAIwF,MAAkBsF,GAAa,OAGzCM,EAAU,WACRP,EACA5L,EAAU,eAAe,CAACmG,IAAK,WAC1BrF,MAAK,WACFoL,OAGRA,KAYR,OATAzJ,qBAAU,WACF7C,EAAW/B,WAGhB,CAAC+B,EAAW/B,WAEf4E,qBAAU,WACN0J,MACD,IAEC,qBAAKxK,UAAU,QAAf,SACI,sBAAKA,UAAU,WAAf,UAEQiK,GAAc,uBAAOjO,KAAK,OAAOyG,SAAU,SAAAjD,GAAC,OAAI2K,EAAS,MAAM3K,EAAEgG,OAAOpH,QAAQmH,aAAclE,EAAMmD,MAExG,wBAAQxE,UAAU,YAAYC,QAAS,kBAAMuK,KAA7C,gC,SEZDC,OAvBf,WAUI,OATA3J,qBAAU,WACN7D,QAAQ+B,IAAI,MAAZ,iPAOD,IAEC,cAAC,KAAD,UACI,cAAC,EAAD,UACI,eAAC,IAAD,WACI,cAAC,IAAD,CAAO0L,OAAK,EAACpM,KAAK,SAASqM,UAAWX,KACtC,cAAC,IAAD,CAAOU,OAAK,EAACpM,KAAK,IAAIqM,UAAWxB,KACjC,cAAC,IAAD,CAAOuB,OAAK,EAACpM,KAAK,SAASqM,UAAWC,aCZ3CC,GAZS,SAAAC,GAClBA,GAAeA,aAAuBC,UACxC,8BAAqB5L,MAAK,YAAkD,IAA/C6L,EAA8C,EAA9CA,OAAQC,EAAsC,EAAtCA,OAAQC,EAA8B,EAA9BA,OAAQC,EAAsB,EAAtBA,OAAQC,EAAc,EAAdA,QAC3DJ,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAOL,GACPM,EAAQN,OCKdO,IAAOC,OAAO,SACdC,IAAShE,OACL,cAAC,IAAMiE,WAAP,UACI,cAAC,IAAD,CAAgBF,OAAQG,IAAxB,SACI,cAAC,GAAD,QAGRC,SAASC,eAAe,SAM5Bd,O","file":"static/js/main.bc381f9f.chunk.js","sourcesContent":["const initDataCenter = {\r\n toolBox: null,\r\n type: null,\r\n childType: null,\r\n userInfo: null,\r\n needUpdateIndex: false,\r\n type_id: 'follow',\r\n child_type_id: 'all'\r\n}\r\n\r\n/**\r\n * deepFreeze()\r\n * @param obj\r\n * @returns {unknown[]}\r\n */\r\nfunction deepFreeze(obj) {\r\n // 取回定义在obj上的属性名\r\n let propNames = Object.getOwnPropertyNames(obj);\r\n\r\n // 在冻结自身之前冻结属性\r\n propNames.forEach(function (name) {\r\n let prop = obj[name];\r\n\r\n // 如果prop是个对象,冻结它\r\n if (typeof prop == 'object' && prop !== null)\r\n deepFreeze(prop);\r\n });\r\n\r\n // 冻结自身(no-op if already frozen)\r\n return Object.freeze(obj);\r\n}\r\n\r\n//任何修改原始对象的操作都是禁止的!\r\ndeepFreeze(initDataCenter)\r\n\r\nconst dataReducer = (state, action) => {\r\n // console.log(action)\r\n console.table(action,['dataCenter的dispatch'])\r\n switch (action.type) {\r\n case 'UPDATE_DATA':\r\n return Object.assign({}, state, {\r\n ...action.data\r\n })\r\n case 'NEED_UPDATE_INDEX':\r\n return Object.assign({}, state, {needUpdateIndex: !state.needUpdateIndex})\r\n case 'CHANGE_TYPE':\r\n return Object.assign({}, state, {type_id: action.type_id})\r\n case 'CHANGE_CHILD_TYPE':\r\n return Object.assign({}, state, {child_type_id: action.child_type_id})\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport {\r\n initDataCenter,\r\n dataReducer,\r\n}\r\n","const apiConfig = {\r\n domain: 'https://' + window.location.hostname + ':3000',\r\n // domain: 'http://127.0.0.1:3001',\r\n}\r\n\r\nexport default apiConfig\r\n","const UPDATE_DATA = data => ({type: 'UPDATE_DATA', data: {...data}})\r\nconst NEED_UPDATE_INDEX = () => ({type: 'NEED_UPDATE_INDEX'})\r\nconst CHANGE_TYPE = type_id => ({type: 'CHANGE_TYPE', type_id: type_id})\r\nconst CHANGE_CHILD_TYPE = child_type_id => ({type: 'CHANGE_CHILD_TYPE', child_type_id: child_type_id})\r\n\r\nexport {\r\n UPDATE_DATA,\r\n NEED_UPDATE_INDEX,\r\n CHANGE_TYPE,\r\n CHANGE_CHILD_TYPE\r\n}\r\n","import React, {createContext, useReducer} from \"react\";\r\nimport {dataReducer, initDataCenter} from \"./reducer\";\r\nimport apiConfig from \"../config/apiConfig\";\r\nimport {UPDATE_DATA} from \"./action\";\r\n\r\nconst Root = createContext({})\r\nconst PopContext = createContext({})\r\n\r\nfunction DataCenter(props) {\r\n const [dataCenter, dispatch] = useReducer(dataReducer, initDataCenter, () => {\r\n return initDataCenter\r\n })\r\n\r\n const generateUrl = (path, requestData) => {\r\n if (requestData) {\r\n const keyArr = Object.keys(requestData)\r\n const paramsStr = keyArr.map((v, i) => {\r\n if (i === 0) {\r\n return '?' + v + '=' + requestData[v]\r\n } else {\r\n return '&' + v + '=' + requestData[v]\r\n }\r\n }).join('')\r\n console.log('发送请求:', apiConfig.domain + path + paramsStr)\r\n return apiConfig.domain + path + paramsStr\r\n }\r\n return apiConfig.domain + path\r\n }\r\n\r\n const fetchData = (path, requestData, dataName) =>\r\n fetch(generateUrl(path, requestData), {credentials: 'include'})\r\n .then(res => res.json())\r\n .then(res => {\r\n console.log(res);\r\n if (res.success) {\r\n !!dataName && dispatch(UPDATE_DATA({[dataName]: res.data}))\r\n } else {\r\n throw res\r\n }\r\n return res\r\n })\r\n .catch(e => {\r\n console.error(e)\r\n throw e\r\n })\r\n\r\n\r\n return (\r\n <Root.Provider value={{dataCenter, dispatch, fetchData}}>\r\n {\r\n props.children\r\n }\r\n </Root.Provider>\r\n )\r\n}\r\n\r\nexport {\r\n Root,\r\n PopContext,\r\n}\r\nexport default DataCenter\r\n\r\n","export default __webpack_public_path__ + \"static/media/logo.c725c5d1.png\";","import './ToolType.scss'\r\nimport {useContext} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\nimport {CHANGE_CHILD_TYPE, CHANGE_TYPE} from \"../../dataCenter/action\";\r\n\r\nconst ChildTypeItem = props => {\r\n const {dataCenter, dispatch} = useContext(Root)\r\n const {child_type_id, child_type_name} = props\r\n const classNameArr = ['child-type-item']\r\n if (child_type_id === dataCenter.child_type_id) {\r\n classNameArr.push('child-type-item-selected')\r\n }\r\n const handleClick = () => {\r\n console.log(child_type_id)\r\n dispatch(CHANGE_CHILD_TYPE(child_type_id))\r\n }\r\n return (\r\n <div className={classNameArr.join(' ')} onClick={handleClick}>{child_type_name}</div>\r\n )\r\n}\r\n\r\n\r\nfunction ToolType(props) {\r\n const {dataCenter, dispatch} = useContext(Root)\r\n return (\r\n <>\r\n <div className=\"tab-tool-type\">\r\n <div className={dataCenter.type_id === 'follow' ? 'item-tool-type item-tool-type-selected' : 'item-tool-type'}\r\n onClick={() => dispatch(CHANGE_TYPE('follow'))}>我的收藏\r\n </div>\r\n {\r\n dataCenter?.type?.length > 0 && dataCenter.type.map(v => {\r\n const classNameArr = ['item-tool-type ']\r\n if (v[\"type_id\"] === dataCenter.type_id) classNameArr.push('item-tool-type-selected')\r\n return (\r\n <div key={v[\"type_id\"]} className={classNameArr.join('')}\r\n onClick={() => dispatch(CHANGE_TYPE( v[\"type_id\"]))}>{v.type_name}</div>\r\n )\r\n })\r\n }\r\n </div>\r\n <div className=\"child-type\">\r\n <ChildTypeItem key={'all'} child_type_id={'all'} child_type_name={'全部'}/>\r\n {\r\n dataCenter?.childType?.length > 0 && dataCenter?.childType.map(v => {\r\n return (\r\n <ChildTypeItem key={v.child_type_id} child_type_id={v.child_type_id}\r\n child_type_name={v.child_type_name}/>\r\n )\r\n })\r\n }\r\n </div>\r\n </>\r\n )\r\n}\r\n\r\nexport default ToolType\r\n","export default __webpack_public_path__ + \"static/media/setting.6a716d85.svg\";","export default __webpack_public_path__ + \"static/media/trash.780a90e8.svg\";","export default __webpack_public_path__ + \"static/media/dragIcon.268403b1.svg\";","import React, { useState, useEffect, useContext } from 'react';\r\nimport { Root } from \"../dataCenter/Root\";\r\nimport { Button, Modal, Form, Input, Radio, Select, message } from 'antd';\r\nimport { NEED_UPDATE_INDEX } from \"../dataCenter/action\";\r\nconst { Option } = Select;\r\nconst ToolModal = ({ visible, onCancel, data }) => {\r\n const [form] = Form.useForm();\r\n const { fetchData, dataCenter, dispatch } = useContext(Root)\r\n const formItemLayout = {\r\n labelCol: { span: 4 },\r\n wrapperCol: { span: 18 },\r\n };\r\n const onCreate = (values) => {\r\n let input = {\r\n toolbox_name: values.name,\r\n toolbox_icon: values.icon,\r\n toolbox_desc: values.depict,\r\n toolbox_url: values.url,\r\n\r\n }\r\n if (!data) {\r\n input = {\r\n ...input,\r\n type_id: values.type,\r\n child_type_id: values.childType\r\n }\r\n console.log(input);\r\n fetchData('/add/addToolBox', input)\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('新建成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n onCancel()\r\n } else {\r\n message.error('新建失败')\r\n }\r\n })\r\n\r\n } else {\r\n fetchData('/update/updateToolBox', input)\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('修改成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n onCancel()\r\n } else {\r\n message.error('新建失败')\r\n }\r\n })\r\n }\r\n };\r\n\r\n const onGenderChange = (value) => {\r\n form.setFieldsValue({\r\n type: value,\r\n });\r\n fetchData('/query/queryChildType', { type_id: value }, 'childType')\r\n .then((res) => {\r\n\r\n console.log(res);\r\n })\r\n console.log(dataCenter);\r\n };\r\n const onChildGenderChange = (value) => {\r\n form.setFieldsValue({\r\n childType: value,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n dataCenter?.type && fetchData('/query/queryChildType', { type_id: dataCenter?.type[0]?.type_id }, 'childType')\r\n .then((res) => {\r\n\r\n console.log(res);\r\n })\r\n }, [])\r\n\r\n return (\r\n <Modal\r\n visible={visible}\r\n title={data ? '修改工具箱' : '新建工具箱'}\r\n okText=\"确定\"\r\n cancelText=\"取消\"\r\n onCancel={onCancel}\r\n onOk={() => {\r\n form\r\n .validateFields()\r\n .then((values) => {\r\n // form.resetFields();\r\n onCreate(values);\r\n })\r\n .catch((info) => {\r\n console.log('Validate Failed:', info);\r\n });\r\n }}\r\n >\r\n <Form\r\n form={form}\r\n // layout=\"vertical\"\r\n {...formItemLayout}\r\n name=\"form_in_modal\"\r\n initialValues={data ? {\r\n name: data.toolbox_name,\r\n icon: data.toolbox_icon,\r\n url: data.toolbox_url,\r\n depict: data.toolbox_desc,\r\n } : { type: dataCenter?.type && dataCenter?.type[0]?.type_id }}\r\n >\r\n <Form.Item\r\n name=\"name\"\r\n label=\"名称\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入名称!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入名称\" />\r\n </Form.Item>\r\n <Form.Item name=\"icon\"\r\n label=\"图标\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入图标url!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入图标url\" />\r\n </Form.Item>\r\n <Form.Item\r\n name=\"depict\"\r\n label=\"描述\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入描述!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入描述\" />\r\n </Form.Item>\r\n <Form.Item\r\n name=\"url\"\r\n label=\"链接\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入链接!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入链接\" />\r\n </Form.Item>\r\n {!data && <Form.Item\r\n name=\"type\"\r\n label=\"类型\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请选择类型!',\r\n },\r\n ]}\r\n >\r\n <Select\r\n placeholder=\"请选择类型\"\r\n onChange={onGenderChange}\r\n // allowClear\r\n >\r\n {\r\n dataCenter?.type?.length && dataCenter?.type.map(v => {\r\n return (\r\n <Option key={v.type_id} value={v.type_id}>{v.type_name}</Option>\r\n )\r\n })\r\n }\r\n\r\n </Select>\r\n </Form.Item>}\r\n {!data && dataCenter?.childType && <Form.Item\r\n name=\"childType\"\r\n label=\"子类型\"\r\n >\r\n <Select\r\n placeholder=\"请选择子类型\"\r\n onChange={onChildGenderChange}\r\n allowClear\r\n >\r\n {\r\n dataCenter?.childType?.length && dataCenter?.childType.map(v => {\r\n return (\r\n <Option key={v.child_type_id} value={v.child_type_id}>{v.child_type_name}</Option>\r\n )\r\n })\r\n }\r\n\r\n </Select>\r\n </Form.Item>}\r\n </Form>\r\n </Modal>\r\n );\r\n};\r\nexport default ToolModal\r\n","import './ContentItem.scss'\r\nimport notFollow from '../../static/notFollow.png'\r\nimport followed from '../../static/followed.png'\r\nimport setting from '../../static/setting.svg'\r\nimport trash from '../../static/trash.svg'\r\nimport dragIcon from '../../static/dragIcon.svg'\r\nimport {useContext, useState} from \"react\";\r\nimport {PopContext, Root} from \"../../dataCenter/Root\";\r\nimport ToolModal from \"../../modal/ToolModal\"\r\n\r\nfunction ContentItemAdmin(props) {\r\n const [visible, setVisible] = useState(false)\r\n\r\n const {fetchData} = useContext(Root)\r\n const {showPop} = useContext(PopContext)\r\n\r\n const {toolbox_icon, toolbox_name, toolbox_desc, toolbox_url, follow, toolbox_id} = props.value\r\n\r\n const [itemIcon, setItemIcon] = useState(toolbox_icon)\r\n\r\n const jumpUrl = url => {\r\n window.location.href = url\r\n }\r\n const deleteItem = toolbox_id => {\r\n fetchData('/delete/deleteToolBoxById', {toolbox_id})\r\n }\r\n\r\n return (\r\n <div className=\"content-item\">\r\n <div className=\"content-adminTool\">\r\n <img src={dragIcon} alt=\"\"/>\r\n <img src={setting} alt=\"\" onClick={() => setVisible(true)}/>\r\n <img src={trash} alt=\"\" onClick={() => deleteItem(toolbox_id)}/>\r\n </div>\r\n <div className=\"item-icon\" onClick={() => jumpUrl(toolbox_url)}>\r\n {\r\n !itemIcon && <div className=\"defaultIcon\">{toolbox_name[0]}</div>\r\n }\r\n {\r\n itemIcon && <img src={itemIcon} alt='' onError={e => setItemIcon(null)}/>\r\n }\r\n </div>\r\n <div className=\"item-name\" onClick={() => jumpUrl(toolbox_url)}>{toolbox_name}</div>\r\n <div className=\"item-desc\">{toolbox_desc}</div>\r\n <a className='item-url' href={toolbox_url}>{toolbox_url}</a>\r\n {/*<div className=\"follow\">*/}\r\n {/* <img className='icon-follow' src={follow ? followed : notFollow} alt=\"\"/>*/}\r\n {/* 收藏*/}\r\n {/*</div>*/}\r\n {visible && <ToolModal\r\n visible={visible}\r\n onCancel={() =>\r\n setVisible(false)\r\n }\r\n data={props.value}\r\n />}\r\n </div>\r\n\r\n )\r\n}\r\n\r\nexport default ContentItemAdmin\r\n","import './ContentItem.scss'\r\nimport notFollow from '../../static/notFollow.png'\r\nimport followed from '../../static/followed.png'\r\nimport {useContext, useEffect, useState} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\n\r\nfunction ContentItem(props) {\r\n const {dataCenter, fetchData} = useContext(Root)\r\n const {toolbox_icon, toolbox_name, toolbox_desc, toolbox_url, toolbox_id} = props.value\r\n const [isFollow, setIsFollow] = useState(false)\r\n const [itemIcon, setItemIcon] = useState(toolbox_icon)\r\n\r\n const jumpUrl = url => window.location.href = url\r\n\r\n const follow = () => {\r\n const _follow = dataCenter.userInfo.follow.slice()\r\n if (!isFollow) {\r\n _follow.push(toolbox_id)\r\n } else {\r\n const index = _follow.indexOf(toolbox_id)\r\n _follow.splice(index, 1)\r\n }\r\n console.log( {follow: JSON.stringify(_follow), uid: dataCenter.userInfo.uid})\r\n fetchData('/users/follow', {follow: JSON.stringify(_follow), uid: dataCenter.userInfo.uid})\r\n .then(() => fetchData('/users/getUser', {uid: 100001}, 'userInfo'))\r\n }\r\n\r\n useEffect(() => {\r\n if (dataCenter.userInfo?.follow.includes(toolbox_id)) {\r\n setIsFollow(true)\r\n } else {\r\n setIsFollow(false)\r\n }\r\n }, [dataCenter.toolBox, dataCenter.userInfo])\r\n\r\n return (\r\n <div className=\"content-item\">\r\n <div className=\"item-icon\" onClick={() => jumpUrl(toolbox_url)}>\r\n {\r\n !itemIcon && <div className=\"defaultIcon\">{toolbox_name[0]}</div>\r\n }\r\n {\r\n itemIcon && <img src={itemIcon} alt='' onError={e => setItemIcon(null)}/>\r\n }\r\n\r\n </div>\r\n <div className=\"item-name\" onClick={() => jumpUrl(toolbox_url)}>{toolbox_name}</div>\r\n <div className=\"item-desc\">{toolbox_desc}</div>\r\n <a className='item-url' href={toolbox_url}>{toolbox_url}</a>\r\n <div className=\"follow\">\r\n <img className='icon-follow' src={isFollow ? followed : notFollow} alt=\"\" onClick={() => follow()}/>\r\n 收藏\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default ContentItem\r\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","import './Content.scss'\r\nimport ContentItemAdmin from \"./ContentItemAdmin\";\r\nimport {useContext} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\nimport ContentItem from \"../Content/ContentItem\";\r\n\r\nfunction Content(props) {\r\n const {dataCenter} = useContext(Root)\r\n\r\n return (\r\n <div className=\"content\">\r\n {\r\n dataCenter.toolBox?.length ? dataCenter?.toolBox?.filter(v => {\r\n if (dataCenter.child_type_id === 'all') return true\r\n else return v.child_type_id === dataCenter.child_type_id\r\n }).map(v => {\r\n return (\r\n <ContentItemAdmin key={v['toolbox_id']} value={v}/>\r\n )\r\n })\r\n :\r\n '没有数据了!'\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport default Content\r\n","import './PublishModal.scss'\r\nimport React, {useContext, useEffect, useState} from 'react';\r\nimport {Root} from \"../dataCenter/Root\";\r\nimport {UnControlled as CodeMirror} from 'react-codemirror2'\r\nimport {Form, Input, message, Modal, Select} from 'antd';\r\nimport apiConfig from \"../config/apiConfig\";\r\n\r\nimport 'codemirror/addon/display/autorefresh';\r\nimport 'codemirror/addon/comment/comment';\r\nimport 'codemirror/addon/edit/matchbrackets';\r\nimport 'codemirror/keymap/sublime';\r\nimport 'codemirror/theme/eclipse.css';\r\nimport 'codemirror/theme/monokai.css';\r\nimport 'codemirror/lib/codemirror.js';\r\nimport 'codemirror/lib/codemirror.css';\r\nimport 'codemirror/theme/solarized.css'\r\nimport 'codemirror/mode/javascript/javascript'\r\nimport 'codemirror/addon/selection/active-line';\r\nimport 'codemirror/addon/fold/foldgutter.css';\r\n\r\nconst { Option } = Select;\r\n\r\n\r\nconst PublishModal = ({ visible, onCancel, data }) => {\r\n const [code, setcode] = useState('')\r\n const [page_name, setPageName] = useState('')\r\n const [oldCode, setoldCode] = useState('')\r\n const { fetchData, dataCenter } = useContext(Root)\r\n const onCreate = (values) => {\r\n console.log(code);\r\n\r\n if (!code || !page_name) {\r\n message.error('请补全信息!')\r\n return\r\n }\r\n if (data) {\r\n fetch(`${apiConfig.domain}/page/updatePage`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n page_id: data.page_id,\r\n page_name: page_name,\r\n code: code\r\n })\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n if (data.success) {\r\n onCancel()\r\n message.success('替换成功!')\r\n dataCenter?.type && fetchData('/page/queryPage', {}, 'queryPage')\r\n .then((res) => {\r\n\r\n })\r\n } else {\r\n message.error( '替换失败')\r\n }\r\n });\r\n } else {\r\n fetch(`${apiConfig.domain}/page/addPage`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n page_name: page_name,\r\n code: code\r\n })\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n if (data.success) {\r\n onCancel()\r\n message.success('发布成功!')\r\n dataCenter?.type && fetchData('/page/queryPage', {}, 'queryPage')\r\n .then((res) => {\r\n\r\n })\r\n } else {\r\n message.error(data.error || '发布失败')\r\n }\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n data&&setPageName(data.page_name)\r\n }, [data])\r\n\r\n return (\r\n <Modal\r\n visible={visible}\r\n title=\"发布\"\r\n okText=\"发布\"\r\n cancelText=\"取消\"\r\n onCancel={onCancel}\r\n onOk={onCreate}\r\n width='1000px'\r\n >\r\n <Form.Item\r\n name=\"page_name\"\r\n label=\"页面名称\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入页面名称!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入页面名称\" defaultValue={data?.page_name ? data.page_name : page_name} onChange={(e) => { setPageName(e.target.value) }} />\r\n </Form.Item>\r\n <Form.Item\r\n name=\"type\"\r\n label=\"布局代码\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入页面名称!',\r\n },\r\n ]}\r\n >\r\n <div className='codeMain'>\r\n <CodeMirror\r\n onChange={(editor, data, value) => {\r\n setcode(value)\r\n }}\r\n value={oldCode}\r\n options={{\r\n styleActiveLine: true,//光标代码高亮\r\n lineNumbers: true,\r\n theme: 'monokai',\r\n tabSize: 2,\r\n keyMap: 'sublime',\r\n mode: 'text/javascript',\r\n smartIndent: true, //自动缩进\r\n lineWrapping: true,\r\n autofocus: true\r\n }}\r\n />\r\n </div>\r\n </Form.Item>\r\n </Modal>\r\n );\r\n};\r\nexport default PublishModal\r\n","import React from 'react';\r\nimport { Button, Modal, Form, Input, Radio, Select, message, Tabs } from 'antd';\r\nimport { useContext, useEffect, useState } from \"react\";\r\nimport { Root } from \"../dataCenter/Root\";\r\nimport { NEED_UPDATE_INDEX } from \"../dataCenter/action\";\r\nconst { Option } = Select;\r\nconst { TabPane } = Tabs;\r\nconst TypeModal = ({ visible, onCancel, queryData, data }) => {\r\n console.log(data);\r\n const [form] = Form.useForm();\r\n if (data) {\r\n form.setFieldsValue({\r\n type_name: data.type_name,\r\n });\r\n }\r\n const formItemLayout = {\r\n labelCol: { span: 4 },\r\n wrapperCol: { span: 18 },\r\n };\r\n\r\n const { fetchData, dataCenter, dispatch } = useContext(Root)\r\n const [value, setValue] = React.useState(1);\r\n\r\n\r\n const onCreate = (values) => {\r\n if (data) {\r\n console.log(data);\r\n\r\n let input = {\r\n type_id: '',\r\n type_name: ''\r\n }\r\n if (!data.isRemove) {\r\n input = {\r\n type_id: data.type_id,\r\n type_name: values.type_name\r\n }\r\n } else {\r\n input = {\r\n child_type_id: data.type_id,\r\n child_type_name: values.type_name\r\n }\r\n }\r\n fetchData('/typeManage/updateType', input)\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('修改成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n queryData()\r\n onCancel()\r\n }\r\n })\r\n } else {\r\n console.log(values);\r\n fetchData('/add/addType', values)\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('新建成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n onCancel()\r\n }\r\n })\r\n }\r\n\r\n };\r\n // function callback(key) {\r\n // console.log(key);\r\n // }\r\n\r\n const onChange = e => {\r\n console.log('radio checked', e.target.value);\r\n setValue(e.target.value);\r\n };\r\n\r\n const onGenderChange = (value) => {\r\n form.setFieldsValue({\r\n type_id: value,\r\n });\r\n };\r\n\r\n return (\r\n <Modal\r\n visible={visible}\r\n title={`${data ? '修改' : '新建'}类型`}\r\n okText=\"确定\"\r\n cancelText=\"取消\"\r\n onCancel={onCancel}\r\n onOk={() => {\r\n form\r\n .validateFields()\r\n .then((values) => {\r\n // form.resetFields();\r\n onCreate(values);\r\n })\r\n .catch((info) => {\r\n console.log('Validate Failed:', info);\r\n });\r\n }}\r\n >\r\n <Form\r\n form={form}\r\n // layout=\"vertical\"\r\n {...formItemLayout}\r\n name=\"form_in_modal\"\r\n initialValues={{\r\n modifier: 'public',\r\n 'radio-group': 1\r\n }}\r\n >\r\n\r\n {!data && <Form.Item name=\"radio-group\" label=\"类型\">\r\n <Radio.Group onChange={onChange} value={value}>\r\n <Radio value={1}>父类型</Radio>\r\n <Radio value={2}>子类型</Radio>\r\n </Radio.Group>\r\n </Form.Item>}\r\n {value === 1 || data ? <Form.Item\r\n name=\"type_name\"\r\n label={`${data ? '' : '父'}类型`}\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入类型名称!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入类型名称\" />\r\n </Form.Item> :\r\n <>\r\n <Form.Item\r\n name=\"type_id\"\r\n label=\"父类型\"\r\n hasFeedback\r\n rules={[{ required: true, message: '请选择父类型!' }]}\r\n >\r\n <Select\r\n placeholder=\"请选择父类型\"\r\n onChange={onGenderChange}\r\n // allowClear\r\n >\r\n {\r\n dataCenter?.type?.length && dataCenter?.type.map(v => {\r\n return (\r\n <Option key={v.type_id} value={v.type_id}>{v.type_name}</Option>\r\n )\r\n })\r\n }\r\n\r\n </Select>\r\n </Form.Item>\r\n <Form.Item\r\n name=\"child_type_name\"\r\n label=\"子类型\"\r\n rules={[\r\n {\r\n required: true,\r\n message: '请输入类型名称!',\r\n },\r\n ]}\r\n >\r\n <Input placeholder=\"请输入类型名称\" />\r\n </Form.Item>\r\n </>\r\n\r\n }\r\n </Form>\r\n </Modal>\r\n );\r\n};\r\nexport default TypeModal\r\n","import React, {useContext, useEffect, useState} from 'react';\r\nimport {Root} from \"../dataCenter/Root\";\r\nimport {Modal, Space, Table} from 'antd';\r\nimport PublishModal from \"./PublishModal\"\r\n\r\nfunction PageModal({ visible, onCancel, onPublish }) {\r\n\r\n const [publish, setPublish] = useState(false)\r\n const [pageData, setpageData] = useState('')\r\n const { fetchData, dataCenter } = useContext(Root)\r\n\r\n const onChangePage = (values) => {\r\n console.log(values);\r\n setpageData(values);\r\n setPublish(true)\r\n };\r\n const onRemovePage = (values) => {\r\n console.log(values);\r\n // setVisible(false);\r\n };\r\n\r\n\r\n\r\n const columns = [\r\n {\r\n title: '页面Id',\r\n dataIndex: 'page_id',\r\n width: 150,\r\n align: 'center'\r\n },\r\n {\r\n title: '页面名称',\r\n dataIndex: 'page_name',\r\n width: 200,\r\n align: 'center'\r\n },\r\n {\r\n title: '页面Url',\r\n dataIndex: 'pageUrl',\r\n width: 300,\r\n align: 'center',\r\n render: (text, record) => (\r\n <Space size=\"middle\">\r\n <a href={record.pageUrl}>{record.pageUrl}</a>\r\n </Space>\r\n ),\r\n },\r\n {\r\n title: '操作',\r\n key: 'action',\r\n align: 'center',\r\n width: 100,\r\n render: (text, record) => (\r\n <Space size=\"middle\">\r\n <a onClick={() => onChangePage(record)}>替换</a>\r\n {/* <a onClick={() => onRemovePage(record)}>删除</a> */}\r\n </Space>\r\n ),\r\n },\r\n ];\r\n\r\n\r\n useEffect(() => {\r\n console.log(dataCenter);\r\n dataCenter?.type && fetchData('/page/queryPage', {}, 'queryPage')\r\n .then((res) => {\r\n })\r\n }, [])\r\n\r\n\r\n const data = [\r\n {\r\n key: '1',\r\n name: '1 Brown',\r\n age: 32,\r\n address: 'New York No. 1 Lake Park',\r\n },\r\n {\r\n key: '2',\r\n name: '2 Green',\r\n age: 42,\r\n address: 'London No. 1 Lake Park',\r\n },\r\n {\r\n key: '3',\r\n name: '3 Black',\r\n age: 32,\r\n address: 'Sidney No. 1 Lake Park',\r\n },\r\n {\r\n key: '4',\r\n name: '4 Brown',\r\n age: 32,\r\n address: 'New York No. 1 Lake Park',\r\n },\r\n {\r\n key: '5',\r\n name: '5 Green',\r\n age: 42,\r\n address: 'London No. 1 Lake Park',\r\n },\r\n {\r\n key: '6',\r\n name: '6 Black',\r\n age: 32,\r\n address: 'Sidney No. 1 Lake Park',\r\n },\r\n {\r\n key: '7',\r\n name: '7 Brown',\r\n age: 32,\r\n address: 'New York No. 1 Lake Park',\r\n },\r\n {\r\n key: '8',\r\n name: '8 Green',\r\n age: 42,\r\n address: 'London No. 1 Lake Park',\r\n },\r\n {\r\n key: '9',\r\n name: '9 Black',\r\n age: 32,\r\n address: 'Sidney No. 1 Lake Park',\r\n },\r\n {\r\n key: '10',\r\n name: '10 Brown',\r\n age: 32,\r\n address: 'New York No. 1 Lake Park',\r\n },\r\n {\r\n key: '11',\r\n name: '11 Green',\r\n age: 42,\r\n address: 'London No. 1 Lake Park',\r\n },\r\n {\r\n key: '12',\r\n name: '12 Black',\r\n age: 32,\r\n address: 'Sidney No. 1 Lake Park',\r\n },\r\n ];\r\n return (\r\n <>\r\n <Modal\r\n visible={visible}\r\n title=\"页面管理\"\r\n okText=\"确定\"\r\n cancelText=\"取消\"\r\n width='1000px'\r\n onCancel={onCancel}\r\n onOk={onCancel}\r\n >\r\n <Table columns={columns} dataSource={dataCenter?.queryPage && dataCenter.queryPage} pagination={{ pageSize: 10 }} size=\"middle\" />\r\n </Modal>\r\n {publish && <PublishModal\r\n visible={publish}\r\n onCancel={() =>\r\n setPublish(false)\r\n }\r\n data={pageData}\r\n />}\r\n </>\r\n )\r\n}\r\n\r\nexport default PageModal\r\n","import { Menu, Modal, Popconfirm, Space, Table, message } from 'antd';\r\nimport React, { useContext, useEffect, useState } from 'react';\r\nimport TypeModal from '../modal/TypeModal'\r\nimport { NEED_UPDATE_INDEX } from \"../dataCenter/action\";\r\nimport { Root } from \"../dataCenter/Root\";\r\n\r\nconst menu = (\r\n <Menu>\r\n <Menu.Item>Action 1</Menu.Item>\r\n <Menu.Item>Action 2</Menu.Item>\r\n </Menu>\r\n);\r\n\r\nfunction RemoveType({ visible, onCancel }) {\r\n\r\n const [typeModal, setTypeModal] = useState(false)\r\n const [typeData, settypeData] = useState('')\r\n const [oldData, setoldData] = useState('')\r\n const { fetchData, dataCenter, dispatch } = useContext(Root)\r\n\r\n const changType = (data) => {\r\n setoldData(data)\r\n setTypeModal(true)\r\n }\r\n\r\n const changeData = (list, cb) => {\r\n return list.map((item, index) => {\r\n const res = cb(item);\r\n if (item.children) res.children = changeData(item.children, item => ({\r\n isRemove: true,\r\n key: item.child_type_id,\r\n type_id: item.child_type_id,\r\n type_name: item.child_type_name,\r\n }));\r\n return res;\r\n })\r\n }\r\n\r\n const removeType = (data) => {\r\n fetchData('/typeManage/deleteChildType', { child_type_id: data.type_id })\r\n .then((res) => {\r\n if (res.success) {\r\n message.success('刪除成功')\r\n dispatch(NEED_UPDATE_INDEX())\r\n queryData()\r\n // onCancel()\r\n }else{\r\n message.error('刪除失败')\r\n }\r\n })\r\n }\r\n\r\n const queryData = () => {\r\n dataCenter?.type && fetchData('/typeManage/queryTypeForManage', {}, 'childTypeData')\r\n .then((res) => {\r\n // console.log(res.data);\r\n const newData = changeData(res.data, item => ({\r\n key: item.type_id,\r\n type_id: item.type_id,\r\n type_name: item.type_name,\r\n }));\r\n // console.log(newData);\r\n settypeData(newData)\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n queryData()\r\n }, [])\r\n\r\n const columns = [\r\n { title: '类型名', width: 100, dataIndex: 'type_name', key: 'type_name' },\r\n { title: 'Id', width: 100, dataIndex: 'type_id', align: 'center', key: 'type_id' },\r\n {\r\n title: '操作', width: 100, key: 'operation', align: 'center',\r\n render: (text, record) => (\r\n <Space size=\"middle\">\r\n {record.isRemove && <Popconfirm title=\"确定删除吗?\" okText=\"确定\" cancelText=\"取消\" onConfirm={() => removeType(record)}>\r\n <a href=\"#\" >删除</a>\r\n </Popconfirm>}\r\n <a href=\"#\" onClick={() => changType(record)}>修改</a>\r\n </Space>\r\n )\r\n },\r\n ];\r\n\r\n return (\r\n <Modal\r\n visible={visible}\r\n title=\"类型管理\"\r\n okText=\"确定\"\r\n cancelText=\"取消\"\r\n width='1000px'\r\n onCancel={onCancel}\r\n onOk={onCancel}\r\n >\r\n <Table\r\n columns={columns}\r\n dataSource={typeData}\r\n />\r\n {typeModal && <TypeModal\r\n visible={typeModal}\r\n onCancel={() =>\r\n setTypeModal(false)\r\n }\r\n queryData={() =>\r\n queryData()\r\n }\r\n data={oldData}\r\n />}\r\n </Modal>\r\n\r\n );\r\n}\r\nexport default RemoveType\r\n","import React, {useState} from 'react'\r\nimport './AdminIndex.scss'\r\nimport {Button} from 'antd';\r\nimport ToolModal from '../../modal/ToolModal'\r\nimport PublishModal from '../../modal/PublishModal'\r\nimport TypeModal from '../../modal/TypeModal'\r\nimport PageModal from '../../modal/PageModal'\r\nimport RemoveType from '../../modal/RemoveType'\r\n\r\nfunction AdminIndex() {\r\n const [visible, setVisible] = useState(false)\r\n const [publish, setPublish] = useState(false)\r\n const [typeModal, setTypeModal] = useState(false)\r\n const [pageModal, setpageModal] = useState(false)\r\n const [removeType, setremoveType] = useState(false)\r\n\r\n return (\r\n <div className='admin'>\r\n <Button onClick={() => setVisible(true)}>新建工具盒</Button>\r\n <Button onClick={() => setTypeModal(true)}>新建类型</Button>\r\n <Button onClick={() => setPublish(true)}>发布</Button>\r\n <Button onClick={() => setpageModal(true)}>页面管理</Button>\r\n <Button onClick={() => setremoveType(true)}>类型管理</Button>\r\n {visible && <ToolModal\r\n visible={visible}\r\n onCancel={() =>\r\n setVisible(false)\r\n }\r\n />}\r\n {publish && <PublishModal\r\n visible={publish}\r\n onCancel={() =>\r\n setPublish(false)\r\n }\r\n />}\r\n {typeModal && <TypeModal\r\n visible={typeModal}\r\n onCancel={() =>\r\n setTypeModal(false)\r\n }\r\n />}\r\n {pageModal && <PageModal\r\n visible={pageModal}\r\n onCancel={() =>\r\n setpageModal(false)\r\n }\r\n />}\r\n {removeType && <RemoveType\r\n visible={removeType}\r\n onCancel={() =>\r\n setremoveType(false)\r\n }\r\n />}\r\n </div>\r\n )\r\n}\r\n\r\nexport default AdminIndex\r\n","import logo from \"../../static/logo.png\";\r\nimport './index.scss'\r\nimport ToolType from \"../../component/ToolType/ToolType\";\r\nimport Content from '../../component/ContentAdmin/Content'\r\nimport {PopContext, Root} from \"../../dataCenter/Root\";\r\nimport {useContext, useEffect, useState} from \"react\";\r\nimport {NEED_UPDATE_INDEX} from \"../../dataCenter/action\";\r\nimport AdminIndex from \"../../component/AdminIndex/AdminIndex\";\r\nimport {useHistory} from \"react-router-dom\";\r\n\r\nfunction Index() {\r\n const history = useHistory()\r\n const {fetchData, dataCenter, dispatch} = useContext(Root)\r\n const showPop = popComponent => {}\r\n const getUser = () => {\r\n fetchData('/users/getUser', {uid: '100001'}, 'userInfo')\r\n .catch(res =>\r\n res.code === 70001 && (history.push('/login'))\r\n )\r\n }\r\n\r\n useEffect(() => {\r\n fetchData('/query/queryType', {}, 'type')\r\n .then(()=> fetchData('/query/queryChildType',{type_id: dataCenter.type_id},'childType'))\r\n .then(() => dispatch(NEED_UPDATE_INDEX()))\r\n }, [dataCenter.type_id])\r\n\r\n useEffect(() => {\r\n if (dataCenter.needUpdateIndex) {\r\n const _typeId = dataCenter.type_id === 'all' ? {} : dataCenter.type_id === 'follow' ? {\r\n isFollow: true,\r\n type_id: JSON.stringify(dataCenter.userInfo.follow)\r\n } : {type_id: dataCenter.type_id}\r\n fetchData('/query/queryToolBox', _typeId, 'toolBox').then(() => dispatch(NEED_UPDATE_INDEX()))\r\n }\r\n }, [dataCenter.needUpdateIndex])\r\n\r\n useEffect(() => {\r\n getUser()\r\n }, [])\r\n\r\n return (\r\n <PopContext.Provider value={{hidePop: () => setPop(''), showPop: popName => showPop(popName)}}>\r\n <div className=\"index\">\r\n <div className=\"welcome-top\">\r\n <span>欢迎您!\r\n <span className=\"welcome-uname\">{dataCenter?.userInfo?.uname}</span>\r\n <a className=\"login-btn\">退出登录</a>\r\n </span>\r\n </div>\r\n <div className=\"nav\">\r\n <div className=\"nav-title\">\r\n <img src={logo} alt=\"\"/>\r\n </div>\r\n <div className=\"nav-weather\">\r\n <iframe width=\"360\" height=\"40\" frameBorder=\"0\" scrolling=\"no\" hspace=\"0\"\r\n src=\"https://i.tianqi.com/?c=code&a=getcode&id=40&icon=1\"/>\r\n </div>\r\n </div>\r\n <div className=\"tool-nav\">\r\n <ToolType/>\r\n </div>\r\n <div className=\"container\">\r\n <Content/>\r\n </div>\r\n <div className=\"index-footer\">\r\n 兑吧研发中心·杭州兑吧网络科技游戏公司版权所有\r\n <br/>\r\n 浙ICP备14017299号-1\r\n </div>\r\n <AdminIndex/>\r\n </div>\r\n </PopContext.Provider>\r\n )\r\n}\r\n\r\nexport default Index\r\n\r\n","import './Content.scss'\r\nimport ContentItem from \"./ContentItem\";\r\nimport {useContext} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\n\r\nfunction Content(props) {\r\n const {dataCenter} = useContext(Root)\r\n return (\r\n <div className=\"content\">\r\n {\r\n dataCenter.toolBox?.length ? dataCenter?.toolBox?.filter(v => {\r\n if (dataCenter.child_type_id === 'all') return true\r\n else return v.child_type_id === dataCenter.child_type_id\r\n }).map(v => {\r\n return (\r\n <ContentItem key={v['toolbox_id']} value={v}/>\r\n )\r\n })\r\n :\r\n '没有数据了!'\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport default Content\r\n","import logo from \"../../static/logo.png\";\r\nimport './index.scss'\r\nimport ToolType from \"../../component/ToolType/ToolType\";\r\nimport Content from \"../../component/Content/Content\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\nimport {useContext, useEffect} from \"react\";\r\nimport {NEED_UPDATE_INDEX} from \"../../dataCenter/action\";\r\nimport {useHistory} from \"react-router-dom\";\r\n\r\nfunction Index() {\r\n const history = useHistory()\r\n const {fetchData, dataCenter, dispatch} = useContext(Root)\r\n const getUser = () => {\r\n fetchData('/users/getUser', {uid: '100001'}, 'userInfo')\r\n .catch(res =>\r\n res.code === 70001 && (history.push('/login'))\r\n )\r\n }\r\n useEffect(() => {\r\n fetchData('/query/queryType', {}, 'type')\r\n .then(() => fetchData('/query/queryChildType', {type_id: dataCenter.type_id}, 'childType'))\r\n .then(() => dispatch(NEED_UPDATE_INDEX()))\r\n }, [dataCenter.type_id])\r\n useEffect(() => {\r\n if (dataCenter.needUpdateIndex) {\r\n const _typeId = dataCenter.type_id === 'follow' ? {\r\n isFollow: true,\r\n type_id: JSON.stringify(dataCenter.userInfo.follow)\r\n } : {type_id: dataCenter.type_id}\r\n fetchData('/query/queryToolBox', _typeId, 'toolBox').then(() => dispatch(NEED_UPDATE_INDEX()))\r\n }\r\n }, [dataCenter.needUpdateIndex])\r\n\r\n useEffect(() => {\r\n getUser()\r\n }, [])\r\n\r\n return (\r\n\r\n <div className=\"index\">\r\n <div className=\"welcome-top\">\r\n <span>欢迎您!\r\n <span className=\"welcome-uname\">{dataCenter?.userInfo?.uname}</span>\r\n <a className=\"login-btn\">退出登录</a>\r\n </span>\r\n </div>\r\n <div className=\"nav\">\r\n <div className=\"nav-title\">\r\n <img src={logo} alt=\"\"/>\r\n </div>\r\n <div className=\"nav-weather\">\r\n <iframe width=\"360\" height=\"40\" frameBorder=\"0\" scrolling=\"no\" hspace=\"0\"\r\n src=\"https://i.tianqi.com/?c=code&a=getcode&id=40&icon=1\"/>\r\n </div>\r\n </div>\r\n <div className=\"tool-nav\">\r\n <ToolType/>\r\n </div>\r\n <div className=\"container\">\r\n <Content/>\r\n </div>\r\n <div className=\"index-footer\">\r\n 兑吧研发中心·杭州兑吧网络科技有限公司版权所有\r\n <br/>\r\n 浙ICP备14017299号-1\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Index\r\n\r\n","import './login.scss'\r\nimport {useContext, useEffect, useState} from \"react\";\r\nimport {Root} from \"../../dataCenter/Root\";\r\nimport {useFormState} from \"../../utils/hook\";\r\nimport {useHistory} from \"react-router-dom\";\r\n\r\nfunction Login(props) {\r\n const history = useHistory()\r\n const {fetchData, dataCenter} = useContext(Root)\r\n const [needLogin,setNeedLogin] = useState(false)\r\n const [input, setInput] = useFormState()\r\n const getUser = ()=>{\r\n fetchData('/users/getUser', {uid:'100001'}, 'userInfo')\r\n .then(res => res.data.uid && (history.push('/')))\r\n .catch(res =>\r\n res.code === 70001 && setNeedLogin(true)\r\n )\r\n }\r\n const doLogin = () => {\r\n if (needLogin){\r\n fetchData('/users/login',{uid: '100001'})\r\n .then(()=>{\r\n getUser()\r\n })\r\n }else {\r\n getUser()\r\n }\r\n }\r\n useEffect(() => {\r\n if (dataCenter.userInfo) {\r\n // window.location.href = '/index'\r\n }\r\n }, [dataCenter.userInfo])\r\n\r\n useEffect(() => {\r\n doLogin()\r\n }, [])\r\n return (\r\n <div className=\"login\">\r\n <div className='loginDiv'>\r\n {\r\n needLogin && <input type=\"text\" onChange={e => setInput('uid',e.target.value)} defaultValue={input.uid}/>\r\n }\r\n <button className='btn-login' onClick={() => doLogin()}>登录</button>\r\n </div>\r\n\r\n </div>\r\n )\r\n}\r\n\r\nexport default Login\r\n","import {useCallback, useState} from \"react\";\r\n\r\nconst useFormState = (initialValues = {}) => {\r\n const [input, setInput] = useState(initialValues)\r\n\r\n const setInputData = useCallback((name, value) => {\r\n setInput(() => Object.assign({}, {...input}, {[name]: value}))\r\n }, [input])\r\n\r\n return [input, setInputData]\r\n}\r\n\r\n\r\nconst useDrag = () => {\r\n\r\n}\r\n\r\n\r\n\r\n//这个hook很有意思,怎么样保存return出去的那个组件的数据呢\r\n// function usePopContainer(props) {\r\n// const dragRef = useRef()\r\n// const [offset, setOffset] = useState({x: 0, y: 0})\r\n// const [draggable, setDraggable] = useState(false)\r\n// const handleMouseDown = e => {\r\n// e.stopPropagation()\r\n// setDraggable(true)\r\n// setOffset({\r\n// x: e.clientX - dragRef.current['getBoundingClientRect']().x,\r\n// y: e.clientY - dragRef.current['getBoundingClientRect']().y\r\n// })\r\n// }\r\n//\r\n// const handleMouseUp = () => setDraggable(false)\r\n// const handleMouseMove = e => {\r\n// if (draggable) {\r\n// dragRef.current.style.transform = `translate(${e.clientX - offset.x}px,${e.clientY - offset.y}px)`\r\n// console.log(dragRef.current.style.transform)\r\n// }\r\n// }\r\n// return {\r\n// PopContainer: props => (\r\n// <div className=\"drag-Container\"\r\n// onMouseUp={() => handleMouseUp()}\r\n// onMouseMove={(e) => handleMouseMove(e)}>\r\n// <div className=\"Pop-container\"\r\n// ref={dragRef}\r\n// >\r\n// {props.children}\r\n// </div>\r\n// </div>\r\n// ),\r\n// dragMouseDown: e => handleMouseDown(e)\r\n// }\r\n// }\r\n\r\nexport {\r\n useFormState,\r\n useDrag,\r\n}\r\n","import './App.css';\r\nimport DataCenter from \"./dataCenter/Root\";\r\nimport IndexAdmin from \"./page/indexAdmin\";\r\nimport Index from \"./page/index\";\r\nimport Login from \"./page/login/login\";\r\nimport {HashRouter as Router, Route, Switch} from \"react-router-dom\";\r\nimport {useEffect} from \"react\";\r\n\r\nfunction App() {\r\n useEffect(() => {\r\n console.log(\"%c+\",\r\n `font-size: 1px;\r\n padding: 122px 217px;\r\n background-image: url(https://yun.duiba.com.cn/spark/assets/cc8da992b527b3cd24da7df9a5be8b2361c2e549.jpg);\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n color: transparent;`);\r\n }, [])\r\n return (\r\n <Router>\r\n <DataCenter>\r\n <Switch>\r\n <Route exact path='/login' component={Login}/>\r\n <Route exact path='/' component={Index}/>\r\n <Route exact path='/admin' component={IndexAdmin}/>\r\n </Switch>\r\n </DataCenter>\r\n </Router>\r\n );\r\n}\r\n\r\nexport default App;\r\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport {ConfigProvider} from 'antd';\r\n// 由于 antd 组件的默认文案是英文,所以需要修改为中文\r\nimport zhCN from 'antd/lib/locale/zh_CN';\r\nimport moment from 'moment';\r\nimport 'moment/locale/zh-cn';\r\nimport 'antd/dist/antd.css';\r\nimport './index.css';\r\nimport App from './App';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nmoment.locale('zh-cn');\r\nReactDOM.render(\r\n <React.StrictMode>\r\n <ConfigProvider locale={zhCN}>\r\n <App />\r\n </ConfigProvider>\r\n </React.StrictMode>,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}
\ No newline at end of file
const apiConfig = {
domain: 'https://' + window.location.hostname + ':3000',
// domain: 'http://127.0.0.1:3001',
domain: 'http://' + window.location.hostname + ':3000',
}
export default apiConfig
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