123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371 |
- <template>
- <div class="app-container">
- <!-- 筛选条件 -->
- <div class="screen-container">
- <Collapse :screen-form="screenForm">
- <template #right_btn>
- <el-button size="mini" @click="resetScreenForm">清空</el-button>
- <el-button size="mini" type="primary" @click="submitScreenForm">搜索</el-button>
- </template>
- <template #search>
- <el-form ref="screenForm" :model="screenForm" label-width="70px" size="mini" label-position="left">
- <el-row :gutter="20">
- <el-col :xs="24" :sm="12" :lg="6">
- <el-form-item label="仓库" prop="warehouse">
- <el-select
- v-model="screenForm.warehouse"
- placeholder="请选择仓库"
- @change="changeWarehouse"
- clearable
- multiple
- collapse-tags
- >
- <el-option
- :label="item.name"
- :value="item.id"
- v-for="(item, index) in warehouseList"
- :key="index"
- ></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <!-- <el-col :xs="24" :sm="12" :lg="6">
- <el-form-item label="仓位" prop="position">
- <el-select v-model="screenForm.position" placeholder="请选择仓位" clearable>
- <el-option :label="item.name" :value="item.id" v-for="(item, index) in positionList" :key="index"></el-option>
- </el-select>
- </el-form-item>
- </el-col> -->
- <!-- <el-col :xs="24" :sm="12" :lg="6">
- <el-form-item label="产品大类" prop="type">
- <el-select v-model="screenForm.type" placeholder="请选择产品大类" @change="changeType" clearable>
- <el-option v-for="item in typeList" :key="item.dictCode" :label="item.dictValue" :value="item.dictCode"></el-option>
- </el-select>
- </el-form-item>
- </el-col> -->
- <el-col :xs="24" :sm="12" :lg="6">
- <el-form-item label="产品类别" prop="categoryId">
- <el-select
- v-model="screenForm.categoryId"
- placeholder="请选择产品类别"
- filterable
- clearable
- multiple
- collapse-tags
- >
- <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :lg="6">
- <el-form-item label="物料编码" prop="goodsCode">
- <el-input v-model="screenForm.goodsCode" placeholder="请输入物料编码"></el-input>
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :lg="6">
- <el-form-item label="产品编码" prop="goodsNum">
- <el-input v-model="screenForm.goodsNum" placeholder="请输入产品编码"></el-input>
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :lg="6">
- <el-form-item label="产品名称" prop="goodsName">
- <el-input v-model="screenForm.goodsName" placeholder="请输入产品名称"></el-input>
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :lg="6">
- <el-form-item label="规格型号" prop="model">
- <el-input v-model="screenForm.model" placeholder="请输入规格型号"></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- </template>
- </Collapse>
- </div>
- <div class="mymain-container">
- <div class="btn-group clearfix">
- <div class="fr">
- <ExportButton :exUrl="'stock/manager/export'" :exParams="exParams" />
- </div>
- </div>
- <div class="table">
- <el-table
- v-loading="listLoading"
- :data="dataList"
- element-loading-text="Loading"
- border
- fit
- highlight-current-row
- stripe
- >
- <!-- <el-table-column align="left" label="产品大类" prop="mainName" min-width="100" show-overflow-tooltip></el-table-column> -->
- <el-table-column
- align="left"
- label="产品类别"
- prop="categoryName"
- min-width="100"
- show-overflow-tooltip
- ></el-table-column>
- <el-table-column align="left" label="物料编码" prop="materialNumber" min-width="120" show-overflow-tooltip>
- <template slot-scope="scope">
- <CopyButton :copyText="scope.row.materialNumber" />
- <span>{{ scope.row.materialNumber }}</span>
- </template>
- </el-table-column>
- <el-table-column align="left" label="产品编码" prop="materialOldNumber" min-width="140" show-overflow-tooltip>
- <template slot-scope="scope">
- <CopyButton :copyText="scope.row.materialOldNumber" />
- <span>{{ scope.row.materialOldNumber }}</span>
- </template>
- </el-table-column>
- <el-table-column align="left" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip>
- <template slot-scope="scope">
- <CopyButton :copyText="scope.row.materialName" />
- <span>{{ scope.row.materialName }}</span>
- </template>
- </el-table-column>
- <el-table-column align="left" label="规格型号" prop="specification" min-width="350" show-overflow-tooltip>
- <template slot-scope="scope">
- <CopyButton :copyText="scope.row.specification" />
- <span>{{ scope.row.specification }}</span>
- </template>
- </el-table-column>
- <el-table-column
- align="left"
- label="单位"
- prop="baseUnitId"
- min-width="100"
- show-overflow-tooltip
- ></el-table-column>
- <el-table-column
- align="left"
- label="总库存数量"
- prop="stockQty"
- min-width="100"
- show-overflow-tooltip
- ></el-table-column>
- <el-table-column
- align="left"
- label="可用库数"
- prop="stockAdequate"
- min-width="100"
- show-overflow-tooltip
- ></el-table-column>
- <el-table-column
- align="left"
- label="可开单数"
- prop="openNumber"
- min-width="100"
- show-overflow-tooltip
- ></el-table-column>
- <el-table-column
- align="left"
- label="经销商预留库存"
- prop="reservedNum"
- min-width="120"
- show-overflow-tooltip
- ></el-table-column>
- <el-table-column
- align="left"
- label="经销商暂扣库存"
- prop="temporaryNum"
- min-width="120"
- show-overflow-tooltip
- ></el-table-column>
- <el-table-column
- align="left"
- label="开单未提数量"
- prop="num"
- min-width="120"
- show-overflow-tooltip
- ></el-table-column>
- </el-table>
- </div>
- </div>
- <div class="pagination clearfix">
- <div class="fr">
- <el-pagination
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- :current-page="currentPage"
- :page-sizes="[10, 20, 30, 50]"
- :page-size="10"
- layout="total, sizes, prev, pager, next, jumper"
- :total="listTotal"
- >
- </el-pagination>
- </div>
- </div>
- </div>
- </template>
- <script>
- import { getStockList, getWarehouseList } from '@/api/stock'
- import { getCategoryList, getSmallList } from '@/api/common'
- export default {
- data() {
- return {
- currentPage: 1, // 当前页码
- pageSize: 10, // 每页数量
- listTotal: 0, // 列表总数
- dataList: null, // 列表数据
- listLoading: false, // 列表加载loading
- screenForm: {
- // 筛选表单数据
- warehouse: [],
- position: '',
- goodsName: '',
- goodsNum: '',
- goodsCode: '',
- model: '',
- type: '',
- categoryId: []
- },
- warehouseList: [],
- positionList: [],
- typeList: [],
- smallList: [],
- isCollapse: true
- }
- },
- computed: {
- exParams() {
- const correspondNameS = this.fliterData()
- return {
- correspondId: this.screenForm.warehouse.join(),
- correspondNameS: correspondNameS.join('/'),
- stockId: this.screenForm.position,
- materialName: this.screenForm.goodsName,
- materialNumber: this.screenForm.goodsCode,
- materialOldNumber: this.screenForm.goodsNum,
- specification: this.screenForm.model,
- mainNumber: this.screenForm.type,
- categoryId: this.screenForm.categoryId.join(',')
- }
- }
- },
- created() {
- this.getWarehouseList()
- this.getCategoryList()
- this.getList()
- },
- methods: {
- // 获取仓库列表
- getWarehouseList() {
- getWarehouseList({
- pageNum: 1,
- pageSize: -1
- }).then(res => {
- this.warehouseList = res.data.records
- })
- },
- // 获取产品大类列表
- getCategoryList() {
- getCategoryList({
- pageNum: 1,
- pageSize: -1
- }).then(res => {
- this.typeList = res.data.records
- })
- },
- // 获取产品小类列表
- getSmallList() {
- getSmallList({ id: this.screenForm.type }).then(res => {
- this.smallList = res.data
- })
- },
- // 更改大类
- changeType() {
- this.screenForm.categoryId = ''
- if (this.screenForm.type) {
- this.getSmallList()
- } else {
- this.smallList = []
- }
- },
- // 更改仓库
- changeWarehouse() {
- // this.screenForm.position = '';
- // if(this.screenForm.warehouse) {
- // let obj = this.warehouseList.find(o => o.id == this.screenForm.warehouse);
- // this.positionList = obj.kingDeeStocks;
- // }else {
- // this.positionList = [];
- // }
- },
- // 查询列表
- getList() {
- this.listLoading = true
- const correspondNameS = this.fliterData()
- let params = {
- pageNum: this.currentPage,
- pageSize: this.pageSize,
- correspondId: this.screenForm.warehouse.join(),
- correspondNameS: correspondNameS.join('/'),
- stockId: this.screenForm.position,
- materialName: this.screenForm.goodsName,
- materialNumber: this.screenForm.goodsCode,
- materialOldNumber: this.screenForm.goodsNum,
- specification: this.screenForm.model,
- mainNumber: this.screenForm.type,
- categoryId: this.screenForm.categoryId.join(',')
- }
- getStockList(params).then(res => {
- this.dataList = res.data.records
- this.listTotal = res.data.total
- this.listLoading = false
- })
- },
- // 提交筛选表单
- submitScreenForm() {
- this.currentPage = 1
- this.getList()
- },
- // 重置筛选表单
- resetScreenForm() {
- this.$refs.screenForm.resetFields()
- this.currentPage = 1
- this.getList()
- },
- // 更改每页数量
- handleSizeChange(val) {
- this.pageSize = val
- this.currentPage = 1
- this.getList()
- },
- // 更改当前页
- handleCurrentChange(val) {
- this.currentPage = val
- this.getList()
- },
- fliterData() {
- const correspondNameS = []
- if (this.screenForm.warehouse && this.screenForm.warehouse.length)
- this.screenForm.warehouse.forEach(e => {
- this.warehouseList.filter(k => {
- if (e === k.id) {
- correspondNameS.push(k.name)
- }
- })
- })
- return correspondNameS
- }
- }
- }
- </script>
- <style lang="scss" scoped></style>
|