Przeglądaj źródła

入库单页面添加

gjy 3 lat temu
rodzic
commit
75d81fd0a1
42 zmienionych plików z 11770 dodań i 595 usunięć
  1. 1 1
      public/static/outWeightPrint.html
  2. 4 0
      src/api/V2/houseSelfCollect/index.js
  3. 2 0
      src/api/V2/outboundManagement/index.js
  4. 4 0
      src/lang/zh.js
  5. 7 1
      src/model/houseSelfCollect/index.js
  6. 5 3
      src/model/outboundManagement/index.js
  7. 93 79
      src/views/houseSelfCollect/inspectionManagementNew.vue
  8. 2 1
      src/views/houseSelfCollect/inspectionManagementrecord.vue
  9. 290 163
      src/views/houseSelfCollect/newWeighingManagement.vue
  10. 18 12
      src/views/houseSelfCollect/paymentManagement.vue
  11. 26 4
      src/views/houseSelfCollect/weightCheckRecord.vue
  12. 289 270
      src/views/outboundManagement/weighingManagementNew.vue
  13. 518 0
      src/views/profitable/cashout.vue
  14. 471 0
      src/views/profitable/cashoutaduit.vue
  15. 251 0
      src/views/profitable/contractcost.vue
  16. 245 0
      src/views/profitable/contractinventory.vue
  17. 396 0
      src/views/profitable/contractprofits.vue
  18. 278 0
      src/views/profitable/contractprofitsdetails.vue
  19. 442 0
      src/views/profitable/expenseallot.vue
  20. 442 0
      src/views/profitable/expenseallotaduit.vue
  21. 439 0
      src/views/profitable/expensemanagement.vue
  22. 369 0
      src/views/profitable/expensemanagementdetails.vue
  23. 500 0
      src/views/profitable/expensemanagentedit.vue
  24. 285 0
      src/views/profitable/expensemanagentlook.vue
  25. 354 0
      src/views/profitable/payment.vue
  26. 442 0
      src/views/profitable/receipt.vue
  27. 442 0
      src/views/profitable/receiptaduit.vue
  28. 250 0
      src/views/profitable/warehousecost.vue
  29. 234 0
      src/views/profitable/warehouseinventory.vue
  30. 406 0
      src/views/profitable/warehouseprofits.vue
  31. 251 0
      src/views/profitable/warehouseprofitsdetails.vue
  32. 78 0
      src/views/taskManagement/component/routers/route.js
  33. 636 0
      src/views/taskManagement/outsupplyofgoods.vue
  34. 636 0
      src/views/taskManagement/outsupplyofgoodsedit.vue
  35. 603 0
      src/views/taskManagement/outsupplyofgoodslook.vue
  36. 649 0
      src/views/taskManagement/supplyofgoods.vue
  37. 649 0
      src/views/taskManagement/supplyofgoodsedit.vue
  38. 649 0
      src/views/taskManagement/supplyofgoodslook.vue
  39. 7 0
      src/views/taskManagement/tranManagementWarehouseInOutTask.vue
  40. 6 0
      src/views/taskManagement/tranManagementWarehouseInOutTaskAdd.vue
  41. 79 55
      src/views/warehousenew/warehouseManagementList.vue
  42. 22 6
      src/views/warehousenew/warehouseManagementMintor.vue

+ 1 - 1
public/static/outWeightPrint.html

@@ -145,7 +145,7 @@
                 </tr>
                 <tr class="row">
                     <td class="col col-bgc">出库单位</td>
-                    <td class="col" colspan="2">{{tableData.compName}}</td>
+                    <td class="col" colspan="2">{{tableData.contractManagement?tableData.contractManagement.seller:tableData.compName}}</td>
                     <td class="col col-bgc">联系人</td>
                     <td class="col">{{tableData.person}}</td>
                     <td class="col col-bgc">联系电话</td>

+ 4 - 0
src/api/V2/houseSelfCollect/index.js

@@ -108,3 +108,7 @@ export const API_POST_SUSPENDINSTANCE ='/paymentManagement/api/ReSettlement'
 export const API_POST_IMPORT ='/qualityInspectionManagement/api/importQuality'
 // 结算单
 export const API_GET_SETTLEACCOUT = '/warehouseInOutInfo/getInfo'
+// 退回
+export const API_POST_RETURN= '/weighingManagement/weightReturn'
+// 新检斤保存
+export const API_POST_SUBMIT= '/warehouseInOutInfo/api/newInOutWarehouse'

+ 2 - 0
src/api/V2/outboundManagement/index.js

@@ -36,3 +36,5 @@ export const API_POST_COLLECTION_MONEY = '/paymentManagement/api/collectMoney'
 export const API_POST_COLLECTION_EDITCOLLECT = '/paymentManagement/api/editCollect'
 // 添加备注
 export const API_POST_COLLECTION_ADDREMARKS = '/paymentManagement/api/addRemarks'
+// 新检斤保存
+export const API_POST_NEW_SUBMIT = '/warehouseInOutInfo/api/newInOutWarehouse'

+ 4 - 0
src/lang/zh.js

@@ -605,6 +605,10 @@ export default {
     tranManagementTransportAdd: '运输任务添加',
     tranManagementTransportEdit: '运输任务编辑',
     tranManagementWarehouseInOutTask: '出入库任务',
+    supplyofgoods:'出入库任务  /  添加  /  选择货源',
+    outsupplyofgoods:'出入库任务  /  添加  /  选择货源',
+    supplyofgoodslook:'出入库任务  /  审核  /  查看货源',
+    outsupplyofgoodslook:'出入库任务  /  审核  /  查看货源',
     tranManagementWarehouseInOutTaskAdd: '出入库任务添加',
     tranManagementWarehouseInOutTaskEdit: '编辑',
     tranManagementWarehouseInOutTaskaudit: '审核',

+ 7 - 1
src/model/houseSelfCollect/index.js

@@ -55,7 +55,9 @@ import {
   API_POST_SUSPENDINSTANCE,
   API_POST_IMPORT,
   API_GET_INSPECT_CONTRACTNO,
-  API_GET_SETTLEACCOUT
+  API_GET_SETTLEACCOUT,
+  API_POST_RETURN,
+  API_POST_SUBMIT
 } from '@/api/V2/houseSelfCollect'
 //客户管理列表
 export const getCustomerManage = appRx.get(API_GET_CUSTOMER_MANAGE, errorCatcher, errorHandle, filter)
@@ -167,3 +169,7 @@ export const suspendinstance = appRx.post(API_POST_SUSPENDINSTANCE, errorCatcher
 export const importWord = appRx.post(API_POST_IMPORT, errorCatcher, errorHandle, filter)
 // 查看结算单
 export const getsettleaccout = appRx.get(API_GET_SETTLEACCOUT, errorCatcher, errorHandle, filter)
+// 退回
+export const returnInfo = appRx.post(API_POST_RETURN, errorCatcher, errorHandle, filter)
+// 新检斤保存
+export const newSubmit = appRx.post(API_POST_SUBMIT, errorCatcher, errorHandle, filter)

+ 5 - 3
src/model/outboundManagement/index.js

@@ -20,8 +20,8 @@ import {
     API_POST_COLLECTION_EDITCOLLECT,
     API_POST_COLLECTION_ADDREMARKS,
     API_POST_COLLECTION_MONEY,
-    API_GET_INSPECT_CONTRANCLISTWEIGHING
-
+    API_GET_INSPECT_CONTRANCLISTWEIGHING,
+    API_POST_NEW_SUBMIT
 }   from '@/api/V2/outboundManagement'
 
   //质检列表
@@ -61,4 +61,6 @@ export const getcollection = appRx.get(API_GET_COLLECTION_LIST, errorCatcher, er
 //编辑实际应收
 export const editcollect = appRx.post(API_POST_COLLECTION_EDITCOLLECT, errorCatcher, errorHandle, filter)
 //添加备注
-export const remarksAdd = appRx.post(API_POST_COLLECTION_ADDREMARKS, errorCatcher, errorHandle, filter)
+export const remarksAdd = appRx.post(API_POST_COLLECTION_ADDREMARKS, errorCatcher, errorHandle, filter)
+//新检斤保存
+export const newSubmit = appRx.post(API_POST_NEW_SUBMIT, errorCatcher, errorHandle, filter)

+ 93 - 79
src/views/houseSelfCollect/inspectionManagementNew.vue

@@ -59,10 +59,10 @@
                       :value="item.inOutTaskNo" />
                   </el-select>
                 </ws-form-item>
-                <ws-form-item v-if='serviceManagementType==3' label="业务编号" span="1" prop="qualityNo">
+                <!-- <ws-form-item v-if='serviceManagementType==3' label="业务编号" span="1" prop="qualityNo">
                   <ws-input v-model="deptBudgetList.qualityNo" placeholder="自动获取,不可编辑" maxlength="100" disabled
                     size="small" />
-                </ws-form-item>
+                </ws-form-item> -->
                 <ws-form-item v-if='serviceManagementType==3' label="购粮性质" span="1" prop="natureOfGrainPurchase">
                   <ws-input v-model="deptBudgetList.natureOfGrainPurchase" placeholder="请输入购粮性质" maxlength="10"
                     size="small" :disabled="disabled" />
@@ -167,10 +167,10 @@
                       top: -1px;
                     " src="../../../public/img/edit.png" @click="editClick(3)" alt="" /> -->
                 </ws-form-item>
-                <ws-form-item v-if='serviceManagementType==1' label="业务编号" span="1" prop="qualityNo">
+                <!-- <ws-form-item v-if='serviceManagementType==1' label="业务编号" span="1" prop="qualityNo">
                   <ws-input v-model="deptBudgetList.qualityNo" placeholder="自动获取,不可编辑" maxlength="100" disabled
                     size="small" />
-                </ws-form-item>
+                </ws-form-item> -->
 
                 <ws-form-item v-if='serviceManagementType==1' label="囤位号" span="1" prop="storageTagNo">
                   <ws-input :disabled='recheck' v-model="deptBudgetList.storageTagNo" placeholder="选填,1-10个字符"
@@ -1031,18 +1031,18 @@
                   }
                    this.getNowTime()
                   var count = ''
-                  if (this.serviceManagementType == 3) {
-                    if (this.warehouseCount < 10) {
-                      count = '000' + (this.warehouseCount + 1)
-                    }
-                    if (this.warehouseCount < 100 && this.warehouseCount >= 10) {
-                      count = '00' + (this.warehouseCount + 1)
-                    }
-                    if (this.warehouseCount < 1000 && this.warehouseCount >= 100) {
-                      count = '0' + (this.warehouseCount + 1)
-                    }
-                    this.deptBudgetList.qualityNo = 'SGRK' + this.getTime() + this.warehouseNo + count
-                  }
+                  // if (this.serviceManagementType == 3) {
+                  //   if (this.warehouseCount < 10) {
+                  //     count = '000' + (this.warehouseCount + 1)
+                  //   }
+                  //   if (this.warehouseCount < 100 && this.warehouseCount >= 10) {
+                  //     count = '00' + (this.warehouseCount + 1)
+                  //   }
+                  //   if (this.warehouseCount < 1000 && this.warehouseCount >= 100) {
+                  //     count = '0' + (this.warehouseCount + 1)
+                  //   }
+                  //   this.deptBudgetList.qualityNo = 'SGRK' + this.getTime() + this.warehouseNo + count
+                  // }
 
                 })
             })
@@ -1116,19 +1116,19 @@
                 titleNoOther: '',
               }
                this.getNowTime()
-              if (this.serviceManagementType == 3) {
-                var count = ''
-                if (this.warehouseCount < 10) {
-                  count = '000' + (this.warehouseCount + 1)
-                }
-                if (this.warehouseCount < 100 && this.warehouseCount >= 10) {
-                  count = '00' + (this.warehouseCount + 1)
-                }
-                if (this.warehouseCount < 1000 && this.warehouseCount >= 100) {
-                  count = '0' + (this.warehouseCount + 1)
-                }
-                this.deptBudgetList.qualityNo = 'SGRK' + this.getTime() + this.warehouseNo + count
-              }
+              // if (this.serviceManagementType == 3) {
+              //   var count = ''
+              //   if (this.warehouseCount < 10) {
+              //     count = '000' + (this.warehouseCount + 1)
+              //   }
+              //   if (this.warehouseCount < 100 && this.warehouseCount >= 10) {
+              //     count = '00' + (this.warehouseCount + 1)
+              //   }
+              //   if (this.warehouseCount < 1000 && this.warehouseCount >= 100) {
+              //     count = '0' + (this.warehouseCount + 1)
+              //   }
+              //   this.deptBudgetList.qualityNo = 'SGRK' + this.getTime() + this.warehouseNo + count
+              // }
               this.getList()
             })
         }
@@ -1289,19 +1289,19 @@
           inOutTypeKey: 1
         }
          this.getNowTime()
-        if (this.serviceManagementType == 3) {
-          var count = ''
-          if (this.warehouseCount < 10) {
-            count = '000' + (this.warehouseCount + 1)
-          }
-          if (this.warehouseCount < 100 && this.warehouseCount >= 10) {
-            count = '00' + (this.warehouseCount + 1)
-          }
-          if (this.warehouseCount < 1000 && this.warehouseCount >= 100) {
-            count = '0' + (this.warehouseCount + 1)
-          }
-          this.deptBudgetList.qualityNo = 'SGRK' + this.getTime() + this.warehouseNo + count
-        }
+        // if (this.serviceManagementType == 3) {
+        //   var count = ''
+        //   if (this.warehouseCount < 10) {
+        //     count = '000' + (this.warehouseCount + 1)
+        //   }
+        //   if (this.warehouseCount < 100 && this.warehouseCount >= 10) {
+        //     count = '00' + (this.warehouseCount + 1)
+        //   }
+        //   if (this.warehouseCount < 1000 && this.warehouseCount >= 100) {
+        //     count = '0' + (this.warehouseCount + 1)
+        //   }
+        //   this.deptBudgetList.qualityNo = 'SGRK' + this.getTime() + this.warehouseNo + count
+        // }
       },
       statustypechangelist(status) {
         this.statusType = status
@@ -1396,19 +1396,19 @@
                         inOutTypeKey: 1
                       }
                        this.getNowTime()
-                      if (this.serviceManagementType == 3) {
-                        var count = ''
-                        if (this.warehouseCount < 10) {
-                          count = '000' + (this.warehouseCount + 1)
-                        }
-                        if (this.warehouseCount < 100 && this.warehouseCount >= 10) {
-                          count = '00' + (this.warehouseCount + 1)
-                        }
-                        if (this.warehouseCount < 1000 && this.warehouseCount >= 100) {
-                          count = '0' + (this.warehouseCount + 1)
-                        }
-                        this.deptBudgetList.qualityNo = 'SGRK' + this.getTime() + this.warehouseNo + count
-                      }
+                      // if (this.serviceManagementType == 3) {
+                      //   var count = ''
+                      //   if (this.warehouseCount < 10) {
+                      //     count = '000' + (this.warehouseCount + 1)
+                      //   }
+                      //   if (this.warehouseCount < 100 && this.warehouseCount >= 10) {
+                      //     count = '00' + (this.warehouseCount + 1)
+                      //   }
+                      //   if (this.warehouseCount < 1000 && this.warehouseCount >= 100) {
+                      //     count = '0' + (this.warehouseCount + 1)
+                      //   }
+                      //   this.deptBudgetList.qualityNo = 'SGRK' + this.getTime() + this.warehouseNo + count
+                      // }
                       this.getList()
                     } else {
                       this.$message.error('提交失败')
@@ -2071,7 +2071,21 @@
             return
           }
         }
+        // deptBudgetList.qualityNo//业务编号改为后端生成
+        delete this.deptBudgetList.qualityNo
+        if(this.serviceManagementType == 1){
+            if(this.deptBudgetList.inOutType == '移库入库'){
+              this.deptBudgetList.numberLetter = "YKRK"
+          }else{
+              this.deptBudgetList.numberLetter = "CGRK"
+          }
+        }else{
+           this.deptBudgetList.numberLetter = "SGRK"
+        }
+        
+        this.deptBudgetList.warehouseNo = this.warehouseNo
         console.log(this.deptBudgetList, '入库对象')
+        // return
 
         this.$confirm(`确定提交入库信息`, {
             cancelButtonText: '取消',
@@ -2405,13 +2419,13 @@
       },
       warehousetypechange(status) {
         this.serviceManagementType = status
-        if (status == 3) {
-          //解决冲突别解决没了(注意)
-          this.outType = '他运'
-          this.warehouseCount = '000' + Number(this.warehouseCount + 1)
-          this.deptBudgetList.qualityNo = 'SGRK' + this.getTime() + this.warehouseNo + this.warehouseCount.substring(
-            this.warehouseCount.length - 4)
-        }
+        // if (status == 3) {
+        //   //解决冲突别解决没了(注意)
+        //   this.outType = '他运'
+        //   this.warehouseCount = '000' + Number(this.warehouseCount + 1)
+        //   this.deptBudgetList.qualityNo = 'SGRK' + this.getTime() + this.warehouseNo + this.warehouseCount.substring(
+        //     this.warehouseCount.length - 4)
+        // }
         this.getList()
       },
       // 默认按钮暂时不用
@@ -2461,8 +2475,8 @@
               this.customerPhone = this.outContractNo[i].buyerPhone
               this.warehouseTradeCount = this.warehouseTradeCount1
               this.warehouseTradeCount = '000' + (Number(this.warehouseTradeCount) + 1)
-              this.deptBudgetList.qualityNo = 'CGRK' + this.getTime() + this.warehouseNo + this.warehouseTradeCount
-                .substring(this.warehouseTradeCount.length - 4)
+              // this.deptBudgetList.qualityNo = 'CGRK' + this.getTime() + this.warehouseNo + this.warehouseTradeCount
+                // .substring(this.warehouseTradeCount.length - 4)
               if (!this.outContractNo[i].unitContractPrice) {
                 this.deptBudgetList.tips = '卖方' + this.outContractNo[i].seller
               } else {
@@ -2473,8 +2487,8 @@
             } else if (this.outContractNo[i].inOutType == '移库入库') {
               this.customerName = localStorage.getItem('ws-pf_compName')
               this.warehouseTradeCount = '000' + (Number(this.warehouseTradeCount) + 1)
-              this.deptBudgetList.qualityNo = 'YKRK' + this.getTime() + this.warehouseNo + this.warehouseTradeCount
-                .substring(this.warehouseTradeCount.length - 4)
+              // this.deptBudgetList.qualityNo = 'YKRK' + this.getTime() + this.warehouseNo + this.warehouseTradeCount
+                // .substring(this.warehouseTradeCount.length - 4)
               this.deptBudgetList.goodsName = data.goodsName
               this.deptBudgetList.goodsNameKey = data.goodsNameKey
               this.deptBudgetList.grade = data.grade
@@ -2616,19 +2630,19 @@
               titleNoOther: '',
             }
              this.getNowTime()
-            if (this.serviceManagementType == 3) {
-              var count = ''
-              if (this.warehouseCount < 10) {
-                count = '000' + Number(this.warehouseCount + 1)
-              }
-              if (this.warehouseCount < 100 && this.warehouseCount >= 10) {
-                count = '00' + Number(this.warehouseCount + 1)
-              }
-              if (this.warehouseCount < 1000 && this.warehouseCount >= 100) {
-                count = '0' + Number(this.warehouseCount + 1)
-              }
-              this.deptBudgetList.qualityNo = 'SGRK' + this.getTime() + this.warehouseNo + count
-            }
+            // if (this.serviceManagementType == 3) {
+            //   var count = ''
+            //   if (this.warehouseCount < 10) {
+            //     count = '000' + Number(this.warehouseCount + 1)
+            //   }
+            //   if (this.warehouseCount < 100 && this.warehouseCount >= 10) {
+            //     count = '00' + Number(this.warehouseCount + 1)
+            //   }
+            //   if (this.warehouseCount < 1000 && this.warehouseCount >= 100) {
+            //     count = '0' + Number(this.warehouseCount + 1)
+            //   }
+            //   this.deptBudgetList.qualityNo = 'SGRK' + this.getTime() + this.warehouseNo + count
+            // }
             this.getList()
           }
         }

+ 2 - 1
src/views/houseSelfCollect/inspectionManagementrecord.vue

@@ -34,7 +34,7 @@
       </template>
     </BaseHeaderLayout>
     <!-- <div style="height:calc(100vh - 600px)"> -->
-    <el-table :data="inspect" style="width: 100%; margin-top: 20px" ref="inspect" border height="calc(100% - 130px)">
+    <el-table :data="inspect" style="width: 100%; margin-top: 20px" ref="inspect" border height="calc(100% - 160px)">
       <el-table-column type="index" label="序号" width="50">
         <template scope="scope">
           <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
@@ -97,6 +97,7 @@
           </div>
           <el-button @click="print(scope.row)" v-hasPermission="`acquisitionManagement.acquisitionQuality.print`">打印
           </el-button>
+          
         </template>
       </el-table-column>
     </el-table>

+ 290 - 163
src/views/houseSelfCollect/newWeighingManagement.vue

@@ -142,7 +142,7 @@
                 <el-button @click="print(1)" v-if="information == '皮重'" type="primary">保存并打印
                 </el-button>
               </div>
-               <!-- <div>
+              <!-- <div>
                       <div>粮源</div>
                       <div class='stocks' v-for='(item,index) in stocks'>
                         <el-select v-model="item.warehouseName" filterable placeholder="选择所属仓库" @change="warehouseNameChange" :value="searchType">
@@ -294,6 +294,7 @@
     getinspectLookGoods,
     selectWarehouseSelf,
     getsettleaccout,
+    newSubmit
   } from '@/model/houseSelfCollect/index'
   import {
     addstorageputList
@@ -452,7 +453,11 @@
         allowEdit: 0,
         mListTop: [],
         mListBottom: [],
-        stocks:[{warehouseName:'',weight:'',cost:''}],
+        stocks: [{
+          warehouseName: '',
+          weight: '',
+          cost: ''
+        }],
         pListTop: [],
         carList1: [],
         pListBottom: [],
@@ -616,11 +621,7 @@
             .then((response) => {
               that.common.commonWeighingList = response.records
               that.makeData()
-            })
-            .catch((response) => {
-              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
-            })
-          getweighingList({
+              getweighingList({
               compId: localStorage.getItem('ws-pf_compId'),
               currentPage: that.currentPage,
               pageSize: that.pageSize,
@@ -635,16 +636,21 @@
             .toPromise()
             .then((response) => {
               that.deptBudgetTotal = response.total
-              that.weighingList = response.records
+              // that.weighingList = response.records
+            })
+            .catch((response) => {
+              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+            })
             })
             .catch((response) => {
               // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
             })
+          
         } else {
           clearInterval(that.timer)
           that.refresh = 60
           that.timer = setInterval(function() {
-            console.log(that.refresh)
+            // console.log(that.refresh)
             if (that.refresh == 0) {
               that.refresh = 60
               getweighingList({
@@ -662,11 +668,7 @@
                 .then((response) => {
                   that.common.commonWeighingList = response.records
                   that.makeData()
-                })
-                .catch((response) => {
-                  // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
-                })
-              getweighingList({
+                  getweighingList({
                   compId: localStorage.getItem('ws-pf_compId'),
                   currentPage: that.currentPage,
                   pageSize: that.pageSize,
@@ -681,11 +683,16 @@
                 .toPromise()
                 .then((response) => {
                   that.deptBudgetTotal = response.total
-                  that.weighingList = response.records
+                  // that.weighingList = response.records
                 })
                 .catch((response) => {
                   // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
                 })
+                })
+                .catch((response) => {
+                  // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+                })
+              
             }
             that.refresh--
 
@@ -721,6 +728,7 @@
           })
           .toPromise()
           .then((response) => {
+            debugger
             this.dialogDataList = [] //点击确认时先清空要打印的数组
             this.dialogData = response
             if (response.compName == '黑龙江秋收有限公司') {
@@ -835,11 +843,14 @@
         }
         // this.deptBudgetTotal = this.carList.length
       },
-      addstocks(index){
-       this.stocks.push({warehouseName:'',cost:''})
+      addstocks(index) {
+        this.stocks.push({
+          warehouseName: '',
+          cost: ''
+        })
       },
-      delstocks(index){
-        this.stocks.splice(index,1)
+      delstocks(index) {
+        this.stocks.splice(index, 1)
       },
       handleSizeChange(val) {
         console.log(`每页 ${val} 条`)
@@ -901,9 +912,12 @@
         this.pListTop = []
         this.pListBottom = []
         this.carWeightInfo.carNumber = ''
-        this.weighingList = []
+        
         let that = this
         let _list = this.common.commonWeighingList
+        if(_list.length > 0 ){
+            this.weighingList = []
+        }
         for (let i = 0; i < _list.length; i++) {
           if (_list[i].paymentManagement) {
             if (
@@ -942,6 +956,7 @@
           if (this.mList.length != 0) {
             this.setCurrent(this.mList[0])
 
+          debugger
             this.weighingList = this.mList[0]
             this.carWeightInfo = {
               carNumber: this.mList[0].carNumber,
@@ -955,11 +970,12 @@
           this.carList1 = this.pListTotal
           if (this.pList.length != 0) {
             this.setCurrent(this.pList[0])
+          debugger
             this.weighingList = this.pList[0]
             this.weighingList.inOutType = this.pList[0].qualityInspectionManagement.inOutType
             this.weighingList.inOutTypeKey = this.pList[0].qualityInspectionManagement.inOutTypeKey
             this.weighingList.deductionAmount = this.pList[0].qualityInspectionManagement.deductionAmount
-            console.log(this.weighingList)
+            // console.log(this.weighingList)
             this.carWeightInfo = {
               carNumber: this.pList[0].carNumber,
               type: this.information,
@@ -1200,13 +1216,7 @@
       },
       handleCurrentChange(val) {
         this.submitAllow = false
-        if (this.tpyeNo == 2 && this.status == 1 && val && val.qualityInspectionManagement.confirm == 0) {
-          this.submitAllow = true
-          this.$message({
-            message: '该条质检信息未确认',
-            type: 'warning'
-          });
-        }
+
         if (val) {
           this.currentRow = val
           this.carWeightInfo = {
@@ -1214,14 +1224,23 @@
             type: this.information,
             weight: val.grossWeight,
           }
+          debugger
           this.weighingList = val
           if (val.qualityInspectionManagement) {
             this.weighingList.boxNo = val.qualityInspectionManagement.boxNo
             this.weighingList.boxNoOther = val.qualityInspectionManagement.boxNoOther
             this.weighingList.titleNo = val.qualityInspectionManagement.titleNo
             this.weighingList.titleNoOther = val.qualityInspectionManagement.titleNoOther
+            if (this.tpyeNo == 2 && this.status == 1 && val && val.qualityInspectionManagement.confirm == 0 && this
+              .warehouseName != '克东千丰库') {
+              this.submitAllow = true
+              this.$message({
+                message: '该条质检信息未确认',
+                type: 'warning'
+              });
+            }
+            this.paramType = val.qualityInspectionManagement.paramType
           }
-          this.paramType = val.qualityInspectionManagement.paramType
         }
       },
       cancel() {
@@ -1489,81 +1508,155 @@
                           )
                         } else {
                           //累计售粮没有超上限完成毛检保存
-                          // this.weighingList.relationId = this.relationId;
-                          grossWeight(this.weighingList)
-                            .toPromise()
-                            .then((response) => {
-                              if (this.reader) {
-                                this.reader.cancel()
-                              }
-                              this.$notify.success({
-                                title: '成功',
-                                message: '保存成功',
+                          if (this.inWarehouseType == 1) { //判断贸易入库提交毛重
+                            warehousing.grossWeight /= 1000
+                            warehousing.tare /= 1000
+                            warehousing.netWeight /= 1000
+                            warehousing.pureWeight = 1000
+                            warehousing.deductionAmount *= 1000
+                            warehousing.deductionWeight /= 1000
+                            warehousing.statusFlag = 1
+                            warehousing.inOutFlag = 2
+                            warehousing.id = warehousing.warehouseInOutId
+                            warehousing.warehouseInOutDetail.id = warehousing.inOutDetailId
+                            warehousing.weighingManagement = this.weighingList
+                            newSubmit(warehousing)
+                              .toPromise()
+                              .then((response) => {
+                                this.$notify.success({
+                                  title: '成功',
+                                  message: '保存成功',
+                                })
+                                this.getList()
+
                               })
-                              //贸易入库需要再走入库接口
-                              if (this.inWarehouseType == 1) {
-                                warehousing.grossWeight /= 1000
-                                warehousing.tare /= 1000
-                                warehousing.netWeight /= 1000
-                                warehousing.pureWeight = 1000
-                                warehousing.deductionAmount *= 1000
-                                warehousing.deductionWeight /= 1000
-                                warehousing.statusFlag = 1
-                                warehousing.inOutFlag =2
-                                warehousing.id = warehousing.warehouseInOutId
-                                warehousing.warehouseInOutDetail.id = warehousing.inOutDetailId
-                                addstorageputList(warehousing).toPromise().then((response) => {
-                                  if (response == 'OK') {
-                                    this.getList()
-                                  }
+                          } else { //收购入库
+                            grossWeight(this.weighingList)
+                              .toPromise()
+                              .then((response) => {
+                                if (this.reader) {
+                                  this.reader.cancel()
+                                }
+                                this.$notify.success({
+                                  title: '成功',
+                                  message: '保存成功',
                                 })
-                              } else {
                                 this.getList()
-                              }
-                            })
-                            .catch((response) => {
-                              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
-                            })
+                              })
+                          }
+                          //累计售粮没有超上限完成毛检保存
+                          // this.weighingList.relationId = this.relationId;
+                          // grossWeight(this.weighingList)
+                          //   .toPromise()
+                          //   .then((response) => {
+                          //     if (this.reader) {
+                          //       this.reader.cancel()
+                          //     }
+                          //     this.$notify.success({
+                          //       title: '成功',
+                          //       message: '保存成功',
+                          //     })
+                          //     //贸易入库需要再走入库接口
+                          //     if (this.inWarehouseType == 1) {
+                          //       warehousing.grossWeight /= 1000
+                          //       warehousing.tare /= 1000
+                          //       warehousing.netWeight /= 1000
+                          //       warehousing.pureWeight = 1000
+                          //       warehousing.deductionAmount *= 1000
+                          //       warehousing.deductionWeight /= 1000
+                          //       warehousing.statusFlag = 1
+                          //       warehousing.inOutFlag =2
+                          //       warehousing.id = warehousing.warehouseInOutId
+                          //       warehousing.warehouseInOutDetail.id = warehousing.inOutDetailId
+                          //       addstorageputList(warehousing).toPromise().then((response) => {
+                          //         if (response == 'OK') {
+                          //           this.getList()
+                          //         }
+                          //       })
+                          //     } else {
+                          //       this.getList()
+                          //     }
+                          //   })
+                          //   .catch((response) => {
+                          //     // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+                          //   })
                         }
                       }
                     }
                   })
               } else {
-                grossWeight(this.weighingList)
-                  .toPromise()
-                  .then((response) => {
-                    if (this.reader) {
-                      this.reader.cancel()
-                    }
-                    this.$notify.success({
-                      title: '成功',
-                      message: '保存成功',
+                if (this.inWarehouseType == 1) { //贸易入库
+                  warehousing.grossWeight /= 1000
+                  warehousing.tare /= 1000
+                  warehousing.netWeight /= 1000
+                  warehousing.pureWeight = 1000
+                  warehousing.deductionAmount *= 1000
+                  warehousing.deductionWeight /= 1000
+                  warehousing.statusFlag = 1
+                  warehousing.inOutFlag = 2
+                  delete warehousing.status
+                  warehousing.id = warehousing.warehouseInOutId
+                  warehousing.warehouseInOutDetail.id = warehousing.inOutDetailId
+                  warehousing.weighingManagement = this.weighingList
+
+                  newSubmit(warehousing)
+                    .toPromise()
+                    .then((response) => {
+                      this.$notify.success({
+                        title: '成功',
+                        message: '保存成功',
+                      })
+                      this.getList()
                     })
-                    //贸易入库需要再走入库接口
-                    if (this.inWarehouseType == 1) {
-                      warehousing.grossWeight /= 1000
-                      warehousing.tare /= 1000
-                      warehousing.netWeight /= 1000
-                      warehousing.pureWeight = 1000
-                      warehousing.deductionAmount *= 1000
-                      warehousing.deductionWeight /= 1000
-                      warehousing.statusFlag = 1
-                      warehousing.inOutFlag = 2
-                      delete warehousing.status
-                      warehousing.id = warehousing.warehouseInOutId
-                      warehousing.warehouseInOutDetail.id = warehousing.inOutDetailId
-                      addstorageputList(warehousing).toPromise().then((response) => {
-                        if (response == 'OK') {
-                          this.getList()
-                        }
+                } else { //收购入库
+                  grossWeight(this.weighingList)
+                    .toPromise()
+                    .then((response) => {
+                      if (this.reader) {
+                        this.reader.cancel()
+                      }
+                      this.$notify.success({
+                        title: '成功',
+                        message: '保存成功',
                       })
-                    } else {
                       this.getList()
-                    }
-                  })
-                  .catch((response) => {
-                    // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
-                  })
+                    })
+                }
+                // grossWeight(this.weighingList)
+                //   .toPromise()
+                //   .then((response) => {
+                //     if (this.reader) {
+                //       this.reader.cancel()
+                //     }
+                //     this.$notify.success({
+                //       title: '成功',
+                //       message: '保存成功',
+                //     })
+                //     //贸易入库需要再走入库接口
+                //     if (this.inWarehouseType == 1) {
+                //       warehousing.grossWeight /= 1000
+                //       warehousing.tare /= 1000
+                //       warehousing.netWeight /= 1000
+                //       warehousing.pureWeight = 1000
+                //       warehousing.deductionAmount *= 1000
+                //       warehousing.deductionWeight /= 1000
+                //       warehousing.statusFlag = 1
+                //       warehousing.inOutFlag = 2
+                //       delete warehousing.status
+                //       warehousing.id = warehousing.warehouseInOutId
+                //       warehousing.warehouseInOutDetail.id = warehousing.inOutDetailId
+                //       addstorageputList(warehousing).toPromise().then((response) => {
+                //         if (response == 'OK') {
+                //           this.getList()
+                //         }
+                //       })
+                //     } else {
+                //       this.getList()
+                //     }
+                //   })
+                //   .catch((response) => {
+                //     // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+                //   })
               }
             } else if (this.tpyeNo == 2) {
               //皮重
@@ -1574,10 +1667,10 @@
               // // 入库添加
               // let _url3 = process.env.VUE_APP_BASE_API + '/warehouseInOutInfo/InOutWarehouse'
 
-              console.log(this.inWarehouseType)
-               //贸易入库需要再走入库接口
-              if (this.inWarehouseType == 1) {
-                getsettleaccout({
+              // console.log(this.inWarehouseType)
+              //贸易入库需要再走入库接口
+              if (this.inWarehouseType == 1) { //贸易入库皮检
+                getsettleaccout({//查看结算单
                   id: this.weighingList.warehouseInOutId
                 }).toPromise().then((response) => {
                   that.inOutData = response
@@ -1599,8 +1692,6 @@
                   // that.inOutDate.deductionAmount= Number(warehousing.deductionAmount) * 1000
                   // that.inOutDate.deductionWeight=warehousing.deductionWeight /1000
                   // that.inOutDate.inOutFlag = 2
-                  console.log(that.inOutData)
-
                   // warehousing.statusFlag = 3
                   // warehousing.grossWeight /= 1000
                   // warehousing.tare /= 1000
@@ -1616,52 +1707,81 @@
                   // warehousing.id = warehousing.warehouseInOutId
                   // // delete that.inOutDate.status
                   // that.inOutDate = Object.assign(that.inOutDate, warehousing)
-                  addstorageputList(that.inOutData).toPromise().then((response) => {
-                    this.weighingList.warehouseId = this.cangid;
-                    this.weighingList.skinInspector = localStorage.getItem('ws-pf_staffName')
-                    tare(this.weighingList)
-                      .toPromise()
-                      .then((response) => {
-                        console.log(1111)
-                        // if (this.reader) {
-                        //   this.reader.cancel()
-                        // }
-                        this.$notify.success({
-                          title: '成功',
-                          message: '保存成功',
-                        })
-                        this.idPrint = response
-                        if (this.weighingList.serviceManagementType == 1 && (this.warehouseName == '鲅鱼圈金信库' || this
-                            .warehouseName == '哈尔滨依兰库' || this
-                            .warehouseName == '白城内陆港')) {
-                          if (this.weighingList.seller && this.weighingList.buyer) {
-                            let cang = {}
-                            cang.value = this.weighingList.seller
-                            cang.label = this.weighingList.seller
-                            if (this.check(this.weighingList.seller, 1)) {
-                              this.ewCustomerOptions.push(cang)
-                            }
-                            let cang1 = {}
-                            cang1.value = this.weighingList.buyer
-                            cang1.label = this.weighingList.buyer
-                            if (this.check(this.weighingList.buyer, 2)) {
-                              this.companyNameEWOptions.push(cang1)
-                            }
-                          }
+                  that.weighingList.warehouseId = that.cangid;
+                  that.weighingList.skinInspector = localStorage.getItem('ws-pf_staffName')
+                  that.inOutData.weighingManagement = that.weighingList
+                  newSubmit(that.inOutData).toPromise().then((response) => { //检斤新接口
+                    this.$notify.success({
+                      title: '成功',
+                      message: '保存成功',
+                    })
+                    this.idPrint = response
+                    if (this.weighingList.serviceManagementType == 1 && (this.warehouseName == '鲅鱼圈金信库' ||
+                        this
+                        .warehouseName == '哈尔滨依兰库' || this
+                        .warehouseName == '白城内陆港')) {
+                      if (this.weighingList.seller && this.weighingList.buyer) {
+                        let cang = {}
+                        cang.value = this.weighingList.seller
+                        cang.label = this.weighingList.seller
+                        if (this.check(this.weighingList.seller, 1)) {
+                          this.ewCustomerOptions.push(cang)
                         }
-                        this.isShowPrintType = true
-                        this.getList()
-                      
-                      })
-                      .catch((response) => {})
+                        let cang1 = {}
+                        cang1.value = this.weighingList.buyer
+                        cang1.label = this.weighingList.buyer
+                        if (this.check(this.weighingList.buyer, 2)) {
+                          this.companyNameEWOptions.push(cang1)
+                        }
+                      }
+                    }
+                    this.isShowPrintType = true
+                    this.getList()
                   })
-                  
+                  // addstorageputList(that.inOutData).toPromise().then((response) => {
+                  //   this.weighingList.warehouseId = this.cangid;
+                  //   this.weighingList.skinInspector = localStorage.getItem('ws-pf_staffName')
+                  //   tare(this.weighingList)
+                  //     .toPromise()
+                  //     .then((response) => {
+                  //       console.log(1111)
+                  //       // if (this.reader) {
+                  //       //   this.reader.cancel()
+                  //       // }
+                  //       this.$notify.success({
+                  //         title: '成功',
+                  //         message: '保存成功',
+                  //       })
+                  //       this.idPrint = response
+                  //       if (this.weighingList.serviceManagementType == 1 && (this.warehouseName == '鲅鱼圈金信库' || this
+                  //           .warehouseName == '哈尔滨依兰库' || this
+                  //           .warehouseName == '白城内陆港')) {
+                  //         if (this.weighingList.seller && this.weighingList.buyer) {
+                  //           let cang = {}
+                  //           cang.value = this.weighingList.seller
+                  //           cang.label = this.weighingList.seller
+                  //           if (this.check(this.weighingList.seller, 1)) {
+                  //             this.ewCustomerOptions.push(cang)
+                  //           }
+                  //           let cang1 = {}
+                  //           cang1.value = this.weighingList.buyer
+                  //           cang1.label = this.weighingList.buyer
+                  //           if (this.check(this.weighingList.buyer, 2)) {
+                  //             this.companyNameEWOptions.push(cang1)
+                  //           }
+                  //         }
+                  //       }
+                  //       this.isShowPrintType = true
+                  //       this.getList()
+                  //     })
+                  //     .catch((response) => {})
+                  // })
+
                 })
-              } else {
+              } else { //收购入库皮检
                 tare(this.weighingList)
                   .toPromise()
                   .then((response) => {
-                    console.log(1111)
                     // if (this.reader) {
                     //   this.reader.cancel()
                     // }
@@ -1690,11 +1810,10 @@
                     }
                     this.isShowPrintType = true
                     this.getList()
-                  
                   })
                   .catch((response) => {})
               }
-              
+
             }
           })
           .catch(() => {
@@ -1708,28 +1827,36 @@
   /deep/.el-pagination {
     margin-bottom: 0;
   }
-.stocks{
-  position: relative;
-   /deep/.el-select{
-     width: 30.33%;
-   }
-  /deep/.el-select>.el-input {
-    display: inline-block;
-}
-/deep/>.el-input{
-  width:29.3333%;
-}
-.add,.del{
-  position:absolute;
-  right:16px;
-  transform: translateY(20%);
-  width:20px;
-  height:20px;
-}
-.del{
-  right:-7px;
-}
-}
+
+  .stocks {
+    position: relative;
+
+    /deep/.el-select {
+      width: 30.33%;
+    }
+
+    /deep/.el-select>.el-input {
+      display: inline-block;
+    }
+
+    /deep/>.el-input {
+      width: 29.3333%;
+    }
+
+    .add,
+    .del {
+      position: absolute;
+      right: 16px;
+      transform: translateY(20%);
+      width: 20px;
+      height: 20px;
+    }
+
+    .del {
+      right: -7px;
+    }
+  }
+
   .center {
     background: #E8ECF6;
   }

+ 18 - 12
src/views/houseSelfCollect/paymentManagement.vue

@@ -93,7 +93,7 @@
           <ws-button type="primary">导入</ws-button>
         </el-upload>
       </template>
-      <template slot="right"> </template>
+      <template slot="right"></template>
     </BaseHeaderLayout>
     <el-table :data="paymentList" ref="table" style="width: 100%; margin-top: 20px" border height="calc(100% - 170px)"
       @row-click="handleRowClick" @selection-change="handleSelectionChange" :summary-method="getSummaries" show-summary>
@@ -473,16 +473,22 @@
         appendixIdsAdd: '',
         excelFreightspace: [],
         goodnameList:[],
-        goodsName:"全部",
+        goodsName:'全部',
       }
     },
-    activated() {
+    mounted() {
       this.userJurisdiction = getHp('acquisitionManagement.acquisitionPay.print')
-      
+
       this.getPassYearFormatDate()
       this.getWarehouse()
-      // this.getList()
     },
+    // activated() {
+    //   this.userJurisdiction = getHp('acquisitionManagement.acquisitionPay.print')
+
+    //   this.getPassYearFormatDate()
+    //   this.getWarehouse()
+    //   // this.getList()
+    // },
     updated() {
 
       this.$nextTick(() => {
@@ -568,6 +574,7 @@
               obj.netWeight = v.净重
               obj.dryGrainPrice = v.单价
               obj.qualityDate = _this.formatDate(v.日期,'-')
+              obj.deductionAmount = v.扣款
               _this.excelFreightspace.push(obj)
             })
             if (_this.excelFreightspace) {
@@ -793,7 +800,7 @@
             if (response.length > 0) {
               var arr = []
               for (let i = 0; i < response.length; i++) {
-                let _name = response[i].replace('https://taohaoliang.oss-cn-beijing.aliyuncs.com/FP/',"")
+                let _name = response[i].replace('https://taohaoliang.oss-cn-beijing.aliyuncs.com/FP/','')
                 arr.push({
                   fileUrl: response[i],
                   renameFileName: _name,
@@ -932,7 +939,7 @@
       },
       async typePrintClick(type) {
         // type 1批量打印 0单个打印
-        //  this.isShowPrint = true
+        //  this.isShowPrint = true
         this.selectCustomerList = []
         this.selectPrintList = []
         if (type == 1) {
@@ -952,7 +959,7 @@
                   index2 == this.modification.length
                 ) {
                   this.printData.compName = ''
-                  // this.isShowPrint = true
+                  // this.isShowPrint = true
                   this.printBig()
                 }
                 getpaymentexamine({
@@ -978,7 +985,7 @@
                       index2 == this.modification.length
                     ) {
                       this.printData.compName = ''
-                      // this.isShowPrint = true
+                      // this.isShowPrint = true
                       this.printBig()
                     }
                   })
@@ -1254,7 +1261,7 @@
             managementType: 1,
             invoicing: this.invoicing,
             compId: localStorage.getItem('ws-pf_compId'),
-            goodsName:this.goodsName == '全部'?"":this.goodsName
+            goodsName:this.goodsName == '全部'?'':this.goodsName
           })
           .toPromise()
           .then((response) => {
@@ -1318,7 +1325,6 @@
               id: row.id,
             },
           })
-          
         }
       },
       payment() {
@@ -1870,4 +1876,4 @@
     border-top-right-radius: 0px;
     border-bottom-right-radius: 0px;
   }
-</style>
+</style>

+ 26 - 4
src/views/houseSelfCollect/weightCheckRecord.vue

@@ -68,11 +68,11 @@
         <el-table-column prop="secretaryWeigher" label="司称员"></el-table-column>
         <el-table-column prop="grossDate" label="检斤时间"></el-table-column>
         <el-table-column prop="status" label="状态"></el-table-column>
-        <el-table-column label="操作">
+        <el-table-column label="操作" min-width="170">
           <template scope="scope">
             <!-- <el-button size="small" @click="print(scope.row)">打印</el-button> -->
-            <el-button @click="print(scope.row)" v-if="scope.row.status == '已称皮重' || scope.row.status == '已称毛重'"
-              v-hasPermission="`acquisitionManagement.acquisitionWeight.print`">打印</el-button>
+            <el-button @click="print(scope.row)" v-if="scope.row.status == '已称皮重' || scope.row.status == '已称毛重'" v-hasPermission="`acquisitionManagement.acquisitionWeight.print`">打印</el-button>
+            <el-button @click="backInfo(scope.row)" v-if="scope.row.status == '已称皮重'">退回</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -147,7 +147,8 @@
   import {
     selectWarehouseSelf,
     getweighingList,
-    getPrint
+    getPrint,
+    returnInfo
   } from '@/model/houseSelfCollect/index'
   import weightCheckPrint from './component/weightCheckPrint.vue'
   export default {
@@ -282,6 +283,27 @@
       this.getList()
     },
     methods: {
+       backInfo(row){
+           this.$confirm('确定要退回该信息?', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning',
+          })
+          .then(() => {
+              returnInfo(row)
+            .toPromise()
+            .then((response) => {
+               this.$notify.success({
+                    title: '成功',
+                    message: '退回成功!',
+                })
+                this.getList()
+            })
+            .catch((response) => {
+              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+            })
+          })
+      },
       typePrintCannelClick() {
         this.onePrint = false //单个打印标识
         this.dialogDataList = [] //打个打印取消时数组至空

+ 289 - 270
src/views/outboundManagement/weighingManagementNew.vue

@@ -83,10 +83,10 @@
                         <ws-input v-else v-model="weighingList.inOutTaskNo" placeholder="自动获取,不可编辑" maxlength="100"
                           disabled size="small" />
                       </ws-form-item>
-                      <ws-form-item label="业务编号" span="1" prop="number">
+                      <!-- <ws-form-item label="业务编号" span="1" prop="number">
                         <ws-input v-model="weighingList.number" placeholder="自动获取,不可编辑" maxlength="100" disabled
                           size="small" />
-                      </ws-form-item>
+                      </ws-form-item> -->
                       <ws-form-item label="合同编号" span="1" prop="contractNo" v-show="inWarehouseType == 1"
                         v-if="weighingList.contractNo && tpyeNo == 1">
                         <ws-input v-model="weighingList.contractNo" placeholder="自动获取,不可编辑" maxlength="100" disabled
@@ -140,8 +140,8 @@
                       weighingList.outType == '汽运' ||
                       weighingList.outType == '集装箱船'
                     ">
-                        <ws-input v-if="!carstatus || carjudge"  v-model="weighingList.carNo"
-                          placeholder="请输入车牌号" maxlength="7" size="small" />
+                        <ws-input v-if="!carstatus || carjudge" v-model="weighingList.carNo" placeholder="请输入车牌号"
+                          maxlength="7" size="small" />
                         <el-select v-else filterable clearable v-model="weighingList.carNo" placeholder="请选择车牌号"
                           class="typeselect" @change="carChange">
                           <el-option v-for="item in options2" :key="item.constKey"
@@ -153,38 +153,33 @@
                       weighingList.outType == '汽运' ||
                       weighingList.outType == '集装箱船'
                     ">
-                        <ws-input  v-model="weighingList.boxNo" placeholder="请输入箱号"
-                          maxlength="20" size="small" />
+                        <ws-input v-model="weighingList.boxNo" placeholder="请输入箱号" maxlength="20" size="small" />
                       </ws-form-item>
                       <ws-form-item label="封号-1" span="1" prop="titleNo" v-if="
                       weighingList.outType == '汽运' ||
                       weighingList.outType == '集装箱船'
                     ">
-                        <ws-input  v-model="weighingList.titleNo" placeholder="请输入封号"
-                          maxlength="20" size="small" />
+                        <ws-input v-model="weighingList.titleNo" placeholder="请输入封号" maxlength="20" size="small" />
                       </ws-form-item>
                       <ws-form-item label="箱号-2" span="1" prop="boxNoOther" v-if="
                       weighingList.outType == '汽运' ||
                       weighingList.outType == '集装箱船'
                     ">
-                        <ws-input  v-model="weighingList.boxNoOther" placeholder="请输入箱号"
-                          maxlength="20" size="small" />
+                        <ws-input v-model="weighingList.boxNoOther" placeholder="请输入箱号" maxlength="20" size="small" />
                       </ws-form-item>
-                      
+
                       <ws-form-item label="封号-2" span="1" prop="titleNoOther" v-if="
                       weighingList.outType == '汽运' ||
                       weighingList.outType == '集装箱船'
                     ">
-                        <ws-input  v-model="weighingList.titleNoOther" placeholder="请输入封号"
-                          maxlength="20" size="small" />
+                        <ws-input v-model="weighingList.titleNoOther" placeholder="请输入封号" maxlength="20" size="small" />
                       </ws-form-item>
                       <ws-form-item label="车厢号-1" span="1" prop="wingNumber" v-if="weighingList.outType == '火运'">
-                        <ws-input  v-model="weighingList.wingNumber" placeholder="请输入车厢号"
-                          maxlength="20" size="small" />
+                        <ws-input v-model="weighingList.wingNumber" placeholder="请输入车厢号" maxlength="20" size="small" />
                       </ws-form-item>
                       <ws-form-item label="车厢号-2" span="1" prop="wingNumberOther" v-if="weighingList.outType == '火运'">
-                        <ws-input  v-model="weighingList.wingNumberOther" placeholder="请输入车厢号"
-                          maxlength="20" size="small" />
+                        <ws-input v-model="weighingList.wingNumberOther" placeholder="请输入车厢号" maxlength="20"
+                          size="small" />
                       </ws-form-item>
                       <ws-form-item label="船名" span="1" prop="shipName" v-if="weighingList.outType == '散船'">
                         <ws-input v-model="weighingList.shipName" placeholder="请输入船名" maxlength="20" size="small" />
@@ -262,8 +257,8 @@
           </el-col>
           <el-col :span="12">
             <div class="list-info">
-              <div style="justify-content: space-between" class="flex">
-                <div>
+              <div style="justify-content: space-between;" class="flex">
+                <div style="min-width:146px;">
                   <el-button v-if="tpyeNo == 1" @click="add" type="primary">新增</el-button>
                   <el-button v-if="tpyeNo == 1" @click="deletelist" type="danger">删除</el-button>
                   <el-button v-if="tpyeNo == 2" @click="statustypechangelist(3)"
@@ -295,12 +290,10 @@
           </el-col>
         </el-row>
       </div>
-
-
     </div>
-
-    <el-dialog width="70%" class="title_css" center :visible.sync="isShowPrint" title="出库检斤单" @opened="opendBtn"
-      @close="closeDialog" :close-on-click-modal="false">
+    <!-- @opened="opendBtn" -->
+    <el-dialog width="70%" class="title_css" center :visible.sync="isShowPrint" title="出库检斤单" @close="closeDialog"
+      :close-on-click-modal="false">
       <weightCheckPrint :tableData="inspect" ref="saveImg"></weightCheckPrint>
       <div style="text-align: center">
         <el-button type="primary" @click="closePrint">关闭</el-button>
@@ -321,6 +314,7 @@
     getweighingList,
     selectWarehouseSelf,
     delelteWeighing,
+    newSubmit
   } from '@/model/outboundManagement/index'
   import {
     pullDown,
@@ -366,7 +360,11 @@
         monitorUrl2: '',
         index: 0,
         inspect: {},
-        stocks:[{warehouseName:'',weight:'',cost:''}],
+        stocks: [{
+          warehouseName: '',
+          weight: '',
+          cost: ''
+        }],
         id: 0,
         options2: [],
         isSelectType: false,
@@ -464,11 +462,14 @@
     },
     activated() {},
     methods: {
-      addstocks(index){
-       this.stocks.push({warehouseName:'',cost:''})
+      addstocks(index) {
+        this.stocks.push({
+          warehouseName: '',
+          cost: ''
+        })
       },
-      delstocks(index){
-        this.stocks.splice(index,1)
+      delstocks(index) {
+        this.stocks.splice(index, 1)
       },
       refreshClick(type) {
         let that = this
@@ -481,7 +482,7 @@
               warehouseName: that.warehouseName,
               managementType: 3,
               statusType: that.statusType,
-               // loadingstatus: 1,
+              // loadingstatus: 1,
             })
             .toPromise()
             .then((response) => {
@@ -522,7 +523,7 @@
                   warehouseName: that.warehouseName,
                   managementType: 3,
                   statusType: that.statusType,
-                   loadingstatus: 1,
+                  loadingstatus: 1,
                 })
                 .toPromise()
                 .then((response) => {
@@ -976,12 +977,12 @@
           }
         }
         if (!this.weighingList.binNumber) {
-            this.$message({
-              message: '仓位号不能为空',
-              type: 'warning',
-            })
-            return
-          }
+          this.$message({
+            message: '仓位号不能为空',
+            type: 'warning',
+          })
+          return
+        }
         if (this.tpyeNo == 1) {
           if (!this.weighingList.tare) {
             this.$message({
@@ -1048,17 +1049,16 @@
           .then(() => {
             this.weighingList.inOutFlag = 1
             this.weighingList.statusFlag = 3
-            if (this.weighingList.grossWeight) {
-              this.weighingList.grossWeight = this.weighingList.grossWeight / 1000
-            }
-
-            if (this.weighingList.netWeight) {
-              this.weighingList.netWeight = this.weighingList.netWeight / 1000
-            }
-            this.weighingList.tare = this.weighingList.tare / 1000
-            if (this.weighingList.buckleMiscellaneous) {
-              this.weighingList.buckleMiscellaneous = this.weighingList.buckleMiscellaneous / 1000
-            }
+            // if (this.weighingList.grossWeight) {
+            //   this.weighingList.grossWeight = this.weighingList.grossWeight / 1000
+            // }
+            // if (this.weighingList.netWeight) {
+            //   this.weighingList.netWeight = this.weighingList.netWeight / 1000
+            // }
+            // this.weighingList.tare = this.weighingList.tare / 1000
+            // if (this.weighingList.buckleMiscellaneous) {
+            //   this.weighingList.buckleMiscellaneous = this.weighingList.buckleMiscellaneous / 1000
+            // }
             if (this.tpyeNo == 1) {
               //  this.weighingList.serviceManagementType=2
               this.weighingList.statusFlag = 1
@@ -1067,106 +1067,88 @@
               this.weighingList.baseId = this.warehouseId
               this.weighingList.skinInspector =
                 localStorage.getItem('ws-pf_staffName')
-              if (this.weighingList.id) { 
-                var weighingList1 =  JSON.parse(JSON.stringify(this.weighingList))//为了解除双向绑定问题,不影响this.weighingList的数据
+              if (this.weighingList.id) { //修改皮重
+                var weighingList1 = JSON.parse(JSON.stringify(this.weighingList)) //为了解除双向绑定问题,不影响this.weighingList的数据
                 weighingList1.id = this.weighingList.warehouseInOutId
                 weighingList1.warehouseInOutDetail.id = this.weighingList.inOutDetailId
-                addstorageputList(weighingList1)
+                weighingList1.weighingManagement = this.weighingList
+                if (weighingList1.tare) {//为了解决出入库与检斤单位不一致(出入库单位吨,检斤公斤)
+                  weighingList1.tare = weighingList1.tare / 1000
+                }
+                if (weighingList1.netWeight) {
+                  weighingList1.netWeight = weighingList1.netWeight / 1000
+                }
+                newSubmit(weighingList1)
                   .toPromise()
                   .then((response) => {
-                    this.weighingList.tare = this.weighingList.tare * 1000
-                    this.weighingList.warehouseInOutId = response
-                    tareEdit(this.weighingList)
-                      .toPromise()
-                      .then((response) => {
-                        getweighing({
-                            id: this.weighingList.id
-                          })
-                          .toPromise().then((response) => {
-                            if (this.reader) {
-                              this.reader.cancel()
-                            }
-                            this.$notify({
-                              title: '成功',
-                              message: '提交成功',
-                              type: 'success',
-                            })
-                            this.getList()
-                            this.weighingList = response
-                            this.warehouseCount = Number(this.warehouseCount) + 1
-                            this.warehouseCount1 = Number(this.warehouseCount1) + 1
-                            this.inspect = JSON.parse(
-                              JSON.stringify(this.weighingLis)
-                            )
-                            this.isShowPrint = true
-                            this.weighingList = {
-                              grossWeight: 0,
-                              tare: 0,
-                              tips: '',
-                              // contractNo:'',
-                              // inOutTaskNo:'',
-                              buckleMiscellaneous: 0,
-                              netWeight: 0,
-                              receivableWeighingFee: '',
-                              warehouseInOutDetail: {
-                                grade: '',
-                                imperfectGrain: '',
-                                impurity: '',
-                                jiaorenli: '',
-                                bulkDensity: '',
-                                mildewGrain: '',
-                              },
-                              qualityInspectionManagement: {
-                                boxNo: '暂无',
-                                boxNoOther: '暂无',
-                                titleNo: '暂无',
-                                titleNoOther: '暂无',
-                              },
-                            }
-                          })
+                    getweighing({
+                        id: this.weighingList.id
+                      })
+                      .toPromise().then((response) => {
+                        if (this.reader) {
+                          this.reader.cancel()
+                        }
+                        this.$notify({
+                          title: '成功',
+                          message: '提交成功',
+                          type: 'success',
+                        })
+                        this.getList()
+                        this.weighingList = response
+                        // this.warehouseCount = Number(this.warehouseCount) + 1
+                        // this.warehouseCount1 = Number(this.warehouseCount1) + 1
+                        this.inspect = JSON.parse(
+                          JSON.stringify(this.weighingList)
+                        )
+                        this.isShowPrint = true
+                        this.weighingList = {
+                          grossWeight: 0,
+                          tare: 0,
+                          tips: '',
+                          // contractNo:'',
+                          // inOutTaskNo:'',
+                          buckleMiscellaneous: 0,
+                          netWeight: 0,
+                          receivableWeighingFee: '',
+                          warehouseInOutDetail: {
+                            grade: '',
+                            imperfectGrain: '',
+                            impurity: '',
+                            jiaorenli: '',
+                            bulkDensity: '',
+                            mildewGrain: '',
+                          },
+                          qualityInspectionManagement: {
+                            boxNo: '暂无',
+                            boxNoOther: '暂无',
+                            titleNo: '暂无',
+                            titleNoOther: '暂无',
+                          },
+                        }
                       })
                   })
-                  .catch((response) => {
-                    this.$notify.warning(response)
-                    if (this.weighingList.grossWeight) {
-                      this.weighingList.grossWeight = this.weighingList.grossWeight * 1000
-                    }
-
-                    if (this.weighingList.netWeight) {
-                      this.weighingList.netWeight = this.weighingList.netWeight * 1000
-                    }
-                    this.weighingList.tare = this.weighingList.tare * 1000
-                  })
-              } else {
+              } else { //新增皮检信息
                 this.weighingList.relationId = this.relationId
                 this.weighingList.warehouseId = this.warehouseId
                 this.weighingList.baseId = this.warehouseId
-                var weighingList1 =  JSON.parse(JSON.stringify(this.weighingList))//为了解除双向绑定问题,不影响this.weighingList的数据
+                this.weighingList.warehouseNo = this.warehouseNo
+                var weighingList1 = JSON.parse(JSON.stringify(this.weighingList)) //为了解除双向绑定问题,不影响this.weighingList的数据
                 weighingList1.id = this.weighingList.warehouseInOutId
                 weighingList1.warehouseInOutDetail.id = this.weighingList.inOutDetailId
-                console.log(weighingList1)
-                addstorageputList(weighingList1)
+                weighingList1.weighingManagement = this.weighingList
+                if (weighingList1.tare) {//为了解决出入库与检斤单位不一致(出入库单位吨,检斤公斤)
+                  weighingList1.tare = weighingList1.tare / 1000
+                }
+                if (weighingList1.netWeight) {
+                  weighingList1.netWeight = weighingList1.netWeight / 1000
+                }
+                newSubmit(weighingList1)
                   .toPromise()
                   .then((response) => {
-                    this.weighingList.tare = this.weighingList.tare * 1000
-                    this.weighingList.warehouseInOutId = response
-                    tareAdd(this.weighingList)
-                      .toPromise()
-                      .then((response) => {
-                        getweighing({
-                            id: response
-                          })
-                          .toPromise()
-                          .then((response) => {
-                            this.weighingList = response
-                            this.warehouseCount = Number(this.warehouseCount) + 1
-                            this.warehouseCount1 = Number(this.warehouseCount1) + 1
-                            this.inspect = JSON.parse(
-                              JSON.stringify(this.weighingList)
-                            )
-                            this.isShowPrint = true
-                          })
-
+                    getweighing({
+                        id: response
+                      })
+                      .toPromise().then((response) => {
                         if (this.reader) {
                           this.reader.cancel()
                         }
@@ -1176,6 +1158,13 @@
                           type: 'success',
                         })
                         this.getList()
+                        this.weighingList = response
+                        // this.warehouseCount = Number(this.warehouseCount) + 1
+                        // this.warehouseCount1 = Number(this.warehouseCount1) + 1
+                        this.inspect = JSON.parse(
+                          JSON.stringify(this.weighingList)
+                        )
+                        this.isShowPrint = true
                         this.weighingList = {
                           grossWeight: 0,
                           tare: 0,
@@ -1200,125 +1189,152 @@
                             titleNoOther: '暂无',
                           },
                         }
-                        // 	if (this.reader) {
-                        // 		this.reader.cancel()
-                        // 	}
-                        // 	this.$notify.success({
-                        // 	title: '成功',
-                        // 	message: '提交成功',
-                        // })
-                        // 	this.isShowPrint=true
-                        // 	this.weighingList.grossWeight=this.weighingList.grossWeight*1000
-                        // 	this.weighingList.tare=this.weighingList.tare*1000
-                        // 	this.weighingList.netWeight=this.weighingList.netWeight*1000
-                        // 	this.weighingList.buckleMiscellaneous=this.weighingList.buckleMiscellaneous*1000
-                        // 	this.inspect=JSON.parse(JSON.stringify(this.weighingList))
-                        // 	this.weighingList= {
-                        // 		grossWeight: 0,
-                        // 		tare: 0,
-                        // 		tips:'',
-                        // 			// contractNo:'',
-                        // 			// inOutTaskNo:'',
-                        // 		buckleMiscellaneous: 0,
-                        // 		netWeight: 0,
-                        // 		receivableWeighingFee: '',
-                        // 		warehouseInOutDetail: {
-                        // 			grade:'',
-                        // 			imperfectGrain:'',
-                        // 			impurity:'',
-                        // 			jiaorenli:'',
-                        // 			bulkDensity:'',
-                        // 			mildewGrain:'',
-                        // 		},
-                        // 		qualityInspectionManagement: {
-                        // 			boxNo: "暂无",
-                        // 			boxNoOther: "暂无",
-                        // 			titleNo: "暂无",
-                        // 			titleNoOther: "暂无",
-                        // 		}
-                        // 	}
                       })
                   })
-                  .catch((response) => {})
               }
             } else if (this.tpyeNo == 2) {
               this.weighingList.secretaryWeigher =
                 localStorage.getItem('ws-pf_staffName')
               this.weighingList.warehouseId = this.warehouseId
               this.weighingList.baseId = this.warehouseId
-              var weighingList1 =  JSON.parse(JSON.stringify(this.weighingList))//为了解除双向绑定问题,不影响this.weighingList的数据
+              var weighingList1 = JSON.parse(JSON.stringify(this.weighingList)) //为了解除双向绑定问题,不影响this.weighingList的数据
               weighingList1.id = this.weighingList.warehouseInOutId
               weighingList1.warehouseInOutDetail.id = this.weighingList.inOutDetailId
-              console.log(weighingList1)
-              addstorageputList(weighingList1)
+              weighingList1.weighingManagement = this.weighingList
+              if (weighingList1.grossWeight) {//为了解决出入库与检斤单位不一致(出入库单位吨,检斤公斤)
+                weighingList1.grossWeight = weighingList1.grossWeight / 1000
+              }
+              if (weighingList1.netWeight) {
+                weighingList1.netWeight = weighingList1.netWeight / 1000
+              }
+              if (weighingList1.tare) {
+                weighingList1.tare = weighingList1.tare / 1000
+              }
+              newSubmit(weighingList1)
                 .toPromise()
                 .then((response) => {
-                  this.weighingList.grossWeight =
-                    this.weighingList.grossWeight * 1000
-                  this.weighingList.tare = this.weighingList.tare * 1000
-                  this.weighingList.netWeight =
-                    this.weighingList.netWeight * 1000
-                  this.weighingList.buckleMiscellaneous =
-                    this.weighingList.buckleMiscellaneous * 1000
-                  this.weighingList.warehouseInOutId = response
-                  grossWeight(this.weighingList)
-                    .toPromise()
-                    .then((response) => {
-                      getweighing({
-                          id: response
-                        })
-                        .toPromise()
-                        .then((response) => {
-                          this.weighingList = response
-                          this.inspect = JSON.parse(
-                            JSON.stringify(this.weighingList)
-                          )
-                          this.isShowPrint = true
-                        })
-                      if (this.reader) {
-                        this.reader.cancel()
-                      }
-                      // 	this.$notify.success({
-                      // 	title: '成功',
-                      // 	message: '提交成功',
-                      // })
-                      this.$notify({
-                        title: '成功',
-                        message: '提交成功',
-                        type: 'success',
-                      })
-                      this.inspect = JSON.parse(JSON.stringify(this.weighingList))
-
+                  getweighing({
+                      id: response
+                    })
+                    .toPromise().then((response) => {
+                      this.weighingList = response
+                      this.inspect = JSON.parse(
+                        JSON.stringify(this.weighingList)
+                      )
                       this.isShowPrint = true
-                      this.weighingList = {
-                        grossWeight: 0,
-                        selfLoading: 0,
-                        tare: 0,
-                        tips: '',
-                        // contractNo:'',
-                        // inOutTaskNo:'',
-                        buckleMiscellaneous: 0,
-                        netWeight: 0,
-                        receivableWeighingFee: '',
-                        warehouseInOutDetail: {
-                          grade: '',
-                          imperfectGrain: '',
-                          impurity: '',
-                          jiaorenli: '',
-                          bulkDensity: '',
-                          mildewGrain: '',
-                        },
-                        qualityInspectionManagement: {
-                          boxNo: '暂无',
-                          boxNoOther: '暂无',
-                          titleNo: '暂无',
-                          titleNoOther: '暂无',
-                        },
-                      }
-                      this.getList()
+
                     })
+                  if (this.reader) {
+                    this.reader.cancel()
+                  }
+                  // 	this.$notify.success({
+                  // 	title: '成功',
+                  // 	message: '提交成功',
+                  // })
+                  this.$notify({
+                    title: '成功',
+                    message: '提交成功',
+                    type: 'success',
+                  })
+                  this.inspect = JSON.parse(JSON.stringify(this.weighingList))
+
+                  this.isShowPrint = true
+                  this.weighingList = {
+                    grossWeight: 0,
+                    selfLoading: 0,
+                    tare: 0,
+                    tips: '',
+                    // contractNo:'',
+                    // inOutTaskNo:'',
+                    buckleMiscellaneous: 0,
+                    netWeight: 0,
+                    receivableWeighingFee: '',
+                    warehouseInOutDetail: {
+                      grade: '',
+                      imperfectGrain: '',
+                      impurity: '',
+                      jiaorenli: '',
+                      bulkDensity: '',
+                      mildewGrain: '',
+                    },
+                    qualityInspectionManagement: {
+                      boxNo: '暂无',
+                      boxNoOther: '暂无',
+                      titleNo: '暂无',
+                      titleNoOther: '暂无',
+                    },
+                  }
+                  this.getList()
                 })
-                .catch((response) => {})
+              // addstorageputList(weighingList1)
+              //   .toPromise()
+              //   .then((response) => {
+              //     this.weighingList.grossWeight =
+              //       this.weighingList.grossWeight * 1000
+              //     this.weighingList.tare = this.weighingList.tare * 1000
+              //     this.weighingList.netWeight =
+              //       this.weighingList.netWeight * 1000
+              //     this.weighingList.buckleMiscellaneous =
+              //       this.weighingList.buckleMiscellaneous * 1000
+              //     this.weighingList.warehouseInOutId = response
+              //     grossWeight(this.weighingList)
+              //       .toPromise()
+              //       .then((response) => {
+              //         getweighing({
+              //             id: response
+              //           })
+              //           .toPromise()
+              //           .then((response) => {
+              //             this.weighingList = response
+              //             this.inspect = JSON.parse(
+              //               JSON.stringify(this.weighingList)
+              //             )
+              //             this.isShowPrint = true
+              //           })
+              //         if (this.reader) {
+              //           this.reader.cancel()
+              //         }
+              //         // 	this.$notify.success({
+              //         // 	title: '成功',
+              //         // 	message: '提交成功',
+              //         // })
+              //         this.$notify({
+              //           title: '成功',
+              //           message: '提交成功',
+              //           type: 'success',
+              //         })
+              //         this.inspect = JSON.parse(JSON.stringify(this.weighingList))
+
+              //         this.isShowPrint = true
+              //         this.weighingList = {
+              //           grossWeight: 0,
+              //           selfLoading: 0,
+              //           tare: 0,
+              //           tips: '',
+              //           // contractNo:'',
+              //           // inOutTaskNo:'',
+              //           buckleMiscellaneous: 0,
+              //           netWeight: 0,
+              //           receivableWeighingFee: '',
+              //           warehouseInOutDetail: {
+              //             grade: '',
+              //             imperfectGrain: '',
+              //             impurity: '',
+              //             jiaorenli: '',
+              //             bulkDensity: '',
+              //             mildewGrain: '',
+              //           },
+              //           qualityInspectionManagement: {
+              //             boxNo: '暂无',
+              //             boxNoOther: '暂无',
+              //             titleNo: '暂无',
+              //             titleNoOther: '暂无',
+              //           },
+              //         }
+              //         this.getList()
+              //       })
+              //   })
+              //   .catch((response) => {})
             }
           })
           .catch(() => {
@@ -1609,10 +1625,10 @@
         for (let i = 0; i < this.taskNolist.length; i++) {
           if (this.taskNolist[i].inOutTaskNo == e) {
             //  this.weighingList.number = this.taskNolist[i].inOutTaskNo
-              this.warehouseCount = '000' + (Number(this.warehouseCount) + 1)
-              this.weighingList.number = 'XSCK' + this.getTime() +  this.warehouseNo + this.warehouseCount.substring(this.warehouseCount.length - 4)
-             this.weighingList.goodsName = this.taskNolist[i].goodsName
-             this.weighingList.tips = this.taskNolist[i].businessDescribe
+            // this.warehouseCount = '000' + (Number(this.warehouseCount) + 1)
+            this.weighingList.numberLetter = 'XSCK'
+            this.weighingList.goodsName = this.taskNolist[i].goodsName
+            this.weighingList.tips = this.taskNolist[i].businessDescribe
             var data = this.taskNolist[i]
             if (this.taskNolist[i].contractNo) {
               // console.log(this.taskNolist[i])
@@ -1636,7 +1652,7 @@
             this.weighingList.inOutType = this.outContractNo[i].inOutType
             if (this.outContractNo[i].inOutType == '销售出库') {
               this.warehouseCount = '000' + (Number(this.warehouseCount) + 1)
-              this.weighingList.number = 'XSCK' + this.getTime() +  this.warehouseNo + this.warehouseCount.substring(this.warehouseCount.length - 4)
+              this.weighingList.numberLetter = 'XSCK'
               this.weighingList.buyer = this.outContractNo[i].buyer
               this.weighingList.seller = localStorage.getItem('ws-pf_compName')
               if (!this.outContractNo[i].unitContractPrice) {
@@ -1652,18 +1668,14 @@
               this.weighingList.inOutTypeKey = 1
             } else if (this.outContractNo[i].inOutType == '移库出库') {
               this.warehouseCount = '000' + (Number(this.warehouseCount) + 1)
-              this.weighingList.number =
-                'YKCK' +
-                this.getTime() +
-                this.warehouseNo +
-                this.warehouseCount.substring(this.warehouseCount.length - 4)
+              this.weighingList.numberLetter = 'YKCK'
+
               this.weighingList.buyer = this.outContractNo[i].receiveWarehouse
               this.weighingList.seller = this.outContractNo[i].sendWarehouse
               this.weighingList.goodsName = data.goodsName
               this.weighingList.goodsNameKey = data.goodsNameKey
               this.weighingList.grade = data.grade
               if (this.outContractNo[i].unitContractPrice) {
-                
                 this.weighingList.tips =
                   '入货库' +
                   data.receiveWarehouse +
@@ -1775,7 +1787,7 @@
           .then((response) => {
             this.outContractNo = response
           })
-          // this.refreshClick(1)
+        // this.refreshClick(1)
         getweighingList({
             compId: localStorage.getItem('ws-pf_compId'),
             currentPage: this.currentPage,
@@ -1960,23 +1972,30 @@
     text-align: center;
     margin: 20px auto;
   }
-.stocks{
-  position: relative;
-  /deep/.el-select>.el-input {
-    display: inline-block;
-}
-/deep/>.el-input{
-  width:33.3333%;
-}
-.add,.del{
-  position:absolute;
-  right:-16px;
-  transform: translateY(20%);
-}
-.del{
-  right:-40px;
-}
-}
+
+  .stocks {
+    position: relative;
+
+    /deep/.el-select>.el-input {
+      display: inline-block;
+    }
+
+    /deep/>.el-input {
+      width: 33.3333%;
+    }
+
+    .add,
+    .del {
+      position: absolute;
+      right: -16px;
+      transform: translateY(20%);
+    }
+
+    .del {
+      right: -40px;
+    }
+  }
+
   .butCss {
     opacity: 0;
     color: #000;
@@ -2004,7 +2023,7 @@
     text-align: right;
     padding: 0 10px 0 20px;
     border-radius: 10px;
-    margin: 0 20px 20px 20px;
+    margin: 0 20px 20px 21px;
     position: absolute;
     top: 140px;
     width: 465px;
@@ -2079,4 +2098,4 @@
   /deep/.title_css .el-dialog__header {
     text-align: center !important;
   }
-</style>
+</style>

+ 518 - 0
src/views/profitable/cashout.vue

@@ -0,0 +1,518 @@
+//请款
+<template>
+  <div class="container">
+    <el-row class="row_top">
+      <el-col :span="12">
+        <h2 class="bg-left title">请款</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right"><el-button class="bg-bottom" type="primary" size="small" @click="returnsales()"><img width="6" height="10"
+            style="vertion-align: bottom; margin-right: 3px" src="../../../public/img/lujing.png" alt="" />返回
+        </el-button></el-col>
+    </el-row>
+    <div class="center">
+     
+      <div>
+        <ws-form label-position="left"  label-width="140px"><div style='margin:30px 0 30px;'>基本信息</div>
+          <ws-form-item label="用途" span="1" prop="contractNo" class="readonly">
+             <el-radio-group v-model="deptBudgetList.purpose">
+                <el-radio :label="1">合同费用</el-radio>
+                <el-radio :label="2">库点费用</el-radio>
+                <el-radio :label="3">经营性费用</el-radio>
+            </el-radio-group>
+          </ws-form-item>
+          <ws-form-item v-if='deptBudgetList.purpose==1||deptBudgetList.purpose==2' label="类型" span="1" prop="contractNo" class="readonly">
+             <el-radio-group v-model="deptBudgetList.type">
+                <el-radio :label="1">粮款</el-radio>
+                <el-radio :label="2">非粮款</el-radio>
+                <el-radio v-if='deptBudgetList.purpose==1' :label="3">保证金</el-radio>
+            </el-radio-group>
+          </ws-form-item>
+          <ws-form-item v-if='deptBudgetList.purpose==1' label="合同编号" span="1" prop="contractNo" class="readonly">
+            <ws-select v-model="deptBudgetList.contractNo" placeholder="" class="typeselect" @change="selectcontent"
+          :value="searchType">
+          <ws-option v-for="item in contractList" :key="item.contractNo" :label="item.contractNo" :value="item.contractNo"
+            style="color: #8890b1" />
+        </ws-select>
+          </ws-form-item>
+           <ws-form-item v-if='deptBudgetList.purpose==2' label="仓库名称" span="1" prop="contractNo" class="readonly">
+            <ws-select v-model="deptBudgetList.warehouse" placeholder="" class="typeselect" @change="selectwarehouse"
+          :value="searchType">
+          <ws-option v-for="item in contractList" :key="item.contractNo" :label="item.contractNo" :value="item.contractNo"
+            style="color: #8890b1" />
+        </ws-select>
+          </ws-form-item>
+          <ws-form-item label="费用名称" span="1" prop="settlementMethod">
+            <el-input placeholder="输入费用名称,1-15个字" class="input_css" v-model="deptBudgetList.expenseName"></el-input>
+          </ws-form-item>
+          <ws-form-item label="金额(元)" span="1" prop="contractNo" class="readonly">
+            <el-input placeholder="输入请款金额" class="input_css" v-model="deptBudgetList.money"></el-input>
+          </ws-form-item>
+          <ws-form-item label="备注" span="1" prop="settlementMethod">
+            <el-input
+            type="textarea"
+            :rows="2"
+            placeholder="选填,不超过50个字"
+            v-model="deptBudgetList.remark">
+            </el-input>
+          </ws-form-item>
+          <ws-form-item label="附件">
+          <el-upload ref='uploadfiles' :file-list='dataList' action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+            :on-success="handlefujian" :on-remove="handleRemove" class="photo2">
+            <i class="el-icon-plus"></i>
+          </el-upload>
+        </ws-form-item>
+        </ws-form>
+        <div v-if='deptBudgetList.type==2'>费用分配</div>
+        <div v-if='deptBudgetList.type==2' style='margin-bottom:10px;'>
+            <ws-select v-model="mode" placeholder="费用分配方式" class="typeselect" @change="modeselect"
+          :value="searchType">
+          <ws-option v-for="item in modeList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-if='deptBudgetList.purpose==1' v-model="ware" placeholder="费用分配仓库" class="typeselect" @change="selectwareType"
+          :value="searchType">
+          <ws-option v-for="item in wareList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        <ws-select v-if='deptBudgetList.purpose==2' v-model="goods" placeholder="费用分配产品" class="typeselect" @change="selectproductType"
+          :value="searchType">
+          <ws-option v-for="item in goodsList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-model="dates" placeholder="费用分配日期" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in datesList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-model="moneys" placeholder="费用分配金额" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in moneysList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        合计分配:{{amount}}元
+        </div>
+        <el-table v-if='deptBudgetList.type==2' :data="feeDetailsDistributions" style="width: 80%;margin:0 auto;">
+          <el-table-column prop="date" label="所属" min-width="110">
+            <template slot-scope="scope">
+                <ws-select v-if='deptBudgetList.purpose==2' v-model="scope.row.belonging" placeholder="选择仓库或合同" class="typeselect" @change="selectware"
+          :value="searchType">
+          <ws-option v-for="item in warecontractList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        <ws-select v-if='deptBudgetList.purpose==1' v-model="scope.row.belonging" placeholder="选择仓库" class="typeselect" @change="selectware"
+          :value="searchType">
+          <ws-option v-for="item in warehouseList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="日期">
+            <template slot-scope="scope">
+                <ws-date-picker v-model="scope.row.proDate" type="date" placeholder="请选择日期"
+              value-format="yyyy-MM-dd" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="货名">
+              <template slot-scope="scope">
+                <ws-select v-model="scope.row.goodsName" placeholder="选择货名" class="typeselect" @change="goodsNameselect"
+                    :value="searchType">
+                    <ws-option v-for="item in goodsList" :key="item.value" :label="item.value" :value="item.value"
+                        style="color: #8890b1" />
+                </ws-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="库存(吨)"></el-table-column>
+          <el-table-column prop="date" label="分配金额(元)">
+            <template slot-scope="scope">
+                <el-input placeholder="输入费用名称,1-15个字" class="input_css" v-model="scope.row.money"></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column prop="address" label="操作" width="200">
+            <template slot-scope="scope">
+                <img class='add' @click='addlist()' src="../../../public/img/add.png" alt="">
+                <img class='del' @click='dellist(scope.row)' src="../../../public/img/del.png" alt="">
+            </template>
+          </el-table-column>
+        </el-table>
+       <div style='text-align:right;margin-right:30px;'>
+        <el-button class="bg-bottom" type="primary" size="small" @click="submit()">提交
+        </el-button>
+    </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+  import {setexpense,getcontract} from '@/model/profitable/index'
+  export default {
+    components: {},
+    data() {
+      return {
+        value: [],
+        profitList: [{
+          name: "玉米",
+          count: 2000,
+        }],
+        mode:'全部分配',
+        ware:'指定仓库',
+        dates:'固定日期',
+        moneys:'按重量自动分配',
+        goods:'全部货品',
+        amount:0,
+        goodsList:[],
+        warecontractList:[],
+        feeDetailsDistributions:[{proDate:'',weight:'',money:'',warehouse:'',belonging:'',index:0}],
+        deptBudgetList:{purpose:1,type:1},
+        makeWordData: {},
+        warehouseList:[],
+        contractList:[],
+        choosablewareList:[],
+        paymentScreenshot:[],
+        modeList:[{key:1,value:'全部分配'},{key:2,value:'部分分配'},{key:3,value:'暂不分配'}],
+        wareList:[{key:1,value:'指定仓库'},{key:2,value:'全部仓库'}],
+        datesList:[{key:1,value:'固定日期'},{key:2,value:'指定日期'}],
+        moneysList:[{key:1,value:'按重量自动分配'},{key:2,value:'指定分配金额'}],
+        goodsList:[{key:1,value:'全部货品'},{key:2,value:'指定货品'}],
+        valueData: [{
+            date: 10
+          },
+          {
+            date: 20
+          }
+        ], //货值
+
+      }
+
+    },
+    activated() {
+      // this.makeWordData = this.getData(2)
+      // this.initCharts()
+      // this.getPassYearFormatDate()
+      this.getList()
+    },
+    methods: {
+      selectwarehouse(){
+
+      },
+      selectwareType(e){
+        if(e=='全部仓库'){
+          for (let i = 0; i < this.choosablewareList.length; i++) {
+            this.feeDetailsDistributions.push(this.choosablewareList[i])
+            
+          }
+        }
+      },
+      selectproductType(){
+        if(e=='全部产品'){
+
+        }
+      },
+      selectcontent(e){
+
+      },
+      handlefujian(file) {
+        // console.log(file)
+        this.paymentScreenshot.push(file.url)
+        // this.dialogVisible = true
+      },
+      submit(){
+        if(!this.deptBudgetList.contractNo&&this.deptBudgetList.purpose==1){
+          this.$message({
+                message: '合同编号不能为空!',
+                type: 'warning',
+              })
+        }
+        if(!this.deptBudgetList.warehouse&&this.deptBudgetList.purpose==2){
+          this.$message({
+                message: '仓库名称不能为空!',
+                type: 'warning',
+              })
+        }
+        if(!this.deptBudgetList.expenseName){
+          this.$message({
+                message: '费用名称不能为空!',
+                type: 'warning',
+          })
+        }
+        if(this.deptBudgetList.expenseName.length<1||this.deptBudgetList.expenseName.length>15){
+          this.$message({
+                message: '费用名称输入错误!',
+                type: 'warning',
+          })
+        }
+        if(!this.deptBudgetList.money){
+          this.$message({
+                message: '金额不能为空!',
+                type: 'warning',
+          })
+        }
+        this.deptBudgetList.applUrl=this.paymentScreenshot.toString()
+        setexpense(this.deptBudgetList).toPromise()
+          .then(response => {})
+      },
+      modeselect(e){
+          console.log(e)
+      },selectware(e){
+          console.log(e)
+      },
+      goodsNameselect(e){
+          console.log(e)
+      },
+      addlist(){
+        this.feeDetailsDistributions.push({proDate:'',weight:'',money:'',warehouse:'',belonging:'',index:this.feeDetailsDistributions.length})
+      },
+      dellist(row){
+        if(this.feeDetailsDistributions.length>1){
+          this.feeDetailsDistributions.splice(row.index,1)
+        }
+      },
+      getList() {
+        console.log(1222)
+        getcontract({
+        compId:localStorage.getItem('ws-pf_compId'),
+        })
+        .toPromise()
+        .then((response) => {
+          this.contractList=response
+        })
+
+      },
+      detail(){
+        this.$router.push({name:'contractprofitsdetails'})
+      },
+      getPassYearFormatDate() {
+        var nowDate = new Date()
+        var _date = new Date()
+        nowDate.setTime(nowDate.getTime() - 24 * 60 * 60 * 1000 * 30)
+        var year = nowDate.getFullYear()
+        var year1 = _date.getFullYear()
+        var month = nowDate.getMonth() + 1
+        var month1 = _date.getMonth() + 1
+        var strDate = nowDate.getDate()
+        var strDate1 = _date.getDate()
+        if (month >= 1 && month <= 9) {
+          month = '0' + month
+        }
+        if (month1 >= 1 && month1 <= 9) {
+          month1 = '0' + month1
+        }
+
+        if (strDate >= 0 && strDate <= 9) {
+          strDate = '0' + strDate
+        }
+        if (strDate1 >= 0 && strDate1 <= 9) {
+          strDate1 = '0' + strDate1
+        }
+        this.startDate = year + '-' + month + '-' + strDate
+        this.endDate = year1 + '-' + month1 + '-' + strDate1
+        this.value = [this.startDate, this.endDate]
+      },
+      pickerOptions() {
+
+      },
+      initCharts() {
+        let app = this;
+        let myChart7 = app.$echarts.init(this.$refs.myEchart7);
+        var option;
+        option = {
+            // title: {
+            //   text: 'Rainfall vs Evaporation',
+            //   subtext: 'Fake Data'
+            // },
+            tooltip: {
+              trigger: 'axis'
+            },
+            legend: {
+              data: ['支出', '收入']
+            },
+            toolbox: {
+              show: true,
+              feature: {
+                dataView: {
+                  show: false,
+                  readOnly: false
+                },
+                magicType: {
+                  show: false,
+                  type: ['line', 'bar']
+                },
+                restore: {
+                  show: false
+                },
+                saveAsImage: {
+                  show: false
+                }
+              }
+            },
+            calculable: true,
+            xAxis: [{
+              name: '种类',
+              type: 'category',
+              // prettier-ignore
+              data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct']
+            }],
+            yAxis: [{
+              name: '储量(吨)',
+              type: 'value'
+            }],
+            series: [{
+                name: '支出',
+                type: 'bar',
+                right: 0,
+                // label: {
+                //   show: true,
+                //   position: 'inside'
+                // },
+                 label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  6.0, 60.9, 90.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0
+                ],
+                color: ['#5878E8 '],
+                formatter: '{value} 元',
+
+              },
+              {
+                name: '收入',
+                type: 'bar',
+                right: 20,
+                label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  102.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8
+                ],
+                color: ['#FF9F24'],
+                formatter: '{value} 元',
+              }
+            ]
+          },
+          myChart7.setOption(option)
+      },
+      getData(count) {
+        // prettier-ignore
+        const nameList = [
+          '支出', '收入'
+        ];
+        const legendData = [];
+        const seriesData = [];
+        for (var i = 0; i < count; i++) {
+          var name = nameList[i]
+          // Math.random() > 0.65 ?  makeWord(4, 1) + '·' + makeWord(3, 0) :  makeWord(2, 1);
+          legendData.push(name);
+          seriesData.push({
+            name: name,
+            value: Math.round(Math.random() * 100000)
+          });
+        }
+
+        return {
+          legendData: legendData,
+          seriesData: seriesData
+        };
+
+        // function makeWord(max, min) {
+        //   debugger
+        //   const nameLen = Math.ceil(Math.random() * max + min);
+        //   const name = [];
+        //   for (var i = 0; i < nameLen; i++) {
+        //     name.push(nameList[Math.round(Math.random() * nameList.length - 1)]);
+        //   }
+        //   return name.join('');
+        // }
+
+      }
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .container {
+    background: #E8ECF6;
+  }
+
+  .center {
+    margin: 0 auto;
+    background: #ffffff;
+    height: calc(100vh - 13vh);
+    border-radius: 4px;
+    margin-top: 10px;
+    overflow:scroll;
+  }
+
+  .row_top {
+    // background: #F6F7FC;
+    border-radius: 4px;
+
+    .bg-left {
+      padding-left: 30px;
+    }
+
+  .bg-right {
+      padding-right: 10px;
+      text-align: right;
+      height:60px;
+      padding-top:15px;
+    }
+
+    .title {
+      position: relative;
+    }
+
+    .title::before {
+      content: '';
+      display: inline-block;
+      width: 5px;
+      height: 30px;
+      background: #5473e8;
+      position: absolute;
+      left: 0;
+    }
+  }
+
+  .datascreen {
+    // margin-top: 10px;
+    width: 500px;
+    height: 60px;
+    line-height: 60px;
+    margin-left: 30px;
+
+  }
+
+  .chart_css {
+    display: flex;
+    height: 410px;
+
+    .table {
+      width: 70%;
+      height: 410px;
+    }
+
+    .makeWord_css {
+      width: 30%;
+      height: 410px;
+      margin-left: 30px;
+    }
+  }
+
+  .table_css {
+
+    text-align:center;
+
+  }
+  /deep/.el-form{
+    width:90%;
+    margin:0 auto;
+  }
+  /deep/.el-form-item {
+    width: 50%;
+}
+</style>

+ 471 - 0
src/views/profitable/cashoutaduit.vue

@@ -0,0 +1,471 @@
+//请款
+<template>
+  <div class="container">
+    <el-row class="row_top">
+      <el-col :span="12">
+        <h2 class="bg-left title">请款</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right"><el-button class="bg-bottom" type="primary" size="small" @click="returnsales()"><img width="6" height="10"
+            style="vertion-align: bottom; margin-right: 3px" src="../../../public/img/lujing.png" alt="" />返回
+        </el-button></el-col>
+    </el-row>
+    <div class="center">
+      <div class="table_css">
+        <ws-form><div>基本信息</div>
+          <ws-form-item label="用途" span="1" prop="contractNo" class="readonly">
+              <div v-if="deptBudgetList.purpose==1">合同费用</div>
+              <div v-if="deptBudgetList.purpose==2">库点费用</div>
+              <div v-if="deptBudgetList.purpose==3">经营性费用</div>
+          </ws-form-item>
+          <ws-form-item v-if='deptBudgetList.purpose==1||deptBudgetList.purpose==2' label="类型" span="1" prop="contractNo" class="readonly">
+            <div v-if='deptBudgetList.type==1'>粮款</div>
+            <div v-if='deptBudgetList.type==2'>非粮款</div>
+            <div v-if='deptBudgetList.type==3&&deptBudgetList.purpose==1'>保证金</div>
+          </ws-form-item>
+          <ws-form-item label="合同编号" span="1" prop="contractNo" class="readonly">
+          {{deptBudgetList.contractNo}}
+          </ws-form-item>
+          <ws-form-item label="费用名称" span="1" prop="settlementMethod">
+            {{deptBudgetList.expenseName}}
+          </ws-form-item>
+          <ws-form-item label="金额" span="1" prop="contractNo" class="readonly">
+            {{deptBudgetList.money}}
+          </ws-form-item>
+          <ws-form-item label="备注" span="1" prop="settlementMethod">
+            <el-input
+            disabled
+            type="textarea"
+            :rows="2"
+            placeholder="选填,不超过50个字"
+            v-model="deptBudgetList.remark">
+            </el-input>
+          </ws-form-item>
+          <ws-form-item label="附件">
+          <el-upload ref='uploadfiles' :file-list='dataList' action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+            :on-success="handlefujian" :on-remove="handleRemove" class="photo2">
+            <i class="el-icon-plus"></i>
+          </el-upload>
+        </ws-form-item>
+        </ws-form>
+        <div v-if='deptBudgetList.type==2'>费用分配</div>
+        <div v-if='deptBudgetList.type==2' style='margin-bottom:10px;'>
+            <ws-select v-model="mode" placeholder="费用分配方式" class="typeselect" @change="modeselect"
+          :value="searchType">
+          <ws-option v-for="item in modeList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-if='deptBudgetList.purpose==1' v-model="ware" placeholder="费用分配仓库" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in wareList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        <ws-select v-if='deptBudgetList.purpose==2' v-model="goods" placeholder="费用分配产品" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in goodsList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-model="dates" placeholder="费用分配日期" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in datesList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-model="moneys" placeholder="费用分配金额" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in moneysList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        合计分配:{{amount}}元
+        </div>
+        <el-table :data="feeDetailsDistributions" style="width: 80%;margin:0 auto;">
+          <el-table-column prop="date" label="所属" min-width="110">
+            <template slot-scope="scope">
+                <ws-select v-if='deptBudgetList.purpose==2' v-model="scope.row.belonging" placeholder="选择仓库或合同" class="typeselect" @change="selectware"
+          :value="searchType">
+          <ws-option v-for="item in warecontractList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        <ws-select v-if='deptBudgetList.purpose==1' v-model="scope.row.belonging" placeholder="选择仓库" class="typeselect" @change="selectware"
+          :value="searchType">
+          <ws-option v-for="item in warehouseList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="日期">
+            <template slot-scope="scope">
+                <ws-date-picker v-model="scope.row.proDate" type="date" placeholder="请选择日期"
+              value-format="yyyy-MM-dd" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="货名">
+              <template slot-scope="scope">
+                <ws-select v-model="scope.row.goodsName" placeholder="选择货名" class="typeselect" @change="goodsNameselect"
+                    :value="searchType">
+                    <ws-option v-for="item in goodsList" :key="item.value" :label="item.value" :value="item.value"
+                        style="color: #8890b1" />
+                </ws-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="库存(吨)"></el-table-column>
+          <el-table-column prop="date" label="分配金额(元)">
+            <template slot-scope="scope">
+                <el-input placeholder="输入费用名称,1-15个字" class="input_css" v-model="scope.row.money"></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column prop="address" label="操作" width="200">
+            <template slot-scope="scope">
+                <img class='add' @click='addlist()' src="../../../public/img/add.png" alt="">
+                <img class='del' @click='dellist(scope.row)' src="../../../public/img/del.png" alt="">
+            </template>
+          </el-table-column>
+        </el-table>
+
+      </div>
+      <div>
+      <el-button class="bg-bottom" type="primary" size="small" @click="reject()">驳回
+        </el-button>
+        <el-button class="bg-bottom" type="primary" size="small" @click="pass()">通过
+        </el-button>
+    </div>
+    <el-dialog
+      title="驳回"
+      :visible.sync="rejectshow"
+      width="30%"
+      :before-close="handleClose">
+      <span>驳回原因</span>
+      <div><el-input
+  type="textarea"
+  :rows="2"
+  placeholder="请输入驳回原因"
+  v-model="textarea">
+</el-input>
+</div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" @click="rejectshow = false">确 定</el-button>
+      </span>
+    </el-dialog>
+    </div>
+  </div>
+</template>
+<script>
+  import {} from '@/model/profitable/index'
+  export default {
+    components: {},
+    data() {
+      return {
+        value: [],
+        profitList: [{
+          name: "玉米",
+          count: 2000,
+        }],
+        mode:'全部分配',
+        ware:'指定仓库',
+        dates:'固定日期',
+        moneys:'按重量自动分配',
+        goods:'全部货品',
+        amount:0,
+        goodsList:[],
+        warecontractList:[],
+        feeDetailsDistributions:[{proDate:'',weight:'',money:'',warehouse:'',belonging:'',index:0}],
+        deptBudgetList:{},
+        makeWordData: {},
+        warehouseList:[],
+        rejectshow:false,
+        modeList:[{key:1,value:'全部分配'},{key:2,value:'部分分配'},{key:3,value:'暂不分配'}],
+        wareList:[{key:1,value:'指定仓库'},{key:2,value:'全部仓库'}],
+        datesList:[{key:1,value:'固定日期'},{key:2,value:'指定日期'}],
+        moneysList:[{key:1,value:'按重量自动分配'},{key:2,value:'指定分配金额'}],
+        goodsList:[{key:1,value:'全部货品'},{key:2,value:'指定货品'}],
+        valueData: [{
+            date: 10
+          },
+          {
+            date: 20
+          }
+        ], //货值
+
+      }
+    },
+    activated() {
+      this.makeWordData = this.getData(2)
+      this.initCharts()
+      this.getPassYearFormatDate()
+      this.getList()
+    },
+    methods: {
+      pass(){
+         this.$confirm('确认通过请款信息?', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+          })
+          .then(() => {})
+      },
+      reject(){
+        this.rejectshow=true
+      },
+      modeselect(e){
+          console.log(e)
+      },selectware(e){
+          console.log(e)
+      },
+      goodsNameselect(e){
+          console.log(e)
+      },
+      addlist(){
+        this.feeDetailsDistributions.push({proDate:'',weight:'',money:'',warehouse:'',belonging:'',index:this.feeDetailsDistributions.length})
+      },
+      dellist(row){
+          this.feeDetailsDistributions.splice(row.index,1)
+      },
+      getList() {
+        // getceshi({
+        //  driverId:'8f1f3c624d7946d79a9d44a4057d969b'
+        // })
+        // .toPromise()
+        // .then((response) => {
+        // debugger
+        // console.log(response)
+        // })
+
+      },
+      detail(){
+        this.$router.push({name:'contractprofitsdetails'})
+      },
+      getPassYearFormatDate() {
+        var nowDate = new Date()
+        var _date = new Date()
+        nowDate.setTime(nowDate.getTime() - 24 * 60 * 60 * 1000 * 30)
+        var year = nowDate.getFullYear()
+        var year1 = _date.getFullYear()
+        var month = nowDate.getMonth() + 1
+        var month1 = _date.getMonth() + 1
+        var strDate = nowDate.getDate()
+        var strDate1 = _date.getDate()
+        if (month >= 1 && month <= 9) {
+          month = '0' + month
+        }
+        if (month1 >= 1 && month1 <= 9) {
+          month1 = '0' + month1
+        }
+
+        if (strDate >= 0 && strDate <= 9) {
+          strDate = '0' + strDate
+        }
+        if (strDate1 >= 0 && strDate1 <= 9) {
+          strDate1 = '0' + strDate1
+        }
+        this.startDate = year + '-' + month + '-' + strDate
+        this.endDate = year1 + '-' + month1 + '-' + strDate1
+        this.value = [this.startDate, this.endDate]
+      },
+      pickerOptions() {
+
+      },
+      initCharts() {
+        let app = this;
+        let myChart7 = app.$echarts.init(this.$refs.myEchart7);
+        var option;
+        option = {
+            // title: {
+            //   text: 'Rainfall vs Evaporation',
+            //   subtext: 'Fake Data'
+            // },
+            tooltip: {
+              trigger: 'axis'
+            },
+            legend: {
+              data: ['支出', '收入']
+            },
+            toolbox: {
+              show: true,
+              feature: {
+                dataView: {
+                  show: false,
+                  readOnly: false
+                },
+                magicType: {
+                  show: false,
+                  type: ['line', 'bar']
+                },
+                restore: {
+                  show: false
+                },
+                saveAsImage: {
+                  show: false
+                }
+              }
+            },
+            calculable: true,
+            xAxis: [{
+              name: '种类',
+              type: 'category',
+              // prettier-ignore
+              data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct']
+            }],
+            yAxis: [{
+              name: '储量(吨)',
+              type: 'value'
+            }],
+            series: [{
+                name: '支出',
+                type: 'bar',
+                right: 0,
+                // label: {
+                //   show: true,
+                //   position: 'inside'
+                // },
+                 label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  6.0, 60.9, 90.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0
+                ],
+                color: ['#5878E8 '],
+                formatter: '{value} 元',
+
+              },
+              {
+                name: '收入',
+                type: 'bar',
+                right: 20,
+                label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  102.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8
+                ],
+                color: ['#FF9F24'],
+                formatter: '{value} 元',
+              }
+            ]
+          },
+          myChart7.setOption(option)
+      },
+      getData(count) {
+        // prettier-ignore
+        const nameList = [
+          '支出', '收入'
+        ];
+        const legendData = [];
+        const seriesData = [];
+        for (var i = 0; i < count; i++) {
+          var name = nameList[i]
+          // Math.random() > 0.65 ?  makeWord(4, 1) + '·' + makeWord(3, 0) :  makeWord(2, 1);
+          legendData.push(name);
+          seriesData.push({
+            name: name,
+            value: Math.round(Math.random() * 100000)
+          });
+        }
+
+        return {
+          legendData: legendData,
+          seriesData: seriesData
+        };
+
+        // function makeWord(max, min) {
+        //   debugger
+        //   const nameLen = Math.ceil(Math.random() * max + min);
+        //   const name = [];
+        //   for (var i = 0; i < nameLen; i++) {
+        //     name.push(nameList[Math.round(Math.random() * nameList.length - 1)]);
+        //   }
+        //   return name.join('');
+        // }
+
+      }
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .container {
+    background: #E8ECF6;
+  }
+
+  .center {
+    margin: 0 auto;
+    background: #ffffff;
+    height: calc(100vh - 13vh);
+    border-radius: 4px;
+    margin-top: 10px;
+    overflow:scroll;
+  }
+
+  .row_top {
+    // background: #F6F7FC;
+    border-radius: 4px;
+
+    .bg-left {
+      padding-left: 30px;
+    }
+
+  .bg-right {
+      padding-right: 10px;
+      text-align: right;
+      height:60px;
+      padding-top:15px;
+    }
+
+    .title {
+      position: relative;
+    }
+
+    .title::before {
+      content: '';
+      display: inline-block;
+      width: 5px;
+      height: 30px;
+      background: #5473e8;
+      position: absolute;
+      left: 0;
+    }
+  }
+
+  .datascreen {
+    // margin-top: 10px;
+    width: 500px;
+    height: 60px;
+    line-height: 60px;
+    margin-left: 30px;
+
+  }
+
+  .chart_css {
+    display: flex;
+    height: 410px;
+
+    .table {
+      width: 70%;
+      height: 410px;
+    }
+
+    .makeWord_css {
+      width: 30%;
+      height: 410px;
+      margin-left: 30px;
+    }
+  }
+
+  .table_css {
+
+    text-align:center;
+
+  }
+  /deep/.el-form{
+    width:90%;
+    margin:0 auto;
+  }
+  /deep/.el-form-item {
+    width: 50%;
+}
+</style>

+ 251 - 0
src/views/profitable/contractcost.vue

@@ -0,0 +1,251 @@
+//合同费用
+<template>
+  <div class="container">
+    <el-row class="row_top">
+      <el-col :span="12">
+        <h2 class="bg-left title">合同费用</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right"><el-button class="bg-bottom" type="primary" size="small" @click="returnsales()"><img width="6" height="10"
+            style="vertion-align: bottom; margin-right: 3px" src="../../../public/img/lujing.png" alt="" />返回
+        </el-button></el-col>
+    </el-row>
+    <div class="center">
+      <el-row style='margin-bottom:10px;'>
+        <el-col :span="12">
+ <ws-select v-model="searchTypeText" placeholder="" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in contractList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+            <el-input placeholder="可按合同名称、买方名称、卖方名称查找" class="input_css" v-model="searchKeyWord"></el-input>
+        </el-col>
+        <el-col :span="12">
+          <div class="datascreen">
+          </div>
+        </el-col>
+      </el-row>
+      <el-row style='margin-bottom:10px;'>
+        <el-col :span="18">
+        支出粮款:50000元   收入粮款:50000元    费用收入:100000元    费用支出:10000元    当期利润: 100000元 
+        </el-col>
+        <el-col :span="6">
+
+        </el-col>
+      </el-row>
+      <div class="fromdata">
+        <el-table :data="tableData" stripe style="width: 100%">
+          <el-table-column type="index" label="序号">
+            <template scope="scope">
+              <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+              <span v-else>{{ scope.$index + 1 }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="reexType" label="费用名称"></el-table-column>
+          <el-table-column prop="createDate" label="所属库点"></el-table-column>
+          <el-table-column prop="amountMoney" label="费用金额"></el-table-column>
+          <el-table-column prop="expenseName" label="请款人/收款人"></el-table-column>
+          <el-table-column prop="expenseRemarks" label="日期"></el-table-column>
+        </el-table>
+      </div>
+      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+        style="text-align:center" :page-size="deptCircularPage.pageSize"
+        layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal">
+      </el-pagination>
+    </div>
+    
+  </div>
+</template>
+<script>
+  import {
+    getInOutDetailed
+  } from '@/model/profitable/index'
+  export default {
+    components: {},
+    data() {
+      return {
+        value: "",
+        tableData: [],
+        deptBudgetTotal: 0,
+        currentPage: 1,
+        pageSize: 10,
+        deptCircularPage: {},
+        contractList:[],
+        taskTypeList:[],
+        searchType:"",
+        searchKeyWord:"",
+        startDate:"",
+        endDate:"",
+        outtotal:0,
+        intotal:0,
+      }
+    },
+    activated() {
+         this.getPassYearFormatDate()
+      this.getList()
+    },
+    methods: {
+      typeChange(num){
+        this.searchType = num
+        this.getList()
+      },
+      getPassYearFormatDate () {
+          var nowDate = new Date()
+          var _date = new Date()
+          nowDate.setTime(nowDate.getTime()-24*60*60*1000*30)
+          var year = nowDate.getFullYear()
+          var year1 = _date.getFullYear()
+          var month = nowDate.getMonth() + 1
+          var month1 = _date.getMonth() + 1
+          var strDate = nowDate.getDate()
+          var strDate1 = _date.getDate()
+          if (month >= 1 && month <= 9) {
+            month = '0' + month
+          }
+           if (month1 >= 1 && month1 <= 9) {
+            month1 = '0' + month1
+          }
+        
+          if (strDate >= 0 && strDate <= 9) {
+            strDate = '0' + strDate
+          }
+           if (strDate1 >= 0 && strDate1 <= 9) {
+            strDate1 = '0' + strDate1
+          }
+          this.startDate = year + '-' + month +'-' + strDate
+          this.endDate = year1 + '-' + month1 +'-' + strDate1
+          this.value=[this.startDate,this.endDate]
+        },
+      getList() {
+         getcontract({
+        compId:localStorage.getItem('ws-pf_compId'),
+        })
+        .toPromise()
+        .then((response) => {
+          this.contractList=response
+        })
+         getInOutDetailed({
+            // warehouseType: 1,
+            compId: localStorage.getItem('ws-pf_compId'),
+            startDate:this.startDate,
+            endDate:this.endDate,
+            searchKeyWord:this.searchKeyWord,
+            currentPage: this.currentPage,
+            pageSize:this.pageSize ,
+            searchType:this.searchType
+          })
+          .toPromise()
+          .then(response => {
+            this.tableData = response.records
+            if(this.tableData.length > 0){
+              this.intotal = Number(this.tableData[0].inContractMoney) + Number(this.tableData[0].inWarehouseMoney) + Number(this.tableData[0].inManageMoney)
+            this.outtotal = Number(this.tableData[0].outContractMoney) + Number(this.tableData[0].outWarehouseMoney) + Number(this.tableData[0].outManageMoney)
+            }
+            
+           this.deptBudgetTotal = response.total
+          })
+      },
+      changeDate(){
+        if(this.value){
+          this.startDate = this.value[0]
+          this.endDate = this.value[1]
+        }
+        this.getList()
+      },
+      pickerOptions() {},
+      find() {
+        this.getList()
+
+      },
+      handleSizeChange(val) {
+        console.log(`每页 ${val} 条`)
+        this.pageSize = val
+        this.getList()
+      },
+      handleCurrentChange(val) {
+        this.currentPage = val
+        console.log(`当前页: ${val}`)
+        this.getList()
+      },
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .container {
+    background: #E8ECF6;
+  }
+
+  .center {
+    margin: 0 auto;
+    background: #ffffff;
+    height: calc(100vh - 13vh);
+    border-radius: 4px;
+    padding: 20px 0;
+
+    /deep/.el-table td,
+    /deep/.el-table th {
+      text-align: center;
+    }
+  }
+
+  .row_top {
+    background: #F6F7FC;
+    border-radius: 4px;
+    margin-bottom: 10px;
+
+    .bg-left {
+      padding-left: 30px;
+    }
+
+    .bg-right {
+      padding-right: 10px;
+      text-align: right;
+    }
+
+    .title {
+      position: relative;
+    }
+
+    .title::before {
+      content: '';
+      display: inline-block;
+      width: 5px;
+      height: 30px;
+      background: #5473e8;
+      position: absolute;
+      left: 0;
+    }
+  }
+
+  .datascreen {
+    display: flex;
+
+    .data_css {
+      width: 40%;
+    }
+
+    .input_css {
+      width: 50%;
+      margin: 0 10px;
+    }
+
+    .find {
+      margin-right: 10px;
+    }
+  }
+
+  .fromdata {
+    margin: 20px 0;
+    overflow-y: scroll;
+    height: 546px;
+  }
+  .top_info{
+    margin: 10px 0 0 10px;
+    min-width: 712px;
+    .info_css{
+      margin-right: 20px;
+    }
+  }
+  .bg-right{
+    padding-top:15px;
+  }
+</style>

+ 245 - 0
src/views/profitable/contractinventory.vue

@@ -0,0 +1,245 @@
+//合同库存
+<template>
+  <div class="container">
+    <el-row class="row_top">
+      <el-col :span="12">
+        <h2 class="bg-left title">库存分布</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right"><el-button class="bg-bottom" type="primary" size="small" @click="returnsales()"><img width="6" height="10"
+            style="vertion-align: bottom; margin-right: 3px" src="../../../public/img/lujing.png" alt="" />返回
+        </el-button></el-col>
+    </el-row>
+    <div class="center">
+      <el-row style='margin-bottom:10px;'>
+        <el-col :span="12">
+ <ws-select v-model="searchTypeText" placeholder="" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in contractList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+            <el-input placeholder="可按合同名称、买方名称、卖方名称查找" class="input_css" v-model="searchKeyWord"></el-input>
+        </el-col>
+        <el-col :span="12">
+          <div class="datascreen">
+          </div>
+        </el-col>
+      </el-row>
+      <div class="fromdata">
+        <el-table :data="tableData" stripe style="width: 100%">
+          <el-table-column type="index" label="序号">
+            <template scope="scope">
+              <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+              <span v-else>{{ scope.$index + 1 }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="reexType" label="仓库名称"></el-table-column>
+          <el-table-column prop="createDate" label="入库量(吨)"></el-table-column>
+          <el-table-column prop="amountMoney" label="销售量(吨)"></el-table-column>
+          <el-table-column prop="expenseName" label="移出量(吨)"></el-table-column>
+          <el-table-column prop="expenseRemarks" label="盘亏(吨)"></el-table-column>
+          <el-table-column prop="expenseName" label="盘盈(吨)"></el-table-column>
+          <el-table-column prop="expenseRemarks" label="成本(元/吨)"></el-table-column>
+        </el-table>
+      </div>
+      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+        style="text-align:center" :page-size="deptCircularPage.pageSize"
+        layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal">
+      </el-pagination>
+    </div>
+  </div>
+</template>
+<script>
+  import {
+    getInOutDetailed,
+    getcontract
+  } from '@/model/profitable/index'
+  export default {
+    components: {},
+    data() {
+      return {
+        value: "",
+        tableData: [],
+        deptBudgetTotal: 0,
+        contractList:[],
+        currentPage: 1,
+        pageSize: 10,
+        deptCircularPage: {},
+        taskTypeList:[],
+        searchType:"",
+        searchKeyWord:"",
+        startDate:"",
+        endDate:"",
+        outtotal:0,
+        intotal:0,
+      }
+    },
+    activated() {
+         this.getPassYearFormatDate()
+      this.getList()
+    },
+    methods: {
+      typeChange(num){
+        this.searchType = num
+        this.getList()
+      },
+      getPassYearFormatDate () {
+          var nowDate = new Date()
+          var _date = new Date()
+          nowDate.setTime(nowDate.getTime()-24*60*60*1000*30)
+          var year = nowDate.getFullYear()
+          var year1 = _date.getFullYear()
+          var month = nowDate.getMonth() + 1
+          var month1 = _date.getMonth() + 1
+          var strDate = nowDate.getDate()
+          var strDate1 = _date.getDate()
+          if (month >= 1 && month <= 9) {
+            month = '0' + month
+          }
+           if (month1 >= 1 && month1 <= 9) {
+            month1 = '0' + month1
+          }
+        
+          if (strDate >= 0 && strDate <= 9) {
+            strDate = '0' + strDate
+          }
+           if (strDate1 >= 0 && strDate1 <= 9) {
+            strDate1 = '0' + strDate1
+          }
+          this.startDate = year + '-' + month +'-' + strDate
+          this.endDate = year1 + '-' + month1 +'-' + strDate1
+          this.value=[this.startDate,this.endDate]
+        },
+      getList() {
+        getcontract({
+        compId:localStorage.getItem('ws-pf_compId'),
+        })
+        .toPromise()
+        .then((response) => {
+          this.contractList=response
+        })
+         getInOutDetailed({
+            // warehouseType: 1,
+            compId: localStorage.getItem('ws-pf_compId'),
+            startDate:this.startDate,
+            endDate:this.endDate,
+            searchKeyWord:this.searchKeyWord,
+            currentPage: this.currentPage,
+            pageSize:this.pageSize ,
+            searchType:this.searchType
+          })
+          .toPromise()
+          .then(response => {
+            this.tableData = response.records
+            if(this.tableData.length > 0){
+              this.intotal = Number(this.tableData[0].inContractMoney) + Number(this.tableData[0].inWarehouseMoney) + Number(this.tableData[0].inManageMoney)
+            this.outtotal = Number(this.tableData[0].outContractMoney) + Number(this.tableData[0].outWarehouseMoney) + Number(this.tableData[0].outManageMoney)
+            }
+            
+           this.deptBudgetTotal = response.total
+          })
+      },
+      changeDate(){
+        if(this.value){
+          this.startDate = this.value[0]
+          this.endDate = this.value[1]
+        }
+        this.getList()
+      },
+      pickerOptions() {},
+      find() {
+        this.getList()
+
+      },
+      handleSizeChange(val) {
+        console.log(`每页 ${val} 条`)
+        this.pageSize = val
+        this.getList()
+      },
+      handleCurrentChange(val) {
+        this.currentPage = val
+        console.log(`当前页: ${val}`)
+        this.getList()
+      },
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .container {
+    background: #E8ECF6;
+  }
+
+  .center {
+    margin: 0 auto;
+    background: #ffffff;
+    height: calc(100vh - 13vh);
+    border-radius: 4px;
+    padding: 20px 0;
+
+    /deep/.el-table td,
+    /deep/.el-table th {
+      text-align: center;
+    }
+  }
+
+  .row_top {
+    background: #F6F7FC;
+    border-radius: 4px;
+    margin-bottom: 10px;
+
+    .bg-left {
+      padding-left: 30px;
+    }
+
+    .bg-right {
+      padding-right: 10px;
+      text-align: right;
+    }
+
+    .title {
+      position: relative;
+    }
+
+    .title::before {
+      content: '';
+      display: inline-block;
+      width: 5px;
+      height: 30px;
+      background: #5473e8;
+      position: absolute;
+      left: 0;
+    }
+  }
+
+  .datascreen {
+    display: flex;
+
+    .data_css {
+      width: 40%;
+    }
+
+    .input_css {
+      width: 50%;
+      margin: 0 10px;
+    }
+
+    .find {
+      margin-right: 10px;
+    }
+  }
+
+  .fromdata {
+    margin: 20px 0;
+    overflow-y: scroll;
+    height: 546px;
+  }
+  .top_info{
+    margin: 10px 0 0 10px;
+    min-width: 712px;
+    .info_css{
+      margin-right: 20px;
+    }
+  }
+  .bg-right{
+    padding-top:15px;
+  }
+</style>

+ 396 - 0
src/views/profitable/contractprofits.vue

@@ -0,0 +1,396 @@
+//合同利润
+<template>
+  <div class="container">
+    <!-- <el-row class="row_top">
+      <el-col :span="12">
+        <h2 class="bg-left title">盈收概览</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right"></el-col>
+    </el-row> -->
+    <div class="center">
+      <el-row class='row_top'>
+      <el-col :span="12">
+        <div class="datascreen">
+        <el-date-picker v-model="value" type="daterange" align="right" unlink-panels range-separator="至"
+          start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions">
+        </el-date-picker>
+        
+
+
+        
+      </div>
+      </el-col>
+      <el-col :span="12" class="bg-right"><el-button type='primary' @click='detail'>利润详情</el-button></el-col>
+    </el-row>
+      <div class="chart_css">
+        <div class="table">
+          <div ref="myEchart7" style="height: 410px;"></div>
+        </div>
+        <div class="makeWord_css">
+          <!-- <div ref="myEchart6" style="height: 410px"></div> -->
+        </div>
+      </div>
+      <div class="table_css">
+        <div style='margin:0 auto;' ><div class='title' style='margin-bottom:10px;'>合同利润汇总表</div>
+        <div class='time' style=''>{{value[0]}}-{{value[1]}}</div></div>
+        <ws-form>
+          <ws-info-table>
+          <ws-form-item label="采购重量(吨)" span="1" prop="contractNo" class="readonly">
+            
+          </ws-form-item>
+          <ws-form-item label="销售重量(吨)" span="1" prop="settlementMethod">
+            
+          </ws-form-item>
+          <ws-form-item label="支付粮款(万元)" span="1" prop="contractNo" class="readonly">
+            
+          </ws-form-item>
+          <ws-form-item label="收入粮款(万元)" span="1" prop="settlementMethod">
+            
+          </ws-form-item>
+          <ws-form-item label="其他支付(万元)" span="1" prop="contractNo" class="readonly">
+            
+          </ws-form-item>
+          <ws-form-item label="其他收入(万元)" span="1" prop="settlementMethod">
+            
+          </ws-form-item>
+          <ws-form-item label="运费(万元)" span="1" prop="contractNo" class="readonly">
+            
+          </ws-form-item>
+          <ws-form-item label="总利润(万元)" span="1" prop="settlementMethod">
+            
+          </ws-form-item>
+        </ws-info-table>
+        </ws-form>
+        
+        
+        <!-- <el-table :data="valueData" style="width: 100%">
+          <el-table-column prop="date" label="货名/货值" min-width="110">
+            <div slot-scope="scope">
+              <span v-if="scope.$index == 0">期初货值(元)</span>
+              <span v-if="scope.$index == 1">期末货值(元)</span>
+            </div>
+
+          </el-table-column>
+          <el-table-column prop="date" label="玉米"></el-table-column>
+          <el-table-column prop="date" label="玉米"></el-table-column>
+          <el-table-column prop="date" label="玉米"></el-table-column>
+          <el-table-column prop="date" label="货名"></el-table-column>
+          <el-table-column prop="date" label="货名"></el-table-column>
+          <el-table-column prop="date" label="货名"></el-table-column>
+          <el-table-column prop="date" label="货名"></el-table-column>
+          <el-table-column prop="date" label="货名"></el-table-column>
+          <el-table-column prop="date" label="货名"></el-table-column>
+          <el-table-column prop="date" label="合计" min-width="130">
+            <div slot-scope="scope">
+              <span v-if="scope.$index == 0">合计:</span>
+              <span v-if="scope.$index == 1">合计:1000000000</span>
+            </div>
+          </el-table-column>
+        </el-table> -->
+
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+  import {} from '@/model/profitable/index'
+  export default {
+    components: {},
+    data() {
+      return {
+        value: [],
+        profitList: [{
+          name: "玉米",
+          count: 2000,
+        }],
+        deptBudgetList:{},
+        makeWordData: {},
+        valueData: [{
+            date: 10
+          },
+          {
+            date: 20
+          }
+        ], //货值
+
+      }
+    },
+    activated() {
+      this.makeWordData = this.getData(2)
+      this.initCharts()
+      this.getPassYearFormatDate()
+      this.getList()
+    },
+    methods: {
+      getList() {
+        // getceshi({
+        //  driverId:'8f1f3c624d7946d79a9d44a4057d969b'
+        // })
+        // .toPromise()
+        // .then((response) => {
+        // debugger
+        // console.log(response)
+        // })
+
+      },
+      detail(){
+        this.$router.push({name:'contractprofitsdetails'})
+      },
+      getPassYearFormatDate() {
+        var nowDate = new Date()
+        var _date = new Date()
+        var year = nowDate.getFullYear()-1
+        var year1 = _date.getFullYear()
+        var month = nowDate.getMonth() + 1
+        var month1 = _date.getMonth() + 1
+        var strDate = nowDate.getDate()
+        var strDate1 = _date.getDate()
+        if (month >= 1 && month <= 9) {
+          month = '0' + month
+        }
+        if (month1 >= 1 && month1 <= 9) {
+          month1 = '0' + month1
+        }
+
+        if (strDate >= 0 && strDate <= 9) {
+          strDate = '0' + strDate
+        }
+        if (strDate1 >= 0 && strDate1 <= 9) {
+          strDate1 = '0' + strDate1
+        }
+        this.startDate = year + '-' + month + '-' + strDate
+        this.endDate = year1 + '-' + month1 + '-' + strDate1
+        this.value = [this.startDate, this.endDate]
+      },
+      pickerOptions() {
+
+      },
+      initCharts() {
+        let app = this;
+        let myChart7 = app.$echarts.init(this.$refs.myEchart7);
+        var option;
+        option = {
+            // title: {
+            //   text: 'Rainfall vs Evaporation',
+            //   subtext: 'Fake Data'
+            // },
+            tooltip: {
+              trigger: 'axis'
+            },
+            legend: {
+              data: ['支出', '收入']
+            },
+            toolbox: {
+              show: true,
+              feature: {
+                dataView: {
+                  show: false,
+                  readOnly: false
+                },
+                magicType: {
+                  show: false,
+                  type: ['line', 'bar']
+                },
+                restore: {
+                  show: false
+                },
+                saveAsImage: {
+                  show: false
+                }
+              }
+            },
+            calculable: true,
+            xAxis: [{
+              name: '种类',
+              type: 'category',
+              // prettier-ignore
+              data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct']
+            }],
+            yAxis: [{
+              name: '利润(万元)',
+              type: 'value'
+            }],
+            series: [{
+                name: '支出',
+                type: 'bar',
+                right: 0,
+                // label: {
+                //   show: true,
+                //   position: 'inside'
+                // },
+                 label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  6.0, 60.9, 90.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0
+                ],
+                color: ['#5878E8 '],
+                formatter: '{value} 元',
+
+              },
+              {
+                name: '收入',
+                type: 'bar',
+                right: 20,
+                label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  102.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8
+                ],
+                color: ['#FF9F24'],
+                formatter: '{value} 元',
+              }
+            ]
+          },
+          myChart7.setOption(option)
+      },
+      getData(count) {
+        // prettier-ignore
+        const nameList = [
+          '支出', '收入'
+        ];
+        const legendData = [];
+        const seriesData = [];
+        for (var i = 0; i < count; i++) {
+          var name = nameList[i]
+          // Math.random() > 0.65 ?  makeWord(4, 1) + '·' + makeWord(3, 0) :  makeWord(2, 1);
+          legendData.push(name);
+          seriesData.push({
+            name: name,
+            value: Math.round(Math.random() * 100000)
+          });
+        }
+
+        return {
+          legendData: legendData,
+          seriesData: seriesData
+        };
+
+        // function makeWord(max, min) {
+        //   debugger
+        //   const nameLen = Math.ceil(Math.random() * max + min);
+        //   const name = [];
+        //   for (var i = 0; i < nameLen; i++) {
+        //     name.push(nameList[Math.round(Math.random() * nameList.length - 1)]);
+        //   }
+        //   return name.join('');
+        // }
+
+      }
+    },
+  }
+</script>
+<style lang="scss" scoped>
+/deep/.ws-info-table{
+  border-left: 1px solid #D8DCE6;
+  border-top: 1px solid #D8DCE6;
+.el-form-item {
+    border-right: 1px solid #D8DCE6;
+    border-bottom: 1px solid #D8DCE6;
+}
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+    background-color: #F6F7FB;
+}
+  .container {
+    background: #E8ECF6;
+  }
+
+  .center {
+    margin: 0 auto;
+    background: #ffffff;
+    height: calc(100vh - 13vh);
+    border-radius: 4px;
+    margin-top: 10px;
+    overflow:scroll;
+  }
+
+  .row_top {
+    // background: #F6F7FC;
+    border-radius: 4px;
+
+    .bg-left {
+      padding-left: 30px;
+    }
+
+  .bg-right {
+      padding-right: 10px;
+      text-align: right;
+      height:60px;
+      padding-top:15px;
+    }
+  }
+
+  .datascreen {
+    // margin-top: 10px;
+    width: 500px;
+    height: 60px;
+    line-height: 60px;
+    margin-left: 30px;
+
+  }
+
+  .chart_css {
+    display: flex;
+    height: 410px;
+
+    .table {
+      width: 70%;
+      height: 410px;
+    }
+
+    .makeWord_css {
+      width: 30%;
+      height: 410px;
+      margin-left: 30px;
+    }
+  }
+
+  .table_css {
+
+    text-align:center;
+    margin-bottom:30px;
+  }
+  .flex-between{
+    justify-content: space-between;
+  }
+  /deep/.el-form{
+    width:90%;
+    margin:0 auto;
+  }
+  /deep/.el-form-item {
+    width: 50%;
+}
+.title{
+  background:#F6F7FC;
+  padding:20px 10px;
+  text-align:left;
+  position:relative;
+  font-size:18px;
+}
+.title::before{
+  content:'';
+  display:block;
+  background:#5473E8;
+  width:5px;height:30px;
+  position:absolute;
+  left:0;
+  top:50%;
+  transform: translateY(-50%);
+}
+.time{
+  text-align:right;
+  width:90%;
+  margin:10px auto;
+  color:#8890B1;
+}
+</style>

+ 278 - 0
src/views/profitable/contractprofitsdetails.vue

@@ -0,0 +1,278 @@
+//合同利润详情
+<template>
+  <div class="container">
+    <el-row class="row_top">
+      <el-col :span="12">
+        <h2 class="bg-left title">利润详情</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right"><el-button class="bg-bottom" type="primary" size="small" @click="returnsales()"><img width="6" height="10"
+            style="vertion-align: bottom; margin-right: 3px" src="../../../public/img/lujing.png" alt="" />返回
+        </el-button></el-col>
+    </el-row>
+    <div class="center">
+      <el-row style='margin-bottom:10px;'>
+        <el-col :span="12">
+          <el-button style="margin-left:10px" @click="typeChange('')" type="primary">导出</el-button>
+        </el-col>
+        <el-col :span="12">
+          <div class="datascreen">
+            <el-date-picker value-format='yyyy-MM-dd' v-model="value" type="daterange" align="right" unlink-panels range-separator="至"
+              start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" class="data_css" @change="changeDate" >
+            </el-date-picker>
+            <el-input placeholder="可按合同名称、买方名称、卖方名称查找" class="input_css" v-model="searchKeyWord"></el-input>
+            <el-button class="find" type="primary" @click="find()"><img width="16" height="16" style="left: -8px;"
+                src="../../../public/img/sousuo.png" alt="" /></el-button>
+          </div>
+        </el-col>
+      </el-row>
+      <el-row style='margin-bottom:10px;'>
+        <el-col :span="18">
+          <el-button style="margin-left:10px" @click="typeChange('')" :type="searchType == ''?'primary':''">全部合同</el-button>
+          <el-button @click="typeChange(1)" :type="searchType == 1?'primary':''">采购合同</el-button>
+          <el-button @click="typeChange(2)" :type="searchType == 2?'primary':''">销售合同</el-button>
+          <el-button @click="typeChange(1)" :type="searchType == 1?'primary':''">代收合同</el-button>
+          <el-button @click="typeChange(2)" :type="searchType == 2?'primary':''">代储合同</el-button>
+          <el-button @click="typeChange(1)" :type="searchType == 1?'primary':''">收储合同</el-button>
+        </el-col>
+        <el-col :span="6">
+
+        </el-col>
+      </el-row>
+      <el-row style='margin-bottom:10px;'>
+        <el-col :span="18">
+          <el-button style="margin-left:10px" @click="typeChange('')" :type="searchType == ''?'primary':''">全部状态</el-button>
+          <el-button @click="typeChange(1)" :type="searchType == 1?'primary':''">待执行</el-button>
+          <el-button @click="typeChange(2)" :type="searchType == 2?'primary':''">执行中</el-button>
+          <el-button @click="typeChange(1)" :type="searchType == 1?'primary':''">发运结束</el-button>
+          <el-button @click="typeChange(2)" :type="searchType == 2?'primary':''">已完成</el-button>
+        </el-col>
+        <el-col :span="6">
+
+        </el-col>
+      </el-row>
+      <div class="fromdata">
+        <el-table :data="tableData" stripe style="width: 100%" @selection-change="handleSelectionChange">
+          <el-table-column
+          type="selection"
+          width="55">
+        </el-table-column>
+          <el-table-column type="index" label="序号">
+            <template scope="scope">
+              <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+              <span v-else>{{ scope.$index + 1 }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="reexType" label="合同编号"></el-table-column>
+          <el-table-column prop="createDate" label="合同类型"></el-table-column>
+          <el-table-column prop="amountMoney" label="买方"></el-table-column>
+          <el-table-column prop="expenseName" label="卖方"></el-table-column>
+          <el-table-column prop="expenseRemarks" label="剩余(吨)"></el-table-column>
+          <el-table-column prop="expenseRemarks" label="利润(万元)"></el-table-column>
+          <el-table-column prop="expenseRemarks" label="状态"></el-table-column>
+          <el-table-column prop="expenseRemarks" label="签订日期"></el-table-column>
+          <el-table-column prop="address" label="操作" width="200">
+            <template slot-scope="scope">
+              <el-button @click="inventory(1)" type="primary">库存</el-button>
+              <el-button @click="cost(1)" type="primary">费用</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+        style="text-align:center" :page-size="deptCircularPage.pageSize"
+        layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal">
+      </el-pagination>
+    </div>
+  </div>
+</template>
+<script>
+  import {
+    getInOutDetailed
+  } from '@/model/profitable/index'
+  export default {
+    components: {},
+    data() {
+      return {
+        value: "",
+        tableData: [],
+        deptBudgetTotal: 0,
+        currentPage: 1,
+        pageSize: 10,
+        deptCircularPage: {},
+        searchType:"",
+        searchKeyWord:"",
+        startDate:"",
+        endDate:"",
+        outtotal:0,
+        intotal:0,
+      }
+    },
+    activated() {
+         this.getPassYearFormatDate()
+      this.getList()
+    },
+    methods: {
+      typeChange(num){
+        this.searchType = num
+        this.getList()
+      },
+      inventory(){
+        this.$router.push({name:'contractinventory'})
+      },
+      cost(){
+        this.$router.push({name:'contractcost'})
+      },
+      getPassYearFormatDate () {
+          var nowDate = new Date()
+          var _date = new Date()
+          nowDate.setTime(nowDate.getTime()-24*60*60*1000*30)
+          var year = nowDate.getFullYear()
+          var year1 = _date.getFullYear()
+          var month = nowDate.getMonth() + 1
+          var month1 = _date.getMonth() + 1
+          var strDate = nowDate.getDate()
+          var strDate1 = _date.getDate()
+          if (month >= 1 && month <= 9) {
+            month = '0' + month
+          }
+           if (month1 >= 1 && month1 <= 9) {
+            month1 = '0' + month1
+          }
+        
+          if (strDate >= 0 && strDate <= 9) {
+            strDate = '0' + strDate
+          }
+           if (strDate1 >= 0 && strDate1 <= 9) {
+            strDate1 = '0' + strDate1
+          }
+          this.startDate = year + '-' + month +'-' + strDate
+          this.endDate = year1 + '-' + month1 +'-' + strDate1
+          this.value=[this.startDate,this.endDate]
+        },
+      getList() {
+         getInOutDetailed({
+            // warehouseType: 1,
+            compId: localStorage.getItem('ws-pf_compId'),
+            startDate:this.startDate,
+            endDate:this.endDate,
+            searchKeyWord:this.searchKeyWord,
+            currentPage: this.currentPage,
+            pageSize:this.pageSize ,
+            searchType:this.searchType
+          })
+          .toPromise()
+          .then(response => {
+            this.tableData = response.records
+            if(this.tableData.length > 0){
+              this.intotal = Number(this.tableData[0].inContractMoney) + Number(this.tableData[0].inWarehouseMoney) + Number(this.tableData[0].inManageMoney)
+            this.outtotal = Number(this.tableData[0].outContractMoney) + Number(this.tableData[0].outWarehouseMoney) + Number(this.tableData[0].outManageMoney)
+            }
+            
+           this.deptBudgetTotal = response.total
+          })
+      },
+      changeDate(){
+        if(this.value){
+          this.startDate = this.value[0]
+          this.endDate = this.value[1]
+        }
+        this.getList()
+      },
+      pickerOptions() {},
+      find() {
+        this.getList()
+
+      },
+      handleSizeChange(val) {
+        console.log(`每页 ${val} 条`)
+        this.pageSize = val
+        this.getList()
+      },
+      handleCurrentChange(val) {
+        this.currentPage = val
+        console.log(`当前页: ${val}`)
+        this.getList()
+      },
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .container {
+    background: #E8ECF6;
+  }
+
+  .center {
+    margin: 0 auto;
+    background: #ffffff;
+    height: calc(100vh - 13vh);
+    border-radius: 4px;
+    padding: 20px 0;
+
+    /deep/.el-table td,
+    /deep/.el-table th {
+      text-align: center;
+    }
+  }
+
+  .row_top {
+    background: #F6F7FC;
+    border-radius: 4px;
+    margin-bottom: 10px;
+
+    .bg-left {
+      padding-left: 30px;
+    }
+
+    .bg-right {
+      padding-right: 10px;
+      text-align: right;
+    }
+
+    .title {
+      position: relative;
+    }
+
+    .title::before {
+      content: '';
+      display: inline-block;
+      width: 5px;
+      height: 30px;
+      background: #5473e8;
+      position: absolute;
+      left: 0;
+    }
+  }
+
+  .datascreen {
+    display: flex;
+
+    .data_css {
+      width: 40%;
+    }
+
+    .input_css {
+      width: 50%;
+      margin: 0 10px;
+    }
+
+    .find {
+      margin-right: 10px;
+    }
+  }
+
+  .fromdata {
+    margin: 20px 0;
+    overflow-y: scroll;
+    height: 546px;
+  }
+  .top_info{
+    margin: 10px 0 0 10px;
+    min-width: 712px;
+    .info_css{
+      margin-right: 20px;
+    }
+  }
+  .bg-right{
+    padding-top:15px;
+  }
+</style>

+ 442 - 0
src/views/profitable/expenseallot.vue

@@ -0,0 +1,442 @@
+//费用分配
+<template>
+  <div class="container">
+    <el-row class="row_top">
+      <el-col :span="12">
+        <h2 class="bg-left title">费用分配</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right"><el-button class="bg-bottom" type="primary" size="small" @click="returnsales()"><img width="6" height="10"
+            style="vertion-align: bottom; margin-right: 3px" src="../../../public/img/lujing.png" alt="" />返回
+        </el-button></el-col>
+    </el-row>
+    <div class="center">
+     <div>基本信息</div>
+      <div class="table_css">
+        <ws-form>
+          <ws-form-item label="用途" span="1" prop="contractNo" class="readonly">
+              <div v-if="deptBudgetList.purpose==1">合同费用</div>
+              <div v-if="deptBudgetList.purpose==2">库点费用</div>
+              <div v-if="deptBudgetList.purpose==3">经营性费用</div>
+          </ws-form-item>
+          <ws-form-item v-if='deptBudgetList.purpose==1||deptBudgetList.purpose==2' label="类型" span="1" prop="contractNo" class="readonly">
+            <div v-if='deptBudgetList.type==1'>粮款</div>
+            <div v-if='deptBudgetList.type==2'>非粮款</div>
+            <div v-if='deptBudgetList.type==3&&deptBudgetList.purpose==1'>保证金</div>
+          </ws-form-item>
+          <ws-form-item label="合同编号" span="1" prop="contractNo" class="readonly">
+          {{deptBudgetList.contractNo}}
+          </ws-form-item>
+          <ws-form-item label="费用名称" span="1" prop="settlementMethod">
+            {{deptBudgetList.expenseName}}
+          </ws-form-item>
+          <ws-form-item label="金额" span="1" prop="contractNo" class="readonly">
+            {{deptBudgetList.money}}
+          </ws-form-item>
+          <ws-form-item label="备注" span="1" prop="settlementMethod">
+            <el-input
+            disabled
+            type="textarea"
+            :rows="2"
+            placeholder="选填,不超过50个字"
+            v-model="deptBudgetList.remark">
+            </el-input>
+          </ws-form-item>
+          <ws-form-item label="附件">
+          <el-upload ref='uploadfiles' :file-list='dataList' action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+            :on-success="handlefujian" :on-remove="handleRemove" class="photo2">
+            <i class="el-icon-plus"></i>
+          </el-upload>
+        </ws-form-item>
+        </ws-form>
+        <div v-if='deptBudgetList.type==2'>费用分配</div>
+        <div v-if='deptBudgetList.type==2' style='margin-bottom:10px;'>
+            <ws-select v-model="mode" placeholder="费用分配方式" class="typeselect" @change="modeselect"
+          :value="searchType">
+          <ws-option v-for="item in modeList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-if='deptBudgetList.purpose==1' v-model="ware" placeholder="费用分配仓库" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in wareList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        <ws-select v-if='deptBudgetList.purpose==2' v-model="goods" placeholder="费用分配产品" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in goodsList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-model="dates" placeholder="费用分配日期" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in datesList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-model="moneys" placeholder="费用分配金额" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in moneysList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        合计分配:{{amount}}元
+        </div>
+        <el-table :data="feeDetailsDistributions" style="width: 80%;margin:0 auto;">
+          <el-table-column prop="date" label="所属" min-width="110">
+            <template slot-scope="scope">
+                <ws-select v-if='deptBudgetList.purpose==2' v-model="scope.row.belonging" placeholder="选择仓库或合同" class="typeselect" @change="selectware"
+          :value="searchType">
+          <ws-option v-for="item in warecontractList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        <ws-select v-if='deptBudgetList.purpose==1' v-model="scope.row.belonging" placeholder="选择仓库" class="typeselect" @change="selectware"
+          :value="searchType">
+          <ws-option v-for="item in warehouseList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="日期">
+            <template slot-scope="scope">
+                <ws-date-picker v-model="scope.row.proDate" type="date" placeholder="请选择日期"
+              value-format="yyyy-MM-dd" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="货名">
+              <template slot-scope="scope">
+                <ws-select v-model="scope.row.goodsName" placeholder="选择货名" class="typeselect" @change="goodsNameselect"
+                    :value="searchType">
+                    <ws-option v-for="item in goodsList" :key="item.value" :label="item.value" :value="item.value"
+                        style="color: #8890b1" />
+                </ws-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="库存(吨)"></el-table-column>
+          <el-table-column prop="date" label="分配金额(元)">
+            <template slot-scope="scope">
+                <el-input placeholder="输入费用名称,1-15个字" class="input_css" v-model="scope.row.money"></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column prop="address" label="操作" width="200">
+            <template slot-scope="scope">
+                <img class='add' @click='addlist()' src="../../../public/img/add.png" alt="">
+                <img class='del' @click='dellist(scope.row)' src="../../../public/img/del.png" alt="">
+            </template>
+          </el-table-column>
+        </el-table>
+
+      </div>
+      <div>
+      <el-button class="bg-bottom" type="primary" size="small" @click="returnsales()">驳回
+        </el-button>
+        <el-button class="bg-bottom" type="primary" size="small" @click="returnsales()">通过
+        </el-button>
+    </div>
+    </div>
+  </div>
+</template>
+<script>
+  import {} from '@/model/profitable/index'
+  export default {
+    components: {},
+    data() {
+      return {
+        value: [],
+        profitList: [{
+          name: "玉米",
+          count: 2000,
+        }],
+        mode:'全部分配',
+        ware:'指定仓库',
+        dates:'固定日期',
+        moneys:'按重量自动分配',
+        goods:'全部货品',
+        amount:0,
+        goodsList:[],
+        warecontractList:[],
+        feeDetailsDistributions:[{proDate:'',weight:'',money:'',warehouse:'',belonging:'',index:0}],
+        deptBudgetList:{},
+        makeWordData: {},
+        warehouseList:[],
+        modeList:[{key:1,value:'全部分配'},{key:2,value:'部分分配'},{key:3,value:'暂不分配'}],
+        wareList:[{key:1,value:'指定仓库'},{key:2,value:'全部仓库'}],
+        datesList:[{key:1,value:'固定日期'},{key:2,value:'指定日期'}],
+        moneysList:[{key:1,value:'按重量自动分配'},{key:2,value:'指定分配金额'}],
+        goodsList:[{key:1,value:'全部货品'},{key:2,value:'指定货品'}],
+        valueData: [{
+            date: 10
+          },
+          {
+            date: 20
+          }
+        ], //货值
+
+      }
+    },
+    activated() {
+      this.makeWordData = this.getData(2)
+      this.initCharts()
+      this.getPassYearFormatDate()
+      this.getList()
+    },
+    methods: {
+      modeselect(e){
+          console.log(e)
+      },selectware(e){
+          console.log(e)
+      },
+      goodsNameselect(e){
+          console.log(e)
+      },
+      addlist(){
+        this.feeDetailsDistributions.push({proDate:'',weight:'',money:'',warehouse:'',belonging:'',index:this.feeDetailsDistributions.length})
+      },
+      dellist(row){
+          this.feeDetailsDistributions.splice(row.index,1)
+      },
+      getList() {
+        // getceshi({
+        //  driverId:'8f1f3c624d7946d79a9d44a4057d969b'
+        // })
+        // .toPromise()
+        // .then((response) => {
+        // debugger
+        // console.log(response)
+        // })
+
+      },
+      detail(){
+        this.$router.push({name:'contractprofitsdetails'})
+      },
+      getPassYearFormatDate() {
+        var nowDate = new Date()
+        var _date = new Date()
+        nowDate.setTime(nowDate.getTime() - 24 * 60 * 60 * 1000 * 30)
+        var year = nowDate.getFullYear()
+        var year1 = _date.getFullYear()
+        var month = nowDate.getMonth() + 1
+        var month1 = _date.getMonth() + 1
+        var strDate = nowDate.getDate()
+        var strDate1 = _date.getDate()
+        if (month >= 1 && month <= 9) {
+          month = '0' + month
+        }
+        if (month1 >= 1 && month1 <= 9) {
+          month1 = '0' + month1
+        }
+
+        if (strDate >= 0 && strDate <= 9) {
+          strDate = '0' + strDate
+        }
+        if (strDate1 >= 0 && strDate1 <= 9) {
+          strDate1 = '0' + strDate1
+        }
+        this.startDate = year + '-' + month + '-' + strDate
+        this.endDate = year1 + '-' + month1 + '-' + strDate1
+        this.value = [this.startDate, this.endDate]
+      },
+      pickerOptions() {
+
+      },
+      initCharts() {
+        let app = this;
+        let myChart7 = app.$echarts.init(this.$refs.myEchart7);
+        var option;
+        option = {
+            // title: {
+            //   text: 'Rainfall vs Evaporation',
+            //   subtext: 'Fake Data'
+            // },
+            tooltip: {
+              trigger: 'axis'
+            },
+            legend: {
+              data: ['支出', '收入']
+            },
+            toolbox: {
+              show: true,
+              feature: {
+                dataView: {
+                  show: false,
+                  readOnly: false
+                },
+                magicType: {
+                  show: false,
+                  type: ['line', 'bar']
+                },
+                restore: {
+                  show: false
+                },
+                saveAsImage: {
+                  show: false
+                }
+              }
+            },
+            calculable: true,
+            xAxis: [{
+              name: '种类',
+              type: 'category',
+              // prettier-ignore
+              data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct']
+            }],
+            yAxis: [{
+              name: '储量(吨)',
+              type: 'value'
+            }],
+            series: [{
+                name: '支出',
+                type: 'bar',
+                right: 0,
+                // label: {
+                //   show: true,
+                //   position: 'inside'
+                // },
+                 label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  6.0, 60.9, 90.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0
+                ],
+                color: ['#5878E8 '],
+                formatter: '{value} 元',
+
+              },
+              {
+                name: '收入',
+                type: 'bar',
+                right: 20,
+                label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  102.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8
+                ],
+                color: ['#FF9F24'],
+                formatter: '{value} 元',
+              }
+            ]
+          },
+          myChart7.setOption(option)
+      },
+      getData(count) {
+        // prettier-ignore
+        const nameList = [
+          '支出', '收入'
+        ];
+        const legendData = [];
+        const seriesData = [];
+        for (var i = 0; i < count; i++) {
+          var name = nameList[i]
+          // Math.random() > 0.65 ?  makeWord(4, 1) + '·' + makeWord(3, 0) :  makeWord(2, 1);
+          legendData.push(name);
+          seriesData.push({
+            name: name,
+            value: Math.round(Math.random() * 100000)
+          });
+        }
+
+        return {
+          legendData: legendData,
+          seriesData: seriesData
+        };
+
+        // function makeWord(max, min) {
+        //   debugger
+        //   const nameLen = Math.ceil(Math.random() * max + min);
+        //   const name = [];
+        //   for (var i = 0; i < nameLen; i++) {
+        //     name.push(nameList[Math.round(Math.random() * nameList.length - 1)]);
+        //   }
+        //   return name.join('');
+        // }
+
+      }
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .container {
+    background: #E8ECF6;
+  }
+
+  .center {
+    margin: 0 auto;
+    background: #ffffff;
+    height: calc(100vh - 13vh);
+    border-radius: 4px;
+    margin-top: 10px;
+    overflow:scroll;
+  }
+
+  .row_top {
+    // background: #F6F7FC;
+    border-radius: 4px;
+
+    .bg-left {
+      padding-left: 30px;
+    }
+
+  .bg-right {
+      padding-right: 10px;
+      text-align: right;
+      height:60px;
+      padding-top:15px;
+    }
+
+    .title {
+      position: relative;
+    }
+
+    .title::before {
+      content: '';
+      display: inline-block;
+      width: 5px;
+      height: 30px;
+      background: #5473e8;
+      position: absolute;
+      left: 0;
+    }
+  }
+
+  .datascreen {
+    // margin-top: 10px;
+    width: 500px;
+    height: 60px;
+    line-height: 60px;
+    margin-left: 30px;
+
+  }
+
+  .chart_css {
+    display: flex;
+    height: 410px;
+
+    .table {
+      width: 70%;
+      height: 410px;
+    }
+
+    .makeWord_css {
+      width: 30%;
+      height: 410px;
+      margin-left: 30px;
+    }
+  }
+
+  .table_css {
+
+    text-align:center;
+
+  }
+  /deep/.el-form{
+    width:90%;
+    margin:0 auto;
+  }
+  /deep/.el-form-item {
+    width: 50%;
+}
+</style>

+ 442 - 0
src/views/profitable/expenseallotaduit.vue

@@ -0,0 +1,442 @@
+//确认费用分配
+<template>
+  <div class="container">
+    <el-row class="row_top">
+      <el-col :span="12">
+        <h2 class="bg-left title">确认分配</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right"><el-button class="bg-bottom" type="primary" size="small" @click="returnsales()"><img width="6" height="10"
+            style="vertion-align: bottom; margin-right: 3px" src="../../../public/img/lujing.png" alt="" />返回
+        </el-button></el-col>
+    </el-row>
+    <div class="center">
+     <div>基本信息</div>
+      <div class="table_css">
+        <ws-form>
+          <ws-form-item label="用途" span="1" prop="contractNo" class="readonly">
+              <div v-if="deptBudgetList.purpose==1">合同费用</div>
+              <div v-if="deptBudgetList.purpose==2">库点费用</div>
+              <div v-if="deptBudgetList.purpose==3">经营性费用</div>
+          </ws-form-item>
+          <ws-form-item v-if='deptBudgetList.purpose==1||deptBudgetList.purpose==2' label="类型" span="1" prop="contractNo" class="readonly">
+            <div v-if='deptBudgetList.type==1'>粮款</div>
+            <div v-if='deptBudgetList.type==2'>非粮款</div>
+            <div v-if='deptBudgetList.type==3&&deptBudgetList.purpose==1'>保证金</div>
+          </ws-form-item>
+          <ws-form-item label="合同编号" span="1" prop="contractNo" class="readonly">
+          {{deptBudgetList.contractNo}}
+          </ws-form-item>
+          <ws-form-item label="费用名称" span="1" prop="settlementMethod">
+            {{deptBudgetList.expenseName}}
+          </ws-form-item>
+          <ws-form-item label="金额" span="1" prop="contractNo" class="readonly">
+            {{deptBudgetList.money}}
+          </ws-form-item>
+          <ws-form-item label="备注" span="1" prop="settlementMethod">
+            <el-input
+            disabled
+            type="textarea"
+            :rows="2"
+            placeholder="选填,不超过50个字"
+            v-model="deptBudgetList.remark">
+            </el-input>
+          </ws-form-item>
+          <ws-form-item label="附件">
+          <el-upload ref='uploadfiles' :file-list='dataList' action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+            :on-success="handlefujian" :on-remove="handleRemove" class="photo2">
+            <i class="el-icon-plus"></i>
+          </el-upload>
+        </ws-form-item>
+        </ws-form>
+        <div v-if='deptBudgetList.type==2'>费用分配</div>
+        <div v-if='deptBudgetList.type==2' style='margin-bottom:10px;'>
+            <ws-select v-model="mode" placeholder="费用分配方式" class="typeselect" @change="modeselect"
+          :value="searchType">
+          <ws-option v-for="item in modeList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-if='deptBudgetList.purpose==1' v-model="ware" placeholder="费用分配仓库" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in wareList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        <ws-select v-if='deptBudgetList.purpose==2' v-model="goods" placeholder="费用分配产品" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in goodsList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-model="dates" placeholder="费用分配日期" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in datesList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-model="moneys" placeholder="费用分配金额" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in moneysList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        合计分配:{{amount}}元
+        </div>
+        <el-table :data="feeDetailsDistributions" style="width: 80%;margin:0 auto;">
+          <el-table-column prop="date" label="所属" min-width="110">
+            <template slot-scope="scope">
+                <ws-select v-if='deptBudgetList.purpose==2' v-model="scope.row.belonging" placeholder="选择仓库或合同" class="typeselect" @change="selectware"
+          :value="searchType">
+          <ws-option v-for="item in warecontractList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        <ws-select v-if='deptBudgetList.purpose==1' v-model="scope.row.belonging" placeholder="选择仓库" class="typeselect" @change="selectware"
+          :value="searchType">
+          <ws-option v-for="item in warehouseList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="日期">
+            <template slot-scope="scope">
+                <ws-date-picker v-model="scope.row.proDate" type="date" placeholder="请选择日期"
+              value-format="yyyy-MM-dd" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="货名">
+              <template slot-scope="scope">
+                <ws-select v-model="scope.row.goodsName" placeholder="选择货名" class="typeselect" @change="goodsNameselect"
+                    :value="searchType">
+                    <ws-option v-for="item in goodsList" :key="item.value" :label="item.value" :value="item.value"
+                        style="color: #8890b1" />
+                </ws-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="库存(吨)"></el-table-column>
+          <el-table-column prop="date" label="分配金额(元)">
+            <template slot-scope="scope">
+                <el-input placeholder="输入费用名称,1-15个字" class="input_css" v-model="scope.row.money"></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column prop="address" label="操作" width="200">
+            <template slot-scope="scope">
+                <img class='add' @click='addlist()' src="../../../public/img/add.png" alt="">
+                <img class='del' @click='dellist(scope.row)' src="../../../public/img/del.png" alt="">
+            </template>
+          </el-table-column>
+        </el-table>
+
+      </div>
+      <div>
+      <el-button class="bg-bottom" type="primary" size="small" @click="returnsales()">驳回
+        </el-button>
+        <el-button class="bg-bottom" type="primary" size="small" @click="returnsales()">通过
+        </el-button>
+    </div>
+    </div>
+  </div>
+</template>
+<script>
+  import {} from '@/model/profitable/index'
+  export default {
+    components: {},
+    data() {
+      return {
+        value: [],
+        profitList: [{
+          name: "玉米",
+          count: 2000,
+        }],
+        mode:'全部分配',
+        ware:'指定仓库',
+        dates:'固定日期',
+        moneys:'按重量自动分配',
+        goods:'全部货品',
+        amount:0,
+        goodsList:[],
+        warecontractList:[],
+        feeDetailsDistributions:[{proDate:'',weight:'',money:'',warehouse:'',belonging:'',index:0}],
+        deptBudgetList:{},
+        makeWordData: {},
+        warehouseList:[],
+        modeList:[{key:1,value:'全部分配'},{key:2,value:'部分分配'},{key:3,value:'暂不分配'}],
+        wareList:[{key:1,value:'指定仓库'},{key:2,value:'全部仓库'}],
+        datesList:[{key:1,value:'固定日期'},{key:2,value:'指定日期'}],
+        moneysList:[{key:1,value:'按重量自动分配'},{key:2,value:'指定分配金额'}],
+        goodsList:[{key:1,value:'全部货品'},{key:2,value:'指定货品'}],
+        valueData: [{
+            date: 10
+          },
+          {
+            date: 20
+          }
+        ], //货值
+
+      }
+    },
+    activated() {
+      this.makeWordData = this.getData(2)
+      this.initCharts()
+      this.getPassYearFormatDate()
+      this.getList()
+    },
+    methods: {
+      modeselect(e){
+          console.log(e)
+      },selectware(e){
+          console.log(e)
+      },
+      goodsNameselect(e){
+          console.log(e)
+      },
+      addlist(){
+        this.feeDetailsDistributions.push({proDate:'',weight:'',money:'',warehouse:'',belonging:'',index:this.feeDetailsDistributions.length})
+      },
+      dellist(row){
+          this.feeDetailsDistributions.splice(row.index,1)
+      },
+      getList() {
+        // getceshi({
+        //  driverId:'8f1f3c624d7946d79a9d44a4057d969b'
+        // })
+        // .toPromise()
+        // .then((response) => {
+        // debugger
+        // console.log(response)
+        // })
+
+      },
+      detail(){
+        this.$router.push({name:'contractprofitsdetails'})
+      },
+      getPassYearFormatDate() {
+        var nowDate = new Date()
+        var _date = new Date()
+        nowDate.setTime(nowDate.getTime() - 24 * 60 * 60 * 1000 * 30)
+        var year = nowDate.getFullYear()
+        var year1 = _date.getFullYear()
+        var month = nowDate.getMonth() + 1
+        var month1 = _date.getMonth() + 1
+        var strDate = nowDate.getDate()
+        var strDate1 = _date.getDate()
+        if (month >= 1 && month <= 9) {
+          month = '0' + month
+        }
+        if (month1 >= 1 && month1 <= 9) {
+          month1 = '0' + month1
+        }
+
+        if (strDate >= 0 && strDate <= 9) {
+          strDate = '0' + strDate
+        }
+        if (strDate1 >= 0 && strDate1 <= 9) {
+          strDate1 = '0' + strDate1
+        }
+        this.startDate = year + '-' + month + '-' + strDate
+        this.endDate = year1 + '-' + month1 + '-' + strDate1
+        this.value = [this.startDate, this.endDate]
+      },
+      pickerOptions() {
+
+      },
+      initCharts() {
+        let app = this;
+        let myChart7 = app.$echarts.init(this.$refs.myEchart7);
+        var option;
+        option = {
+            // title: {
+            //   text: 'Rainfall vs Evaporation',
+            //   subtext: 'Fake Data'
+            // },
+            tooltip: {
+              trigger: 'axis'
+            },
+            legend: {
+              data: ['支出', '收入']
+            },
+            toolbox: {
+              show: true,
+              feature: {
+                dataView: {
+                  show: false,
+                  readOnly: false
+                },
+                magicType: {
+                  show: false,
+                  type: ['line', 'bar']
+                },
+                restore: {
+                  show: false
+                },
+                saveAsImage: {
+                  show: false
+                }
+              }
+            },
+            calculable: true,
+            xAxis: [{
+              name: '种类',
+              type: 'category',
+              // prettier-ignore
+              data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct']
+            }],
+            yAxis: [{
+              name: '储量(吨)',
+              type: 'value'
+            }],
+            series: [{
+                name: '支出',
+                type: 'bar',
+                right: 0,
+                // label: {
+                //   show: true,
+                //   position: 'inside'
+                // },
+                 label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  6.0, 60.9, 90.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0
+                ],
+                color: ['#5878E8 '],
+                formatter: '{value} 元',
+
+              },
+              {
+                name: '收入',
+                type: 'bar',
+                right: 20,
+                label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  102.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8
+                ],
+                color: ['#FF9F24'],
+                formatter: '{value} 元',
+              }
+            ]
+          },
+          myChart7.setOption(option)
+      },
+      getData(count) {
+        // prettier-ignore
+        const nameList = [
+          '支出', '收入'
+        ];
+        const legendData = [];
+        const seriesData = [];
+        for (var i = 0; i < count; i++) {
+          var name = nameList[i]
+          // Math.random() > 0.65 ?  makeWord(4, 1) + '·' + makeWord(3, 0) :  makeWord(2, 1);
+          legendData.push(name);
+          seriesData.push({
+            name: name,
+            value: Math.round(Math.random() * 100000)
+          });
+        }
+
+        return {
+          legendData: legendData,
+          seriesData: seriesData
+        };
+
+        // function makeWord(max, min) {
+        //   debugger
+        //   const nameLen = Math.ceil(Math.random() * max + min);
+        //   const name = [];
+        //   for (var i = 0; i < nameLen; i++) {
+        //     name.push(nameList[Math.round(Math.random() * nameList.length - 1)]);
+        //   }
+        //   return name.join('');
+        // }
+
+      }
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .container {
+    background: #E8ECF6;
+  }
+
+  .center {
+    margin: 0 auto;
+    background: #ffffff;
+    height: calc(100vh - 13vh);
+    border-radius: 4px;
+    margin-top: 10px;
+    overflow:scroll;
+  }
+
+  .row_top {
+    // background: #F6F7FC;
+    border-radius: 4px;
+
+    .bg-left {
+      padding-left: 30px;
+    }
+
+  .bg-right {
+      padding-right: 10px;
+      text-align: right;
+      height:60px;
+      padding-top:15px;
+    }
+
+    .title {
+      position: relative;
+    }
+
+    .title::before {
+      content: '';
+      display: inline-block;
+      width: 5px;
+      height: 30px;
+      background: #5473e8;
+      position: absolute;
+      left: 0;
+    }
+  }
+
+  .datascreen {
+    // margin-top: 10px;
+    width: 500px;
+    height: 60px;
+    line-height: 60px;
+    margin-left: 30px;
+
+  }
+
+  .chart_css {
+    display: flex;
+    height: 410px;
+
+    .table {
+      width: 70%;
+      height: 410px;
+    }
+
+    .makeWord_css {
+      width: 30%;
+      height: 410px;
+      margin-left: 30px;
+    }
+  }
+
+  .table_css {
+
+    text-align:center;
+
+  }
+  /deep/.el-form{
+    width:90%;
+    margin:0 auto;
+  }
+  /deep/.el-form-item {
+    width: 50%;
+}
+</style>

+ 439 - 0
src/views/profitable/expensemanagement.vue

@@ -0,0 +1,439 @@
+//费用管理
+<template>
+  <div class="container">
+    <!-- <el-row class="row_top">
+      <el-col :span="12">
+        <h2 class="bg-left title">盈收概览</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right"></el-col>
+    </el-row> -->
+    <div class="center">
+      <el-row class='row_top'>
+      <el-col :span="12">
+        <div class="datascreen">
+         <div style='align-items:center;' class='flex'>
+            <div :class='{"forbidden":forbidden==true}' @click='minus'><i class="el-icon-arrow-left"></i></div>
+            <ws-select v-model="year" placeholder="" @change="yearChange" :value="searchType" style="margin: 0 10px">
+              <ws-option v-for="item in yearList" :key="item.value" :label="item.value" :value="item.value"
+                style="color: #8890b1" />
+            </ws-select>
+            <div :class='{"forbidden":forbidden1==true}' @click='add'><i class="el-icon-arrow-right"></i></div>
+          </div>
+        
+      </div>
+      </el-col>
+      <el-col :span="12" class="bg-right"><el-button type='primary' @click='detail'>费用详情</el-button></el-col>
+    </el-row>
+      <div class="chart_css">
+        <div class="table">
+          <div ref="myEchart7" style="height: 410px;"></div>
+        </div>
+        <div class="makeWord_css">
+          <!-- <div ref="myEchart6" style="height: 410px"></div> -->
+        </div>
+      </div>
+        <div class='title' style='margin-bottom:10px;'>费用收支一览表</div>
+      <div class="table_css">
+        <div style='width:90%;margin:10px auto;'>
+          <div style='width:15%;'><el-date-picker v-model="value" type="daterange" align="right" unlink-panels range-separator="至"
+          start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions"></el-date-picker></div>
+        </div>
+        <ws-form>
+          <ws-info-table>
+          <ws-form-item label="合同费用收入(万元)" span="1" prop="contractNo" class="readonly">
+            
+          </ws-form-item>
+          <ws-form-item label="库点费用收入(万元)" span="1" prop="settlementMethod">
+          </ws-form-item>
+          <ws-form-item label="合同费用支出(万元)" span="1" prop="contractNo" class="readonly">
+            
+          </ws-form-item>
+          <ws-form-item label="库点费用支出(万元)" span="1" prop="settlementMethod">
+            
+          </ws-form-item>
+          <ws-form-item label="经营性收入(万元)" span="1" prop="contractNo" class="readonly">
+            
+          </ws-form-item>
+          <ws-form-item label="贸易利润(万元)" span="1" prop="settlementMethod">
+            
+          </ws-form-item>
+          <ws-form-item label="经营性支出(万元)" span="1" prop="contractNo" class="readonly">
+            
+          </ws-form-item>
+          <ws-form-item label="净利润(万元)" span="1" prop="settlementMethod">
+            
+          </ws-form-item>
+        </ws-info-table>
+        </ws-form>
+        
+        
+        <!-- <el-table :data="valueData" style="width: 100%">
+          <el-table-column prop="date" label="货名/货值" min-width="110">
+            <div slot-scope="scope">
+              <span v-if="scope.$index == 0">期初货值(元)</span>
+              <span v-if="scope.$index == 1">期末货值(元)</span>
+            </div>
+
+          </el-table-column>
+          <el-table-column prop="date" label="玉米"></el-table-column>
+          <el-table-column prop="date" label="玉米"></el-table-column>
+          <el-table-column prop="date" label="玉米"></el-table-column>
+          <el-table-column prop="date" label="货名"></el-table-column>
+          <el-table-column prop="date" label="货名"></el-table-column>
+          <el-table-column prop="date" label="货名"></el-table-column>
+          <el-table-column prop="date" label="货名"></el-table-column>
+          <el-table-column prop="date" label="货名"></el-table-column>
+          <el-table-column prop="date" label="货名"></el-table-column>
+          <el-table-column prop="date" label="合计" min-width="130">
+            <div slot-scope="scope">
+              <span v-if="scope.$index == 0">合计:</span>
+              <span v-if="scope.$index == 1">合计:1000000000</span>
+            </div>
+          </el-table-column>
+        </el-table> -->
+
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+  import {} from '@/model/profitable/index'
+  export default {
+    components: {},
+    data() {
+      return {
+        value: [],
+        profitList: [{
+          name: "玉米",
+          count: 2000,
+        }],
+        deptBudgetList:{},
+        start: 2021,
+        yearList:[],
+        year: '',
+        makeWordData: {},
+        forbidden:false,
+        forbidden1:false,
+        valueData: [{
+            date: 10
+          },
+          {
+            date: 20
+          }
+        ], //货值
+
+      }
+    },
+    activated() {
+      this.makeWordData = this.getData(2)
+      this.year = new Date().getFullYear()
+      for (var i = this.start; i <= this.year; i++) {
+        this.yearList.push({
+          value: i
+        })
+      }
+      if (this.year >= new Date().getFullYear()) {
+        this.forbidden1 = true
+      }
+      if (this.year <= this.start) {
+        this.forbidden = true
+      }
+      this.initCharts()
+      this.getPassYearFormatDate()
+      this.getList()
+    },
+    methods: {
+      getList() {
+        // getceshi({
+        //  driverId:'8f1f3c624d7946d79a9d44a4057d969b'
+        // })
+        // .toPromise()
+        // .then((response) => {
+        // debugger
+        // console.log(response)
+        // })
+
+      },
+      minus() {
+
+        if (this.year <= this.start) {
+          this.forbidden = true
+        } else {
+          this.year--
+        }
+      },
+      add() {
+
+        if (this.year >= new Date().getFullYear()) {
+          this.forbidden1 = true
+        } else {
+          this.year++
+        }
+      },
+      detail(){
+        this.$router.push({name:'expensemanagementdetails'})
+      },
+      getPassYearFormatDate() {
+        var nowDate = new Date()
+        var _date = new Date()
+        var year = nowDate.getFullYear()-1
+        var year1 = _date.getFullYear()
+        var month = nowDate.getMonth() + 1
+        var month1 = _date.getMonth() + 1
+        var strDate = nowDate.getDate()
+        var strDate1 = _date.getDate()
+        if (month >= 1 && month <= 9) {
+          month = '0' + month
+        }
+        if (month1 >= 1 && month1 <= 9) {
+          month1 = '0' + month1
+        }
+
+        if (strDate >= 0 && strDate <= 9) {
+          strDate = '0' + strDate
+        }
+        if (strDate1 >= 0 && strDate1 <= 9) {
+          strDate1 = '0' + strDate1
+        }
+        this.startDate = year + '-' + month + '-' + strDate
+        this.endDate = year1 + '-' + month1 + '-' + strDate1
+        this.value = [this.startDate, this.endDate]
+      },
+      pickerOptions() {
+
+      },
+      initCharts() {
+        let app = this;
+        let myChart7 = app.$echarts.init(this.$refs.myEchart7);
+        var option;
+        option = {
+            // title: {
+            //   text: 'Rainfall vs Evaporation',
+            //   subtext: 'Fake Data'
+            // },
+            tooltip: {
+              trigger: 'axis'
+            },
+            legend: {
+              data: ['支出', '收入']
+            },
+            toolbox: {
+              show: true,
+              feature: {
+                dataView: {
+                  show: false,
+                  readOnly: false
+                },
+                magicType: {
+                  show: false,
+                  type: ['line', 'bar']
+                },
+                restore: {
+                  show: false
+                },
+                saveAsImage: {
+                  show: false
+                }
+              }
+            },
+            calculable: true,
+            xAxis: [{
+              name: '种类',
+              type: 'category',
+              // prettier-ignore
+              data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct']
+            }],
+            yAxis: [{
+              name: '储量(吨)',
+              type: 'value'
+            }],
+            series: [{
+                name: '支出',
+                type: 'bar',
+                right: 0,
+                // label: {
+                //   show: true,
+                //   position: 'inside'
+                // },
+                 label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  6.0, 60.9, 90.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0
+                ],
+                color: ['#5878E8 '],
+                formatter: '{value} 元',
+
+              },
+              {
+                name: '收入',
+                type: 'bar',
+                right: 20,
+                label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  102.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8
+                ],
+                color: ['#FF9F24'],
+                formatter: '{value} 元',
+              }
+            ]
+          },
+          myChart7.setOption(option)
+      },
+      getData(count) {
+        // prettier-ignore
+        const nameList = [
+          '支出', '收入'
+        ];
+        const legendData = [];
+        const seriesData = [];
+        for (var i = 0; i < count; i++) {
+          var name = nameList[i]
+          // Math.random() > 0.65 ?  makeWord(4, 1) + '·' + makeWord(3, 0) :  makeWord(2, 1);
+          legendData.push(name);
+          seriesData.push({
+            name: name,
+            value: Math.round(Math.random() * 100000)
+          });
+        }
+
+        return {
+          legendData: legendData,
+          seriesData: seriesData
+        };
+
+        // function makeWord(max, min) {
+        //   debugger
+        //   const nameLen = Math.ceil(Math.random() * max + min);
+        //   const name = [];
+        //   for (var i = 0; i < nameLen; i++) {
+        //     name.push(nameList[Math.round(Math.random() * nameList.length - 1)]);
+        //   }
+        //   return name.join('');
+        // }
+
+      }
+    },
+  }
+</script>
+<style lang="scss" scoped>
+/deep/.ws-info-table{
+  border-left: 1px solid #D8DCE6;
+  border-top: 1px solid #D8DCE6;
+.el-form-item {
+    border-right: 1px solid #D8DCE6;
+    border-bottom: 1px solid #D8DCE6;
+}
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+    background-color: #F6F7FB;
+}
+  .container {
+    background: #E8ECF6;
+  }
+
+  .center {
+    margin: 0 auto;
+    background: #ffffff;
+    height: calc(100vh - 13vh);
+    border-radius: 4px;
+    margin-top: 10px;
+    overflow:scroll;
+  }
+
+  .row_top {
+    // background: #F6F7FC;
+    border-radius: 4px;
+
+    .bg-left {
+      padding-left: 30px;
+    }
+
+  .bg-right {
+      padding-right: 10px;
+      text-align: right;
+      height:60px;
+      padding-top:15px;
+    }
+
+    .title {
+      position: relative;
+    }
+
+    .title::before {
+      content: '';
+      display: inline-block;
+      width: 5px;
+      height: 30px;
+      background: #5473e8;
+      position: absolute;
+      left: 0;
+    }
+  }
+
+  .datascreen {
+    // margin-top: 10px;
+    width: 500px;
+    height: 60px;
+    line-height: 60px;
+    margin-left: 30px;
+
+  }
+
+  .chart_css {
+    display: flex;
+    height: 410px;
+
+    .table {
+      width: 70%;
+      height: 410px;
+    }
+
+    .makeWord_css {
+      width: 30%;
+      height: 410px;
+      margin-left: 30px;
+    }
+  }
+
+  .table_css {
+
+    text-align:center;
+    margin-bottom:10px;
+
+  }
+  /deep/.el-form{
+    width:90%;
+    margin:0 auto;
+  }
+  /deep/.el-form-item {
+    width: 50%;
+}
+.title{
+  background:#F6F7FC;
+  padding:20px 10px;
+  text-align:left;
+  position:relative;
+  font-size:18px;
+}
+.title::before{
+  content:'';
+  display:block;
+  background:#5473E8;
+  width:5px;height:30px;
+  position:absolute;
+  left:0;
+  top:50%;
+  transform: translateY(-50%);
+}
+</style>

+ 369 - 0
src/views/profitable/expensemanagementdetails.vue

@@ -0,0 +1,369 @@
+//合同利润详情
+<template>
+  <div class="container">
+    <el-row class="row_top">
+      <el-col :span="12">
+        <h2 class="bg-left title">费用详情</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right"><el-button class="bg-bottom" type="primary" size="small" @click="returnsales()"><img width="6" height="10"
+            style="vertion-align: bottom; margin-right: 3px" src="../../../public/img/lujing.png" alt="" />返回
+        </el-button></el-col>
+    </el-row>
+    <div class="center">
+      <el-row style='margin-bottom:10px;'>
+        <el-col :span="12">
+          <el-button style="margin-left:10px" @click="typeChange('')" type="primary">导出</el-button>
+        </el-col>
+        <el-col :span="12">
+          <div class="datascreen">
+            <el-date-picker value-format='yyyy-MM-dd' v-model="value" type="daterange" align="right" unlink-panels range-separator="至"
+              start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" class="data_css" @change="changeDate" >
+            </el-date-picker>
+            <el-input placeholder="可按合同名称、买方名称、卖方名称查找" class="input_css" v-model="searchKeyWord"></el-input>
+            <el-button class="find" type="primary" @click="find()"><img width="16" height="16" style="left: -8px;"
+                src="../../../public/img/sousuo.png" alt="" /></el-button>
+          </div>
+        </el-col>
+      </el-row>
+      <el-row style='margin-bottom:10px;'>
+        <el-col :span="18">
+          <el-button style="margin-left:10px" @click="typeChange('')" :type="searchType == ''?'primary':''">全部</el-button>
+          <el-button @click="typeChange(1)" :type="searchType == 1?'primary':''">收入</el-button>
+          <el-button @click="typeChange(2)" :type="searchType == 2?'primary':''">支出</el-button>
+        </el-col>
+        <el-col style='text-align:right;' :span="6">
+          <el-button style="margin-left:10px" @click="cashout('')">请款</el-button>
+          <el-button style="margin-right:10px" @click="receipt(1)" >收款</el-button>
+        </el-col>
+      </el-row>
+      <div class="fromdata">
+        <el-table :data="tableData" stripe style="width: 100%">
+          <el-table-column type="index" label="序号">
+            <template scope="scope">
+              <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+              <span v-else>{{ scope.$index + 1 }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="feeType" label="类型">
+            <template slot-scope="scope">
+              <div v-if='scope.row.feeType==1'>支出</div>
+              <div v-if='scope.row.feeType==2'>收入</div>
+            </template>
+          </el-table-column>
+          <el-table-column prop="purpose" label="用途">
+            <template slot-scope="scope">
+              <div v-if='scope.row.purpose==1'>合同费用<span v-if='scope.row.type==1'>-粮款</span></div>
+              <div v-if='scope.row.purpose==2'>库点费用<span v-if='scope.row.type==1'>-粮款</span></div>
+              <div v-if='scope.row.purpose==3'>经营性费用<span v-if='scope.row.type==1'>-粮款</span></div>
+            </template>
+          </el-table-column>
+          <el-table-column prop="expenseName" label="费用名称"></el-table-column>
+          <el-table-column prop="money" label="费用金额(元)"></el-table-column>
+          <el-table-column prop="expenseRemarks" label="未分配(元)"></el-table-column>
+          <el-table-column prop="expenseRemarks" label="附件">
+              <template slot-scope="scope">
+          <img width="18" height="20" style="vertical-align: text-top; position: relative; top: -1px"
+            src="../../../public/img/fujian.png" @click="fujian(scope.row)" alt="" />
+          <span v-if="scope.row.addressUrlArray != null">
+            {{
+              scope.row.addressUrlArray.length == 0
+                ? ''
+                : scope.row.addressUrlArray.length
+            }}
+          </span>
+        </template>
+          </el-table-column>
+          <el-table-column prop="handler" label="经办人"></el-table-column>
+          <el-table-column prop="expenseRemarks" label="发起日期"></el-table-column>
+          <el-table-column prop="status" label="费用状态">
+            <template slot-scope="scope">
+              <span v-if='scope.row.approveStatus'>{{scope.row.approveStatus}}</span><span v-else>{{scope.row.status}}</span>
+              <i @click="handlerecord(scope.row)" class="el-icon-s-claim"></i>
+            </template>
+          </el-table-column>
+          <el-table-column prop="address" label="操作" width="200">
+            <template slot-scope="scope">
+              <el-button @click="look(1)" type="primary">查看</el-button>
+              <el-button @click="shoukuanqueren(1)" type="primary">确认</el-button>
+              <el-button v-if='scope.row.status=="待确认"' @click="accomplish(1)" type="primary">完成</el-button>
+              <el-button v-if='scope.row.status=="已驳回"' @click="edit(1)" type="primary">编辑</el-button>
+              <el-button @click="allot(1)" type="primary">分配</el-button>
+              <el-button v-if='scope.row.status=="已驳回"' @click="del(0,scope.row)" type="primary">删除</el-button>
+              <el-button @click="aduit(1)" type="primary">审核</el-button>
+              <el-button @click="payment(1)" type="primary">付款</el-button>
+            </template>
+          </el-table-column>
+          <el-table-column prop="expenseRemarks" label="分配状态"></el-table-column>
+          <el-table-column prop="address" label="分配相关" width="200">
+            <template slot-scope="scope">
+              <el-button @click="allotaduit(1)" type="primary">确认</el-button>
+              <el-button @click="allot(1)" type="primary">编辑</el-button>
+              <el-button @click="del(1,scope.row)" type="primary">删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+        style="text-align:center" :page-size="deptCircularPage.pageSize"
+        layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal">
+      </el-pagination>
+    </div>diann1
+    <el-dialog width='50%' :visible.sync="dialogVisible1" title="审核记录">
+      <div v-for="item in recordList">
+        <div style='width:100%;justify-content: space-between;' class='flex'>
+          <div style='width:33.333%;text-align:center;'>{{item.operateUser}}</div>
+          <div style='width:33.333%;text-align:center;'>{{item.dealMsg}}</div>
+          <div style='width:33.333%;text-align:center;'>{{item.createDate}}</div>
+        </div>
+        <div style='width:100%;text-align:center;'>{{item.verifyRemark}}</div>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+<script>
+  import {
+    getInOutDetailed
+  } from '@/model/profitable/index'
+  export default {
+    components: {},
+    data() {
+      return {
+        value: "",
+        tableData: [],
+        deptBudgetTotal: 0,
+        currentPage: 1,
+        pageSize: 10,
+        recordList:[],
+        dialogVisible1:false,
+        deptCircularPage: {},
+        searchType:"",
+        searchKeyWord:"",
+        startDate:"",
+        endDate:"",
+        outtotal:0,
+        intotal:0,
+      }
+    },
+    activated() {
+         this.getPassYearFormatDate()
+      this.getList()
+    },
+    methods: {
+      handlerecord(row){
+        billoperatehis({id: row.id}).toPromise()
+                .then((response) => {
+                  this.recordList=response
+                  this.dialogVisible1=true
+                }).catch((response) => {})
+      },
+      
+      look(row){
+        
+      },
+      del(status,row){
+        var title=''
+          if(status==1){
+            title='确定删除分配信息?'
+          }else{
+            title='确定删除请款信息?'
+          }
+           this.$confirm(title, '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+          })
+          .then(() => {})
+      },
+      accomplish(row){
+          this.$confirm('尚有未分配的金额,是否确认不在分配?', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+          })
+          .then(() => {})
+      },
+      typeChange(num){
+        this.searchType = num
+        this.getList()
+      },
+      edit(){
+        this.$router.push({name:'expensemanagentedit'})
+      },
+      shoukuanqueren(){
+        this.$router.push({name:'receiptaduit'})
+      },
+      aduit(){
+        this.$router.push({name:'cashoutaduit'})
+      },
+      allotaduit(){
+        this.$router.push({name:'expenseallotaduit'})
+      },
+      payment(){
+        this.$router.push({name:'payment'})
+      },
+      allot(){
+        this.$router.push({name:'expenseallot'})
+      },
+      cashout(){
+        this.$router.push({name:'cashout'})
+      },
+      receipt(){
+        this.$router.push({name:'receipt'})
+      },
+      inventory(){
+        this.$router.push({name:'contractinventory'})
+      },
+      getPassYearFormatDate () {
+          var nowDate = new Date()
+          var _date = new Date()
+          nowDate.setTime(nowDate.getTime()-24*60*60*1000*30)
+          var year = nowDate.getFullYear()
+          var year1 = _date.getFullYear()
+          var month = nowDate.getMonth() + 1
+          var month1 = _date.getMonth() + 1
+          var strDate = nowDate.getDate()
+          var strDate1 = _date.getDate()
+          if (month >= 1 && month <= 9) {
+            month = '0' + month
+          }
+           if (month1 >= 1 && month1 <= 9) {
+            month1 = '0' + month1
+          }
+        
+          if (strDate >= 0 && strDate <= 9) {
+            strDate = '0' + strDate
+          }
+           if (strDate1 >= 0 && strDate1 <= 9) {
+            strDate1 = '0' + strDate1
+          }
+          this.startDate = year + '-' + month +'-' + strDate
+          this.endDate = year1 + '-' + month1 +'-' + strDate1
+          this.value=[this.startDate,this.endDate]
+        },
+      getList() {
+         getInOutDetailed({
+            // warehouseType: 1,
+            compId: localStorage.getItem('ws-pf_compId'),
+            startDate:this.startDate,
+            endDate:this.endDate,
+            searchKeyWord:this.searchKeyWord,
+            currentPage: this.currentPage,
+            pageSize:this.pageSize ,
+            searchType:this.searchType
+          })
+          .toPromise()
+          .then(response => {
+            this.tableData = response.records
+            if(this.tableData.length > 0){
+              this.intotal = Number(this.tableData[0].inContractMoney) + Number(this.tableData[0].inWarehouseMoney) + Number(this.tableData[0].inManageMoney)
+            this.outtotal = Number(this.tableData[0].outContractMoney) + Number(this.tableData[0].outWarehouseMoney) + Number(this.tableData[0].outManageMoney)
+            }
+            
+           this.deptBudgetTotal = response.total
+          })
+      },
+      changeDate(){
+        if(this.value){
+          this.startDate = this.value[0]
+          this.endDate = this.value[1]
+        }
+        this.getList()
+      },
+      pickerOptions() {},
+      find() {
+        this.getList()
+
+      },
+      handleSizeChange(val) {
+        console.log(`每页 ${val} 条`)
+        this.pageSize = val
+        this.getList()
+      },
+      handleCurrentChange(val) {
+        this.currentPage = val
+        console.log(`当前页: ${val}`)
+        this.getList()
+      },
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .container {
+    background: #E8ECF6;
+  }
+
+  .center {
+    margin: 0 auto;
+    background: #ffffff;
+    height: calc(100vh - 13vh);
+    border-radius: 4px;
+    padding: 20px 0;
+
+    /deep/.el-table td,
+    /deep/.el-table th {
+      text-align: center;
+    }
+  }
+
+  .row_top {
+    background: #F6F7FC;
+    border-radius: 4px;
+    margin-bottom: 10px;
+
+    .bg-left {
+      padding-left: 30px;
+    }
+
+    .bg-right {
+      padding-right: 10px;
+      text-align: right;
+    }
+
+    .title {
+      position: relative;
+    }
+
+    .title::before {
+      content: '';
+      display: inline-block;
+      width: 5px;
+      height: 30px;
+      background: #5473e8;
+      position: absolute;
+      left: 0;
+    }
+  }
+
+  .datascreen {
+    display: flex;
+
+    .data_css {
+      width: 40%;
+    }
+
+    .input_css {
+      width: 50%;
+      margin: 0 10px;
+    }
+
+    .find {
+      margin-right: 10px;
+    }
+  }
+
+  .fromdata {
+    margin: 20px 0;
+    overflow-y: scroll;
+    height: 546px;
+  }
+  .top_info{
+    margin: 10px 0 0 10px;
+    min-width: 712px;
+    .info_css{
+      margin-right: 20px;
+    }
+  }
+  .bg-right{
+    padding-top:15px;
+  }
+</style>

+ 500 - 0
src/views/profitable/expensemanagentedit.vue

@@ -0,0 +1,500 @@
+//请款
+<template>
+  <div class="container">
+    <el-row class="row_top">
+      <el-col :span="12">
+        <h2 class="bg-left title">请款</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right"><el-button class="bg-bottom" type="primary" size="small" @click="returnsales()"><img width="6" height="10"
+            style="vertion-align: bottom; margin-right: 3px" src="../../../public/img/lujing.png" alt="" />返回
+        </el-button></el-col>
+    </el-row>
+    <div class="center">
+     
+      <div>
+        <ws-form label-position="left"  label-width="140px"><div style='margin:30px 0 30px;'>基本信息</div>
+          <ws-form-item label="用途" span="1" prop="contractNo" class="readonly">
+             <el-radio-group v-model="deptBudgetList.purpose">
+                <el-radio :label="1">合同费用</el-radio>
+                <el-radio :label="2">库点费用</el-radio>
+                <el-radio :label="3">经营性费用</el-radio>
+            </el-radio-group>
+          </ws-form-item>
+          <ws-form-item v-if='deptBudgetList.purpose==1||deptBudgetList.purpose==2' label="类型" span="1" prop="contractNo" class="readonly">
+             <el-radio-group v-model="deptBudgetList.type">
+                <el-radio :label="1">粮款</el-radio>
+                <el-radio :label="2">非粮款</el-radio>
+                <el-radio v-if='deptBudgetList.purpose==1' :label="3">保证金</el-radio>
+            </el-radio-group>
+          </ws-form-item>
+          <ws-form-item v-if='deptBudgetList.purpose==1' label="合同编号" span="1" prop="contractNo" class="readonly">
+            <ws-select v-model="deptBudgetList.contractNo" placeholder="" class="typeselect" @change="selectcontent"
+          :value="searchType">
+          <ws-option v-for="item in contractList" :key="item.contractNo" :label="item.contractNo" :value="item.contractNo"
+            style="color: #8890b1" />
+        </ws-select>
+          </ws-form-item>
+           <ws-form-item v-if='deptBudgetList.purpose==2' label="仓库名称" span="1" prop="contractNo" class="readonly">
+            <ws-select v-model="deptBudgetList.warehouse" placeholder="" class="typeselect" @change="selectwarehouse"
+          :value="searchType">
+          <ws-option v-for="item in contractList" :key="item.contractNo" :label="item.contractNo" :value="item.contractNo"
+            style="color: #8890b1" />
+        </ws-select>
+          </ws-form-item>
+          <ws-form-item label="费用名称" span="1" prop="settlementMethod">
+            <el-input placeholder="输入费用名称,1-15个字" class="input_css" v-model="deptBudgetList.expenseName"></el-input>
+          </ws-form-item>
+          <ws-form-item label="金额(元)" span="1" prop="contractNo" class="readonly">
+            <el-input placeholder="输入请款金额" class="input_css" v-model="deptBudgetList.money"></el-input>
+          </ws-form-item>
+          <ws-form-item label="备注" span="1" prop="settlementMethod">
+            <el-input
+            type="textarea"
+            :rows="2"
+            placeholder="选填,不超过50个字"
+            v-model="deptBudgetList.remark">
+            </el-input>
+          </ws-form-item>
+          <ws-form-item label="附件">
+          <el-upload ref='uploadfiles' :file-list='dataList' action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+            :on-success="handlefujian" :on-remove="handleRemove" class="photo2">
+            <i class="el-icon-plus"></i>
+          </el-upload>
+        </ws-form-item>
+        </ws-form>
+        <div v-if='deptBudgetList.type==2'>费用分配</div>
+        <div v-if='deptBudgetList.type==2' style='margin-bottom:10px;'>
+            <ws-select v-model="mode" placeholder="费用分配方式" class="typeselect" @change="modeselect"
+          :value="searchType">
+          <ws-option v-for="item in modeList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-if='deptBudgetList.purpose==1' v-model="ware" placeholder="费用分配仓库" class="typeselect" @change="selectwareType"
+          :value="searchType">
+          <ws-option v-for="item in wareList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        <ws-select v-if='deptBudgetList.purpose==2' v-model="goods" placeholder="费用分配产品" class="typeselect" @change="selectproductType"
+          :value="searchType">
+          <ws-option v-for="item in goodsList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-model="dates" placeholder="费用分配日期" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in datesList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-model="moneys" placeholder="费用分配金额" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in moneysList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        合计分配:{{amount}}元
+        </div>
+        <el-table v-if='deptBudgetList.type==2' :data="feeDetailsDistributions" style="width: 80%;margin:0 auto;">
+          <el-table-column prop="date" label="所属" min-width="110">
+            <template slot-scope="scope">
+                <ws-select v-if='deptBudgetList.purpose==2' v-model="scope.row.belonging" placeholder="选择仓库或合同" class="typeselect" @change="selectware"
+          :value="searchType">
+          <ws-option v-for="item in warecontractList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        <ws-select v-if='deptBudgetList.purpose==1' v-model="scope.row.belonging" placeholder="选择仓库" class="typeselect" @change="selectware"
+          :value="searchType">
+          <ws-option v-for="item in warehouseList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="日期">
+            <template slot-scope="scope">
+                <ws-date-picker v-model="scope.row.proDate" type="date" placeholder="请选择日期"
+              value-format="yyyy-MM-dd" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="货名">
+              <template slot-scope="scope">
+                <ws-select v-model="scope.row.goodsName" placeholder="选择货名" class="typeselect" @change="goodsNameselect"
+                    :value="searchType">
+                    <ws-option v-for="item in goodsList" :key="item.value" :label="item.value" :value="item.value"
+                        style="color: #8890b1" />
+                </ws-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="库存(吨)"></el-table-column>
+          <el-table-column prop="date" label="分配金额(元)">
+            <template slot-scope="scope">
+                <el-input placeholder="输入费用名称,1-15个字" class="input_css" v-model="scope.row.money"></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column prop="address" label="操作" width="200">
+            <template slot-scope="scope">
+                <img class='add' @click='addlist()' src="../../../public/img/add.png" alt="">
+                <img class='del' @click='dellist(scope.row)' src="../../../public/img/del.png" alt="">
+            </template>
+          </el-table-column>
+        </el-table>
+       <div style='text-align:right;margin-right:30px;'>
+        <el-button class="bg-bottom" type="primary" size="small" @click="submit()">提交
+        </el-button>
+    </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+  import {setexpense,getcontract} from '@/model/profitable/index'
+  export default {
+    components: {},
+    data() {
+      return {
+        value: [],
+        profitList: [{
+          name: "玉米",
+          count: 2000,
+        }],
+        mode:'全部分配',
+        ware:'指定仓库',
+        dates:'固定日期',
+        moneys:'按重量自动分配',
+        goods:'全部货品',
+        amount:0,
+        goodsList:[],
+        warecontractList:[],
+        feeDetailsDistributions:[{proDate:'',weight:'',money:'',warehouse:'',belonging:'',index:0}],
+        deptBudgetList:{purpose:1,type:1},
+        makeWordData: {},
+        warehouseList:[],
+        contractList:[],
+        choosablewareList:[],
+        paymentScreenshot:[],
+        modeList:[{key:1,value:'全部分配'},{key:2,value:'部分分配'},{key:3,value:'暂不分配'}],
+        wareList:[{key:1,value:'指定仓库'},{key:2,value:'全部仓库'}],
+        datesList:[{key:1,value:'固定日期'},{key:2,value:'指定日期'}],
+        moneysList:[{key:1,value:'按重量自动分配'},{key:2,value:'指定分配金额'}],
+        goodsList:[{key:1,value:'全部货品'},{key:2,value:'指定货品'}],
+        valueData: [{
+            date: 10
+          },
+          {
+            date: 20
+          }
+        ], //货值
+
+      }
+
+    },
+    activated() {
+      // this.makeWordData = this.getData(2)
+      // this.initCharts()
+      // this.getPassYearFormatDate()
+      this.getList()
+    },
+    methods: {
+      selectwarehouse(){
+
+      },
+      selectwareType(e){
+        if(e=='全部仓库'){
+          for (let i = 0; i < this.choosablewareList.length; i++) {
+            this.feeDetailsDistributions.push(this.choosablewareList[i])
+            
+          }
+        }
+      },
+      selectproductType(){
+        if(e=='全部产品'){
+
+        }
+      },
+      selectcontent(e){
+
+      },
+      handlefujian(file) {
+        // console.log(file)
+        this.paymentScreenshot.push(file.url)
+        // this.dialogVisible = true
+      },
+      submit(){
+        if(!this.deptBudgetList.contractNo&&this.deptBudgetList.purpose==1){
+          this.$message({
+                message: '合同编号不能为空!',
+                type: 'warning',
+              })
+        }
+        if(!this.deptBudgetList.warehouse&&this.deptBudgetList.purpose==2){
+          this.$message({
+                message: '仓库名称不能为空!',
+                type: 'warning',
+              })
+        }
+        this.deptBudgetList.applUrl=this.paymentScreenshot.toString()
+        setexpense(this.deptBudgetList).toPromise()
+          .then(response => {})
+      },
+      modeselect(e){
+          console.log(e)
+      },selectware(e){
+          console.log(e)
+      },
+      goodsNameselect(e){
+          console.log(e)
+      },
+      addlist(){
+        this.feeDetailsDistributions.push({proDate:'',weight:'',money:'',warehouse:'',belonging:'',index:this.feeDetailsDistributions.length})
+      },
+      dellist(row){
+        if(this.feeDetailsDistributions.length>1){
+          this.feeDetailsDistributions.splice(row.index,1)
+        }
+      },
+      getList() {
+        console.log(1222)
+        getcontract({
+        compId:localStorage.getItem('ws-pf_compId'),
+        })
+        .toPromise()
+        .then((response) => {
+          this.contractList=response
+        })
+
+      },
+      detail(){
+        this.$router.push({name:'contractprofitsdetails'})
+      },
+      getPassYearFormatDate() {
+        var nowDate = new Date()
+        var _date = new Date()
+        nowDate.setTime(nowDate.getTime() - 24 * 60 * 60 * 1000 * 30)
+        var year = nowDate.getFullYear()
+        var year1 = _date.getFullYear()
+        var month = nowDate.getMonth() + 1
+        var month1 = _date.getMonth() + 1
+        var strDate = nowDate.getDate()
+        var strDate1 = _date.getDate()
+        if (month >= 1 && month <= 9) {
+          month = '0' + month
+        }
+        if (month1 >= 1 && month1 <= 9) {
+          month1 = '0' + month1
+        }
+
+        if (strDate >= 0 && strDate <= 9) {
+          strDate = '0' + strDate
+        }
+        if (strDate1 >= 0 && strDate1 <= 9) {
+          strDate1 = '0' + strDate1
+        }
+        this.startDate = year + '-' + month + '-' + strDate
+        this.endDate = year1 + '-' + month1 + '-' + strDate1
+        this.value = [this.startDate, this.endDate]
+      },
+      pickerOptions() {
+
+      },
+      initCharts() {
+        let app = this;
+        let myChart7 = app.$echarts.init(this.$refs.myEchart7);
+        var option;
+        option = {
+            // title: {
+            //   text: 'Rainfall vs Evaporation',
+            //   subtext: 'Fake Data'
+            // },
+            tooltip: {
+              trigger: 'axis'
+            },
+            legend: {
+              data: ['支出', '收入']
+            },
+            toolbox: {
+              show: true,
+              feature: {
+                dataView: {
+                  show: false,
+                  readOnly: false
+                },
+                magicType: {
+                  show: false,
+                  type: ['line', 'bar']
+                },
+                restore: {
+                  show: false
+                },
+                saveAsImage: {
+                  show: false
+                }
+              }
+            },
+            calculable: true,
+            xAxis: [{
+              name: '种类',
+              type: 'category',
+              // prettier-ignore
+              data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct']
+            }],
+            yAxis: [{
+              name: '储量(吨)',
+              type: 'value'
+            }],
+            series: [{
+                name: '支出',
+                type: 'bar',
+                right: 0,
+                // label: {
+                //   show: true,
+                //   position: 'inside'
+                // },
+                 label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  6.0, 60.9, 90.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0
+                ],
+                color: ['#5878E8 '],
+                formatter: '{value} 元',
+
+              },
+              {
+                name: '收入',
+                type: 'bar',
+                right: 20,
+                label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  102.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8
+                ],
+                color: ['#FF9F24'],
+                formatter: '{value} 元',
+              }
+            ]
+          },
+          myChart7.setOption(option)
+      },
+      getData(count) {
+        // prettier-ignore
+        const nameList = [
+          '支出', '收入'
+        ];
+        const legendData = [];
+        const seriesData = [];
+        for (var i = 0; i < count; i++) {
+          var name = nameList[i]
+          // Math.random() > 0.65 ?  makeWord(4, 1) + '·' + makeWord(3, 0) :  makeWord(2, 1);
+          legendData.push(name);
+          seriesData.push({
+            name: name,
+            value: Math.round(Math.random() * 100000)
+          });
+        }
+
+        return {
+          legendData: legendData,
+          seriesData: seriesData
+        };
+
+        // function makeWord(max, min) {
+        //   debugger
+        //   const nameLen = Math.ceil(Math.random() * max + min);
+        //   const name = [];
+        //   for (var i = 0; i < nameLen; i++) {
+        //     name.push(nameList[Math.round(Math.random() * nameList.length - 1)]);
+        //   }
+        //   return name.join('');
+        // }
+
+      }
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .container {
+    background: #E8ECF6;
+  }
+
+  .center {
+    margin: 0 auto;
+    background: #ffffff;
+    height: calc(100vh - 13vh);
+    border-radius: 4px;
+    margin-top: 10px;
+    overflow:scroll;
+  }
+
+  .row_top {
+    // background: #F6F7FC;
+    border-radius: 4px;
+
+    .bg-left {
+      padding-left: 30px;
+    }
+
+  .bg-right {
+      padding-right: 10px;
+      text-align: right;
+      height:60px;
+      padding-top:15px;
+    }
+
+    .title {
+      position: relative;
+    }
+
+    .title::before {
+      content: '';
+      display: inline-block;
+      width: 5px;
+      height: 30px;
+      background: #5473e8;
+      position: absolute;
+      left: 0;
+    }
+  }
+
+  .datascreen {
+    // margin-top: 10px;
+    width: 500px;
+    height: 60px;
+    line-height: 60px;
+    margin-left: 30px;
+
+  }
+
+  .chart_css {
+    display: flex;
+    height: 410px;
+
+    .table {
+      width: 70%;
+      height: 410px;
+    }
+
+    .makeWord_css {
+      width: 30%;
+      height: 410px;
+      margin-left: 30px;
+    }
+  }
+
+  .table_css {
+
+    text-align:center;
+
+  }
+  /deep/.el-form{
+    width:90%;
+    margin:0 auto;
+  }
+  /deep/.el-form-item {
+    width: 50%;
+}
+</style>

+ 285 - 0
src/views/profitable/expensemanagentlook.vue

@@ -0,0 +1,285 @@
+//查看
+<template>
+  <div class="container">
+    <el-row class="row_top">
+      <el-col :span="12">
+        <h2 class="bg-left title">查看收款信息</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right"><el-button class="bg-bottom" type="primary" size="small" @click="returnsales()"><img width="6" height="10"
+            style="vertion-align: bottom; margin-right: 3px" src="../../../public/img/lujing.png" alt="" />返回
+        </el-button></el-col>
+    </el-row>
+    <div class="center">
+     <div>基本信息</div>
+      <div class="table_css">
+        <ws-form>
+          <ws-form-item label="用途" span="1" prop="contractNo" class="readonly">
+             <el-radio-group v-model="radio">
+                <el-radio :label="3">合同费用</el-radio>
+                <el-radio :label="6">库点费用</el-radio>
+                <el-radio :label="9">经营性费用</el-radio>
+            </el-radio-group>
+          </ws-form-item>
+          <ws-form-item label="类型" span="1" prop="contractNo" class="readonly">
+             <el-radio-group v-model="radio">
+                <el-radio :label="3">粮款</el-radio>
+                <el-radio :label="6">非粮款</el-radio>
+                <el-radio :label="9">保证金</el-radio>
+            </el-radio-group>
+          </ws-form-item>
+          <ws-form-item label="合同编号" span="1" prop="contractNo" class="readonly">
+            <ws-select v-model="searchTypeText" placeholder="" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in taskTypeList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+          </ws-form-item>
+          <ws-form-item label="费用名称" span="1" prop="settlementMethod">
+            <el-input placeholder="输入费用名称,1-15个字" class="input_css" v-model="searchKeyWord"></el-input>
+          </ws-form-item>
+          <ws-form-item label="金额" span="1" prop="contractNo" class="readonly">
+            <el-input placeholder="输入请款金额" class="input_css" v-model="searchKeyWord"></el-input>
+          </ws-form-item>
+          <ws-form-item label="备注" span="1" prop="settlementMethod">
+            <el-input
+            type="textarea"
+            :rows="2"
+            placeholder="选填,不超过50个字"
+            v-model="textarea">
+            </el-input>
+          </ws-form-item>
+          <ws-form-item label="附件">
+          <el-upload ref='uploadfiles' :file-list='dataList' action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+            :on-success="handlefujian" :on-remove="handleRemove" class="photo2">
+            <i class="el-icon-plus"></i>
+          </el-upload>
+        </ws-form-item>
+        </ws-form>
+        <div>费用分配</div>
+        <div>
+            <ws-select v-model="searchTypeText" placeholder="" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in taskTypeList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-model="searchTypeText" placeholder="" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in taskTypeList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-model="searchTypeText" placeholder="" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in taskTypeList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-model="searchTypeText" placeholder="" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in taskTypeList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        合计分配:1000元
+        </div>
+        <el-table :data="valueData" style="width: 100%">
+          <el-table-column prop="date" label="所属" min-width="110">
+            <template slot-scope="scope">
+                <ws-select v-model="searchTypeText" placeholder="选择仓库或合同" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in taskTypeList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="日期">
+            <template slot-scope="scope">
+                <ws-date-picker v-model="deptBudgetList" type="date" placeholder="请选择交货日期(止)"
+              value-format="yyyy-MM-dd" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="货名">
+              <template slot-scope="scope">
+                <ws-select v-model="searchTypeText" placeholder="选择仓库或合同" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in taskTypeList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="库存(吨)"></el-table-column>
+          <el-table-column prop="date" label="分配金额(元)">
+            <template slot-scope="scope">
+                <el-input placeholder="输入费用名称,1-15个字" class="input_css" v-model="searchKeyWord"></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column prop="address" label="操作" width="200">
+            <template slot-scope="scope">
+              <el-button @click="inventory(1)" type="primary">库存</el-button>
+              <el-button @click="typeChange(1)" type="primary">费用</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+  import {expenseLook} from '@/model/profitable/index'
+  export default {
+    components: {},
+    data() {
+      return {
+        value: [],
+        profitList: [{
+          name: "玉米",
+          count: 2000,
+        }],
+        deptBudgetList:{},
+        makeWordData: {},
+        valueData: [{
+            date: 10
+          },
+          {
+            date: 20
+          }
+        ], //货值
+
+      }
+    },
+    activated() {
+      this.getList()
+    },
+    methods: {
+      getList() {
+        expenseLook({
+         id:this.id
+        })
+        .toPromise()
+        .then((response) => {
+          this.deptBudgetList=response
+        })
+
+      },
+      detail(){
+        this.$router.push({name:'contractprofitsdetails'})
+      },
+     
+      pickerOptions() {
+
+      },
+      getData(count) {
+        // prettier-ignore
+        const nameList = [
+          '支出', '收入'
+        ];
+        const legendData = [];
+        const seriesData = [];
+        for (var i = 0; i < count; i++) {
+          var name = nameList[i]
+          // Math.random() > 0.65 ?  makeWord(4, 1) + '·' + makeWord(3, 0) :  makeWord(2, 1);
+          legendData.push(name);
+          seriesData.push({
+            name: name,
+            value: Math.round(Math.random() * 100000)
+          });
+        }
+
+        return {
+          legendData: legendData,
+          seriesData: seriesData
+        };
+
+        // function makeWord(max, min) {
+        //   debugger
+        //   const nameLen = Math.ceil(Math.random() * max + min);
+        //   const name = [];
+        //   for (var i = 0; i < nameLen; i++) {
+        //     name.push(nameList[Math.round(Math.random() * nameList.length - 1)]);
+        //   }
+        //   return name.join('');
+        // }
+
+      }
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .container {
+    background: #E8ECF6;
+  }
+
+  .center {
+    margin: 0 auto;
+    background: #ffffff;
+    height: calc(100vh - 13vh);
+    border-radius: 4px;
+    margin-top: 10px;
+  }
+
+  .row_top {
+    // background: #F6F7FC;
+    border-radius: 4px;
+
+    .bg-left {
+      padding-left: 30px;
+    }
+
+  .bg-right {
+      padding-right: 10px;
+      text-align: right;
+      height:60px;
+      padding-top:15px;
+    }
+
+    .title {
+      position: relative;
+    }
+
+    .title::before {
+      content: '';
+      display: inline-block;
+      width: 5px;
+      height: 30px;
+      background: #5473e8;
+      position: absolute;
+      left: 0;
+    }
+  }
+
+  .datascreen {
+    // margin-top: 10px;
+    width: 500px;
+    height: 60px;
+    line-height: 60px;
+    margin-left: 30px;
+
+  }
+
+  .chart_css {
+    display: flex;
+    height: 410px;
+
+    .table {
+      width: 70%;
+      height: 410px;
+    }
+
+    .makeWord_css {
+      width: 30%;
+      height: 410px;
+      margin-left: 30px;
+    }
+  }
+
+  .table_css {
+
+    text-align:center;
+
+  }
+  /deep/.el-form{
+    width:90%;
+    margin:0 auto;
+  }
+  /deep/.el-form-item {
+    width: 50%;
+}
+</style>

+ 354 - 0
src/views/profitable/payment.vue

@@ -0,0 +1,354 @@
+//请款
+<template>
+  <div class="container">
+    <el-row class="row_top">
+      <el-col :span="12">
+        <h2 class="bg-left title">请款</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right"><el-button class="bg-bottom" type="primary" size="small" @click="returnsales()"><img width="6" height="10"
+            style="vertion-align: bottom; margin-right: 3px" src="../../../public/img/lujing.png" alt="" />返回
+        </el-button></el-col>
+    </el-row>
+    <div class="center">
+     <div>基本信息</div>
+      <div class="table_css">
+        <ws-form>
+             <el-radio-group v-model="deptBudgetList.purpose">
+                <el-radio :label="1">合同费用</el-radio>
+                <el-radio :label="2">库点费用</el-radio>
+                <el-radio :label="3">经营性费用</el-radio>
+            </el-radio-group>
+          </ws-form-item>
+          <ws-form-item v-if='deptBudgetList.purpose==1||deptBudgetList.purpose==2' label="用途" span="1" prop="contractNo" class="readonly">
+             <el-radio-group v-model="deptBudgetList.type">
+                <el-radio :label="1">粮款</el-radio>
+                <el-radio :label="2">非粮款</el-radio>
+                <el-radio v-if='deptBudgetList.purpose==1' :label="3">保证金</el-radio>
+            </el-radio-group>
+          </ws-form-item>
+          <ws-form-item label="合同编号" span="1" prop="contractNo" class="readonly">
+            <ws-select v-model="deptBudgetList.contractNo" placeholder="" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in taskTypeList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+          </ws-form-item>
+          <ws-form-item label="费用名称" span="1" prop="settlementMethod">
+            <el-input placeholder="输入费用名称,1-15个字" class="input_css" v-model="deptBudgetList.expenseName"></el-input>
+          </ws-form-item>
+          <ws-form-item label="金额" span="1" prop="contractNo" class="readonly">
+            <el-input placeholder="输入请款金额" class="input_css" v-model="deptBudgetList.money"></el-input>
+          </ws-form-item>
+          <ws-form-item label="备注" span="1" prop="settlementMethod">
+            <el-input
+            type="textarea"
+            :rows="2"
+            placeholder="选填,不超过50个字"
+            v-model="deptBudgetList.remark">
+            </el-input>
+          </ws-form-item>
+          <ws-form-item label="附件">
+          <el-upload ref='uploadfiles' :file-list='dataList' action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+            :on-success="handlefujian" :on-remove="handleRemove" class="photo2">
+            <i class="el-icon-plus"></i>
+          </el-upload>
+        </ws-form-item>
+        </ws-form>
+         <div style='text-align:right;margin-right:30px;'>
+            <el-button class="bg-bottom" type="primary" size="small" @click="submit()">提交
+            </el-button>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+  import {} from '@/model/profitable/index'
+  export default {
+    components: {},
+    data() {
+      return {
+        value: [],
+        profitList: [{
+          name: "玉米",
+          count: 2000,
+        }],
+        deptBudgetList:{},
+        makeWordData: {},
+        valueData: [{
+            date: 10
+          },
+          {
+            date: 20
+          }
+        ], //货值
+
+      }
+    },
+    activated() {
+      this.makeWordData = this.getData(2)
+      this.initCharts()
+      this.getPassYearFormatDate()
+      this.getList()
+    },
+    methods: {
+      submit(){
+        this.$confirm('确认通过请款信息?', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+          })
+          .then(() => {
+            expenseshougou().toPromise()
+          .then(response => {})
+          })
+      },
+      getList() {
+        // getceshi({
+        //  driverId:'8f1f3c624d7946d79a9d44a4057d969b'
+        // })
+        // .toPromise()
+        // .then((response) => {
+        // debugger
+        // console.log(response)
+        // })
+
+      },
+      detail(){
+        this.$router.push({name:'contractprofitsdetails'})
+      },
+      getPassYearFormatDate() {
+        var nowDate = new Date()
+        var _date = new Date()
+        nowDate.setTime(nowDate.getTime() - 24 * 60 * 60 * 1000 * 30)
+        var year = nowDate.getFullYear()
+        var year1 = _date.getFullYear()
+        var month = nowDate.getMonth() + 1
+        var month1 = _date.getMonth() + 1
+        var strDate = nowDate.getDate()
+        var strDate1 = _date.getDate()
+        if (month >= 1 && month <= 9) {
+          month = '0' + month
+        }
+        if (month1 >= 1 && month1 <= 9) {
+          month1 = '0' + month1
+        }
+
+        if (strDate >= 0 && strDate <= 9) {
+          strDate = '0' + strDate
+        }
+        if (strDate1 >= 0 && strDate1 <= 9) {
+          strDate1 = '0' + strDate1
+        }
+        this.startDate = year + '-' + month + '-' + strDate
+        this.endDate = year1 + '-' + month1 + '-' + strDate1
+        this.value = [this.startDate, this.endDate]
+      },
+      pickerOptions() {
+
+      },
+      initCharts() {
+        let app = this;
+        let myChart7 = app.$echarts.init(this.$refs.myEchart7);
+        var option;
+        option = {
+            // title: {
+            //   text: 'Rainfall vs Evaporation',
+            //   subtext: 'Fake Data'
+            // },
+            tooltip: {
+              trigger: 'axis'
+            },
+            legend: {
+              data: ['支出', '收入']
+            },
+            toolbox: {
+              show: true,
+              feature: {
+                dataView: {
+                  show: false,
+                  readOnly: false
+                },
+                magicType: {
+                  show: false,
+                  type: ['line', 'bar']
+                },
+                restore: {
+                  show: false
+                },
+                saveAsImage: {
+                  show: false
+                }
+              }
+            },
+            calculable: true,
+            xAxis: [{
+              name: '种类',
+              type: 'category',
+              // prettier-ignore
+              data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct']
+            }],
+            yAxis: [{
+              name: '储量(吨)',
+              type: 'value'
+            }],
+            series: [{
+                name: '支出',
+                type: 'bar',
+                right: 0,
+                // label: {
+                //   show: true,
+                //   position: 'inside'
+                // },
+                 label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  6.0, 60.9, 90.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0
+                ],
+                color: ['#5878E8 '],
+                formatter: '{value} 元',
+
+              },
+              {
+                name: '收入',
+                type: 'bar',
+                right: 20,
+                label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  102.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8
+                ],
+                color: ['#FF9F24'],
+                formatter: '{value} 元',
+              }
+            ]
+          },
+          myChart7.setOption(option)
+      },
+      getData(count) {
+        // prettier-ignore
+        const nameList = [
+          '支出', '收入'
+        ];
+        const legendData = [];
+        const seriesData = [];
+        for (var i = 0; i < count; i++) {
+          var name = nameList[i]
+          // Math.random() > 0.65 ?  makeWord(4, 1) + '·' + makeWord(3, 0) :  makeWord(2, 1);
+          legendData.push(name);
+          seriesData.push({
+            name: name,
+            value: Math.round(Math.random() * 100000)
+          });
+        }
+
+        return {
+          legendData: legendData,
+          seriesData: seriesData
+        };
+
+        // function makeWord(max, min) {
+        //   debugger
+        //   const nameLen = Math.ceil(Math.random() * max + min);
+        //   const name = [];
+        //   for (var i = 0; i < nameLen; i++) {
+        //     name.push(nameList[Math.round(Math.random() * nameList.length - 1)]);
+        //   }
+        //   return name.join('');
+        // }
+
+      }
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .container {
+    background: #E8ECF6;
+  }
+
+  .center {
+    margin: 0 auto;
+    background: #ffffff;
+    height: calc(100vh - 13vh);
+    border-radius: 4px;
+    margin-top: 10px;
+  }
+
+  .row_top {
+    // background: #F6F7FC;
+    border-radius: 4px;
+
+    .bg-left {
+      padding-left: 30px;
+    }
+
+  .bg-right {
+      padding-right: 10px;
+      text-align: right;
+      height:60px;
+      padding-top:15px;
+    }
+
+    .title {
+      position: relative;
+    }
+
+    .title::before {
+      content: '';
+      display: inline-block;
+      width: 5px;
+      height: 30px;
+      background: #5473e8;
+      position: absolute;
+      left: 0;
+    }
+  }
+
+  .datascreen {
+    // margin-top: 10px;
+    width: 500px;
+    height: 60px;
+    line-height: 60px;
+    margin-left: 30px;
+
+  }
+
+  .chart_css {
+    display: flex;
+    height: 410px;
+
+    .table {
+      width: 70%;
+      height: 410px;
+    }
+
+    .makeWord_css {
+      width: 30%;
+      height: 410px;
+      margin-left: 30px;
+    }
+  }
+
+  .table_css {
+
+    text-align:center;
+
+  }
+  /deep/.el-form{
+    width:90%;
+    margin:0 auto;
+  }
+  /deep/.el-form-item {
+    width: 50%;
+}
+</style>

+ 442 - 0
src/views/profitable/receipt.vue

@@ -0,0 +1,442 @@
+//收款
+<template>
+  <div class="container">
+    <el-row class="row_top">
+      <el-col :span="12">
+        <h2 class="bg-left title">收款</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right"><el-button class="bg-bottom" type="primary" size="small" @click="returnsales()"><img width="6" height="10"
+            style="vertion-align: bottom; margin-right: 3px" src="../../../public/img/lujing.png" alt="" />返回
+        </el-button></el-col>
+    </el-row>
+    <div class="center">
+      <div class="table_css">
+        <ws-form><div>基本信息</div>
+          <ws-form-item label="用途" span="1" prop="contractNo" class="readonly">
+             <el-radio-group v-model="deptBudgetList.purpose">
+                <el-radio :label="1">合同费用</el-radio>
+                <el-radio :label="2">库点费用</el-radio>
+                <el-radio :label="3">经营性费用</el-radio>
+            </el-radio-group>
+          </ws-form-item>
+          <ws-form-item v-if='deptBudgetList.purpose==1||deptBudgetList.purpose==2' label="用途" span="1" prop="contractNo" class="readonly">
+             <el-radio-group v-model="deptBudgetList.type">
+                <el-radio :label="1">粮款</el-radio>
+                <el-radio :label="2">非粮款</el-radio>
+                <el-radio v-if='deptBudgetList.purpose==1' :label="3">保证金</el-radio>
+            </el-radio-group>
+          </ws-form-item>
+          <ws-form-item label="合同编号" span="1" prop="contractNo" class="readonly">
+            <ws-select v-model="deptBudgetList.contractNo" placeholder="" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in taskTypeList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+          </ws-form-item>
+          <ws-form-item label="费用名称" span="1" prop="settlementMethod">
+            <el-input placeholder="输入费用名称,1-15个字" class="input_css" v-model="deptBudgetList.expenseName"></el-input>
+          </ws-form-item>
+          <ws-form-item label="金额" span="1" prop="contractNo" class="readonly">
+            <el-input placeholder="输入请款金额" class="input_css" v-model="deptBudgetList.money"></el-input>
+          </ws-form-item>
+          <ws-form-item label="备注" span="1" prop="settlementMethod">
+            <el-input
+            type="textarea"
+            :rows="2"
+            placeholder="选填,不超过50个字"
+            v-model="deptBudgetList.remark">
+            </el-input>
+          </ws-form-item>
+          <ws-form-item label="附件">
+          <el-upload ref='uploadfiles' :file-list='dataList' action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+            :on-success="handlefujian" :on-remove="handleRemove" class="photo2">
+            <i class="el-icon-plus"></i>
+          </el-upload>
+        </ws-form-item>
+        </ws-form>
+        <div v-if='deptBudgetList.type==1'>费用分配</div>
+        <div v-if='deptBudgetList.type==1' style='margin-bottom:10px;'>
+            <ws-select v-model="mode" placeholder="费用分配方式" class="typeselect" @change="modeselect"
+          :value="searchType">
+          <ws-option v-for="item in modeList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-if='deptBudgetList.purpose==1' v-model="ware" placeholder="费用分配仓库" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in wareList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        <ws-select v-if='deptBudgetList.purpose==2' v-model="goods" placeholder="费用分配产品" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in goodsList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-model="dates" placeholder="费用分配日期" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in datesList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-model="moneys" placeholder="费用分配金额" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in moneysList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        合计分配:{{amount}}元
+        </div>
+        <el-table :data="feeDetailsDistributions" style="width: 80%;margin:0 auto;">
+          <el-table-column prop="date" label="所属" min-width="110">
+            <template slot-scope="scope">
+                <ws-select v-if='deptBudgetList.purpose==2' v-model="scope.row.belonging" placeholder="选择仓库或合同" class="typeselect" @change="selectware"
+          :value="searchType">
+          <ws-option v-for="item in warecontractList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        <ws-select v-if='deptBudgetList.purpose==1' v-model="scope.row.belonging" placeholder="选择仓库" class="typeselect" @change="selectware"
+          :value="searchType">
+          <ws-option v-for="item in warehouseList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="日期">
+            <template slot-scope="scope">
+                <ws-date-picker v-model="scope.row.proDate" type="date" placeholder="请选择日期"
+              value-format="yyyy-MM-dd" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="货名">
+              <template slot-scope="scope">
+                <ws-select v-model="scope.row.goodsName" placeholder="选择货名" class="typeselect" @change="goodsNameselect"
+                    :value="searchType">
+                    <ws-option v-for="item in goodsList" :key="item.value" :label="item.value" :value="item.value"
+                        style="color: #8890b1" />
+                </ws-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="库存(吨)"></el-table-column>
+          <el-table-column prop="date" label="分配金额(元)">
+            <template slot-scope="scope">
+                <el-input placeholder="输入费用名称,1-15个字" class="input_css" v-model="scope.row.money"></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column prop="address" label="操作" width="200">
+            <template slot-scope="scope">
+                <img class='add' @click='addlist()' src="../../../public/img/add.png" alt="">
+                <img class='del' @click='dellist(scope.row)' src="../../../public/img/del.png" alt="">
+            </template>
+          </el-table-column>
+        </el-table>
+
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+  import {} from '@/model/profitable/index'
+  export default {
+    components: {},
+    data() {
+      return {
+        value: [],
+        profitList: [{
+          name: "玉米",
+          count: 2000,
+        }],
+        mode:'全部分配',
+        ware:'指定仓库',
+        dates:'固定日期',
+        moneys:'按重量自动分配',
+        goods:'全部货品',
+        amount:0,
+        goodsList:[],
+        warecontractList:[],
+        feeDetailsDistributions:[{proDate:'',weight:'',money:'',warehouse:'',belonging:'',index:0}],
+        deptBudgetList:{purpose:1,type:1},
+        makeWordData: {},
+        warehouseList:[],
+        modeList:[{key:1,value:'全部分配'},{key:2,value:'部分分配'},{key:3,value:'暂不分配'}],
+        wareList:[{key:1,value:'指定仓库'},{key:2,value:'全部仓库'}],
+        datesList:[{key:1,value:'固定日期'},{key:2,value:'指定日期'}],
+        moneysList:[{key:1,value:'按重量自动分配'},{key:2,value:'指定分配金额'}],
+        goodsList:[{key:1,value:'全部货品'},{key:2,value:'指定货品'}],
+        valueData: [{
+            date: 10
+          },
+          {
+            date: 20
+          }
+        ], //货值
+
+      }
+    },
+    activated() {
+      this.makeWordData = this.getData(2)
+      this.initCharts()
+      this.getPassYearFormatDate()
+      this.getList()
+    },
+    methods: {
+      modeselect(e){
+          console.log(e)
+      },selectware(e){
+          console.log(e)
+      },
+      goodsNameselect(e){
+          console.log(e)
+      },
+      addlist(){
+        this.feeDetailsDistributions.push({proDate:'',weight:'',money:'',warehouse:'',belonging:'',index:this.feeDetailsDistributions.length})
+      },
+      dellist(row){
+          this.feeDetailsDistributions.splice(row.index,1)
+      },
+      getList() {
+        // getceshi({
+        //  driverId:'8f1f3c624d7946d79a9d44a4057d969b'
+        // })
+        // .toPromise()
+        // .then((response) => {
+        // debugger
+        // console.log(response)
+        // })
+
+      },
+      detail(){
+        this.$router.push({name:'contractprofitsdetails'})
+      },
+      getPassYearFormatDate() {
+        var nowDate = new Date()
+        var _date = new Date()
+        nowDate.setTime(nowDate.getTime() - 24 * 60 * 60 * 1000 * 30)
+        var year = nowDate.getFullYear()
+        var year1 = _date.getFullYear()
+        var month = nowDate.getMonth() + 1
+        var month1 = _date.getMonth() + 1
+        var strDate = nowDate.getDate()
+        var strDate1 = _date.getDate()
+        if (month >= 1 && month <= 9) {
+          month = '0' + month
+        }
+        if (month1 >= 1 && month1 <= 9) {
+          month1 = '0' + month1
+        }
+
+        if (strDate >= 0 && strDate <= 9) {
+          strDate = '0' + strDate
+        }
+        if (strDate1 >= 0 && strDate1 <= 9) {
+          strDate1 = '0' + strDate1
+        }
+        this.startDate = year + '-' + month + '-' + strDate
+        this.endDate = year1 + '-' + month1 + '-' + strDate1
+        this.value = [this.startDate, this.endDate]
+      },
+      pickerOptions() {
+
+      },
+      initCharts() {
+        let app = this;
+        let myChart7 = app.$echarts.init(this.$refs.myEchart7);
+        var option;
+        option = {
+            // title: {
+            //   text: 'Rainfall vs Evaporation',
+            //   subtext: 'Fake Data'
+            // },
+            tooltip: {
+              trigger: 'axis'
+            },
+            legend: {
+              data: ['支出', '收入']
+            },
+            toolbox: {
+              show: true,
+              feature: {
+                dataView: {
+                  show: false,
+                  readOnly: false
+                },
+                magicType: {
+                  show: false,
+                  type: ['line', 'bar']
+                },
+                restore: {
+                  show: false
+                },
+                saveAsImage: {
+                  show: false
+                }
+              }
+            },
+            calculable: true,
+            xAxis: [{
+              name: '种类',
+              type: 'category',
+              // prettier-ignore
+              data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct']
+            }],
+            yAxis: [{
+              name: '储量(吨)',
+              type: 'value'
+            }],
+            series: [{
+                name: '支出',
+                type: 'bar',
+                right: 0,
+                // label: {
+                //   show: true,
+                //   position: 'inside'
+                // },
+                 label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  6.0, 60.9, 90.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0
+                ],
+                color: ['#5878E8 '],
+                formatter: '{value} 元',
+
+              },
+              {
+                name: '收入',
+                type: 'bar',
+                right: 20,
+                label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  102.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8
+                ],
+                color: ['#FF9F24'],
+                formatter: '{value} 元',
+              }
+            ]
+          },
+          myChart7.setOption(option)
+      },
+      getData(count) {
+        // prettier-ignore
+        const nameList = [
+          '支出', '收入'
+        ];
+        const legendData = [];
+        const seriesData = [];
+        for (var i = 0; i < count; i++) {
+          var name = nameList[i]
+          // Math.random() > 0.65 ?  makeWord(4, 1) + '·' + makeWord(3, 0) :  makeWord(2, 1);
+          legendData.push(name);
+          seriesData.push({
+            name: name,
+            value: Math.round(Math.random() * 100000)
+          });
+        }
+
+        return {
+          legendData: legendData,
+          seriesData: seriesData
+        };
+
+        // function makeWord(max, min) {
+        //   debugger
+        //   const nameLen = Math.ceil(Math.random() * max + min);
+        //   const name = [];
+        //   for (var i = 0; i < nameLen; i++) {
+        //     name.push(nameList[Math.round(Math.random() * nameList.length - 1)]);
+        //   }
+        //   return name.join('');
+        // }
+
+      }
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .container {
+    background: #E8ECF6;
+  }
+
+  .center {
+    margin: 0 auto;
+    background: #ffffff;
+    height: calc(100vh - 13vh);
+    border-radius: 4px;
+    margin-top: 10px;
+    overflow:scroll;
+  }
+
+  .row_top {
+    // background: #F6F7FC;
+    border-radius: 4px;
+
+    .bg-left {
+      padding-left: 30px;
+    }
+
+  .bg-right {
+      padding-right: 10px;
+      text-align: right;
+      height:60px;
+      padding-top:15px;
+    }
+
+    .title {
+      position: relative;
+    }
+
+    .title::before {
+      content: '';
+      display: inline-block;
+      width: 5px;
+      height: 30px;
+      background: #5473e8;
+      position: absolute;
+      left: 0;
+    }
+  }
+
+  .datascreen {
+    // margin-top: 10px;
+    width: 500px;
+    height: 60px;
+    line-height: 60px;
+    margin-left: 30px;
+
+  }
+
+  .chart_css {
+    display: flex;
+    height: 410px;
+
+    .table {
+      width: 70%;
+      height: 410px;
+    }
+
+    .makeWord_css {
+      width: 30%;
+      height: 410px;
+      margin-left: 30px;
+    }
+  }
+
+  .table_css {
+
+    text-align:center;
+
+  }
+  /deep/.el-form{
+    width:90%;
+    margin:0 auto;
+  }
+  /deep/.el-form-item {
+    width: 50%;
+}
+</style>

+ 442 - 0
src/views/profitable/receiptaduit.vue

@@ -0,0 +1,442 @@
+//请款
+<template>
+  <div class="container">
+    <el-row class="row_top">
+      <el-col :span="12">
+        <h2 class="bg-left title">请款</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right"><el-button class="bg-bottom" type="primary" size="small" @click="returnsales()"><img width="6" height="10"
+            style="vertion-align: bottom; margin-right: 3px" src="../../../public/img/lujing.png" alt="" />返回
+        </el-button></el-col>
+    </el-row>
+    <div class="center">
+     <div>基本信息</div>
+      <div class="table_css">
+        <ws-form>
+          <ws-form-item label="用途" span="1" prop="contractNo" class="readonly">
+              <div v-if="deptBudgetList.purpose==1">合同费用</div>
+              <div v-if="deptBudgetList.purpose==2">库点费用</div>
+              <div v-if="deptBudgetList.purpose==3">经营性费用</div>
+          </ws-form-item>
+          <ws-form-item v-if='deptBudgetList.purpose==1||deptBudgetList.purpose==2' label="用途" span="1" prop="contractNo" class="readonly">
+            <div v-if='deptBudgetList.type==1'>粮款</div>
+            <div v-if='deptBudgetList.type==2'>非粮款</div>
+            <div v-if='deptBudgetList.type==3&&deptBudgetList.purpose==1'>保证金</div>
+          </ws-form-item>
+          <ws-form-item label="合同编号" span="1" prop="contractNo" class="readonly">
+          {{deptBudgetList.contractNo}}
+          </ws-form-item>
+          <ws-form-item label="费用名称" span="1" prop="settlementMethod">
+            {{deptBudgetList.expenseName}}
+          </ws-form-item>
+          <ws-form-item label="金额" span="1" prop="contractNo" class="readonly">
+            {{deptBudgetList.money}}
+          </ws-form-item>
+          <ws-form-item label="备注" span="1" prop="settlementMethod">
+            <el-input
+            disabled
+            type="textarea"
+            :rows="2"
+            placeholder="选填,不超过50个字"
+            v-model="deptBudgetList.remark">
+            </el-input>
+          </ws-form-item>
+          <ws-form-item label="附件">
+          <el-upload ref='uploadfiles' :file-list='dataList' action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+            :on-success="handlefujian" :on-remove="handleRemove" class="photo2">
+            <i class="el-icon-plus"></i>
+          </el-upload>
+        </ws-form-item>
+        </ws-form>
+        <div v-if='deptBudgetList.type==2'>费用分配</div>
+        <div v-if='deptBudgetList.type==2' style='margin-bottom:10px;'>
+            <ws-select v-model="mode" placeholder="费用分配方式" class="typeselect" @change="modeselect"
+          :value="searchType">
+          <ws-option v-for="item in modeList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-if='deptBudgetList.purpose==1' v-model="ware" placeholder="费用分配仓库" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in wareList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        <ws-select v-if='deptBudgetList.purpose==2' v-model="goods" placeholder="费用分配产品" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in goodsList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-model="dates" placeholder="费用分配日期" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in datesList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+         <ws-select v-model="moneys" placeholder="费用分配金额" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in moneysList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        合计分配:{{amount}}元
+        </div>
+        <el-table :data="feeDetailsDistributions" style="width: 80%;margin:0 auto;">
+          <el-table-column prop="date" label="所属" min-width="110">
+            <template slot-scope="scope">
+                <ws-select v-if='deptBudgetList.purpose==2' v-model="scope.row.belonging" placeholder="选择仓库或合同" class="typeselect" @change="selectware"
+          :value="searchType">
+          <ws-option v-for="item in warecontractList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+        <ws-select v-if='deptBudgetList.purpose==1' v-model="scope.row.belonging" placeholder="选择仓库" class="typeselect" @change="selectware"
+          :value="searchType">
+          <ws-option v-for="item in warehouseList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="日期">
+            <template slot-scope="scope">
+                <ws-date-picker v-model="scope.row.proDate" type="date" placeholder="请选择日期"
+              value-format="yyyy-MM-dd" />
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="货名">
+              <template slot-scope="scope">
+                <ws-select v-model="scope.row.goodsName" placeholder="选择货名" class="typeselect" @change="goodsNameselect"
+                    :value="searchType">
+                    <ws-option v-for="item in goodsList" :key="item.value" :label="item.value" :value="item.value"
+                        style="color: #8890b1" />
+                </ws-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="date" label="库存(吨)"></el-table-column>
+          <el-table-column prop="date" label="分配金额(元)">
+            <template slot-scope="scope">
+                <el-input placeholder="输入费用名称,1-15个字" class="input_css" v-model="scope.row.money"></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column prop="address" label="操作" width="200">
+            <template slot-scope="scope">
+                <img class='add' @click='addlist()' src="../../../public/img/add.png" alt="">
+                <img class='del' @click='dellist(scope.row)' src="../../../public/img/del.png" alt="">
+            </template>
+          </el-table-column>
+        </el-table>
+
+      </div>
+      <div>
+      <el-button class="bg-bottom" type="primary" size="small" @click="returnsales()">驳回
+        </el-button>
+        <el-button class="bg-bottom" type="primary" size="small" @click="returnsales()">通过
+        </el-button>
+    </div>
+    </div>
+  </div>
+</template>
+<script>
+  import {} from '@/model/profitable/index'
+  export default {
+    components: {},
+    data() {
+      return {
+        value: [],
+        profitList: [{
+          name: "玉米",
+          count: 2000,
+        }],
+        mode:'全部分配',
+        ware:'指定仓库',
+        dates:'固定日期',
+        moneys:'按重量自动分配',
+        goods:'全部货品',
+        amount:0,
+        goodsList:[],
+        warecontractList:[],
+        feeDetailsDistributions:[{proDate:'',weight:'',money:'',warehouse:'',belonging:'',index:0}],
+        deptBudgetList:{},
+        makeWordData: {},
+        warehouseList:[],
+        modeList:[{key:1,value:'全部分配'},{key:2,value:'部分分配'},{key:3,value:'暂不分配'}],
+        wareList:[{key:1,value:'指定仓库'},{key:2,value:'全部仓库'}],
+        datesList:[{key:1,value:'固定日期'},{key:2,value:'指定日期'}],
+        moneysList:[{key:1,value:'按重量自动分配'},{key:2,value:'指定分配金额'}],
+        goodsList:[{key:1,value:'全部货品'},{key:2,value:'指定货品'}],
+        valueData: [{
+            date: 10
+          },
+          {
+            date: 20
+          }
+        ], //货值
+
+      }
+    },
+    activated() {
+      this.makeWordData = this.getData(2)
+      this.initCharts()
+      this.getPassYearFormatDate()
+      this.getList()
+    },
+    methods: {
+      modeselect(e){
+          console.log(e)
+      },selectware(e){
+          console.log(e)
+      },
+      goodsNameselect(e){
+          console.log(e)
+      },
+      addlist(){
+        this.feeDetailsDistributions.push({proDate:'',weight:'',money:'',warehouse:'',belonging:'',index:this.feeDetailsDistributions.length})
+      },
+      dellist(row){
+          this.feeDetailsDistributions.splice(row.index,1)
+      },
+      getList() {
+        // getceshi({
+        //  driverId:'8f1f3c624d7946d79a9d44a4057d969b'
+        // })
+        // .toPromise()
+        // .then((response) => {
+        // debugger
+        // console.log(response)
+        // })
+
+      },
+      detail(){
+        this.$router.push({name:'contractprofitsdetails'})
+      },
+      getPassYearFormatDate() {
+        var nowDate = new Date()
+        var _date = new Date()
+        nowDate.setTime(nowDate.getTime() - 24 * 60 * 60 * 1000 * 30)
+        var year = nowDate.getFullYear()
+        var year1 = _date.getFullYear()
+        var month = nowDate.getMonth() + 1
+        var month1 = _date.getMonth() + 1
+        var strDate = nowDate.getDate()
+        var strDate1 = _date.getDate()
+        if (month >= 1 && month <= 9) {
+          month = '0' + month
+        }
+        if (month1 >= 1 && month1 <= 9) {
+          month1 = '0' + month1
+        }
+
+        if (strDate >= 0 && strDate <= 9) {
+          strDate = '0' + strDate
+        }
+        if (strDate1 >= 0 && strDate1 <= 9) {
+          strDate1 = '0' + strDate1
+        }
+        this.startDate = year + '-' + month + '-' + strDate
+        this.endDate = year1 + '-' + month1 + '-' + strDate1
+        this.value = [this.startDate, this.endDate]
+      },
+      pickerOptions() {
+
+      },
+      initCharts() {
+        let app = this;
+        let myChart7 = app.$echarts.init(this.$refs.myEchart7);
+        var option;
+        option = {
+            // title: {
+            //   text: 'Rainfall vs Evaporation',
+            //   subtext: 'Fake Data'
+            // },
+            tooltip: {
+              trigger: 'axis'
+            },
+            legend: {
+              data: ['支出', '收入']
+            },
+            toolbox: {
+              show: true,
+              feature: {
+                dataView: {
+                  show: false,
+                  readOnly: false
+                },
+                magicType: {
+                  show: false,
+                  type: ['line', 'bar']
+                },
+                restore: {
+                  show: false
+                },
+                saveAsImage: {
+                  show: false
+                }
+              }
+            },
+            calculable: true,
+            xAxis: [{
+              name: '种类',
+              type: 'category',
+              // prettier-ignore
+              data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct']
+            }],
+            yAxis: [{
+              name: '储量(吨)',
+              type: 'value'
+            }],
+            series: [{
+                name: '支出',
+                type: 'bar',
+                right: 0,
+                // label: {
+                //   show: true,
+                //   position: 'inside'
+                // },
+                 label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  6.0, 60.9, 90.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0
+                ],
+                color: ['#5878E8 '],
+                formatter: '{value} 元',
+
+              },
+              {
+                name: '收入',
+                type: 'bar',
+                right: 20,
+                label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  102.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8
+                ],
+                color: ['#FF9F24'],
+                formatter: '{value} 元',
+              }
+            ]
+          },
+          myChart7.setOption(option)
+      },
+      getData(count) {
+        // prettier-ignore
+        const nameList = [
+          '支出', '收入'
+        ];
+        const legendData = [];
+        const seriesData = [];
+        for (var i = 0; i < count; i++) {
+          var name = nameList[i]
+          // Math.random() > 0.65 ?  makeWord(4, 1) + '·' + makeWord(3, 0) :  makeWord(2, 1);
+          legendData.push(name);
+          seriesData.push({
+            name: name,
+            value: Math.round(Math.random() * 100000)
+          });
+        }
+
+        return {
+          legendData: legendData,
+          seriesData: seriesData
+        };
+
+        // function makeWord(max, min) {
+        //   debugger
+        //   const nameLen = Math.ceil(Math.random() * max + min);
+        //   const name = [];
+        //   for (var i = 0; i < nameLen; i++) {
+        //     name.push(nameList[Math.round(Math.random() * nameList.length - 1)]);
+        //   }
+        //   return name.join('');
+        // }
+
+      }
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .container {
+    background: #E8ECF6;
+  }
+
+  .center {
+    margin: 0 auto;
+    background: #ffffff;
+    height: calc(100vh - 13vh);
+    border-radius: 4px;
+    margin-top: 10px;
+    overflow:scroll;
+  }
+
+  .row_top {
+    // background: #F6F7FC;
+    border-radius: 4px;
+
+    .bg-left {
+      padding-left: 30px;
+    }
+
+  .bg-right {
+      padding-right: 10px;
+      text-align: right;
+      height:60px;
+      padding-top:15px;
+    }
+
+    .title {
+      position: relative;
+    }
+
+    .title::before {
+      content: '';
+      display: inline-block;
+      width: 5px;
+      height: 30px;
+      background: #5473e8;
+      position: absolute;
+      left: 0;
+    }
+  }
+
+  .datascreen {
+    // margin-top: 10px;
+    width: 500px;
+    height: 60px;
+    line-height: 60px;
+    margin-left: 30px;
+
+  }
+
+  .chart_css {
+    display: flex;
+    height: 410px;
+
+    .table {
+      width: 70%;
+      height: 410px;
+    }
+
+    .makeWord_css {
+      width: 30%;
+      height: 410px;
+      margin-left: 30px;
+    }
+  }
+
+  .table_css {
+
+    text-align:center;
+
+  }
+  /deep/.el-form{
+    width:90%;
+    margin:0 auto;
+  }
+  /deep/.el-form-item {
+    width: 50%;
+}
+</style>

+ 250 - 0
src/views/profitable/warehousecost.vue

@@ -0,0 +1,250 @@
+//库点费用
+<template>
+  <div class="container">
+    <el-row class="row_top">
+      <el-col :span="12">
+        <h2 class="bg-left title">合同费用</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right"><el-button class="bg-bottom" type="primary" size="small" @click="returnsales()"><img width="6" height="10"
+            style="vertion-align: bottom; margin-right: 3px" src="../../../public/img/lujing.png" alt="" />返回
+        </el-button></el-col>
+    </el-row>
+    <div class="center">
+      <el-row style='margin-bottom:10px;'>
+        <el-col :span="12">
+ <ws-select v-model="searchTypeText" placeholder="" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in taskTypeList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+            <el-input placeholder="可按合同名称、买方名称、卖方名称查找" class="input_css" v-model="searchKeyWord"></el-input>
+        </el-col>
+        <el-col :span="12">
+          <div class="datascreen">
+          </div>
+        </el-col>
+      </el-row>
+      <el-row style='margin-bottom:10px;'>
+        <el-col :span="18">
+        支出粮款:50000元   收入粮款:50000元    费用收入:100000元    费用支出:10000元    当期利润: 100000元 
+        </el-col>
+        <el-col :span="6">
+
+        </el-col>
+      </el-row>
+      <div class="fromdata">
+        <el-table :data="tableData" stripe style="width: 100%">
+          <el-table-column type="index" label="序号">
+            <template scope="scope">
+              <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+              <span v-else>{{ scope.$index + 1 }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="reexType" label="类型"></el-table-column>
+          <el-table-column prop="reexType" label="费用名称"></el-table-column>
+          <el-table-column prop="createDate" label="所属库点"></el-table-column>
+          <el-table-column prop="amountMoney" label="费用金额"></el-table-column>
+          <el-table-column prop="expenseName" label="请款人/收款人"></el-table-column>
+          <el-table-column prop="expenseRemarks" label="日期"></el-table-column>
+        </el-table>
+      </div>
+      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+        style="text-align:center" :page-size="deptCircularPage.pageSize"
+        layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal">
+      </el-pagination>
+    </div>
+  </div>
+</template>
+<script>
+  import {
+    getInOutDetailed,
+    getwarehouse
+  } from '@/model/profitable/index'
+  export default {
+    components: {},
+    data() {
+      return {
+        value: "",
+        tableData: [],
+        deptBudgetTotal: 0,
+        currentPage: 1,
+        pageSize: 10,
+        deptCircularPage: {},
+        taskTypeList:[],
+        warehouse:[],
+        searchType:"",
+        searchKeyWord:"",
+        startDate:"",
+        endDate:"",
+        outtotal:0,
+        intotal:0,
+      }
+    },
+    activated() {
+         this.getPassYearFormatDate()
+      this.getList()
+    },
+    methods: {
+      typeChange(num){
+        this.searchType = num
+        this.getList()
+      },
+      getPassYearFormatDate () {
+          var nowDate = new Date()
+          var _date = new Date()
+          nowDate.setTime(nowDate.getTime()-24*60*60*1000*30)
+          var year = nowDate.getFullYear()
+          var year1 = _date.getFullYear()
+          var month = nowDate.getMonth() + 1
+          var month1 = _date.getMonth() + 1
+          var strDate = nowDate.getDate()
+          var strDate1 = _date.getDate()
+          if (month >= 1 && month <= 9) {
+            month = '0' + month
+          }
+           if (month1 >= 1 && month1 <= 9) {
+            month1 = '0' + month1
+          }
+        
+          if (strDate >= 0 && strDate <= 9) {
+            strDate = '0' + strDate
+          }
+           if (strDate1 >= 0 && strDate1 <= 9) {
+            strDate1 = '0' + strDate1
+          }
+          this.startDate = year + '-' + month +'-' + strDate
+          this.endDate = year1 + '-' + month1 +'-' + strDate1
+          this.value=[this.startDate,this.endDate]
+        },
+      getList() {
+        getwarehouse({ compId: localStorage.getItem('ws-pf_compId'),warehouseType:1}).toPromise()
+          .then(response => {
+            this.warehouse = response
+          
+          })
+         getInOutDetailed({
+            // warehouseType: 1,
+            compId: localStorage.getItem('ws-pf_compId'),
+            startDate:this.startDate,
+            endDate:this.endDate,
+            searchKeyWord:this.searchKeyWord,
+            currentPage: this.currentPage,
+            pageSize:this.pageSize ,
+            searchType:this.searchType
+          })
+          .toPromise()
+          .then(response => {
+            this.tableData = response.records
+            if(this.tableData.length > 0){
+              this.intotal = Number(this.tableData[0].inContractMoney) + Number(this.tableData[0].inWarehouseMoney) + Number(this.tableData[0].inManageMoney)
+            this.outtotal = Number(this.tableData[0].outContractMoney) + Number(this.tableData[0].outWarehouseMoney) + Number(this.tableData[0].outManageMoney)
+            }
+            
+           this.deptBudgetTotal = response.total
+          })
+      },
+      changeDate(){
+        if(this.value){
+          this.startDate = this.value[0]
+          this.endDate = this.value[1]
+        }
+        this.getList()
+      },
+      pickerOptions() {},
+      find() {
+        this.getList()
+
+      },
+      handleSizeChange(val) {
+        console.log(`每页 ${val} 条`)
+        this.pageSize = val
+        this.getList()
+      },
+      handleCurrentChange(val) {
+        this.currentPage = val
+        console.log(`当前页: ${val}`)
+        this.getList()
+      },
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .container {
+    background: #E8ECF6;
+  }
+
+  .center {
+    margin: 0 auto;
+    background: #ffffff;
+    height: calc(100vh - 13vh);
+    border-radius: 4px;
+    padding: 20px 0;
+
+    /deep/.el-table td,
+    /deep/.el-table th {
+      text-align: center;
+    }
+  }
+
+  .row_top {
+    background: #F6F7FC;
+    border-radius: 4px;
+    margin-bottom: 10px;
+
+    .bg-left {
+      padding-left: 30px;
+    }
+
+    .bg-right {
+      padding-right: 10px;
+      text-align: right;
+    }
+
+    .title {
+      position: relative;
+    }
+
+    .title::before {
+      content: '';
+      display: inline-block;
+      width: 5px;
+      height: 30px;
+      background: #5473e8;
+      position: absolute;
+      left: 0;
+    }
+  }
+
+  .datascreen {
+    display: flex;
+
+    .data_css {
+      width: 40%;
+    }
+
+    .input_css {
+      width: 50%;
+      margin: 0 10px;
+    }
+
+    .find {
+      margin-right: 10px;
+    }
+  }
+
+  .fromdata {
+    margin: 20px 0;
+    overflow-y: scroll;
+    height: 546px;
+  }
+  .top_info{
+    margin: 10px 0 0 10px;
+    min-width: 712px;
+    .info_css{
+      margin-right: 20px;
+    }
+  }
+  .bg-right{
+    padding-top:15px;
+  }
+</style>

+ 234 - 0
src/views/profitable/warehouseinventory.vue

@@ -0,0 +1,234 @@
+//库点库存
+<template>
+  <div class="container">
+    <el-row class="row_top">
+      <el-col :span="12">
+        <h2 class="bg-left title">库存分布</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right"><el-button class="bg-bottom" type="primary" size="small" @click="returnsales()"><img width="6" height="10"
+            style="vertion-align: bottom; margin-right: 3px" src="../../../public/img/lujing.png" alt="" />返回
+        </el-button></el-col>
+    </el-row>
+    <div class="center">
+      <el-row style='margin-bottom:10px;'>
+        <el-col :span="12">
+ <ws-select v-model="searchTypeText" placeholder="" class="typeselect" @change="selecttaskType"
+          :value="searchType">
+          <ws-option v-for="item in taskTypeList" :key="item.value" :label="item.value" :value="item.value"
+            style="color: #8890b1" />
+        </ws-select>
+            <el-input placeholder="可按合同名称、买方名称、卖方名称查找" class="input_css" v-model="searchKeyWord"></el-input>
+        </el-col>
+        <el-col :span="12">
+          <div class="datascreen">
+          </div>
+        </el-col>
+      </el-row>
+      <div class="fromdata">
+        <el-table :data="tableData" stripe style="width: 100%">
+          <el-table-column type="index" label="序号">
+            <template scope="scope">
+              <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+              <span v-else>{{ scope.$index + 1 }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="reexType" label="所属仓库"></el-table-column>
+          <el-table-column prop="createDate" label="所在仓库"></el-table-column>
+          <el-table-column prop="amountMoney" label="货名"></el-table-column>
+          <el-table-column prop="expenseName" label="剩余库存(吨)"></el-table-column>
+          <el-table-column prop="expenseRemarks" label="成本(元/吨)"></el-table-column>
+        </el-table>
+      </div>
+      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+        style="text-align:center" :page-size="deptCircularPage.pageSize"
+        layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal">
+      </el-pagination>
+    </div>
+  </div>
+</template>
+<script>
+  import {
+    getInOutDetailed
+  } from '@/model/profitable/index'
+  export default {
+    components: {},
+    data() {
+      return {
+        value: "",
+        tableData: [],
+        deptBudgetTotal: 0,
+        currentPage: 1,
+        pageSize: 10,
+        deptCircularPage: {},
+        taskTypeList:[],
+        searchType:"",
+        searchKeyWord:"",
+        startDate:"",
+        endDate:"",
+        outtotal:0,
+        intotal:0,
+      }
+    },
+    activated() {
+         this.getPassYearFormatDate()
+      this.getList()
+    },
+    methods: {
+      typeChange(num){
+        this.searchType = num
+        this.getList()
+      },
+      getPassYearFormatDate () {
+          var nowDate = new Date()
+          var _date = new Date()
+          nowDate.setTime(nowDate.getTime()-24*60*60*1000*30)
+          var year = nowDate.getFullYear()
+          var year1 = _date.getFullYear()
+          var month = nowDate.getMonth() + 1
+          var month1 = _date.getMonth() + 1
+          var strDate = nowDate.getDate()
+          var strDate1 = _date.getDate()
+          if (month >= 1 && month <= 9) {
+            month = '0' + month
+          }
+           if (month1 >= 1 && month1 <= 9) {
+            month1 = '0' + month1
+          }
+        
+          if (strDate >= 0 && strDate <= 9) {
+            strDate = '0' + strDate
+          }
+           if (strDate1 >= 0 && strDate1 <= 9) {
+            strDate1 = '0' + strDate1
+          }
+          this.startDate = year + '-' + month +'-' + strDate
+          this.endDate = year1 + '-' + month1 +'-' + strDate1
+          this.value=[this.startDate,this.endDate]
+        },
+      getList() {
+         getInOutDetailed({
+            // warehouseType: 1,
+            compId: localStorage.getItem('ws-pf_compId'),
+            startDate:this.startDate,
+            endDate:this.endDate,
+            searchKeyWord:this.searchKeyWord,
+            currentPage: this.currentPage,
+            pageSize:this.pageSize ,
+            searchType:this.searchType
+          })
+          .toPromise()
+          .then(response => {
+            this.tableData = response.records
+            if(this.tableData.length > 0){
+              this.intotal = Number(this.tableData[0].inContractMoney) + Number(this.tableData[0].inWarehouseMoney) + Number(this.tableData[0].inManageMoney)
+            this.outtotal = Number(this.tableData[0].outContractMoney) + Number(this.tableData[0].outWarehouseMoney) + Number(this.tableData[0].outManageMoney)
+            }
+            
+           this.deptBudgetTotal = response.total
+          })
+      },
+      changeDate(){
+        if(this.value){
+          this.startDate = this.value[0]
+          this.endDate = this.value[1]
+        }
+        this.getList()
+      },
+      pickerOptions() {},
+      find() {
+        this.getList()
+
+      },
+      handleSizeChange(val) {
+        console.log(`每页 ${val} 条`)
+        this.pageSize = val
+        this.getList()
+      },
+      handleCurrentChange(val) {
+        this.currentPage = val
+        console.log(`当前页: ${val}`)
+        this.getList()
+      },
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .container {
+    background: #E8ECF6;
+  }
+
+  .center {
+    margin: 0 auto;
+    background: #ffffff;
+    height: calc(100vh - 13vh);
+    border-radius: 4px;
+    padding: 20px 0;
+
+    /deep/.el-table td,
+    /deep/.el-table th {
+      text-align: center;
+    }
+  }
+
+  .row_top {
+    background: #F6F7FC;
+    border-radius: 4px;
+    margin-bottom: 10px;
+
+    .bg-left {
+      padding-left: 30px;
+    }
+
+    .bg-right {
+      padding-right: 10px;
+      text-align: right;
+    }
+
+    .title {
+      position: relative;
+    }
+
+    .title::before {
+      content: '';
+      display: inline-block;
+      width: 5px;
+      height: 30px;
+      background: #5473e8;
+      position: absolute;
+      left: 0;
+    }
+  }
+
+  .datascreen {
+    display: flex;
+
+    .data_css {
+      width: 40%;
+    }
+
+    .input_css {
+      width: 50%;
+      margin: 0 10px;
+    }
+
+    .find {
+      margin-right: 10px;
+    }
+  }
+
+  .fromdata {
+    margin: 20px 0;
+    overflow-y: scroll;
+    height: 546px;
+  }
+  .top_info{
+    margin: 10px 0 0 10px;
+    min-width: 712px;
+    .info_css{
+      margin-right: 20px;
+    }
+  }
+  .bg-right{
+    padding-top:15px;
+  }
+</style>

+ 406 - 0
src/views/profitable/warehouseprofits.vue

@@ -0,0 +1,406 @@
+//库点
+<template>
+  <div class="container">
+    <!-- <el-row class="row_top">
+      <el-col :span="12">
+        <h2 class="bg-left title">盈收概览</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right"></el-col>
+    </el-row> -->
+    <div class="center">
+      <el-row class='row_top'>
+      <el-col :span="12">
+        <div class="datascreen">
+        <el-date-picker v-model="value" type="daterange" align="right" unlink-panels range-separator="至"
+          start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions">
+        </el-date-picker>
+        
+      </div>
+      </el-col>
+      <el-col :span="12" class="bg-right"><el-button  type='primary' @click='detail'>利润详情</el-button></el-col>
+    </el-row>
+      <div class="chart_css">
+        <div class="table">
+          <div ref="myEchart7" style="height: 410px;"></div>
+        </div>
+        <div class="makeWord_css">
+          <!-- <div ref="myEchart6" style="height: 410px"></div> -->
+        </div>
+      </div>
+      <div class="table_css">
+        <div  style='margin:0 auto'>
+          <div class='title' style='margin-bottom:10px;'>库点利润汇总表</div>
+          <div class='time'>{{value[0]}}-{{value[1]}}</div>
+        </div>
+        <ws-form>
+          <ws-info-table>
+          <ws-form-item label="收购重量(吨)" span="1" prop="contractNo" class="readonly">
+            
+          </ws-form-item>
+          <ws-form-item label="销售重量(吨)" span="1" prop="settlementMethod">
+            
+          </ws-form-item>
+          <ws-form-item label="支付粮款(万元)" span="1" prop="contractNo" class="readonly">
+            
+          </ws-form-item>
+          <ws-form-item label="收入粮款(万元)" span="1" prop="settlementMethod">
+            
+          </ws-form-item>
+          <ws-form-item label="其他支付(万元)" span="1" prop="contractNo" class="readonly">
+            
+          </ws-form-item>
+          <ws-form-item label="其他收入(万元)" span="1" prop="settlementMethod">
+            
+          </ws-form-item>
+          <ws-form-item label="运费(万元)" span="1" prop="contractNo" class="readonly">
+            
+          </ws-form-item>
+          <ws-form-item label="总利润(万元)" span="1" prop="settlementMethod">
+            
+          </ws-form-item>
+        </ws-info-table>
+        </ws-form>
+        
+        
+        <!-- <el-table :data="valueData" style="width: 100%">
+          <el-table-column prop="date" label="货名/货值" min-width="110">
+            <div slot-scope="scope">
+              <span v-if="scope.$index == 0">期初货值(元)</span>
+              <span v-if="scope.$index == 1">期末货值(元)</span>
+            </div>
+
+          </el-table-column>
+          <el-table-column prop="date" label="玉米"></el-table-column>
+          <el-table-column prop="date" label="玉米"></el-table-column>
+          <el-table-column prop="date" label="玉米"></el-table-column>
+          <el-table-column prop="date" label="货名"></el-table-column>
+          <el-table-column prop="date" label="货名"></el-table-column>
+          <el-table-column prop="date" label="货名"></el-table-column>
+          <el-table-column prop="date" label="货名"></el-table-column>
+          <el-table-column prop="date" label="货名"></el-table-column>
+          <el-table-column prop="date" label="货名"></el-table-column>
+          <el-table-column prop="date" label="合计" min-width="130">
+            <div slot-scope="scope">
+              <span v-if="scope.$index == 0">合计:</span>
+              <span v-if="scope.$index == 1">合计:1000000000</span>
+            </div>
+          </el-table-column>
+        </el-table> -->
+
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+  import {} from '@/model/profitable/index'
+  export default {
+    components: {},
+    data() {
+      return {
+        value: [],
+        profitList: [{
+          name: "玉米",
+          count: 2000,
+        }],
+        deptBudgetList:{},
+        makeWordData: {},
+        valueData: [{
+            date: 10
+          },
+          {
+            date: 20
+          }
+        ], //货值
+
+      }
+    },
+    activated() {
+      this.makeWordData = this.getData(2)
+      this.initCharts()
+      this.getPassYearFormatDate()
+      this.getList()
+    },
+    methods: {
+      getList() {
+        // getceshi({
+        //  driverId:'8f1f3c624d7946d79a9d44a4057d969b'
+        // })
+        // .toPromise()
+        // .then((response) => {
+        // debugger
+        // console.log(response)
+        // })
+
+      },
+      detail(){
+        this.$router.push({name:'warehouseprofitsdetails'})
+      },
+       getPassYearFormatDate() {
+        var nowDate = new Date()
+        var _date = new Date()
+        var year = nowDate.getFullYear()-1
+        var year1 = _date.getFullYear()
+        var month = nowDate.getMonth() + 1
+        var month1 = _date.getMonth() + 1
+        var strDate = nowDate.getDate()
+        var strDate1 = _date.getDate()
+        if (month >= 1 && month <= 9) {
+          month = '0' + month
+        }
+        if (month1 >= 1 && month1 <= 9) {
+          month1 = '0' + month1
+        }
+
+        if (strDate >= 0 && strDate <= 9) {
+          strDate = '0' + strDate
+        }
+        if (strDate1 >= 0 && strDate1 <= 9) {
+          strDate1 = '0' + strDate1
+        }
+        this.startDate = year + '-' + month + '-' + strDate
+        this.endDate = year1 + '-' + month1 + '-' + strDate1
+        this.value = [this.startDate, this.endDate]
+      },
+      pickerOptions() {
+
+      },
+      initCharts() {
+        let app = this;
+        let myChart7 = app.$echarts.init(this.$refs.myEchart7);
+        var option;
+        option = {
+            // title: {
+            //   text: 'Rainfall vs Evaporation',
+            //   subtext: 'Fake Data'
+            // },
+            tooltip: {
+              trigger: 'axis'
+            },
+            legend: {
+              data: ['支出', '收入']
+            },
+            toolbox: {
+              show: true,
+              feature: {
+                dataView: {
+                  show: false,
+                  readOnly: false
+                },
+                magicType: {
+                  show: false,
+                  type: ['line', 'bar']
+                },
+                restore: {
+                  show: false
+                },
+                saveAsImage: {
+                  show: false
+                }
+              }
+            },
+            calculable: true,
+            xAxis: [{
+              name: '种类',
+              type: 'category',
+              // prettier-ignore
+              data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct']
+            }],
+            yAxis: [{
+              name: '储量(吨)',
+              type: 'value'
+            }],
+            series: [{
+                name: '支出',
+                type: 'bar',
+                right: 0,
+                // label: {
+                //   show: true,
+                //   position: 'inside'
+                // },
+                 label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  6.0, 60.9, 90.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0
+                ],
+                color: ['#5878E8 '],
+                formatter: '{value} 元',
+
+              },
+              {
+                name: '收入',
+                type: 'bar',
+                right: 20,
+                label: {
+                  show: true,
+                  precision: 1,
+                  position: 'top',
+                  valueAnimation: true,
+                  fontFamily: 'monospace'
+                },
+                data: [
+                  102.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8
+                ],
+                color: ['#FF9F24'],
+                formatter: '{value} 元',
+              }
+            ]
+          },
+          myChart7.setOption(option)
+      },
+      getData(count) {
+        // prettier-ignore
+        const nameList = [
+          '支出', '收入'
+        ];
+        const legendData = [];
+        const seriesData = [];
+        for (var i = 0; i < count; i++) {
+          var name = nameList[i]
+          // Math.random() > 0.65 ?  makeWord(4, 1) + '·' + makeWord(3, 0) :  makeWord(2, 1);
+          legendData.push(name);
+          seriesData.push({
+            name: name,
+            value: Math.round(Math.random() * 100000)
+          });
+        }
+
+        return {
+          legendData: legendData,
+          seriesData: seriesData
+        };
+
+        // function makeWord(max, min) {
+        //   debugger
+        //   const nameLen = Math.ceil(Math.random() * max + min);
+        //   const name = [];
+        //   for (var i = 0; i < nameLen; i++) {
+        //     name.push(nameList[Math.round(Math.random() * nameList.length - 1)]);
+        //   }
+        //   return name.join('');
+        // }
+
+      }
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .container {
+    background: #E8ECF6;
+  }
+
+  .center {
+    margin: 0 auto;
+    background: #ffffff;
+    height: calc(100vh - 13vh);
+    border-radius: 4px;
+    margin-top: 10px;
+    overflow:scroll;
+  }
+
+  .row_top {
+    // background: #F6F7FC;
+    border-radius: 4px;
+
+    .bg-left {
+      padding-left: 30px;
+    }
+
+  .bg-right {
+      padding-right: 10px;
+      text-align: right;
+      height:60px;
+      padding-top:15px;
+    }
+
+    .title {
+      position: relative;
+    }
+
+    .title::before {
+      content: '';
+      display: inline-block;
+      width: 5px;
+      height: 30px;
+      background: #5473e8;
+      position: absolute;
+      left: 0;
+    }
+  }
+
+  .datascreen {
+    // margin-top: 10px;
+    width: 500px;
+    height: 60px;
+    line-height: 60px;
+    margin-left: 30px;
+
+  }
+
+  .chart_css {
+    display: flex;
+    height: 410px;
+
+    .table {
+      width: 70%;
+      height: 410px;
+    }
+
+    .makeWord_css {
+      width: 30%;
+      height: 410px;
+      margin-left: 30px;
+    }
+  }
+
+  .table_css {
+
+    text-align:center;
+    margin-bottom:10px;
+  }
+  /deep/.el-form{
+    width:90%;
+    margin:0 auto;
+  }
+  /deep/.el-form-item {
+    width: 50%;
+}
+.title{
+  background:#F6F7FC;
+  padding:20px 10px;
+  text-align:left;
+  position:relative;
+  font-size:18px;
+}
+.title::before{
+  content:'';
+  display:block;
+  background:#5473E8;
+  width:5px;height:30px;
+  position:absolute;
+  left:0;
+  top:50%;
+  transform: translateY(-50%);
+}
+.time{
+  text-align:right;
+  width:90%;
+  color:#8890B1;
+  margin:10px auto;
+}
+/deep/.ws-info-table{
+  border-left: 1px solid #D8DCE6;
+  border-top: 1px solid #D8DCE6;
+.el-form-item {
+    border-right: 1px solid #D8DCE6;
+    border-bottom: 1px solid #D8DCE6;
+}
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+    background-color: #F6F7FB;
+}
+</style>

+ 251 - 0
src/views/profitable/warehouseprofitsdetails.vue

@@ -0,0 +1,251 @@
+//合同利润详情
+<template>
+  <div class="container">
+    <el-row class="row_top">
+      <el-col :span="12">
+        <h2 class="bg-left title">利润详情</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right"><el-button class="bg-bottom" type="primary" size="small" @click="returnsales()"><img width="6" height="10"
+            style="vertion-align: bottom; margin-right: 3px" src="../../../public/img/lujing.png" alt="" />返回
+        </el-button></el-col>
+    </el-row>
+    <div class="center">
+      <el-row style='margin-bottom:10px;'>
+        <el-col :span="12">
+          <el-button style="margin-left:10px" @click="typeChange('')" type="primary">导出</el-button>
+        </el-col>
+        <el-col :span="12">
+          <div class="datascreen">
+            <el-date-picker value-format='yyyy-MM-dd' v-model="value" type="daterange" align="right" unlink-panels range-separator="至"
+              start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" class="data_css" @change="changeDate" >
+            </el-date-picker>
+            <el-input placeholder="可按合同名称、买方名称、卖方名称查找" class="input_css" v-model="searchKeyWord"></el-input>
+            <el-button class="find" type="primary" @click="find()"><img width="16" height="16" style="left: -8px;"
+                src="../../../public/img/sousuo.png" alt="" /></el-button>
+          </div>
+        </el-col>
+      </el-row>
+      <div class="fromdata">
+        <el-table :data="tableData" stripe style="width: 100%"  @selection-change="handleSelectionChange">
+          <el-table-column
+          type="selection"
+          width="55">
+        </el-table-column>
+          <el-table-column type="index" label="序号">
+            <template scope="scope">
+              <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+              <span v-else>{{ scope.$index + 1 }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="reexType" label="仓库名"></el-table-column>
+          <el-table-column prop="createDate" label="收购量(吨)"></el-table-column>
+          <el-table-column prop="amountMoney" label="销量(吨)"></el-table-column>
+          <el-table-column prop="expenseName" label="销售额(万元)"></el-table-column>
+          <el-table-column prop="expenseRemarks" label="成本(万元)"></el-table-column>
+          <el-table-column prop="expenseRemarks" label="利润(万元)"></el-table-column>
+          <el-table-column prop="address" label="操作" width="200">
+            <template slot-scope="scope">
+              <el-button @click="inventory(1)" type="primary">库存</el-button>
+              <el-button @click="typeChange(1)" type="primary">费用</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+        style="text-align:center" :page-size="deptCircularPage.pageSize"
+        layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal">
+      </el-pagination>
+    </div>
+  </div>
+</template>
+<script>
+  import {
+    getInOutDetailed,
+    getwarehouse
+  } from '@/model/profitable/index'
+  export default {
+    components: {},
+    data() {
+      return {
+        value: "",
+        tableData: [],
+        deptBudgetTotal: 0,
+        currentPage: 1,
+        pageSize: 10,
+        warehouse:[],
+        deptCircularPage: {},
+        searchType:"",
+        searchKeyWord:"",
+        startDate:"",
+        endDate:"",
+        outtotal:0,
+        intotal:0,
+      }
+    },
+    activated() {
+         this.getPassYearFormatDate()
+      this.getList()
+    },
+    methods: {
+      typeChange(num){
+        this.searchType = num
+        this.getList()
+      },
+      inventory(){
+        this.$router.push({name:'contractinventory'})
+      },
+      getPassYearFormatDate () {
+          var nowDate = new Date()
+          var _date = new Date()
+          nowDate.setTime(nowDate.getTime()-24*60*60*1000*30)
+          var year = nowDate.getFullYear()
+          var year1 = _date.getFullYear()
+          var month = nowDate.getMonth() + 1
+          var month1 = _date.getMonth() + 1
+          var strDate = nowDate.getDate()
+          var strDate1 = _date.getDate()
+          if (month >= 1 && month <= 9) {
+            month = '0' + month
+          }
+           if (month1 >= 1 && month1 <= 9) {
+            month1 = '0' + month1
+          }
+        
+          if (strDate >= 0 && strDate <= 9) {
+            strDate = '0' + strDate
+          }
+           if (strDate1 >= 0 && strDate1 <= 9) {
+            strDate1 = '0' + strDate1
+          }
+          this.startDate = year + '-' + month +'-' + strDate
+          this.endDate = year1 + '-' + month1 +'-' + strDate1
+          this.value=[this.startDate,this.endDate]
+        },
+      getList() {
+        
+         getInOutDetailed({
+            // warehouseType: 1,
+            compId: localStorage.getItem('ws-pf_compId'),
+            startDate:this.startDate,
+            endDate:this.endDate,
+            searchKeyWord:this.searchKeyWord,
+            currentPage: this.currentPage,
+            pageSize:this.pageSize ,
+            searchType:this.searchType
+          })
+          .toPromise()
+          .then(response => {
+            this.tableData = response.records
+            if(this.tableData.length > 0){
+              this.intotal = Number(this.tableData[0].inContractMoney) + Number(this.tableData[0].inWarehouseMoney) + Number(this.tableData[0].inManageMoney)
+            this.outtotal = Number(this.tableData[0].outContractMoney) + Number(this.tableData[0].outWarehouseMoney) + Number(this.tableData[0].outManageMoney)
+            }
+            
+           this.deptBudgetTotal = response.total
+          })
+      },
+      changeDate(){
+        if(this.value){
+          this.startDate = this.value[0]
+          this.endDate = this.value[1]
+        }
+        this.getList()
+      },
+      pickerOptions() {},
+      find() {
+        this.getList()
+
+      },
+      handleSizeChange(val) {
+        console.log(`每页 ${val} 条`)
+        this.pageSize = val
+        this.getList()
+      },
+      handleCurrentChange(val) {
+        this.currentPage = val
+        console.log(`当前页: ${val}`)
+        this.getList()
+      },
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .container {
+    background: #E8ECF6;
+  }
+
+  .center {
+    margin: 0 auto;
+    background: #ffffff;
+    height: calc(100vh - 13vh);
+    border-radius: 4px;
+    padding: 20px 0;
+
+    /deep/.el-table td,
+    /deep/.el-table th {
+      text-align: center;
+    }
+  }
+
+  .row_top {
+    background: #F6F7FC;
+    border-radius: 4px;
+    margin-bottom: 10px;
+
+    .bg-left {
+      padding-left: 30px;
+    }
+
+    .bg-right {
+      padding-right: 10px;
+      text-align: right;
+    }
+
+    .title {
+      position: relative;
+    }
+
+    .title::before {
+      content: '';
+      display: inline-block;
+      width: 5px;
+      height: 30px;
+      background: #5473e8;
+      position: absolute;
+      left: 0;
+    }
+  }
+
+  .datascreen {
+    display: flex;
+
+    .data_css {
+      width: 40%;
+    }
+
+    .input_css {
+      width: 50%;
+      margin: 0 10px;
+    }
+
+    .find {
+      margin-right: 10px;
+    }
+  }
+
+  .fromdata {
+    margin: 20px 0;
+    overflow-y: scroll;
+    height: 546px;
+  }
+  .top_info{
+    margin: 10px 0 0 10px;
+    min-width: 712px;
+    .info_css{
+      margin-right: 20px;
+    }
+  }
+  .bg-right{
+    padding-top:15px;
+  }
+</style>

+ 78 - 0
src/views/taskManagement/component/routers/route.js

@@ -127,6 +127,84 @@ const tranManagementRouter = {
       },
       hidden: true
     },
+    //出入库任务出库选择货源
+    {
+      path: 'supplyofgoods',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/taskManagement/supplyofgoods'),
+      name: 'supplyofgoods',
+      meta: {
+        title: 'supplyofgoods',
+        shortcutEntrance: 'tranManagement',
+        module: 'warehouseManagement.warehouse.warehouseInfoTask.View',
+      },
+      hidden: true
+    },
+     //出入库任务退库选择货源
+     {
+      path: 'outsupplyofgoods',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/taskManagement/outsupplyofgoods'),
+      name: 'outsupplyofgoods',
+      meta: {
+        title: 'outsupplyofgoods',
+        shortcutEntrance: 'tranManagement',
+        module: 'warehouseManagement.warehouse.warehouseInfoTask.View',
+      },
+      hidden: true
+    },
+    //出入库任务出库查看货源
+    {
+      path: 'supplyofgoodslook',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/taskManagement/supplyofgoodslook'),
+      name: 'supplyofgoodslook',
+      meta: {
+        title: 'supplyofgoodslook',
+        shortcutEntrance: 'tranManagement',
+        module: 'warehouseManagement.warehouse.warehouseInfoTask.View',
+      },
+      hidden: true
+    },
+     //出入库任务退库查看货源
+     {
+      path: 'outsupplyofgoodslook',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/taskManagement/outsupplyofgoodslook'),
+      name: 'outsupplyofgoodslook',
+      meta: {
+        title: 'outsupplyofgoodslook',
+        shortcutEntrance: 'tranManagement',
+        module: 'warehouseManagement.warehouse.warehouseInfoTask.View',
+      },
+      hidden: true
+    },
+        //出入库任务出库编辑选择货源
+        {
+          path: 'supplyofgoodsedit',
+          component: () =>
+            import(/* webpackChunkName: "applDetail" */ '@/views/taskManagement/supplyofgoodsedit'),
+          name: 'supplyofgoodsedit',
+          meta: {
+            title: 'supplyofgoodsedit',
+            shortcutEntrance: 'tranManagement',
+            module: 'warehouseManagement.warehouse.warehouseInfoTask.View',
+          },
+          hidden: true
+        },
+         //出入库任务退库编辑选择货源
+         {
+          path: 'outsupplyofgoodsedit',
+          component: () =>
+            import(/* webpackChunkName: "applDetail" */ '@/views/taskManagement/outsupplyofgoodsedit'),
+          name: 'outsupplyofgoodsedit',
+          meta: {
+            title: 'outsupplyofgoodsedit',
+            shortcutEntrance: 'tranManagement',
+            module: 'warehouseManagement.warehouse.warehouseInfoTask.View',
+          },
+          hidden: true
+        },
     //出入库任务添加
     {
       path: 'tranManagementWarehouseInOuttaskAdd',

+ 636 - 0
src/views/taskManagement/outsupplyofgoods.vue

@@ -0,0 +1,636 @@
+<!--出入库任务-->
+<template>
+  <div class="container">
+    	<el-row>
+			<el-col :span="12">
+				<h2 class="bg-left title">选择货源</h2>
+			</el-col>
+			<el-col :span="12" class="bg-right">
+				<el-button class="bg-bottom" type="primary" size="small" @click="returnsales()">
+					<img width="6" height="10" style="vertical-align: bottom; margin-right: 3px"
+						src="../../../public/img/lujing.png" alt />返回
+				</el-button>
+			</el-col>
+		</el-row>
+    <BaseHeaderLayout :leftSpan="16">
+      <template slot="left">
+          <div style='width:50%;margin-right:10px;'>
+            <el-date-picker v-model="value2" type="daterange" align="right" unlink-panels range-separator="至"
+          start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions">
+        </el-date-picker>
+  
+          </div>
+      </template>
+      <template slot="right">
+        <ws-input @keyup.enter.native="find()" class='findValue' v-model="searchKeyWord" placeholder="可按合同编号或任务编号查找" clearable maxlength="300" type="input"></ws-input>
+        <ws-button class="find" type="primary" @click="lookUp()">
+          <img width="16" height="16" style="
+              vertical-align: text-top;
+              position: relative;
+              top: 0px;
+              left: -8px;
+            " src="../../../public/img/sousuo.png" alt />
+        </ws-button>
+      </template>
+    </BaseHeaderLayout>
+    <el-row style='margin:10px;'>
+        <el-col :span="12">已选 10 条,合计出库重量  100吨,玉米(潮粮)50吨,玉米(机收)20吨,玉米 30吨</el-col>
+        <el-col style='text-align:right;' :span="12">
+             <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">预览
+        </ws-button>
+         <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">取消预览
+        </ws-button>
+         <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">提交
+        </ws-button>
+        </el-col>
+    </el-row>   
+      <el-table class="wenzi" :data="gainList.records" style="width: 100%"  @selection-change="handleSelectionChange" height="calc(100% - 110px)">
+          <el-table-column
+      type="selection"
+      width="55">
+    </el-table-column>
+        <el-table-column type="index" label="序号">
+          <template scope="scope">
+            <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+            <span v-else>{{ scope.$index + 1 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="inOutTaskNo" label="车牌号" width="160"></el-table-column>
+        <el-table-column prop="contractNo" label="出库时间" width="160">
+        </el-table-column>
+        <el-table-column prop="warehouseName" class="table_td" label="净重(吨)"></el-table-column>
+        <el-table-column prop="inOutType" class="table_td" label="出货库"></el-table-column>
+        <el-table-column prop="goodsName" class="table_td" label="货源"></el-table-column>
+      </el-table>
+      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+        :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal"></el-pagination>
+  </div>
+</template>
+<script>
+  import {
+    getoreditoutput,
+    outdelete,
+    movestates
+  } from '@/model/tasksport/index'
+  import {
+    downloadFile
+  } from '@/utils/batchDown'
+  import Pagination from '@/components/Pagination'
+  import WsUpload from '@/components/WsUpload'
+  import {
+    dayjs,
+    fmoney,
+    EventBus
+  } from 'base-core-lib'
+  export default {
+    name: 'viewSpareMoney',
+    components: {
+      WsUpload,
+      Pagination,
+    },
+    watch: {
+      vesselId(val) {
+        this.getList()
+      },
+      isShow(val) {
+        this.showType = val
+      },
+    },
+    data() {
+      return {
+        //弹出框
+        dialogViewSpareMoney: false,
+        dialogApproveFormVisible: false,
+        // 船舶类型
+        monetaryKey: null,
+        // 表格显示数据
+        tableDate: [],
+
+        // 是否显示
+        showType: true,
+        // 年
+        year: '',
+        gainList: [],
+        currentPage: 1,
+        primary: '1',
+                pickerOptions: {
+          shortcuts: [{
+              text: '本周',
+              onClick(picker) {
+                const end = new Date()
+                const start = new Date()
+                var thisDay = start.getDay()
+                var thisDate = start.getDate()
+                if (thisDay != 0) {
+                  start.setDate(thisDate - thisDay)
+                }
+                picker.$emit('pick', [start, end])
+              },
+            },
+            {
+              text: '本月',
+              onClick(picker) {
+                const end = new Date()
+                const start = new Date()
+                start.setDate(1)
+                picker.$emit('pick', [start, end])
+              },
+            },
+            {
+              text: '本季度',
+              onClick(picker) {
+                var oDate = new Date()
+
+                var thisYear = oDate.getFullYear()
+                var thisMonth = oDate.getMonth() + 1
+
+                var n = Math.ceil(thisMonth / 3) // 季度
+
+                var Month = n * 3 - 1
+
+                var start = new Date(thisYear, Month - 2, 1)
+                var end = new Date()
+
+                picker.$emit('pick', [start, end])
+              },
+            },
+          ],
+        },
+        value1: '',
+        value2: '',
+        pageSize: 10,
+        searchType: 1,
+        searchTypeText: '待审核',
+        searchKeyWord: '',
+        inOutType:'',
+        inOutTypeList:[
+          {
+            value: '销售出库',
+            type: 1
+          },
+          {
+            value: '移库出库',
+            type: 3
+          },
+          {
+            value: '暂存出库',
+            type: 2
+          },
+          {
+            value: '贸易服务出库',
+            type: 4
+          },
+          {
+            value: '采购出库',
+            type: 5
+          },
+          {
+            value: '采购入库',
+            type: 6
+          },
+          {
+            value: '移库入库',
+            type: 7
+          },
+          {
+            value: '暂存入库',
+            type: 8
+          },
+          {
+            value: '贸易服务入库',
+            type: 9
+          },
+          {
+            value: '退库',
+            type: 10
+          },
+        ],
+        contractType: 2,
+        taskTypeList: [{
+            value: '待审核',
+            type: 1
+          },
+          {
+            value: '执行中',
+            type: 3
+          },
+          {
+            value: '已驳回',
+            type: 2
+          },
+          {
+            value: '已完成',
+            type: 4
+          },
+          {
+            value: '全部任务',
+            type: ''
+          },
+        ],
+        // 提交类型
+        submitType: true,
+        size: 10,
+        spanArr: [],
+        warehouseName: '',
+        deptBudgetTotal: 0,
+        compId: localStorage.getItem('ws-pf_compId'),
+        deptCircularPage: {},
+        historyList: [],
+        pickerBeginDateBefore: {
+          disabledDate: (time) => {
+            return time.getTime() > Date.now()
+          },
+        },
+        accessoryTFs: false,
+      }
+    },
+    activated() {
+      this.getList()
+      this.showType = this.isShow
+    },
+    mounted() {
+      this.getList()
+      this.showType = this.isShow
+    },
+    methods: {
+      selectinOutType(){
+        this.getList()
+      },
+       handleSelectionChange(val) {
+        this.multipleSelection = val;
+      },
+      //添加
+      handleAdd() {
+        this.$router.push({
+          path: 'tranManagementWarehouseInOuttaskAdd'
+        })
+      },
+      //查找
+      lookUp() {
+        this.currentPage = 1
+        this.getList()
+      },
+      deleteclick(row) {
+        var text = ''
+        if (
+          (row.taskTypeKey == 3 && row.inOutType == '移库出库') ||
+          (row.taskTypeKey == 4 && row.inOutType == '销售出库') ||
+          (row.taskTypeKey == 4 && row.inOutType == '退库')
+        ) {
+          text = '相同任务编号的任务将一并删除且不可恢复,是否确定删除?'
+        } else {
+          text = `任务删除后不可恢复,是否确定删除?`
+        }
+        //cancelButtonClass: "btn-custom-cancel"
+        this.$confirm(text, {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning',
+          })
+          .then(() => {
+            outdelete({
+                id: row.id,
+                relevanceId: row.relevanceId,
+                inOutFlag: row.inOutFlag,
+              })
+              .toPromise()
+              .then((response) => {
+                this.getList()
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      },
+      getList() {
+        getoreditoutput({
+            compId: localStorage.getItem('ws-pf_compId'),
+            currentPage: this.currentPage,
+            pageSize: this.pageSize,
+            searchType: this.searchType,
+            searchKeyWord: this.searchKeyWord,
+            inOutType:this.inOutType
+          })
+          .toPromise()
+          .then((response) => {
+            this.gainList = response
+            this.currentPage = response.current
+            this.pageSize = response.size
+            this.deptBudgetTotal = response.total
+          })
+      },
+      //编辑
+      delivery(item) {
+        this.$router.push({
+          path: 'tranManagementWarehouseInOuttaskedit',
+          query: {
+            relevanceId: item.relevanceId,
+            inOutFlag: item.inOutFlag
+          },
+        })
+      },
+      audit(item) {
+        this.$router.push({
+          path: 'tranManagementWarehouseInOuttaskaudit',
+          query: {
+            relevanceId: item.relevanceId,
+            taskId: item.taskId,
+            businessKey: item.id,
+            workflowId: item.workflowId,
+          },
+        })
+      },
+      getSpanArr(data) {
+        let that = this
+
+        //页面展示的数据,不一定是全部的数据,所以每次都清空之前存储的 保证遍历的数据是最新的数据。以免造成数据渲染混乱
+
+        that.spanArr = []
+
+        that.pos = 0
+
+        //遍历数据
+
+        data.forEach((item, index) => {
+          //判断是否是第一项
+
+          // if (index === 0) {
+          //   this.spanArr.push(1)
+          //   this.pos = 0
+          // } else {
+          //不是第一项时,就根据标识去存储
+          if (data[index].warehouseNumViewList.length > 1) {
+            // 查找到符合条件的数据时每次要把之前存储的数据+1
+            this.spanArr[this.pos] = data[index].warehouseNumViewList.length
+            this.spanArr.push(0)
+          } else {
+            // 没有符合的数据时,要记住当前的index
+            this.spanArr.push(1)
+            this.pos = index
+          }
+          // }
+        })
+      },
+      //查看//传参
+      nocomplete(row) {
+        this.$router.push({
+          path: 'inOutWarehousetaskEdit',
+          query: {
+            relevanceId: row.relevanceId,
+            businessKey: row.id,
+            workflowId: row.workflowId,
+          },
+        })
+      },
+      dateFormat(fmt, date) {
+        let ret
+        const opt = {
+          'Y+': date.getFullYear().toString(), // 年
+          'm+': (date.getMonth() + 1).toString(), // 月
+          'd+': date.getDate().toString(), // 日
+          'H+': date.getHours().toString(), // 时
+          // "M+": date.getMinutes().toString(),         // 分
+          // "S+": date.getSeconds().toString()          // 秒
+          // 有其他格式化字符需求可以继续添加,必须转化成字符串
+        }
+        for (let k in opt) {
+          ret = new RegExp('(' + k + ')').exec(fmt)
+          if (ret) {
+            fmt = fmt.replace(
+              ret[1],
+              ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
+            )
+          }
+        }
+        return fmt
+      },
+      handleClose() {
+        this.accessoryTFs = false
+      },
+      handleSizeChange(val) {
+        console.log(`每页 ${val} 条`)
+        this.pageSize = val
+        this.getList()
+      },
+      handleCurrentChange(val) {
+        this.currentPage = val
+        console.log(`当前页: ${val}`)
+        this.getList()
+      },
+      editClick(row) {
+        var status = ''
+        if (row.taskStatus == '待审核' || row.taskStatus == '已完成') {
+          status = '执行中'
+        } else if (row.taskStatus == '执行中') {
+          status = '已完成'
+        }
+        //cancelButtonClass: "btn-custom-cancel"
+        this.$confirm(`是否将状态改为${status}`, {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning',
+          })
+          .then(() => {
+            movestates({
+                id: row.id
+              })
+              .toPromise()
+              .then((response) => {
+                this.$notify.success({
+                  title: '成功',
+                  message: '状态修改成功',
+                })
+                this.getList()
+              })
+              .catch((response) => {
+                // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      },
+      selecttaskType(e) {
+        for (var i = 0; i < this.taskTypeList.length; i++) {
+          if (this.taskTypeList[i].value == e) {
+            this.searchType = this.taskTypeList[i].type
+          }
+        }
+        this.currentPage = 1,
+          this.getList()
+      },
+      handleExamine(row) {
+        this.$router.push({
+          name: 'salesContractExamine',
+          query: {
+            id: row.id
+          },
+        })
+      },
+      // 关闭 dialog时 处理文件url 初始化upload组件
+      handleCloe() {
+        this.dialogViewSpareMoney = false
+      },
+      history(row) {
+        billoperatehis({
+            id: row.id
+          })
+          .toPromise()
+          .then((response) => {
+            this.historyList = response
+          })
+      },
+      find() {
+        this.currentPage = 1
+        this.getList()
+      },
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .vertical-text-left {
+    width: 62px;
+    text-align: right;
+  }
+
+  .el-button--primary {
+    background-color: #5878e8;
+    border-color: #5878e8;
+  }
+
+  .el-button--default {
+    color: #8890b1;
+    border-color: #e8eaf1;
+  }
+ 	.title {
+		position: relative;
+		padding-left: 10px;
+	}
+
+	.title::before {
+		content: '';
+		display: inline-block;
+		width: 5px;
+		height: 30px;
+		background: #5473e8;
+		position: absolute;
+		left: 0;
+	}
+  
+	.bg-right {
+		text-align: right;
+		padding: 16px 20px;
+	}
+  /deep/.base_header_layout .grid-content.right .find.el-button--primary {
+    width: 30px;
+    border-top-left-radius: 0px;
+    border-bottom-left-radius: 0px;
+  }
+
+  /deep/.findValue .el-input__inner {
+    border-top-right-radius: 0px;
+    border-bottom-right-radius: 0px;
+  }
+
+  .completed.el-button--default {
+    border-color: #5878e8;
+    background-color: #f6f7fc;
+    color: #5878e8;
+  }
+
+  .putstorage.el-button--default,
+  .deliverystorage.el-button--default {
+    border-color: #8890b1;
+    background-color: #fff;
+    color: #8890b1;
+  }
+
+  /deep/.el-table td,
+  /deep/.el-table th.is-leaf {
+    border-right: 1px solid #e9ecf7;
+    text-align: center;
+  }
+
+  /deep/.el-table tr td:first-child,
+  /deep/.el-table tr th.is-leaf:first-child {
+    border-left: 1px solid #e9ecf7;
+  }
+
+  .el-row {
+    height: 50px;
+  }
+
+  .findValue {
+    // width: 0%;
+    margin-left: 10px;
+  }
+
+  .search {
+    margin-left: -250px;
+  }
+
+  .Value {
+    width: 300px;
+    margin-left: 766px;
+  }
+
+  .el-pagination {
+    text-align: center;
+  }
+
+  .winseaview-main {
+    background: #e8ecf6;
+    box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.1);
+  }
+
+  .spans {
+    display: table-caption;
+    width: 17px;
+    line-height: 19px;
+  }
+
+  //执行样式
+  .executory,
+  .inExecution,
+  .done {
+    width: 6px;
+    height: 6px;
+    display: inline-block;
+    border-radius: 50%;
+    position: relative;
+    top: -1px;
+    font-size: 14px;
+  }
+
+  .executory {
+    background: #ff9f24;
+  }
+
+  .inExecution {
+    background: #5878e8;
+  }
+
+  .done {
+    background: #50cad4;
+  }
+
+  .el-select {
+    width: 30%;
+    margin-right: 10px;
+  }
+
+  /deep/.typeselect .el-input__inner {
+    color: #8890b1;
+  }
+
+  .corles {
+    color: #5878e8;
+    font-size: 14px;
+  }
+</style>

+ 636 - 0
src/views/taskManagement/outsupplyofgoodsedit.vue

@@ -0,0 +1,636 @@
+<!--出入库任务-->
+<template>
+  <div class="container">
+    	<el-row>
+			<el-col :span="12">
+				<h2 class="bg-left title">选择货源</h2>
+			</el-col>
+			<el-col :span="12" class="bg-right">
+				<el-button class="bg-bottom" type="primary" size="small" @click="returnsales()">
+					<img width="6" height="10" style="vertical-align: bottom; margin-right: 3px"
+						src="../../../public/img/lujing.png" alt />返回
+				</el-button>
+			</el-col>
+		</el-row>
+    <BaseHeaderLayout :leftSpan="16">
+      <template slot="left">
+          <div style='width:50%;margin-right:10px;'>
+            <el-date-picker v-model="value2" type="daterange" align="right" unlink-panels range-separator="至"
+          start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions">
+        </el-date-picker>
+  
+          </div>
+      </template>
+      <template slot="right">
+        <ws-input @keyup.enter.native="find()" class='findValue' v-model="searchKeyWord" placeholder="可按合同编号或任务编号查找" clearable maxlength="300" type="input"></ws-input>
+        <ws-button class="find" type="primary" @click="lookUp()">
+          <img width="16" height="16" style="
+              vertical-align: text-top;
+              position: relative;
+              top: 0px;
+              left: -8px;
+            " src="../../../public/img/sousuo.png" alt />
+        </ws-button>
+      </template>
+    </BaseHeaderLayout>
+    <el-row style='margin:10px;'>
+        <el-col :span="12">已选 10 条,合计出库重量  100吨,玉米(潮粮)50吨,玉米(机收)20吨,玉米 30吨</el-col>
+        <el-col style='text-align:right;' :span="12">
+             <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">预览
+        </ws-button>
+         <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">取消预览
+        </ws-button>
+         <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">提交
+        </ws-button>
+        </el-col>
+    </el-row>   
+      <el-table class="wenzi" :data="gainList.records" style="width: 100%"  @selection-change="handleSelectionChange" height="calc(100% - 110px)">
+          <el-table-column
+      type="selection"
+      width="55">
+    </el-table-column>
+        <el-table-column type="index" label="序号">
+          <template scope="scope">
+            <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+            <span v-else>{{ scope.$index + 1 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="inOutTaskNo" label="车牌号" width="160"></el-table-column>
+        <el-table-column prop="contractNo" label="出库时间" width="160">
+        </el-table-column>
+        <el-table-column prop="warehouseName" class="table_td" label="净重(吨)"></el-table-column>
+        <el-table-column prop="inOutType" class="table_td" label="出货库"></el-table-column>
+        <el-table-column prop="goodsName" class="table_td" label="货源"></el-table-column>
+      </el-table>
+      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+        :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal"></el-pagination>
+  </div>
+</template>
+<script>
+  import {
+    getoreditoutput,
+    outdelete,
+    movestates
+  } from '@/model/tasksport/index'
+  import {
+    downloadFile
+  } from '@/utils/batchDown'
+  import Pagination from '@/components/Pagination'
+  import WsUpload from '@/components/WsUpload'
+  import {
+    dayjs,
+    fmoney,
+    EventBus
+  } from 'base-core-lib'
+  export default {
+    name: 'viewSpareMoney',
+    components: {
+      WsUpload,
+      Pagination,
+    },
+    watch: {
+      vesselId(val) {
+        this.getList()
+      },
+      isShow(val) {
+        this.showType = val
+      },
+    },
+    data() {
+      return {
+        //弹出框
+        dialogViewSpareMoney: false,
+        dialogApproveFormVisible: false,
+        // 船舶类型
+        monetaryKey: null,
+        // 表格显示数据
+        tableDate: [],
+
+        // 是否显示
+        showType: true,
+        // 年
+        year: '',
+        gainList: [],
+        currentPage: 1,
+        primary: '1',
+                pickerOptions: {
+          shortcuts: [{
+              text: '本周',
+              onClick(picker) {
+                const end = new Date()
+                const start = new Date()
+                var thisDay = start.getDay()
+                var thisDate = start.getDate()
+                if (thisDay != 0) {
+                  start.setDate(thisDate - thisDay)
+                }
+                picker.$emit('pick', [start, end])
+              },
+            },
+            {
+              text: '本月',
+              onClick(picker) {
+                const end = new Date()
+                const start = new Date()
+                start.setDate(1)
+                picker.$emit('pick', [start, end])
+              },
+            },
+            {
+              text: '本季度',
+              onClick(picker) {
+                var oDate = new Date()
+
+                var thisYear = oDate.getFullYear()
+                var thisMonth = oDate.getMonth() + 1
+
+                var n = Math.ceil(thisMonth / 3) // 季度
+
+                var Month = n * 3 - 1
+
+                var start = new Date(thisYear, Month - 2, 1)
+                var end = new Date()
+
+                picker.$emit('pick', [start, end])
+              },
+            },
+          ],
+        },
+        value1: '',
+        value2: '',
+        pageSize: 10,
+        searchType: 1,
+        searchTypeText: '待审核',
+        searchKeyWord: '',
+        inOutType:'',
+        inOutTypeList:[
+          {
+            value: '销售出库',
+            type: 1
+          },
+          {
+            value: '移库出库',
+            type: 3
+          },
+          {
+            value: '暂存出库',
+            type: 2
+          },
+          {
+            value: '贸易服务出库',
+            type: 4
+          },
+          {
+            value: '采购出库',
+            type: 5
+          },
+          {
+            value: '采购入库',
+            type: 6
+          },
+          {
+            value: '移库入库',
+            type: 7
+          },
+          {
+            value: '暂存入库',
+            type: 8
+          },
+          {
+            value: '贸易服务入库',
+            type: 9
+          },
+          {
+            value: '退库',
+            type: 10
+          },
+        ],
+        contractType: 2,
+        taskTypeList: [{
+            value: '待审核',
+            type: 1
+          },
+          {
+            value: '执行中',
+            type: 3
+          },
+          {
+            value: '已驳回',
+            type: 2
+          },
+          {
+            value: '已完成',
+            type: 4
+          },
+          {
+            value: '全部任务',
+            type: ''
+          },
+        ],
+        // 提交类型
+        submitType: true,
+        size: 10,
+        spanArr: [],
+        warehouseName: '',
+        deptBudgetTotal: 0,
+        compId: localStorage.getItem('ws-pf_compId'),
+        deptCircularPage: {},
+        historyList: [],
+        pickerBeginDateBefore: {
+          disabledDate: (time) => {
+            return time.getTime() > Date.now()
+          },
+        },
+        accessoryTFs: false,
+      }
+    },
+    activated() {
+      this.getList()
+      this.showType = this.isShow
+    },
+    mounted() {
+      this.getList()
+      this.showType = this.isShow
+    },
+    methods: {
+      selectinOutType(){
+        this.getList()
+      },
+       handleSelectionChange(val) {
+        this.multipleSelection = val;
+      },
+      //添加
+      handleAdd() {
+        this.$router.push({
+          path: 'tranManagementWarehouseInOuttaskAdd'
+        })
+      },
+      //查找
+      lookUp() {
+        this.currentPage = 1
+        this.getList()
+      },
+      deleteclick(row) {
+        var text = ''
+        if (
+          (row.taskTypeKey == 3 && row.inOutType == '移库出库') ||
+          (row.taskTypeKey == 4 && row.inOutType == '销售出库') ||
+          (row.taskTypeKey == 4 && row.inOutType == '退库')
+        ) {
+          text = '相同任务编号的任务将一并删除且不可恢复,是否确定删除?'
+        } else {
+          text = `任务删除后不可恢复,是否确定删除?`
+        }
+        //cancelButtonClass: "btn-custom-cancel"
+        this.$confirm(text, {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning',
+          })
+          .then(() => {
+            outdelete({
+                id: row.id,
+                relevanceId: row.relevanceId,
+                inOutFlag: row.inOutFlag,
+              })
+              .toPromise()
+              .then((response) => {
+                this.getList()
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      },
+      getList() {
+        getoreditoutput({
+            compId: localStorage.getItem('ws-pf_compId'),
+            currentPage: this.currentPage,
+            pageSize: this.pageSize,
+            searchType: this.searchType,
+            searchKeyWord: this.searchKeyWord,
+            inOutType:this.inOutType
+          })
+          .toPromise()
+          .then((response) => {
+            this.gainList = response
+            this.currentPage = response.current
+            this.pageSize = response.size
+            this.deptBudgetTotal = response.total
+          })
+      },
+      //编辑
+      delivery(item) {
+        this.$router.push({
+          path: 'tranManagementWarehouseInOuttaskedit',
+          query: {
+            relevanceId: item.relevanceId,
+            inOutFlag: item.inOutFlag
+          },
+        })
+      },
+      audit(item) {
+        this.$router.push({
+          path: 'tranManagementWarehouseInOuttaskaudit',
+          query: {
+            relevanceId: item.relevanceId,
+            taskId: item.taskId,
+            businessKey: item.id,
+            workflowId: item.workflowId,
+          },
+        })
+      },
+      getSpanArr(data) {
+        let that = this
+
+        //页面展示的数据,不一定是全部的数据,所以每次都清空之前存储的 保证遍历的数据是最新的数据。以免造成数据渲染混乱
+
+        that.spanArr = []
+
+        that.pos = 0
+
+        //遍历数据
+
+        data.forEach((item, index) => {
+          //判断是否是第一项
+
+          // if (index === 0) {
+          //   this.spanArr.push(1)
+          //   this.pos = 0
+          // } else {
+          //不是第一项时,就根据标识去存储
+          if (data[index].warehouseNumViewList.length > 1) {
+            // 查找到符合条件的数据时每次要把之前存储的数据+1
+            this.spanArr[this.pos] = data[index].warehouseNumViewList.length
+            this.spanArr.push(0)
+          } else {
+            // 没有符合的数据时,要记住当前的index
+            this.spanArr.push(1)
+            this.pos = index
+          }
+          // }
+        })
+      },
+      //查看//传参
+      nocomplete(row) {
+        this.$router.push({
+          path: 'inOutWarehousetaskEdit',
+          query: {
+            relevanceId: row.relevanceId,
+            businessKey: row.id,
+            workflowId: row.workflowId,
+          },
+        })
+      },
+      dateFormat(fmt, date) {
+        let ret
+        const opt = {
+          'Y+': date.getFullYear().toString(), // 年
+          'm+': (date.getMonth() + 1).toString(), // 月
+          'd+': date.getDate().toString(), // 日
+          'H+': date.getHours().toString(), // 时
+          // "M+": date.getMinutes().toString(),         // 分
+          // "S+": date.getSeconds().toString()          // 秒
+          // 有其他格式化字符需求可以继续添加,必须转化成字符串
+        }
+        for (let k in opt) {
+          ret = new RegExp('(' + k + ')').exec(fmt)
+          if (ret) {
+            fmt = fmt.replace(
+              ret[1],
+              ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
+            )
+          }
+        }
+        return fmt
+      },
+      handleClose() {
+        this.accessoryTFs = false
+      },
+      handleSizeChange(val) {
+        console.log(`每页 ${val} 条`)
+        this.pageSize = val
+        this.getList()
+      },
+      handleCurrentChange(val) {
+        this.currentPage = val
+        console.log(`当前页: ${val}`)
+        this.getList()
+      },
+      editClick(row) {
+        var status = ''
+        if (row.taskStatus == '待审核' || row.taskStatus == '已完成') {
+          status = '执行中'
+        } else if (row.taskStatus == '执行中') {
+          status = '已完成'
+        }
+        //cancelButtonClass: "btn-custom-cancel"
+        this.$confirm(`是否将状态改为${status}`, {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning',
+          })
+          .then(() => {
+            movestates({
+                id: row.id
+              })
+              .toPromise()
+              .then((response) => {
+                this.$notify.success({
+                  title: '成功',
+                  message: '状态修改成功',
+                })
+                this.getList()
+              })
+              .catch((response) => {
+                // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      },
+      selecttaskType(e) {
+        for (var i = 0; i < this.taskTypeList.length; i++) {
+          if (this.taskTypeList[i].value == e) {
+            this.searchType = this.taskTypeList[i].type
+          }
+        }
+        this.currentPage = 1,
+          this.getList()
+      },
+      handleExamine(row) {
+        this.$router.push({
+          name: 'salesContractExamine',
+          query: {
+            id: row.id
+          },
+        })
+      },
+      // 关闭 dialog时 处理文件url 初始化upload组件
+      handleCloe() {
+        this.dialogViewSpareMoney = false
+      },
+      history(row) {
+        billoperatehis({
+            id: row.id
+          })
+          .toPromise()
+          .then((response) => {
+            this.historyList = response
+          })
+      },
+      find() {
+        this.currentPage = 1
+        this.getList()
+      },
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .vertical-text-left {
+    width: 62px;
+    text-align: right;
+  }
+
+  .el-button--primary {
+    background-color: #5878e8;
+    border-color: #5878e8;
+  }
+
+  .el-button--default {
+    color: #8890b1;
+    border-color: #e8eaf1;
+  }
+ 	.title {
+		position: relative;
+		padding-left: 10px;
+	}
+
+	.title::before {
+		content: '';
+		display: inline-block;
+		width: 5px;
+		height: 30px;
+		background: #5473e8;
+		position: absolute;
+		left: 0;
+	}
+  
+	.bg-right {
+		text-align: right;
+		padding: 16px 20px;
+	}
+  /deep/.base_header_layout .grid-content.right .find.el-button--primary {
+    width: 30px;
+    border-top-left-radius: 0px;
+    border-bottom-left-radius: 0px;
+  }
+
+  /deep/.findValue .el-input__inner {
+    border-top-right-radius: 0px;
+    border-bottom-right-radius: 0px;
+  }
+
+  .completed.el-button--default {
+    border-color: #5878e8;
+    background-color: #f6f7fc;
+    color: #5878e8;
+  }
+
+  .putstorage.el-button--default,
+  .deliverystorage.el-button--default {
+    border-color: #8890b1;
+    background-color: #fff;
+    color: #8890b1;
+  }
+
+  /deep/.el-table td,
+  /deep/.el-table th.is-leaf {
+    border-right: 1px solid #e9ecf7;
+    text-align: center;
+  }
+
+  /deep/.el-table tr td:first-child,
+  /deep/.el-table tr th.is-leaf:first-child {
+    border-left: 1px solid #e9ecf7;
+  }
+
+  .el-row {
+    height: 50px;
+  }
+
+  .findValue {
+    // width: 0%;
+    margin-left: 10px;
+  }
+
+  .search {
+    margin-left: -250px;
+  }
+
+  .Value {
+    width: 300px;
+    margin-left: 766px;
+  }
+
+  .el-pagination {
+    text-align: center;
+  }
+
+  .winseaview-main {
+    background: #e8ecf6;
+    box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.1);
+  }
+
+  .spans {
+    display: table-caption;
+    width: 17px;
+    line-height: 19px;
+  }
+
+  //执行样式
+  .executory,
+  .inExecution,
+  .done {
+    width: 6px;
+    height: 6px;
+    display: inline-block;
+    border-radius: 50%;
+    position: relative;
+    top: -1px;
+    font-size: 14px;
+  }
+
+  .executory {
+    background: #ff9f24;
+  }
+
+  .inExecution {
+    background: #5878e8;
+  }
+
+  .done {
+    background: #50cad4;
+  }
+
+  .el-select {
+    width: 30%;
+    margin-right: 10px;
+  }
+
+  /deep/.typeselect .el-input__inner {
+    color: #8890b1;
+  }
+
+  .corles {
+    color: #5878e8;
+    font-size: 14px;
+  }
+</style>

+ 603 - 0
src/views/taskManagement/outsupplyofgoodslook.vue

@@ -0,0 +1,603 @@
+<!--出入库任务-->
+<template>
+  <div class="container">
+    	<el-row>
+			<el-col :span="12">
+				<h2 class="bg-left title">查看货源</h2>
+			</el-col>
+			<el-col :span="12" class="bg-right">
+				<el-button class="bg-bottom" type="primary" size="small" @click="returnsales()">
+					<img width="6" height="10" style="vertical-align: bottom; margin-right: 3px"
+						src="../../../public/img/lujing.png" alt />返回
+				</el-button>
+			</el-col>
+		</el-row>
+    <el-row style='margin:10px;'>
+        <el-col :span="12">已选 10 条,合计出库重量  100吨,玉米(潮粮)50吨,玉米(机收)20吨,玉米 30吨</el-col>
+        <el-col style='text-align:right;' :span="12">
+        </el-col>
+    </el-row>   
+      <el-table class="wenzi" :data="gainList.records" style="width: 100%"  @selection-change="handleSelectionChange" height="calc(100% - 110px)">
+          <el-table-column
+      type="selection"
+      width="55">
+    </el-table-column>
+        <el-table-column type="index" label="序号">
+          <template scope="scope">
+            <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+            <span v-else>{{ scope.$index + 1 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="inOutTaskNo" label="车牌号" width="160"></el-table-column>
+        <el-table-column prop="contractNo" label="出库时间" width="160">
+        </el-table-column>
+        <el-table-column prop="warehouseName" class="table_td" label="净重(吨)"></el-table-column>
+        <el-table-column prop="inOutType" class="table_td" label="出货库"></el-table-column>
+        <el-table-column prop="goodsName" class="table_td" label="货源"></el-table-column>
+      </el-table>
+      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+        :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal"></el-pagination>
+  </div>
+</template>
+<script>
+  import {
+    getoreditoutput,
+    outdelete,
+    movestates
+  } from '@/model/tasksport/index'
+  import {
+    downloadFile
+  } from '@/utils/batchDown'
+  import Pagination from '@/components/Pagination'
+  import WsUpload from '@/components/WsUpload'
+  import {
+    dayjs,
+    fmoney,
+    EventBus
+  } from 'base-core-lib'
+  export default {
+    name: 'viewSpareMoney',
+    components: {
+      WsUpload,
+      Pagination,
+    },
+    watch: {
+      vesselId(val) {
+        this.getList()
+      },
+      isShow(val) {
+        this.showType = val
+      },
+    },
+    data() {
+      return {
+        //弹出框
+        dialogViewSpareMoney: false,
+        dialogApproveFormVisible: false,
+        // 船舶类型
+        monetaryKey: null,
+        // 表格显示数据
+        tableDate: [],
+
+        // 是否显示
+        showType: true,
+        // 年
+        year: '',
+        gainList: [],
+        currentPage: 1,
+        primary: '1',
+                pickerOptions: {
+          shortcuts: [{
+              text: '本周',
+              onClick(picker) {
+                const end = new Date()
+                const start = new Date()
+                var thisDay = start.getDay()
+                var thisDate = start.getDate()
+                if (thisDay != 0) {
+                  start.setDate(thisDate - thisDay)
+                }
+                picker.$emit('pick', [start, end])
+              },
+            },
+            {
+              text: '本月',
+              onClick(picker) {
+                const end = new Date()
+                const start = new Date()
+                start.setDate(1)
+                picker.$emit('pick', [start, end])
+              },
+            },
+            {
+              text: '本季度',
+              onClick(picker) {
+                var oDate = new Date()
+
+                var thisYear = oDate.getFullYear()
+                var thisMonth = oDate.getMonth() + 1
+
+                var n = Math.ceil(thisMonth / 3) // 季度
+
+                var Month = n * 3 - 1
+
+                var start = new Date(thisYear, Month - 2, 1)
+                var end = new Date()
+
+                picker.$emit('pick', [start, end])
+              },
+            },
+          ],
+        },
+        value1: '',
+        value2: '',
+        pageSize: 10,
+        searchType: 1,
+        searchTypeText: '待审核',
+        searchKeyWord: '',
+        inOutType:'',
+        inOutTypeList:[
+          {
+            value: '销售出库',
+            type: 1
+          },
+          {
+            value: '移库出库',
+            type: 3
+          },
+          {
+            value: '暂存出库',
+            type: 2
+          },
+          {
+            value: '贸易服务出库',
+            type: 4
+          },
+          {
+            value: '采购出库',
+            type: 5
+          },
+          {
+            value: '采购入库',
+            type: 6
+          },
+          {
+            value: '移库入库',
+            type: 7
+          },
+          {
+            value: '暂存入库',
+            type: 8
+          },
+          {
+            value: '贸易服务入库',
+            type: 9
+          },
+          {
+            value: '退库',
+            type: 10
+          },
+        ],
+        contractType: 2,
+        taskTypeList: [{
+            value: '待审核',
+            type: 1
+          },
+          {
+            value: '执行中',
+            type: 3
+          },
+          {
+            value: '已驳回',
+            type: 2
+          },
+          {
+            value: '已完成',
+            type: 4
+          },
+          {
+            value: '全部任务',
+            type: ''
+          },
+        ],
+        // 提交类型
+        submitType: true,
+        size: 10,
+        spanArr: [],
+        warehouseName: '',
+        deptBudgetTotal: 0,
+        compId: localStorage.getItem('ws-pf_compId'),
+        deptCircularPage: {},
+        historyList: [],
+        pickerBeginDateBefore: {
+          disabledDate: (time) => {
+            return time.getTime() > Date.now()
+          },
+        },
+        accessoryTFs: false,
+      }
+    },
+    activated() {
+      this.getList()
+      this.showType = this.isShow
+    },
+    mounted() {
+      this.getList()
+      this.showType = this.isShow
+    },
+    methods: {
+      selectinOutType(){
+        this.getList()
+      },
+       handleSelectionChange(val) {
+        this.multipleSelection = val;
+      },
+      //添加
+      handleAdd() {
+        this.$router.push({
+          path: 'tranManagementWarehouseInOuttaskAdd'
+        })
+      },
+      //查找
+      lookUp() {
+        this.currentPage = 1
+        this.getList()
+      },
+      deleteclick(row) {
+        var text = ''
+        if (
+          (row.taskTypeKey == 3 && row.inOutType == '移库出库') ||
+          (row.taskTypeKey == 4 && row.inOutType == '销售出库') ||
+          (row.taskTypeKey == 4 && row.inOutType == '退库')
+        ) {
+          text = '相同任务编号的任务将一并删除且不可恢复,是否确定删除?'
+        } else {
+          text = `任务删除后不可恢复,是否确定删除?`
+        }
+        //cancelButtonClass: "btn-custom-cancel"
+        this.$confirm(text, {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning',
+          })
+          .then(() => {
+            outdelete({
+                id: row.id,
+                relevanceId: row.relevanceId,
+                inOutFlag: row.inOutFlag,
+              })
+              .toPromise()
+              .then((response) => {
+                this.getList()
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      },
+      getList() {
+        getoreditoutput({
+            compId: localStorage.getItem('ws-pf_compId'),
+            currentPage: this.currentPage,
+            pageSize: this.pageSize,
+            searchType: this.searchType,
+            searchKeyWord: this.searchKeyWord,
+            inOutType:this.inOutType
+          })
+          .toPromise()
+          .then((response) => {
+            this.gainList = response
+            this.currentPage = response.current
+            this.pageSize = response.size
+            this.deptBudgetTotal = response.total
+          })
+      },
+      //编辑
+      delivery(item) {
+        this.$router.push({
+          path: 'tranManagementWarehouseInOuttaskedit',
+          query: {
+            relevanceId: item.relevanceId,
+            inOutFlag: item.inOutFlag
+          },
+        })
+      },
+      audit(item) {
+        this.$router.push({
+          path: 'tranManagementWarehouseInOuttaskaudit',
+          query: {
+            relevanceId: item.relevanceId,
+            taskId: item.taskId,
+            businessKey: item.id,
+            workflowId: item.workflowId,
+          },
+        })
+      },
+      getSpanArr(data) {
+        let that = this
+
+        //页面展示的数据,不一定是全部的数据,所以每次都清空之前存储的 保证遍历的数据是最新的数据。以免造成数据渲染混乱
+
+        that.spanArr = []
+
+        that.pos = 0
+
+        //遍历数据
+
+        data.forEach((item, index) => {
+          //判断是否是第一项
+
+          // if (index === 0) {
+          //   this.spanArr.push(1)
+          //   this.pos = 0
+          // } else {
+          //不是第一项时,就根据标识去存储
+          if (data[index].warehouseNumViewList.length > 1) {
+            // 查找到符合条件的数据时每次要把之前存储的数据+1
+            this.spanArr[this.pos] = data[index].warehouseNumViewList.length
+            this.spanArr.push(0)
+          } else {
+            // 没有符合的数据时,要记住当前的index
+            this.spanArr.push(1)
+            this.pos = index
+          }
+          // }
+        })
+      },
+      //查看//传参
+      nocomplete(row) {
+        this.$router.push({
+          path: 'inOutWarehousetaskEdit',
+          query: {
+            relevanceId: row.relevanceId,
+            businessKey: row.id,
+            workflowId: row.workflowId,
+          },
+        })
+      },
+      dateFormat(fmt, date) {
+        let ret
+        const opt = {
+          'Y+': date.getFullYear().toString(), // 年
+          'm+': (date.getMonth() + 1).toString(), // 月
+          'd+': date.getDate().toString(), // 日
+          'H+': date.getHours().toString(), // 时
+          // "M+": date.getMinutes().toString(),         // 分
+          // "S+": date.getSeconds().toString()          // 秒
+          // 有其他格式化字符需求可以继续添加,必须转化成字符串
+        }
+        for (let k in opt) {
+          ret = new RegExp('(' + k + ')').exec(fmt)
+          if (ret) {
+            fmt = fmt.replace(
+              ret[1],
+              ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
+            )
+          }
+        }
+        return fmt
+      },
+      handleClose() {
+        this.accessoryTFs = false
+      },
+      handleSizeChange(val) {
+        console.log(`每页 ${val} 条`)
+        this.pageSize = val
+        this.getList()
+      },
+      handleCurrentChange(val) {
+        this.currentPage = val
+        console.log(`当前页: ${val}`)
+        this.getList()
+      },
+      editClick(row) {
+        var status = ''
+        if (row.taskStatus == '待审核' || row.taskStatus == '已完成') {
+          status = '执行中'
+        } else if (row.taskStatus == '执行中') {
+          status = '已完成'
+        }
+        //cancelButtonClass: "btn-custom-cancel"
+        this.$confirm(`是否将状态改为${status}`, {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning',
+          })
+          .then(() => {
+            movestates({
+                id: row.id
+              })
+              .toPromise()
+              .then((response) => {
+                this.$notify.success({
+                  title: '成功',
+                  message: '状态修改成功',
+                })
+                this.getList()
+              })
+              .catch((response) => {
+                // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      },
+      selecttaskType(e) {
+        for (var i = 0; i < this.taskTypeList.length; i++) {
+          if (this.taskTypeList[i].value == e) {
+            this.searchType = this.taskTypeList[i].type
+          }
+        }
+        this.currentPage = 1,
+          this.getList()
+      },
+      handleExamine(row) {
+        this.$router.push({
+          name: 'salesContractExamine',
+          query: {
+            id: row.id
+          },
+        })
+      },
+      // 关闭 dialog时 处理文件url 初始化upload组件
+      handleCloe() {
+        this.dialogViewSpareMoney = false
+      },
+      history(row) {
+        billoperatehis({
+            id: row.id
+          })
+          .toPromise()
+          .then((response) => {
+            this.historyList = response
+          })
+      },
+      find() {
+        this.currentPage = 1
+        this.getList()
+      },
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .vertical-text-left {
+    width: 62px;
+    text-align: right;
+  }
+
+  .el-button--primary {
+    background-color: #5878e8;
+    border-color: #5878e8;
+  }
+
+  .el-button--default {
+    color: #8890b1;
+    border-color: #e8eaf1;
+  }
+ 	.title {
+		position: relative;
+		padding-left: 10px;
+	}
+
+	.title::before {
+		content: '';
+		display: inline-block;
+		width: 5px;
+		height: 30px;
+		background: #5473e8;
+		position: absolute;
+		left: 0;
+	}
+  
+	.bg-right {
+		text-align: right;
+		padding: 16px 20px;
+	}
+  /deep/.base_header_layout .grid-content.right .find.el-button--primary {
+    width: 30px;
+    border-top-left-radius: 0px;
+    border-bottom-left-radius: 0px;
+  }
+
+  /deep/.findValue .el-input__inner {
+    border-top-right-radius: 0px;
+    border-bottom-right-radius: 0px;
+  }
+
+  .completed.el-button--default {
+    border-color: #5878e8;
+    background-color: #f6f7fc;
+    color: #5878e8;
+  }
+
+  .putstorage.el-button--default,
+  .deliverystorage.el-button--default {
+    border-color: #8890b1;
+    background-color: #fff;
+    color: #8890b1;
+  }
+
+  /deep/.el-table td,
+  /deep/.el-table th.is-leaf {
+    border-right: 1px solid #e9ecf7;
+    text-align: center;
+  }
+
+  /deep/.el-table tr td:first-child,
+  /deep/.el-table tr th.is-leaf:first-child {
+    border-left: 1px solid #e9ecf7;
+  }
+
+  .el-row {
+    height: 50px;
+  }
+
+  .findValue {
+    // width: 0%;
+    margin-left: 10px;
+  }
+
+  .search {
+    margin-left: -250px;
+  }
+
+  .Value {
+    width: 300px;
+    margin-left: 766px;
+  }
+
+  .el-pagination {
+    text-align: center;
+  }
+
+  .winseaview-main {
+    background: #e8ecf6;
+    box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.1);
+  }
+
+  .spans {
+    display: table-caption;
+    width: 17px;
+    line-height: 19px;
+  }
+
+  //执行样式
+  .executory,
+  .inExecution,
+  .done {
+    width: 6px;
+    height: 6px;
+    display: inline-block;
+    border-radius: 50%;
+    position: relative;
+    top: -1px;
+    font-size: 14px;
+  }
+
+  .executory {
+    background: #ff9f24;
+  }
+
+  .inExecution {
+    background: #5878e8;
+  }
+
+  .done {
+    background: #50cad4;
+  }
+
+  .el-select {
+    width: 30%;
+    margin-right: 10px;
+  }
+
+  /deep/.typeselect .el-input__inner {
+    color: #8890b1;
+  }
+
+  .corles {
+    color: #5878e8;
+    font-size: 14px;
+  }
+</style>

+ 649 - 0
src/views/taskManagement/supplyofgoods.vue

@@ -0,0 +1,649 @@
+<!--出入库任务-->
+<template>
+  <div class="container">
+      	<el-row>
+			<el-col :span="12">
+				<h2 class="bg-left title">选择货源</h2>
+			</el-col>
+			<el-col :span="12" class="bg-right">
+				<el-button class="bg-bottom" type="primary" size="small" @click="returnsales()">
+					<img width="6" height="10" style="vertical-align: bottom; margin-right: 3px"
+						src="../../../public/img/lujing.png" alt />返回
+				</el-button>
+			</el-col>
+		</el-row>
+    <BaseHeaderLayout :leftSpan="16">
+      <template slot="left">
+          <div style='width:50%;margin-right:10px;'>
+            <el-date-picker v-model="value2" type="daterange" align="right" unlink-panels range-separator="至"
+          start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions">
+        </el-date-picker>
+  
+          </div>
+        <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">按日期排序
+        </ws-button>
+        <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">按成本排序
+        </ws-button>
+      </template>
+      <template slot="right">
+        <ws-input @keyup.enter.native="find()" class='findValue' v-model="searchKeyWord" placeholder="可按合同编号或任务编号查找" clearable maxlength="300" type="input"></ws-input>
+        <ws-button class="find" type="primary" @click="lookUp()">
+          <img width="16" height="16" style="
+              vertical-align: text-top;
+              position: relative;
+              top: 0px;
+              left: -8px;
+            " src="../../../public/img/sousuo.png" alt />
+        </ws-button>
+      </template>
+    </BaseHeaderLayout>
+    <el-row style='margin:10px;'>
+        <el-col :span="12">已选 10 条,合计出库重量  100吨,玉米(潮粮)50吨,玉米(机收)20吨,玉米 30吨</el-col>
+        <el-col style='text-align:right;' :span="12">
+             <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">预览
+        </ws-button>
+         <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">取消预览
+        </ws-button>
+         <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">提交
+        </ws-button>
+        </el-col>
+    </el-row>   
+      <el-table class="wenzi" :data="gainList.records" style="width: 100%"  @selection-change="handleSelectionChange" height="calc(100% - 110px)">
+          <el-table-column
+      type="selection"
+      width="55">
+    </el-table-column>
+        <el-table-column type="index" label="序号">
+          <template scope="scope">
+            <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+            <span v-else>{{ scope.$index + 1 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="inOutTaskNo" label="货源" width="160"></el-table-column>
+        <el-table-column prop="contractNo" label="货名" width="160">
+        </el-table-column>
+        <el-table-column prop="warehouseName" class="table_td" label="剩余重量(吨)"></el-table-column>
+        <el-table-column prop="inOutType" class="table_td" label="平均成本(吨)"></el-table-column>
+        <el-table-column prop="goodsName" class="table_td" label="入库单日期"></el-table-column>
+        <el-table-column prop="weight" class="table_td" label="预计出库重量(吨)">
+            <template slot-scope="scope">
+                <el-input v-model="input" placeholder="输入本次出库重量"></el-input>
+            </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+        :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal"></el-pagination>
+  </div>
+</template>
+<script>
+  import {
+    getoreditoutput,
+    outdelete,
+    movestates
+  } from '@/model/tasksport/index'
+  import {
+    downloadFile
+  } from '@/utils/batchDown'
+  import Pagination from '@/components/Pagination'
+  import WsUpload from '@/components/WsUpload'
+  import {
+    dayjs,
+    fmoney,
+    EventBus
+  } from 'base-core-lib'
+  export default {
+    name: 'viewSpareMoney',
+    components: {
+      WsUpload,
+      Pagination,
+    },
+    watch: {
+      vesselId(val) {
+        this.getList()
+      },
+      isShow(val) {
+        this.showType = val
+      },
+    },
+    data() {
+      return {
+        //弹出框
+        dialogViewSpareMoney: false,
+        dialogApproveFormVisible: false,
+        // 船舶类型
+        monetaryKey: null,
+        // 表格显示数据
+        tableDate: [],
+
+        // 是否显示
+        showType: true,
+        // 年
+        year: '',
+        gainList: [],
+        currentPage: 1,
+        primary: '1',
+                pickerOptions: {
+          shortcuts: [{
+              text: '本周',
+              onClick(picker) {
+                const end = new Date()
+                const start = new Date()
+                var thisDay = start.getDay()
+                var thisDate = start.getDate()
+                if (thisDay != 0) {
+                  start.setDate(thisDate - thisDay)
+                }
+                picker.$emit('pick', [start, end])
+              },
+            },
+            {
+              text: '本月',
+              onClick(picker) {
+                const end = new Date()
+                const start = new Date()
+                start.setDate(1)
+                picker.$emit('pick', [start, end])
+              },
+            },
+            {
+              text: '本季度',
+              onClick(picker) {
+                var oDate = new Date()
+
+                var thisYear = oDate.getFullYear()
+                var thisMonth = oDate.getMonth() + 1
+
+                var n = Math.ceil(thisMonth / 3) // 季度
+
+                var Month = n * 3 - 1
+
+                var start = new Date(thisYear, Month - 2, 1)
+                var end = new Date()
+
+                picker.$emit('pick', [start, end])
+              },
+            },
+          ],
+        },
+        value1: '',
+        value2: '',
+        pageSize: 10,
+        searchType: 1,
+        searchTypeText: '待审核',
+        searchKeyWord: '',
+        inOutType:'',
+        inOutTypeList:[
+          {
+            value: '销售出库',
+            type: 1
+          },
+          {
+            value: '移库出库',
+            type: 3
+          },
+          {
+            value: '暂存出库',
+            type: 2
+          },
+          {
+            value: '贸易服务出库',
+            type: 4
+          },
+          {
+            value: '采购出库',
+            type: 5
+          },
+          {
+            value: '采购入库',
+            type: 6
+          },
+          {
+            value: '移库入库',
+            type: 7
+          },
+          {
+            value: '暂存入库',
+            type: 8
+          },
+          {
+            value: '贸易服务入库',
+            type: 9
+          },
+          {
+            value: '退库',
+            type: 10
+          },
+        ],
+        contractType: 2,
+        taskTypeList: [{
+            value: '待审核',
+            type: 1
+          },
+          {
+            value: '执行中',
+            type: 3
+          },
+          {
+            value: '已驳回',
+            type: 2
+          },
+          {
+            value: '已完成',
+            type: 4
+          },
+          {
+            value: '全部任务',
+            type: ''
+          },
+        ],
+        // 提交类型
+        submitType: true,
+        size: 10,
+        spanArr: [],
+        warehouseName: '',
+        deptBudgetTotal: 0,
+        compId: localStorage.getItem('ws-pf_compId'),
+        deptCircularPage: {},
+        historyList: [],
+        pickerBeginDateBefore: {
+          disabledDate: (time) => {
+            return time.getTime() > Date.now()
+          },
+        },
+        accessoryTFs: false,
+      }
+    },
+    activated() {
+      this.getList()
+      this.showType = this.isShow
+    },
+    mounted() {
+      this.getList()
+      this.showType = this.isShow
+    },
+    methods: {
+      selectinOutType(){
+        this.getList()
+      },
+       handleSelectionChange(val) {
+        this.multipleSelection = val;
+      },
+      //添加
+      handleAdd() {
+        this.$router.push({
+          path: 'tranManagementWarehouseInOuttaskAdd'
+        })
+      },
+      //查找
+      lookUp() {
+        this.currentPage = 1
+        this.getList()
+      },
+      deleteclick(row) {
+        var text = ''
+        if (
+          (row.taskTypeKey == 3 && row.inOutType == '移库出库') ||
+          (row.taskTypeKey == 4 && row.inOutType == '销售出库') ||
+          (row.taskTypeKey == 4 && row.inOutType == '退库')
+        ) {
+          text = '相同任务编号的任务将一并删除且不可恢复,是否确定删除?'
+        } else {
+          text = `任务删除后不可恢复,是否确定删除?`
+        }
+        //cancelButtonClass: "btn-custom-cancel"
+        this.$confirm(text, {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning',
+          })
+          .then(() => {
+            outdelete({
+                id: row.id,
+                relevanceId: row.relevanceId,
+                inOutFlag: row.inOutFlag,
+              })
+              .toPromise()
+              .then((response) => {
+                this.getList()
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      },
+      getList() {
+        getoreditoutput({
+            compId: localStorage.getItem('ws-pf_compId'),
+            currentPage: this.currentPage,
+            pageSize: this.pageSize,
+            searchType: this.searchType,
+            searchKeyWord: this.searchKeyWord,
+            inOutType:this.inOutType
+          })
+          .toPromise()
+          .then((response) => {
+            this.gainList = response
+            this.currentPage = response.current
+            this.pageSize = response.size
+            this.deptBudgetTotal = response.total
+          })
+      },
+      //编辑
+      delivery(item) {
+        this.$router.push({
+          path: 'tranManagementWarehouseInOuttaskedit',
+          query: {
+            relevanceId: item.relevanceId,
+            inOutFlag: item.inOutFlag
+          },
+        })
+      },
+      audit(item) {
+        this.$router.push({
+          path: 'tranManagementWarehouseInOuttaskaudit',
+          query: {
+            relevanceId: item.relevanceId,
+            taskId: item.taskId,
+            businessKey: item.id,
+            workflowId: item.workflowId,
+          },
+        })
+      },
+      getSpanArr(data) {
+        let that = this
+
+        //页面展示的数据,不一定是全部的数据,所以每次都清空之前存储的 保证遍历的数据是最新的数据。以免造成数据渲染混乱
+
+        that.spanArr = []
+
+        that.pos = 0
+
+        //遍历数据
+
+        data.forEach((item, index) => {
+          //判断是否是第一项
+
+          // if (index === 0) {
+          //   this.spanArr.push(1)
+          //   this.pos = 0
+          // } else {
+          //不是第一项时,就根据标识去存储
+          if (data[index].warehouseNumViewList.length > 1) {
+            // 查找到符合条件的数据时每次要把之前存储的数据+1
+            this.spanArr[this.pos] = data[index].warehouseNumViewList.length
+            this.spanArr.push(0)
+          } else {
+            // 没有符合的数据时,要记住当前的index
+            this.spanArr.push(1)
+            this.pos = index
+          }
+          // }
+        })
+      },
+      //查看//传参
+      nocomplete(row) {
+        this.$router.push({
+          path: 'inOutWarehousetaskEdit',
+          query: {
+            relevanceId: row.relevanceId,
+            businessKey: row.id,
+            workflowId: row.workflowId,
+          },
+        })
+      },
+      dateFormat(fmt, date) {
+        let ret
+        const opt = {
+          'Y+': date.getFullYear().toString(), // 年
+          'm+': (date.getMonth() + 1).toString(), // 月
+          'd+': date.getDate().toString(), // 日
+          'H+': date.getHours().toString(), // 时
+          // "M+": date.getMinutes().toString(),         // 分
+          // "S+": date.getSeconds().toString()          // 秒
+          // 有其他格式化字符需求可以继续添加,必须转化成字符串
+        }
+        for (let k in opt) {
+          ret = new RegExp('(' + k + ')').exec(fmt)
+          if (ret) {
+            fmt = fmt.replace(
+              ret[1],
+              ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
+            )
+          }
+        }
+        return fmt
+      },
+      handleClose() {
+        this.accessoryTFs = false
+      },
+      handleSizeChange(val) {
+        console.log(`每页 ${val} 条`)
+        this.pageSize = val
+        this.getList()
+      },
+      handleCurrentChange(val) {
+        this.currentPage = val
+        console.log(`当前页: ${val}`)
+        this.getList()
+      },
+      editClick(row) {
+        var status = ''
+        if (row.taskStatus == '待审核' || row.taskStatus == '已完成') {
+          status = '执行中'
+        } else if (row.taskStatus == '执行中') {
+          status = '已完成'
+        }
+        //cancelButtonClass: "btn-custom-cancel"
+        this.$confirm(`是否将状态改为${status}`, {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning',
+          })
+          .then(() => {
+            movestates({
+                id: row.id
+              })
+              .toPromise()
+              .then((response) => {
+                this.$notify.success({
+                  title: '成功',
+                  message: '状态修改成功',
+                })
+                this.getList()
+              })
+              .catch((response) => {
+                // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      },
+      selecttaskType(e) {
+        for (var i = 0; i < this.taskTypeList.length; i++) {
+          if (this.taskTypeList[i].value == e) {
+            this.searchType = this.taskTypeList[i].type
+          }
+        }
+        this.currentPage = 1,
+          this.getList()
+      },
+      handleExamine(row) {
+        this.$router.push({
+          name: 'salesContractExamine',
+          query: {
+            id: row.id
+          },
+        })
+      },
+      // 关闭 dialog时 处理文件url 初始化upload组件
+      handleCloe() {
+        this.dialogViewSpareMoney = false
+      },
+      history(row) {
+        billoperatehis({
+            id: row.id
+          })
+          .toPromise()
+          .then((response) => {
+            this.historyList = response
+          })
+      },
+      find() {
+        this.currentPage = 1
+        this.getList()
+      },
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .vertical-text-left {
+    width: 62px;
+    text-align: right;
+  }
+
+  .el-button--primary {
+    background-color: #5878e8;
+    border-color: #5878e8;
+  }
+
+  .el-button--default {
+    color: #8890b1;
+    border-color: #e8eaf1;
+  }
+
+  /deep/.base_header_layout .grid-content.right .find.el-button--primary {
+    width: 30px;
+    border-top-left-radius: 0px;
+    border-bottom-left-radius: 0px;
+  }
+	.title {
+		position: relative;
+		padding-left: 10px;
+	}
+
+	.title::before {
+		content: '';
+		display: inline-block;
+		width: 5px;
+		height: 30px;
+		background: #5473e8;
+		position: absolute;
+		left: 0;
+	}
+    
+	.bg-right {
+		text-align: right;
+		padding: 16px 20px;
+	}
+  /deep/.findValue .el-input__inner {
+    border-top-right-radius: 0px;
+    border-bottom-right-radius: 0px;
+  }
+
+  .completed.el-button--default {
+    border-color: #5878e8;
+    background-color: #f6f7fc;
+    color: #5878e8;
+  }
+
+  .putstorage.el-button--default,
+  .deliverystorage.el-button--default {
+    border-color: #8890b1;
+    background-color: #fff;
+    color: #8890b1;
+  }
+
+  /deep/.el-table td,
+  /deep/.el-table th.is-leaf {
+    border-right: 1px solid #e9ecf7;
+    text-align: center;
+  }
+
+  /deep/.el-table tr td:first-child,
+  /deep/.el-table tr th.is-leaf:first-child {
+    border-left: 1px solid #e9ecf7;
+  }
+
+  .el-row {
+    height: 50px;
+  }
+
+  .findValue {
+    // width: 0%;
+    margin-left: 10px;
+  }
+
+  .search {
+    margin-left: -250px;
+  }
+
+  .Value {
+    width: 300px;
+    margin-left: 766px;
+  }
+
+  .el-pagination {
+    text-align: center;
+  }
+
+  .winseaview-main {
+    background: #e8ecf6;
+    box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.1);
+  }
+
+  .spans {
+    display: table-caption;
+    width: 17px;
+    line-height: 19px;
+  }
+
+  //执行样式
+  .executory,
+  .inExecution,
+  .done {
+    width: 6px;
+    height: 6px;
+    display: inline-block;
+    border-radius: 50%;
+    position: relative;
+    top: -1px;
+    font-size: 14px;
+  }
+
+  .executory {
+    background: #ff9f24;
+  }
+
+  .inExecution {
+    background: #5878e8;
+  }
+
+  .done {
+    background: #50cad4;
+  }
+
+  .el-select {
+    width: 30%;
+    margin-right: 10px;
+  }
+
+  /deep/.typeselect .el-input__inner {
+    color: #8890b1;
+  }
+
+  .corles {
+    color: #5878e8;
+    font-size: 14px;
+  }
+</style>

+ 649 - 0
src/views/taskManagement/supplyofgoodsedit.vue

@@ -0,0 +1,649 @@
+<!--出入库任务-->
+<template>
+  <div class="container">
+      	<el-row>
+			<el-col :span="12">
+				<h2 class="bg-left title">选择货源</h2>
+			</el-col>
+			<el-col :span="12" class="bg-right">
+				<el-button class="bg-bottom" type="primary" size="small" @click="returnsales()">
+					<img width="6" height="10" style="vertical-align: bottom; margin-right: 3px"
+						src="../../../public/img/lujing.png" alt />返回
+				</el-button>
+			</el-col>
+		</el-row>
+    <BaseHeaderLayout :leftSpan="16">
+      <template slot="left">
+          <div style='width:50%;margin-right:10px;'>
+            <el-date-picker v-model="value2" type="daterange" align="right" unlink-panels range-separator="至"
+          start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions">
+        </el-date-picker>
+  
+          </div>
+        <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">按日期排序
+        </ws-button>
+        <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">按成本排序
+        </ws-button>
+      </template>
+      <template slot="right">
+        <ws-input @keyup.enter.native="find()" class='findValue' v-model="searchKeyWord" placeholder="可按合同编号或任务编号查找" clearable maxlength="300" type="input"></ws-input>
+        <ws-button class="find" type="primary" @click="lookUp()">
+          <img width="16" height="16" style="
+              vertical-align: text-top;
+              position: relative;
+              top: 0px;
+              left: -8px;
+            " src="../../../public/img/sousuo.png" alt />
+        </ws-button>
+      </template>
+    </BaseHeaderLayout>
+    <el-row style='margin:10px;'>
+        <el-col :span="12">已选 10 条,合计出库重量  100吨,玉米(潮粮)50吨,玉米(机收)20吨,玉米 30吨</el-col>
+        <el-col style='text-align:right;' :span="12">
+             <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">预览
+        </ws-button>
+         <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">取消预览
+        </ws-button>
+         <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">提交
+        </ws-button>
+        </el-col>
+    </el-row>   
+      <el-table class="wenzi" :data="gainList.records" style="width: 100%"  @selection-change="handleSelectionChange" height="calc(100% - 110px)">
+          <el-table-column
+      type="selection"
+      width="55">
+    </el-table-column>
+        <el-table-column type="index" label="序号">
+          <template scope="scope">
+            <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+            <span v-else>{{ scope.$index + 1 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="inOutTaskNo" label="货源" width="160"></el-table-column>
+        <el-table-column prop="contractNo" label="货名" width="160">
+        </el-table-column>
+        <el-table-column prop="warehouseName" class="table_td" label="剩余重量(吨)"></el-table-column>
+        <el-table-column prop="inOutType" class="table_td" label="平均成本(吨)"></el-table-column>
+        <el-table-column prop="goodsName" class="table_td" label="入库单日期"></el-table-column>
+        <el-table-column prop="weight" class="table_td" label="预计出库重量(吨)">
+            <template slot-scope="scope">
+                <el-input v-model="input" placeholder="输入本次出库重量"></el-input>
+            </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+        :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal"></el-pagination>
+  </div>
+</template>
+<script>
+  import {
+    getoreditoutput,
+    outdelete,
+    movestates
+  } from '@/model/tasksport/index'
+  import {
+    downloadFile
+  } from '@/utils/batchDown'
+  import Pagination from '@/components/Pagination'
+  import WsUpload from '@/components/WsUpload'
+  import {
+    dayjs,
+    fmoney,
+    EventBus
+  } from 'base-core-lib'
+  export default {
+    name: 'viewSpareMoney',
+    components: {
+      WsUpload,
+      Pagination,
+    },
+    watch: {
+      vesselId(val) {
+        this.getList()
+      },
+      isShow(val) {
+        this.showType = val
+      },
+    },
+    data() {
+      return {
+        //弹出框
+        dialogViewSpareMoney: false,
+        dialogApproveFormVisible: false,
+        // 船舶类型
+        monetaryKey: null,
+        // 表格显示数据
+        tableDate: [],
+
+        // 是否显示
+        showType: true,
+        // 年
+        year: '',
+        gainList: [],
+        currentPage: 1,
+        primary: '1',
+                pickerOptions: {
+          shortcuts: [{
+              text: '本周',
+              onClick(picker) {
+                const end = new Date()
+                const start = new Date()
+                var thisDay = start.getDay()
+                var thisDate = start.getDate()
+                if (thisDay != 0) {
+                  start.setDate(thisDate - thisDay)
+                }
+                picker.$emit('pick', [start, end])
+              },
+            },
+            {
+              text: '本月',
+              onClick(picker) {
+                const end = new Date()
+                const start = new Date()
+                start.setDate(1)
+                picker.$emit('pick', [start, end])
+              },
+            },
+            {
+              text: '本季度',
+              onClick(picker) {
+                var oDate = new Date()
+
+                var thisYear = oDate.getFullYear()
+                var thisMonth = oDate.getMonth() + 1
+
+                var n = Math.ceil(thisMonth / 3) // 季度
+
+                var Month = n * 3 - 1
+
+                var start = new Date(thisYear, Month - 2, 1)
+                var end = new Date()
+
+                picker.$emit('pick', [start, end])
+              },
+            },
+          ],
+        },
+        value1: '',
+        value2: '',
+        pageSize: 10,
+        searchType: 1,
+        searchTypeText: '待审核',
+        searchKeyWord: '',
+        inOutType:'',
+        inOutTypeList:[
+          {
+            value: '销售出库',
+            type: 1
+          },
+          {
+            value: '移库出库',
+            type: 3
+          },
+          {
+            value: '暂存出库',
+            type: 2
+          },
+          {
+            value: '贸易服务出库',
+            type: 4
+          },
+          {
+            value: '采购出库',
+            type: 5
+          },
+          {
+            value: '采购入库',
+            type: 6
+          },
+          {
+            value: '移库入库',
+            type: 7
+          },
+          {
+            value: '暂存入库',
+            type: 8
+          },
+          {
+            value: '贸易服务入库',
+            type: 9
+          },
+          {
+            value: '退库',
+            type: 10
+          },
+        ],
+        contractType: 2,
+        taskTypeList: [{
+            value: '待审核',
+            type: 1
+          },
+          {
+            value: '执行中',
+            type: 3
+          },
+          {
+            value: '已驳回',
+            type: 2
+          },
+          {
+            value: '已完成',
+            type: 4
+          },
+          {
+            value: '全部任务',
+            type: ''
+          },
+        ],
+        // 提交类型
+        submitType: true,
+        size: 10,
+        spanArr: [],
+        warehouseName: '',
+        deptBudgetTotal: 0,
+        compId: localStorage.getItem('ws-pf_compId'),
+        deptCircularPage: {},
+        historyList: [],
+        pickerBeginDateBefore: {
+          disabledDate: (time) => {
+            return time.getTime() > Date.now()
+          },
+        },
+        accessoryTFs: false,
+      }
+    },
+    activated() {
+      this.getList()
+      this.showType = this.isShow
+    },
+    mounted() {
+      this.getList()
+      this.showType = this.isShow
+    },
+    methods: {
+      selectinOutType(){
+        this.getList()
+      },
+       handleSelectionChange(val) {
+        this.multipleSelection = val;
+      },
+      //添加
+      handleAdd() {
+        this.$router.push({
+          path: 'tranManagementWarehouseInOuttaskAdd'
+        })
+      },
+      //查找
+      lookUp() {
+        this.currentPage = 1
+        this.getList()
+      },
+      deleteclick(row) {
+        var text = ''
+        if (
+          (row.taskTypeKey == 3 && row.inOutType == '移库出库') ||
+          (row.taskTypeKey == 4 && row.inOutType == '销售出库') ||
+          (row.taskTypeKey == 4 && row.inOutType == '退库')
+        ) {
+          text = '相同任务编号的任务将一并删除且不可恢复,是否确定删除?'
+        } else {
+          text = `任务删除后不可恢复,是否确定删除?`
+        }
+        //cancelButtonClass: "btn-custom-cancel"
+        this.$confirm(text, {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning',
+          })
+          .then(() => {
+            outdelete({
+                id: row.id,
+                relevanceId: row.relevanceId,
+                inOutFlag: row.inOutFlag,
+              })
+              .toPromise()
+              .then((response) => {
+                this.getList()
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      },
+      getList() {
+        getoreditoutput({
+            compId: localStorage.getItem('ws-pf_compId'),
+            currentPage: this.currentPage,
+            pageSize: this.pageSize,
+            searchType: this.searchType,
+            searchKeyWord: this.searchKeyWord,
+            inOutType:this.inOutType
+          })
+          .toPromise()
+          .then((response) => {
+            this.gainList = response
+            this.currentPage = response.current
+            this.pageSize = response.size
+            this.deptBudgetTotal = response.total
+          })
+      },
+      //编辑
+      delivery(item) {
+        this.$router.push({
+          path: 'tranManagementWarehouseInOuttaskedit',
+          query: {
+            relevanceId: item.relevanceId,
+            inOutFlag: item.inOutFlag
+          },
+        })
+      },
+      audit(item) {
+        this.$router.push({
+          path: 'tranManagementWarehouseInOuttaskaudit',
+          query: {
+            relevanceId: item.relevanceId,
+            taskId: item.taskId,
+            businessKey: item.id,
+            workflowId: item.workflowId,
+          },
+        })
+      },
+      getSpanArr(data) {
+        let that = this
+
+        //页面展示的数据,不一定是全部的数据,所以每次都清空之前存储的 保证遍历的数据是最新的数据。以免造成数据渲染混乱
+
+        that.spanArr = []
+
+        that.pos = 0
+
+        //遍历数据
+
+        data.forEach((item, index) => {
+          //判断是否是第一项
+
+          // if (index === 0) {
+          //   this.spanArr.push(1)
+          //   this.pos = 0
+          // } else {
+          //不是第一项时,就根据标识去存储
+          if (data[index].warehouseNumViewList.length > 1) {
+            // 查找到符合条件的数据时每次要把之前存储的数据+1
+            this.spanArr[this.pos] = data[index].warehouseNumViewList.length
+            this.spanArr.push(0)
+          } else {
+            // 没有符合的数据时,要记住当前的index
+            this.spanArr.push(1)
+            this.pos = index
+          }
+          // }
+        })
+      },
+      //查看//传参
+      nocomplete(row) {
+        this.$router.push({
+          path: 'inOutWarehousetaskEdit',
+          query: {
+            relevanceId: row.relevanceId,
+            businessKey: row.id,
+            workflowId: row.workflowId,
+          },
+        })
+      },
+      dateFormat(fmt, date) {
+        let ret
+        const opt = {
+          'Y+': date.getFullYear().toString(), // 年
+          'm+': (date.getMonth() + 1).toString(), // 月
+          'd+': date.getDate().toString(), // 日
+          'H+': date.getHours().toString(), // 时
+          // "M+": date.getMinutes().toString(),         // 分
+          // "S+": date.getSeconds().toString()          // 秒
+          // 有其他格式化字符需求可以继续添加,必须转化成字符串
+        }
+        for (let k in opt) {
+          ret = new RegExp('(' + k + ')').exec(fmt)
+          if (ret) {
+            fmt = fmt.replace(
+              ret[1],
+              ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
+            )
+          }
+        }
+        return fmt
+      },
+      handleClose() {
+        this.accessoryTFs = false
+      },
+      handleSizeChange(val) {
+        console.log(`每页 ${val} 条`)
+        this.pageSize = val
+        this.getList()
+      },
+      handleCurrentChange(val) {
+        this.currentPage = val
+        console.log(`当前页: ${val}`)
+        this.getList()
+      },
+      editClick(row) {
+        var status = ''
+        if (row.taskStatus == '待审核' || row.taskStatus == '已完成') {
+          status = '执行中'
+        } else if (row.taskStatus == '执行中') {
+          status = '已完成'
+        }
+        //cancelButtonClass: "btn-custom-cancel"
+        this.$confirm(`是否将状态改为${status}`, {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning',
+          })
+          .then(() => {
+            movestates({
+                id: row.id
+              })
+              .toPromise()
+              .then((response) => {
+                this.$notify.success({
+                  title: '成功',
+                  message: '状态修改成功',
+                })
+                this.getList()
+              })
+              .catch((response) => {
+                // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      },
+      selecttaskType(e) {
+        for (var i = 0; i < this.taskTypeList.length; i++) {
+          if (this.taskTypeList[i].value == e) {
+            this.searchType = this.taskTypeList[i].type
+          }
+        }
+        this.currentPage = 1,
+          this.getList()
+      },
+      handleExamine(row) {
+        this.$router.push({
+          name: 'salesContractExamine',
+          query: {
+            id: row.id
+          },
+        })
+      },
+      // 关闭 dialog时 处理文件url 初始化upload组件
+      handleCloe() {
+        this.dialogViewSpareMoney = false
+      },
+      history(row) {
+        billoperatehis({
+            id: row.id
+          })
+          .toPromise()
+          .then((response) => {
+            this.historyList = response
+          })
+      },
+      find() {
+        this.currentPage = 1
+        this.getList()
+      },
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .vertical-text-left {
+    width: 62px;
+    text-align: right;
+  }
+
+  .el-button--primary {
+    background-color: #5878e8;
+    border-color: #5878e8;
+  }
+
+  .el-button--default {
+    color: #8890b1;
+    border-color: #e8eaf1;
+  }
+
+  /deep/.base_header_layout .grid-content.right .find.el-button--primary {
+    width: 30px;
+    border-top-left-radius: 0px;
+    border-bottom-left-radius: 0px;
+  }
+	.title {
+		position: relative;
+		padding-left: 10px;
+	}
+
+	.title::before {
+		content: '';
+		display: inline-block;
+		width: 5px;
+		height: 30px;
+		background: #5473e8;
+		position: absolute;
+		left: 0;
+	}
+    
+	.bg-right {
+		text-align: right;
+		padding: 16px 20px;
+	}
+  /deep/.findValue .el-input__inner {
+    border-top-right-radius: 0px;
+    border-bottom-right-radius: 0px;
+  }
+
+  .completed.el-button--default {
+    border-color: #5878e8;
+    background-color: #f6f7fc;
+    color: #5878e8;
+  }
+
+  .putstorage.el-button--default,
+  .deliverystorage.el-button--default {
+    border-color: #8890b1;
+    background-color: #fff;
+    color: #8890b1;
+  }
+
+  /deep/.el-table td,
+  /deep/.el-table th.is-leaf {
+    border-right: 1px solid #e9ecf7;
+    text-align: center;
+  }
+
+  /deep/.el-table tr td:first-child,
+  /deep/.el-table tr th.is-leaf:first-child {
+    border-left: 1px solid #e9ecf7;
+  }
+
+  .el-row {
+    height: 50px;
+  }
+
+  .findValue {
+    // width: 0%;
+    margin-left: 10px;
+  }
+
+  .search {
+    margin-left: -250px;
+  }
+
+  .Value {
+    width: 300px;
+    margin-left: 766px;
+  }
+
+  .el-pagination {
+    text-align: center;
+  }
+
+  .winseaview-main {
+    background: #e8ecf6;
+    box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.1);
+  }
+
+  .spans {
+    display: table-caption;
+    width: 17px;
+    line-height: 19px;
+  }
+
+  //执行样式
+  .executory,
+  .inExecution,
+  .done {
+    width: 6px;
+    height: 6px;
+    display: inline-block;
+    border-radius: 50%;
+    position: relative;
+    top: -1px;
+    font-size: 14px;
+  }
+
+  .executory {
+    background: #ff9f24;
+  }
+
+  .inExecution {
+    background: #5878e8;
+  }
+
+  .done {
+    background: #50cad4;
+  }
+
+  .el-select {
+    width: 30%;
+    margin-right: 10px;
+  }
+
+  /deep/.typeselect .el-input__inner {
+    color: #8890b1;
+  }
+
+  .corles {
+    color: #5878e8;
+    font-size: 14px;
+  }
+</style>

+ 649 - 0
src/views/taskManagement/supplyofgoodslook.vue

@@ -0,0 +1,649 @@
+<!--出入库任务-->
+<template>
+  <div class="container">
+      	<el-row>
+			<el-col :span="12">
+				<h2 class="bg-left title">选择货源</h2>
+			</el-col>
+			<el-col :span="12" class="bg-right">
+				<el-button class="bg-bottom" type="primary" size="small" @click="returnsales()">
+					<img width="6" height="10" style="vertical-align: bottom; margin-right: 3px"
+						src="../../../public/img/lujing.png" alt />返回
+				</el-button>
+			</el-col>
+		</el-row>
+    <BaseHeaderLayout :leftSpan="16">
+      <template slot="left">
+          <div style='width:50%;margin-right:10px;'>
+            <el-date-picker v-model="value2" type="daterange" align="right" unlink-panels range-separator="至"
+          start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions">
+        </el-date-picker>
+  
+          </div>
+        <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">按日期排序
+        </ws-button>
+        <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">按成本排序
+        </ws-button>
+      </template>
+      <template slot="right">
+        <ws-input @keyup.enter.native="find()" class='findValue' v-model="searchKeyWord" placeholder="可按合同编号或任务编号查找" clearable maxlength="300" type="input"></ws-input>
+        <ws-button class="find" type="primary" @click="lookUp()">
+          <img width="16" height="16" style="
+              vertical-align: text-top;
+              position: relative;
+              top: 0px;
+              left: -8px;
+            " src="../../../public/img/sousuo.png" alt />
+        </ws-button>
+      </template>
+    </BaseHeaderLayout>
+    <el-row style='margin:10px;'>
+        <el-col :span="12">已选 10 条,合计出库重量  100吨,玉米(潮粮)50吨,玉米(机收)20吨,玉米 30吨</el-col>
+        <el-col style='text-align:right;' :span="12">
+             <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">预览
+        </ws-button>
+         <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">取消预览
+        </ws-button>
+         <ws-button type="primary" @click="handleAdd()" v-hasPermission="
+            `warehouseManagement.warehouse.warehouseInfoTask.add`
+          ">提交
+        </ws-button>
+        </el-col>
+    </el-row>   
+      <el-table class="wenzi" :data="gainList.records" style="width: 100%"  @selection-change="handleSelectionChange" height="calc(100% - 110px)">
+          <el-table-column
+      type="selection"
+      width="55">
+    </el-table-column>
+        <el-table-column type="index" label="序号">
+          <template scope="scope">
+            <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+            <span v-else>{{ scope.$index + 1 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="inOutTaskNo" label="货源" width="160"></el-table-column>
+        <el-table-column prop="contractNo" label="货名" width="160">
+        </el-table-column>
+        <el-table-column prop="warehouseName" class="table_td" label="剩余重量(吨)"></el-table-column>
+        <el-table-column prop="inOutType" class="table_td" label="平均成本(吨)"></el-table-column>
+        <el-table-column prop="goodsName" class="table_td" label="入库单日期"></el-table-column>
+        <el-table-column prop="weight" class="table_td" label="预计出库重量(吨)">
+            <template slot-scope="scope">
+                <el-input v-model="input" placeholder="输入本次出库重量"></el-input>
+            </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+        :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal"></el-pagination>
+  </div>
+</template>
+<script>
+  import {
+    getoreditoutput,
+    outdelete,
+    movestates
+  } from '@/model/tasksport/index'
+  import {
+    downloadFile
+  } from '@/utils/batchDown'
+  import Pagination from '@/components/Pagination'
+  import WsUpload from '@/components/WsUpload'
+  import {
+    dayjs,
+    fmoney,
+    EventBus
+  } from 'base-core-lib'
+  export default {
+    name: 'viewSpareMoney',
+    components: {
+      WsUpload,
+      Pagination,
+    },
+    watch: {
+      vesselId(val) {
+        this.getList()
+      },
+      isShow(val) {
+        this.showType = val
+      },
+    },
+    data() {
+      return {
+        //弹出框
+        dialogViewSpareMoney: false,
+        dialogApproveFormVisible: false,
+        // 船舶类型
+        monetaryKey: null,
+        // 表格显示数据
+        tableDate: [],
+
+        // 是否显示
+        showType: true,
+        // 年
+        year: '',
+        gainList: [],
+        currentPage: 1,
+        primary: '1',
+                pickerOptions: {
+          shortcuts: [{
+              text: '本周',
+              onClick(picker) {
+                const end = new Date()
+                const start = new Date()
+                var thisDay = start.getDay()
+                var thisDate = start.getDate()
+                if (thisDay != 0) {
+                  start.setDate(thisDate - thisDay)
+                }
+                picker.$emit('pick', [start, end])
+              },
+            },
+            {
+              text: '本月',
+              onClick(picker) {
+                const end = new Date()
+                const start = new Date()
+                start.setDate(1)
+                picker.$emit('pick', [start, end])
+              },
+            },
+            {
+              text: '本季度',
+              onClick(picker) {
+                var oDate = new Date()
+
+                var thisYear = oDate.getFullYear()
+                var thisMonth = oDate.getMonth() + 1
+
+                var n = Math.ceil(thisMonth / 3) // 季度
+
+                var Month = n * 3 - 1
+
+                var start = new Date(thisYear, Month - 2, 1)
+                var end = new Date()
+
+                picker.$emit('pick', [start, end])
+              },
+            },
+          ],
+        },
+        value1: '',
+        value2: '',
+        pageSize: 10,
+        searchType: 1,
+        searchTypeText: '待审核',
+        searchKeyWord: '',
+        inOutType:'',
+        inOutTypeList:[
+          {
+            value: '销售出库',
+            type: 1
+          },
+          {
+            value: '移库出库',
+            type: 3
+          },
+          {
+            value: '暂存出库',
+            type: 2
+          },
+          {
+            value: '贸易服务出库',
+            type: 4
+          },
+          {
+            value: '采购出库',
+            type: 5
+          },
+          {
+            value: '采购入库',
+            type: 6
+          },
+          {
+            value: '移库入库',
+            type: 7
+          },
+          {
+            value: '暂存入库',
+            type: 8
+          },
+          {
+            value: '贸易服务入库',
+            type: 9
+          },
+          {
+            value: '退库',
+            type: 10
+          },
+        ],
+        contractType: 2,
+        taskTypeList: [{
+            value: '待审核',
+            type: 1
+          },
+          {
+            value: '执行中',
+            type: 3
+          },
+          {
+            value: '已驳回',
+            type: 2
+          },
+          {
+            value: '已完成',
+            type: 4
+          },
+          {
+            value: '全部任务',
+            type: ''
+          },
+        ],
+        // 提交类型
+        submitType: true,
+        size: 10,
+        spanArr: [],
+        warehouseName: '',
+        deptBudgetTotal: 0,
+        compId: localStorage.getItem('ws-pf_compId'),
+        deptCircularPage: {},
+        historyList: [],
+        pickerBeginDateBefore: {
+          disabledDate: (time) => {
+            return time.getTime() > Date.now()
+          },
+        },
+        accessoryTFs: false,
+      }
+    },
+    activated() {
+      this.getList()
+      this.showType = this.isShow
+    },
+    mounted() {
+      this.getList()
+      this.showType = this.isShow
+    },
+    methods: {
+      selectinOutType(){
+        this.getList()
+      },
+       handleSelectionChange(val) {
+        this.multipleSelection = val;
+      },
+      //添加
+      handleAdd() {
+        this.$router.push({
+          path: 'tranManagementWarehouseInOuttaskAdd'
+        })
+      },
+      //查找
+      lookUp() {
+        this.currentPage = 1
+        this.getList()
+      },
+      deleteclick(row) {
+        var text = ''
+        if (
+          (row.taskTypeKey == 3 && row.inOutType == '移库出库') ||
+          (row.taskTypeKey == 4 && row.inOutType == '销售出库') ||
+          (row.taskTypeKey == 4 && row.inOutType == '退库')
+        ) {
+          text = '相同任务编号的任务将一并删除且不可恢复,是否确定删除?'
+        } else {
+          text = `任务删除后不可恢复,是否确定删除?`
+        }
+        //cancelButtonClass: "btn-custom-cancel"
+        this.$confirm(text, {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning',
+          })
+          .then(() => {
+            outdelete({
+                id: row.id,
+                relevanceId: row.relevanceId,
+                inOutFlag: row.inOutFlag,
+              })
+              .toPromise()
+              .then((response) => {
+                this.getList()
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      },
+      getList() {
+        getoreditoutput({
+            compId: localStorage.getItem('ws-pf_compId'),
+            currentPage: this.currentPage,
+            pageSize: this.pageSize,
+            searchType: this.searchType,
+            searchKeyWord: this.searchKeyWord,
+            inOutType:this.inOutType
+          })
+          .toPromise()
+          .then((response) => {
+            this.gainList = response
+            this.currentPage = response.current
+            this.pageSize = response.size
+            this.deptBudgetTotal = response.total
+          })
+      },
+      //编辑
+      delivery(item) {
+        this.$router.push({
+          path: 'tranManagementWarehouseInOuttaskedit',
+          query: {
+            relevanceId: item.relevanceId,
+            inOutFlag: item.inOutFlag
+          },
+        })
+      },
+      audit(item) {
+        this.$router.push({
+          path: 'tranManagementWarehouseInOuttaskaudit',
+          query: {
+            relevanceId: item.relevanceId,
+            taskId: item.taskId,
+            businessKey: item.id,
+            workflowId: item.workflowId,
+          },
+        })
+      },
+      getSpanArr(data) {
+        let that = this
+
+        //页面展示的数据,不一定是全部的数据,所以每次都清空之前存储的 保证遍历的数据是最新的数据。以免造成数据渲染混乱
+
+        that.spanArr = []
+
+        that.pos = 0
+
+        //遍历数据
+
+        data.forEach((item, index) => {
+          //判断是否是第一项
+
+          // if (index === 0) {
+          //   this.spanArr.push(1)
+          //   this.pos = 0
+          // } else {
+          //不是第一项时,就根据标识去存储
+          if (data[index].warehouseNumViewList.length > 1) {
+            // 查找到符合条件的数据时每次要把之前存储的数据+1
+            this.spanArr[this.pos] = data[index].warehouseNumViewList.length
+            this.spanArr.push(0)
+          } else {
+            // 没有符合的数据时,要记住当前的index
+            this.spanArr.push(1)
+            this.pos = index
+          }
+          // }
+        })
+      },
+      //查看//传参
+      nocomplete(row) {
+        this.$router.push({
+          path: 'inOutWarehousetaskEdit',
+          query: {
+            relevanceId: row.relevanceId,
+            businessKey: row.id,
+            workflowId: row.workflowId,
+          },
+        })
+      },
+      dateFormat(fmt, date) {
+        let ret
+        const opt = {
+          'Y+': date.getFullYear().toString(), // 年
+          'm+': (date.getMonth() + 1).toString(), // 月
+          'd+': date.getDate().toString(), // 日
+          'H+': date.getHours().toString(), // 时
+          // "M+": date.getMinutes().toString(),         // 分
+          // "S+": date.getSeconds().toString()          // 秒
+          // 有其他格式化字符需求可以继续添加,必须转化成字符串
+        }
+        for (let k in opt) {
+          ret = new RegExp('(' + k + ')').exec(fmt)
+          if (ret) {
+            fmt = fmt.replace(
+              ret[1],
+              ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
+            )
+          }
+        }
+        return fmt
+      },
+      handleClose() {
+        this.accessoryTFs = false
+      },
+      handleSizeChange(val) {
+        console.log(`每页 ${val} 条`)
+        this.pageSize = val
+        this.getList()
+      },
+      handleCurrentChange(val) {
+        this.currentPage = val
+        console.log(`当前页: ${val}`)
+        this.getList()
+      },
+      editClick(row) {
+        var status = ''
+        if (row.taskStatus == '待审核' || row.taskStatus == '已完成') {
+          status = '执行中'
+        } else if (row.taskStatus == '执行中') {
+          status = '已完成'
+        }
+        //cancelButtonClass: "btn-custom-cancel"
+        this.$confirm(`是否将状态改为${status}`, {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning',
+          })
+          .then(() => {
+            movestates({
+                id: row.id
+              })
+              .toPromise()
+              .then((response) => {
+                this.$notify.success({
+                  title: '成功',
+                  message: '状态修改成功',
+                })
+                this.getList()
+              })
+              .catch((response) => {
+                // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      },
+      selecttaskType(e) {
+        for (var i = 0; i < this.taskTypeList.length; i++) {
+          if (this.taskTypeList[i].value == e) {
+            this.searchType = this.taskTypeList[i].type
+          }
+        }
+        this.currentPage = 1,
+          this.getList()
+      },
+      handleExamine(row) {
+        this.$router.push({
+          name: 'salesContractExamine',
+          query: {
+            id: row.id
+          },
+        })
+      },
+      // 关闭 dialog时 处理文件url 初始化upload组件
+      handleCloe() {
+        this.dialogViewSpareMoney = false
+      },
+      history(row) {
+        billoperatehis({
+            id: row.id
+          })
+          .toPromise()
+          .then((response) => {
+            this.historyList = response
+          })
+      },
+      find() {
+        this.currentPage = 1
+        this.getList()
+      },
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .vertical-text-left {
+    width: 62px;
+    text-align: right;
+  }
+
+  .el-button--primary {
+    background-color: #5878e8;
+    border-color: #5878e8;
+  }
+
+  .el-button--default {
+    color: #8890b1;
+    border-color: #e8eaf1;
+  }
+
+  /deep/.base_header_layout .grid-content.right .find.el-button--primary {
+    width: 30px;
+    border-top-left-radius: 0px;
+    border-bottom-left-radius: 0px;
+  }
+	.title {
+		position: relative;
+		padding-left: 10px;
+	}
+
+	.title::before {
+		content: '';
+		display: inline-block;
+		width: 5px;
+		height: 30px;
+		background: #5473e8;
+		position: absolute;
+		left: 0;
+	}
+    
+	.bg-right {
+		text-align: right;
+		padding: 16px 20px;
+	}
+  /deep/.findValue .el-input__inner {
+    border-top-right-radius: 0px;
+    border-bottom-right-radius: 0px;
+  }
+
+  .completed.el-button--default {
+    border-color: #5878e8;
+    background-color: #f6f7fc;
+    color: #5878e8;
+  }
+
+  .putstorage.el-button--default,
+  .deliverystorage.el-button--default {
+    border-color: #8890b1;
+    background-color: #fff;
+    color: #8890b1;
+  }
+
+  /deep/.el-table td,
+  /deep/.el-table th.is-leaf {
+    border-right: 1px solid #e9ecf7;
+    text-align: center;
+  }
+
+  /deep/.el-table tr td:first-child,
+  /deep/.el-table tr th.is-leaf:first-child {
+    border-left: 1px solid #e9ecf7;
+  }
+
+  .el-row {
+    height: 50px;
+  }
+
+  .findValue {
+    // width: 0%;
+    margin-left: 10px;
+  }
+
+  .search {
+    margin-left: -250px;
+  }
+
+  .Value {
+    width: 300px;
+    margin-left: 766px;
+  }
+
+  .el-pagination {
+    text-align: center;
+  }
+
+  .winseaview-main {
+    background: #e8ecf6;
+    box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.1);
+  }
+
+  .spans {
+    display: table-caption;
+    width: 17px;
+    line-height: 19px;
+  }
+
+  //执行样式
+  .executory,
+  .inExecution,
+  .done {
+    width: 6px;
+    height: 6px;
+    display: inline-block;
+    border-radius: 50%;
+    position: relative;
+    top: -1px;
+    font-size: 14px;
+  }
+
+  .executory {
+    background: #ff9f24;
+  }
+
+  .inExecution {
+    background: #5878e8;
+  }
+
+  .done {
+    background: #50cad4;
+  }
+
+  .el-select {
+    width: 30%;
+    margin-right: 10px;
+  }
+
+  /deep/.typeselect .el-input__inner {
+    color: #8890b1;
+  }
+
+  .corles {
+    color: #5878e8;
+    font-size: 14px;
+  }
+</style>

+ 7 - 0
src/views/taskManagement/tranManagementWarehouseInOutTask.vue

@@ -109,6 +109,13 @@
                 scope.row.taskStatus == '执行中' ||
                 scope.row.taskStatus == '已驳回'
               " @click="delivery(scope.row)">编辑</span>
+              <span v-hasPermission="`warehouseManagement.warehouse.warehouseInfoTask.delete`">
+              <el-divider direction="vertical" v-if="scope.row.taskId == null"></el-divider>
+            </span>
+
+            <span class="corles" v-hasPermission="
+                `warehouseManagement.warehouse.warehouseInfoTask.delete`
+              " v-if="scope.row.taskId == null" @click="deleteclick(scope.row)">矫正</span>
             <span v-hasPermission="`warehouseManagement.warehouse.warehouseInfoTask.delete`">
               <el-divider direction="vertical" v-if="scope.row.taskId == null"></el-divider>
             </span>

+ 6 - 0
src/views/taskManagement/tranManagementWarehouseInOutTaskAdd.vue

@@ -73,6 +73,7 @@
 							<el-option v-for="item in goodnameList" :key="item.constKey" :label="item.constValue"
 								:value="item.constValue"></el-option>
 						</el-select>
+						<el-button class="bg-bottom" type="primary" size="small" @click="supplygoods()">选择货源</el-button>
 					</el-form-item>
 					<!--重量(吨)-->
 					<el-form-item label="重量(吨)">
@@ -176,6 +177,7 @@
 							<el-option v-for="item in goodnameList" :key="item.constKey" :label="item.constValue"
 								:value="item.constValue"></el-option>
 						</el-select>
+						<el-button class="bg-bottom" type="primary" size="small" @click="supplygoods()">选择货源</el-button>
 					</el-form-item>
 					<!--重量(吨)-->
 					<el-form-item label="重量(吨)">
@@ -284,6 +286,7 @@
 							<el-option v-for="item in goodnameList" :key="item.constKey" :label="item.constValue"
 								:value="item.constValue"></el-option>
 						</el-select>
+						<el-button class="bg-bottom" type="primary" size="small" @click="supplygoods()">选择货源</el-button>
 					</el-form-item>
 					<!--重量(吨)-->
 					<el-form-item label="重量(吨)">
@@ -500,6 +503,9 @@
 			revert() {
 				this.$router.go(-1)
 			},
+			supplygoods(){
+        		this.$router.push({name:'supplyofgoods'})
+      		},
 			returnsales() {
 				this.dataList = {
 								taskTypeKey: 1

+ 79 - 55
src/views/warehousenew/warehouseManagementList.vue

@@ -80,6 +80,7 @@
       <ws-button @click="outData(2)">打印</ws-button>
       <ws-button @click="transformation()" v-hasPermission=" `warehouseManagement.warehouse.warehouseInfo.view`">折转</ws-button>
       <ws-button v-hasPermission="`warehouseManagement.warehouse.warehouseInfo.kan`" @click="handleall()">全部仓库</ws-button>
+      <ws-button v-hasPermission="`warehouseManagement.warehouse.warehouseInfo.kan`" @click="handleMintor()">查看监控</ws-button>
         <el-table ref='table' show-summary :summary-method="getSummaries" class="wenzi setUp_css" :data="warehouseList" style="width: 100%; margin-top: 20px" height="calc(100% - 45px)" v-if="warehouseType == '1'">
         <el-table-column prop="warehouseName" label="仓库名">
         </el-table-column>
@@ -174,14 +175,22 @@
           <map-drag @marker="marker" ref="childMap" :isShowaddress='true' v-on:addressListen='getAddress' v-on:pickedAddress='searchAddress' :warehousePositioning="warehousePositioning"></map-drag>
         </div>
         <div v-if="!mapshow && warehouseType == '1'" class="monitor">
-            <div class="video1">
-            <img
-              src="../../../public/img/quesheng@2x.png"
-              alt=""
-              class="img1"
-            />
+          <div v-if="!monitorUrl1" class="video1">
+            <img src="../../../public/img/quesheng@2x.png" alt="" class="img1" />
             <div>监控视频未连接</div>
-            </div>
+          </div>
+          <div v-else class="video1">
+            <iframe :src="monitorUrl1" width="440" height="360" allowfullscreen="true" webkitallowfullscreen="true"
+              mozallowfullscreen="true" allow="autoplay; fullscreen; microphone;"></iframe>
+          </div>
+          <div v-if="!monitorUrl2" class="video1">
+            <img src="../../../public/img/quesheng@2x.png" alt="" class="img1" />
+            <div>监控视频未连接</div>
+          </div>
+          <div v-else class="video2">
+            <iframe :src="monitorUrl2" width="440" height="360" allowfullscreen="true" webkitallowfullscreen="true"
+              mozallowfullscreen="true" allow="autoplay; fullscreen; microphone;"></iframe>
+          </div>
         </div>
     </div>
     <el-dialog title="修改入库量" :visible.sync="indialog"  width="30%" :before-close="handleClose" top="35vh">
@@ -263,12 +272,15 @@
   } from 'base-core-lib'
   import Pagination from '@/components/Pagination'
   import WsUpload from '@/components/WsUpload'
+  
+  import axios from 'axios'
   export default {
     name: 'viewSpareMoney',
     components: {
       WsUpload,
       Pagination,
       mapDrag,
+      axios
     },
     watch: {
       vesselId(val) {
@@ -287,7 +299,7 @@
         dateTime:'',
         list:[],
         warehouseList:[],
-        warehouseType:"1",
+        warehouseType:'1',
         totalStorage:0,
         radio:0,
         tableHeader:[],
@@ -300,16 +312,16 @@
         lineColor:['#5878E8','#50CAD4','#FF9F24','#E87C25','#27727B','#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD', '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'],
         warehouseXiaLaCopy:[],
         warehouseAllXiaLa:[],
-        responsible:"",
-        maptitle:"库点监控",
-        btnCss1:"btn1",
-        btnCss2:"btn",
+        responsible:'',
+        maptitle:'库点监控',
+        btnCss1:'btn1',
+        btnCss2:'btn',
         mapshow:false,
         indialog:false,
-        inWarehouse:"",
+        inWarehouse:'',
         parameter:{
-          startDate:"",
-          endDate:"",
+          startDate:'',
+          endDate:'',
         },
         isShowPrintType: false, //打印
         headerText: '',
@@ -318,6 +330,8 @@
           month: dayjs().format('MM'),
         },
         warehousePositioning:{},
+        monitorUrl1:'',
+        monitorUrl2:''
       }
     },
     activated() {
@@ -371,10 +385,10 @@
           this.$message.error('请选择所要打印的仓库')
           return
         }
-         if(this.parameter.warehouseName == "全部仓库"){
-          this.parameter.warehouseName = ""
+         if(this.parameter.warehouseName == '全部仓库'){
+          this.parameter.warehouseName = ''
         }
-        this.parameter.warehouseName = this.parameter.warehouseName.replace("(临)","")
+        this.parameter.warehouseName = this.parameter.warehouseName.replace('(临)','')
         if (this.headerText == '导出记录') {
           if (this.parameter.radio == 3) {
             const {
@@ -497,11 +511,11 @@
       },
       submit(){
         if(!this.inWarehouse){
-          this.$message.error("请输入入库量")
+          this.$message.error('请输入入库量')
           return
         }
         if(Number(this.warehouseInfo.warehouseNumViewList[0].outNetWeight) > Number(this.inWarehouse)){
-           this.$message.error("入库量不可小于已出库量")
+           this.$message.error('入库量不可小于已出库量')
           return
         }
         if (String(this.inWarehouse).indexOf('.') != -1 && String(this.inWarehouse).length - (String(this.inWarehouse).indexOf('.') + 1) > 3) {
@@ -509,7 +523,7 @@
           return
         }
         if(Number(this.warehouseInfo.maxInStorage) < Number(this.inWarehouse)){
-           this.$message.error("入库量不可超过合同上限")
+           this.$message.error('入库量不可超过合同上限')
           return
         }
         let InnetWeight = {
@@ -524,7 +538,7 @@
                 message: '修改成功',
               })
               this.indialog = false,
-              this.inWarehouse = "",
+              this.inWarehouse = '',
               this.getList1()
             })
             .catch((response) => {
@@ -637,14 +651,14 @@
       mapChange(num){
         if(num == 1){
           this.mapshow = false
-          this.btnCss1 = "btn1"
-          this.btnCss2 = "btn"
-          this. maptitle = "库点监控"
+          this.btnCss1 = 'btn1'
+          this.btnCss2 = 'btn'
+          this. maptitle = '库点监控'
         }else if(num == 2){
           this.mapshow = true
-          this.btnCss1 = "btn"
-           this.btnCss2 = "btn1"
-          this. maptitle = "定位"
+          this.btnCss1 = 'btn'
+           this.btnCss2 = 'btn1'
+          this. maptitle = '定位'
         }
       },
       getAddress(data) {
@@ -659,6 +673,11 @@
         this.deptBudgetList.warehousePositioning =
           item.lnglat.lat + ',' + item.lnglat.lng
       },
+      handleMintor(){
+        this.$router.push({
+          path: 'warehouseManagementMintor'
+        })
+      },
       handleall(){
         this.$router.push({
           path: 'warehouseManagement'
@@ -669,14 +688,16 @@
         for(var tmp = 0 ; tmp < this.warehouseAllXiaLa.length; tmp++){
           if(this.warehouseAllXiaLa[tmp].warehouseName == e){
             this.warehouseType = this.warehouseAllXiaLa[tmp].warehouseType
+            this.monitorUrl1 = this.warehouseAllXiaLa[tmp].monitorUrl1
+            this.monitorUrl2 = this.warehouseAllXiaLa[tmp].monitorUrl2
             if(this.warehouseType == '2'){
-              this.maptitle = "定位"
-              this.btnCss2 ="btn1"
+              this.maptitle = '定位'
+              this.btnCss2 ='btn1'
               this.mapshow = true
             }else{
-               this.maptitle = "库点监控"
-               this.btnCss1 ="btn1"
-               this.btnCss2 ="btn"
+               this.maptitle = '库点监控'
+               this.btnCss1 ='btn1'
+               this.btnCss2 ='btn'
                this.mapshow = false
             }
             break
@@ -706,19 +727,19 @@
       var minu = now.getMinutes();//得到分钟
       var sec = now.getSeconds();//得到秒
       month = month + 1;
-      if (month < 10) month = "0" + month;
-      if (date < 10) date = "0" + date;
-      if (hour < 10) hour = "0" + hour;
-      if (minu < 10) minu = "0" + minu;
-      if (sec < 10) sec = "0" + sec;
-      var time = "";
+      if (month < 10) month = '0' + month;
+      if (date < 10) date = '0' + date;
+      if (hour < 10) hour = '0' + hour;
+      if (minu < 10) minu = '0' + minu;
+      if (sec < 10) sec = '0' + sec;
+      var time = '';
       //精确到天
       if(format==1){
-        time = year + "-" + month + "-" + date;
+        time = year + '-' + month + '-' + date;
       }
       //精确到分
       else if(format==2){
-        time = year + "-" + month + "-" + date+ " " + hour + ":" + minu + ":" + sec;
+        time = year + '-' + month + '-' + date+ ' ' + hour + ':' + minu + ':' + sec;
       }
       return time;
     },
@@ -746,12 +767,12 @@
           for(var num_item = 0 ; num_item < this.warehouseList[num].warehouseNumViewList.length ; num_item++){
             if(this.warehouseType == 2){
                if(Number(this.warehouseList[num].warehouseNumViewList[num_item].surplus) > 0){
-                this.$message.error("删除前应清空库存!")
+                this.$message.error('删除前应清空库存!')
                 return
               }
             }else if(this.warehouseType == 1){
                if(Number(this.warehouseList[num].warehouseNumViewList[num_item].storage) > 0){
-                this.$message.error("删除前应清空库存!")
+                this.$message.error('删除前应清空库存!')
                 return
                }
             }
@@ -973,6 +994,8 @@
                 this.warehouseXiaLa = response
                 this.warehouseXiaLaCopy = response
                 this.warehouseInfo.warehouseName = this.warehouseXiaLa[0].warehouseName
+                this.monitorUrl1 = this.warehouseXiaLa[0].monitorUrl1
+                this.monitorUrl2 = this.warehouseXiaLa[0].monitorUrl2
                 this.getList1()
               })
             xiala({
@@ -982,7 +1005,7 @@
               .then((response) => {
                 for(var tmp = 0 ; tmp < response.length ; tmp++){
                   if(response[tmp].warehouseType == '2'){
-                    response[tmp].warehouseName = response[tmp].warehouseName + " (临)"
+                    response[tmp].warehouseName = response[tmp].warehouseName + ' (临)'
                   }
                 }
                 this.warehouseAllXiaLa = response
@@ -1034,8 +1057,8 @@
             this.warehouseInfo.warehouseLocation = this.warehouseList[0].warehousePrivate + this.warehouseList[0].warehouseCity + this.warehouseList[0].warehouseArea
             // this.warehouseInfo.maxReserves = 0
             //经纬度
-             this.warehousePositioning.lat = this.warehouseInfo.warehousePositioning.split(",")[1]
-             this.warehousePositioning.lng = this.warehouseInfo.warehousePositioning.split(",")[0]
+             this.warehousePositioning.lat = this.warehouseInfo.warehousePositioning.split(',')[1]
+             this.warehousePositioning.lng = this.warehouseInfo.warehousePositioning.split(',')[0]
              for(let j = 0 ; j < this.warehouseXiaLa.length ; j++){
                 if(this.warehouseInfo.warehouseName == this.warehouseXiaLa[j].warehouseName){
                   this.warehouseInfo.maxReserves = this.warehouseXiaLa[j].totalStorage
@@ -1214,16 +1237,17 @@
   }
   .monitor{
     margin-top: 30px;
+    display: flex;
     .video1{
-    width: 350px;
-    height: 260px;
-    text-align: center;
-    .img1{
-        width: 350px;
-        height: 235px;
-        padding: 20px;
-      }
-  }
+      width: 440px;
+      height: 360px;
+      text-align: center;
+      .img1{
+          width: 440px;
+          height: 235px;
+          padding: 20px;
+        }
+    }
   } 
 }
 //打印弹窗

+ 22 - 6
src/views/warehousenew/warehouseManagementMintor.vue

@@ -21,14 +21,20 @@
         >
       </el-col>
     </el-row>
-    <div style="height:90vh;background: #d3dce6;">
-      <el-row :gutter="20" >
-        <div v-for="(item,index) in dataList">
+    <div >
+      <el-row :gutter="21" >
+        <div v-for="(item,index) in dataList1" :key="index">
           <el-col :span="7" v-if="item.Status =='ON'">
             <iframe :src='"https://live.eliangeyun.com/play.html?serial="+item.DeviceID+"&code="+item.ID+"&aspect=fullscreen"'  width="440" height="360" allowfullscreen ="true"
                 webkitallowfullscreen="true"
                 mozallowfullscreen="true"
                 allow="autoplay; fullscreen; microphone;"></iframe>
+            <div class="mintor-text" v-if="item.Name.indexOf('HDIPCAM') > -1  ">
+               山东诸城迈饶库
+            </div>
+            <div class="mintor-text" v-else>
+             {{item.Name}}
+            </div>
           </el-col>
         </div>
       </el-row>
@@ -47,7 +53,8 @@ export default {
   },
   data() {
     return {
-      dataList:[]
+      dataList:[],
+      dataList1:[]
     }
   },
   activated() {
@@ -63,8 +70,12 @@ export default {
       axios.get('https://live.eliangeyun.com/api/v1/device/channellist')
         .then(resp =>{
           this.dataList = resp.data.ChannelList
-          for(var i=0;i<this.dataList.length;i++){
+          for(var i=0;i<this.dataList.length - 4 ;i++){
             console.log('ssss',this.dataList[i].Status);
+            // if(this.dataList[i].Name.indexOf('HDIPCAM')>-1){
+            //   continue
+            // }
+            this.dataList1.push(this.dataList[i])
           }
 
         }).catch(err =>{
@@ -211,7 +222,7 @@ export default {
   border-color: #5878e8;
 }
 .el-col {
-  background: #f6f7fc;
+  // background: #f6f7fc;
 }
 .small-title {
   position: relative;
@@ -237,4 +248,9 @@ export default {
   margin: 0 10px;
   border-radius: 3px;
 }
+.mintor-text{
+  text-align: center;
+  font-size: 24px;
+  padding: 10px 0px 15px 0px;
+}
 </style>