first commit

main
expressgy 1 year ago
commit 2961feb2e9
  1. 15
      .eslintrc.cjs
  2. 24
      .gitignore
  3. 13
      index.html
  4. 11240
      package-lock.json
  5. 41
      package.json
  6. 1
      public/vite.svg
  7. 17
      src/App.jsx
  8. 30
      src/main.jsx
  9. 261
      src/scss/style.scss
  10. 7
      vite.config.js

@ -0,0 +1,15 @@
module.exports = {
env: { browser: true, es2020: true },
extends: [
'eslint:recommended',
'plugin:react/recommended',
'plugin:react/jsx-runtime',
'plugin:react-hooks/recommended',
],
parserOptions: { ecmaVersion: 'latest', sourceType: 'module' },
settings: { react: { version: '18.2' } },
plugins: ['react-refresh'],
rules: {
'react-refresh/only-export-components': 'warn',
},
}

24
.gitignore vendored

@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + React</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
</body>
</html>

11240
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -0,0 +1,41 @@
{
"name": "myamis",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"lint": "eslint src --ext js,jsx --report-unused-disable-directives --max-warnings 0",
"preview": "vite preview"
},
"dependencies": {
"@fortawesome/fontawesome-free": "^5.15.3",
"amis": "3.1.1",
"amis-core": "3.1.1",
"amis-editor": "^5.4.1",
"amis-editor-core": "^5.4.1",
"amis-formula": "3.1.1",
"amis-ui": "3.1.1",
"antd": "^5.6.2",
"axios": "0.21.1",
"copy-to-clipboard": "^3.2.0",
"mobx": "4.15.7",
"mobx-react": "6.3.1",
"mobx-state-tree": "3.17.3",
"qs": "6.5.1",
"react": "^16.14.0",
"react-dom": "^16.14.0",
"sass": "^1.63.4"
},
"devDependencies": {
"@types/react": "^18.0.37",
"@types/react-dom": "^18.0.11",
"@vitejs/plugin-react": "^4.0.0",
"eslint": "^8.38.0",
"eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-refresh": "^0.3.4",
"vite": "^4.3.9"
}
}

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

@ -0,0 +1,17 @@
import {Editor} from 'amis-editor'
import { DatePicker } from 'antd';
export default function App(){
const data = {
value:{},
onChange: (value ) => {
console.log(value)
}
}
return (
<div className="Editor-Demo">
<div className="Editor-header"><DatePicker /></div>
<Editor value={data.value} onChange={data.onChange}/>
</div>
)
}

@ -0,0 +1,30 @@
// import React from 'react'
// import ReactDOM from 'react-dom'
//
// ReactDOM.createRoot(document.getElementById('root')).render(
// <React.StrictMode>
// <div>APP</div>
// </React.StrictMode>,
// )
/**
* @file entry of this example.
*/
// import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import '@fortawesome/fontawesome-free/css/all.css';
import '@fortawesome/fontawesome-free/css/v4-shims.css';
import 'amis/lib/themes/cxd.css';
import 'amis/lib/helper.css';
import 'amis/sdk/iconfont.css';
import 'amis-editor-core/lib/style.css';
import './scss/style.scss';
import {setDefaultTheme} from 'amis';
import 'antd/dist/reset.css';
setDefaultTheme('cxd');
// react < 18
ReactDOM.render(<App />, document.getElementById('root'));
// node -v 18.16.0

@ -0,0 +1,261 @@
$editor-default-color: #151b26; // 默认的字体色
$editor-active-color: #2468f2;
$editor-hover-color: #5086f5;
$editor-border-color: #e8e9eb; // 默认的边框色
$default-icon-color: #84868c; // 默认的icon颜色
$active-bg-color: #e6f0ff; // 激活态的背景色
$hover-bg-color: #f7f7f9; // 激活态的背景色
$disabled-color: #b8babf; // 禁用文字颜色
$disabled-bg-color: #f7f7f9; // 禁用背景颜色
html {
font-size: 16px;
}
html,body{
position: relative;
height: 100%;
width: 100%;
margin: 0;
overflow: hidden;
}
.app-wrapper,
.routes-wrapper {
position: relative;
width: 100%;
height: 100%;
}
.navbtn {
float: right;
margin: 3px;
visibility: visible;
}
.a-Tabs--line > .a-Tabs-links > li > a:first-child {
margin-right: 30px;
}
.Editor-Demo {
position: relative;
height: 100vh;
min-height: 510px;
display: flex;
flex-direction: column;
.Editor-header {
flex: 0 0 48px;
position: relative;
background: #fff;
// box-shadow: 0 2px 7px 0 rgba(232,232,232,0.50);
display: flex;
border-bottom: 1px solid $editor-border-color;
box-sizing: border-box;
z-index: 1000;
.editor-header-icon svg,
.shortcut-icon-btn svg {
display: inline-block;
width: 16px;
height: 16px;
}
.Editor-title {
flex: 1 1 565px;
padding: 0 15px;
font-family: PingFangSC-Medium;
font-size: 16px;
font-weight: 500;
letter-spacing: 0;
user-select: none;
display: flex;
justify-content: flex-start;
align-items: center;
}
.Editor-view-mode-group-container {
flex: 0 1 150px;
display: flex;
justify-content: center;
align-items: center;
.Editor-view-mode-group {
font-size: 14px;
font-family: PingFangSC-Regular;
// color: #fff;
letter-spacing: 0;
text-align: center;
width: 100px;
height: 32px;
border-radius: 4px;
font-weight: 400;
background-color: #f2f2f4;
display: flex;
justify-content: center;
align-items: center;
.Editor-view-mode-btn {
user-select: none;
padding: 0;
border-radius: 4px;
width: 40px;
height: 24px;
cursor: pointer;
transition: transform ease-out 0.2s;
display: inline-flex;
justify-content: center;
align-items: center;
svg {
color: $editor-default-color;
}
&:first-child {
margin-right: 12px;
}
&:hover > svg {
color: $editor-active-color;
}
&.is-active {
background: $editor-active-color;
svg {
color: #fff;
}
&:hover {
background: #5086f5;
}
}
}
}
}
.Editor-header-actions {
flex: 1 1 565px;
padding: 0 24px;
font-size: 12px;
white-space: nowrap;
display: flex;
justify-content: flex-end;
align-items: center;
.header-action-item {
margin-left: 18px;
user-select: none;
cursor: pointer;
transition: transform ease-out 0.2s;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
> svg {
width: 16px;
fill: $editor-default-color;
}
&:hover > svg {
fill: $editor-active-color;
}
&.disabled {
cursor: not-allowed;
> svg {
fill: $disabled-color;
}
}
// 历史记录icon单独处理
> svg.icon-editor-history {
color: $editor-default-color;
&:hover {
color: $editor-active-color;
}
&.disabled,
&.disabled:hover {
cursor: not-allowed;
color: $disabled-color;
}
}
}
.header-action-btn {
margin-left: 8px;
user-select: none;
cursor: pointer;
padding: 0 16px;
min-width: 72px;
height: 32px;
font-family: PingFangSC-Regular;
font-size: 12px;
line-height: 20px;
color: #fff;
font-weight: 400;
background: $editor-active-color;
border-color: 1px solid $editor-active-color;
border-radius: 4px;
transition: transform ease-out 0.2s;
display: inline-flex;
justify-content: center;
align-items: center;
&.preview-btn {
color: #151a26;
border: 1px solid #dadbdd;
background: #fff;
border-radius: 4px;
&:hover {
color: $editor-active-color;
border-color: $editor-active-color;
background: #fff;
}
}
&:hover {
color: #fff;
background: $editor-hover-color;
border-color: $editor-hover-color;
}
&.disabled {
cursor: not-allowed;
color: $disabled-color;
background-color: $disabled-bg-color;
border-color: $disabled-bg-color;
}
&.exit-btn {
background-color: #fff;
border: 1px solid #ccc;
color: #332e2e;
&:hover {
color: #fff;
background: #fa541c;
border-color: #fa541c;
}
}
}
.margin-left-space {
margin-left: 30px;
}
}
}
.Editor-inner {
position: relative;
flex: 1 1 auto;
overflow-x: hidden;
overflow-y: auto;
}
}

@ -0,0 +1,7 @@
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react()],
})
Loading…
Cancel
Save