<template> <div class="enter pagex"> <div class="enter-con"> <el-form :inline="true" :model="formInline" class="demo-form-inline"> <el-form-item label="状态"> <el-select v-model="formInline.status" placeholder="全部"> <el-option label="全部" value=""></el-option> <el-option label="待处理" value="1"></el-option> <el-option label="处理中" value="2"></el-option> <el-option label="已处理" value="3"></el-option> <el-option label="失败" value="4"></el-option> </el-select> </el-form-item> <el-form-item label="更新日期"> <el-date-picker v-model="formInline.date" value-format="yyyy-MM-dd" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker> </el-form-item> <el-form-item> <el-button type="primary" @click="submit">搜索</el-button> </el-form-item> </el-form> <div class="btn-nav clr"> <el-upload class="upload-demo fl" :data="fileData" :action="uploadUrl" :on-change="handleChange" multiple> <div class="fl dcg">导入</div> </el-upload> <a :href="downHref" ref="downs" target="_blank" style="display:none">下载</a> <a class="fl dcg" :href="downUrl" target="_blank">下载模版</a> <div class="fl dcg delbtn" @click="del">删除</div> </div> <div class="data-box th-all" v-if="tableData"> <el-table :data="tableData" border max-height="600" @selection-change="handleSelectionChange"> <el-table-column fixed type="selection" width="40"></el-table-column> <el-table-column label="单号" min-width="20%"> <template slot-scope="scope"> <a :href="'/#/listDetail?sn='+scope.row.up_sn+'&id='+scope.row.id" class="f-blue">{{ scope.row.up_sn }}</a> </template> </el-table-column> <el-table-column prop="file_name" label="文件名字" min-width="20%"> </el-table-column> <el-table-column prop="status" label="状态" min-width="20%"> <template slot-scope="scope"> <span v-if="scope.row.status==1" class="f-green">待处理</span> <span v-else-if="scope.row.status==2" class="f-yellow1">处理中</span> <span v-else-if="scope.row.status==3">已处理</span> <span v-else-if="scope.row.status==4" class="f-red1">失败</span> </template> </el-table-column> <el-table-column prop="latest_notice" label="最新上传状态" min-width="20%"> </el-table-column> <el-table-column prop="create_time" label="上传时间" width="160"> </el-table-column> </el-table> <el-pagination layout="total, sizes, prev, pager, next, jumper" :page-sizes="[10, 20, 50, 100, 200]" :total="total" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="page"></el-pagination> </div> </div> <Menu/> </div> </template> <script> import Vue from 'vue'; import Menu from "@/components/menu.vue"; import Tool from '../../tool' import {NODE_ENVS} from "../../ajax"; import {Button, DatePicker, Dialog, Dropdown, DropdownItem, DropdownMenu, Form, FormItem, Input, Message, MessageBox, Option, Pagination, Select, Table, TableColumn, Upload} from 'element-ui' Vue.prototype.$message = Message Vue.use(Button).use(Form).use(Select).use(Option).use(Input).use(FormItem).use(Dialog).use(Pagination) Vue.use(DatePicker).use(Dropdown).use(DropdownMenu).use(DropdownItem).use(TableColumn).use(Table).use(Upload) export default { name: "enter", data() { return { total: 0, limit: 10, page: 1, downHref: "", uploadUrl: NODE_ENVS + '/api/uploadSku/import', fileData: {token: Tool.getCookie('token')}, downUrl: NODE_ENVS + '/api/uploadSku/downUploadCsv?token=' + Tool.getCookie('token'), formInline: { status: '', date: '' }, tableData: "", multipleSelection: [] }; }, watch: { 'formInline.date'(val) { if (!val) { this.formInline.date = [] } } }, created() { this.getData(); }, computed: {}, methods: { getData() { this.$http('get', "/api/uploadSku/list", { page: this.page, limit: this.limit, status: this.formInline.status, action_time: this.formInline.date[0], end_time: this.formInline.date[1] }).then(res => { if (res.code === 0) { this.tableData = res.data.list || []; this.total = Number(res.data.total) || 0; } else { this.$message({ message: res.msg, type: 'warning' }); } }) }, submit() { this.page = 1; this.getData(); }, handleChange(file, fileList) { if (!file.response) { return false; } if (file.response.code === 0) { this.$message({ message: '导入成功', type: 'success' }); this.page = 1; this.getData(); } else { this.$message(file.response.msg); } }, checkdr() { if (this.multipleSelection.length > 1) { this.$message({ message: '只能选择一条数据导入', type: 'warning' }); return } if (this.multipleSelection.length == 0) { this.$message({ message: '请至少选择一条数据导入', type: 'warning' }); return } this.downHref = NODE_ENVS + '/api/uploadSku/downResult?id=' + this.multipleSelection[0]['id'] + '&token=' + Tool.getCookie('token') setTimeout(() => { this.$refs.downs.click() }, 10) }, del() { if (this.multipleSelection.length == 0) { this.$message({ message: '请至少选择一条数据', type: 'warning' }); return; } var arr = []; for (var i = 0; i < this.multipleSelection.length; i++) { arr.push(this.multipleSelection[i]['id']) } MessageBox.confirm('确认到删除当前勾选数据吗?', { type: 'error' }).then(() => { this.$http('get', "/api/uploadSku/del", { log_ids: arr.join(",") }).then(res => { if (res.code === 0) { this.$message({ message: '删除成功', type: 'success' }); this.getData() } else { this.$message({ message: res.msg, type: 'warning' }); } }) }).catch(() => { }) }, handleSizeChange(val) { this.limit = val; this.getData(); }, handleCurrentChange(val) { this.page = val; this.getData(); }, handleSelectionChange(val) { this.multipleSelection = val || []; } }, components: { Menu } }; </script> <style scoped> @import "../../assets/css/store/enter.min.css"; </style>