From 72a3040049e1221571d2898eb21d3647c7252e35 Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期三, 29 十一月 2023 11:16:34 +0800
Subject: [PATCH] feat: 1、删除无用文件 2、首页待办、预警对接

---
 admin-web/src/views/dashboard/index.vue |  210 +++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 150 insertions(+), 60 deletions(-)

diff --git a/admin-web/src/views/dashboard/index.vue b/admin-web/src/views/dashboard/index.vue
index 1d92ebb..a82a8cc 100644
--- a/admin-web/src/views/dashboard/index.vue
+++ b/admin-web/src/views/dashboard/index.vue
@@ -4,20 +4,24 @@
       <el-col :span="12">
         <el-card shadow="never">
           <div slot="header" class="clearfix">
-            <span class="font-18 font-bold">寰呭姙鍚嶇О</span>
+            <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 @change="changeAudit" v-model="waitType" size="mini">
+              <el-radio-button label="0">寰呭嚭搴�</el-radio-button>
+              <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 v-loading="waitLoading" :data="waitWorkData" class="top-tb" height="265" :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">
+            <el-table-column prop="inWarehouseName" align="left" 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>
+                  <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>
@@ -29,9 +33,10 @@
             </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>
+                <el-button @click.native.prevent="aduitThis(scope.row)" size="mini" type="primary">澶勭悊</el-button>
               </template>
             </el-table-column>
+            <el-empty slot="empty" description="鏆傛棤鏁版嵁"></el-empty>
           </el-table>
         </el-card>
       </el-col>
@@ -42,31 +47,44 @@
           </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="">鍏ㄩ儴</el-radio-button>
               <el-radio-button label="2">缂鸿揣锛�12锛�</el-radio-button>
-              <el-radio-button label="3">瓒呭嚭锛�3锛�</el-radio-button>
+              <el-radio-button label="1">瓒呭嚭锛�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>
+          <el-table v-loading="earlyLoading" :data="earlyWarningData" class="top-tb" height="265" :show-header="false" size="medium">
+            <el-table-column prop="baseGoodsTemplateName" align="left" min-width="130">
+              <template slot-scope="{row}">
+                <el-tooltip class="item" effect="dark" :content="row.baseGoodsTemplateName " placement="top-start">
+                  <div class="font-14 color-333"
+                       style="width: 100%;white-space:nowrap;text-overflow: ellipsis;overflow: hidden">
+                    {{ row.baseGoodsTemplateName }}
+                  </div>
+                </el-tooltip>
               </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>
+            <el-table-column prop="baseGoodsModelsName" align="left" min-width="130">
+              <template slot-scope="{row}">
+                <el-tooltip class="item" effect="dark" :content="row.baseGoodsModelsName " placement="top-start">
+                  <div class="font-14 color-333"
+                       style="width: 100%;white-space:nowrap;text-overflow: ellipsis;overflow: hidden">
+                    {{ row.baseGoodsModelsName }}
+                  </div>
+                </el-tooltip>
               </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>
+            <el-table-column prop="surplus" align="left" min-width="130">
+              <template slot-scope="{row}">
+                <span class="font-14 color-333">鍓╀綑{{ row.warehouseCount }}{{ row.unit }}</span>
               </template>
             </el-table-column>
+            <el-table-column prop="warningTime" align="center" width="160">
+              <template slot-scope="{row}">
+                <span class="font-14 color-333">{{ formattTime(row.warningTime) }}</span>
+              </template>
+            </el-table-column>
+            <el-empty slot="empty" description="鏆傛棤鏁版嵁"></el-empty>
           </el-table>
         </el-card>
       </el-col>
@@ -75,23 +93,29 @@
     <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 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 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 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 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 class="font-14 color-333" style="margin-top:6px;"><span
+            class="total-num">{{ goodsNumPrice.bTotalNum }}</span></div>
       </div>
     </div>
     <!-- 绫诲埆閲戦缁熻/绫诲埆鏁伴噺缁熻 -->
@@ -109,10 +133,13 @@
 </template>
 
 <script>
+import listPage from '@/views/mixins/listPage';
 import {getGoodsNumPrice} from '@/api/dashboard'
 // 鍒涘缓Context
 import {LongToDateTime} from "@/utils/DateFormatter";
-import {transferList} from "@/api/stock/transfer";
+import {transfeIncome, transferList, transferOutput} from "@/api/stock/transfer";
+import {geWarningList} from '@/api/stock/ledger'
+import transfer from "@/views/mixins/transfer";
 
 const ComponentContext = require.context('./components', false, /\.vue$/i);
 let res_components = {};
@@ -124,8 +151,11 @@
 export default {
   name: 'Dashboard',
   components: {...res_components},
+  mixins: [listPage],
   data() {
     return {
+      earlyLoading: false,
+      waitLoading: false,
       goodsNumPrice: {
         aTotalNum: 0,
         aTotalPrice: 0,
@@ -139,47 +169,104 @@
         xiaFaNum: 0,
         zhanYouPercent: 0,
       },
-      waitType: '1',
+      waitType: '0',
       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},
-      ] // 棰勮閫氱煡
+      earlyWarningType: '',
+      earlyWarningData: [] // 棰勮閫氱煡
     };
   },
   created() {
-    this.init()
+    this.getAuditList()
+    this.getWarningList()
     getGoodsNumPrice().then(res => {
       this.goodsNumPrice = res
     })
   },
   methods: {
-    init(){
-      transferList({
-        qryType: 0,
-        pageNum: 1,
-        pageSize: 5,
-      }).then((res) => {
-        this.waitWorkData = res.datas;
-      });
-    },
     // 鏍煎紡鍖栨椂闂�
     formattTime(time) {
       return LongToDateTime(time)
     },
+    changeAudit(e) {
+      this.waitType = e
+      this.$nextTick(() => {
+        this.getAuditList()
+      })
+    },
     // 鑾峰彇棰勮閫氱煡鍒楄〃鏁版嵁
-    getAduitList() {
-      let form = {
-        pageSize: 5,
+    getAuditList() {
+      this.waitLoading = true
+      this.waitWorkData = []
+      let params = {
         pageNum: 1,
-        waitType: this.waitType
+        pageSize: 5,
+      }
+      if (this.waitType === '0') {
+        params.outAgencyId = this.userInfo.tenantId
+        params.states = 0
+      } else {
+        params.inAgencyId = this.userInfo.tenantId
+        params.states = 1
+      }
+      transferList(params).then((res) => {
+        this.waitLoading = false
+        this.waitWorkData = res.datas;
+      }).catch(() => {
+        this.waitLoading = false
+      });
+    },
+    aduitThis(row){
+      if (this.waitType === '0') {
+       this.handleOutput(row)
+      } else {
+        this.handleIncome(row)
       }
     },
-    // 澶勭悊寰呭姙宸ヤ綔
-    aduitThis(id) {
+    // 鍏ュ簱
+    handleIncome(row) {
+      this.$confirm(`鎮ㄧ‘瀹� 鍗曞彿锛�${row.businessFormCode}  鎺ユ敹鍏ュ簱鍚�?`, '鎺ユ敹鍏ュ簱', {
+        beforeClose: (action, instance, done) => {
+          if (action == 'confirm') {
+            instance.confirmButtonLoading = true;
+            instance.confirmButtonText = '鎵ц涓�...';
+            transfeIncome({ id: row.id })
+                .then((res) => {
+                  this.$message.success('鎺ユ敹鍏ュ簱鎴愬姛锛�');
+                  done();
+                  instance.confirmButtonLoading = false;
+                  this.search(1);
+                })
+                .catch(() => {
+                  done();
+                });
+          } else {
+            done();
+          }
+        },
+      });
+    },
+    //鍑哄簱
+    handleOutput(row) {
+      this.$confirm(`鎮ㄧ‘瀹� 鍗曞彿锛�${row.businessFormCode}  璋冩嫧鍑哄簱鍚�?`, '璋冩嫧鍑哄簱', {
+        beforeClose: (action, instance, done) => {
+          if (action == 'confirm') {
+            instance.confirmButtonLoading = true;
+            instance.confirmButtonText = '鎵ц涓�...';
+            transferOutput({ id: row.id })
+                .then((res) => {
+                  this.$message.success('璋冩嫧鍑哄簱鎴愬姛锛�');
+                  done();
+                  instance.confirmButtonLoading = false;
+                  this.search(1);
+                })
+                .catch(() => {
+                  done();
+                });
+          } else {
+            done();
+          }
+        },
+      });
     },
     // 鍒囨崲棰勮閫氱煡
     changeEarlyWarning(e) {
@@ -190,11 +277,18 @@
     },
     // 鑾峰彇棰勮閫氱煡鍒楄〃鏁版嵁
     getWarningList() {
-      let form = {
-        pageSize: 5,
+      this.earlyLoading = true
+      this.earlyWarningData = []
+      geWarningList({
+        warningType: this.earlyWarningType,
         pageNum: 1,
-        earlyWarningType: this.earlyWarningType
-      }
+        pageSize: 5,
+      }).then(res => {
+        this.earlyLoading = false
+        this.earlyWarningData = res.datas;
+      }).catch(() => {
+        this.waitLoading = false
+      });
     },
     //  璺宠浆
     nav(url) {
@@ -221,10 +315,6 @@
 
 .top-tb {
   width: 100%;
-}
-
-> > > .el-table__body {
-  min-height: 265px;
 }
 
 .total-list {

--
Gitblit v1.9.1