diff --git a/src/renderer/views/manage/index.vue b/src/renderer/views/manage/index.vue index eb0b4ec..ef81ca5 100644 --- a/src/renderer/views/manage/index.vue +++ b/src/renderer/views/manage/index.vue @@ -134,6 +134,32 @@ + + +
+
请选择左右光盘桶所对应的光盘类型。
+
修改后将影响作业可选择的光盘类型,请谨慎操作。
+
+
+
光盘桶 {{ item.strong_pos }}
+
+ + + + +
+
+
+ +
+
@@ -180,6 +206,10 @@ export default { // } ], serviceList: [ + { + id: 7, + name: '设置光盘桶' + }, { id: 4, name: '刷新光盘桶' @@ -239,7 +269,18 @@ export default { value: 3, label: '下光驱' } - ] + ], + // 设置光盘桶 + setCDShow: false, + CDTypes: {}, + changeCD: { + req_name: 'setCDStrong', + req_type: 2, + req_info: { + strong_list: [] + } + }, + default_cd: [] } }, computed: { @@ -352,6 +393,10 @@ export default { } ] this.serviceList = [ + { + id: 7, + name: '设置光盘桶' + }, { id: 4, name: '刷新光盘桶' @@ -381,6 +426,13 @@ export default { }, deep: true, immediate: true + }, + '$store.state.chat.CDTypes': { + handler(val) { + this.CDTypes = { ...val } + }, + deep: true, + immediate: true } }, mounted() { @@ -746,6 +798,32 @@ export default { }) }) break + case 7: + // 设置光盘桶(手动选择左右光盘桶类型) + // 正在任务中禁止操作(与 dashboard handleRun 中的限制保持一致) + const cdList = that.$store.state.chat.cd_list || [] + if ((cdList[0] && cdList[0].copy_scheduler) || (cdList[1] && cdList[1].copy_scheduler)) { + that.$message({ + message: '正在任务中,无法进行操作', + type: 'warning' + }) + return + } + if (!that.printer_info || !that.printer_info.strong_list || !that.printer_info.strong_list.length) { + that.$message({ + message: '当前设备暂无光盘桶信息,无法设置', + type: 'error' + }) + return + } + // 初始化默认光盘桶类型 + that.changeCD.req_info.strong_list = that.printer_info.strong_list.map((item, index) => ({ + strong_pos: index + 1, + strong_type: item.cd_type + })) + that.default_cd = JSON.parse(JSON.stringify(that.changeCD.req_info.strong_list)) + that.setCDShow = true + break } }, cdChange(index, e) { @@ -972,6 +1050,52 @@ export default { ] localStorage.setItem('guideStep', JSON.stringify(guideStep)) localStorage.setItem('currentStep', 0) + }, + // 设置光盘桶 - 选择类型 + handleSetCDChange(index, val) { + if (!this.changeCD.req_info.strong_list[index]) return + this.changeCD.req_info.strong_list[index].strong_type = val + this.$set(this.changeCD.req_info.strong_list, index, { + ...this.changeCD.req_info.strong_list[index] + }) + }, + // 设置光盘桶 - 取消 + handleSetCDCancel() { + this.setCDShow = false + this.changeCD.req_info.strong_list = JSON.parse(JSON.stringify(this.default_cd || [])) + }, + // 设置光盘桶 - 确认 + handleSetCDSubmit() { + let that = this + if (!that.changeCD.req_info.strong_list || !that.changeCD.req_info.strong_list.length) { + that.$message({ + message: '请先设置光盘桶类型', + type: 'warning' + }) + return + } + that.$store + .dispatch('chat/websocketsend', that.changeCD) + .then(() => { + // 同 dashboard 的行为:根据是否包含 BD 类型更新可选光盘类型 + try { + const { getCurrentOSDiscTypes } = require('../../utils/fileSize') + let typeLists = getCurrentOSDiscTypes() + let isBD = that.changeCD.req_info.strong_list.findIndex(item => parseInt(item.strong_type) > 3) + if (isBD === -1) { + typeLists = typeLists.slice(0, 3) + } + that.$store.dispatch('chat/setDatas', { name: 'cd_types', data: typeLists }) + } catch (err) { + // 安全兜底:不影响主流程 + console.error(err) + } + that.$message({ + message: '已发送指令', + type: 'success' + }) + that.setCDShow = false + }) } } }