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 | 314 +++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 258 insertions(+), 56 deletions(-) diff --git a/src/views/reportForm/locationReport/index.vue b/src/views/reportForm/locationReport/index.vue index 76af58e..c1e0a0f 100644 --- a/src/views/reportForm/locationReport/index.vue +++ b/src/views/reportForm/locationReport/index.vue @@ -2,43 +2,92 @@ <template> <div class="rightContent"> <div class="top"> - <SearchCommonView - :add-title="'鏂板缓'" - :showAdd="false" - :placeholder="'璇疯緭鍏ヤ綅缃悕绉般�佷骇鍝佸悕绉版垨浜у搧绫诲埆'" - :amount-view="false" - @addCommonClick="addBtnClick" - @searchClick="getList" - :isDisabled="true" - /> + <SearchCommonView + :add-title="'鏂板缓'" + :showAdd="false" + :placeholder="'璇疯緭鍏ヤ綅缃悕绉般�佷骇鍝佸悕绉版垨浜у搧绫诲埆'" + :amount-view="false" + @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"> - <span @click="handleHistoryClick(scope.row)"> + <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)" 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,8 +114,17 @@ computed: {}, data() { return { + unitList:[], + treeProps:{ + label:'name', + value:'id', + children:'children' + }, + warehouseList:[], + locationList:[], + checkedLocationList:[], tableList: {}, - showcol: ["瀛樺偍绫诲埆", "浜у搧绫诲埆", "棰勭暀鏁伴噺", "浠峰��"], + showcol: [ "浜у搧绫诲埆", "浠峰��"], // countcol: [ // { label: "鍦ㄥ簱鏁伴噺", unit: "" }, // { label: "棰勭暀鏁伴噺", unit: "" }, @@ -106,14 +170,112 @@ }, productId: this.$route.params.id, productName: this.$route.params.name, - metaTitle: this.$route.meta.title + metaTitle: this.$route.meta.title, + keyWord:'' } }, 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: [], @@ -160,19 +322,22 @@ default: false, isShowColumn: showcol.includes("浜у搧绫诲埆") }, - { + /*{ label: "鍦ㄥ簱鏁伴噺", + width:100, prop: "amount", isShowColumn: true, default: true, - unit: "" - }, + unit: "", + textAlign:"right" + },*/ { label: "棰勭暀鏁伴噺", prop: "availableStore", - isShowColumn: true, - default: true, - unit: "" + default: false, + isShowColumn: showcol.includes("棰勭暀鏁伴噺"), + unit: "", + textAlign:"right" }, { label: "鍗曚綅", @@ -187,6 +352,7 @@ width: 120, default: false, isShowColumn: showcol.includes("浠峰��"), + //textAlign:"right", unit: "锟�" } ] @@ -197,7 +363,7 @@ this.tableList.tableColumn = this.setTableColumn(val) }, // 璇锋眰鏁版嵁 - async getLocationData(params){ + async getLocationData(params) { await getLocationData(params).then((res) => { if (res.code === 200) { const list = res.data @@ -209,25 +375,30 @@ getData() { if(this.$route.params.name==="搴撳瓨鎶ヨ〃"){ this.getLocationData({ - keyWord:this.$route.params.keyWord, + wareHouseCode:this.$route.params.wareHouseCode, + productId:this.$route.params.productId, page: this.pagerOptions.currPage, pageSize: this.pagerOptions.pageSize }) }else{ - this.getLocationData({ + let params={ page: this.pagerOptions.currPage, - pageSize: this.pagerOptions.pageSize - }) + pageSize: this.pagerOptions.pageSize, + keyWord:this.keyWord, + }; + if(this.$route.params.locationId){ + params.locationId=this.$route.params.locationId + } + this.getLocationData(params) } }, // 鎼滅储 getList(val) { - this.getLocationData({ - page: 1, - pageSize: this.pagerOptions.pageSize, - keyWord:val - }) + this.keyWord=val + this.pagerOptions.currPage=1 + this.pagerOptions.pageSize=15 + this.getData() }, // 琛岀偣鍑� tableRowClick(row) { @@ -248,11 +419,12 @@ }, // 鍘嗗彶 handleHistoryClick(row) { + console.log(row) this.$router.push({ - name: "inboundOutboundDetail", + name: "outEnterLibrary", params: { - keyWord:row.productTypeName, - produceId:row.id, + keyWord:row.productName, + produceId:row.produceId, productName:row.productName, unit:row.unit, name: "鎶ヨ〃" @@ -260,10 +432,40 @@ }) }, // 琛ヨ揣 - handleAddGoods() {} + handleAddGoods(row) { + this.$router.push({ + name: 'orderPoint', + params:{ + locationId:row.locationId, + locationName:row.locationName + } + }) + } } } </script> <!-- Add "scoped" attribute to limit CSS to this component only --> -<style lang="scss" scoped></style> +<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