更新任务列表等
This commit is contained in:
@@ -6,7 +6,15 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: 'App'
|
name: 'App',
|
||||||
|
mounted() {
|
||||||
|
if (this.$store.getters.token) {
|
||||||
|
this.$store.dispatch('chat/initWebSocket') // 初始化websocket
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 307 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 235 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 140 KiB |
@@ -164,7 +164,17 @@
|
|||||||
<div v-for="(item, index) in soonList" :key="index" class="flex_box wook_soon_item">
|
<div v-for="(item, index) in soonList" :key="index" class="flex_box wook_soon_item">
|
||||||
<div class="wook_soon_label">{{ item.name }}</div>
|
<div class="wook_soon_label">{{ item.name }}</div>
|
||||||
<div class="wook_soon_input">
|
<div class="wook_soon_input">
|
||||||
<el-input v-model="item.val" placeholder="请输入"></el-input>
|
<div v-if="scope.row.type == 1">
|
||||||
|
<input
|
||||||
|
type="file"
|
||||||
|
accept="image/*"
|
||||||
|
:ref="item.name"
|
||||||
|
:data-name="item.name" />
|
||||||
|
</div>
|
||||||
|
<div v-if="scope.row.type == 3 || scope.row.type == 4 || scope.row.type == 5">
|
||||||
|
<el-input clearable :disabled="csvIsExist" v-model="item.val" placeholder="请输入"></el-input>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div @click="openFile2" v-if="item.type == 3 || item.type == 4 || item.type == 5" class="wook_soon_add">添加字段</div>
|
<div @click="openFile2" v-if="item.type == 3 || item.type == 4 || item.type == 5" class="wook_soon_add">添加字段</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -313,6 +323,8 @@ export default {
|
|||||||
upload_disk: '',
|
upload_disk: '',
|
||||||
soonImg: '',
|
soonImg: '',
|
||||||
showList: true,
|
showList: true,
|
||||||
|
csvIsExist: false,
|
||||||
|
// 高级设置
|
||||||
setShow: false,
|
setShow: false,
|
||||||
setForm: {
|
setForm: {
|
||||||
priority: 2,
|
priority: 2,
|
||||||
@@ -682,26 +694,22 @@ export default {
|
|||||||
this.file_name3 = this.$refs.refFile3.files[0].name
|
this.file_name3 = this.$refs.refFile3.files[0].name
|
||||||
},
|
},
|
||||||
csvLoad() {
|
csvLoad() {
|
||||||
|
let that = this
|
||||||
let selectedFile = this.$refs.refFile2.files[0]
|
let selectedFile = this.$refs.refFile2.files[0]
|
||||||
let reader = new FileReader()
|
let reader = new FileReader()
|
||||||
reader.readAsText(selectedFile)
|
reader.readAsText(selectedFile)
|
||||||
let _this = this
|
|
||||||
reader.onload = function () {
|
reader.onload = function () {
|
||||||
//let flag = true; //校验结果
|
//let flag = true; //校验结果
|
||||||
let first_line = this.result.split('\n')[0].replace('\r', '').split(',') //第一行
|
let first_line = this.result.split('\n')[0].replace('\r', '').split(',') //第一行
|
||||||
let second_line = this.result.split('\n')[1].replace('\r', '').split(',') //第二行
|
let second_line = this.result.split('\n')[1].replace('\r', '').split(',') //第二行
|
||||||
let i = 0
|
let i = 0
|
||||||
for (let item of first_line) {
|
for (let item of first_line) {
|
||||||
_this.$set(_this.form, item, second_line[i])
|
that.$set(that.soonform, item, second_line[i])
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
_this.csvIsExist = true
|
that.csvIsExist = true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
format(percentage) {
|
|
||||||
let mb = (this.size_form * 931.3).toFixed(0)
|
|
||||||
return (this.size / (1024 * 1024)).toFixed(1) + 'MB / ' + mb + 'MB'
|
|
||||||
},
|
|
||||||
genTaskUUID() {
|
genTaskUUID() {
|
||||||
var myDate = new Date()
|
var myDate = new Date()
|
||||||
var dateStr =
|
var dateStr =
|
||||||
|
|||||||
@@ -7,14 +7,15 @@ let isConnect = false
|
|||||||
const getDefaultState = () => {
|
const getDefaultState = () => {
|
||||||
return {
|
return {
|
||||||
reconnections: 0,
|
reconnections: 0,
|
||||||
|
taskList: []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const state = getDefaultState()
|
const state = getDefaultState()
|
||||||
|
|
||||||
const mutations = {
|
const mutations = {
|
||||||
set_client_id: (state, client_id) => {
|
setData: (state, obj) => {
|
||||||
state.client_id = client_id
|
state[obj.name] = obj.data
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,8 +44,10 @@ const actions = {
|
|||||||
// 接收消息
|
// 接收消息
|
||||||
websocketonmessage({ commit, dispatch }, e) {
|
websocketonmessage({ commit, dispatch }, e) {
|
||||||
const data = JSON.parse(e.data) // 转json对象
|
const data = JSON.parse(e.data) // 转json对象
|
||||||
if (data.state) {
|
if (data.resp_name) {
|
||||||
|
if (data.resp_name === 'task_list') {
|
||||||
|
commit('chat/setData', { name: 'taskList', data: data.resp_info.task_list })
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (data.type === 'init') {
|
if (data.type === 'init') {
|
||||||
state.pingNum = 0
|
state.pingNum = 0
|
||||||
|
|||||||
@@ -355,3 +355,122 @@ export function removeClass(ele, cls) {
|
|||||||
ele.className = ele.className.replace(reg, ' ')
|
ele.className = ele.className.replace(reg, ' ')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 乘法
|
||||||
|
* @param arg1
|
||||||
|
* @param arg2
|
||||||
|
* @returns {Number}
|
||||||
|
*/
|
||||||
|
export function accMul(arg1, arg2) {
|
||||||
|
var m = 0
|
||||||
|
const s1 = arg1.toString()
|
||||||
|
const s2 = arg2.toString()
|
||||||
|
try {
|
||||||
|
m += s1.split('.')[1].length
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
m += s2.split('.')[1].length
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
|
return (Number(s1.replace('.', '')) * Number(s2.replace('.', ''))) / Math.pow(10, m)
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 除法
|
||||||
|
* @param arg1
|
||||||
|
* @param arg2
|
||||||
|
* @returns {Number}
|
||||||
|
*/
|
||||||
|
export function accDiv(arg1, arg2) {
|
||||||
|
var t1 = 0
|
||||||
|
var t2 = 0
|
||||||
|
var r1
|
||||||
|
var r2
|
||||||
|
try {
|
||||||
|
t1 = arg1.toString().split('.')[1].length
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
t2 = arg2.toString().split('.')[1].length
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
|
r1 = Number(arg1.toString().replace('.', ''))
|
||||||
|
r2 = Number(arg2.toString().replace('.', ''))
|
||||||
|
return (r1 / r2) * Math.pow(10, t2 - t1)
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 加法
|
||||||
|
* @param arg1
|
||||||
|
* @param arg2
|
||||||
|
* @returns {Number}
|
||||||
|
*/
|
||||||
|
export function accAdd(arg1, arg2) {
|
||||||
|
var r1, r2, m, c
|
||||||
|
try {
|
||||||
|
r1 = arg1.toString().split('.')[1].length
|
||||||
|
} catch (e) {
|
||||||
|
r1 = 0
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
r2 = arg2.toString().split('.')[1].length
|
||||||
|
} catch (e) {
|
||||||
|
r2 = 0
|
||||||
|
}
|
||||||
|
c = Math.abs(r1 - r2)
|
||||||
|
m = Math.pow(10, Math.max(r1, r2))
|
||||||
|
if (c > 0) {
|
||||||
|
var cm = Math.pow(10, c)
|
||||||
|
if (r1 > r2) {
|
||||||
|
arg1 = Number(arg1.toString().replace('.', ''))
|
||||||
|
arg2 = Number(arg2.toString().replace('.', '')) * cm
|
||||||
|
} else {
|
||||||
|
arg1 = Number(arg1.toString().replace('.', '')) * cm
|
||||||
|
arg2 = Number(arg2.toString().replace('.', ''))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
arg1 = Number(arg1.toString().replace('.', ''))
|
||||||
|
arg2 = Number(arg2.toString().replace('.', ''))
|
||||||
|
}
|
||||||
|
return (arg1 + arg2) / m
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 减法
|
||||||
|
* @param arg1
|
||||||
|
* @param arg2
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export function accSub(arg1, arg2) {
|
||||||
|
var r1, r2, m, n
|
||||||
|
try {
|
||||||
|
r1 = arg1.toString().split('.')[1].length
|
||||||
|
} catch (e) {
|
||||||
|
r1 = 0
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
r2 = arg2.toString().split('.')[1].length
|
||||||
|
} catch (e) {
|
||||||
|
r2 = 0
|
||||||
|
}
|
||||||
|
m = Math.pow(10, Math.max(r1, r2))
|
||||||
|
// last modify by deeka
|
||||||
|
// 动态控制精度长度
|
||||||
|
n = r1 >= r2 ? r1 : r2
|
||||||
|
return ((arg1 * m - arg2 * m) / m).toFixed(n)
|
||||||
|
}
|
||||||
|
/** * 文件大小 字节转换单位 * @param size * @returns {string|*} */
|
||||||
|
export const filterSize = (size) => {
|
||||||
|
if (!size) return '0kb';
|
||||||
|
if (size < pow1024(1)) return size + ' B';
|
||||||
|
if (size < pow1024(2)) return (size / pow1024(1)).toFixed(2) + ' KB';
|
||||||
|
if (size < pow1024(3)) return (size / pow1024(2)).toFixed(2) + ' MB';
|
||||||
|
if (size < pow1024(4)) return (size / pow1024(3)).toFixed(2) + ' GB';
|
||||||
|
return (size / pow1024(4)).toFixed(2) + ' TB'
|
||||||
|
}
|
||||||
|
|
||||||
|
export const pow1024 = (num) => {
|
||||||
|
return Math.pow(1024, num)
|
||||||
|
}
|
||||||
@@ -16,12 +16,7 @@
|
|||||||
<div>系统设置</div>
|
<div>系统设置</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="top_left_line"></div>
|
<div class="top_left_line"></div>
|
||||||
<el-switch
|
<el-switch class="top_left_status" v-model="workStatus" active-color="#07C160" inactive-color="#aaa"> </el-switch>
|
||||||
class="top_left_status"
|
|
||||||
v-model="workStatus"
|
|
||||||
active-color="#07C160"
|
|
||||||
inactive-color="#aaa">
|
|
||||||
</el-switch>
|
|
||||||
<div class="flex_box top_left_option">
|
<div class="flex_box top_left_option">
|
||||||
<div class="top_left_text">完成拷贝数:</div>
|
<div class="top_left_text">完成拷贝数:</div>
|
||||||
<div class="top_left_num">9</div>
|
<div class="top_left_num">9</div>
|
||||||
@@ -43,10 +38,10 @@
|
|||||||
<!-- 左侧 -->
|
<!-- 左侧 -->
|
||||||
<div class="device_left">
|
<div class="device_left">
|
||||||
<div class="flex_box device_left_top">
|
<div class="flex_box device_left_top">
|
||||||
<img class="flex_shrink device_img" src="@/assets/images/device1.png" />
|
<img class="flex_shrink device_img" src="@/assets/images/device.png" />
|
||||||
<div class="flex_box flex_row_between device_info">
|
<div class="flex_box flex_row_between device_info">
|
||||||
<div class="device_info_box">
|
<div class="device_info_box">
|
||||||
<div class="device_info_main" :class="{'device_info_main1': infoStatus===1}">
|
<div class="device_info_main" :class="{ device_info_main1: infoStatus === 1 }">
|
||||||
<div class="device_info_item">
|
<div class="device_info_item">
|
||||||
<div class="device_info_text">系统序列号:4F524201</div>
|
<div class="device_info_text">系统序列号:4F524201</div>
|
||||||
<div class="device_info_text">主机名:DGF031</div>
|
<div class="device_info_text">主机名:DGF031</div>
|
||||||
@@ -61,7 +56,7 @@
|
|||||||
<img src="@/assets/images/device4.png" />
|
<img src="@/assets/images/device4.png" />
|
||||||
</div>
|
</div>
|
||||||
<div class="flex_box flex_row_center device_info_option_b">
|
<div class="flex_box flex_row_center device_info_option_b">
|
||||||
<div class="device_info_option_b_text">CD 5张</div>
|
<div class="device_info_option_b_text">CD 5张</div>
|
||||||
<i class="el-icon-caret-bottom"></i>
|
<i class="el-icon-caret-bottom"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -70,7 +65,7 @@
|
|||||||
<img src="@/assets/images/device4.png" />
|
<img src="@/assets/images/device4.png" />
|
||||||
</div>
|
</div>
|
||||||
<div class="flex_box flex_row_center device_info_option_b">
|
<div class="flex_box flex_row_center device_info_option_b">
|
||||||
<div class="device_info_option_b_text">DVD 15张</div>
|
<div class="device_info_option_b_text">DVD 15张</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="device_info_option">
|
<div class="device_info_option">
|
||||||
@@ -85,30 +80,25 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="device_info_right">
|
<div class="device_info_right">
|
||||||
<div @click="infoStatus=0" class="device_info_right_item">
|
<div @click="infoStatus = 0" class="device_info_right_item">
|
||||||
<img v-if="infoStatus===0" src="@/assets/images/Arrow_right_icon.png" />
|
<img v-if="infoStatus === 0" src="@/assets/images/Arrow_right_icon.png" />
|
||||||
<img v-if="infoStatus===1" src="@/assets/images/Arrow_right1_icon.png" />
|
<img v-if="infoStatus === 1" src="@/assets/images/Arrow_right1_icon.png" />
|
||||||
</div>
|
</div>
|
||||||
<div @click="infoStatus=1" class="device_info_right_item">
|
<div @click="infoStatus = 1" class="device_info_right_item">
|
||||||
<img v-if="infoStatus===1" src="@/assets/images/Arrow_left_icon.png" />
|
<img v-if="infoStatus === 1" src="@/assets/images/Arrow_left_icon.png" />
|
||||||
<img v-if="infoStatus===0" src="@/assets/images/Arrow_left1_icon.png" />
|
<img v-if="infoStatus === 0" src="@/assets/images/Arrow_left1_icon.png" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex_box device_status">
|
<div class="flex_box device_status">
|
||||||
<div class="device_status_dot"></div>
|
<div class="device_status_dot"></div>
|
||||||
<div class="device_status_text">{{runText}}</div>
|
<div class="device_status_text">{{ runText }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex_box device_run">
|
<div class="flex_box device_run">
|
||||||
<div class="flex_box device_run_input">
|
<div class="flex_box device_run_input">
|
||||||
<el-select v-model="runVal" placeholder="请选择">
|
<el-select v-model="runVal" placeholder="请选择">
|
||||||
<el-option
|
<el-option v-for="item in runList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
|
||||||
v-for="item in runList"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value">
|
|
||||||
</el-option>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
<el-button @click="handleRun" type="primary" class="device_run_btn">执行</el-button>
|
<el-button @click="handleRun" type="primary" class="device_run_btn">执行</el-button>
|
||||||
@@ -132,7 +122,7 @@
|
|||||||
<div class="device_right_top_content">
|
<div class="device_right_top_content">
|
||||||
<div class="device_right_top_title">21032200009(H)(底部)</div>
|
<div class="device_right_top_title">21032200009(H)(底部)</div>
|
||||||
<div class="flex_box device_right_top_progress">
|
<div class="flex_box device_right_top_progress">
|
||||||
<div class="device_right_top_progress_box" :style="{width: progressW+'%'}"></div>
|
<div class="device_right_top_progress_box" :style="{ width: progressW + '%' }"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="device_right_top_text">15GB可用,共60GB</div>
|
<div class="device_right_top_text">15GB可用,共60GB</div>
|
||||||
<div class="device_right_top_text">状态:插入光盘中</div>
|
<div class="device_right_top_text">状态:插入光盘中</div>
|
||||||
@@ -154,7 +144,10 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="notice_list">
|
<div class="notice_list">
|
||||||
<div v-for="(item, index) in noticeList" :key="index" class="flex_box flex_row_between notice_item">
|
<div v-for="(item, index) in noticeList" :key="index" class="flex_box flex_row_between notice_item">
|
||||||
<div class="notice_content"><span>{{ index+1 }}</span>{{ item.message }}</div>
|
<div class="notice_content">
|
||||||
|
<span>{{ index + 1 }}</span
|
||||||
|
>{{ item.message }}
|
||||||
|
</div>
|
||||||
<div class="notice_time">{{ item.createtime }}</div>
|
<div class="notice_time">{{ item.createtime }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -162,38 +155,79 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 作业队列 -->
|
<!-- 作业队列 -->
|
||||||
<div class="work_box">
|
<div class="work_box">
|
||||||
<div class="flex_box work_top">
|
<div class="flex_box work_top">
|
||||||
<div class="work_top_text">作业列表</div>
|
<div class="work_top_text">作业列表</div>
|
||||||
</div>
|
</div>
|
||||||
<el-table max-height="250" class="work_table" :data="workList" empty-text="暂无作业列表">
|
<el-table max-height="250" class="work_table" :data="taskList" empty-text="暂无作业列表">
|
||||||
<el-table-column type="index" width="50" label="序号"></el-table-column>
|
<el-table-column type="expand">
|
||||||
<el-table-column prop="task_uuid" label="作业ID"></el-table-column>
|
|
||||||
<el-table-column prop="username" label="用户"></el-table-column>
|
|
||||||
<el-table-column prop="DataSource" label="来源"></el-table-column>
|
|
||||||
<el-table-column prop="PrinterType" label="类型">
|
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div class="work_status_box">
|
<el-table max-height="250" :data="scope.row.ass_task">
|
||||||
<div>{{typeList[scope.row.PrinterType]}}</div>
|
<el-table-column width="50" label=""></el-table-column>
|
||||||
</div>
|
<el-table-column type="index" width="80" label="序号">
|
||||||
|
<template slot-scope="child">
|
||||||
|
<div>{{ scope.$index+1 }}_{{ child.$index+1 }}</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="task_label" label="子任务名称"></el-table-column>
|
||||||
|
<el-table-column prop="task_size" label="大小">
|
||||||
|
<template slot-scope="child">
|
||||||
|
<div>{{ filterSize(child.row.task_size) }}</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="start_time" label="开始时间"></el-table-column>
|
||||||
|
<el-table-column prop="finish_time" label="结束时间"></el-table-column>
|
||||||
|
<el-table-column label="进度">
|
||||||
|
<template slot-scope="child">
|
||||||
|
<div class="work_progress">
|
||||||
|
<el-progress :text-inside="true" :percentage="child.row.copy_scheduler" status="success"></el-progress>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="task_status" label="状态">
|
||||||
|
<template slot-scope="child">
|
||||||
|
<div class="flex_box work_status_box">
|
||||||
|
<div>{{ statusList[child.row.task_status] }}</div>
|
||||||
|
<!-- <i class="el-icon-caret-bottom"></i> -->
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column type="index" width="80" label="序号"></el-table-column>
|
||||||
|
<el-table-column prop="task_uuid" label="作业ID"></el-table-column>
|
||||||
|
<el-table-column prop="task_name" label="任务名称"></el-table-column>
|
||||||
|
<!-- <el-table-column prop="DataSource" label="来源"></el-table-column> -->
|
||||||
|
<el-table-column label="类型">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<div>{{ typeList[scope.row.ass_task[0].cd_type] }}</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="task_size" label="大小">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<div>{{ filterSize(scope.row.task_size) }}</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="TaskCapacity" label="大小"></el-table-column>
|
|
||||||
<!-- <el-table-column prop="CreateTime" label="开始时间"></el-table-column> -->
|
<!-- <el-table-column prop="CreateTime" label="开始时间"></el-table-column> -->
|
||||||
<!-- <el-table-column prop="FinishTime" label="结束时间"></el-table-column> -->
|
<!-- <el-table-column prop="FinishTime" label="结束时间"></el-table-column> -->
|
||||||
<el-table-column prop="JobCompletion" label="完成"></el-table-column>
|
<el-table-column label="完成">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<div>{{ scope.row.finish_freq }}/{{ scope.row.total_freq }}</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column prop="task_status" label="状态">
|
<el-table-column prop="task_status" label="状态">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div class="flex_box work_status_box">
|
<div class="flex_box work_status_box">
|
||||||
<div>{{statusList[scope.row.task_status]}}</div>
|
<div>{{ statusList[scope.row.task_status] }}</div>
|
||||||
<!-- <i class="el-icon-caret-bottom"></i> -->
|
<!-- <i class="el-icon-caret-bottom"></i> -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
<!-- 底部 -->
|
<!-- 底部 -->
|
||||||
<div class="flex_box flex_row_center footer_box">
|
<div class="flex_box flex_row_center footer_box">
|
||||||
<div>Copyright @ 2023 CARDSOON Corporation</div>
|
<div>Copyright @ 2023 CARDSOON Corporation</div>
|
||||||
<div class="footer_line"></div>
|
<div class="footer_line"></div>
|
||||||
<div class="footer_text">帮助</div>
|
<div class="footer_text">帮助</div>
|
||||||
@@ -209,8 +243,9 @@
|
|||||||
<script>
|
<script>
|
||||||
let that
|
let that
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
import UserInfo from '@/components/userInfo/userInfo.vue';
|
import { accAdd, filterSize } from '@/utils'
|
||||||
import WorkAdd from '@/components/workAdd/workAdd.vue';
|
import UserInfo from '@/components/userInfo/userInfo.vue'
|
||||||
|
import WorkAdd from '@/components/workAdd/workAdd.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'dashboard',
|
name: 'dashboard',
|
||||||
@@ -226,28 +261,28 @@ export default {
|
|||||||
runList: [
|
runList: [
|
||||||
{
|
{
|
||||||
value: 1,
|
value: 1,
|
||||||
label: '重启设备',
|
label: '重启设备'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 2,
|
value: 2,
|
||||||
label: '清除错误',
|
label: '清除错误'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 3,
|
value: 3,
|
||||||
label: '校准光盘桶',
|
label: '校准光盘桶'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 4,
|
value: 4,
|
||||||
label: '校准打印机',
|
label: '校准打印机'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 5,
|
value: 5,
|
||||||
label: '自动设置刻录机',
|
label: '自动设置刻录机'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 6,
|
value: 6,
|
||||||
label: '设置左右盘仓',
|
label: '设置左右盘仓'
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
// 剩余容量
|
// 剩余容量
|
||||||
progressW: 75,
|
progressW: 75,
|
||||||
@@ -262,7 +297,7 @@ export default {
|
|||||||
id: 2,
|
id: 2,
|
||||||
message: '[2024-11-07 17:53:13][文件刻录 20241107175313][开始执行文件刻录任务]',
|
message: '[2024-11-07 17:53:13][文件刻录 20241107175313][开始执行文件刻录任务]',
|
||||||
createtime: '2024 10-13'
|
createtime: '2024 10-13'
|
||||||
},
|
}
|
||||||
// {
|
// {
|
||||||
// id: 3,
|
// id: 3,
|
||||||
// message: '[2024-11-07 17:52:28][文件刻录 20241107175228][接收到任务]',
|
// message: '[2024-11-07 17:52:28][文件刻录 20241107175228][接收到任务]',
|
||||||
@@ -270,19 +305,39 @@ export default {
|
|||||||
// },
|
// },
|
||||||
],
|
],
|
||||||
// 作业列表
|
// 作业列表
|
||||||
workList: [],
|
taskList: [],
|
||||||
typeList: ['', '文件刻录', '光盘拷贝', '定期归档', '光盘读取'],
|
typeList: ['', 'CD', 'DVD', 'DVD_DL', 'BD', 'BD_DL', 'BD_TL', 'BD_QL'],
|
||||||
statusList: ['', '新建', '等待中', '文件准备中', '正在刻录', '正在打印', '已失败', '已取消', '已完成'],
|
statusList: {
|
||||||
|
'0': '新建',
|
||||||
|
'1': '等待中',
|
||||||
|
'2': '文件准备中',
|
||||||
|
'3': '正在刻录',
|
||||||
|
'4': '正在打印',
|
||||||
|
'5': '已失败',
|
||||||
|
'6': '已取消',
|
||||||
|
'7': '已完成'
|
||||||
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
'$store.state.chat.taskItem': {
|
'$store.state.chat.taskList': {
|
||||||
handler(val) {
|
handler(val) {
|
||||||
this.workList.push(val)
|
if (val && val.length) {
|
||||||
},
|
let list = []
|
||||||
deep: true,
|
val.forEach((item) => {
|
||||||
immediate: true
|
let task_size = 0
|
||||||
}
|
item.ass_task.forEach((item2) => {
|
||||||
|
task_size = accAdd(task_size, item2.task_size)
|
||||||
|
})
|
||||||
|
item.task_size = task_size
|
||||||
|
list.push(item)
|
||||||
|
})
|
||||||
|
this.taskList = list
|
||||||
|
}
|
||||||
|
},
|
||||||
|
deep: true,
|
||||||
|
immediate: true
|
||||||
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters(['name', 'roles'])
|
...mapGetters(['name', 'roles'])
|
||||||
@@ -293,7 +348,7 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
// 执行
|
// 执行
|
||||||
handleRun() {
|
handleRun() {
|
||||||
const index = that.runList.findIndex(item => item.value == that.runVal)
|
const index = that.runList.findIndex((item) => item.value == that.runVal)
|
||||||
that.$message({
|
that.$message({
|
||||||
message: that.runList[index].label,
|
message: that.runList[index].label,
|
||||||
type: 'success'
|
type: 'success'
|
||||||
@@ -303,10 +358,13 @@ export default {
|
|||||||
showWork() {
|
showWork() {
|
||||||
that.$refs.workAdd.show()
|
that.$refs.workAdd.show()
|
||||||
},
|
},
|
||||||
|
filterSize(size) {
|
||||||
|
return filterSize(size)
|
||||||
|
},
|
||||||
// 退出登录
|
// 退出登录
|
||||||
goOut() {
|
goOut() {
|
||||||
this.$store.dispatch('FedLogOut').then(() => {
|
this.$store.dispatch('FedLogOut').then(() => {
|
||||||
location.reload()// In order to re-instantiate the vue-router object to avoid bugs
|
location.reload()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -325,12 +383,12 @@ export default {
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
padding: 0 16px;
|
padding: 0 16px;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
background: #00C325;
|
background: #00c325;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
margin-right: 16px;
|
margin-right: 16px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
color: #FFFFFF;
|
color: #ffffff;
|
||||||
img {
|
img {
|
||||||
width: 18px;
|
width: 18px;
|
||||||
height: 18px;
|
height: 18px;
|
||||||
@@ -341,13 +399,13 @@ export default {
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
padding: 0 16px;
|
padding: 0 16px;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
background: rgba(0,195,37,0.12);
|
background: rgba(0, 195, 37, 0.12);
|
||||||
border: 2px solid rgba(0,195,37,0.32);
|
border: 2px solid rgba(0, 195, 37, 0.32);
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
margin-right: 16px;
|
margin-right: 16px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
color: #00C325;
|
color: #00c325;
|
||||||
img {
|
img {
|
||||||
width: 18px;
|
width: 18px;
|
||||||
height: 18px;
|
height: 18px;
|
||||||
@@ -357,7 +415,7 @@ export default {
|
|||||||
.top_left_line {
|
.top_left_line {
|
||||||
width: 2px;
|
width: 2px;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
background: #E0E0E0;
|
background: #e0e0e0;
|
||||||
margin: 0 16px;
|
margin: 0 16px;
|
||||||
}
|
}
|
||||||
.top_left_status {
|
.top_left_status {
|
||||||
@@ -375,23 +433,23 @@ export default {
|
|||||||
.top_left_num {
|
.top_left_num {
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
height: 28px;
|
height: 28px;
|
||||||
background: #00C325;
|
background: #00c325;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
color: #FFFFFF;
|
color: #ffffff;
|
||||||
line-height: 28px;
|
line-height: 28px;
|
||||||
margin-left: 12px;
|
margin-left: 12px;
|
||||||
}
|
}
|
||||||
.top_left_num1 {
|
.top_left_num1 {
|
||||||
background: #B8B8B8;
|
background: #b8b8b8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.device_box {
|
.device_box {
|
||||||
padding: 16px;
|
padding: 16px;
|
||||||
background-color: #F8F8F8;
|
background-color: #f8f8f8;
|
||||||
.device_left {
|
.device_left {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
padding: 0 45px;
|
padding: 0 45px;
|
||||||
@@ -485,7 +543,7 @@ export default {
|
|||||||
}
|
}
|
||||||
.device_status {
|
.device_status {
|
||||||
height: 44px;
|
height: 44px;
|
||||||
background: #FFFFFF;
|
background: #ffffff;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
margin-bottom: 24px;
|
margin-bottom: 24px;
|
||||||
padding: 0 18px;
|
padding: 0 18px;
|
||||||
@@ -493,13 +551,13 @@ export default {
|
|||||||
width: 22px;
|
width: 22px;
|
||||||
height: 22px;
|
height: 22px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
background: #E54D4D;
|
background: #e54d4d;
|
||||||
margin-right: 18px;
|
margin-right: 18px;
|
||||||
}
|
}
|
||||||
.device_status_text {
|
.device_status_text {
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 19px;
|
font-size: 19px;
|
||||||
color: #E54D4D;
|
color: #e54d4d;
|
||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -507,13 +565,13 @@ export default {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
height: 44px;
|
height: 44px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background: #FFFFFF;
|
background: #ffffff;
|
||||||
box-shadow: 0px 5 9px 2px rgba(102,102,102,0.18);
|
box-shadow: 0px 5 9px 2px rgba(102, 102, 102, 0.18);
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
.device_run_input {
|
.device_run_input {
|
||||||
width: calc(100% - 140px);
|
width: calc(100% - 140px);
|
||||||
height: 44px;
|
height: 44px;
|
||||||
border: 2px solid #00BCC3;
|
border: 2px solid #00bcc3;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
border-radius: 6px 0 0 6px;
|
border-radius: 6px 0 0 6px;
|
||||||
.el-select {
|
.el-select {
|
||||||
@@ -542,12 +600,12 @@ export default {
|
|||||||
.device_run_btn {
|
.device_run_btn {
|
||||||
width: 140px;
|
width: 140px;
|
||||||
height: 44px;
|
height: 44px;
|
||||||
background: #00BCC3;
|
background: #00bcc3;
|
||||||
border-radius: 0px 6px 6px 0px;
|
border-radius: 0px 6px 6px 0px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 19px;
|
font-size: 19px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
color: #FFFFFF;
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -555,7 +613,7 @@ export default {
|
|||||||
width: 50%;
|
width: 50%;
|
||||||
.device_right_top {
|
.device_right_top {
|
||||||
height: 200px;
|
height: 200px;
|
||||||
background: #FFFFFF;
|
background: #ffffff;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
margin-bottom: 18px;
|
margin-bottom: 18px;
|
||||||
padding: 0 24px;
|
padding: 0 24px;
|
||||||
@@ -581,14 +639,14 @@ export default {
|
|||||||
}
|
}
|
||||||
.device_right_top_progress {
|
.device_right_top_progress {
|
||||||
height: 18px;
|
height: 18px;
|
||||||
background: #FFFFFF;
|
background: #ffffff;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
border: 2px solid #707070;
|
border: 2px solid #707070;
|
||||||
margin: 2px 0 2px;
|
margin: 2px 0 2px;
|
||||||
.device_right_top_progress_box {
|
.device_right_top_progress_box {
|
||||||
width: 0;
|
width: 0;
|
||||||
height: 15px;
|
height: 15px;
|
||||||
background: #00C325;
|
background: #00c325;
|
||||||
transition: all 0.5s;
|
transition: all 0.5s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -597,17 +655,17 @@ export default {
|
|||||||
.device_right_top_line {
|
.device_right_top_line {
|
||||||
width: 2px;
|
width: 2px;
|
||||||
height: 150px;
|
height: 150px;
|
||||||
background: #E1F5E5;
|
background: #e1f5e5;
|
||||||
margin: 0 24px;
|
margin: 0 24px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.notice_box {
|
.notice_box {
|
||||||
background: #FFFFFF;
|
background: #ffffff;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
.notice_top {
|
.notice_top {
|
||||||
height: 75px;
|
height: 75px;
|
||||||
padding: 0 30px;
|
padding: 0 30px;
|
||||||
border-bottom: 2px solid #E1F5E5;
|
border-bottom: 2px solid #e1f5e5;
|
||||||
.notice_title {
|
.notice_title {
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 19px;
|
font-size: 19px;
|
||||||
@@ -621,7 +679,7 @@ export default {
|
|||||||
.notice_all {
|
.notice_all {
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 19px;
|
font-size: 19px;
|
||||||
color: #00C325;
|
color: #00c325;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
img {
|
img {
|
||||||
width: 28px;
|
width: 28px;
|
||||||
@@ -652,14 +710,14 @@ export default {
|
|||||||
}
|
}
|
||||||
.notice_item {
|
.notice_item {
|
||||||
height: 42px;
|
height: 42px;
|
||||||
background-color: #F8F8F8;
|
background-color: #f8f8f8;
|
||||||
margin-bottom: 3px;
|
margin-bottom: 3px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
&:hover {
|
&:hover {
|
||||||
background-color: #FFE6E6;
|
background-color: #ffe6e6;
|
||||||
.notice_content,
|
.notice_content,
|
||||||
.notice_time {
|
.notice_time {
|
||||||
color: #FF0000;
|
color: #ff0000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.notice_content {
|
.notice_content {
|
||||||
@@ -692,26 +750,26 @@ export default {
|
|||||||
.work_top_text {
|
.work_top_text {
|
||||||
width: 132px;
|
width: 132px;
|
||||||
height: 72px;
|
height: 72px;
|
||||||
background: linear-gradient( 180deg, #C1FFCD 0%, #FFFFFF 100%);
|
background: linear-gradient(180deg, #c1ffcd 0%, #ffffff 100%);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 19px;
|
font-size: 19px;
|
||||||
color: #00C325;
|
color: #00c325;
|
||||||
line-height: 72px;
|
line-height: 72px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.work_table {
|
.work_table {
|
||||||
background-color: #F8F8F8;
|
background-color: #f8f8f8;
|
||||||
::v-deep {
|
::v-deep {
|
||||||
tr {
|
tr {
|
||||||
background-color: #F8F8F8;
|
background-color: #f8f8f8;
|
||||||
}
|
}
|
||||||
td.el-table__cell {
|
td.el-table__cell {
|
||||||
background-color: #F8F8F8;
|
background-color: #f8f8f8;
|
||||||
border-bottom: 3px solid #ffffff;
|
border-bottom: 3px solid #ffffff;
|
||||||
}
|
}
|
||||||
th.el-table__cell {
|
th.el-table__cell {
|
||||||
background-color: #F2F9F4;
|
background-color: #f2f9f4;
|
||||||
border-bottom: 3px solid #ffffff;
|
border-bottom: 3px solid #ffffff;
|
||||||
}
|
}
|
||||||
.el-table__cell {
|
.el-table__cell {
|
||||||
@@ -723,6 +781,19 @@ export default {
|
|||||||
color: #000000;
|
color: #000000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.work_progress {
|
||||||
|
width: 80%;
|
||||||
|
::v-deep {
|
||||||
|
.el-progress-bar__outer {
|
||||||
|
height: 16px!important;
|
||||||
|
line-height: 16px!important;
|
||||||
|
.el-progress-bar__innerText {
|
||||||
|
font-size: 12px!important;
|
||||||
|
color: #fff!important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
.work_status_box {
|
.work_status_box {
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
@@ -733,7 +804,7 @@ export default {
|
|||||||
}
|
}
|
||||||
.footer_box {
|
.footer_box {
|
||||||
height: 36px;
|
height: 36px;
|
||||||
background: #DCF5E1;
|
background: #dcf5e1;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #666666;
|
color: #666666;
|
||||||
@@ -746,7 +817,7 @@ export default {
|
|||||||
.footer_text {
|
.footer_text {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
&:hover {
|
&:hover {
|
||||||
color: #00C325;
|
color: #00c325;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user