<template>
|
<div class="special-management-page subpages-containter-box">
|
<search-bar @search="onSearch" @reset="onReset">
|
<el-form :inline="true" class="search-form" label-width="70px">
|
<el-form-item label="创建日期">
|
<el-date-picker v-model="query.dateRange" clearable class="default-form-width" value-format="YYYY-MM-DD" type="daterange"></el-date-picker>
|
</el-form-item>
|
<el-form-item label="序列号">
|
<el-input placeholder="请输入..." clearable class="default-form-width" v-model.trim="query.serialNumber"></el-input>
|
</el-form-item>
|
</el-form>
|
</search-bar>
|
|
|
<div class="table-header-between-row">
|
<div class="left-aside">
|
<el-button type="primary" @click="onNew">新建</el-button>
|
<upload-button
|
:margin-left="true"
|
:margin-right="true"
|
:accept-list="['.xls','.xlsx']"
|
:size-limit="2*1024*1024"
|
ajax-block="excel"
|
ajax-method="FileUploadForNoMesSerialNumberMgr"
|
@callback="onImportComplete"
|
/>
|
<el-button type="primary" @click="onExport">导出</el-button>
|
</div>
|
<div class="right-aside">
|
<el-button type="primary" @click="onDownload">模板下载</el-button>
|
</div>
|
</div>
|
|
<el-table :data="list" border stripe>
|
<el-table-column min-width="50" label="序号" fixed>
|
<template #default="scope">{{(queried.page-1)*queried.pageSize+(scope.$index+1)}}</template>
|
</el-table-column>
|
<el-table-column prop="SerialNumber" label="序列号" min-width="180" />
|
<el-table-column prop="CreateTime" label="创建时间" width="160" />
|
<el-table-column prop="ModifyTime" label="修改时间" width="160" />
|
<el-table-column prop="CreateBy" label="创建人" width="100" />
|
<el-table-column prop="ModifyBy" label="修改人" width="100" />
|
<el-table-column label="操作" width="100" align="center" fixed="right">
|
<template #default="scope">
|
<el-button type="danger" size="small" @click="onDelete(scope.row.Id)">删除</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
|
<div class="pagination-row">
|
<el-pagination :pager-count="5" layout="total, prev, pager, next, jumper" :total="total" @current-change="onPageList" />
|
</div>
|
|
<new-modal v-model:visible="newVisible" @submitCallback="onNewCallback" />
|
</div>
|
</template>
|
|
<script>
|
import SearchBar from '@/components/SearchBar.vue'
|
import NewModal from './components/NewModal.vue'
|
import UploadButton from '@/components/UploadButton.vue'
|
const defaultQuery = {
|
serialNumber:'',
|
serialNumber_FilterMode:'1',
|
isDeleted: false,
|
isDeleted_FilterMode: '2',
|
dateRange:[],
|
createTime:[]
|
}
|
export default {
|
name:'specialManagementPage',
|
components:{SearchBar,NewModal,UploadButton},
|
data(){
|
return {
|
selectList:{
|
series:[],
|
types:[],
|
modelTypes:[],
|
status:[]
|
},
|
list:[],
|
total:100,
|
query:{...defaultQuery},
|
queried:{...this.$config.pagination},
|
newVisible:false
|
}
|
},
|
mounted() {
|
this.init()
|
},
|
methods:{
|
/* 页面初始化 */
|
init(){
|
this.reset()
|
},
|
setDefaultDateRange(){
|
let _date = this.$utils.project.dayjs();
|
let _tempArr = [_date.format('YYYY-MM-DD')]
|
_date = _date.subtract(1, 'month').add(1, 'day')
|
_tempArr.unshift(_date.format('YYYY-MM-DD'))
|
this.query.dateRange = _tempArr;
|
},
|
/* 搜索按钮 */
|
onSearch(){
|
this.newList()
|
},
|
/* 重置按钮 */
|
onReset(){
|
this.reset()
|
},
|
reset(needLoading=true,callback){
|
this.query = {...defaultQuery}
|
this.setDefaultDateRange()
|
this.newList(needLoading,callback)
|
},
|
/* 翻页功能 */
|
onPageList(page){
|
this.queried.page = page;
|
this.getList();
|
},
|
/* 表格刷新至首页 */
|
newList(needLoading=true,callback){
|
this.queried = {...this.query,...this.$config.pagination}
|
if (this.queried.dateRange && (this.queried.dateRange instanceof Array) && this.queried.dateRange.length===2) {
|
this.queried.createTime[0] = this.queried.dateRange[0] + ' 00:00:00'
|
this.queried.createTime[1] = this.queried.dateRange[1] + ' 23:59:59'
|
} else {
|
this.queried.createTime = []
|
}
|
this.getList(callback,needLoading)
|
},
|
delRefresh(needLoading=true,callback){
|
let l = this.list.length;
|
if (l<=1) this.queried.page--;
|
if (this.queried.page<1) this.queried.page = 1;
|
this.getList(callback,needLoading)
|
},
|
/* 更新数据表 */
|
getList(callback,needLoading=true){
|
if (needLoading) {
|
this.$loading();
|
}
|
this.$api.post('Get',this.queried,{block:'special'}).then((d)=>{
|
this.total = d.total || 0;
|
this.list = (d.list || []).map((currentItem)=>{
|
currentItem.CreateTime = this.$utils.project.parseTimeStr(currentItem.CreateTime)
|
currentItem.ModifyTime = this.$utils.project.parseTimeStr(currentItem.ModifyTime)
|
return currentItem
|
})
|
if (needLoading) {
|
this.$loading().close();
|
}
|
callback && callback(true)
|
}).catch((err)=>{
|
if (needLoading) {
|
this.$loading().close();
|
}
|
callback && callback(false)
|
})
|
},
|
onNew(){
|
this.newVisible = true;
|
},
|
onNewCallback() {
|
this.reset()
|
},
|
onDelete(id){
|
this.$confirm('确认要进行删除操作吗?', '系统提示').then(()=>{
|
this.dealDelete(id)
|
}).catch(()=>{});
|
},
|
dealDelete(id) {
|
this.$loading();
|
this.$api.delete('LogicDelete',{id},{block:'special'}).then(()=>{
|
this.delRefresh(false,()=>{
|
this.$loading().close();
|
})
|
}).catch(()=>{
|
this.$loading().close();
|
})
|
},
|
onImportComplete(res){
|
this.reset()
|
},
|
onDownload(){
|
this.$loading();
|
this.$api.downFile('DownExcelTemplete',{filename:'WmsNoMesSerialNumberMgr.xlsx'},{block:'excel'}).then((d)=>{
|
this.$loading().close();
|
this.$utils.project.downLoadFile(d,'非本体机序列号模板.xlsx')
|
}).catch(()=>{
|
this.$loading().close();
|
})
|
},
|
onExport(){
|
this.$loading();
|
let params = JSON.parse(JSON.stringify(this.queried))
|
delete params.page;
|
delete params.pageSize;
|
this.$api.downFile('GetAll_Export',params,{block:'special'},{},'post').then((d)=>{
|
this.$loading().close();
|
this.$utils.project.downLoadFile(d,'非本体机序列号'+new Date().getTime()+'.xls')
|
}).catch(()=>{
|
this.$loading().close();
|
})
|
}
|
}
|
}
|
</script>
|
|
<style scoped lang="scss">
|
</style>
|