Преглед изворни кода

Merge branch 'master' of http://47.100.3.209:3000/gdc/yiliangyiyun-pc

ccj пре 2 година
родитељ
комит
0c71863012
88 измењених фајлова са 4166 додато и 455 уклоњено
  1. 1 0
      src/api/V2/personnelManagement/index.js
  2. 1 1
      src/api/V2/profitable/index.js
  3. 20 18
      src/api/common/index.js
  4. 2 0
      src/global.js
  5. 14 0
      src/model/personnelManagement/index.js
  6. 1 1
      src/model/profitable/index.js
  7. 1 0
      src/utils/util.js
  8. 10 1
      src/views/contractManagement/acquisitionContract.vue
  9. 3 3
      src/views/contractManagement/collectionContractRecord.vue
  10. 1315 0
      src/views/contractManagement/inspectInfo.vue
  11. 9 1
      src/views/contractManagement/purchaseContract.vue
  12. 2 2
      src/views/contractManagement/purchaseContractCost.vue
  13. 9 1
      src/views/contractManagement/salesContract.vue
  14. 2 2
      src/views/contractManagement/salesContractCost.vue
  15. 2 2
      src/views/contractManagement/storageContractRecord.vue
  16. 7 6
      src/views/customerFundManagement/customerFundAdd.vue
  17. 7 7
      src/views/customerFundManagement/customerFundEdit.vue
  18. 2 2
      src/views/financialManagement/collectionManagementList.vue
  19. 14 14
      src/views/houseSelfCollect/customerManagementAdd.vue
  20. 2 2
      src/views/houseSelfCollect/inspectInfo.vue
  21. 2 2
      src/views/houseSelfCollect/inspectInfoLook.vue
  22. 2 2
      src/views/houseSelfCollect/inspectionManagementNew.vue
  23. 2 2
      src/views/houseSelfCollect/newWeighingManagement.vue
  24. 6 6
      src/views/houseSelfCollect/paymentManagement.vue
  25. 2 2
      src/views/houseSelfCollect/settlement.vue
  26. 2 2
      src/views/houseSelfCollect/weightCheck.vue
  27. 2 2
      src/views/outboundManagement/collectionManagement.vue
  28. 2 2
      src/views/outboundManagement/newQualityInspectionManagement.vue
  29. 2 2
      src/views/outboundManagement/weighingManagementNew.vue
  30. 2 2
      src/views/outboundManagement/weighingManagementrecord.vue
  31. 814 0
      src/views/personnelManagement/cardReplacementManagement.vue
  32. 589 0
      src/views/personnelManagement/checkWorkList.vue
  33. 64 0
      src/views/personnelManagement/component/router/route.js
  34. 814 0
      src/views/personnelManagement/leaveList.vue
  35. 89 89
      src/views/platformAudit/component/routers/route.js
  36. 6 6
      src/views/platformaudit/grainpulseenterprisereview.vue
  37. 2 4
      src/views/profitable/cashout.vue
  38. 1 0
      src/views/profitable/cashoutaduit.vue
  39. 1 0
      src/views/profitable/cashoutaduitNQ.vue
  40. 1 0
      src/views/profitable/cashoutedit.vue
  41. 31 31
      src/views/profitable/contractprofitsdetails.vue
  42. 1 0
      src/views/profitable/expenseallotaduit.vue
  43. 19 21
      src/views/profitable/expensemanagementdetails.vue
  44. 1 0
      src/views/profitable/expensemanagentedit.vue
  45. 8 8
      src/views/profitable/expensemanagentlook.vue
  46. 100 26
      src/views/profitable/oilcost.vue
  47. 29 29
      src/views/profitable/payment.vue
  48. 1 0
      src/views/profitable/receipt.vue
  49. 1 1
      src/views/statisticalReport/autoSettlementList.vue
  50. 3 3
      src/views/statisticalReport/huoyunList.vue
  51. 4 4
      src/views/statisticalReport/purchaseClosingCashierList.vue
  52. 2 2
      src/views/statisticalReport/purchaseReceiptStatisticsList.vue
  53. 3 3
      src/views/statisticalReport/salesClosingCashierList.vue
  54. 2 2
      src/views/statisticalReport/salesDeliveryReportList.vue
  55. 3 3
      src/views/statisticalReport/shippingList.vue
  56. 4 4
      src/views/statisticalReport/stockPurchaseReceiptReportList.vue
  57. 4 4
      src/views/statisticalReport/stockSaleOutReportList.vue
  58. 2 2
      src/views/tradeServicesManagement/repayment.vue
  59. 16 16
      src/views/tranManagement/tranManagementDriverAdd.vue
  60. 16 16
      src/views/tranManagement/tranManagementDriverEdit.vue
  61. 3 3
      src/views/tranManagement/tranManagementFireFeedback.vue
  62. 3 3
      src/views/tranManagement/tranManagementFireReceivingFeedback.vue
  63. 3 3
      src/views/tranManagement/tranManagementReceivingloading.vue
  64. 3 3
      src/views/tranManagement/tranManagementShippingFeedback.vue
  65. 3 3
      src/views/tranManagement/tranManagementTransporFeedback.vue
  66. 1 1
      src/views/tranManagement/tranManagementUnShippingFeedback.vue
  67. 1 1
      src/views/warehouse/warehouseManagementAdd.vue
  68. 2 2
      src/views/warehouse/warehouseManagementDelivery.vue
  69. 3 3
      src/views/warehouse/warehouseManagementEdit.vue
  70. 1 1
      src/views/warehouse/warehouseManagementGross.vue
  71. 1 1
      src/views/warehouse/warehouseManagementNoWeightIn.vue
  72. 1 1
      src/views/warehouse/warehouseManagementNoWeightOut.vue
  73. 2 2
      src/views/warehouse/warehouseManagementPerfectDelivery.vue
  74. 2 2
      src/views/warehouse/warehouseManagementPerfectput.vue
  75. 2 2
      src/views/warehouse/warehouseManagementPut.vue
  76. 1 1
      src/views/warehouse/warehouseManagementTare.vue
  77. 17 13
      src/views/warehousenew/warehouseManagementAdd.vue
  78. 2 2
      src/views/warehousenew/warehouseManagementDelivery.vue
  79. 13 27
      src/views/warehousenew/warehouseManagementEdit.vue
  80. 1 1
      src/views/warehousenew/warehouseManagementGross.vue
  81. 6 4
      src/views/warehousenew/warehouseManagementLook.vue
  82. 1 1
      src/views/warehousenew/warehouseManagementNoWeightIn.vue
  83. 1 1
      src/views/warehousenew/warehouseManagementNoWeightOut.vue
  84. 2 2
      src/views/warehousenew/warehouseManagementPerfectDelivery.vue
  85. 2 2
      src/views/warehousenew/warehouseManagementPerfectput.vue
  86. 2 2
      src/views/warehousenew/warehouseManagementPut.vue
  87. 1 1
      src/views/warehousenew/warehouseManagementTare.vue
  88. 7 6
      src/views/warehousenew/warehousingOrder.vue

+ 1 - 0
src/api/V2/personnelManagement/index.js

@@ -0,0 +1 @@
+export const API_GET_PERSON_LIST = '/clockInfo/selectClockInfoPc'

+ 1 - 1
src/api/V2/profitable/index.js

@@ -75,4 +75,4 @@ export const API_EDIT_CONTRACT ='/contractManagementInfo/editInfo'
 // 结算校验
 export const API_JUDGE_SETTLEMENT ='/contractManagementInfo/judgeSettlementConditions'
 // 油费列表
-export const API_FUELFILLINGINFO     ='/fuelFillingInfo/selectFillingPc'
+export const API_FUELFILLINGINFO  ='/fuelFillingInfo/selectFillingPc'

+ 20 - 18
src/api/common/index.js

@@ -14,9 +14,9 @@ export const API_POST_NOTIFICATIONSTAFFTODOTASK_CHANGESHOWTIME = '/notificationS
 
 // 分页查询船舶列表
 export const API_GET_VESSELPAGE = '/systemVessel/query/getVesselPage'
-// 查询船舶详情
+    // 查询船舶详情
 export const API_GET_VESSELONE = '/systemVessel/query/getVesselOne'
-// 修改船舶信息表
+    // 修改船舶信息表
 export const API_POST_CHANGEINFO = '/systemVessel/api/changeInfo'
 
 
@@ -59,18 +59,18 @@ export const API_GET_PROGRESS_PERCENTAGE = '/tbInitializationData/query/getProgr
 export const API_GET_IS_SHOW_DIALOG = '/tbInitializationData/query/getVesselList'
 
 // 获取运输结算统计信息
-export const API_GET_INFO ='/tranSettlementReport/getInfo'
+export const API_GET_INFO = '/tranSettlementReport/getInfo'
 
 // 通过手机号获取公司
 export const API_GET_COMP = '/commonUser/getCompList'
-/*
- * @Author: Myz
- * @Date: 2020-10-19 15:10:28
- * @Last Modified by: Yolo
- * @Last Modified time: 2021-01-15 15:42:45
- * @Desc 首页不包括统计Api接口  如果想找统计的接口 请到statistical文件夹中
- */
-// 查询附件
+    /*
+     * @Author: Myz
+     * @Date: 2020-10-19 15:10:28
+     * @Last Modified by: Yolo
+     * @Last Modified time: 2021-01-15 15:42:45
+     * @Desc 首页不包括统计Api接口  如果想找统计的接口 请到statistical文件夹中
+     */
+    // 查询附件
 export const API_GET_GETFILELIST = `/appendix/query/getFileList`
 
 // 获取当前登录用户信息
@@ -90,18 +90,20 @@ export const API_GET_GETSTAFFHOMESHOWLIST = `/staffHomeShowInfo/query/getStaffHo
 
 // 查询附件
 export const API_GET_APPENDIX_GETFILELIST = `/appendix/query/getFileList`
-// 保存附件
+    // 保存附件
 export const POST_GET_APPENDIX_SAVEFILES = `/appendix/api/saveFiles`
-// 获取系统web路径
+    // 获取系统web路径
 export const API_GET_SYSTEM_GETROOTURL = `/system/query/getRootUrl`
-// 获得oss 的bucket 和 endpoint TODO:不知道删了会不会有影响 目前先没删
+    // 获得oss 的bucket 和 endpoint TODO:不知道删了会不会有影响 目前先没删
 export const API_GET_FILE_ACCESSCONFIG = `/file/query/accessConfig`
-// 船端上传附件
+    // 船端上传附件
 export const API_POST_UPLOADFILES = `/appendix/api/uploadFiles`
-//删除附件
+    //删除附件
 export const API_POST_DELETEFILES = `/appendix/api/deleteFiles`
-// 上传附件
+    // 上传附件
 export const API_POST_OTHERUPLOADFILES = `/appendix/api/uploadFiles`
-//获取公司下拉列表
+    //获取公司下拉列表
 export const API_GET_API_COMPLIST = `/commonUser/getComp`
 export const API_GET_ADMINID = `/commonUser/test`
+    // 获取部门
+export const API_GET_DEPT = `/department/query/getDeptListByCompId`

+ 2 - 0
src/global.js

@@ -1,10 +1,12 @@
 import Vue from 'vue'
+const uploadPath = process.env.VUE_APP_BASE_API + '/appendix/admin'
 import store from '@/vendors/vuex'
 // import router from './router'
 // 2.新创建一个vue实例
 const v = new Vue()
 export default {
   ws: {},
+  uploadPath,
   websocket: '',
   setWs: function(newWs) {
     this.ws = newWs

+ 14 - 0
src/model/personnelManagement/index.js

@@ -0,0 +1,14 @@
+import { errorCatcher, errorHandle, filter } from 'base-core-lib'
+import { appRx } from '../defalutConfig/indexRx'
+import {
+    API_GET_PERSON_LIST,
+} from '@/api/V2/personnelManagement'
+import {
+    API_GET_DEPT,
+} from '@/api/common/index'
+// 列表
+export const getList = appRx.get(API_GET_PERSON_LIST, errorCatcher, errorHandle, filter)
+    // 添加
+    // export const addList = appRx.post(API_POST_ADD_CONTRACT_TENANT, errorCatcher, errorHandle, filter)
+    // 获取部门列表
+export const getDeptList = appRx.get(API_GET_DEPT, errorCatcher, errorHandle, filter)

+ 1 - 1
src/model/profitable/index.js

@@ -39,7 +39,7 @@ import {
   API_RELATIONCONTRACT,
   API_EDIT_CONTRACT,
   API_JUDGE_SETTLEMENT,
-  API_FUELFILLINGINFO
+  API_FUELFILLINGINFO,
 } from '@/api/V2/profitable'
 //收支明细列表
 export const getInOutDetailed = appRx.get(API_GET_INOUTDETAILED, errorCatcher, errorHandle, filter)

+ 1 - 0
src/utils/util.js

@@ -5,6 +5,7 @@ import {
  * 动态插入css
  */
 
+
 export const loadStyle = (url, callback) => {
   if (!isInclude(url)) {
     const link = document.createElement('link');

+ 10 - 1
src/views/contractManagement/acquisitionContract.vue

@@ -85,7 +85,7 @@
               style="color: #8890b1" />
           </el-select>
           <el-select v-else v-model="scope.row.status" placeholder="" class="statusselect"
-            :disabled="scope.row.status=='已完成'"
+            :disabled="scope.row.status=='已完成'||scope.row.status=='已结算'"
             @change='selectstatuschange($event,scope.row)'
 
             :value="scope.row.status">
@@ -200,7 +200,13 @@
 
     <WinseaContentModal v-model="accessoryTFs" :title="$t('system.noticeCircular.information')"
       @on-cancel="handleClose">
+      <div v-if="applstatus">
       <ws-upload ref="upload" :size-limit="size" @onChange="onChange" :comp-id="compId" :appendix-ids="appendixIdss"
+        accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar" 
+        v-hasPermission="`contractManagement.buyContract.buyContractInfo.appl`"
+        />
+      </div>
+      <ws-upload v-else ref="upload" :comp-id="compId" :appendix-ids="appendixIdss" :editable="false"
         accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar" />
     </WinseaContentModal>
   </div>
@@ -219,6 +225,7 @@
     downloadFile
   } from '@/utils/batchDown'
   import Pagination from '@/components/Pagination'
+  import { hasPermission } from '../../utils/getHasPermission'
   import WsUpload from '@/components/WsUpload'
   import {
     dayjs,
@@ -278,6 +285,7 @@
           month: dayjs().format('MM'),
         },
         contractList: [],
+        applstatus:false,
         deptBudgetList: {},
         historyList: [],
         appendixIdss: [],
@@ -350,6 +358,7 @@
       }
     },
     activated() {
+      this.applstatus=hasPermission('contractManagement.buyContract.buyContractInfo.appl')
       //cg.viewBudget
       //cg.viewSpareMoney
       // this.getVesselData();

+ 3 - 3
src/views/contractManagement/collectionContractRecord.vue

@@ -169,7 +169,7 @@
             </ws-form-item>
             <ws-form-item label="上传截图"></ws-form-item>
             <div class="upLoad">
-              <el-upload class="avatar-uploader" action="https://www.zthymaoyi.com/upload/admin" :show-file-list="false"
+              <el-upload class="avatar-uploader" :action="global.uploadPath" :show-file-list="false"
                 :on-success="handleAvatarSuccess">
 
                 <div v-if='imageUrl.length>0'>
@@ -202,7 +202,7 @@
             </ws-form-item>
             <ws-form-item label="上传截图" prop=" paymentScreenshot"></ws-form-item>
             <div class="upLoad">
-              <el-upload class="avatar-uploader" action="https://www.zthymaoyi.com/upload/admin" :show-file-list="false"
+              <el-upload class="avatar-uploader" :action="global.uploadPath" :show-file-list="false"
                 :on-success="handleAvatarSuccess">
                 <!-- <img v-if="imageUrl" :src="imageUrl" class="avatar" />
                 <i v-else class="el-icon-plus avatar-uploader-icon"></i> -->
@@ -1007,7 +1007,7 @@
       //上传付款截图
       handleAvatarSuccess(e) {
         console.log(this)
-        this.imageUrl.push(e.url)
+        this.imageUrl.push(e.data.url)
       },
       printBig() {
         let _list2 = []

+ 1315 - 0
src/views/contractManagement/inspectInfo.vue

@@ -0,0 +1,1315 @@
+<!--质检信息-->
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="12">
+        <h2 class="bg-left titleup">{{ information }}信息</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right">
+        <el-button class="bg-bottom" type="primary" size="small" @click="cancel"><img width="6" height="10"
+            style="vertical-align: bottom; margin-right: 3px" src="../../../public/img/lujing.png" alt="" />返回
+        </el-button>
+      </el-col>
+    </el-row>
+    <div class="substance">
+      <ws-form>
+        <div style="width: 80%; margin: 0 auto">
+          <div class="title">基本信息</div>
+          <ws-info-table>
+            <ws-form-item label="仓库" span="1" prop="warehouseName">
+              <ws-input v-model="warehouseName" placeholder="请输入仓库" maxlength="100" disabled size="small" />
+            </ws-form-item>
+            <ws-form-item label="编号" span="1" prop="qualityNo">
+              <ws-input v-model="inspect.qualityNo" placeholder="请输入编号" maxlength="100" disabled size="small" />
+            </ws-form-item>
+            <ws-form-item label="仓位号" span="1" prop="binNumber">
+              <ws-select v-model="inspect.binNumber" placeholder="请输入仓位号" class="typeselect" :disabled="disabled">
+                <ws-option v-for="item in getbinNumberList" :key="item.value" :label="item.value" :value="item.value" />
+              </ws-select>
+            </ws-form-item>
+
+            <ws-form-item label="囤位号" span="1" prop="storageTagNo">
+              <ws-input v-model="inspect.storageTagNo" placeholder="请输入囤位号" maxlength="15" size="small"
+                :disabled="disabled3" />
+            </ws-form-item>
+            <ws-form-item label="购粮性质" span="1" prop="natureOfGrainPurchase">
+              <ws-input v-model="inspect.natureOfGrainPurchase" placeholder="请输入购粮性质" maxlength="10" size="small"
+                :disabled="disabled" />
+            </ws-form-item>
+            <ws-form-item label="货名" span="1" prop="goodsName">
+              <ws-select v-model="inspect.goodsName" placeholder="" class="typeselect" :disabled="disabledName" @change="waterContentChange">
+                <ws-option v-for="item in goodNameList" :key="item.goodsName" :label="item.goodsName"
+                  :value="item.goodsName" />
+              </ws-select>
+            </ws-form-item>
+            <ws-form-item label="客户" span="1" prop="customerName">
+              <el-select v-model="inspect.customerName" clearable filterable placeholder="请选择" class="typeselect"
+                @change="customerChange" :disabled="disabled1">
+                <el-option v-for="item in customerList" :key="item.valueKey" :label="item.value" :value="item.value" />
+              </el-select>
+            </ws-form-item>
+            <ws-form-item label="车牌号" span="1" prop="carNumber">
+              <!-- <el-select v-model="inspect.carNumber" clearable  @blur="selectBlur" filterable  placeholder="请选择" class="typeselect" @change="shipperNameChange"
+                :disabled="disabled1"> -->
+                
+                <el-select v-model="inspect.carNumber" clearable filterable allow-create default-first-option placeholder="请选择" class="typeselect" @change="shipperNameChange"
+                :disabled="disabled1">
+                <el-option v-for="(item,index) in carNumberList" :key="index" :label="item.carNo" :value="index" />
+              </el-select>
+              <!-- <ws-input @change='carnochange' v-model="inspect.carNumber" placeholder="请输入车牌号" maxlength="10" size="small"
+                :disabled="disabled" /> -->
+            </ws-form-item>
+            <ws-form-item label="箱号-1" span="1" prop="boxNo">
+              <ws-input :disabled="disabled" v-model="inspect.boxNo" placeholder="请输入箱号" maxlength="20" size="small" />
+            </ws-form-item>
+            <ws-form-item label="箱号-2" span="1" prop="boxNoOther">
+              <ws-input :disabled="disabled" v-model="inspect.boxNoOther" placeholder="请输入箱号" maxlength="20"
+                size="small" />
+            </ws-form-item>
+            <ws-form-item label="封号-1" span="1" prop="titleNo">
+              <ws-input :disabled="disabled" v-model="inspect.titleNo" placeholder="请输入封号" maxlength="20"
+                size="small" />
+            </ws-form-item>
+            <ws-form-item label="封号-2" span="1" prop="titleNoOther">
+              <ws-input :disabled="disabled" v-model="inspect.titleNoOther" placeholder="请输入封号" maxlength="20"
+                size="small" />
+            </ws-form-item>
+            
+            <ws-form-item v-if="inspect.paramType != '1'" label="扣重比" span="1" prop="buckleWeightRatio">
+              <ws-input type="number" @mousewheel.native.prevent v-model="inspect.buckleWeightRatio"
+                placeholder="请输入扣重比" maxlength="100" size="small" :disabled="disabled" />
+            </ws-form-item>
+            <ws-form-item v-else label="扣杂" span="1" prop="buckleWeightRatio">
+              <ws-input type="number" style="padding-right:30px" @mousewheel.native.prevent
+                v-model="inspect.buckleMiscellaneous" @input="waterContentChange" placeholder="请输入扣杂" maxlength="100"
+                size="small" :disabled="disabled" />
+              <ws-input v-if='types==4' type="number" @mousewheel.native.prevent v-model="inspect.reBuckleMiscellaneous"
+                placeholder="请输入扣杂" maxlength="100" size="small" />
+              <ws-input v-else type="number" @mousewheel.native.prevent v-model="inspect.reBuckleMiscellaneous"
+                placeholder="未复检" maxlength="100" size="small" disabled />
+            </ws-form-item>
+            <ws-form-item label="类型" span="1" prop="type">
+              <ws-select v-model="inspect.type" disabled @change="typeChange">
+                <ws-option v-for="item in typeList" :key="item" :label="item" :value="item" />
+              </ws-select>
+            </ws-form-item>
+            <ws-form-item label="净重单价(元/公斤)" span="1" prop="tidalGrainPrice" v-if="inspect.type == '潮粮'">
+              <ws-input type="number" @mousewheel.native.prevent v-model="inspect.tidalGrainPrice" placeholder="请输入净重单价"
+                maxlength="10" size="small"  />
+            </ws-form-item>
+            <ws-form-item label="干粮单价(元/公斤)" span="2" prop="dryGrainPrice" v-if="inspect.type == '干粮'">
+              <ws-input type="number" @mousewheel.native.prevent v-model="inspect.dryGrainPrice" placeholder="请输入干粮单价"
+                maxlength="10" size="small"  />
+            </ws-form-item>
+              <ws-form-item label="复检备注" span="2" prop="reMemo" v-if="information == '编辑复检' || statusShow == '已复检'">
+                <ws-input type="textarea" v-model="inspect.reMemo" placeholder="请输入复检备注" maxlength="300" v-if="statusShow != '已复检'" />
+                <ws-input type="textarea" v-model="inspect.reMemo" placeholder="请输入复检备注" maxlength="300" v-else disabled />
+              </ws-form-item>
+               <ws-form-item label="车型" span="2" prop="dryGrainPrice" v-if="types==4&&warehouseName=='鲅鱼圈金信库'||types==2&&warehouseName=='鲅鱼圈金信库'">
+                <el-select v-model="inspect.carModel" clearable filterable placeholder="请选择" class="typeselect"
+                 :disabled="disabled3">
+                <el-option v-for="item in cartypeList" :key="item.constValue" :label="item.constValue" :value="item.constValue" />
+              </el-select>
+            </ws-form-item>
+          </ws-info-table>
+
+          <div class="title">质检数据&nbsp;&nbsp;&nbsp;&nbsp; <el-checkbox v-if='types==1||types==3' v-model="checked">补录</el-checkbox></div>
+          <ws-info-table>
+            <ws-form-item label="等级" span="1" prop="grade">
+              <ws-select v-model="inspect.grade" placeholder="请输入等级" class="typeselect" :disabled="disabled"
+                @change="waterContentChange">
+                <ws-option v-for="item in gradeList" :key="item.constKey" :label="item.constValue"
+                  :value="item.constValue" />
+              </ws-select>
+            </ws-form-item>
+            <ws-form-item label="杂质(%)" span="1" prop="impurity">
+              <ws-input type="number" @mousewheel.native.prevent v-model="inspect.impurity" placeholder="请输入杂质占比"
+                maxlength="100" size="small" :disabled="disabled" />
+            </ws-form-item>
+            <ws-form-item label="水分(%)" span="1" prop="waterContent">
+
+              <ws-input type="number" @mousewheel.native.prevent style="padding-right:30px"
+                v-model="inspect.waterContent" placeholder="请输入水分占比" maxlength="100" size="small"
+                @change="waterContentChange('water')" :disabled="disabled" />
+              <ws-input v-if='types==4' type="number" @mousewheel.native.prevent v-model="inspect.reWaterContent"
+                placeholder="请输入水分占比" maxlength="100" size="small" />
+              <ws-input v-else type="number" @mousewheel.native.prevent v-model="inspect.reWaterContent"
+                placeholder="未复检" maxlength="100" size="small" disabled />
+            </ws-form-item>
+            <ws-form-item label="霉变粒(%)" span="1" prop="mildewGrain">
+              <ws-input type="number" @mousewheel.native.prevent v-model="inspect.mildewGrain" placeholder="请输入霉变粒占比"
+                maxlength="100" size="small" :disabled="disabled" />
+            </ws-form-item>
+            <ws-form-item label="容重(克/升)" span="1" prop="bulkDensity">
+              <ws-input type="number" @mousewheel.native.prevent v-model="inspect.bulkDensity" placeholder="请输入容重"
+                maxlength="100" size="small" :disabled="disabled" />
+            </ws-form-item>
+            <ws-form-item label="热损伤(%)" span="1" prop="jiaorenli">
+              <ws-input type="number" @mousewheel.native.prevent v-model="inspect.jiaorenli" placeholder="请输入热损伤占比"
+                maxlength="100" size="small" :disabled="disabled" />
+            </ws-form-item>
+            <ws-form-item label="不完善粒(%)" span="1" prop="imperfectGrain">
+              <ws-input type="number" @mousewheel.native.prevent v-model="inspect.imperfectGrain"
+                placeholder="请输入不完善粒占比" maxlength="100" size="small" :disabled="disabled" />
+            </ws-form-item>
+          </ws-info-table>
+          <div class="but">
+            <el-button @click="cancel" v-if="types != 2" type="primary">取消</el-button>
+               <el-button @click="checkOk" v-if="types == 4" type="primary">确认初检信息</el-button>
+            <el-button @click="print" v-if="types ==3 || types ==1" type="primary">保存</el-button>
+            <el-button @click="print" v-if="types == 5 || types==4" type="primary">确认并打印</el-button>
+            <el-button @click="cancel" v-if="types == 2" type="primary">关闭</el-button>
+          </div>
+        </div>
+      </ws-form>
+    </div>
+    <el-dialog width="70%" class="table-content" center :visible.sync="isShowPrint" title="粮食质检单" @opened='opendBtn' @close="closeDialog"
+      :close-on-click-modal="false">
+      <inspectInfoPrint :printData="inspect" ref="saveImg"></inspectInfoPrint>
+      <div style="text-align:center">
+        <el-button type="primary" @click="closePrint">关闭</el-button>
+        <el-button type="primary" @click="printSmall">打印小票</el-button>
+        <el-button type="primary" @click="printBig">打印单据</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+<script>
+  import {
+    inspectAdd,
+    getbinNumber,
+    getcustomer,
+    getinspectLook,
+    getinspectLookUnitPrice,
+    getinspectLookGoods,
+    getinspectEdit,
+    getamount,
+    getCount,
+    getDryGrainPrice,
+    getshippinginfo,
+    postCheck,
+    getQRcode,
+    getcartype
+  } from '@/model/houseSelfCollect/index'
+  import {
+    packList
+  } from '@/model/contarct/index'
+  import inspectInfoPrint from './component/inspectInfoPrint.vue'
+  import html2canvas from 'html2canvas'
+  import axios from 'axios'
+  export default {
+    components: {
+      inspectInfoPrint,
+    },
+    watch: {},
+    data() {
+      return {
+        isShowPrint: false,
+        customerList1: [],
+        // warehouseList: {},
+        inspect: {
+          tidalGrainPrice: 0,
+          buckleWeightRatio: 0,
+          natureOfGrainPurchase: '贸易粮',
+          buckleMiscellaneous: 0,
+          paramType: 1,
+          type: '潮粮'
+        },
+        carNumberList: [],
+        disabled: false,
+        disabled1: false,
+        checked:false,
+        disabled2: false,
+        disabled3:false,
+        disabledName: false,
+        types: '1',
+        information: '添加初检',
+        goodNameList: [],
+        gradeList: [],
+        customerList: [],
+        getbinNumberList: [],
+        cartypeList:[],
+        cangid: '', //仓库id
+        warehouseName: '',
+        unitPrice: 0,
+        count: 0,
+        cangNo: '',
+        typeList: ['干粮', '潮粮'],
+        purchasePriceList: [],
+        id: '',
+        imgUrl: '',
+        printData: {},
+        num: 0,
+        tipFlag: true,
+        allowEdit: 0,
+        statusShow :''
+      }
+    },
+    activated() {
+      this.types = this.$route.query.type
+      this.allowEdit = this.$route.query.allowEdit
+      if (this.allowEdit == 0) {
+        this.disabled2 = true
+      } else if (this.allowEdit == 1) {
+        this.disabled2 = false
+      }
+      if (!this.types) {
+        this.types = 1
+        this.information = '添加初检'
+        this.disabled = false
+        this.inspect = {
+          tidalGrainPrice: 0,
+          buckleWeightRatio: 0,
+          natureOfGrainPurchase: '贸易粮',
+          type: '潮粮'
+        }
+      }
+      this.cangid = this.$route.query.cangid
+      this.warehouseName = this.$route.query.warehouseName
+      this.cangNo = this.$route.query.warehouseNo
+      this.count = Number(this.$route.query.count) + 1
+      this.statusShow = this.$route.query.status
+      // this.purchasePriceList = this.$route.query.purchasePriceList
+      this.id = this.$route.query.id
+      if (this.types == 2) {
+        this.disabled = true
+        this.disabled1 = true
+        this.disabled2 = true
+        this.disabledName = true
+        this.disabled3=true
+        this.information = '查看质检'
+      } else if (this.types == 3) {
+        this.disabled = false
+        this.disabled1 = true
+        this.disabledName = true
+        this.information = '编辑初检'
+      } else if (this.types == 4) {
+        this.disabled = true
+        this.disabled1 = true
+        this.disabledName = true
+        this.information = '编辑复检'
+      } else if (this.types == 5) {
+        this.disabled = false
+        this.disabled1 = true
+        this.disabledName = false
+        this.information = '确认质检'
+      } else {
+        this.disabled1 = false
+        this.disabled = false
+        this.disabledName = false
+      }
+      this.calculation()
+      this.getList(this.id)
+    },
+    methods: {
+      //确认初检信息
+      checkOk(){
+        this.$confirm('确定初检信息后,初检员不需要再次确认质检信息,是否确认提交', '提示', {
+              confirmButtonText: '确定',
+              cancelButtonText: '取消',
+              type: 'warning',
+            })
+            .then(() => {
+              postCheck(this.inspect)
+                .toPromise()
+                .then((response) => {
+                   postCheck({id:this.id,flag:2})
+                    .toPromise()
+                    .then((response) => {
+                      if(response == 'OK'){
+                      this.$message.success('提交成功')
+                        this.$router.push({path: 'inspectionManagement' })
+                        }else{
+                          this.$message.error('提交失败')
+                        }
+                    })
+                }).catch(() => {
+              return false
+            })
+        })
+
+      },
+      printSmall() {
+        window.open('../../../static/inspection.html?type=1&dataList=' + JSON.stringify(this.inspect))
+      },
+      printBig() {
+        window.open('../../../static/inspection.html?type=2&dataList=' + JSON.stringify(this.inspect))
+      },
+      getdate() {
+        var date = new Date()
+        var year = date.getFullYear() //获取完整的年份(4位)
+        var mouth = date.getMonth() + 1 //获取当前月份(0-11,0代表1月)
+        var datetime = date.getDate() //获取当前日(1-31)
+        if (mouth < 10) {
+          mouth = '0' + mouth
+        }
+        if (datetime < 10) {
+          datetime = '0' + datetime
+        }
+        return String(year) + String(mouth) + String(datetime)
+      },
+      calculation() {
+        let number = '000' + this.count
+        number = number.substring(number.length - 4, number.length)
+        this.inspect.qualityNo = 'SGRK' + this.getdate() + this.cangNo + number //SGRK+8位时间+3位仓库编号+4位序列号
+      },
+      selectBlur(e) {
+                if (e.target.value) {  
+                 // 不在表单的时候不需要判断,也不需要isname字段
+                    this.inspect.carNumber = e.target.value;
+                    // this.isName = true;   
+                } else {
+                    // this.isName = false;
+                }
+            },
+      opendBtn(){
+           html2canvas(this.$refs.saveImg.$el).then(canvas => {
+          let dataURL = canvas.toDataURL('image/png');
+          this.imgUrl = dataURL;
+          if (this.imgUrl !== '') {
+            let b = this.dataURLtoFile(this.imgUrl, 'printImg')
+            let formdata = new FormData();
+            formdata.append('file', b);
+            axios({
+              method: 'post',
+              url: this.global.uploadPath,
+              data: formdata
+            }).then((response) => {
+              //编辑接口
+              this.inspect.pictureAddress = response.data.url
+              console.log(this.types)
+              if (this.types == 3) {
+                this.inspect.flag = 0
+              } else if (this.types == 4) {
+                this.inspect.flag = 1
+              }
+              getinspectEdit(this.inspect)
+                .toPromise()
+                .then((response) => {
+                  this.types = ''
+                  // this.inspect = [] 
+              
+                })
+            })
+          }
+        })
+      },
+      
+      closeDialog() {
+        html2canvas(this.$refs.saveImg.$el).then(canvas => {
+          let dataURL = canvas.toDataURL('image/png');
+          this.imgUrl = dataURL;
+          if (this.imgUrl !== '') {
+            let b = this.dataURLtoFile(this.imgUrl, 'printImg')
+            let formdata = new FormData();
+            formdata.append('file', b);
+            axios({
+              method: 'post',
+              url: this.global.uploadPath,
+              data: formdata
+            }).then((response) => {
+              //编辑接口
+              this.inspect.pictureAddress = response.data.url
+              console.log(this.types)
+              if (this.types == 3) {
+                this.inspect.flag = 0
+              } else if (this.types == 4) {
+                this.inspect.flag = 1
+              }
+              getinspectEdit(this.inspect)
+                .toPromise()
+                .then((response) => {
+                  this.types = ''
+                  // this.inspect = [] 
+                  this.isShowPrint = false
+                  this.$router.push({
+                    path: 'inspectionManagement'
+                  })
+                })
+            })
+            this.dialogTableVisible = true;
+          }
+        })
+
+      },
+      typeChange() {
+        if (this.inspect.type == '干粮' && this.inspect.goodsName) {
+          getDryGrainPrice({
+              warehouseId: this.cangid,
+              goodsName: this.inspect.goodsName
+            })
+            .toPromise()
+            .then((response) => {
+              this.$set(this.inspect, 'dryGrainPrice', response)
+            })
+        }
+      },
+      closePrint() {
+        // this.inspect = [] 
+        this.isShowPrint = false
+      },
+      submit() {
+        this.inspect.warehouseName = this.warehouseName
+        this.inspect.compId = localStorage.getItem('ws-pf_compId')
+        if (this.types == 1) {
+          this.inspect.qualityInspector = localStorage.getItem('ws-pf_staffName')
+          this.$confirm('确定保存质检信息?', '提示', {
+              confirmButtonText: '确定',
+              cancelButtonText: '取消',
+              type: 'warning',
+            })
+            .then(() => {
+              if (!this.inspect.tidalGrainPrice || this.inspect.tidalGrainPrice == 'NaN') {
+                this.inspect.tidalGrainPrice = 0
+              }
+              inspectAdd(this.inspect)
+                .toPromise()
+                .then((response) => {
+                  this.checked=false
+                  this.$message.success('保存成功')
+                  getinspectLook({
+                      id: response
+                    })
+                    .toPromise()
+                    .then((response) => {
+                    //  let printString = localStorage.getItem('ws-pf_compId') + "," + row.qualityNo + "," + this.cangid 
+                    //       getQRcode({printString}).toPromise()
+                    //             .then((res) => {
+                            this.isShowPrint = true
+                            this.printData = response
+                            // this.printData.qrCodeUrl = res
+                            // })
+                      this.inspect = response
+                      if (response.compName == '黑龙江秋收有限公司') {
+               				 this.inspect.compName = '黑龙江中天昊元贸易有限公司'
+              					}
+                    })
+                  this.isShowPrint = true
+                  //打印
+                  // this.$router.go(-1)
+                })
+            })
+            .catch(() => {
+              return false
+            })
+        } else if (this.types == 3) {
+          this.inspect.qualityInspector = localStorage.getItem('ws-pf_staffName')
+          this.inspect.flag = 0
+          this.$confirm('确定保存初检信息?', '提示', {
+              confirmButtonText: '确定',
+              cancelButtonText: '取消',
+              type: 'warning',
+            })
+            .then(() => {
+              // return
+              getinspectEdit(this.inspect)
+                .toPromise()
+                .then((response) => {
+                  this.$message.success('修改成功')
+                  this.checked=false
+                  this.$router.push({
+                    path: 'inspectionManagement'
+                  })
+                })
+            })
+            .catch(() => {
+              return false
+            })
+        } else if (this.types == 4) {
+          this.inspect.flag = 1
+          this.inspect.reInspector = localStorage.getItem('ws-pf_roleName') + localStorage.getItem('ws-pf_staffName')
+          this.$confirm('确定保存复检信息?', '提示', {
+              confirmButtonText: '确定',
+              cancelButtonText: '取消',
+              type: 'warning',
+            })
+            .then(() => {
+              // return
+              getinspectEdit(this.inspect)
+                .toPromise()
+                .then((response) => {
+                  this.$message.success('修改成功')
+                  
+                  // this.$router.push({
+                  //   path: 'inspectionManagement'
+                  // })
+                   getinspectLook({
+                      id: this.inspect.id
+                    })
+                    .toPromise()
+                    .then((response) => {
+                      this.inspect = response
+                      if (response.compName == '黑龙江秋收有限公司') {
+               				 this.inspect.compName = '黑龙江中天昊元贸易有限公司'
+              					}
+                    })
+                  this.isShowPrint = true
+                })
+            })
+            .catch(() => {
+              return false
+            })
+        } else if (this.types == 5) {
+          this.inspect.flag = 2
+          // this.inspect.reInspector=localStorage.getItem('ws-pf_roleName') + localStorage.getItem('ws-pf_staffName')
+          this.$confirm('确定保存质检信息?', '提示', {
+              confirmButtonText: '确定',
+              cancelButtonText: '取消',
+              type: 'warning',
+            })
+            .then(() => {
+              getinspectEdit(this.inspect)
+                .toPromise()
+                .then((response) => {
+                  this.$message.success('修改成功')
+                  getinspectLook({
+                      id: this.inspect.id
+                    })
+                    .toPromise()
+                    .then((response) => {
+                      this.inspect = response
+                      if (response.compName == '黑龙江秋收有限公司') {
+               				 this.inspect.compName = '黑龙江中天昊元贸易有限公司'
+              					}
+                    })
+                  this.isShowPrint = true
+                })
+            })
+            .catch(() => {
+              return false
+            })
+        }
+      },
+      print() {
+        if (!this.inspect.qualityNo) {
+          this.$message({
+            message: '编号不能为空',
+            type: 'warning',
+          })
+          return
+        }
+        if (!this.inspect.binNumber) {
+          this.$message({
+            message: '仓位不能为空',
+            type: 'warning',
+          })
+          return
+        }
+        if (!this.inspect.customerName) {
+          this.$message({
+            message: '客户不能为空',
+            type: 'warning',
+          })
+          return
+        }
+        // if (!this.inspect.storageTagNo) {
+        //   this.$message({
+        //     message: '囤位号不能为空',
+        //     type: 'warning',
+        //   })
+        //   return
+        // }
+        if(this.inspect.storageTagNo){
+            if (this.inspect.storageTagNo.length > 10) {
+            this.$message({
+              message: '囤位号不超过10个字符',
+              type: 'warning',
+            })
+            return
+          }
+        }
+        if (!this.inspect.carNumber) {
+          this.$message({
+            message: '车牌号不能为空',
+            type: 'warning',
+          })
+          return
+        }
+        if (this.inspect.carNumber.length > 7 || this.inspect.carNumber.length != 7) {
+          this.$message({
+            message: '车牌号输入错误',
+            type: 'warning',
+          })
+          return
+        }
+        if (this.inspect.boxNo && this.inspect.boxNo.length > 20) {
+          this.$message({
+            message: '箱号-1输入错误',
+            type: 'warning',
+          })
+          return
+        }
+        if (this.inspect.boxNoOther && this.inspect.boxNoOther.length > 20) {
+          this.$message({
+            message: '箱号-2输入错误',
+            type: 'warning',
+          })
+          return
+        }
+        if (this.inspect.titleNo && this.inspect.titleNo.length > 20) {
+          this.$message({
+            message: '封号-1输入错误',
+            type: 'warning',
+          })
+          return
+        }
+        if (this.inspect.titleNoOther && this.inspect.titleNoOther.length > 20) {
+          this.$message({
+            message: '封号-2输入错误',
+            type: 'warning',
+          })
+          return
+        }
+        if (!this.inspect.goodsName) {
+          this.$message({
+            message: '货名不能为空',
+            type: 'warning',
+          })
+          return
+        }
+        if (this.inspect.paramType == '2') {
+          if (
+            this.inspect.buckleWeightRatio < 0 ||
+            this.inspect.buckleWeightRatio > 2
+          ) {
+            this.$message({
+              message: '扣重比输入错误',
+              type: 'warning',
+            })
+            return
+          }
+          if (
+            String(this.inspect.buckleWeightRatio).indexOf('.') != -1 &&
+            String(this.inspect.buckleWeightRatio).length -
+            (String(this.inspect.buckleWeightRatio).indexOf('.') + 1) >
+            2
+          ) {
+            this.$message({
+              message: '扣重比输入错误',
+              type: 'warning',
+            })
+            return
+          }
+        }
+        if (!this.inspect.type) {
+          this.$message({
+            message: '类型不能为空',
+            type: 'warning',
+          })
+          return
+        }
+        if (!this.inspect.natureOfGrainPurchase) {
+          this.$message({
+            message: '购粮性质不能为空',
+            type: 'warning',
+          })
+          return
+        }
+        if (this.inspect.type == '干粮') {
+          if (!this.inspect.dryGrainPrice) {
+            this.$message({
+              message: '干粮价格不能为空',
+              type: 'warning'
+            })
+            return
+          }
+          if (this.inspect.dryGrainPrice <= 0 || this.inspect.dryGrainPrice > 1000) {
+            this.$message({
+              message: '干粮价格输入错误',
+              type: 'warning'
+            })
+            return
+          }
+          if (
+            String(this.inspect.dryGrainPrice).indexOf('.') != -1 &&
+            String(this.inspect.dryGrainPrice).length - (String(this.inspect.dryGrainPrice).indexOf('.') + 1) > 4) {
+            this.$message({
+              message: '干粮价格输入错误',
+              type: 'warning',
+            })
+            return
+          }
+        } else {
+          if (!this.inspect.tidalGrainPrice) {
+            this.$message({
+              message: '净重单价不能为空',
+              type: 'warning'
+            })
+            return
+          }
+          if (this.inspect.tidalGrainPrice <= 0 || this.inspect.tidalGrainPrice > 1000) {
+            this.$message({
+              message: '净重单价输入错误',
+              type: 'warning'
+            })
+            return
+          }
+        }
+        if(!this.checked){
+          if (!this.inspect.grade) {
+            this.$message({
+              message: '等级不能为空',
+              type: 'warning',
+            })
+            return
+          }
+          if (!this.inspect.impurity) {
+            this.$message({
+              message: '杂质不能为空',
+              type: 'warning',
+            })
+            return
+          }
+          if (String(this.inspect.impurity).indexOf('.') != -1 && String(this.inspect.impurity).length - (String(this
+              .inspect.impurity).indexOf('.') + 1) > 1) {
+            this.$message({
+              message: '杂质输入错误',
+              type: 'warning',
+            })
+            return
+          }
+
+          if (this.inspect.impurity < 0 || this.inspect.impurity > 40) {
+            this.$message({
+              message: '杂质输入错误',
+              type: 'warning',
+            })
+            return
+          }
+          if( this.information != '编辑复检'){
+          if (!this.inspect.waterContent) {
+            this.$message({
+              message: '水分不能为空',
+              type: 'warning',
+            })
+            return
+          }
+          if (this.inspect.waterContent < 0 || this.inspect.waterContent > 50) {
+            this.$message({
+              message: '水分输入错误',
+              type: 'warning',
+            })
+            return
+          }
+          if (String(this.inspect.waterContent).indexOf('.') != -1 && String(this.inspect.waterContent).length - (String(
+              this.inspect.waterContent).indexOf('.') + 1) > 1) {
+            this.$message({
+              message: '水分输入错误',
+              type: 'warning',
+            })
+            return
+          }
+          }
+          
+          if (!this.inspect.mildewGrain) {
+            this.$message({
+              message: '霉变粒不能为空',
+              type: 'warning',
+            })
+            return
+          }
+          if (this.inspect.mildewGrain < 0 || this.inspect.mildewGrain > 40) {
+            this.$message({
+              message: '霉变粒输入错误',
+              type: 'warning',
+            })
+            return
+          }
+          if (String(this.inspect.mildewGrain).indexOf('.') != -1 && String(this.inspect.mildewGrain).length - (String(
+              this.inspect.mildewGrain).indexOf('.') + 1) > 1) {
+            this.$message({
+              message: '霉变粒输入错误',
+              type: 'warning',
+            })
+            return
+          }
+          if (!this.inspect.bulkDensity) {
+            this.$message({
+              message: '容重不能为空',
+              type: 'warning',
+            })
+            return
+          }
+          if (this.inspect.bulkDensity < 500 || this.inspect.bulkDensity > 1000) {
+            this.$message({
+              message: '容重输入错误',
+              type: 'warning',
+            })
+            return
+          }
+          if (String(this.inspect.bulkDensity).indexOf('.') != -1 && String(this.inspect.bulkDensity).length - (String(
+              this.inspect.bulkDensity).indexOf('.') + 1) > 0) {
+            this.$message({
+              message: '容重需输入整数',
+              type: 'warning',
+            })
+            return
+          }
+          if (!this.inspect.jiaorenli) {
+            this.$message({
+              message: '热损伤不能为空',
+              type: 'warning',
+            })
+            return
+          }
+          if (this.inspect.jiaorenli < 0 || this.inspect.jiaorenli > 40) {
+            this.$message({
+              message: '热损伤输入错误',
+              type: 'warning',
+            })
+            return
+          }
+          if (String(this.inspect.jiaorenli).indexOf('.') != -1 && String(this.inspect.jiaorenli).length - (String(this
+              .inspect.jiaorenli).indexOf('.') + 1) > 1) {
+            this.$message({
+              message: '热损伤输入错误',
+              type: 'warning',
+            })
+            return
+          }
+          if (!this.inspect.imperfectGrain) {
+            this.$message({
+              message: '不完善粒不能为空',
+              type: 'warning',
+            })
+            return
+          }
+          if (this.inspect.imperfectGrain < 0 || this.inspect.imperfectGrain > 40) {
+            this.$message({
+              message: '不完善粒输入错误',
+              type: 'warning',
+            })
+            return
+          }
+          if (String(this.inspect.imperfectGrain).indexOf('.') != -1 && String(this.inspect.imperfectGrain).length - (
+              String(this.inspect.imperfectGrain).indexOf('.') + 1) > 1) {
+            this.$message({
+              message: '不完善粒输入错误',
+              type: 'warning',
+            })
+            return
+          }
+        }
+        
+        getamount({
+            compId: localStorage.getItem('ws-pf_compId'),
+            customerNumberCard: this.inspect.customerNumberCard,
+            goodsName: this.inspect.goodsName,
+          })
+          .toPromise()
+          .then((response) => {
+            for (let i = 0; i < this.purchasePriceList.length; i++) {
+              if (
+                this.inspect.goodsName == this.purchasePriceList[i].goodsName
+              ) {
+                let count = (this.purchasePriceList[i].saleLimit - response / 1000).toFixed(2)
+                if (count <= 0) {
+                  count = 0
+                  this.$alert(
+                    '该客户累计销售' +
+                    this.inspect.goodsName +
+                    (response / 1000).toFixed(2) +
+                    '吨,还可售粮' +
+                    count +
+                    '吨',
+                    '提示', {
+                      confirmButtonText: '确定',
+                      callback: (action) => {
+                        this.$message({
+                          type: 'info',
+                          message: `累计售粮已超出上限`,
+                        })
+                      },
+                    }
+                  )
+                } else {
+                  this.submit();
+                }
+              }
+            }
+          })
+      },
+      cancel() {
+        this.types = ''
+        // this.inspect = [] 
+        this.$router.push({
+          path: 'inspectionManagement'
+        })
+
+      },
+      shipperNameChange(e) {
+        this.$set(this.inspect, 'customerName', this.carNumberList[e].shipperName)
+        this.$set(this.inspect, 'carNumber', this.carNumberList[e].carNo)
+        this.$set(this.inspect, 'customerPhone', this.carNumberList[e].shipperPhone)
+        for (let i = 0; i < this.customerList1.length; i++) {
+          if (this.customerList1[i].customerName == this.inspect.customerName) {
+            this.inspect.customerNumberCard = this.customerList1[i].customerNumberCard
+          }
+        }
+        if (this.inspect.goodsName && this.inspect.customerName) {
+          // //查看当前用户对应货名有未结算状态的送货
+          // let count = 0
+          // getCount({
+          //     compId: localStorage.getItem('ws-pf_compId'),
+          //     customerName: this.inspect.customerName,
+          //     goodsName: this.inspect.goodsName,
+          //     customerNumberCard: this.inspect.customerNumberCard
+          //   }).toPromise()
+          //   .then((response) => {
+          //     count = response
+          //   })
+          //  客户下拉校验
+          // getamount({
+          //   compId: localStorage.getItem('ws-pf_compId'),
+          //   customerName: this.inspect.customerName,
+          //   goodsName: this.inspect.goodsName,
+          //   customerNumberCard:this.inspect.customerNumberCard
+          // })
+          //   .toPromise()
+          //   .then((response) => {
+          //     for (let i = 0; i < this.purchasePriceList.length; i++) {
+          //       if (this.inspect.goodsName == this.purchasePriceList[i].goodsName) {
+          //         if ((this.purchasePriceList[i].saleLimit - response/1000 < 50 || count > 0)&&this.tipFlag) {
+          //           this.tipFlag = false
+          //           this.$message('当前客户已累计销售我司' +this.inspect.goodsName + (response/1000).toFixed(2) +'吨,最高可售' +this.purchasePriceList[i].saleLimit +'吨。');
+          //         }
+          //       }
+          //     }
+          //   })
+        }
+      },
+      customerChange(e) {
+        let customers = e.split('(')
+        this.inspect.customerName = customers[0]
+        for (let i = 0; i < this.customerList1.length; i++) {
+          // console.log(this.customerList1[i].customerName, this.customerList1[i])
+          if (this.customerList1[i].customerName == this.inspect.customerName) {
+            // console.log(this.customerList1[i])
+            this.inspect.customerNumberCard = this.customerList1[i].customerNumberCard
+          }
+        }
+        this.inspect.customerPhone = customers[1].split(')')[0]
+        if (this.inspect.goodsName && this.inspect.customerName) {
+          // //查看当前用户对应货名有未结算状态的送货
+          // let count = 0
+          // getCount({
+          //     compId: localStorage.getItem('ws-pf_compId'),
+          //     customerName: this.inspect.customerName,
+          //     goodsName: this.inspect.goodsName,
+          //     customerNumberCard: this.inspect.customerNumberCard
+          //   }).toPromise()
+          //   .then((response) => {
+          //     count = response
+          //   })
+          //   //  客户下拉校验
+          // getamount({
+          //   compId: localStorage.getItem('ws-pf_compId'),
+          //   customerName: this.inspect.customerName,
+          //   goodsName: this.inspect.goodsName,
+          //   customerNumberCard:this.inspect.customerNumberCard
+          // })
+          //   .toPromise()
+          //   .then((response) => {
+          //     for (let i = 0; i < this.purchasePriceList.length; i++) {
+          //       if (this.inspect.goodsName == this.purchasePriceList[i].goodsName) {
+          //         if ((this.purchasePriceList[i].saleLimit - response/1000 < 50 || count > 0)&&this.tipFlag) {
+          //           this.tipFlag = false
+          //           this.$message('当前客户已累计销售我司' +this.inspect.goodsName + (response/1000).toFixed(2) +'吨,最高可售' +this.purchasePriceList[i].saleLimit +'吨。');
+          //         }
+          //       }
+          //     }
+          //   })
+        }
+      },
+
+      waterContentChange(type) {
+        if (this.inspect.goodsName && type != 'water') {
+          if (this.inspect.goodsName.indexOf('潮粮') != -1) {
+            this.inspect.type = '潮粮'
+          } else {
+            this.inspect.type = '干粮'
+          }
+          if (!this.inspect.dryGrainPrice || this.inspect.dryGrainPrice == 0) {
+            getDryGrainPrice({
+                warehouseId: this.cangid,
+                goodsName: this.inspect.goodsName
+              })
+              .toPromise()
+              .then((response) => {
+                this.$set(this.inspect, 'dryGrainPrice', response)
+              })
+          }
+        //客户
+        getcustomer({
+            warehouseId: this.cangid,
+            goodsName:this.inspect.goodsName
+          })
+          .toPromise()
+          .then((response) => {
+            this.customerList1 = response
+            this.customerList = []
+            let customer = response
+            for (let i = 0; i < response.length; i++) {
+              if (response[i].supplier) {
+                customer = response[i].customerName + '(' + response[i].customerPhone + ')' + '-' + response[i]
+                  .supplier
+              } else {
+                customer = response[i].customerName + '(' + response[i].customerPhone + ')'
+              }
+              this.customerList.push({
+                valueKey: i,
+                value: customer,
+              })
+            }
+          })
+          for (var i = 0; i < this.purchasePriceList.length; i++) {
+            if (this.purchasePriceList[i].goodsName == this.inspect.goodsName) {
+              this.$set(this.inspect, 'buckleWeightRatio', this.purchasePriceList[i].deductWeight)
+              this.$set(this.inspect, 'paramType', this.purchasePriceList[i].paramType)
+
+            }
+          }
+        }
+        //潮粮单价改变事件
+        if (
+          this.inspect.goodsName &&
+          this.inspect.waterContent &&
+          this.inspect.grade
+        ) {
+          getinspectLookUnitPrice({
+              warehouseId: this.cangid,
+              goodsName: this.inspect.goodsName,
+              waterContent: this.inspect.waterContent,
+              grade: this.inspect.grade,
+            })
+            .toPromise()
+            .then((response) => {
+              if (this.inspect.paramType == '1') {
+                this.inspect.tidalGrainPrice = parseFloat(parseFloat(response) - parseFloat(this.inspect
+                  .buckleMiscellaneous) / 100 * parseFloat(this.inspect.dryGrainPrice)).toFixed(4)
+              } else {
+                if (this.inspect.type == '干粮') {
+                  if (response == 0) {
+                    getDryGrainPrice({
+                        warehouseId: this.cangid,
+                        goodsName: this.inspect.goodsName
+                      })
+                      .toPromise()
+                      .then((response) => {
+                        this.$set(this.inspect, 'dryGrainPrice', response)
+                      })
+                  } else {
+                    this.inspect.dryGrainPrice = response
+                  }
+                } else {
+                  this.inspect.tidalGrainPrice = response
+                }
+              }
+            })
+        }
+        if (this.inspect.goodsName && this.inspect.customerName) {
+          // //查看当前用户对应货名有未结算状态的送货
+          // let count = 0
+          // if (
+          //   this.inspect.goodsName &&
+          //   this.inspect.customerName
+          // ) {
+          //   getCount({
+          //       compId: localStorage.getItem('ws-pf_compId'),
+          //       customerName: this.inspect.customerName,
+          //       goodsName: this.inspect.goodsName,
+          //       customerNumberCard: this.inspect.customerNumberCard
+          //     }).toPromise()
+          //     .then((response) => {
+          //       count = response
+          //     })
+          //   // //  货名下拉校验
+          //   // getamount({
+          //   //   compId: localStorage.getItem('ws-pf_compId'),
+          //   //   customerName: this.inspect.customerName,
+          //   //   goodsName: this.inspect.goodsName,
+          //   //   customerNumberCard:this.inspect.customerNumberCard
+          //   // })
+          //   //   .toPromise()
+          //   //   .then((response) => {
+          //   //     for (let i = 0; i < this.purchasePriceList.length; i++) {
+          //   //       if (this.inspect.goodsName == this.purchasePriceList[i].goodsName) {
+          //   //         if ((this.purchasePriceList[i].saleLimit - response/1000 < 50 || count > 0 )&&this.tipFlag) {
+          //   //           this.tipFlag = false
+          //   //           this.$message('当前客户已累计销售我司' +this.inspect.goodsName + (response/1000).toFixed(2) +'吨,最高可售' +this.purchasePriceList[i].saleLimit +'吨。');
+          //   //         }
+          //   //       }
+          //   //     }
+          //   //   })
+          // }
+        }
+      },
+
+      getList(ids) {
+        // 车型
+        getcartype({constId:'QUA1'}).toPromise()
+          .then((response) => {
+            this.cartypeList=response
+          })
+        // 货名
+        getinspectLookGoods({
+            warehouseId: this.cangid
+          })
+          .toPromise()
+          .then((response) => {
+            this.goodNameList = []
+            this.goodNameList = response
+            this.purchasePriceList = response
+          })
+        // 品级
+        packList({
+            constId: 'CON3'
+          })
+          .toPromise()
+          .then((response) => {
+            this.gradeList = response
+          })
+        getshippinginfo({
+            compId: localStorage.getItem('ws-pf_compId'),
+            warehouseName: this.warehouseName
+          }).toPromise()
+          .then((response) => {
+            this.carNumberList = response
+          })
+        // 仓位
+        getbinNumber({
+            id: this.cangid
+          })
+          .toPromise()
+          .then((response) => {
+            this.getbinNumberList = []
+            for (let i = 0; i < response.warehousePositionInfoList.length; i++) {
+              this.getbinNumberList.push({
+                value: response.warehousePositionInfoList[i].binNumber,
+              })
+            }
+          })
+        if (this.types != 1) {
+          //查看
+          getinspectLook({
+              id: ids
+            })
+            .toPromise()
+            .then((response) => {
+              this.inspect = response
+            })
+        }
+      },
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  /deep/.el-dialog__header {
+    text-align: center !important;
+    padding: 10px 0 !important;
+    height: auto !important;
+  }
+
+  /deep/.el-dialog__title {
+    font-size: 24px !important;
+  }
+
+  .center {
+    background: #f6f7fc;
+  }
+
+  .ws-info-table {
+    border: none;
+  }
+
+  .ws-info-table .el-form-item {
+    width: 50%;
+    border: none;
+  }
+
+  /deep/.ws-info-table .el-form-item .el-form-item__label {
+    width: 30%;
+    text-align: center;
+    background: #ffffff;
+    font-size: 14px;
+    color: #8890b1;
+  }
+
+  /deep/.ws-info-table .el-form-item .el-form-item__content {
+    border: none;
+    // overflow: auto!important;
+    height: 55px;
+  }
+
+  /deep/.el-textarea__inner {
+    width: 100%;
+  }
+
+  .title {
+    font-size: 16px;
+    font-weight: 600;
+    margin: 10px;
+  }
+
+  .titleup {
+    position: relative;
+  }
+
+  .title::before {
+    content: '';
+    display: inline-block;
+    width: 5px;
+    height: 15px;
+    background: #8890b1;
+    margin-right: 5px;
+  }
+
+  .substance {
+    background: #ffffff;
+    width: 100%;
+    border-radius: 4px;
+    margin: 0 auto;
+    padding-top: 20px;
+  }
+
+  /deep/.el-table .el-table__header .cell,
+  .el-table .el-table__body .cell {
+    text-align: center;
+  }
+
+  /deep/.el-table--enable-row-transition .el-table__body td {
+    text-align: center;
+  }
+
+  .bg-left {
+    padding-left: 30px;
+  }
+
+  .bg-right {
+    padding-right: 10px;
+    text-align: right;
+  }
+
+  .bg-bottom {
+    margin: 15px 0px;
+  }
+
+  .titleup {
+    position: relative;
+  }
+
+  .titleup::before {
+    content: '';
+    display: inline-block;
+    width: 5px;
+    height: 30px;
+    background: #5473e8;
+    position: absolute;
+    left: 0;
+  }
+
+  .but {
+    text-align: center;
+    // margin: 20px auto;
+  }
+</style>

+ 9 - 1
src/views/contractManagement/purchaseContract.vue

@@ -85,7 +85,7 @@
               style="color: #8890b1" />
           </el-select>
           <el-select v-else v-model="scope.row.status" placeholder="" class="statusselect"
-          :disabled="scope.row.status=='已完成'"
+          :disabled="scope.row.status=='已完成'||scope.row.status=='已结算'"
             @change='selectstatuschange($event,scope.row)'
 
             :value="scope.row.status">
@@ -200,7 +200,13 @@
 
     <WinseaContentModal v-model="accessoryTFs" :title="$t('system.noticeCircular.information')"
       @on-cancel="handleClose">
+        <div v-if="applstatus">
       <ws-upload ref="upload" :size-limit="size" @onChange="onChange" :comp-id="compId" :appendix-ids="appendixIdss"
+        accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar" 
+        v-hasPermission="`contractManagement.buyContract.buyContractInfo.appl`"
+        />
+      </div>
+      <ws-upload v-else ref="upload" :comp-id="compId" :appendix-ids="appendixIdss" :editable="false"
         accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar" />
     </WinseaContentModal>
   </div>
@@ -345,11 +351,13 @@
             },
           ],
         },
+        applstatus:false,
         value1: '',
         value2: '',
       }
     },
     activated() {
+      this.applstatus=hasPermission('contractManagement.buyContract.buyContractInfo.appl')
       //cg.viewBudget
       //cg.viewSpareMoney
       // this.getVesselData();

+ 2 - 2
src/views/contractManagement/purchaseContractCost.vue

@@ -165,7 +165,7 @@
         </el-form-item>
         
         <el-form-item label="附件">
-          <el-upload ref='uploadfiles' :file-list='dataList' action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+          <el-upload ref='uploadfiles' :file-list='dataList' :action="global.uploadPath" list-type="picture-card"
             :on-success="handlefujian" :on-remove="handleRemove" class="photo2">
             <i class="el-icon-plus"></i>
           </el-upload>
@@ -398,7 +398,7 @@
       },
       handlefujian(file) {
         // console.log(file)
-        this.paymentScreenshot.push(file.url)
+        this.paymentScreenshot.push(file.data.url)
         // this.dialogVisible = true
       },
       handleRemove(file) {

+ 9 - 1
src/views/contractManagement/salesContract.vue

@@ -88,7 +88,7 @@
           </el-select>
           <el-select v-else v-model="scope.row.status" placeholder="" class="statusselect"
             @change='selectstatuschange($event,scope.row)'
-            :disabled="scope.row.status=='已完成'"
+            :disabled="scope.row.status=='已完成'||scope.row.status=='已结算'"
             :value="scope.row.status">
               <el-option label="执行中" value="执行中"
               style="color: #8890b1" />
@@ -202,7 +202,13 @@
     </el-pagination>
     <WinseaContentModal v-model="accessoryTFs" :title="$t('system.noticeCircular.information')"
       @on-cancel="handleClose">
+        <div v-if="applstatus">
       <ws-upload ref="upload" :size-limit="size" @onChange="onChange" :comp-id="compId" :appendix-ids="appendixIdss"
+        accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar" 
+        v-hasPermission="`contractManagement.buyContract.buyContractInfo.appl`"
+        />
+      </div>
+      <ws-upload v-else ref="upload" :comp-id="compId" :appendix-ids="appendixIdss" :editable="false"
         accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar" />
     </WinseaContentModal>
     <el-dialog
@@ -380,11 +386,13 @@
           ],
         },
         currentDate:0,
+        applstatus:false,
         value1: '',
         value2: '',
       }
     },
     activated() {
+      this.applstatus=hasPermission('contractManagement.buyContract.buyContractInfo.appl')
       //cg.viewBudget
       //cg.viewSpareMoney
       // this.getVesselData();

+ 2 - 2
src/views/contractManagement/salesContractCost.vue

@@ -163,7 +163,7 @@
         </el-form-item>
         
         <el-form-item label="附件">
-          <el-upload ref='uploadfiles' :file-list='dataList' action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+          <el-upload ref='uploadfiles' :file-list='dataList' :action="global.uploadPath" list-type="picture-card"
             :on-success="handlefujian" :on-remove="handleRemove" class="photo2">
             <i class="el-icon-plus"></i>
           </el-upload>
@@ -401,7 +401,7 @@
       },
       handlefujian(file) {
         // console.log(file)
-        this.paymentScreenshot.push(file.url)
+        this.paymentScreenshot.push(file.data.url)
         // this.dialogVisible = true
       },
       handleRemove(file) {

+ 2 - 2
src/views/contractManagement/storageContractRecord.vue

@@ -160,7 +160,7 @@
         </div>
         <div class="row">
           <div class="left">收款截图</div>
-          <el-upload class="avatar-uploader" action="https://www.zthymaoyi.com/upload/admin" :show-file-list="false"
+          <el-upload class="avatar-uploader" :action="global.uploadPath" :show-file-list="false"
             :on-success="handleAvatarSuccess">
             <div v-if='imageUrl.length>0'>
               <div style='display:inline-block;' v-for='item in imageUrl'>
@@ -605,7 +605,7 @@
       },
       //上传付款截图
       handleAvatarSuccess(e) {
-        this.imageUrl.push(e.url)
+        this.imageUrl.push(e.data.url)
       },
       // 查询列表
       getList() {

+ 7 - 6
src/views/customerFundManagement/customerFundAdd.vue

@@ -108,7 +108,7 @@
               <div class="unload-img">上传银行卡正面</div>
               <el-upload
                 class="avatar-uploader avatar-uploader3"
-                action="https://www.zthymaoyi.com/upload/admin"
+                :action="global.uploadPath"
                 :show-file-list="false"
                 :on-success="bankSuccess1"
                 :disabled="disabled"
@@ -121,7 +121,7 @@
               <div class="unload-img">上传银行卡反面</div>
               <el-upload
                 class="avatar-uploader avatar-uploader4"
-                action="https://www.zthymaoyi.com/upload/admin"
+                :action="global.uploadPath"
                 :show-file-list="false"
                 :on-success="bankSuccess2"
                 :disabled="disabled"
@@ -285,11 +285,12 @@ export default {
       })
     },
     bankSuccess1(e) {
+      console.log(e.data)
       this.bankUps = 'bankUp'
-      this.bank[0] = e.url
-      this.imageUrl3 = e.url
+      this.bank[0] = e.data.url
+      this.imageUrl3 = e.data.url
       getBank({
-        bankImg: e.url,
+        bankImg: e.data.url,
       })
         .toPromise()
         .then((response) => {
@@ -306,7 +307,7 @@ export default {
     },
     bankSuccess2(e) {
       this.bankLows = 'bankLow'
-      this.bank[1] = e.url
+      this.bank[1] = e.data.url
       // this.imageUrl4 = e.url
       // getBank({
       //   bankImg: e.url,

+ 7 - 7
src/views/customerFundManagement/customerFundEdit.vue

@@ -108,7 +108,7 @@
               <div class="unload-img">上传银行卡正面</div>
               <el-upload
                 class="avatar-uploader avatar-uploader3"
-                action="https://www.zthymaoyi.com/upload/admin"
+                ::action="global.uploadPath"
                 :show-file-list="false"
                 :on-success="bankSuccess1"
                 :disabled="disabled"
@@ -121,7 +121,7 @@
               <div class="unload-img">上传银行卡反面</div>
               <el-upload
                 class="avatar-uploader avatar-uploader4"
-                action="https://www.zthymaoyi.com/upload/admin"
+                :action="global.uploadPath"
                 :show-file-list="false"
                 :on-success="bankSuccess2"
                 :disabled="disabled"
@@ -280,10 +280,10 @@ export default {
     },
     bankSuccess1(e) {
       this.bankUps = 'bankUp'
-      this.bank[0] = e.url
-      this.imageUrl3 = e.url
+      this.bank[0] = e.data.url
+      this.imageUrl3 = e.data.url
       getBank({
-        bankImg: e.url,
+        bankImg: e.data.url,
       })
         .toPromise()
         .then((response) => {
@@ -300,8 +300,8 @@ export default {
     },
     bankSuccess2(e) {
       this.bankLows = 'bankLow'
-      this.bank[1] = e.url
-      this.imageUrl4 = e.url
+      this.bank[1] = e.data.url
+      this.imageUrl4 = e.data.url
       // getBank({
       //   bankImg: e.url,
       // })

+ 2 - 2
src/views/financialManagement/collectionManagementList.vue

@@ -163,7 +163,7 @@
     <!-- 附件弹框 -->
     <el-dialog width="60%" :visible.sync="accessoryTFs" :before-close="handlefujianClose" :append-to-body="true">
       <p>添加附件</p>
-      <el-upload class="avatar-uploader" action="https://www.zthymaoyi.com/upload/admin" :show-file-list="false"
+      <el-upload class="avatar-uploader" :action="global.uploadPath" :show-file-list="false"
         :on-success="handleAvatarSuccess">
         <i style='margin:0 auto;' class="el-icon-plus avatar-uploader-icon"></i>
       </el-upload>
@@ -360,7 +360,7 @@
         this.accessoryTFs = true
       },
       handleAvatarSuccess(res) {
-        this.addressUrls.push(res.url)
+        this.addressUrls.push(res.data.url)
         editinfo({
           addressUrl: this.addressUrls.join(),
           id: this.editlist.id

+ 14 - 14
src/views/houseSelfCollect/customerManagementAdd.vue

@@ -25,7 +25,7 @@
               <div class="unload-img">上传身份证人像面</div>
               <el-upload
                 class="avatar-uploader avatar-uploader1"
-                action="https://www.zthymaoyi.com/upload/admin"
+                :action="global.uploadPath"
                 :show-file-list="false"
                 :on-success="upLoadSuccess1"
                 :disabled="disabled"
@@ -39,7 +39,7 @@
               <div class="unload-img">上传身份证国徽面</div>
               <el-upload
                 class="avatar-uploader avatar-uploader2"
-                action="https://www.zthymaoyi.com/upload/admin"
+                :action="global.uploadPath"
                 :show-file-list="false"
                 :on-success="upLoadSuccess2"
                 :disabled="disabled"
@@ -55,7 +55,7 @@
               <div class="unload-img">上传银行卡正面</div>
               <el-upload
                 class="avatar-uploader avatar-uploader3"
-                action="https://www.zthymaoyi.com/upload/admin"
+                :action="global.uploadPath"
                 :show-file-list="false"
                 :on-success="bankSuccess1"
                 :disabled="disabled"
@@ -68,7 +68,7 @@
               <div class="unload-img">上传银行卡反面</div>
               <el-upload
                 class="avatar-uploader avatar-uploader4"
-                action="https://www.zthymaoyi.com/upload/admin"
+                :action="global.uploadPath"
                 :show-file-list="false"
                 :on-success="bankSuccess2"
                 :disabled="disabled"
@@ -431,10 +431,10 @@
       },
       upLoadSuccess1(e) {
         this.identityUp = 'up'
-        this.identity[0] = e.url
-        this.imageUrl1 = e.url
+        this.identity[0] = e.data.url
+        this.imageUrl1 = e.data.url
         getIdentity({
-            personImg: e.url
+            personImg: e.data.url
           })
           .toPromise()
           .then((response) => {
@@ -455,8 +455,8 @@
 
       upLoadSuccess2(e) {
         this.identityLow = 'low'
-        this.identity[1] = e.url
-        this.imageUrl2 = e.url
+        this.identity[1] = e.data.url
+        this.imageUrl2 = e.data.url
         // getIdentity({
         //     personImg: e.url
         //   })
@@ -480,10 +480,10 @@
       },
       bankSuccess1(e) {
         this.bankUps = 'bankUp'
-        this.bank[0] = e.url
-        this.imageUrl3 = e.url
+        this.bank[0] = e.data.url
+        this.imageUrl3 = e.data.url
         getBank({
-            bankImg: e.url
+            bankImg: e.data.url
           })
           .toPromise()
           .then((response) => {
@@ -501,8 +501,8 @@
       },
       bankSuccess2(e) {
         this.bankLows = 'bankLow'
-        this.bank[1] = e.url
-        this.imageUrl4 = e.url
+        this.bank[1] = e.data.url
+        this.imageUrl4 = e.data.url
         // getBank({
         //     bankImg: e.url
         //   })

+ 2 - 2
src/views/houseSelfCollect/inspectInfo.vue

@@ -372,7 +372,7 @@
             formdata.append('file', b);
             axios({
               method: 'post',
-              url: 'https://www.zthymaoyi.com/upload/admin',
+              url: 'global.uploadPath',
               data: formdata
             }).then((response) => {
               //编辑接口
@@ -405,7 +405,7 @@
             formdata.append('file', b);
             axios({
               method: 'post',
-              url: 'https://www.zthymaoyi.com/upload/admin',
+              url: 'global.uploadPath',
               data: formdata
             }).then((response) => {
               //编辑接口

+ 2 - 2
src/views/houseSelfCollect/inspectInfoLook.vue

@@ -411,7 +411,7 @@
             formdata.append('file', b);
             axios({
               method: 'post',
-              url: 'https://www.zthymaoyi.com/upload/admin',
+              url:this.global.uploadPath,
               data: formdata
             }).then((response) => {
               //编辑接口
@@ -444,7 +444,7 @@
             formdata.append('file', b);
             axios({
               method: 'post',
-              url: 'https://www.zthymaoyi.com/upload/admin',
+              url:this.global.uploadPath,
               data: formdata
             }).then((response) => {
               //编辑接口

+ 2 - 2
src/views/houseSelfCollect/inspectionManagementNew.vue

@@ -1019,7 +1019,7 @@ export default {
           formdata.append('file', b);
           axios({
             method: 'post',
-            url: 'https://www.zthymaoyi.com/upload/admin',
+            url:this.global.uploadPath,
             data: formdata
           }).then((response) => {
             //编辑接口
@@ -1051,7 +1051,7 @@ export default {
           formdata.append('file', b);
           axios({
             method: 'post',
-            url: 'https://www.zthymaoyi.com/upload/admin',
+            url:this.global.uploadPath,
             data: formdata
           }).then((response) => {
             //编辑接口

+ 2 - 2
src/views/houseSelfCollect/newWeighingManagement.vue

@@ -1284,7 +1284,7 @@
             formdata.append('file', b)
             axios({
               method: 'post',
-              url: 'https://www.zthymaoyi.com/upload/admin',
+              url:this.global.uploadPath,
               data: formdata,
             }).then((response) => {
               //编辑接口
@@ -1306,7 +1306,7 @@
             formdata.append('file', b)
             axios({
               method: 'post',
-              url: 'https://www.zthymaoyi.com/upload/admin',
+              url:this.global.uploadPath,
               data: formdata,
             }).then((response) => {
               //编辑接口

+ 6 - 6
src/views/houseSelfCollect/paymentManagement.vue

@@ -200,7 +200,7 @@
             </ws-form-item>
             <ws-form-item label="上传截图" prop=" paymentScreenshot"></ws-form-item>
             <div class="upLoad">
-              <el-upload class="avatar-uploader" action="https://www.zthymaoyi.com/upload/admin" :show-file-list="false"
+              <el-upload class="avatar-uploader" :action="global.uploadPath" :show-file-list="false"
                 :on-success="handleAvatarSuccess">
                 <img v-if="imageUrl" :src="imageUrl" class="avatar" />
                 <i v-else class="el-icon-plus avatar-uploader-icon"></i>
@@ -219,7 +219,7 @@
       <!-- <div v-for="(item, index) in payImg" :key="index" class="pay_img">
         <img :src="item" alt class="img" />
       </div> -->
-      <el-upload action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+      <el-upload :action="global.uploadPath" list-type="picture-card"
         :on-success="handleAvatarSuccess1" :file-list='payImg' :limit='1'>
         <i slot="default" class="el-icon-plus"></i>
         <div slot="file" slot-scope="{file}">
@@ -235,7 +235,7 @@
           </span>
         </div>
       </el-upload>
-      <!-- <el-upload class="avatar-uploader"  action="https://www.zthymaoyi.com/upload/admin" :show-file-list="false"
+      <!-- <el-upload class="avatar-uploader"  :action="global.uploadPath" :show-file-list="false"
                 :on-success="handleAvatarSuccess1" :on-remove="_handleRemove">
                 <img @mouseout='imgshow' @mouseover="deleteshow=true" v-if="payImg" :src="payImg" class="avatar" />
                 <i v-else class="el-icon-plus avatar-uploader-icon"></i>
@@ -1179,14 +1179,14 @@
       },
       //上传付款截图
       handleAvatarSuccess(e) {
-        this.imageUrl = e.url
+        this.imageUrl = e.data.url
       },
       handleAvatarSuccess1(file) {
         if (this.payImg[0]) {
-          this.$set(this.payImg[0], 'url', file.url)
+          this.$set(this.payImg[0], 'url', file.data.url)
         } else {
           this.payImg[0] = {
-            url: file.url
+            url: file.data.url
           }
         }
         settlementEdit({

+ 2 - 2
src/views/houseSelfCollect/settlement.vue

@@ -338,7 +338,7 @@
             formdata.append('file', b)
             axios({
               method: 'post',
-              url: 'https://www.zthymaoyi.com/upload/admin',
+              url:this.global.uploadPath,
               data: formdata,
             }).then((response) => {
               //编辑接口
@@ -361,7 +361,7 @@
             formdata.append('file', b)
             axios({
               method: 'post',
-              url: 'https://www.zthymaoyi.com/upload/admin',
+              url:this.global.uploadPath,
               data: formdata,
             }).then((response) => {
               //编辑接口

+ 2 - 2
src/views/houseSelfCollect/weightCheck.vue

@@ -944,7 +944,7 @@
             formdata.append('file', b)
             axios({
               method: 'post',
-              url: 'https://www.zthymaoyi.com/upload/admin',
+              url:this.global.uploadPath,
               data: formdata,
             }).then((response) => {
               //编辑接口
@@ -966,7 +966,7 @@
             formdata.append('file', b)
             axios({
               method: 'post',
-              url: 'https://www.zthymaoyi.com/upload/admin',
+              url:this.global.uploadPath,
               data: formdata,
             }).then((response) => {
               //编辑接口

+ 2 - 2
src/views/outboundManagement/collectionManagement.vue

@@ -88,7 +88,7 @@
             class="deal" />
         </el-form-item>
         <el-form-item label="上传收款截图" :label-width="formLabelWidth">
-          <el-upload action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+          <el-upload :action="global.uploadPath" list-type="picture-card"
             :on-success="handlePictureCardPreview1" :on-remove="handleRemove" class="photo2">
             <i class="el-icon-plus"></i>
           </el-upload>
@@ -348,7 +348,7 @@
           })
       },
       handlePictureCardPreview1(file) {
-        this.collectionScreenshot = file.url
+        this.collectionScreenshot = file.data.url
       },
       dataFilter(val) {
         // console.log(val,"名")

+ 2 - 2
src/views/outboundManagement/newQualityInspectionManagement.vue

@@ -532,7 +532,7 @@
             formdata.append('file', b)
             axios({
               method: 'post',
-              url: 'https://www.zthymaoyi.com/upload/admin',
+              url:this.global.uploadPath,
               data: formdata,
             }).then((response) => {
               //编辑接口
@@ -555,7 +555,7 @@
             formdata.append('file', b)
             axios({
               method: 'post',
-              url: 'https://www.zthymaoyi.com/upload/admin',
+              url:this.global.uploadPath,
               data: formdata,
             }).then((response) => {
               //编辑接口

+ 2 - 2
src/views/outboundManagement/weighingManagementNew.vue

@@ -839,7 +839,7 @@
             formdata.append('file', b)
             axios({
               method: 'post',
-              url: 'https://www.zthymaoyi.com/upload/admin',
+              url:this.global.uploadPath,
               data: formdata,
             }).then((response) => {
               //编辑接口
@@ -929,7 +929,7 @@
             formdata.append('file', b)
             axios({
               method: 'post',
-              url: 'https://www.zthymaoyi.com/upload/admin',
+              url:this.global.uploadPath,
               data: formdata,
             }).then((response) => {
               //编辑接口

+ 2 - 2
src/views/outboundManagement/weighingManagementrecord.vue

@@ -865,7 +865,7 @@
       //     formdata.append('file', b)
       //     axios({
       //       method: 'post',
-      //       url: 'https://www.zthymaoyi.com/upload/admin',
+      //       url:this.global.uploadPath,
       //       data: formdata,
       //     }).then((response) => {
       //       //编辑接口
@@ -887,7 +887,7 @@
           formdata.append('file', b)
           axios({
             method: 'post',
-            url: 'https://www.zthymaoyi.com/upload/admin',
+            url:this.global.uploadPath,
             data: formdata,
           }).then((response) => {
             //编辑接口

+ 814 - 0
src/views/personnelManagement/cardReplacementManagement.vue

@@ -0,0 +1,814 @@
+//客户管理
+<template>
+  <div>
+    <BaseHeaderLayout :leftSpan="8">
+      <template slot="left"> </template>
+      <template slot="left">
+        <ws-input v-model="searchKeyWord" placeholder="可按客户名称、电话查找" clearable maxlength="500" type="input"
+          class="findValue" @keyup.enter.native="find()"></ws-input>
+        <ws-button class="find" type="primary" @click="find()"><img width="16" height="16" style="
+              vertical-align: text-top;
+              position: relative;
+              top: 0px;
+              left: -8px;
+            " src="../../../public/img/sousuo.png" alt="" /></ws-button>
+
+        <!--设置默认定金比例-->
+        <el-button class="bg-bottom" type="primary" size="small" @click="installRatio()">
+          默认定金比例</el-button>
+        <el-dialog width="25%" title="设置默认定金比例" :visible.sync="outerVisibleDefaultEdit" :append-to-body="true">
+          <div style="width: 50%">
+            <div class="dingjin">定金比例(元/吨)</div>
+            <el-input type="textarea" :rows="2" placeholder="请输入定金比例" v-model="depositRatio">
+            </el-input>
+          </div>
+          <div slot="footer" class="dialog-footer">
+            <el-button @click="outerVisibleDefaultEdit = false">取 消</el-button>
+            <el-button type="primary" @click="editDefaultDepositRatio()">确 定</el-button>
+          </div>
+        </el-dialog>
+
+        <!--增加定金-->
+        <el-dialog width="30%" title="增加定金" :visible.sync="outerVisibleAdd" :append-to-body="true">
+          <div class="addprice">
+            已付定金
+            <div class="yifudingjin">
+              <template> {{ this.totalDeposit }} 元 </template>
+            </div>
+          </div>
+          <div class="addpricejine">增加金额</div>
+          <div style="width: 50%" class="zengjia">
+            <el-input type="textarea" :rows="2" maxlength="30" placeholder="请输入本次增加定金金额" v-model="money">
+            </el-input>
+            <div class="yuan">元</div>
+          </div>
+          <div slot="footer" class="dialog-footer">
+            <el-button @click="outerVisibleAdd = false">取 消</el-button>
+            <el-button type="primary" @click="editPrice(1)">确 定</el-button>
+          </div>
+        </el-dialog>
+
+        <!--退回定金-->
+        <el-dialog width="30%" title="退回定金" :visible.sync="outerVisibleReturn" :append-to-body="true">
+          <div class="returnprice">
+            可退定金
+            <div class="ketuidingjin">
+              <template>
+                {{ this.totalDeposit - this.freezingDeposit }} 元
+              </template>
+            </div>
+          </div>
+          <div class="returnpricejine">退回金额</div>
+          <div style="width: 50%" class="tuihui">
+            <el-input type="textarea" :rows="2" maxlength="30" placeholder="请输入本次退回定金金额" v-model="money">
+            </el-input>
+            <div class="yuan">元</div>
+          </div>
+          <div slot="footer" class="dialog-footer">
+            <el-button @click="outerVisibleReturn = false">取 消</el-button>
+            <el-button type="primary" @click="editPrice(2)">确 定</el-button>
+          </div>
+        </el-dialog>
+      </template>
+    </BaseHeaderLayout>
+    <el-table class="wenzi" :data="customerList.records" style="width: 100%" height="calc(100% - 110px)">
+      <el-table-column prop="index" label="序号" width="80">
+        <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="customerName" label="客户名称">
+        <!-- <template scope="scope">
+            <span
+              v-if="
+                scope.row.customerName == '' || scope.row.customerName == null
+              "
+              >{{ scope.row.compName }}</span
+            >
+            <span
+              v-if="scope.row.compName == '' || scope.row.compName == null"
+              >{{ scope.row.customerName }}</span
+            >
+          </template> -->
+      </el-table-column>
+      <el-table-column prop="compAddress" label="地址"></el-table-column>
+      <el-table-column prop="customerPhone" label="电话"> </el-table-column>
+      <el-table-column width='170' prop="payTaxesCard" label="纳税人识别号">
+        <template scope="scope">
+          <span v-if="
+                scope.row.payTaxesCard == '' || scope.row.payTaxesCard == null
+              ">
+            — —
+          </span>
+          {{ scope.row.payTaxesCard }}
+        </template>
+      </el-table-column>
+      <el-table-column prop="bankDeposit" label="开户行">
+        <template slot-scope="scope">
+          {{ scope.row.bankDeposit }} - {{ scope.row.bankDepositBranch }}
+        </template>
+      </el-table-column>
+      <el-table-column prop="bankCard" label="银行卡号"> </el-table-column>
+      <el-table-column prop="totalDeposit" label="总定金(元)">
+      </el-table-column>
+      <el-table-column width='150' prop="freezingDeposit" label="冻结定金(元)">
+      </el-table-column>
+      <el-table-column width='150' class="table_td" prop="depositRatio" label="定金比例(元/吨)">
+        <template slot-scope="scope">
+          <div class="inputChenge">
+            <!-- readonly -->
+            <el-input v-model="scope.row.depositRatio" v-if="scope.row.identification == 'true'"></el-input>
+            <div v-if="scope.row.identification == 'false'" class="inputs">
+              {{ scope.row.depositRatio }}
+            </div>
+          </div>
+          <img width="17" height="18" style="vertical-align: text-top; position: relative; top: -1px"
+            src="../../../public/img/edit.png" @click="whether(scope.row)" v-if="scope.row.identification == 'false'"
+            alt="" />
+          <i class="el-icon-check" style="line-height: 29px; margin-left: 10px"
+            v-if="scope.row.identification == 'true'" @click="varietyClick(scope.row)"></i>
+          <!-- <div>—</div> -->
+        </template>
+      </el-table-column>
+
+      <el-table-column prop="updateDate" label="更新时间"> </el-table-column>
+      <el-table-column prop="seller" label="操作" width="280">
+        <template slot-scope="scope">
+          <el-button type="primary" v-hasPermission="
+            `customerManagement.customer.customerInfo.View`
+          " @click="editClick(1, scope.row)">增加定金</el-button>
+          <el-button v-hasPermission="
+            `customerManagement.customer.customerInfo.View`
+          " type="primary" @click="editClick(2, scope.row)">退回定金</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+      :page-size="deptCircularPage.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal">
+    </el-pagination>
+  </div>
+</template>
+<script>
+  import {
+    getList,
+    installDepositRatio,
+    editCustomerInfo,
+  } from '@/model/customer/index'
+  import Pagination from '@/components/Pagination'
+  import WsUpload from '@/components/WsUpload'
+
+  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: '',
+        currentPage: 1,
+        pageSize: 10,
+        deptBudgetTotal: 0,
+        searchKeyWord: '',
+        outerVisibleDefaultEdit: false,
+        outerVisibleEdit: false,
+        outerVisibleAdd: false,
+        outerVisibleReturn: false,
+        contractType: 2,
+        searchType: 1,
+        // 提交类型
+        submitType: true,
+        size: 10,
+        spanArr: [],
+        depositRatio: '700',
+        id: '',
+        money: '',
+        compId: localStorage.getItem('ws-pf_compId'),
+        deptCircularPage: {},
+        customerList: [],
+        deptBudgetList: {},
+        historyList: [],
+        pickerBeginDateBefore: {
+          disabledDate: (time) => {
+            return time.getTime() > Date.now()
+          },
+        },
+        accessoryTFs: false,
+        customerInfo: {
+          id: '',
+          compId: '',
+          depositRatio: '',
+          flag: '',
+          money: '',
+          totalDeposit: 0,
+          freezingDeposit: 0,
+        },
+        totalDeposit: 0,
+        freezingDeposit: 0,
+      }
+    },
+    activated() {
+      this.getList()
+      this.showType = this.isShow
+    },
+    methods: {
+      //查看//传参
+      nocomplete(row) {
+        this.$router.push({
+          name: 'vehicleDispatchingview',
+          query: {
+            id: row.id,
+          },
+        })
+      },
+      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()
+      },
+      changestatus(state) {
+        this.searchType = state
+        this.getList()
+      },
+      //修改定金比例
+      varietyClick(row) {
+        if (
+          row.depositRatio < 0 ||
+          row.depositRatio > 100000 ||
+          (String(row.depositRatio).indexOf('.') != -1 &&
+            String(row.depositRatio).length -
+            (String(row.depositRatio).indexOf('.') + 1) >
+            2)
+        ) {
+          this.$message({
+            message: '定金比例输入错误',
+            type: 'warning',
+          })
+          return
+        }
+        if (row.depositRatio) {
+          if (isNaN(row.depositRatio)) {
+            this.$message({
+              message: '定金比例非数字!',
+              type: 'warning',
+            })
+            return
+          }
+        }
+        if (!row.depositRatio) {
+          this.$message({
+            message: '定金比例不能为空!',
+            type: 'warning',
+          })
+          return
+        }
+        this.$confirm(`确定要修改定金比例?`, {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning',
+          })
+          .then(() => {
+            editCustomerInfo({
+                flag: 0,
+                depositRatio: row.depositRatio,
+                id: row.id,
+              })
+              .toPromise()
+              .then((response) => {
+                this.$notify.success({
+                  title: '成功',
+                  message: '修改成功',
+                })
+                this.getList()
+              })
+              .catch((response) => {})
+          })
+          .catch(() => {
+            return false
+          })
+      },
+      whether(row) {
+        row.identification = 'true'
+      },
+      //列表查询
+      getList() {
+        getList({
+            compId: localStorage.getItem('ws-pf_compId'),
+            currentPage: this.currentPage,
+            pageSize: this.pageSize,
+            searchKeyWord: this.searchKeyWord,
+            customerTypeFlag: this.customerTypeFlag,
+          })
+          .toPromise()
+          .then((response) => {
+            for (var i = 0; i < response.records.length; i++) {
+              response.records[i].identification = 'false'
+            }
+            this.customerList = response
+            this.deptCircularPage.currentPage = response.current
+            this.deptCircularPage.pageSize = response.size
+            this.deptBudgetTotal = response.total
+          })
+      },
+      //设置默认定金比例
+      installRatio() {
+        this.outerVisibleDefaultEdit = true
+      },
+      editDefaultDepositRatio() {
+        if (
+          this.depositRatio < 1 ||
+          this.depositRatio > 100000 ||
+          (String(this.depositRatio).indexOf('.') != -1 &&
+            String(this.depositRatio).length -
+            (String(this.depositRatio).indexOf('.') + 1) >
+            2)
+        ) {
+          this.$message({
+            message: '默认定金比例输入错误',
+            type: 'warning',
+          })
+          return
+        }
+        if (this.depositRatio) {
+          if (isNaN(this.depositRatio)) {
+            this.$message({
+              message: '默认定金比例非数字!',
+              type: 'warning',
+            })
+            return
+          }
+          if (!this.depositRatio) {
+            this.$message({
+              message: '默认定金比例不能为空!',
+              type: 'warning',
+            })
+            return
+          }
+          installDepositRatio({
+              compId: localStorage.getItem('ws-pf_compId'),
+              depositRatio: this.depositRatio,
+            })
+            .toPromise()
+            .then((response) => {
+              this.outerVisibleDefaultEdit = false
+              this.getList()
+              this.$message.success('设置默认定金比例成功')
+            })
+        }
+      },
+      //编辑
+      editClick(index, row) {
+        this.id = row.id
+        this.depositRatio = row.depositRatio
+        this.totalDeposit = row.totalDeposit
+        this.freezingDeposit = row.freezingDeposit
+
+        //增加定金
+        if (index == 1) {
+          this.outerVisibleAdd = true
+          this.customerInfo.flag = 1
+        }
+        //退回定金
+        else {
+          this.outerVisibleReturn = true
+          this.customerInfo.flag = 2
+        }
+      },
+      editPrice(asdf) {
+        this.customerInfo.id = this.id
+        this.customerInfo.compId = this.compId
+        this.customerInfo.depositRatio = this.depositRatio
+        this.customerInfo.money = this.money
+        this.customerInfo.totalDeposit = this.totalDeposit
+        this.customerInfo.freezingDeposit = this.freezingDeposit
+
+        //增加定金
+        if (asdf == 1) {
+          if (
+            this.money < 0 ||
+            this.money > 100000000 ||
+            (String(this.money).indexOf('.') != -1 &&
+              String(this.money).length - (String(this.money).indexOf('.') + 1) >
+              2)
+          ) {
+            this.$message({
+              message: '增加金额输入错误',
+              type: 'warning',
+            })
+            return
+          }
+          if (this.money) {
+            if (isNaN(this.money)) {
+              this.$message({
+                message: '增加金额非数字!',
+                type: 'warning',
+              })
+              return
+            }
+          }
+          if (!this.money) {
+            this.$message({
+              message: '增加金额不能为空!',
+              type: 'warning',
+            })
+            return
+          }
+        }
+        //退回定金
+        if (asdf == 2) {
+          if (
+            this.money < 0 ||
+            this.money > 100000000 ||
+            (String(this.money).indexOf('.') != -1 &&
+              String(this.money).length - (String(this.money).indexOf('.') + 1) >
+              2)
+          ) {
+            this.$message({
+              message: '退回金额输入错误',
+              type: 'warning',
+            })
+            return
+          }
+          if (this.money) {
+            if (isNaN(this.money)) {
+              this.$message({
+                message: '退回金额非数字!',
+                type: 'warning',
+              })
+              return
+            }
+          }
+          if (!this.money) {
+            this.$message({
+              message: '退回金额不能为空!',
+              type: 'warning',
+            })
+            return
+          }
+          if (this.money > this.totalDeposit - this.freezingDeposit) {
+            this.$message({
+              message: '退回金额不能大于可退金额!',
+              type: 'warning',
+            })
+            return
+          }
+        }
+        editCustomerInfo(this.customerInfo)
+          .toPromise()
+          .then((response) => {
+            this.outerVisibleAdd = false
+            this.outerVisibleReturn = false
+            this.outerVisibleEdit = false
+            this.getList()
+            this.money = ''
+
+            //增加定金
+            if (asdf == 1) {
+              this.$message.success('增加成功')
+            }
+            //退回定金
+            if (asdf == 2) {
+              this.$message.success('退回成功')
+            }
+          })
+      },
+      find() {
+        this.currentPage = 1
+        this.getList()
+      },
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .connert {
+    width: 90%;
+    margin: 0 auto;
+  }
+
+  .vertical-text-left {
+    width: 62px;
+    text-align: right;
+  }
+
+  .el-button--primary {
+    background-color: #5878e8;
+    border-color: #5878e8;
+  }
+
+  .el-button--primary {
+    background-color: #5878e8;
+    color: #fff;
+  }
+
+  .el-button--default {
+    color: #8890b1;
+    border-color: #e8eaf1;
+  }
+
+  /deep/.base_header_layout .find.el-button--primary {
+    width: 30px;
+    margin-left: 0;
+    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;
+  }
+
+  //操作按钮
+  .record,
+  .adjustment {
+    display: inline-block;
+    color: #5878e8;
+    padding: 0 4px !important;
+    position: relative;
+    font-size: 14px;
+  }
+
+  .record:after {
+    position: absolute;
+    content: '';
+    display: block;
+    top: 5px;
+    right: -2px;
+    width: 1px;
+    height: 12px;
+    background: #e9ecf7;
+  }
+
+  //状态样式
+  .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;
+  }
+
+  .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;
+  }
+
+  .record,
+  .adjustment {
+    display: inline-block;
+    color: #5878e8;
+    padding: 0 4px !important;
+    position: relative;
+  }
+
+  .record:after {
+    position: absolute;
+    content: '';
+    display: block;
+    top: 5px;
+    right: -2px;
+    width: 1px;
+    height: 12px;
+    background: #e9ecf7;
+  }
+
+  .el-row {
+    height: 60px;
+  }
+
+  .base_header_layout .grid-content {
+    margin-top: 80px;
+  }
+
+  .el-input--small .el-input__inner {
+    margin-left: 20px;
+  }
+
+  .dialog-footer {
+    margin-top: 33px;
+  }
+
+  .el-range-editor--small.el-input__inner {
+    height: 32px;
+    margin: 0 10px;
+  }
+
+  /deep/.el-pagination {
+    text-align: center;
+    white-space: nowrap;
+    padding: 2px 5px;
+    color: #303133;
+    font-weight: 700;
+    margin-bottom: 20px;
+  }
+
+  .el-select {
+    width: 30%;
+    margin-right: 10px;
+  }
+
+  /deep/.zengjia .el-textarea__inner {
+    display: block;
+    padding: 13px 9px;
+    line-height: 0.5;
+    box-sizing: border-box;
+    width: 80%;
+    font-size: inherit;
+    color: #606266;
+    background-color: #fff;
+    background-image: none;
+    border: 1px solid #dcdfe6;
+    border-radius: 4px;
+    margin-left: 180px;
+    margin-top: 10px;
+  }
+
+  /deep/.xiugai .el-textarea__inner {
+    display: block;
+    padding: 13px 17px;
+    line-height: 0.5;
+    box-sizing: border-box;
+    width: 105%;
+    font-size: inherit;
+    color: #606266;
+    background-color: #fff;
+    background-image: none;
+    border: 1px solid #dcdfe6;
+    border-radius: 4px;
+    transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+    margin-left: 95px;
+  }
+
+  /deep/.tuihui .el-textarea__inner {
+    display: block;
+    padding: 13px 9px;
+    line-height: 0.5;
+    box-sizing: border-box;
+    width: 80%;
+    font-size: inherit;
+    color: #606266;
+    background-color: #fff;
+    background-image: none;
+    border: 1px solid #dcdfe6;
+    border-radius: 4px;
+    margin-left: 180px;
+    margin-top: 10px;
+  }
+
+  /deep/.dingjin {
+    width: 98px;
+    margin-left: 30px;
+    margin-bottom: -37px;
+    padding-top: 20px;
+  }
+
+  /deep/.el-textarea__inner {
+    display: block;
+    padding: 13px 17px;
+    line-height: 0.5;
+    box-sizing: border-box;
+    width: 90%;
+    font-size: inherit;
+    color: #606266;
+    background-color: #fff;
+    background-image: none;
+    border: 1px solid #dcdfe6;
+    border-radius: 4px;
+    transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+    margin-left: 155px;
+    margin-top: 10px;
+  }
+
+  /deep/.addprice {
+    width: 98px;
+    margin-left: 50px;
+  }
+
+  /deep/.returnprice {
+    width: 98px;
+    margin-left: 50px;
+  }
+
+  /deep/.yuan {
+    width: 10px;
+    margin-left: 150%;
+    margin-top: -32px;
+  }
+
+  /deep/.addpricejine {
+    width: 98px;
+    margin-left: 50px;
+    margin-bottom: -37px;
+    padding-top: 20px;
+  }
+
+  /deep/.returnpricejine {
+    width: 98px;
+    margin-left: 50px;
+    margin-bottom: -37px;
+    padding-top: 20px;
+  }
+
+  /deep/.typeselect .el-input__inner {
+    color: #8890b1;
+  }
+
+  /deep/.yifudingjin {
+    margin-left: 135px;
+    width: 70px;
+    margin-top: -19px;
+  }
+
+  .inputChenge {
+    width: 50%;
+    display: inline-flex;
+  }
+
+  .inputs {
+    margin: 0 auto;
+  }
+
+  /deep/.ketuidingjin {
+    margin-left: 135px;
+    width: 70px;
+    margin-top: -19px;
+  }
+</style>

+ 589 - 0
src/views/personnelManagement/checkWorkList.vue

@@ -0,0 +1,589 @@
+//考勤管理
+<template>
+  <div>
+    <BaseHeaderLayout :leftSpan="10">
+      <template slot="right">
+        <el-select class="warehouse_select" v-model="deptId" placeholder="请选择部门" @change="deptChange"
+          filterable clearable style="margin: 0 10px">
+          <el-option v-for="item in deptList" :key="item.id" :label="item.deptName" :value="item.deptId">
+          </el-option>
+        </el-select>
+        <el-date-picker style="margin: 0 10px 0 0" value-format="yyyy-MM-dd" v-model="value2" @change="datechange"
+          type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期"
+          end-placeholder="结算日期">
+        </el-date-picker>
+        <div></div>
+        <ws-input class='findinput' @keyup.enter.native="find()" v-model="searchKeyWord" placeholder="可按员工姓名查找"
+          clearable maxlength="500" type="input">
+        </ws-input>
+        <!-- v-hasPermission="'procurement.sparepart.directShip'" -->
+        <ws-button class="find" type="primary" @click="find()">
+          <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>
+    
+    <div style="height:calc(100% - 130px);overflow-y: scroll;">
+      <el-table
+    :data="tableData"
+    style="width: 100%">
+    <el-table-column type="expand">
+      <template slot-scope="props">
+        <el-table
+    :data="props.row.clockInfoList"
+    stripe
+    style="width: 100%">
+    <el-table-column
+      prop="createDate"
+      label="日期"
+      width="180">
+      <template slot-scope="scope">
+        <span style="margin-left: 10px">{{ scope.row.createDate.split(" ")[0] }}</span>
+      </template>
+
+    </el-table-column>
+    <el-table-column
+      prop="toClockDate"
+      label="上班打卡时间"
+      width="180">
+      <template slot-scope="scope">
+        <span style="margin-left: 10px">{{ scope.row.toClockDate.split(" ")[1] }}</span>
+      </template>
+    </el-table-column>
+    <el-table-column
+      prop="offClockDate"
+      label="下班打卡时间">
+    </el-table-column>
+  </el-table>
+        <!-- <el-form label-position="left" inline class="demo-table-expand">
+          <el-form-item label="商品名称">
+            <span>{{ props.row.name }}</span>
+          </el-form-item>
+          <el-form-item label="所属店铺">
+            <span>{{ props.row.shop }}</span>
+          </el-form-item>
+          <el-form-item label="商品 ID">
+            <span>{{ props.row.id }}</span>
+          </el-form-item>
+          <el-form-item label="店铺 ID">
+            <span>{{ props.row.shopId }}</span>
+          </el-form-item>
+          <el-form-item label="商品分类">
+            <span>{{ props.row.category }}</span>
+          </el-form-item>
+          <el-form-item label="店铺地址">
+            <span>{{ props.row.address }}</span>
+          </el-form-item>
+          <el-form-item label="商品描述">
+            <span>{{ props.row.desc }}</span>
+          </el-form-item>
+        </el-form> -->
+      </template>
+    </el-table-column>
+    <el-table-column
+      label="姓名"
+      prop="empName">
+    </el-table-column>
+    <el-table-column
+      label="部门"
+      prop="dept">
+    </el-table-column>
+    <el-table-column
+      label="手机号"
+      prop="phone">
+    </el-table-column>
+  </el-table>
+</div>
+<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+        :page-sizes="[10, 30, 50, 100, 500, 1000, 9999]" :page-size="pageSize"  layout="total, sizes, prev, pager, next, jumper"
+        :total="deptBudgetTotal"></el-pagination>
+   
+  <!-- <div class="content">
+    <div v-for="(item,index) in tableData">
+      <div class="row">
+        <div>姓名:</div>
+        <div>{{item.empName}}</div>
+      </div>
+      <div class="row">
+        <div>部门:</div>
+        <div>{{item.dept}}</div>
+      </div>
+      <div>考勤列表</div>
+      <div v-for="item1 in item.clockInfoList">
+        <div>
+          <div>
+            上班打卡时间
+          </div>
+          <div>
+            {{item1.toClockDate}}
+          </div>
+        </div>
+        <div>
+          <div>
+            下班打卡时间
+          </div>
+          <div>
+            {{item1.offClockDate}}
+          </div>
+        </div>
+      </div>
+    </div>
+  </div> -->
+</div>
+</template>
+<script>
+  import {
+    getList,
+    getDeptList
+  } from '@/model/personnelManagement/index'
+  import Pagination from '@/components/Pagination'
+  import WsUpload from '@/components/WsUpload'
+
+  export default {
+    components: {
+      WsUpload,
+      Pagination,
+    },
+    data() {
+      return {
+        value2:[],
+        currentPage: 1,
+        pageSize: 10,
+        deptList:[],
+        deptId:'',
+        searchKeyWord:'',
+        tableData: [],
+        deptBudgetTotal: 0,
+      }
+  
+    },
+    activated() {
+      this.getList()
+      this.getDeptList()
+    },
+    mounted() {
+      let date = new Date()
+            // 通过时间戳计算
+            let defalutStartTime = date.getTime() - 7 * 24 * 3600 * 1000 // 转化为时间戳
+            let defalutEndTime = date.getTime()
+            let startDateNs = new Date(defalutStartTime) 
+            let endDateNs = new Date(defalutEndTime)
+            // 月,日 不够10补0
+            defalutStartTime = startDateNs.getFullYear() + '-' + ((startDateNs.getMonth() + 1) >= 10 ? (startDateNs.getMonth() + 1) : '0' + (startDateNs.getMonth() + 1)) + '-' + (startDateNs.getDate() >= 10 ? startDateNs.getDate() : '0' + startDateNs.getDate())
+            defalutEndTime = endDateNs.getFullYear() + '-' + ((endDateNs.getMonth() + 1) >= 10 ? (endDateNs.getMonth() + 1) : '0' + (endDateNs.getMonth() + 1)) + '-' + (endDateNs.getDate() >= 10 ? endDateNs.getDate() : '0' + endDateNs.getDate())
+            this.value2= [defalutStartTime, defalutEndTime]
+    },
+     
+    methods: {
+      load(tree, treeNode, resolve) {
+        setTimeout(() => {
+          resolve([
+            {
+              id: 31,
+              date: '2016-05-01',
+              name: '王小虎',
+              address: '上海市普陀区金沙江路 1519 弄'
+            }, {
+              id: 32,
+              date: '2016-05-01',
+              name: '王小虎',
+              address: '上海市普陀区金沙江路 1519 弄'
+            }
+          ])
+        }, 1000)
+      },
+      datechange() {
+        this.getList()
+      },
+      deptChange(){
+        this.getList()
+      },
+      //查看//传参
+      nocomplete(row) {
+        this.$router.push({
+          name: 'vehicleDispatchingview',
+          query: {
+            id: row.id,
+          },
+        })
+      },
+      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()
+      },
+      changestatus(state) {
+        this.searchType = state
+        this.getList()
+      },
+      whether(row) {
+        row.identification = 'true'
+      },
+      //列表查询
+      getList() {
+        var startDate = ''
+        var endDate = ''
+        if (this.value2) {
+          startDate = this.value2[0] ? this.value2[0] : ''
+          endDate = this.value2[1] ? this.value2[1] : ''
+        }
+        getList({
+          currentPage: this.currentPage,
+            pageSize: this.pageSize,
+            startDate: startDate,
+            endDate: endDate,
+            searchKeyWord: this.searchKeyWord,
+            compId: localStorage.getItem('ws-pf_compId'),
+            dept:this.deptId
+          })
+          .toPromise()
+          .then((response) => {
+            console.log(response.data)
+            debugger
+            this.tableData = response.records
+            // for (var i = 0; i < response.records.length; i++) {
+            //   response.records[i].identification = 'false'
+            // }
+            // this.customerList = response
+            // this.deptCircularPage.currentPage = response.current
+            // this.deptCircularPage.pageSize = response.size
+            // this.deptBudgetTotal = response.total
+          })
+      },
+      //部门列表查询
+      getDeptList() {
+        getDeptList()
+          .toPromise()
+          .then((response) => {
+            console.log(response)
+            this.deptList = response
+            // for (var i = 0; i < response.records.length; i++) {
+            //   response.records[i].identification = 'false'
+            // }
+            // this.customerList = response
+            // this.deptCircularPage.currentPage = response.current
+            // this.deptCircularPage.pageSize = response.size
+            // this.deptBudgetTotal = response.total
+          })
+      },
+      find() {
+        this.currentPage = 1
+        this.getList()
+      },
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .content {
+    width: 90%;
+    margin: 0 auto;
+    .row{
+      display: flex;
+    }
+  }
+
+ 
+  .el-button--primary {
+    background-color: #5878e8;
+    border-color: #5878e8;
+  }
+
+  .el-button--primary {
+    background-color: #5878e8;
+    color: #fff;
+  }
+
+  .el-button--default {
+    color: #8890b1;
+    border-color: #e8eaf1;
+  }
+
+  /deep/.base_header_layout .find.el-button--primary {
+    width: 30px;
+    margin-left: 0;
+    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;
+  }
+
+  //操作按钮
+  .record,
+  .adjustment {
+    display: inline-block;
+    color: #5878e8;
+    padding: 0 4px !important;
+    position: relative;
+    font-size: 14px;
+  }
+
+  .record:after {
+    position: absolute;
+    content: '';
+    display: block;
+    top: 5px;
+    right: -2px;
+    width: 1px;
+    height: 12px;
+    background: #e9ecf7;
+  }
+
+  //状态样式
+  .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;
+  }
+
+  .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;
+  }
+
+  .record,
+  .adjustment {
+    display: inline-block;
+    color: #5878e8;
+    padding: 0 4px !important;
+    position: relative;
+  }
+
+  .record:after {
+    position: absolute;
+    content: '';
+    display: block;
+    top: 5px;
+    right: -2px;
+    width: 1px;
+    height: 12px;
+    background: #e9ecf7;
+  }
+
+  .el-row {
+    height: 60px;
+  }
+
+  .base_header_layout .grid-content {
+    margin-top: 80px;
+  }
+
+  .el-input--small .el-input__inner {
+    margin-left: 20px;
+  }
+
+  .dialog-footer {
+    margin-top: 33px;
+  }
+
+  .el-range-editor--small.el-input__inner {
+    height: 32px;
+    margin: 0 10px;
+  }
+
+  /deep/.el-pagination {
+    text-align: center;
+    white-space: nowrap;
+    padding: 2px 5px;
+    color: #303133;
+    font-weight: 700;
+    margin-bottom: 20px;
+  }
+
+  .el-select {
+    width: 30%;
+    margin-right: 10px;
+  }
+
+  /deep/.zengjia .el-textarea__inner {
+    display: block;
+    padding: 13px 9px;
+    line-height: 0.5;
+    box-sizing: border-box;
+    width: 80%;
+    font-size: inherit;
+    color: #606266;
+    background-color: #fff;
+    background-image: none;
+    border: 1px solid #dcdfe6;
+    border-radius: 4px;
+    margin-left: 180px;
+    margin-top: 10px;
+  }
+
+  /deep/.xiugai .el-textarea__inner {
+    display: block;
+    padding: 13px 17px;
+    line-height: 0.5;
+    box-sizing: border-box;
+    width: 105%;
+    font-size: inherit;
+    color: #606266;
+    background-color: #fff;
+    background-image: none;
+    border: 1px solid #dcdfe6;
+    border-radius: 4px;
+    transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+    margin-left: 95px;
+  }
+
+  /deep/.tuihui .el-textarea__inner {
+    display: block;
+    padding: 13px 9px;
+    line-height: 0.5;
+    box-sizing: border-box;
+    width: 80%;
+    font-size: inherit;
+    color: #606266;
+    background-color: #fff;
+    background-image: none;
+    border: 1px solid #dcdfe6;
+    border-radius: 4px;
+    margin-left: 180px;
+    margin-top: 10px;
+  }
+
+  /deep/.dingjin {
+    width: 98px;
+    margin-left: 30px;
+    margin-bottom: -37px;
+    padding-top: 20px;
+  }
+
+  /deep/.el-textarea__inner {
+    display: block;
+    padding: 13px 17px;
+    line-height: 0.5;
+    box-sizing: border-box;
+    width: 90%;
+    font-size: inherit;
+    color: #606266;
+    background-color: #fff;
+    background-image: none;
+    border: 1px solid #dcdfe6;
+    border-radius: 4px;
+    transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+    margin-left: 155px;
+    margin-top: 10px;
+  }
+
+  /deep/.addprice {
+    width: 98px;
+    margin-left: 50px;
+  }
+
+  /deep/.returnprice {
+    width: 98px;
+    margin-left: 50px;
+  }
+
+  /deep/.yuan {
+    width: 10px;
+    margin-left: 150%;
+    margin-top: -32px;
+  }
+
+  /deep/.addpricejine {
+    width: 98px;
+    margin-left: 50px;
+    margin-bottom: -37px;
+    padding-top: 20px;
+  }
+
+  /deep/.returnpricejine {
+    width: 98px;
+    margin-left: 50px;
+    margin-bottom: -37px;
+    padding-top: 20px;
+  }
+
+  /deep/.typeselect .el-input__inner {
+    color: #8890b1;
+  }
+
+  /deep/.yifudingjin {
+    margin-left: 135px;
+    width: 70px;
+    margin-top: -19px;
+  }
+
+  .inputChenge {
+    width: 50%;
+    display: inline-flex;
+  }
+
+  .inputs {
+    margin: 0 auto;
+  }
+
+  /deep/.ketuidingjin {
+    margin-left: 135px;
+    width: 70px;
+    margin-top: -19px;
+  }
+</style>

+ 64 - 0
src/views/personnelManagement/component/router/route.js

@@ -0,0 +1,64 @@
+import Layout from '@/layout/index';
+
+const checkWorkListRouter = {
+    path: '/checkWorkList',
+    component: Layout,
+    redirect: { name: 'checkWorkList' },
+    name: 'checkWorkList',
+    alwaysShow: true, // will always show the root menu
+    meta: {
+        title: '人事管理',
+        module: 'customerManagement.customer.customerInfo',
+        icon: '-kehuguanli'
+    },
+    children: [{
+            path: 'checkWorkList',
+            component: () =>
+                import ( /* webpackChunkName: "applDetail" */ '@/views/personnelManagement/checkWorkList'),
+            name: 'checkWorkList',
+            meta: {
+                title: '考勤管理',
+                shortcutEntrance: 'checkWorkList',
+                module: 'customerManagement.customer.customerInfo',
+                permissicon: [],
+                keepAlive: true,
+                // module: 'procurement.sparepart.applDetail'
+            },
+            // hidden: true
+        },
+        {
+            path: 'leaveList',
+            component: () =>
+                import ( /* webpackChunkName: "applDetail" */ '@/views/personnelManagement/leaveList'),
+            name: 'checkWorkList',
+            meta: {
+                title: '请假管理',
+                shortcutEntrance: 'leaveList',
+                module: 'customerManagement.customer.customerInfo',
+                permissicon: [],
+                keepAlive: true,
+                // module: 'procurement.sparepart.applDetail'
+            },
+            // hidden: true
+        },
+        {
+            path: 'cardReplacementManagement',
+            component: () =>
+                import ( /* webpackChunkName: "applDetail" */ '@/views/personnelManagement/cardReplacementManagement'),
+            name: 'cardReplacementManagement',
+            meta: {
+                title: '补卡管理',
+                shortcutEntrance: 'leaveList',
+                module: 'customerManagement.customer.customerInfo',
+                permissicon: [],
+                keepAlive: true,
+                // module: 'procurement.sparepart.applDetail'
+            },
+            // hidden: true
+        },
+
+
+
+    ],
+};
+export default checkWorkListRouter;

+ 814 - 0
src/views/personnelManagement/leaveList.vue

@@ -0,0 +1,814 @@
+//客户管理
+<template>
+  <div>
+    <BaseHeaderLayout :leftSpan="8">
+      <template slot="left"> </template>
+      <template slot="left">
+        <ws-input v-model="searchKeyWord" placeholder="可按客户名称、电话查找" clearable maxlength="500" type="input"
+          class="findValue" @keyup.enter.native="find()"></ws-input>
+        <ws-button class="find" type="primary" @click="find()"><img width="16" height="16" style="
+              vertical-align: text-top;
+              position: relative;
+              top: 0px;
+              left: -8px;
+            " src="../../../public/img/sousuo.png" alt="" /></ws-button>
+
+        <!--设置默认定金比例-->
+        <el-button class="bg-bottom" type="primary" size="small" @click="installRatio()">
+          默认定金比例</el-button>
+        <el-dialog width="25%" title="设置默认定金比例" :visible.sync="outerVisibleDefaultEdit" :append-to-body="true">
+          <div style="width: 50%">
+            <div class="dingjin">定金比例(元/吨)</div>
+            <el-input type="textarea" :rows="2" placeholder="请输入定金比例" v-model="depositRatio">
+            </el-input>
+          </div>
+          <div slot="footer" class="dialog-footer">
+            <el-button @click="outerVisibleDefaultEdit = false">取 消</el-button>
+            <el-button type="primary" @click="editDefaultDepositRatio()">确 定</el-button>
+          </div>
+        </el-dialog>
+
+        <!--增加定金-->
+        <el-dialog width="30%" title="增加定金" :visible.sync="outerVisibleAdd" :append-to-body="true">
+          <div class="addprice">
+            已付定金
+            <div class="yifudingjin">
+              <template> {{ this.totalDeposit }} 元 </template>
+            </div>
+          </div>
+          <div class="addpricejine">增加金额</div>
+          <div style="width: 50%" class="zengjia">
+            <el-input type="textarea" :rows="2" maxlength="30" placeholder="请输入本次增加定金金额" v-model="money">
+            </el-input>
+            <div class="yuan">元</div>
+          </div>
+          <div slot="footer" class="dialog-footer">
+            <el-button @click="outerVisibleAdd = false">取 消</el-button>
+            <el-button type="primary" @click="editPrice(1)">确 定</el-button>
+          </div>
+        </el-dialog>
+
+        <!--退回定金-->
+        <el-dialog width="30%" title="退回定金" :visible.sync="outerVisibleReturn" :append-to-body="true">
+          <div class="returnprice">
+            可退定金
+            <div class="ketuidingjin">
+              <template>
+                {{ this.totalDeposit - this.freezingDeposit }} 元
+              </template>
+            </div>
+          </div>
+          <div class="returnpricejine">退回金额</div>
+          <div style="width: 50%" class="tuihui">
+            <el-input type="textarea" :rows="2" maxlength="30" placeholder="请输入本次退回定金金额" v-model="money">
+            </el-input>
+            <div class="yuan">元</div>
+          </div>
+          <div slot="footer" class="dialog-footer">
+            <el-button @click="outerVisibleReturn = false">取 消</el-button>
+            <el-button type="primary" @click="editPrice(2)">确 定</el-button>
+          </div>
+        </el-dialog>
+      </template>
+    </BaseHeaderLayout>
+    <el-table class="wenzi" :data="customerList.records" style="width: 100%" height="calc(100% - 110px)">
+      <el-table-column prop="index" label="序号" width="80">
+        <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="customerName" label="客户名称">
+        <!-- <template scope="scope">
+            <span
+              v-if="
+                scope.row.customerName == '' || scope.row.customerName == null
+              "
+              >{{ scope.row.compName }}</span
+            >
+            <span
+              v-if="scope.row.compName == '' || scope.row.compName == null"
+              >{{ scope.row.customerName }}</span
+            >
+          </template> -->
+      </el-table-column>
+      <el-table-column prop="compAddress" label="地址"></el-table-column>
+      <el-table-column prop="customerPhone" label="电话"> </el-table-column>
+      <el-table-column width='170' prop="payTaxesCard" label="纳税人识别号">
+        <template scope="scope">
+          <span v-if="
+                scope.row.payTaxesCard == '' || scope.row.payTaxesCard == null
+              ">
+            — —
+          </span>
+          {{ scope.row.payTaxesCard }}
+        </template>
+      </el-table-column>
+      <el-table-column prop="bankDeposit" label="开户行">
+        <template slot-scope="scope">
+          {{ scope.row.bankDeposit }} - {{ scope.row.bankDepositBranch }}
+        </template>
+      </el-table-column>
+      <el-table-column prop="bankCard" label="银行卡号"> </el-table-column>
+      <el-table-column prop="totalDeposit" label="总定金(元)">
+      </el-table-column>
+      <el-table-column width='150' prop="freezingDeposit" label="冻结定金(元)">
+      </el-table-column>
+      <el-table-column width='150' class="table_td" prop="depositRatio" label="定金比例(元/吨)">
+        <template slot-scope="scope">
+          <div class="inputChenge">
+            <!-- readonly -->
+            <el-input v-model="scope.row.depositRatio" v-if="scope.row.identification == 'true'"></el-input>
+            <div v-if="scope.row.identification == 'false'" class="inputs">
+              {{ scope.row.depositRatio }}
+            </div>
+          </div>
+          <img width="17" height="18" style="vertical-align: text-top; position: relative; top: -1px"
+            src="../../../public/img/edit.png" @click="whether(scope.row)" v-if="scope.row.identification == 'false'"
+            alt="" />
+          <i class="el-icon-check" style="line-height: 29px; margin-left: 10px"
+            v-if="scope.row.identification == 'true'" @click="varietyClick(scope.row)"></i>
+          <!-- <div>—</div> -->
+        </template>
+      </el-table-column>
+
+      <el-table-column prop="updateDate" label="更新时间"> </el-table-column>
+      <el-table-column prop="seller" label="操作" width="280">
+        <template slot-scope="scope">
+          <el-button type="primary" v-hasPermission="
+            `customerManagement.customer.customerInfo.View`
+          " @click="editClick(1, scope.row)">增加定金</el-button>
+          <el-button v-hasPermission="
+            `customerManagement.customer.customerInfo.View`
+          " type="primary" @click="editClick(2, scope.row)">退回定金</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+      :page-size="deptCircularPage.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal">
+    </el-pagination>
+  </div>
+</template>
+<script>
+  import {
+    getList,
+    installDepositRatio,
+    editCustomerInfo,
+  } from '@/model/customer/index'
+  import Pagination from '@/components/Pagination'
+  import WsUpload from '@/components/WsUpload'
+
+  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: '',
+        currentPage: 1,
+        pageSize: 10,
+        deptBudgetTotal: 0,
+        searchKeyWord: '',
+        outerVisibleDefaultEdit: false,
+        outerVisibleEdit: false,
+        outerVisibleAdd: false,
+        outerVisibleReturn: false,
+        contractType: 2,
+        searchType: 1,
+        // 提交类型
+        submitType: true,
+        size: 10,
+        spanArr: [],
+        depositRatio: '700',
+        id: '',
+        money: '',
+        compId: localStorage.getItem('ws-pf_compId'),
+        deptCircularPage: {},
+        customerList: [],
+        deptBudgetList: {},
+        historyList: [],
+        pickerBeginDateBefore: {
+          disabledDate: (time) => {
+            return time.getTime() > Date.now()
+          },
+        },
+        accessoryTFs: false,
+        customerInfo: {
+          id: '',
+          compId: '',
+          depositRatio: '',
+          flag: '',
+          money: '',
+          totalDeposit: 0,
+          freezingDeposit: 0,
+        },
+        totalDeposit: 0,
+        freezingDeposit: 0,
+      }
+    },
+    activated() {
+      this.getList()
+      this.showType = this.isShow
+    },
+    methods: {
+      //查看//传参
+      nocomplete(row) {
+        this.$router.push({
+          name: 'vehicleDispatchingview',
+          query: {
+            id: row.id,
+          },
+        })
+      },
+      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()
+      },
+      changestatus(state) {
+        this.searchType = state
+        this.getList()
+      },
+      //修改定金比例
+      varietyClick(row) {
+        if (
+          row.depositRatio < 0 ||
+          row.depositRatio > 100000 ||
+          (String(row.depositRatio).indexOf('.') != -1 &&
+            String(row.depositRatio).length -
+            (String(row.depositRatio).indexOf('.') + 1) >
+            2)
+        ) {
+          this.$message({
+            message: '定金比例输入错误',
+            type: 'warning',
+          })
+          return
+        }
+        if (row.depositRatio) {
+          if (isNaN(row.depositRatio)) {
+            this.$message({
+              message: '定金比例非数字!',
+              type: 'warning',
+            })
+            return
+          }
+        }
+        if (!row.depositRatio) {
+          this.$message({
+            message: '定金比例不能为空!',
+            type: 'warning',
+          })
+          return
+        }
+        this.$confirm(`确定要修改定金比例?`, {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning',
+          })
+          .then(() => {
+            editCustomerInfo({
+                flag: 0,
+                depositRatio: row.depositRatio,
+                id: row.id,
+              })
+              .toPromise()
+              .then((response) => {
+                this.$notify.success({
+                  title: '成功',
+                  message: '修改成功',
+                })
+                this.getList()
+              })
+              .catch((response) => {})
+          })
+          .catch(() => {
+            return false
+          })
+      },
+      whether(row) {
+        row.identification = 'true'
+      },
+      //列表查询
+      getList() {
+        getList({
+            compId: localStorage.getItem('ws-pf_compId'),
+            currentPage: this.currentPage,
+            pageSize: this.pageSize,
+            searchKeyWord: this.searchKeyWord,
+            customerTypeFlag: this.customerTypeFlag,
+          })
+          .toPromise()
+          .then((response) => {
+            for (var i = 0; i < response.records.length; i++) {
+              response.records[i].identification = 'false'
+            }
+            this.customerList = response
+            this.deptCircularPage.currentPage = response.current
+            this.deptCircularPage.pageSize = response.size
+            this.deptBudgetTotal = response.total
+          })
+      },
+      //设置默认定金比例
+      installRatio() {
+        this.outerVisibleDefaultEdit = true
+      },
+      editDefaultDepositRatio() {
+        if (
+          this.depositRatio < 1 ||
+          this.depositRatio > 100000 ||
+          (String(this.depositRatio).indexOf('.') != -1 &&
+            String(this.depositRatio).length -
+            (String(this.depositRatio).indexOf('.') + 1) >
+            2)
+        ) {
+          this.$message({
+            message: '默认定金比例输入错误',
+            type: 'warning',
+          })
+          return
+        }
+        if (this.depositRatio) {
+          if (isNaN(this.depositRatio)) {
+            this.$message({
+              message: '默认定金比例非数字!',
+              type: 'warning',
+            })
+            return
+          }
+          if (!this.depositRatio) {
+            this.$message({
+              message: '默认定金比例不能为空!',
+              type: 'warning',
+            })
+            return
+          }
+          installDepositRatio({
+              compId: localStorage.getItem('ws-pf_compId'),
+              depositRatio: this.depositRatio,
+            })
+            .toPromise()
+            .then((response) => {
+              this.outerVisibleDefaultEdit = false
+              this.getList()
+              this.$message.success('设置默认定金比例成功')
+            })
+        }
+      },
+      //编辑
+      editClick(index, row) {
+        this.id = row.id
+        this.depositRatio = row.depositRatio
+        this.totalDeposit = row.totalDeposit
+        this.freezingDeposit = row.freezingDeposit
+
+        //增加定金
+        if (index == 1) {
+          this.outerVisibleAdd = true
+          this.customerInfo.flag = 1
+        }
+        //退回定金
+        else {
+          this.outerVisibleReturn = true
+          this.customerInfo.flag = 2
+        }
+      },
+      editPrice(asdf) {
+        this.customerInfo.id = this.id
+        this.customerInfo.compId = this.compId
+        this.customerInfo.depositRatio = this.depositRatio
+        this.customerInfo.money = this.money
+        this.customerInfo.totalDeposit = this.totalDeposit
+        this.customerInfo.freezingDeposit = this.freezingDeposit
+
+        //增加定金
+        if (asdf == 1) {
+          if (
+            this.money < 0 ||
+            this.money > 100000000 ||
+            (String(this.money).indexOf('.') != -1 &&
+              String(this.money).length - (String(this.money).indexOf('.') + 1) >
+              2)
+          ) {
+            this.$message({
+              message: '增加金额输入错误',
+              type: 'warning',
+            })
+            return
+          }
+          if (this.money) {
+            if (isNaN(this.money)) {
+              this.$message({
+                message: '增加金额非数字!',
+                type: 'warning',
+              })
+              return
+            }
+          }
+          if (!this.money) {
+            this.$message({
+              message: '增加金额不能为空!',
+              type: 'warning',
+            })
+            return
+          }
+        }
+        //退回定金
+        if (asdf == 2) {
+          if (
+            this.money < 0 ||
+            this.money > 100000000 ||
+            (String(this.money).indexOf('.') != -1 &&
+              String(this.money).length - (String(this.money).indexOf('.') + 1) >
+              2)
+          ) {
+            this.$message({
+              message: '退回金额输入错误',
+              type: 'warning',
+            })
+            return
+          }
+          if (this.money) {
+            if (isNaN(this.money)) {
+              this.$message({
+                message: '退回金额非数字!',
+                type: 'warning',
+              })
+              return
+            }
+          }
+          if (!this.money) {
+            this.$message({
+              message: '退回金额不能为空!',
+              type: 'warning',
+            })
+            return
+          }
+          if (this.money > this.totalDeposit - this.freezingDeposit) {
+            this.$message({
+              message: '退回金额不能大于可退金额!',
+              type: 'warning',
+            })
+            return
+          }
+        }
+        editCustomerInfo(this.customerInfo)
+          .toPromise()
+          .then((response) => {
+            this.outerVisibleAdd = false
+            this.outerVisibleReturn = false
+            this.outerVisibleEdit = false
+            this.getList()
+            this.money = ''
+
+            //增加定金
+            if (asdf == 1) {
+              this.$message.success('增加成功')
+            }
+            //退回定金
+            if (asdf == 2) {
+              this.$message.success('退回成功')
+            }
+          })
+      },
+      find() {
+        this.currentPage = 1
+        this.getList()
+      },
+    },
+  }
+</script>
+<style lang="scss" scoped>
+  .connert {
+    width: 90%;
+    margin: 0 auto;
+  }
+
+  .vertical-text-left {
+    width: 62px;
+    text-align: right;
+  }
+
+  .el-button--primary {
+    background-color: #5878e8;
+    border-color: #5878e8;
+  }
+
+  .el-button--primary {
+    background-color: #5878e8;
+    color: #fff;
+  }
+
+  .el-button--default {
+    color: #8890b1;
+    border-color: #e8eaf1;
+  }
+
+  /deep/.base_header_layout .find.el-button--primary {
+    width: 30px;
+    margin-left: 0;
+    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;
+  }
+
+  //操作按钮
+  .record,
+  .adjustment {
+    display: inline-block;
+    color: #5878e8;
+    padding: 0 4px !important;
+    position: relative;
+    font-size: 14px;
+  }
+
+  .record:after {
+    position: absolute;
+    content: '';
+    display: block;
+    top: 5px;
+    right: -2px;
+    width: 1px;
+    height: 12px;
+    background: #e9ecf7;
+  }
+
+  //状态样式
+  .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;
+  }
+
+  .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;
+  }
+
+  .record,
+  .adjustment {
+    display: inline-block;
+    color: #5878e8;
+    padding: 0 4px !important;
+    position: relative;
+  }
+
+  .record:after {
+    position: absolute;
+    content: '';
+    display: block;
+    top: 5px;
+    right: -2px;
+    width: 1px;
+    height: 12px;
+    background: #e9ecf7;
+  }
+
+  .el-row {
+    height: 60px;
+  }
+
+  .base_header_layout .grid-content {
+    margin-top: 80px;
+  }
+
+  .el-input--small .el-input__inner {
+    margin-left: 20px;
+  }
+
+  .dialog-footer {
+    margin-top: 33px;
+  }
+
+  .el-range-editor--small.el-input__inner {
+    height: 32px;
+    margin: 0 10px;
+  }
+
+  /deep/.el-pagination {
+    text-align: center;
+    white-space: nowrap;
+    padding: 2px 5px;
+    color: #303133;
+    font-weight: 700;
+    margin-bottom: 20px;
+  }
+
+  .el-select {
+    width: 30%;
+    margin-right: 10px;
+  }
+
+  /deep/.zengjia .el-textarea__inner {
+    display: block;
+    padding: 13px 9px;
+    line-height: 0.5;
+    box-sizing: border-box;
+    width: 80%;
+    font-size: inherit;
+    color: #606266;
+    background-color: #fff;
+    background-image: none;
+    border: 1px solid #dcdfe6;
+    border-radius: 4px;
+    margin-left: 180px;
+    margin-top: 10px;
+  }
+
+  /deep/.xiugai .el-textarea__inner {
+    display: block;
+    padding: 13px 17px;
+    line-height: 0.5;
+    box-sizing: border-box;
+    width: 105%;
+    font-size: inherit;
+    color: #606266;
+    background-color: #fff;
+    background-image: none;
+    border: 1px solid #dcdfe6;
+    border-radius: 4px;
+    transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+    margin-left: 95px;
+  }
+
+  /deep/.tuihui .el-textarea__inner {
+    display: block;
+    padding: 13px 9px;
+    line-height: 0.5;
+    box-sizing: border-box;
+    width: 80%;
+    font-size: inherit;
+    color: #606266;
+    background-color: #fff;
+    background-image: none;
+    border: 1px solid #dcdfe6;
+    border-radius: 4px;
+    margin-left: 180px;
+    margin-top: 10px;
+  }
+
+  /deep/.dingjin {
+    width: 98px;
+    margin-left: 30px;
+    margin-bottom: -37px;
+    padding-top: 20px;
+  }
+
+  /deep/.el-textarea__inner {
+    display: block;
+    padding: 13px 17px;
+    line-height: 0.5;
+    box-sizing: border-box;
+    width: 90%;
+    font-size: inherit;
+    color: #606266;
+    background-color: #fff;
+    background-image: none;
+    border: 1px solid #dcdfe6;
+    border-radius: 4px;
+    transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+    margin-left: 155px;
+    margin-top: 10px;
+  }
+
+  /deep/.addprice {
+    width: 98px;
+    margin-left: 50px;
+  }
+
+  /deep/.returnprice {
+    width: 98px;
+    margin-left: 50px;
+  }
+
+  /deep/.yuan {
+    width: 10px;
+    margin-left: 150%;
+    margin-top: -32px;
+  }
+
+  /deep/.addpricejine {
+    width: 98px;
+    margin-left: 50px;
+    margin-bottom: -37px;
+    padding-top: 20px;
+  }
+
+  /deep/.returnpricejine {
+    width: 98px;
+    margin-left: 50px;
+    margin-bottom: -37px;
+    padding-top: 20px;
+  }
+
+  /deep/.typeselect .el-input__inner {
+    color: #8890b1;
+  }
+
+  /deep/.yifudingjin {
+    margin-left: 135px;
+    width: 70px;
+    margin-top: -19px;
+  }
+
+  .inputChenge {
+    width: 50%;
+    display: inline-flex;
+  }
+
+  .inputs {
+    margin: 0 auto;
+  }
+
+  /deep/.ketuidingjin {
+    margin-left: 135px;
+    width: 70px;
+    margin-top: -19px;
+  }
+</style>

+ 89 - 89
src/views/platformAudit/component/routers/route.js

@@ -14,98 +14,98 @@ const platformauditRouter = {
     children: [
 
         // 粮商审核
-        {
-          path: 'grainmerchantreview',
-          component: () =>
-            import(/* webpackChunkName: "applDetail" */ '@/views/platformaudit/grainmerchantreview'),
-          name: 'grainmerchantreview',
-          meta: {
-            title: 'grainmerchantreview',
-            shortcutEntrance: 'grainmerchantreview',
-            module: 'audit.grainMerchant.grainMerchantInfo',
-            permissicon: [],
-            keepAlive: true,
-            _title:'粮商审核'
-          },
-        },
+        // {
+        //   path: 'grainmerchantreview',
+        //   component: () =>
+        //     import(/* webpackChunkName: "applDetail" */ '@/views/platformaudit/grainmerchantreview'),
+        //   name: 'grainmerchantreview',
+        //   meta: {
+        //     title: 'grainmerchantreview',
+        //     shortcutEntrance: 'grainmerchantreview',
+        //     module: 'audit.grainMerchant.grainMerchantInfo',
+        //     permissicon: [],
+        //     keepAlive: true,
+        //     _title:'粮商审核'
+        //   },
+        // },
 
-        //司机审核
-        {
-          path: 'driverreview',
-          component: () =>
-            import(/* webpackChunkName: "applDetail" */ '@/views/platformaudit/driverreview'),
-          name: 'driverreview',
-          meta: {
-            title: 'driverreview',
-            shortcutEntrance: 'driverreview',
-            module: 'audit.driverMerchant.driverMerchantInfo',
-            permissicon: [],
-            keepAlive: true,
-            _title:'司机审核'
-          },
-        },
+        // //司机审核
+        // {
+        //   path: 'driverreview',
+        //   component: () =>
+        //     import(/* webpackChunkName: "applDetail" */ '@/views/platformaudit/driverreview'),
+        //   name: 'driverreview',
+        //   meta: {
+        //     title: 'driverreview',
+        //     shortcutEntrance: 'driverreview',
+        //     module: 'audit.driverMerchant.driverMerchantInfo',
+        //     permissicon: [],
+        //     keepAlive: true,
+        //     _title:'司机审核'
+        //   },
+        // },
 
-        //采购交易信息审核
-        {
-          path: 'transactioninformationreview',
-          component: () =>
-            import(/* webpackChunkName: "applDetail" */ '@/views/platformaudit/transactioninformationreview'),
-          name: 'transactioninformationreview',
-          meta: {
-            title: 'transactioninformationreview',
-            shortcutEntrance: 'transactioninformationreview',
-            module: 'audit.tranMerchant.tranMerchantInfo',
-            permissicon: [],
-            keepAlive: true,
-            _title:'采购信息审核'
-          },
-        },
+        // //采购交易信息审核
+        // {
+        //   path: 'transactioninformationreview',
+        //   component: () =>
+        //     import(/* webpackChunkName: "applDetail" */ '@/views/platformaudit/transactioninformationreview'),
+        //   name: 'transactioninformationreview',
+        //   meta: {
+        //     title: 'transactioninformationreview',
+        //     shortcutEntrance: 'transactioninformationreview',
+        //     module: 'audit.tranMerchant.tranMerchantInfo',
+        //     permissicon: [],
+        //     keepAlive: true,
+        //     _title:'采购信息审核'
+        //   },
+        // },
 
-        //销售交易信息审核
-        {
-          path: 'saletransactioninformationreview',
-          component: () =>
-            import(/* webpackChunkName: "applDetail" */ '@/views/platformaudit/saletransactioninformationreview'),
-          name: 'saletransactioninformationreview',
-          meta: {
-            title: 'saletransactioninformationreview',
-            shortcutEntrance: 'saletransactioninformationreview',
-            module: 'audit.tranMerchant.tranMerchantInfo',
-            permissicon: [],
-            keepAlive: true,
-            _title:'销售信息审核'
-          },
-        },
-        //粮脉企业审核
-        {
-          path: 'grainpulseenterprisereview',
-          component: () =>
-            import(/* webpackChunkName: "applDetail" */ '@/views/platformaudit/grainpulseenterprisereview'),
-          name: 'grainpulseenterprisereview',
-          meta: {
-            title: 'grainpulseenterprisereview',
-            shortcutEntrance: 'grainpulseenterprisereview',
-            module: 'audit.tranMerchant.tranMerchantInfo',
-            permissicon: [],
-            keepAlive: true,
-            _title:'粮脉企业审核'
-          },
-        },
-        //粮脉动态审核
-        {
-          path: 'grainPulseDynamic',
-          component: () =>
-            import(/* webpackChunkName: "applDetail" */ '@/views/platformaudit/grainPulseDynamic'),
-          name: 'grainPulseDynamic',
-          meta: {
-            title: 'grainPulseDynamic',
-            shortcutEntrance: 'grainPulseDynamic',
-            module: 'audit.grainMerchant.grainMerchantInfo.review',
-            permissicon: [],
-            keepAlive: true,
-            _title:'粮脉动态审核'
-          },
-        },
+        // //销售交易信息审核
+        // {
+        //   path: 'saletransactioninformationreview',
+        //   component: () =>
+        //     import(/* webpackChunkName: "applDetail" */ '@/views/platformaudit/saletransactioninformationreview'),
+        //   name: 'saletransactioninformationreview',
+        //   meta: {
+        //     title: 'saletransactioninformationreview',
+        //     shortcutEntrance: 'saletransactioninformationreview',
+        //     module: 'audit.tranMerchant.tranMerchantInfo',
+        //     permissicon: [],
+        //     keepAlive: true,
+        //     _title:'销售信息审核'
+        //   },
+        // },
+        // //粮脉企业审核
+        // {
+        //   path: 'grainpulseenterprisereview',
+        //   component: () =>
+        //     import(/* webpackChunkName: "applDetail" */ '@/views/platformaudit/grainpulseenterprisereview'),
+        //   name: 'grainpulseenterprisereview',
+        //   meta: {
+        //     title: 'grainpulseenterprisereview',
+        //     shortcutEntrance: 'grainpulseenterprisereview',
+        //     module: 'audit.tranMerchant.tranMerchantInfo',
+        //     permissicon: [],
+        //     keepAlive: true,
+        //     _title:'粮脉企业审核'
+        //   },
+        // },
+        // //粮脉动态审核
+        // {
+        //   path: 'grainPulseDynamic',
+        //   component: () =>
+        //     import(/* webpackChunkName: "applDetail" */ '@/views/platformaudit/grainPulseDynamic'),
+        //   name: 'grainPulseDynamic',
+        //   meta: {
+        //     title: 'grainPulseDynamic',
+        //     shortcutEntrance: 'grainPulseDynamic',
+        //     module: 'audit.grainMerchant.grainMerchantInfo.review',
+        //     permissicon: [],
+        //     keepAlive: true,
+        //     _title:'粮脉动态审核'
+        //   },
+        // },
     ],
 };
 export default platformauditRouter;

+ 6 - 6
src/views/platformaudit/grainpulseenterprisereview.vue

@@ -168,14 +168,14 @@
           <el-input v-model="companyList1.detailedAddress" placeholder="请输入详细地址"></el-input>
         </el-form-item>
         <el-form-item label="上传封面图片" :label-width="formLabelWidth" prop="attachmentAddress">
-          <el-upload class="avatar-uploader" action="https://www.zthymaoyi.com/upload/admin" :show-file-list="false"
+          <el-upload class="avatar-uploader" :action="global.uploadPath" :show-file-list="false"
             :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
             <img v-if="companyList1.attachmentAddress" :src="companyList1.attachmentAddress" class="avatar">
             <i v-else class="el-icon-plus avatar-uploader-icon"></i>
           </el-upload>
         </el-form-item>
         <el-form-item label="营业执照" :label-width="formLabelWidth" prop="licenseAddress">
-          <el-upload class="avatar-uploader" action="https://www.zthymaoyi.com/upload/admin" :show-file-list="false"
+          <el-upload class="avatar-uploader" :action="global.uploadPath" :show-file-list="false"
             :on-success="handleAvatarSuccess1" :before-upload="beforeAvatarUpload">
             <img v-if="companyList1.licenseAddress" :src="companyList1.licenseAddress" class="avatar">
             <i v-else class="el-icon-plus avatar-uploader-icon"></i>
@@ -201,7 +201,7 @@
           <div :key="index" v-for="(item, index) in companyList1.sitePhotoAddress">
             <img style="float:left" v-if="item" :src="item" class="avatar">
           </div>
-          <el-upload action="https://www.zthymaoyi.com/upload/admin" :show-file-list="false" :limit="9"
+          <el-upload :action="global.uploadPath" :show-file-list="false" :limit="9"
             :on-success="handlePictureCardPreview" :on-remove="handleRemove">
             <i class="el-icon-plus avatar-uploader-icon"></i>
           </el-upload>
@@ -348,10 +348,10 @@
     },
     methods: {
       handleAvatarSuccess(res, file) {
-        this.companyList1.attachmentAddress = file.response.url;
+        this.companyList1.attachmentAddress = file.data.url;
       },
       handleAvatarSuccess1(res, file) {
-        this.companyList1.licenseAddress = file.response.url;
+        this.companyList1.licenseAddress = file.data.url;
       },
       beforeAvatarUpload(file) {
         const isJPG = file.type === 'image/jpeg';
@@ -370,7 +370,7 @@
         console.log(file, fileList)
       },
       handlePictureCardPreview(res, file) {
-        let url = file.response.url;
+        let url = file.data.url;
         if (this.companyList1.sitePhotoAddress.length >= 9) {
           this.$message({
             message: '最多上传九张图片!',

+ 2 - 4
src/views/profitable/cashout.vue

@@ -66,7 +66,7 @@
             <ws-upload ref="upload" accept=".jpg, .jpeg, .png, .pdf, .doc, .docx, .xls, .xlsx" :comp-id="compId" :appendix-ids="deptBudgetList.addressUrl" :size-limit="size"
         @onChange="onChange" 
        />
-          <!-- <el-upload ref='uploadfiles' :file-list='dataList' action="https://www.zthymaoyi.com/upload/admin" :on-preview="Previewf"
+          <!-- <el-upload ref='uploadfiles' :file-list='dataList' :action="global.uploadPath" :on-preview="Previewf"
             :on-success="handlefujian" :on-remove="handleRemove" class="photo2" >
             <i class="el-icon-plus"></i>
           </el-upload> -->
@@ -397,9 +397,7 @@
 
       },
       selectcontract(e){
-        console.log(e)
         for (let i = 0; i < this.contractList.length; i++) {
-          console.log(this.contractList[i])
           if(this.contractList[i].contractNo==e){
             this.deptBudgetList.contractId=this.contractList[i].id
             this.signingDate=this.contractList[i].signingDate
@@ -694,7 +692,7 @@
       getList() {
         getcontract({
         compId:localStorage.getItem('ws-pf_compId'),
-        flag:2
+        flag:11
         })
         .toPromise()
         .then((response) => {

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

@@ -253,6 +253,7 @@ import WsUpload from '@/components/WsUpload'
       getList() {
        getcontract({
         compId:localStorage.getItem('ws-pf_compId'),
+        flag:11
         }).toPromise()
         .then((response) => {
           this.contractList=response

+ 1 - 0
src/views/profitable/cashoutaduitNQ.vue

@@ -521,6 +521,7 @@
       getList() {
         getcontract({
           compId:localStorage.getItem('ws-pf_compId'),
+          flag:11
         })
         .toPromise()
         .then((response) => {

+ 1 - 0
src/views/profitable/cashoutedit.vue

@@ -413,6 +413,7 @@
       getList() {
         getcontract({
         compId:localStorage.getItem('ws-pf_compId'),
+        flag:11
         })
         .toPromise()
         .then((response) => {

+ 31 - 31
src/views/profitable/contractprofitsdetails.vue

@@ -93,7 +93,6 @@
           <el-table-column prop="signingDate" label="签订日期"></el-table-column>
           <el-table-column prop="address" label="操作" width="300">
             <template slot-scope="scope">
-              <!-- <el-button @click="finalstatement(scope.row)" type="primary">结算单</el-button> -->
               <!-- <el-button v-if="scope.row.status=='已结算'" @click="finalstatement(scope.row)" type="primary">结算单</el-button>
               <el-button v-if="scope.row.status=='已完成'" @click="closeaccount(scope.row)" type="primary">结算</el-button> -->
               <el-button @click="inventory(scope.row)" type="primary">库存</el-button>
@@ -229,37 +228,38 @@
           agreementType:row.agreementType,contractNo:row.contractNo,compId:this.compId})
             .toPromise()
             var arr=[row].concat(data)
-            console.log(arr)
             this.datalist.contractManagementInfoList=arr
-            var response=await judgesettlement(this.datalist).toPromise()
-        //           var weightprice=0
-        //           for (let i = 0; i < data.length; i++) {
-        //               weightprice+=(data[i].weight*data[i].settlementPrice)
-        //           }
-        //           if(row.agreementType=='收购合同'||row.agreementType=='采购合同'){
-        //             row.profit=weightprice-(row.weight*row.settlementPrice)
-        //           }else if(row.agreementType=='销售合同'){
-        //             row.profit=(row.weight*row.settlementPrice)-weightprice
-        //           }
-        // this.$confirm('结算后当前合同和相关合同不可再进行费用相关操作', '提示', {
-        //     confirmButtonText: '确定',
-        //     cancelButtonText: '取消',
-        //     type: 'warning'
-        //   })
-        //   .then(() => {
-        //     editcontract({flag:2,id:row.id,profit:row.profit}).toPromise()
-        //   .then(response => {
-        //     this.$message({
-        //         message: '结算成功!',
-        //         type: 'success',
-        //   })
-        //   }).catch(()=>{
-        //     this.$message({
-        //         message: '结算失败!',
-        //         type: 'warning',
-        //   })
-        //   })
-        //   })
+            judgesettlement(this.datalist).toPromise().then(response => {
+                         var weightprice=0
+                  for (let i = 0; i < data.length; i++) {
+                      weightprice+=(data[i].weight*data[i].settlementPrice)
+                  }
+                  if(row.agreementType=='收购合同'||row.agreementType=='采购合同'){
+                    row.profit=weightprice-(row.weight*row.settlementPrice)
+                  }else if(row.agreementType=='销售合同'){
+                    row.profit=(row.weight*row.settlementPrice)-weightprice
+                  }
+        this.$confirm('结算后当前合同和相关合同不可再进行费用相关操作', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+          })
+          .then(() => {
+            editcontract({flag:2,id:row.id,profit:row.profit}).toPromise()
+          .then(response => {
+            this.$message({
+                message: '结算成功!',
+                type: 'success',
+          })
+          this.getList()
+          }).catch(()=>{
+            this.$message({
+                message: '结算失败!',
+                type: 'warning',
+          })
+          })
+          })
+        })
       },
       finalstatement(row){
         this.tableData.contractNo=row.contractNo

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

@@ -273,6 +273,7 @@
       getList() {
        getcontract({
         compId:localStorage.getItem('ws-pf_compId'),
+        flag:11
         })
         .toPromise()
         .then((response) => {

+ 19 - 21
src/views/profitable/expensemanagementdetails.vue

@@ -32,10 +32,10 @@
           <el-button @click="typeChange(2)" :type="searchType == 2?'primary':''">支出</el-button>
         </el-col>
         <el-col style='text-align:right;' :span="6">
-          <el-badge v-if="approveStatus" is-dot class="item">
+          <!-- <el-badge v-if="approveStatus" is-dot class="item">
             <el-button style="margin-left:10px" @click="oilcost()">油费</el-button>
           </el-badge>
-          <!-- <el-button v-else style="margin-left:10px" @click="oilcost()">油费</el-button>
+          <el-button v-else style="margin-left:10px" @click="oilcost()">油费</el-button>
           <el-button  style="margin-left:10px" @click="storageCharge()">仓储费</el-button> -->
           <el-button v-hasPermission="`lirunhesuan.feiyongguanli.add`" style="margin-left:10px" @click="cashout('')">请款</el-button>
           <el-button v-hasPermission="`lirunhesuan.feiyongguanli.shouk`" style="margin-right:10px" @click="receipt(1)" >收款</el-button>
@@ -301,25 +301,23 @@
           })
       },
       getfielfillingList() {
-        // getfielfillinginfo({
-        //     // warehouseType: 1,
-        //     compId: localStorage.getItem('ws-pf_compId'),
-        //     searchKeyWord:this.searchKeyWord,
-        //     currentPage: this.currentPage,
-        //     pageSize:this.pageSize ,
-        //     strokeType:this.strokeType
-        //     // searchType:this.searchType
-        //   })
-        //   .toPromise()
-        //   .then(response => {
-        //     this.tableData1 = response.records
-        //     var arr=this.tableData1.filter((item)=>{return item.approveStatus})
-        //     if(arr.length>0){
-        //       this.approveStatus=true
-        //     }else{
-        //       this.approveStatus=false
-        //     }
-        //   })
+        getfielfillinginfo({
+            // warehouseType: 1,
+            compId: localStorage.getItem('ws-pf_compId'),
+            currentPage: 1,
+            pageSize:10 ,
+            // searchType:this.searchType
+          })
+          .toPromise()
+          .then(response => {
+            this.tableData1 = response.records
+            var arr=this.tableData1.filter((item)=>{return item.approveStatus})
+            if(arr.length>0){
+              this.approveStatus=true
+            }else{
+              this.approveStatus=false
+            }
+          })
       },
       accomplish(row){
         var title1=''

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

@@ -540,6 +540,7 @@ weight: 4000}]],
       getList() {
         getcontract({
         compId:localStorage.getItem('ws-pf_compId'),
+        flag:11
         })
         .toPromise()
         .then((response) => {

+ 8 - 8
src/views/profitable/expensemanagentlook.vue

@@ -56,7 +56,7 @@
         </el-form-item>
         </el-form>
         <el-form v-if='roleName=="出纳"' label-position="left">
-               <div style='margin:0 0 10px;width:90%;'>账户信息</div>
+               <div v-if="payeeinfo" style='margin:0 0 10px;width:90%;'>账户信息</div>
             <el-form-item  label-width='100px' label="收款方" span="1" prop="purpose" class="readonly">
             {{payeeinfo.customerType=="企业客户"?payeeinfo.compName:payeeinfo.customerName}}
             </el-form-item>
@@ -170,13 +170,13 @@
         .toPromise()
         .then((response) => {
           this.deptBudgetList=response
-          this.srcList=[]
-          var arr=response.addressUrl.split(',')
-          for (let i = 0; i < arr.length; i++) {
-            if(arr[i]!=''){
-              this.srcList.push(arr[i])
-            }
-          }
+          // this.srcList=[]
+          // var arr=response.addressUrl.split(',')
+          // for (let i = 0; i < arr.length; i++) {
+          //   if(arr[i]!=''){
+          //     this.srcList.push(arr[i])
+          //   }
+          // }
           if(this.deptBudgetList.expensesPurpose==1){
               getpayeeinfo({compId:localStorage.getItem('ws-pf_compId'),contractNo:response.contractNo}).toPromise()
               .then((response1) => {

+ 100 - 26
src/views/profitable/oilcost.vue

@@ -20,8 +20,7 @@
           <div style="flex-direction: row-reverse;" class="datascreen">
              <el-button class="find" type="primary" @click="find()"><img width="16" height="16" style="left: -8px;"
                 src="../../../public/img/sousuo.png" alt="" /></el-button>
-            <el-input placeholder="可按费用名称、流向、经办人查找" class="input_css" v-model="searchKeyWord" clearable></el-input>
-           
+            <el-input placeholder="可按司机名、车牌号查找" class="input_css" v-model="searchKeyWord" clearable></el-input>
           </div>
         </el-col>
       </el-row>
@@ -46,31 +45,31 @@
           </el-table-column>
           <el-table-column prop="fillingNo" label="申请编号" width="100px">
           </el-table-column>
+          <el-table-column v-if="strokeType == 3" prop="warehouseName" label="仓库名" width="100px">
+          </el-table-column>
+          <el-table-column v-if="strokeType == 3" prop="remark" label="备注" width="100px">
+          </el-table-column>
           <el-table-column v-if="strokeType == 1" prop="driverName" label="司机名" width="100px">
           </el-table-column>
           <el-table-column v-if="strokeType == 1" prop="carNo" label="车牌号" width="150px">
           </el-table-column>
-          <el-table-column prop="feeType" label="请款金额">
-            <template scope="scope">
-              <span v-if="strokeType==1">0{{ scope.row.totalCost }}</span>
-              <span v-else>{{ scope.row.amountRequested }}</span>
-            </template>
-          </el-table-column>
-          
-          <el-table-column prop="purpose" label="起点" width="200px">
+          <el-table-column v-if="strokeType == 1"  prop="purpose" label="总油耗(L)" width="200px">
             <template slot-scope="scope">
-              {{scope.row.originProvince}}{{scope.row.originCity}}{{scope.row.originArea}}{{scope.row.originAddress}}
+              {{scope.row.tfc}}
             </template>
           </el-table-column>
-          <el-table-column prop="amountMoney" label="终点">
+          <el-table-column v-if="strokeType == 1"  prop="purpose" label="总金额" width="200px">
             <template slot-scope="scope">
-              {{scope.row.destinationProvince}}{{scope.row.destinationCity}}{{scope.row.destinationArea}}{{scope.row.destinationAddress}}
+              {{scope.row.totalCost}}
             </template>
           </el-table-column>
-          <el-table-column prop="tfc" width="120" label="油耗(升)"></el-table-column>
+          <el-table-column v-if="strokeType == 1"  prop="createDate" width="120" label="申请时间"></el-table-column>
+          <el-table-column v-if="strokeType == 3"  prop="amountRequested" label="请款金额(元)">
+          </el-table-column>
+          <el-table-column v-if="strokeType == 3"  prop="createDate" width="120" label="请款时间"></el-table-column>
           <el-table-column prop="approveStatus" width="100" label="状态">
             <template slot-scope="scope">
-              {{scope.row.destinationProvince}}{{scope.row.destinationCity}}{{scope.row.destinationArea}}{{scope.row.destinationAddress}}
+              <span v-if="scope.row.approveStatus">{{scope.row.approveStatus}}</span><span v-else>{{scope.row.travelStatus}}</span>
             </template>
           </el-table-column>
           <el-table-column prop="expenseRemarks" label="附件">
@@ -94,7 +93,7 @@
              
               <!-- <el-button v-if='scope.row.approveStatus=="待确认"' @click="accomplish(scope.row)" type="primary">完成</el-button> -->
               <el-button v-if='scope.row.approveStatus' @click="pass(scope.row)" type="primary">通过</el-button>
-              <el-button v-if='scope.row.approveStatus' @click="edit(scope.row)" type="primary">驳回</el-button>
+              <el-button v-if='scope.row.approveStatus' @click="reject(scope.row)" type="primary">驳回</el-button>
               <!-- <el-button v-if='scope.row.status=="已驳回"' @click="expenseedit(scope.row)" type="primary">编辑</el-button> -->
               <el-button v-if='!scope.row.approveStatus&&scope.row.expensesType==2&&scope.row.status=="待付款"' @click="payment(scope.row)" type="primary">付款</el-button>
             </template>
@@ -106,7 +105,80 @@
         layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal">
       </el-pagination>
     </div>
-    <el-dialog width='50%' :visible.sync="dialogVisible1" :title="title1">
+    <el-dialog width='50%' :visible.sync="dialogVisible1" title="请款详情">
+      <!-- <div  style='padding:20px;'  :style="{'border-bottom':(index!=recordList.length-1?'1px solid #ccc':'none')}"
+> -->
+<el-form ref="form" label-width="120px">
+  <el-form-item v-if="strokeType==1" label="车牌号">
+    {{form.carNo}}
+  </el-form-item>
+  <el-form-item v-if="strokeType==1" label="起点">
+    {{form.originProvince}}{{form.originCity}}{{form.originArea}}{{form.originAddress}}
+  </el-form-item>
+  <el-form-item v-if="strokeType==1" label="终点">
+    {{form.destinationProvince}}{{form.destinationCity}}{{form.destinationArea}}{{form.destinationAddress}}
+  </el-form-item>
+  <el-form-item  v-if="strokeType==1" label="总油耗(升)">
+    {{form.tfc}}
+  </el-form-item>
+  <el-form-item  v-if="strokeType==1" label="总金额(元)">
+    {{form.totalCost}}
+  </el-form-item>
+  <el-form-item v-if="strokeType==1" label="申请时间">
+    {{form.createDate}}
+  </el-form-item>
+  <el-form-item v-if="strokeType==3" label="仓库名">
+    {{form.warehouseName}}
+  </el-form-item>
+  <el-form-item v-if="strokeType==3" label="备注">
+    {{form.remark}}
+  </el-form-item>
+  <el-form-item v-if="strokeType==3" label="请款金额">
+    {{form.amountRequested}}
+  </el-form-item>
+  <el-form-item v-if="strokeType==3" label="请款时间">
+    {{form.createDate}}
+  </el-form-item>
+  <div style="border-bottom:1px solid #ccc;margin-bottom:18px;"></div>
+  <div v-if="form.fillingDetailInfoList">
+    <div v-for="(item,index) in form.fillingDetailInfoList">
+      <div>加油-{{index+1}}</div>
+      <el-form-item label="油耗(升)">
+        {{item.oilConsumption}}
+      </el-form-item>
+      <el-form-item label="单价(元/升)">
+        {{item.currentOilPrice}}
+      </el-form-item>
+      <el-form-item label="油费(元)">
+        {{item.currentConsumption}}
+      </el-form-item>
+      <el-form-item label="凭证">
+        <img :src="item.addressUrl" alt="">
+      </el-form-item>
+    </div>
+  </div>
+    <div v-if="form.shortFillingInfoList">
+    <div v-for="(item,index) in form.shortFillingInfoList">
+      <div>加油-{{index+1}}</div>
+      <el-form-item label="车牌号">
+        {{item.carNo}}
+      </el-form-item>
+      <el-form-item label="起始地">
+        {{item.originProvince}}{{item.originCity}}{{item.originArea}}{{item.originAddress}}
+      </el-form-item>
+      <el-form-item label="终到地">
+        {{item.destinationProvince}}{{item.destinationCity}}{{item.destinationArea}}{{item.destinationAddress}}
+      </el-form-item>
+    </div>
+  </div>
+  
+  <el-form-item>
+    <el-button @click="dialogVisible1=false">关闭</el-button>
+  </el-form-item>
+</el-form>
+      <!-- </div> -->
+    </el-dialog>
+    <el-dialog width='50%' :visible.sync="dialogVisible2" :title="title1">
       <div  style='padding:20px;' v-for="(item,index) in recordList" :style="{'border-bottom':(index!=recordList.length-1?'1px solid #ccc':'none')}"
 >
         <div style='width:100%;justify-content: space-between;' class='flex'>
@@ -128,7 +200,7 @@
 <script>
   import WsUpload from '@/components/WsUpload'
   import {
-    getfielfillinginfo
+    getfielfillinginfo,
   } from '@/model/profitable/index'
   import {
     woekflowhandle
@@ -144,10 +216,11 @@
         deptBudgetTotal: 0,
         currentPage: 1,
         pageSize: 10,
-        size:9,
         recordList:[],
         compId:localStorage.getItem('ws-pf_compId'),
         dialogVisible1:false,
+        form:{},
+        dialogVisible2:false,
         deptCircularPage: {},
         searchType:"",
         searchKeyWord:"",
@@ -191,7 +264,8 @@
         }
       },
       look(row){
-        this.$router.push({name:'expensemanagentlook',query:{id:row.id,expensesType:row.expensesType}})
+        this.form=row
+        this.dialogVisible1=true
       },
       
       strokeTypeChange(num){
@@ -224,7 +298,7 @@
                 message: '通过成功!',
                 type: 'success',
               })
-              this.$router.go(-1)
+              this.getList()
             }).catch((response) => {
               this.$message({
                 message: '通过失败!',
@@ -239,9 +313,9 @@
           })
         }
       },
-      pass(row){
+      reject(row){
         if(row.taskId){
-          this.$confirm('确认通过请款信息?', '提示', {
+          this.$confirm('确认驳回请款信息?', '提示', {
             confirmButtonText: '确定',
             cancelButtonText: '取消',
             type: 'warning'
@@ -255,13 +329,13 @@
             }).toPromise()
             .then((response) => {
               this.$message({
-                message: '通过成功!',
+                message: '驳回成功!',
                 type: 'success',
               })
-              this.$router.go(-1)
+              this.getList()
             }).catch((response) => {
               this.$message({
-                message: '通过失败!',
+                message: '驳回失败!',
                 type: 'error',
               })
             })

+ 29 - 29
src/views/profitable/payment.vue

@@ -59,14 +59,13 @@
               :src="item"
                :preview-src-list="srcList"></el-image></span>
               -->
-              <el-upload ref='uploadfiles' :file-list='srcList' action="https://www.zthymaoyi.com/upload/admin" 
-              list-type="picture-card" :on-success="handlefujian" :on-remove="handleRemove" class="photo2" accept="image/jpg,image/jpeg,image/png">
-                <i class="el-icon-plus"></i>
-              </el-upload>
+              <ws-upload ref="upload" accept=".jpg, .jpeg, .png, .pdf, .doc, .docx, .xls, .xlsx" :comp-id="compId" :appendix-ids="deptBudgetList.addressUrl" :size-limit="size"
+        @onChange="onChange" 
+       />
           </div>
         </el-form-item>
         </el-form>
-        <div style='width:50%;'>
+        <div v-if="this.payeeinfo" style='width:50%;'>
           <div style='margin:0 auto 10px;width:90%;'>账户信息</div>
             <el-form label-position="left">
             <el-form-item  label-width='100px' label="收款方" span="1" prop="purpose" class="readonly">
@@ -91,10 +90,13 @@
   </div>
 </template>
 <script>
+    import WsUpload from '@/components/WsUpload'
   import {lookexenseinfo,expensepayment,getpayeeinfo} from '@/model/profitable/index'
   import {woekflowhandle,} from '@/model/tasksport/index'
   export default {
-    components: {},
+    components: {
+      WsUpload,
+    },
     data() {
       return {
         value: [],
@@ -102,6 +104,8 @@
           name: "玉米",
           count: 2000,
         }],
+        size:9,
+        compId:localStorage.getItem('ws-pf_compId'),
         rejectshow:false,
         deptBudgetList:{},
         makeWordData: {},
@@ -132,13 +136,13 @@
           this.srcList=[]
           this.paymentScreenshot=[]
           this.deptBudgetList=response
-          var arr=response.addressUrl.split(',')
-          for (let i = 0; i < arr.length; i++) {
-            if(arr[i]!=''){
-              this.srcList.push({url:arr[i]})
-              this.paymentScreenshot.push(arr[i])
-            }
-          }
+          // var arr=response.addressUrl.split(',')
+          // for (let i = 0; i < arr.length; i++) {
+          //   if(arr[i]!=''){
+          //     this.srcList.push({url:arr[i]})
+          //     this.paymentScreenshot.push(arr[i])
+          //   }
+          // }
           if(localStorage.getItem('ws-pf_roleName')=='出纳'){
             if(this.deptBudgetList.expensesPurpose==1){
               getpayeeinfo({compId:localStorage.getItem('ws-pf_compId'),contractNo:response.contractNo}).toPromise()
@@ -151,26 +155,22 @@
         })
         
       },
-      handlefujian(file) {
-        // console.log(file)
-        this.paymentScreenshot.push(file.url)
-        // this.dialogVisible = true
-      },
-      handleRemove(file) {
-        // console.log(file)
-        for (let i = 0; i < this.paymentScreenshot.length; i++) {
-          if(this.paymentScreenshot[i]==response.url){
-            this.paymentScreenshot.splice(i, 1)
-          }
-          
-        }
+      onChange() {
+        this.$refs.upload
+          .handleSaveBill()
+          .then(async response => {
+            this.deptBudgetList.addressUrl = response
+          })
+          .catch(res => {
+            EventBus.$emit('error', (JSON.parse(res) || {}).message)
+            this.$refs.upload.clearFiles()
+          })
       },
       returnsales(){
         this.$router.go(-1)
       },
       submit(){
         // console.log(this.paymentScreenshot)
-        this.deptBudgetList.addressUrl=this.paymentScreenshot.toString()
         this.$confirm('确定提交付款信息?', '提示', {
           confirmButtonText: '确定',
           cancelButtonText: '取消',
@@ -286,7 +286,7 @@
   line-height:100px;
 }
 /deep/.el-upload-list--picture-card .el-upload-list__item{
-  width: 100px;
-  height:100px;
+  width: 110px;
+  height:140px;
 }
 </style>

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

@@ -278,6 +278,7 @@
       getList() {
          getcontract({
         compId:localStorage.getItem('ws-pf_compId'),
+        flag:11
         })
         .toPromise()
         .then((response) => {

+ 1 - 1
src/views/statisticalReport/autoSettlementList.vue

@@ -219,7 +219,7 @@
             class="deal" />
         </el-form-item>
         <el-form-item label="上传付款截图" :label-width="formLabelWidth">
-          <!-- <el-upload action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+          <!-- <el-upload :action="global.uploadPath" list-type="picture-card"
             :on-success="handlePictureCardPreview" :on-remove="handleRemove" class="photo2">
             <i class="el-icon-plus"></i>
           </el-upload> -->

+ 3 - 3
src/views/statisticalReport/huoyunList.vue

@@ -110,7 +110,7 @@
             class="deal" />
         </el-form-item>
         <el-form-item label="上传付款截图" :label-width="formLabelWidth">
-          <el-upload action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+          <el-upload :action="global.uploadPath" list-type="picture-card"
             :on-success="handlePictureCardPreview" :on-remove="handleRemove" class="photo2">
             <i class="el-icon-plus"></i>
           </el-upload>
@@ -1057,9 +1057,9 @@
       },
       handlePictureCardPreview(file) {
         if (this.paymentScreenshot) {
-          this.paymentScreenshot += "," + file.url
+          this.paymentScreenshot += "," + file.data.url
         } else {
-          this.paymentScreenshot = file.url
+          this.paymentScreenshot = file.data.url
         }
       },
       handleDownload(file) {

+ 4 - 4
src/views/statisticalReport/purchaseClosingCashierList.vue

@@ -75,7 +75,7 @@
             class="deal" />
         </el-form-item>
         <el-form-item label="上传付款截图" :label-width="formLabelWidth">
-          <el-upload action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+          <el-upload :action="global.uploadPath" list-type="picture-card"
             :on-success="handlePictureCardPreview" :on-remove="handleRemove" class="photo2">
             <i class="el-icon-plus"></i>
           </el-upload>
@@ -104,7 +104,7 @@
             class="deal" />
         </el-form-item>
         <el-form-item label="上传收款截图" :label-width="formLabelWidth">
-          <el-upload action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+          <el-upload :action="global.uploadPath" list-type="picture-card"
             :on-success="handlePictureCardPreview1" :on-remove="handleRemove" class="photo2">
             <i class="el-icon-plus"></i>
           </el-upload>
@@ -548,10 +548,10 @@
         console.log(file)
       },
       handlePictureCardPreview(file) {
-        this.paymentScreenshot = file.url
+        this.paymentScreenshot = file.data.url
       },
       handlePictureCardPreview1(file) {
-        this.collectionScreenshot = file.url
+        this.collectionScreenshot = file.data.url
       },
       handleDownload(file) {
         console.log(file)

+ 2 - 2
src/views/statisticalReport/purchaseReceiptStatisticsList.vue

@@ -111,7 +111,7 @@
             class="deal" />
         </el-form-item>
         <el-form-item label="上传付款截图" :label-width="formLabelWidth">
-          <el-upload action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+          <el-upload :action="global.uploadPath" list-type="picture-card"
             :on-success="handlePictureCardPreview" :on-remove="handleRemove" class="photo2">
             <i class="el-icon-plus"></i>
           </el-upload>
@@ -991,7 +991,7 @@
         console.log(file)
       },
       handlePictureCardPreview(file) {
-        this.paymentScreenshot = file.url
+        this.paymentScreenshot = file.data.url
 
         this.dialogVisible = true
       },

+ 3 - 3
src/views/statisticalReport/salesClosingCashierList.vue

@@ -111,7 +111,7 @@
             class="deal" />
         </el-form-item>
         <el-form-item label="上传付款截图" :label-width="formLabelWidth">
-          <el-upload v-if="paymentlist.paymentScreenshot == ''" action="https://www.zthymaoyi.com/upload/admin"
+          <el-upload v-if="paymentlist.paymentScreenshot == ''" :action="global.uploadPath"
             list-type="picture-card" :on-success="
               (res, file) => {
                 handlepaymentScreenshot(res, file)
@@ -428,10 +428,10 @@
         })
       },
       handlepaymentScreenshot(res, fire) {
-        this.paymentlist.paymentScreenshot = res.url
+        this.paymentlist.paymentScreenshot = res.data.url
       },
       handlecollectionScreenshot(res, fire) {
-        this.collectionlist.collectionScreenshot = res.url
+        this.collectionlist.collectionScreenshot = res.data.url
       },
       payment() {
         if (this.multipleSelection.length > 0) {

+ 2 - 2
src/views/statisticalReport/salesDeliveryReportList.vue

@@ -102,7 +102,7 @@
             value-format="yyyy-MM-dd" class="deal" />
         </el-form-item>
         <el-form-item label="上传收款截图" :label-width="formLabelWidth">
-          <el-upload action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+          <el-upload :action="global.uploadPath" list-type="picture-card"
             :on-success="handlePictureCardPreview" :on-remove="handleRemove" class="photo2">
             <i class="el-icon-plus"></i>
           </el-upload>
@@ -806,7 +806,7 @@
         console.log(file)
       },
       handlePictureCardPreview(file) {
-        this.collectionScreenshot = file.url
+        this.collectionScreenshot = file.data.url
       },
       handleDownload(file) {
         console.log(file)

+ 3 - 3
src/views/statisticalReport/shippingList.vue

@@ -111,7 +111,7 @@
             class="deal" />
         </el-form-item>
         <el-form-item label="上传付款截图" :label-width="formLabelWidth">
-          <el-upload action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+          <el-upload :action="global.uploadPath" list-type="picture-card"
             :on-success="handlePictureCardPreview" :on-remove="handleRemove" class="photo2">
             <i class="el-icon-plus"></i>
           </el-upload>
@@ -1074,9 +1074,9 @@
       },
       handlePictureCardPreview(file) {
         if (this.paymentScreenshot) {
-          this.paymentScreenshot += ',' + file.url
+          this.paymentScreenshot += ',' + file.data.url
         } else {
-          this.paymentScreenshot = file.url
+          this.paymentScreenshot = file.data.url
         }
         this.dialogVisible = true
       },

+ 4 - 4
src/views/statisticalReport/stockPurchaseReceiptReportList.vue

@@ -165,7 +165,7 @@
             class="deal" />
         </el-form-item>
         <el-form-item label="上传付款截图" :label-width="formLabelWidth">
-          <el-upload action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+          <el-upload :action="global.uploadPath" list-type="picture-card"
             :on-success="handlePictureCardPreview" :on-remove="handleRemove" class="photo2">
             <i class="el-icon-plus"></i>
           </el-upload>
@@ -202,7 +202,7 @@
 
         </el-form-item>
         <el-form-item label="上传定金截图" :label-width="formLabelWidth">
-          <el-upload action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+          <el-upload :action="global.uploadPath" list-type="picture-card"
             :on-success="handlePictureCardPreviewDis" :on-remove="handleRemoveDis" class="photo2">
             <i class="el-icon-plus"></i>
           </el-upload>
@@ -903,7 +903,7 @@
         console.log(file)
       },
       handlePictureCardPreview(file) {
-        this.paymentScreenshot = file.url
+        this.paymentScreenshot = file.data.url
         this.dialogVisible = true
       },
       // handleDownload(file) {
@@ -911,7 +911,7 @@
       // },
 
       handlePictureCardPreviewDis(file) {
-        this.depositUrl = file.url
+        this.depositUrl = file.data.url
         this.dialogVisible = true
       },
       handleRemoveDis(file) {

+ 4 - 4
src/views/statisticalReport/stockSaleOutReportList.vue

@@ -356,7 +356,7 @@
             class="deal" />
         </el-form-item>
         <el-form-item label="上传收款截图" :label-width="formLabelWidth">
-          <el-upload ref='upload' action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+          <el-upload ref='upload' :action="global.uploadPath" list-type="picture-card"
             :on-success="handlePictureCardPreview" :on-remove="handleRemove" class="photo2">
             <i class="el-icon-plus"></i>
           </el-upload>
@@ -403,7 +403,7 @@
           <el-input v-model="deposit" autocomplete="off" placeholder="输入定金金额" class="deal"></el-input>
         </el-form-item>
         <el-form-item label="上传定金截图" :label-width="formLabelWidth">
-          <el-upload ref="upload" action="https://www.zthymaoyi.com/upload/admin" :limit='1' list-type="picture-card"
+          <el-upload ref="upload" :action="global.uploadPath" :limit='1' list-type="picture-card"
             :on-success="handlePictureCardPreview1" :on-remove="handleRemove" class="photo2">
             <i class="el-icon-plus"></i>
           </el-upload>
@@ -1327,10 +1327,10 @@
         console.log(file)
       },
       handlePictureCardPreview(file) {
-        this.collectionScreenshot = file.url
+        this.collectionScreenshot = file.data.url
       },
       handlePictureCardPreview1(file) {
-        this.depositUrl = file.url
+        this.depositUrl = file.data.url
       },
       handleDownload(file) {
         console.log(file)

+ 2 - 2
src/views/tradeServicesManagement/repayment.vue

@@ -68,13 +68,13 @@
             </ws-form-item>
             <ws-form-item label="上传还款截图" prop="paymentScreenshot"></ws-form-item>
             <div class="upLoad">
-              <!-- <el-upload class="avatar-uploader" action="https://www.zthymaoyi.com/upload/admin" :show-file-list="false"
+              <!-- <el-upload class="avatar-uploader" :action="global.uploadPath" :show-file-list="false"
                 :on-success="handleAvatarSuccess">
                 <img v-if="imageUrl" :src="imageUrl" class="avatar" />
                 <i v-else class="el-icon-plus avatar-uploader-icon"></i>
               </el-upload> -->
                <!-- <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             list-type="picture-card"
             :on-success="handleAvatarSuccess"
             :on-remove="handleRemove"

+ 16 - 16
src/views/tranManagement/tranManagementDriverAdd.vue

@@ -265,7 +265,7 @@
                 size="small"
               />
               <el-upload
-                action="https://www.zthymaoyi.com/upload/admin"
+                :action="global.uploadPath"
                 :show-file-list="false"
                 :on-success="
                   (res, file) => {
@@ -349,7 +349,7 @@
                 size="small"
               />
               <el-upload
-                action="https://www.zthymaoyi.com/upload/admin"
+                :action="global.uploadPath"
                 :show-file-list="false"
                 :on-success="
                   (res, file) => {
@@ -409,7 +409,7 @@
       <div class="flex">
         <div>
           <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="uploadSuccessHandletravel"
             class="avatar-uploader"
@@ -428,7 +428,7 @@
         </div>
         <div>
           <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="uploadSuccessHandledrive"
             class="avatar-uploader"
@@ -447,7 +447,7 @@
         </div>
         <div>
           <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="uploadSuccessHandleway"
             class="avatar-uploader"
@@ -466,7 +466,7 @@
         </div>
         <div>
           <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="uploadSuccessHandlequalification"
             class="avatar-uploader"
@@ -485,7 +485,7 @@
         </div>
         <div>
           <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="uploadSuccessHandleidentityjust"
             class="avatar-uploader"
@@ -504,7 +504,7 @@
         </div>
         <div>
           <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="uploadSuccessHandleidentityagainst"
             class="avatar-uploader"
@@ -671,12 +671,12 @@ export default {
       console.log(index, e, fileList)
       const that = this
       // this.deptBudgetList.cardAddressUrl = e.url
-      getbank({ bankImg: e.url })
+      getbank({ bankImg: e.data.url })
         .toPromise()
         .then((response) => {
           for (var i = 0; i < this.freightspace1.length; i++) {
             if (i == index) {
-              this.freightspace1[i].payeeAddressUrl = e.url
+              this.freightspace1[i].payeeAddressUrl = e.data.url
               this.freightspace1[i].bankCard = response.bankNo
               this.freightspace1[i].bankDeposit = response.bankName
               this.freightspace1[i].bankDepositBranchList =
@@ -686,23 +686,23 @@ export default {
         })
     },
     uploadSuccessHandletravel(e) {
-      this.$set(this.addressUrls, 'travel', e.url)
+      this.$set(this.addressUrls, 'travel', e.data.url)
     },
     uploadSuccessHandledrive(e) {
-      this.$set(this.addressUrls, 'drive', e.url)
+      this.$set(this.addressUrls, 'drive', e.data.url)
     },
     uploadSuccessHandleway(e) {
-      this.$set(this.addressUrls, 'way', e.url)
+      this.$set(this.addressUrls, 'way', e.data.url)
       this.addressUrls.way = e.url
     },
     uploadSuccessHandlequalification(e) {
-      this.$set(this.addressUrls, 'qualification', e.url)
+      this.$set(this.addressUrls, 'qualification', e.data.url)
     },
     uploadSuccessHandleidentityjust(e) {
-      this.$set(this.addressUrls, 'identityjust', e.url)
+      this.$set(this.addressUrls, 'identityjust', e.data.url)
     },
     uploadSuccessHandleidentityagainst(e) {
-      this.$set(this.addressUrls, 'identityagainst', e.url)
+      this.$set(this.addressUrls, 'identityagainst', e.data.url)
     },
     selectbankDepositBranch(e, index) {
       this.freightspace1[index].bankDepositBranch = e

+ 16 - 16
src/views/tranManagement/tranManagementDriverEdit.vue

@@ -268,7 +268,7 @@
                 size="small"
               />
               <el-upload
-                action="https://www.zthymaoyi.com/upload/admin"
+                :action="global.uploadPath"
                 :show-file-list="false"
                 :on-success="
                   (res, file) => {
@@ -353,7 +353,7 @@
                 size="small"
               />
               <el-upload
-                action="https://www.zthymaoyi.com/upload/admin"
+                :action="global.uploadPath"
                 :show-file-list="false"
                 :on-success="
                   (res, file) => {
@@ -414,7 +414,7 @@
         <!-- <div v-for="(item,index) in deptBudgetList.addressUrlArray"> -->
         <div>
           <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="uploadSuccessHandletravel"
             class="avatar-uploader"
@@ -434,7 +434,7 @@
         </div>
         <div>
           <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="uploadSuccessHandledrive"
             class="avatar-uploader"
@@ -454,7 +454,7 @@
         </div>
         <div>
           <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="uploadSuccessHandleway"
             class="avatar-uploader"
@@ -474,7 +474,7 @@
         </div>
         <div>
           <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="uploadSuccessHandlequalification"
             class="avatar-uploader"
@@ -494,7 +494,7 @@
         </div>
         <div>
           <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="uploadSuccessHandleidentityjust"
             class="avatar-uploader"
@@ -514,7 +514,7 @@
         </div>
         <div>
           <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="uploadSuccessHandleidentityagainst"
             class="avatar-uploader"
@@ -744,7 +744,7 @@ export default {
     uploadSuccessHandle1(index, e, fileList) {
       const that = this
       // this.deptBudgetList.cardAddressUrl = e.url
-      getbank({ bankImg: e.url })
+      getbank({ bankImg: e.data.url })
         .toPromise()
         .then((response) => {
           for (
@@ -753,7 +753,7 @@ export default {
             i++
           ) {
             if (i == index) {
-              this.deptBudgetList.driverPayeeInfoList[i].payeeAddressUrl = e.url
+              this.deptBudgetList.driverPayeeInfoList[i].payeeAddressUrl = e.data.url
               this.deptBudgetList.driverPayeeInfoList[i].bankCard =
                 response.bankNo
               this.deptBudgetList.driverPayeeInfoList[i].bankDeposit =
@@ -766,23 +766,23 @@ export default {
     },
     uploadSuccessHandletravel(e) {
       console.log(e.url)
-      this.$set(this.addressUrls, 'travel', e.url)
+      this.$set(this.addressUrls, 'travel', e.data.url)
     },
     uploadSuccessHandledrive(e) {
-      this.$set(this.addressUrls, 'drive', e.url)
+      this.$set(this.addressUrls, 'drive', e.data.url)
     },
     uploadSuccessHandleway(e) {
-      this.$set(this.addressUrls, 'way', e.url)
+      this.$set(this.addressUrls, 'way', e.data.url)
       this.addressUrls.way = e.url
     },
     uploadSuccessHandlequalification(e) {
-      this.$set(this.addressUrls, 'qualification', e.url)
+      this.$set(this.addressUrls, 'qualification', e.data.url)
     },
     uploadSuccessHandleidentityjust(e) {
-      this.$set(this.addressUrls, 'identityjust', e.url)
+      this.$set(this.addressUrls, 'identityjust', e.data.url)
     },
     uploadSuccessHandleidentityagainst(e) {
-      this.$set(this.addressUrls, 'identityagainst', e.url)
+      this.$set(this.addressUrls, 'identityagainst', e.data.url)
     },
     // 关闭 dialog时 处理文件url 初始化upload组件
     handleClose() {

+ 3 - 3
src/views/tranManagement/tranManagementFireFeedback.vue

@@ -109,7 +109,7 @@
             <ws-form-item label="磅单:" span="1" prop="loadPoundImg">
               <template slot-scope="scope">
                 <!-- slot-scope="scope" -->
-                <el-upload action="https://www.zthymaoyi.com/upload/admin" :show-file-list="false" :on-success="
+                <el-upload :action="global.uploadPath" :show-file-list="false" :on-success="
                     (res) => {
                       uploadSuccessHandle1(res, index)
                     }
@@ -684,9 +684,9 @@
         that.$forceUpdate();
         that.freightspace[that.index].imgCount++
         if(that.freightspace[that.index].loadPoundImg){
-             that.freightspace[that.index].loadPoundImg += "," + e.url  
+             that.freightspace[that.index].loadPoundImg += "," + e.data.url  
         }else{
-             that.freightspace[that.index].loadPoundImg += e.url 
+             that.freightspace[that.index].loadPoundImg += e.data.url 
         }
       }
     }

+ 3 - 3
src/views/tranManagement/tranManagementFireReceivingFeedback.vue

@@ -180,7 +180,7 @@
               <!-- slot-scope="scope" -->
               <template>
                 <el-upload
-                  action="https://www.zthymaoyi.com/upload/admin"
+                  :action="global.uploadPath"
                   :show-file-list="false"
                   :on-success="
                     (res) => {
@@ -756,9 +756,9 @@ export default {
         that.freightspace[that.index].imgCount++
         console.log(that.freightspace[that.index].imgCount)
         if( that.freightspace[that.index].unloadPoundImg){
-           that.freightspace[that.index].unloadPoundImg += ',' + e.url
+           that.freightspace[that.index].unloadPoundImg += ',' + e.data.url
         }else{
-          that.freightspace[that.index].unloadPoundImg += e.url
+          that.freightspace[that.index].unloadPoundImg += e.data.url
         }
     },
   },

+ 3 - 3
src/views/tranManagement/tranManagementReceivingloading.vue

@@ -109,7 +109,7 @@
           <div style="font-size: 16px; width: 100%; text-align: right;display:flex;justify-content:end;">
             <!-- <el-upload style="margin-left: 8px;"
           class=""
-          action="https://www.zthymaoyi.com/upload/admin"
+          :action="global.uploadPath"
           :show-file-list="false"
           :on-success="
           (res, file) => {
@@ -262,7 +262,7 @@
               <ws-form-item label="磅单:" span="1" prop="unloadPoundImg">
                 <template>
                   <el-upload
-                    action="https://www.zthymaoyi.com/upload/admin"
+                    :action="global.uploadPath"
                     :show-file-list="false"
                     :on-success="
                       (res) => {
@@ -587,7 +587,7 @@ export default {
       }
     },
     uploadSuccessHandle1(e, index) {
-      this.deptBudgetList.tranCarInfoList[index].unloadPoundImg = e.url
+      this.deptBudgetList.tranCarInfoList[index].unloadPoundImg = e.data.url
     },
     selectwaterContent() {},
     //提交按钮

+ 3 - 3
src/views/tranManagement/tranManagementShippingFeedback.vue

@@ -314,7 +314,7 @@
           <!-- slot-scope="scope" -->
           <template>
             <el-upload
-              action="https://www.zthymaoyi.com/upload/admin"
+              :action="global.uploadPath"
               :show-file-list="false"
               :on-success="
                 (res) => {
@@ -987,9 +987,9 @@ export default {
     uploadSuccessHandle1(e) {
       this.pictureTotal++
       if (this.deptBudgetList.tranCarInfoList[0].loadPoundImg) {
-        this.deptBudgetList.tranCarInfoList[0].loadPoundImg += ',' + e.url
+        this.deptBudgetList.tranCarInfoList[0].loadPoundImg += ',' + e.data.url
       } else {
-        this.deptBudgetList.tranCarInfoList[0].loadPoundImg = e.url
+        this.deptBudgetList.tranCarInfoList[0].loadPoundImg = e.data.url
       }
 
       console.log(this.deptBudgetList.tranCarInfoList, 'duixiang1')

+ 3 - 3
src/views/tranManagement/tranManagementTransporFeedback.vue

@@ -55,7 +55,7 @@
       <div style="font-size: 16px; width: 50%;float: left;text-align: right;display:flex;justify-content:end;">
         <!-- <el-upload style="margin-left: 8px;"
           class=""
-          action="https://www.zthymaoyi.com/upload/admin"
+          :action="global.uploadPath"
           :show-file-list="false"
           :on-success="
           (res, file) => {
@@ -142,7 +142,7 @@
             <ws-form-item label="磅单:" span="1" prop="loadPoundImg">
               <!-- slot-scope="scope" -->
               <template>
-                <el-upload action="https://www.zthymaoyi.com/upload/admin" :show-file-list="false"
+                <el-upload :action="global.uploadPath" :show-file-list="false"
                   :on-success=" (res) => { uploadSuccessHandle1(res,index)}" class="avatar-uploader"
                   accept=".jpg, .jpeg, .png, .gif">
                   <img width="18" height="20" style="
@@ -762,7 +762,7 @@
         }
       },
       uploadSuccessHandle1(e, index) {
-        this.freightspace[index].loadPoundImg = e.url
+        this.freightspace[index].loadPoundImg = e.data.url
       }
     }
   }

+ 1 - 1
src/views/tranManagement/tranManagementUnShippingFeedback.vue

@@ -307,7 +307,7 @@
         <!-- slot-scope="scope" -->
         <template>
           <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="
               (res) => {

+ 1 - 1
src/views/warehouse/warehouseManagementAdd.vue

@@ -81,7 +81,7 @@
     </ws-form>
     <ws-form ref="deptBudgetList" :model="deptBudgetList">
       <div class="small-title" v-show="radio == 1">上传仓库照片</div>
-      <el-upload ref='upload' action="https://www.zthymaoyi.com/upload/admin" :show-file-list="false" :on-success="
+      <el-upload ref='upload' :action="global.uploadPath" :show-file-list="false" :on-success="
           (res, file) => {
             uploadSuccessHandle(res)
           }

+ 2 - 2
src/views/warehouse/warehouseManagementDelivery.vue

@@ -474,7 +474,7 @@
       </div>
       <div class="small-title">上传磅单照片</div>
       <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="
               (res) => {
@@ -758,7 +758,7 @@ export default {
       console.log(e)
     },
     uploadSuccessHandle1(res){
-      this.deptBudgetList.addressUrl=res.url
+      this.deptBudgetList.addressUrl=res.data.url
     },
     //返回按钮
     revert() {

+ 3 - 3
src/views/warehouse/warehouseManagementEdit.vue

@@ -86,7 +86,7 @@
       </ws-form>
       <ws-form ref="deptBudgetList" :model="deptBudgetList">
         <div v-if="warehouseType == 1" class="small-title">上传仓库照片</div>
-        <el-upload action="https://www.zthymaoyi.com/upload/admin" :show-file-list="false" :on-success="
+        <el-upload :action="global.uploadPath" :show-file-list="false" :on-success="
             (res, file) => {
               uploadSuccessHandle(res)
             }
@@ -516,8 +516,8 @@
         })
       },
       uploadSuccessHandle(e) {
-        this.deptBudgetList.addressUrl += e.url + ','
-        this.addressUrls.push(e.url)
+        this.deptBudgetList.addressUrl += e.data.url + ','
+        this.addressUrls.push(e.data.url)
       },
       //提交
       submit() {

+ 1 - 1
src/views/warehouse/warehouseManagementGross.vue

@@ -345,7 +345,7 @@
       </div>
       <!-- <div class="small-title">上传磅单照片</div>
       <el-upload
-        action="https://www.zthymaoyi.com/upload/admin"
+        :action="global.uploadPath"
         :show-file-list="false"
         :on-success="
           (res) => {

+ 1 - 1
src/views/warehouse/warehouseManagementNoWeightIn.vue

@@ -303,7 +303,7 @@
       </div>
       <!-- <div class="small-title">上传磅单照片</div>
        <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="
               (res) => {

+ 1 - 1
src/views/warehouse/warehouseManagementNoWeightOut.vue

@@ -260,7 +260,7 @@
       </div>
       <!-- <div class="small-title">上传磅单照片</div>
       <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="
               (res) => {

+ 2 - 2
src/views/warehouse/warehouseManagementPerfectDelivery.vue

@@ -442,7 +442,7 @@
       </div>
       <div class="small-title">上传磅单照片</div>
       <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="
               (res) => {
@@ -761,7 +761,7 @@ export default {
       }
     },
     uploadSuccessHandle1(res){
-      this.dataList.addressUrl=res.url
+      this.dataList.addressUrl=res.data.url
     },
     //返回按钮
     revert() {

+ 2 - 2
src/views/warehouse/warehouseManagementPerfectput.vue

@@ -544,7 +544,7 @@
       </div>
       <div class="small-title">上传磅单照片</div>
        <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="
               (res) => {
@@ -884,7 +884,7 @@ export default {
       console.log(e)
     },
     uploadSuccessHandle1(res){
-      this.dataList.addressUrl=res.url
+      this.dataList.addressUrl=res.data.url
     },
     pureweight(status){
       console.log(this.dataList)

+ 2 - 2
src/views/warehouse/warehouseManagementPut.vue

@@ -338,7 +338,7 @@
         </div>
       </div>
       <div class="small-title">上传磅单照片</div>
-      <el-upload action="https://www.zthymaoyi.com/upload/admin" :show-file-list="false" :on-success="
+      <el-upload :action="global.uploadPath" :show-file-list="false" :on-success="
           (res) => {
             uploadSuccessHandle1(res)
           }
@@ -600,7 +600,7 @@
         }
       },
       uploadSuccessHandle1(res) {
-        this.deptBudgetList.addressUrl = res.url
+        this.deptBudgetList.addressUrl = res.dat.url
         console.log(this.deptBudgetList.addressUrl)
       },
       dataFilter1(val) {

+ 1 - 1
src/views/warehouse/warehouseManagementTare.vue

@@ -244,7 +244,7 @@
       </div>
       <!-- <div class="small-title">上传磅单照片</div>
       <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="
               (res) => {

+ 17 - 13
src/views/warehousenew/warehouseManagementAdd.vue

@@ -76,22 +76,24 @@
       </ws-info-table>
     </ws-form>
     <ws-form ref="deptBudgetList" :model="deptBudgetList">
-      <div class="small-title" v-show="radio == 1">上传仓库照片</div>
-      <el-upload ref='upload' action="https://www.zthymaoyi.com/upload/admin" :show-file-list="false" :on-success="
+      <div class="small-title" v-show="radio == 1">上传附件</div>
+      <!-- <el-upload ref='upload' action="https://www.zthymaoyi.com/upload/admin" :show-file-list="false" :on-success="
           (res, file) => {
             uploadSuccessHandle(res)
           }
         " class="avatar-uploader" accept=".jpg, .jpeg, .png, .gif">
         <el-button v-show="radio == 1">上传附件</el-button>
-      </el-upload>
-      <div class="addressUrls" v-if="addressUrls != null">
+      </el-upload> -->
+      <ws-upload ref="upload" :comp-id="compId" :appendix-ids="deptBudgetList.addressUrl" :size-limit="size"
+        @onChange="onChange" accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar" />
+      <!-- <div class="addressUrls" v-if="addressUrls != null">
         <div class="addressUrls-item">
           <div v-for="(item, index) in addressUrls" class="addressUrl" :key="index">
             <div @click="close(index)" class="iconfont icon-guanbi"></div>
             <img v-if="addressUrls != null" width="100" height="100" :src="item" alt="" />
           </div>
         </div>
-      </div>
+      </div> -->
       <div style="margin-bottom: 5px" class="small-title">仓库定位</div>
       <!-- <map-drag  @marker="marker" @selectedAddress="selectedAddress" @provinceChange='provinceChange' @pickedAddress='getInfo'></map-drag> -->
       <map-drag @marker="marker" ref="childMap" :isShowaddress='false' v-on:addressListen='getAddress' v-on:pickedAddress='searchAddress' ></map-drag>
@@ -313,15 +315,17 @@
         })
       },
       // 上传附件
-      uploadSuccessHandle(e) {
-        this.deptBudgetList.addressUrl += e.url + ','
-        this.addressUrls.push(e.url)
-      },
-      onChange(files) {
-        this.fileNum = files
-        this.$refs.upload.handleSaveBill().then((res) => {})
+      onChange() {
+        this.$refs.upload
+          .handleSaveBill()
+          .then(async response => {
+            this.deptBudgetList.addressUrl = response
+          })
+          .catch(res => {
+            EventBus.$emit('error', (JSON.parse(res) || {}).message)
+            this.$refs.upload.clearFiles()
+          })
       },
-
       submit() {
         
         if (this.radio == 1) {

+ 2 - 2
src/views/warehousenew/warehouseManagementDelivery.vue

@@ -472,7 +472,7 @@
       </div>
       <div class="small-title">上传磅单照片</div>
       <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="
               (res) => {
@@ -748,7 +748,7 @@ export default {
       console.log(e)
     },
     uploadSuccessHandle1(res){
-      this.deptBudgetList.addressUrl=res.url
+      this.deptBudgetList.addressUrl=res.data.url
     },
     //返回按钮
     revert() {

+ 13 - 27
src/views/warehousenew/warehouseManagementEdit.vue

@@ -89,28 +89,9 @@
         </div>
       </ws-form>
       <ws-form ref="deptBudgetList" :model="deptBudgetList">
-        <div v-if="warehouseType == 1" class="small-title">上传仓库照片</div>
-        <el-upload action="https://www.zthymaoyi.com/upload/admin" :show-file-list="false" :on-success="
-            (res, file) => {
-              uploadSuccessHandle(res)
-            }
-          " :on-remove="
-            (value) => {
-              handleRemove(value)
-            }
-          " class="avatar-uploader" accept=".jpg, .jpeg, .png, .gif">
-          <el-button v-if="warehouseType == 1">上传附件</el-button>
-        </el-upload>
-        <div class="addressUrls" v-if="addressUrls != null">
-            <div v-for="(item , index) in addressUrls" class="addressUrl" :key="index">
-              <div @click='close(index)' class="iconfont icon-guanbi"></div>
-              <el-image  v-if="addressUrls != null"
-                style="width: 100px; height: 100px"
-                :src="item" 
-                :preview-src-list="addressUrls">
-              </el-image>
-          </div>
-        </div>
+        <div v-if="warehouseType == 1" class="small-title">上传附件</div>
+        <ws-upload ref="upload" :comp-id="compId" :appendix-ids="deptBudgetList.addressUrl" :size-limit="size"
+        @onChange="onChange" accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar" />
         <div class="small-title">仓库定位</div>
         <map-drag @marker="marker" :isShowaddress='false' v-on:addressListen='getAddress'
           v-on:pickedAddress='searchAddress'></map-drag>
@@ -364,11 +345,16 @@
         this.fileList = files
         console.log('uploadSuccess ', data, files, url)
       },
-      onChange(files) {
-        this.fileNum = files
-        this.$refs.upload.handleSaveBill().then((res) => {
-          console.log(files)
-        })
+      onChange() {
+        this.$refs.upload
+          .handleSaveBill()
+          .then(async response => {
+            this.deptBudgetList.addressUrl = response
+          })
+          .catch(res => {
+            EventBus.$emit('error', (JSON.parse(res) || {}).message)
+            this.$refs.upload.clearFiles()
+          })
       },
       handleClose() {
         this.accessoryTFs = false

+ 1 - 1
src/views/warehousenew/warehouseManagementGross.vue

@@ -669,7 +669,7 @@
       </div>
       <!-- <div class="small-title">上传磅单照片</div>
       <el-upload
-        action="https://www.zthymaoyi.com/upload/admin"
+        :action="global.uploadPath"
         :show-file-list="false"
         :on-success="
           (res) => {

+ 6 - 4
src/views/warehousenew/warehouseManagementLook.vue

@@ -140,18 +140,20 @@
             </ws-form-item>
           </ws-info-table>
         </div>
-        <div class="small-title" v-show="warehouseType == '1'">仓库照片</div>
+        <div class="small-title" v-show="warehouseType == '1'">附件</div>
         <div>
           <div class="addressUrls">
-          <div v-for="(items, index) in addressUrls" class="addressUrl">
+            <ws-upload ref="upload" :comp-id="compId" :appendix-ids="deptBudgetList.addressUrl" :editable="false"
+        accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar" />
+          <!-- <div v-for="(items, index) in addressUrls" class="addressUrl">
             <img
               v-show="addressUrls.length > 0"
               width="100"
               height="100"
               :src="items"
               alt=""
-            />
-          </div>
+            /> -->
+          <!-- </div> -->
         </div>
         
         </div>

+ 1 - 1
src/views/warehousenew/warehouseManagementNoWeightIn.vue

@@ -296,7 +296,7 @@
       </div>
       <!-- <div class="small-title">上传磅单照片</div>
        <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="
               (res) => {

+ 1 - 1
src/views/warehousenew/warehouseManagementNoWeightOut.vue

@@ -253,7 +253,7 @@
       </div>
       <!-- <div class="small-title">上传磅单照片</div>
       <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="
               (res) => {

+ 2 - 2
src/views/warehousenew/warehouseManagementPerfectDelivery.vue

@@ -440,7 +440,7 @@
       </div>
       <div class="small-title">上传磅单照片</div>
       <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="
               (res) => {
@@ -751,7 +751,7 @@ export default {
       }
     },
     uploadSuccessHandle1(res){
-      this.dataList.addressUrl=res.url
+      this.dataList.addressUrl=res.data.url
     },
     //返回按钮
     revert() {

+ 2 - 2
src/views/warehousenew/warehouseManagementPerfectput.vue

@@ -544,7 +544,7 @@
       </div>
       <div class="small-title">上传磅单照片</div>
        <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="
               (res) => {
@@ -884,7 +884,7 @@ export default {
       console.log(e)
     },
     uploadSuccessHandle1(res){
-      this.dataList.addressUrl=res.url
+      this.dataList.addressUrl=res.data.url
     },
     pureweight(status){
       console.log(this.dataList)

+ 2 - 2
src/views/warehousenew/warehouseManagementPut.vue

@@ -332,7 +332,7 @@
         </div>
       </div>
       <div class="small-title">上传磅单照片</div>
-      <el-upload action="https://www.zthymaoyi.com/upload/admin" :show-file-list="false" :on-success="
+      <el-upload :action="global.uploadPath" :show-file-list="false" :on-success="
           (res) => {
             uploadSuccessHandle1(res)
           }
@@ -586,7 +586,7 @@
         }
       },
       uploadSuccessHandle1(res) {
-        this.deptBudgetList.addressUrl = res.url
+        this.deptBudgetList.addressUrl = res.data.url
         console.log(this.deptBudgetList.addressUrl)
       },
       dataFilter1(val) {

+ 1 - 1
src/views/warehousenew/warehouseManagementTare.vue

@@ -238,7 +238,7 @@
       </div>
       <!-- <div class="small-title">上传磅单照片</div>
       <el-upload
-            action="https://www.zthymaoyi.com/upload/admin"
+            :action="global.uploadPath"
             :show-file-list="false"
             :on-success="
               (res) => {

+ 7 - 6
src/views/warehousenew/warehousingOrder.vue

@@ -125,7 +125,7 @@
         <el-table-column prop="amountNotPayable" width="80" class="table_td" label="未付(元)"></el-table-column>
         <el-table-column prop="amountMoney" width="80" class="table_td" label="费用(元)">
           <template scope="scope">
-            <span @click='costclick(scope.row)'>{{scope.row.amountMoney}}</span>
+            <span style='color:#66b1ff;' @click='costclick(scope.row)'>{{scope.row.amountMoney}}</span>
           </template>
         </el-table-column>
         <el-table-column prop="avgCost"  width="90" class="table_td" label="平均成本"></el-table-column>
@@ -165,7 +165,7 @@
               <el-input disabled v-model="form.name"></el-input>
             </el-form-item>
             <el-form-item label="附件">
-              <el-upload ref='uploadfiles' :file-list='dataList' action="https://www.zthymaoyi.com/upload/admin" list-type="picture-card"
+              <el-upload ref='uploadfiles' :file-list='dataList' :action="global.uploadPath" list-type="picture-card"
             :on-success="handlefujian" :on-remove="handleRemove" class="photo2"  accept="image/jpg,image/jpeg,image/png">
               <i class="el-icon-plus"></i>
               </el-upload>
@@ -413,13 +413,13 @@
           <div class="audit_left">
             <span class="audit_name">{{item.costNo}}</span>
           </div>
-          <div class='audit_date'><span>{{item.expenseDate}}</span></div>
+          <div class='audit_date'><span>{{item.createDate}}</span></div>
         </div>
         <div class="audit_item">
           <div class="audit_left">
-            <span class="audit_name">{{item.expensesName}}</span>
+            <span class="audit_name">{{item.expenseName}}</span>
           </div>
-          <div class='audit_date'><span>{{item.expensesPrice}}</span></div>
+          <div class='audit_date'><span>{{item.distributionMoney}}</span></div>
         </div>
       </div>
     </el-dialog>
@@ -1009,6 +1009,7 @@ import { findLastIndexOfIterate } from 'xe-utils/methods'
       },
       costclick(row){
         this.costlist=row.expenseAllocationInfoList
+        this.dialogVisible1=true
         // getexenseinfo({id:row.id}).toPromise()
         //   .then((response) => {
         //     this.costlist=response
@@ -1031,7 +1032,7 @@ import { findLastIndexOfIterate } from 'xe-utils/methods'
       },
       handlefujian(file) {
         // console.log(file)
-        this.paymentScreenshot.push(file.url)
+        this.paymentScreenshot.push(file.data.url)
         // this.dialogVisible = true
       },
       handleRemove(file) {