diff --git a/electron.vite.config.mjs b/electron.vite.config.mjs
index 12cab0b..fe59903 100644
--- a/electron.vite.config.mjs
+++ b/electron.vite.config.mjs
@@ -22,8 +22,8 @@ export default defineConfig({
server: {
proxy: {
'/dev-api': {
- // target: 'http://27.128.240.72:7865',
- target: 'http://192.168.2.52:7863',
+ target: 'http://27.128.240.72:7865',
+ // target: 'http://192.168.2.52:7863',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api/, '')
},
diff --git a/src/renderer/src/assets/iconfont/iconfont.css b/src/renderer/src/assets/iconfont/iconfont.css
index be9b576..529bfc4 100644
--- a/src/renderer/src/assets/iconfont/iconfont.css
+++ b/src/renderer/src/assets/iconfont/iconfont.css
@@ -1,9 +1,9 @@
@font-face {
font-family: "iconfont"; /* Project id 2794390 */
- src: url('iconfont.woff2?t=1720953486579') format('woff2'),
- url('iconfont.woff?t=1720953486579') format('woff'),
- url('iconfont.ttf?t=1720953486579') format('truetype'),
- url('iconfont.svg?t=1720953486579#iconfont') format('svg');
+ src: url('iconfont.woff2?t=1721179711733') format('woff2'),
+ url('iconfont.woff?t=1721179711733') format('woff'),
+ url('iconfont.ttf?t=1721179711733') format('truetype'),
+ url('iconfont.svg?t=1721179711733#iconfont') format('svg');
}
.iconfont {
@@ -14,6 +14,10 @@
-moz-osx-font-smoothing: grayscale;
}
+.icon-yidongdaozu:before {
+ content: "\e67d";
+}
+
.icon-shanchu:before {
content: "\e852";
}
diff --git a/src/renderer/src/assets/iconfont/iconfont.js b/src/renderer/src/assets/iconfont/iconfont.js
index 8bc5b23..6058761 100644
--- a/src/renderer/src/assets/iconfont/iconfont.js
+++ b/src/renderer/src/assets/iconfont/iconfont.js
@@ -1 +1 @@
-window._iconfont_svg_string_2794390='',function(l){var h=(h=document.getElementsByTagName("script"))[h.length-1],v=h.getAttribute("data-injectcss"),h=h.getAttribute("data-disable-injectsvg");if(!h){var c,a,t,z,p,i=function(h,v){v.parentNode.insertBefore(h,v)};if(v&&!l.__iconfont__svg__cssinject__){l.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(h){console&&console.log(h)}}c=function(){var h,v=document.createElement("div");v.innerHTML=l._iconfont_svg_string_2794390,(v=v.getElementsByTagName("svg")[0])&&(v.setAttribute("aria-hidden","true"),v.style.position="absolute",v.style.width=0,v.style.height=0,v.style.overflow="hidden",v=v,(h=document.body).firstChild?i(v,h.firstChild):h.appendChild(v))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(c,0):(a=function(){document.removeEventListener("DOMContentLoaded",a,!1),c()},document.addEventListener("DOMContentLoaded",a,!1)):document.attachEvent&&(t=c,z=l.document,p=!1,d(),z.onreadystatechange=function(){"complete"==z.readyState&&(z.onreadystatechange=null,M())})}function M(){p||(p=!0,t())}function d(){try{z.documentElement.doScroll("left")}catch(h){return void setTimeout(d,50)}M()}}(window);
\ No newline at end of file
+window._iconfont_svg_string_2794390='',function(l){var h=(h=document.getElementsByTagName("script"))[h.length-1],v=h.getAttribute("data-injectcss"),h=h.getAttribute("data-disable-injectsvg");if(!h){var c,a,t,z,p,i=function(h,v){v.parentNode.insertBefore(h,v)};if(v&&!l.__iconfont__svg__cssinject__){l.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(h){console&&console.log(h)}}c=function(){var h,v=document.createElement("div");v.innerHTML=l._iconfont_svg_string_2794390,(v=v.getElementsByTagName("svg")[0])&&(v.setAttribute("aria-hidden","true"),v.style.position="absolute",v.style.width=0,v.style.height=0,v.style.overflow="hidden",v=v,(h=document.body).firstChild?i(v,h.firstChild):h.appendChild(v))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(c,0):(a=function(){document.removeEventListener("DOMContentLoaded",a,!1),c()},document.addEventListener("DOMContentLoaded",a,!1)):document.attachEvent&&(t=c,z=l.document,p=!1,d(),z.onreadystatechange=function(){"complete"==z.readyState&&(z.onreadystatechange=null,M())})}function M(){p||(p=!0,t())}function d(){try{z.documentElement.doScroll("left")}catch(h){return void setTimeout(d,50)}M()}}(window);
\ No newline at end of file
diff --git a/src/renderer/src/assets/iconfont/iconfont.json b/src/renderer/src/assets/iconfont/iconfont.json
index f1a76dc..d630aec 100644
--- a/src/renderer/src/assets/iconfont/iconfont.json
+++ b/src/renderer/src/assets/iconfont/iconfont.json
@@ -5,6 +5,13 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
+ {
+ "icon_id": "1207918",
+ "name": "移动到组",
+ "font_class": "yidongdaozu",
+ "unicode": "e67d",
+ "unicode_decimal": 59005
+ },
{
"icon_id": "8288874",
"name": "删除",
diff --git a/src/renderer/src/assets/iconfont/iconfont.svg b/src/renderer/src/assets/iconfont/iconfont.svg
index ede225e..69fe782 100644
--- a/src/renderer/src/assets/iconfont/iconfont.svg
+++ b/src/renderer/src/assets/iconfont/iconfont.svg
@@ -14,6 +14,8 @@
/>
+
+
diff --git a/src/renderer/src/assets/iconfont/iconfont.ttf b/src/renderer/src/assets/iconfont/iconfont.ttf
index 585b7fa..f179db3 100644
Binary files a/src/renderer/src/assets/iconfont/iconfont.ttf and b/src/renderer/src/assets/iconfont/iconfont.ttf differ
diff --git a/src/renderer/src/assets/iconfont/iconfont.woff b/src/renderer/src/assets/iconfont/iconfont.woff
index f4d0eb5..06b4847 100644
Binary files a/src/renderer/src/assets/iconfont/iconfont.woff and b/src/renderer/src/assets/iconfont/iconfont.woff differ
diff --git a/src/renderer/src/assets/iconfont/iconfont.woff2 b/src/renderer/src/assets/iconfont/iconfont.woff2
index f3d2708..280df28 100644
Binary files a/src/renderer/src/assets/iconfont/iconfont.woff2 and b/src/renderer/src/assets/iconfont/iconfont.woff2 differ
diff --git a/src/renderer/src/components/choose-textbook/index.vue b/src/renderer/src/components/choose-textbook/index.vue
index 82b0483..a9db674 100644
--- a/src/renderer/src/components/choose-textbook/index.vue
+++ b/src/renderer/src/components/choose-textbook/index.vue
@@ -6,7 +6,6 @@
-
@@ -14,7 +13,6 @@
{{ node.label }}
-
@@ -87,14 +85,25 @@ const getSubjectContent = async () => {
entpcourseedituserid: userId,
pageSize: 500
}
- const { rows } = await listEvaluation(params)
- evaluationList.value = rows
+
+ let data;
+ if (localStorage.getItem('evaluationList')) {
+ evaluationList.value = JSON.parse(localStorage.getItem('evaluationList'))
+ data = evaluationList.value
+ }
+ else {
+ const { rows } = await listEvaluation(params)
+ localStorage.setItem('evaluationList', JSON.stringify(rows))
+ evaluationList.value = rows
+ data = rows
+ }
+
//获取教材版本
await getSubject()
//上册
- volumeOne.value = rows.filter(item => item.level == 1 && item.semester == '上册')
+ volumeOne.value = data.filter(item => item.level == 1 && item.semester == '上册')
//下册
- volumeTwo.value = rows.filter(item => item.level == 1 && item.semester == '下册')
+ volumeTwo.value = data.filter(item => item.level == 1 && item.semester == '下册')
getTreeData()
}
@@ -175,7 +184,7 @@ const findParentByChildId = (treeData, targetNodeId) => {
}
// 如果当前节点没有匹配的子节点,则递归检查当前节点的子节点
if (node.children) {
- let parentNode = findParentNode(node.children, targetNodeId);
+ let parentNode = findParentByChildId(node.children, targetNodeId);
if (parentNode) {
return parentNode;
}
@@ -214,8 +223,15 @@ const transData = (data) => {
//获取教材
const getSubject = async () => {
- const { rows } = await listEvaluation({ itemkey: "version", pageSize: 500 })
- subjectList.value = rows.filter(item => item.edustage == edustage && item.edusubject == edusubject && isHaveUnit(item.id))
+ if (localStorage.getItem('subjectList')) {
+ subjectList.value = JSON.parse(localStorage.getItem('subjectList'))
+ }
+ else {
+ const { rows } = await listEvaluation({ itemkey: "version", pageSize: 500 })
+ subjectList.value = rows.filter(item => item.edustage == edustage && item.edusubject == edusubject && isHaveUnit(item.id))
+ localStorage.setItem('subjectList', JSON.stringify(subjectList.value))
+ }
+
// 默认第一个
curBookName.value = subjectList.value[0].itemtitle
curBookId.value = subjectList.value[0].id
@@ -292,8 +308,7 @@ onMounted(() => {
}
.book-list {
- padding-top: 45px;
- padding-left: 10px;
+ padding: 45px 10px 0 10px;
flex: 1;
}
}
@@ -349,12 +364,12 @@ onMounted(() => {
:deep(.el-tree-node) {
.el-tree-node__content {
height: 40px;
+ border-radius: 10px;
&:hover {
background-color: #eaf3ff;
}
}
-
}
.tree-label {
@@ -364,7 +379,7 @@ onMounted(() => {
}
:deep(.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content) {
- background-color: #d9e8fe !important;
+ background-color: #eaf3ff !important;
color: #409EFF
}
\ No newline at end of file
diff --git a/src/renderer/src/components/move-file/index.vue b/src/renderer/src/components/move-file/index.vue
new file mode 100644
index 0000000..71c7837
--- /dev/null
+++ b/src/renderer/src/components/move-file/index.vue
@@ -0,0 +1,384 @@
+
+
+
+ {{ title }}
+
+
+
+
+ {{ curBookName }}
+
+
+
+
+
+
+ {{ node.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ item.itemtitle }}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/renderer/src/components/upload-dialog/index.vue b/src/renderer/src/components/upload-dialog/index.vue
index ea64fd6..61df734 100644
--- a/src/renderer/src/components/upload-dialog/index.vue
+++ b/src/renderer/src/components/upload-dialog/index.vue
@@ -90,7 +90,7 @@ const hanleFileChange = (file) => {
const fileType = file.raw.type
if (!(audioTypes.includes(fileType) || videoTypes.includes(fileType) || wordTypes.includes(fileType) || pptTypes.includes(fileType) || pdfTypes.includes(fileType) || zipTypes.includes(fileType) || imgTypes.includes(fileType) || textTypes.includes(fileType))) {
- ElMessage.error('文件格式错误! 请上传图片、音频、视频、word、ppt、pdf、text、zip文件!')
+ ElMessage.error('文件格式错误! 请上传图片、音频、视频、word、ppt、pdf、txt、zip文件!')
return false
}
// 验证文件大小
@@ -100,7 +100,7 @@ const hanleFileChange = (file) => {
return false
}
if (file.status === 'ready') {
-
+
// 给一个默认的fileData
file.fileData = {
fileFlag: '课件',
@@ -110,7 +110,6 @@ const hanleFileChange = (file) => {
}
}
-
// 删除
const delFile = (index) => {
fileList.value.splice(index, 1)
diff --git a/src/renderer/src/layout/components/Uploader.vue b/src/renderer/src/layout/components/Uploader.vue
index 27e8a7a..67dfdfd 100644
--- a/src/renderer/src/layout/components/Uploader.vue
+++ b/src/renderer/src/layout/components/Uploader.vue
@@ -189,6 +189,10 @@ export default {
}
.prepare-body-main-item {
position: relative;
+ display: flex;
+ align-items: center;
+ border-bottom: 1px solid rgba(131, 131, 127, 0.17);
+ padding: 10px 0;
.prepare-uploader-progress {
height: 100%;
position: absolute;
@@ -199,10 +203,7 @@ export default {
&:hover {
background-color: rgba(144, 147, 153, 0.2);
}
- display: flex;
- align-items: center;
- border-bottom: 1px solid rgba(131, 131, 127, 0.17);
- padding: 10px 0;
+
.prepare-body-main-item-icon {
width: 80px;
}
diff --git a/src/renderer/src/store/modules/user.js b/src/renderer/src/store/modules/user.js
index 8066ded..df770b7 100644
--- a/src/renderer/src/store/modules/user.js
+++ b/src/renderer/src/store/modules/user.js
@@ -84,6 +84,7 @@ const useUserStore = defineStore(
this.token = ''
this.roles = []
this.permissions = []
+ localStorage.clear()
removeToken()
resolve()
}).catch(error => {
diff --git a/src/renderer/src/views/resource/container/resoure-list.vue b/src/renderer/src/views/resource/container/resoure-list.vue
index 9f80df6..253b9a7 100644
--- a/src/renderer/src/views/resource/container/resoure-list.vue
+++ b/src/renderer/src/views/resource/container/resoure-list.vue
@@ -37,6 +37,10 @@
下载
+
+
+ 移动至
+
@@ -54,10 +58,12 @@
:page-sizes="[10, 20, 30, 50]" background layout="total, sizes, prev, pager, next, jumper"
:total="sourceStore.result.total" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
+