-
平面向量基本定理及坐标表示
+
{{ item.raw.name }}
-
1.6MB
- |
-
古诗词诵读 > 静女
+
{{formatFileSize(item.raw.size)}}
+
+
@@ -99,6 +99,23 @@ export default {
}, 1000)
},
methods: {
+ formatFileSize(fileSize) {
+ if (fileSize < 1024) {
+ return fileSize + 'B'
+ } else if (fileSize < 1024 * 1024) {
+ let temp = fileSize / 1024
+ temp = temp.toFixed(2)
+ return temp + 'KB'
+ } else if (fileSize < 1024 * 1024 * 1024) {
+ let temp = fileSize / (1024 * 1024)
+ temp = temp.toFixed(2)
+ return temp + 'MB'
+ } else {
+ let temp = fileSize / (1024 * 1024 * 1024)
+ temp = temp.toFixed(2)
+ return temp + 'GB'
+ }
+ },
onSuccess(res, file, files) {
this.removeUploadFile(file.uid)
file.callback(res)
@@ -119,7 +136,7 @@ export default {
this.uploadDatas = this.uploadNow.fileData
this.getFileMD5(this.uploadNow.raw).then((md5) => {
this.uploadDatas.md5 = md5
- this.$refs.talk_uploader_core.handleStart(this.uploadNow.raw)
+ // this.$refs.talk_uploader_core.handleStart(this.uploadNow.raw)
this.$refs.talk_uploader_core.submit()
})
}
@@ -158,10 +175,15 @@ export default {
.talk-uploader-body {
width: 100%;
height: 300px;
+ overflow: auto;
}
.prepare-body-main-item {
position: relative;
- .prepare-uploader-progress{
+ 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;
background-color: #83bb67;
@@ -171,10 +193,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/utils/date.js b/src/renderer/src/utils/date.js
new file mode 100644
index 0000000..4a1025d
--- /dev/null
+++ b/src/renderer/src/utils/date.js
@@ -0,0 +1,78 @@
+// 判断是不是昨天
+const isYestday = (date) => {
+ var yesterday = new Date(new Date() - 1000 * 60 * 60 * 24)
+ return (
+ yesterday.getYear() === date.getYear() &&
+ yesterday.getMonth() === date.getMonth() &&
+ yesterday.getDate() === date.getDate()
+ )
+}
+
+// 判断是不是今年
+const isYear = (date) => {
+ return date.getYear() === new Date().getYear()
+}
+
+//将时间转为 yy/mm/dd hh:mm:ss
+const formatDateTime = (date) => {
+ if (!date) {
+ return ''
+ }
+ var dateObject = new Date(date)
+ var y = dateObject.getFullYear()
+ var m = dateObject.getMonth() + 1
+ m = m < 10 ? '0' + m : m
+ var d = dateObject.getDate()
+ d = d < 10 ? '0' + d : d
+ var h = dateObject.getHours()
+ h = h < 10 ? '0' + h : h
+ var minute = dateObject.getMinutes()
+ minute = minute < 10 ? '0' + minute : minute
+ var second = dateObject.getSeconds()
+ second = second < 10 ? '0' + second : second
+ return y + '/' + m + '/' + d + ' ' + h + ':' + minute + ':' + second
+}
+
+/**
+ * 将时间戳转换为文本描述。
+ *
+ * 此函数旨在将时间戳转换为更易读的文本格式,以便用户可以更直观地理解时间信息。
+ * 通过传入的时间,函数将生成对应的时间文本,如"刚刚"、"5分钟前"、"昨天"等。
+ * 如果设置了simple参数为true,则会返回更简单的23/06/25,只显示年月日,如果是今年只返回月和日。
+ *
+ * @param {string} timeStamp - 需要转换的时间。
+ * @param {boolean} simple - 是否使用简单的格式,默认为false,如:23/06/25、06/25。
+ * @returns {string} - 转换后的时间文本。
+ */
+export const toTimeText = (timeStamp, simple) => {
+ if (!timeStamp) {
+ return ''
+ }
+ var dateTime = new Date(timeStamp)
+ var currentTime = Date.parse(new Date()) //当前时间
+ var timeDiff = currentTime - dateTime //与当前时间误差
+ var timeText = ''
+ if (timeDiff <= 60000) {
+ //一分钟内
+ timeText = '刚刚'
+ } else if (timeDiff > 60000 && timeDiff < 3600000) {
+ //1小时内
+ timeText = Math.floor(timeDiff / 60000) + '分钟前'
+ } else if (timeDiff >= 3600000 && timeDiff < 86400000 && !isYestday(dateTime)) {
+ //今日
+ timeText = formatDateTime(dateTime).substr(11, 5)
+ } else if (isYestday(dateTime)) {
+ //昨天
+ timeText = '昨天' + formatDateTime(dateTime).substr(11, 5)
+ } else if (isYear(dateTime)) {
+ //今年
+ timeText = formatDateTime(dateTime).substr(5, simple ? 5 : 14)
+ } else {
+ //不属于今年
+ timeText = formatDateTime(dateTime)
+ if (simple) {
+ timeText = timeText.substr(2, 8)
+ }
+ }
+ return timeText
+}
diff --git a/src/renderer/src/utils/resourceDict.js b/src/renderer/src/utils/resourceDict.js
new file mode 100644
index 0000000..eb9275c
--- /dev/null
+++ b/src/renderer/src/utils/resourceDict.js
@@ -0,0 +1,65 @@
+export const tabs = [
+ {
+ label: '平台资源',
+ value: '平台'
+ },
+ {
+ label: '校本资源',
+ value: '校本'
+ }
+]
+
+
+// 资源格式
+export const resourceFormat = [
+ {
+ label: 'word',
+ value: 'word'
+ },
+ {
+ label: 'ppt',
+ value: 'ppt'
+ },
+ {
+ label: 'mp3',
+ value: 'mp3'
+ },
+ {
+ label: 'mp4',
+ value: 'mp4'
+ },
+ {
+ label: 'JPG',
+ value: 'jpg'
+ },
+ {
+ label: 'PNG',
+ value: 'png'
+ },
+ {
+ label: 'RAR',
+ value: 'rar'
+ },
+ {
+ label: 'TXT',
+ value: 'txt'
+ }
+]
+
+// 资源类型
+export const resourceType = [
+ {
+ label: '素材',
+ value: '素材'
+ },
+
+ {
+ label: '课件',
+ value: '课件'
+ },
+
+ {
+ label: '教案',
+ value: '教案'
+ }
+]
\ No newline at end of file
diff --git a/src/renderer/src/utils/ruoyi.js b/src/renderer/src/utils/ruoyi.js
index b20ee53..e51b433 100644
--- a/src/renderer/src/utils/ruoyi.js
+++ b/src/renderer/src/utils/ruoyi.js
@@ -245,3 +245,15 @@ export function getNormalPath(p) {
export function blobValidate(data) {
return data.type !== 'application/json'
}
+
+// 获取文件后缀
+export const getFileSuffix = (filename) => {
+ return filename.substring(filename.lastIndexOf('.') + 1);
+}
+
+// 获取文件名(不带后缀)
+export const getFileName = (filename) => {
+ // 使用正则表达式匹配文件名部分(不包括后缀)
+ if(!filename) return
+ return filename.replace(/\.[^/.]+$/, "");
+}
diff --git a/src/renderer/src/views/prepare/index.vue b/src/renderer/src/views/prepare/index.vue
index be39e8a..95b991c 100644
--- a/src/renderer/src/views/prepare/index.vue
+++ b/src/renderer/src/views/prepare/index.vue
@@ -1,6 +1,6 @@
-
-
+
+
@@ -8,62 +8,84 @@
- 2024-07-11 16:15
+
+ 2024-07-11 16:15
同步成功
云同步
+
+
+
+ 云同步
+
-
- 上传资料
-
- 新建课件
- crear
+ 上传资料
+ 新建课件
-
+
-
平面向量基本定理及坐标表示
+
{{ item.fileShowName }}
-
+
已同步
+ >
+
+
+ 已同步
+
+ |
+
{{ formatFileSize(item.fileSize) }}
+ |
+
{{ toTimeText(item.uploadTime, true) }}
+ |
+
+ {{ item.levelFirstName + (item.levelSecondName ? ' > ' + item.levelSecondName : '') + (item.levelThirdNmae ? ' > ' + item.levelThirdNmae : '') }}
- |
-
1.6MB
- |
-
2024-07-10
- |
-
古诗词诵读 > 静女
-
+
-
+
+
+
+
+
+ 重命名
+
+
+
+
+
+ 删除
+
+
+
+
+
+ 下载
+
+
+
+
@@ -73,35 +95,47 @@
+
-
-
\ No newline at end of file
diff --git a/src/renderer/src/views/resource/container/resoure-list.vue b/src/renderer/src/views/resource/container/resoure-list.vue
index 4bdc1c1..253b9a7 100644
--- a/src/renderer/src/views/resource/container/resoure-list.vue
+++ b/src/renderer/src/views/resource/container/resoure-list.vue
@@ -1,43 +1,46 @@
-
+
+
-
-
+
-
-
-
+
-
第1课《春》课后巩固练习 2022-2023学年部编版语文七年级上册
+
{{ item.fileShowName }}
- 教案
- PPT
- 2024-07-13上传
-
- 下载3次
+ {{ item.fileFlag }}
+ {{ getFileSuffix(item.fileName) }}
+ {{ item.uploadTime }}上传
+
-
+
-
+
编辑
-
+
删除
-
@@ -48,24 +51,73 @@
-
+
+
+
@@ -82,6 +134,7 @@ const handleCurrentChange = () => { }
justify-content: center;
font-size: 12px;
cursor: pointer;
+
.iconfont {
margin-right: 5px;
color: #a2a2a2;
@@ -97,6 +150,7 @@ const handleCurrentChange = () => { }
.resource-list {
.list-item {
+ flex: 1;
padding: 10px 20px;
border-bottom: solid #f1f1f1 1px;
display: flex;
diff --git a/src/renderer/src/views/resource/container/resoure-search.vue b/src/renderer/src/views/resource/container/resoure-search.vue
index ca94867..c7ae293 100644
--- a/src/renderer/src/views/resource/container/resoure-search.vue
+++ b/src/renderer/src/views/resource/container/resoure-search.vue
@@ -3,7 +3,8 @@
{{ item.text
+ :type="sourceStore.query.fileSource == item.value ? 'primary' : ''"
+ @click="sourceStore.changeTab(item.value)">{{ item.label
}}
@@ -12,46 +13,30 @@
-
-
- {{
- item.text }}
+ {{
+ item.label }}
-
-
-
- 新建资源
+
-
\ No newline at end of file
diff --git a/src/renderer/src/views/resource/index.vue b/src/renderer/src/views/resource/index.vue
index 882a5c1..bba9458 100644
--- a/src/renderer/src/views/resource/index.vue
+++ b/src/renderer/src/views/resource/index.vue
@@ -1,33 +1,94 @@
-
+
+
-
-
-
-
-
-
-
+
+
+
+
+ 新建资源
+
+
+
+
+
+
@@ -38,6 +99,7 @@ const nodeClick = (data) => {
height: 100%;
.page-right {
+ min-width: 0;
flex: 1;
margin-left: 20px;
height: 100%;
@@ -45,5 +107,14 @@ const nodeClick = (data) => {
border-radius: 10px;
box-shadow: 0px 0px 20px 0px rgba(99, 99, 99, 0.06);
}
+ .icon-jiahao {
+ font-size: 12px;
+ margin-right: 3px;
+ font-weight: bold;
+ }
+}
+.create-btn{
+ font-size: 13px;
+ padding: 5px 13px;
}
diff --git a/src/renderer/src/views/resource/store.js b/src/renderer/src/views/resource/store.js
index 8dbfb95..efd6d76 100644
--- a/src/renderer/src/views/resource/store.js
+++ b/src/renderer/src/views/resource/store.js
@@ -1,76 +1,82 @@
import { defineStore } from 'pinia'
+import { getSmarttalkPage } from '@/api/file/index'
+import { tabs, resourceType, resourceFormat } from '@/utils/resourceDict'
+import useUserStore from '@/store/modules/user'
-const tabs = [
- {
- type: '',
- text: '平台资源',
- id: 1
- },
- {
- type: '',
- text: '校本资源',
- id: 2
- }
-]
+const userStore = useUserStore()
-const typeList = [
+const resourceTypeList = [
{
- type: '',
- text: '全部',
- id: 1
+ label: '全部',
+ value: ''
},
- {
- type: '',
- text: '素材',
- id: 2
- },
-
- {
- type: '',
- text: '课件',
- id: 4
- },
-
- {
- type: '',
- text: '教案',
- id: 6
- },
-
+ ...resourceType
]
-// 资源格式
-const formatList = [
+const resourceFormatList = [
{
label: '资源格式',
- value: -1
+ value: ''
},
- {
- label: 'word',
- value: 1
- },
- {
- label: 'ppt',
- value: 2
- }
+ ...resourceFormat
]
+
+// 校本资源为学校ID
+tabs.forEach(item =>{
+ if( item.label == "校本资源"){
+ item.value = userStore.user.deptId
+ }
+})
+
+const structQuery = {
+ pageNum: 1,
+ pageSize: 10
+}
+
export default defineStore('resource', {
state: () => ({
tabs,
- typeList,
- formatList,
- curTab: 1,
- curType: 1,
+ resourceTypeList,
+ resourceFormatList,
+
curFormat: -1,
searchKey: '',
// 新建资源
isCreate: false,
+ loading: false,
+ //查询条件
+ query: {
+ fileSource: '平台',
+ fileSuffix: '',
+ fileFlag: '',
+ fileRoot: '资源',
+ orderByColumn: 'uploadTime',
+ isAsc: 'desc',
+ ...structQuery
+ },
+ result: {
+ list: [],
+ total: 0
+ }
}),
actions: {
+ handleQuery() {
+ try {
+ this.loading = true
+ getSmarttalkPage(this.query).then((res) => {
+ this.result.total = res.total
+ this.result.list = res.rows
+ })
+ } finally {
+ this.loading = false
+ }
+ },
changeTab(val) {
- this.curTab = val
+ this.query.fileSource = val
+ this.handleQuery()
},
changeType(val) {
- this.curType = val
+ this.query.fileFlag = val
+ this.handleQuery()
}
}
})