Compare commits

...

71 Commits
master ... zxm

Author SHA1 Message Date
zhangxiaomeng b1ebccc9b9 修改 1 year ago
zhangxiaomeng 0a924eee3d 修改 1 year ago
zhangxiaomeng f8617c7993 nogit 1 year ago
zhangxiaomeng 1484f8b981 计算模块接入python计算模块 1 year ago
zhangxiaomeng a6b8bdd33e 计算模块接入python计算模块 1 year ago
zhangxiaomeng e3a352cdb0 计算模块新增修改删除 1 year ago
zhangxiaomeng 1702a594c5 计算模块新增修改删除 1 year ago
zhangxiaomeng 021d7beebb 分页 1 year ago
zhangxiaomeng 8585f24744 配置文件 1 year ago
zhangxiaomeng 5ecdf1f45d 视频资源详情 1 year ago
zhangxiaomeng db77891222 图谱页下拉框 1 year ago
zhangxiaomeng 8853134932 生成报告 1 year ago
zhangxiaomeng 3bd8927bea 图谱中删除实体 1 year ago
zhangxiaomeng 2631ed6b77 图谱中删除实体 1 year ago
zhangxiaomeng 72dbf817bc 图谱新增节点以及修改节点 1 year ago
zhangxiaomeng 25c4a213b1 图谱新增节点以及修改节点 1 year ago
zhangxiaomeng d471ade04f 视频详情页修改 1 year ago
zhangxiaomeng fe32f48d2d 视频详情页修改 1 year ago
zhangxiaomeng c53d062dc3 目录 1 year ago
zhangxiaomeng 7f71c7bda1 代码格式整理 1 year ago
zhangxiaomeng cf1feae328 视频查询修改 1 year ago
zhangxiaomeng 92ddc0ea4c 视频查询修改 1 year ago
zhangxiaomeng bc8315fa95 视频查询修改 1 year ago
zhangxiaomeng ad64b963ad 视频查询删除 1 year ago
zhangxiaomeng 3b3446ca57 登录注册 1 year ago
zhangxiaomeng 1e0512e2b6 登录注册 1 year ago
zhangxiaomeng 3ee4481192 登录注册 1 year ago
zhangxiaomeng 4db987cc9e 页面 1 year ago
zhangxiaomeng d2030ba753 页面 1 year ago
zhangxiaomeng ff5d723ed6 页面 1 year ago
zhangxiaomeng 6922bf4cbf 图谱界面 1 year ago
zhangxiaomeng 4bb64f7f7c 图谱界面 1 year ago
zhangxiaomeng a9bd062cd5 图谱界面 1 year ago
zhangxiaomeng 2816dcee11 文章上传以及修改 1 year ago
zhangxiaomeng 65176b8345 文章上传以及修改 1 year ago
zhangxiaomeng dffe6cfd74 文章上传以及修改 1 year ago
zhangxiaomeng 0df18242a2 文章详情获取 1 year ago
zhangxiaomeng b5ae69c4c5 文章详情获取 1 year ago
zhangxiaomeng ce7b03a240 文章详情获取 1 year ago
zhangxiaomeng 0b0d4cf067 关系分析 1 year ago
zhangxiaomeng 6e8e782169 跳转 1 year ago
zhangxiaomeng 127fd54ea3 跳转 1 year ago
zhangxiaomeng 920e316820 跳转 1 year ago
zhangxiaomeng d55f43c208 nogit 1 year ago
linsheng0116 c5a218bce1 2025.2.5 1 year ago
linsheng0116 f8643ac5e4 Merge branch 'zxm' of http://124.70.32.114:3100/zhangxiaomeng/kechengfuzhu into wzx 1 year ago
zhangxiaomeng 90ee29e347 跳转 1 year ago
linsheng0116 3d80fdcb92 Merge branch 'zxm' of http://124.70.32.114:3100/zhangxiaomeng/kechengfuzhu into wzx 1 year ago
linsheng0116 947569acd2 2025.1.24 弹窗和查询 1 year ago
zhangxiaomeng 98535cbf98 跳转 1 year ago
zhangxiaomeng daafbcf7ce 跳转 1 year ago
zhangxiaomeng 968335a477 跳转 1 year ago
zhangxiaomeng f9dbae1e86 跳转 1 year ago
zhangxiaomeng 6fb76b229a 登录注册接口对接 1 year ago
linsheng0116 819b85e864 Merge branch 'zxm' of http://124.70.32.114:3100/zhangxiaomeng/kechengfuzhu into wzx 1 year ago
zhangxiaomeng 572e60cf3e 图文资源界面 1 year ago
zhangxiaomeng 20458c10b5 图文资源界面 1 year ago
zhangxiaomeng 3bff53abcb 初始化界面 1 year ago
zhangxiaomeng 5a643cc308 初始化界面 1 year ago
linsheng0116 260a34c27f Merge branch 'zxm' of http://124.70.32.114:3100/zhangxiaomeng/kechengfuzhu into wzx 1 year ago
linsheng0116 400bba01b4 Merge remote-tracking branch 'origin/wzx' into wzx 1 year ago
linsheng0116 a9f07318f7 2025.1.20 新增实体和计算器 1 year ago
zhangxiaomeng 47231e3fc9 初始化界面 1 year ago
linsheng0116 b7573f3a59 2025.1.20 新增实体 1 year ago
linsheng0116 7c463c8bf2 2025.1.8 修改 1 year ago
linsheng0116 a6111acfd3 2025.1.8 修改 1 year ago
linsheng0116 146f99df07 2025.1.8 修改 1 year ago
linsheng0116 a547dab6b4 2025.1.8 导入 1 year ago
linsheng0116 b236456169 2025.1.8 导入 1 year ago
linsheng0116 8123c60db3 2025.1.8 新增项目基础 1 year ago
linsheng0116 cd2e116c78 2025.1.8 界面 1 year ago
  1. 1
      .idea/compiler.xml
  2. 5
      .idea/jarRepositories.xml
  3. 2
      .idea/misc.xml
  4. 124
      .idea/uiDesigner.xml
  5. 1
      .idea/vcs.xml
  6. 2
      kcui/README.md
  7. 14
      kcui/package.json
  8. 2
      kcui/public/index.html
  9. 43
      kcui/src/App.vue
  10. 61
      kcui/src/api/baogao.js
  11. 38
      kcui/src/api/export.js
  12. 59
      kcui/src/api/file.js
  13. 86
      kcui/src/api/kcInfo.js
  14. 17
      kcui/src/api/login.js
  15. 13
      kcui/src/api/pythonJs.js
  16. 9
      kcui/src/api/twdelete.js
  17. 8
      kcui/src/api/upload.js
  18. 27
      kcui/src/assets/defaultConfig.js
  19. BIN
      kcui/src/assets/img/Inicon.png
  20. BIN
      kcui/src/assets/img/baoGaoClose.png
  21. BIN
      kcui/src/assets/img/baoGaoDown.png
  22. BIN
      kcui/src/assets/img/baoGaoDown1.png
  23. BIN
      kcui/src/assets/img/baoGaoEdit.png
  24. BIN
      kcui/src/assets/img/baoGaoEdit1.png
  25. BIN
      kcui/src/assets/img/baoGaobg.png
  26. BIN
      kcui/src/assets/img/baoJian.png
  27. BIN
      kcui/src/assets/img/circle1.png
  28. BIN
      kcui/src/assets/img/delete.png
  29. BIN
      kcui/src/assets/img/exportIn.png
  30. BIN
      kcui/src/assets/img/foot.png
  31. BIN
      kcui/src/assets/img/graphDown.png
  32. BIN
      kcui/src/assets/img/graphInput.png
  33. BIN
      kcui/src/assets/img/graphUp.png
  34. BIN
      kcui/src/assets/img/graphbg.png
  35. BIN
      kcui/src/assets/img/head.png
  36. BIN
      kcui/src/assets/img/headLogin.png
  37. BIN
      kcui/src/assets/img/headMulu.png
  38. BIN
      kcui/src/assets/img/history.png
  39. BIN
      kcui/src/assets/img/history1.png
  40. BIN
      kcui/src/assets/img/jiantou.png
  41. BIN
      kcui/src/assets/img/jiantouchoose.png
  42. BIN
      kcui/src/assets/img/jsbg.jpg
  43. BIN
      kcui/src/assets/img/jsbutton.png
  44. BIN
      kcui/src/assets/img/jsjt.png
  45. BIN
      kcui/src/assets/img/juxing.png
  46. BIN
      kcui/src/assets/img/left1.png
  47. BIN
      kcui/src/assets/img/left12.png
  48. BIN
      kcui/src/assets/img/left2.png
  49. BIN
      kcui/src/assets/img/left22.png
  50. BIN
      kcui/src/assets/img/left3.png
  51. BIN
      kcui/src/assets/img/left32.png
  52. BIN
      kcui/src/assets/img/left4.png
  53. BIN
      kcui/src/assets/img/left42.png
  54. BIN
      kcui/src/assets/img/left5.png
  55. BIN
      kcui/src/assets/img/left52.png
  56. BIN
      kcui/src/assets/img/left6.png
  57. BIN
      kcui/src/assets/img/left62.png
  58. BIN
      kcui/src/assets/img/leftBox.png
  59. BIN
      kcui/src/assets/img/leftBox1.png
  60. BIN
      kcui/src/assets/img/littleBox.png
  61. BIN
      kcui/src/assets/img/loginBg.png
  62. BIN
      kcui/src/assets/img/loginBox.png
  63. BIN
      kcui/src/assets/img/loginButton.png
  64. BIN
      kcui/src/assets/img/look.png
  65. BIN
      kcui/src/assets/img/mulubg.png
  66. BIN
      kcui/src/assets/img/muluchoose.png
  67. BIN
      kcui/src/assets/img/mululist.png
  68. BIN
      kcui/src/assets/img/optionBg.png
  69. BIN
      kcui/src/assets/img/optionSelect.png
  70. BIN
      kcui/src/assets/img/pageChoose.png
  71. BIN
      kcui/src/assets/img/password.png
  72. BIN
      kcui/src/assets/img/rightBox.png
  73. BIN
      kcui/src/assets/img/rightHead.png
  74. BIN
      kcui/src/assets/img/rightList.png
  75. BIN
      kcui/src/assets/img/search.png
  76. BIN
      kcui/src/assets/img/shengcheng.png
  77. BIN
      kcui/src/assets/img/shengchengicon.png
  78. BIN
      kcui/src/assets/img/spbg.jpg
  79. BIN
      kcui/src/assets/img/twCircle.png
  80. BIN
      kcui/src/assets/img/twbg.jpg
  81. BIN
      kcui/src/assets/img/twbg.png
  82. BIN
      kcui/src/assets/img/twbg1.jpg
  83. BIN
      kcui/src/assets/img/typeHead.png
  84. BIN
      kcui/src/assets/img/typeHeadChoose.png
  85. BIN
      kcui/src/assets/img/typePicTest.png
  86. BIN
      kcui/src/assets/img/typePicTestChoose.png
  87. BIN
      kcui/src/assets/img/userInfo.png
  88. BIN
      kcui/src/assets/img/xuan.png
  89. BIN
      kcui/src/assets/img/zcBox.png
  90. BIN
      kcui/src/assets/img/zcButton.png
  91. BIN
      kcui/src/assets/img/zcClass.png
  92. BIN
      kcui/src/assets/img/zcName.png
  93. BIN
      kcui/src/assets/img/zcPassword.png
  94. BIN
      kcui/src/assets/img/zcType.png
  95. BIN
      kcui/src/assets/img/zcTypeDown.png
  96. BIN
      kcui/src/assets/img/zcZh.png
  97. BIN
      kcui/src/assets/img/zcc.png
  98. 15
      kcui/src/assets/js/graphvis.min.20241008.js
  99. 333
      kcui/src/components/Editor.vue
  100. 28
      kcui/src/components/Foot.vue

1
.idea/compiler.xml

@ -7,6 +7,7 @@
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="woka" />
<module name="spring-test" />
</profile>
</annotationProcessing>
</component>

5
.idea/jarRepositories.xml

@ -8,6 +8,11 @@
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="http://maven.aliyun.com/nexus/content/repositories/central/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>

2
.idea/misc.xml

@ -5,8 +5,10 @@
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
<option value="$MAVEN_REPOSITORY$/org/springframework/spring-test/5.0.8.RELEASE/spring-test-5.0.8.RELEASE.pom" />
</list>
</option>
<option name="workspaceImportForciblyTurnedOn" value="true" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />

124
.idea/uiDesigner.xml

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

1
.idea/vcs.xml

@ -2,6 +2,5 @@
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
<mapping directory="$PROJECT_DIR$/ui" vcs="Git" />
</component>
</project>

2
kcui/README.md

@ -1,4 +1,4 @@
# testvue
# 课程辅助
## Project setup
```

14
kcui/package.json

@ -1,5 +1,5 @@
{
"name": "testvue",
"name": "kcfz",
"version": "0.1.0",
"private": true,
"scripts": {
@ -10,9 +10,18 @@
"dependencies": {
"axios": "^1.7.9",
"core-js": "^3.8.3",
"docx": "^9.2.0",
"docxtemplater": "^3.60.0",
"element-ui": "^2.15.14",
"file-saver": "^2.0.5",
"html-docx-js": "^0.3.1",
"js-cookie": "^3.0.5",
"package-name": "^0.1.0",
"pizzip": "^3.1.8",
"quill": "1.3.7",
"relation-graph": "^2.2.11",
"vue": "^2.6.14",
"vue-quill-editor": "^3.0.6",
"vue-router": "^3.5.1"
},
"devDependencies": {
@ -23,6 +32,9 @@
"@vue/cli-service": "~5.0.0",
"eslint": "^7.32.0",
"eslint-plugin-vue": "^8.0.3",
"less": "^4.2.0",
"less-loader": "^12.2.0",
"sass": "^1.86.0",
"vue-template-compiler": "^2.6.14"
},
"eslintConfig": {

2
kcui/public/index.html

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
<title>课程辅助</title>
</head>
<body>
<noscript>

43
kcui/src/App.vue

@ -16,6 +16,47 @@ export default {
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
height: 100%;
margin: 0;
padding: 0;
}
body{
margin: 0;
padding: 0;
height: 100%;
}
html{
margin: 0;
padding: 0;
height: 100%;
}
.el-pager li {
padding: 0 !important;
background: transparent !important;
font-size: 12px;
min-width: 35.5px;
height: 28px;
line-height: 28px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
text-align: center;
margin: 0px 0px !important;
border-radius: 0px !important;
border: 1px solid #018ffd;
color: #FFFFFF !important;
}
.el-pagination.is-background .btn-next, .el-pagination.is-background .btn-prev{
background-color: transparent !important;
color: #FFFFFF !important;
border: 1px solid #018ffd;
margin: 0 1vw !important;
}
.el-pagination.is-background .el-pager li:not(.disabled):hover {
color: #1fe5ff !important;;
}
.el-pagination.is-background .el-pager li:not(.disabled).active {
background-color: #018ffd !important;
}
</style>

61
kcui/src/api/baogao.js

@ -0,0 +1,61 @@
import request from '@/utils/request';
import {getToken} from "@/utils/auth";
export function getBaoGaoInfo(params) {
return request({
url: '/baoGao/getBaoGaoInfo',
method: 'post',
data:params,
headers: {
'Authorization': 'Bearer '+ getToken() // 将 token 放在请求头中
}
})
}
export function exportToWord(params) {
return request({
url: '/baoGao/exportToWord',
method: 'post',
data:params,
headers: {
'Authorization': 'Bearer '+ getToken() // 将 token 放在请求头中
}
})
}
export function getAllHistory(params) {
return request({
url: '/baoGao/getAllHistory',
method: 'post',
data:params,
headers: {
'Authorization': 'Bearer '+ getToken() // 将 token 放在请求头中
}
})
}
export function downLoadBaoGao(id) {
return request({
url: '/baoGao/downLoadBaoGao?id='+id,
method: 'get',
headers: {
'Authorization': 'Bearer '+ getToken() // 将 token 放在请求头中
}
})
}
export function insertBaoGao(params) {
return request({
url: '/baoGao/insertBaoGao',
method: 'post',
data:params,
headers: {
'Authorization': 'Bearer '+ getToken() // 将 token 放在请求头中
}
})
}

38
kcui/src/api/export.js

@ -0,0 +1,38 @@
import request from '@/utils/request';
import {getToken} from "@/utils/auth";
export function exportAll(data) {
return request({
url: '/export/exportAll',
method: 'post',
data:data,
headers: {
'Authorization': 'Bearer '+ getToken() // 将 token 放在请求头中
}
})
}
export function getFileId() {
return request({
url: '/file/getFileId',
method: 'get',
headers: {
'Authorization': 'Bearer '+ getToken() // 将 token 放在请求头中
}
})
}
export function getFileIdData() {
return request({
url: '/export/getFileIdData',
method: 'get',
headers: {
'Authorization': 'Bearer '+ getToken() // 将 token 放在请求头中
}
})
}

59
kcui/src/api/file.js

@ -0,0 +1,59 @@
import request from '@/utils/request';
import {getToken} from "@/utils/auth";
export function addFile(file, config = {}) {
const formData = new FormData();
formData.append('file', file);
// 合并默认配置与传入的配置
const defaultConfig = {
headers: {'Authorization': 'Bearer ' + getToken()},
};
const finalConfig = {...defaultConfig, ...config};
return request({
url: '/file/addFile',
method: 'post',
data: formData,
...finalConfig
});
}
export function addNode(data) {
return request({
url: '/file/addNodeNew',
method: 'post',
data:data
})
}
export function getFileIdByDocId(data) {
return request({
url: '/file/getFileIdByDocId',
method: 'post',
data:data
})
}
export function uploadAndExecuteSql(file, config = {}) {
const formData = new FormData();
formData.append('sqlFile', file);
// 合并默认配置与传入的配置
const defaultConfig = {
headers: {'Authorization': 'Bearer ' + getToken()},
};
const finalConfig = {...defaultConfig, ...config};
return request({
url: '/file/uploadAndExecuteSql',
method: 'post',
data: formData,
...finalConfig
});
}

86
kcui/src/api/kcInfo.js

@ -0,0 +1,86 @@
import request from '@/utils/request';
import {getToken} from "@/utils/auth";
export function getDocList(data) {
return request({
url: '/kcDoc/getDocList',
method: 'post',
data:data,
headers: {
'Authorization': 'Bearer '+ getToken() // 将 token 放在请求头中
}
})
}
export function getSpList(data) {
return request({
url: '/kcDoc/getSpList',
method: 'post',
data:data,
headers: {
'Authorization': 'Bearer '+ getToken() // 将 token 放在请求头中
}
})
}
export function getDhList(data) {
return request({
url: '/kcDoc/getDhList',
method: 'post',
data:data,
headers: {
'Authorization': 'Bearer '+ getToken() // 将 token 放在请求头中
}
})
}
export function getJsList(data) {
return request({
url: '/kcDoc/getJsList',
method: 'post',
data:data,
headers: {
'Authorization': 'Bearer '+ getToken() // 将 token 放在请求头中
}
})
}
export function editInfo(data) {
return request({
url: '/kcDoc/editInfo',
method: 'post',
data:data,
headers: {
'Authorization': 'Bearer '+ getToken() // 将 token 放在请求头中
}
})
}
export function getInfo(params) {
return request({
url: '/kcDoc/getInfo',
method: 'get',
params,
headers: {
'Authorization': 'Bearer '+ getToken() // 将 token 放在请求头中
}
})
}
export function editInfoGraph(data) {
return request({
url: '/kcDoc/editInfoGraph',
method: 'post',
data:data,
headers: {
'Authorization': 'Bearer '+ getToken() // 将 token 放在请求头中
}
})
}

17
kcui/src/api/login.js

@ -1,13 +1,24 @@
import request from "@/utils/request";
// 登录方法
export function userLogin() {
export function doLogin(data) {
return request({
url: '/user/doLogin',
method: 'get',
url: '/login/doLogin',
method: 'post',
data: data
})
}
export function registered(data) {
return request({
url: '/login/registered',
method: 'post',
data: data
})
}
export function test() {
return request({

13
kcui/src/api/pythonJs.js

@ -0,0 +1,13 @@
import request from '@/utils/request';
import {getToken} from "@/utils/auth";
export function dbDLC(data) {
return request({
url: '/pythonJs/dbDLC',
method: 'post',
data:data,
headers: {
'Authorization': 'Bearer '+ getToken() // 将 token 放在请求头中
}
})
}

9
kcui/src/api/twdelete.js

@ -0,0 +1,9 @@
import request from '@/utils/request';
export function twdelete(id){
return request({
url: `/twdelete/${id}`, // 使用模板字符串来包含变量
method: 'delete',
});
}

8
kcui/src/api/upload.js

@ -8,3 +8,11 @@ export const uploadInfo = (params) => {
data: params,
});
};
export const uploadVideo = (params) => {
return request({
url: '/api/updateload/uploadVideo',
method: 'post',
data: params,
});
};

27
kcui/src/assets/defaultConfig.js

@ -1,5 +1,6 @@
export const config = {
background:'40,47,183',
background:'255,255,255',
// background:'40,47,183',
node: { //节点的默认配置
label: { //标签配置
show: false, //是否显示
@ -8,7 +9,31 @@ export const config = {
textPosition: 'Bottom_Center' //文字位置 Top_Center,Bottom_Center,Middle_Right,Middle_Center
},
shape: 'circle',
// shape: 'none',
// render: function(node, ctx) {
// // 绘制主圆形
// ctx.beginPath();
// ctx.arc(node.x, node.y, node.size/2, 0, Math.PI * 2);
// ctx.fillStyle = `rgb(${node.color})`;
// ctx.fill();
//
// // 绘制下方方框
// const boxHeight = 20;
// const boxWidth = node.size * 1.5;
// ctx.beginPath();
// ctx.rect(node.x - boxWidth/2, node.y + node.size/2 + 5, boxWidth, boxHeight);
// ctx.strokeStyle = 'rgb(100,100,100)';
// ctx.lineWidth = 2;
// ctx.stroke();
//
// // 在方框中添加文字
// ctx.fillStyle = 'rgb(20,20,20)';
// ctx.textAlign = 'center';
// ctx.textBaseline = 'middle';
// ctx.fillText(node.properties.boxText || '', node.x, node.y + node.size/2 + 5 + boxHeight/2);
// },
showLabel:false,
},
link: { //连线的默认配置
label: { //连线标签

BIN
kcui/src/assets/img/Inicon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

BIN
kcui/src/assets/img/baoGaoClose.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

BIN
kcui/src/assets/img/baoGaoDown.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

BIN
kcui/src/assets/img/baoGaoDown1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

BIN
kcui/src/assets/img/baoGaoEdit.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

BIN
kcui/src/assets/img/baoGaoEdit1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

BIN
kcui/src/assets/img/baoGaobg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
kcui/src/assets/img/baoJian.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
kcui/src/assets/img/circle1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
kcui/src/assets/img/delete.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

BIN
kcui/src/assets/img/exportIn.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
kcui/src/assets/img/foot.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
kcui/src/assets/img/graphDown.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

BIN
kcui/src/assets/img/graphInput.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 B

BIN
kcui/src/assets/img/graphUp.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 B

BIN
kcui/src/assets/img/graphbg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

BIN
kcui/src/assets/img/head.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
kcui/src/assets/img/headLogin.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
kcui/src/assets/img/headMulu.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 882 B

BIN
kcui/src/assets/img/history.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
kcui/src/assets/img/history1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
kcui/src/assets/img/jiantou.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

BIN
kcui/src/assets/img/jiantouchoose.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 B

BIN
kcui/src/assets/img/jsbg.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
kcui/src/assets/img/jsbutton.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 B

BIN
kcui/src/assets/img/jsjt.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 774 B

BIN
kcui/src/assets/img/juxing.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 B

BIN
kcui/src/assets/img/left1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
kcui/src/assets/img/left12.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
kcui/src/assets/img/left2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
kcui/src/assets/img/left22.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
kcui/src/assets/img/left3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
kcui/src/assets/img/left32.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
kcui/src/assets/img/left4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
kcui/src/assets/img/left42.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
kcui/src/assets/img/left5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
kcui/src/assets/img/left52.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
kcui/src/assets/img/left6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
kcui/src/assets/img/left62.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
kcui/src/assets/img/leftBox.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
kcui/src/assets/img/leftBox1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
kcui/src/assets/img/littleBox.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B

BIN
kcui/src/assets/img/loginBg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

BIN
kcui/src/assets/img/loginBox.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
kcui/src/assets/img/loginButton.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
kcui/src/assets/img/look.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 662 B

BIN
kcui/src/assets/img/mulubg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 933 KiB

BIN
kcui/src/assets/img/muluchoose.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
kcui/src/assets/img/mululist.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 KiB

BIN
kcui/src/assets/img/optionBg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 948 B

BIN
kcui/src/assets/img/optionSelect.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 B

BIN
kcui/src/assets/img/pageChoose.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1007 B

BIN
kcui/src/assets/img/password.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
kcui/src/assets/img/rightBox.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
kcui/src/assets/img/rightHead.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
kcui/src/assets/img/rightList.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 KiB

BIN
kcui/src/assets/img/search.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 618 B

BIN
kcui/src/assets/img/shengcheng.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
kcui/src/assets/img/shengchengicon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

BIN
kcui/src/assets/img/spbg.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
kcui/src/assets/img/twCircle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 B

BIN
kcui/src/assets/img/twbg.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 971 KiB

BIN
kcui/src/assets/img/twbg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

BIN
kcui/src/assets/img/twbg1.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 971 KiB

BIN
kcui/src/assets/img/typeHead.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
kcui/src/assets/img/typeHeadChoose.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
kcui/src/assets/img/typePicTest.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
kcui/src/assets/img/typePicTestChoose.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
kcui/src/assets/img/userInfo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
kcui/src/assets/img/xuan.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
kcui/src/assets/img/zcBox.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
kcui/src/assets/img/zcButton.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
kcui/src/assets/img/zcClass.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
kcui/src/assets/img/zcName.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
kcui/src/assets/img/zcPassword.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
kcui/src/assets/img/zcType.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 894 B

BIN
kcui/src/assets/img/zcTypeDown.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

BIN
kcui/src/assets/img/zcZh.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
kcui/src/assets/img/zcc.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 413 B

15
kcui/src/assets/js/graphvis.min.20241008.js

@ -2622,7 +2622,7 @@
}
}
else {
console.log(this.radius)
return (
(x - this.cx) * (x - this.cx) + (y - this.cy) * (y - this.cy) <
this.radius * this.scaleX * this.radius * this.scaleX
@ -4900,6 +4900,7 @@
ctx.beginPath();
ctx.rect(this.x, this.y, this.width, this.headerHeight);
ctx.closePath();
(ctx.fillStyle = `rgba(${this.headerColor},${this.headerAlpha})`),
ctx.fill();
var lineWidth = this.borderWidth;
@ -5086,14 +5087,16 @@
borderWidth: 0,
borderColor: null,
},
shape: "circle",
color: "30,160,255",
shape: "none",
// color: "30,160,255,0.2",
color: "30,160,255,0.01",
borderColor: "20,20,20",
borderAlpha: 1,
borderAlpha: 10,
borderWidth: 0,
borderRadius: 0,
lineDash: [0],
alpha: 1,
alpha: 10,
size: 0,
width: 60,
height: 60,
@ -5433,6 +5436,7 @@
self.scene.add(node);
self.nodes.push(node);
nodeIdMapNode[n.id] = node;
});
var source, target, link;
(data.links || []).forEach(function (l) {
@ -5755,6 +5759,7 @@
};
VisualGraph.prototype.showNodeRightMenu = function (event, _node) {
var self = this;
self.config["rightMenu"]["nodeMenu"].show(event, self, _node);
if (self.config.hasOwnProperty("rightMenu")) {
if (self.config["rightMenu"].hasOwnProperty("nodeMenu")) {
var nodeShow = self.config["rightMenu"]["nodeMenu"]["show"];

333
kcui/src/components/Editor.vue

@ -0,0 +1,333 @@
<template>
<div>
<el-upload
:action="uploadUrl"
:before-upload="handleBeforeUpload"
:on-success="handleUploadSuccess"
:on-error="handleUploadError"
name="file"
:show-file-list="false"
:headers="headers"
style="display: none"
ref="upload"
v-if="this.type == 'url'"
>
</el-upload>
<div class="editor" ref="editor" :style="styles"></div>
</div>
</template>
<script>
import Quill from "quill";
import "quill/dist/quill.core.css";
import "quill/dist/quill.snow.css";
import "quill/dist/quill.bubble.css";
import {getToken} from "@/utils/auth";
export default {
// eslint-disable-next-line vue/multi-word-component-names
name: "Editor",
props: {
/* 编辑器的内容 */
value: {
type: String,
default: "",
},
/* 高度 */
height: {
type: Number,
default: null,
},
/* 最小高度 */
minHeight: {
type: Number,
default: null,
},
maxHeigth:{
type: Number,
default: null,
},
/* 只读 */
readOnly: {
type: Boolean,
default: false,
},
/* 上传文件大小限制(MB) */
fileSize: {
type: Number,
default: 5,
},
/* 类型(base64格式、url格式) */
type: {
type: String,
default: "url",
}
},
data() {
return {
uploadUrl:"http://127.0.0.1:10035/fileUpdate/upload", //
headers: {
Authorization: "Bearer " + getToken()
},
Quill: null,
currentValue: "",
options: {
theme: "snow",
bounds: document.body,
debug: "warn",
modules: {
//
toolbar: [
["bold", "italic", "underline", "strike"], // 线 线
["blockquote", "code-block"], //
[{list: "ordered"}, {list: "bullet"}], //
[{indent: "-1"}, {indent: "+1"}], //
[{size: ["small", false, "large", "huge"]}], //
[{header: [1, 2, 3, 4, 5, 6, false]}], //
[{color: []}, {background: []}], //
[{align: []}], //
["clean"], //
["link", "image", "video"] //
],
},
placeholder: "请输入内容",
readOnly: this.readOnly,
},
};
},
computed: {
styles() {
let style = {};
if (this.minHeight) {
style.minHeight = `${this.minHeight}px`;
}
if (this.maxHeigth) {
style.maxHeigth = `${this.maxHeigth}px`;
}
if (this.height) {
style.height = `${this.height}px`;
}
return style;
},
},
watch: {
value: {
handler(val) {
if (val !== this.currentValue) {
this.currentValue = val === null ? "" : val;
if (this.Quill) {
this.Quill.pasteHTML(this.currentValue);
}
}
},
immediate: true,
},
},
mounted() {
this.init();
},
beforeDestroy() {
this.Quill = null;
},
methods: {
init() {
const editor = this.$refs.editor;
this.Quill = new Quill(editor, this.options);
//
if (this.type == 'url') {
let toolbar = this.Quill.getModule("toolbar");
toolbar.addHandler("image", (value) => {
if (value) {
this.$refs.upload.$children[0].$refs.input.click();
} else {
this.quill.format("image", false);
}
});
}
this.Quill.pasteHTML(this.currentValue);
// eslint-disable-next-line no-unused-vars
this.Quill.on("text-change", (delta, oldDelta, source) => {
const html = this.$refs.editor.children[0].innerHTML;
const text = this.Quill.getText();
const quill = this.Quill;
this.currentValue = html;
this.$emit("input", html);
this.$emit("on-change", {html, text, quill});
});
this.Quill.on("text-change", (delta, oldDelta, source) => {
this.$emit("on-text-change", delta, oldDelta, source);
});
this.Quill.on("selection-change", (range, oldRange, source) => {
this.$emit("on-selection-change", range, oldRange, source);
});
this.Quill.on("editor-change", (eventName, ...args) => {
this.$emit("on-editor-change", eventName, ...args);
});
},
//
handleBeforeUpload(file) {
const type = ["image/jpeg", "image/jpg", "image/png", "image/svg"];
const isJPG = type.includes(file.type);
//
if (!isJPG) {
this.$message.error(`图片格式错误!`);
return false;
}
//
if (this.fileSize) {
const isLt = file.size / 1024 / 1024 < this.fileSize;
if (!isLt) {
this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`);
return false;
}
}
return true;
},
// eslint-disable-next-line no-unused-vars
handleUploadSuccess(res, file) {
//
if (res.code == 200) {
//
let quill = this.Quill;
//
let length = quill.getSelection().index;
// this.fileToBase64(file)
// console.log(this.fileToBase64(file))
// res.url
console.log("k------------")
console.log(res.data.url)
this.$emit('child-event', res.data.url); //
quill.insertEmbed(length, "image", res.data.url);
//
quill.setSelection(length + 1);
} else {
this.$message.error("图片插入失败");
}
},
fileToBase64(file) {
return new Promise((resolve, reject) => {
// FileReader
const reader = new FileReader();
// File
reader.readAsDataURL(file);
//
reader.onload = function () {
// base64
const base64String = reader.result.split(",")[1];
// Promise base64
resolve(base64String);
};
//
reader.onerror = function () {
reject(new Error("Failed to load file"));
};
});
},
handleUploadError()
{
this.$message.error("图片插入失败");
}
,
},
}
;
</script>
<style>
.editor, .ql-toolbar {
white-space: pre-wrap !important;
line-height: normal !important;
}
.quill-img {
display: none;
}
.ql-snow .ql-tooltip[data-mode="link"]::before {
content: "请输入链接地址:";
}
.ql-snow .ql-tooltip.ql-editing a.ql-action::after {
border-right: 0px;
content: "保存";
padding-right: 0px;
}
.ql-snow .ql-tooltip[data-mode="video"]::before {
content: "请输入视频地址:";
}
.ql-snow .ql-picker.ql-size .ql-picker-label::before,
.ql-snow .ql-picker.ql-size .ql-picker-item::before {
content: "14px";
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="small"]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="small"]::before {
content: "10px";
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="large"]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="large"]::before {
content: "18px";
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="huge"]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="huge"]::before {
content: "32px";
}
.ql-snow .ql-picker.ql-header .ql-picker-label::before,
.ql-snow .ql-picker.ql-header .ql-picker-item::before {
content: "文本";
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
content: "标题1";
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
content: "标题2";
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
content: "标题3";
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
content: "标题4";
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
content: "标题5";
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
content: "标题6";
}
.ql-snow .ql-picker.ql-font .ql-picker-label::before,
.ql-snow .ql-picker.ql-font .ql-picker-item::before {
content: "标准字体";
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="serif"]::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="serif"]::before {
content: "衬线字体";
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="monospace"]::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="monospace"]::before {
content: "等宽字体";
}
</style>

28
kcui/src/components/Foot.vue

@ -0,0 +1,28 @@
<template>
<div style="width: 100%;height: 5vw;">
<img src="../assets/img/foot.png" style="width: 100%;object-fit: contain;">
</div>
</template>
<script>
export default {
// eslint-disable-next-line vue/multi-word-component-names
name: 'foot',
data() {
return{
}
},
methods:{
},
mounted() {
}
}
</script>
<style scoped>
</style>

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

Loading…
Cancel
Save