完善新建作业流程
This commit is contained in:
@@ -1,246 +1,311 @@
|
||||
<template>
|
||||
<div class="add_box">
|
||||
<el-dialog center :visible.sync="addShow" width="80%" top="10vh" title="新建作业" :close-on-press-escape="false" :close-on-click-modal="false" :show-close="false">
|
||||
<div @click="close" class="close_box">
|
||||
<img src="@/assets/images/Close_icon.png" />
|
||||
</div>
|
||||
<div class="work_box">
|
||||
<div class="flex_box flex_row_between work_top">
|
||||
<div class="flex_box">
|
||||
<div class="flex_box work_top_item">
|
||||
<div class="work_top_label">容量:</div>
|
||||
<div class="work_top_val">
|
||||
<el-select v-model="form.capacity" placeholder="请选择">
|
||||
<el-option v-for="item in capacityList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex_box work_top_item">
|
||||
<div class="work_top_label">拷贝类型:</div>
|
||||
<div class="work_top_val">
|
||||
<el-select v-model="form.copy" placeholder="请选择">
|
||||
<el-option v-for="item in copyList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-popover v-model="setShow" placement="bottom-end" trigger="click">
|
||||
<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 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>
|
||||
<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)"
|
||||
>
|
||||
<div @click="close" class="close_box">
|
||||
<img src="@/assets/images/Close_icon.png" />
|
||||
</div>
|
||||
<div class="flex_box flex_col_top work_main">
|
||||
<div class="work_left">
|
||||
<div class="flex_box flex_row_between work_left_top">
|
||||
<div class="flex_box">
|
||||
<div class="work_left_top_label">内容</div>
|
||||
<div @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 class="work_box">
|
||||
<div class="flex_box flex_row_between work_top">
|
||||
<div class="flex_box">
|
||||
<div class="flex_box work_top_item">
|
||||
<div class="work_top_label">光盘类型:</div>
|
||||
<div class="work_top_val">
|
||||
<el-select v-model="form.cd_type" placeholder="请选择">
|
||||
<el-option v-for="item in cd_types" :key="item.value" :label="item.label" :value="item.value"> </el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="work_left_top_input">
|
||||
<el-input placeholder="请输入卷标" v-model="form.volume">
|
||||
<template slot="prepend">卷标</template>
|
||||
</el-input>
|
||||
<div class="flex_box work_top_item">
|
||||
<div class="work_top_label">拷贝类型:</div>
|
||||
<div class="work_top_val">
|
||||
<el-select v-model="form.copy" 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 class="work_files">
|
||||
<div class="work_files_box">
|
||||
<!-- 空文件 -->
|
||||
<file-empty v-if="!fileList.length"></file-empty>
|
||||
<el-popover v-model="setShow" placement="bottom-end" trigger="click">
|
||||
<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 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="work_files_progress">
|
||||
<div class="flex_box work_top_set" slot="reference">
|
||||
<img src="@/assets/images/Setting_icon.png" />
|
||||
<div>高级作业设置</div>
|
||||
</div>
|
||||
</el-popover>
|
||||
</div>
|
||||
<div class="flex_box flex_col_top work_main">
|
||||
<div class="work_left">
|
||||
<div class="flex_box flex_row_between work_left_top">
|
||||
<div class="flex_box">
|
||||
<div class="work_left_top_label">内容</div>
|
||||
<div @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 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" :onSizechange="sizeChange" :complete="upload_over" />
|
||||
</div>
|
||||
<!-- <div class="work_files_progress">
|
||||
<div class="work_files_progress_content" :style="{ width: fileProgess + '%' }"></div>
|
||||
<div class="work_files_progress_text">0.0MB/0MB</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="work_right">
|
||||
<div class="flex_box work_right_top">
|
||||
<div class="flex_box">
|
||||
<div class="work_right_top_label">标签</div>
|
||||
<el-select v-model="form.capacity" placeholder="选择一个标签或点击创建标签">
|
||||
<el-option v-for="item in capacityList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
|
||||
</el-select>
|
||||
<div class="work_right_top_file">···</div>
|
||||
</div>
|
||||
<div 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="@/assets/images/soon.jpg" />
|
||||
<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 class="work_right">
|
||||
<div class="flex_box work_right_top">
|
||||
<div class="flex_box">
|
||||
<div class="work_right_top_label">标签</div>
|
||||
<el-select @change="changeTemplate" v-model="currentTemplate" placeholder="选择一个标签或点击创建标签">
|
||||
<el-option v-for="item in templates" :key="item.value" :label="item.label" :value="item.value"> </el-option>
|
||||
</el-select>
|
||||
<div @click="openFile" class="work_right_top_file">···</div>
|
||||
</div>
|
||||
<div class="work_right_top_add">新建标签</div>
|
||||
</div>
|
||||
<div class="wook_soon_list">
|
||||
<div v-for="(item, index) in soonList" :key="index" class="flex_box wook_soon_item">
|
||||
<div class="wook_soon_label">OUT_TEXT_4[正面]</div>
|
||||
<div class="wook_soon_input">
|
||||
<el-input v-model="item.value" placeholder="请输入"></el-input>
|
||||
<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 class="wook_soon_list">
|
||||
<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">
|
||||
<el-input v-model="item.val" placeholder="请输入"></el-input>
|
||||
</div>
|
||||
<div @click="openFile2" v-if="item.type == 3 || item.type == 4 || item.type == 5" class="wook_soon_add">添加字段</div>
|
||||
</div>
|
||||
<div class="wook_soon_add">添加字段</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div slot="footer" class="flex_box flex_row_between footer_box">
|
||||
<div class="flex_box footer_main">
|
||||
<div class="footer_input">
|
||||
<el-input placeholder="请输入数量" v-model="form.number">
|
||||
<template slot="prepend">数量</template>
|
||||
</el-input>
|
||||
<div slot="footer" class="flex_box flex_row_between footer_box">
|
||||
<div class="flex_box footer_main">
|
||||
<div class="footer_input">
|
||||
<el-input placeholder="请输入数量" v-model="form.task_freq">
|
||||
<template slot="prepend">数量</template>
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex_box footer_btns">
|
||||
<el-button type="primary" class="footer_save" @click="workSubmit">保存</el-button>
|
||||
<el-button type="primary" class="footer_submit" @click="workSubmit">提交</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex_box footer_btns">
|
||||
<el-button type="primary" class="footer_save" @click="workSave">保存</el-button>
|
||||
<el-button type="primary" class="footer_submit" @click="workSubmit">提交</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 上传文件区域 -->
|
||||
<input type="file" accept=".cs,.soon" @change="fileLoad" ref="refFile" style="display: none" />
|
||||
<input type="file" accept=".csv" @change="fileLoad2" ref="refFile2" style="display: none" />
|
||||
<input type="file" accept="..zip,.rar" @change="fileLoad3" ref="refFile3" style="display: none" />
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
const { dialog } = require('@electron/remote')
|
||||
let fs = require('fs')
|
||||
let path = require('path')
|
||||
const { app, dialog } = require('@electron/remote')
|
||||
const { exec } = require('child_process')
|
||||
const { ipcRenderer } = require('electron')
|
||||
import { mapGetters } from 'vuex'
|
||||
const dayjs = require('dayjs')
|
||||
|
||||
import fileEmpty from './files/fileEmpty'
|
||||
import files from './files/file'
|
||||
export default {
|
||||
name: 'UserInfo',
|
||||
components: { fileEmpty },
|
||||
components: { fileEmpty, files },
|
||||
data() {
|
||||
return {
|
||||
addShow: true,
|
||||
form: {
|
||||
number: 1,
|
||||
capacity: 1,
|
||||
copy: 1,
|
||||
volume: '2024-10-17'
|
||||
addShow: false,
|
||||
submitLoading: false,
|
||||
size_form: null,
|
||||
type_form: 0,
|
||||
file_form: 0,
|
||||
juanbiao_form: '',
|
||||
options: {
|
||||
target: '/upload/',
|
||||
testChunks: false
|
||||
},
|
||||
capacityList: [
|
||||
zip_attrs: {
|
||||
accept: '.zip'
|
||||
},
|
||||
iso_attrs: {
|
||||
accept: 'iso/img'
|
||||
},
|
||||
form: {
|
||||
task_uuid: '',
|
||||
cd_type: 2,
|
||||
json_file: '',
|
||||
udf_file: '',
|
||||
label: '2024-10-17',
|
||||
has_copy_task: false,
|
||||
has_print_task: false,
|
||||
ass_task: [],
|
||||
task_freq: 1
|
||||
},
|
||||
testForm: {
|
||||
req_name: 'submit_task',
|
||||
req_type: 1,
|
||||
req_info: {
|
||||
task_uuid: 'aaaaaaaaaaaaaaa',
|
||||
json_file: '/home/test/test.soon',
|
||||
udf_file: '/home/test/temp.csv',
|
||||
label: '2024-11-07',
|
||||
cd_type: 1,
|
||||
has_copy_task: true,
|
||||
has_print_task: true,
|
||||
ass_task: [
|
||||
{
|
||||
ass_task_index: 1,
|
||||
path_file: [
|
||||
'/home/test/code/CDDateBank/build-CDDateBank-Imported_Kit_a412ee-Debug/libworkDllCD.so',
|
||||
'/home/test/code/CDDateBank/build-CDDateBank-Imported_Kit_a412ee-Debug/libzint.so.2.12',
|
||||
'/home/test/code/CDDateBank/build-CDDateBank-Imported_Kit_a412ee-Debug/privkey.txt'
|
||||
]
|
||||
}
|
||||
],
|
||||
task_freq: 1
|
||||
}
|
||||
},
|
||||
// CD类型:CD:1,DVD:2, DVD_DL:3,BD:4,BD_DL:5,BD_TL:6,BD_QL:7
|
||||
cd_types: [
|
||||
{
|
||||
value: 1,
|
||||
label: '4GB'
|
||||
label: 'CD'
|
||||
},
|
||||
{
|
||||
value: 2,
|
||||
label: '8GB'
|
||||
label: 'DVD'
|
||||
},
|
||||
{
|
||||
value: 3,
|
||||
label: '16GB'
|
||||
}
|
||||
],
|
||||
copyList: [
|
||||
{
|
||||
value: 1,
|
||||
label: '复制'
|
||||
label: 'DVD_DL'
|
||||
},
|
||||
{
|
||||
value: 2,
|
||||
label: '打印'
|
||||
value: 4,
|
||||
label: 'BD'
|
||||
},
|
||||
{
|
||||
value: 3,
|
||||
label: '复制与打印'
|
||||
value: 5,
|
||||
label: 'BD_DL'
|
||||
},
|
||||
{
|
||||
value: 6,
|
||||
label: 'BD_TL'
|
||||
},
|
||||
{
|
||||
value: 7,
|
||||
label: 'BD_QL'
|
||||
}
|
||||
],
|
||||
// 文件列表
|
||||
fileList: [],
|
||||
copyList: [],
|
||||
fileProgess: 30,
|
||||
// 模板列表
|
||||
templates: [],
|
||||
currentTemplate: '',
|
||||
// soon文件数据
|
||||
soonList: [
|
||||
{
|
||||
label: '正面',
|
||||
value: 'tj44545fsa13yt544r15e6h4r6'
|
||||
},
|
||||
{
|
||||
label: '二维码',
|
||||
value: 'soon'
|
||||
}
|
||||
],
|
||||
soonform: {},
|
||||
fileData: {},
|
||||
soonList: [],
|
||||
file_name: null,
|
||||
file_name3: '添加图片文件',
|
||||
upload_disk: '',
|
||||
soonImg: '',
|
||||
showList: true,
|
||||
setShow: false,
|
||||
setForm: {
|
||||
@@ -318,57 +383,310 @@ export default {
|
||||
computed: {
|
||||
...mapGetters(['name', 'roles'])
|
||||
},
|
||||
mounted() {
|
||||
this.getTemplates()
|
||||
this.form.task_uuid = this.genTaskUUID()
|
||||
this.form.label = dayjs().format('YYYY-MM-DD')
|
||||
},
|
||||
methods: {
|
||||
// 选择文件
|
||||
addFile() {
|
||||
const _this = this
|
||||
dialog
|
||||
.showOpenDialog({
|
||||
properties: ['multiSelections']
|
||||
})
|
||||
.then(async (res) => {
|
||||
// for (const item of res.filePaths) {
|
||||
// await fs.stat(item, function (err, res) {
|
||||
// if (err) {
|
||||
// return false
|
||||
// }
|
||||
// _this.insertList({
|
||||
// name: getFileName(item),
|
||||
// path: item,
|
||||
// size: res.size,
|
||||
// folder: false
|
||||
// })
|
||||
// })
|
||||
// }
|
||||
})
|
||||
},
|
||||
// 添加文件处理
|
||||
addFolder() {
|
||||
const _this = this
|
||||
dialog
|
||||
.showOpenDialog({
|
||||
properties: ['openDirectory', 'multiSelections']
|
||||
})
|
||||
.then((res) => {
|
||||
// for (const item of res.filePaths) {
|
||||
// const result = _this.insertList({
|
||||
// name: getFileName(item),
|
||||
// path: item,
|
||||
// size: -1,
|
||||
// folder: true
|
||||
// })
|
||||
// if (result) {
|
||||
// calcSize(item, _this.folderCalcCallback)
|
||||
// }
|
||||
// }
|
||||
})
|
||||
this.$refs.files.addFolder()
|
||||
},
|
||||
addFile() {
|
||||
this.$refs.files.addFile()
|
||||
},
|
||||
sizeChange(size) {
|
||||
this.size = size
|
||||
},
|
||||
async upload_over() {
|
||||
// //左侧内容上传结束
|
||||
// if (!this.upload_flag) {
|
||||
// return
|
||||
// }
|
||||
// this.upload_flag = false
|
||||
// if (this.flag_cont_up) {
|
||||
// //如果是点击按钮开启的上传,则进行上传右侧
|
||||
// if ((!this.isNew && this.fileData) || (this.isNew && this.fileLists[0])) {
|
||||
// //开启了标签则检测并上传
|
||||
// let files_n_incr = 1
|
||||
// let data1 = new FormData()
|
||||
// if (this.isNew) {
|
||||
// if (this.fileLists[0]) {
|
||||
// data1.append(`file${files_n_incr}`, this.fileLists[0]) //标签cs文件
|
||||
// files_n_incr++
|
||||
// } else {
|
||||
// this.$message({
|
||||
// offset: 100,
|
||||
// message: this.$t('work.pleaseUploadTag'),
|
||||
// type: 'warning'
|
||||
// })
|
||||
// return
|
||||
// }
|
||||
// } else {
|
||||
// if (this.fileData && !this.fileLists[0]) {
|
||||
// //纯打开,需要上传的是as文件
|
||||
// let _file = new File([JSON.stringify(this.fileData)], this.saveWorkList.taskName, { type: 'text/plain' })
|
||||
// data1.append(`file${files_n_incr}`, _file) //标签cs文件
|
||||
// files_n_incr++
|
||||
// } else if (this.fileData && this.fileLists[0]) {
|
||||
// //打开后,又重新选择了soon文件
|
||||
// data1.append(`file${files_n_incr}`, this.fileLists[0]) //标签cs文件
|
||||
// files_n_incr++
|
||||
// } else {
|
||||
// this.$message({
|
||||
// offset: 100,
|
||||
// message: this.$t('work.pleaseUploadTag'),
|
||||
// type: 'warning'
|
||||
// })
|
||||
// return
|
||||
// }
|
||||
// }
|
||||
// if (this.$refs.refFile2.files.length != 0) {
|
||||
// // 有csv合并文件
|
||||
// data1.append(`file${files_n_incr}`, this.$refs.refFile2.files[0]) //csv文件
|
||||
// data1.append(`csv`, true) //csv文件flag
|
||||
// //console.log(this.$refs.refFile2.files);
|
||||
// files_n_incr++
|
||||
// } else {
|
||||
// data1.append(`csv`, false) //csv文件flag
|
||||
// }
|
||||
// for (let item of this.soonList) {
|
||||
// if (item.type == 1 && this.$refs[item.origin_name].files[0] != undefined && this.$refs.refFile2.files.length != 0) {
|
||||
// //有合并文件
|
||||
// //data1.append(item.origin_name, this.$refs[item.origin_name].files[0]);//图片文件
|
||||
// data1.append(`file${files_n_incr}`, this.$refs[item.origin_name].files[0]) //图片文件
|
||||
// files_n_incr++
|
||||
// } else if (item.type == 1 && this.$refs[item.origin_name].files[0] != undefined && this.$refs.refFile2.files.length == 0) {
|
||||
// //无合并文件
|
||||
// data1.append(item.origin_name, this.$refs[item.origin_name].files[0]) //图片文件
|
||||
// //data1.append(`file${files_n_incr}`, this.$refs[item.origin_name].files[0]);//图片文件
|
||||
// files_n_incr++
|
||||
// } else if ((item.type == 3 || item.type == 5) && this.$refs.refFile2.files.length == 0) {
|
||||
// //无合并文件
|
||||
// let data = this.form[item.origin_name]
|
||||
// if (data == '' || data == undefined || data == null) {
|
||||
// data = item.default
|
||||
// }
|
||||
// data1.append(item.origin_name, data) //合成文字与条形码 有默认值的
|
||||
// } else if (item.type == 4 && this.$refs.refFile2.files.length == 0) {
|
||||
// //二维码
|
||||
// data1.append(item.origin_name, this.form[item.origin_name])
|
||||
// }
|
||||
// }
|
||||
// this.$message({ offset: 100, message: this.$t('work.uploadingTag') })
|
||||
// let pathName
|
||||
// if (this.high_setting_form.localfiles) {
|
||||
// //打开本地选项
|
||||
// let rootFile = this.$refs.uploader.uploader.getRoot()
|
||||
// if (rootFile.fileList.length != 1) {
|
||||
// this.$message({
|
||||
// offset: 100,
|
||||
// message: this.$t('work.oneFolder'),
|
||||
// type: 'warning'
|
||||
// })
|
||||
// return
|
||||
// }
|
||||
// let filePath = rootFile.fileList[0]
|
||||
// if (!filePath.isFolder) {
|
||||
// this.$message({
|
||||
// offset: 100,
|
||||
// message: this.$t('work.notFolder'),
|
||||
// type: 'warning'
|
||||
// })
|
||||
// return
|
||||
// }
|
||||
// pathName = filePath.name
|
||||
// } else {
|
||||
// pathName = this.upload_disk
|
||||
// }
|
||||
// this.$axios({
|
||||
// method: 'post',
|
||||
// url: '/upload/' + pathName,
|
||||
// headers: {
|
||||
// 'Content-Type': 'multipart/form-data;boundary=' + new Date().getTime()
|
||||
// },
|
||||
// data: data1
|
||||
// }).then((res) => {
|
||||
// this.submit() //调用提交函数
|
||||
// })
|
||||
// } else {
|
||||
// //未开启标签则直接提交
|
||||
// this.submit()
|
||||
// }
|
||||
// }
|
||||
// this.flag_cont_up = false
|
||||
},
|
||||
// 保存
|
||||
workSave() {
|
||||
|
||||
},
|
||||
workSave() {},
|
||||
// 提交
|
||||
workSubmit() {
|
||||
|
||||
let that = this
|
||||
that.submitLoading = true
|
||||
// that.$store.dispatch('chat/websocketsend', that.testForm)
|
||||
setTimeout(() => {
|
||||
that.$message({
|
||||
message: '新建作业成功',
|
||||
type: 'success'
|
||||
})
|
||||
that.submitLoading = false
|
||||
that.close()
|
||||
}, 2000)
|
||||
},
|
||||
// 获取模板文件列表
|
||||
getTemplates() {
|
||||
fs.readdir('User Templates', (err, files) => {
|
||||
if (err) {
|
||||
console.log(err)
|
||||
} else {
|
||||
const fileList = files.map((file) => {
|
||||
return {
|
||||
label: file,
|
||||
value: path.join('User Templates', file)
|
||||
}
|
||||
})
|
||||
this.templates = fileList
|
||||
}
|
||||
})
|
||||
},
|
||||
// 选择模板
|
||||
changeTemplate(e) {
|
||||
fs.readFile(e, 'utf8', (err, data) => {
|
||||
if (err) {
|
||||
console.error('读取文件时出错:', err)
|
||||
return
|
||||
}
|
||||
let name = e.split('\\')[1]
|
||||
this.fileLists[0] = new File([data], name, {
|
||||
type: ''
|
||||
})
|
||||
this.readFile(data)
|
||||
})
|
||||
},
|
||||
// 读取文件信息
|
||||
readFile(data) {
|
||||
let that = this
|
||||
that.fileData = JSON.parse(data)
|
||||
that.soonform = {}
|
||||
that.soonList = []
|
||||
for (let item of that.fileData.frontData) {
|
||||
if (item.type == 1 || item.type == 3 || item.type == 4 || item.type == 5) {
|
||||
that.soonList.push({
|
||||
name: item.name + '[正面]',
|
||||
val: item.DefaultText == undefined ? '' : item.DefaultText,
|
||||
origin_name: item.name,
|
||||
type: item.type,
|
||||
default: item.DefaultText == undefined ? undefined : item.DefaultText
|
||||
}) //前
|
||||
that.$set(that.soonform, item.name, item.DefaultText == undefined ? '' : item.DefaultText)
|
||||
}
|
||||
}
|
||||
for (let item of that.fileData.backData) {
|
||||
if (item.type == 1 || item.type == 3 || item.type == 4 || item.type == 5) {
|
||||
that.soonList.push({
|
||||
name: item.name + '[背面]',
|
||||
val: item.DefaultText == undefined ? '' : item.DefaultText,
|
||||
origin_name: item.name,
|
||||
type: item.type,
|
||||
default: item.DefaultText == undefined ? undefined : item.DefaultText
|
||||
})
|
||||
that.$set(that.soonform, item.name, item.DefaultText == undefined ? '' : item.DefaultText)
|
||||
}
|
||||
}
|
||||
that.soonImg = that.fileData.frontDisplayPic
|
||||
// that.$refs.refFile2.value = ''
|
||||
// that.$refs.refFile3.value = ''
|
||||
console.log(that.fileData, that.soonList, that.soonform)
|
||||
that.csvIsExist = false
|
||||
that.file_name = null
|
||||
that.file_name3 = '添加图片文件'
|
||||
},
|
||||
// 打开标签程序
|
||||
openDesign() {
|
||||
// 启动exe程序
|
||||
exec('"D:\\Program Files\\Cardsoon\\SoonDesign\\SoonDesign.exe"', (error, stdout, stderr) => {
|
||||
if (error) {
|
||||
console.error(`执行的错误: ${error}`)
|
||||
return
|
||||
}
|
||||
console.log(`stdout: ${stdout}`)
|
||||
console.error(`stderr: ${stderr}`)
|
||||
})
|
||||
},
|
||||
getPrintName(id) {
|
||||
return this.$t('index.wordSpace') + id.substr(-5)
|
||||
},
|
||||
getPrintName1(id) {
|
||||
for (let i = 0; i < this.printerList.length; i++) {
|
||||
if (this.printerList[i].PrinterID == id) {
|
||||
return this.$t('index.wordSpace') + this.toChar(i)
|
||||
}
|
||||
}
|
||||
},
|
||||
// 文件上传处理
|
||||
openFile() {
|
||||
this.$refs.refFile.dispatchEvent(new MouseEvent('click'))
|
||||
},
|
||||
openFile2() {
|
||||
this.$refs.refFile2.dispatchEvent(new MouseEvent('click'))
|
||||
},
|
||||
openFile3() {
|
||||
this.$refs.refFile3.dispatchEvent(new MouseEvent('click'))
|
||||
},
|
||||
fileLoad() {
|
||||
this.fileLists = this.$refs.refFile.files
|
||||
let selectedFile = this.fileLists[0]
|
||||
let reader = new FileReader()
|
||||
reader.readAsText(selectedFile)
|
||||
let _this = this
|
||||
_this.currentTemplate = ''
|
||||
reader.onload = function () {
|
||||
_this.readFile(this.result)
|
||||
}
|
||||
},
|
||||
fileLoad2() {
|
||||
this.file_name = this.$refs.refFile2.files[0].name
|
||||
this.csvLoad()
|
||||
},
|
||||
fileLoad3() {
|
||||
this.file_name3 = this.$refs.refFile3.files[0].name
|
||||
},
|
||||
csvLoad() {
|
||||
let selectedFile = this.$refs.refFile2.files[0]
|
||||
let reader = new FileReader()
|
||||
reader.readAsText(selectedFile)
|
||||
let _this = this
|
||||
reader.onload = function () {
|
||||
//let flag = true; //校验结果
|
||||
let first_line = this.result.split('\n')[0].replace('\r', '').split(',') //第一行
|
||||
let second_line = this.result.split('\n')[1].replace('\r', '').split(',') //第二行
|
||||
let i = 0
|
||||
for (let item of first_line) {
|
||||
_this.$set(_this.form, item, second_line[i])
|
||||
i++
|
||||
}
|
||||
_this.csvIsExist = true
|
||||
}
|
||||
},
|
||||
format(percentage) {
|
||||
let mb = (this.size_form * 931.3).toFixed(0)
|
||||
return (this.size / (1024 * 1024)).toFixed(1) + 'MB / ' + mb + 'MB'
|
||||
},
|
||||
genTaskUUID() {
|
||||
var myDate = new Date()
|
||||
var dateStr =
|
||||
myDate.getFullYear().toString() +
|
||||
(myDate.getMonth() + 1 >= 10 ? (myDate.getMonth() + 1).toString() : '0' + (myDate.getMonth() + 1).toString()) +
|
||||
(myDate.getDate() > 9 ? myDate.getDate().toString() : '0' + myDate.getDate().toString()) +
|
||||
(myDate.getHours() > 9 ? myDate.getHours().toString() : '0' + myDate.getHours().toString()) +
|
||||
(myDate.getMinutes() > 9 ? myDate.getMinutes().toString() : '0' + myDate.getMinutes().toString()) +
|
||||
(myDate.getSeconds() > 9 ? myDate.getSeconds().toString() : '0' + myDate.getSeconds().toString()) +
|
||||
myDate
|
||||
.getTime()
|
||||
.toString()
|
||||
.slice(myDate.getTime().toString().length - 3, myDate.getTime().toString().length - 1)
|
||||
// return 'W' + Math.random().toString(36).substr(2)
|
||||
return dateStr
|
||||
},
|
||||
show() {
|
||||
this.addShow = true
|
||||
@@ -730,6 +1048,27 @@ export default {
|
||||
padding: 0 28px;
|
||||
.footer_main {
|
||||
.footer_input {
|
||||
::v-deep {
|
||||
.el-input-group__prepend {
|
||||
font-size: 16px;
|
||||
color: #000;
|
||||
font-weight: 500;
|
||||
}
|
||||
.el-input__inner {
|
||||
width: 180px;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
font-size: 16px;
|
||||
color: #000;
|
||||
font-weight: 500;
|
||||
}
|
||||
.el-input__icon {
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
font-weight: bold;
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.footer_btns {
|
||||
|
||||
Reference in New Issue
Block a user