<template>
|
<el-dialog :visible.sync="detailDialogVisible" :modal-append-to-body="false" :close-on-click-modal="false"
|
width="900px">
|
<div style="padding-bottom: 20px">
|
流向码:
|
<el-input v-model="queryForm.directionCode" class="filter-item" placeholder="流向码" style="width: 20%;padding-right: 15px"
|
@keyup.enter.native="queryHandle"/>
|
<el-button class="filter-item" style="margin-left: 10px;" type="primary" icon="el-icon-search"
|
@click="queryHandle"/>
|
<el-button type="primary" plain @click="exportAllHandle">导出商品详情</el-button>
|
</div>
|
|
<el-table v-loading="listLoading"
|
:key="tableKey"
|
:data="detailData"
|
border
|
fit
|
highlight-current-row
|
style="width: 100%;">
|
<el-table-column type="index" label="序号" align="center" width="60"/>
|
<el-table-column label="产品名称" prop="name" align="center">
|
</el-table-column>
|
<el-table-column label="流向码" prop="directioncode" align="center">
|
</el-table-column>
|
|
<el-table-column label="创建时间" prop="createddate" align="center">
|
</el-table-column>
|
<el-table-column label="最近修改时间" prop="modifieddate" align="center">
|
</el-table-column>
|
<el-table-column label="最近修改人" prop="modifiedby" 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"
|
/>
|
</el-dialog>
|
</template>
|
|
<script>
|
import {getDetailListByItem} from "@/api/stock";
|
import {mapGetters} from "vuex";
|
import {computePageCount, parseTime} from "../../../utils";
|
import {parseError} from "../../../utils/messageDialog";
|
|
export default {
|
name: "stockDetail",
|
data() {
|
return {
|
itemCode:'',
|
enterpriseNumber:'',
|
detailDialogVisible: false,
|
detailForm: {},
|
detailData: [],
|
listLoading: true,
|
pageSize: 10,
|
recordTotal: 0,
|
currentPage: 1,
|
pageTotal: 0,
|
tableKey: 0,
|
status:[{id:0,name:"已停用"},{id:1,name:"已启用"}],
|
queryForm:{
|
directionCode:"",
|
}
|
|
}
|
},
|
computed: {
|
...mapGetters([
|
'userType',
|
'username'
|
])
|
},
|
methods: {
|
open(itemCode,enterpriseNumber){
|
this.enterpriseNumber = enterpriseNumber;
|
this.itemCode = itemCode;
|
this.detailDialogVisible = true;
|
this.queryForm = {
|
directionCode : "",
|
}
|
this.getDetailDataList();
|
},
|
|
queryHandle: function () {
|
this.currentPage = 1;
|
this.getDetailDataList();
|
},
|
|
getDetailDataList() {
|
const params = {}
|
const _this = this;
|
params['itemCode'] = _this.itemCode;
|
params['enterpriseNumber'] = _this.enterpriseNumber;
|
|
params['pageIndex'] = _this.currentPage;
|
params['pageSize'] = _this.pageSize;
|
params['sort'] = _this.sort;
|
params['order'] = _this.order;
|
for (const i in _this.queryForm) {
|
if (_this.queryForm[i] != undefined && _this.queryForm[i].toString() !== '') {
|
params[i] = _this.queryForm[i]
|
}
|
}
|
|
getDetailListByItem(params).then(response => {
|
const res = response.data;
|
if (res.code === "200") {
|
const result = res.result;
|
_this.recordTotal = result.totalCount;
|
_this.pageSize = result.pageSize;
|
_this.pageTotal = computePageCount(result.totalCount, result.pageSize);
|
_this.currentPage = result.pageIndex;
|
_this.detailData = result.result
|
}else {
|
parseError({error: res.message, vm: _this})
|
}
|
_this.listLoading = false;
|
}).catch(error => {
|
_this.listLoading = false;
|
parseError({error: error, vm: _this})
|
})
|
},
|
handleSizeChange: function (val) {
|
this.pageSize = val;
|
this.currentPage = 1;
|
this.getDetailDataList();
|
},
|
handleCurrentChange: function (val) {
|
this.currentPage = val;
|
this.getDetailDataList();
|
},
|
sortChange(param){
|
this.sort = param.prop;
|
this.order = param.order;
|
this.getDetailDataList();
|
},
|
exportAllHandle () {
|
const _this = this;
|
const params = {};
|
params['itemCode'] = _this.itemCode;
|
params['enterpriseNumber'] = _this.enterpriseNumber;
|
params['pageIndex'] = 1;
|
params['pageSize'] = 100000;
|
params['sort'] = _this.sort;
|
params['order'] = _this.order;
|
for (const i in _this.queryForm) {
|
if (_this.queryForm[i] != undefined && _this.queryForm[i].toString() !== '') {
|
params[i] = _this.queryForm[i]
|
}
|
}
|
getDetailListByItem(params).then(response => {
|
const res = response.data;
|
if (res.code === "200") {
|
const allData = res.result.result;
|
if (allData.length == 0) {
|
parseError({ error: '当前没有数据', vm: _this });
|
return
|
}
|
import('@/vendor/Export2Excel').then(excel => {
|
const tHeader = ['产品名称', '流向码','创建时间','最近修改时间','最近修改人'];
|
const filterVal = ['name', 'directioncode','createddate','modifieddate','modifiedby'];
|
const data = _this.formatJson(filterVal, allData);
|
excel.export_json_to_excel({
|
header: tHeader,
|
data,
|
filename: 'stockDetails'
|
})
|
})
|
} else {
|
parseError({ error: res.message, vm: _this })
|
}
|
}).catch(error => {
|
parseError({ error: error, vm: _this })
|
})
|
},
|
|
formatJson(filterVal, jsonData) {
|
return jsonData.map((v) =>
|
filterVal.map((j) => {
|
if (j === 'createddate') {
|
return parseTime(v[j], '{y}-{m}-{d}')
|
}else {
|
return v[j]
|
}
|
})
|
)
|
},
|
|
}
|
}
|
</script>
|
|
<style scoped>
|
|
</style>
|