完善新建作业流程

This commit is contained in:
24kycj
2024-11-07 21:50:06 +08:00
parent ca1a2e11b5
commit 2384fcf7f1
18 changed files with 1585 additions and 341 deletions
+575 -236
View File
@@ -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类型:CD1DVD2 DVD_DL:3BD4,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 {