<template> <div class="product_container"> <div class="productFun"> <div class="productInput"> SN码 <div class="inputBox" style="width: 350px"> <el-input placeholder="请输入SN码固定标识/起始序列号/终止序列号" v-model="selectInfo.keyword" clearable class="product-input" > </el-input> </div> 设备型号 <div class="inputBox" style="width: 200px"> <el-input placeholder="请输入设备型号" v-model="selectInfo.productCode" clearable class="product-input" > </el-input> </div> </div> <div class="productBtn"> <el-button type="primary" icon="el-icon-search" class="btnItem" @click="selectData" >查询</el-button > <el-button type="primary" icon="el-icon-refresh-right" class="btnItem" @click="reset" >重置</el-button > <el-button type="success" icon="el-icon-circle-plus-outline" class="btnItem bggreen" @click="addCategory" >新增</el-button > <el-button type="danger" icon="el-icon-delete-solid" class="btnItem bgred" @click=" BatchDelete" >删除</el-button > <el-button type="primary" icon="el-icon-folder-opened" class="btnItem" @click="exportToExcel">导出</el-button > </div> </div> <el-table ref="multipleTable" :data="tableData.rows" :row-class-name="tableRowClassName" :header-cell-style="{ 'text-align': 'center', background: ' #2483b3', color: 'white', }" :row-style="{ 'text-align': 'center' }" style="width: 100%" > <el-table-column type="selection" width="55"> </el-table-column> <el-table-column prop="index" label="序号"> </el-table-column> <!-- <el-table-column prop="id" label="序号"> </el-table-column> --> <el-table-column prop="snFixedId" label="SN码(固定标识)"> </el-table-column> <el-table-column prop="snFixedIllustration" label="SN码(固定标识)说明"> </el-table-column> <el-table-column prop="snStartCode" label="SN码(起始序列号)"> </el-table-column> <el-table-column prop="snEndCode" label="SN码(终止序列号)"> </el-table-column> <el-table-column prop="snSegmentNum" label="码段个数"> </el-table-column> <el-table-column prop="productCode" label="设备型号"> </el-table-column> <el-table-column prop="productDate" label="生产日期"> </el-table-column> <el-table-column prop="hardwareVersion" label="硬件版本"> </el-table-column> <el-table-column prop="softwareVersion" label="软件版本"> </el-table-column> <el-table-column label="操作"> <template slot-scope="scope"> <el-button @click="showInfo(scope.row)" type="text" size="small" >详情</el-button > <el-button @click="Bdelete(scope.row)" type="text" size="small" >删除</el-button > <!-- <el-button type="text" size="small">编辑</el-button> --> </template> </el-table-column> </el-table> <!-- 分页组件 --> <group-page :limit ="limit" :total="total" :offset="offset" :count="tableData.total" @setOffset="setOffset" @setLimit ="setLimit" v-model="isFristPage"/> <!-- 新增弹框 --> <sn-code-field-dialog :isShowAdd="isShowAdd" @close="closeAdd"></sn-code-field-dialog> <sn-field-info-dialog :isShowInfo="isShowInfo" @close="closeInfo" :dataInfo="rowInfo"/> </div> </template> <script> //组件 import SnCodeFieldDialog from '../../components/mycomponent/dialog/snCodeFieldDialog.vue'; import GroupPage from "../../components/mycomponent/groupPage.vue"; import SnFieldInfoDialog from '../../components/mycomponent/dialog/snFieldInfoDialog.vue'; //逻辑 import { tableRowClassName } from "../../utils/myUtils/changeTableTr"; import { listMixin,elDataDialog } from '../../utils/myUtils/mixins/listPage' import { SN_listPage,SN_batchDelete,SN_delete } from '../../api/product/snCodeField' import { outToExcel } from '../../utils/myUtils/exportToExcel' export default { mixins:[listMixin,elDataDialog], components: { SnCodeFieldDialog, GroupPage, SnFieldInfoDialog }, data() { return { isShowAdd: false, //显示新增功能 selectInfo:{ // 搜索框中的数据的数据 keyword: "", productCode :"" }, }; }, methods: { tableRowClassName: tableRowClassName, closeAdd() { this.isShowAdd = false; }, addCategory() { this.isShowAdd = true; }, // 获取指定页面 getListPage(limit,offset){ SN_listPage(`limit=${limit}&offset=${offset}`,this.queryInfo).then(res => { // 得到相关数据 res.rows.forEach((item,index)=>{ item.index =(index+1)+((offset-1)*10) }) this.tableData = res }) }, reset(){ this.selectInfo ={ keyword: "", productCode :"" } }, exportToExcel(){ SN_listPage('limit=1000000000&offset=1', {}).then(res => { outToExcel(res.rows) }) }, // 批量删除 BatchDelete(){ // 得到选中行 const dle_ary =this.$refs.multipleTable.selection const ids = [] dle_ary.forEach(ele => { ids.push(ele.id) }) SN_batchDelete({ids:ids}).then(res=>{ if(res!=''){ this.$message({ message: '删除成功', type: 'success' }); this.refresh() } }) }, // 删除 Bdelete(row){ // console.log(row); const id = row.id SN_delete({id:id}).then(res => { // console.log(res); // 删除成功跟新数据 if(res!=''){ this.$message({ message: '删除成功', type: 'success' }); this.refresh() } }) }, }, }; </script> <style lang="scss" scoped> .product_container { position: relative; width: 100%; min-height: 700px; height: 823px; overflow: auto; .productData { width: 100%; display: flex; justify-content: center; .middle { margin: 0 30px; } } .productFun { margin: 30px 0; display: flex; justify-content: space-between; .productInput { display: flex; align-items: center; .inputBox { margin: 0 50px 0 10px; } } .productBtn { .btnItem { margin-right: 10px; border-radius: 5px; // height: 32px; // width: 84px; font-size: 16px; } } } .footer { display: flex; justify-content: space-between; color: #6666; margin: 30px 10px; } } </style>