From 5ecb7958c96d3f0b6d47b79aff7eb306c2cf690f Mon Sep 17 00:00:00 2001 From: charles <981744753@qq.com> Date: 星期二, 06 八月 2024 11:16:58 +0800 Subject: [PATCH] gitlab上面的wms转移到公司git --- src/views/reportForm/locationReport/index.vue | 236 ++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 209 insertions(+), 27 deletions(-) diff --git a/src/views/reportForm/locationReport/index.vue b/src/views/reportForm/locationReport/index.vue index 378c2e4..c1e0a0f 100644 --- a/src/views/reportForm/locationReport/index.vue +++ b/src/views/reportForm/locationReport/index.vue @@ -10,35 +10,84 @@ @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> <!-- 缂栬緫 --> @@ -50,7 +99,13 @@ 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: {}, @@ -59,6 +114,15 @@ computed: {}, data() { return { + unitList:[], + treeProps:{ + label:'name', + value:'id', + children:'children' + }, + warehouseList:[], + locationList:[], + checkedLocationList:[], tableList: {}, showcol: [ "浜у搧绫诲埆", "浠峰��"], // countcol: [ @@ -111,10 +175,107 @@ } }, 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: [], @@ -161,7 +322,7 @@ default: false, isShowColumn: showcol.includes("浜у搧绫诲埆") }, - { + /*{ label: "鍦ㄥ簱鏁伴噺", width:100, prop: "amount", @@ -169,7 +330,7 @@ default: true, unit: "", textAlign:"right" - }, + },*/ { label: "棰勭暀鏁伴噺", prop: "availableStore", @@ -191,7 +352,7 @@ width: 120, default: false, isShowColumn: showcol.includes("浠峰��"), - textAlign:"right", + //textAlign:"right", unit: "锟�" } ] @@ -224,7 +385,7 @@ page: this.pagerOptions.currPage, pageSize: this.pagerOptions.pageSize, keyWord:this.keyWord, - } + }; if(this.$route.params.locationId){ params.locationId=this.$route.params.locationId } @@ -286,4 +447,25 @@ <!-- 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> -- Gitblit v1.8.0