<template>
|
<el-dialog
|
:visible.sync="productFormVisible"
|
append-to-body
|
:close-on-click-modal="false"
|
width="70%">
|
<div class="app-container">
|
<div class="filter-container">
|
<div style="display: block;padding-top: 10px">
|
<div class="carrier_search">
|
<span>产品名称:</span>
|
<el-input v-model="name" class="product_input"></el-input>
|
</div>
|
<div class="carrier_search">
|
<span>流向码:</span>
|
<el-input v-model="code" class="product_input"></el-input>
|
</div>
|
<div class="carrier_search">
|
<span>类别:</span>
|
<el-input v-model="type" class="product_input"></el-input>
|
</div>
|
<el-button style="margin-left: 10px;" type="primary" @click="searchData()">查询</el-button>
|
</div>
|
</div>
|
<div class="table_content">
|
<el-table
|
v-loading="listLoading"
|
:key="tableKey"
|
:data="productList"
|
border
|
fit
|
:row-key="getRowKey"
|
@selection-change="handleSelectionChange"
|
highlight-current-row
|
style="width: 100%;"
|
>
|
<el-table-column
|
:reserve-selection="true"
|
type="selection"
|
width="55">
|
</el-table-column>
|
<el-table-column label="序号" type="index" align="center" width="60"/>
|
<el-table-column label="类别" prop="type" align="center">
|
</el-table-column>
|
<el-table-column label="名称" prop="name" align="center">
|
</el-table-column>
|
<el-table-column label="级别" prop="level" align="center">
|
</el-table-column>
|
<el-table-column label="包装方式" prop="packing" align="center">
|
</el-table-column>
|
<el-table-column label="规格" prop="specification" align="center">
|
</el-table-column>
|
<el-table-column label="数量" prop="boxNumber" align="center">
|
</el-table-column>
|
</el-table>
|
<br>
|
<el-pagination
|
v-show="recordTotal>0"
|
:current-page="currentPage"
|
:page-sizes="[10, 20, 30, 50]"
|
:page-size="pageSize"
|
:total="recordTotal"
|
layout="total, sizes, prev, pager, next, jumper"
|
background
|
style="float:right;"
|
@size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
/>
|
<br>
|
</div>
|
<div align="right" style="margin-top: 40px;">
|
<el-button @click="productFormVisible = false">取消</el-button>
|
<el-button type="primary" @click="giveProduct()">选择</el-button>
|
</div>
|
</div>
|
</el-dialog>
|
</template>
|
|
|
<script>
|
|
import { computePageCount } from '@/utils'
|
import { productListData } from "@/api/product";
|
|
export default {
|
name: "addProduct",
|
data(){
|
return{
|
name:'',
|
code:'',
|
type:'',
|
tableKey:0,
|
listLoading:false,
|
pageSize: 10,
|
recordTotal: 0,
|
currentPage: 1,
|
pageTotal: 0,
|
searchContent:'',
|
passList:[],
|
productList:[],
|
productFormVisible:false,
|
}
|
},
|
created(){
|
this.getProductData()
|
},
|
methods:{
|
selectProduct(){
|
this.productFormVisible = true
|
},
|
async getProductData(){
|
this.listLoading = true
|
const params = {}
|
params['pageIndex'] = this.currentPage
|
params['pageSize'] = this.pageSize
|
let res = await productListData(params,this.name,this.code,this.type)
|
if(res.data.code === "200"){
|
this.recordTotal = res.data.result.totalCount
|
this.pageSize = res.data.result.pageSize
|
this.pageTotal = computePageCount(res.data.result.total, res.data.result.size)
|
this.currentPage = res.data.result.pageIndex
|
this.productList = res.data.result.result
|
}
|
this.listLoading = false
|
},
|
giveProduct(){
|
this.$emit('giveProduct',this.passList)
|
this.productFormVisible = false
|
},
|
searchData(){
|
this.getProductData()
|
},
|
handleSizeChange: function(val) {
|
this.pageSize = val
|
this.currentPage = 1
|
this.getProductData()
|
},
|
handleCurrentChange: function(val) {
|
this.currentPage = val
|
this.getProductData()
|
},
|
handleSelectionChange(val){
|
this.passList = val
|
},
|
getRowKey(value){
|
return value.id
|
}
|
}
|
}
|
</script>
|
|
<style scoped>
|
.carrier_search{
|
display: inline-block;
|
}
|
.product_input{
|
width:200px;
|
}
|
</style>
|