调整引导与帮助等
This commit is contained in:
+38
-1
@@ -1,4 +1,6 @@
|
|||||||
import { app, BrowserWindow, Menu } from 'electron'
|
import { app, BrowserWindow, Menu, ipcMain, shell } from 'electron'
|
||||||
|
import path from 'path'
|
||||||
|
import fs from 'fs'
|
||||||
import '../renderer/store'
|
import '../renderer/store'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -14,6 +16,18 @@ const winURL = process.env.NODE_ENV === 'development'
|
|||||||
? `http://localhost:9080`
|
? `http://localhost:9080`
|
||||||
: `file://${__dirname}/index.html`
|
: `file://${__dirname}/index.html`
|
||||||
|
|
||||||
|
// 获取应用根目录
|
||||||
|
// 开发环境:项目根目录(__dirname 指向 dist/electron)
|
||||||
|
// 生产环境:可执行文件所在目录
|
||||||
|
const root = process.env.NODE_ENV === "development"
|
||||||
|
? path.resolve(__dirname, '../../')
|
||||||
|
: path.dirname(app.getPath("exe"))
|
||||||
|
|
||||||
|
// 日志函数
|
||||||
|
function writeLog(message) {
|
||||||
|
console.log(`[${new Date().toISOString()}] ${message}`)
|
||||||
|
}
|
||||||
|
|
||||||
function createWindow () {
|
function createWindow () {
|
||||||
/**
|
/**
|
||||||
* Initial window options
|
* Initial window options
|
||||||
@@ -75,3 +89,26 @@ app.on('ready', () => {
|
|||||||
if (process.env.NODE_ENV === 'production') autoUpdater.checkForUpdates()
|
if (process.env.NODE_ENV === 'production') autoUpdater.checkForUpdates()
|
||||||
})
|
})
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// IPC 处理:打开帮助文件
|
||||||
|
ipcMain.on('open-help-file', async event => {
|
||||||
|
const helpFilePath = path.join(root, "CardsoonServer", "User Manual.pdf");
|
||||||
|
|
||||||
|
if (!fs.existsSync(helpFilePath)) {
|
||||||
|
const errorMsg = `帮助文件不存在: ${helpFilePath}`;
|
||||||
|
writeLog(errorMsg);
|
||||||
|
if (event.reply) {
|
||||||
|
event.reply('open-help-file-error', errorMsg);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
await shell.openPath(helpFilePath);
|
||||||
|
} catch (error) {
|
||||||
|
writeLog("打开帮助文件错误: " + error.message);
|
||||||
|
if (event.reply) {
|
||||||
|
event.reply('open-help-file-error', error.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|||||||
@@ -228,4 +228,54 @@ export default {
|
|||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 引导样式
|
||||||
|
.guide_body {
|
||||||
|
position: relative;
|
||||||
|
z-index: 200;
|
||||||
|
background-color: #fff;
|
||||||
|
padding: 0 10px;
|
||||||
|
border-radius: 4px;
|
||||||
|
border: 1px dashed #2e9bfb;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.guide_box {
|
||||||
|
border: 1px dashed #2e9bfb;
|
||||||
|
padding: 12px;
|
||||||
|
.guide_title {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #000000;
|
||||||
|
line-height: 30px;
|
||||||
|
span {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #999;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.guide_desc {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #000000;
|
||||||
|
line-height: 24px;
|
||||||
|
a {
|
||||||
|
color: #2e9bfb;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.guide_btns {
|
||||||
|
padding: 10px 0 0;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: end;
|
||||||
|
.guide_btn1 {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
.guide_btn2 {
|
||||||
|
background-color: #2e9bfb;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.el-popover {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -4,194 +4,272 @@
|
|||||||
:close-on-click-modal="false" :show-close="false">
|
:close-on-click-modal="false" :show-close="false">
|
||||||
<div class="work_body" v-loading="submitLoading" element-loading-text="正在准备任务,您也可以直接右上角关闭作业窗口"
|
<div class="work_body" v-loading="submitLoading" element-loading-text="正在准备任务,您也可以直接右上角关闭作业窗口"
|
||||||
element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)">
|
element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)">
|
||||||
|
<div
|
||||||
|
v-if="currentStep && parseInt(currentStep) >= 8"
|
||||||
|
class="bg_box"
|
||||||
|
style="position: absolute; top: 0; left: 0; z-index: 10; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5)"></div>
|
||||||
<div @click="close" class="close_box">
|
<div @click="close" class="close_box">
|
||||||
<img src="@/assets/images/Close_icon.png" />
|
<img src="@/assets/images/Close_icon.png" />
|
||||||
</div>
|
</div>
|
||||||
<div class="work_box">
|
<div class="work_box">
|
||||||
<div class="flex_box flex_row_between work_top">
|
<div class="flex_box flex_row_between work_top">
|
||||||
<div class="flex_box">
|
<el-popover v-if="guideStep" :placement="guideStep[8].placement" width="250" trigger="manual"
|
||||||
<div class="flex_box work_top_item">
|
v-model="guideStep[8].show">
|
||||||
<div class="work_top_label">光盘类型:</div>
|
<div class="guide_box">
|
||||||
<div class="work_top_val">
|
<div class="guide_title">新手引导<span>({{ parseInt(currentStep) + 1 }}/{{ guideStep.length }})</span>
|
||||||
<el-select v-model="form.cd_type" placeholder="请选择">
|
</div>
|
||||||
<el-option v-for="item in cd_types" :key="item.value" :label="item.label" :value="item.value">
|
<div class="guide_desc">{{ guideStep[8].step }}</div>
|
||||||
</el-option>
|
<div class="guide_btns">
|
||||||
</el-select>
|
<el-button @click="exitGuide" class="guide_btn1" size="mini" type="text">跳过引导</el-button>
|
||||||
|
<el-button v-if="parseInt(currentStep) > 0" @click="prevStep" class="guide_btn1" size="mini">上一步</el-button>
|
||||||
|
<el-button @click="nextStep" class="guide_btn2" size="mini" type="primary">{{ currentStep ==
|
||||||
|
guideStep.length
|
||||||
|
- 1 ? '完成引导' : '下一步' }}</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex_box work_top_item">
|
<div class="flex_box" slot="reference" :class="{ 'guide_body': currentStep == 8}">
|
||||||
<div class="work_top_label">任务类型:</div>
|
<div class="flex_box work_top_item">
|
||||||
<div class="work_top_val">
|
<div class="work_top_label">光盘类型:</div>
|
||||||
<el-select v-model="form.copy_type" placeholder="请选择">
|
<div class="work_top_val">
|
||||||
<el-option v-for="item in copyList" :key="item.value" :label="item.label" :value="item.value">
|
<el-select v-model="form.cd_type" placeholder="请选择">
|
||||||
</el-option>
|
<el-option v-for="item in cd_types" :key="item.value" :label="item.label" :value="item.value">
|
||||||
</el-select>
|
</el-option>
|
||||||
</div>
|
</el-select>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<el-popover v-model="setShow" placement="bottom-end" trigger="click" @show="initSet">
|
|
||||||
<div class="set_box">
|
|
||||||
<div class="set_list">
|
|
||||||
<!-- <div class="flex_box set_item">
|
|
||||||
<div class="set_label">优先级:</div>
|
|
||||||
<div class="set_val">
|
|
||||||
<el-select v-model="setForm.priority" placeholder="请选择">
|
|
||||||
<el-option v-for="item in priorityList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
|
|
||||||
</el-select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="flex_box set_item">
|
|
||||||
<div class="set_label">目标工作站:</div>
|
|
||||||
<div class="set_val">
|
|
||||||
<el-select v-model="setForm.stage" placeholder="请选择">
|
|
||||||
<el-option v-for="item in stageList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
|
|
||||||
</el-select>
|
|
||||||
</div>
|
|
||||||
</div> -->
|
|
||||||
<div class="flex_box set_item">
|
|
||||||
<div class="set_label">刻录速率:</div>
|
|
||||||
<div class="set_val">
|
|
||||||
<el-select v-model="setForm.speed" placeholder="请选择">
|
|
||||||
<el-option v-for="item in speedList" :key="item.value" :label="item.label" :value="item.value">
|
|
||||||
</el-option>
|
|
||||||
</el-select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="flex_box set_item">
|
|
||||||
<div class="set_label">刻录完成后校验光盘:</div>
|
|
||||||
<div class="set_val">
|
|
||||||
<el-switch v-model="setForm.isCheck" active-color="#07C160" inactive-color="#aaa"> </el-switch>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="flex_box set_item">
|
|
||||||
<div class="set_label">刻录完成后关闭光盘:</div>
|
|
||||||
<div class="set_val">
|
|
||||||
<el-switch v-model="setForm.isClose" active-color="#07C160" inactive-color="#aaa"> </el-switch>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="flex_box set_item">
|
|
||||||
<div class="set_label">刻录完成后删除缓存:</div>
|
|
||||||
<div class="set_val">
|
|
||||||
<el-switch v-model="setForm.isDel" active-color="#07C160" inactive-color="#aaa"> </el-switch>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="flex_box set_item">
|
|
||||||
<div class="set_label">作业失败打印标签:</div>
|
|
||||||
<div class="set_val">
|
|
||||||
<el-switch v-model="setForm.isPrint" active-color="#07C160" inactive-color="#aaa"> </el-switch>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="flex_box set_item">
|
|
||||||
<div class="set_label">允许跨盘:</div>
|
|
||||||
<div class="set_val">
|
|
||||||
<el-switch v-model="setForm.isArrow" active-color="#07C160" inactive-color="#aaa"> </el-switch>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="flex_box set_item">
|
|
||||||
<div class="set_label">是否虚拟刻录:</div>
|
|
||||||
<div class="set_val">
|
|
||||||
<el-switch v-model="setForm.is_sim" active-color="#07C160" inactive-color="#aaa"> </el-switch>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div v-if="setForm.isArrow" class="flex_box flex_col_top set_item">
|
|
||||||
<div class="set_label">分盘设置:</div>
|
|
||||||
<div class="set_val">
|
|
||||||
<el-radio-group v-model="setForm.disk">
|
|
||||||
<el-radio :label="item.id" v-for="(item, index) in diskSet" :key="index">
|
|
||||||
<div class="set_disk_name">{{ item.name }}</div>
|
|
||||||
<div class="set_disk_desc">{{ item.desc }}</div>
|
|
||||||
</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex_box flex_row_center set_btns">
|
<div class="flex_box work_top_item">
|
||||||
<el-button @click="setCancel" class="set_btn1">取消</el-button>
|
<div class="work_top_label">任务类型:</div>
|
||||||
<el-button @click="setSure" class="set_btn2" type="primary">确定</el-button>
|
<div class="work_top_val">
|
||||||
|
<el-select v-model="form.copy_type" placeholder="请选择">
|
||||||
|
<el-option v-for="item in copyList" :key="item.value" :label="item.label" :value="item.value">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex_box work_top_set" slot="reference">
|
|
||||||
<img src="@/assets/images/Setting_icon.png" />
|
|
||||||
<div>高级作业设置</div>
|
|
||||||
</div>
|
|
||||||
</el-popover>
|
</el-popover>
|
||||||
|
<template v-if="!currentStep || currentStep < 8">
|
||||||
|
<el-popover v-model="setShow" placement="bottom-end" trigger="click" @show="initSet">
|
||||||
|
<div class="set_box">
|
||||||
|
<div class="set_list">
|
||||||
|
<!-- <div class="flex_box set_item">
|
||||||
|
<div class="set_label">优先级:</div>
|
||||||
|
<div class="set_val">
|
||||||
|
<el-select v-model="setForm.priority" placeholder="请选择">
|
||||||
|
<el-option v-for="item in priorityList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex_box set_item">
|
||||||
|
<div class="set_label">目标工作站:</div>
|
||||||
|
<div class="set_val">
|
||||||
|
<el-select v-model="setForm.stage" placeholder="请选择">
|
||||||
|
<el-option v-for="item in stageList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
</div> -->
|
||||||
|
<div class="flex_box set_item">
|
||||||
|
<div class="set_label">刻录速率:</div>
|
||||||
|
<div class="set_val">
|
||||||
|
<el-select v-model="setForm.speed" placeholder="请选择">
|
||||||
|
<el-option v-for="item in speedList" :key="item.value" :label="item.label" :value="item.value">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex_box set_item">
|
||||||
|
<div class="set_label">刻录完成后校验光盘:</div>
|
||||||
|
<div class="set_val">
|
||||||
|
<el-switch v-model="setForm.isCheck" active-color="#07C160" inactive-color="#aaa"> </el-switch>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex_box set_item">
|
||||||
|
<div class="set_label">刻录完成后关闭光盘:</div>
|
||||||
|
<div class="set_val">
|
||||||
|
<el-switch v-model="setForm.isClose" active-color="#07C160" inactive-color="#aaa"> </el-switch>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex_box set_item">
|
||||||
|
<div class="set_label">刻录完成后删除缓存:</div>
|
||||||
|
<div class="set_val">
|
||||||
|
<el-switch v-model="setForm.isDel" active-color="#07C160" inactive-color="#aaa"> </el-switch>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex_box set_item">
|
||||||
|
<div class="set_label">作业失败打印标签:</div>
|
||||||
|
<div class="set_val">
|
||||||
|
<el-switch v-model="setForm.isPrint" active-color="#07C160" inactive-color="#aaa"> </el-switch>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex_box set_item">
|
||||||
|
<div class="set_label">允许跨盘:</div>
|
||||||
|
<div class="set_val">
|
||||||
|
<el-switch v-model="setForm.isArrow" active-color="#07C160" inactive-color="#aaa"> </el-switch>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex_box set_item">
|
||||||
|
<div class="set_label">是否虚拟刻录:</div>
|
||||||
|
<div class="set_val">
|
||||||
|
<el-switch v-model="setForm.is_sim" active-color="#07C160" inactive-color="#aaa"> </el-switch>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-if="setForm.isArrow" class="flex_box flex_col_top set_item">
|
||||||
|
<div class="set_label">分盘设置:</div>
|
||||||
|
<div class="set_val">
|
||||||
|
<el-radio-group v-model="setForm.disk">
|
||||||
|
<el-radio :label="item.id" v-for="(item, index) in diskSet" :key="index">
|
||||||
|
<div class="set_disk_name">{{ item.name }}</div>
|
||||||
|
<div class="set_disk_desc">{{ item.desc }}</div>
|
||||||
|
</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex_box flex_row_center set_btns">
|
||||||
|
<el-button @click="setCancel" class="set_btn1">取消</el-button>
|
||||||
|
<el-button @click="setSure" class="set_btn2" type="primary">确定</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex_box work_top_set" slot="reference">
|
||||||
|
<img src="@/assets/images/Setting_icon.png" />
|
||||||
|
<div>高级作业设置</div>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<el-popover v-if="guideStep" :placement="guideStep[11].placement" width="250" trigger="manual"
|
||||||
|
v-model="guideStep[11].show">
|
||||||
|
<div class="guide_box">
|
||||||
|
<div class="guide_title">新手引导<span>({{ parseInt(currentStep) + 1 }}/{{ guideStep.length }})</span>
|
||||||
|
</div>
|
||||||
|
<div class="guide_desc">{{ guideStep[11].step }}</div>
|
||||||
|
<div class="guide_btns">
|
||||||
|
<el-button @click="exitGuide" class="guide_btn1" size="mini" type="text">跳过引导</el-button>
|
||||||
|
<el-button v-if="parseInt(currentStep) > 0" @click="prevStep" class="guide_btn1" size="mini">上一步</el-button>
|
||||||
|
<el-button @click="nextStep" class="guide_btn2" size="mini" type="primary">{{ currentStep ==
|
||||||
|
guideStep.length
|
||||||
|
- 1 ? '完成引导' : '下一步' }}</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div slot="reference" :class="{ 'guide_body': currentStep == 11}">
|
||||||
|
<div class="flex_box work_top_set">
|
||||||
|
<img src="@/assets/images/Setting_icon.png" />
|
||||||
|
<div>高级作业设置</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex_box flex_col_top work_main">
|
<div class="flex_box flex_col_top work_main">
|
||||||
<div class="work_left">
|
<div class="work_left">
|
||||||
<div v-if="form.copy_type == 3 || form.copy_type == 4" class="flex_box flex_row_center work_no">
|
<el-popover v-if="guideStep" :placement="guideStep[9].placement" width="250" trigger="manual"
|
||||||
<img src="@/assets/images/ElBanCircle.png" />
|
v-model="guideStep[9].show">
|
||||||
</div>
|
<div class="guide_box">
|
||||||
<div class="flex_box flex_row_between work_left_top">
|
<div class="guide_title">新手引导<span>({{ parseInt(currentStep) + 1 }}/{{ guideStep.length }})</span>
|
||||||
<div class="flex_box">
|
|
||||||
<div class="work_left_top_label">内容</div>
|
|
||||||
<div v-if="form.copy_type !== 2" @click="addFolder" class="flex_box work_left_top_btn">
|
|
||||||
<img src="@/assets/images/file_icon.png" />
|
|
||||||
<div>添加文件夹</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div @click="addFile" class="flex_box work_left_top_btn">
|
<div class="guide_desc">{{ guideStep[9].step }}</div>
|
||||||
<img src="@/assets/images/paper_icon.png" />
|
<div class="guide_btns">
|
||||||
<div>添加文件</div>
|
<el-button @click="exitGuide" class="guide_btn1" size="mini" type="text">跳过引导</el-button>
|
||||||
|
<el-button v-if="parseInt(currentStep) > 0" @click="prevStep" class="guide_btn1" size="mini">上一步</el-button>
|
||||||
|
<el-button @click="nextStep" class="guide_btn2" size="mini" type="primary">{{ currentStep ==
|
||||||
|
guideStep.length
|
||||||
|
- 1 ? '完成引导' : '下一步' }}</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div @contextmenu.prevent="showContextMenu" class="work_left_top_input">
|
<div slot="reference" :class="{ 'guide_body': currentStep == 9}">
|
||||||
<el-input placeholder="请输入卷标" v-model="form.label">
|
<div v-if="form.copy_type == 3 || form.copy_type == 4" class="flex_box flex_row_center work_no">
|
||||||
<template slot="prepend">卷标</template>
|
<img src="@/assets/images/ElBanCircle.png" />
|
||||||
</el-input>
|
</div>
|
||||||
|
<div class="flex_box flex_row_between work_left_top">
|
||||||
|
<div class="flex_box">
|
||||||
|
<div class="work_left_top_label">内容</div>
|
||||||
|
<div v-if="form.copy_type !== 2" @click="addFolder" class="flex_box work_left_top_btn">
|
||||||
|
<img src="@/assets/images/file_icon.png" />
|
||||||
|
<div>添加文件夹</div>
|
||||||
|
</div>
|
||||||
|
<div @click="addFile" class="flex_box work_left_top_btn">
|
||||||
|
<img src="@/assets/images/paper_icon.png" />
|
||||||
|
<div>添加文件</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div @contextmenu.prevent="showContextMenu" class="work_left_top_input">
|
||||||
|
<el-input placeholder="请输入卷标" v-model="form.label">
|
||||||
|
<template slot="prepend">卷标</template>
|
||||||
|
</el-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="work_files">
|
||||||
|
<div class="work_files_box">
|
||||||
|
<!-- 文件列表 -->
|
||||||
|
<files ref="files" :copyType="form.copy_type" :onSizechange="sizeChange" :complete="upload_over"></files>
|
||||||
|
</div>
|
||||||
|
<div class="work_files_progress">
|
||||||
|
<el-progress :text-inside="true" :percentage="file_percent" :format="format"
|
||||||
|
:color="customColors"></el-progress>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</el-popover>
|
||||||
<div class="work_files">
|
|
||||||
<div class="work_files_box">
|
|
||||||
<!-- 文件列表 -->
|
|
||||||
<files ref="files" :copyType="form.copy_type" :onSizechange="sizeChange" :complete="upload_over"></files>
|
|
||||||
</div>
|
|
||||||
<div class="work_files_progress">
|
|
||||||
<el-progress :text-inside="true" :percentage="file_percent" :format="format"
|
|
||||||
:color="customColors"></el-progress>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="work_right">
|
<div class="work_right">
|
||||||
<!-- <div v-if="form.copy_type == 3" class="flex_box flex_row_center work_no">
|
<el-popover v-if="guideStep" :placement="guideStep[10].placement" width="250" trigger="manual"
|
||||||
<img src="@/assets/images/ElBanCircle.png" />
|
v-model="guideStep[10].show">
|
||||||
</div> -->
|
<div class="guide_box">
|
||||||
<div class="flex_box work_right_top">
|
<div class="guide_title">新手引导<span>({{ parseInt(currentStep) + 1 }}/{{ guideStep.length }})</span>
|
||||||
<div class="flex_box">
|
</div>
|
||||||
<div class="work_right_top_label">标签</div>
|
<div class="guide_desc">{{ guideStep[10].step }}</div>
|
||||||
<el-select @change="changeTemplate" v-model="currentTemplate" placeholder="选择一个标签或点击创建标签">
|
<div class="guide_btns">
|
||||||
<el-option v-for="item in templates" :key="item.value" :label="item.label" :value="item.value">
|
<el-button @click="exitGuide" class="guide_btn1" size="mini" type="text">跳过引导</el-button>
|
||||||
</el-option>
|
<el-button v-if="parseInt(currentStep) > 0" @click="prevStep" class="guide_btn1" size="mini">上一步</el-button>
|
||||||
</el-select>
|
<el-button @click="nextStep" class="guide_btn2" size="mini" type="primary">{{ currentStep ==
|
||||||
<el-tooltip content="选择更多模版" placement="bottom">
|
guideStep.length
|
||||||
<div @click="openFile" class="work_right_top_file">···</div>
|
- 1 ? '完成引导' : '下一步' }}</el-button>
|
||||||
</el-tooltip>
|
|
||||||
</div>
|
|
||||||
<div @click="openDesign" class="work_right_top_add">新建标签</div>
|
|
||||||
</div>
|
|
||||||
<div class="wook_soon" :class="{ wook_soon1: !showList }">
|
|
||||||
<div class="flex_box flex_row_center wook_soon_top">
|
|
||||||
<img class="wook_soon_img" :src="soonImg" />
|
|
||||||
<div @click="showList = !showList" class="flex_box flex_row_center wook_soon_btn"
|
|
||||||
:class="{ wook_soon_btn1: !showList }">
|
|
||||||
<img src="@/assets/images/Arrow_up_icon.png" />
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="wook_soon_list">
|
<div slot="reference" :class="{ 'guide_body': currentStep == 10}">
|
||||||
<div v-for="(item, index) in soonList" :key="index" class="flex_box wook_soon_item">
|
<!-- <div v-if="form.copy_type == 3" class="flex_box flex_row_center work_no">
|
||||||
<div class="wook_soon_label">{{ item.name }}</div>
|
<img src="@/assets/images/ElBanCircle.png" />
|
||||||
<div class="wook_soon_input">
|
</div> -->
|
||||||
<div v-if="item.type == 1">
|
<div class="flex_box work_right_top">
|
||||||
<input type="file" accept="image/*" :ref="item.origin_name" :data-name="item.origin_name" />
|
<div class="flex_box">
|
||||||
</div>
|
<div class="work_right_top_label">标签</div>
|
||||||
<div v-if="item.type == 3 || item.type == 4 || item.type == 5">
|
<el-select @change="changeTemplate" v-model="currentTemplate" placeholder="选择一个标签或点击创建标签">
|
||||||
<el-input clearable :disabled="csvIsExist" v-model="item.val" placeholder="请输入"></el-input>
|
<el-option v-for="item in templates" :key="item.value" :label="item.label" :value="item.value">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
<el-tooltip content="选择更多模版" placement="bottom">
|
||||||
|
<div @click="openFile" class="work_right_top_file">···</div>
|
||||||
|
</el-tooltip>
|
||||||
|
</div>
|
||||||
|
<div @click="openDesign" class="work_right_top_add">新建标签</div>
|
||||||
|
</div>
|
||||||
|
<div class="wook_soon" :class="{ wook_soon1: !showList }">
|
||||||
|
<div class="flex_box flex_row_center wook_soon_top">
|
||||||
|
<img class="wook_soon_img" :src="soonImg" />
|
||||||
|
<div @click="showList = !showList" class="flex_box flex_row_center wook_soon_btn"
|
||||||
|
:class="{ wook_soon_btn1: !showList }">
|
||||||
|
<img src="@/assets/images/Arrow_up_icon.png" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div @click="openFile2" v-if="item.type == 3 || item.type == 4 || item.type == 5"
|
<div class="wook_soon_list">
|
||||||
class="wook_soon_add">添加字段
|
<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_input">
|
||||||
|
<div v-if="item.type == 1">
|
||||||
|
<input type="file" accept="image/*" :ref="item.origin_name" :data-name="item.origin_name" />
|
||||||
|
</div>
|
||||||
|
<div v-if="item.type == 3 || item.type == 4 || item.type == 5">
|
||||||
|
<el-input clearable :disabled="csvIsExist" v-model="item.val" placeholder="请输入"></el-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div @click="openFile2" v-if="item.type == 3 || item.type == 4 || item.type == 5"
|
||||||
|
class="wook_soon_add">添加字段
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</el-popover>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -209,10 +287,25 @@
|
|||||||
</el-input>
|
</el-input>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex_box footer_btns">
|
<el-popover v-if="guideStep" :placement="guideStep[12].placement" width="250" trigger="manual"
|
||||||
<el-button type="primary" class="footer_save" @click="workSave" :loading="saveFlag">保存</el-button>
|
v-model="guideStep[12].show">
|
||||||
<el-button type="primary" class="footer_submit" @click="workSubmit" :loading="submitFlag">提交</el-button>
|
<div class="guide_box">
|
||||||
</div>
|
<div class="guide_title">新手引导<span>({{ parseInt(currentStep) + 1 }}/{{ guideStep.length }})</span>
|
||||||
|
</div>
|
||||||
|
<div class="guide_desc">{{ guideStep[12].step }}</div>
|
||||||
|
<div class="guide_btns">
|
||||||
|
<el-button @click="exitGuide" class="guide_btn1" size="mini" type="text">跳过引导</el-button>
|
||||||
|
<el-button v-if="parseInt(currentStep) > 0" @click="prevStep" class="guide_btn1" size="mini">上一步</el-button>
|
||||||
|
<el-button @click="nextStep" class="guide_btn2" size="mini" type="primary">{{ currentStep ==
|
||||||
|
guideStep.length
|
||||||
|
- 1 ? '完成引导' : '下一步' }}</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex_box footer_btns" slot="reference" :class="{ 'guide_body': currentStep == 12}">
|
||||||
|
<el-button type="primary" class="footer_save" @click="workSave" :loading="saveFlag">保存</el-button>
|
||||||
|
<el-button type="primary" class="footer_submit" @click="workSubmit" :loading="submitFlag">提交</el-button>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 上传文件区域 -->
|
<!-- 上传文件区域 -->
|
||||||
@@ -425,6 +518,9 @@ export default {
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
cdList: [],
|
cdList: [],
|
||||||
|
// 新手引导
|
||||||
|
guideStep: null,
|
||||||
|
currentStep: 0,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
@@ -547,7 +643,15 @@ export default {
|
|||||||
if (setForm) {
|
if (setForm) {
|
||||||
this.$store.dispatch('setDatas', { name: 'setForm', data: JSON.parse(setForm) })
|
this.$store.dispatch('setDatas', { name: 'setForm', data: JSON.parse(setForm) })
|
||||||
}
|
}
|
||||||
|
// 新手引导
|
||||||
|
this.guideStep = JSON.parse(localStorage.getItem('guideStep'))
|
||||||
|
this.currentStep = localStorage.getItem('currentStep')
|
||||||
|
if (this.guideStep[this.currentStep]) {
|
||||||
|
this.guideStep[this.currentStep].show = false
|
||||||
|
setTimeout(() => {
|
||||||
|
this.guideStep[this.currentStep].show = true
|
||||||
|
}, 200)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 右键事件
|
// 右键事件
|
||||||
@@ -1043,7 +1147,44 @@ export default {
|
|||||||
initSet() {
|
initSet() {
|
||||||
this.setForm = { ...this.$store.state.user.setForm }
|
this.setForm = { ...this.$store.state.user.setForm }
|
||||||
console.log(this.$store.state.user.setForm)
|
console.log(this.$store.state.user.setForm)
|
||||||
}
|
},
|
||||||
|
// 退出新手引导
|
||||||
|
exitGuide() {
|
||||||
|
for (let key in this.guideStep) {
|
||||||
|
this.guideStep[key].show = false
|
||||||
|
}
|
||||||
|
this.currentStep = -1
|
||||||
|
localStorage.setItem('currentStep', this.currentStep)
|
||||||
|
localStorage.setItem('guideStep', JSON.stringify(this.guideStep))
|
||||||
|
this.close()
|
||||||
|
},
|
||||||
|
// 上一步
|
||||||
|
prevStep(e) {
|
||||||
|
this.guideStep[this.currentStep].show = false
|
||||||
|
this.currentStep = parseInt(this.currentStep) - 1
|
||||||
|
if (this.guideStep[this.currentStep]) {
|
||||||
|
this.guideStep[this.currentStep].show = true
|
||||||
|
localStorage.setItem('guideStep', JSON.stringify(this.guideStep))
|
||||||
|
localStorage.setItem('currentStep', this.currentStep)
|
||||||
|
if (this.currentStep == 7) {
|
||||||
|
this.close()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.exitGuide()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 下一步
|
||||||
|
nextStep(e) {
|
||||||
|
this.guideStep[this.currentStep].show = false
|
||||||
|
this.currentStep = parseInt(this.currentStep) + 1
|
||||||
|
if (this.guideStep[this.currentStep]) {
|
||||||
|
this.guideStep[this.currentStep].show = true
|
||||||
|
localStorage.setItem('guideStep', JSON.stringify(this.guideStep))
|
||||||
|
localStorage.setItem('currentStep', this.currentStep)
|
||||||
|
} else {
|
||||||
|
this.exitGuide()
|
||||||
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -213,6 +213,7 @@ const defaultData = {
|
|||||||
lack_ink: 0, // 缺墨警告
|
lack_ink: 0, // 缺墨警告
|
||||||
cover_flag: false, //是否盖盖
|
cover_flag: false, //是否盖盖
|
||||||
printer_name: '', //设备名称
|
printer_name: '', //设备名称
|
||||||
|
printer_path: '', //设备路径
|
||||||
printer_status: 'I', //设备状态 数字转成字符为I
|
printer_status: 'I', //设备状态 数字转成字符为I
|
||||||
printer_tray: 'I', //设备托盘状态 数字转成字符为I
|
printer_tray: 'I', //设备托盘状态 数字转成字符为I
|
||||||
red_last: 0, //红色墨盒遗留
|
red_last: 0, //红色墨盒遗留
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user