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/inboundOutboundDetail/index.vue |  344 +++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 234 insertions(+), 110 deletions(-)

diff --git a/src/views/reportForm/inboundOutboundDetail/index.vue b/src/views/reportForm/inboundOutboundDetail/index.vue
index 0531503..059c3cf 100644
--- a/src/views/reportForm/inboundOutboundDetail/index.vue
+++ b/src/views/reportForm/inboundOutboundDetail/index.vue
@@ -4,43 +4,78 @@
       <SearchCommonView
         :add-title="'鏂板缓'"
         :showAdd="false"
-        :placeholder="'璇疯緭鍏ュ弬鑰�'"
+        :placeholder="'璇锋牴鎹崟鍙枫�佷骇鍝併�佷笟鍔$被鍨嬭繘琛屾悳绱�'"
         :amount-view="false"
+        :inputName="params.keyWord"
+        :showDownload="true"
+        @downloadClick="downHttpClick"
         @addCommonClick="addBtnClick"
         @searchClick="getList"
       />
     </div>
     <div class="list-view">
-      <TableCommonView
-        ref="tableListRef"
-        :table-list="tableList"
-        @selTableCol="selTableCol"
-        @tableRowClick="tableRowClick"
-      ></TableCommonView>
+      <div class="table">
+        <TableCommonView
+          ref="tableListRef"
+          :table-list="tableList"
+          @selTableCol="selTableCol"
+          @tableRowClick="tableRowClick"
+        >
+          <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.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>
+          </template>
+        </TableCommonView>
+      </div>
       <div class="btn-pager">
-        <PagerView
-          class="page"
-          :pager-options="pagerOptions"
-          v-on="pagerEvents"
-        />
+        <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
       </div>
     </div>
-    <!-- 缂栬緫 -->
-    <AddOverviewDialog
-      v-if="editConfig.visible"
-      :edit-common-config="editConfig"
+    <!-- 鏌ョ湅/缂栬緫 -->
+    <AddOverviewDialog 
+      v-if="editConfig.visible" 
+      :edit-common-config="editConfig" 
       :add-name="this.$route.params.name"
     />
   </div>
 </template>
 
 <script>
-import pageMixin from "@/components/makepager/pager/mixin/pageMixin";
-import { getHistory } from "@/api/reportForm/inventoryRwport";
-import { getProductOperatonList } from "@/api/product/product";
+import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
+import { getHistory,getOperationInfo } from "@/api/reportForm/inventoryRwport"
+// import { getProductOperatonList } from "@/api/product/product"
 
-import AddOverviewDialog from "@/views/overview/AddOverviewDialog";
-
+import AddOverviewDialog from "@/views/overview/AddOverviewDialog"
+import { getDataByType } from "@/api/data"
+import { downloadHistory } from "@/api/downFile"
+import FileSaver from 'file-saver'
+import _ from 'lodash'
+import { getUnitInfo } from "@/api/basic/standard";
 export default {
   name: "InboundOutboundDetail",
   props: {},
@@ -49,194 +84,283 @@
   computed: {},
   data() {
     return {
+        unitList:[],
       tableList: {},
       showcol: ["鐘舵��"],
       searchOptions: [],
       commonDetail: {
         visible: false,
         title: "鏂板缓",
-        infomation: {},
+        infomation: {}
       },
       editConfig: {
         visible: false,
         title: "鏂板缓",
-        infomation: {},
+        infomation: {}
       },
-      productId: this.$route.params.id,
-      productName: this.$route.params.name,
-    };
+      params: {},
+      baseOperationTypeList:getDataByType("baseOperationTypeTwo"),
+    }
   },
   created() {
     this.setTable()
     console.log(this.$route.params)
-    var paramsData = sessionStorage.getItem("paramsList")
+    var paramsList = sessionStorage.getItem("paramsList")
     let params = {}
-    if (paramsData) {
+    if (paramsList) {
       params = JSON.parse(sessionStorage.getItem("paramsList"))
     } else {
       params = this.$route.params
       sessionStorage.setItem("paramsList", JSON.stringify(params))
     }
     this.params = params
-    console.log(this.params)
-    this.getData()
+    console.log(this.params,'====111')
+    this.getData();
+      this.getUnitInfo();
+  },
+  // 椤甸潰閿�姣佷箣鍓�
+  beforeDestroy() {
+    sessionStorage.removeItem("paramsList")
   },
   methods: {
+      async getUnitInfo(){
+          const { code,data }=await getUnitInfo();
+          if(code===200){
+              this.unitList=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(){
+      downloadHistory({
+        keyWord:this.params.keyWord,
+        page: this.pagerOptions.currPage,
+        pageSize: this.pagerOptions.pageSize,
+          baseOperationType:1
+      }).then(res => {
+        if (res) {
+          FileSaver.saveAs(res, '鍏ュ簱鏄庣粏鎶ヨ〃.xlsx');
+          this.$message.success("涓嬭浇鎴愬姛锛�");
+        }
+      })
+    }, 1000),
     setTable() {
       this.tableList = {
         tableInfomation: [],
         selectBox: true,
         showcol: this.showcol,
         allcol: [],
-        tableColumn: this.setTableColumn(this.showcol),
-      };
-      let allcol = [];
+        tableColumn: this.setTableColumn(this.showcol)
+      }
+      let allcol = []
       for (let i = 0; i < this.tableList.tableColumn.length; i++) {
         if (!this.tableList.tableColumn[i].default) {
-          const label = this.tableList.tableColumn[i].label;
-          allcol.push(label);
+          const label = this.tableList.tableColumn[i].label
+          allcol.push(label)
         }
       }
-      this.tableList.allcol = allcol;
+      this.tableList.allcol = allcol
     },
     setTableColumn(showcol) {
       let tableColumn = [
         {
           label: "鏃ユ湡",
-          prop: this.$route.params.paramsKey.date,
+          prop: "date",
           isShowColumn: true,
           default: true,
-          date: true,
+          // date: true
         },
         {
           label: "鍗曞彿",
-          prop: this.$route.params.paramsKey.number,
+          prop: "number",
           isShowColumn: true,
-          default: true,
+          default: true
         },
         {
           label: "浜у搧",
-          prop: this.$route.params.paramsKey.productName,
+          prop: "productName",
+          isShowColumn: true,
+          default: true
+        },
+        {
+          label: "浜у搧缂栫爜",
+          prop: "productId",
+          isShowColumn: true,
+          default: true
+        },
+        {
+          label: "涓氬姟绫诲瀷",
+          prop: "operationTypeName",
           isShowColumn: true,
           default: true,
+          // conversion: true,
+          // getStatus: this.getBaseOperationTypeList
         },
         {
           label: "浠�",
-          prop: this.$route.params.paramsKey.fromLocation,
+          prop: "fromLocation",
           isShowColumn: true,
-          default: true,
+          default: true
         },
         {
           label: "鑷�",
-          prop: this.$route.params.paramsKey.toLocation,
+          prop: "toLocation",
           isShowColumn: true,
-          default: true,
+          default: true
         },
-        {
+        /*{
           label: "鏁伴噺",
-          prop: this.$route.params.paramsKey.amount,
+          prop: "amount",
           isShowColumn: true,
-          default: true,
+          default: true
         },
         {
           label: "鍗曚綅",
-          prop: this.$route.params.paramsKey.unit,
+          prop: "unit",
           isShowColumn: true,
-          default: true,
+          default: true
+        },*/
+        {
+          label: "閲嶉噺",
+          prop: "weight",
+          isShowColumn: true,
+          default: true
         },
         {
           label: "鐘舵��",
-          prop: this.$route.params.paramsKey.status,
+          prop: "status",
           width: 120,
           isShowColumn: showcol.includes("鐘舵��"),
           default: false,
           status: true,
           isCallMethod: true,
-          getCallMethod: this.getStatus,
+          getCallMethod: this.getStatus
         },
         {
           label: "瀹屾垚鑰�",
-          prop: this.$route.params.paramsKey.contactedName,
+          prop: "contactedName",
           isShowColumn: showcol.includes("瀹屾垚鑰�"),
-          default: false,
-        },
-      ];
-      return tableColumn;
+          default: false
+        }
+      ]
+      return tableColumn
     },
     selTableCol(val) {
-      this.showcol = val;
-      this.tableList.tableColumn = this.setTableColumn(val);
+      this.showcol = val
+      this.tableList.tableColumn = this.setTableColumn(val)
+    },
+    getBaseOperationTypeList(val){
+      let string = "--"
+      if (val) {
+        for (let i in this.baseOperationTypeList) {
+          if (this.baseOperationTypeList[i].id == val) {
+            return this.baseOperationTypeList[i].name
+          }
+        }
+      }
+      return string
     },
     // 搴撳瓨鎶ヨ〃璺宠浆璇锋眰鏁版嵁
     async getData() {
-      if (this.$route.params.pageName == "浜у搧") {
-        await getProductOperatonList({
-          productId: this.productId,
+      if (this.params.name === "鎶ヨ〃") {
+        await getHistory({
+          keyWord:this.params.keyWord,
+          produceId:this.params.produceId,
+          unit:this.params.unit,
+          productName:this.params.productName,
           page: this.pagerOptions.currPage,
-          pageSize: this.pagerOptions.pageSize,
+          pageSize: this.pagerOptions.pageSize
         }).then((res) => {
-          if (res.code === 200) {
-            const list = res.data.map((item) => {
-              return {
-                ...item,
-                from: item.fromLocation.name,
-                to: item.toLocation.name,
-                productName: this.productName,
-              };
-            });
-            this.tableList.tableInfomation = list || [];
-            this.pagerOptions.totalCount = res.total;
+          if (res.code === 200&&res.data) {
+            res.data.map((item)=>{
+                let dateObject = new Date(item.date);  
+                let formattedDateString = dateObject.toISOString().split('T')[0];  
+                item.date=formattedDateString
+            })
+            this.tableList.tableInfomation = res.data||[]
+          }else{
+            this.tableList.tableInfomation = res.data||[]
           }
-        });
-      } else if (this.$route.params.pageName == "鎶ヨ〃") {
-        await getHistory(this.$route.params.product).then((res) => {
-          if (res.code === 200) {
-            this.tableList.tableInfomation = res.data;
+          this.pagerOptions.totalCount = res.total
+        })
+      } else {
+        await getHistory({
+          baseOperationType:1,
+          keyWord:this.params.keyWord,
+          page: this.pagerOptions.currPage,
+          pageSize: this.pagerOptions.pageSize
+        }).then((res) => {
+          if (res.code === 200&&res.data) {
+            res.data.map((item)=>{
+                if(item.status===""){
+                  item.status=4
+                }
+                let dateObject = new Date(item.date);  
+                let formattedDateString = dateObject.toISOString().split('T')[0];  
+                item.date=formattedDateString
+            })
+            this.tableList.tableInfomation = res.data||[]
+          }else{
+            this.tableList.tableInfomation = res.data||[]
           }
-        });
+          this.pagerOptions.totalCount = res.total
+        })
       }
     },
-    //浜у搧璺宠浆璇锋眰鏁版嵁
-
     // 鎼滅储
     getList(val) {
-      console.log(val);
+      this.params.keyWord=val;
+      this.getData()
     },
     // 琛岀偣鍑�
-    tableRowClick(row) {
-      console.log(row,"琛宺ow")
-      this.editConfig.visible = true;
-      this.editConfig.title = "鏌ョ湅";
-      this.editConfig.infomation = { ...row };
+    async tableRowClick(row) {
+      console.log(row,"鐪嬬湅row")
+      // window.sessionStorage.sessionStorage.setItem('paramsData', {
+      //   // name: "鎷煎澶曚粨搴�-鍑哄簱",
+      //   workType: row.baseOperationType,
+      //   id: row.operationId,
+      //   // code: "PX"
+      // });  
+
+      await getOperationInfo(row.operationId).then((res)=>{
+          res.data.location=res.data.toLocation.id;
+          res.data.toLocation=res.data.toLocation.id;
+        res.data.details.forEach(item=>{
+            item.toLocationId=item.toLocation.name;
+        })
+        this.editConfig.infomation = { ...res.data,workType:res.baseOperationType }
+      })
+      this.editConfig.visible = true
+      this.editConfig.title = "鏌ョ湅"
     },
     // 鏂板缓
     addBtnClick() {
       // this.editConfig.visible = true
-      this.editConfig.title = "鏂板缓";
+      this.editConfig.title = "鏂板缓"
     },
     // 鐘舵��
     getStatus(val) {
-      console.log(val,"val鐘舵��")
-      return val === 1 ? "鑽夌" : val === 3 ? "灏辩华" : "瀹屾垚";
-    },
-  },
-};
+      return val === 1 ? "鑽夌" : val === 3 ? "灏辩华" : val===4?"瀹屾垚":val===5?"宸插彇娑�":" "
+    }
+  }
+}
 </script>
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
-<style lang="scss" scoped>
-// .rightContent {
-//   height: 100%;
-//   background: #e6ecf2;
-//   padding: 10px;
-//   .top {
-//     margin-bottom: 20px;
-//     height: 60px;
-//     background: #fff;
-//     border-radius: 8px;
-//   }
-//   .list-view {
-//     height: calc(100% - 120px);
-//   }
-// }
-</style>
+<style lang="scss" scoped></style>

--
Gitblit v1.8.0