| | |
| | | @addCommonClick="addBtnClick" |
| | | @searchClick="getList" |
| | | :isDisabled="true" |
| | | :showDownload="true" |
| | | @downloadClick="downHttpClick" |
| | | /> |
| | | </div> |
| | | <div class="list-view"> |
| | | <div class="table"> |
| | | <TableCommonView |
| | | ref="tableListRef" |
| | | :table-list="tableList" |
| | | @selTableCol="selTableCol" |
| | | @tableRowClick="tableRowClick" |
| | | :showSummary="true" |
| | | > |
| | | <template slot="tableButton"> |
| | | <el-table-column label="操作" width="210" align="center"> |
| | | <template slot-scope="scope"> |
| | | <div class="container"> |
| | | <div class="list-left"> |
| | | <!--<div class="title">仓库</div> |
| | | <div class="tree-location"> |
| | | <el-tree |
| | | :show-checkbox="true" |
| | | :data="warehouseList" |
| | | :props="treeProps" |
| | | @check-change="warehouseChangeNode" |
| | | ></el-tree> |
| | | </div>--> |
| | | <div class="title">位置</div> |
| | | <div class="tree-location"> |
| | | <el-tree |
| | | node-key="id" |
| | | :data="locationList" |
| | | show-checkbox |
| | | :props="treeProps" |
| | | :default-expanded-keys="checkedLocationList" |
| | | :default-checked-keys="checkedLocationList" |
| | | @check="locationCheck" |
| | | ></el-tree> |
| | | </div> |
| | | </div> |
| | | <div class="list-view" style="margin-left: 10px"> |
| | | <div class="table"> |
| | | <TableCommonView |
| | | ref="tableListRef" |
| | | :table-list="tableList" |
| | | @selTableCol="selTableCol" |
| | | @tableRowClick="tableRowClick" |
| | | :showSummary="true" |
| | | > |
| | | <template slot="tableButton"> |
| | | <el-table-column label="在库数量" prop='amount'> |
| | | <el-table-column v-for="unit in unitList" :label="unit.name" prop='amount' min="90"> |
| | | <template slot-scope="scope"> |
| | | {{getUnitValue(scope.row.amountMoreUnits,unit.name,scope.row.amount,scope.row.unit)}} |
| | | </template> |
| | | </el-table-column> |
| | | <!--<el-table-column label="匹" prop='amount' min="90"> |
| | | <template slot-scope="scope"> |
| | | {{getUnitValue(scope.row.amountMoreUnits,'匹',scope.row.amount,scope.row.unit)}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="米数" prop='amount' min="90"> |
| | | <template slot-scope="scope"> |
| | | {{getUnitValue(scope.row.amountMoreUnits,'米数',scope.row.amount,scope.row.unit)}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="重量" prop='amount' min="90"> |
| | | <template slot-scope="scope"> |
| | | {{getUnitValue(scope.row.beginMoreUnitsArr,'重量',scope.row.beginAmount,scope.row.unit)}} |
| | | </template> |
| | | </el-table-column>--> |
| | | </el-table-column> |
| | | <el-table-column label="操作" width="210" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span @click="handleHistoryClick(scope.row)" class="yes-cursor"> |
| | | <i class="el-icon-refresh-left"></i> |
| | | <span>历史</span> |
| | | </span> |
| | | <span @click="handleAddGoods(scope.row)" class="margin_left_5px"> |
| | | <span @click="handleAddGoods(scope.row)" class="margin_left_5px"> |
| | | <i class="el-icon-refresh"></i> |
| | | <span>补货</span> |
| | | </span> |
| | | </template> |
| | | </el-table-column> |
| | | </template> |
| | | </TableCommonView> |
| | | </div> |
| | | <div class="btn-pager"> |
| | | <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" /> |
| | | </template> |
| | | </el-table-column> |
| | | </template> |
| | | </TableCommonView> |
| | | </div> |
| | | <div class="btn-pager"> |
| | | <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- 编辑 --> |
| | |
| | | import pageMixin from "@/components/makepager/pager/mixin/pageMixin" |
| | | import { getLocationData } from "@/api/locationApi/locationApi" |
| | | import AddOverviewDialog from "@/views/overview/AddOverviewDialog" |
| | | |
| | | import { downloadLocationForms } from "@/api/downFile" |
| | | import FileSaver from 'file-saver' |
| | | import _ from 'lodash' |
| | | import { getLocationList } from "@/api/overview/overview"; |
| | | import {getTreeData} from '@/common/untils/index.js'; |
| | | import {getWarehouseList} from '@/api/warehouseManage/warehouse.js' |
| | | import {getUnitInfo} from "@/api/basic/standard"; |
| | | export default { |
| | | name: "InventoryReport", |
| | | props: {}, |
| | |
| | | computed: {}, |
| | | data() { |
| | | return { |
| | | unitList:[], |
| | | treeProps:{ |
| | | label:'name', |
| | | value:'id', |
| | | children:'children' |
| | | }, |
| | | warehouseList:[], |
| | | locationList:[], |
| | | checkedLocationList:[], |
| | | tableList: {}, |
| | | showcol: [ "产品类别", "价值"], |
| | | // countcol: [ |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | this.setTable() |
| | | this.getData() |
| | | this.setTable(); |
| | | this.getData(); |
| | | // this.queryWarehouse();//查询仓库 |
| | | this.queryLocation(); |
| | | this.getUnitInfo(); |
| | | }, |
| | | methods: { |
| | | async getUnitInfo(){ |
| | | const { code,data }=await getUnitInfo(); |
| | | if(code===200){ |
| | | this.unitList=data; |
| | | } |
| | | }, |
| | | locationCheck(_,checkObj){ |
| | | this.checkedLocationList=checkObj.checkedKeys; |
| | | let params={ |
| | | page: this.pagerOptions.currPage, |
| | | pageSize: this.pagerOptions.pageSize, |
| | | keyWord:this.keyWord, |
| | | }; |
| | | if(this.checkedLocationList.length>0){ |
| | | params.locationIds=this.checkedLocationList; |
| | | } |
| | | this.getLocationData(params); |
| | | }, |
| | | async queryWarehouse(){ |
| | | const {code,data} =await getWarehouseList({page:0,pageSize:0,keyword:""}); |
| | | if(code===200){ |
| | | this.warehouseList=data; |
| | | } |
| | | }, |
| | | getTreeData(dataList,childFieldName='children',pIdFieldName='parentId',idFieldName = 'id',rootValue=0){ |
| | | const rootArr=[]; |
| | | //1.先获取根节点列表 |
| | | dataList.forEach(item=>{ |
| | | const children= getChildrenNode(item[idFieldName],dataList); |
| | | if(Array.isArray(children)&&children.length>0){ |
| | | item[childFieldName]=children; |
| | | } |
| | | if(!item.isParent){ |
| | | rootArr.push(item) |
| | | } |
| | | }); |
| | | //2.递归获取根节点的所有下级节点 |
| | | function getChildrenNode(parentId,dataList) { |
| | | //1.根据根节点获取 子节点列表 |
| | | const childrenArr=dataList.filter(item=>parentId===item[pIdFieldName]); |
| | | //2.孩子有可能还有孩子 遍历孩子进行重新递归 |
| | | childrenArr.forEach(item=>{ |
| | | const children=getChildrenNode(item[idFieldName],dataList); |
| | | if(children.length>0){ |
| | | item[childFieldName]=children; |
| | | } |
| | | }); |
| | | return childrenArr; |
| | | } |
| | | return rootArr; |
| | | }, |
| | | async queryLocation(){ |
| | | const {code,data}=await getLocationList({type:3,page:0,pageSize:0}); |
| | | if(code===200){ |
| | | data.forEach(item=>{ |
| | | item.isParent=data.some(dItem=>{ |
| | | if(dItem.id!==item.id){ |
| | | return dItem.id===item.parentId |
| | | } |
| | | }) |
| | | }); |
| | | this.locationList=this.getTreeData(data)//转成树形数据; |
| | | } |
| | | }, |
| | | getUnitValue(list,val,num,unit){ |
| | | let string='--' |
| | | if(list){ |
| | | if(list.length>0){ |
| | | for(let i in list){ |
| | | if(list[i].unit==val){ |
| | | string=list[i].amount |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if(unit==val){ |
| | | string=num |
| | | } |
| | | return string |
| | | }, |
| | | // 下载 |
| | | downHttpClick: _.debounce(function(){ |
| | | downloadLocationForms({ |
| | | page: this.pagerOptions.currPage, |
| | | pageSize: this.pagerOptions.pageSize, |
| | | keyword:this.keyword, |
| | | }).then(res => { |
| | | if (res) { |
| | | FileSaver.saveAs(res, '位置报表.xlsx'); |
| | | this.$message.success("下载成功!"); |
| | | } |
| | | }) |
| | | }, 1000), |
| | | setTable() { |
| | | this.tableList = { |
| | | tableInfomation: [], |
| | |
| | | default: false, |
| | | isShowColumn: showcol.includes("产品类别") |
| | | }, |
| | | { |
| | | /*{ |
| | | label: "在库数量", |
| | | width:100, |
| | | prop: "amount", |
| | |
| | | default: true, |
| | | unit: "", |
| | | textAlign:"right" |
| | | }, |
| | | },*/ |
| | | { |
| | | label: "预留数量", |
| | | prop: "availableStore", |
| | |
| | | width: 120, |
| | | default: false, |
| | | isShowColumn: showcol.includes("价值"), |
| | | textAlign:"right", |
| | | //textAlign:"right", |
| | | unit: "¥" |
| | | } |
| | | ] |
| | |
| | | page: this.pagerOptions.currPage, |
| | | pageSize: this.pagerOptions.pageSize, |
| | | keyWord:this.keyWord, |
| | | } |
| | | }; |
| | | if(this.$route.params.locationId){ |
| | | params.locationId=this.$route.params.locationId |
| | | } |
| | |
| | | // 搜索 |
| | | getList(val) { |
| | | this.keyWord=val |
| | | this.pagerOptions.currPage=1 |
| | | this.pagerOptions.pageSize=15 |
| | | this.getData() |
| | | }, |
| | | // 行点击 |
| | |
| | | this.$router.push({ |
| | | name: "outEnterLibrary", |
| | | params: { |
| | | keyWord:row.productTypeName, |
| | | keyWord:row.productName, |
| | | produceId:row.produceId, |
| | | productName:row.productName, |
| | | unit:row.unit, |
| | |
| | | |
| | | <!-- Add "scoped" attribute to limit CSS to this component only --> |
| | | <style lang="scss" scoped> |
| | | .container{ |
| | | display: flex; |
| | | justify-content: start; |
| | | .list-left{ |
| | | background-color: white; |
| | | width: 15%; |
| | | .title{ |
| | | font-family: '黑体'; |
| | | padding: 10px; |
| | | } |
| | | .tree-location{ |
| | | height: 75vh; |
| | | overflow-y: auto; |
| | | } |
| | | } |
| | | .list-view{ |
| | | background-color: white; |
| | | min-height: 80vh; |
| | | width: 85%; |
| | | } |
| | | } |
| | | </style> |