Compare commits

..

2 Commits

3 changed files with 319 additions and 245 deletions

View File

@ -208,6 +208,16 @@ const downloadKateOrdersExcel = (data) => {
})
}
const downloadPickTaskRecordsExcel = (data) => {
return request({
url: '/excel/downloadPickTaskRecordsExcel',
method: 'post',
responseType: 'blob',
data: data,
timeout: 600000
})
}
export {
uploadExcelStock,
uploadExcelGoods,
@ -230,5 +240,6 @@ export {
uploadWorkFlow,
uploadExcelWorkDate,
downloadWorkFlowExcel,
downloadKateOrdersExcel
downloadKateOrdersExcel,
downloadPickTaskRecordsExcel
}

View File

@ -402,7 +402,7 @@ export default {
// let blob = new Blob([res.data],{type: 'application/vnd.ms-excel'}); //blobblobtypexls
let blob = res.data //blob
// let _fileName = res.headers['content-disposition'].split(';')[1].split('=')[1]; //
let _fileName = "工单报表" + dateFormatter(new Date) + ".xlsx"
let _fileName = "未做工单报表" + dateFormatter(this.planStartDateQuery) + ".xlsx"
link.style.display = 'none'//
// URL

View File

@ -4,16 +4,24 @@
<div style="display: flex;justify-content: space-between;">
<el-row>
<el-input v-model="vehicleIdQuery" style="width: 158px; margin-right: 10px;" placeholder="箱号"
:suffix-icon="Search" />
:suffix-icon="Search"/>
<el-input v-model="standQuery" style="width: 158px; margin-right: 10px;" placeholder="工站"
:suffix-icon="Search" />
:suffix-icon="Search"/>
<el-select-v2 v-model="pickStatusQuery" style="width: 158px; margin-right: 10px;"
placeholder="请选择状态" :options="pickStatusOptions" @change="search()"></el-select-v2>
<el-button type="primary" @click="search()">搜索</el-button>
<el-button type="warning" @click="reset()">重置</el-button>
</el-row>
<el-row>
<el-date-picker v-model="dateQuery" type="date" placeholder="任务日期" :shortcuts="shortcuts"
style="width: 158px; margin-right: 10px;" clearable/>
<el-button style="background-color: #00CED1; color: #000; width: 120px"
@click="exportPickTaskRecords()">导出拣选任务记录
</el-button>
</el-row>
</div>
<br />
<br/>
<el-table :data="pickTaskList" stripe border v-loading="loading" class="table-class" highlight-current-row
max-height="650px" @row-click="getCurrentRow" :header-cell-style="{ 'text-align': 'center' }"
:cell-style="{ 'text-align': 'center' }">
@ -22,23 +30,23 @@
<el-radio :label="scope.row.pickTaskId" v-model="pickTaskId">&nbsp;</el-radio>
</template>
</el-table-column>
<el-table-column prop="pickTaskId" label="id" fixed="left" min-width="120px" show-overflow-tooltip />
<el-table-column prop="vehicleId" label="箱号" fixed="left" min-width="120px" />
<el-table-column prop="standId" label="站台号" fixed="left" min-width="120px" />
<el-table-column prop="pickStatus" label="拣选状态" :formatter="pickStatusFormat" min-width="120px" />
<el-table-column prop="pickTaskId" label="id" fixed="left" min-width="120px" show-overflow-tooltip/>
<el-table-column prop="vehicleId" label="箱号" fixed="left" min-width="120px"/>
<el-table-column prop="standId" label="站台号" fixed="left" min-width="120px"/>
<el-table-column prop="pickStatus" label="拣选状态" :formatter="pickStatusFormat" min-width="120px"/>
<el-table-column prop="lastUpdateTime" label="最近更新时间" :formatter="timeFormat" show-overflow-tooltip
min-width="120px" />
min-width="120px"/>
<el-table-column fixed="right" label="操作" width="120px">
<template v-slot="scope">
<el-button plain type="primary" @click="editCurrentRow(scope.row)">编辑</el-button>
</template>
</el-table-column>
</el-table>
<br />
<br/>
<el-pagination v-model:current-page="currentPage" v-model:page-size="pageSize" :page-sizes="[10, 25, 50]"
:small="false" :disabled="false" :background="false" :default-page-size="10"
layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="search"
@current-change="search" />
@current-change="search"/>
<el-dialog v-model="dialogVisible" title="拣选任务详细信息" width="40%" draggable :show-close="false">
<div
style="max-width: 100%; max-height: 500px; overflow: auto; display: flex; justify-content: center;">
@ -47,19 +55,19 @@
<el-row :gutter="16">
<el-col :span="12" :offset="0">
<el-form-item label="id" prop="pickTaskId">
<el-input v-model="pickTaskFormEntity.pickTaskId" disabled />
<el-input v-model="pickTaskFormEntity.pickTaskId" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工站" prop="vehicleId">
<el-input v-model="pickTaskFormEntity.vehicleId" disabled />
<el-input v-model="pickTaskFormEntity.vehicleId" disabled/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="12" :offset="0">
<el-form-item label="小盒子" prop="standId">
<el-input v-model="pickTaskFormEntity.standId" disabled />
<el-input v-model="pickTaskFormEntity.standId" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -86,15 +94,17 @@
<script setup>
import store from '@/store'
import { getPickTasksByPage, updatePickTaskInfo } from '@/api/taskMonitor.js'
import { errorBox } from '@/utils/myMessageBox.js'
import { ElMessage } from 'element-plus'
import { ref, reactive } from 'vue'
import { dateFormatter, timeFormatter } from '@/utils/formatter.js'
import { Search } from '@element-plus/icons-vue'
import {getPickTasksByPage, updatePickTaskInfo} from '@/api/taskMonitor.js'
import {errorBox} from '@/utils/myMessageBox.js'
import {ElMessage} from 'element-plus'
import {ref, reactive} from 'vue'
import {dateFormatter, timeFormatter} from '@/utils/formatter.js'
import {downloadPickTaskRecordsExcel} from "@/api/excel";
import {Search} from '@element-plus/icons-vue'
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
</script>
<script>
export default {
name: 'pickTaskMonitor',
data() {
@ -106,6 +116,7 @@ export default {
vehicleIdQuery: '',
standQuery: '',
pickStatusQuery: -99,
dateQuery: null,
loading: true,
dialogVisible: false,
pickTaskId: '',
@ -153,6 +164,20 @@ export default {
label: '已到达'
}
],
shortcuts: [
{
text: '今天',
value: new Date(),
},
{
text: '昨天',
value: () => {
const date = new Date()
date.setTime(date.getTime() - 3600 * 1000 * 24)
return date
},
},
],
}
},
mounted() {
@ -241,6 +266,44 @@ export default {
getCurrentRow(row) {
this.pickTaskId = row.pickTaskId
},
//
exportPickTaskRecords() {
if (this.dateQuery == null) {
errorBox('请选择日期')
return
}
const request = {
vehicleId: this.vehicleIdQuery,
standId: this.standQuery,
workDate: dateFormatter(this.dateQuery),
userName: store.getters.getUserName
}
downloadPickTaskRecordsExcel(request).then(res => {
const link = document.createElement('a');//a
try {
// let blob = new Blob([res.data],{type: 'application/vnd.ms-excel'}); //blobblobtypexls
let blob = res.data //blob
// let _fileName = res.headers['content-disposition'].split(';')[1].split('=')[1]; //
let _fileName = "拣选任务记录" + dateFormatter(this.dateQuery) + ".xlsx"
link.style.display = 'none'//
// URL
const url = window.URL || window.webkitURL || window.moxURL
link.href = url.createObjectURL(blob)
link.setAttribute('download', _fileName.substring(_fileName.lastIndexOf('_') + 1))
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
url.revokeObjectURL(link.href)//url
} catch (e) {
console.log(e)
errorBox('下载文件失败')
}
}).catch(err => {
console.log(err)
errorBox('导出失败')
})
},
},
}
</script>