From b8dc4ccc6ee580b084aa860e64af2d90d1cb5979 Mon Sep 17 00:00:00 2001 From: 石广澎 <shiguangpeng@163.com> Date: 星期三, 29 十一月 2023 10:11:52 +0800 Subject: [PATCH] feat: 1、首页接口对接 2、部门物品分发 --- admin-web/src/views/dashboard/index.vue | 461 +++++++++++++++++++++++++-------------------------------- 1 files changed, 205 insertions(+), 256 deletions(-) diff --git a/admin-web/src/views/dashboard/index.vue b/admin-web/src/views/dashboard/index.vue index c65a195..1d92ebb 100644 --- a/admin-web/src/views/dashboard/index.vue +++ b/admin-web/src/views/dashboard/index.vue @@ -1,212 +1,119 @@ <template> <div class="content"> -<!-- <el-row :gutter="10"> + <el-row :gutter="20"> <el-col :span="12"> - <el-row :gutter="10"> - <el-col :span="8"> - <div class="flex bg-fff box flex-between"> - <div class="flex f-c f-col"> - <img class="icon" src="@/assets/images/index/qbgd.png"></img> - <span>鍏ㄩ儴宸ュ崟</span> - </div> - <div class="flex f-e f-col"> - <div class="font-28">20<span class="font-12">涓�</span> </div> - <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> - </div> - </div> - </el-col> - <el-col :span="8"> - <div class="flex bg-fff box flex-between"> - <div class="flex f-c f-col"> - <img class="icon" src="@/assets/images/index/gdc.png"></img> - <span>宸ュ崟姹�</span> - </div> - <div class="flex f-e f-col"> - <div class="font-28">2<span class="font-12">涓�</span> </div> - <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> - </div> - </div> - </el-col> - <el-col :span="8"> - <div class="flex bg-fff box flex-between"> - <div class="flex f-c f-col"> - <img class="icon" src="@/assets/images/index/gdc.png"></img> - <span>寰呭搷搴斿伐鍗�</span> - </div> - <div class="flex f-e f-col"> - <div class="font-28">1<span class="font-12">涓�</span> </div> - <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> - </div> - </div> - </el-col> - </el-row> + <el-card shadow="never"> + <div slot="header" class="clearfix"> + <span class="font-18 font-bold">寰呭姙鍚嶇О</span> + </div> + <div class="f-r f-r-between m-b-10"> + <el-radio-group v-model="waitType" size="mini"> + <el-radio-button label="1">鍏ㄩ儴</el-radio-button> + </el-radio-group> + <div class="to-more" @click="nav('/stock/transfer/transferissue')">鏌ョ湅鏇村 ></div> + </div> + <el-table :data="waitWorkData" class="top-tb" :show-header="false" size="medium"> + <el-table-column prop="businessFormCode" align="center" width="130"></el-table-column> + <el-table-column prop="inWarehouseName" align="center" min-width="130"> + <template slot-scope="{row}"> + <el-tooltip class="item" effect="dark" :content="row.inWarehouseName " placement="top-start"> + <div class="font-14 color-333" style="width: 100%;white-space:nowrap;text-overflow: ellipsis;overflow: hidden">{{ row.inWarehouseName }}</div> + </el-tooltip> + </template> + </el-table-column> + <el-table-column prop="operatorName" align="center" width="80"></el-table-column> + <el-table-column prop="createTime" align="center" width="160"> + <template slot-scope="scope"> + <span class="font-14 color-333">{{ formattTime(scope.row.createTime) }}</span> + </template> + </el-table-column> + <el-table-column prop="date" label="鎿嶄綔" fixed="right" align="center" width="80"> + <template slot-scope="scope"> + <el-button @click.native.prevent="aduitThis(scope.row.id)" type="primary">澶勭悊</el-button> + </template> + </el-table-column> + </el-table> + </el-card> </el-col> <el-col :span="12"> - <el-row :gutter="10"> - <el-col :span="8"> - <div class="flex bg-fff box flex-between"> - <div class="flex f-c f-col"> - <img class="icon" src="@/assets/images/index/jxzgd.png"></img> - <span>杩涜涓伐鍗�</span> - </div> - <div class="flex f-e f-col"> - <div class="font-28">3<span class="font-12">涓�</span> </div> - <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> - </div> - </div> - </el-col> - <el-col :span="8"> - <div class="flex bg-fff box flex-between"> - <div class="flex f-c f-col"> - <img class="icon" src="@/assets/images/index/gdc.png"></img> - <span>浜嬩欢姹�</span> - </div> - <div class="flex f-e f-col"> - <div class="font-28">{{eventInfo.pool}}<span class="font-12">涓�</span> </div> - <div> - <img v-if="eventInfo.poolLastNum>=0" class='arrow' src="@/assets/images/index/top.png"></img> - <img v-if="eventInfo.poolLastNum<0" class='arrow' src="@/assets/images/index/down.png"></img> - 鐜瘮涓婂懆</div> - </div> - </div> - </el-col> - <el-col :span="8"> - <div class="flex bg-fff box flex-between"> - <div class="flex f-c f-col"> - <img class="icon" src="@/assets/images/index/dxy.png"></img> - <span>杩涜涓簨浠�</span> - </div> - <div class="flex f-e f-col"> - <div class="font-28">{{eventInfo.wait}}<span class="font-12">涓�</span> </div> - <div> - <img v-if="eventInfo.waitLastNum>=0" class='arrow' src="@/assets/images/index/top.png"></img> - <img v-if="eventInfo.waitLastNum<0" class='arrow' src="@/assets/images/index/down.png"></img> - 鐜瘮涓婂懆</div> - </div> - </div> - </el-col> - </el-row> + <el-card shadow="never"> + <div slot="header" class="clearfix"> + <span class="font-18 font-bold">棰勮閫氱煡</span> + </div> + <div class="f-r f-r-between m-b-10"> + <el-radio-group size="mini" v-model="earlyWarningType" @change="changeEarlyWarning"> + <el-radio-button label="1">鍏ㄩ儴</el-radio-button> + <el-radio-button label="2">缂鸿揣锛�12锛�</el-radio-button> + <el-radio-button label="3">瓒呭嚭锛�3锛�</el-radio-button> + </el-radio-group> + <div class="to-more" @click="nav('/stock/ledger/alertQuery')">鏌ョ湅鏇村 ></div> + </div> + <el-table :data="earlyWarningData" class="top-tb" :show-header="false" size="medium"> + <el-table-column prop="type" align="center"></el-table-column> + <el-table-column prop="name" align="center" width="100"></el-table-column> + <el-table-column prop="orgName" align="center" width="100"></el-table-column> + <el-table-column prop="surplus" align="center" width="100"> + <template slot-scope="scope"> + <span class="font-14 color-333">鍓╀綑{{ scope.row.surplus }}濂�</span> + </template> + </el-table-column> + <el-table-column prop="createTime" align="center" width="180"> + <template slot-scope="scope"> + <span class="font-14 color-333">{{ formattTime(scope.row.createTime) }}</span> + </template> + </el-table-column> + <el-table-column prop="date" label="鎿嶄綔" align="center" width="120"> + <template slot-scope="scope"> + <el-button @click.native.prevent="aduitThis(scope.row.id)" size="small" type="primary">澶勭悊</el-button> + </template> + </el-table-column> + </el-table> + </el-card> </el-col> </el-row> - - <el-row :gutter="10" style="margin-top: 10px"> + <!-- 涓棿缁熻閮ㄥ垎--> + <div class="f-r f-r-between total-list"> + <div class="total-item"> + <div class="font-14 color-666">鐗╁搧鏁伴噺</div> + <div class="font-14 color-333" style="margin-top:6px;"><span class="total-num">{{goodsNumPrice.totalNum}}</span></div> + </div> + <div class="total-item"> + <div class="font-14 color-666">璧勪骇鎬婚噾棰�</div> + <div class="font-14 color-333" style="margin-top:6px;"><span class="total-num">{{goodsNumPrice.totalPrice}}</span>涓囧厓</div> + </div> + <div class="total-item"> + <div class="font-14 color-666">鐗╁搧鍗犵敤鐜�</div> + <div class="font-14 color-333" style="margin-top:6px;"><span class="total-num">{{goodsNumPrice.zhanYouPercent}}%</span></div> + </div> + <div class="total-item"> + <div class="font-14 color-666">A绫荤墿鍝佹暟閲�</div> + <div class="font-14 color-333" style="margin-top:6px;"><span class="total-num">{{goodsNumPrice.aTotalNum}}</span></div> + </div> + <div class="total-item"> + <div class="font-14 color-666">B绫荤墿鍝佹暟閲�</div> + <div class="font-14 color-333" style="margin-top:6px;"><span class="total-num">{{goodsNumPrice.bTotalNum}}</span></div> + </div> + </div> + <!-- 绫诲埆閲戦缁熻/绫诲埆鏁伴噺缁熻 --> + <el-row :gutter="20"> <el-col :span="12"> - <el-row :gutter="10"> - <el-col :span="8"> - <div class="flex bg-fff box flex-between"> - <div class="flex f-c f-col"> - <img class="icon" src="@/assets/images/index/wtc.png"></img> - <span>闂姹�</span> - </div> - <div class="flex f-e f-col"> - <div class="font-28">0<span class="font-12">涓�</span> </div> - <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> - </div> - </div> - </el-col> - <el-col :span="8"> - <div class="flex bg-fff box flex-between"> - <div class="flex f-c f-col"> - <img class="icon" src="@/assets/images/index/dxy.png"></img> - <span>寰呭搷搴旈棶棰�</span> - </div> - <div class="flex f-e f-col"> - <div class="font-28">0<span class="font-12">涓�</span> </div> - <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> - </div> - </div> - </el-col> - <el-col :span="8"> - <div class="flex bg-fff box flex-between"> - <div class="flex f-c f-col"> - <img class="icon" src="@/assets/images/index/gdc.png"></img> - <span>鍙樻洿宸ュ崟</span> - </div> - <div class="flex f-e f-col"> - <div class="font-28">0<span class="font-12">涓�</span> </div> - <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> - </div> - </div> - </el-col> - </el-row> + <LBSLTJ :num="goodsNumPrice"></LBSLTJ> </el-col> <el-col :span="12"> - <el-row :gutter="10"> - <el-col :span="8"> - <div class="flex bg-fff box flex-between"> - <div class="flex f-c f-col"> - <img class="icon" src="@/assets/images/index/dxy.png"></img> - <span>寰呭搷搴斿彉鏇�</span> - </div> - <div class="flex f-e f-col"> - <div class="font-28">0<span class="font-12">涓�</span> </div> - <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> - </div> - </div> - </el-col> - <el-col :span="8"> - <div class="flex bg-fff box flex-between"> - <div class="flex f-c f-col"> - <img class="icon" src="@/assets/images/index/fbgd.png"></img> - <span>鍙戝竷宸ュ崟</span> - </div> - <div class="flex f-e f-col"> - <div class="font-28">2<span class="font-12">涓�</span> </div> - <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> - </div> - </div> - </el-col> - <el-col :span="8"> - <div class="flex bg-fff box flex-between"> - <div class="flex f-c f-col"> - <img class="icon" src="@/assets/images/index/dxy.png"></img> - <span>寰呭搷搴斿彂甯�</span> - </div> - <div class="flex f-e f-col"> - <div class="font-28">5<span class="font-12">涓�</span> </div> - <div><img class='arrow' src="@/assets/images/index/top.png"></img> 鐜瘮涓婂懆</div> - </div> - </div> - </el-col> - </el-row> + <LBJETJ :num="goodsNumPrice"></LBJETJ> </el-col> </el-row> - <el-row :gutter="10"> - <el-col :span="12"> - <XMGZD></XMGZD> - </el-col> - <el-col :span="12"> - <XYZC></XYZC> - </el-col> - </el-row> - <el-card class="box-card"> - - <span style="font-weight: 600;font-size: 20px">宸ュ崟缁熻</span> - - <el-row :gutter="10"> - <el-col :span="6"> - <SJDJ></SJDJ> - </el-col> - <el-col :span="6"> - <GDLX></GDLX> - </el-col> - <el-col :span="6"> - <SJGDZB></SJGDZB> - </el-col> - <el-col :span="6"> - <progressMY></progressMY> - </el-col> - </el-row> - - </el-card>--> + <!-- 璧勪骇澧為暱/鎶ュ簾缁熻鍥撅紙鏁伴噺锛�--> + <XYZC></XYZC> </div> </template> <script> +import {getGoodsNumPrice} from '@/api/dashboard' // 鍒涘缓Context -import {formattedDate} from "@/utils/DateFormatter"; -import * as dash from '@/api/dashboard/dash' -// import * as createEvent from "@/api/eventManage/createEvent"; +import {LongToDateTime} from "@/utils/DateFormatter"; +import {transferList} from "@/api/stock/transfer"; + const ComponentContext = require.context('./components', false, /\.vue$/i); let res_components = {}; // 鐢熸垚寰呭緟娉ㄥ唽缁勪欢闆嗗悎 @@ -219,84 +126,126 @@ components: {...res_components}, data() { return { - eventInfo:{} + goodsNumPrice: { + aTotalNum: 0, + aTotalPrice: 0, + bTotalNum: 0, + bTotalPrice: 0, + cTotalNum: 0, + cTotalPrice: 0, + tenantId: 0, + totalNum: 0, + totalPrice: 0, + xiaFaNum: 0, + zhanYouPercent: 0, + }, + waitType: '1', + waitWorkData: [], // 寰呭姙宸ヤ綔 + earlyWarningType: '1', + earlyWarningData: [ + {type: '鏂戒箰澶嶅嵃鏈虹⒊绮�', name: '鏂戒箰c2201', surplus: 4, createTime: 20231127150606, id: 1}, + {type: '鏂戒箰澶嶅嵃鏈虹⒊绮�', name: '鏂戒箰c2201', surplus: 5, createTime: 20231127150606, id: 2}, + {type: '鏂戒箰澶嶅嵃鏈虹⒊绮�', name: '鏂戒箰c2201', surplus: 6, createTime: 20231127150606, id: 3}, + {type: '鏂戒箰澶嶅嵃鏈虹⒊绮�', name: '鏂戒箰c2201', surplus: 6, createTime: 20231127150606, id: 4}, + ] // 棰勮閫氱煡 }; }, created() { - // this.getEventInfo() - + this.init() + getGoodsNumPrice().then(res => { + this.goodsNumPrice = res + }) }, methods: { - // 鑾峰彇浜嬩欢鏁版嵁 - getEventInfo(){ - dash.getEventInfo().then(res => { - if (res) { - this.eventInfo = res - } - }) - } + init(){ + transferList({ + qryType: 0, + pageNum: 1, + pageSize: 5, + }).then((res) => { + this.waitWorkData = res.datas; + }); + }, + // 鏍煎紡鍖栨椂闂� + formattTime(time) { + return LongToDateTime(time) + }, + // 鑾峰彇棰勮閫氱煡鍒楄〃鏁版嵁 + getAduitList() { + let form = { + pageSize: 5, + pageNum: 1, + waitType: this.waitType + } + }, + // 澶勭悊寰呭姙宸ヤ綔 + aduitThis(id) { + }, + // 鍒囨崲棰勮閫氱煡 + changeEarlyWarning(e) { + this.earlyWarningType = e + this.$nextTick(() => { + this.getWarningList() + }) + }, + // 鑾峰彇棰勮閫氱煡鍒楄〃鏁版嵁 + getWarningList() { + let form = { + pageSize: 5, + pageNum: 1, + earlyWarningType: this.earlyWarningType + } + }, + // 璺宠浆 + nav(url) { + this.$router.push(url) + } } }; </script> <style lang="scss" scoped> -.content{ - padding:10px +.content { + padding: 10px } -.box{ - border-radius: 10px; - padding: 20px 0; - align-items: flex-end; + +.to-more { + font-size: 14px; + color: #0d997c; + cursor: pointer; } -.flex{ - display: flex; -} -.flex-between{ - justify-content: space-around; -} -.f-col{ - flex-direction: column; -} -.f-c{ - align-items: center; -} -.f-e{ - align-items: flex-end; -} -.f-s{ - align-items: flex-start; -} -.c-1{ - color: #11AD6F; -} -.c-f{ - color: #FF4B4B; -} -.font-28{ - font-size: 28px; -} -.font-12{ - font-size: 12px; -} -.icon{ - width: 30px; - height: 30px; + +.m-b-10 { margin-bottom: 10px; } -.arrow{ - width: 12px; - height: 12px; -} -.box-card { - margin-top: 10px; + +.top-tb { width: 100%; - border-radius: 10px; - border: none; - .card-title-right { - display: flex; - align-items: center; - align-self: flex-end; - float: right; - } +} + +> > > .el-table__body { + min-height: 265px; +} + +.total-list { + padding: 15px 0; +} + +.total-item { + width: 19%; + padding: 12px 20px; + border-radius: 8px; + margin-right: 1%; + background-color: #FFFFFF; +} + +.total-item:last-child { + margin: 0; +} + +.total-num { + font-size: 24px; + font-weight: bold; + margin-right: 3px; } </style> -- Gitblit v1.9.1