优化分盘设置

This commit is contained in:
24kycj
2024-11-13 19:09:09 +08:00
parent ffbb6af84e
commit f7dcd2ddd5
4 changed files with 120 additions and 29 deletions
@@ -27,8 +27,7 @@ export default {
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped>
.list {
height: 374px;
max-height: 374px;
height: 100%;
overflow-x: hidden;
overflow-y: auto;
&::-webkit-scrollbar {
+99 -25
View File
@@ -245,13 +245,7 @@ export default {
label: '2024-10-17',
has_copy_task: false,
has_print_task: false,
ass_task: [
{
ass_task_index: 1,
task_size: 0,
path_file: []
}
],
ass_task: [],
task_freq: 1
},
testForm: {
@@ -327,17 +321,7 @@ export default {
csvIsExist: false,
// 高级设置
setShow: false,
setForm: {
priority: 2,
stage: 0,
speed: 0,
isCheck: true,
isDel: true,
isClose: true,
isArrow: true,
isPrint: true,
disk: 1
},
setForm: {},
priorityList: [
{
value: 1,
@@ -396,7 +380,17 @@ export default {
name: '文件修改时间',
desc: '按照文件修改时间进行升序分盘'
}
]
],
diskSize: 512*1024*1024
}
},
watch: {
'$store.state.user.setForm': {
handler(val) {
this.setForm = val
},
deep: true,
immediate: true
}
},
computed: {
@@ -538,24 +532,102 @@ export default {
// this.flag_cont_up = false
},
// 保存
workSave() {},
workSave() {
},
// 提交
workSubmit() {
let that = this
const files = this.$refs.files.getLists()
let task_size = 0
let fileList = []
for (let key in files) {
that.form.ass_task[0].path_file.push(files[key].path)
task_size+=files[key].size
let file = {...files[key]}
try {
const fileStats = fs.statSync(files[key].path);
file.mtime = fileStats.mtimeMs
fileList.push(file)
} catch (error) {
console.error('Error reading file:', error);
}
that.form.ass_task[0].task_size = task_size
if (that.form.json_file === ''&& that.form.ass_task[0].path_file.length === 0) {
}
if (that.form.json_file === ''&& fileList.length === 0) {
this.$message({
message: '请上传作业文件',
type: 'warning'
})
return
}
if (this.setForm.isArrow) {
let overList = []
for (let i = 0; i < fileList.length; i++) {
if (fileList[i].size > this.diskSize) {
overList.push(fileList[i].name)
}
}
if (overList.length) {
const fileNames = overList.join(',')
this.$notify({
message: `文件${fileNames} 大小超过磁盘容量${this.$filterSize(this.diskSize)},请重新选择文件!`,
type: 'warning'
})
return
}
if (this.setForm.disk === 2) {
// 按文件名排序
fileList.sort((a, b) => {
if (a.name.toLowerCase() < b.name.toLowerCase()) return -1;
if (a.name.toLowerCase() > b.name.toLowerCase()) return 1;
return 0;
});
} else if (this.setForm.disk === 3) {
// 按最后修改时间排序
fileList.sort((a, b) => a.mtime - b.mtime);
} else {
// 按文件大小排序
fileList.sort((a, b) => a.size - b.size);
}
let index = 1
let total_size = 0
let task = {
ass_task_index: index,
task_size: 0,
path_file: []
}
for (let i = 0; i < fileList.length; i++) {
if (fileList[i].size > this.diskSize) {
this.$notify({
message: `文件${fileList[i].name} 大小超过设备容量,请重新选择文件!`,
type: 'warning'
})
return
}
total_size += fileList[i].size
if (total_size > this.diskSize) {
that.form.ass_task.push(task)
total_size = 0
index++
task = {
ass_task_index: index,
task_size: 0,
path_file: []
}
}
task.path_file.push(fileList[i].path)
task.task_size += fileList[i].size
if (i === fileList.length - 1) that.form.ass_task.push(task)
}
} else {
let task = {
ass_task_index: 1,
task_size: 0,
path_file: []
}
for (let i = 0; i < fileList.length; i++) {
task.path_file.push(fileList[i].path)
task.task_size += fileList[i].size
}
this.form.ass_task.push(task)
}
that.submitLoading = true
that.testForm.req_info = that.form
console.log(that.form, that.testForm)
@@ -740,9 +812,11 @@ export default {
// 高级设置
setCancel() {
this.setShow = false
this.setForm = this.$store.state.user.setForm
},
setSure() {
this.setShow = false
this.$store.commit('setData', {name: 'setForm', data: this.setForm})
}
}
}
+17 -2
View File
@@ -1,13 +1,25 @@
// import { login, logout, getInfo } from '@/api/login'
import { getToken, setToken, removeToken } from '../../utils/auth'
const setFormDefault = {
priority: 2,
stage: 0,
speed: 0,
isCheck: true,
isDel: true,
isClose: true,
isArrow: true,
isPrint: true,
disk: 1
}
const user = {
state: {
token: getToken(),
name: 'admin',
avatar:
'https://image.baidu.com/search/detail?ct=503316480&z=&tn=baiduimagedetail&ipn=d&word=admin&step_word=&lid=8980923753406439282&ie=utf-8&in=&cl=2&lm=-1&st=-1&hd=&latest=&copyright=&cs=1902119677,258344230&os=3526618670,2431782315&simid=3426573763,123057590&pn=11&rn=1&di=7410818322373017601&ln=1928&fr=&fmq=1730735680169_R&ic=&s=undefined&se=&sme=&tab=0&width=&height=&face=undefined&is=0,0&istype=2&ist=&jit=&bdtype=0&spn=0&pi=0&gsm=1e&objurl=https%3A%2F%2Fclearhub.tech%2Fwp-content%2Fuploads%2F2018%2F11%2F12.png&rpstart=0&rpnum=0&adpicid=0&nojc=undefined&dyTabStr=MCwzLDEsMiwxMyw3LDYsNSwxMiw5',
roles: ['admin']
roles: ['admin'],
// 高级设置
setForm: setFormDefault,
},
mutations: {
@@ -22,6 +34,9 @@ const user = {
},
SET_ROLES: (state, roles) => {
state.roles = roles
},
setData: (state, obj) => {
state[obj.name] = obj.data
}
},
+3
View File
@@ -80,6 +80,9 @@ export default {
if (valid) {
this.loading = true
setToken('data.token')
if (localStorage.getItem('setForm')) {
this.$store.commit('setData', {name: 'setForm', data: localStorage.getItem('setForm')})
}
this.$store.commit('SET_TOKEN', 'data.token')
this.$store.dispatch('chat/initWebSocket') // 初始化websocket
setTimeout(() => {