瀏覽代碼

前端gjy

gjy 3 年之前
父節點
當前提交
c3f194f06d
共有 50 個文件被更改,包括 18975 次插入982 次删除
  1. 16 0
      src/api/V2/contract/index.js
  2. 5 1
      src/api/V2/purchasingManagement/index.js
  3. 0 0
      src/api/V2/salesManagement/index.js
  4. 26 0
      src/api/V2/statisticalReport/index.js
  5. 62 36
      src/lang/zh.js
  6. 20 0
      src/model/contarct/index.js
  7. 8 2
      src/model/purchasingManagement/index.js
  8. 0 0
      src/model/salesManagement/index.js
  9. 7 0
      src/model/statisticalReport/index.js
  10. 153 16
      src/views/contractManagement/component/routers/route.js
  11. 932 0
      src/views/contractManagement/futuresPurchaseContract.vue
  12. 1793 0
      src/views/contractManagement/futuresPurchaseContractAdd.vue
  13. 1811 0
      src/views/contractManagement/futuresPurchaseContractEdit.vue
  14. 667 0
      src/views/contractManagement/futuresPurchaseContractExamine.vue
  15. 933 0
      src/views/contractManagement/futuresSalesContract.vue
  16. 1772 0
      src/views/contractManagement/futuresSalesContractAdd.vue
  17. 1772 0
      src/views/contractManagement/futuresSalesContractEdit.vue
  18. 664 0
      src/views/contractManagement/futuresSalesContractExamine.vue
  19. 201 181
      src/views/contractManagement/priceConfirmationSheet.vue
  20. 62 99
      src/views/contractManagement/priceConfirmationSheetAdd.vue
  21. 254 250
      src/views/contractManagement/priceConfirmationSheetEdit.vue
  22. 9 8
      src/views/contractManagement/purchaseContract.vue
  23. 0 3
      src/views/contractManagement/purchaseContractAdd.vue
  24. 1 1
      src/views/contractManagement/purchaseContractEdit.vue
  25. 0 7
      src/views/contractManagement/purchaseContractExamine.vue
  26. 9 6
      src/views/contractManagement/salesContract.vue
  27. 1 1
      src/views/contractManagement/salesContractEdit.vue
  28. 625 0
      src/views/financialManagement/collectionManagementList.vue
  29. 34 0
      src/views/financialManagement/component/routers/route.js
  30. 3 18
      src/views/platformaudit/driverreview.vue
  31. 4 1
      src/views/platformaudit/grainmerchantreview.vue
  32. 39 3
      src/views/platformaudit/transactioninformationreview.vue
  33. 9 5
      src/views/purchasingManagement/procurementPlanAdd.vue
  34. 35 14
      src/views/purchasingManagement/procurementPlanEdit.vue
  35. 306 109
      src/views/purchasingManagement/procurementPlanList.vue
  36. 2 35
      src/views/purchasingManagement/procurementPlanLook.vue
  37. 104 36
      src/views/purchasingManagement/purchaseOrderList.vue
  38. 97 0
      src/views/salesManagement/component/routers/route.js
  39. 751 0
      src/views/salesManagement/salesPlanAdd.vue
  40. 756 0
      src/views/salesManagement/salesPlanEdit.vue
  41. 834 0
      src/views/salesManagement/salesPlanList.vue
  42. 684 0
      src/views/salesManagement/salesPlanLook.vue
  43. 1525 0
      src/views/salesManagement/salesPlanOrderList.vue
  44. 32 2
      src/views/statisticalReport/component/routers/route.js
  45. 45 68
      src/views/statisticalReport/purchaseClosingCashierList.vue
  46. 139 76
      src/views/statisticalReport/purchaseReceiptStatisticsList.vue
  47. 819 0
      src/views/statisticalReport/salesClosingCashierList.vue
  48. 952 0
      src/views/statisticalReport/salesDeliveryReportList.vue
  49. 1 3
      src/views/warehouse/warehouseManagementPut.vue
  50. 1 1
      vue.config.js

+ 16 - 0
src/api/V2/contract/index.js

@@ -25,4 +25,20 @@ export const API_POST_CONTRACT_DELETE = '/contractManagementInfo/deleteInfo '
 export const API_POST_EDITINFO = '/contractManagementInfo/editInfo'
 // 获取负责人
 export const API_GET_STAFF = '/staff/query/getStaffListByCompId'
+//运输任务-添加-根据仓库类型选库名
+export const API_GET_TRAN_TASK_WAREHOUSE = '/tranTaskInfo/selectWarehouseList'
 
+//查看点价确认单
+export const API_GET_SELECTCONFIRMATIONSHEET = '/priceConfirmationSheet/selectConfirmationSheet'
+
+//编辑点价确认单
+export const API_POST_CONFIRMATIONSHEET_EDIT = '/priceConfirmationSheet/api/editPriceConfirmationSheet'
+
+//创建点价确认单
+export const API_POST_CONFIRMATIONSHEET_ADD = '/priceConfirmationSheet/api/addPriceConfirmationSheet'
+
+//删除点价确认单
+export const API_POST_CONFIRMATIONSHEET_DELETE = '/priceConfirmationSheet/api/deletePriceConfirmationSheet'
+
+//编辑时查看点价确认单
+export const API_GET_GETINFO = '/priceConfirmationSheet/getInfo'

+ 5 - 1
src/api/V2/purchasingManagement/index.js

@@ -19,4 +19,8 @@ export const API_POST_ADUIT_PURCHASE = '/purchaseOrder/api/editPurchaseOrder'
 // 采购订单合同
 export const API_GET_ADUIT_CONTRACTNO = '/warehouseBaseInfo/selectContractNoList'
 // 采购订单flag0 补充定金 1解冻定金 2完成 3更改基差
-export const API_POST_EDITSTATUS = '/purchaseOrder/api/editStatus'
+export const API_POST_EDITSTATUS = '/purchaseOrder/api/editStatus'
+//采购状态,基差,单价修改 
+export const API_POST_PROCUREMENT_EDITSTATUS = '/procurementPlanInfo/api/editStatus'
+// 采购订单删除
+export const API_POST_DELETEPURCHASE = '/purchaseOrder/api/deletePurchaseOrder'

+ 0 - 0
src/api/V2/salesManagement/index.js


+ 26 - 0
src/api/V2/statisticalReport/index.js

@@ -0,0 +1,26 @@
+//采购入库报表
+export const API_GET_PURCHRECEIPT = '/purchaseReceiptReport/selectPurchaseOrder'
+//采购订单成交
+export const API_POST_PURCHASING_LIST = '/purchaseOrder/api/deal'
+//采购订单平仓
+export const API_POST_PURCHASING_CLOSEPOSITION = '/purchaseOrder/api/closePosition'
+//采购计划列表
+export const API_GET_PROCUREMENT_LIST = '/procurementPlanInfo/selectProcurementPlanInfo'
+//采购计划查看
+export const API_GET_PROCUREMENT_LOOK = '/procurementPlanInfo/getProcurementPlan'
+//采购计划添加
+export const API_POST_PROCUREMENT_ADD = '/procurementPlanInfo/api/insertProcurementPlanInfo'
+//采购计划编辑
+export const API_POST_PROCUREMENT_EDIT = '/procurementPlanInfo/api/editProcurementPlan'
+//采购计划删除
+export const API_POST_PROCUREMENT_DELETE = '/procurementPlanInfo/api/deleteProcurementPlan'
+// 采购订单审核
+export const API_POST_ADUIT_PURCHASE = '/purchaseOrder/api/editPurchaseOrder'
+// 采购订单合同
+export const API_GET_ADUIT_CONTRACTNO = '/warehouseBaseInfo/selectContractNoList'
+// 采购订单flag0 补充定金 1解冻定金 2完成 3更改基差
+export const API_POST_EDITSTATUS = '/purchaseOrder/api/editStatus'
+//采购状态,基差,单价修改 
+export const API_POST_PROCUREMENT_EDITSTATUS = '/procurementPlanInfo/api/editStatus'
+// 采购订单删除
+export const API_POST_DELETEPURCHASE = '/purchaseOrder/api/deletePurchaseOrder'

+ 62 - 36
src/lang/zh.js

@@ -480,17 +480,26 @@
     protectionInventory: '劳保库存',
     // 合同管理
     contractManagement: '合同管理',
-    purchaseContract: '采购合同',
-    salesContract: '销售合同',
-    salesContractEdit: '销售合同编辑',
-    salesContractExamine: '销售合同查看',
-    purchaseContractExamine: '采购合同查看',
-    salesContractAdd: '销售合同添加',
-    purchaseContractAdd: '采购合同添加',
-    purchaseContractEdit: '采购合同编辑',
+    purchaseContract: '现货采购合同',
+    purchaseContractAdd: '现货采购合同  /  添加',
+    purchaseContractEdit: '现货采购合同  /  编辑',
+    purchaseContractExamine: '现货采购合同  /  查看',
+    salesContract: '现货销售合同',
+    salesContractEdit: '现货销售合同  /  编辑',
+    salesContractExamine: '现货销售合同  /  查看',
+    salesContractAdd: '现货销售合同  /  添加',
+    futuresPurchaseContract: '期货采购合同',
+    futuresPurchaseContractAdd: '期货采购合同  /  添加',
+    futuresPurchaseContractEdit: '期货采购合同  /  编辑',
+    futuresPurchaseContractExamine: '期货采购合同  /  查看',
     priceConfirmationSheet: '点价确认单',
-    priceConfirmationSheetAdd:'创建点价确认单',
-    priceConfirmationSheetEdit:'编辑点价确认单',   
+    priceConfirmationSheetAdd: '创建点价确认单',
+    priceConfirmationSheetEdit: '编辑点价确认单',
+    futuresSalesContract: '期货销售合同',
+    futuresSalesContractAdd: '期货销售合同  /  添加',
+    futuresSalesContractEdit: '期货销售合同  /  编辑',
+    futuresSalesContractExamine: '期货销售合同  /  查看',
+
     //仓库管理
     warehouseManagementList: '仓库管理',
     warehouseManagementAdd: '仓库管理添加',
@@ -504,24 +513,35 @@
     warehouseManagementRecord: '记录',
     warehouseManagementNoComplete: '待完成',
     warehouseManagementPerfectput: '编辑',
-    warehouseManagementPutOut:'任务',
-    warehouseManagementPutOutLook:'查看',
+    warehouseManagementPutOut: '任务',
+    warehouseManagementPutOutLook: '查看',
     //客户管理
-    customerList:'客户管理',
+    customerList: '客户管理',
     //采购管理
-    purchasingManagement:'采购业务管理',
-    procurementPlanList:'采购计划',
-    procurementPlanAdd:'采购计划添加',
-    procurementPlanEdit:'采购计划编辑',
-    procurementPlanLook:'采购计划查看',
-    purchaseOrderList:'采购订单',
+    purchasingManagement: '采购业务管理',
+    procurementPlanList: '采购计划',
+    procurementPlanAdd: '采购计划添加',
+    procurementPlanEdit: '采购计划编辑',
+    procurementPlanLook: '采购计划查看',
+    purchaseOrderList: '采购订单',
+
+    //销售管理
+    salesManagement: '销售业务管理',
+    salesPlanList: '销售计划',
+    salesPlanAdd: '销售计划添加',
+    salesPlanEdit: '销售计划编辑',
+    salesPlanLook: '销售计划查看',
+    salesOrderList: '销售订单',
     //统计报表
     statisticalReport:'统计报表',
     purchaseReceiptStatisticsList:'采购入库报表',
     purchaseClosingCashierList:'采购平仓报表',
-    
+    salesDeliveryReportList:'销售出库报表',
+    salesClosingCashierList:'销售平仓报表',
+    // 财务管理
+    financialManagement:'财务管理',
+    collectionManagementList:'收款管理',
 
-    
     //运输管理
     tranManagement: '运输管理',
     tranManagementDriver: '司机管理',
@@ -533,14 +553,14 @@
     // 任务管理
     taskManagement: '任务管理',
     moveWarehouseTask: '移库任务',
-    moveWarehouseTaskLook : '移库任务查看',
+    moveWarehouseTaskLook: '移库任务查看',
     tranManagementLook: '运输任务查看',
     tranManagementTransportAdd: '运输任务添加',
     tranManagementTransportEdit: '运输任务编辑',
     tranManagementWarehouseInOutTask: '出入库任务',
     tranManagementWarehouseInOutTaskAdd: '出入库任务添加',
-    tranManagementWarehouseInOutTaskEdit:'编辑',
-    tranManagementWarehouseInOutTaskaudit:'审核',
+    tranManagementWarehouseInOutTaskEdit: '编辑',
+    tranManagementWarehouseInOutTaskaudit: '审核',
     tranManagementVehicle: '汽运调度',
     tranManagementVehicleDispatching: '汽车调度',
     tranManagementVehicleLook: '查看派车详情',
@@ -563,7 +583,7 @@
     platformaudit: '平台审核',
     grainmerchantreview: '粮商审核',
     driverreview: '司机审核',
-    transactioninformationreview: '交易信息审核', 
+    transactioninformationreview: '交易信息审核',
 
     // 采购模块
     procurement: '采购管理',
@@ -4758,23 +4778,29 @@
     warehouseManagementNoComplete: '待完成',
     warehouseManagementPerfectput: '编辑',
     warehouseManagementPerfectDelivery: '编辑',
-    warehouseManagementPutOut:'任务',
-    warehouseManagementPutOutLook:'查看',
+    warehouseManagementPutOut: '任务',
+    warehouseManagementPutOutLook: '查看',
 
   },
   //采购计划管理
-  purchasingManagement:{
-    procurementPlanList:'采购计划',
-    procurementPlanAdd:'采购计划添加',
-    procurementPlanEdit:'采购计划编辑',
-    procurementPlanLook:'采购计划查看',
-    purchaseOrderList:'采购订单',
+  purchasingManagement: {
+    procurementPlanList: '采购计划',
+    procurementPlanAdd: '采购计划添加',
+    procurementPlanEdit: '采购计划编辑',
+    procurementPlanLook: '采购计划查看',
+    purchaseOrderList: '采购订单',
   },
   //统计管理
+
   statisticalReport:{
     purchaseReceiptStatisticsList:'采购入库报表',
     purchaseClosingCashierList:'采购平仓报表',
-
+    salesDeliveryReportList:'销售出库报表',
+    salesClosingCashierList:'销售平仓报表',
+   
+  },
+  financialManagement:{
+    collectionManagementList:'收款管理',
   },
   //运输管理
   tranManagement: {
@@ -4818,8 +4844,8 @@
   },
   // 任务管理
   taskManagement: '任务管理',
-  tranManagementWarehouseInOutTaskEdit:'编辑',
-  tranManagementWarehouseInOutTaskaudit:'审核',
+  tranManagementWarehouseInOutTaskEdit: '编辑',
+  tranManagementWarehouseInOutTaskaudit: '审核',
   // moveWarehouseTask :'移库任务',
   // 年度培训
   annualTraining: {

+ 20 - 0
src/model/contarct/index.js

@@ -15,6 +15,12 @@ import {
     API_GET_CONTRACT_MANAGEMENTINFO,
     API_POST_EDITINFO,
     API_POST_CONTRACT_DELETE,
+    API_GET_TRAN_TASK_WAREHOUSE,
+    API_GET_SELECTCONFIRMATIONSHEET,
+    API_POST_CONFIRMATIONSHEET_EDIT,
+    API_POST_CONFIRMATIONSHEET_ADD,
+    API_GET_GETINFO,
+    API_POST_CONFIRMATIONSHEET_DELETE,
     API_GET_STAFF
 } from '@/api/V2/contract'
 // 列表
@@ -42,6 +48,20 @@ export const deletecontract = appRx.post(API_POST_CONTRACT_DELETE, errorCatcher,
 export const editInfo = appRx.post(API_POST_EDITINFO, errorCatcher, errorHandle, filter)
 //获取负责人
 export const getstaff = appRx.get(API_GET_STAFF, errorCatcher, errorHandle, filter)
+//运输任务-添加-根据仓库类型选库名
+export const getwarehousename = appRx.get(API_GET_TRAN_TASK_WAREHOUSE, errorCatcher, errorHandle, filter)
 
+//查看点价确认单
+export const selectConfirmationSheet = appRx.get(API_GET_SELECTCONFIRMATIONSHEET, errorCatcher, errorHandle, filter)
 
+//编辑点价确认单
+export const editPriceConfirmationSheet = appRx.post(API_POST_CONFIRMATIONSHEET_EDIT, errorCatcher, errorHandle, filter)
 
+//创建点价确认单
+export const addPriceConfirmationSheet = appRx.post(API_POST_CONFIRMATIONSHEET_ADD, errorCatcher, errorHandle, filter)
+
+//删除点价确认单
+export const deletePriceConfirmationSheet = appRx.post(API_POST_CONFIRMATIONSHEET_DELETE, errorCatcher, errorHandle, filter)
+
+//编辑时查看点价确认单
+export const getInfo = appRx.get(API_GET_GETINFO, errorCatcher, errorHandle, filter)

+ 8 - 2
src/model/purchasingManagement/index.js

@@ -11,7 +11,9 @@ import {
     API_POST_PROCUREMENT_DELETE,
     API_POST_ADUIT_PURCHASE,
     API_GET_ADUIT_CONTRACTNO,
-    API_POST_EDITSTATUS
+    API_POST_EDITSTATUS,
+    API_POST_PROCUREMENT_EDITSTATUS,
+    API_POST_DELETEPURCHASE
 } from '@/api/V2/purchasingManagement'
 // import { API_GET_PROCUREMENT_LOOK } from '../../api/V2/purchasingManagement'
 //采购详情列表
@@ -35,4 +37,8 @@ export const aduitpurchase = appRx.post(API_POST_ADUIT_PURCHASE, errorCatcher,er
 // 采购订单合同编号
 export const aduitcontractno = appRx.get(API_GET_ADUIT_CONTRACTNO, errorCatcher,errorHandle,filter)
 // 采购订单flag0 补充定金 1解冻定金 2完成 3更改基差
-export const editStatus = appRx.post(API_POST_EDITSTATUS, errorCatcher,errorHandle,filter)
+export const editStatus = appRx.post(API_POST_EDITSTATUS, errorCatcher,errorHandle,filter)
+//采购状态,基差,单价修改
+export const procurementEditOther = appRx.post(API_POST_PROCUREMENT_EDITSTATUS, errorCatcher,errorHandle,filter)
+//采购订单删除
+export const deletepurchase = appRx.post(API_POST_DELETEPURCHASE, errorCatcher,errorHandle,filter)

+ 0 - 0
src/model/salesManagement/index.js


+ 7 - 0
src/model/statisticalReport/index.js

@@ -0,0 +1,7 @@
+import { errorCatcher, errorHandle, filter } from 'base-core-lib'
+import { appRx } from '../defalutConfig/indexRx'
+import {
+    API_GET_PURCHRECEIPT
+} from '@/api/V2/statisticalReport'
+//采购入库报表
+export const getpurchreceipt = appRx.get(API_GET_PURCHRECEIPT, errorCatcher, errorHandle, filter)

+ 153 - 16
src/views/contractManagement/component/routers/route.js

@@ -12,21 +12,7 @@ const contractManagementRouter = {
     icon: '-hetongguanli'
   },
   children: [
-    {
-      path: 'salesContract',
-      component: () =>
-        import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/salesContract'),
-      name: 'salesContract',
-      meta: {
-        title: 'salesContract',
-        shortcutEntrance: 'contractManagement',
-        module: 'contractManagement.salesContract',
-        permissicon: [],
-        keepAlive: true
-        // module: 'procurement.sparepart.applDetail'
-      }
-    },
-    // 采购合同
+    // 现货采购合同
     {
       path: 'buyContract',
       component: () =>
@@ -40,6 +26,7 @@ const contractManagementRouter = {
         keepAlive: true
       }
     },
+    //现货采购合同查看
     {
       path: 'purchaseContractExamine',
       component: () =>
@@ -55,6 +42,7 @@ const contractManagementRouter = {
       },
       hidden: true
     },
+    //现货采购合同编辑
     {
       path: 'purchaseContractEdit',
       component: () =>
@@ -70,6 +58,7 @@ const contractManagementRouter = {
       },
       hidden: true
     },
+    //现货采购合同添加
     {
       path: 'purchaseContractAdd',
       component: () =>
@@ -85,6 +74,86 @@ const contractManagementRouter = {
       },
       hidden: true
     },
+
+    // 期货采购合同
+    {
+      path: 'futuresPurchaseContract',
+      component: () =>
+        import(/* webpackChunkName: "sparepartList" */ '@/views/contractManagement/futuresPurchaseContract'),
+      name: 'futuresPurchaseContract',
+      meta: {
+        title: 'futuresPurchaseContract',
+        shortcutEntrance: 'contractManagement',
+        module: 'contractManagement.buyContract',
+        permissicon: [],
+        keepAlive: true
+      }
+    },
+    //期货采购合同查看
+    {
+      path: 'futuresPurchaseContractExamine',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/futuresPurchaseContractExamine'),
+      name: 'futuresPurchaseContractExamine',
+      meta: {
+        title: 'futuresPurchaseContractExamine',
+        shortcutEntrance: 'contractManagement',
+        module: 'contractManagement.buyContract.buyContractInfo.view',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
+    //期货采购合同编辑
+    {
+      path: 'futuresPurchaseContractEdit',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/futuresPurchaseContractEdit'),
+      name: 'futuresPurchaseContractEdit',
+      meta: {
+        title: 'futuresPurchaseContractEdit',
+        shortcutEntrance: 'contractManagement',
+        module: 'contractManagement.buyContract.buyContractInfo.edit',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
+    //期货采购合同添加
+    {
+      path: 'futuresPurchaseContractAdd',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/futuresPurchaseContractAdd'),
+      name: 'futuresPurchaseContractAdd',
+      meta: {
+        title: 'futuresPurchaseContractAdd',
+        shortcutEntrance: 'contractManagement',
+        module: 'contractManagement.buyContract.buyContractInfo.add',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
+
+    //现货销售合同
+    {
+      path: 'salesContract',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/salesContract'),
+      name: 'salesContract',
+      meta: {
+        title: 'salesContract',
+        shortcutEntrance: 'contractManagement',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      }
+    },
+    //现货销售合同查看
     {
       path: 'salesContractExamine',
       component: () =>
@@ -100,6 +169,7 @@ const contractManagementRouter = {
       },
       hidden: true
     },
+    //现货销售合同编辑
     {
       path: 'salesContractEdit',
       component: () =>
@@ -115,6 +185,7 @@ const contractManagementRouter = {
       },
       hidden: true
     },
+    //现货销售合同添加
     {
       path: 'salesContractAdd',
       component: () =>
@@ -130,6 +201,71 @@ const contractManagementRouter = {
       },
       hidden: true
     },
+
+    //期货销售合同
+    {
+      path: 'futuresSalesContract',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/futuresSalesContract'),
+      name: 'futuresSalesContract',
+      meta: {
+        title: 'futuresSalesContract',
+        shortcutEntrance: 'contractManagement',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      }
+    },
+    //期货销售合同查看
+    {
+      path: 'futuresSalesContractExamine',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/futuresSalesContractExamine'),
+      name: 'futuresSalesContractExamine',
+      meta: {
+        title: 'futuresSalesContractExamine',
+        shortcutEntrance: 'contractManagement',
+        module: 'contractManagement.salesContract.salesContractInfo.view',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
+    //期货销售合同编辑
+    {
+      path: 'futuresSalesContractEdit',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/futuresSalesContractEdit'),
+      name: 'futuresSalesContractEdit',
+      meta: {
+        title: 'futuresSalesContractEdit',
+        shortcutEntrance: 'contractManagement',
+        module: 'contractManagement.salesContract.salesContractInfo.edit',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
+    //期货销售合同添加
+    {
+      path: 'futuresSalesContractAdd',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/futuresSalesContractAdd'),
+      name: 'futuresSalesContractAdd',
+      meta: {
+        title: 'futuresSalesContractAdd',
+        shortcutEntrance: 'contractManagement',
+        module: 'contractManagement.salesContract.salesContractInfo.add',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
+
     //点价确认单
     {
       path: 'priceConfirmationSheet',
@@ -143,7 +279,8 @@ const contractManagementRouter = {
         permissicon: [],
         keepAlive: true
         // module: 'procurement.sparepart.applDetail'
-      }
+      },
+      hidden: true
     },
     //创建点价确认单
     {

+ 932 - 0
src/views/contractManagement/futuresPurchaseContract.vue

@@ -0,0 +1,932 @@
+<!--期货采购合同-->
+<template>
+  <div>
+    <BaseHeaderLayout :leftSpan="8">
+      <template slot="left">
+        <ws-button
+          type="primary"
+          @click="handleAdd()"
+          v-hasPermission="`contractManagement.buyContract.buyContractInfo.add`"
+          ><img
+            width="13"
+            height="13"
+            style="
+              vertical-align: text-top;
+              position: relative;
+              top: 2px;
+              left: -4px;
+            "
+            src="../../../public/img/header-add.png"
+            alt=""
+          />添加</ws-button
+        >
+        <ws-button
+          @click="exportlist()"
+          v-hasPermission="
+            `contractManagement.buyContract.buyContractInfo.view`
+          "
+          >导出</ws-button
+        >
+      </template>
+      <template slot="right">
+        <span style="width: 142px; display: inline-block; color: #8890b1"
+          >状态:</span
+        >
+        <ws-select
+          v-model="searchTypeText"
+          placeholder=""
+          class="typeselect"
+          @change="selecttaskType"
+          :value="searchType"
+        >
+          <ws-option
+            v-for="item in taskTypeList"
+            :key="item.value"
+            :label="item.value"
+            :value="item.value"
+            style="color: #8890b1"
+          />
+        </ws-select>
+
+        <el-date-picker
+          v-model="value2"
+          type="daterange"
+          align="right"
+          unlink-panels
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          :picker-options="pickerOptions"
+        >
+        </el-date-picker>
+        <ws-input
+          v-model="searchKeyWord"
+          placeholder="可按照合同编号、买方名称、卖方名称进行查找"
+          clearable
+          maxlength="500"
+          type="input"
+          class="findValue"
+        ></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>
+    <el-table
+      class="wenzi"
+      :data="contractList.records"
+      style="width: 100%; margin-top: 10px"
+      height="780"
+    >
+      <el-table-column type="index" label="序号">
+        <template scope="scope">
+          <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+          <span v-else>{{ scope.$index + 1 }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="contractNo" label="合同编号" width="80">
+      </el-table-column>
+      <el-table-column prop="goodsName" label="货名" width="80">
+      </el-table-column>
+      <el-table-column prop="weight" label="重量(吨)"> </el-table-column>
+      <el-table-column prop="pointPrice" label="暂定点价(元/吨)">
+      </el-table-column>
+      <el-table-column prop="basisPrice" label="基差(元/吨)"> </el-table-column>
+      <el-table-column prop="buyer" label="买方"> </el-table-column>
+      <el-table-column prop="seller" label="卖方"> </el-table-column>
+      <el-table-column prop="status" label="状态">
+        <template slot-scope="scope">
+          <el-popover
+            placement="left"
+            :width="285"
+            trigger="click"
+            visible-arrow="false"
+            @show="history(scope.row)"
+          >
+            <template>
+              <span slot="reference">
+                <span
+                  v-if="scope.row.status == '待执行'"
+                  class="executory"
+                ></span>
+                <span
+                  v-if="scope.row.status == '执行中'"
+                  class="inExecution"
+                ></span>
+                <span v-if="scope.row.status == '已完成'" class="done"></span
+                >{{ scope.row.status }}
+              </span>
+            </template>
+            <div>
+              <p style="margin-top: 0; padding-left: 10px">操作历史</p>
+              <div
+                v-for="(item, index) in historyList"
+                :key="index"
+                class="flex"
+              >
+                <div class="vertical-text vertical-text-left">
+                  {{ item.updateDate }}
+                </div>
+                <div>
+                  <div class="vertical-circle"></div>
+                  <div
+                    v-if="index != historyList.length - 1"
+                    class="vertical-line"
+                  ></div>
+                </div>
+                <div class="vertical-text">
+                  {{ item.operateUser }}<br />{{ item.dealMsg }}
+                </div>
+              </div>
+            </div>
+          </el-popover>
+          <img
+            width="17"
+            height="18"
+            style="vertical-align: text-top; position: relative; top: -1px"
+            src="../../../public/img/edit.png"
+            @click="editClick(scope.row)"
+            alt=""
+          />
+        </template>
+      </el-table-column>
+      <el-table-column prop="signingDate" label="签订日期"> </el-table-column>
+      <el-table-column prop="mildewGrain" label="已付款(元)">
+      </el-table-column>
+      <el-table-column prop="addressUrl" label="附件">
+        <template slot-scope="scope">
+          <img
+            width="18"
+            height="20"
+            style="vertical-align: text-top; position: relative; top: -1px"
+            src="../../../public/img/fujian.png"
+            @click="fujian(scope.row)"
+            alt=""
+          />
+          <span v-if="scope.row.addressUrlArray.length > 0">{{
+            scope.row.addressUrlArray.length
+          }}</span>
+          <!-- <i @click="fujian(scope.row)" class="el-icon-paperclip iconCss"></i> -->
+        </template>
+      </el-table-column>
+      <el-table-column prop="confirmCount" label="确认单" >
+      </el-table-column>
+      <el-table-column prop="address" label="操作" width="200">
+        <template slot-scope="scope">
+          <img
+            width="16"
+            height="16"
+            style="vertical-align: text-top; margin: 0 6px"
+            src="../../../public/img/chakan.png"
+            @click="handleExamine(scope.row)"
+            v-hasPermission="
+              `contractManagement.buyContract.buyContractInfo.view`
+            "
+            alt=""
+          />
+          <img
+            width="17"
+            height="16"
+            style="vertical-align: text-top; margin: 0 6px"
+            src="../../../public/img/bianji.png"
+            @click="handleEdit(scope.row)"
+            v-hasPermission="
+              `contractManagement.buyContract.buyContractInfo.edit`
+            "
+            alt=""
+          />
+          <img
+            width="16"
+            height="17"
+            style="
+              vertical-align: text-top;
+              position: relative;
+              top: -1px;
+              margin: 0 6px;
+            "
+            src="../../../public/img/shanchu.png"
+            v-hasPermission="
+              `contractManagement.buyContract.buyContractInfo.delete`
+            "
+            @click="handleDelete(scope.row)"
+            alt=""
+          />
+        </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>
+    <WinseaContentModal
+      v-model="accessoryTFs"
+      :title="$t('system.noticeCircular.information')"
+      @on-cancel="handleClose"
+    >
+      <el-upload
+        class="upload-demo"
+        action="https://www.zthymaoyi.com/upload/admin"
+        :on-success="
+          (res, file) => {
+            uploadSuccessHandle(res)
+          }
+        "
+        multiple
+        :limit="3"
+        :file-list="fileList"
+      >
+        <el-button size="small" type="primary">附件附件</el-button>
+        <div slot="tip" class="el-upload__tip">
+          推荐格式.jpg, .jpeg, .png, .gif, .pdf, .doc, .zip,
+          .rar,单个文件大小不超过10M
+        </div>
+      </el-upload>
+      <p>查看附件</p>
+      <div style="display: flex;">
+      <div style="display: flex; margin: 5px" v-for="item in this.appendixIdss">
+          <img width="100" height="100" :src="item" alt=""/>
+      </div>
+      </div>
+    </WinseaContentModal>
+  </div>
+</template>
+<script>
+import {
+  getList,
+  export1,
+  editstatus,
+  billoperatehis,
+  deletecontract,
+} from '@/model/contarct/index'
+import { downloadFile } from '@/utils/batchDown'
+import Pagination from '@/components/Pagination'
+import WsUpload from '@/components/WsUpload'
+import { dayjs, EventBus } from 'base-core-lib'
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+    Pagination,
+  },
+  watch: {
+    vesselId(val) {
+      this.getList()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      size: 10,
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      deliver_type: 1,
+      deptBudgetTotal: 0,
+      currentPage: 1,
+      pageSize: 10,
+      appendixIdsAdd: '',
+      searchType: 1,
+      searchTypeText: '未完成',
+      searchKeyWord: '',
+      contractType: 2,
+      goodsType: 2,
+      startDate: null,
+      endDate: null,
+      addressUrls: [],
+      accessurl: '',
+      accesscard: false,
+      // 提交类型
+      submitType: true,
+      deptCircularPage: {},
+      date: {
+        year: dayjs().format('YYYY'),
+        month: dayjs().format('MM'),
+      },
+      contractList: [],
+      deptBudgetList: {},
+      historyList: [],
+      appendixIdss: [],
+      fileList:[],
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+      taskTypeList: [
+        { value: '未完成', type: 1 },
+        { value: '已完成', type: 2 },
+        { value: '全部合同', type: '' },
+      ],
+      pickerOptions: {
+        shortcuts: [
+          {
+            text: '本周',
+            onClick(picker) {
+              const end = new Date()
+              const start = new Date()
+              var thisDay = start.getDay()
+              var thisDate = start.getDate()
+              if (thisDay != 0) {
+                start.setDate(thisDate - thisDay)
+              }
+              picker.$emit('pick', [start, end])
+            },
+          },
+          {
+            text: '本月',
+            onClick(picker) {
+              const end = new Date()
+              const start = new Date()
+              start.setDate(1)
+              picker.$emit('pick', [start, end])
+            },
+          },
+          {
+            text: '本季度',
+            onClick(picker) {
+              var oDate = new Date()
+
+              var thisYear = oDate.getFullYear()
+              var thisMonth = oDate.getMonth() + 1
+
+              var n = Math.ceil(thisMonth / 3) // 季度
+
+              var Month = n * 3 - 1
+
+              var start = new Date(thisYear, Month - 2, 1)
+              var end = new Date()
+
+              picker.$emit('pick', [start, end])
+            },
+          },
+        ],
+      },
+      value1: '',
+      value2: '',
+    }
+  },
+  activated() {
+    //cg.viewBudget
+    //cg.viewSpareMoney
+    // this.getVesselData();
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    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.dialogViewSpareMoney = false
+    },
+    handleClose1() {
+      this.accesscard = false
+    },
+    handleSizeChange(val) {
+      console.log(`每页 ${val} 条`)
+      this.pageSize = val
+      this.getList()
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val
+      console.log(`当前页: ${val}`)
+      this.getList()
+    },
+    getList() {
+      getList({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        contractType: this.contractType,
+        goodsType:this.goodsType,
+        currentPage: this.currentPage,
+        pageSize: this.pageSize,
+        searchType: this.searchType,
+        searchKeyWord: this.searchKeyWord,
+        startDate: this.startDate,
+        endDate: this.endDate,
+        contrPage: this.contrPage,
+      })
+        .toPromise()
+        .then((response) => {
+          for (var i = 0; i < response.records.length; i++) {
+            if (response.records[i].addressUrl != null) {
+              response.records[i].addressUrlArray =
+                response.records[i].addressUrl.split(',')
+            } else {
+              response.records[i].addressUrlArray = []
+            }
+          }
+          this.deptCircularPage.currentPage = response.current
+          this.deptCircularPage.pageSize = response.size
+          this.deptBudgetTotal = response.total
+          this.contractList = response
+          for (var i = 0; i < response.records.length; i++) {
+            var arr = new Array()
+            this.addressUrls[i] = new Array()
+            if (this.contractList.records[i].addressUrl != null) {
+              arr = this.contractList.records[i].addressUrl.split(',')
+              this.addressUrls[i] = arr
+            }
+          }
+        })
+    },
+    // 上传附件
+    uploadSuccess(data, files, url) {
+      console.log(data, files, url)
+
+      // this.deptBudgetList.
+      // this.formData.append('files', files)
+      // this.feedbackObj.uploadNameAttachment = data.appendixName
+      // this.feedbackObj.pathUploadAttachment = data.appendixPath
+      // // this.newAppendixs = files
+      // this.onChangeFlag = true
+    },
+    editClick(row) {
+      var status = ''
+      if (row.status == '待执行' || row.status == '已完成') {
+        status = '执行中'
+      } else if (row.status == '执行中') {
+        status = '已完成'
+      }
+      this.$confirm(`是否将状态改为${status}`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+        .then(() => {
+          editstatus({ id: row.id })
+            .toPromise()
+            .then((response) => {
+              this.$notify.success({
+                title: '成功',
+                message: '状态修改成功',
+              })
+              this.getList()
+            })
+            .catch((response) => {
+              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    selecttaskType(e) {
+      for (var i = 0; i < this.taskTypeList.length; i++) {
+        if (this.taskTypeList[i].value == e) {
+          this.searchType = this.taskTypeList[i].type
+        }
+      }
+    },
+    fujian(row) {
+      if (row.addressUrl === null || row.addressUrl === '') {
+        EventBus.$emit(
+          'warning',
+          this.$t('system.noticeCircular.NoInformation')
+        )
+      } else {
+        this.accessoryTFs = true
+      }
+      this.appendixIdss = row.addressUrl.split(',')
+    },
+    handleExamine(row) {
+      console.log(row)
+      this.$router.push({
+        name: 'futuresPurchaseContractExamine',
+        query: { id: row.id, status: row.status },
+      })
+    },
+    handleAdd() {
+      this.$router.push({ path: 'futuresPurchaseContractAdd' })
+    },
+    handleEdit(row) {
+      this.$router.push({
+        name: 'futuresPurchaseContractEdit',
+        query: { id: row.id },
+      })
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleCloe() {
+      this.dialogViewSpareMoney = false
+    },
+    history(row) {
+      console.log(row)
+      billoperatehis({ id: row.id })
+        .toPromise()
+        .then((response) => {
+          this.historyList = response
+        })
+    },
+    find() {
+      if (this.value2) {
+        this.startDate = this.dateFormat('YYYY-mm-dd', this.value2[0])
+        this.endDate = this.dateFormat('YYYY-mm-dd', this.value2[1])
+      } else {
+        this.startDate = ''
+        this.endDate = ''
+      }
+      this.currentPage = 1
+      this.getList()
+    },
+    async exportlist() {
+      const { data } = await export1(
+        {
+          compId: sessionStorage.getItem('ws-pf_compId'),
+          contractType: this.contractType,
+          goodsType:this.goodsType,
+          currentPage: this.currentPage,
+          pageSize: this.pageSize,
+          searchType: this.searchType,
+          searchKeyWord: this.searchKeyWord,
+          startDate: this.startDate,
+          endDate: this.endDate,
+        },
+        {},
+        { responseType: 'blob' }
+      ).toPromise()
+      downloadFile({
+        res: data,
+        fileName: `${
+          this.date.year + (this.date.month ? `-${this.date.month}` : '')
+        }_采购合同`,
+        type: 'xls',
+      })
+    },
+    // deletecontract(){},
+    //删除
+    handleDelete(row) {
+      var text = ''
+    //   if (row.deliverType == 1) {
+    //     text =
+    //       '删除该合同将同时永久删除合同对应的临时仓库相关数据,是否确定删除?'
+    //   } else {
+    //     text = '合同删除后不可恢复,是否继续删除?'
+    //   }
+      this.$confirm('合同删除后不可恢复,是否继续删除?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+        .then(() => {
+          deletecontract({ id: row.id })
+            .toPromise()
+            .then((response) => {
+              this.$notify.success({
+                title: '成功',
+                message: '删除成功',
+              })
+              this.getList()
+            })
+            .catch((response) => {})
+        })
+        .catch(() => {
+          return false
+        })
+    },
+  },
+}
+</script>
+<style lang="scss" scoped>
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+.flex {
+  display: flex;
+}
+.el-range-editor.el-input__inner {
+  margin-left: 10px;
+}
+/deep/.base_header_layout .grid-content.right .find.el-button--primary {
+  width: 30px;
+  margin-left: -10px;
+  border-top-left-radius: 0px;
+  border-bottom-left-radius: 0px;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-button--default {
+  border: 1px solid #5473e8;
+  color: #5473e8;
+}
+.warning {
+  width: 100%;
+  height: 2px;
+  background: red;
+}
+.executory,
+.inExecution,
+.done {
+  width: 6px;
+  height: 6px;
+  display: inline-block;
+  border-radius: 50%;
+  position: relative;
+  top: -1px;
+}
+.executory {
+  background: #ff9f24;
+}
+.inExecution {
+  background: #5878e8;
+}
+.done {
+  background: #50cad4;
+}
+.top-grade {
+  background: linear-gradient(90deg, #5678e9, #7993f6);
+  color: #fff;
+  padding: 3px;
+  border-radius: 2px;
+}
+.second-class {
+  background: linear-gradient(90deg, #50cdd9, #82e2ea);
+  color: #fff;
+  padding: 3px;
+  border-radius: 2px;
+}
+.third-class {
+  background: linear-gradient(90deg, #ffa735, #ffbf70);
+  color: #fff;
+  padding: 3px;
+  border-radius: 2px;
+}
+.substandard {
+  background: linear-gradient(90deg, #b2b4bb, #ced0d5);
+  color: #fff;
+  padding: 3px;
+  border-radius: 2px;
+}
+.wrap {
+  width: 400px;
+  position: absolute;
+  top: 131px;
+  left: 794px;
+  transform-origin: right center;
+  z-index: 2005;
+}
+.vertical-line {
+  height: 64px;
+  border-left: 2px solid #e9ecf7;
+  margin-left: 4px;
+  padding: 0 3px;
+  // border-image: -webkit-linear-gradient(#00eba7, #08b8e6) 30 30;
+  // border-image: -moz-linear-gradient(#00eba7, #08b8e6) 30 30;
+  // border-image: linear-gradient(#00eba7, #08b8e6) 30 30;
+}
+.el-pagination {
+  padding: 10px 15px;
+  margin-bottom: 0;
+  text-align: center;
+}
+/deep/.el-pager li.active {
+  color: #5878e8;
+  cursor: default;
+}
+/deep/.el-pager li:hover {
+  color: #5878e8;
+  cursor: default;
+}
+.vertical-circle {
+  width: 10px;
+  height: 10px;
+  border: 2px solid #5878e8;
+  background-color: #ffffff;
+  -webkit-border-radius: 100px;
+}
+.vertical-circle:first-child {
+  color: red;
+}
+.vertical-text {
+  margin: 0 10px;
+  color: #8890b1;
+  font-size: 12px;
+  margin-top: -4px;
+}
+/deep/.el-table .el-table__header .cell,
+/deep/.el-table .el-table__body .cell {
+  text-align: center;
+}
+.typeselect {
+  width: 500px;
+}
+.padding-xs {
+  padding: 15px;
+  text-align: right;
+}
+.clearfix:after {
+  content: '';
+  display: block;
+  clear: both;
+}
+.el-table {
+  font-size: 16px;
+}
+.taskType {
+  width: 100%;
+  background-color: #fff;
+  margin-top: 2px;
+  margin-bottom: 10px;
+  list-style: none;
+  // padding-bottom: 20px;
+  li {
+    float: left;
+    border: 1px solid #6ea0f3;
+    border-radius: 5px;
+    max-width: 190px;
+    padding: 0 5px;
+    text-align: center;
+    margin: 10px 20px;
+    cursor: pointer;
+    font-size: 14px;
+    p {
+      margin: 8px 0px;
+      span {
+        color: #e74c3c;
+      }
+    }
+  }
+  li:hover {
+    background-color: #e4eeff;
+    color: #1d6ced;
+  }
+}
+.el-date-editor--date {
+  margin: 0 10px;
+}
+.findValue {
+  margin: 0 10px;
+}
+/deep/.findValue .el-input__inner {
+  border-top-right-radius: 0px;
+  border-bottom-right-radius: 0px;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.box-app {
+  display: inline-block;
+  float: left;
+  margin-left: 30px;
+  line-height: 50px;
+}
+/deep/.el-dialog {
+  .el-form-item {
+    margin-bottom: 0 !important;
+    .el-input--medium {
+      textarea {
+        min-height: 100px !important;
+      }
+    }
+  }
+}
+.collapse-bottom {
+  margin-bottom: 20px;
+}
+
+.input-main .textarea .el-textarea__inner {
+  width: 100%;
+  z-index: 1;
+}
+/*.crt-main .textarea /deep/ .el-form-item__label {*/
+/*  height: 82px;*/
+/*}*/
+// 控制select为只读的时候显示样式
+
+.hide-sel {
+  .el-input__inner {
+    border: 0px;
+  }
+  .el-icon-arrow-up {
+    display: none;
+  }
+  .el-textarea__inner {
+    background-color: #fff !important;
+    border: 0;
+  }
+  .el-date-editor {
+    i {
+      display: none;
+    }
+  }
+  .is-disabled {
+    .el-input__inner:hover {
+      background-color: #fff !important;
+      border: 0;
+    }
+    color: #606266;
+    .el-input__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+    .el-textarea__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+  }
+}
+// 控制select为只读的时候显示样式
+/deep/.ws-class-table-col {
+  height: auto;
+  padding: 0px 2px;
+  /deep/.el-input__inner {
+    padding: 0px 2px;
+  }
+}
+/deep/.is-disabled {
+  .el-input__prefix,
+  .el-input__suffix {
+    display: none;
+  }
+  .el-input__inner {
+    background-color: #fff;
+    border-color: #fff !important;
+    color: #000 !important;
+    font-size: 14px;
+    cursor: text;
+    padding: 0 !important;
+  }
+}
+/deep/.typeselect .el-input__inner {
+  color: #8890b1;
+}
+</style>

+ 1793 - 0
src/views/contractManagement/futuresPurchaseContractAdd.vue

@@ -0,0 +1,1793 @@
+<!--期货采购合同添加-->
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="12">
+        <h2 class="bg-left title">创建采购合同</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right">
+        <el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="returnsales()"
+          ><img
+            width="6"
+            height="10"
+            style="vertical-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt=""
+          />返回</el-button
+        >
+      </el-col>
+    </el-row>
+    <ws-form ref="deptBudgetList" :rules="rules" :model="deptBudgetList">
+      <div class="remark">
+        <h3>基本信息</h3>
+        <p style="color: #8890b1">
+          注:基本信息和货物信息均为必填项,“*” 标记的条目提交后不可修改。
+        </p>
+      </div>
+      <ws-info-table>
+        <!--合同编号-->
+        <ws-form-item
+          label="合同编号"
+          span="1"
+          prop="contractNo"
+          class="readonly"
+          required
+        >
+          <ws-input
+            v-model="deptBudgetList.contractNo"
+            placeholder="请输入合同编号"
+            maxlength="20"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--运输方式-->
+        <ws-form-item label="运输方式" span="1" prop="shippingType">
+          <ws-input
+            v-model="deptBudgetList.shippingType"
+            placeholder="请输入运输方式"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--买方-->
+        <ws-form-item label="买方" span="1" prop="buyer" >
+          <ws-input
+            v-model="deptBudgetList.buyer"
+            placeholder="请输入买方名称"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--结算方式-->
+        <ws-form-item label="结算方式" span="1" prop="settlementMethod">
+          <ws-input
+            v-model="deptBudgetList.settlementMethod"
+            placeholder="请输入结算方式"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--买方电话-->
+        <ws-form-item label="买方电话" span="1" prop="contractNo">
+          <ws-input
+            v-model.number="deptBudgetList.buyerPhone"
+            placeholder="请输入买方电话"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        
+        <ws-form-item label="交货方式" span="1" prop="seller" class="readonly">
+          <el-radio v-model="deptBudgetList.deliverType" label="1"
+            >我方自提</el-radio
+          >
+          <el-radio v-model="deptBudgetList.deliverType" label="2"
+            >对方送货</el-radio
+          >
+        </ws-form-item>
+        <!--卖方-->
+        <ws-form-item label="卖方" span="1" prop="seller" >
+          <ws-input
+            v-model="deptBudgetList.seller"
+            placeholder="请输入卖方名称"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        
+        <!--包装方式-->
+        <ws-form-item label="包装方式" span="1" prop="packingMethod">
+          <ws-select
+            v-model="deptBudgetList.packingMethod"
+            placeholder=""
+            class="typeselect"
+            :value="value1"
+            @change="selectpackingMethod"
+          >
+            <ws-option
+              v-for="item in packtypeList"
+              :key="item.constKey"
+              :label="item.constValue"
+              :value="item.constValue"
+            />
+          </ws-select>
+        </ws-form-item>
+        <!--卖方电话-->
+        <ws-form-item label="卖方电话" span="1" prop="sellerPhone">
+          <ws-input
+            v-model="deptBudgetList.sellerPhone"
+            placeholder="请输入卖方电话"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--验收方式-->
+        <ws-form-item label="验收方式" span="1" prop="acceptanceMethod">
+          <el-select
+            v-model="deptBudgetList.acceptanceMethod"
+            placeholder="请选择验收方式"
+            style="width: 100%"
+            filterable
+            @change="selectunitList"
+          >
+            <el-option
+              v-for="(item, index) in unitList"
+              :key="item.constValue"
+              :label="item.constValue"
+              :value="item.constValue"
+            >
+              <span class="unit-left" style="float: left">
+                <span v-if="item.flag == 'delete'"> {{ item.constValue }}</span>
+                <!-- 新增文本框 -->
+                <div
+                  style="width: 160px"
+                  v-if="item.flag !== 'delete'"
+                  @click.stop
+                >
+                  <ws-input
+                    v-model="item.constValue"
+                    clearable
+                    maxlength="10"
+                    style="width: 100%"
+                  ></ws-input>
+                </div>
+              </span>
+              <span style="float: right; color: #8492a6; font-size: 13px">
+                <!-- 对号 -->
+                <i
+                  class="el-icon-check"
+                  style="line-height: 29px; margin-left: 10px"
+                  v-if="item.flag !== 'delete'"
+                  @click.stop="saveClick(item, index)"
+                ></i>
+                <!-- 编辑 -->
+                <i
+                  class="el-icon-edit"
+                  style="line-height: 29px; margin-left: 10px"
+                  v-if="item.flag == 'delete'"
+                  @click.stop="editClick(item, index)"
+                ></i>
+                <!-- 删除 -->
+                <i
+                  class="el-icon-delete"
+                  style="line-height: 29px"
+                  @click.stop="deleteClick(item, index)"
+                ></i>
+              </span>
+            </el-option>
+            <!-- 新增按钮 -->
+            <el-option value="" label="">
+              <div
+                style="
+                  text-align: right;
+                  border-top: 1px solid #dcdfe6;
+                  padding: 5px;
+                "
+              >
+                <ws-button type="primary" @click.stop="addClick">{{
+                  $t('button.add')
+                }}</ws-button>
+              </div>
+            </el-option>
+          </el-select>
+        </ws-form-item>
+        <!--交易数量(吨)-->
+        <ws-form-item label="交易数量(吨)" span="1" prop="weight">
+          <ws-input
+            @input="weightchange"
+            v-model="deptBudgetList.weight"
+            placeholder="请输入重量(吨)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--入库费(元/吨)-->
+        <ws-form-item label="入库费(元/吨)" span="1" prop="warehousingFee">
+          <ws-input
+            v-model="deptBudgetList.warehousingFee"
+            placeholder="请输入入库费(元/吨)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--基差(元/吨)-->
+        <ws-form-item label="基差(元/吨)" span="1" prop="basisPrice">
+          <ws-input
+            v-model="deptBudgetList.basisPrice"
+            placeholder="请输入基差(元/吨)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--计量标准-->
+        <ws-form-item label="计量标准" span="1" prop="measurementStandard">
+          <ws-input
+            v-model="deptBudgetList.measurementStandard"
+            placeholder="请输入计量标准,如库内磅单"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--交易所-->
+        <ws-form-item label="交易所" span="1" prop="transactionsPlace">
+          <ws-input
+            v-model="deptBudgetList.transactionsPlace"
+            placeholder="请输入交易所"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--收货库-->
+          <el-form-item label="收货库" span="1" prop="receiveWarehouse">
+            <el-select
+              v-model="deptBudgetList.receiveWarehouse"
+              placeholder="请选择收货库"
+              class="typeselect"
+              @change="selectwarehouseName"
+            >
+              <el-option
+                v-for="item in warehouseNameList"
+                :key="item.constKey"
+                :label="item.warehouseName"
+                :value="item.warehouseName"
+              />
+            </el-select>
+          </el-form-item>
+        <!--合约号-->
+        <ws-form-item label="合约号" span="1" prop="contractNumber">
+          <ws-input
+            v-model="deptBudgetList.contractNumber"
+            placeholder="请输入合约号"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--交货所在地区-->
+        <ws-form-item label="交货所在地区" span="1" prop="sourceGoods">
+          <el-cascader
+            :options="options_"
+            v-model="selectedOptions"
+            clearable
+            size="large"
+            placeholder="请选择交货所在地区"
+            style="width: 200%"
+            @change="handleChange"
+          />
+        </ws-form-item>
+        <!--点价(元/吨)-->
+        <ws-form-item label="点价(元/吨)" span="1" prop="pointPrice">
+          <ws-input
+            v-model="deptBudgetList.pointPrice"
+            placeholder="请输入合约点价"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--交货详细地址-->
+        <ws-form-item label="交货详细地址" span="1" prop="placeDelivery">
+          <ws-input
+            v-model="deptBudgetList.placeDelivery"
+            placeholder="请输入交货详细地址"
+            maxlength="20"
+            size="small"
+          />
+        </ws-form-item>
+        <!--点价日期-->
+        <ws-form-item label="点价日期" span="1" prop="pointPriceDate">
+          <ws-date-picker
+            v-model="deptBudgetList.pointPriceDate"
+            type="date"
+            placeholder="请选择点价日期"
+            value-format="yyyy-MM-dd"
+          />
+        </ws-form-item>
+        <!--签订日期-->
+        <ws-form-item label="签订日期" span="1" prop="signingDate">
+          <ws-date-picker
+            v-model="deptBudgetList.signingDate"
+            type="date"
+            placeholder="请选择合同签订日期"
+            value-format="yyyy-MM-dd"
+          />
+        </ws-form-item>
+        
+        <!--交货日期(起)-->
+        <ws-form-item label="交货日期(起)" span="1" prop="deliveryDateStart">
+          <ws-date-picker
+            v-model="deptBudgetList.deliveryDateStart"
+            type="date"
+            placeholder="请选择交货日期(起)"
+            value-format="yyyy-MM-dd"
+          />
+        </ws-form-item>
+        <!--临时仓库负责人-->
+        <ws-form-item
+          v-show="deptBudgetList.deliverType == 1"
+          label="临时仓库负责人"
+          span="1"
+          prop="packingMethod"
+        >
+          <el-select
+            v-model="deptBudgetList.personCharge"
+            placeholder="请选择临时仓库负责人"
+            filterable
+            :filter-method="dataFilter"
+            @change="selectstaff"
+          >
+            <el-option
+              v-for="item in options"
+              :key="item.value"
+              :label="item.staffName"
+              :value="item.staffName"
+            />
+          </el-select>
+        </ws-form-item>
+        <!--交货日期(止)-->
+        <ws-form-item label="交货日期(止)" span="1" prop="deliveryDateEnd">
+          <ws-date-picker
+            v-model="deptBudgetList.deliveryDateEnd"
+            type="date"
+            placeholder="请选择交货日期(止)"
+            value-format="yyyy-MM-dd"
+          />
+        </ws-form-item>
+        
+    </ws-info-table>
+
+      <div class="wenzi">
+        <h3>货物信息</h3>
+      </div>
+      <!--货物信息-->
+
+      <ws-info-table>
+        <!--货名-->
+        <ws-form-item label="货名" span="1" prop="goodsName" class="readonly">
+          <ws-select
+            v-model="deptBudgetList.contractGoodsInfo.goodsName"
+            placeholder=""
+            class="typeselect"
+            @change="selectgoodsName"
+          >
+            <ws-option
+              v-for="item in goodnameList"
+              :key="item.constKey"
+              :label="item.constValue"
+              :value="item.constValue"
+            />
+          </ws-select>
+        </ws-form-item>
+
+        <!--水分(%)<=-->
+        <ws-form-item label="水分(%)" span="1" prop="waterContent">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.waterContent"
+            placeholder="请输入水分占比"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--品级-->
+        <ws-form-item label="品级" span="1" prop="grade">
+          <ws-select
+            v-model="deptBudgetList.contractGoodsInfo.grade"
+            placeholder="请选择品级"
+            class="typeselect"
+            @change="selectgrade"
+          >
+            <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
+            v-model="deptBudgetList.contractGoodsInfo.impurity"
+            placeholder="请输入杂质占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--容量(克/升)>=-->
+        <ws-form-item label="容量(克/升)" span="1" prop="bulkDensity">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.bulkDensity"
+            placeholder="请输入容重"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--霉变粒(%)<=-->
+        <ws-form-item label="霉变粒(%)" span="1" prop="mildewGrain">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.mildewGrain"
+            placeholder="请输入霉变粒占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--热损伤(%)<=-->
+        <ws-form-item label="热损伤(%)" span="1" prop="jiaorenli">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.jiaorenli"
+            placeholder="请输入输入热损伤占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--不完整粒(%)<=-->
+        <ws-form-item label="不完整粒(%)" span="1" prop="imperfectGrain">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.imperfectGrain"
+            placeholder="请输入不完整粒占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--蛋白(%)>=-->
+        <ws-form-item label="蛋白(%)" span="1" prop="protein">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.protein"
+            placeholder="请输入蛋白占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--转基因-->
+        <ws-form-item label="转基因" span="1" prop="transgene">
+          <ws-select
+            v-model="deptBudgetList.contractGoodsInfo.transgene"
+            placeholder="请选择转基因要求"
+            class="typeselect"
+            @change="selecttransgene"
+          >
+            <ws-option
+              v-for="item in transgeneList"
+              :key="item.constKey"
+              :label="item.constValue"
+              :value="item.constValue"
+            />
+          </ws-select>
+        </ws-form-item>
+        <!--产地-->
+        <ws-form-item label="产地" span="1" prop="protein">
+          <el-cascader
+              :options="options1_"
+              v-model="selectedOptions1"
+              clearable
+              size="large"
+              placeholder="请选择产地"
+              @change="handleChange1"
+              style="width:200%"
+            />
+        </ws-form-item>
+
+      </ws-info-table>
+
+      <div class="wenzi">
+        <h3>流程信息</h3>
+      </div>
+      <!--流程信息-->
+
+      <ws-info-table>
+        <!--已付款(元)-->
+        <ws-form-item label="已付款(元)" span="1" prop="goodsNameKey">
+          <ws-input
+            v-model="deptBudgetList.contractProcessInfo.goodsNameKey"
+            placeholder="请输入已付款(元)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--已开发票(元)-->
+        <ws-form-item label="已开发票(元)" span="1" prop="goodsName">
+          <ws-input
+            v-model="deptBudgetList.contractProcessInfo.goodsName"
+            placeholder="请输入已开发票(元)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--费用支出(元)-->
+        <ws-form-item label="费用支出(元)" span="1" prop="waterContent">
+          <ws-input
+            v-model="deptBudgetList.contractProcessInfo.waterContent"
+            placeholder="请输入费用支出(元)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--未开发票(元)-->
+        <ws-form-item label="未开发票(元)" span="1" prop="impurity">
+          <ws-input
+            v-model="deptBudgetList.contractProcessInfo.impurity"
+            placeholder="请输入未开发票(元)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--双章原件回收情况-->
+        <ws-form-item label="双章原件回收情况" span="1" prop="grade">
+          <ws-select
+            v-model="deptBudgetList.contractProcessInfo.grade"
+            placeholder=""
+            class="typeselect"
+            @change="selectChapterTwo"
+          >
+            <ws-option
+              v-for="item in ChapterTwoList"
+              :key="item.constKey"
+              :label="item.constValue"
+              :value="item.constValue"
+            />
+          </ws-select>
+        </ws-form-item>
+      </ws-info-table>
+
+      <div class="wenzi">
+        <h3>备注信息</h3>
+      </div>
+      <!--备注信息-->
+      <ws-input
+        v-model="deptBudgetList.remarks"
+        type="textarea"
+        row="3"
+        placeholder="请输入备注信息,不超过200字"
+        maxlength="200"
+      />
+      
+      <el-upload
+        class="upload-demo"
+        action="https://www.zthymaoyi.com/upload/admin"
+         :on-success="
+            (res, file) => {
+              uploadSuccessHandle(res)
+            }
+          "
+        multiple
+        :limit="3"
+        :file-list="fileList"
+      >
+        <el-button size="small" type="primary">点击上传</el-button>
+        <div slot="tip" class="el-upload__tip">
+          推荐格式.jpg, .jpeg, .png, .gif, .pdf, .doc, .zip, .rar,单个文件大小不超过10M
+        </div>
+      </el-upload>
+    </ws-form>
+    <div style="text-align: right; padding: 10px" class="center">
+      <el-button
+        class="bg-bottom"
+        type="primary"
+        size="small"
+        @click="submit(deptBudgetList)"
+        >提交</el-button
+      >
+    </div>
+  </div>
+</template>
+<script>
+import {
+  getwarehousename,
+  packList,
+  addList,
+  xiala,
+  addxiala,
+  editxiala,
+  delxiala,
+  getstaff,
+} from '@/model/contarct/index'
+import { regionData,provinceAndCityDataPlus, CodeToText, TextToCode } from 'element-china-area-data'
+import { dayjs, fmoney, EventBus } from 'base-core-lib'
+import WsUpload from '@/components/WsUpload'
+
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+  },
+  watch: {
+    vesselId(val) {
+      this.getVesselData()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      options_: regionData,
+      options1_:provinceAndCityDataPlus,
+      selectedOptions: [],
+      selectedOptions1: [],
+      // 提交类型
+      submitType: true,
+      tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
+
+      packtypeList: [],
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      rules: {
+        // contractNo: [
+        //   { required: true, message: '请输入合同编号', trigger: 'blur' },
+        //   { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' },
+        // ],
+      },
+      options: [],
+      staffList: [],
+      appendixIdsAdd: '',
+      size: 10,
+      // uploadSuccess: {},
+      // onChange:{},
+      unitList: [],
+      goodnameList: [],
+      value1: '袋装',
+      value2: '未回收',
+      gradeList: [],
+      warehouseNameList: [],
+      warehouseNameList1: [],
+      ChapterTwoList: [],
+      transgeneList: [],
+      deptBudgetList: {
+        deliverType: '1',
+        finalTradingVolume: 0,
+        contractGoodsInfo: {
+          goodsName: '',
+        },
+        contractProcessInfo: {},
+      },
+      acceptanceCheck: {},
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      ruleDeptBudget: {
+        contractNo: [
+          { required: true, message: '请输入活动名称', trigger: 'blur' },
+          {
+            min: 6,
+            max: 20,
+            message: '长度在 6 到 20 个字符',
+            trigger: 'blur',
+          },
+        ],
+      },
+      selectIntendedShip: {},
+      interviewTypeList: {},
+      addressUrls: [],
+      fileList:[],
+    }
+  },
+  activated() {
+    //cg.viewBudget
+    //cg.viewSpareMoney
+    // this.getVesselData();
+    this.deptBudgetList.packingMethod = '散装'
+    this.deptBudgetList.packingMethodKey = 1
+    this.deptBudgetList.contractGoodsInfo.goodsName = '玉米'
+    this.deptBudgetList.contractGoodsInfo.goodsNameKey = 1
+    this.deptBudgetList.contractProcessInfo.grade = '未回收'
+    this.deptBudgetList.contractProcessInfo.gradeKey = 1
+    this.deptBudgetList.contractGoodsInfo.grade = '一等品'
+    this.deptBudgetList.contractGoodsInfo.gradeKey = 1
+    this.deptBudgetList.contractGoodsInfo.transgene = '不限'
+    this.deptBudgetList.contractGoodsInfo.gradeKey = 1
+    getstaff({ compId: sessionStorage.getItem('ws-pf_compId') })
+      .toPromise()
+      .then((response) => {
+        this.options = response
+        this.staffList = response
+      })
+    this.loaddata()
+    this.showType = this.isShow
+  },
+  methods: {
+    close(index) {
+      this.addressUrls.splice(index, 1)
+    },
+    dataFilter(val) {
+      this.deptBudgetList.personCharge = val
+      if (val) {
+        //val存在
+        this.options = this.staffList.filter((item) => {
+          if (
+            !!~item.staffName.indexOf(val) ||
+            !!~item.staffName.toUpperCase().indexOf(val.toUpperCase())
+          ) {
+            return true
+          }
+        })
+      } else {
+        //val为空时,还原数组
+        this.options = this.staffList
+      }
+    },
+    selectstaff(e) {
+      for (var i = 0; i < this.staffList.length; i++) {
+        if (this.staffList[i].staffName == e) {
+          this.deptBudgetList.personPhone = this.staffList[i].staffMobilePhone
+          this.deptBudgetList.personChargeKey = this.staffList[i].staffId
+        }
+      }
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleClose() {
+      this.dialogViewSpareMoney = false
+    },
+    handleChange(value) {
+      this.selectedOptions = value
+      this.dataList.deliveryProvince = CodeToText[value[0]]
+      this.dataList.deliveryCity = CodeToText[value[1]]
+      this.dataList.deliveryArea = CodeToText[value[2]]
+    },
+    handleChange1(value) {
+      this.selectedOptions1 = value
+      this.dataList.contractGoodsInfo.outputPrivate = CodeToText[value[0]]
+      this.dataList.contractGoodsInfo.outputCity = CodeToText[value[1]]
+    },
+    weightchange(e) {
+      this.deptBudgetList.finalTradingVolume = e
+    },
+    returnsales() {
+      this.$router.push({ path: 'futuresPurchaseContract' })
+    },
+    loaddata() {
+      // 包装方式
+      packList({ constId: 'CON1' })
+        .toPromise()
+        .then((response) => {
+          this.packtypeList = response
+        })
+      // 验收方式
+      this.getUnitList()
+      // 货名
+      packList({ constId: 'CON2' })
+        .toPromise()
+        .then((response) => {
+          this.goodnameList = response
+        })
+      // 品级
+      packList({ constId: 'CON3' })
+        .toPromise()
+        .then((response) => {
+          this.gradeList = response
+        })
+      //转基因
+      packList({ constId: 'CON7' })
+        .toPromise()
+        .then((response) => {
+          this.transgeneList = response
+        })
+        //收货库
+        getwarehousename({
+        compId: this.compId,
+        warehouseType: 1,
+      })
+        .toPromise()
+        .then((response) => {
+          this.warehouseNameList = response
+        })
+      getwarehousename({
+        compId: this.compId,
+        warehouseType: 2,
+      })
+        .toPromise()
+        .then((response) => {
+          this.warehouseNameList1 = response
+        })
+      // 双章
+      packList({ constId: 'CON4' })
+        .toPromise()
+        .then((response) => {
+          this.ChapterTwoList = response
+        })
+    },
+    // 上传附件
+    uploadSuccessHandle(e) {
+      console.log(e)
+      this.addressUrls.push(e.url)
+      // this.deptBudgetList.addressUrl = this.addressUrls.toString
+    },
+    onChange(files) {
+      this.fileNum = files
+      this.$refs.upload.handleSaveBill().then((res) => {
+        console.log(files)
+      })
+    },
+    getUnitList() {
+      xiala({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        constCode: 'TYPEYAN',
+      })
+        .toPromise()
+        .then((response) => {
+          this.unitList = response
+          let currItem
+          this.unitList.forEach((item, index, arr) => {
+            item.flag = 'delete'
+            if (this.vModel == item.constKey) {
+              currItem = item
+            }
+          })
+          //
+          if (currItem) {
+            this.selectContract(currItem.constValue)
+          }
+        })
+    },
+
+    submit() {
+      if (!this.deptBudgetList.contractNo) {
+        this.$message({
+          message: '请输入合同编号',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractNo.length < 6 ||
+        this.deptBudgetList.contractNo.length > 20
+      ) {
+        this.$message({
+          message: '合同编号长度不符合要求,请输入6到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.shippingType) {
+        this.$message({
+          message: '请输入运输方式!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.shippingType.length < 1 ||
+        this.deptBudgetList.shippingType.length > 20
+      ) {
+        this.$message({
+          message: '运输方式长度不符合要求,请输入1到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.buyer) {
+        this.$message({
+          message: '请输入买方名称!',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.deptBudgetList.buyer.length > 30) {
+        this.$message({
+          message: '买方名称长度不符合要求,请输入30个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.seller) {
+        this.$message({
+          message: '请输入卖方名称!',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.deptBudgetList.seller.length > 30) {
+        this.$message({
+          message: '卖方名称长度不符合要求,请输入30个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.buyerPhone) {
+        this.$message({
+          message: '请输入买方电话!',
+          type: 'warning',
+        })
+        return
+      }
+      if (isNaN(this.deptBudgetList.buyerPhone)) {
+        this.$message({
+          message: '输入买方电话有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.buyerPhone.length < 7 ||
+        this.deptBudgetList.buyerPhone.length > 20
+      ) {
+        this.$message({
+          message: '买方电话长度不符合要求,请输入7到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.sellerPhone) {
+        this.$message({
+          message: '请输入卖方电话!',
+          type: 'warning',
+        })
+        return
+      }
+      if (isNaN(this.deptBudgetList.sellerPhone)) {
+        this.$message({
+          message: '输入卖方电话有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.buyerPhone.length < 7 ||
+        this.deptBudgetList.buyerPhone.length > 20
+      ) {
+        this.$message({
+          message: '卖方电话长度不符合要求,请输入7到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.weight) {
+        this.$message({
+          message: '请输入交易数量!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        isNaN(this.deptBudgetList.weight) ||
+        (String(this.deptBudgetList.weight).indexOf('.') != -1 &&
+          String(this.deptBudgetList.weight).length -
+            (String(this.deptBudgetList.weight).indexOf('.') + 1) >
+            3) ||
+        this.deptBudgetList.weight < 0 ||
+        this.deptBudgetList.weight > 200000
+      ) {
+        this.$message({
+          message: '输入交易数量有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.basisPrice) {
+        this.$message({
+          message: '请输入基差!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        isNaN(this.deptBudgetList.basisPrice) ||
+        (String(this.deptBudgetList.basisPrice).indexOf('.') != -1 &&
+          String(this.deptBudgetList.basisPrice).length -
+            (String(this.deptBudgetList.basisPrice).indexOf('.') + 1) >
+            3) ||
+        this.deptBudgetList.basisPrice < 0 ||
+        this.deptBudgetList.basisPrice > 10000
+      ) {
+        this.$message({
+          message: '基差输入错误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.transactionsPlace) {
+        this.$message({
+          message: '请输入交易所!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.transactionsPlace.length < 2 ||
+        this.deptBudgetList.transactionsPlace.length > 15
+      ) {
+        this.$message({
+          message: '交易所长度不符合要求,请输入2到15个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractNumber) {
+        this.$message({
+          message: '请输入合约号!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractNumber.length < 2 ||
+        this.deptBudgetList.contractNumber.length > 15
+      ) {
+        this.$message({
+          message: '合约号长度不符合要求,请输入2到15个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.pointPrice) {
+        this.$message({
+          message: '请输入点价!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        isNaN(this.deptBudgetList.pointPrice) ||
+        (String(this.deptBudgetList.pointPrice).indexOf('.') != -1 &&
+          String(this.deptBudgetList.pointPrice).length -
+            (String(this.deptBudgetList.pointPrice).indexOf('.') + 1) >
+            3) ||
+        this.deptBudgetList.pointPrice < 0 ||
+        this.deptBudgetList.pointPrice > 100000
+      ) {
+        this.$message({
+          message: '输入点价有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.warehousingFee) {
+        this.$message({
+          message: '请输入入库费!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        isNaN(this.deptBudgetList.warehousingFee) ||
+        (String(this.deptBudgetList.warehousingFee).indexOf('.') != -1 &&
+          String(this.deptBudgetList.warehousingFee).length -
+            (String(this.deptBudgetList.warehousingFee).indexOf('.') + 1) >
+            3) ||
+        this.deptBudgetList.warehousingFee < 0 ||
+        this.deptBudgetList.warehousingFee > 1000
+      ) {
+        this.$message({
+          message: '入库费输入错误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.measurementStandard) {
+        this.$message({
+          message: '请输入计量标准!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.measurementStandard.length < 1 ||
+        this.deptBudgetList.measurementStandard.length > 20
+      ) {
+        this.$message({
+          message: '计量标准长度不符合要求,请输入1到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.settlementMethod) {
+        this.$message({
+          message: '请输入结算方式!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.placeDelivery) {
+        this.$message({
+          message: '请输入交货详细地址!',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.selectedOptions.length == 0) {
+        this.$message({
+          message: '请选择交货所在地区!',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.selectedOptions1.length == 0) {
+        this.$message({
+          message: '请选择产地!',
+          type: 'warning',
+        })
+        return
+      }
+      
+      if (!this.deptBudgetList.deliveryDateStart) {
+        this.$message({
+          message: '请选择交货日期(起)',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.deliveryDateEnd) {
+        this.$message({
+          message: '请选择交货日期(止)',
+          type: 'warning',
+        })
+        return
+      }
+      //时间
+      if (
+        new Date(this.deptBudgetList.deliveryDateStart).getTime() >
+        new Date(this.deptBudgetList.deliveryDateEnd).getTime()
+      ) {
+        this.$message({
+          message: '交货日期(止)选择错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.signingDate) {
+        this.$message({
+          message: '请选择签订日期',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractGoodsInfo.goodsName) {
+        this.$message({
+          message: '请选择货名',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractGoodsInfo.waterContent) {
+        this.$message({
+          message: '请输入水分',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractGoodsInfo.grade) {
+        this.$message({
+          message: '请选择品级',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractGoodsInfo.transgene) {
+        this.$message({
+          message: '请选择转基因',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.impurity ||
+        (String(this.deptBudgetList.contractGoodsInfo.impurity).indexOf('.') !=
+          -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.impurity).length -
+            (String(this.deptBudgetList.contractGoodsInfo.impurity).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '杂质输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.bulkDensity ||
+        (String(this.deptBudgetList.contractGoodsInfo.bulkDensity).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.bulkDensity).length -
+            (String(this.deptBudgetList.contractGoodsInfo.bulkDensity).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '容重输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.mildewGrain ||
+        (String(this.deptBudgetList.contractGoodsInfo.mildewGrain).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.mildewGrain).length -
+            (String(this.deptBudgetList.contractGoodsInfo.mildewGrain).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '霉变粒输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.jiaorenli ||
+        (String(this.deptBudgetList.contractGoodsInfo.jiaorenli).indexOf('.') !=
+          -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.jiaorenli).length -
+            (String(this.deptBudgetList.contractGoodsInfo.jiaorenli).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '热损伤输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.imperfectGrain ||
+        (String(this.deptBudgetList.contractGoodsInfo.imperfectGrain).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.imperfectGrain).length -
+            (String(
+              this.deptBudgetList.contractGoodsInfo.imperfectGrain
+            ).indexOf('.') +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '不完整粒输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.protein ||
+        (String(this.deptBudgetList.contractGoodsInfo.protein).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.protein).length -
+            (String(
+              this.deptBudgetList.contractGoodsInfo.protein
+            ).indexOf('.') +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '蛋白输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractProcessInfo.goodsNameKey > 1000000000 ||
+        this.deptBudgetList.contractProcessInfo.goodsNameKey < 0 ||
+        (String(this.deptBudgetList.contractProcessInfo.goodsNameKey).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractProcessInfo.goodsNameKey).length -
+            (String(
+              this.deptBudgetList.contractProcessInfo.goodsNameKey
+            ).indexOf('.') +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '合同收入金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractProcessInfo.waterContent > 10000000 ||
+        this.deptBudgetList.contractProcessInfo.waterContent < 0 ||
+        (String(this.deptBudgetList.contractProcessInfo.waterContent).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractProcessInfo.waterContent).length -
+            (String(
+              this.deptBudgetList.contractProcessInfo.waterContent
+            ).indexOf('.') +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '费用金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractProcessInfo.goodsName > 1000000000 ||
+        this.deptBudgetList.contractProcessInfo.goodsName < 0 ||
+        (String(this.deptBudgetList.contractProcessInfo.goodsName).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractProcessInfo.goodsName).length -
+            (String(this.deptBudgetList.contractProcessInfo.goodsName).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '已开发票金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractProcessInfo.impurity > 1000000000 ||
+        this.deptBudgetList.contractProcessInfo.impurity < 0 ||
+        (String(this.deptBudgetList.contractProcessInfo.impurity).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractProcessInfo.impurity).length -
+            (String(this.deptBudgetList.contractProcessInfo.impurity).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '未开发票金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      
+      var that = this
+      this.$refs.deptBudgetList.validate((valid) => {
+        if (valid) {
+          this.deptBudgetList.contractGoodsInfo.outputPrivate = CodeToText[this.selectedOptions1[0]]
+          this.deptBudgetList.contractGoodsInfo.outputCity = CodeToText[this.selectedOptions1[1]]
+         
+          this.deptBudgetList.deliveryProvince = CodeToText[this.selectedOptions[0]]
+          this.deptBudgetList.deliveryCity = CodeToText[this.selectedOptions[1]]
+        
+          this.deptBudgetList.compId = this.compId
+          this.deptBudgetList.contractType = 2
+          this.deptBudgetList.goodsType = 2
+           if(this.deptBudgetList.deliveryProvince =="澳门特别行政区" || this.deptBudgetList.deliveryProvince == "澳门特别行政区"){
+            this.deptBudgetList.deliveryArea = "特别行政区"
+          }else{ 
+                 this.deptBudgetList.deliveryArea =  CodeToText[this.selectedOptions[2]]
+          }
+          this.deptBudgetList.addressUrl = this.addressUrls.toString()
+
+          addList(this.deptBudgetList)
+            .toPromise()
+            .then((response) => {
+              this.$message.success('添加成功')
+              this.deptBudgetList = {
+                deliverType: '1',
+                finalTradingVolume: 0,
+                contractGoodsInfo: {
+                  goodsName: '',
+                },
+                contractProcessInfo: {},
+              }
+              this.$router.push({ path: 'futuresPurchaseContract' })
+            })
+            .catch((req) => {
+              EventBus.$emit('error', req.message)
+            })
+        } else {
+          // for (let key in that.rules) {
+          //   EventBus.$emit('error', that.rules[key][0].message)
+          //   return false
+          // }
+          return false
+        }
+      })
+    },
+    resetForm(deptBudgetList) {
+      this.$refs[deptBudgetList].resetFields()
+    },
+    addClick() {
+      this.unitList.push({
+        flag: 'add',
+        constValue: '',
+        constKey: '',
+      })
+    },
+    saveClick(item, index) {
+      if (Object.is(item.id, 1)) {
+        return
+      }
+      if (Object.is(this.unitList[index].flag, 'delete')) {
+        this.$set(this.unitList, index, { flag: 'check' })
+      } else {
+        this.$set(this.unitList, index, { flag: 'delete' })
+      }
+      if (!item.constValue) {
+        this.unitList.splice(index, 1)
+        return
+      }
+      if (item.flag == 'add') {
+        item.constKey = Math.random() * 20
+        this.acceptanceCheck.compId = this.compId
+        this.acceptanceCheck.constKey = item.constKey
+        this.acceptanceCheck.constCode = 'TYPEYAN'
+        this.acceptanceCheck.constValue = item.constValue
+        this.acceptanceCheck.id = item.id
+        addxiala(this.acceptanceCheck)
+          .toPromise()
+          .then((response) => {
+            this.getUnitList()
+          })
+      } else if (item.flag == 'check') {
+        this.acceptanceCheck.compId = this.compId
+        this.acceptanceCheck.constKey = item.constKey
+        this.acceptanceCheck.constCode = 'TYPEYAN'
+        this.acceptanceCheck.constValue = item.constValue
+        this.acceptanceCheck.id = item.id
+        editxiala(this.acceptanceCheck)
+          .toPromise()
+          .then((response) => {
+            this.getUnitList()
+          })
+      }
+    },
+    selectChapterTwo(e) {
+      for (var i = 0; i < this.ChapterTwoList.length; i++) {
+        if (this.ChapterTwoList[i].constValue == e) {
+          this.deptBudgetList.gradeKey = this.ChapterTwoList[i].constKey
+        }
+      }
+    },
+    selectunitList(e) {
+      for (var i = 0; i < this.unitList.length; i++) {
+        if (this.unitList[i].constValue == e) {
+          this.deptBudgetList.acceptanceMethodKey = this.unitList[i].constKey
+        }
+      }
+    },
+    selectgrade(e) {
+      for (var i = 0; i < this.gradeList.length; i++) {
+        if (this.gradeList[i].constValue == e) {
+          this.deptBudgetList.gradeKey = this.gradeList[i].constKey
+        }
+      }
+    },
+    selecttransgene(e) {
+      for (var i = 0; i < this.transgeneList.length; i++) {
+        if (this.transgeneList[i].constValue == e) {
+          this.deptBudgetList.gradeKey = this.transgeneList[i].constKey
+        }
+      }
+    },
+    selectgoodsName(e) {
+      for (var i = 0; i < this.goodnameList.length; i++) {
+        if (this.goodnameList[i].constValue == e) {
+          this.deptBudgetList.goodsNameKey = this.goodnameList[i].constKey
+        }
+      }
+    },
+    selectwarehouseName() {},
+    selectpackingMethod(e) {
+      for (var i = 0; i < this.packtypeList.length; i++) {
+        if (this.packtypeList[i].constValue == e) {
+          this.deptBudgetList.packingMethodKey = this.packtypeList[i].constKey
+        }
+      }
+    },
+    // 编辑
+    editClick(item, index) {
+      const map = JSON.parse(JSON.stringify(item))
+      if (Object.is(item.id, 1)) {
+        return
+      }
+      if (Object.is(this.unitList[index].flag, 'delete')) {
+        map.flag = 'check'
+        this.$set(this.unitList, index, map)
+      } else {
+        map.flag = 'delete'
+        this.$set(this.unitList, index, map)
+      }
+    },
+    // 删除
+    deleteClick(item, index) {
+      if (Object.is(item.constKey, 1)) {
+        return
+      }
+      if (!item.constValue) {
+        this.unitList.splice(index, 1)
+        return
+      }
+      delxiala({ id: this.unitList[index].id })
+        .toPromise()
+        .then((response) => {
+          this.getUnitList()
+          this.pleaseChoose = ''
+        })
+    },
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+.el-form {
+  padding: 0 15%;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 1px solid #cdd2dc;
+  border-bottom: 1px solid #cdd2dc;
+}
+.readonly {
+  position: relative;
+}
+.readonly:after {
+  content: '*';
+  color: #ff2727;
+  position: absolute;
+  right: 8px;
+  z-index: 10;
+  top: 21%;
+  font-size: 20px;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  padding: 0 25px;
+  border-left: 1px solid #cdd2dc;
+  background: #fafbfc;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 140px;
+  text-align: center;
+  background: #f0f2f6;
+  // border: 1px solid #cdd2dc;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.box-app {
+  display: inline-block;
+  float: left;
+  margin-left: 30px;
+  line-height: 50px;
+}
+/deep/.el-dialog {
+  .el-form-item {
+    margin-bottom: 0 !important;
+    .el-input--medium {
+      textarea {
+        min-height: 100px !important;
+      }
+    }
+  }
+}
+.collapse-bottom {
+  margin-bottom: 20px;
+}
+.input-main .textarea .el-textarea__inner {
+  width: 100%;
+  z-index: 1;
+}
+.bg-left {
+  padding-left: 30px;
+}
+.bg-right {
+  padding-right: 10px;
+  text-align: right;
+}
+.bg-bottom {
+  margin: 15px 0px;
+}
+.wenzi h3 {
+  display: inline-block;
+  left: 10px;
+}
+.wenzi p {
+  display: inline-block;
+}
+.center {
+  width: 70%;
+  margin: 0 auto;
+}
+.el-form-item {
+  width: 50%;
+}
+.el-form-item__label {
+  text-align: center;
+}
+.ce {
+  width: 900px;
+  margin: 0 auto;
+}
+/*.crt-main .textarea /deep/ .el-form-item__label {*/
+/*  height: 82px;*/
+/*}*/
+// 控制select为只读的时候显示样式
+
+.hide-sel {
+  .el-input__inner {
+    border: 0px;
+  }
+  .el-icon-arrow-up {
+    display: none;
+  }
+  .el-textarea__inner {
+    background-color: #fff !important;
+    border: 0;
+  }
+  .el-date-editor {
+    i {
+      display: none;
+    }
+  }
+  .is-disabled {
+    .el-input__inner:hover {
+      background-color: #fff !important;
+      border: 0;
+    }
+    color: #606266;
+    .el-input__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+    .el-textarea__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+  }
+}
+
+// 控制select为只读的时候显示样式
+/deep/.ws-class-table-col {
+  height: auto;
+  padding: 0px 2px;
+  /deep/.el-input__inner {
+    padding: 0px 2px;
+  }
+}
+/deep/.is-disabled {
+  .el-input__prefix,
+  .el-input__suffix {
+    display: none;
+  }
+  .el-input__inner {
+    background-color: #fff;
+    border-color: #fff !important;
+    color: #000 !important;
+    font-size: 14px;
+    cursor: text;
+    padding: 0 !important;
+  }
+}
+.winseaview-view {
+  padding: 0 0 20px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+/deep/.ws-info-table[data-v-850a44a6] .el-form-item .el-form-item__label {
+  width: 130px;
+}
+.el-textarea {
+  width: 101%;
+}
+.addressUrls {
+  width: 100%;
+  display: flex;
+  margin-top: 10px;
+}
+.addressUrls-item {
+  position: relative;
+  display: flex;
+}
+.icon-guanbi {
+  position: absolute;
+  right: 8px;
+}
+.addressUrl {
+  margin: 0px 10px;
+  border-radius: 3px;
+}
+//上传文件成功标识
+/deep/.el-upload-list__item-status-label {
+    position: absolute;
+    right: 22px;
+    top: -1px;
+    line-height: inherit;
+    display: none;
+}
+</style>

+ 1811 - 0
src/views/contractManagement/futuresPurchaseContractEdit.vue

@@ -0,0 +1,1811 @@
+<!--期货采购合同编辑-->
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="12">
+        <h2 class="bg-left title">修改合同信息</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right">
+        <el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="returnsales()"
+          ><img
+            width="6"
+            height="10"
+            style="vertical-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt=""
+          />
+          返回</el-button
+        >
+      </el-col>
+    </el-row>
+    <ws-form
+      ref="deptBudgetList"
+      :rules="mainReportAdd"
+      :model="deptBudgetList"
+    >
+      <div class="remark">
+        <h3>基本信息</h3>
+        <p style="color: #8890b1">
+          &nbsp;&nbsp;注:基本信息和货物信息均为必填项,“*”
+          标记的条目提交后不可修改。
+        </p>
+        <div class="queren">
+          <el-button
+            class="bg-bottom"
+            type="primary"
+            size="small"
+            @click="confirmationsheet()"
+            >确认单</el-button
+          >
+        </div>
+      </div>
+      <ws-info-table>
+        <!-- 合同编号 -->
+        <ws-form-item
+          class="readonly"
+          label="合同编号"
+          span="1"
+          prop="contractNo"
+        >
+          {{ deptBudgetList.contractNo }}
+        </ws-form-item>
+
+        <!--运输方式-->
+        <ws-form-item label="运输方式" span="1" prop="shippingType">
+          <ws-input
+            v-model="deptBudgetList.shippingType"
+            placeholder="请输入运输方式"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--买方-->
+        <ws-form-item label="买方" span="1" prop="buyer">
+          <ws-input
+            v-model="deptBudgetList.buyer"
+            placeholder="请输入买方名称"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--结算方式-->
+        <ws-form-item label="结算方式" span="1" prop="settlementMethod">
+          <ws-input
+            v-model="deptBudgetList.settlementMethod"
+            placeholder="请输入结算方式"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--买方电话-->
+        <ws-form-item label="买方电话" span="1" prop="contractNo">
+          <ws-input
+            v-model.number="deptBudgetList.buyerPhone"
+            placeholder="请输入买方电话"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--交货方式-->
+        <ws-form-item
+          class="readonly"
+          label="交货方式"
+          span="1"
+          prop="sourceGoods"
+        >
+          {{ deptBudgetList.deliverType1 }}
+        </ws-form-item>
+        <!--卖方-->
+        <ws-form-item label="卖方" span="1" prop="seller">
+          <ws-input
+            v-model="deptBudgetList.seller"
+            placeholder="请输入卖方名称"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--包装方式-->
+        <ws-form-item label="包装方式" span="1" prop="packingMethod">
+          <ws-select
+            v-model="deptBudgetList.packingMethod"
+            placeholder=""
+            class="typeselect"
+            :value="value1"
+            @change="selectpackingMethod"
+          >
+            <ws-option
+              v-for="item in packtypeList"
+              :key="item.constKey"
+              :label="item.constValue"
+              :value="item.constValue"
+            />
+          </ws-select>
+        </ws-form-item>
+        <!--卖方电话-->
+        <ws-form-item label="卖方电话" span="1" prop="sellerPhone">
+          <ws-input
+            v-model="deptBudgetList.sellerPhone"
+            placeholder="请输入卖方电话"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--验收方式-->
+        <ws-form-item label="验收方式" span="1" prop="acceptanceMethod">
+          <el-select
+            v-model="deptBudgetList.acceptanceMethod"
+            placeholder="请选择验收方式"
+            style="width: 100%"
+            filterable
+            @change="selectunitList"
+          >
+            <el-option
+              v-for="(item, index) in unitList"
+              :key="item.constValue"
+              :label="item.constValue"
+              :value="item.constValue"
+            >
+              <span class="unit-left" style="float: left">
+                <span v-if="item.flag == 'delete'"> {{ item.constValue }}</span>
+                <!-- 新增文本框 -->
+                <div
+                  style="width: 160px"
+                  v-if="item.flag !== 'delete'"
+                  @click.stop
+                >
+                  <ws-input
+                    v-model="item.constValue"
+                    clearable
+                    maxlength="10"
+                    style="width: 100%"
+                  ></ws-input>
+                </div>
+              </span>
+              <span style="float: right; color: #8492a6; font-size: 13px">
+                <!-- 对号 -->
+                <i
+                  class="el-icon-check"
+                  style="line-height: 29px; margin-left: 10px"
+                  v-if="item.flag !== 'delete'"
+                  @click.stop="saveClick(item, index)"
+                ></i>
+                <!-- 编辑 -->
+                <i
+                  class="el-icon-edit"
+                  style="line-height: 29px; margin-left: 10px"
+                  v-if="item.flag == 'delete'"
+                  @click.stop="editClick(item, index)"
+                ></i>
+                <!-- 删除 -->
+                <i
+                  class="el-icon-delete"
+                  style="line-height: 29px"
+                  @click.stop="deleteClick(item, index)"
+                ></i>
+              </span>
+            </el-option>
+            <!-- 新增按钮 -->
+            <el-option value="" label="">
+              <div
+                style="
+                  text-align: right;
+                  border-top: 1px solid #dcdfe6;
+                  padding: 5px;
+                "
+              >
+                <ws-button type="primary" @click.stop="addClick">{{
+                  $t('button.add')
+                }}</ws-button>
+              </div>
+            </el-option>
+          </el-select>
+        </ws-form-item>
+        <!--交易数量(吨)-->
+        <ws-form-item label="交易数量(吨)" span="1" prop="weight">
+          <ws-input
+            @input="weightchange"
+            v-model="deptBudgetList.weight"
+            placeholder="请输入重量(吨)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--入库费(元/吨)-->
+        <ws-form-item label="入库费(元/吨)" span="1" prop="warehousingFee">
+          <ws-input
+            v-model="deptBudgetList.warehousingFee"
+            placeholder="请输入入库费(元/吨)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--基差(元/吨)-->
+        <ws-form-item label="基差(元/吨)" span="1" prop="basisPrice">
+          <ws-input
+            v-model="deptBudgetList.basisPrice"
+            placeholder="请输入基差(元/吨)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--计量标准-->
+        <ws-form-item label="计量标准" span="1" prop="measurementStandard">
+          <ws-input
+            v-model="deptBudgetList.measurementStandard"
+            placeholder="请输入计量标准,如库内磅单"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--交易所-->
+        <ws-form-item label="交易所" span="1" prop="transactionsPlace">
+          <ws-input
+            v-model="deptBudgetList.transactionsPlace"
+            placeholder="请输入交易所"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--收货库-->
+        <el-form-item label="收货库" span="1" prop="receiveWarehouse">
+          <el-select
+            v-model="deptBudgetList.receiveWarehouse"
+            placeholder="请选择收货库"
+            class="typeselect"
+            @change="selectwarehouseName"
+          >
+            <el-option
+              v-for="item in warehouseNameList"
+              :key="item.constKey"
+              :label="item.warehouseName"
+              :value="item.warehouseName"
+            />
+          </el-select>
+        </el-form-item>
+        <!--合约号-->
+        <ws-form-item label="合约号" span="1" prop="contractNumber">
+          <ws-input
+            v-model="deptBudgetList.contractNumber"
+            placeholder="请输入合约号"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--交货所在地区-->
+        <ws-form-item label="交货所在地区" span="1" prop="">
+          <el-cascader
+            :options="options_"
+            v-model="selectedOptions"
+            clearable
+            size="large"
+            placeholder="请选择交货所在地区"
+            style="width: 200%"
+            @change="handleChange"
+          />
+        </ws-form-item>
+        <!--点价(元/吨)-->
+        <ws-form-item label="点价(元/吨)" span="1" prop="pointPrice">
+          <ws-input
+            v-model="deptBudgetList.pointPrice"
+            placeholder="请输入合约点价"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--交货详细地址-->
+        <ws-form-item label="交货详细地址" span="1" prop="placeDelivery">
+          <ws-input
+            v-model="deptBudgetList.placeDelivery"
+            placeholder="请输入交货详细地址"
+            maxlength="20"
+            size="small"
+          />
+        </ws-form-item>
+        <!--点价日期-->
+        <ws-form-item label="点价日期" span="1" prop="pointPriceDate">
+          <ws-date-picker
+            v-model="deptBudgetList.pointPriceDate"
+            type="date"
+            placeholder="请选择点价日期"
+            value-format="yyyy-MM-dd"
+          />
+        </ws-form-item>
+        <!--签订日期-->
+        <ws-form-item label="签订日期" span="1" prop="signingDate">
+          <ws-date-picker
+            v-model="deptBudgetList.signingDate"
+            type="date"
+            placeholder="请选择合同签订日期"
+            value-format="yyyy-MM-dd"
+          />
+        </ws-form-item>
+
+        <!--交货日期(起)-->
+        <ws-form-item label="交货日期(起)" span="1" prop="deliveryDateStart">
+          <ws-date-picker
+            v-model="deptBudgetList.deliveryDateStart"
+            type="date"
+            placeholder="请选择交货日期(起)"
+            value-format="yyyy-MM-dd"
+          />
+        </ws-form-item>
+        <!--临时仓库负责人-->
+        <ws-form-item
+          v-show="deptBudgetList.deliverType == 1"
+          label="临时仓库负责人"
+          span="1"
+          prop="packingMethod"
+        >
+          <el-select
+            v-model="deptBudgetList.personCharge"
+            placeholder="请选择临时仓库负责人"
+            filterable
+            :filter-method="dataFilter"
+            @change="selectstaff"
+          >
+            <el-option
+              v-for="item in options"
+              :key="item.value"
+              :label="item.staffName"
+              :value="item.staffName"
+            />
+          </el-select>
+        </ws-form-item>
+        <!--交货日期(止)-->
+        <ws-form-item label="交货日期(止)" span="1" prop="deliveryDateEnd">
+          <ws-date-picker
+            v-model="deptBudgetList.deliveryDateEnd"
+            type="date"
+            placeholder="请选择交货日期(止)"
+            value-format="yyyy-MM-dd"
+          />
+        </ws-form-item>
+      </ws-info-table>
+
+      <div class="wenzi">
+        <h3>货物信息</h3>
+      </div>
+      <!--货物信息-->
+
+      <ws-info-table>
+        <!--货名-->
+        <ws-form-item
+          class="readonly"
+          label="货名"
+          span="1"
+          prop="waterContent"
+        >
+          {{ deptBudgetList.contractGoodsInfo.goodsName }}
+        </ws-form-item>
+        <!--水分(%)<=-->
+        <ws-form-item label="水分(%)" span="1" prop="waterContent">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.waterContent"
+            placeholder="请输入水分占比"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--品级-->
+        <ws-form-item label="品级" span="1" prop="grade">
+          <ws-select
+            v-model="deptBudgetList.contractGoodsInfo.grade"
+            placeholder="请选择品级"
+            class="typeselect"
+            @change="selectgrade"
+          >
+            <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
+            v-model="deptBudgetList.contractGoodsInfo.impurity"
+            placeholder="请输入杂质占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--容量(克/升)>=-->
+        <ws-form-item label="容量(克/升)" span="1" prop="bulkDensity">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.bulkDensity"
+            placeholder="请输入容重"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--霉变粒(%)<=-->
+        <ws-form-item label="霉变粒(%)" span="1" prop="mildewGrain">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.mildewGrain"
+            placeholder="请输入霉变粒占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--热损伤(%)<=-->
+        <ws-form-item label="热损伤(%)" span="1" prop="jiaorenli">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.jiaorenli"
+            placeholder="请输入输入热损伤占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--不完整粒(%)<=-->
+        <ws-form-item label="不完整粒(%)" span="1" prop="imperfectGrain">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.imperfectGrain"
+            placeholder="请输入不完整粒占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--蛋白(%)>=-->
+        <ws-form-item label="蛋白(%)" span="1" prop="protein">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.protein"
+            placeholder="请输入蛋白占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--转基因-->
+        <ws-form-item label="转基因" span="1" prop="transgene">
+          <ws-select
+            v-model="deptBudgetList.contractGoodsInfo.transgene"
+            placeholder="请选择转基因要求"
+            class="typeselect"
+            @change="selecttransgene"
+          >
+            <ws-option
+              v-for="item in transgeneList"
+              :key="item.constKey"
+              :label="item.constValue"
+              :value="item.constValue"
+            />
+          </ws-select>
+        </ws-form-item>
+        <!--产地-->
+        <ws-form-item label="产地" span="1" prop="protein">
+          <el-cascader
+            :options="options1_"
+            v-model="selectedOptions1"
+            clearable
+            size="large"
+            placeholder="请选择产地"
+            @change="handleChange1"
+            style="width: 200%"
+          />
+        </ws-form-item>
+      </ws-info-table>
+
+      <div class="wenzi">
+        <h3>流程信息</h3>
+      </div>
+      <!--流程信息-->
+
+      <ws-info-table>
+        <!--已付款(元)-->
+        <ws-form-item label="已付款(元)" span="1" prop="goodsNameKey">
+          <ws-input
+            v-model="deptBudgetList.contractProcessInfo.goodsNameKey"
+            placeholder="请输入已付款(元)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--已开发票(元)-->
+        <ws-form-item label="已开发票(元)" span="1" prop="goodsName">
+          <ws-input
+            v-model="deptBudgetList.contractProcessInfo.goodsName"
+            placeholder="请输入已开发票(元)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--费用支出(元)-->
+        <ws-form-item label="费用支出(元)" span="1" prop="waterContent">
+          <ws-input
+            v-model="deptBudgetList.contractProcessInfo.waterContent"
+            placeholder="请输入费用支出(元)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--未开发票(元)-->
+        <ws-form-item label="未开发票(元)" span="1" prop="impurity">
+          <ws-input
+            v-model="deptBudgetList.contractProcessInfo.impurity"
+            placeholder="请输入未开发票(元)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--双章原件回收情况-->
+        <ws-form-item label="双章原件回收情况" span="1" prop="grade">
+          <ws-select
+            v-model="deptBudgetList.contractProcessInfo.grade"
+            placeholder=""
+            class="typeselect"
+            @change="selectChapterTwo"
+          >
+            <ws-option
+              v-for="item in ChapterTwoList"
+              :key="item.constKey"
+              :label="item.constValue"
+              :value="item.constValue"
+            />
+          </ws-select>
+        </ws-form-item>
+      </ws-info-table>
+
+      <div class="wenzi">
+        <h3>备注信息</h3>
+      </div>
+      <!--备注信息-->
+      <ws-input
+        v-model="deptBudgetList.remarks"
+        type="textarea"
+        row="3"
+        placeholder="请输入备注信息,不超过200字"
+        maxlength="200"
+      />
+
+      <el-upload
+        class="upload-demo"
+        action="https://www.zthymaoyi.com/upload/admin"
+        :on-success="
+          (res, file) => {
+            uploadSuccessHandle(res)
+          }
+        "
+        multiple
+        :limit="3"
+        :file-list="fileList"
+      >
+        <el-button size="small" type="primary">点击上传</el-button>
+        <div slot="tip" class="el-upload__tip">
+          推荐格式.jpg, .jpeg, .png, .gif, .pdf, .doc, .zip,
+          .rar,单个文件大小不超过10M
+        </div>
+      </el-upload>
+    </ws-form>
+    <div style="text-align: right; padding: 10px" class="center">
+      <el-button
+        class="bg-bottom"
+        type="primary"
+        size="small"
+        @click="submit(deptBudgetList)"
+        >提交</el-button
+      >
+    </div>
+  </div>
+</template>
+<script>
+import {
+  regionData,
+  provinceAndCityDataPlus,
+  CodeToText,
+  TextToCode,
+} from 'element-china-area-data'
+import {
+  packList,
+  getwarehousename,
+  xiala,
+  addxiala,
+  editxiala,
+  delxiala,
+  examineList,
+  editInfo,
+  getstaff,
+} from '@/model/contarct/index'
+import WsUpload from '@/components/WsUpload'
+import { EventBus, dayjs } from 'base-core-lib'
+export default {
+  name: 'viewSpareMoney',
+  watch: {
+    vesselId(val) {
+      this.getVesselData()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  components: {
+    WsUpload,
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      size: 10,
+      // 提交类型
+      submitType: true,
+      tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
+      ruleDeptBudget: [],
+      deptBudgetList: {
+        contractProcessInfo: {},
+        contractGoodsInfo: {},
+      },
+      options_: regionData,
+      selectedOptions: [],
+      selectedOptions1: [],
+      mainReportAdd: {},
+      list: {},
+      transgeneList: [],
+      unitList: [],
+      options_: regionData,
+      options1_: provinceAndCityDataPlus,
+      staffList: [],
+      packtypeList: [],
+      goodnameList: [],
+      gradeList: [],
+      warehouseNameList: [],
+      warehouseNameList1: [],
+      ChapterTwoList: [],
+      appendixIdsAdd: '',
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      acceptanceCheck: {},
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      addressUrls: [],
+      addressUrl: '',
+      fileList: [],
+    }
+  },
+
+  activated() {
+    getstaff({ compId: sessionStorage.getItem('ws-pf_compId') })
+      .toPromise()
+      .then((response) => {
+        this.options = response
+        this.staffList = response
+      })
+    this.loaddata()
+    this.showType = this.isShow
+  },
+  methods: {
+    close(index) {
+      this.addressUrls.splice(index, 1)
+    },
+    dataFilter(val) {
+      this.deptBudgetList.personCharge = val
+      if (val) {
+        //val存在
+        this.options = this.staffList.filter((item) => {
+          if (
+            !!~item.staffName.indexOf(val) ||
+            !!~item.staffName.toUpperCase().indexOf(val.toUpperCase())
+          ) {
+            return true
+          }
+        })
+      } else {
+        //val为空时,还原数组
+        this.options = this.staffList
+      }
+    },
+    selectstaff(e) {
+      for (var i = 0; i < this.staffList.length; i++) {
+        if (this.staffList[i].staffName == e) {
+          this.deptBudgetList.personPhone = this.staffList[i].staffMobilePhone
+          this.deptBudgetList.personChargeKey = this.staffList[i].staffId
+        }
+      }
+    },
+    handleChange(value) {
+      this.selectedOptions = value
+      this.dataList.deliveryProvince = CodeToText[value[0]]
+      this.dataList.deliveryCity = CodeToText[value[1]]
+      this.dataList.deliveryArea = CodeToText[value[2]]
+    },
+    handleChange1(value) {
+      this.selectedOptions1 = value
+      this.dataList.contractGoodsInfo.outputPrivate = CodeToText[value[0]]
+      this.dataList.contractGoodsInfo.outputCity = CodeToText[value[1]]
+    },
+    loaddata() {
+      // 数据
+      examineList({ id: this.$route.query.id })
+        .toPromise()
+        .then((response) => {
+          this.deptBudgetList = response
+          this.selectedOptions = tmp
+          var tmp = []
+          tmp[0] = TextToCode[response.deliveryProvince].code
+          tmp[1] =
+            TextToCode[response.deliveryProvince][response.deliveryCity].code
+          tmp[2] =
+            TextToCode[response.deliveryProvince][response.deliveryCity][
+              response.deliveryArea
+            ].code
+
+          if (tmp[0] == 810000 || tmp[0] == 820000) {
+            tmp[2] = null
+          } else {
+            tmp[2] =
+              TextToCode[response.deliveryProvince][response.deliveryCity][
+                response.deliveryArea
+              ].code
+          }
+          this.selectedOptions = tmp
+          var tmp1 = []
+          tmp1[0] = TextToCode[response.contractGoodsInfo.outputPrivate].code
+          tmp1[1] =
+            TextToCode[response.contractGoodsInfo.outputPrivate][response.contractGoodsInfo.outputCity].code
+          this.selectedOptions1 = tmp1
+          if (this.deptBudgetList.deliverType == 1) {
+            this.deptBudgetList.deliverType1 = '我方自提'
+          } else if (this.deptBudgetList.deliverType == 2) {
+            this.deptBudgetList.deliverType1 = '对方送货'
+          }
+
+          if (this.deptBudgetList.addressUrl != null) {
+            this.addressUrls = this.deptBudgetList.addressUrl.split(',')
+            this.fileList = this.deptBudgetList.addressUrl.split(',')
+          }
+        })
+
+      // 包装方式
+      packList({ constId: 'CON1' })
+        .toPromise()
+        .then((response) => {
+          this.packtypeList = response
+        })
+      // 验收方式
+      this.getUnitList()
+      // 货名
+      packList({ constId: 'CON2' })
+        .toPromise()
+        .then((response) => {
+          this.goodnameList = response
+        })
+      // 品级
+      packList({ constId: 'CON3' })
+        .toPromise()
+        .then((response) => {
+          this.gradeList = response
+        })
+      //转基因
+      packList({ constId: 'CON7' })
+        .toPromise()
+        .then((response) => {
+          this.transgeneList = response
+        })
+      //收货库
+      getwarehousename({
+        compId: this.compId,
+        warehouseType: 1,
+      })
+        .toPromise()
+        .then((response) => {
+          this.warehouseNameList = response
+        })
+      getwarehousename({
+        compId: this.compId,
+        warehouseType: 2,
+      })
+        .toPromise()
+        .then((response) => {
+          this.warehouseNameList1 = response
+        })
+      // 双章
+      packList({ constId: 'CON4' })
+        .toPromise()
+        .then((response) => {
+          this.ChapterTwoList = response
+        })
+    },
+    addClick() {
+      this.unitList.push({
+        flag: 'add',
+        constValue: '',
+        constKey: '',
+      })
+    },
+    // 上传附件
+    uploadSuccessHandle(e) {
+      this.addressUrl += e.url + ''
+      this.addressUrls.push(this.addressUrl.split(','))
+    },
+    getUnitList() {
+      xiala({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        constCode: 'TYPEYAN',
+      })
+        .toPromise()
+        .then((response) => {
+          this.unitList = response
+          let currItem
+          this.unitList.forEach((item, index, arr) => {
+            item.flag = 'delete'
+            if (this.vModel == item.constKey) {
+              currItem = item
+            }
+          })
+          //
+          if (currItem) {
+            this.selectContract(currItem.constValue)
+          }
+        })
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleClose() {
+      this.dialogViewSpareMoney = false
+    },
+    // handleExamine(row) {
+    //   console.log(row)
+    //   this.$router.push({
+    //     name: 'futuresPurchaseContractExamine',
+    //     query: { id: row.id, status: row.status },
+    //   })
+    // },
+    // approve() {},
+    returnsales() {
+      this.$router.push({ path: 'futuresPurchaseContract' })
+    },
+    confirmationsheet() {
+      this.$router.push({ path: 'priceConfirmationSheet' })
+    },
+    selectChapterTwo(e) {
+      for (var i = 0; i < this.ChapterTwoList.length; i++) {
+        if (this.ChapterTwoList[i].constValue == e) {
+          this.deptBudgetList.gradeKey = this.ChapterTwoList[i].constKey
+        }
+      }
+    },
+    selectunitList(e) {
+      for (var i = 0; i < this.unitList.length; i++) {
+        if (this.unitList[i].constValue == e) {
+          this.deptBudgetList.packingMethodKey = this.unitList[i].constKey
+        }
+      }
+    },
+    selecttransgene(e) {
+      for (var i = 0; i < this.transgeneList.length; i++) {
+        if (this.transgeneList[i].constValue == e) {
+          this.deptBudgetList.gradeKey = this.transgeneList[i].constKey
+        }
+      }
+    },
+    selectwarehouseName() {},
+    selectgrade(e) {
+      for (var i = 0; i < this.gradeList.length; i++) {
+        if (this.gradeList[i].constValue == e) {
+          this.deptBudgetList.gradeKey = this.gradeList[i].constKey
+        }
+      }
+    },
+    selectpackingMethod(e) {
+      for (var i = 0; i < this.packtypeList.length; i++) {
+        if (this.packtypeList[i].constValue == e) {
+          this.deptBudgetList.acceptanceMethodKey =
+            this.packtypeList[i].constKey
+        }
+      }
+    },
+    saveClick(item, index) {
+      console.log(item)
+
+      if (Object.is(item.id, 1)) {
+        return
+      }
+      if (Object.is(this.unitList[index].flag, 'delete')) {
+        this.$set(this.unitList, index, { flag: 'check' })
+      } else {
+        this.$set(this.unitList, index, { flag: 'delete' })
+      }
+      if (!item.constValue) {
+        this.unitList.splice(index, 1)
+        return
+      }
+      if (item.flag == 'add') {
+        item.constKey = Math.random() * 20
+        this.acceptanceCheck.compId = this.compId
+        this.acceptanceCheck.constKey = item.constKey
+        this.acceptanceCheck.constCode = 'TYPEYAN'
+        this.acceptanceCheck.constValue = item.constValue
+        this.acceptanceCheck.id = item.id
+        addxiala(this.acceptanceCheck)
+          .toPromise()
+          .then((response) => {
+            this.getUnitList()
+          })
+      } else if (item.flag == 'check') {
+        this.acceptanceCheck.compId = this.compId
+        this.acceptanceCheck.constKey = item.constKey
+        this.acceptanceCheck.constCode = 'TYPEYAN'
+        this.acceptanceCheck.constValue = item.constValue
+        this.acceptanceCheck.id = item.id
+        editxiala(this.acceptanceCheck)
+          .toPromise()
+          .then((response) => {
+            this.getUnitList()
+          })
+      }
+    },
+    // 编辑
+    editClick(item, index) {
+      const map = JSON.parse(JSON.stringify(item))
+      if (Object.is(item.id, 1)) {
+        return
+      }
+      if (Object.is(this.unitList[index].flag, 'delete')) {
+        map.flag = 'check'
+        this.$set(this.unitList, index, map)
+      } else {
+        map.flag = 'delete'
+        this.$set(this.unitList, index, map)
+      }
+    },
+    // 删除
+    deleteClick(item, index) {
+      if (Object.is(item.constKey, 1)) {
+        return
+      }
+      if (!item.constValue) {
+        this.unitList.splice(index, 1)
+        return
+      }
+      delxiala({ id: this.unitList[index].id })
+        .toPromise()
+        .then((response) => {
+          this.getUnitList()
+          this.pleaseChoose = ''
+        })
+    },
+    submit() {
+      if (!this.deptBudgetList.contractNo) {
+        this.$message({
+          message: '请输入合同编号',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractNo.length < 6 ||
+        this.deptBudgetList.contractNo.length > 20
+      ) {
+        this.$message({
+          message: '合同编号长度不符合要求,请输入6到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.shippingType) {
+        this.$message({
+          message: '请输入运输方式!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.shippingType.length < 1 ||
+        this.deptBudgetList.shippingType.length > 20
+      ) {
+        this.$message({
+          message: '运输方式长度不符合要求,请输入1到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.buyer) {
+        this.$message({
+          message: '请输入买方名称!',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.deptBudgetList.buyer.length > 30) {
+        this.$message({
+          message: '买方名称长度不符合要求,请输入30个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.seller) {
+        this.$message({
+          message: '请输入卖方名称!',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.deptBudgetList.seller.length > 30) {
+        this.$message({
+          message: '卖方名称长度不符合要求,请输入30个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.buyerPhone) {
+        this.$message({
+          message: '请输入买方电话!',
+          type: 'warning',
+        })
+        return
+      }
+      if (isNaN(this.deptBudgetList.buyerPhone)) {
+        this.$message({
+          message: '输入买方电话有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.buyerPhone.length < 7 ||
+        this.deptBudgetList.buyerPhone.length > 20
+      ) {
+        this.$message({
+          message: '买方电话长度不符合要求,请输入7到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.sellerPhone) {
+        this.$message({
+          message: '请输入卖方电话!',
+          type: 'warning',
+        })
+        return
+      }
+      if (isNaN(this.deptBudgetList.sellerPhone)) {
+        this.$message({
+          message: '输入卖方电话有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.buyerPhone.length < 7 ||
+        this.deptBudgetList.buyerPhone.length > 20
+      ) {
+        this.$message({
+          message: '卖方电话长度不符合要求,请输入7到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.weight) {
+        this.$message({
+          message: '请输入交易数量!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        isNaN(this.deptBudgetList.weight) ||
+        (String(this.deptBudgetList.weight).indexOf('.') != -1 &&
+          String(this.deptBudgetList.weight).length -
+            (String(this.deptBudgetList.weight).indexOf('.') + 1) >
+            3) ||
+        this.deptBudgetList.weight < 0 ||
+        this.deptBudgetList.weight > 200000
+      ) {
+        this.$message({
+          message: '输入交易数量有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.basisPrice) {
+        this.$message({
+          message: '请输入基差!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        isNaN(this.deptBudgetList.basisPrice) ||
+        (String(this.deptBudgetList.basisPrice).indexOf('.') != -1 &&
+          String(this.deptBudgetList.basisPrice).length -
+            (String(this.deptBudgetList.basisPrice).indexOf('.') + 1) >
+            3) ||
+        this.deptBudgetList.basisPrice < 0 ||
+        this.deptBudgetList.basisPrice > 10000
+      ) {
+        this.$message({
+          message: '基差输入错误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.transactionsPlace) {
+        this.$message({
+          message: '请输入交易所!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.transactionsPlace.length < 2 ||
+        this.deptBudgetList.transactionsPlace.length > 15
+      ) {
+        this.$message({
+          message: '交易所长度不符合要求,请输入2到15个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractNumber) {
+        this.$message({
+          message: '请输入合约号!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractNumber.length < 2 ||
+        this.deptBudgetList.contractNumber.length > 15
+      ) {
+        this.$message({
+          message: '合约号长度不符合要求,请输入2到15个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.pointPrice) {
+        this.$message({
+          message: '请输入点价!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        isNaN(this.deptBudgetList.pointPrice) ||
+        (String(this.deptBudgetList.pointPrice).indexOf('.') != -1 &&
+          String(this.deptBudgetList.pointPrice).length -
+            (String(this.deptBudgetList.pointPrice).indexOf('.') + 1) >
+            3) ||
+        this.deptBudgetList.pointPrice < 0 ||
+        this.deptBudgetList.pointPrice > 100000
+      ) {
+        this.$message({
+          message: '输入点价有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.warehousingFee) {
+        this.$message({
+          message: '请输入入库费!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        isNaN(this.deptBudgetList.warehousingFee) ||
+        (String(this.deptBudgetList.warehousingFee).indexOf('.') != -1 &&
+          String(this.deptBudgetList.warehousingFee).length -
+            (String(this.deptBudgetList.warehousingFee).indexOf('.') + 1) >
+            3) ||
+        this.deptBudgetList.warehousingFee < 0 ||
+        this.deptBudgetList.warehousingFee > 1000
+      ) {
+        this.$message({
+          message: '入库费输入错误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.measurementStandard) {
+        this.$message({
+          message: '请输入计量标准!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.measurementStandard.length < 1 ||
+        this.deptBudgetList.measurementStandard.length > 20
+      ) {
+        this.$message({
+          message: '计量标准长度不符合要求,请输入1到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.settlementMethod) {
+        this.$message({
+          message: '请输入结算方式!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.placeDelivery) {
+        this.$message({
+          message: '请输入交货详细地址!',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.selectedOptions.length == 0) {
+        this.$message({
+          message: '请选择交货所在地区!',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.selectedOptions1.length == 0) {
+        this.$message({
+          message: '请选择产地!',
+          type: 'warning',
+        })
+        return
+      }
+
+      if (!this.deptBudgetList.deliveryDateStart) {
+        this.$message({
+          message: '请选择交货日期(起)',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.deliveryDateEnd) {
+        this.$message({
+          message: '请选择交货日期(止)',
+          type: 'warning',
+        })
+        return
+      }
+      //时间
+      if (
+        new Date(this.deptBudgetList.deliveryDateStart).getTime() >
+        new Date(this.deptBudgetList.deliveryDateEnd).getTime()
+      ) {
+        this.$message({
+          message: '交货日期(止)选择错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.signingDate) {
+        this.$message({
+          message: '请选择签订日期',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractGoodsInfo.goodsName) {
+        this.$message({
+          message: '请选择货名',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractGoodsInfo.waterContent) {
+        this.$message({
+          message: '请输入水分',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractGoodsInfo.grade) {
+        this.$message({
+          message: '请选择品级',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractGoodsInfo.transgene) {
+        this.$message({
+          message: '请选择转基因',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.impurity ||
+        (String(this.deptBudgetList.contractGoodsInfo.impurity).indexOf('.') !=
+          -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.impurity).length -
+            (String(this.deptBudgetList.contractGoodsInfo.impurity).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '杂质输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.bulkDensity ||
+        (String(this.deptBudgetList.contractGoodsInfo.bulkDensity).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.bulkDensity).length -
+            (String(this.deptBudgetList.contractGoodsInfo.bulkDensity).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '容重输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.mildewGrain ||
+        (String(this.deptBudgetList.contractGoodsInfo.mildewGrain).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.mildewGrain).length -
+            (String(this.deptBudgetList.contractGoodsInfo.mildewGrain).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '霉变粒输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.jiaorenli ||
+        (String(this.deptBudgetList.contractGoodsInfo.jiaorenli).indexOf('.') !=
+          -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.jiaorenli).length -
+            (String(this.deptBudgetList.contractGoodsInfo.jiaorenli).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '热损伤输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.imperfectGrain ||
+        (String(this.deptBudgetList.contractGoodsInfo.imperfectGrain).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.imperfectGrain).length -
+            (String(
+              this.deptBudgetList.contractGoodsInfo.imperfectGrain
+            ).indexOf('.') +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '不完整粒输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.protein ||
+        (String(this.deptBudgetList.contractGoodsInfo.protein).indexOf('.') !=
+          -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.protein).length -
+            (String(this.deptBudgetList.contractGoodsInfo.protein).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '蛋白输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractProcessInfo.goodsNameKey > 1000000000 ||
+        this.deptBudgetList.contractProcessInfo.goodsNameKey < 0 ||
+        (String(this.deptBudgetList.contractProcessInfo.goodsNameKey).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractProcessInfo.goodsNameKey).length -
+            (String(
+              this.deptBudgetList.contractProcessInfo.goodsNameKey
+            ).indexOf('.') +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '合同收入金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractProcessInfo.waterContent > 10000000 ||
+        this.deptBudgetList.contractProcessInfo.waterContent < 0 ||
+        (String(this.deptBudgetList.contractProcessInfo.waterContent).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractProcessInfo.waterContent).length -
+            (String(
+              this.deptBudgetList.contractProcessInfo.waterContent
+            ).indexOf('.') +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '费用金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractProcessInfo.goodsName > 1000000000 ||
+        this.deptBudgetList.contractProcessInfo.goodsName < 0 ||
+        (String(this.deptBudgetList.contractProcessInfo.goodsName).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractProcessInfo.goodsName).length -
+            (String(this.deptBudgetList.contractProcessInfo.goodsName).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '已开发票金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractProcessInfo.impurity > 1000000000 ||
+        this.deptBudgetList.contractProcessInfo.impurity < 0 ||
+        (String(this.deptBudgetList.contractProcessInfo.impurity).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractProcessInfo.impurity).length -
+            (String(this.deptBudgetList.contractProcessInfo.impurity).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '未开发票金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      this.$refs.deptBudgetList.validate((valid) => {
+        if (valid) {
+          this.deptBudgetList.contractGoodsInfo.outputPrivate =
+            CodeToText[this.selectedOptions1[0]]
+          this.deptBudgetList.contractGoodsInfo.outputCity =
+            CodeToText[this.selectedOptions1[1]]
+
+          this.deptBudgetList.deliveryProvince =
+            CodeToText[this.selectedOptions[0]]
+          this.deptBudgetList.deliveryCity = CodeToText[this.selectedOptions[1]]
+            this.deptBudgetList.deliveryArea = CodeToText[this.selectedOptions[2]]
+
+          this.deptBudgetList.compId = this.compId
+          this.deptBudgetList.contractType = 2
+
+          if (
+            this.deptBudgetList.deliveryProvince == '澳门特别行政区' ||
+            this.deptBudgetList.deliveryProvince == '澳门特别行政区'
+          ) {
+            this.deptBudgetList.deliveryArea = '特别行政区'
+          } else {
+            this.deptBudgetList.deliveryArea =
+              CodeToText[this.selectedOptions[2]]
+
+          }
+          this.deptBudgetList.addressUrl = this.addressUrls.toString()
+
+          editInfo(this.deptBudgetList)
+            .toPromise()
+            .then((response) => {
+              this.$message.success('编辑成功')
+              this.$router.push({ path: 'futuresPurchaseContract' })
+            })
+        } else {
+          EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+          return false
+        }
+      })
+    },
+  },
+}
+</script>
+<style lang="scss" scoped>
+.el-form {
+  padding: 0 15%;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 1px solid #cdd2dc;
+  border-bottom: 1px solid #cdd2dc;
+}
+.readonly {
+  position: relative;
+}
+.readonly:after {
+  content: '*';
+  color: #ff2727;
+  position: absolute;
+  right: 8px;
+  z-index: 10;
+  top: 21%;
+  font-size: 20px;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  padding: 0 25px;
+  border-left: 1px solid #cdd2dc;
+  background: #fafbfc;
+  color: #8890b1;
+}
+/deep/.el-form-item.is-success .el-input__inner,
+/deep/.el-cascader .el-input .el-input__inner,
+/deep/.el-textarea__inner {
+  color: #8890b1;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 140px;
+  text-align: center;
+  background: #f0f2f6;
+  // border: 1px solid #cdd2dc;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.box-app {
+  display: inline-block;
+  float: left;
+  margin-left: 30px;
+  line-height: 50px;
+}
+/deep/.el-dialog {
+  .el-form-item {
+    margin-bottom: 0 !important;
+    .el-input--medium {
+      textarea {
+        min-height: 100px !important;
+      }
+    }
+  }
+}
+.collapse-bottom {
+  margin-bottom: 20px;
+}
+.input-main .textarea .el-textarea__inner {
+  width: 100%;
+  z-index: 1;
+}
+.bg-left {
+  padding-left: 30px;
+}
+.bg-right {
+  padding-right: 10px;
+  text-align: right;
+}
+.bg-bottom {
+  margin: 15px 0px;
+}
+.wenzi {
+  width: 900px;
+  margin: 0 auto;
+}
+.wenzi h3 {
+  display: inline-block;
+  left: 10px;
+}
+.wenzi p {
+  display: inline-block;
+}
+.center {
+  width: 900px;
+  margin: 0 auto;
+}
+.el-form-item {
+  width: 50%;
+}
+.el-form-item__label {
+  text-align: center;
+}
+.ce {
+  width: 900px;
+  margin: 0 auto;
+}
+/*.crt-main .textarea /deep/ .el-form-item__label {*/
+/*  height: 82px;*/
+/*}*/
+// 控制select为只读的时候显示样式
+
+.hide-sel {
+  .el-input__inner {
+    border: 0px;
+  }
+  .el-icon-arrow-up {
+    display: none;
+  }
+  .el-textarea__inner {
+    background-color: #fff !important;
+    border: 0;
+  }
+  .el-date-editor {
+    i {
+      display: none;
+    }
+  }
+  .is-disabled {
+    .el-input__inner:hover {
+      background-color: #fff !important;
+      border: 0;
+    }
+    color: #606266;
+    .el-input__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+    .el-textarea__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+  }
+}
+
+// 控制select为只读的时候显示样式
+/deep/.ws-class-table-col {
+  height: auto;
+  padding: 0px 2px;
+  /deep/.el-input__inner {
+    padding: 0px 2px;
+  }
+}
+/deep/.is-disabled {
+  .el-input__prefix,
+  .el-input__suffix {
+    display: none;
+  }
+  .el-input__inner {
+    background-color: #fff;
+    border-color: #fff !important;
+    color: #000 !important;
+    font-size: 14px;
+    cursor: text;
+    padding: 0 !important;
+  }
+}
+.winseaview-view {
+  padding: 0 0 20px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 130px;
+}
+.el-textarea {
+  width: 101%;
+}
+/deep/.iconclose:before {
+  display: none;
+}
+/deep/.winsea-card .card__header {
+  font-size: 14px;
+  color: #409eff;
+  padding: 0 0 20px 10px;
+  position: relative;
+  display: none;
+}
+.addressUrls {
+  width: 100%;
+  display: flex;
+  margin-top: 10px;
+}
+.addressUrls-item {
+  position: relative;
+  display: flex;
+}
+.icon-guanbi {
+  position: absolute;
+  right: 8px;
+}
+.addressUrl {
+  margin: 0px 10px;
+  border-radius: 3px;
+}
+.queren {
+  margin-left: 100%;
+  margin-top: -60px;
+}
+//上传文件成功标识
+/deep/.el-upload-list__item-status-label {
+  position: absolute;
+  right: 22px;
+  top: -1px;
+  line-height: inherit;
+  display: none;
+}
+</style>

+ 667 - 0
src/views/contractManagement/futuresPurchaseContractExamine.vue

@@ -0,0 +1,667 @@
+<!--期货采购合同查看-->
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="12">
+        <h2 class="bg-left title">查看合同详情</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right">
+        <el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="returnsales()"
+          ><img
+            width="6"
+            height="10"
+            style="vertical-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt=""
+          />返回</el-button
+        >
+      </el-col>
+    </el-row>
+
+    <ws-form ref="deptBudgetList" :rules="mainReportAdd" :model="deptBudgetList"
+      ><div style="margin-top: 20px; font-size: 24px">
+        采购合同<span style="font-size: 16px"
+          >【编号:{{ deptBudgetList.contractNo }}】</span
+        >
+        <div class="icon">
+        <template>
+          <el-popover
+            placement="right"
+            :width="285"
+            trigger="click"
+            visible-arrow="false"
+            @show="history(deptBudgetList.id)"
+          >
+          <template>
+            <div slot="reference"> {{deptBudgetList.status }}</div>
+          </template>
+            <div>
+              <p style="margin-top: 0; padding-left: 10px">操作历史</p>
+              <div v-for="(item, index) in historyList" class="flex">
+                <div class="vertical-text vertical-text-left">
+                  {{ item.updateDate }}
+                </div>
+                <div>
+                  <div class="vertical-circle"></div>
+                  <div
+                    v-if="index != historyList.length - 1"
+                    class="vertical-line"
+                  ></div>
+                </div>
+                <div class="vertical-text">
+                  {{ item.operateUser }}<br />{{ item.dealMsg }}
+                </div>
+              </div>
+            </div>
+          </el-popover>
+        </template>
+      </div>
+      </div>
+      <div class="remark">
+        <h3>基本信息</h3>
+        <div class="queren"><el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="confirmationsheet()"
+          >确认单</el-button
+        ></div>
+      </div>
+      <ws-info-table>
+        <ws-form-item label="合同编号" span="1" prop="contractNo">
+          {{ deptBudgetList.contractNo }}
+        </ws-form-item>
+        <ws-form-item label="运输方式" span="1" prop="shippingType">
+          {{ deptBudgetList.shippingType }}
+        </ws-form-item>
+        <ws-form-item label="买方" span="1" prop="buyer">
+          {{ deptBudgetList.buyer }}
+        </ws-form-item>
+        <ws-form-item label="结算方式" span="1" prop="settlementMethod"
+          >{{ deptBudgetList.settlementMethod }}
+        </ws-form-item>
+        <ws-form-item label="买方电话" span="1" prop="buyerPhone"
+          >{{ deptBudgetList.buyerPhone }}
+        </ws-form-item>
+        <ws-form-item label="交货方式" span="1" prop="deliverType1"
+          >{{ deptBudgetList.deliverType1 }}
+        </ws-form-item>
+        <ws-form-item label="卖方" span="1" prop="seller"
+          >{{ deptBudgetList.seller }}
+        </ws-form-item>
+        <ws-form-item label="包装方式" span="1" prop="packingMethod">
+          {{ deptBudgetList.packingMethod }}
+        </ws-form-item>
+        <ws-form-item label="卖方电话" span="1" prop="sellerPhone">
+          {{ deptBudgetList.sellerPhone }}
+        </ws-form-item>
+        <ws-form-item label="验收方式" span="1" prop="acceptanceMethod">
+          {{ deptBudgetList.acceptanceMethod }}
+        </ws-form-item>
+        <ws-form-item label="交易数量(吨)" span="1" prop="weight">
+          {{ deptBudgetList.weight }}
+        </ws-form-item>
+        <ws-form-item label="入库费(元/吨)" span="1" prop="warehousingFee">
+          {{ deptBudgetList.warehousingFee }}
+        </ws-form-item>
+        <ws-form-item label="基差(元/吨)" span="1" prop="basisPrice">
+          {{ deptBudgetList.basisPrice }}
+        </ws-form-item>
+        <ws-form-item label="计量标准" span="1" prop="measurementStandard">
+          {{ deptBudgetList.measurementStandard }}
+        </ws-form-item>
+        <ws-form-item label="交易所" span="1" prop="transactionsPlace">
+          {{ deptBudgetList.transactionsPlace }}
+        </ws-form-item>
+        <ws-form-item label="收货库" span="1" prop="receiveWarehouse">
+          {{ deptBudgetList.receiveWarehouse }}
+        </ws-form-item>
+        <ws-form-item label="合约号" span="1" prop="contractNumber">
+          {{ deptBudgetList.contractNumber }}
+        </ws-form-item>
+        <ws-form-item label="交货地所在地区" span="1">
+          {{ deptBudgetList.deliveryProvince }}
+          {{ deptBudgetList.deliveryCity }}
+          {{ deptBudgetList.deliveryArea }}
+        </ws-form-item>
+        <ws-form-item label="点价(元/吨)" span="1" prop="pointPrice">
+          {{ deptBudgetList.pointPrice }}
+        </ws-form-item>
+        <ws-form-item label="交货地详细地址" span="1" prop=" placeDelivery">
+          {{ deptBudgetList.placeDelivery }}
+        </ws-form-item>
+        <ws-form-item label="点价日期" span="1" prop="pointPriceDate">
+          {{ deptBudgetList.pointPriceDate }}
+        </ws-form-item>
+        <ws-form-item label="签订日期" span="1" prop="signingDate">
+          {{ deptBudgetList.signingDate }}
+        </ws-form-item>
+        <ws-form-item label="交货日期(起)" span="1" prop="deliveryDateStart">
+          {{ deptBudgetList.deliveryDateStart }}
+        </ws-form-item>
+        <ws-form-item label="临时仓库负责人" span="1" prop="personCharge">
+          {{ deptBudgetList.personCharge }}
+        </ws-form-item>
+        <ws-form-item label="交货日期(止)" span="1" prop="deliveryDateEnd">
+          {{ deptBudgetList.deliveryDateEnd }}
+        </ws-form-item>
+      </ws-info-table>
+      <!--货物信息-->
+      <div class="remark">
+        <h3>货物信息</h3>
+      </div>
+      <ws-info-table>
+        <ws-form-item label="货名" span="1" prop="waterContent">
+          {{ deptBudgetList.contractGoodsInfo.goodsName }}
+        </ws-form-item>
+        <ws-form-item label="水分(%)<=" span="1" prop="intendedShipId">
+          {{ deptBudgetList.contractGoodsInfo.waterContent }}
+        </ws-form-item>
+        <ws-form-item label="品级" span="1" prop="grade">
+          {{ deptBudgetList.contractGoodsInfo.grade }}
+        </ws-form-item>
+        <ws-form-item label="杂质(%)<=" span="1" prop="impurity">
+          {{ deptBudgetList.contractGoodsInfo.impurity }}
+        </ws-form-item>
+        <ws-form-item label="容重(克/升)<=" span="1" prop="bulkDensity">
+          {{ deptBudgetList.contractGoodsInfo.bulkDensity }}
+        </ws-form-item>
+        <ws-form-item
+          label="霉变粒(%)<="
+          span="1"
+          prop="mildewGrain"
+          class="result"
+        >
+          {{ deptBudgetList.contractGoodsInfo.mildewGrain }}
+        </ws-form-item>
+        <ws-form-item label="热损伤(%)<=" span="1" prop="jiaorenli">
+          {{ deptBudgetList.contractGoodsInfo.jiaorenli }}
+        </ws-form-item>
+        <ws-form-item
+          label="不完善粒(%)<="
+          span="1"
+          prop="imperfectGrain"
+          class="result"
+        >
+          {{ deptBudgetList.contractGoodsInfo.imperfectGrain }}
+        </ws-form-item>
+        <ws-form-item
+          label="蛋白(%)>="
+          span="1"
+          prop="protein"
+          class="result"
+        >
+          {{ deptBudgetList.contractGoodsInfo.protein }}
+        </ws-form-item>
+        <ws-form-item label="转基因" span="1" prop="transgene">
+          {{ deptBudgetList.contractGoodsInfo.transgene }}
+        </ws-form-item>
+        <ws-form-item label="产地" span="1" >
+          {{ deptBudgetList.contractGoodsInfo.outputPrivate }}
+          {{ deptBudgetList.contractGoodsInfo.outputCity }}
+        </ws-form-item>
+      </ws-info-table>
+      <div class="remark">
+        <h3>流程信息</h3>
+      </div>
+      <ws-info-table>
+         <!--已付款(元)-->
+        <ws-form-item label="已付款(元)" span="1" prop="goodsNameKey">
+          {{deptBudgetList.contractProcessInfo.goodsNameKey}}
+        </ws-form-item>
+        <ws-form-item label="已开发票(元)" span="1" prop="goodsName">
+          {{ deptBudgetList.contractProcessInfo.goodsName }}
+        </ws-form-item>
+        <ws-form-item label="费用支出(元)" span="1" prop="waterContent"
+          >{{ deptBudgetList.contractProcessInfo.waterContent }}
+        </ws-form-item>
+        <ws-form-item label="未开发票(元)" span="1" prop="impurity"
+          >{{ deptBudgetList.contractProcessInfo.impurity }}
+        </ws-form-item>
+        <ws-form-item label="双章原件回收情况" span="1" prop="grade"
+          >{{ deptBudgetList.contractProcessInfo.grade }}
+        </ws-form-item>
+      </ws-info-table>
+      <div class="remark">
+        <h3>备注信息</h3>
+      </div>
+      <div style=" color: #afb5cb;margin-left: 20px;">
+      {{ deptBudgetList.remarks }}
+      </div>
+      <!-- <img :src="deptBudgetList.addressUrl" alt="" /> -->
+    </ws-form>
+    <div style="text-align: right; padding: 10px">
+      <el-button
+        class="bg-bottom"
+        type="primary"
+        size="small"
+        @click="returnsales()"
+        >关闭</el-button
+      >
+    </div>
+  </div>
+</template>
+<script>
+import {
+  packList,
+  xiala,
+  examineList,
+  billoperatehis,
+} from '@/model/contarct/index'
+export default {
+  name: 'viewSpareMoney',
+  watch: {
+    vesselId(val) {
+      this.getVesselData()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      status: '',
+      // 提交类型
+      submitType: true,
+      historyList:[],
+      tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
+      ruleDeptBudget: [],
+      deptBudgetList: {
+        contractProcessInfo: {},
+        contractGoodsInfo: {},
+      },
+      mainReportAdd: {},
+      list: {},
+      // contractNo:this.deptBudgetList.contractNo,
+      // contractType : this.deptBudgetList.contractType
+
+    }
+  },
+
+  activated() {
+    this.status = this.$route.query.status
+    this.loaddata()
+    this.showType = this.isShow
+  },
+  methods: {
+    loaddata() {
+      // 数据
+      examineList({ id: this.$route.query.id })
+        .toPromise()
+        .then((response) => {
+          this.deptBudgetList = response
+          if (this.deptBudgetList.deliverType == 1) {
+            this.deptBudgetList.deliverType1 = '我方自提'
+          } else if (this.deptBudgetList.deliverType == 2) {
+            this.deptBudgetList.deliverType1 = '对方送货'
+          }
+        })
+      // 包装方式
+      packList({ constId: 'CON1' })
+        .toPromise()
+        .then((response) => {
+          this.packtypeList = response
+        })
+      // 验收方式
+      this.getUnitList()
+      // 货名
+      packList({ constId: 'CON2' })
+        .toPromise()
+        .then((response) => {
+          this.goodnameList = response
+        })
+      // 品级
+      packList({ constId: 'CON3' })
+        .toPromise()
+        .then((response) => {
+          this.gradeList = response
+        })
+      //转基因
+      packList({ constId: 'CON7' })
+        .toPromise()
+        .then((response) => {
+          this.transgeneList = response
+        })  
+      // 双章
+      packList({ constId: 'CON4' })
+        .toPromise()
+        .then((response) => {
+          this.ChapterTwoList = response
+        })
+    },
+    getUnitList() {
+      xiala({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        constCode: 'TYPEYAN',
+      })
+        .toPromise()
+        .then((response) => {
+          this.unitList = response
+          let currItem
+          this.unitList.forEach((item, index, arr) => {
+            item.flag = 'delete'
+            if (this.vModel == item.constKey) {
+              currItem = item
+            }
+          })
+          //
+          if (currItem) {
+            this.selectContract(currItem.constValue)
+          }
+        })
+    },
+      history(id1) {
+      billoperatehis({ id: id1 })
+        .toPromise()
+        .then((response) => {
+          this.historyList = response
+        })
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleClose() {
+      this.dialogViewSpareMoney = false
+    },
+    returnsales() {
+      this.$router.push({ path: 'futuresPurchaseContract' })
+    },
+    confirmationsheet() {
+      this.$router.push({ path: 'priceConfirmationSheet',
+      query: { contractNo: this.deptBudgetList.contractNo , contractType: this.deptBudgetList.contractType } })
+    },
+  },
+}
+</script>
+<style lang="scss" scoped>
+.status-orange,
+.status-bule,
+.status-green {
+  border: 1px solid;
+  border-radius: 30px;
+  padding: 3px 10px;
+  font-size: 16px;
+}
+.status-orange {
+  border-color: #ff9f24;
+  color: #ff9f24;
+  background: #ffedd5;
+}
+.status-bule {
+  border-color: #5473e8;
+  color: #5473e8;
+  background: #f0f3fe;
+}
+.status-green {
+  border-color: #50cad4;
+  color: #50cad4;
+  background: #ecfeff;
+}
+.el-form {
+  padding: 0 15%;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 1px solid #cdd2dc;
+  border-bottom: 1px solid #cdd2dc;
+}
+.readonly {
+  position: relative;
+}
+.readonly:after {
+  content: '*';
+  color: #ff2727;
+  position: absolute;
+  right: 8px;
+  z-index: 10;
+  top: 21%;
+  font-size: 20px;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  padding: 0 25px;
+  border-left: 1px solid #cdd2dc;
+  background: #fafbfc;
+  color: #afb5cb;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 140px;
+  text-align: center;
+  background: #f0f2f6;
+  // border: 1px solid #cdd2dc;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.box-app {
+  display: inline-block;
+  float: left;
+  margin-left: 30px;
+  line-height: 50px;
+}
+/deep/.el-dialog {
+  .el-form-item {
+    margin-bottom: 0 !important;
+    .el-input--medium {
+      textarea {
+        min-height: 100px !important;
+      }
+    }
+  }
+}
+.collapse-bottom {
+  margin-bottom: 20px;
+}
+.input-main .textarea .el-textarea__inner {
+  width: 100%;
+  z-index: 1;
+}
+.bg-left {
+  padding-left: 30px;
+}
+.bg-right {
+  padding-right: 10px;
+  text-align: right;
+}
+.bg-bottom {
+  margin: 15px 0px;
+}
+.wenzi {
+  width: 900px;
+  margin: 0 auto;
+}
+.wenzi h3 {
+  display: inline-block;
+  left: 10px;
+}
+.wenzi p {
+  display: inline-block;
+}
+.center {
+  width: 900px;
+  margin: 0 auto;
+}
+.el-form-item {
+  width: 50%;
+}
+.el-form-item__label {
+  text-align: center;
+}
+.ce {
+  width: 900px;
+  margin: 0 auto;
+}
+/*.crt-main .textarea /deep/ .el-form-item__label {*/
+/*  height: 82px;*/
+/*}*/
+// 控制select为只读的时候显示样式
+
+.hide-sel {
+  .el-input__inner {
+    border: 0px;
+  }
+  .el-icon-arrow-up {
+    display: none;
+  }
+  .el-textarea__inner {
+    background-color: #fff !important;
+    border: 0;
+  }
+  .el-date-editor {
+    i {
+      display: none;
+    }
+  }
+  .is-disabled {
+    .el-input__inner:hover {
+      background-color: #fff !important;
+      border: 0;
+    }
+    color: #606266;
+    .el-input__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+    .el-textarea__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+  }
+}
+
+// 控制select为只读的时候显示样式
+/deep/.ws-class-table-col {
+  height: auto;
+  padding: 0px 2px;
+  /deep/.el-input__inner {
+    padding: 0px 2px;
+  }
+}
+/deep/.is-disabled {
+  .el-input__prefix,
+  .el-input__suffix {
+    display: none;
+  }
+  .el-input__inner {
+    background-color: #fff;
+    border-color: #fff !important;
+    color: #000 !important;
+    font-size: 14px;
+    cursor: text;
+    padding: 0 !important;
+  }
+}
+.winseaview-view {
+  padding: 0 0 20px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+/deep/.ws-info-table[data-v-850a44a6] .el-form-item .el-form-item__label {
+  width: 130px;
+}
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+.vertical-text {
+  margin: 0 10px;
+  color: #8890b1;
+  font-size: 12px;
+  margin-top: -4px;
+}
+.vertical-line {
+  height: 100px;
+  border-left: 2px solid #e9ecf7;
+  margin-left: 4px;
+  padding: 0 3px;
+}
+.vertical-circle {
+  width: 10px;
+  height: 10px;
+  border: 2px solid #5878e8;
+  background-color: #ffffff;
+  -webkit-border-radius: 100px;
+}
+.vertical-circle:first-child {
+  color: red;
+}
+.icon {
+  display: inline-block;
+  width: 60px;
+  height: 24px;
+  background: #ecfeff;
+  border-radius: 12px;
+  border: 1px solid #50cad4;
+  position: relative;
+  font-size: 14px;
+  color: #50cad4;
+  line-height: 24px;
+  padding: 1px 7px;
+}
+.queren{
+  margin-left: 100%;
+  margin-top: -60px;
+}
+</style>

+ 933 - 0
src/views/contractManagement/futuresSalesContract.vue

@@ -0,0 +1,933 @@
+<!--期货销售合同-->
+<template>
+  <div>
+    <BaseHeaderLayout :leftSpan="8">
+      <template slot="left">
+        <ws-button
+          type="primary"
+          @click="handleAdd()"
+          v-hasPermission="`contractManagement.buyContract.buyContractInfo.add`"
+          ><img
+            width="13"
+            height="13"
+            style="
+              vertical-align: text-top;
+              position: relative;
+              top: 2px;
+              left: -4px;
+            "
+            src="../../../public/img/header-add.png"
+            alt=""
+          />添加</ws-button
+        >
+        <ws-button
+          @click="exportlist()"
+          v-hasPermission="
+            `contractManagement.buyContract.buyContractInfo.view`
+          "
+          >导出</ws-button
+        >
+      </template>
+      <template slot="right">
+        <span style="width: 142px; display: inline-block; color: #8890b1"
+          >状态:</span
+        >
+        <ws-select
+          v-model="searchTypeText"
+          placeholder=""
+          class="typeselect"
+          @change="selecttaskType"
+          :value="searchType"
+        >
+          <ws-option
+            v-for="item in taskTypeList"
+            :key="item.value"
+            :label="item.value"
+            :value="item.value"
+            style="color: #8890b1"
+          />
+        </ws-select>
+
+        <el-date-picker
+          v-model="value2"
+          type="daterange"
+          align="right"
+          unlink-panels
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          :picker-options="pickerOptions"
+        >
+        </el-date-picker>
+        <ws-input
+          v-model="searchKeyWord"
+          placeholder="可按照合同编号、买方名称、卖方名称进行查找"
+          clearable
+          maxlength="500"
+          type="input"
+          class="findValue"
+        ></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>
+    <el-table
+      class="wenzi"
+      :data="contractList.records"
+      style="width: 100%; margin-top: 10px"
+      height="780"
+    >
+      <el-table-column type="index" label="序号">
+        <template scope="scope">
+          <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+          <span v-else>{{ scope.$index + 1 }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="contractNo" label="合同编号" width="80">
+      </el-table-column>
+      <el-table-column prop="goodsName" label="货名" width="80">
+      </el-table-column>
+      <el-table-column prop="weight" label="重量(吨)"> </el-table-column>
+      <el-table-column prop="pointPrice" label="暂定点价(元/吨)">
+      </el-table-column>
+      <el-table-column prop="basisPrice" label="基差(元/吨)"> </el-table-column>
+      <el-table-column prop="buyer" label="买方"> </el-table-column>
+      <el-table-column prop="seller" label="卖方"> </el-table-column>
+      <el-table-column prop="status" label="状态">
+        <template slot-scope="scope">
+          <el-popover
+            placement="left"
+            :width="285"
+            trigger="click"
+            visible-arrow="false"
+            @show="history(scope.row)"
+          >
+            <template>
+              <span slot="reference">
+                <span
+                  v-if="scope.row.status == '待执行'"
+                  class="executory"
+                ></span>
+                <span
+                  v-if="scope.row.status == '执行中'"
+                  class="inExecution"
+                ></span>
+                <span v-if="scope.row.status == '已完成'" class="done"></span
+                >{{ scope.row.status }}
+              </span>
+            </template>
+            <div>
+              <p style="margin-top: 0; padding-left: 10px">操作历史</p>
+              <div
+                v-for="(item, index) in historyList"
+                :key="index"
+                class="flex"
+              >
+                <div class="vertical-text vertical-text-left">
+                  {{ item.updateDate }}
+                </div>
+                <div>
+                  <div class="vertical-circle"></div>
+                  <div
+                    v-if="index != historyList.length - 1"
+                    class="vertical-line"
+                  ></div>
+                </div>
+                <div class="vertical-text">
+                  {{ item.operateUser }}<br />{{ item.dealMsg }}
+                </div>
+              </div>
+            </div>
+          </el-popover>
+          <img
+            width="17"
+            height="18"
+            style="vertical-align: text-top; position: relative; top: -1px"
+            src="../../../public/img/edit.png"
+            @click="editClick(scope.row)"
+            alt=""
+          />
+          <!-- <i class="el-icon-edit" @click="editClick(scope.row)"></i> -->
+        </template>
+      </el-table-column>
+      <el-table-column prop="signingDate" label="签订日期"> </el-table-column>
+      <el-table-column prop="mildewGrain" label="已付款(元)">
+      </el-table-column>
+      <el-table-column prop="addressUrl" label="附件">
+        <template slot-scope="scope">
+          <img
+            width="18"
+            height="20"
+            style="vertical-align: text-top; position: relative; top: -1px"
+            src="../../../public/img/fujian.png"
+            @click="fujian(scope.row)"
+            alt=""
+          />
+          <span v-if="scope.row.addressUrlArray.length > 0">{{
+            scope.row.addressUrlArray.length
+          }}</span>
+          <!-- <i @click="fujian(scope.row)" class="el-icon-paperclip iconCss"></i> -->
+        </template>
+      </el-table-column>
+      <el-table-column prop="confirmCount" label="确认单" >
+      </el-table-column>
+      <el-table-column prop="address" label="操作" width="200">
+        <template slot-scope="scope">
+          <img
+            width="16"
+            height="16"
+            style="vertical-align: text-top; margin: 0 6px"
+            src="../../../public/img/chakan.png"
+            @click="handleExamine(scope.row)"
+            v-hasPermission="
+              `contractManagement.buyContract.buyContractInfo.view`
+            "
+            alt=""
+          />
+          <img
+            width="17"
+            height="16"
+            style="vertical-align: text-top; margin: 0 6px"
+            src="../../../public/img/bianji.png"
+            @click="handleEdit(scope.row)"
+            v-hasPermission="
+              `contractManagement.buyContract.buyContractInfo.edit`
+            "
+            alt=""
+          />
+          <img
+            width="16"
+            height="17"
+            style="
+              vertical-align: text-top;
+              position: relative;
+              top: -1px;
+              margin: 0 6px;
+            "
+            src="../../../public/img/shanchu.png"
+            v-hasPermission="
+              `contractManagement.buyContract.buyContractInfo.delete`
+            "
+            @click="handleDelete(scope.row)"
+            alt=""
+          />
+        </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>
+    <WinseaContentModal
+      v-model="accessoryTFs"
+      :title="$t('system.noticeCircular.information')"
+      @on-cancel="handleClose"
+    >
+      <el-upload
+        class="upload-demo"
+        action="https://www.zthymaoyi.com/upload/admin"
+        :on-success="
+          (res, file) => {
+            uploadSuccessHandle(res)
+          }
+        "
+        multiple
+        :limit="3"
+        :file-list="fileList"
+      >
+        <el-button size="small" type="primary">附件附件</el-button>
+        <div slot="tip" class="el-upload__tip">
+          推荐格式.jpg, .jpeg, .png, .gif, .pdf, .doc, .zip,
+          .rar,单个文件大小不超过10M
+        </div>
+      </el-upload>
+      <p>查看附件</p>
+      <div style="display: flex;">
+      <div style="display: flex; margin: 5px" v-for="item in this.appendixIdss">
+          <img width="100" height="100" :src="item" alt=""/>
+      </div>
+      </div>
+    </WinseaContentModal>
+  </div>
+</template>
+<script>
+import {
+  getList,
+  export1,
+  editstatus,
+  billoperatehis,
+  deletecontract,
+} from '@/model/contarct/index'
+import { downloadFile } from '@/utils/batchDown'
+import Pagination from '@/components/Pagination'
+import WsUpload from '@/components/WsUpload'
+import { dayjs, EventBus } from 'base-core-lib'
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+    Pagination,
+  },
+  watch: {
+    vesselId(val) {
+      this.getList()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      size: 10,
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      deliver_type: 1,
+      deptBudgetTotal: 0,
+      currentPage: 1,
+      pageSize: 10,
+      appendixIdsAdd: '',
+      searchType: 1,
+      searchTypeText: '未完成',
+      searchKeyWord: '',
+      contractType: 1,
+      goodsType: 2,
+      startDate: null,
+      endDate: null,
+      addressUrls: [],
+      accessurl: '',
+      accesscard: false,
+      // 提交类型
+      submitType: true,
+      deptCircularPage: {},
+      date: {
+        year: dayjs().format('YYYY'),
+        month: dayjs().format('MM'),
+      },
+      contractList: [],
+      deptBudgetList: {},
+      historyList: [],
+      appendixIdss: [],
+      fileList:[],
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+      taskTypeList: [
+        { value: '未完成', type: 1 },
+        { value: '已完成', type: 2 },
+        { value: '全部合同', type: '' },
+      ],
+      pickerOptions: {
+        shortcuts: [
+          {
+            text: '本周',
+            onClick(picker) {
+              const end = new Date()
+              const start = new Date()
+              var thisDay = start.getDay()
+              var thisDate = start.getDate()
+              if (thisDay != 0) {
+                start.setDate(thisDate - thisDay)
+              }
+              picker.$emit('pick', [start, end])
+            },
+          },
+          {
+            text: '本月',
+            onClick(picker) {
+              const end = new Date()
+              const start = new Date()
+              start.setDate(1)
+              picker.$emit('pick', [start, end])
+            },
+          },
+          {
+            text: '本季度',
+            onClick(picker) {
+              var oDate = new Date()
+
+              var thisYear = oDate.getFullYear()
+              var thisMonth = oDate.getMonth() + 1
+
+              var n = Math.ceil(thisMonth / 3) // 季度
+
+              var Month = n * 3 - 1
+
+              var start = new Date(thisYear, Month - 2, 1)
+              var end = new Date()
+
+              picker.$emit('pick', [start, end])
+            },
+          },
+        ],
+      },
+      value1: '',
+      value2: '',
+    }
+  },
+  activated() {
+    //cg.viewBudget
+    //cg.viewSpareMoney
+    // this.getVesselData();
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    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.dialogViewSpareMoney = false
+    },
+    handleClose1() {
+      this.accesscard = false
+    },
+    handleSizeChange(val) {
+      console.log(`每页 ${val} 条`)
+      this.pageSize = val
+      this.getList()
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val
+      console.log(`当前页: ${val}`)
+      this.getList()
+    },
+    getList() {
+      getList({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        contractType: this.contractType,
+        goodsType:this.goodsType,
+        currentPage: this.currentPage,
+        pageSize: this.pageSize,
+        searchType: this.searchType,
+        searchKeyWord: this.searchKeyWord,
+        startDate: this.startDate,
+        endDate: this.endDate,
+        contrPage: this.contrPage,
+      })
+        .toPromise()
+        .then((response) => {
+          for (var i = 0; i < response.records.length; i++) {
+            if (response.records[i].addressUrl != null) {
+              response.records[i].addressUrlArray =
+                response.records[i].addressUrl.split(',')
+            } else {
+              response.records[i].addressUrlArray = []
+            }
+          }
+          this.deptCircularPage.currentPage = response.current
+          this.deptCircularPage.pageSize = response.size
+          this.deptBudgetTotal = response.total
+          this.contractList = response
+          for (var i = 0; i < response.records.length; i++) {
+            var arr = new Array()
+            this.addressUrls[i] = new Array()
+            if (this.contractList.records[i].addressUrl != null) {
+              arr = this.contractList.records[i].addressUrl.split(',')
+              this.addressUrls[i] = arr
+            }
+          }
+        })
+    },
+    // 上传附件
+    uploadSuccess(data, files, url) {
+      console.log(data, files, url)
+
+      // this.deptBudgetList.
+      // this.formData.append('files', files)
+      // this.feedbackObj.uploadNameAttachment = data.appendixName
+      // this.feedbackObj.pathUploadAttachment = data.appendixPath
+      // // this.newAppendixs = files
+      // this.onChangeFlag = true
+    },
+    editClick(row) {
+      var status = ''
+      if (row.status == '待执行' || row.status == '已完成') {
+        status = '执行中'
+      } else if (row.status == '执行中') {
+        status = '已完成'
+      }
+      this.$confirm(`是否将状态改为${status}`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+        .then(() => {
+          editstatus({ id: row.id })
+            .toPromise()
+            .then((response) => {
+              this.$notify.success({
+                title: '成功',
+                message: '状态修改成功',
+              })
+              this.getList()
+            })
+            .catch((response) => {
+              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    selecttaskType(e) {
+      for (var i = 0; i < this.taskTypeList.length; i++) {
+        if (this.taskTypeList[i].value == e) {
+          this.searchType = this.taskTypeList[i].type
+        }
+      }
+    },
+    fujian(row) {
+      if (row.addressUrl === null || row.addressUrl === '') {
+        EventBus.$emit(
+          'warning',
+          this.$t('system.noticeCircular.NoInformation')
+        )
+      } else {
+        this.accessoryTFs = true
+      }
+      this.appendixIdss = row.addressUrl.split(',')
+    },
+    handleExamine(row) {
+      console.log(row)
+      this.$router.push({
+        name: 'futuresSalesContractExamine',
+        query: { id: row.id, status: row.status },
+      })
+    },
+    handleAdd() {
+      this.$router.push({ path: 'futuresSalesContractAdd' })
+    },
+    handleEdit(row) {
+      this.$router.push({
+        name: 'futuresSalesContractEdit',
+        query: { id: row.id },
+      })
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleCloe() {
+      this.dialogViewSpareMoney = false
+    },
+    history(row) {
+      console.log(row)
+      billoperatehis({ id: row.id })
+        .toPromise()
+        .then((response) => {
+          this.historyList = response
+        })
+    },
+    find() {
+      if (this.value2) {
+        this.startDate = this.dateFormat('YYYY-mm-dd', this.value2[0])
+        this.endDate = this.dateFormat('YYYY-mm-dd', this.value2[1])
+      } else {
+        this.startDate = ''
+        this.endDate = ''
+      }
+      this.currentPage = 1
+      this.getList()
+    },
+    async exportlist() {
+      const { data } = await export1(
+        {
+          compId: sessionStorage.getItem('ws-pf_compId'),
+          contractType: this.contractType,
+          goodsType:this.goodsType,
+          currentPage: this.currentPage,
+          pageSize: this.pageSize,
+          searchType: this.searchType,
+          searchKeyWord: this.searchKeyWord,
+          startDate: this.startDate,
+          endDate: this.endDate,
+        },
+        {},
+        { responseType: 'blob' }
+      ).toPromise()
+      downloadFile({
+        res: data,
+        fileName: `${
+          this.date.year + (this.date.month ? `-${this.date.month}` : '')
+        }_采购合同`,
+        type: 'xls',
+      })
+    },
+    // deletecontract(){},
+    //删除
+    handleDelete(row) {
+      var text = ''
+    //   if (row.deliverType == 1) {
+    //     text =
+    //       '删除该合同将同时永久删除合同对应的临时仓库相关数据,是否确定删除?'
+    //   } else {
+    //     text = '合同删除后不可恢复,是否继续删除?'
+    //   }
+      this.$confirm('合同删除后不可恢复,是否继续删除?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+        .then(() => {
+          deletecontract({ id: row.id })
+            .toPromise()
+            .then((response) => {
+              this.$notify.success({
+                title: '成功',
+                message: '删除成功',
+              })
+              this.getList()
+            })
+            .catch((response) => {})
+        })
+        .catch(() => {
+          return false
+        })
+    },
+  },
+}
+</script>
+<style lang="scss" scoped>
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+.flex {
+  display: flex;
+}
+.el-range-editor.el-input__inner {
+  margin-left: 10px;
+}
+/deep/.base_header_layout .grid-content.right .find.el-button--primary {
+  width: 30px;
+  margin-left: -10px;
+  border-top-left-radius: 0px;
+  border-bottom-left-radius: 0px;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-button--default {
+  border: 1px solid #5473e8;
+  color: #5473e8;
+}
+.warning {
+  width: 100%;
+  height: 2px;
+  background: red;
+}
+.executory,
+.inExecution,
+.done {
+  width: 6px;
+  height: 6px;
+  display: inline-block;
+  border-radius: 50%;
+  position: relative;
+  top: -1px;
+}
+.executory {
+  background: #ff9f24;
+}
+.inExecution {
+  background: #5878e8;
+}
+.done {
+  background: #50cad4;
+}
+.top-grade {
+  background: linear-gradient(90deg, #5678e9, #7993f6);
+  color: #fff;
+  padding: 3px;
+  border-radius: 2px;
+}
+.second-class {
+  background: linear-gradient(90deg, #50cdd9, #82e2ea);
+  color: #fff;
+  padding: 3px;
+  border-radius: 2px;
+}
+.third-class {
+  background: linear-gradient(90deg, #ffa735, #ffbf70);
+  color: #fff;
+  padding: 3px;
+  border-radius: 2px;
+}
+.substandard {
+  background: linear-gradient(90deg, #b2b4bb, #ced0d5);
+  color: #fff;
+  padding: 3px;
+  border-radius: 2px;
+}
+.wrap {
+  width: 400px;
+  position: absolute;
+  top: 131px;
+  left: 794px;
+  transform-origin: right center;
+  z-index: 2005;
+}
+.vertical-line {
+  height: 64px;
+  border-left: 2px solid #e9ecf7;
+  margin-left: 4px;
+  padding: 0 3px;
+  // border-image: -webkit-linear-gradient(#00eba7, #08b8e6) 30 30;
+  // border-image: -moz-linear-gradient(#00eba7, #08b8e6) 30 30;
+  // border-image: linear-gradient(#00eba7, #08b8e6) 30 30;
+}
+.el-pagination {
+  padding: 10px 15px;
+  margin-bottom: 0;
+  text-align: center;
+}
+/deep/.el-pager li.active {
+  color: #5878e8;
+  cursor: default;
+}
+/deep/.el-pager li:hover {
+  color: #5878e8;
+  cursor: default;
+}
+.vertical-circle {
+  width: 10px;
+  height: 10px;
+  border: 2px solid #5878e8;
+  background-color: #ffffff;
+  -webkit-border-radius: 100px;
+}
+.vertical-circle:first-child {
+  color: red;
+}
+.vertical-text {
+  margin: 0 10px;
+  color: #8890b1;
+  font-size: 12px;
+  margin-top: -4px;
+}
+/deep/.el-table .el-table__header .cell,
+/deep/.el-table .el-table__body .cell {
+  text-align: center;
+}
+.typeselect {
+  width: 500px;
+}
+.padding-xs {
+  padding: 15px;
+  text-align: right;
+}
+.clearfix:after {
+  content: '';
+  display: block;
+  clear: both;
+}
+.el-table {
+  font-size: 16px;
+}
+.taskType {
+  width: 100%;
+  background-color: #fff;
+  margin-top: 2px;
+  margin-bottom: 10px;
+  list-style: none;
+  // padding-bottom: 20px;
+  li {
+    float: left;
+    border: 1px solid #6ea0f3;
+    border-radius: 5px;
+    max-width: 190px;
+    padding: 0 5px;
+    text-align: center;
+    margin: 10px 20px;
+    cursor: pointer;
+    font-size: 14px;
+    p {
+      margin: 8px 0px;
+      span {
+        color: #e74c3c;
+      }
+    }
+  }
+  li:hover {
+    background-color: #e4eeff;
+    color: #1d6ced;
+  }
+}
+.el-date-editor--date {
+  margin: 0 10px;
+}
+.findValue {
+  margin: 0 10px;
+}
+/deep/.findValue .el-input__inner {
+  border-top-right-radius: 0px;
+  border-bottom-right-radius: 0px;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.box-app {
+  display: inline-block;
+  float: left;
+  margin-left: 30px;
+  line-height: 50px;
+}
+/deep/.el-dialog {
+  .el-form-item {
+    margin-bottom: 0 !important;
+    .el-input--medium {
+      textarea {
+        min-height: 100px !important;
+      }
+    }
+  }
+}
+.collapse-bottom {
+  margin-bottom: 20px;
+}
+
+.input-main .textarea .el-textarea__inner {
+  width: 100%;
+  z-index: 1;
+}
+/*.crt-main .textarea /deep/ .el-form-item__label {*/
+/*  height: 82px;*/
+/*}*/
+// 控制select为只读的时候显示样式
+
+.hide-sel {
+  .el-input__inner {
+    border: 0px;
+  }
+  .el-icon-arrow-up {
+    display: none;
+  }
+  .el-textarea__inner {
+    background-color: #fff !important;
+    border: 0;
+  }
+  .el-date-editor {
+    i {
+      display: none;
+    }
+  }
+  .is-disabled {
+    .el-input__inner:hover {
+      background-color: #fff !important;
+      border: 0;
+    }
+    color: #606266;
+    .el-input__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+    .el-textarea__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+  }
+}
+// 控制select为只读的时候显示样式
+/deep/.ws-class-table-col {
+  height: auto;
+  padding: 0px 2px;
+  /deep/.el-input__inner {
+    padding: 0px 2px;
+  }
+}
+/deep/.is-disabled {
+  .el-input__prefix,
+  .el-input__suffix {
+    display: none;
+  }
+  .el-input__inner {
+    background-color: #fff;
+    border-color: #fff !important;
+    color: #000 !important;
+    font-size: 14px;
+    cursor: text;
+    padding: 0 !important;
+  }
+}
+/deep/.typeselect .el-input__inner {
+  color: #8890b1;
+}
+</style>

+ 1772 - 0
src/views/contractManagement/futuresSalesContractAdd.vue

@@ -0,0 +1,1772 @@
+<!--期货销售合同添加-->
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="12">
+        <h2 class="bg-left title">创建销售合同</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right">
+        <el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="returnsales()"
+          ><img
+            width="6"
+            height="10"
+            style="vertical-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt=""
+          />返回</el-button
+        >
+      </el-col>
+    </el-row>
+    <ws-form ref="deptBudgetList" :rules="rules" :model="deptBudgetList">
+      <div class="remark">
+        <h3>基本信息</h3>
+        <p style="color: #8890b1">
+          注:基本信息和货物信息均为必填项,“*” 标记的条目提交后不可修改。
+        </p>
+      </div>
+      <ws-info-table>
+        <!--合同编号-->
+        <ws-form-item
+          label="合同编号"
+          span="1"
+          prop="contractNo"
+          class="readonly"
+          required
+        >
+          <ws-input
+            v-model="deptBudgetList.contractNo"
+            placeholder="请输入合同编号"
+            maxlength="20"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--运输方式-->
+        <ws-form-item label="运输方式" span="1" prop="shippingType">
+          <ws-input
+            v-model="deptBudgetList.shippingType"
+            placeholder="请输入运输方式"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--买方-->
+        <ws-form-item label="买方" span="1" prop="buyer" >
+          <ws-input
+            v-model="deptBudgetList.buyer"
+            placeholder="请输入买方名称"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--结算方式-->
+        <ws-form-item label="结算方式" span="1" prop="settlementMethod">
+          <ws-input
+            v-model="deptBudgetList.settlementMethod"
+            placeholder="请输入结算方式"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--买方电话-->
+        <ws-form-item label="买方电话" span="1" prop="contractNo">
+          <ws-input
+            v-model.number="deptBudgetList.buyerPhone"
+            placeholder="请输入买方电话"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        
+        <ws-form-item label="交货方式" span="1" prop="seller" class="readonly">
+          <el-radio v-model="deptBudgetList.deliverType" label="1"
+            >我方自提</el-radio
+          >
+          <el-radio v-model="deptBudgetList.deliverType" label="2"
+            >对方送货</el-radio
+          >
+        </ws-form-item>
+        <!--卖方-->
+        <ws-form-item label="卖方" span="1" prop="seller" >
+          <ws-input
+            v-model="deptBudgetList.seller"
+            placeholder="请输入卖方名称"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        
+        <!--包装方式-->
+        <ws-form-item label="包装方式" span="1" prop="packingMethod">
+          <ws-select
+            v-model="deptBudgetList.packingMethod"
+            placeholder=""
+            class="typeselect"
+            :value="value1"
+            @change="selectpackingMethod"
+          >
+            <ws-option
+              v-for="item in packtypeList"
+              :key="item.constKey"
+              :label="item.constValue"
+              :value="item.constValue"
+            />
+          </ws-select>
+        </ws-form-item>
+        <!--卖方电话-->
+        <ws-form-item label="卖方电话" span="1" prop="sellerPhone">
+          <ws-input
+            v-model="deptBudgetList.sellerPhone"
+            placeholder="请输入卖方电话"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--验收方式-->
+        <ws-form-item label="验收方式" span="1" prop="acceptanceMethod">
+          <el-select
+            v-model="deptBudgetList.acceptanceMethod"
+            placeholder="请选择验收方式"
+            style="width: 100%"
+            filterable
+            @change="selectunitList"
+          >
+            <el-option
+              v-for="(item, index) in unitList"
+              :key="item.constValue"
+              :label="item.constValue"
+              :value="item.constValue"
+            >
+              <span class="unit-left" style="float: left">
+                <span v-if="item.flag == 'delete'"> {{ item.constValue }}</span>
+                <!-- 新增文本框 -->
+                <div
+                  style="width: 160px"
+                  v-if="item.flag !== 'delete'"
+                  @click.stop
+                >
+                  <ws-input
+                    v-model="item.constValue"
+                    clearable
+                    maxlength="10"
+                    style="width: 100%"
+                  ></ws-input>
+                </div>
+              </span>
+              <span style="float: right; color: #8492a6; font-size: 13px">
+                <!-- 对号 -->
+                <i
+                  class="el-icon-check"
+                  style="line-height: 29px; margin-left: 10px"
+                  v-if="item.flag !== 'delete'"
+                  @click.stop="saveClick(item, index)"
+                ></i>
+                <!-- 编辑 -->
+                <i
+                  class="el-icon-edit"
+                  style="line-height: 29px; margin-left: 10px"
+                  v-if="item.flag == 'delete'"
+                  @click.stop="editClick(item, index)"
+                ></i>
+                <!-- 删除 -->
+                <i
+                  class="el-icon-delete"
+                  style="line-height: 29px"
+                  @click.stop="deleteClick(item, index)"
+                ></i>
+              </span>
+            </el-option>
+            <!-- 新增按钮 -->
+            <el-option value="" label="">
+              <div
+                style="
+                  text-align: right;
+                  border-top: 1px solid #dcdfe6;
+                  padding: 5px;
+                "
+              >
+                <ws-button type="primary" @click.stop="addClick">{{
+                  $t('button.add')
+                }}</ws-button>
+              </div>
+            </el-option>
+          </el-select>
+        </ws-form-item>
+        <!--交易数量(吨)-->
+        <ws-form-item label="交易数量(吨)" span="1" prop="weight">
+          <ws-input
+            @input="weightchange"
+            v-model="deptBudgetList.weight"
+            placeholder="请输入重量(吨)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--计量标准-->
+        <ws-form-item label="计量标准" span="1" prop="measurementStandard">
+          <ws-input
+            v-model="deptBudgetList.measurementStandard"
+            placeholder="请输入计量标准,如库内磅单"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--基差(元/吨)-->
+        <ws-form-item label="基差(元/吨)" span="1" prop="basisPrice">
+          <ws-input
+            v-model="deptBudgetList.basisPrice"
+            placeholder="请输入基差(元/吨)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--出货库-->
+          <el-form-item label="出货库" span="1" prop="receiveWarehouse">
+            <el-select
+              v-model="deptBudgetList.receiveWarehouse"
+              placeholder="请选择出货库"
+              class="typeselect"
+              @change="selectwarehouseName"
+            >
+              <el-option
+                v-for="item in warehouseNameList"
+                :key="item.constKey"
+                :label="item.warehouseName"
+                :value="item.warehouseName"
+              />
+            </el-select>
+          </el-form-item>
+        <!--交易所-->
+        <ws-form-item label="交易所" span="1" prop="transactionsPlace">
+          <ws-input
+            v-model="deptBudgetList.transactionsPlace"
+            placeholder="请输入交易所"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--交货所在地区-->
+        <ws-form-item label="交货所在地区" span="1" prop="sourceGoods">
+          <el-cascader
+            :options="options_"
+            v-model="selectedOptions"
+            clearable
+            size="large"
+            placeholder="请选择交货所在地区"
+            style="width: 200%"
+            @change="handleChange"
+          />
+        </ws-form-item>
+        <!--合约号-->
+        <ws-form-item label="合约号" span="1" prop="contractNumber">
+          <ws-input
+            v-model="deptBudgetList.contractNumber"
+            placeholder="请输入合约号"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--交货详细地址-->
+        <ws-form-item label="交货详细地址" span="1" prop="placeDelivery">
+          <ws-input
+            v-model="deptBudgetList.placeDelivery"
+            placeholder="请输入交货详细地址"
+            maxlength="20"
+            size="small"
+          />
+        </ws-form-item>
+        <!--点价(元/吨)-->
+        <ws-form-item label="点价(元/吨)" span="1" prop="pointPrice">
+          <ws-input
+            v-model="deptBudgetList.pointPrice"
+            placeholder="请输入合约点价"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--签订日期-->
+        <ws-form-item label="签订日期" span="1" prop="signingDate">
+          <ws-date-picker
+            v-model="deptBudgetList.signingDate"
+            type="date"
+            placeholder="请选择合同签订日期"
+            value-format="yyyy-MM-dd"
+          />
+        </ws-form-item>
+        <!--点价日期-->
+        <ws-form-item label="点价日期" span="1" prop="pointPriceDate">
+          <ws-date-picker
+            v-model="deptBudgetList.pointPriceDate"
+            type="date"
+            placeholder="请选择点价日期"
+            value-format="yyyy-MM-dd"
+          />
+        </ws-form-item>
+        
+        
+        <!--交货日期(起)-->
+        <ws-form-item label="交货日期(起)" span="1" prop="deliveryDateStart">
+          <ws-date-picker
+            v-model="deptBudgetList.deliveryDateStart"
+            type="date"
+            placeholder="请选择交货日期(起)"
+            value-format="yyyy-MM-dd"
+          />
+        </ws-form-item>
+        <!--临时仓库负责人-->
+        <ws-form-item
+          v-show="deptBudgetList.deliverType == 1"
+          label="临时仓库负责人"
+          span="1"
+          prop="packingMethod"
+        >
+          <el-select
+            v-model="deptBudgetList.personCharge"
+            placeholder="请选择临时仓库负责人"
+            filterable
+            :filter-method="dataFilter"
+            @change="selectstaff"
+          >
+            <el-option
+              v-for="item in options"
+              :key="item.value"
+              :label="item.staffName"
+              :value="item.staffName"
+            />
+          </el-select>
+        </ws-form-item>
+        <!--交货日期(止)-->
+        <ws-form-item label="交货日期(止)" span="1" prop="deliveryDateEnd">
+          <ws-date-picker
+            v-model="deptBudgetList.deliveryDateEnd"
+            type="date"
+            placeholder="请选择交货日期(止)"
+            value-format="yyyy-MM-dd"
+          />
+        </ws-form-item>
+        
+    </ws-info-table>
+
+      <div class="wenzi">
+        <h3>货物信息</h3>
+      </div>
+      <!--货物信息-->
+
+      <ws-info-table>
+        <!--货名-->
+        <ws-form-item label="货名" span="1" prop="goodsName" class="readonly">
+          <ws-select
+            v-model="deptBudgetList.contractGoodsInfo.goodsName"
+            placeholder=""
+            class="typeselect"
+            @change="selectgoodsName"
+          >
+            <ws-option
+              v-for="item in goodnameList"
+              :key="item.constKey"
+              :label="item.constValue"
+              :value="item.constValue"
+            />
+          </ws-select>
+        </ws-form-item>
+
+        <!--水分(%)<=-->
+        <ws-form-item label="水分(%)" span="1" prop="waterContent">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.waterContent"
+            placeholder="请输入水分占比"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--品级-->
+        <ws-form-item label="品级" span="1" prop="grade">
+          <ws-select
+            v-model="deptBudgetList.contractGoodsInfo.grade"
+            placeholder="请选择品级"
+            class="typeselect"
+            @change="selectgrade"
+          >
+            <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
+            v-model="deptBudgetList.contractGoodsInfo.impurity"
+            placeholder="请输入杂质占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--容量(克/升)>=-->
+        <ws-form-item label="容量(克/升)" span="1" prop="bulkDensity">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.bulkDensity"
+            placeholder="请输入容重"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--霉变粒(%)<=-->
+        <ws-form-item label="霉变粒(%)" span="1" prop="mildewGrain">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.mildewGrain"
+            placeholder="请输入霉变粒占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--热损伤(%)<=-->
+        <ws-form-item label="热损伤(%)" span="1" prop="jiaorenli">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.jiaorenli"
+            placeholder="请输入输入热损伤占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--不完整粒(%)<=-->
+        <ws-form-item label="不完整粒(%)" span="1" prop="imperfectGrain">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.imperfectGrain"
+            placeholder="请输入不完整粒占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--蛋白(%)>=-->
+        <ws-form-item label="蛋白(%)" span="1" prop="protein">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.protein"
+            placeholder="请输入蛋白占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--转基因-->
+        <ws-form-item label="转基因" span="1" prop="transgene">
+          <ws-select
+            v-model="deptBudgetList.contractGoodsInfo.transgene"
+            placeholder="请选择转基因要求"
+            class="typeselect"
+            @change="selecttransgene"
+          >
+            <ws-option
+              v-for="item in transgeneList"
+              :key="item.constKey"
+              :label="item.constValue"
+              :value="item.constValue"
+            />
+          </ws-select>
+        </ws-form-item>
+        <!--产地-->
+        <ws-form-item label="产地" span="1" prop="protein">
+          <el-cascader
+              :options="options1_"
+              v-model="selectedOptions1"
+              clearable
+              size="large"
+              placeholder="请选择产地"
+              @change="handleChange1"
+              style="width:200%"
+            />
+        </ws-form-item>
+
+      </ws-info-table>
+
+      <div class="wenzi">
+        <h3>流程信息</h3>
+      </div>
+      <!--流程信息-->
+
+      <ws-info-table>
+          <!--合同收入(元)-->
+          <ws-form-item label="合同收入(元)" span="1" prop="goodsNameKey">
+            <ws-input
+              v-model="deptBudgetList.contractProcessInfo.goodsNameKey"
+              placeholder="请输入合同收入(元)"
+              maxlength="100"
+              size="small"
+            />
+          </ws-form-item>
+        <!--已开发票(元)-->
+        <ws-form-item label="已开发票(元)" span="1" prop="goodsName">
+          <ws-input
+            v-model="deptBudgetList.contractProcessInfo.goodsName"
+            placeholder="请输入已开发票(元)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--费用支出(元)-->
+        <ws-form-item label="费用支出(元)" span="1" prop="waterContent">
+          <ws-input
+            v-model="deptBudgetList.contractProcessInfo.waterContent"
+            placeholder="请输入费用支出(元)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--未开发票(元)-->
+        <ws-form-item label="未开发票(元)" span="1" prop="impurity">
+          <ws-input
+            v-model="deptBudgetList.contractProcessInfo.impurity"
+            placeholder="请输入未开发票(元)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--未回款(元)-->
+        <ws-form-item label="未回款(元)" span="1" prop="mildewGrain">
+          <ws-input
+            v-model="deptBudgetList.contractProcessInfo.mildewGrain"
+            placeholder="请输入未回款(元)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--双章原件回收情况-->
+        <ws-form-item label="双章原件回收情况" span="1" prop="grade">
+          <ws-select
+            v-model="deptBudgetList.contractProcessInfo.grade"
+            placeholder=""
+            class="typeselect"
+            @change="selectChapterTwo"
+          >
+            <ws-option
+              v-for="item in ChapterTwoList"
+              :key="item.constKey"
+              :label="item.constValue"
+              :value="item.constValue"
+            />
+          </ws-select>
+        </ws-form-item>
+      </ws-info-table>
+
+      <div class="wenzi">
+        <h3>备注信息</h3>
+      </div>
+      <!--备注信息-->
+      <ws-input
+        v-model="deptBudgetList.remarks"
+        type="textarea"
+        row="3"
+        placeholder="请输入备注信息,不超过200字"
+        maxlength="200"
+      />
+      
+      <el-upload
+        class="upload-demo"
+        action="https://www.zthymaoyi.com/upload/admin"
+         :on-success="
+            (res, file) => {
+              uploadSuccessHandle(res)
+            }
+          "
+        multiple
+        :limit="3"
+        :file-list="fileList"
+      >
+        <el-button size="small" type="primary">点击上传</el-button>
+        <div slot="tip" class="el-upload__tip">
+          推荐格式.jpg, .jpeg, .png, .gif, .pdf, .doc, .zip, .rar,单个文件大小不超过10M
+        </div>
+      </el-upload>
+    </ws-form>
+    <div style="text-align: right; padding: 10px" class="center">
+      <el-button
+        class="bg-bottom"
+        type="primary"
+        size="small"
+        @click="submit(deptBudgetList)"
+        >提交</el-button
+      >
+    </div>
+  </div>
+</template>
+<script>
+import {
+  getwarehousename,
+  packList,
+  addList,
+  xiala,
+  addxiala,
+  editxiala,
+  delxiala,
+  getstaff,
+} from '@/model/contarct/index'
+import { regionData,provinceAndCityDataPlus, CodeToText, TextToCode } from 'element-china-area-data'
+import { dayjs, fmoney, EventBus } from 'base-core-lib'
+import WsUpload from '@/components/WsUpload'
+
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+  },
+  watch: {
+    vesselId(val) {
+      this.getVesselData()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      options_: regionData,
+      options1_:provinceAndCityDataPlus,
+      selectedOptions: [],
+      selectedOptions1: [],
+      // 提交类型
+      submitType: true,
+      tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
+
+      packtypeList: [],
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      rules: {
+        // contractNo: [
+        //   { required: true, message: '请输入合同编号', trigger: 'blur' },
+        //   { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' },
+        // ],
+      },
+      options: [],
+      staffList: [],
+      appendixIdsAdd: '',
+      size: 10,
+      // uploadSuccess: {},
+      // onChange:{},
+      unitList: [],
+      goodnameList: [],
+      value1: '袋装',
+      value2: '未回收',
+      gradeList: [],
+      warehouseNameList: [],
+      warehouseNameList1: [],
+      ChapterTwoList: [],
+      transgeneList: [],
+      deptBudgetList: {
+        deliverType: '1',
+        finalTradingVolume: 0,
+        contractGoodsInfo: {
+          goodsName: '',
+        },
+        contractProcessInfo: {},
+      },
+      acceptanceCheck: {},
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      ruleDeptBudget: {
+        contractNo: [
+          { required: true, message: '请输入活动名称', trigger: 'blur' },
+          {
+            min: 6,
+            max: 20,
+            message: '长度在 6 到 20 个字符',
+            trigger: 'blur',
+          },
+        ],
+      },
+      selectIntendedShip: {},
+      interviewTypeList: {},
+      addressUrls: [],
+      fileList:[],
+    }
+  },
+  activated() {
+    //cg.viewBudget
+    //cg.viewSpareMoney
+    // this.getVesselData();
+    this.deptBudgetList.packingMethod = '散装'
+    this.deptBudgetList.packingMethodKey = 1
+    this.deptBudgetList.contractGoodsInfo.goodsName = '玉米'
+    this.deptBudgetList.contractGoodsInfo.goodsNameKey = 1
+    this.deptBudgetList.contractProcessInfo.grade = '未回收'
+    this.deptBudgetList.contractProcessInfo.gradeKey = 1
+    this.deptBudgetList.contractGoodsInfo.grade = '一等品'
+    this.deptBudgetList.contractGoodsInfo.gradeKey = 1
+    this.deptBudgetList.contractGoodsInfo.transgene = '不限'
+    this.deptBudgetList.contractGoodsInfo.gradeKey = 1
+    getstaff({ compId: sessionStorage.getItem('ws-pf_compId') })
+      .toPromise()
+      .then((response) => {
+        this.options = response
+        this.staffList = response
+      })
+    this.loaddata()
+    this.showType = this.isShow
+  },
+  methods: {
+    close(index) {
+      this.addressUrls.splice(index, 1)
+    },
+    dataFilter(val) {
+      this.deptBudgetList.personCharge = val
+      if (val) {
+        //val存在
+        this.options = this.staffList.filter((item) => {
+          if (
+            !!~item.staffName.indexOf(val) ||
+            !!~item.staffName.toUpperCase().indexOf(val.toUpperCase())
+          ) {
+            return true
+          }
+        })
+      } else {
+        //val为空时,还原数组
+        this.options = this.staffList
+      }
+    },
+    selectstaff(e) {
+      for (var i = 0; i < this.staffList.length; i++) {
+        if (this.staffList[i].staffName == e) {
+          this.deptBudgetList.personPhone = this.staffList[i].staffMobilePhone
+          this.deptBudgetList.personChargeKey = this.staffList[i].staffId
+        }
+      }
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleClose() {
+      this.dialogViewSpareMoney = false
+    },
+    handleChange(value) {
+      this.selectedOptions = value
+      this.dataList.deliveryProvince = CodeToText[value[0]]
+      this.dataList.deliveryCity = CodeToText[value[1]]
+      this.dataList.deliveryArea = CodeToText[value[2]]
+    },
+    handleChange1(value) {
+      this.selectedOptions1 = value
+      this.dataList.contractGoodsInfo.outputPrivate = CodeToText[value[0]]
+      this.dataList.contractGoodsInfo.outputCity = CodeToText[value[1]]
+    },
+    weightchange(e) {
+      this.deptBudgetList.finalTradingVolume = e
+    },
+    returnsales() {
+      this.$router.push({ path: 'futuresSalesContract' })
+    },
+    loaddata() {
+      // 包装方式
+      packList({ constId: 'CON1' })
+        .toPromise()
+        .then((response) => {
+          this.packtypeList = response
+        })
+      // 验收方式
+      this.getUnitList()
+      // 货名
+      packList({ constId: 'CON2' })
+        .toPromise()
+        .then((response) => {
+          this.goodnameList = response
+        })
+      // 品级
+      packList({ constId: 'CON3' })
+        .toPromise()
+        .then((response) => {
+          this.gradeList = response
+        })
+      //转基因
+      packList({ constId: 'CON7' })
+        .toPromise()
+        .then((response) => {
+          this.transgeneList = response
+        })
+        //收货库
+        getwarehousename({
+        compId: this.compId,
+        warehouseType: 1,
+      })
+        .toPromise()
+        .then((response) => {
+          this.warehouseNameList = response
+        })
+      getwarehousename({
+        compId: this.compId,
+        warehouseType: 2,
+      })
+        .toPromise()
+        .then((response) => {
+          this.warehouseNameList1 = response
+        })
+      // 双章
+      packList({ constId: 'CON4' })
+        .toPromise()
+        .then((response) => {
+          this.ChapterTwoList = response
+        })
+    },
+    // 上传附件
+    uploadSuccessHandle(e) {
+      console.log(e)
+      this.addressUrls.push(e.url)
+      // this.deptBudgetList.addressUrl = this.addressUrls.toString
+    },
+    onChange(files) {
+      this.fileNum = files
+      this.$refs.upload.handleSaveBill().then((res) => {
+        console.log(files)
+      })
+    },
+    getUnitList() {
+      xiala({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        constCode: 'TYPEYAN',
+      })
+        .toPromise()
+        .then((response) => {
+          this.unitList = response
+          let currItem
+          this.unitList.forEach((item, index, arr) => {
+            item.flag = 'delete'
+            if (this.vModel == item.constKey) {
+              currItem = item
+            }
+          })
+          //
+          if (currItem) {
+            this.selectContract(currItem.constValue)
+          }
+        })
+    },
+
+    submit() {
+      if (!this.deptBudgetList.contractNo) {
+        this.$message({
+          message: '请输入合同编号',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractNo.length < 6 ||
+        this.deptBudgetList.contractNo.length > 20
+      ) {
+        this.$message({
+          message: '合同编号长度不符合要求,请输入6到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.shippingType) {
+        this.$message({
+          message: '请输入运输方式!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.shippingType.length < 1 ||
+        this.deptBudgetList.shippingType.length > 20
+      ) {
+        this.$message({
+          message: '运输方式长度不符合要求,请输入1到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.buyer) {
+        this.$message({
+          message: '请输入买方名称!',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.deptBudgetList.buyer.length > 30) {
+        this.$message({
+          message: '买方名称长度不符合要求,请输入30个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.seller) {
+        this.$message({
+          message: '请输入卖方名称!',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.deptBudgetList.seller.length > 30) {
+        this.$message({
+          message: '卖方名称长度不符合要求,请输入30个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.buyerPhone) {
+        this.$message({
+          message: '请输入买方电话!',
+          type: 'warning',
+        })
+        return
+      }
+      if (isNaN(this.deptBudgetList.buyerPhone)) {
+        this.$message({
+          message: '输入买方电话有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.buyerPhone.length < 7 ||
+        this.deptBudgetList.buyerPhone.length > 20
+      ) {
+        this.$message({
+          message: '买方电话长度不符合要求,请输入7到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.sellerPhone) {
+        this.$message({
+          message: '请输入卖方电话!',
+          type: 'warning',
+        })
+        return
+      }
+      if (isNaN(this.deptBudgetList.sellerPhone)) {
+        this.$message({
+          message: '输入卖方电话有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.buyerPhone.length < 7 ||
+        this.deptBudgetList.buyerPhone.length > 20
+      ) {
+        this.$message({
+          message: '卖方电话长度不符合要求,请输入7到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.weight) {
+        this.$message({
+          message: '请输入交易数量!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        isNaN(this.deptBudgetList.weight) ||
+        (String(this.deptBudgetList.weight).indexOf('.') != -1 &&
+          String(this.deptBudgetList.weight).length -
+            (String(this.deptBudgetList.weight).indexOf('.') + 1) >
+            3) ||
+        this.deptBudgetList.weight < 0 ||
+        this.deptBudgetList.weight > 200000
+      ) {
+        this.$message({
+          message: '输入交易数量有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.basisPrice) {
+        this.$message({
+          message: '请输入基差!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        isNaN(this.deptBudgetList.basisPrice) ||
+        (String(this.deptBudgetList.basisPrice).indexOf('.') != -1 &&
+          String(this.deptBudgetList.basisPrice).length -
+            (String(this.deptBudgetList.basisPrice).indexOf('.') + 1) >
+            3) ||
+        this.deptBudgetList.basisPrice < 0 ||
+        this.deptBudgetList.basisPrice > 10000
+      ) {
+        this.$message({
+          message: '基差输入错误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.transactionsPlace) {
+        this.$message({
+          message: '请输入交易所!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.transactionsPlace.length < 2 ||
+        this.deptBudgetList.transactionsPlace.length > 15
+      ) {
+        this.$message({
+          message: '交易所长度不符合要求,请输入2到15个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractNumber) {
+        this.$message({
+          message: '请输入合约号!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractNumber.length < 2 ||
+        this.deptBudgetList.contractNumber.length > 15
+      ) {
+        this.$message({
+          message: '合约号长度不符合要求,请输入2到15个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.pointPrice) {
+        this.$message({
+          message: '请输入点价!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        isNaN(this.deptBudgetList.pointPrice) ||
+        (String(this.deptBudgetList.pointPrice).indexOf('.') != -1 &&
+          String(this.deptBudgetList.pointPrice).length -
+            (String(this.deptBudgetList.pointPrice).indexOf('.') + 1) >
+            3) ||
+        this.deptBudgetList.pointPrice < 0 ||
+        this.deptBudgetList.pointPrice > 100000
+      ) {
+        this.$message({
+          message: '输入点价有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.measurementStandard) {
+        this.$message({
+          message: '请输入计量标准!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.measurementStandard.length < 1 ||
+        this.deptBudgetList.measurementStandard.length > 20
+      ) {
+        this.$message({
+          message: '计量标准长度不符合要求,请输入1到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.settlementMethod) {
+        this.$message({
+          message: '请输入结算方式!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.placeDelivery) {
+        this.$message({
+          message: '请输入交货详细地址!',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.selectedOptions.length == 0) {
+        this.$message({
+          message: '请选择交货所在地区!',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.selectedOptions1.length == 0) {
+        this.$message({
+          message: '请选择产地!',
+          type: 'warning',
+        })
+        return
+      }
+      
+      if (!this.deptBudgetList.deliveryDateStart) {
+        this.$message({
+          message: '请选择交货日期(起)',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.deliveryDateEnd) {
+        this.$message({
+          message: '请选择交货日期(止)',
+          type: 'warning',
+        })
+        return
+      }
+      //时间
+      if (
+        new Date(this.deptBudgetList.deliveryDateStart).getTime() >
+        new Date(this.deptBudgetList.deliveryDateEnd).getTime()
+      ) {
+        this.$message({
+          message: '交货日期(止)选择错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.signingDate) {
+        this.$message({
+          message: '请选择签订日期',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractGoodsInfo.goodsName) {
+        this.$message({
+          message: '请选择货名',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractGoodsInfo.waterContent) {
+        this.$message({
+          message: '请输入水分',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractGoodsInfo.grade) {
+        this.$message({
+          message: '请选择品级',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractGoodsInfo.transgene) {
+        this.$message({
+          message: '请选择转基因',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.impurity ||
+        (String(this.deptBudgetList.contractGoodsInfo.impurity).indexOf('.') !=
+          -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.impurity).length -
+            (String(this.deptBudgetList.contractGoodsInfo.impurity).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '杂质输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.bulkDensity ||
+        (String(this.deptBudgetList.contractGoodsInfo.bulkDensity).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.bulkDensity).length -
+            (String(this.deptBudgetList.contractGoodsInfo.bulkDensity).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '容重输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.mildewGrain ||
+        (String(this.deptBudgetList.contractGoodsInfo.mildewGrain).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.mildewGrain).length -
+            (String(this.deptBudgetList.contractGoodsInfo.mildewGrain).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '霉变粒输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.jiaorenli ||
+        (String(this.deptBudgetList.contractGoodsInfo.jiaorenli).indexOf('.') !=
+          -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.jiaorenli).length -
+            (String(this.deptBudgetList.contractGoodsInfo.jiaorenli).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '热损伤输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.imperfectGrain ||
+        (String(this.deptBudgetList.contractGoodsInfo.imperfectGrain).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.imperfectGrain).length -
+            (String(
+              this.deptBudgetList.contractGoodsInfo.imperfectGrain
+            ).indexOf('.') +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '不完整粒输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.protein ||
+        (String(this.deptBudgetList.contractGoodsInfo.protein).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.protein).length -
+            (String(
+              this.deptBudgetList.contractGoodsInfo.protein
+            ).indexOf('.') +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '蛋白输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractProcessInfo.goodsNameKey > 1000000000 ||
+        this.deptBudgetList.contractProcessInfo.goodsNameKey < 0 ||
+        (String(this.deptBudgetList.contractProcessInfo.goodsNameKey).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractProcessInfo.goodsNameKey).length -
+            (String(
+              this.deptBudgetList.contractProcessInfo.goodsNameKey
+            ).indexOf('.') +
+              1) >
+            2)
+      ) 
+      {
+        this.$message({
+          message: '合同收入金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractProcessInfo.waterContent > 10000000 ||
+        this.deptBudgetList.contractProcessInfo.waterContent < 0 ||
+        (String(this.deptBudgetList.contractProcessInfo.waterContent).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractProcessInfo.waterContent).length -
+            (String(
+              this.deptBudgetList.contractProcessInfo.waterContent
+            ).indexOf('.') +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '费用金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractProcessInfo.goodsName > 1000000000 ||
+        this.deptBudgetList.contractProcessInfo.goodsName < 0 ||
+        (String(this.deptBudgetList.contractProcessInfo.goodsName).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractProcessInfo.goodsName).length -
+            (String(this.deptBudgetList.contractProcessInfo.goodsName).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '已开发票金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractProcessInfo.impurity > 1000000000 ||
+        this.deptBudgetList.contractProcessInfo.impurity < 0 ||
+        (String(this.deptBudgetList.contractProcessInfo.impurity).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractProcessInfo.impurity).length -
+            (String(this.deptBudgetList.contractProcessInfo.impurity).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '未开发票金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      
+      var that = this
+      this.$refs.deptBudgetList.validate((valid) => {
+        if (valid) {
+          this.deptBudgetList.contractGoodsInfo.outputPrivate = CodeToText[this.selectedOptions1[0]]
+          this.deptBudgetList.contractGoodsInfo.outputCity = CodeToText[this.selectedOptions1[1]]
+         
+          this.deptBudgetList.deliveryProvince = CodeToText[this.selectedOptions[0]]
+          this.deptBudgetList.deliveryCity = CodeToText[this.selectedOptions[1]]
+        
+          this.deptBudgetList.compId = this.compId
+          this.deptBudgetList.contractType = 1
+          this.deptBudgetList.goodsType = 2
+           if(this.deptBudgetList.deliveryProvince =="澳门特别行政区" || this.deptBudgetList.deliveryProvince == "澳门特别行政区"){
+            this.deptBudgetList.deliveryArea = "特别行政区"
+          }else{ 
+                 this.deptBudgetList.deliveryArea =  CodeToText[this.selectedOptions[2]]
+          }
+          this.deptBudgetList.addressUrl = this.addressUrls.toString()
+
+          addList(this.deptBudgetList)
+            .toPromise()
+            .then((response) => {
+              this.$message.success('添加成功')
+              this.deptBudgetList = {
+                deliverType: '1',
+                finalTradingVolume: 0,
+                contractGoodsInfo: {
+                  goodsName: '',
+                },
+                contractProcessInfo: {},
+              }
+              this.$router.push({ path: 'futuresSalesContract' })
+            })
+            .catch((req) => {
+              EventBus.$emit('error', req.message)
+            })
+        } else {
+          // for (let key in that.rules) {
+          //   EventBus.$emit('error', that.rules[key][0].message)
+          //   return false
+          // }
+          return false
+        }
+      })
+    },
+    resetForm(deptBudgetList) {
+      this.$refs[deptBudgetList].resetFields()
+    },
+    addClick() {
+      this.unitList.push({
+        flag: 'add',
+        constValue: '',
+        constKey: '',
+      })
+    },
+    saveClick(item, index) {
+      if (Object.is(item.id, 1)) {
+        return
+      }
+      if (Object.is(this.unitList[index].flag, 'delete')) {
+        this.$set(this.unitList, index, { flag: 'check' })
+      } else {
+        this.$set(this.unitList, index, { flag: 'delete' })
+      }
+      if (!item.constValue) {
+        this.unitList.splice(index, 1)
+        return
+      }
+      if (item.flag == 'add') {
+        item.constKey = Math.random() * 20
+        this.acceptanceCheck.compId = this.compId
+        this.acceptanceCheck.constKey = item.constKey
+        this.acceptanceCheck.constCode = 'TYPEYAN'
+        this.acceptanceCheck.constValue = item.constValue
+        this.acceptanceCheck.id = item.id
+        addxiala(this.acceptanceCheck)
+          .toPromise()
+          .then((response) => {
+            this.getUnitList()
+          })
+      } else if (item.flag == 'check') {
+        this.acceptanceCheck.compId = this.compId
+        this.acceptanceCheck.constKey = item.constKey
+        this.acceptanceCheck.constCode = 'TYPEYAN'
+        this.acceptanceCheck.constValue = item.constValue
+        this.acceptanceCheck.id = item.id
+        editxiala(this.acceptanceCheck)
+          .toPromise()
+          .then((response) => {
+            this.getUnitList()
+          })
+      }
+    },
+    selectChapterTwo(e) {
+      for (var i = 0; i < this.ChapterTwoList.length; i++) {
+        if (this.ChapterTwoList[i].constValue == e) {
+          this.deptBudgetList.gradeKey = this.ChapterTwoList[i].constKey
+        }
+      }
+    },
+    selectunitList(e) {
+      for (var i = 0; i < this.unitList.length; i++) {
+        if (this.unitList[i].constValue == e) {
+          this.deptBudgetList.acceptanceMethodKey = this.unitList[i].constKey
+        }
+      }
+    },
+    selectgrade(e) {
+      for (var i = 0; i < this.gradeList.length; i++) {
+        if (this.gradeList[i].constValue == e) {
+          this.deptBudgetList.gradeKey = this.gradeList[i].constKey
+        }
+      }
+    },
+    selecttransgene(e) {
+      for (var i = 0; i < this.transgeneList.length; i++) {
+        if (this.transgeneList[i].constValue == e) {
+          this.deptBudgetList.gradeKey = this.transgeneList[i].constKey
+        }
+      }
+    },
+    selectgoodsName(e) {
+      for (var i = 0; i < this.goodnameList.length; i++) {
+        if (this.goodnameList[i].constValue == e) {
+          this.deptBudgetList.goodsNameKey = this.goodnameList[i].constKey
+        }
+      }
+    },
+    selectwarehouseName() {},
+    selectpackingMethod(e) {
+      for (var i = 0; i < this.packtypeList.length; i++) {
+        if (this.packtypeList[i].constValue == e) {
+          this.deptBudgetList.packingMethodKey = this.packtypeList[i].constKey
+        }
+      }
+    },
+    // 编辑
+    editClick(item, index) {
+      const map = JSON.parse(JSON.stringify(item))
+      if (Object.is(item.id, 1)) {
+        return
+      }
+      if (Object.is(this.unitList[index].flag, 'delete')) {
+        map.flag = 'check'
+        this.$set(this.unitList, index, map)
+      } else {
+        map.flag = 'delete'
+        this.$set(this.unitList, index, map)
+      }
+    },
+    // 删除
+    deleteClick(item, index) {
+      if (Object.is(item.constKey, 1)) {
+        return
+      }
+      if (!item.constValue) {
+        this.unitList.splice(index, 1)
+        return
+      }
+      delxiala({ id: this.unitList[index].id })
+        .toPromise()
+        .then((response) => {
+          this.getUnitList()
+          this.pleaseChoose = ''
+        })
+    },
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+.el-form {
+  padding: 0 15%;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 1px solid #cdd2dc;
+  border-bottom: 1px solid #cdd2dc;
+}
+.readonly {
+  position: relative;
+}
+.readonly:after {
+  content: '*';
+  color: #ff2727;
+  position: absolute;
+  right: 8px;
+  z-index: 10;
+  top: 21%;
+  font-size: 20px;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  padding: 0 25px;
+  border-left: 1px solid #cdd2dc;
+  background: #fafbfc;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 140px;
+  text-align: center;
+  background: #f0f2f6;
+  // border: 1px solid #cdd2dc;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.box-app {
+  display: inline-block;
+  float: left;
+  margin-left: 30px;
+  line-height: 50px;
+}
+/deep/.el-dialog {
+  .el-form-item {
+    margin-bottom: 0 !important;
+    .el-input--medium {
+      textarea {
+        min-height: 100px !important;
+      }
+    }
+  }
+}
+.collapse-bottom {
+  margin-bottom: 20px;
+}
+.input-main .textarea .el-textarea__inner {
+  width: 100%;
+  z-index: 1;
+}
+.bg-left {
+  padding-left: 30px;
+}
+.bg-right {
+  padding-right: 10px;
+  text-align: right;
+}
+.bg-bottom {
+  margin: 15px 0px;
+}
+.wenzi h3 {
+  display: inline-block;
+  left: 10px;
+}
+.wenzi p {
+  display: inline-block;
+}
+.center {
+  width: 70%;
+  margin: 0 auto;
+}
+.el-form-item {
+  width: 50%;
+}
+.el-form-item__label {
+  text-align: center;
+}
+.ce {
+  width: 900px;
+  margin: 0 auto;
+}
+/*.crt-main .textarea /deep/ .el-form-item__label {*/
+/*  height: 82px;*/
+/*}*/
+// 控制select为只读的时候显示样式
+
+.hide-sel {
+  .el-input__inner {
+    border: 0px;
+  }
+  .el-icon-arrow-up {
+    display: none;
+  }
+  .el-textarea__inner {
+    background-color: #fff !important;
+    border: 0;
+  }
+  .el-date-editor {
+    i {
+      display: none;
+    }
+  }
+  .is-disabled {
+    .el-input__inner:hover {
+      background-color: #fff !important;
+      border: 0;
+    }
+    color: #606266;
+    .el-input__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+    .el-textarea__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+  }
+}
+
+// 控制select为只读的时候显示样式
+/deep/.ws-class-table-col {
+  height: auto;
+  padding: 0px 2px;
+  /deep/.el-input__inner {
+    padding: 0px 2px;
+  }
+}
+/deep/.is-disabled {
+  .el-input__prefix,
+  .el-input__suffix {
+    display: none;
+  }
+  .el-input__inner {
+    background-color: #fff;
+    border-color: #fff !important;
+    color: #000 !important;
+    font-size: 14px;
+    cursor: text;
+    padding: 0 !important;
+  }
+}
+.winseaview-view {
+  padding: 0 0 20px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+/deep/.ws-info-table[data-v-850a44a6] .el-form-item .el-form-item__label {
+  width: 130px;
+}
+.el-textarea {
+  width: 101%;
+}
+.addressUrls {
+  width: 100%;
+  display: flex;
+  margin-top: 10px;
+}
+.addressUrls-item {
+  position: relative;
+  display: flex;
+}
+.icon-guanbi {
+  position: absolute;
+  right: 8px;
+}
+.addressUrl {
+  margin: 0px 10px;
+  border-radius: 3px;
+}
+//上传文件成功标识
+/deep/.el-upload-list__item-status-label {
+    position: absolute;
+    right: 22px;
+    top: -1px;
+    line-height: inherit;
+    display: none;
+}
+</style>

+ 1772 - 0
src/views/contractManagement/futuresSalesContractEdit.vue

@@ -0,0 +1,1772 @@
+<!--期货销售合同编辑-->
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="12">
+        <h2 class="bg-left title">修改合同信息</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right">
+        <el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="returnsales()"
+          ><img
+            width="6"
+            height="10"
+            style="vertical-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt=""
+          />
+          返回</el-button
+        >
+      </el-col>
+      
+    </el-row>
+    <ws-form
+      ref="deptBudgetList"
+      :rules="mainReportAdd"
+      :model="deptBudgetList"
+    >
+      <div class="remark">
+        <h3>基本信息</h3>
+        <p style="color: #8890b1">
+          &nbsp;&nbsp;注:基本信息和货物信息均为必填项,“*”
+          标记的条目提交后不可修改。
+        </p>
+        <div class="queren"><el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="confirmationsheet()"
+          >确认单</el-button
+        ></div>
+      </div>
+      <ws-info-table>
+        <!-- 合同编号 -->
+        <ws-form-item
+          class="readonly"
+          label="合同编号"
+          span="1"
+          prop="contractNo"
+        >
+          {{ deptBudgetList.contractNo }}
+        </ws-form-item>
+
+        <!--运输方式-->
+        <ws-form-item label="运输方式" span="1" prop="shippingType">
+          <ws-input
+            v-model="deptBudgetList.shippingType"
+            placeholder="请输入运输方式"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--买方-->
+        <ws-form-item label="买方" span="1" prop="buyer" >
+          <ws-input
+            v-model="deptBudgetList.buyer"
+            placeholder="请输入买方名称"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--结算方式-->
+        <ws-form-item label="结算方式" span="1" prop="settlementMethod">
+          <ws-input
+            v-model="deptBudgetList.settlementMethod"
+            placeholder="请输入结算方式"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--买方电话-->
+        <ws-form-item label="买方电话" span="1" prop="contractNo">
+          <ws-input
+            v-model.number="deptBudgetList.buyerPhone"
+            placeholder="请输入买方电话"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--交货方式-->
+        <ws-form-item
+          class="readonly"
+          label="交货方式"
+          span="1"
+          prop="sourceGoods"
+        >
+          {{ deptBudgetList.deliverType1 }}
+        </ws-form-item>
+        <!--卖方-->
+        <ws-form-item label="卖方" span="1" prop="seller" >
+          <ws-input
+            v-model="deptBudgetList.seller"
+            placeholder="请输入卖方名称"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        
+        <!--包装方式-->
+        <ws-form-item label="包装方式" span="1" prop="packingMethod">
+          <ws-select
+            v-model="deptBudgetList.packingMethod"
+            placeholder=""
+            class="typeselect"
+            :value="value1"
+            @change="selectpackingMethod"
+          >
+            <ws-option
+              v-for="item in packtypeList"
+              :key="item.constKey"
+              :label="item.constValue"
+              :value="item.constValue"
+            />
+          </ws-select>
+        </ws-form-item>
+        <!--卖方电话-->
+        <ws-form-item label="卖方电话" span="1" prop="sellerPhone">
+          <ws-input
+            v-model="deptBudgetList.sellerPhone"
+            placeholder="请输入卖方电话"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--验收方式-->
+        <ws-form-item label="验收方式" span="1" prop="acceptanceMethod">
+          <el-select
+            v-model="deptBudgetList.acceptanceMethod"
+            placeholder="请选择验收方式"
+            style="width: 100%"
+            filterable
+            @change="selectunitList"
+          >
+            <el-option
+              v-for="(item, index) in unitList"
+              :key="item.constValue"
+              :label="item.constValue"
+              :value="item.constValue"
+            >
+              <span class="unit-left" style="float: left">
+                <span v-if="item.flag == 'delete'"> {{ item.constValue }}</span>
+                <!-- 新增文本框 -->
+                <div
+                  style="width: 160px"
+                  v-if="item.flag !== 'delete'"
+                  @click.stop
+                >
+                  <ws-input
+                    v-model="item.constValue"
+                    clearable
+                    maxlength="10"
+                    style="width: 100%"
+                  ></ws-input>
+                </div>
+              </span>
+              <span style="float: right; color: #8492a6; font-size: 13px">
+                <!-- 对号 -->
+                <i
+                  class="el-icon-check"
+                  style="line-height: 29px; margin-left: 10px"
+                  v-if="item.flag !== 'delete'"
+                  @click.stop="saveClick(item, index)"
+                ></i>
+                <!-- 编辑 -->
+                <i
+                  class="el-icon-edit"
+                  style="line-height: 29px; margin-left: 10px"
+                  v-if="item.flag == 'delete'"
+                  @click.stop="editClick(item, index)"
+                ></i>
+                <!-- 删除 -->
+                <i
+                  class="el-icon-delete"
+                  style="line-height: 29px"
+                  @click.stop="deleteClick(item, index)"
+                ></i>
+              </span>
+            </el-option>
+            <!-- 新增按钮 -->
+            <el-option value="" label="">
+              <div
+                style="
+                  text-align: right;
+                  border-top: 1px solid #dcdfe6;
+                  padding: 5px;
+                "
+              >
+                <ws-button type="primary" @click.stop="addClick">{{
+                  $t('button.add')
+                }}</ws-button>
+              </div>
+            </el-option>
+          </el-select>
+        </ws-form-item>
+        <!--交易数量(吨)-->
+        <ws-form-item label="交易数量(吨)" span="1" prop="weight">
+          <ws-input
+            @input="weightchange"
+            v-model="deptBudgetList.weight"
+            placeholder="请输入重量(吨)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--计量标准-->
+        <ws-form-item label="计量标准" span="1" prop="measurementStandard">
+          <ws-input
+            v-model="deptBudgetList.measurementStandard"
+            placeholder="请输入计量标准,如库内磅单"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--基差(元/吨)-->
+        <ws-form-item label="基差(元/吨)" span="1" prop="basisPrice">
+          <ws-input
+            v-model="deptBudgetList.basisPrice"
+            placeholder="请输入基差(元/吨)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--出货库-->
+          <el-form-item label="出货库" span="1" prop="receiveWarehouse">
+            <el-select
+              v-model="deptBudgetList.receiveWarehouse"
+              placeholder="请选择出货库"
+              class="typeselect"
+              @change="selectwarehouseName"
+            >
+              <el-option
+                v-for="item in warehouseNameList"
+                :key="item.constKey"
+                :label="item.warehouseName"
+                :value="item.warehouseName"
+              />
+            </el-select>
+          </el-form-item>
+        <!--交易所-->
+        <ws-form-item label="交易所" span="1" prop="transactionsPlace">
+          <ws-input
+            v-model="deptBudgetList.transactionsPlace"
+            placeholder="请输入交易所"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--交货所在地区-->
+        <ws-form-item label="交货所在地区" span="1" prop="sourceGoods">
+          <el-cascader
+            :options="options_"
+            v-model="selectedOptions"
+            clearable
+            size="large"
+            placeholder="请选择交货所在地区"
+            style="width: 200%"
+            @change="handleChange"
+          />
+        </ws-form-item>
+        <!--合约号-->
+        <ws-form-item label="合约号" span="1" prop="contractNumber">
+          <ws-input
+            v-model="deptBudgetList.contractNumber"
+            placeholder="请输入合约号"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--交货详细地址-->
+        <ws-form-item label="交货详细地址" span="1" prop="placeDelivery">
+          <ws-input
+            v-model="deptBudgetList.placeDelivery"
+            placeholder="请输入交货详细地址"
+            maxlength="20"
+            size="small"
+          />
+        </ws-form-item>
+        <!--点价(元/吨)-->
+        <ws-form-item label="点价(元/吨)" span="1" prop="pointPrice">
+          <ws-input
+            v-model="deptBudgetList.pointPrice"
+            placeholder="请输入合约点价"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--签订日期-->
+        <ws-form-item label="签订日期" span="1" prop="signingDate">
+          <ws-date-picker
+            v-model="deptBudgetList.signingDate"
+            type="date"
+            placeholder="请选择合同签订日期"
+            value-format="yyyy-MM-dd"
+          />
+        </ws-form-item>
+        <!--点价日期-->
+        <ws-form-item label="点价日期" span="1" prop="pointPriceDate">
+          <ws-date-picker
+            v-model="deptBudgetList.pointPriceDate"
+            type="date"
+            placeholder="请选择点价日期"
+            value-format="yyyy-MM-dd"
+          />
+        </ws-form-item>
+        
+        
+        <!--交货日期(起)-->
+        <ws-form-item label="交货日期(起)" span="1" prop="deliveryDateStart">
+          <ws-date-picker
+            v-model="deptBudgetList.deliveryDateStart"
+            type="date"
+            placeholder="请选择交货日期(起)"
+            value-format="yyyy-MM-dd"
+          />
+        </ws-form-item>
+        <!--临时仓库负责人-->
+        <ws-form-item
+          v-show="deptBudgetList.deliverType == 1"
+          label="临时仓库负责人"
+          span="1"
+          prop="packingMethod"
+        >
+          <el-select
+            v-model="deptBudgetList.personCharge"
+            placeholder="请选择临时仓库负责人"
+            filterable
+            :filter-method="dataFilter"
+            @change="selectstaff"
+          >
+            <el-option
+              v-for="item in options"
+              :key="item.value"
+              :label="item.staffName"
+              :value="item.staffName"
+            />
+          </el-select>
+        </ws-form-item>
+        <!--交货日期(止)-->
+        <ws-form-item label="交货日期(止)" span="1" prop="deliveryDateEnd">
+          <ws-date-picker
+            v-model="deptBudgetList.deliveryDateEnd"
+            type="date"
+            placeholder="请选择交货日期(止)"
+            value-format="yyyy-MM-dd"
+          />
+        </ws-form-item>
+        
+    </ws-info-table>
+
+      <div class="wenzi">
+        <h3>货物信息</h3>
+      </div>
+      <!--货物信息-->
+
+      <ws-info-table>
+        <!--货名-->
+        <ws-form-item
+            class="readonly"
+            label="货名"
+            span="1"
+            prop="waterContent"
+          >
+            {{ deptBudgetList.contractGoodsInfo.goodsName }}
+          </ws-form-item>
+        <!--水分(%)<=-->
+        <ws-form-item label="水分(%)" span="1" prop="waterContent">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.waterContent"
+            placeholder="请输入水分占比"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--品级-->
+        <ws-form-item label="品级" span="1" prop="grade">
+          <ws-select
+            v-model="deptBudgetList.contractGoodsInfo.grade"
+            placeholder="请选择品级"
+            class="typeselect"
+            @change="selectgrade"
+          >
+            <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
+            v-model="deptBudgetList.contractGoodsInfo.impurity"
+            placeholder="请输入杂质占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--容量(克/升)>=-->
+        <ws-form-item label="容量(克/升)" span="1" prop="bulkDensity">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.bulkDensity"
+            placeholder="请输入容重"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--霉变粒(%)<=-->
+        <ws-form-item label="霉变粒(%)" span="1" prop="mildewGrain">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.mildewGrain"
+            placeholder="请输入霉变粒占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--热损伤(%)<=-->
+        <ws-form-item label="热损伤(%)" span="1" prop="jiaorenli">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.jiaorenli"
+            placeholder="请输入输入热损伤占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--不完整粒(%)<=-->
+        <ws-form-item label="不完整粒(%)" span="1" prop="imperfectGrain">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.imperfectGrain"
+            placeholder="请输入不完整粒占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--蛋白(%)>=-->
+        <ws-form-item label="蛋白(%)" span="1" prop="protein">
+          <ws-input
+            v-model="deptBudgetList.contractGoodsInfo.protein"
+            placeholder="请输入蛋白占比(%)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--转基因-->
+        <ws-form-item label="转基因" span="1" prop="transgene">
+          <ws-select
+            v-model="deptBudgetList.contractGoodsInfo.transgene"
+            placeholder="请选择转基因要求"
+            class="typeselect"
+            @change="selecttransgene"
+          >
+            <ws-option
+              v-for="item in transgeneList"
+              :key="item.constKey"
+              :label="item.constValue"
+              :value="item.constValue"
+            />
+          </ws-select>
+        </ws-form-item>
+        <!--产地-->
+        <ws-form-item label="产地" span="1" prop="protein">
+          <el-cascader
+              :options="options1_"
+              v-model="selectedOptions1"
+              clearable
+              size="large"
+              placeholder="请选择产地"
+              @change="handleChange1"
+              style="width:200%"
+            />
+        </ws-form-item>
+
+      </ws-info-table>
+
+      <div class="wenzi">
+        <h3>流程信息</h3>
+      </div>
+      <!--流程信息-->
+
+      <ws-info-table>
+          <!--合同收入(元)-->
+          <ws-form-item label="合同收入(元)" span="1" prop="goodsNameKey">
+            <ws-input
+              v-model="deptBudgetList.contractProcessInfo.goodsNameKey"
+              placeholder="请输入合同收入(元)"
+              maxlength="100"
+              size="small"
+            />
+          </ws-form-item>
+        <!--已开发票(元)-->
+        <ws-form-item label="已开发票(元)" span="1" prop="goodsName">
+          <ws-input
+            v-model="deptBudgetList.contractProcessInfo.goodsName"
+            placeholder="请输入已开发票(元)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--费用支出(元)-->
+        <ws-form-item label="费用支出(元)" span="1" prop="waterContent">
+          <ws-input
+            v-model="deptBudgetList.contractProcessInfo.waterContent"
+            placeholder="请输入费用支出(元)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--未开发票(元)-->
+        <ws-form-item label="未开发票(元)" span="1" prop="impurity">
+          <ws-input
+            v-model="deptBudgetList.contractProcessInfo.impurity"
+            placeholder="请输入未开发票(元)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--未回款(元)-->
+        <ws-form-item label="未回款(元)" span="1" prop="mildewGrain">
+          <ws-input
+            v-model="deptBudgetList.contractProcessInfo.mildewGrain"
+            placeholder="请输入未回款(元)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--双章原件回收情况-->
+        <ws-form-item label="双章原件回收情况" span="1" prop="grade">
+          <ws-select
+            v-model="deptBudgetList.contractProcessInfo.grade"
+            placeholder=""
+            class="typeselect"
+            @change="selectChapterTwo"
+          >
+            <ws-option
+              v-for="item in ChapterTwoList"
+              :key="item.constKey"
+              :label="item.constValue"
+              :value="item.constValue"
+            />
+          </ws-select>
+        </ws-form-item>
+      </ws-info-table>
+
+      <div class="wenzi">
+        <h3>备注信息</h3>
+      </div>
+      <!--备注信息-->
+      <ws-input
+        v-model="deptBudgetList.remarks"
+        type="textarea"
+        row="3"
+        placeholder="请输入备注信息,不超过200字"
+        maxlength="200"
+      />
+      
+      <el-upload
+        class="upload-demo"
+        action="https://www.zthymaoyi.com/upload/admin"
+         :on-success="
+            (res, file) => {
+              uploadSuccessHandle(res)
+            }
+          "
+        multiple
+        :limit="3"
+        :file-list="fileList"
+      >
+        <el-button size="small" type="primary">点击上传</el-button>
+        <div slot="tip" class="el-upload__tip">
+          推荐格式.jpg, .jpeg, .png, .gif, .pdf, .doc, .zip, .rar,单个文件大小不超过10M
+        </div>
+      </el-upload>
+    </ws-form>
+    <div style="text-align: right; padding: 10px" class="center">
+      <el-button
+        class="bg-bottom"
+        type="primary"
+        size="small"
+        @click="submit(deptBudgetList)"
+        >提交</el-button
+      >
+    </div>
+  </div>
+</template>
+<script>
+import { regionData,provinceAndCityDataPlus, CodeToText, TextToCode } from 'element-china-area-data'
+import {
+  packList,
+  getwarehousename,
+  xiala,
+  addxiala,
+  editxiala,
+  delxiala,
+  examineList,
+  editInfo,
+  getstaff,
+} from '@/model/contarct/index'
+import WsUpload from '@/components/WsUpload'
+import { EventBus, dayjs } from 'base-core-lib'
+export default {
+  name: 'viewSpareMoney',
+  watch: {
+    vesselId(val) {
+      this.getVesselData()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  components: {
+    WsUpload,
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      size: 10,
+      // 提交类型
+      submitType: true,
+      tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
+      ruleDeptBudget: [],
+      deptBudgetList: {
+        contractProcessInfo: {},
+        contractGoodsInfo: {},
+      },
+      options_: regionData,
+      selectedOptions: [],
+      selectedOptions1: [],
+      mainReportAdd: {},
+      list: {},
+      transgeneList: [],
+      unitList: [],
+      options_: regionData,
+      options1_:provinceAndCityDataPlus,
+      staffList: [],
+      packtypeList: [],
+      goodnameList: [],
+      gradeList: [],
+      warehouseNameList: [],
+      warehouseNameList1: [],
+      ChapterTwoList: [],
+      appendixIdsAdd: '',
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      acceptanceCheck: {},
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      addressUrls:[],
+      addressUrl:'',
+      fileList:[],
+    }
+  },
+
+  activated() {
+    getstaff({ compId: sessionStorage.getItem('ws-pf_compId') })
+      .toPromise()
+      .then((response) => {
+        this.options = response
+        this.staffList = response
+      })
+    this.loaddata()
+    this.showType = this.isShow
+  },
+  methods: {
+    close(index) {
+      this.addressUrls.splice(index, 1)
+    },
+    dataFilter(val) {
+      this.deptBudgetList.personCharge = val
+      if (val) {
+        //val存在
+        this.options = this.staffList.filter((item) => {
+          if (
+            !!~item.staffName.indexOf(val) ||
+            !!~item.staffName.toUpperCase().indexOf(val.toUpperCase())
+          ) {
+            return true
+          }
+        })
+      } else {
+        //val为空时,还原数组
+        this.options = this.staffList
+      }
+    },
+    selectstaff(e) {
+      for (var i = 0; i < this.staffList.length; i++) {
+        if (this.staffList[i].staffName == e) {
+          this.deptBudgetList.personPhone = this.staffList[i].staffMobilePhone
+          this.deptBudgetList.personChargeKey = this.staffList[i].staffId
+        }
+      }
+    },
+    handleChange(value) {
+      this.selectedOptions = value
+      this.dataList.deliveryProvince = CodeToText[value[0]]
+      this.dataList.deliveryCity = CodeToText[value[1]]
+      this.dataList.deliveryArea = CodeToText[value[2]]
+    },
+    handleChange1(value) {
+      this.selectedOptions1 = value
+      this.dataList.contractGoodsInfo.outputPrivate = CodeToText[value[0]]
+      this.dataList.contractGoodsInfo.outputCity = CodeToText[value[1]]
+    },
+    loaddata() {
+      // 数据
+       examineList({ id: this.$route.query.id })
+        .toPromise()
+        .then((response) => {
+          this.deptBudgetList = response
+          this.selectedOptions = tmp
+          var tmp = []
+          tmp[0] = TextToCode[response.deliveryProvince].code
+          tmp[1] =
+            TextToCode[response.deliveryProvince][response.deliveryCity].code
+          tmp[2] =
+            TextToCode[response.deliveryProvince][response.deliveryCity][
+              response.deliveryArea
+            ].code
+
+          if (tmp[0] == 810000 || tmp[0] == 820000) {
+            tmp[2] = null
+          } else {
+            tmp[2] =
+              TextToCode[response.deliveryProvince][response.deliveryCity][
+                response.deliveryArea
+              ].code
+          }
+          this.selectedOptions = tmp
+          var tmp1 = []
+          tmp1[0] = TextToCode[response.contractGoodsInfo.outputPrivate].code
+          tmp1[1] =
+            TextToCode[response.contractGoodsInfo.outputPrivate][response.contractGoodsInfo.outputCity].code
+          this.selectedOptions1 = tmp1
+          if (this.deptBudgetList.deliverType == 1) {
+            this.deptBudgetList.deliverType1 = '我方自提'
+          } else if (this.deptBudgetList.deliverType == 2) {
+            this.deptBudgetList.deliverType1 = '对方送货'
+          }
+          if(this.deptBudgetList.addressUrl != null){
+            this.addressUrls = this.deptBudgetList.addressUrl.split(",")
+            this.fileList = this.deptBudgetList.addressUrl.split(",")
+          }
+        })
+
+      // 包装方式
+      packList({ constId: 'CON1' })
+        .toPromise()
+        .then((response) => {
+          this.packtypeList = response
+        })
+      // 验收方式
+      this.getUnitList()
+      // 货名
+      packList({ constId: 'CON2' })
+        .toPromise()
+        .then((response) => {
+          this.goodnameList = response
+        })
+      // 品级
+      packList({ constId: 'CON3' })
+        .toPromise()
+        .then((response) => {
+          this.gradeList = response
+        })
+        //转基因
+      packList({ constId: 'CON7' })
+        .toPromise()
+        .then((response) => {
+          this.transgeneList = response
+        })
+        //收货库
+        getwarehousename({
+        compId: this.compId,
+        warehouseType: 1,
+      })
+        .toPromise()
+        .then((response) => {
+          this.warehouseNameList = response
+        })
+      getwarehousename({
+        compId: this.compId,
+        warehouseType: 2,
+      })
+        .toPromise()
+        .then((response) => {
+          this.warehouseNameList1 = response
+        })
+      // 双章
+      packList({ constId: 'CON4' })
+        .toPromise()
+        .then((response) => {
+          this.ChapterTwoList = response
+        })
+    },
+    addClick() {
+      this.unitList.push({
+        flag: 'add',
+        constValue: '',
+        constKey: '',
+      })
+    },
+    // 上传附件
+    uploadSuccessHandle(e) {
+      this.addressUrl += e.url+""
+       this.addressUrls.push(this.addressUrl.split(","))
+    },
+    getUnitList() {
+      xiala({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        constCode: 'TYPEYAN',
+      })
+        .toPromise()
+        .then((response) => {
+          this.unitList = response
+          let currItem
+          this.unitList.forEach((item, index, arr) => {
+            item.flag = 'delete'
+            if (this.vModel == item.constKey) {
+              currItem = item
+            }
+          })
+          //
+          if (currItem) {
+            this.selectContract(currItem.constValue)
+          }
+        })
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleClose() {
+      this.dialogViewSpareMoney = false
+    },
+    // handleExamine(row) {
+    //   console.log(row)
+    //   this.$router.push({
+    //     name: 'futuresPurchaseContractExamine',
+    //     query: { id: row.id, status: row.status },
+    //   })
+    // },
+    // approve() {},
+    returnsales() {
+      this.$router.push({ path: 'futuresSalesContract' })
+    },
+    confirmationsheet() {
+      this.$router.push({ path: 'salesPriceConfirmationSheet' })
+    },
+    selectChapterTwo(e) {
+      for (var i = 0; i < this.ChapterTwoList.length; i++) {
+        if (this.ChapterTwoList[i].constValue == e) {
+          this.deptBudgetList.gradeKey = this.ChapterTwoList[i].constKey
+        }
+      }
+    },
+    selectunitList(e) {
+      for (var i = 0; i < this.unitList.length; i++) {
+        if (this.unitList[i].constValue == e) {
+          this.deptBudgetList.packingMethodKey = this.unitList[i].constKey
+        }
+      }
+    },
+    selecttransgene(e) {
+      for (var i = 0; i < this.transgeneList.length; i++) {
+        if (this.transgeneList[i].constValue == e) {
+          this.deptBudgetList.gradeKey = this.transgeneList[i].constKey
+        }
+      }
+    },
+    selectwarehouseName() {},
+    selectgrade(e) {
+      for (var i = 0; i < this.gradeList.length; i++) {
+        if (this.gradeList[i].constValue == e) {
+          this.deptBudgetList.gradeKey = this.gradeList[i].constKey
+        }
+      }
+    },
+    selectpackingMethod(e) {
+      for (var i = 0; i < this.packtypeList.length; i++) {
+        if (this.packtypeList[i].constValue == e) {
+          this.deptBudgetList.acceptanceMethodKey =
+            this.packtypeList[i].constKey
+        }
+      }
+    },
+    saveClick(item, index) {
+      console.log(item)
+
+      if (Object.is(item.id, 1)) {
+        return
+      }
+      if (Object.is(this.unitList[index].flag, 'delete')) {
+        this.$set(this.unitList, index, { flag: 'check' })
+      } else {
+        this.$set(this.unitList, index, { flag: 'delete' })
+      }
+      if (!item.constValue) {
+        this.unitList.splice(index, 1)
+        return
+      }
+      if (item.flag == 'add') {
+        item.constKey = Math.random() * 20
+        this.acceptanceCheck.compId = this.compId
+        this.acceptanceCheck.constKey = item.constKey
+        this.acceptanceCheck.constCode = 'TYPEYAN'
+        this.acceptanceCheck.constValue = item.constValue
+        this.acceptanceCheck.id = item.id
+        addxiala(this.acceptanceCheck)
+          .toPromise()
+          .then((response) => {
+            this.getUnitList()
+          })
+      } else if (item.flag == 'check') {
+        this.acceptanceCheck.compId = this.compId
+        this.acceptanceCheck.constKey = item.constKey
+        this.acceptanceCheck.constCode = 'TYPEYAN'
+        this.acceptanceCheck.constValue = item.constValue
+        this.acceptanceCheck.id = item.id
+        editxiala(this.acceptanceCheck)
+          .toPromise()
+          .then((response) => {
+            this.getUnitList()
+          })
+      }
+    },
+    // 编辑
+    editClick(item, index) {
+      const map = JSON.parse(JSON.stringify(item))
+      if (Object.is(item.id, 1)) {
+        return
+      }
+      if (Object.is(this.unitList[index].flag, 'delete')) {
+        map.flag = 'check'
+        this.$set(this.unitList, index, map)
+      } else {
+        map.flag = 'delete'
+        this.$set(this.unitList, index, map)
+      }
+    },
+    // 删除
+    deleteClick(item, index) {
+      if (Object.is(item.constKey, 1)) {
+        return
+      }
+      if (!item.constValue) {
+        this.unitList.splice(index, 1)
+        return
+      }
+      delxiala({ id: this.unitList[index].id })
+        .toPromise()
+        .then((response) => {
+          this.getUnitList()
+          this.pleaseChoose = ''
+        })
+    },
+    submit() {
+      if (!this.deptBudgetList.contractNo) {
+        this.$message({
+          message: '请输入合同编号',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractNo.length < 6 ||
+        this.deptBudgetList.contractNo.length > 20
+      ) {
+        this.$message({
+          message: '合同编号长度不符合要求,请输入6到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.shippingType) {
+        this.$message({
+          message: '请输入运输方式!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.shippingType.length < 1 ||
+        this.deptBudgetList.shippingType.length > 20
+      ) {
+        this.$message({
+          message: '运输方式长度不符合要求,请输入1到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.buyer) {
+        this.$message({
+          message: '请输入买方名称!',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.deptBudgetList.buyer.length > 30) {
+        this.$message({
+          message: '买方名称长度不符合要求,请输入30个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.seller) {
+        this.$message({
+          message: '请输入卖方名称!',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.deptBudgetList.seller.length > 30) {
+        this.$message({
+          message: '卖方名称长度不符合要求,请输入30个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.buyerPhone) {
+        this.$message({
+          message: '请输入买方电话!',
+          type: 'warning',
+        })
+        return
+      }
+      if (isNaN(this.deptBudgetList.buyerPhone)) {
+        this.$message({
+          message: '输入买方电话有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.buyerPhone.length < 7 ||
+        this.deptBudgetList.buyerPhone.length > 20
+      ) {
+        this.$message({
+          message: '买方电话长度不符合要求,请输入7到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.sellerPhone) {
+        this.$message({
+          message: '请输入卖方电话!',
+          type: 'warning',
+        })
+        return
+      }
+      if (isNaN(this.deptBudgetList.sellerPhone)) {
+        this.$message({
+          message: '输入卖方电话有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.buyerPhone.length < 7 ||
+        this.deptBudgetList.buyerPhone.length > 20
+      ) {
+        this.$message({
+          message: '卖方电话长度不符合要求,请输入7到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.weight) {
+        this.$message({
+          message: '请输入交易数量!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        isNaN(this.deptBudgetList.weight) ||
+        (String(this.deptBudgetList.weight).indexOf('.') != -1 &&
+          String(this.deptBudgetList.weight).length -
+            (String(this.deptBudgetList.weight).indexOf('.') + 1) >
+            3) ||
+        this.deptBudgetList.weight < 0 ||
+        this.deptBudgetList.weight > 200000
+      ) {
+        this.$message({
+          message: '输入交易数量有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.basisPrice) {
+        this.$message({
+          message: '请输入基差!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        isNaN(this.deptBudgetList.basisPrice) ||
+        (String(this.deptBudgetList.basisPrice).indexOf('.') != -1 &&
+          String(this.deptBudgetList.basisPrice).length -
+            (String(this.deptBudgetList.basisPrice).indexOf('.') + 1) >
+            3) ||
+        this.deptBudgetList.basisPrice < 0 ||
+        this.deptBudgetList.basisPrice > 10000
+      ) {
+        this.$message({
+          message: '基差输入错误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.transactionsPlace) {
+        this.$message({
+          message: '请输入交易所!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.transactionsPlace.length < 2 ||
+        this.deptBudgetList.transactionsPlace.length > 15
+      ) {
+        this.$message({
+          message: '交易所长度不符合要求,请输入2到15个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractNumber) {
+        this.$message({
+          message: '请输入合约号!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractNumber.length < 2 ||
+        this.deptBudgetList.contractNumber.length > 15
+      ) {
+        this.$message({
+          message: '合约号长度不符合要求,请输入2到15个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.pointPrice) {
+        this.$message({
+          message: '请输入点价!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        isNaN(this.deptBudgetList.pointPrice) ||
+        (String(this.deptBudgetList.pointPrice).indexOf('.') != -1 &&
+          String(this.deptBudgetList.pointPrice).length -
+            (String(this.deptBudgetList.pointPrice).indexOf('.') + 1) >
+            3) ||
+        this.deptBudgetList.pointPrice < 0 ||
+        this.deptBudgetList.pointPrice > 100000
+      ) {
+        this.$message({
+          message: '输入点价有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.measurementStandard) {
+        this.$message({
+          message: '请输入计量标准!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.measurementStandard.length < 1 ||
+        this.deptBudgetList.measurementStandard.length > 20
+      ) {
+        this.$message({
+          message: '计量标准长度不符合要求,请输入1到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.settlementMethod) {
+        this.$message({
+          message: '请输入结算方式!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.placeDelivery) {
+        this.$message({
+          message: '请输入交货详细地址!',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.selectedOptions.length == 0) {
+        this.$message({
+          message: '请选择交货所在地区!',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.selectedOptions1.length == 0) {
+        this.$message({
+          message: '请选择产地!',
+          type: 'warning',
+        })
+        return
+      }
+      
+      if (!this.deptBudgetList.deliveryDateStart) {
+        this.$message({
+          message: '请选择交货日期(起)',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.deliveryDateEnd) {
+        this.$message({
+          message: '请选择交货日期(止)',
+          type: 'warning',
+        })
+        return
+      }
+      //时间
+      if (
+        new Date(this.deptBudgetList.deliveryDateStart).getTime() >
+        new Date(this.deptBudgetList.deliveryDateEnd).getTime()
+      ) {
+        this.$message({
+          message: '交货日期(止)选择错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.signingDate) {
+        this.$message({
+          message: '请选择签订日期',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractGoodsInfo.goodsName) {
+        this.$message({
+          message: '请选择货名',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractGoodsInfo.waterContent) {
+        this.$message({
+          message: '请输入水分',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractGoodsInfo.grade) {
+        this.$message({
+          message: '请选择品级',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractGoodsInfo.transgene) {
+        this.$message({
+          message: '请选择转基因',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.impurity ||
+        (String(this.deptBudgetList.contractGoodsInfo.impurity).indexOf('.') !=
+          -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.impurity).length -
+            (String(this.deptBudgetList.contractGoodsInfo.impurity).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '杂质输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.bulkDensity ||
+        (String(this.deptBudgetList.contractGoodsInfo.bulkDensity).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.bulkDensity).length -
+            (String(this.deptBudgetList.contractGoodsInfo.bulkDensity).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '容重输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.mildewGrain ||
+        (String(this.deptBudgetList.contractGoodsInfo.mildewGrain).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.mildewGrain).length -
+            (String(this.deptBudgetList.contractGoodsInfo.mildewGrain).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '霉变粒输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.jiaorenli ||
+        (String(this.deptBudgetList.contractGoodsInfo.jiaorenli).indexOf('.') !=
+          -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.jiaorenli).length -
+            (String(this.deptBudgetList.contractGoodsInfo.jiaorenli).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '热损伤输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.imperfectGrain ||
+        (String(this.deptBudgetList.contractGoodsInfo.imperfectGrain).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.imperfectGrain).length -
+            (String(
+              this.deptBudgetList.contractGoodsInfo.imperfectGrain
+            ).indexOf('.') +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '不完整粒输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.protein ||
+        (String(this.deptBudgetList.contractGoodsInfo.protein).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractGoodsInfo.protein).length -
+            (String(
+              this.deptBudgetList.contractGoodsInfo.protein
+            ).indexOf('.') +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '蛋白输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractProcessInfo.goodsNameKey > 1000000000 ||
+        this.deptBudgetList.contractProcessInfo.goodsNameKey < 0 ||
+        (String(this.deptBudgetList.contractProcessInfo.goodsNameKey).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractProcessInfo.goodsNameKey).length -
+            (String(
+              this.deptBudgetList.contractProcessInfo.goodsNameKey
+            ).indexOf('.') +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '合同收入金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractProcessInfo.waterContent > 10000000 ||
+        this.deptBudgetList.contractProcessInfo.waterContent < 0 ||
+        (String(this.deptBudgetList.contractProcessInfo.waterContent).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractProcessInfo.waterContent).length -
+            (String(
+              this.deptBudgetList.contractProcessInfo.waterContent
+            ).indexOf('.') +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '费用金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractProcessInfo.goodsName > 1000000000 ||
+        this.deptBudgetList.contractProcessInfo.goodsName < 0 ||
+        (String(this.deptBudgetList.contractProcessInfo.goodsName).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractProcessInfo.goodsName).length -
+            (String(this.deptBudgetList.contractProcessInfo.goodsName).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '已开发票金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractProcessInfo.impurity > 1000000000 ||
+        this.deptBudgetList.contractProcessInfo.impurity < 0 ||
+        (String(this.deptBudgetList.contractProcessInfo.impurity).indexOf(
+          '.'
+        ) != -1 &&
+          String(this.deptBudgetList.contractProcessInfo.impurity).length -
+            (String(this.deptBudgetList.contractProcessInfo.impurity).indexOf(
+              '.'
+            ) +
+              1) >
+            2)
+      ) {
+        this.$message({
+          message: '未开发票金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      this.$refs.deptBudgetList.validate((valid) => {
+        if (valid) {
+          this.deptBudgetList.contractGoodsInfo.outputPrivate = CodeToText[this.selectedOptions1[0]]
+          this.deptBudgetList.contractGoodsInfo.outputCity = CodeToText[this.selectedOptions1[1]]
+         
+          this.deptBudgetList.deliveryProvince = CodeToText[this.selectedOptions[0]]
+          this.deptBudgetList.deliveryCity = CodeToText[this.selectedOptions[1]]
+        
+          this.deptBudgetList.compId = this.compId
+          this.deptBudgetList.contractType = 1
+          this.deptBudgetList.goodsType = 2
+           if(this.deptBudgetList.deliveryProvince =="澳门特别行政区" || this.deptBudgetList.deliveryProvince == "澳门特别行政区"){
+            this.deptBudgetList.deliveryArea = "特别行政区"
+          }else{ 
+                 this.deptBudgetList.deliveryArea =  CodeToText[this.selectedOptions[2]]
+          }
+          this.deptBudgetList.addressUrl = this.addressUrls.toString()
+          editInfo(this.deptBudgetList)
+            .toPromise()
+            .then((response) => {
+              this.$message.success('编辑成功')
+              this.$router.push({ path: 'futuresSalesContract' })
+            })
+        } else {
+          EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+          return false
+        }
+      })
+    },
+  },
+}
+</script>
+<style lang="scss" scoped>
+.el-form {
+  padding: 0 15%;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 1px solid #cdd2dc;
+  border-bottom: 1px solid #cdd2dc;
+}
+.readonly {
+  position: relative;
+}
+.readonly:after {
+  content: '*';
+  color: #ff2727;
+  position: absolute;
+  right: 8px;
+  z-index: 10;
+  top: 21%;
+  font-size: 20px;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  padding: 0 25px;
+  border-left: 1px solid #cdd2dc;
+  background: #fafbfc;
+  color: #8890B1;
+}
+/deep/.el-form-item.is-success .el-input__inner , /deep/.el-cascader .el-input .el-input__inner, /deep/.el-textarea__inner{
+  color: #8890B1;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 140px;
+  text-align: center;
+  background: #f0f2f6;
+  // border: 1px solid #cdd2dc;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.box-app {
+  display: inline-block;
+  float: left;
+  margin-left: 30px;
+  line-height: 50px;
+}
+/deep/.el-dialog {
+  .el-form-item {
+    margin-bottom: 0 !important;
+    .el-input--medium {
+      textarea {
+        min-height: 100px !important;
+      }
+    }
+  }
+}
+.collapse-bottom {
+  margin-bottom: 20px;
+}
+.input-main .textarea .el-textarea__inner {
+  width: 100%;
+  z-index: 1;
+}
+.bg-left {
+  padding-left: 30px;
+}
+.bg-right {
+  padding-right: 10px;
+  text-align: right;
+}
+.bg-bottom {
+  margin: 15px 0px;
+}
+.wenzi {
+  width: 900px;
+  margin: 0 auto;
+}
+.wenzi h3 {
+  display: inline-block;
+  left: 10px;
+}
+.wenzi p {
+  display: inline-block;
+}
+.center {
+  width: 900px;
+  margin: 0 auto;
+}
+.el-form-item {
+  width: 50%;
+}
+.el-form-item__label {
+  text-align: center;
+}
+.ce {
+  width: 900px;
+  margin: 0 auto;
+}
+/*.crt-main .textarea /deep/ .el-form-item__label {*/
+/*  height: 82px;*/
+/*}*/
+// 控制select为只读的时候显示样式
+
+.hide-sel {
+  .el-input__inner {
+    border: 0px;
+  }
+  .el-icon-arrow-up {
+    display: none;
+  }
+  .el-textarea__inner {
+    background-color: #fff !important;
+    border: 0;
+  }
+  .el-date-editor {
+    i {
+      display: none;
+    }
+  }
+  .is-disabled {
+    .el-input__inner:hover {
+      background-color: #fff !important;
+      border: 0;
+    }
+    color: #606266;
+    .el-input__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+    .el-textarea__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+  }
+}
+
+// 控制select为只读的时候显示样式
+/deep/.ws-class-table-col {
+  height: auto;
+  padding: 0px 2px;
+  /deep/.el-input__inner {
+    padding: 0px 2px;
+  }
+}
+/deep/.is-disabled {
+  .el-input__prefix,
+  .el-input__suffix {
+    display: none;
+  }
+  .el-input__inner {
+    background-color: #fff;
+    border-color: #fff !important;
+    color: #000 !important;
+    font-size: 14px;
+    cursor: text;
+    padding: 0 !important;
+  }
+}
+.winseaview-view {
+  padding: 0 0 20px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 130px;
+}
+.el-textarea{
+  width: 101%;
+}
+/deep/.iconclose:before {
+    display: none;
+}
+/deep/.winsea-card .card__header {
+    font-size: 14px;
+    color: #409eff;
+    padding: 0 0 20px 10px;
+    position: relative;
+    display: none;
+}
+.addressUrls {
+  width: 100%;
+  display: flex;
+  margin-top: 10px;
+}
+.addressUrls-item {
+  position: relative;
+  display: flex;
+}
+.icon-guanbi {
+  position: absolute;
+  right: 8px;
+}
+.addressUrl {
+  margin: 0px 10px;
+  border-radius: 3px;
+}
+.queren{
+  margin-left: 100%;
+  margin-top: -60px;
+}
+//上传文件成功标识
+/deep/.el-upload-list__item-status-label {
+    position: absolute;
+    right: 22px;
+    top: -1px;
+    line-height: inherit;
+    display: none;
+}
+</style>

+ 664 - 0
src/views/contractManagement/futuresSalesContractExamine.vue

@@ -0,0 +1,664 @@
+<!--期货销售合同查看-->
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="12">
+        <h2 class="bg-left title">查看合同详情</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right">
+        <el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="returnsales()"
+          ><img
+            width="6"
+            height="10"
+            style="vertical-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt=""
+          />返回</el-button
+        >
+      </el-col>
+    </el-row>
+
+    <ws-form ref="deptBudgetList" :rules="mainReportAdd" :model="deptBudgetList"
+      ><div style="margin-top: 20px; font-size: 24px">
+        销售合同<span style="font-size: 16px"
+          >【编号:{{ deptBudgetList.contractNo }}】</span
+        >
+        <div class="icon">
+        <template>
+          <el-popover
+            placement="right"
+            :width="285"
+            trigger="click"
+            visible-arrow="false"
+            @show="history(deptBudgetList.id)"
+          >
+          <template>
+            <div slot="reference"> {{deptBudgetList.status }}</div>
+          </template>
+            <div>
+              <p style="margin-top: 0; padding-left: 10px">操作历史</p>
+              <div v-for="(item, index) in historyList" class="flex">
+                <div class="vertical-text vertical-text-left">
+                  {{ item.updateDate }}
+                </div>
+                <div>
+                  <div class="vertical-circle"></div>
+                  <div
+                    v-if="index != historyList.length - 1"
+                    class="vertical-line"
+                  ></div>
+                </div>
+                <div class="vertical-text">
+                  {{ item.operateUser }}<br />{{ item.dealMsg }}
+                </div>
+              </div>
+            </div>
+          </el-popover>
+        </template>
+      </div>
+      </div>
+      <div class="remark">
+        <h3>基本信息</h3>
+        <div class="queren"><el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="confirmationsheet()"
+          >确认单</el-button
+        ></div>
+      </div>
+      <ws-info-table>
+        <ws-form-item label="合同编号" span="1" prop="contractNo">
+          {{ deptBudgetList.contractNo }}
+        </ws-form-item>
+        <ws-form-item label="运输方式" span="1" prop="shippingType">
+          {{ deptBudgetList.shippingType }}
+        </ws-form-item>
+        <ws-form-item label="买方" span="1" prop="buyer">
+          {{ deptBudgetList.buyer }}
+        </ws-form-item>
+        <ws-form-item label="结算方式" span="1" prop="settlementMethod"
+          >{{ deptBudgetList.settlementMethod }}
+        </ws-form-item>
+        <ws-form-item label="买方电话" span="1" prop="buyerPhone"
+          >{{ deptBudgetList.buyerPhone }}
+        </ws-form-item>
+        <ws-form-item label="交货方式" span="1" prop="deliverType1"
+          >{{ deptBudgetList.deliverType1 }}
+        </ws-form-item>
+        <ws-form-item label="卖方" span="1" prop="seller"
+          >{{ deptBudgetList.seller }}
+        </ws-form-item>
+        <ws-form-item label="包装方式" span="1" prop="packingMethod">
+          {{ deptBudgetList.packingMethod }}
+        </ws-form-item>
+        <ws-form-item label="卖方电话" span="1" prop="sellerPhone">
+          {{ deptBudgetList.sellerPhone }}
+        </ws-form-item>
+        <ws-form-item label="验收方式" span="1" prop="acceptanceMethod">
+          {{ deptBudgetList.acceptanceMethod }}
+        </ws-form-item>
+        <ws-form-item label="交易数量(吨)" span="1" prop="weight">
+          {{ deptBudgetList.weight }}
+        </ws-form-item>
+         <ws-form-item label="计量标准" span="1" prop="measurementStandard">
+          {{ deptBudgetList.measurementStandard }}
+        </ws-form-item>
+        <ws-form-item label="基差(元/吨)" span="1" prop="basisPrice">
+          {{ deptBudgetList.basisPrice }}
+        </ws-form-item>
+        <ws-form-item label="出货库" span="1" prop="receiveWarehouse">
+          {{ deptBudgetList.receiveWarehouse }}
+        </ws-form-item>
+        <ws-form-item label="交易所" span="1" prop="transactionsPlace">
+          {{ deptBudgetList.transactionsPlace }}
+        </ws-form-item>
+        <ws-form-item label="交货地所在地区" span="1">
+          {{ deptBudgetList.deliveryProvince }}
+          {{ deptBudgetList.deliveryCity }}
+          {{ deptBudgetList.deliveryArea }}
+        </ws-form-item>
+        <ws-form-item label="合约号" span="1" prop="contractNumber">
+          {{ deptBudgetList.contractNumber }}
+        </ws-form-item>
+        <ws-form-item label="交货地详细地址" span="1" prop=" placeDelivery">
+          {{ deptBudgetList.placeDelivery }}
+        </ws-form-item>
+        <ws-form-item label="点价(元/吨)" span="1" prop="pointPrice">
+          {{ deptBudgetList.pointPrice }}
+        </ws-form-item>
+        <ws-form-item label="签订日期" span="1" prop="signingDate">
+          {{ deptBudgetList.signingDate }}
+        </ws-form-item>
+        <ws-form-item label="点价日期" span="1" prop="pointPriceDate">
+          {{ deptBudgetList.pointPriceDate }}
+        </ws-form-item>
+        <ws-form-item label="交货日期(起)" span="1" prop="deliveryDateStart">
+          {{ deptBudgetList.deliveryDateStart }}
+        </ws-form-item>
+        <ws-form-item label="临时仓库负责人" span="1" prop="personCharge">
+          {{ deptBudgetList.personCharge }}
+        </ws-form-item>
+        <ws-form-item label="交货日期(止)" span="1" prop="deliveryDateEnd">
+          {{ deptBudgetList.deliveryDateEnd }}
+        </ws-form-item>
+      </ws-info-table>
+      <!--货物信息-->
+      <div class="remark">
+        <h3>货物信息</h3>
+      </div>
+      <ws-info-table>
+        <ws-form-item label="货名" span="1" prop="waterContent">
+          {{ deptBudgetList.contractGoodsInfo.goodsName }}
+        </ws-form-item>
+        <ws-form-item label="水分(%)<=" span="1" prop="intendedShipId">
+          {{ deptBudgetList.contractGoodsInfo.waterContent }}
+        </ws-form-item>
+        <ws-form-item label="品级" span="1" prop="grade">
+          {{ deptBudgetList.contractGoodsInfo.grade }}
+        </ws-form-item>
+        <ws-form-item label="杂质(%)<=" span="1" prop="impurity">
+          {{ deptBudgetList.contractGoodsInfo.impurity }}
+        </ws-form-item>
+        <ws-form-item label="容重(克/升)<=" span="1" prop="bulkDensity">
+          {{ deptBudgetList.contractGoodsInfo.bulkDensity }}
+        </ws-form-item>
+        <ws-form-item
+          label="霉变粒(%)<="
+          span="1"
+          prop="mildewGrain"
+          class="result"
+        >
+          {{ deptBudgetList.contractGoodsInfo.mildewGrain }}
+        </ws-form-item>
+        <ws-form-item label="热损伤(%)<=" span="1" prop="jiaorenli">
+          {{ deptBudgetList.contractGoodsInfo.jiaorenli }}
+        </ws-form-item>
+        <ws-form-item
+          label="不完善粒(%)<="
+          span="1"
+          prop="imperfectGrain"
+          class="result"
+        >
+          {{ deptBudgetList.contractGoodsInfo.imperfectGrain }}
+        </ws-form-item>
+        <ws-form-item
+          label="蛋白(%)>="
+          span="1"
+          prop="protein"
+          class="result"
+        >
+          {{ deptBudgetList.contractGoodsInfo.protein }}
+        </ws-form-item>
+        <ws-form-item label="转基因" span="1" prop="transgene">
+          {{ deptBudgetList.contractGoodsInfo.transgene }}
+        </ws-form-item>
+        <ws-form-item label="产地" span="1" >
+          {{ deptBudgetList.contractGoodsInfo.outputPrivate }}
+          {{ deptBudgetList.contractGoodsInfo.outputCity }}
+        </ws-form-item>
+      </ws-info-table>
+      <div class="remark">
+        <h3>流程信息</h3>
+      </div>
+      <ws-info-table>
+         <!--已付款(元)-->
+        <ws-form-item label="合同收入(元)" span="1" prop="goodsNameKey">
+          {{ deptBudgetList.contractProcessInfo.goodsNameKey }}
+        </ws-form-item>
+        <ws-form-item label="已开发票(元)" span="1" prop="goodsName">
+          {{ deptBudgetList.contractProcessInfo.goodsName }}
+        </ws-form-item>
+        <ws-form-item label="费用支出(元)" span="1" prop="waterContent"
+          >{{ deptBudgetList.contractProcessInfo.waterContent }}
+        </ws-form-item>
+        <ws-form-item label="未开发票(元)" span="1" prop="impurity"
+          >{{ deptBudgetList.contractProcessInfo.impurity }}
+        </ws-form-item>
+        <ws-form-item label="未回款(元)" span="1" prop="mildewGrain">
+          {{deptBudgetList.contractProcessInfo.mildewGrain}}
+        </ws-form-item>
+        <ws-form-item label="双章原件回收情况" span="1" prop="grade"
+          >{{ deptBudgetList.contractProcessInfo.grade }}
+        </ws-form-item>
+      </ws-info-table>
+      <div class="remark">
+        <h3>备注信息</h3>
+      </div>
+      <div style=" color: #afb5cb;margin-left: 20px;">
+      {{ deptBudgetList.remarks }}
+      </div>
+      <!-- <img :src="deptBudgetList.addressUrl" alt="" /> -->
+    </ws-form>
+    <div style="text-align: right; padding: 10px">
+      <el-button
+        class="bg-bottom"
+        type="primary"
+        size="small"
+        @click="returnsales()"
+        >关闭</el-button
+      >
+    </div>
+  </div>
+</template>
+<script>
+import {
+  packList,
+  xiala,
+  examineList,
+  billoperatehis,
+} from '@/model/contarct/index'
+export default {
+  name: 'viewSpareMoney',
+  watch: {
+    vesselId(val) {
+      this.getVesselData()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      status: '',
+      // 提交类型
+      submitType: true,
+      historyList:[],
+      tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
+      ruleDeptBudget: [],
+      deptBudgetList: {
+        contractProcessInfo: {},
+        contractGoodsInfo: {},
+      },
+      mainReportAdd: {},
+      list: {},
+    }
+  },
+
+  activated() {
+    this.status = this.$route.query.status
+    this.loaddata()
+    this.showType = this.isShow
+  },
+  methods: {
+    loaddata() {
+      // 数据
+      examineList({ id: this.$route.query.id })
+        .toPromise()
+        .then((response) => {
+          this.deptBudgetList = response
+          if (this.deptBudgetList.deliverType == 1) {
+            this.deptBudgetList.deliverType1 = '我方自提'
+          } else if (this.deptBudgetList.deliverType == 2) {
+            this.deptBudgetList.deliverType1 = '对方送货'
+          }
+        })
+      // 包装方式
+      packList({ constId: 'CON1' })
+        .toPromise()
+        .then((response) => {
+          this.packtypeList = response
+        })
+      // 验收方式
+      this.getUnitList()
+      // 货名
+      packList({ constId: 'CON2' })
+        .toPromise()
+        .then((response) => {
+          this.goodnameList = response
+        })
+      // 品级
+      packList({ constId: 'CON3' })
+        .toPromise()
+        .then((response) => {
+          this.gradeList = response
+        })
+      //转基因
+      packList({ constId: 'CON7' })
+        .toPromise()
+        .then((response) => {
+          this.transgeneList = response
+        })  
+      // 双章
+      packList({ constId: 'CON4' })
+        .toPromise()
+        .then((response) => {
+          this.ChapterTwoList = response
+        })
+    },
+    getUnitList() {
+      xiala({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        constCode: 'TYPEYAN',
+      })
+        .toPromise()
+        .then((response) => {
+          this.unitList = response
+          let currItem
+          this.unitList.forEach((item, index, arr) => {
+            item.flag = 'delete'
+            if (this.vModel == item.constKey) {
+              currItem = item
+            }
+          })
+          //
+          if (currItem) {
+            this.selectContract(currItem.constValue)
+          }
+        })
+    },
+      history(id1) {
+      billoperatehis({ id: id1 })
+        .toPromise()
+        .then((response) => {
+          this.historyList = response
+        })
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleClose() {
+      this.dialogViewSpareMoney = false
+    },
+    returnsales() {
+      this.$router.push({ path: 'futuresSalesContract' })
+    },
+    confirmationsheet() {
+      this.$router.push({ path: 'priceConfirmationSheet',
+      query: { contractNo: this.deptBudgetList.contractNo , contractType: this.deptBudgetList.contractType } })
+    },
+  },
+}
+</script>
+<style lang="scss" scoped>
+.status-orange,
+.status-bule,
+.status-green {
+  border: 1px solid;
+  border-radius: 30px;
+  padding: 3px 10px;
+  font-size: 16px;
+}
+.status-orange {
+  border-color: #ff9f24;
+  color: #ff9f24;
+  background: #ffedd5;
+}
+.status-bule {
+  border-color: #5473e8;
+  color: #5473e8;
+  background: #f0f3fe;
+}
+.status-green {
+  border-color: #50cad4;
+  color: #50cad4;
+  background: #ecfeff;
+}
+.el-form {
+  padding: 0 15%;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 1px solid #cdd2dc;
+  border-bottom: 1px solid #cdd2dc;
+}
+.readonly {
+  position: relative;
+}
+.readonly:after {
+  content: '*';
+  color: #ff2727;
+  position: absolute;
+  right: 8px;
+  z-index: 10;
+  top: 21%;
+  font-size: 20px;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  padding: 0 25px;
+  border-left: 1px solid #cdd2dc;
+  background: #fafbfc;
+  color: #afb5cb;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 140px;
+  text-align: center;
+  background: #f0f2f6;
+  // border: 1px solid #cdd2dc;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.box-app {
+  display: inline-block;
+  float: left;
+  margin-left: 30px;
+  line-height: 50px;
+}
+/deep/.el-dialog {
+  .el-form-item {
+    margin-bottom: 0 !important;
+    .el-input--medium {
+      textarea {
+        min-height: 100px !important;
+      }
+    }
+  }
+}
+.collapse-bottom {
+  margin-bottom: 20px;
+}
+.input-main .textarea .el-textarea__inner {
+  width: 100%;
+  z-index: 1;
+}
+.bg-left {
+  padding-left: 30px;
+}
+.bg-right {
+  padding-right: 10px;
+  text-align: right;
+}
+.bg-bottom {
+  margin: 15px 0px;
+}
+.wenzi {
+  width: 900px;
+  margin: 0 auto;
+}
+.wenzi h3 {
+  display: inline-block;
+  left: 10px;
+}
+.wenzi p {
+  display: inline-block;
+}
+.center {
+  width: 900px;
+  margin: 0 auto;
+}
+.el-form-item {
+  width: 50%;
+}
+.el-form-item__label {
+  text-align: center;
+}
+.ce {
+  width: 900px;
+  margin: 0 auto;
+}
+/*.crt-main .textarea /deep/ .el-form-item__label {*/
+/*  height: 82px;*/
+/*}*/
+// 控制select为只读的时候显示样式
+
+.hide-sel {
+  .el-input__inner {
+    border: 0px;
+  }
+  .el-icon-arrow-up {
+    display: none;
+  }
+  .el-textarea__inner {
+    background-color: #fff !important;
+    border: 0;
+  }
+  .el-date-editor {
+    i {
+      display: none;
+    }
+  }
+  .is-disabled {
+    .el-input__inner:hover {
+      background-color: #fff !important;
+      border: 0;
+    }
+    color: #606266;
+    .el-input__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+    .el-textarea__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+  }
+}
+
+// 控制select为只读的时候显示样式
+/deep/.ws-class-table-col {
+  height: auto;
+  padding: 0px 2px;
+  /deep/.el-input__inner {
+    padding: 0px 2px;
+  }
+}
+/deep/.is-disabled {
+  .el-input__prefix,
+  .el-input__suffix {
+    display: none;
+  }
+  .el-input__inner {
+    background-color: #fff;
+    border-color: #fff !important;
+    color: #000 !important;
+    font-size: 14px;
+    cursor: text;
+    padding: 0 !important;
+  }
+}
+.winseaview-view {
+  padding: 0 0 20px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+/deep/.ws-info-table[data-v-850a44a6] .el-form-item .el-form-item__label {
+  width: 130px;
+}
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+.vertical-text {
+  margin: 0 10px;
+  color: #8890b1;
+  font-size: 12px;
+  margin-top: -4px;
+}
+.vertical-line {
+  height: 100px;
+  border-left: 2px solid #e9ecf7;
+  margin-left: 4px;
+  padding: 0 3px;
+}
+.vertical-circle {
+  width: 10px;
+  height: 10px;
+  border: 2px solid #5878e8;
+  background-color: #ffffff;
+  -webkit-border-radius: 100px;
+}
+.vertical-circle:first-child {
+  color: red;
+}
+.icon {
+  display: inline-block;
+  width: 60px;
+  height: 24px;
+  background: #ecfeff;
+  border-radius: 12px;
+  border: 1px solid #50cad4;
+  position: relative;
+  font-size: 14px;
+  color: #50cad4;
+  line-height: 24px;
+  padding: 1px 7px;
+}
+.queren{
+  margin-left: 100%;
+  margin-top: -60px;
+}
+</style>

+ 201 - 181
src/views/contractManagement/priceConfirmationSheet.vue

@@ -2,7 +2,15 @@
   <div class="container">
     <el-row>
       <el-col :span="12">
-        <h2 class="bg-left title">点价确认单</h2>
+        <h2 class="bg-left title">
+          点价确认单(
+          <template>
+            <span v-if="this.$route.query.contractType == 1">期货销售合同</span>
+            <span v-if="this.$route.query.contractType == 2"
+              >期货采购合同</span
+            > </template
+          >)
+        </h2>
       </el-col>
       <el-col :span="12" class="bg-right">
         <el-button
@@ -24,8 +32,13 @@
     <div class="wenzi">
       <h3>所属合同</h3>
       <p>
-        &nbsp;&nbsp;采购合同(
-        <template>{{ this.deptBudgetList.contractNo }}</template>
+        &nbsp;&nbsp;<template>
+          <span v-if="this.$route.query.contractType == 1">销售合同</span>
+          <span v-if="this.$route.query.contractType == 2"
+            >采购合同</span
+          > </template
+        >(
+        <template>{{ this.$route.query.contractNo }}</template>
         )
       </p>
       <div class="tianjiaanniu">
@@ -50,111 +63,130 @@
         >
       </div>
     </div>
-    <div class="dianjiadanbianhao">
-      <h3>点价单编号</h3>
-      <p>
-        <template>CG20210329-02{{ this.deptBudgetList.priceListNo }}</template>
-      </p>
-      <div class="fujian">
-        <template slot-scope="scope" >
-          <img
-            width="18"
-            height="20"
-            style="vertical-align: text-top; position: relative; top: -1px"
-            src="../../../public/img/fujian.png"
-            @click="fujian(scope.row)"
-            alt=""
-          />
-          <span v-if="(scope.row.enclosureTypeFlag = '0')"
-            >&nbsp;&nbsp;&nbsp;未上传</span
-          >
-          <span v-if="(scope.row.enclosureTypeFlag = '1')"
-            >&nbsp;&nbsp;&nbsp;已上传</span
+    <div v-for="(item, index) in deptBudgetList" :key="index">
+      <div class="dianjiadanbianhao">
+        <h3>点价单编号</h3>
+        <p>
+          <template>{{ item.priceListNo }}</template>
+        </p>
+        <div class="fujian">
+          <el-upload
+            class="upload-demo"
+            action="https://www.zthymaoyi.com/upload/admin"
+            :on-success="
+              (res, file) => {
+                uploadSuccessHandle(res)
+              }
+            "
+            multiple
+            :limit="3"
+            :file-list="fileList"
           >
-        </template>
+            <el-button size="small" type="primary">附件</el-button>
+          </el-upload>
+          <div class="shangchuan">
+            <template>
+              <span v-if="item.enclosureTypeFlag == 0">未上传</span>
+              <span v-if="item.enclosureTypeFlag == 1">已上传</span>
+            </template>
+          </div>
+        </div>
+        <div class="caozuoanniu">
+          <template>
+            <el-button class="find" type="primary" @click="sheetEdit(item)"
+              >编辑</el-button
+            >
+            <el-button
+              class="find"
+              type="primary"
+              @click="sheetDelete(item)"
+              v-if="item.enclosureTypeFlag != 1"
+              >删除</el-button
+            >
+          </template>
+        </div>
       </div>
-      <div class="caozuoanniu">
-        <el-button class="find" type="primary" @click="sheetEdit()"
-          >编辑</el-button
-        >
-        <el-button class="find" type="primary" @click="sheetDelete()"
-          >删除</el-button
-        >
+      <div class="center">
+        <ws-form ref="deptBudgetList" :model="deptBudgetList">
+          <!--基本信息-->
+          <ws-info-table>
+            <ws-form-item
+              label="品种合约及方向"
+              span="1"
+              prop="varietyContractDirection"
+            >
+              <div class="unchanged">
+                {{ item.varietyContractDirection }}
+              </div>
+            </ws-form-item>
+            <ws-form-item label="买方联络人" span="1" prop="buyer">
+              <div class="unchanged">
+                {{ item.buyer }}
+              </div>
+            </ws-form-item>
+            <ws-form-item
+              label="成交数量"
+              span="1"
+              prop="transactionsNumberHand"
+            >
+              <div class="unchanged">
+                {{
+                  item.transactionsNumberHand
+                }}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;手
+                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                即&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{
+                  item.transactionsNumber
+                }}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;吨
+              </div>
+            </ws-form-item>
+            <ws-form-item label="买方联络人电话" span="1" prop="buyerPhone">
+              <div class="unchanged">
+                {{ item.buyerPhone }}
+              </div>
+            </ws-form-item>
+            <ws-form-item
+              label="成交价格(元/吨)"
+              span="1"
+              prop="transactionPrice"
+            >
+              <div class="unchanged">
+                {{ item.transactionPrice }}
+              </div>
+            </ws-form-item>
+            <ws-form-item label="卖方联络人" span="1" prop="seller">
+              <div class="unchanged">
+                {{ item.seller }}
+              </div>
+            </ws-form-item>
+            <ws-form-item label="成交日期" span="1" prop="transactionDate">
+              <div class="unchanged">
+                {{ item.transactionDate }}
+              </div>
+            </ws-form-item>
+            <ws-form-item label="卖方联络人电话" span="1" prop="sellerPhone">
+              <div class="unchanged">
+                {{ item.sellerPhone }}
+              </div>
+            </ws-form-item>
+            <ws-form-item label="备注" span="1" prop="remarks">
+              <div class="unchanged">
+                {{ item.remarks }}
+              </div>
+            </ws-form-item>
+          </ws-info-table>
+        </ws-form>
       </div>
     </div>
-    <div class="center">
-      <ws-form ref="deptBudgetList" :model="deptBudgetList">
-        <!--基本信息-->
-        <ws-info-table>
-          <ws-form-item
-            label="品种合约及方向"
-            span="1"
-            prop="varietyContractDirection"
-          >
-            <div class="unchanged">
-              {{ deptBudgetList.varietyContractDirection }}
-            </div>
-          </ws-form-item>
-          <ws-form-item label="买方联络人" span="1" prop="buyer">
-            <div class="unchanged">
-              {{ deptBudgetList.buyer }}
-            </div>
-          </ws-form-item>
-          <ws-form-item label="成交数量" span="1" prop="transactionsNumberHand">
-            <div class="unchanged">
-              {{
-                deptBudgetList.transactionsNumberHand
-              }}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;手
-              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-              即&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{
-                deptBudgetList.transactionsNumber
-              }}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;吨
-            </div>
-          </ws-form-item>
-          <ws-form-item label="买方联络人电话" span="1" prop="buyerPhone">
-            <div class="unchanged">
-              {{ deptBudgetList.buyerPhone }}
-            </div>
-          </ws-form-item>
-          <ws-form-item
-            label="成交价格(元/吨)"
-            span="1"
-            prop="transactionPrice"
-          >
-            <div class="unchanged">
-              {{ deptBudgetList.transactionPrice }}
-            </div>
-          </ws-form-item>
-          <ws-form-item label="卖方联络人" span="1" prop="seller">
-            <div class="unchanged">
-              {{ deptBudgetList.seller }}
-            </div>
-          </ws-form-item>
-          <ws-form-item label="成交日期" span="1" prop="transactionDate">
-            <div class="unchanged">
-              {{ deptBudgetList.transactionDate }}
-            </div>
-          </ws-form-item>
-          <ws-form-item label="卖方联络人电话" span="1" prop="sellerPhone">
-            <div class="unchanged">
-              {{ deptBudgetList.sellerPhone }}
-            </div>
-          </ws-form-item>
-          <ws-form-item label="备注" span="1" prop="remarks">
-            <div class="unchanged">
-              {{ deptBudgetList.remarks }}
-            </div>
-          </ws-form-item>
-        </ws-info-table>
-      </ws-form>
-    </div>
   </div>
 </template>
 <script>
-import { xiala, addxiala, editxiala, delxiala } from '@/model/contarct/index'
+import {
+  selectConfirmationSheet,
+  deletePriceConfirmationSheet,
+} from '@/model/contarct/index'
 import WsUpload from '@/components/WsUpload'
 import { EventBus } from 'base-core-lib'
-import { regionData,  } from 'element-china-area-data'
+import { regionData } from 'element-china-area-data'
 
 export default {
   name: 'viewSpareMoney',
@@ -163,7 +195,7 @@ export default {
   },
   watch: {
     vesselId(val) {
-      this.getVesselData()
+      this.getUnitList()
     },
     isShow(val) {
       this.showType = val
@@ -187,42 +219,20 @@ export default {
       selectedOptions1: [],
       // 提交类型
       submitType: true,
-      tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
-      trainingMethods: {},
-      packtypeList: [],
-      compId: sessionStorage.getItem('ws-pf_compId'),
       contractNo: '',
-      mainReportAdd: {},
-      appendixIdsAdd: '',
+      contractType: '',
+      id: '',
       size: 10,
       unitList: [],
-      goodnameList: [],
-      gradeList: [],
-      ChapterTwoList: [],
       addressUrls: [],
       addressUrl: '',
-      deptBudgetList: {},
-      pickerBeginDateBefore: {
-        disabledDate: (time) => {
-          return time.getTime() > Date.now()
-        },
-      },
-      ruleDeptBudget: {
-        contractNo: [
-          { required: true, message: '请输入活动名称', trigger: 'blur' },
-          {
-            min: 6,
-            max: 20,
-            message: '长度在 6 到 20 个字符',
-            trigger: 'blur',
-          },
-        ],
-      },
-      selectIntendedShip: {},
-      interviewTypeList: {},
-      fileList: [],
+      deptBudgetList: [],
     }
   },
+  activated() {
+    this.getUnitList()
+    this.showType = this.isShow
+  },
   methods: {
     close(index) {
       this.addressUrls.splice(index, 1)
@@ -238,52 +248,61 @@ export default {
       this.selectedOptions1 = value
     },
     returnsales() {
-      this.$router.push({ path: 'salesContract' })
+      // if(this.$route.query.contractType == '1'){
+      //   this.$router.push({ path: 'futuresSalesContractExamine',
+      //   query: { contractNo: this.deptBudgetList.contractNo , contractType: this.deptBudgetList.contractType } })
+      // }else{
+      //   this.$router.push({ path: 'futuresPurchaseContractExamine',
+      //   query: { contractNo: this.deptBudgetList.contractNo , contractType: this.deptBudgetList.contractType } })
+      // }
+      this.$router.go(-1)
     },
     //创建点价确认单
     sheetAdd() {
-      this.$router.push({ path: 'priceConfirmationSheetAdd' })
+      this.$router.push({
+        path: 'priceConfirmationSheetAdd',
+        query: {
+          contractNo: this.$route.query.contractNo,
+          contractType: this.$route.query.contractType,
+        },
+      })
     },
     // 编辑点价确认单
-    sheetEdit() {
-        this.$router.push({ path: 'priceConfirmationSheetEdit' })
+    sheetEdit(item) {
+      this.$router.push({
+        path: 'priceConfirmationSheetEdit',
+        query: {
+          contractNo: this.$route.query.contractNo,
+          contractType: this.$route.query.contractType,
+          id: item.id,
+        },
+      })
     },
     // 删除点价确认单
-    sheetDelete(item, index) {
-    //   this.$confirm(`确认单删除后不可恢复,是否确定删除?`, '提示', {
-    //     confirmButtonText: '确定',
-    //     cancelButtonText: '取消',
-    //     type: 'warning',
-    //   })
-    //     .then(() => {
-    //       delDriver({ id: row.id })
-    //         .toPromise()
-    //         .then((response) => {
-    //           this.$notify.success({
-    //             title: '成功',
-    //             message: '删除成功',
-    //           })
-    //           this.getUnitList()
-    //           this.pleaseChoose = ''
-    //         })
-    //         .catch((response) => {
-    //           console.log(response)
-    //           EventBus.$emit('error', response.message)
-    //         })
-    //     })
-    //     .catch(() => {
-    //       return false
-    //     })
-    
-    //   if (Object.is(item.constKey, 1)) {
-    //     return
-    //   }
-    //   if (!item.constValue) {
-    //     this.unitList.splice(index, 1)
-    //     return
-    //   }
-    //   delxiala({ id: this.unitList[index].id })
-        
+    sheetDelete(item) {
+      this.$confirm(`确认单删除后不可恢复,是否确定删除?`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+        .then(() => {
+          this.id = deletePriceConfirmationSheet({ id: item.id })
+            .toPromise()
+            .then((response) => {
+              this.$notify.success({
+                title: '成功',
+                message: '删除成功',
+              })
+              this.getUnitList()
+            })
+            .catch((response) => {
+              console.log(response)
+              EventBus.$emit('error', response.message)
+            })
+        })
+        .catch(() => {
+          return false
+        })
     },
     fujian(row) {
       if (row.addressUrl === null || row.addressUrl === '') {
@@ -297,24 +316,19 @@ export default {
       this.appendixIdss = row.addressUrl.split(',')
     },
     getUnitList() {
-      xiala({
-        compId: sessionStorage.getItem('ws-pf_compId'),
-        constCode: 'TYPEYAN',
+      selectConfirmationSheet({
+        contractNo: this.$route.query.contractNo,
+        contractType: this.$route.query.contractType,
       })
         .toPromise()
         .then((response) => {
           this.unitList = response
-          let currItem
+          // this.contractType = this.contractType
+          // this.contractNo = this.contractNo
+          this.deptBudgetList = response
           this.unitList.forEach((item, index, arr) => {
             item.flag = 'delete'
-            if (this.vModel == item.constKey) {
-              currItem = item
-            }
           })
-          //
-          if (currItem) {
-            this.selectContract(currItem.constValue)
-          }
         })
     },
     resetForm(deptBudgetList) {
@@ -440,11 +454,12 @@ export default {
 }
 .caozuoanniu {
   margin-left: 83%;
-  margin-top: -49px;
+  margin-top: -53px;
   margin-bottom: 20px;
 }
 .fujian {
-  margin-left: 20px;
+  margin-left: 250px;
+  margin-top: -49px;
 }
 .wenzi {
   width: 68%;
@@ -527,6 +542,11 @@ export default {
     }
   }
 }
+.shangchuan {
+  margin-left: 100px;
+  margin-top: -27px;
+  margin-bottom: 30px;
+}
 /deep/.ws-info-table .el-form-item .el-form-item__label {
   width: 148px;
 }

+ 62 - 99
src/views/contractManagement/priceConfirmationSheetAdd.vue

@@ -2,7 +2,12 @@
   <div class="container">
     <el-row>
       <el-col :span="12">
-        <h2 class="bg-left title">创建点价确认单</h2>
+        <h2 class="bg-left title">创建点价确认单(
+        <template>
+          <span v-if="this.$route.query.contractType == 1">期货销售合同</span>
+          <span v-if="this.$route.query.contractType == 2"
+            >期货采购合同</span
+          > </template>)</h2>
       </el-col>
       <el-col :span="12" class="bg-right">
         <el-button
@@ -24,8 +29,11 @@
     <div class="wenzi">
       <h3>所属合同</h3>
       <p>
-        &nbsp;&nbsp;采购合同(
-        <template>{{ this.deptBudgetList.contractNo }}</template>
+        &nbsp;&nbsp;<template>
+              <span v-if="this.$route.query.contractType == '1'">销售合同</span>
+              <span v-if="this.$route.query.contractType == '2'">采购合同</span>
+            </template>(
+        <template>{{ this.$route.query.contractNo }}</template>
         )
       </p>
     </div>
@@ -46,7 +54,6 @@
               placeholder="请输入点价单编号"
               maxlength="20"
               size="small"
-              :rules="ruleDeptBudget"
             />
           </ws-form-item>
 
@@ -62,16 +69,15 @@
               "
               multiple
               :limit="3"
-              :file-list="fileList"
             >
               <el-button size="small" type="primary">附件</el-button>
             </el-upload>
             <div class="shangchuan">
               <template>
-                <span v-if="deptBudgetList.enclosureTypeFlag == '0'"
+                <span v-if="deptBudgetList.enclosureTypeFlag == 0"
                   >未上传</span
                 >
-                <span v-if="deptBudgetList.enclosureTypeFlag == '1'"
+                <span v-if="deptBudgetList.enclosureTypeFlag == 1"
                   >已上传</span
                 >
               </template>
@@ -136,7 +142,11 @@
           </ws-form-item>
 
           <!--成交价格(元/吨)-->
-          <ws-form-item label="成交价格(元/吨)" span="1" prop="transactionPrice">
+          <ws-form-item
+            label="成交价格(元/吨)"
+            span="1"
+            prop="transactionPrice"
+          >
             <ws-input
               v-model="deptBudgetList.transactionPrice"
               placeholder="请输入成交价格"
@@ -188,28 +198,16 @@
       </ws-form>
     </div>
     <div style="text-align: right; padding: 10px" class="center">
-      <el-button
-        class="bg-bottom"
-        type="primary"
-        size="small"
-        @click="submit(deptBudgetList)"
+      <el-button class="bg-bottom" type="primary" size="small" @click="submit()"
         >提交</el-button
       >
     </div>
   </div>
 </template>
 <script>
-//  import { getVesselOne } from '@/model/procurement/basic'
-//  import { dayjs } from 'base-core-lib'
-import {
-  addList,
-  xiala,
-  addxiala,
-  editxiala,
-  delxiala,
-} from '@/model/contarct/index'
+import { addPriceConfirmationSheet } from '@/model/contarct/index'
 import WsUpload from '@/components/WsUpload'
-import { regionData, CodeToText } from 'element-china-area-data'
+import { regionData } from 'element-china-area-data'
 
 export default {
   name: 'viewSpareMoney',
@@ -242,48 +240,27 @@ export default {
       selectedOptions1: [],
       // 提交类型
       submitType: true,
-      tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
-      trainingMethods: {},
-      packtypeList: [],
-      mainReportAdd: {},
-      appendixIdsAdd: '',
       size: 10,
-
-      compId: sessionStorage.getItem('ws-pf_compId'),
-      enclosureTypeFlag: '0',
       unitList: [],
-      goodnameList: [],
-      gradeList: [],
-      ChapterTwoList: [],
-      addressUrls: [],
-      deptBudgetList: {
-        deliverType: '1',
-        finalTradingVolume: 0,
-        contractGoodsInfo: {
-          goodsName: '',
-        },
-        contractProcessInfo: {},
+      priceConfirmationSheet: {
+        contractNo: this.$route.query.contractNo,
+        contractType :this.$route.query.contractType,
+        enclosureTypeFlag: '0',
+        varietyContractDirection: '',
+        buyer: '',
+        seller: '',
+        sellerPhone: '',
+        buyerPhone: '',
+        transactionsNumberHand: '',
+        transactionsNumber: '',
+        transactionPrice: '',
+        transactionDate: '',
+        remarks: '',
+        priceListNo: '',
         addressUrl: '',
       },
-      pickerBeginDateBefore: {
-        disabledDate: (time) => {
-          return time.getTime() > Date.now()
-        },
-      },
-      ruleDeptBudget: {
-        contractNo: [
-          { required: true, message: '请输入活动名称', trigger: 'blur' },
-          {
-            min: 6,
-            max: 20,
-            message: '长度在 6 到 20 个字符',
-            trigger: 'blur',
-          },
-        ],
-      },
-      selectIntendedShip: {},
-      interviewTypeList: {},
-      fileList: [],
+      addressUrls: [],
+      deptBudgetList: {},
     }
   },
   methods: {
@@ -301,7 +278,8 @@ export default {
       this.selectedOptions1 = value
     },
     returnsales() {
-      this.$router.push({ path: 'priceConfirmationSheet' })
+      this.$router.push({ path: 'priceConfirmationSheet',
+      query: { contractNo: this.$route.query.contractNo , contractType: this.$route.query.contractType } })
     },
 
     // 上传附件
@@ -317,30 +295,8 @@ export default {
     },
     //计算成交数量(吨)
     transactionsNumberHandChange(e) {
-        this.deptBudgetList.transactionsNumber = e * 10      
-    },
-    getUnitList() {
-      xiala({
-        compId: sessionStorage.getItem('ws-pf_compId'),
-        constCode: 'TYPEYAN',
-      })
-        .toPromise()
-        .then((response) => {
-          this.unitList = response
-          let currItem
-          this.unitList.forEach((item, index, arr) => {
-            item.flag = 'delete'
-            if (this.vModel == item.constKey) {
-              currItem = item
-            }
-          })
-          //
-          if (currItem) {
-            this.selectContract(currItem.constValue)
-          }
-        })
+      this.deptBudgetList.transactionsNumber = e * 10
     },
-
     submit() {
       if (!this.deptBudgetList.priceListNo) {
         this.$message({
@@ -521,6 +477,27 @@ export default {
         })
         return
       }
+      this.deptBudgetList.contractType = this.$route.query.contractType,
+      this.deptBudgetList.contractNo = this.$route.query.contractNo,
+      this.deptBudgetList.enclosureTypeFlag = '0'
+      this.priceConfirmationSheet = this.deptBudgetList
+      this.$confirm(`确定提交确认单信息`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning',
+      })
+      .then(() => {
+      addPriceConfirmationSheet(this.priceConfirmationSheet)
+        .toPromise()
+        .then((response) => {
+          this.$message.success('添加成功')
+          this.$router.push({ path: 'priceConfirmationSheet'
+          ,query: { contractNo: this.$route.query.contractNo , contractType: this.$route.query.contractType } })
+        })
+        })
+        .catch(() => {
+          return false
+        })
     },
     resetForm(deptBudgetList) {
       this.$refs[deptBudgetList].resetFields()
@@ -704,20 +681,6 @@ export default {
 /deep/.ws-info-table .el-form-item .el-form-item__label {
   width: 130px;
 }
-//*号
-.unchangeable {
-  position: absolute;
-  width: 9px;
-  height: 22px;
-  font-size: 16px;
-  font-family: PingFangSC-Medium, PingFang SC;
-  font-weight: 500;
-  color: #ff2727;
-  line-height: 22px;
-  display: inline-block;
-  right: 14px;
-}
-/deep/.el-input,
 /deep/.el-date-editor {
   font-size: 13px;
 }

+ 254 - 250
src/views/contractManagement/priceConfirmationSheetEdit.vue

@@ -2,14 +2,19 @@
   <div class="container">
     <el-row>
       <el-col :span="12">
-        <h2 class="bg-left title">编辑点价确认单</h2>
+        <h2 class="bg-left title">编辑点价确认单(
+        <template>
+          <span v-if="this.$route.query.contractType == 1">期货销售合同</span>
+          <span v-if="this.$route.query.contractType == 2"
+            >期货采购合同</span
+          > </template>)</h2>
       </el-col>
       <el-col :span="12" class="bg-right">
         <el-button
           class="bg-bottom"
           type="primary"
           size="small"
-          @click="returnsales()"
+          @click="returnsales(item)"
           ><img
             width="6"
             height="10"
@@ -24,13 +29,19 @@
     <div class="wenzi">
       <h3>所属合同</h3>
       <p>
-        &nbsp;&nbsp;采购合同(
-        <template>{{ this.deptBudgetList.contractNo }}</template>
+        &nbsp;&nbsp;<template>
+              <span v-if="this.$route.query.contractType == '1'">销售合同</span>
+              <span v-if="this.$route.query.contractType == '2'">采购合同</span>
+            </template>(
+        <template>{{ this.$route.query.contractNo }}</template>
         )
       </p>
     </div>
     <div class="center">
-      <ws-form ref="deptBudgetList" :model="deptBudgetList">
+      <ws-form
+        ref="deptBudgetList"
+        :model="deptBudgetList"
+      >
         <!--基本信息-->
 
         <ws-info-table>
@@ -46,7 +57,6 @@
               placeholder="请输入点价单编号"
               maxlength="20"
               size="small"
-              :rules="ruleDeptBudget"
             />
           </ws-form-item>
 
@@ -62,18 +72,13 @@
               "
               multiple
               :limit="3"
-              :file-list="fileList"
             >
               <el-button size="small" type="primary">附件</el-button>
             </el-upload>
             <div class="shangchuan">
               <template>
-                <span v-if="deptBudgetList.enclosureTypeFlag == '0'"
-                  >未上传</span
-                >
-                <span v-if="deptBudgetList.enclosureTypeFlag == '1'"
-                  >已上传</span
-                >
+                <span v-if="deptBudgetList.enclosureTypeFlag == '0'">未上传</span>
+                <span v-if="deptBudgetList.enclosureTypeFlag == '1'">已上传</span>
               </template>
             </div>
           </ws-form-item>
@@ -136,7 +141,11 @@
           </ws-form-item>
 
           <!--成交价格(元/吨)-->
-          <ws-form-item label="成交价格(元/吨)" span="1" prop="transactionPrice">
+          <ws-form-item
+            label="成交价格(元/吨)"
+            span="1"
+            prop="transactionPrice"
+          >
             <ws-input
               v-model="deptBudgetList.transactionPrice"
               placeholder="请输入成交价格"
@@ -199,17 +208,12 @@
   </div>
 </template>
 <script>
-//  import { getVesselOne } from '@/model/procurement/basic'
-//  import { dayjs } from 'base-core-lib'
 import {
-  addList,
-  xiala,
-  addxiala,
-  editxiala,
-  delxiala,
+  editPriceConfirmationSheet,
+  getInfo,
 } from '@/model/contarct/index'
 import WsUpload from '@/components/WsUpload'
-import { regionData, CodeToText } from 'element-china-area-data'
+import { regionData } from 'element-china-area-data'
 
 export default {
   name: 'viewSpareMoney',
@@ -218,7 +222,7 @@ export default {
   },
   watch: {
     vesselId(val) {
-      this.getVesselData()
+      this.loaddata()
     },
     isShow(val) {
       this.showType = val
@@ -242,50 +246,24 @@ export default {
       selectedOptions1: [],
       // 提交类型
       submitType: true,
-      tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
-      trainingMethods: {},
-      packtypeList: [],
-      mainReportAdd: {},
-      appendixIdsAdd: '',
       size: 10,
-
-      compId: sessionStorage.getItem('ws-pf_compId'),
-      enclosureTypeFlag: '0',
       unitList: [],
-      goodnameList: [],
-      gradeList: [],
-      ChapterTwoList: [],
-      addressUrls: [],
-      deptBudgetList: {
-        deliverType: '1',
-        finalTradingVolume: 0,
-        contractGoodsInfo: {
-          goodsName: '',
-        },
-        contractProcessInfo: {},
-        addressUrl: '',
-      },
-      pickerBeginDateBefore: {
-        disabledDate: (time) => {
-          return time.getTime() > Date.now()
-        },
-      },
-      ruleDeptBudget: {
-        contractNo: [
-          { required: true, message: '请输入活动名称', trigger: 'blur' },
-          {
-            min: 6,
-            max: 20,
-            message: '长度在 6 到 20 个字符',
-            trigger: 'blur',
-          },
-        ],
+            priceConfirmationSheet: {
+         contractNo: this.$route.query.contractNo,
+         contractType :this.$route.query.contractType,
+         id: this.$route.query.id,
+     
       },
-      selectIntendedShip: {},
-      interviewTypeList: {},
-      fileList: [],
+      addressUrls: [],
+      deptBudgetList: {},
     }
   },
+  activated() {
+    this.loaddata()
+    this.editPriceConfirmationSheet()
+    this.showType = this.isShow
+    this.showType = this.isShow
+  },
   methods: {
     close(index) {
       this.addressUrls.splice(index, 1)
@@ -300,8 +278,9 @@ export default {
     handleChange1(value) {
       this.selectedOptions1 = value
     },
-    returnsales() {
-      this.$router.push({ path: 'priceConfirmationSheet' })
+    returnsales(item) {
+      this.$router.push({ path: 'priceConfirmationSheet',
+      query: { contractNo: this.$route.query.contractNo , contractType: this.$route.query.contractType } })
     },
 
     // 上传附件
@@ -315,217 +294,242 @@ export default {
         console.log(files)
       })
     },
-    //计算成交数量(吨)
-    transactionsNumberHandChange(e) {
-      this.deptBudgetList.transactionsNumber = e * 10 
-    },
-    getUnitList() {
-      xiala({
-        compId: sessionStorage.getItem('ws-pf_compId'),
-        constCode: 'TYPEYAN',
+    //数据回显
+    loaddata() {
+      // 数据
+      getInfo({
+        contractNo: this.$route.query.contractNo,
+         contractType: this.$route.query.contractType,
+         id: this.$route.query.id,
       })
         .toPromise()
         .then((response) => {
           this.unitList = response
-          let currItem
+          this.deptBudgetList = response
           this.unitList.forEach((item, index, arr) => {
             item.flag = 'delete'
-            if (this.vModel == item.constKey) {
-              currItem = item
-            }
           })
-          //
-          if (currItem) {
-            this.selectContract(currItem.constValue)
-          }
         })
     },
-
+    //计算成交数量(吨)
+    transactionsNumberHandChange(e) {
+      this.deptBudgetList.transactionsNumber = e * 10
+    },
     submit() {
-      if (!this.deptBudgetList.priceListNo) {
-        this.$message({
-          message: '点价单编号不能为空!',
-          type: 'warning',
-        })
-        return
-      }
-      if (
-        this.deptBudgetList.priceListNo.length < 1 ||
-        this.deptBudgetList.priceListNo.length > 20
-      ) {
-        this.$message({
-          message: '点价单编号输入错误!',
-          type: 'warning',
-        })
-        return
-      }
-      if (!this.deptBudgetList.varietyContractDirection) {
-        this.$message({
-          message: '品种合约及方向不能为空!',
-          type: 'warning',
-        })
-        return
-      }
-      if (
-        this.deptBudgetList.varietyContractDirection.length < 1 ||
-        this.deptBudgetList.varietyContractDirection.length > 20
-      ) {
-        this.$message({
-          message: '品种合约及方向输入错误!',
-          type: 'warning',
-        })
-        return
-      }
-      if (!this.deptBudgetList.buyer) {
-        this.$message({
-          message: '买方联络人不能为空!',
-          type: 'warning',
-        })
-        return
-      }
-      if (
-        this.deptBudgetList.buyer.length < 2 ||
-        this.deptBudgetList.buyer.length > 20
-      ) {
-        this.$message({
-          message: '买方联络人姓名输入错误!',
-          type: 'warning',
-        })
-        return
-      }
-      if (!this.deptBudgetList.buyerPhone) {
-        this.$message({
-          message: '买方联络人电话不能为空!',
-          type: 'warning',
-        })
-        return
-      }
-      if (
-        this.deptBudgetList.buyerPhone.length < 7 ||
-        this.deptBudgetList.buyerPhone.length > 20
-      ) {
-        this.$message({
-          message: '买方联络人电话输入错误!',
-          type: 'warning',
-        })
-        return
-      }
-      if (isNaN(this.deptBudgetList.buyerPhone)) {
-        this.$message({
-          message: '卖方联络人电话输入有误!',
-          type: 'warning',
-        })
-        return
-      }
-      if (!this.deptBudgetList.seller) {
-        this.$message({
-          message: '卖方联络人不能为空!',
-          type: 'warning',
-        })
-        return
-      }
-      if (
-        this.deptBudgetList.seller.length < 2 ||
-        this.deptBudgetList.seller.length > 20
-      ) {
-        this.$message({
-          message: '卖方联络人姓名输入错误!',
-          type: 'warning',
-        })
-        return
-      }
+      for (var i = 0; i < this.deptBudgetList.length; i++) {
+        if (!this.deptBudgetList.priceListNo) {
+          this.$message({
+            message: '点价单编号不能为空!',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          this.deptBudgetList.priceListNo.length < 1 ||
+          this.deptBudgetList.priceListNo.length > 20
+        ) {
+          this.$message({
+            message: '点价单编号输入错误!',
+            type: 'warning',
+          })
+          return
+        }
+        if (!this.deptBudgetList.varietyContractDirection) {
+          this.$message({
+            message: '品种合约及方向不能为空!',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          this.deptBudgetList.varietyContractDirection.length < 1 ||
+          this.deptBudgetList.varietyContractDirection.length > 20
+        ) {
+          this.$message({
+            message: '品种合约及方向输入错误!',
+            type: 'warning',
+          })
+          return
+        }
+        if (!this.deptBudgetList.buyer) {
+          this.$message({
+            message: '买方联络人不能为空!',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          this.deptBudgetList.buyer.length < 2 ||
+          this.deptBudgetList.buyer.length > 20
+        ) {
+          this.$message({
+            message: '买方联络人姓名输入错误!',
+            type: 'warning',
+          })
+          return
+        }
+        if (!this.deptBudgetList.buyerPhone) {
+          this.$message({
+            message: '买方联络人电话不能为空!',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          this.deptBudgetList.buyerPhone.length < 7 ||
+          this.deptBudgetList.buyerPhone.length > 20
+        ) {
+          this.$message({
+            message: '买方联络人电话输入错误!',
+            type: 'warning',
+          })
+          return
+        }
+        if (isNaN(this.deptBudgetList.buyerPhone)) {
+          this.$message({
+            message: '卖方联络人电话输入有误!',
+            type: 'warning',
+          })
+          return
+        }
+        if (!this.deptBudgetList.seller) {
+          this.$message({
+            message: '卖方联络人不能为空!',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          this.deptBudgetList.seller.length < 2 ||
+          this.deptBudgetList.seller.length > 20
+        ) {
+          this.$message({
+            message: '卖方联络人姓名输入错误!',
+            type: 'warning',
+          })
+          return
+        }
 
-      if (!this.deptBudgetList.sellerPhone) {
-        this.$message({
-          message: '卖方联络人电话不能为空!',
-          type: 'warning',
-        })
-        return
-      }
-      if (isNaN(this.deptBudgetList.sellerPhone)) {
-        this.$message({
-          message: '卖方联络人电话输入有误!',
-          type: 'warning',
-        })
-        return
-      }
-      if (
-        this.deptBudgetList.sellerPhone.length < 7 ||
-        this.deptBudgetList.sellerPhone.length > 20
-      ) {
-        this.$message({
-          message: '卖方联络人电话输入有误!',
-          type: 'warning',
-        })
-        return
-      }
-      if (!this.deptBudgetList.transactionsNumberHand) {
-        this.$message({
-          message: '成交数量不能为空!',
-          type: 'warning',
-        })
-        return
-      }
+        if (!this.deptBudgetList.sellerPhone) {
+          this.$message({
+            message: '卖方联络人电话不能为空!',
+            type: 'warning',
+          })
+          return
+        }
+        if (isNaN(this.deptBudgetList.sellerPhone)) {
+          this.$message({
+            message: '卖方联络人电话输入有误!',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          this.deptBudgetList.sellerPhone.length < 7 ||
+          this.deptBudgetList.sellerPhone.length > 20
+        ) {
+          this.$message({
+            message: '卖方联络人电话输入有误!',
+            type: 'warning',
+          })
+          return
+        }
+        if (!this.deptBudgetList.transactionsNumberHand) {
+          this.$message({
+            message: '成交数量不能为空!',
+            type: 'warning',
+          })
+          return
+        }
 
-      if (
-        isNaN(this.deptBudgetList.transactionsNumberHand) ||
-        (String(this.deptBudgetList.transactionsNumberHand).indexOf('.') !=
-          -1 &&
-          String(this.deptBudgetList.transactionsNumberHand).length -
-            (String(this.deptBudgetList.transactionsNumberHand).indexOf('.') +
-              1) >
-            2) ||
-        this.deptBudgetList.transactionsNumberHand < 1 ||
-        this.deptBudgetList.transactionsNumberHand > 10000
-      ) {
-        this.$message({
-          message: '输入成交数量有误!',
-          type: 'warning',
-        })
-        return
-      }
-      if (
-        this.deptBudgetList.transactionPrice < 0 ||
-        this.deptBudgetList.transactionPrice > 100000000 ||
-        (String(this.deptBudgetList.transactionPrice).indexOf('.') != -1 &&
-          String(this.deptBudgetList.transactionPrice).length -
-            (String(this.deptBudgetList.transactionPrice).indexOf('.') + 1) >
-            2)
-      ) {
-        this.$message({
-          message: '成交价格输入错误',
-          type: 'warning',
-        })
-        return
-      }
-      if (this.deptBudgetList.transactionPrice) {
-        if (isNaN(this.deptBudgetList.transactionPrice)) {
+        if (
+          isNaN(this.deptBudgetList.transactionsNumberHand) ||
+          (String(this.deptBudgetList.transactionsNumberHand).indexOf('.') !=
+            -1 &&
+            String(this.deptBudgetList.transactionsNumberHand).length -
+              (String(this.deptBudgetList.transactionsNumberHand).indexOf(
+                '.'
+              ) +
+                1) >
+              2) ||
+          this.deptBudgetList.transactionsNumberHand < 1 ||
+          this.deptBudgetList.transactionsNumberHand > 10000
+        ) {
+          this.$message({
+            message: '输入成交数量有误!',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          this.deptBudgetList.transactionPrice < 0 ||
+          this.deptBudgetList.transactionPrice > 100000000 ||
+          (String(this.deptBudgetList.transactionPrice).indexOf('.') != -1 &&
+            String(this.deptBudgetList.transactionPrice).length -
+              (String(this.deptBudgetList.transactionPrice).indexOf('.') +
+                1) >
+              2)
+        ) {
+          this.$message({
+            message: '成交价格输入错误',
+            type: 'warning',
+          })
+          return
+        }
+        if (this.deptBudgetList.transactionPrice) {
+          if (isNaN(this.deptBudgetList.transactionPrice)) {
+            this.$message({
+              message: '成交价格输入错误!',
+              type: 'warning',
+            })
+            return
+          }
+        }
+        if (!this.deptBudgetList.transactionPrice) {
           this.$message({
-            message: '成交价格输入错误!',
+            message: '成交价格不能为空!',
+            type: 'warning',
+          })
+          return
+        }
+        if (!this.deptBudgetList.transactionDate) {
+          this.$message({
+            message: '成交日期不能为空!',
             type: 'warning',
           })
           return
         }
       }
-      if (!this.deptBudgetList.transactionPrice) {
-        this.$message({
-          message: '成交价格不能为空!',
-          type: 'warning',
+      this.deptBudgetList.contractType = this.$route.query.contractType,
+      this.deptBudgetList.contractNo = this.$route.query.contractNo,
+      // this.deptBudgetList.enclosureTypeFlag = '0'
+      this.priceConfirmationSheet = this.deptBudgetList
+      this.$confirm(`确定提交确认单信息`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning',
+      })
+        .then(() => {
+          editPriceConfirmationSheet(this.priceConfirmationSheet)
+            .toPromise()
+            .then((response) => {
+              this.$message.success('编辑成功')
+              //this.priceConfirmationSheet = {}
+              this.$router.push({ path: 'priceConfirmationSheet' ,
+              query: { contractNo: this.$route.query.contractNo , contractType: this.$route.query.contractType }})
+            })
         })
-        return
-      }
-      if (!this.deptBudgetList.transactionDate) {
-        this.$message({
-          message: '成交日期不能为空!',
-          type: 'warning',
+        .catch(() => {
+          return false
         })
-        return
-      }
     },
     resetForm(deptBudgetList) {
       this.$refs[deptBudgetList].resetFields()
     },
   },
+  //   editPriceConfirmationSheet() {
+  //   editPriceConfirmationSheet({})
+  // },
 }
 </script>
 

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

@@ -48,7 +48,6 @@
             style="color: #8890b1"
           />
         </ws-select>
-
         <el-date-picker
           v-model="value2"
           type="daterange"
@@ -68,7 +67,6 @@
           type="input"
           class="findValue"
         ></ws-input>
-        <!-- v-hasPermission="'procurement.sparepart.directShip'" -->
         <ws-button class="find" type="primary" @click="find()"
           ><img
             width="16"
@@ -122,10 +120,10 @@
       <el-table-column prop="packingMethod" label="包装方式"> </el-table-column>
       <el-table-column prop="buyer" label="买方"> </el-table-column>
       <el-table-column prop="seller" label="卖方"> </el-table-column>
-      <el-table-column prop="imperfectGrain" label="已完成(吨)">
+      <el-table-column prop="completedQuantity" label="已完成(吨)">
         <template slot-scope="scope">
           <span style="color: #5473e8; font-weight: 600">{{
-            scope.row.imperfectGrain
+            scope.row.completedQuantity
           }}</span>
         </template>
       </el-table-column>
@@ -199,10 +197,9 @@
             @click="fujian(scope.row)"
             alt=""
           />
-          <span v-if="scope.row.addressUrlArray.length > 0">{{
-            scope.row.addressUrlArray.length
-          }}</span>
-          <!-- <i @click="fujian(scope.row)" class="el-icon-paperclip iconCss"></i> -->
+          <span v-if="scope.row.addressUrlArray != null">
+            {{scope.row.addressUrlArray.length == 0? "":scope.row.addressUrlArray.length}}
+            </span>
         </template>
       </el-table-column>
       <el-table-column prop="address" label="操作" width="200">
@@ -515,12 +512,16 @@ export default {
         .then((response) => {
           for (var i = 0; i < response.records.length; i++) {
             if (response.records[i].addressUrl != null) {
+              if(response.records[i].addressUrl){
               response.records[i].addressUrlArray =
                 response.records[i].addressUrl.split(',')
+                }
             } else {
               response.records[i].addressUrlArray = []
             }
           }
+          console.log( response.records[2].addressUrl == null)
+          console.log( response.records[2].addressUrl == "")
           this.deptCircularPage.currentPage = response.current
           this.deptCircularPage.pageSize = response.size
           this.deptBudgetTotal = response.total

+ 0 - 3
src/views/contractManagement/purchaseContractAdd.vue

@@ -694,9 +694,6 @@ export default {
     }
   },
   activated() {
-    //cg.viewBudget
-    //cg.viewSpareMoney
-    // this.getVesselData();
     this.deptBudgetList.packingMethod = '散装'
     this.deptBudgetList.packingMethodKey = 1
     this.deptBudgetList.contractGoodsInfo.goodsName = '玉米'

+ 1 - 1
src/views/contractManagement/purchaseContractEdit.vue

@@ -1092,7 +1092,7 @@ export default {
       }
       if (!this.deptBudgetList.contractGoodsInfo.waterContent) {
         this.$message({
-          message: '请选择水分',
+          message: '请输入水分',
           type: 'warning',
         })
         return

+ 0 - 7
src/views/contractManagement/purchaseContractExamine.vue

@@ -28,13 +28,6 @@
         采购合同<span style="font-size: 16px"
           >【编号:{{ deptBudgetList.contractNo }}】</span
         >
-        
-        
-        <!-- <span v-if="status == '待执行'" class="status-orange">{{
-          status
-        }}</span>
-        <span v-if="status == '执行中'" class="status-bule">{{ status }}</span>
-        <span v-if="status == '已完成'" class="status-green">{{ status }}</span> -->
          <div class="icon">
         <template>
           <el-popover

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

@@ -124,17 +124,17 @@
       <el-table-column prop="packingMethod" label="包装方式"> </el-table-column>
       <el-table-column prop="buyer" label="买方"> </el-table-column>
       <el-table-column prop="seller" label="卖方"> </el-table-column>
-      <el-table-column prop="imperfectGrain" label="已完成(吨)">
+      <el-table-column prop="completedQuantity" label="已完成(吨)">
         <template slot-scope="scope">
           <span
             v-if="scope.row.proportion < 90"
             style="color: #5473e8; font-weight: 600"
-            >{{ scope.row.imperfectGrain }}</span
+            >{{ scope.row.completedQuantity }}</span
           >
           <span
             v-if="scope.row.proportion > 90"
             style="color: red; font-weight: 600"
-            >{{ scope.row.imperfectGrain }}</span
+            >{{ scope.row.completedQuantity }}</span
           >
         </template>
       </el-table-column>
@@ -203,8 +203,8 @@
             @click="fujian(scope.row)"
             alt=""
           />
-          <span v-if="scope.row.addressUrlArray.length > 0">{{
-            scope.row.addressUrlArray.length
+          <span v-if="scope.row.addressUrlArray != null">{{
+            scope.row.addressUrlArray.length == 0 ? "":scope.row.addressUrlArray.length
           }}</span>
           <!-- <i @click="fujian(scope.row)" class="el-icon-paperclip iconCss"></i> -->
         </template>
@@ -488,11 +488,14 @@ export default {
         .then((response) => {
           for (var i = 0; i < response.records.length; i++) {
             if (response.records[i].addressUrl != null) {
-              response.records[i].addressUrlArray =
+              if(response.records[i].addressUrl != ""){
+                response.records[i].addressUrlArray =
                 response.records[i].addressUrl.split(',')
+              }
             } else {
               response.records[i].addressUrlArray = []
             }
+
             if (response.records[i].imperfectGrain != null) {
               response.records[i].proportion =
                 Math.floor(

+ 1 - 1
src/views/contractManagement/salesContractEdit.vue

@@ -1082,7 +1082,7 @@ export default {
       }
       if (!this.deptBudgetList.contractGoodsInfo.waterContent) {
         this.$message({
-          message: '请选择水分',
+          message: '请输入水分',
           type: 'warning',
         })
         return

+ 625 - 0
src/views/financialManagement/collectionManagementList.vue

@@ -0,0 +1,625 @@
+//收款管理
+<template>
+  <div class="container">
+    <!-- <div> -->
+    <div>
+      <ws-input
+        v-model="searchKeyWord"
+        placeholder="可按照合同编号和任务编号进行查找"
+        clearable
+        maxlength="500"
+        type="input"
+        class="findValue"
+      ></ws-input>
+      <ws-button class="but" 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>
+    </div>
+    <ws-button  @click="handleAdd()">全部</ws-button>
+    <ws-button  @click="handleAdd()">待回款</ws-button>
+    <ws-button  @click="handleAdd()">已汇款</ws-button>
+    <el-table
+      class="wenzi"
+      :data="warehouseList.records"
+      style="width: 100%; margin-top: 20px"
+      height="780"
+    >
+      <el-table-column type="index" label="序号" width="80"></el-table-column>
+      <el-table-column class="table_td" prop="procurementPlanNo" label="合同编号"></el-table-column>
+      <el-table-column class="table_td" prop="title" label="货名"></el-table-column>
+      <el-table-column class="table_td" prop="goodsName" label="买方"></el-table-column>
+      <el-table-column class="table_td" prop="plannedPurchaseVolume" label="买方"></el-table-column>
+      <el-table-column class="table_td" prop="basisPrice" label="应收(元)"></el-table-column>
+      <el-table-column class="table_td" prop="unitPrice" label="未收(元)"></el-table-column>
+      <el-table-column class="table_td" prop="receiveWarehouse" label="出货量(吨)"></el-table-column>
+      <el-table-column class="table_td" prop="" label="已开发票(元)"></el-table-column>
+      <el-table-column class="table_td" prop="" label="未开发票(元)"></el-table-column>
+      <el-table-column class="table_td" prop="" label="状态"></el-table-column>
+      <el-table-column class="table_td" prop="" label="更新时间"></el-table-column>
+      <el-table-column prop="seller" label="操作" >
+        <template slot-scope="scope">
+          <div class="record" @click="dialogFormVisible2=true">派发</div>
+            <el-dialog
+            width="40%"
+            title="派发(123)"
+            :visible.sync="dialogFormVisible2"
+            :append-to-body="true"
+          >
+            <el-form :model="form">
+              <el-form-item label="默认库管" :label-width="formLabelWidth">
+                <el-select
+                  v-model="form.region"
+                  autocomplete="off"
+                  placeholder="请选择默认库管"
+                  class="deal"
+                ></el-select>
+              </el-form-item>
+             
+            </el-form>
+          </el-dialog>
+        </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>
+  <!-- </div> -->
+</template>
+<script>
+import { procurementPlan , procurementDel } from '@/model/purchasingManagement/index'
+import { downloadFile } from '@/utils/batchDown'
+import Pagination from '@/components/Pagination'
+import WsUpload from '@/components/WsUpload'
+import { dayjs, fmoney, EventBus } from 'base-core-lib'
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+    Pagination
+  },
+  watch: {
+    vesselId(val) {
+      this.getList()
+    },
+    isShow(val) {
+      this.showType = val
+    }
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+        dialogFormVisible2 :false,
+        form: {
+        transactionPrice: '',
+        transactionsNumber: '',
+        basis: '',
+        submissionDate: ''
+        // delivery: false,
+        // type: [],
+        // resource: '',
+        // desc: ''
+      },
+      formLabelWidth: '120px',
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      pickerOptions: {},
+      value2: '',
+      handleSizeChange:'',
+      deptBudgetTotal: 0,
+      currentPage: 1,
+      // tranTypeKey: 1,
+      pageSize: 10,
+      searchType: 1,
+      searchTypeText: '未完成',
+      searchKeyWord: '',
+      contractType: 2,
+      pcFlag:1,
+      // 提交类型
+      submitType: true,
+      size: 10,
+      spanArr: [],
+      contractNo: '',
+      // inOutTaskNo: '',
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      warehouseList: [],
+      deptBudgetList: {},
+      pcFlag:1,
+      historyList: [],
+      pickerBeginDateBefore: {
+        disabledDate: time => {
+          return time.getTime() > Date.now()
+        }
+      },
+      accessoryTFs: false
+    }
+  },
+  activated() {
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    getList() {
+      console.log(123456)
+      procurementPlan({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        currentPage: this.currentPage,
+        pageSize: this.pageSize,
+        contractType: this.contractType,
+        tranTypeKey: this.tranTypeKey,
+        contractNo: this.contractNo,
+        pcFlag: this.pcFlag,
+      })
+        .toPromise()
+        .then(response => {
+          this.warehouseList = response
+        })
+    },
+    statusquery(state) {
+      this.searchType = state
+      this.getList()
+    },
+    
+    //编辑
+    handleEdit(row) {
+      this.$router.push({
+        name: 'procurementPlanEdit',
+        query: {  id: row.id },
+      })
+    },
+    getSpanArr(data) {
+      let that = this
+
+      //页面展示的数据,不一定是全部的数据,所以每次都清空之前存储的 保证遍历的数据是最新的数据。以免造成数据渲染混乱
+
+      that.spanArr = []
+
+      that.pos = 0
+
+      // //遍历数据
+
+      data.forEach((item, index) => {
+        //判断是否是第一项
+
+        if (index === 0) {
+          this.spanArr.push(1)
+          this.pos = 0
+        } else {
+          //不是第一项时,就根据标识去存储
+          if (data[index].warehouseNumViewList.length > 1) {
+            查找到符合条件的数据时每次要把之前存储的数据 + 1
+            this.spanArr[this.pos] = data[index].warehouseNumViewList.length
+            this.spanArr.push(0)
+          } else {
+            // 没有符合的数据时,要记住当前的index
+            this.spanArr.push(1)
+            this.pos = index
+          }
+        }
+      })
+    },
+    //添加
+    // handleAdd(){
+    //   this.$router.push({
+    //     name: 'procurementPlanAdd',
+    //   })
+    // },
+    //查看
+    // handleLook(row) {
+    //   this.$router.push({
+    //     name: 'procurementPlanLook',
+    //     query: {
+    //      id: row.id
+    //     }
+    //   })
+    // },
+    handleDelete(row) {
+     var handleDelete = ' '
+     if(row.handleDelete == ''){
+     }
+     this.$confirm(
+       `采购计划删除后不可恢复,是否确定删除?`,
+       {
+         cancelButtonText: '取消',
+         confirmButtonText: '确定',
+         type:'warning'
+       }
+     )
+      .then(() => {
+          procurementDel({ id: row.id })
+            .toPromise()
+            .then((response) => {
+              this.$notify.success({
+                title: '成功',
+                message: '删除成功',
+              })
+              this.getList()
+            })
+            .catch((response) => {
+              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+  },
+  
+
+    //返回
+    revert() {
+      this.$router.push({ path: 'warehouseManagementList' })
+    },
+    dateFormat(fmt, date) {
+      let ret
+      const opt = {
+        'Y+': date.getFullYear().toString(), // 年
+        'm+': (date.getMonth() + 1).toString(), // 月
+        'd+': date.getDate().toString(), // 日
+        'H+': date.getHours().toString() // 时
+        // "M+": date.getMinutes().toString(),         // 分
+        // "S+": date.getSeconds().toString()          // 秒
+        // 有其他格式化字符需求可以继续添加,必须转化成字符串
+      }
+      for (let k in opt) {
+        ret = new RegExp('(' + k + ')').exec(fmt)
+        if (ret) {
+          fmt = fmt.replace(
+            ret[1],
+            ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
+          )
+        }
+      }
+      return fmt
+    },
+    handleClose() {
+      this.accessoryTFs = false
+    },
+    handleSizeChange(val) {
+      console.log(`每页 ${val} 条`)
+      this.pageSize = val
+      this.getList()
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val
+      console.log(`当前页: ${val}`)
+      this.getList()
+    },
+    editClick(row) {
+      var status = ''
+      if (row.status == '待审核' || row.status == '已完成') {
+        status = '执行中'
+      } else if (row.status == '执行中') {
+        status = '已完成'
+      }
+      //cancelButtonClass: "btn-custom-cancel"
+      this.$confirm(`是否将状态改为${status}`, {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(() => {
+          alsostate({ id: row.id })
+            .toPromise()
+            .then(response => {
+              this.$notify.success({
+                title: '成功',
+                message: '状态修改成功'
+              })
+              this.getList()
+            })
+            .catch(response => {
+              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    selecttaskType(e) {
+      for (var i = 0; i < this.taskTypeList.length; i++) {
+        if (this.taskTypeList[i].value == e) {
+          this.searchType = this.taskTypeList[i].type
+        }
+      }
+    },
+    // fujian(row) {
+    //   if (
+    //     row.receiveAttachmentPath === null ||
+    //     row.receiveAttachmentPath === ''
+    //   ) {
+    //     EventBus.$emit(
+    //       'warning',
+    //       this.$t('system.noticeCircular.NoInformation')
+    //     )
+    //   } else {
+    //     this.accessoryTFs = true
+    //   }
+    //   this.appendixIdss = row.receiveAttachmentPath
+    // },
+    handleExamine(row) {
+      this.$router.push({
+        name: 'salesContractExamine',
+        query: { id: row.id }
+      })
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleCloe() {
+      this.dialogViewSpareMoney = false
+    },
+    history(row) {
+      billoperatehis({ id: row.id })
+        .toPromise()
+        .then(response => {
+          this.historyList = response
+        })
+    },
+    //查找
+    find() {
+      this.currentPage = 1
+      this.getList()
+    },
+    async exportlist() {
+      const { data } = await export1(
+        {
+          compId: sessionStorage.getItem('ws-pf_compId'),
+          contractType: this.contractType,
+          currentPage: this.currentPage,
+          pageSize: this.pageSize,
+          searchType: this.searchType,
+          searchKeyWord: this.searchKeyWord,
+          startDate: this.startDate,
+          endDate: this.endDate
+        },
+        {},
+        { responseType: 'blob' }
+      ).toPromise()
+      downloadFile({
+        res: data,
+        fileName: `${this.date.year +
+          (this.date.month ? `-${this.date.month}` : '')}_采购合同`,
+        type: 'xls'
+      })
+    },
+    total() {}
+  }
+
+</script>
+<style lang="scss" scoped>
+.connert {
+  width: 90%;
+  margin: 0 auto;
+}
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+//分页
+.el-pagination {
+  padding: 10px 15px;
+  margin-bottom: 0;
+  text-align: center;
+}
+/deep/.el-pager li.active {
+  color: #5878e8;
+  cursor: default;
+}
+/deep/.el-pager li:hover {
+  color: #5878e8;
+  cursor: default;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-button--default {
+  color: #8890b1;
+  border-color: #e8eaf1;
+}
+/deep/.base_header_layout .grid-content.right .find.el-button--primary {
+  width: 30px;
+  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;
+  width: 385px;
+}
+.completed.el-button--default {
+  border-color: #5878e8;
+  background-color: #f6f7fc;
+  color: #5878e8;
+}
+.putstorage.el-button--default,
+.deliverystorage.el-button--default {
+  border-color: #8890b1;
+  background-color: #fff;
+  color: #8890b1;
+}
+/deep/.el-table td,
+/deep/.el-table th.is-leaf {
+  border-right: 1px solid #e9ecf7;
+  text-align: center;
+}
+/deep/.el-table tr td:first-child,
+/deep/.el-table tr th.is-leaf:first-child {
+  border-left: 1px solid #e9ecf7;
+}
+.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: 150px;
+// }
+.base_header_layout .grid-content {
+  margin-top: 80px;
+}
+.el-input--small .el-input__inner {
+  margin-left: 20px;
+}
+.el-range-editor--small.el-input__inner {
+  height: 32px;
+  margin-left: -20%;
+}
+//执行样式
+.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;
+}
+.record,
+.adjustment {
+  display: inline-block;
+  color: #5878e8;
+  padding: 0 4px !important;
+  position: relative;
+  font-size: 14px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.bg-left {
+  padding-left: 30px;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+  // margin-left: 85%;
+  margin-top: 20px;
+}
+//导航条样式
+.el-col-12 {
+  width: 50%;
+  height: 60px;
+  background: #f6f7fc;
+  border-radius: 4px 4px 1px 1px;
+}
+.el-input--small .el-input__inner {
+  height: 32px;
+  line-height: 32px;
+  width: 385px;
+  margin-top: 10px;
+}
+.bg-bottom {
+  margin-left: 85%;
+}
+.but {
+  margin-left: 30%;
+  /* margin-top: -32px; */
+  overflow: auto;
+  /* float: left; */
+  /* margin-left: 1px; */
+  margin-left: -10px;
+}
+.el-input--small {
+  font-size: 13px;
+  width: 390px;
+  margin-left: 74%;
+}
+/deep/.el-table .el-table__header .cell,
+.el-table .el-table__body .cell {
+  text-align: center;
+}
+</style>

+ 34 - 0
src/views/financialManagement/component/routers/route.js

@@ -0,0 +1,34 @@
+import Layout from '@/layout/index';
+
+const financialManagementRouter = {
+  path: '/financialManagement',
+  component: Layout,
+  redirect: '/financialManagement',
+  name: 'financialManagement',
+  alwaysShow: true, // will always show the root menu
+  meta: {
+    title: 'financialManagement',
+    module: 'contractManagement',
+    icon: '-caigouyewuguanli'
+  },
+  children: [
+      // 收款管理
+    {
+      path: 'collectionManagementList',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/financialManagement/collectionManagementList'),
+      name: 'collectionManagementList',
+      meta: {
+        title: 'collectionManagementList',
+        shortcutEntrance: 'financialManagement',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      }
+    },
+  ],
+
+};
+
+export default financialManagementRouter;

+ 3 - 18
src/views/platformaudit/driverreview.vue

@@ -249,6 +249,9 @@
               @click="adopt(scope.row)"
               >通过</el-button
             >
+             <template v-else-if="scope.row.authenticationStatusKey == 3" slot-scope="scope">
+              已驳回
+            </template>
             <template v-else slot-scope="scope"> 
             {{ scope.row.authenticationStatus}}
           </template>
@@ -265,24 +268,6 @@
       >
       </el-pagination>
     </div>
-    <WinseaContentModal
-      v-model="outerVisible"
-      title="禁用原因"
-      @on-cancel="handleClose"
-    >
-      <el-input
-        type="textarea"
-        :rows="2"
-        maxlength="50"
-        placeholder="请输入禁用原因,不超过50个字"
-        v-model="disablieForm.disableReasons"
-      >
-      </el-input>
-      <div class="dialog-footer">
-        <el-button @click="outerVisible = false">取 消</el-button>
-        <el-button type="primary" @click="disableReasons">确定禁用</el-button>
-      </div>
-    </WinseaContentModal>
     <!-- 附件弹框 -->
     <WinseaContentModal
       v-model="accessoryTFs"

+ 4 - 1
src/views/platformaudit/grainmerchantreview.vue

@@ -227,6 +227,9 @@
               @click="adopt(scope.row)"
               >通过</el-button
             >
+             <template v-else-if="scope.row.authenticationStatusKey == 3" slot-scope="scope">
+              已驳回
+            </template>
             <template v-else slot-scope="scope">
               {{ scope.row.authenticationStatus }}
             </template>
@@ -416,7 +419,7 @@ export default {
     //审核驳回
     reject(row) {
       this.identityAuthenticationInfo.id = row.id
-      this.identityAuthenticationInfo.flag = 1
+      this.identityAuthenticationInfo.flag = 2
       this.$confirm(`确定驳回该认证信息?`, '提示', {
         confirmButtonText: '驳回',
         cancelButtonText: '取消',

+ 39 - 3
src/views/platformaudit/transactioninformationreview.vue

@@ -2,7 +2,22 @@
 <template>
   <div>
     <BaseHeaderLayout :leftSpan="15">
-      <template slot="left"> </template>
+      <template slot="left">
+        <div class="purchase"><el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="purchase()"
+          >采购</el-button
+        ></div>
+        <div class="sale"><el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="sale()"
+          >销售</el-button
+        ></div>
+      </template>
       <template slot="right">
         <span style="width: 70px; display: inline-block; color: #8890b1"
           >状态:</span
@@ -80,7 +95,7 @@
               class="record"
               @click="nocomplete(scope.row)"
               v-hasPermission="
-           `transportationTask.transportation.transportationInfo.view`
+           `warehouseManagement.warehouse.warehouseInfoTask.View`
           "
             >查看</div>
             <div
@@ -91,7 +106,7 @@
           "
             >编辑</div>
             <div
-              class="record1"
+              class="record"
               @click="deleteclick(scope.row)"
               v-hasPermission="
            `transportationTask.transportation.transportationInfo.delete`
@@ -260,6 +275,24 @@ export default {
           return false
         })
     },
+    //查看//传参
+    nocomplete(row) {
+      this.$router.push({
+        name: 'procurementPlanLook',
+        query: {
+          id: row.id,
+        },
+      })
+    },
+    //编辑
+     delivery(row) {
+      this.$router.push({
+        name: 'procurementPlanEdit',
+        query: {
+          id: row.id,
+        },
+      })
+    },
     //查找
     lookUp() {
       this.currentPage = 1
@@ -575,6 +608,9 @@ export default {
   width: 30%;
   margin-right: 10px;
 }
+.sale {
+  margin-left: 50px;
+}
 /deep/.typeselect .el-input__inner {
   color: #8890b1;
 }

+ 9 - 5
src/views/purchasingManagement/procurementPlanAdd.vue

@@ -242,6 +242,7 @@
               type="year"
               align="right"
               unlink-panels
+              value-format='yyyy'
               range-separator="至"
               placeholder="开始日期"
             ></el-date-picker>
@@ -815,17 +816,21 @@ export default {
               this.dataList.procurementPlanNo='CGJH'+this.getdate()+this.verifyinit()
               this.dataList.sourceProvince = CodeToText[this.selectedOptions[0]]
               this.dataList.sourceCity = CodeToText[this.selectedOptions[1]]
-
-              this.dataList.deliveryProvince =
+ this.dataList.receivePrivate =  CodeToText[this.selectedOptions[0]]
+ this.dataList.receiveCity = CodeToText[this.selectedOptions[1]]
+ this.dataList.receiveArea = CodeToText[this.selectedOptions[2]]
+              this.dataList.outputPrivate =
                 CodeToText[this.selectedOptions1[0]]
-              this.dataList.deliveryCity = CodeToText[this.selectedOptions1[1]]
+              this.dataList.outputCity = CodeToText[this.selectedOptions1[1]]
 
               this.dataList.compId = this.compId
+
+              
               // this.dataList.contractType = 1
               // this.dataList.goodsType = 1
               this.dataList.pcFlag = 1
               this.dataList.compId = sessionStorage.getItem('ws-pf_compId')
-
+              console.log(this.dataList,"查看添加对象")
               procurementAdd(this.dataList)
                 .toPromise()
                 .then(response => {
@@ -840,7 +845,6 @@ export default {
           })
         })
         .catch(() => {
-          console.log(3523543534)
           return false
         })
     },

+ 35 - 14
src/views/purchasingManagement/procurementPlanEdit.vue

@@ -252,7 +252,7 @@
           </ws-form-item>
           <!--产地-->
           <ws-form-item label="产地" span="1" prop="unitPrice">
-            <el-cascader
+            <!-- <el-cascader
               :options="options_"
               v-model="selectedOptions1"
               clearable
@@ -260,20 +260,28 @@
               placeholder="请选择产地"
               @change="handleChange1"
               style="width:200%"
+            /> -->
+            <el-cascader
+              :options="options1_"
+              v-model="selectedOptions1"
+              clearable
+              size="large"
+              placeholder="请选择产地"
+              @change="handleChange1"
+              style="width:200%"
             />
           </ws-form-item>
           <!--产出年份-->
           <el-form-item label="产出年份" span="1" prop="outputYear">
-           <el-date-picker
-              v-model="outputYear"
-              type="daterange"
+
+        <el-date-picker
+              v-model="dataList.outputYear"
+              type="year"
               align="right"
               unlink-panels
               range-separator="至"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-        >
-        </el-date-picker>
+              placeholder="开始日期"
+            ></el-date-picker>
           </el-form-item>
         </el-form>
       </div>
@@ -286,7 +294,7 @@
 </template>
 <script>
 import { procurementLook , procurementEdit } from '@/model/purchasingManagement/index'
-import { regionData, CodeToText, TextToCode } from 'element-china-area-data'
+import { regionData, CodeToText, TextToCode ,provinceAndCityDataPlus} from 'element-china-area-data'
 import { pullDown } from '@/model/warehouse/index'
 import { packList } from '@/model/contarct/index'
 import {  getwarehousename } from '@/model/tasksport/index'
@@ -327,6 +335,7 @@ export default {
       showType: true,
       // 年
       year: '',
+     options1_: provinceAndCityDataPlus,
        options_: regionData,
       packingTypeList: '',
       procurementPlanTypeList: '',
@@ -530,7 +539,7 @@ export default {
       this.dataList.receiveArea = CodeToText[value[2]]
     },
     handleChange1(value) {
-      this.selectedOptions = value
+      this.selectedOptions1 = value
       this.dataList.receivePrivate = CodeToText[value[0]]
       this.dataList.receiveCity = CodeToText[value[1]]
       this.dataList.receiveArea = CodeToText[value[2]]
@@ -555,6 +564,15 @@ export default {
         .toPromise()
         .then((response) => {
           this.dataList = response
+          var tmp =[]
+          tmp[0] = TextToCode[this.dataList.receivePrivate].code
+          tmp[1] = TextToCode[this.dataList.receivePrivate][this.dataList.receiveCity].code
+          tmp[2] = TextToCode[this.dataList.receivePrivate][this.dataList.receiveCity][this.dataList.receiveArea].code
+          this.selectedOptions = tmp
+            var tmp1 =[]
+              tmp1[0] = TextToCode[this.dataList.outputPrivate].code
+          tmp1[1] = TextToCode[this.dataList.outputPrivate][this.dataList.outputCity].code
+            this.selectedOptions1 = tmp1
         })
       // 货名
       packList({ constId: 'CON2' })
@@ -760,6 +778,7 @@ export default {
         return
       }
       this.dataList.id = this.$route.query.id
+      // this.deptList.flag = 0
       this.$confirm(`提交后该采购信息将发布到交易平台,是否确定提交?`, {
         cancelButtonText: '取消',
         confirmButtonText: '确定',
@@ -773,10 +792,12 @@ export default {
             CodeToText[this.selectedOptions[0]]
           this.dataList.sourceCity = CodeToText[this.selectedOptions[1]]
 
-          this.dataList.deliveryProvince =
-            CodeToText[this.selectedOptions1[0]]
-          this.dataList.deliveryCity =
-            CodeToText[this.selectedOptions1[1]]
+          this.dataList.receivePrivate =  CodeToText[this.selectedOptions[0]]
+ this.dataList.receiveCity = CodeToText[this.selectedOptions[1]]
+ this.dataList.receiveArea = CodeToText[this.selectedOptions[2]]
+              this.dataList.outputPrivate =
+                CodeToText[this.selectedOptions1[0]]
+              this.dataList.outputCity = CodeToText[this.selectedOptions1[1]]
             
           this.dataList.compId = this.compId
           // this.dataList.pcFlag = 1

+ 306 - 109
src/views/purchasingManagement/procurementPlanList.vue

@@ -2,10 +2,10 @@
 <template>
   <div class="container">
     <!-- <div> -->
-    <div>
+    <!-- <div>
       <ws-input
         v-model="searchKeyWord"
-        placeholder="可按照合同编号和任务编号进行查找"
+        placeholder="可按采购计划编号和标题查找"
         clearable
         maxlength="500"
         type="input"
@@ -16,17 +16,44 @@
           width="16"
           height="16"
           style="
+            vertical-align: text-top;
+            position: relative;
+            top: 0px;
+            left: -8px;
+          "
+          src="../../../public/img/sousuo.png"
+          alt
+        />
+      </ws-button>
+    </div> -->
+  
+     <BaseHeaderLayout :leftSpan="10">
+      <template slot="left">  <ws-button type="primary" @click="handleAdd()">添加</ws-button> </template>
+      <!-- 接单开始 -->
+      <template slot="right">
+        <ws-input
+          v-model="searchKeyWord"
+          placeholder="可按采购计划编号和标题查找"
+          clearable
+          maxlength="500"
+          type="input"
+          class="findValue"
+        ></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>
-    </div>
-    <ws-button type="primary" @click="handleAdd()">添加</ws-button>
+            src="../../../public/img/sousuo.png"
+            alt=""
+        /></ws-button>
+      </template>
+    </BaseHeaderLayout>
     <el-table
       class="wenzi"
       :data="warehouseList.records"
@@ -34,13 +61,76 @@
       height="780"
     >
       <el-table-column type="index" label="序号" width="80"></el-table-column>
-      <el-table-column class="table_td" prop="procurementPlanNo" label="采购计划编号"></el-table-column>
-      <el-table-column class="table_td" prop="title" label="标题"></el-table-column>
-      <el-table-column class="table_td" prop="goodsName" label="货名"></el-table-column>
-      <el-table-column class="table_td" prop="plannedPurchaseVolume" label="重量(吨)"></el-table-column>
-      <el-table-column class="table_td" prop="basisPrice" label="基差(元/吨)"></el-table-column>
-      <el-table-column class="table_td" prop="unitPrice" label="单价(元/吨)"></el-table-column>
-      <el-table-column class="table_td" prop="receiveWarehouse" label="收货库"></el-table-column>
+      <el-table-column
+        class="table_td"
+        prop="procurementPlanNo"
+        label="采购计划编号"
+      ></el-table-column>
+      <el-table-column
+        class="table_td"
+        prop="title"
+        label="标题"
+      ></el-table-column>
+      <el-table-column
+        class="table_td"
+        prop="goodsName"
+        label="货名"
+      ></el-table-column>
+      <el-table-column
+        class="table_td"
+        prop="plannedPurchaseVolume"
+        label="重量(吨)"
+      ></el-table-column>
+      <el-table-column class="table_td" prop="basisPrice" label="基差(元/吨)">
+        <template slot-scope="scope">
+          <div v-if="scope.row.procurementPlanType == '期货'">
+            <div class="inputChenge">
+              <el-input
+                v-model="scope.row.basisPrice"
+                @change="varietyClick(scope.row)"
+                class="inputs"
+              ></el-input>
+            </div>
+            <img
+              width="17"
+              height="18"
+              style="vertical-align: text-top; position: relative; top: -1px"
+              src="../../../public/img/edit.png"
+              @click="varietyClick(scope.row)"
+              alt=""
+            />
+          </div>
+          <div v-else>—</div>
+        </template>
+      </el-table-column>
+      <el-table-column class="table_td" prop="unitPrice" label="单价(元/吨)">
+        <template slot-scope="scope">
+          <div v-if="scope.row.procurementPlanType == '现货'">
+            <div class="inputChenge">
+              <!-- readonly -->
+              <el-input
+                v-model="scope.row.unitPrice"
+                v-bind:class="inputs"
+                @change="varietyClick(scope.row)"
+              ></el-input>
+            </div>
+            <img
+              width="17"
+              height="18"
+              style="vertical-align: text-top; position: relative; top: -1px"
+              src="../../../public/img/edit.png"
+              @click="varietyClick(scope.row)"
+              alt=""
+            />
+          </div>
+          <div v-else>—</div>
+        </template>
+      </el-table-column>
+      <el-table-column
+        class="table_td"
+        prop="receiveWarehouse"
+        label="收货库"
+      ></el-table-column>
       <el-table-column prop="status" label="状态">
         <template slot-scope="scope">
           <el-popover
@@ -52,17 +142,30 @@
           >
             <template>
               <span slot="reference">
-                <span v-if="scope.row.showFlag == 1"> <span class="executory"></span>展示中</span>
-                <span v-if="scope.row.showFlag == 0"> <span  class="inExecution"></span>已隐藏</span>
+                <span v-if="scope.row.showFlag == 1">
+                  <span class="executory"></span>展示中</span
+                >
+                <span v-if="scope.row.showFlag == 0">
+                  <span class="inExecution"></span>已隐藏</span
+                >
               </span>
             </template>
             <div>
               <!-- <p style="margin-top: 0; padding-left: 10px">历史记录</p> -->
-              <div v-for="(item, index) in historyList" class="flex" :key="index">
-                <div class="vertical-text vertical-text-left">{{ item.updateDate }}</div>
+              <div
+                v-for="(item, index) in historyList"
+                class="flex"
+                :key="index"
+              >
+                <div class="vertical-text vertical-text-left">
+                  {{ item.updateDate }}
+                </div>
                 <div>
                   <div class="vertical-circle"></div>
-                  <div v-if="index != historyList.length - 1" class="vertical-line"></div>
+                  <div
+                    v-if="index != historyList.length - 1"
+                    class="vertical-line"
+                  ></div>
                 </div>
                 <div class="vertical-text">
                   {{ item.operateUser }}
@@ -72,9 +175,21 @@
               </div>
             </div>
           </el-popover>
+          <img
+            width="17"
+            height="18"
+            style="vertical-align: text-top; position: relative; top: -1px"
+            src="../../../public/img/edit.png"
+            @click="editClick(scope.row)"
+            alt=""
+          />
         </template>
       </el-table-column>
-      <el-table-column class="table_td" label="更新时间" prop="updateDate"></el-table-column>
+      <el-table-column
+        class="table_td"
+        label="更新时间"
+        prop="updateDate"
+      ></el-table-column>
       <el-table-column prop="seller" label="操作" width="300">
         <template slot-scope="scope">
           <div class="record" @click="handleLook(scope.row)">查看</div>
@@ -97,7 +212,11 @@
   <!-- </div> -->
 </template>
 <script>
-import { procurementPlan , procurementDel } from '@/model/purchasingManagement/index'
+import {
+  procurementPlan,
+  procurementDel,
+  procurementEditOther,
+} from '@/model/purchasingManagement/index'
 import { downloadFile } from '@/utils/batchDown'
 import Pagination from '@/components/Pagination'
 import WsUpload from '@/components/WsUpload'
@@ -106,7 +225,7 @@ export default {
   name: 'viewSpareMoney',
   components: {
     WsUpload,
-    Pagination
+    Pagination,
   },
   watch: {
     vesselId(val) {
@@ -114,7 +233,7 @@ export default {
     },
     isShow(val) {
       this.showType = val
-    }
+    },
   },
   data() {
     return {
@@ -132,7 +251,7 @@ export default {
       year: '',
       pickerOptions: {},
       value2: '',
-      handleSizeChange:'',
+      handleSizeChange: '',
       deptBudgetTotal: 0,
       currentPage: 1,
       // tranTypeKey: 1,
@@ -141,7 +260,7 @@ export default {
       searchTypeText: '未完成',
       searchKeyWord: '',
       contractType: 2,
-      pcFlag:1,
+      pcFlag: 1,
       // 提交类型
       submitType: true,
       size: 10,
@@ -152,14 +271,15 @@ export default {
       deptCircularPage: {},
       warehouseList: [],
       deptBudgetList: {},
-      pcFlag:1,
+      pcFlag: 1,
       historyList: [],
       pickerBeginDateBefore: {
-        disabledDate: time => {
+        disabledDate: (time) => {
           return time.getTime() > Date.now()
-        }
+        },
       },
-      accessoryTFs: false
+      accessoryTFs: false,
+      inputs: 'inputs1',
     }
   },
   activated() {
@@ -168,7 +288,6 @@ export default {
   },
   methods: {
     getList() {
-      console.log(123456)
       procurementPlan({
         compId: sessionStorage.getItem('ws-pf_compId'),
         currentPage: this.currentPage,
@@ -177,9 +296,10 @@ export default {
         tranTypeKey: this.tranTypeKey,
         contractNo: this.contractNo,
         pcFlag: this.pcFlag,
+        searchKeyWord:this.searchKeyWord
       })
         .toPromise()
-        .then(response => {
+        .then((response) => {
           this.warehouseList = response
         })
     },
@@ -187,23 +307,11 @@ export default {
       this.searchType = state
       this.getList()
     },
-    // delivery(item) {
-    //   this.$router.push({
-    //     path: 'warehouseManagementDelivery',
-    //     query: {
-    //       baseId: item.warehouseId,
-    //       positionId: item.binNumberId,
-    //       warehouseName: item.warehouseName,
-    //       binNumber: item.binNumber,
-    //       capacity: item.capacity
-    //     }
-    //   })
-    // },
     //编辑
     handleEdit(row) {
       this.$router.push({
         name: 'procurementPlanEdit',
-        query: {  id: row.id },
+        query: { id: row.id },
       })
     },
     getSpanArr(data) {
@@ -238,7 +346,7 @@ export default {
       })
     },
     //添加
-    handleAdd(){
+    handleAdd() {
       this.$router.push({
         name: 'procurementPlanAdd',
       })
@@ -248,23 +356,20 @@ export default {
       this.$router.push({
         name: 'procurementPlanLook',
         query: {
-         id: row.id
-        }
+          id: row.id,
+        },
       })
     },
     handleDelete(row) {
-     var handleDelete = ' '
-     if(row.handleDelete == ''){
-     }
-     this.$confirm(
-       `采购计划删除后不可恢复,是否确定删除?`,
-       {
-         cancelButtonText: '取消',
-         confirmButtonText: '确定',
-         type:'warning'
-       }
-     )
-      .then(() => {
+      var handleDelete = ' '
+      if (row.handleDelete == '') {
+      }
+      this.$confirm(`采购计划删除后不可恢复,是否确定删除?`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning',
+      })
+        .then(() => {
           procurementDel({ id: row.id })
             .toPromise()
             .then((response) => {
@@ -282,9 +387,6 @@ export default {
           return false
         })
     },
-  },
-  
-
     //返回
     revert() {
       this.$router.push({ path: 'warehouseManagementList' })
@@ -295,7 +397,7 @@ export default {
         'Y+': date.getFullYear().toString(), // 年
         'm+': (date.getMonth() + 1).toString(), // 月
         'd+': date.getDate().toString(), // 日
-        'H+': date.getHours().toString() // 时
+        'H+': date.getHours().toString(), // 时
         // "M+": date.getMinutes().toString(),         // 分
         // "S+": date.getSeconds().toString()          // 秒
         // 有其他格式化字符需求可以继续添加,必须转化成字符串
@@ -326,34 +428,67 @@ export default {
     },
     editClick(row) {
       var status = ''
-      if (row.status == '待审核' || row.status == '已完成') {
-        status = '执行中'
-      } else if (row.status == '执行中') {
-        status = '已完成'
-      }
-      //cancelButtonClass: "btn-custom-cancel"
-      this.$confirm(`是否将状态改为${status}`, {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      })
-        .then(() => {
-          alsostate({ id: row.id })
-            .toPromise()
-            .then(response => {
-              this.$notify.success({
-                title: '成功',
-                message: '状态修改成功'
-              })
-              this.getList()
-            })
-            .catch(response => {
-              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
-            })
+      var num = 1
+      if (row.showFlag == 1) {
+        status = '已隐藏'
+        num = 0
+        this.$confirm(`隐藏后交易信息不 再展示给客户,是否确定隐藏?`, {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning',
         })
-        .catch(() => {
-          return false
+          .then(() => {
+            procurementEditOther({
+              flag: 0,
+              showFlag: num,
+              id: row.id,
+            })
+              .toPromise()
+              .then((response) => {
+                this.$notify.success({
+                  title: '成功',
+                  message: '状态修改成功',
+                })
+                this.getList()
+              })
+              .catch((response) => {
+                // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      } else if (row.showFlag == 0) {
+        status = '展示中'
+        num = 1
+        this.$confirm(`确定展示交易信息?`, {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning',
         })
+          .then(() => {
+            procurementEditOther({
+              flag: 0,
+              showFlag: num,
+              id: row.id,
+            })
+              .toPromise()
+              .then((response) => {
+                this.$notify.success({
+                  title: '成功',
+                  message: '状态修改成功',
+                })
+                this.getList()
+              })
+              .catch((response) => {
+                // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      }
+      //cancelButtonClass: "btn-custom-cancel"
     },
     selecttaskType(e) {
       for (var i = 0; i < this.taskTypeList.length; i++) {
@@ -379,7 +514,7 @@ export default {
     handleExamine(row) {
       this.$router.push({
         name: 'salesContractExamine',
-        query: { id: row.id }
+        query: { id: row.id },
       })
     },
     // 关闭 dialog时 处理文件url 初始化upload组件
@@ -389,13 +524,13 @@ export default {
     history(row) {
       billoperatehis({ id: row.id })
         .toPromise()
-        .then(response => {
+        .then((response) => {
           this.historyList = response
         })
     },
     //查找
     find() {
-      this.currentPage = 1
+      // this.searchKeyWord = 1
       this.getList()
     },
     async exportlist() {
@@ -408,21 +543,78 @@ export default {
           searchType: this.searchType,
           searchKeyWord: this.searchKeyWord,
           startDate: this.startDate,
-          endDate: this.endDate
+          endDate: this.endDate,
         },
         {},
         { responseType: 'blob' }
       ).toPromise()
       downloadFile({
         res: data,
-        fileName: `${this.date.year +
-          (this.date.month ? `-${this.date.month}` : '')}_采购合同`,
-        type: 'xls'
+        fileName: `${
+          this.date.year + (this.date.month ? `-${this.date.month}` : '')
+        }_采购合同`,
+        type: 'xls',
       })
     },
-    total() {}
-  }
-
+    varietyClick(row) {
+      if (row.procurementPlanType == '期货') {
+        this.$confirm(`确定要修改基差?`, {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning',
+        })
+          .then(() => {
+            procurementEditOther({
+              flag: 1,
+              basisPrice: row.basisPrice,
+              id: row.id,
+            })
+              .toPromise()
+              .then((response) => {
+                this.$notify.success({
+                  title: '成功',
+                  message: '状态修改成功',
+                })
+                this.getList()
+              })
+              .catch((response) => {
+                // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      } else if (row.procurementPlanType == '现货') {
+        this.$confirm(`确定要修改单价?`, {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning',
+        })
+          .then(() => {
+            procurementEditOther({
+              flag: 2,
+              unitPrice: row.unitPrice,
+              id: row.id,
+            })
+              .toPromise()
+              .then((response) => {
+                this.$notify.success({
+                  title: '成功',
+                  message: '状态修改成功',
+                })
+                this.getList()
+              })
+              .catch((response) => {
+                // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      }
+    },
+  },
+}
 </script>
 <style lang="scss" scoped>
 .connert {
@@ -503,9 +695,6 @@ export default {
   height: 12px;
   background: #e9ecf7;
 }
-// .el-row{
-//     height: 150px;
-// }
 .base_header_layout .grid-content {
   margin-top: 80px;
 }
@@ -530,12 +719,15 @@ export default {
 }
 .executory {
   background: #ff9f24;
+  margin-right: 3px;
 }
 .inExecution {
   background: #5878e8;
+  margin-right: 3px;
 }
 .done {
   background: #50cad4;
+  margin-right: 3px;
 }
 .record,
 .adjustment {
@@ -598,7 +790,6 @@ export default {
 .el-button--primary {
   background-color: #5878e8;
   border-color: #5878e8;
-  // margin-left: 85%;
   margin-top: 20px;
 }
 //导航条样式
@@ -619,19 +810,25 @@ export default {
 }
 .but {
   margin-left: 30%;
-  /* margin-top: -32px; */
   overflow: auto;
-  /* float: left; */
-  /* margin-left: 1px; */
   margin-left: -10px;
 }
 .el-input--small {
   font-size: 13px;
   width: 390px;
-  margin-left: 74%;
 }
 /deep/.el-table .el-table__header .cell,
 .el-table .el-table__body .cell {
   text-align: center;
 }
-</style>
+.inputChenge {
+  width: 50%;
+  display: inline-flex;
+}
+.inputs1 {
+  border: none;
+}
+// .inputChenge>>>.el-input__inner{
+// border: none;
+// }
+</style>

+ 2 - 35
src/views/purchasingManagement/procurementPlanLook.vue

@@ -66,7 +66,7 @@
           </el-form-item>
           <!--收货库所在地区-->
           <el-form-item label="收货库所在地区" span="1">
-            <!-- <el-input disabled v-model="dataList.unitPrice" maxlength="120" size="small" /> -->{{dataList.receivePrivate}}{{dataList.receiveCity}}{{dataList.receiveArea}}
+           {{dataList.receivePrivate}}{{dataList.receiveCity}}{{dataList.receiveArea}}
           </el-form-item>
           <!--运费承担方-->
           <el-form-item label="运费承担方">
@@ -77,7 +77,7 @@
             <el-input disabled v-model="dataList.packingType" filterable :filter-method="dataFilter"></el-input>
           </el-form-item>
           <!--装袋备注=-->
-          <el-form-item label="装袋备注">
+          <el-form-item label="装袋备注" v-if="dataList.packingType == '大袋' || dataList.packingType == '小袋'">
             <el-input disabled v-model="dataList.baggingNotes" size="small" />
           </el-form-item>
           <!-- 买方 -->
@@ -99,7 +99,6 @@
           <el-form-item label="水分(%)<=">
             <el-input disabled v-model="dataList.waterContent" class="typeselect" />
           </el-form-item>
-
           <!-- 容重 -->
           <el-form-item label="容重(g/l)<=">
             <el-input disabled v-model="dataList.bulkDensity" class="typeselect" />
@@ -170,9 +169,6 @@ export default {
     Pagination
   },
   watch: {
-    // vesselId(val) {
-    //   this.getList()
-    // },
     isShow(val) {
       this.showType = val
     }
@@ -357,27 +353,6 @@ export default {
     close() {
       this.$router.push({ path: 'procurementPlanList' })
     },
-    //提交按钮
-    // submit() {
-    //   if (this.dataList.taskTypeKey == 1) {
-    //     this.dataList.inOutTaskNo = this.inOutTaskNo
-    //     this.requestadd(this.dataList)
-    //   } else if (this.dataList.taskTypeKey == 2) {
-    //     this.dataList.inOutTaskNo = this.inOutTaskNo1
-    //     this.requestadd(this.dataList)
-    //   } else if (
-    //     this.dataList.taskTypeKey == 3 ||
-    //     this.dataList.taskTypeKey == 4
-    //   ) {
-    //     this.dataList.inOutTaskNo = this.inOutTaskNo
-    //     this.dataList.relevanceId = this.GetRandomNum(100000, 999999)
-    //     this.requestadd(this.dataList, 'repetition')
-    //     this.dataList1.inOutTaskNo = this.inOutTaskNo1
-    //     this.dataList1.relevanceId = this.dataList.relevanceId
-    //     this.requestadd(this.dataList1, 'repetition')
-    //   }
-    // },
-    selectwarehouseName() {},
     tarechange(e) {
       if (this.dataList.grossWeight && this.dataList.tare) {
         this.dataList.netWeight = Number(
@@ -454,14 +429,6 @@ export default {
           this.dataList = response
         })
     },
-
-    // deletecontract(){},
-    //删除
-    approve() {},
-    listQuery() {},
-    total() {},
-    clearfiltQuery() {},
-    selectCrtDuty() {}
   }
 }
 </script>

+ 104 - 36
src/views/purchasingManagement/purchaseOrderList.vue

@@ -50,32 +50,32 @@
               <el-button class="record" @click="customer(scope.row)">{{scope.row.customer}}</el-button>
             </template>
           </el-table-column>
-          <el-table-column class="table_td" prop="unitPrice" label="单价(元/吨)">
+          <el-table-column class="table_td"  width="100" prop="unitPrice" label="单价(元/吨)">
             <template slot-scope="scope">
               {{scope.row.unitPrice}}
               <i @click="Changepricerecord(scope.row)" class="iconfont icon-lishi"></i>
             </template>
           </el-table-column>
-          <el-table-column class="table_td" prop="basis" label="基差(元/吨)">
+          <el-table-column class="table_td"  width="100" prop="basis" label="基差(元/吨)">
           <template slot-scope="scope">
-            <span v-if='!basischange'>{{scope.row.basis}}</span>
-            <input  v-if='basischange' style='width:20px;'  v-model='basis' type="text">
-            <i class="iconfont icon-dui"></i>
-            <img  v-if='!basischange'
+            <span v-if='!scope.row.basischange&&scope.row.basis'>{{scope.row.basis}}</span>
+            <input  v-if='scope.row.basischange' style='width:60px;'  v-model='basis' type="text">
+            <i @click='changebasis(scope.row)' v-if='scope.row.basischange' class="iconfont icon-dui"></i>
+            <img  v-if='!scope.row.basischange&&scope.row.basis'
             width="17"
             height="18"
             style="vertical-align: text-top; position: relative; top: -1px"
             src="../../../public/img/edit.png"
-            @click="editClick(scope.row)"
+            @click="editbasis(scope.row)"
             alt=""
           />
-
+<span v-if='!scope.row.basis'>-</span>
             </template>
           </el-table-column>
           <el-table-column class="table_td" prop="freezingDeposit" label="冻结定金(元)"></el-table-column>
           <el-table-column class="table_td" prop="defaultDeposit" label="拖欠定金(元)"></el-table-column>
-          <el-table-column class="table_td" prop="unloadingCharge" label="卸车费(元/吨)"></el-table-column>
-          <el-table-column class="table_td" prop="invoiceFee" label="发票费(元/吨)"></el-table-column>
+          <el-table-column  width="100" class="table_td" prop="unloadingCharge" label="卸车费(元/吨)"></el-table-column>
+          <el-table-column  width="100" class="table_td" prop="invoiceFee" label="发票费(元/吨)"></el-table-column>
           <el-table-column class="table_td" prop="transactionsNumber" label="合同重量(吨)"></el-table-column>
           <el-table-column class="table_td" prop="stockInQuantity" label="已入库量(吨)"></el-table-column>
           <el-table-column class="table_td" prop="openPosition" label="可平仓量(吨)"></el-table-column>
@@ -121,13 +121,13 @@
               <el-button v-if='scope.row.status=="已通过"||scope.row.status=="已成交"' class="record" @click="dialogFormVisible1 = true">成交</el-button>
               <!-- 补充定金 -->
               <el-button v-if='scope.row.defaultDeposit>0' class="record" @click="addthedeposit(scope.row)">补充定金</el-button>
-              <el-button v-if='scope.row.freezingDeposit>0' class="record">解冻定金</el-button>
+              <el-button v-if='scope.row.freezingDeposit>0' class="record" @click='unfreeze(scope.row)'>解冻定金</el-button>
               <!-- 平仓 -->
-              <el-button  v-if='scope.row.openPosition>0' class="record" @click="dialogFormVisible2 = true">平仓</el-button>
+              <el-button  v-if='scope.row.openPosition>0' class="record" @click="cloaeposition1(scope.row)">平仓</el-button>
               <el-button v-if='scope.row.status=="已通过"||scope.row.status=="已成交"'  class="record" @click="handle(scope.row)">完成</el-button>
               <!-- 审核 -->
               <el-button v-if='scope.row.status=="待审核"' type="text" class="record" @click="aduit(scope.row)">审核</el-button>
-              <el-button v-if='scope.row.status=="待审核"' class="record" @click="handle(scope.row)">删除</el-button>
+              <el-button v-if='scope.row.status=="待审核"' class="record" @click="deletehandle(scope.row)">删除</el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -229,62 +229,62 @@
                 :visible.sync="dialogFormVisible2"
                 :append-to-body="true"
               >
-                <el-form :model="warehouseList">
-                  <el-form-item label="成交价格(元/吨)" prop="transactionPrice" :label-width="formLabelWidth">
+                <el-form class='closeposition'>
+                  <el-form-item label="成交价格(元/吨)" prop="transactionPrice" >
                     <el-select
-                      v-model="warehouseList.transactionPrice"
+                      v-model="closePositionList1.transactionPrice"
                       autocomplete="off"
                       placeholder="请输入成交价"
                       class="deal"
                     ></el-select>
                   </el-form-item>
-                  <el-form-item label="可平仓数量(吨)" prop="openPosition" :label-width="formLabelWidth">
-                    <el-input v-model="warehouseList.openPosition" autocomplete="off" class="deal"></el-input>
+                  <el-form-item label="可平仓数量(吨)" prop="openPosition" >
+                    <el-input v-model="closePositionList1.openPosition" autocomplete="off" class="deal"></el-input>
                   </el-form-item>
-                  <el-form-item label="平仓数量(吨)" prop="closingQuantity" :label-width="formLabelWidth">
+                  <el-form-item label="平仓数量(吨)" prop="closingQuantity" >
                     <el-input
-                      v-model="warehouseList.closingQuantity"
+                      v-model="closePositionList1.closingQuantity"
                       autocomplete="off"
                       placeholder="请输入平仓数量"
                       class="deal"
                     ></el-input>
                   </el-form-item>
-                  <el-form-item label="平仓价格(元/吨)" prop="closeRate" :label-width="formLabelWidth">
+                  <el-form-item label="平仓价格(元/吨)" prop="closeRate" >
                     <el-input
-                      v-model="warehouseList.closeRate"
+                      v-model="closePositionList1.closeRate"
                       autocomplete="off"
                       placeholder="请输入平仓价格"
                       class="deal"
                     ></el-input>
                   </el-form-item>
-                  <el-form-item label="平仓基差(元/吨)" prop="closingBasis" :label-width="formLabelWidth">
+                  <el-form-item label="平仓基差(元/吨)" prop="closingBasis" >
                     <el-input
-                      v-model="warehouseList.closingBasis"
+                      v-model="closePositionList1.closingBasis"
                       autocomplete="off"
                       placeholder="请输入平仓基差"
                       class="deal"
                     ></el-input>
                   </el-form-item>
-                  <el-form-item label="平仓应付(元)" prop="closingPositionPayable" :label-width="formLabelWidth">
+                  <el-form-item label="平仓应付(元)" prop="closingPositionPayable">
                     <el-input
-                      v-model="warehouseList.closingPositionPayable"
+                      v-model="closePositionList1.closingPositionPayable"
                       autocomplete="off"
                       placeholder="请输入平仓价格"
                       class="deal"
                     ></el-input>
                   </el-form-item>
-                  <el-form-item label="平仓日期" prop="closePositionDate"  :label-width="formLabelWidth">
-                    <el-select
-                      v-model="warehouseList.closePositionDate"
-                      autocomplete="off"
-                      placeholder="选择平仓日期"
-                      class="deal"
-                    ></el-select>
+                  <el-form-item label="平仓日期" prop="closePositionDate"  >
+                    <el-date-picker
+      v-model="closePositionList1.closePositionDate"
+      type="date"
+      placeholder="选择日期"
+      format="yyyy 年 MM 月 dd 日"
+      value-format="yyyy-MM-dd"/>
                   </el-form-item>
                 </el-form>
                 <div slot="footer" class="dialog-footer">
                   <el-button @click="dialogFormVisible2 = false">取 消</el-button>
-                  <el-button type="primary" @click="dialogFormVisible22()">确 定</el-button>
+                  <el-button type="primary" @click="closepositionconfirm()">确 定</el-button>
                 </div>
               </el-dialog>
 
@@ -518,7 +518,7 @@ import {
   woekflowhandle,
 } from '@/model/tasksport/index'
 import { packList } from '@/model/contarct/index'
-import { detailsList, chengList ,closePositionList,aduitpurchase,aduitcontractno,editStatus} from '@/model/purchasingManagement/index'
+import { detailsList, chengList ,closePositionList,aduitpurchase,aduitcontractno,editStatus,deletepurchase} from '@/model/purchasingManagement/index'
 import { downloadFile } from '@/utils/batchDown'
 import Pagination from '@/components/Pagination'
 import WsUpload from '@/components/WsUpload'
@@ -621,7 +621,9 @@ dialogImageUrl:"",
       aduitlist:{
         unloadingCharge:0
       },
+      basis:0,
       replenishlist:{},
+      closePositionList1:{},
       closePositionList:[],
       historyList: [],
       pickerBeginDateBefore: {
@@ -638,6 +640,64 @@ dialogImageUrl:"",
     this.showType = this.isShow
   },
   methods: {
+    deletehandle(item){
+      this.$confirm(`采购订单删除后不可恢复,是否确定删除?`, {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning',
+        })
+          .then(() => {
+            deletepurchase({id:item.id}).toPromise().then(response => {
+                this.$message.success('删除订单成功')
+                this.getList()
+              }).catch(req => {
+                this.$message.success('删除订单失败')
+              })
+          })
+    },
+    closepositionconfirm(){
+      closePositionList(this.closePositionList1).toPromise()
+        .then(response => {
+          this.$message.success('修改基差成功')
+          this.getList()
+        }).catch(req => {
+          this.$message.success('修改基差失败')
+        })
+    },
+    cloaeposition1(item){
+      this.dialogFormVisible2 = true
+      this.$set(this.closePositionList1,'id',item.id)
+      this.$set(this.closePositionList1,'openPosition',item.openPosition)
+    },
+    changebasis(item){
+      editStatus({basis:this.basis,id:item.id,flag:3}).toPromise()
+        .then(response => {
+          this.$message.success('修改基差成功')
+          this.getList()
+        }).catch(req => {
+          this.$message.success('修改基差失败')
+        })
+    },
+    unfreeze(item){
+        this.$confirm(`确定解冻订单(${item.procurementPlan})的定金?`, {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning',
+        })
+          .then(() => {
+            editStatus({id:item.id,flag:1}).toPromise()
+          .then(response => {
+          this.$message.success('解冻定金成功')
+          this.getList()
+        }).catch(req => {
+          this.$message.success('解冻定金失败')
+        })
+          })
+    },
+    editbasis(item){
+      this.basis=item.basis
+      item.basischange=true
+    },
     replenish(){
       this.dialogFormVisible3 = false
       if(!this.replenishlist.money){
@@ -698,6 +758,7 @@ dialogImageUrl:"",
       this.$set(this.aduitlist,'createDate',item.createDate)
       this.$set(this.aduitlist,'packingType',item.packingType)
       this.$set(this.aduitlist,'packingTypeKey',item.packingTypeKey)
+      this.$set(this.aduitlist,'taskId',item.taskId)
       this.$set(this.aduitlist,'type',item.type)
       this.$set(this.aduitlist,'typeKey',item.typeKey)
     },
@@ -772,12 +833,13 @@ dialogImageUrl:"",
           type: 'warning',
         })
           .then(() => {
+            console.log(this.aduitlist)
       aduitpurchase(this.aduitlist)
         .toPromise()
         .then(response => {
           console.log(response)
           woekflowhandle({
-            taskId: list.taskId,
+            taskId: this.aduitlist.taskId,
             approved: true,
             auditMind: '34',
             needReapply: false,
@@ -877,6 +939,9 @@ dialogImageUrl:"",
       })
         .toPromise()
         .then(response => {
+          for(var i=0;i<response.records.length;i++){
+            response.records[i].basischange=false
+          }
           this.warehouseList = response
         })
         //包装方式
@@ -1345,6 +1410,9 @@ hr {
  width: 66%; 
   margin-left: 9%;
 }
+/deep/.closeposition .el-form-item__label{
+  width:160px;
+}
 .customer .el-form-item{
 border-bottom:1px solid #ccc;
 }

+ 97 - 0
src/views/salesManagement/component/routers/route.js

@@ -0,0 +1,97 @@
+import Layout from '@/layout/index';
+
+const purchasingManagementRouter = {
+  path: '/salesManagement',
+  component: Layout,
+  redirect: '/salesManagement',
+  name: 'salesManagement',
+  alwaysShow: true, // will always show the root menu
+  meta: {
+    title: 'salesManagement',
+    module: 'contractManagement',
+    icon: '-caigouyewuguanli'
+  },
+  children: [
+      // 销售计划列表
+    {
+      path: 'salesPlanList',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/salesManagement/salesPlanList'),
+      name: 'salesPlanList',
+      meta: {
+        title: 'salesPlanList',
+        shortcutEntrance: 'salesManagement',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      }
+    },
+    // // 销售计划添加
+    {
+      path: 'salesPlanAdd',
+      component: () =>
+        import(/* webpackChunkName: "sparepartList" */ '@/views/salesManagement/salesPlanAdd'),
+      name: 'salesPlanAdd',
+      meta: {
+        title: 'salesPlanAdd',
+        shortcutEntrance: 'salesManagement',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+      },
+      hidden: true
+    },
+    // //销售修改
+    {
+      path: 'salesPlanEdit',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/salesManagement/salesPlanEdit'),
+      name: 'salesPlanEdit',
+      meta: {
+        title: 'salesPlanEdit',
+        shortcutEntrance: 'salesManagement',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
+    {
+      path: 'salesPlanLook',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/salesManagement/salesPlanLook'),
+      name: 'salesPlanLook',
+      meta: {
+        title: 'salesPlanLook',
+        shortcutEntrance: 'salesManagement',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
+    //销售订单列表
+    {
+      path: 'salesOrderList',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/salesManagement/salesPlanOrderList'),
+      name: 'salesOrderList',
+      meta: {
+        title: 'salesOrderList',
+        shortcutEntrance: 'salesManagement',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+    //   hidden: true
+    },
+   
+  ],
+
+};
+
+export default purchasingManagementRouter;

+ 751 - 0
src/views/salesManagement/salesPlanAdd.vue

@@ -0,0 +1,751 @@
+// 创建销售计划
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="12">
+        <h2 class="bg-left title">创建销售计划</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right">
+        <el-button class="bg-bottom" type="primary" size="small" @click="returnsales()">
+          <img
+            width="6"
+            height="10"
+            style="vertical-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt
+          />返回
+        </el-button>
+      </el-col>
+    </el-row>
+    <div class="basicInformation">
+      <el-radio-group @change="tasktypechange" v-model="dataList.taskTypeKey"></el-radio-group>
+      <div class="center1">
+        <div class="small-title">
+          <h3>基本信息</h3>
+        </div>
+        <el-form ref="dataList" :model="dataList" label-width="140px">
+          <!-- 标题 -->
+          <el-form-item label="标题" span="1">
+            <el-input v-model="dataList.warehouseName" maxlength="16" placeholder="请输入标题,不超过16个字" />
+          </el-form-item>
+          <!-- 货名 -->
+          <el-form-item label="货名" span="1">
+            <el-select v-model="dataList.inOutType" class="typeselect" placeholder="请选择货名" />
+          </el-form-item>
+          <!-- 计划销售量(吨) -->
+          <el-form-item label="计划销售量(吨)" span="1">
+            <el-input v-model="dataList.contractNo" class="typeselect" placeholder="请输入计划销售量" />
+          </el-form-item>
+          <!-- 最小成交量 -->
+          <el-form-item label="最小成交量(吨)" span="1">
+            <el-input v-model="dataList.goodsName" placeholder="请输入最小成交量" />
+          </el-form-item>
+          <!--类型-->
+          <el-form-item label="类型" span="1">
+            <el-select v-model="dataList.weight" maxlength="120" placeholder="请选择类型" />
+          </el-form-item>
+          <!-- 价格类型 -->
+          <el-form-item label="价格类型" span="1">
+            <el-input v-model="dataList.grade" placeholder="请输入价格类型"   />
+          </el-form-item>
+          <!-- 基差 -->
+          <el-form-item label="基差(元/吨)" span="1">
+            <el-input v-model="dataList.grade" placeholder="请输入基差" />
+          </el-form-item>
+          <!--销售价格(元)-->
+          <el-form-item label="销售价格(元)" span="1">
+            <el-input
+              v-model="dataList.bulkDensity"
+              maxlength="120"
+              size="small"
+              placeholder="请输入销售价格"
+            />
+          </el-form-item>
+          <!--出货库-->
+          <el-form-item label="出货库" span="1">
+            <el-select
+              v-model="dataList.waterContent"
+              maxlength="120"
+              size="small"
+              placeholder="请选择出货库"
+            />
+          </el-form-item>
+          <!--出货库所在地区-->
+          <el-form-item label="出货库所在地区" span="1">
+            <el-select
+              v-model="dataList.unitPrice"
+              maxlength="120"
+              size="small"
+              placeholder="请选择出货库说在地区"
+            />
+          </el-form-item>
+          <!--运费承担方-->
+          <el-form-item label="运费承担方" span="1">
+            <el-select
+              v-model="dataList.unitPrice"
+              maxlength="120"
+              size="small"
+              placeholder="请选择运费承担方"
+            />
+          </el-form-item>
+          <!--包装方式-->
+          <el-form-item label="包装方式" span="1">
+            <el-select
+              v-model="dataList.agent"
+              filterable
+              :filter-method="dataFilter"
+              placeholder="请选择包装方式"
+            ></el-select>
+          </el-form-item>
+          <!--装袋备注=-->
+          <el-form-item label="装袋备注" span="1">
+            <el-input
+              v-model="dataList.businessDescribe"
+              size="small"
+              placeholder="请输入装袋要求如:98斤,王中王彩袋"
+            />
+          </el-form-item>
+          <!-- 卖方 -->
+          <el-form-item label="卖方" span="1">
+            <el-input
+              v-model="dataList.unitPrice"
+              maxlength="120"
+              size="small"
+              placeholder="请输入卖方名称"
+            />
+          </el-form-item>
+          <!-- 卖方电话 -->
+          <el-form-item label="卖方电话" span="1">
+            <el-input
+              v-model="dataList.agent"
+              filterable
+              :filter-method="dataFilter"
+              placeholder="请输入卖方电话"
+            ></el-input>
+          </el-form-item>
+          <div class="small-title"></div>
+        </el-form>
+      </div>
+      <div class="center1">
+        <div class="small-title">
+          <h3>货物要求</h3>
+        </div>
+        <el-form ref="dataList" :model="dataList" label-width="140px">
+          <el-form-item label="水分(%)<=" span="1">
+            <el-input v-model="dataList.warehouseName" class="typeselect" placeholder="请输入水分占比" />
+          </el-form-item>
+
+          <!-- 容重 -->
+          <el-form-item label="容重(g/l)<=" span="1">
+            <el-input v-model="dataList.warehouseName" class="typeselect" placeholder="请输入容重" />
+          </el-form-item>
+          <!-- 热损伤 -->
+          <el-form-item label="热损伤(%)<=" span="1">
+            <el-input v-model="dataList.inOutType" class="typeselect" placeholder="请输入热损伤占比" />
+          </el-form-item>
+          <!-- 杂质 -->
+          <el-form-item label="杂质(%)<=" span="1">
+            <el-input v-model="dataList.contractNo" class="typeselect" placeholder="请输入杂质占比" />
+          </el-form-item>
+          <!-- 霉变粒 -->
+          <el-form-item label="霉变粒(%)<=" span="1">
+            <el-input v-model="dataList.goodsName" placeholder="请输入霉变粒占比" />
+          </el-form-item>
+          <!--不完善粒(%)<=-->
+          <el-form-item label="不完善粒(%)<=" span="1">
+            <el-input v-model="dataList.weight" maxlength="120" placeholder="请输入不完善粒占比" />
+          </el-form-item>
+          <!-- 蛋白(%)<= -->
+          <el-form-item label="蛋白(%)<=" span="1">
+            <el-input v-model="dataList.grade" class="typeselect" placeholder="请输入蛋白占比" />
+          </el-form-item>
+          <!--粒型-->
+          <el-form-item label="粒型" span="1">
+            <el-select
+              v-model="dataList.bulkDensity"
+              maxlength="120"
+              size="small"
+              placeholder="请选择粒型"
+            />
+          </el-form-item>
+          <!--品级-->
+          <el-form-item label="品级" span="1">
+            <el-select
+              v-model="dataList.waterContent"
+              maxlength="120"
+              size="small"
+              placeholder="请选择品级"
+            />
+          </el-form-item>
+          <!--产地-->
+          <el-form-item label="产地" span="1">
+            <el-select
+              v-model="dataList.unitPrice"
+              maxlength="120"
+              size="small"
+              placeholder="请选择产地"
+            />
+          </el-form-item>
+          <!--产出年份-->
+          <el-form-item label="产出年份" span="1">
+            <el-select v-model="dataList.unitPrice" size="small" placeholder="请选择年份" />
+          </el-form-item>
+        </el-form>
+      </div>
+    </div>
+    <!-- 提交 -->
+    <div style="text-align: right; padding: 10px" class="center">
+      <el-button class="bg-bottom" type="primary" size="small" @click="submit()">提交</el-button>
+    </div>
+  </div>
+</template>
+<script>
+import {
+  getwarehousename,
+  xialaNo,
+  addoreditoutput,
+  outexamine
+} from '@/model/tasksport/index'
+import { packList } from '@/model/contarct/index'
+import { pullDown, getstaff } from '@/model/warehouse/index'
+import { downloadFile } from '@/utils/batchDown'
+import Pagination from '@/components/Pagination'
+import { mapActions, mapGetters, mapState } from 'vuex'
+import WsUpload from '@/components/WsUpload'
+// import { dayjs, fmoney, EventBus } from 'base-core-lib'
+import { dayjs, EventBus } from 'base-core-lib'
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+    Pagination
+  },
+  watch: {
+    // vesselId(val) {
+    //   this.getList()
+    // },
+    isShow(val) {
+      this.showType = val
+    }
+  },
+  computed: {
+    ...mapGetters(['deptBudgetList'])
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      contractNoList: [],
+      deptBudgetTotal: 0,
+      readonly: true,
+      currentPage: 1,
+      pageSize: 10,
+      searchType: 1,
+      searchKeyWord: '',
+      radio: '1',
+      contractType: 2,
+      startDate: null,
+      endDate: null,
+      goodnameList: [],
+      checked: true,
+      form: {},
+
+      staffList: [],
+      options: [],
+      storageType: [],
+      storageType1: [],
+      outContractNo: [],
+      // 提交类型
+      submitType: true,
+      status: [],
+      unitPricechange: [],
+      warehouseNameList: [],
+      warehouseNameList1: [],
+      waterContentchange: [],
+      appendixIdsAdd: '',
+      uploadSuccess: {},
+      warehouseInOutDetail: {},
+      onChange: {},
+      deptBudgetList1: [],
+      gradeList: [],
+      rules: {
+        netWeight: [
+          {
+            required: true,
+            type: 'number',
+            message: '请输入活动名称',
+            trigger: 'blur'
+          }
+        ]
+      },
+      size: 10,
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      packtypeList: {},
+      date: {
+        year: dayjs().format('YYYY'),
+        month: dayjs().format('MM')
+      },
+      contractList: [],
+      inOutTaskNo: '',
+      inOutTaskNo1: '',
+      dataList: { taskTypeKey: '1' },
+      dataList1: { taskTypeKey: '1' },
+      historyList: [],
+      pickerBeginDateBefore: {
+        disabledDate: time => {
+          return time.getTime() > Date.now()
+        }
+      },
+      accessoryTFs: false
+    }
+  },
+  mounted() {
+    this.getList()
+  },
+  methods: {
+    //返回按钮
+    revert() {
+      this.$router.go(-1)
+    },
+    returnsales() {
+      this.$router.push({ path: 'salesPlanList' })
+    },
+    // 获取当前年月日
+    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 year + mouth + datetime
+    },
+    // 随机验证码
+    verifyinit() {
+      var arr = []
+      for (var i = 48; i < 123; i++) {
+        if (i > 57 && i < 65) continue
+        if (i > 90 && i < 97) continue
+        arr.push(String.fromCharCode(i))
+      }
+      arr.sort(function() {
+        return Math.random() - 0.5
+      })
+      arr.length = 4
+
+      return arr.join('')
+    },
+    dataFilter(val) {
+      // console.log(val,"名")
+      this.deptBudgetList.staffList = val
+      if (val) {
+        //val存在
+        this.options = this.staffList.filter(item => {
+          if (
+            !!~item.staffName.indexOf(val) ||
+            !!~item.staffName.toUpperCase().indexOf(val.toUpperCase())
+          ) {
+            return true
+          }
+        })
+      } else {
+        //val为空时,还原数组
+        this.options = this.staffList
+      }
+    },
+    selectstaff(e) {
+      for (var i = 0; i < this.staffList.length; i++) {
+        if (this.staffList[i].staffName == e) {
+          this.dataList.agentKey = this.staffList[i].staffId
+        }
+      }
+    },
+    selectstaff1(e) {
+      for (var i = 0; i < this.staffList.length; i++) {
+        if (this.staffList[i].staffName == e) {
+          this.dataList1.agentKey = this.staffList[i].staffId
+        }
+      }
+    },
+    requestadd(list, status) {
+      this.$refs.dataList.validate(valid => {
+        if (valid) {
+          list.compId = sessionStorage.getItem('ws-pf_compId')
+          list.publisher =
+            sessionStorage.getItem('ws-pf_roleName') +
+            sessionStorage.getItem('ws-pf_staffName')
+          addoreditoutput(list)
+            .toPromise()
+            .then(response => {
+              this.$message.success('添加成功')
+              this.$router.push({ path: 'salesPlanList' })
+            })
+        } else {
+          EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+          return false
+        }
+      })
+    },
+    //关闭
+    close() {
+      this.$router.push({ path: 'salesPlanList' })
+    },
+    //提交按钮
+    // submit() {
+    //   if (this.dataList.taskTypeKey == 1) {
+    //     this.dataList.inOutTaskNo = this.inOutTaskNo
+    //     this.requestadd(this.dataList)
+    //   } else if (this.dataList.taskTypeKey == 2) {
+    //     this.dataList.inOutTaskNo = this.inOutTaskNo1
+    //     this.requestadd(this.dataList)
+    //   } else if (
+    //     this.dataList.taskTypeKey == 3 ||
+    //     this.dataList.taskTypeKey == 4
+    //   ) {
+    //     this.dataList.inOutTaskNo = this.inOutTaskNo
+    //     this.dataList.relevanceId = this.GetRandomNum(100000, 999999)
+    //     this.requestadd(this.dataList, 'repetition')
+    //     this.dataList1.inOutTaskNo = this.inOutTaskNo1
+    //     this.dataList1.relevanceId = this.dataList.relevanceId
+    //     this.requestadd(this.dataList1, 'repetition')
+    //   }
+    // },
+    selectwarehouseName() {},
+    tarechange(e) {
+      if (this.dataList.grossWeight && this.dataList.tare) {
+        this.dataList.netWeight = Number(
+          this.dataList.grossWeight - this.dataList.tare
+        )
+      }
+    },
+    grossWeightchange(e) {
+      if (this.dataList.grossWeight && this.dataList.tare) {
+        this.dataList.netWeight = Number(
+          this.dataList.grossWeight - this.dataList.tare
+        )
+      }
+    },
+    selectgoodsName(e) {
+      for (var i = 0; i < this.goodnameList.length; i++) {
+        if (this.goodnameList[i].constValue == e) {
+          this.dataList.goodsNameKey = this.goodnameList[i].constKey
+        }
+      }
+    },
+    selectgoodsName1(e) {
+      for (var i = 0; i < this.goodnameList.length; i++) {
+        if (this.goodnameList[i].constValue == e) {
+          this.dataList1.goodsNameKey = this.goodnameList[i].constKey
+        }
+      }
+    },
+    selectpackingMethod(e) {
+      for (var i = 0; i < this.packtypeList.length; i++) {
+        if (this.packtypeList[i].constValue == e) {
+          this.dataList.packingMethodKey = this.packtypeList[i].constKey
+        }
+      }
+    },
+    selectpackingMethod1(e) {
+      for (var i = 0; i < this.packtypeList.length; i++) {
+        if (this.packtypeList[i].constValue == e) {
+          this.dataList1.packingMethodKey = this.packtypeList[i].constKey
+        }
+      }
+    },
+    selectstorageType(e) {
+      for (var i = 0; i < this.storageType.length; i++) {
+        if (this.storageType[i].constValue == e) {
+          this.dataList.inOutTypeKey = this.storageType[i].constKey
+        }
+      }
+    },
+    selectstorageType1(e) {
+      for (var i = 0; i < this.storageType1.length; i++) {
+        if (this.storageType1[i].constValue == e) {
+          this.dataList1.inOutTypeKey = this.storageType[i].constKey
+        }
+      }
+    },
+    handleClose() {
+      this.accessoryTFs = false
+    },
+    tasktypechange() {
+      this.tasknumber()
+    },
+    GetRandomNum(Min, Max) {
+      var Range = Max - Min
+      var Rand = Math.random()
+      return Min + Math.round(Rand * Range)
+    },
+    getList() {
+      outexamine({ relevanceId: this.$route.query.relevanceId })
+        .toPromise()
+        .then(response => {
+          if (response.length > 1) {
+            this.dataList = response[0]
+            this.dataList1 = response[1]
+          } else {
+            console.log(response[0].taskTypeKey)
+            if (response[0].taskTypeKey == 2) {
+              this.dataList1 = response[0]
+            } else {
+              this.dataList = response[0]
+            }
+          }
+        })
+    },
+
+    // deletecontract(){},
+    //删除
+    approve() {},
+    listQuery() {},
+    total() {},
+    clearfiltQuery() {},
+    selectCrtDuty() {}
+  }
+}
+</script>
+<style lang="scss" scoped>
+/deep/.basicInformation {
+  .el-info-table {
+    border: none;
+    position: relative;
+  }
+  .el-form-item {
+    width: 33.3333%;
+    border: none;
+    margin: 0;
+    .el-form-item__label {
+      text-align: left;
+      font-size: 14px;
+      font-family: PingFangSC-Regular, PingFang SC;
+      font-weight: 400;
+      color: #8890b1;
+    }
+    .el-form-item__content {
+      padding-left: 0px;
+      padding-right: 10px;
+      // background: #fff;
+      white-space: nowrap;
+      height: 40px;
+      display: flex;
+      -webkit-box-align: center;
+      align-items: center;
+      text-align: left;
+      overflow: hidden;
+    }
+  }
+}
+/deep/.el-radio {
+  color: #606266;
+  font-weight: 500;
+  line-height: 1;
+  cursor: pointer;
+  white-space: nowrap;
+  outline: 0;
+  margin-right: 30px;
+  margin-top: 15px;
+}
+/deep/.el-radio__inner {
+  border: 1px solid #dcdfe6;
+  border-radius: 100%;
+  width: 14px;
+  height: 14px;
+  background-color: #fff;
+  cursor: pointer;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  margin-left: 100px;
+}
+/deep/.el-radio__input {
+  white-space: nowrap;
+  cursor: pointer;
+  outline: 0;
+  line-height: 1;
+  vertical-align: middle;
+  margin-top: -1px;
+}
+.title {
+  position: relative;
+  padding-left: 10px;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-form {
+  padding: 0 15%;
+  display: flex;
+  flex-wrap: wrap;
+  margin-left: -50px;
+  margin-top: 15px;
+  width: 110%;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
+.bg-right {
+  text-align: right;
+  padding: 16px 20px;
+}
+.center {
+  position: relative;
+  top: 50px;
+  width: 40%;
+  height: 2000px;
+  margin: 0 auto;
+  margin-right: 180px;
+}
+/deep/.el-form-item__label {
+  width: 160px;
+}
+.inspector {
+  width: 50%;
+}
+/deep/.el-form-item--small .el-form-item__label,
+.el-form-item--small .el-form-item__content {
+  text-align: left;
+}
+/deep/.el-input--small {
+  font-size: 13px;
+  position: relative;
+  display: inline-block;
+}
+.center1 .small-title {
+  margin-left: 323px;
+}
+.center1 {
+  width: 90%;
+  margin: 0 auto;
+  margin-left: 10px;
+  margin-top: 25px;
+}
+/deep/.el-input--small .el-input__inner {
+  height: 32px;
+  line-height: 32px;
+}
+/deep/.el-select {
+  display: inline-block;
+  position: relative;
+  width: 100%;
+}
+.annu {
+  height: 81px;
+  background: #ffffff;
+  border-radius: 4px;
+}
+.basicInformation .el-form-item {
+  width: 50.3333%;
+  border: none;
+  margin: 0;
+}
+.el-form {
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+  margin-left: 130px;
+}
+.a {
+  margin-left: -32px;
+}
+.el-radio-group {
+  margin-left: 80px;
+}
+.ding {
+  height: 23px;
+  background: #e8ecf6;
+  box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.1);
+}
+.nav2 {
+  height: 25px;
+  background: #e8ecf6;
+  margin-top: 15px;
+}
+.ziti {
+  width: 72px;
+  height: 20px;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 20px;
+  margin-left: 314px;
+  /* margin-top: 112px; */
+}
+/deep/.ziti1 {
+  height: 40px;
+  font-size: 16px;
+  font-family: PingFangSC-Medium, PingFang SC;
+  font-weight: 500;
+  color: #262626;
+  line-height: 20px;
+  margin-left: 381px;
+  margin-top: -21px;
+  width: 100px;
+}
+.winseaview-view {
+  padding: 0 0 20px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+/deep/.basicInformation .el-form-item .el-form-item__content {
+  padding-left: 0px;
+  padding-right: 10px;
+  white-space: nowrap;
+  height: 40px;
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: center;
+  -ms-flex-align: center;
+  align-items: center;
+  text-align: left;
+  overflow: hidden;
+  font-size: 12px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #232323;
+  line-height: 14px;
+}
+.nav {
+  width: 400px;
+  height: 20px;
+}
+.readonly :after {
+  content: '*';
+  color: #ff2727;
+  position: absolute;
+  right: 8px;
+  z-index: 10;
+  top: 21%;
+  font-size: 20px;
+}
+</style>

+ 756 - 0
src/views/salesManagement/salesPlanEdit.vue

@@ -0,0 +1,756 @@
+// 编辑销售计划
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="12">
+        <h2 class="bg-left title">编辑销售计划</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right">
+        <el-button class="bg-bottom" type="primary" size="small" @click="returnsales()">
+          <img
+            width="6"
+            height="10"
+            style="vertical-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt
+          />返回
+        </el-button>
+      </el-col>
+    </el-row>
+    <div class="basicInformation">
+      <el-radio-group @change="tasktypechange" v-model="dataList.taskTypeKey"></el-radio-group>
+      <div class="center1">
+        <div class="small-title">
+          <h3>基本信息</h3>
+        </div>
+        <el-form ref="dataList" :model="dataList" label-width="140px">
+          <!-- 标题 -->
+          <el-form-item label="标题" span="1">
+            <el-input v-model="dataList.warehouseName" maxlength="16" placeholder="请输入标题,不超过16个字" />
+          </el-form-item>
+          <!-- 货名 -->
+          <el-form-item label="货名" span="1">
+            <el-select
+              v-model="dataList.inOutType"
+              class="typeselect"
+              placeholder="请选择货名"
+              disabled
+            />
+          </el-form-item>
+          <!-- 计划销售量(吨) -->
+          <el-form-item label="计划销售量(吨)" span="1">
+            <el-input v-model="dataList.contractNo" class="typeselect" placeholder="请输入销售量" />
+          </el-form-item>
+          <!-- 最小成交量 -->
+          <el-form-item label="最小成交量(吨)" span="1">
+            <el-input v-model="dataList.goodsName" placeholder="请输入最小成交量" />
+          </el-form-item>
+          <!--类型-->
+          <el-form-item label="类型" span="1">
+            <el-select v-model="dataList.weight" maxlength="120" placeholder="请选择类型" disabled />
+          </el-form-item>
+          <!-- 价格类型 -->
+          <el-form-item label="价格类型" span="1">
+            <el-input v-model="dataList.grade" placeholder="请输入价格类型" disabled />
+          </el-form-item>
+          <!-- 基差 -->
+          <el-form-item label="基差(元/吨)" span="1">
+            <el-input v-model="dataList.grade" placeholder="请输入基差" />
+          </el-form-item>
+          <!--销售价格(元)-->
+          <el-form-item label="销售价格(元)" span="1">
+            <el-input
+              v-model="dataList.bulkDensity"
+              maxlength="120"
+              size="small"
+              placeholder="请输入销售价格"
+            />
+          </el-form-item>
+          <!--出货库-->
+          <el-form-item label="出货库" span="1">
+            <el-select
+              v-model="dataList.waterContent"
+              maxlength="120"
+              size="small"
+              placeholder="请选择出货库"
+            />
+          </el-form-item>
+          <!--出货库所在地区-->
+          <el-form-item label="出货库所在地区" span="1">
+            <el-select
+              v-model="dataList.unitPrice"
+              maxlength="120"
+              size="small"
+              placeholder="请选择出货库所在地区"
+            />
+          </el-form-item>
+          <!--运费承担方-->
+          <el-form-item label="运费承担方" span="1">
+            <el-select
+              v-model="dataList.unitPrice"
+              maxlength="120"
+              size="small"
+              placeholder="请选择运费承担方"
+            />
+          </el-form-item>
+          <!--包装方式-->
+          <el-form-item label="包装方式" span="1">
+            <el-select
+              v-model="dataList.agent"
+              filterable
+              :filter-method="dataFilter"
+              placeholder="请选择包装方式"
+            ></el-select>
+          </el-form-item>
+          <!--装袋备注=-->
+          <el-form-item label="装袋备注" span="1">
+            <el-input
+              v-model="dataList.businessDescribe"
+              size="small"
+              placeholder="请输入装袋要求如:98斤,王中王彩袋"
+            />
+          </el-form-item>
+          <!-- 卖方 -->
+          <el-form-item label="卖方" span="1">
+            <el-input
+              v-model="dataList.unitPrice"
+              maxlength="120"
+              size="small"
+              placeholder="请输入卖方名称"
+            />
+          </el-form-item>
+          <!-- 卖方电话 -->
+          <el-form-item label="卖方电话" span="1">
+            <el-input
+              v-model="dataList.agent"
+              filterable
+              :filter-method="dataFilter"
+              placeholder="请输入卖方电话"
+            ></el-input>
+          </el-form-item>
+          <div class="small-title"></div>
+        </el-form>
+      </div>
+      <div class="center1">
+        <div class="small-title">
+          <h3>货物要求</h3>
+        </div>
+        <el-form ref="dataList" :model="dataList" label-width="140px">
+          <el-form-item label="水分(%)<=" span="1">
+            <el-input v-model="dataList.warehouseName" class="typeselect" placeholder="请输入水分占比" />
+          </el-form-item>
+
+          <!-- 容重 -->
+          <el-form-item label="容重(g/l)<=" span="1">
+            <el-input v-model="dataList.warehouseName" class="typeselect" placeholder="请输入容重" />
+          </el-form-item>
+          <!-- 热损伤 -->
+          <el-form-item label="热损伤(%)<=" span="1">
+            <el-input v-model="dataList.inOutType" class="typeselect" placeholder="请输入热损伤占比" />
+          </el-form-item>
+          <!-- 杂质 -->
+          <el-form-item label="杂质(%)<=" span="1">
+            <el-input v-model="dataList.contractNo" class="typeselect" placeholder="请输入杂质占比" />
+          </el-form-item>
+          <!-- 霉变粒 -->
+          <el-form-item label="霉变粒(%)<=" span="1">
+            <el-input v-model="dataList.goodsName" placeholder="请输入霉变粒占比" />
+          </el-form-item>
+          <!--不完善粒(%)<=-->
+          <el-form-item label="不完善粒(%)<=" span="1">
+            <el-input v-model="dataList.weight" maxlength="120" placeholder="请输入不完善粒占比" />
+          </el-form-item>
+          <!-- 蛋白(%)<= -->
+          <el-form-item label="蛋白(%)<=" span="1">
+            <el-input v-model="dataList.grade" class="typeselect" placeholder="请输入蛋白占比" />
+          </el-form-item>
+          <!--粒型-->
+          <el-form-item label="粒型" span="1">
+            <el-select
+              v-model="dataList.bulkDensity"
+              maxlength="120"
+              size="small"
+              placeholder="请选择粒型"
+            />
+          </el-form-item>
+          <!--品级-->
+          <el-form-item label="品级" span="1">
+            <el-select
+              v-model="dataList.waterContent"
+              maxlength="120"
+              size="small"
+              placeholder="请选择品级"
+            />
+          </el-form-item>
+          <!--产地-->
+          <el-form-item label="产地" span="1">
+            <el-select
+              v-model="dataList.unitPrice"
+              maxlength="120"
+              size="small"
+              placeholder="请选择产地"
+            />
+          </el-form-item>
+          <!--产出年份-->
+          <el-form-item label="产出年份" span="1">
+            <el-select v-model="dataList.unitPrice" size="small" placeholder="请选择年份" />
+          </el-form-item>
+        </el-form>
+      </div>
+    </div>
+    <!-- 提交 -->
+    <div style="text-align: right; padding: 10px" class="center">
+      <el-button class="bg-bottom" type="primary" size="small" @click="submit()">提交</el-button>
+    </div>
+  </div>
+</template>
+<script>
+import {
+  getwarehousename,
+  xialaNo,
+  addoreditoutput,
+  outexamine
+} from '@/model/tasksport/index'
+import { packList } from '@/model/contarct/index'
+import { pullDown, getstaff } from '@/model/warehouse/index'
+import { downloadFile } from '@/utils/batchDown'
+import Pagination from '@/components/Pagination'
+import { mapActions, mapGetters, mapState } from 'vuex'
+import WsUpload from '@/components/WsUpload'
+// import { dayjs, fmoney, EventBus } from 'base-core-lib'
+import { dayjs, EventBus } from 'base-core-lib'
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+    Pagination
+  },
+  watch: {
+    // vesselId(val) {
+    //   this.getList()
+    // },
+    isShow(val) {
+      this.showType = val
+    }
+  },
+  computed: {
+    ...mapGetters(['deptBudgetList'])
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      contractNoList: [],
+      deptBudgetTotal: 0,
+      readonly: true,
+      currentPage: 1,
+      pageSize: 10,
+      searchType: 1,
+      searchKeyWord: '',
+      radio: '1',
+      contractType: 2,
+      startDate: null,
+      endDate: null,
+      goodnameList: [],
+      checked: true,
+      form: {},
+
+      staffList: [],
+      options: [],
+      storageType: [],
+      storageType1: [],
+      outContractNo: [],
+      // 提交类型
+      submitType: true,
+      status: [],
+      unitPricechange: [],
+      warehouseNameList: [],
+      warehouseNameList1: [],
+      waterContentchange: [],
+      appendixIdsAdd: '',
+      uploadSuccess: {},
+      warehouseInOutDetail: {},
+      onChange: {},
+      deptBudgetList1: [],
+      gradeList: [],
+      rules: {
+        netWeight: [
+          {
+            required: true,
+            type: 'number',
+            message: '请输入活动名称',
+            trigger: 'blur'
+          }
+        ]
+      },
+      size: 10,
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      packtypeList: {},
+      date: {
+        year: dayjs().format('YYYY'),
+        month: dayjs().format('MM')
+      },
+      contractList: [],
+      inOutTaskNo: '',
+      inOutTaskNo1: '',
+      dataList: { taskTypeKey: '1' },
+      dataList1: { taskTypeKey: '1' },
+      historyList: [],
+      pickerBeginDateBefore: {
+        disabledDate: time => {
+          return time.getTime() > Date.now()
+        }
+      },
+      accessoryTFs: false
+    }
+  },
+  mounted() {
+    this.getList()
+  },
+  methods: {
+    //返回按钮
+    revert() {
+      this.$router.go(-1)
+    },
+    returnsales() {
+      this.$router.push({ path: 'salesPlanList' })
+    },
+    // 获取当前年月日
+    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 year + mouth + datetime
+    },
+    // 随机验证码
+    verifyinit() {
+      var arr = []
+      for (var i = 48; i < 123; i++) {
+        if (i > 57 && i < 65) continue
+        if (i > 90 && i < 97) continue
+        arr.push(String.fromCharCode(i))
+      }
+      arr.sort(function() {
+        return Math.random() - 0.5
+      })
+      arr.length = 4
+
+      return arr.join('')
+    },
+    dataFilter(val) {
+      // console.log(val,"名")
+      this.deptBudgetList.staffList = val
+      if (val) {
+        //val存在
+        this.options = this.staffList.filter(item => {
+          if (
+            !!~item.staffName.indexOf(val) ||
+            !!~item.staffName.toUpperCase().indexOf(val.toUpperCase())
+          ) {
+            return true
+          }
+        })
+      } else {
+        //val为空时,还原数组
+        this.options = this.staffList
+      }
+    },
+    selectstaff(e) {
+      for (var i = 0; i < this.staffList.length; i++) {
+        if (this.staffList[i].staffName == e) {
+          this.dataList.agentKey = this.staffList[i].staffId
+        }
+      }
+    },
+    selectstaff1(e) {
+      for (var i = 0; i < this.staffList.length; i++) {
+        if (this.staffList[i].staffName == e) {
+          this.dataList1.agentKey = this.staffList[i].staffId
+        }
+      }
+    },
+    requestadd(list, status) {
+      this.$refs.dataList.validate(valid => {
+        if (valid) {
+          list.compId = sessionStorage.getItem('ws-pf_compId')
+          list.publisher =
+            sessionStorage.getItem('ws-pf_roleName') +
+            sessionStorage.getItem('ws-pf_staffName')
+          addoreditoutput(list)
+            .toPromise()
+            .then(response => {
+              this.$message.success('添加成功')
+              this.$router.push({ path: 'tranManagementWarehouseInOutTask' })
+            })
+        } else {
+          EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+          return false
+        }
+      })
+    },
+    //关闭
+    close() {
+      this.$router.push({ path: 'procurementPlanList' })
+    },
+    //提交按钮
+    // submit() {
+    //   if (this.dataList.taskTypeKey == 1) {
+    //     this.dataList.inOutTaskNo = this.inOutTaskNo
+    //     this.requestadd(this.dataList)
+    //   } else if (this.dataList.taskTypeKey == 2) {
+    //     this.dataList.inOutTaskNo = this.inOutTaskNo1
+    //     this.requestadd(this.dataList)
+    //   } else if (
+    //     this.dataList.taskTypeKey == 3 ||
+    //     this.dataList.taskTypeKey == 4
+    //   ) {
+    //     this.dataList.inOutTaskNo = this.inOutTaskNo
+    //     this.dataList.relevanceId = this.GetRandomNum(100000, 999999)
+    //     this.requestadd(this.dataList, 'repetition')
+    //     this.dataList1.inOutTaskNo = this.inOutTaskNo1
+    //     this.dataList1.relevanceId = this.dataList.relevanceId
+    //     this.requestadd(this.dataList1, 'repetition')
+    //   }
+    // },
+    selectwarehouseName() {},
+    tarechange(e) {
+      if (this.dataList.grossWeight && this.dataList.tare) {
+        this.dataList.netWeight = Number(
+          this.dataList.grossWeight - this.dataList.tare
+        )
+      }
+    },
+    grossWeightchange(e) {
+      if (this.dataList.grossWeight && this.dataList.tare) {
+        this.dataList.netWeight = Number(
+          this.dataList.grossWeight - this.dataList.tare
+        )
+      }
+    },
+    selectgoodsName(e) {
+      for (var i = 0; i < this.goodnameList.length; i++) {
+        if (this.goodnameList[i].constValue == e) {
+          this.dataList.goodsNameKey = this.goodnameList[i].constKey
+        }
+      }
+    },
+    selectgoodsName1(e) {
+      for (var i = 0; i < this.goodnameList.length; i++) {
+        if (this.goodnameList[i].constValue == e) {
+          this.dataList1.goodsNameKey = this.goodnameList[i].constKey
+        }
+      }
+    },
+    selectpackingMethod(e) {
+      for (var i = 0; i < this.packtypeList.length; i++) {
+        if (this.packtypeList[i].constValue == e) {
+          this.dataList.packingMethodKey = this.packtypeList[i].constKey
+        }
+      }
+    },
+    selectpackingMethod1(e) {
+      for (var i = 0; i < this.packtypeList.length; i++) {
+        if (this.packtypeList[i].constValue == e) {
+          this.dataList1.packingMethodKey = this.packtypeList[i].constKey
+        }
+      }
+    },
+    selectstorageType(e) {
+      for (var i = 0; i < this.storageType.length; i++) {
+        if (this.storageType[i].constValue == e) {
+          this.dataList.inOutTypeKey = this.storageType[i].constKey
+        }
+      }
+    },
+    selectstorageType1(e) {
+      for (var i = 0; i < this.storageType1.length; i++) {
+        if (this.storageType1[i].constValue == e) {
+          this.dataList1.inOutTypeKey = this.storageType[i].constKey
+        }
+      }
+    },
+    handleClose() {
+      this.accessoryTFs = false
+    },
+    tasktypechange() {
+      this.tasknumber()
+    },
+    GetRandomNum(Min, Max) {
+      var Range = Max - Min
+      var Rand = Math.random()
+      return Min + Math.round(Rand * Range)
+    },
+    getList() {
+      outexamine({ relevanceId: this.$route.query.relevanceId })
+        .toPromise()
+        .then(response => {
+          if (response.length > 1) {
+            this.dataList = response[0]
+            this.dataList1 = response[1]
+          } else {
+            console.log(response[0].taskTypeKey)
+            if (response[0].taskTypeKey == 2) {
+              this.dataList1 = response[0]
+            } else {
+              this.dataList = response[0]
+            }
+          }
+        })
+    },
+
+    // deletecontract(){},
+    //删除
+    approve() {},
+    listQuery() {},
+    total() {},
+    clearfiltQuery() {},
+    selectCrtDuty() {}
+  }
+}
+</script>
+<style lang="scss" scoped>
+/deep/.basicInformation {
+  .el-info-table {
+    border: none;
+    position: relative;
+  }
+  .el-form-item {
+    width: 33.3333%;
+    border: none;
+    margin: 0;
+    .el-form-item__label {
+      text-align: left;
+      font-size: 14px;
+      font-family: PingFangSC-Regular, PingFang SC;
+      font-weight: 400;
+      color: #8890b1;
+    }
+    .el-form-item__content {
+      padding-left: 0px;
+      padding-right: 10px;
+      // background: #fff;
+      white-space: nowrap;
+      height: 40px;
+      display: flex;
+      -webkit-box-align: center;
+      align-items: center;
+      text-align: left;
+      overflow: hidden;
+    }
+  }
+}
+/deep/.el-radio {
+  color: #606266;
+  font-weight: 500;
+  line-height: 1;
+  cursor: pointer;
+  white-space: nowrap;
+  outline: 0;
+  margin-right: 30px;
+  margin-top: 15px;
+}
+/deep/.el-radio__inner {
+  border: 1px solid #dcdfe6;
+  border-radius: 100%;
+  width: 14px;
+  height: 14px;
+  background-color: #fff;
+  cursor: pointer;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  margin-left: 100px;
+}
+/deep/.el-radio__input {
+  white-space: nowrap;
+  cursor: pointer;
+  outline: 0;
+  line-height: 1;
+  vertical-align: middle;
+  margin-top: -1px;
+}
+.title {
+  position: relative;
+  padding-left: 10px;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-form {
+  padding: 0 15%;
+  display: flex;
+  flex-wrap: wrap;
+  margin-left: -50px;
+  margin-top: 15px;
+  width: 110%;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
+.bg-right {
+  text-align: right;
+  padding: 16px 20px;
+}
+.center {
+  position: relative;
+  top: 50px;
+  width: 40%;
+  height: 2000px;
+  margin: 0 auto;
+  margin-right: 180px;
+}
+/deep/.el-form-item__label {
+  width: 160px;
+}
+.inspector {
+  width: 50%;
+}
+/deep/.el-form-item--small .el-form-item__label,
+.el-form-item--small .el-form-item__content {
+  text-align: left;
+}
+/deep/.el-input--small {
+  font-size: 13px;
+  position: relative;
+  display: inline-block;
+}
+.center1 .small-title {
+  margin-left: 323px;
+}
+.center1 {
+  width: 90%;
+  margin: 0 auto;
+  margin-left: 10px;
+  margin-top: 25px;
+}
+/deep/.el-input--small .el-input__inner {
+  height: 32px;
+  line-height: 32px;
+}
+/deep/.el-select {
+  display: inline-block;
+  position: relative;
+  width: 100%;
+}
+.annu {
+  height: 81px;
+  background: #ffffff;
+  border-radius: 4px;
+}
+.basicInformation .el-form-item {
+  width: 50.3333%;
+  border: none;
+  margin: 0;
+}
+.el-form {
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+  margin-left: 130px;
+}
+.a {
+  margin-left: -32px;
+}
+.el-radio-group {
+  margin-left: 80px;
+}
+.ding {
+  height: 23px;
+  background: #e8ecf6;
+  box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.1);
+}
+.nav2 {
+  height: 25px;
+  background: #e8ecf6;
+  margin-top: 15px;
+}
+.ziti {
+  width: 72px;
+  height: 20px;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 20px;
+  margin-left: 314px;
+  /* margin-top: 112px; */
+}
+/deep/.ziti1 {
+  height: 40px;
+  font-size: 16px;
+  font-family: PingFangSC-Medium, PingFang SC;
+  font-weight: 500;
+  color: #262626;
+  line-height: 20px;
+  margin-left: 381px;
+  margin-top: -21px;
+  width: 100px;
+}
+.winseaview-view {
+  padding: 0 0 20px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+/deep/.basicInformation .el-form-item .el-form-item__content {
+  padding-left: 0px;
+  padding-right: 10px;
+  white-space: nowrap;
+  height: 40px;
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: center;
+  -ms-flex-align: center;
+  align-items: center;
+  text-align: left;
+  overflow: hidden;
+  font-size: 12px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #232323;
+  line-height: 14px;
+}
+.nav {
+  width: 400px;
+  height: 20px;
+}
+.readonly :after {
+  content: '*';
+  color: #ff2727;
+  position: absolute;
+  right: 8px;
+  z-index: 10;
+  top: 21%;
+  font-size: 20px;
+}
+</style>

+ 834 - 0
src/views/salesManagement/salesPlanList.vue

@@ -0,0 +1,834 @@
+//销售计划
+<template>
+  <div class="container">
+    <!-- <div> -->
+    <!-- <div>
+      <ws-input
+        v-model="searchKeyWord"
+        placeholder="可按销售计划编号和标题查找"
+        clearable
+        maxlength="500"
+        type="input"
+        class="findValue"
+      ></ws-input>
+      <ws-button class="but" 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>
+    </div> -->
+  
+     <BaseHeaderLayout :leftSpan="10">
+      <template slot="left">  <ws-button type="primary" @click="handleAdd()">添加</ws-button> </template>
+      <!-- 接单开始 -->
+      <template slot="right">
+        <ws-input
+          v-model="searchKeyWord"
+          placeholder="可按销售计划编号和标题查找"
+          clearable
+          maxlength="500"
+          type="input"
+          class="findValue"
+        ></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>
+      </template>
+    </BaseHeaderLayout>
+    <el-table
+      class="wenzi"
+      :data="warehouseList.records"
+      style="width: 100%; margin-top: 20px"
+      height="780"
+    >
+      <el-table-column type="index" label="序号" width="80"></el-table-column>
+      <el-table-column
+        class="table_td"
+        prop="procurementPlanNo"
+        label="销售计划编号"
+      ></el-table-column>
+      <el-table-column
+        class="table_td"
+        prop="title"
+        label="标题"
+      ></el-table-column>
+      <el-table-column
+        class="table_td"
+        prop="goodsName"
+        label="货名"
+      ></el-table-column>
+      <el-table-column
+        class="table_td"
+        prop="plannedPurchaseVolume"
+        label="重量(吨)"
+      ></el-table-column>
+      <el-table-column class="table_td" prop="basisPrice" label="基差(元/吨)">
+        <template slot-scope="scope">
+          <div v-if="scope.row.procurementPlanType == '期货'">
+            <div class="inputChenge">
+              <el-input
+                v-model="scope.row.basisPrice"
+                @change="varietyClick(scope.row)"
+                class="inputs"
+              ></el-input>
+            </div>
+            <img
+              width="17"
+              height="18"
+              style="vertical-align: text-top; position: relative; top: -1px"
+              src="../../../public/img/edit.png"
+              @click="varietyClick(scope.row)"
+              alt=""
+            />
+          </div>
+          <div v-else>—</div>
+        </template>
+      </el-table-column>
+      <el-table-column class="table_td" prop="unitPrice" label="单价(元/吨)">
+        <template slot-scope="scope">
+          <div v-if="scope.row.procurementPlanType == '现货'">
+            <div class="inputChenge">
+              <!-- readonly -->
+              <el-input
+                v-model="scope.row.unitPrice"
+                v-bind:class="inputs"
+                @change="varietyClick(scope.row)"
+              ></el-input>
+            </div>
+            <img
+              width="17"
+              height="18"
+              style="vertical-align: text-top; position: relative; top: -1px"
+              src="../../../public/img/edit.png"
+              @click="varietyClick(scope.row)"
+              alt=""
+            />
+          </div>
+          <div v-else>—</div>
+        </template>
+      </el-table-column>
+      <el-table-column
+        class="table_td"
+        prop="receiveWarehouse"
+        label="出货库"
+      ></el-table-column>
+      <el-table-column prop="status" label="状态">
+        <template slot-scope="scope">
+          <el-popover
+            placement="left"
+            :width="285"
+            trigger="click"
+            visible-arrow="false"
+            @show="history(scope.row)"
+          >
+            <template>
+              <span slot="reference">
+                <span v-if="scope.row.showFlag == 1">
+                  <span class="executory"></span>展示中</span
+                >
+                <span v-if="scope.row.showFlag == 0">
+                  <span class="inExecution"></span>已隐藏</span
+                >
+              </span>
+            </template>
+            <div>
+              <!-- <p style="margin-top: 0; padding-left: 10px">历史记录</p> -->
+              <div
+                v-for="(item, index) in historyList"
+                class="flex"
+                :key="index"
+              >
+                <div class="vertical-text vertical-text-left">
+                  {{ item.updateDate }}
+                </div>
+                <div>
+                  <div class="vertical-circle"></div>
+                  <div
+                    v-if="index != historyList.length - 1"
+                    class="vertical-line"
+                  ></div>
+                </div>
+                <div class="vertical-text">
+                  {{ item.operateUser }}
+                  <br />
+                  {{ item.dealMsg }}
+                </div>
+              </div>
+            </div>
+          </el-popover>
+          <img
+            width="17"
+            height="18"
+            style="vertical-align: text-top; position: relative; top: -1px"
+            src="../../../public/img/edit.png"
+            @click="editClick(scope.row)"
+            alt=""
+          />
+        </template>
+      </el-table-column>
+      <el-table-column
+        class="table_td"
+        label="更新时间"
+        prop="updateDate"
+      ></el-table-column>
+      <el-table-column prop="seller" label="操作" width="300">
+        <template slot-scope="scope">
+          <div class="record" @click="handleLook(scope.row)">查看</div>
+          <div class="record" @click="handleEdit(scope.row)">编辑</div>
+          <div class="record" @click="handleDelete(scope.row)">删除</div>
+        </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>
+  <!-- </div> -->
+</template>
+<script>
+import {
+  procurementPlan,
+  procurementDel,
+  procurementEditOther,
+} from '@/model/purchasingManagement/index'
+import { downloadFile } from '@/utils/batchDown'
+import Pagination from '@/components/Pagination'
+import WsUpload from '@/components/WsUpload'
+import { dayjs, fmoney, EventBus } from 'base-core-lib'
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+    Pagination,
+  },
+  watch: {
+    vesselId(val) {
+      this.getList()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      pickerOptions: {},
+      value2: '',
+      handleSizeChange: '',
+      deptBudgetTotal: 0,
+      currentPage: 1,
+      // tranTypeKey: 1,
+      pageSize: 10,
+      searchType: 1,
+      searchTypeText: '未完成',
+      searchKeyWord: '',
+      contractType: 2,
+      pcFlag: 1,
+      // 提交类型
+      submitType: true,
+      size: 10,
+      spanArr: [],
+      contractNo: '',
+      // inOutTaskNo: '',
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      warehouseList: [],
+      deptBudgetList: {},
+      pcFlag: 1,
+      historyList: [],
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+      inputs: 'inputs1',
+    }
+  },
+  activated() {
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    getList() {
+      procurementPlan({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        currentPage: this.currentPage,
+        pageSize: this.pageSize,
+        contractType: this.contractType,
+        tranTypeKey: this.tranTypeKey,
+        contractNo: this.contractNo,
+        pcFlag: this.pcFlag,
+        searchKeyWord:this.searchKeyWord
+      })
+        .toPromise()
+        .then((response) => {
+          this.warehouseList = response
+        })
+    },
+    statusquery(state) {
+      this.searchType = state
+      this.getList()
+    },
+    //编辑
+    handleEdit(row) {
+      this.$router.push({
+        name: 'salesPlanEdit',
+        query: { id: row.id },
+      })
+    },
+    getSpanArr(data) {
+      let that = this
+
+      //页面展示的数据,不一定是全部的数据,所以每次都清空之前存储的 保证遍历的数据是最新的数据。以免造成数据渲染混乱
+
+      that.spanArr = []
+
+      that.pos = 0
+
+      // //遍历数据
+
+      data.forEach((item, index) => {
+        //判断是否是第一项
+
+        if (index === 0) {
+          this.spanArr.push(1)
+          this.pos = 0
+        } else {
+          //不是第一项时,就根据标识去存储
+          if (data[index].warehouseNumViewList.length > 1) {
+            查找到符合条件的数据时每次要把之前存储的数据 + 1
+            this.spanArr[this.pos] = data[index].warehouseNumViewList.length
+            this.spanArr.push(0)
+          } else {
+            // 没有符合的数据时,要记住当前的index
+            this.spanArr.push(1)
+            this.pos = index
+          }
+        }
+      })
+    },
+    //添加
+    handleAdd() {
+      this.$router.push({
+        name: 'salesPlanAdd',
+      })
+    },
+    //查看
+    handleLook(row) {
+      this.$router.push({
+        name: 'salesPlanLook',
+        query: {
+          id: row.id,
+        },
+      })
+    },
+    handleDelete(row) {
+      var handleDelete = ' '
+      if (row.handleDelete == '') {
+      }
+      this.$confirm(`销售计划删除后不可恢复,是否确定删除?`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning',
+      })
+        .then(() => {
+          procurementDel({ id: row.id })
+            .toPromise()
+            .then((response) => {
+              this.$notify.success({
+                title: '成功',
+                message: '删除成功',
+              })
+              this.getList()
+            })
+            .catch((response) => {
+              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    //返回
+    revert() {
+      this.$router.push({ path: 'warehouseManagementList' })
+    },
+    dateFormat(fmt, date) {
+      let ret
+      const opt = {
+        'Y+': date.getFullYear().toString(), // 年
+        'm+': (date.getMonth() + 1).toString(), // 月
+        'd+': date.getDate().toString(), // 日
+        'H+': date.getHours().toString(), // 时
+        // "M+": date.getMinutes().toString(),         // 分
+        // "S+": date.getSeconds().toString()          // 秒
+        // 有其他格式化字符需求可以继续添加,必须转化成字符串
+      }
+      for (let k in opt) {
+        ret = new RegExp('(' + k + ')').exec(fmt)
+        if (ret) {
+          fmt = fmt.replace(
+            ret[1],
+            ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
+          )
+        }
+      }
+      return fmt
+    },
+    handleClose() {
+      this.accessoryTFs = false
+    },
+    handleSizeChange(val) {
+      console.log(`每页 ${val} 条`)
+      this.pageSize = val
+      this.getList()
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val
+      console.log(`当前页: ${val}`)
+      this.getList()
+    },
+    editClick(row) {
+      var status = ''
+      var num = 1
+      if (row.showFlag == 1) {
+        status = '已隐藏'
+        num = 0
+        this.$confirm(`隐藏后交易信息不 再展示给客户,是否确定隐藏?`, {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning',
+        })
+          .then(() => {
+            procurementEditOther({
+              flag: 0,
+              showFlag: num,
+              id: row.id,
+            })
+              .toPromise()
+              .then((response) => {
+                this.$notify.success({
+                  title: '成功',
+                  message: '状态修改成功',
+                })
+                this.getList()
+              })
+              .catch((response) => {
+                // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      } else if (row.showFlag == 0) {
+        status = '展示中'
+        num = 1
+        this.$confirm(`确定展示交易信息?`, {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning',
+        })
+          .then(() => {
+            procurementEditOther({
+              flag: 0,
+              showFlag: num,
+              id: row.id,
+            })
+              .toPromise()
+              .then((response) => {
+                this.$notify.success({
+                  title: '成功',
+                  message: '状态修改成功',
+                })
+                this.getList()
+              })
+              .catch((response) => {
+                // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      }
+      //cancelButtonClass: "btn-custom-cancel"
+    },
+    selecttaskType(e) {
+      for (var i = 0; i < this.taskTypeList.length; i++) {
+        if (this.taskTypeList[i].value == e) {
+          this.searchType = this.taskTypeList[i].type
+        }
+      }
+    },
+    // fujian(row) {
+    //   if (
+    //     row.receiveAttachmentPath === null ||
+    //     row.receiveAttachmentPath === ''
+    //   ) {
+    //     EventBus.$emit(
+    //       'warning',
+    //       this.$t('system.noticeCircular.NoInformation')
+    //     )
+    //   } else {
+    //     this.accessoryTFs = true
+    //   }
+    //   this.appendixIdss = row.receiveAttachmentPath
+    // },
+    handleExamine(row) {
+      this.$router.push({
+        name: 'salesContractExamine',
+        query: { id: row.id },
+      })
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleCloe() {
+      this.dialogViewSpareMoney = false
+    },
+    history(row) {
+      billoperatehis({ id: row.id })
+        .toPromise()
+        .then((response) => {
+          this.historyList = response
+        })
+    },
+    //查找
+    find() {
+      // this.searchKeyWord = 1
+      this.getList()
+    },
+    async exportlist() {
+      const { data } = await export1(
+        {
+          compId: sessionStorage.getItem('ws-pf_compId'),
+          contractType: this.contractType,
+          currentPage: this.currentPage,
+          pageSize: this.pageSize,
+          searchType: this.searchType,
+          searchKeyWord: this.searchKeyWord,
+          startDate: this.startDate,
+          endDate: this.endDate,
+        },
+        {},
+        { responseType: 'blob' }
+      ).toPromise()
+      downloadFile({
+        res: data,
+        fileName: `${
+          this.date.year + (this.date.month ? `-${this.date.month}` : '')
+        }_销售合同`,
+        type: 'xls',
+      })
+    },
+    varietyClick(row) {
+      if (row.procurementPlanType == '期货') {
+        this.$confirm(`确定要修改基差?`, {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning',
+        })
+          .then(() => {
+            procurementEditOther({
+              flag: 1,
+              basisPrice: row.basisPrice,
+              id: row.id,
+            })
+              .toPromise()
+              .then((response) => {
+                this.$notify.success({
+                  title: '成功',
+                  message: '状态修改成功',
+                })
+                this.getList()
+              })
+              .catch((response) => {
+                // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      } else if (row.procurementPlanType == '现货') {
+        this.$confirm(`确定要修改单价?`, {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning',
+        })
+          .then(() => {
+            procurementEditOther({
+              flag: 2,
+              unitPrice: row.unitPrice,
+              id: row.id,
+            })
+              .toPromise()
+              .then((response) => {
+                this.$notify.success({
+                  title: '成功',
+                  message: '状态修改成功',
+                })
+                this.getList()
+              })
+              .catch((response) => {
+                // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      }
+    },
+  },
+}
+</script>
+<style lang="scss" scoped>
+.connert {
+  width: 90%;
+  margin: 0 auto;
+}
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+//分页
+.el-pagination {
+  padding: 10px 15px;
+  margin-bottom: 0;
+  text-align: center;
+}
+/deep/.el-pager li.active {
+  color: #5878e8;
+  cursor: default;
+}
+/deep/.el-pager li:hover {
+  color: #5878e8;
+  cursor: default;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-button--default {
+  color: #8890b1;
+  border-color: #e8eaf1;
+}
+/deep/.base_header_layout .grid-content.right .find.el-button--primary {
+  width: 30px;
+  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;
+  width: 385px;
+}
+.completed.el-button--default {
+  border-color: #5878e8;
+  background-color: #f6f7fc;
+  color: #5878e8;
+}
+.putstorage.el-button--default,
+.deliverystorage.el-button--default {
+  border-color: #8890b1;
+  background-color: #fff;
+  color: #8890b1;
+}
+/deep/.el-table td,
+/deep/.el-table th.is-leaf {
+  border-right: 1px solid #e9ecf7;
+  text-align: center;
+}
+/deep/.el-table tr td:first-child,
+/deep/.el-table tr th.is-leaf:first-child {
+  border-left: 1px solid #e9ecf7;
+}
+.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;
+}
+.base_header_layout .grid-content {
+  margin-top: 80px;
+}
+.el-input--small .el-input__inner {
+  margin-left: 20px;
+}
+.el-range-editor--small.el-input__inner {
+  height: 32px;
+  margin-left: -20%;
+}
+//执行样式
+.executory,
+.inExecution,
+.done {
+  width: 6px;
+  height: 6px;
+  display: inline-block;
+  border-radius: 50%;
+  position: relative;
+  top: -1px;
+  font-size: 14px;
+}
+.executory {
+  background: #ff9f24;
+  margin-right: 3px;
+}
+.inExecution {
+  background: #5878e8;
+  margin-right: 3px;
+}
+.done {
+  background: #50cad4;
+  margin-right: 3px;
+}
+.record,
+.adjustment {
+  display: inline-block;
+  color: #5878e8;
+  padding: 0 4px !important;
+  position: relative;
+  font-size: 14px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.bg-left {
+  padding-left: 30px;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+  margin-top: 20px;
+}
+//导航条样式
+.el-col-12 {
+  width: 50%;
+  height: 60px;
+  background: #f6f7fc;
+  border-radius: 4px 4px 1px 1px;
+}
+.el-input--small .el-input__inner {
+  height: 32px;
+  line-height: 32px;
+  width: 385px;
+  margin-top: 10px;
+}
+.bg-bottom {
+  margin-left: 85%;
+}
+.but {
+  margin-left: 30%;
+  overflow: auto;
+  margin-left: -10px;
+}
+.el-input--small {
+  font-size: 13px;
+  width: 390px;
+}
+/deep/.el-table .el-table__header .cell,
+.el-table .el-table__body .cell {
+  text-align: center;
+}
+.inputChenge {
+  width: 50%;
+  display: inline-flex;
+}
+.inputs1 {
+  border: none;
+}
+// .inputChenge>>>.el-input__inner{
+// border: none;
+// }
+</style>

+ 684 - 0
src/views/salesManagement/salesPlanLook.vue

@@ -0,0 +1,684 @@
+// 查看销售计划
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="12">
+        <h2 class="bg-left title">查看销售计划</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right">
+        <el-button class="bg-bottom" type="primary" size="small" @click="returnsales()">
+          <img
+            width="6"
+            height="10"
+            style="vertical-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt
+          />返回
+        </el-button>
+      </el-col>
+    </el-row>
+    <div class="basicInformation">
+      <el-radio-group @change="tasktypechange" v-model="dataList.taskTypeKey"></el-radio-group>
+      <div class="center1">
+        <div class="small-title">
+          <h3>基本信息</h3>
+        </div>
+        <el-form ref="dataList" :model="dataList" label-width="140px">
+          <!-- 标题 -->
+          <el-form-item label="标题">
+            <el-input disabled v-model="dataList.warehouseName" class="typeselect"></el-input>
+          </el-form-item>
+          <!-- 货名 -->
+          <el-form-item label="货名">
+            <el-select disabled v-model="dataList.inOutType" class="typeselect"></el-select>
+          </el-form-item>
+          <!-- 计划销售量(吨) -->
+          <el-form-item label="计划销售量(吨)">
+            <el-input disabled v-model="dataList.contractNo" class="typeselect"></el-input>
+          </el-form-item>
+          <!-- 最小成交量(吨) -->
+          <el-form-item label="最小成交量(吨)">
+            <el-input disabled v-model="dataList.goodsName"></el-input>
+          </el-form-item>
+          <!--类型-->
+          <el-form-item label="类型" span="1">
+            <el-select disabled v-model="dataList.weight" maxlength="120" />
+          </el-form-item>
+          <!-- 价格类型 -->
+          <el-form-item label="价格类型">
+            <el-select v-model="dataList.grade" placeholder class="typeselect" disabled></el-select>
+          </el-form-item>
+          <!--销售价格(元)-->
+          <el-form-item label="销售价格(元)">
+            <el-input disabled v-model="dataList.bulkDensity" maxlength="120" size="small" />
+          </el-form-item>
+          <!--出货库-->
+          <el-form-item label="出货库" span="1">
+            <el-select disabled v-model="dataList.waterContent" maxlength="120" size="small" />
+          </el-form-item>
+          <!--出货库所在地区-->
+          <el-form-item label="出货库所在地区" span="1">
+            <el-input disabled v-model="dataList.unitPrice" maxlength="120" size="small" />
+          </el-form-item>
+          <!--运费承担方-->
+          <el-form-item label="运费承担方">
+            <el-input disabled v-model="dataList.unitPrice" maxlength="120" size="small" />
+          </el-form-item>
+          <!--包装方式-->
+          <el-form-item label="包装方式">
+            <el-select disabled v-model="dataList.agent" filterable :filter-method="dataFilter"></el-select>
+          </el-form-item>
+          <!--装袋备注=-->
+          <el-form-item label="装袋备注">
+            <el-input disabled v-model="dataList.businessDescribe" size="small" />
+          </el-form-item>
+          <!-- 卖方 -->
+          <el-form-item label="卖方">
+            <el-input disabled v-model="dataList.unitPrice" maxlength="120" size="small" />
+          </el-form-item>
+          <!-- 卖方电话 -->
+          <el-form-item label="卖方电话">
+            <el-input disabled v-model="dataList.agent" filterable :filter-method="dataFilter"></el-input>
+          </el-form-item>
+          <div class="small-title"></div>
+        </el-form>
+      </div>
+      <div class="center1">
+        <div class="small-title">
+          <h3>货物要求</h3>
+        </div>
+        <el-form ref="dataList" :model="dataList" label-width="140px">
+          <el-form-item label="水分(%)<=">
+            <el-input disabled v-model="dataList.warehouseName" class="typeselect" />
+          </el-form-item>
+
+          <!-- 容重 -->
+          <el-form-item label="容重(g/l)<=">
+            <el-input disabled v-model="dataList.warehouseName" class="typeselect" />
+          </el-form-item>
+          <!-- 热损伤 -->
+          <el-form-item label="热损伤(%)<=">
+            <el-input disabled v-model="dataList.inOutType" class="typeselect" />
+          </el-form-item>
+          <!-- 杂质 -->
+          <el-form-item label="杂质(%)<=">
+            <el-input disabled v-model="dataList.contractNo" class="typeselect" />
+          </el-form-item>
+          <!-- 货名 -->
+          <el-form-item label="霉变粒(%)<=">
+            <el-input disabled v-model="dataList.goodsName" />
+          </el-form-item>
+          <!--不完善粒(%)<=-->
+          <el-form-item label="不完善粒(%)<=" span="1">
+            <el-input disabled v-model="dataList.weight" maxlength="120" />
+          </el-form-item>
+          <!-- 蛋白(%)<= -->
+          <el-form-item label="蛋白(%)<=" span="1">
+            <el-input v-model="dataList.grade" placeholder class="typeselect" disabled />
+          </el-form-item>
+          <!--粒形-->
+          <el-form-item label="粒形" span="1">
+            <el-select disabled v-model="dataList.bulkDensity" maxlength="120" size="small" />
+          </el-form-item>
+          <!--水分(%)<=-->
+          <el-form-item label="品级" span="1">
+            <el-select disabled v-model="dataList.waterContent" maxlength="120" size="small" />
+          </el-form-item>
+          <!--产地-->
+          <el-form-item label="产地" span="1">
+            <el-select disabled v-model="dataList.unitPrice" maxlength="120" size="small" />
+          </el-form-item>
+          <!--产出年份-->
+          <el-form-item label="产出年份" span="1">
+            <el-select v-model="dataList.unitPrice" size="small" disabled />
+          </el-form-item>
+        </el-form>
+      </div>
+    </div>
+    <!-- 关闭 -->
+    <div style="text-align: right; padding: 10px" class="center">
+      <el-button class="bg-bottom" type="primary" size="small" @click="close()">关闭</el-button>
+    </div>
+  </div>
+</template>
+<script>
+import {
+  getwarehousename,
+  xialaNo,
+  addoreditoutput,
+  outexamine
+} from '@/model/tasksport/index'
+import { packList } from '@/model/contarct/index'
+import { pullDown, getstaff } from '@/model/warehouse/index'
+import { downloadFile } from '@/utils/batchDown'
+import Pagination from '@/components/Pagination'
+import { mapActions, mapGetters, mapState } from 'vuex'
+import WsUpload from '@/components/WsUpload'
+// import { dayjs, fmoney, EventBus } from 'base-core-lib'
+import { dayjs, EventBus } from 'base-core-lib'
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+    Pagination
+  },
+  watch: {
+    // vesselId(val) {
+    //   this.getList()
+    // },
+    isShow(val) {
+      this.showType = val
+    }
+  },
+  computed: {
+    ...mapGetters(['deptBudgetList'])
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      contractNoList: [],
+      deptBudgetTotal: 0,
+      readonly: true,
+      currentPage: 1,
+      pageSize: 10,
+      searchType: 1,
+      searchKeyWord: '',
+      radio: '1',
+      contractType: 2,
+      startDate: null,
+      endDate: null,
+      goodnameList: [],
+      checked: true,
+      form: {},
+
+      staffList: [],
+      options: [],
+      storageType: [],
+      storageType1: [],
+      outContractNo: [],
+      // 提交类型
+      submitType: true,
+      status: [],
+      unitPricechange: [],
+      warehouseNameList: [],
+      warehouseNameList1: [],
+      waterContentchange: [],
+      appendixIdsAdd: '',
+      uploadSuccess: {},
+      warehouseInOutDetail: {},
+      onChange: {},
+      deptBudgetList1: [],
+      gradeList: [],
+      rules: {
+        netWeight: [
+          {
+            required: true,
+            type: 'number',
+            message: '请输入活动名称',
+            trigger: 'blur'
+          }
+        ]
+      },
+      size: 10,
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      packtypeList: {},
+      date: {
+        year: dayjs().format('YYYY'),
+        month: dayjs().format('MM')
+      },
+      contractList: [],
+      inOutTaskNo: '',
+      inOutTaskNo1: '',
+      dataList: { taskTypeKey: '1' },
+      dataList1: { taskTypeKey: '1' },
+      historyList: [],
+      pickerBeginDateBefore: {
+        disabledDate: time => {
+          return time.getTime() > Date.now()
+        }
+      },
+      accessoryTFs: false
+    }
+  },
+  mounted() {
+    this.getList()
+  },
+  methods: {
+    //返回按钮
+    revert() {
+      this.$router.go(-1)
+    },
+    returnsales() {
+      this.$router.push({ path: 'salesPlanList' })
+    },
+    // 获取当前年月日
+    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 year + mouth + datetime
+    },
+    // 随机验证码
+    verifyinit() {
+      var arr = []
+      for (var i = 48; i < 123; i++) {
+        if (i > 57 && i < 65) continue
+        if (i > 90 && i < 97) continue
+        arr.push(String.fromCharCode(i))
+      }
+      arr.sort(function() {
+        return Math.random() - 0.5
+      })
+      arr.length = 4
+
+      return arr.join('')
+    },
+    dataFilter(val) {
+      // console.log(val,"名")
+      this.deptBudgetList.staffList = val
+      if (val) {
+        //val存在
+        this.options = this.staffList.filter(item => {
+          if (
+            !!~item.staffName.indexOf(val) ||
+            !!~item.staffName.toUpperCase().indexOf(val.toUpperCase())
+          ) {
+            return true
+          }
+        })
+      } else {
+        //val为空时,还原数组
+        this.options = this.staffList
+      }
+    },
+    selectstaff(e) {
+      for (var i = 0; i < this.staffList.length; i++) {
+        if (this.staffList[i].staffName == e) {
+          this.dataList.agentKey = this.staffList[i].staffId
+        }
+      }
+    },
+    selectstaff1(e) {
+      for (var i = 0; i < this.staffList.length; i++) {
+        if (this.staffList[i].staffName == e) {
+          this.dataList1.agentKey = this.staffList[i].staffId
+        }
+      }
+    },
+    requestadd(list, status) {
+      this.$refs.dataList.validate(valid => {
+        if (valid) {
+          list.compId = sessionStorage.getItem('ws-pf_compId')
+          list.publisher =
+            sessionStorage.getItem('ws-pf_roleName') +
+            sessionStorage.getItem('ws-pf_staffName')
+          addoreditoutput(list)
+            .toPromise()
+            .then(response => {
+              this.$message.success('添加成功')
+              this.$router.push({ path: 'salesPlanList' })
+            })
+        } else {
+          EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+          return false
+        }
+      })
+    },
+    //关闭
+    close() {
+      this.$router.push({ path: 'procurementPlanList' })
+    },
+    //提交按钮
+    // submit() {
+    //   if (this.dataList.taskTypeKey == 1) {
+    //     this.dataList.inOutTaskNo = this.inOutTaskNo
+    //     this.requestadd(this.dataList)
+    //   } else if (this.dataList.taskTypeKey == 2) {
+    //     this.dataList.inOutTaskNo = this.inOutTaskNo1
+    //     this.requestadd(this.dataList)
+    //   } else if (
+    //     this.dataList.taskTypeKey == 3 ||
+    //     this.dataList.taskTypeKey == 4
+    //   ) {
+    //     this.dataList.inOutTaskNo = this.inOutTaskNo
+    //     this.dataList.relevanceId = this.GetRandomNum(100000, 999999)
+    //     this.requestadd(this.dataList, 'repetition')
+    //     this.dataList1.inOutTaskNo = this.inOutTaskNo1
+    //     this.dataList1.relevanceId = this.dataList.relevanceId
+    //     this.requestadd(this.dataList1, 'repetition')
+    //   }
+    // },
+    selectwarehouseName() {},
+    tarechange(e) {
+      if (this.dataList.grossWeight && this.dataList.tare) {
+        this.dataList.netWeight = Number(
+          this.dataList.grossWeight - this.dataList.tare
+        )
+      }
+    },
+    grossWeightchange(e) {
+      if (this.dataList.grossWeight && this.dataList.tare) {
+        this.dataList.netWeight = Number(
+          this.dataList.grossWeight - this.dataList.tare
+        )
+      }
+    },
+    selectgoodsName(e) {
+      for (var i = 0; i < this.goodnameList.length; i++) {
+        if (this.goodnameList[i].constValue == e) {
+          this.dataList.goodsNameKey = this.goodnameList[i].constKey
+        }
+      }
+    },
+    selectgoodsName1(e) {
+      for (var i = 0; i < this.goodnameList.length; i++) {
+        if (this.goodnameList[i].constValue == e) {
+          this.dataList1.goodsNameKey = this.goodnameList[i].constKey
+        }
+      }
+    },
+    selectpackingMethod(e) {
+      for (var i = 0; i < this.packtypeList.length; i++) {
+        if (this.packtypeList[i].constValue == e) {
+          this.dataList.packingMethodKey = this.packtypeList[i].constKey
+        }
+      }
+    },
+    selectpackingMethod1(e) {
+      for (var i = 0; i < this.packtypeList.length; i++) {
+        if (this.packtypeList[i].constValue == e) {
+          this.dataList1.packingMethodKey = this.packtypeList[i].constKey
+        }
+      }
+    },
+    selectstorageType(e) {
+      for (var i = 0; i < this.storageType.length; i++) {
+        if (this.storageType[i].constValue == e) {
+          this.dataList.inOutTypeKey = this.storageType[i].constKey
+        }
+      }
+    },
+    selectstorageType1(e) {
+      for (var i = 0; i < this.storageType1.length; i++) {
+        if (this.storageType1[i].constValue == e) {
+          this.dataList1.inOutTypeKey = this.storageType[i].constKey
+        }
+      }
+    },
+    handleClose() {
+      this.accessoryTFs = false
+    },
+    tasktypechange() {
+      this.tasknumber()
+    },
+    GetRandomNum(Min, Max) {
+      var Range = Max - Min
+      var Rand = Math.random()
+      return Min + Math.round(Rand * Range)
+    },
+    getList() {
+      outexamine({ relevanceId: this.$route.query.relevanceId })
+        .toPromise()
+        .then(response => {
+          if (response.length > 1) {
+            this.dataList = response[0]
+            this.dataList1 = response[1]
+          } else {
+            console.log(response[0].taskTypeKey)
+            if (response[0].taskTypeKey == 2) {
+              this.dataList1 = response[0]
+            } else {
+              this.dataList = response[0]
+            }
+          }
+        })
+    },
+
+    // deletecontract(){},
+    //删除
+    approve() {},
+    listQuery() {},
+    total() {},
+    clearfiltQuery() {},
+    selectCrtDuty() {}
+  }
+}
+</script>
+<style lang="scss" scoped>
+/deep/.basicInformation {
+  .el-info-table {
+    border: none;
+    position: relative;
+  }
+  .el-form-item {
+    width: 33.3333%;
+    border: none;
+    margin: 0;
+    .el-form-item__label {
+      text-align: left;
+      font-size: 14px;
+      font-family: PingFangSC-Regular, PingFang SC;
+      font-weight: 400;
+      color: #8890b1;
+    }
+    .el-form-item__content {
+      padding-left: 0px;
+      padding-right: 10px;
+      // background: #fff;
+      white-space: nowrap;
+      height: 40px;
+      display: flex;
+      -webkit-box-align: center;
+      align-items: center;
+      text-align: left;
+      overflow: hidden;
+    }
+  }
+}
+/deep/.el-radio {
+  color: #606266;
+  font-weight: 500;
+  line-height: 1;
+  cursor: pointer;
+  white-space: nowrap;
+  outline: 0;
+  margin-right: 30px;
+  margin-top: 15px;
+}
+/deep/.el-radio__inner {
+  border: 1px solid #dcdfe6;
+  border-radius: 100%;
+  width: 14px;
+  height: 14px;
+  background-color: #fff;
+  cursor: pointer;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  margin-left: 100px;
+}
+/deep/.el-radio__input {
+  white-space: nowrap;
+  cursor: pointer;
+  outline: 0;
+  line-height: 1;
+  vertical-align: middle;
+  margin-top: -1px;
+}
+.title {
+  position: relative;
+  padding-left: 10px;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-form {
+  padding: 0 15%;
+  display: flex;
+  flex-wrap: wrap;
+  margin-left: -50px;
+  margin-top: 15px;
+  width: 110%;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
+.bg-right {
+  text-align: right;
+  padding: 16px 20px;
+}
+.center {
+  position: relative;
+  top: 50px;
+  width: 40%;
+  height: 2000px;
+  margin: 0 auto;
+  margin-right: 180px;
+}
+/deep/.el-form-item__label {
+  width: 160px;
+}
+.inspector {
+  width: 50%;
+}
+/deep/.el-form-item--small .el-form-item__label,
+.el-form-item--small .el-form-item__content {
+  text-align: left;
+}
+/deep/.el-input--small {
+  font-size: 13px;
+  position: relative;
+  display: inline-block;
+}
+.center1 .small-title {
+  margin-left: 323px;
+}
+.center1 {
+  width: 90%;
+  margin: 0 auto;
+  margin-left: 10px;
+  margin-top: 25px;
+}
+/deep/.el-input--small .el-input__inner {
+  height: 32px;
+  line-height: 32px;
+}
+/deep/.el-select {
+  display: inline-block;
+  position: relative;
+  width: 100%;
+}
+.annu {
+  height: 81px;
+  background: #ffffff;
+  border-radius: 4px;
+}
+.basicInformation .el-form-item {
+  width: 50.3333%;
+  border: none;
+  margin: 0;
+}
+.el-form {
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+  margin-left: 130px;
+}
+.a {
+  margin-left: -32px;
+}
+.el-radio-group {
+  margin-left: 80px;
+}
+.ding {
+  height: 23px;
+  background: #e8ecf6;
+  box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.1);
+}
+.nav2 {
+  height: 25px;
+  background: #e8ecf6;
+  margin-top: 15px;
+}
+.ziti {
+  width: 72px;
+  height: 20px;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 20px;
+  margin-left: 314px;
+  /* margin-top: 112px; */
+}
+/deep/.ziti1 {
+  height: 40px;
+  font-size: 16px;
+  font-family: PingFangSC-Medium, PingFang SC;
+  font-weight: 500;
+  color: #262626;
+  line-height: 20px;
+  margin-left: 381px;
+  margin-top: -21px;
+  width: 100px;
+}
+.winseaview-view {
+  padding: 0 0 20px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+/deep/.basicInformation .el-form-item .el-form-item__content {
+  padding-left: 0px;
+  padding-right: 10px;
+  white-space: nowrap;
+  height: 40px;
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: center;
+  -ms-flex-align: center;
+  align-items: center;
+  text-align: left;
+  overflow: hidden;
+  font-size: 12px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #232323;
+  line-height: 14px;
+}
+.nav {
+  width: 400px;
+  height: 20px;
+}
+</style>

+ 1525 - 0
src/views/salesManagement/salesPlanOrderList.vue

@@ -0,0 +1,1525 @@
+//销售详情
+<template>
+  <div class="container">
+    <el-scrollbar style="height:100%">
+      <el-scrollbar style="width:130%">
+        <el-row>
+          <el-col :span="12">
+            <h2 class="bg-left title"></h2>
+          </el-col>
+          <el-col :span="12" class="bg-right">
+            <el-button class="bg-bottom" type="primary" size="small" @click="revert()">
+              <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> -->
+        <div>
+          <!-- <el-button class="record" @click="dialogFormVisible = true">成交</el-button> -->
+          <!-- <el-dialog
+            width="30%"
+            title="客户信息"
+            :visible.sync="dialogFormVisible"
+            :append-to-body="true"
+          >
+          <el-form :model="form">-->
+          <!-- <el-form-item label="身份证正面" :label-width="formLabelWidth"> -->
+          <!-- <h4 style="margin-left: 15%;">身份证正面</h4>
+              <el-upload
+                action="https://jsonplaceholder.typicode.com/posts/"
+                list-type="picture-card"
+                :on-preview="handlePictureCardPreview"
+                :on-remove="handleRemove"
+                class="photo1"
+              >
+                <i class="el-icon-plus"></i>
+              </el-upload>
+              <el-dialog :visible.sync="dialogVisible">
+                <img width="100%" :src="dialogImageUrl" alt />
+          </el-dialog>-->
+          <!-- </el-form-item> -->
+
+          <!-- <el-form-item label="身份证反面" :label-width="formLabelWidth"> -->
+          <!-- <h4 style="margin-left: 62%; margin-top: -33.5%;">身份证反面</h4>
+              <el-upload
+                action="https://jsonplaceholder.typicode.com/posts/"
+                list-type="picture-card"
+                :on-preview="handlePictureCardPreview"
+                :on-remove="handleRemove"
+                class="photo2"
+              >
+                <i class="el-icon-plus"></i>
+              </el-upload>
+              <el-dialog :visible.sync="dialogVisible">
+                <img width="100%" :src="dialogImageUrl" alt />
+          </el-dialog>-->
+          <!-- </el-form-item> -->
+          <!-- <el-form-item label="姓名" :label-width="formLabelWidth"> -->
+          <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+          <!-- </el-form-item>
+              <hr />
+          <el-form-item label="身份证号" :label-width="formLabelWidth">-->
+          <!-- <el-input v-model="form.region" autocomplete="off"  class="deal" ></el-input> -->
+          <!-- </el-form-item>
+          <hr />-->
+          <!-- <el-form-item label="身份证正面" :label-width="formLabelWidth"> -->
+          <!-- <h4 style="margin-left: 15%;">银行卡正面</h4>
+              <el-upload
+                action="https://jsonplaceholder.typicode.com/posts/"
+                list-type="picture-card"
+                :on-preview="handlePictureCardPreview"
+                :on-remove="handleRemove"
+                class="photo1"
+              >
+                <i class="el-icon-plus"></i>
+              </el-upload>
+              <el-dialog :visible.sync="dialogVisible">
+                <img width="100%" :src="dialogImageUrl" alt />
+          </el-dialog>-->
+          <!-- </el-form-item> -->
+          <!-- <el-form-item label="身份证反面" :label-width="formLabelWidth"> -->
+          <!-- <h4 style="margin-left: 61%; margin-top: -33.5%;">银行卡反面</h4>
+              <el-upload
+                action="https://jsonplaceholder.typicode.com/posts/"
+                list-type="picture-card"
+                :on-preview="handlePictureCardPreview"
+                :on-remove="handleRemove"
+                class="photo2"
+              >
+                <i class="el-icon-plus"></i>
+              </el-upload>
+              <el-dialog :visible.sync="dialogVisible">
+                <img width="100%" :src="dialogImageUrl" alt />
+          </el-dialog>-->
+          <!-- </el-form-item> -->
+          <!-- <el-form-item label="银行卡号" :label-width="formLabelWidth"> -->
+          <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+          <!-- </el-form-item>
+              <hr />
+          <el-form-item label="开户行" :label-width="formLabelWidth">-->
+          <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+          <!-- </el-form-item>
+              <hr />
+          <el-form-item label="开户支行" :label-width="formLabelWidth">-->
+          <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+          <!-- </el-form-item>
+              <hr />
+          <el-form-item label="收款人姓名" :label-width="formLabelWidth">-->
+          <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+          <!-- </el-form-item>
+              <hr />
+          <el-form-item label="收款人身份证号" :label-width="formLabelWidth">-->
+          <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+          <!-- </el-form-item>
+              <hr />
+          <el-form-item label="手机号" :label-width="formLabelWidth">-->
+          <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+          <!-- </el-form-item>
+              <hr />
+          <el-form-item label="联系地址" :label-width="formLabelWidth">-->
+          <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+          <!-- </el-form-item>
+              <hr />
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+              <el-button @click="dialogFormVisible = false">取 消</el-button>
+            </div>
+          </el-dialog>-->
+
+          <ws-button type="primary" @click="dialogVisible = true">全部订单</ws-button>
+          <ws-button type="primary" @click="handleAdd()">待审核</ws-button>
+          <ws-button type="primary" @click="handleAdd()">执行中</ws-button>
+          <ws-button type="primary" @click="handleAdd()">已完成</ws-button>
+          <template slot="right">
+            <span style="width: 70px; display: inline-block; color: #8890b1">状态:</span>
+            <ws-select
+              v-model="searchTypeText"
+              class="typeselect"
+              @change="selecttaskType"
+              :value="searchType"
+            >
+              <ws-option
+                v-for="item in taskTypeList"
+                :key="item.value"
+                :label="item.value"
+                :value="item.value"
+                style="color: #8890b1"
+              />
+            </ws-select>
+          </template>
+          <ws-input
+            v-model="searchKeyWord"
+            placeholder="可按照合同编号和任务编号进行查找"
+            clearable
+            maxlength="500"
+            type="input"
+            class="findValue"
+          ></ws-input>
+          <ws-button class="but" 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>
+        </div>
+
+        <el-table
+          class="wenzi"
+          :data="warehouseList.records"
+          style="width: 100%; margin-top: 20px"
+          height="780"
+        >
+          <el-table-column type="index" label="序号" width="50"></el-table-column>
+          <el-table-column class="table_td" prop="contractNo" label="合同编号"></el-table-column>
+          <el-table-column class="table_td" prop="procurementPlan" label="销售计划"></el-table-column>
+          <el-table-column class="table_td" prop="customer" label="客户">
+            <template slot-scope="scope">
+              <el-button class="record" @click="dialogFormVisible8 = true">{{scope.row.customer}}</el-button>
+            </template>
+          </el-table-column>
+          <el-table-column class="table_td" prop="unitPrice" label="单价(元/吨)">
+            <template slot-scope="scope">
+              {{scope.row.unitPrice}}
+              <img
+                width="17"
+                height="18"
+                style="vertical-align: text-top; position: relative; top: -1px"
+                src="../../../public/img/edit.png"
+                @click="dialogFormVisible5 = true "
+                alt
+              />
+            </template>
+          </el-table-column>
+          <el-table-column class="table_td" prop="basis" label="基差(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop="freezingDeposit" label="冻结定金(元)"></el-table-column>
+          <el-table-column class="table_td" prop="defaultDeposit" label="拖欠定金(元)"></el-table-column>
+          <el-table-column class="table_td" prop="unloadingCharge" label="卸车费(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop="invoiceFee" label="发票费(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop="send" label="合同重量(吨)"></el-table-column>
+          <el-table-column class="table_td" prop="stockInQuantity" label="已入库量(吨)"></el-table-column>
+          <el-table-column class="table_td" prop="openPosition" label="可平仓量(吨)"></el-table-column>
+          <el-table-column class="table_td" prop="closedPosition" label="已平仓量(吨)">
+            <template slot-scope="scope">
+              {{scope.row.closedPosition}}
+              <img
+                width="17"
+                height="18"
+                style="vertical-align: text-top; position: relative; top: -1px"
+                src="../../../public/img/edit.png"
+                @click="dialogFormVisible7 = true "
+                alt
+              />
+            </template>
+          </el-table-column>
+          <el-table-column class="table_td" prop=" cumulativeTurnover" label="已交易量(吨)">
+            <template slot-scope="scope">
+              {{scope.row.cumulativeTurnover}}
+              <img
+                width="17"
+                height="18"
+                style="vertical-align: text-top; position: relative; top: -1px"
+                src="../../../public/img/edit.png"
+                @click="dialogFormVisible6 = true "
+                alt
+              />
+            </template>
+          </el-table-column>
+          <el-table-column class="table_td" label="发票类型" prop="type"></el-table-column>
+          <el-table-column class="table_td" label="包装方式"></el-table-column>
+          <el-table-column prop="status" label="状态">
+            <template slot-scope="scope">
+              <el-popover
+                placement="left"
+                :width="285"
+                trigger="click"
+                visible-arrow="false"
+                @show="history(scope.row)"
+              >
+                <template>
+                  <span slot="reference">
+                    <span v-if="scope.row.status == '待审核'" class="executory"></span>
+                    <span v-if="scope.row.status == '执行中'" class="inExecution"></span>
+                    <span v-if="scope.row.status == '已完成'" class="done"></span>
+                    {{ scope.row.status }}
+                  </span>
+                </template>
+              </el-popover>
+            </template>
+            <!-- <div> -->
+            <!-- <p style="margin-top: 0; padding-left: 10px">历史记录</p> -->
+            <!-- <div v-for="(item, index) in historyList" class="flex" :key="index">
+                <div class="vertical-text vertical-text-left">{{ item.updateDate }}</div>
+                <div>
+                  <div class="vertical-circle"></div>
+                  <div v-if="index != historyList.length - 1" class="vertical-line"></div>
+                </div>
+                <div class="vertical-text">
+                  {{ item.operateUser }}
+                  <br />
+                  {{ item.dealMsg }}
+                </div>
+              </div>
+            </div>-->
+
+            <!-- 客户信息 -->
+            <el-dialog
+              width="30%"
+              title="客户信息"
+              :visible.sync="dialogFormVisible8"
+              :append-to-body="true"
+            >
+              <el-form :model="form">
+                <h4 style=" margin-left: 42%;">营业执照</h4>
+                <el-upload
+                  action="https://www.zthymaoyi.com/upload/admin"
+                  list-type="picture-card"
+                  :on-preview="handlePictureCardPreview"
+                  :on-remove="handleRemove"
+                  class="photo"
+                >
+                  <i class="el-icon-plus"></i>
+                </el-upload>
+                <el-dialog :visible.sync="dialogVisible">
+                  <img width="50%" :src="dialogImageUrl" alt />
+                </el-dialog>
+
+                <el-form-item label="公司名称" :label-width="formLabelWidth">
+                  <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+                </el-form-item>
+                <hr />
+                <el-form-item label="纳税人识别号" :label-width="formLabelWidth">
+                  <!-- <el-input v-model="form.region" autocomplete="off"  class="deal" ></el-input> -->
+                </el-form-item>
+                <hr />
+
+                <!-- <el-form-item label="身份证正面" :label-width="formLabelWidth"> -->
+                <h4 style="margin-left: 15%;">身份证正面</h4>
+                <el-upload
+                  action="https://www.zthymaoyi.com/upload/admin"
+                  list-type="picture-card"
+                  :on-preview="handlePictureCardPreview"
+                  :on-remove="handleRemove"
+                  class="photo1"
+                >
+                  <i class="el-icon-plus"></i>
+                </el-upload>
+                <el-dialog :visible.sync="dialogVisible">
+                  <img width="100%" :src="dialogImageUrl" alt />
+                </el-dialog>
+                <!-- </el-form-item> -->
+
+                <!-- <el-form-item label="身份证反面" :label-width="formLabelWidth"> -->
+                <h4 style="margin-left: 61%; margin-top: -33.5%;">身份证反面</h4>
+                <el-upload
+                  action="https://www.zthymaoyi.com/upload/admin"
+                  list-type="picture-card"
+                  :on-preview="handlePictureCardPreview"
+                  :on-remove="handleRemove"
+                  class="photo2"
+                >
+                  <i class="el-icon-plus"></i>
+                </el-upload>
+                <el-dialog :visible.sync="dialogVisible">
+                  <img width="100%" :src="dialogImageUrl" alt />
+                </el-dialog>
+                <!-- </el-form-item> -->
+                <el-form-item label="姓名" :label-width="formLabelWidth">
+                  <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+                </el-form-item>
+                <hr />
+                <el-form-item label="身份证号" :label-width="formLabelWidth">
+                  <!-- <el-input v-model="form.region" autocomplete="off"  class="deal" ></el-input> -->
+                </el-form-item>
+                <hr />
+                <!-- <el-form-item label="身份证正面" :label-width="formLabelWidth"> -->
+                <h4 style="margin-left: 15%;">银行卡正面</h4>
+                <el-upload
+                  action="https://www.zthymaoyi.com/upload/admin"
+                  list-type="picture-card"
+                  :on-preview="handlePictureCardPreview"
+                  :on-remove="handleRemove"
+                  class="photo1"
+                >
+                  <i class="el-icon-plus"></i>
+                </el-upload>
+                <el-dialog :visible.sync="dialogVisible">
+                  <img width="100%" :src="dialogImageUrl" alt />
+                </el-dialog>
+                <!-- </el-form-item> -->
+                <!-- <el-form-item label="身份证反面" :label-width="formLabelWidth"> -->
+                <h4 style="margin-left: 61%; margin-top: -33.5%;">银行卡反面</h4>
+                <el-upload
+                  action="https://www.zthymaoyi.com/upload/admin"
+                  list-type="picture-card"
+                  :on-preview="handlePictureCardPreview"
+                  :on-remove="handleRemove"
+                  class="photo2"
+                >
+                  <i class="el-icon-plus"></i>
+                </el-upload>
+                <!-- <el-dialog :visible.sync="dialogVisible">  -->
+                <!-- <img width="100%" :src="dialogImageUrl" alt />
+                  </el-dialog>
+                <!-- </el-form-item>-->
+                <el-form-item label="银行卡号" :label-width="formLabelWidth">
+                  <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+                </el-form-item>
+                <hr />
+                <el-form-item label="开户行" :label-width="formLabelWidth">
+                  <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+                </el-form-item>
+                <hr />
+                <el-form-item label="开户支行" :label-width="formLabelWidth">
+                  <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+                </el-form-item>
+                <hr />
+                <el-form-item label="手机号" :label-width="formLabelWidth">
+                  <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+                </el-form-item>
+                <hr />
+                <el-form-item label="公司地址" :label-width="formLabelWidth">
+                  <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+                </el-form-item>
+                <hr />
+              </el-form>
+              <div slot="footer" class="dialog-footer">
+                <el-button @click="dialogFormVisible8 = false">取 消</el-button>
+              </div>
+            </el-dialog>
+
+            <!-- 客户信息1 -->
+            <el-dialog
+              width="30%"
+              title="客户信息"
+              :visible.sync="dialogFormVisible"
+              :append-to-body="true"
+            >
+              <el-form :model="form">
+                <!-- <el-form-item label="身份证正面" :label-width="formLabelWidth"> -->
+                <h4 style="margin-left: 15%;">身份证正面</h4>
+                <el-upload
+                  action="https://www.zthymaoyi.com/upload/admin"
+                  list-type="picture-card"
+                  :on-preview="handlePictureCardPreview"
+                  :on-remove="handleRemove"
+                  class="photo1"
+                >
+                  <i class="el-icon-plus"></i>
+                </el-upload>
+                <el-dialog :visible.sync="dialogVisible">
+                  <!-- <img width="100%" :src="dialogImageUrl" alt />  -->
+                </el-dialog>
+                <!-- </el-form-item>
+
+                <!-- <el-form-item label="身份证反面" :label-width="formLabelWidth">-->
+                <h4 style="margin-left: 62%; margin-top: -33.5%;">身份证反面</h4>
+                <el-upload
+                  action="https://www.zthymaoyi.com/upload/admin"
+                  list-type="picture-card"
+                  :on-preview="handlePictureCardPreview"
+                  :on-remove="handleRemove"
+                  class="photo2"
+                >
+                  <i class="el-icon-plus"></i>
+                </el-upload>
+                <el-dialog :visible.sync="dialogVisible">
+                  <img width="100%" :src="dialogImageUrl" alt />
+                </el-dialog>
+                <!-- </el-form-item> -->
+                <el-form-item label="姓名" :label-width="formLabelWidth">
+                  <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+                </el-form-item>
+                <hr />
+                <el-form-item label="身份证号" :label-width="formLabelWidth">
+                  <!-- <el-input v-model="form.region" autocomplete="off"  class="deal" ></el-input> -->
+                </el-form-item>
+                <hr />
+                <!-- <el-form-item label="身份证正面" :label-width="formLabelWidth"> -->
+                <h4 style="margin-left: 15%;">银行卡正面</h4>
+                <el-upload
+                  action="https://www.zthymaoyi.com/upload/admin"
+                  list-type="picture-card"
+                  :on-preview="handlePictureCardPreview"
+                  :on-remove="handleRemove"
+                  class="photo1"
+                >
+                  <i class="el-icon-plus"></i>
+                </el-upload>
+                <el-dialog :visible.sync="dialogVisible">
+                  <!-- <img width="100%" :src="dialogImageUrl" alt /> -->
+                </el-dialog>
+                <!-- </el-form-item> -->
+                <!-- <el-form-item label="身份证反面" :label-width="formLabelWidth"> -->
+                <h4 style="margin-left: 61%; margin-top: -33.5%;">银行卡反面</h4>
+                <el-upload
+                  action="https://www.zthymaoyi.com/upload/admin"
+                  list-type="picture-card"
+                  :on-preview="handlePictureCardPreview"
+                  :on-remove="handleRemove"
+                  class="photo2"
+                >
+                  <i class="el-icon-plus"></i>
+                </el-upload>
+                <el-dialog :visible.sync="dialogVisible">
+                  <img width="100%" :src="dialogImageUrl" alt />
+                </el-dialog>
+                <!-- </el-form-item> -->
+                <el-form-item label="银行卡号" :label-width="formLabelWidth">
+                  <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+                </el-form-item>
+                <hr />
+                <el-form-item label="开户行" :label-width="formLabelWidth">
+                  <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+                </el-form-item>
+                <hr />
+                <el-form-item label="开户支行" :label-width="formLabelWidth">
+                  <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+                </el-form-item>
+                <hr />
+                <el-form-item label="收款人姓名" :label-width="formLabelWidth">
+                  <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+                </el-form-item>
+                <hr />
+                <el-form-item label="收款人身份证号" :label-width="formLabelWidth">
+                  <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+                </el-form-item>
+                <hr />
+                <el-form-item label="手机号" :label-width="formLabelWidth">
+                  <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+                </el-form-item>
+                <hr />
+                <el-form-item label="联系地址" :label-width="formLabelWidth">
+                  <!-- <el-input v-model="form.region" autocomplete="off"  class="deal"></el-input> -->
+                </el-form-item>
+                <hr />
+              </el-form>
+              <div slot="footer" class="dialog-footer">
+                <el-button @click="dialogFormVisible8 = false">取 消</el-button>
+              </div>
+            </el-dialog>
+
+            <!-- 成交记录 -->
+            <el-dialog
+              width="40%"
+              title="成交记录"
+              :visible.sync="dialogFormVisible6"
+              :append-to-body="true"
+            >
+              <el-table :model="form">
+                <el-table-column label="成交价" :label-width="formLabelWidth">
+                  <el-input v-model="form.name" autocomplete="off" class="deal"></el-input>
+                </el-table-column>
+                <el-table-column label="基差" :label-width="formLabelWidth">
+                  <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+                </el-table-column>
+                <el-table-column label="成交量" :label-width="formLabelWidth">
+                  <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+                </el-table-column>
+                <el-table-column label="成交日期" :label-width="formLabelWidth">
+                  <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+                </el-table-column>
+              </el-table>
+              <div slot="footer" class="dialog-footer">
+                <el-button @click="dialogFormVisible6 = false">取 消</el-button>
+                <el-button type="primary" @click="dialogFormVisible6 = false">确认</el-button>
+              </div>
+            </el-dialog>
+
+            <!-- 平仓记录 -->
+            <el-dialog
+              width="40%"
+              title="平仓记录"
+              :visible.sync="dialogFormVisible7"
+              :append-to-body="true"
+            >
+              <el-table :model="form">
+                <el-table-column label="成交价" :label-width="formLabelWidth">
+                  <el-input v-model="form.name" autocomplete="off" class="deal"></el-input>
+                </el-table-column>
+                <el-table-column label="基差" :label-width="formLabelWidth">
+                  <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+                </el-table-column>
+                <el-table-column label="成交量" :label-width="formLabelWidth">
+                  <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+                </el-table-column>
+                <el-table-column label="成交日期" :label-width="formLabelWidth">
+                  <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+                </el-table-column>
+              </el-table>
+              <div slot="footer" class="dialog-footer">
+                <el-button @click="dialogFormVisible7 = false">取 消</el-button>
+                <el-button type="primary" @click="dialogFormVisible7 = false">确认</el-button>
+              </div>
+            </el-dialog>
+
+            <!-- 改价记录 -->
+            <el-dialog
+              width="30%"
+              title="改价记录"
+              :visible.sync="dialogFormVisible5"
+              :append-to-body="true"
+            >
+              <el-form :model="form">
+                <el-form-item label="成交价" :label-width="formLabelWidth">
+                  <el-input v-model="form.name" autocomplete="off" class="deal"></el-input>
+                </el-form-item>
+                <el-form-item label="点价" :label-width="formLabelWidth">
+                  <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+                </el-form-item>
+                <el-form-item label="成交价" :label-width="formLabelWidth">
+                  <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+                </el-form-item>
+                <el-form-item label="点价" :label-width="formLabelWidth">
+                  <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+                </el-form-item>
+                <el-form-item label="审核单价" :label-width="formLabelWidth">
+                  <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+                </el-form-item>
+                <el-form-item label="预期单价" :label-width="formLabelWidth">
+                  <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+                </el-form-item>
+              </el-form>
+              <div slot="footer" class="dialog-footer">
+                <el-button @click="dialogFormVisible5 = false">取 消</el-button>
+                <el-button type="primary" @click="dialogFormVisible5 = false">确认</el-button>
+              </div>
+            </el-dialog>
+          </el-table-column>
+          <el-table-column class="table_td" label="更新时间" prop="establishDate"></el-table-column>
+          <el-table-column class="table_td" label="入库结算"></el-table-column>
+          <el-table-column class="table_td" label="平仓结算"></el-table-column>
+          <el-table-column prop="seller" label="操作" width="300">
+            <template slot-scope="scope">
+              <el-button class="record" @click="dialogFormVisible1 = true">成交</el-button>
+              <el-dialog
+                width="30%"
+                title="成交"
+                :visible.sync="dialogFormVisible1"
+                :append-to-body="true"
+              >
+                <el-form :model="warehouseList">
+                  <el-form-item
+                    label="成交价(元/吨)"
+                    prop="transactionPrice"
+                    :label-width="formLabelWidth"
+                  >
+                    <el-input
+                      v-model="warehouseList.transactionPrice"
+                      autocomplete="off"
+                      placeholder="请输入成交价"
+                      class="deal"
+                    ></el-input>
+                  </el-form-item>
+                  <el-form-item
+                    label="成交量(吨)"
+                    prop="transactionsNumber"
+                    :label-width="formLabelWidth"
+                  >
+                    <el-input
+                      v-model="warehouseList.transactionsNumber"
+                      autocomplete="off"
+                      placeholder="请输入活动区域"
+                      class="deal"
+                    ></el-input>
+                  </el-form-item>
+                  <el-form-item label="基差(元/吨)" prop="basis" :label-width="formLabelWidth">
+                    <el-input
+                      v-model="warehouseList.basis"
+                      autocomplete="off"
+                      placeholder="请输入基差"
+                      class="deal"
+                    ></el-input>
+                  </el-form-item>
+                  <el-form-item label="成交日期" prop="submissionDate" :label-width="formLabelWidth" class="deal">
+                    <ws-date-picker
+                      v-model="deptBudgetList.submissionDate"
+                      type="date"
+                      placeholder="请选择成交日期"
+                      value-format="yyyy-MM-dd"
+                      class="deal"
+                    />
+                  </el-form-item>
+                </el-form>
+                <div slot="footer" class="dialog-footer">
+                  <el-button @click="dialogFormVisible1 = false">取 消</el-button>
+                  <el-button type="primary" @click="dialogFormVisible11()">确 定</el-button>
+                </div>
+              </el-dialog>
+
+              <!-- 补充定金 -->
+              <el-button class="record" @click="dialogFormVisible3 = true">补充定金</el-button>
+              <el-dialog
+                width="40%"
+                title="补充定金"
+                :visible.sync="dialogFormVisible3"
+                :append-to-body="true"
+              >
+                <el-form :model="form">
+                  <h5>我是客户名</h5>
+                  <el-form-item label="拖欠定金" :label-width="formLabelWidth">
+                    <el-input
+                      v-model="form.name"
+                      autocomplete="off"
+                      placeholder="请输入成交价"
+                      class="deal"
+                    ></el-input>
+                  </el-form-item>
+                  <el-form-item label="可用定金" :label-width="formLabelWidth">
+                    <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+                  </el-form-item>
+                  <el-form-item label="补充金额" :label-width="formLabelWidth">
+                    <el-input
+                      v-model="form.region"
+                      autocomplete="off"
+                      placeholder="请输入补充金额"
+                      class="deal"
+                    ></el-input>
+                  </el-form-item>
+                </el-form>
+                <div slot="footer" class="dialog-footer">
+                  <el-button @click="dialogFormVisible3 = false">取 消</el-button>
+                  <el-button type="primary" @click="dialogFormVisible3 = false">确 定</el-button>
+                </div>
+              </el-dialog>
+
+              <el-button class="record">解冻定金</el-button>
+              <!-- 平仓 -->
+              <el-button class="record" @click="dialogFormVisible2 = true">平仓</el-button>
+              <el-dialog
+                width="40%"
+                title="平仓"
+                :visible.sync="dialogFormVisible2"
+                :append-to-body="true"
+              >
+                <el-form :model="warehouseList">
+                  <el-form-item label="成交价格(元/吨)" prop="transactionPrice" :label-width="formLabelWidth">
+                    <el-select
+                      v-model="warehouseList.transactionPrice"
+                      autocomplete="off"
+                      placeholder="请输入成交价"
+                      class="deal"
+                    ></el-select>
+                  </el-form-item>
+                  <el-form-item label="可平仓数量(吨)" prop="openPosition" :label-width="formLabelWidth">
+                    <el-input v-model="warehouseList.openPosition" autocomplete="off" class="deal"></el-input>
+                  </el-form-item>
+                  <el-form-item label="平仓数量(吨)" prop="closingQuantity" :label-width="formLabelWidth">
+                    <el-input
+                      v-model="warehouseList.closingQuantity"
+                      autocomplete="off"
+                      placeholder="请输入平仓数量"
+                      class="deal"
+                    ></el-input>
+                  </el-form-item>
+                  <el-form-item label="平仓价格(元/吨)" prop="closeRate" :label-width="formLabelWidth">
+                    <el-input
+                      v-model="warehouseList.closeRate"
+                      autocomplete="off"
+                      placeholder="请输入平仓价格"
+                      class="deal"
+                    ></el-input>
+                  </el-form-item>
+                  <el-form-item label="平仓基差(元/吨)" prop="closingBasis" :label-width="formLabelWidth">
+                    <el-input
+                      v-model="warehouseList.closingBasis"
+                      autocomplete="off"
+                      placeholder="请输入平仓基差"
+                      class="deal"
+                    ></el-input>
+                  </el-form-item>
+                  <el-form-item label="平仓应付(元)" prop="closingPositionPayable" :label-width="formLabelWidth">
+                    <el-input
+                      v-model="warehouseList.closingPositionPayable"
+                      autocomplete="off"
+                      placeholder="请输入平仓价格"
+                      class="deal"
+                    ></el-input>
+                  </el-form-item>
+                  <el-form-item label="平仓日期" prop="closePositionDate"  :label-width="formLabelWidth">
+                    <el-select
+                      v-model="warehouseList.closePositionDate"
+                      autocomplete="off"
+                      placeholder="请选择平仓日期"
+                      class="deal"
+                    ></el-select>
+                  </el-form-item>
+                </el-form>
+                <div slot="footer" class="dialog-footer">
+                  <el-button @click="dialogFormVisible2 = false">取 消</el-button>
+                  <el-button type="primary" @click="dialogFormVisible22()">确 定</el-button>
+                </div>
+              </el-dialog>
+
+              <el-button class="record" @click="handle(scope.row)">完成</el-button>
+              <!-- 审核 -->
+              <el-button type="text" class="record" @click="dialogFormVisible4 = true">审核</el-button>
+              <el-dialog
+                width="40%"
+                title="审核"
+                :visible.sync="dialogFormVisible4"
+                :append-to-body="true"
+              >
+                <el-form :model="form">
+                  <el-form-item label="交易类型" :label-width="formLabelWidth">
+                    <el-input v-model="form.name" autocomplete="off" class="deal"></el-input>
+                  </el-form-item>
+                  <el-form-item label="交易目标" :label-width="formLabelWidth">
+                    <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+                  </el-form-item>
+                  <el-form-item label="卖方" :label-width="formLabelWidth">
+                    <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+                  </el-form-item>
+                  <el-form-item label="交易数量(吨)" :label-width="formLabelWidth">
+                    <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+                  </el-form-item>
+                  <el-form-item label="提交时间" :label-width="formLabelWidth">
+                    <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+                  </el-form-item>
+                  <el-form-item label="包装方式" :label-width="formLabelWidth">
+                    <el-select v-model="form.region" autocomplete="off" class="deal"></el-select>
+                  </el-form-item>
+                  <el-form-item label="袋装备注" :label-width="formLabelWidth">
+                    <el-input
+                      v-model="form.region"
+                      autocomplete="off"
+                      placeholder="最大30字"
+                      class="deal"
+                    ></el-input>
+                  </el-form-item>
+                  <el-form-item label="发票类型" :label-width="formLabelWidth">
+                    <el-select
+                      v-model="form.region"
+                      autocomplete="off"
+                      placeholder="请选择类型"
+                      class="deal"
+                    ></el-select>
+                  </el-form-item>
+                  <el-form-item label="单价(元/吨)" :label-width="formLabelWidth">
+                    <el-input
+                      v-model="form.region"
+                      autocomplete="off"
+                      placeholder="请输入单价"
+                      class="deal"
+                    ></el-input>
+                  </el-form-item>
+                  <el-form-item label="基差(元/吨)" :label-width="formLabelWidth">
+                    <el-input
+                      v-model="form.region"
+                      autocomplete="off"
+                      placeholder="请输入基差"
+                      class="deal"
+                    ></el-input>
+                  </el-form-item>
+                  <el-form-item label="发票费用(元/吨)" :label-width="formLabelWidth">
+                    <el-input
+                      v-model="form.region"
+                      autocomplete="off"
+                      placeholder="请输入发票费用"
+                      class="deal"
+                    ></el-input>
+                  </el-form-item>
+                  <el-form-item label="卸车费用(元/吨)" :label-width="formLabelWidth">
+                    <el-input
+                      v-model="form.region"
+                      autocomplete="off"
+                      placeholder="请输入卸车费用"
+                      class="deal"
+                    ></el-input>
+                  </el-form-item>
+                  <el-form-item label="合同编号" :label-width="formLabelWidth">
+                    <el-select
+                      v-model="form.region"
+                      autocomplete="off"
+                      placeholder="请选择合同编号"
+                      class="deal"
+                    ></el-select>
+                  </el-form-item>
+                </el-form>
+                <div slot="footer" class="dialog-footer">
+                  <el-button @click="dialogFormVisible4 = false">取 消</el-button>
+                  <el-button type="primary" @click="dialogFormVisible4 = false">通过</el-button>
+                </div>
+              </el-dialog>
+              <el-button class="record" @click="handle(scope.row)">删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+
+        <!-- 页数 -->
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-size="pageSize"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="deptBudgetTotal"
+        ></el-pagination>
+      </el-scrollbar>
+    </el-scrollbar>
+  </div>
+
+  <!-- </div> -->
+</template>
+<script>
+import { detailsList, chengList ,closePositionList} from '@/model/purchasingManagement/index'
+import { downloadFile } from '@/utils/batchDown'
+import Pagination from '@/components/Pagination'
+import WsUpload from '@/components/WsUpload'
+import { dayjs, fmoney, EventBus } from 'base-core-lib'
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+    Pagination
+  },
+  watch: {
+    vesselId(val) {
+      this.getList()
+    },
+    isShow(val) {
+      this.showType = val
+    }
+  },
+
+  data() {
+    return {
+      dialogFormVisible1: false,
+      dialogFormVisible2: false,
+      dialogFormVisible3: false,
+      dialogFormVisible4: false,
+      dialogFormVisible5: false,
+      dialogFormVisible6: false,
+      dialogFormVisible7: false,
+      dialogFormVisible8: false,
+      dialogVisible: false,
+
+      form: {
+        transactionPrice: '',
+        transactionsNumber: '',
+        basis: '',
+        submissionDate: ''
+        // delivery: false,
+        // type: [],
+        // resource: '',
+        // desc: ''
+      },
+      formLabelWidth: '120px',
+
+      barWidth: 0,
+      barHeight: 0,
+      retioX: 1,
+      ratioY: 1,
+      isTaped: false,
+      isHover: false,
+      isShow: !this.autohide,
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      pickerOptions: {},
+      value2: '',
+      deptBudgetTotal: 0,
+      currentPage: 1,
+      tranTypeKey: 1,
+      pageSize: 10,
+      searchType: 1,
+      searchTypeText: '未完成',
+      searchKeyWord: '',
+      contractType: 2,
+      enter: {
+        closePositionList:[],
+      },
+      // taskTypeList:[
+      //   {value:'待审核',type:1},
+      //   {value:'已完成',type:2},
+      //   {value:'已通过',type:3},
+      //   {value:'已成交',type:4},
+      // ],
+
+      // 提交类型
+      submitType: true,
+      size: 10,
+      spanArr: [],
+      contractNo: '',
+      inOutTaskNo: '',
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      warehouseList: [],
+      deptBudgetList: {},
+      pcFlag:1,
+      historyList: [],
+      pickerBeginDateBefore: {
+        disabledDate: time => {
+          return time.getTime() > Date.now()
+        }
+      },
+      accessoryTFs: false
+    }
+  },
+  activated() {
+    // this.loaddata()
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    //成交
+    dialogFormVisible11(row) {
+      if (!this.warehouseList.transactionPrice) {
+        this.$message({
+          message: '成交价不能为空',
+          type: 'warning'
+        })
+        return
+      }
+      this.$confirm(`确定提交成交信息`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning'
+      })
+      .then(() => {
+      chengList({
+         id: row.id,
+         compId: sessionStorage.getItem('ws-pf_compId'),
+         transactionPrice: row.transactionPrice,
+         transactionsNumber: row.transactionsNumber,
+         basis: row.basis,
+      })
+        .toPromise()
+        .then((response) => {
+          this.$message.success('添加成功')
+          this.warehouseList = response
+          // this.$router.go(-1)
+        })
+        .catch(() => {
+        console.log(1111111111)
+          return false
+        })
+      })
+      
+    },
+    //平仓
+    dialogFormVisible22(row){
+    this.$confirm(`确定提交成交信息`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning'
+      })
+      .then(() => {
+     closePositionList({
+         id: row.id,
+         compId: sessionStorage.getItem('ws-pf_compId'),
+         transactionPrice: row.transactionPrice,
+         transactionsNumber: row.transactionsNumber,
+         basis: row.basis,
+      })
+      // chengList(this.warehouseList)
+        .toPromise()
+        .then(response => {
+          this.$message.success('添加成功')
+          this.getList()
+          // this.$router.go(-1)
+        })
+      })
+      .catch(() => {
+          return false
+        })
+    },
+        
+     
+         
+
+    getList() {
+      console.log(123456)
+      detailsList({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        id :this.id,
+        currentPage: this.currentPage,
+        pageSize: this.pageSize,
+        pcFlag: this.pcFlag,
+        contractNo: this.contractNo
+      })
+        .toPromise()
+        .then(response => {
+          this.warehouseList = response
+        })
+    },
+    // loaddata(){
+    //   chengList({
+    //      compId: sessionStorage.getItem('ws-pf_compId'),
+    //   })
+    //   .toPromise()
+    //   .then(response => {
+    //       this.warehouseList = response
+    //     })
+    // },
+    handleRemove(file) {
+      console.log(file)
+    },
+    handlePictureCardPreview(file) {
+      this.dialogImageUrl = file.url
+      this.dialogVisible = true
+    },
+    handleDownload(file) {
+      console.log(file)
+    },
+
+    // statusquery(state) {
+    //   this.searchType = state
+    //   this.getList()
+    // },
+    // delivery(item) {
+    //   this.$router.push({
+    //     path: 'warehouseManagementDelivery',
+    //     query: {
+    //       baseId: item.warehouseId,
+    //       positionId: item.binNumberId,
+    //       warehouseName: item.warehouseName,
+    //       binNumber: item.binNumber,
+    //       capacity: item.capacity
+    //     }
+    //   })
+    // },
+    getSpanArr(data) {
+      let that = this
+
+      //页面展示的数据,不一定是全部的数据,所以每次都清空之前存储的 保证遍历的数据是最新的数据。以免造成数据渲染混乱
+
+      that.spanArr = []
+
+      that.pos = 0
+
+      // //遍历数据
+
+      data.forEach((item, index) => {
+        //判断是否是第一项
+
+        if (index === 0) {
+          this.spanArr.push(1)
+          this.pos = 0
+        } else {
+          //不是第一项时,就根据标识去存储
+          if (data[index].warehouseNumViewList.length > 1) {
+            查找到符合条件的数据时每次要把之前存储的数据 + 1
+            this.spanArr[this.pos] = data[index].warehouseNumViewList.length
+            this.spanArr.push(0)
+          } else {
+            // 没有符合的数据时,要记住当前的index
+            this.spanArr.push(1)
+            this.pos = index
+          }
+        }
+      })
+    },
+    //查看
+    handleLook(row) {
+      this.$router.push({
+        path: 'warehouseManagementPutOutLook',
+        query: {
+          relevanceId: row.relevanceId
+        }
+      })
+    },
+    //返回
+    revert() {
+      this.$router.push({ path: 'warehouseManagementList' })
+    },
+    dateFormat(fmt, date) {
+      let ret
+      const opt = {
+        'Y+': date.getFullYear().toString(), // 年
+        'm+': (date.getMonth() + 1).toString(), // 月
+        'd+': date.getDate().toString(), // 日
+        'H+': date.getHours().toString() // 时
+        // "M+": date.getMinutes().toString(),         // 分
+        // "S+": date.getSeconds().toString()          // 秒
+        // 有其他格式化字符需求可以继续添加,必须转化成字符串
+      }
+      for (let k in opt) {
+        ret = new RegExp('(' + k + ')').exec(fmt)
+        if (ret) {
+          fmt = fmt.replace(
+            ret[1],
+            ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
+          )
+        }
+      }
+      return fmt
+    },
+    handleClose() {
+      this.accessoryTFs = false
+    },
+    handleSizeChange(val) {
+      console.log(`每页 ${val} 条`)
+      this.pageSize = val
+      this.getList()
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val
+      console.log(`当前页: ${val}`)
+      this.getList()
+    },
+    editClick(row) {
+      var status = ''
+      if (row.status == '待审核' || row.status == '已完成') {
+        status = '执行中'
+      } else if (row.status == '执行中') {
+        status = '已完成'
+      }
+      //cancelButtonClass: "btn-custom-cancel"
+      this.$confirm(`是否将状态改为${status}`, {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(() => {
+          alsostate({ id: row.id })
+            .toPromise()
+            .then(response => {
+              this.$notify.success({
+                title: '成功',
+                message: '状态修改成功'
+              })
+              this.getList()
+            })
+            .catch(response => {
+              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    selecttaskType(e) {
+      for (var i = 0; i < this.taskTypeList.length; i++) {
+        if (this.taskTypeList[i].value == e) {
+          this.searchType = this.taskTypeList[i].type
+        }
+      }
+    },
+    // fujian(row) {
+    //   if (
+    //     row.receiveAttachmentPath === null ||
+    //     row.receiveAttachmentPath === ''
+    //   ) {
+    //     EventBus.$emit(
+    //       'warning',
+    //       this.$t('system.noticeCircular.NoInformation')
+    //     )
+    //   } else {
+    //     this.accessoryTFs = true
+    //   }
+    //   this.appendixIdss = row.receiveAttachmentPath
+    // },
+    handleExamine(row) {
+      this.$router.push({
+        name: 'salesContractExamine',
+        query: { id: row.id }
+      })
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleCloe() {
+      this.dialogViewSpareMoney = false
+    },
+    history(row) {
+      billoperatehis({ id: row.id })
+        .toPromise()
+        .then(response => {
+          this.historyList = response
+        })
+    },
+    //查找
+    find() {
+      this.currentPage = 1
+      this.getList()
+    },
+    async exportlist() {
+      const { data } = await export1(
+        {
+          compId: sessionStorage.getItem('ws-pf_compId'),
+          contractType: this.contractType,
+          currentPage: this.currentPage,
+          pageSize: this.pageSize,
+          searchType: this.searchType,
+          searchKeyWord: this.searchKeyWord,
+          startDate: this.startDate,
+          endDate: this.endDate
+        },
+        {},
+        { responseType: 'blob' }
+      ).toPromise()
+      downloadFile({
+        res: data,
+        fileName: `${this.date.year +
+          (this.date.month ? `-${this.date.month}` : '')}_销售合同`,
+        type: 'xls'
+      })
+    },
+    total() {}
+  }
+}
+</script>
+<style lang="scss" scoped>
+.connert {
+  width: 90%;
+  margin: 0 auto;
+}
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+//分页
+.el-pagination {
+  padding: 10px 15px;
+  margin-bottom: 0;
+  text-align: center;
+}
+/deep/.el-pager li.active {
+  color: #5878e8;
+  cursor: default;
+}
+/deep/.el-pager li:hover {
+  color: #5878e8;
+  cursor: default;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-button--default {
+  color: #8890b1;
+  border-color: #e8eaf1;
+}
+/deep/.base_header_layout .grid-content.right .find.el-button--primary {
+  width: 30px;
+  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;
+  width: 385px;
+}
+.completed.el-button--default {
+  border-color: #5878e8;
+  background-color: #f6f7fc;
+  color: #5878e8;
+}
+.putstorage.el-button--default,
+.deliverystorage.el-button--default {
+  border-color: #8890b1;
+  background-color: #fff;
+  color: #8890b1;
+}
+/deep/.el-table td,
+/deep/.el-table th.is-leaf {
+  border-right: 1px solid #e9ecf7;
+  text-align: center;
+}
+/deep/.el-table tr td:first-child,
+/deep/.el-table tr th.is-leaf:first-child {
+  border-left: 1px solid #e9ecf7;
+}
+.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: 150px;
+// }
+.base_header_layout .grid-content {
+  margin-top: 80px;
+}
+.el-input--small .el-input__inner {
+  margin-left: 20px;
+}
+.el-range-editor--small.el-input__inner {
+  height: 32px;
+  margin-left: -20%;
+}
+//执行样式
+.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;
+}
+.record,
+.adjustment {
+  display: inline-block;
+  color: #5878e8;
+  padding: 0 4px !important;
+  position: relative;
+  font-size: 14px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.bg-left {
+  padding-left: 30px;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+  // margin-left: 85%;
+  margin-top: 20px;
+}
+//导航条样式
+.el-col-12 {
+  width: 50%;
+  height: 60px;
+  background: #f6f7fc;
+  border-radius: 4px 4px 1px 1px;
+}
+.el-input--small .el-input__inner {
+  height: 32px;
+  line-height: 32px;
+  width: 385px;
+  margin-top: 10px;
+}
+.bg-bottom {
+  margin-left: 85%;
+}
+.but {
+  margin-left: 30%;
+  /* margin-top: -32px; */
+  overflow: auto;
+  /* float: left; */
+  /* margin-left: 1px; */
+  margin-left: -10px;
+}
+.el-input--small {
+  font-size: 13px;
+  width: 390px;
+  margin-left: 74%;
+}
+/deep/.el-table .el-table__header .cell,
+.el-table .el-table__body .cell {
+  text-align: center;
+}
+.el-scrollbar__wrap {
+  overflow-y: hidden;
+}
+.deal {
+  margin-left: 9%;
+  width: 66%;
+}
+.photo {
+  padding: 0% 34%;
+}
+.photo1 {
+  padding: 0 10%;
+}
+.photo2 {
+  padding: 0 55%;
+}
+/deep/.el-form-item--small .el-form-item__label,
+.el-form-item--small .el-form-item__content {
+  text-align: center;
+}
+hr {
+  width: 91%;
+}
+/deep/.deaal{
+ width: 66%; 
+  margin-left: 9%;
+}
+// .danjia{
+//   width: 9px;
+//   height: 9px;
+//   margin-left: 40px;
+// }
+</style>

+ 32 - 2
src/views/statisticalReport/component/routers/route.js

@@ -40,9 +40,39 @@ const statisticalReportRouter = {
           permissicon: [],
           keepAlive: true
           // module: 'procurement.sparepart.applDetail'
-          },
-      //   hidden: true
+          }
       },
+      //销售平仓报表
+      {
+        path: 'salesClosingCashierList',
+        component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/statisticalReport/salesClosingCashierList'),
+        name: 'salesClosingCashierList',
+        meta: {
+        title: 'salesClosingCashierList',
+        shortcutEntrance: 'statisticalReport',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+        }
+      },
+      // 销售出库报表统计
+    {
+      path: 'salesDeliveryReportList',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/statisticalReport/salesDeliveryReportList'),
+      name: 'salesDeliveryReportList',
+      meta: {
+        title: 'salesDeliveryReportList',
+        shortcutEntrance: 'statisticalReport',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      }
+    },
+    
   ],
 
 };

+ 45 - 68
src/views/statisticalReport/purchaseClosingCashierList.vue

@@ -29,17 +29,17 @@
           <ws-button type="primary" @click="handleAdd()">通过</ws-button>
           <ws-button type="primary" @click="handleAdd()">审核</ws-button>
           <ws-button type="primary" @click="dialogFormVisible1=true">付款</ws-button>
-           <el-dialog
-            width="30%"
+          <el-dialog
+            width="25%"
             title="付款"
             :visible.sync="dialogFormVisible1"
             :append-to-body="true"
           >
             <el-form :model="form">
-              <el-form-item label="本次付款金额(元)" :label-width="formLabelWidth">
-                <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+              <el-form-item label="未付金额(元)" :label-width="formLabelWidth">
+                <!-- <el-input v-model="form.region" autocomplete="off" class="deal"></el-input> -->
               </el-form-item>
-              <el-form-item label="补充金额" :label-width="formLabelWidth">
+              <el-form-item label="本次收款金额(元)" :label-width="formLabelWidth">
                 <el-input
                   v-model="form.region"
                   autocomplete="off"
@@ -62,15 +62,15 @@
                 />
               </el-form-item>
               <el-form-item label="上传付款截图" :label-width="formLabelWidth">
-              <el-upload
-                action="https://www.zthymaoyi.com/upload/admin"
-                list-type="picture-card"
-                :on-preview="handlePictureCardPreview"
-                :on-remove="handleRemove"
-                class="photo2"
-              >
-                <i class="el-icon-plus"></i>
-              </el-upload>
+                <el-upload
+                  action="https://www.zthymaoyi.com/upload/admin"
+                  list-type="picture-card"
+                  :on-preview="handlePictureCardPreview"
+                  :on-remove="handleRemove"
+                  class="photo2"
+                >
+                  <i class="el-icon-plus"></i>
+                </el-upload>
               </el-form-item>
             </el-form>
             <div slot="footer" class="dialog-footer">
@@ -78,22 +78,23 @@
               <el-button type="primary" @click="dialogFormVisible1= false">确 定</el-button>
             </div>
           </el-dialog>
-           <ws-button type="primary" @click="dialogFormVisible2=true">收款</ws-button>
-                <el-dialog
-            width="30%"
+          <!-- 收款 -->
+          <ws-button type="primary" @click="dialogFormVisible2=true">收款</ws-button>
+          <el-dialog
+            width="25%"
             title="收款"
             :visible.sync="dialogFormVisible2"
             :append-to-body="true"
           >
             <el-form :model="form">
-              <el-form-item label="本次收款金额(元)" :label-width="formLabelWidth">
+              <el-form-item label="未收金额(元)" :label-width="formLabelWidth">
                 <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
               </el-form-item>
-              <el-form-item label="补充金额" :label-width="formLabelWidth">
+              <el-form-item label="本次收款金额(元)" :label-width="formLabelWidth">
                 <el-input
                   v-model="form.region"
                   autocomplete="off"
-                  placeholder="请输入补充金额"
+                  placeholder="请输入本次收款金额"
                   class="deal"
                 ></el-input>
               </el-form-item>
@@ -112,39 +113,22 @@
                 />
               </el-form-item>
               <el-form-item label="上传收款截图" :label-width="formLabelWidth">
-              <el-upload
-                action="https://www.zthymaoyi.com/upload/admin"
-                list-type="picture-card"
-                :on-preview="handlePictureCardPreview"
-                :on-remove="handleRemove"
-                class="photo2"
-              >
-                <i class="el-icon-plus"></i>
-              </el-upload>
+                <el-upload
+                  action="https://www.zthymaoyi.com/upload/admin"
+                  list-type="picture-card"
+                  :on-preview="handlePictureCardPreview"
+                  :on-remove="handleRemove"
+                  class="photo2"
+                >
+                  <i class="el-icon-plus"></i>
+                </el-upload>
               </el-form-item>
             </el-form>
             <div slot="footer" class="dialog-footer">
               <el-button @click="dialogFormVisible2 = false">取 消</el-button>
-              <el-button type="primary" @click="dialogFormVisible2= false">确 定</el-button>
+              <el-button type="primary" @click="dialogFormVisible2= false">提 交</el-button>
             </div>
           </el-dialog>
-          <template slot="right">
-            <span style="width: 70px; display: inline-block; color: #8890b1">状态:</span>
-            <ws-select
-              v-model="searchTypeText"
-              class="typeselect"
-              @change="selecttaskType"
-              :value="searchType"
-            >
-              <ws-option
-                v-for="item in taskTypeList"
-                :key="item.value"
-                :label="item.value"
-                :value="item.value"
-                style="color: #8890b1"
-              />
-            </ws-select>
-          </template>
           <ws-select
             v-model="searchKeyWord"
             placeholder="可按照合同编号和任务编号进行查找"
@@ -162,8 +146,7 @@
           height="780"
           @selection-change="handleSelectionChange"
         >
-        
-         <el-table-column type="selection" width="55"></el-table-column>
+          <el-table-column type="selection" width="55"></el-table-column>
           <el-table-column type="index" label="序号" width="50"></el-table-column>
           <el-table-column class="table_td" prop="contractNo" label="合同编号"></el-table-column>
           <el-table-column class="table_td" prop="procurementPlan" label="平仓日期"></el-table-column>
@@ -181,8 +164,7 @@
           <el-table-column class="table_td" prop="closedPosition" label="收款日期"></el-table-column>
           <el-table-column class="table_td" label="客户"></el-table-column>
           <el-table-column class="table_td" label="库点"></el-table-column>
-          <el-table-column prop="status" label="状态">
-          </el-table-column>
+          <el-table-column prop="status" label="状态"></el-table-column>
         </el-table>
 
         <!-- 页数 -->
@@ -202,9 +184,7 @@
 </template>
 <script>
 import {
-  detailsList,
-  chengList,
-  closePositionList
+  getpurchreceipt
 } from '@/model/purchasingManagement/index'
 import { downloadFile } from '@/utils/batchDown'
 import Pagination from '@/components/Pagination'
@@ -276,13 +256,7 @@ export default {
       enter: {
         closePositionList: []
       },
-      // taskTypeList:[
-      //   {value:'待审核',type:1},
-      //   {value:'已完成',type:2},
-      //   {value:'已通过',type:3},
-      //   {value:'已成交',type:4},
-      // ],
-
+      
       // 提交类型
       submitType: true,
       size: 10,
@@ -324,7 +298,7 @@ export default {
         type: 'warning'
       }).then(() => {
         console.log(23456678790)
-        
+
         chengList(this.warehouseList)
           .toPromise()
           .then(response => {
@@ -339,12 +313,10 @@ export default {
       })
     },
     getList() {
-      console.log(123456)
-      detailsList({
+      getpurchreceipt({
         compId: sessionStorage.getItem('ws-pf_compId'),
         currentPage: this.currentPage,
         pageSize: this.pageSize,
-        pcFlag: this.pcFlag,
         searchType: this.searchType,
         searchKeyWord: this.searchKeyWord
       })
@@ -363,8 +335,8 @@ export default {
     //     })
     // },
     handleSelectionChange(val) {
-        this.multipleSelection = val;
-      },
+      this.multipleSelection = val
+    },
     handleRemove(file) {
       console.log(file)
     },
@@ -795,7 +767,7 @@ export default {
   padding: 0 10%;
 }
 .photo2 {
-  padding: 0 17%;
+  padding: 0 12%;
 }
 /deep/.el-form-item--small .el-form-item__label,
 .el-form-item--small .el-form-item__content {
@@ -808,6 +780,11 @@ hr {
   width: 66%;
   margin-left: 9%;
 }
+.el-date-editor.el-input,
+.el-date-editor.el-input__inner,
+.el-input-number--small {
+  width: 123% !important;
+}
 // .danjia{
 //   width: 9px;
 //   height: 9px;

+ 139 - 76
src/views/statisticalReport/purchaseReceiptStatisticsList.vue

@@ -2,31 +2,108 @@
 <template>
   <div class="container">
     <el-scrollbar style="height:100%">
-      <el-scrollbar style="width:130%">
-        <el-row>
-          <el-col :span="12">
-            <h2 class="bg-left title"></h2>
-          </el-col>
-          <el-col :span="12" class="bg-right">
-            <el-button class="bg-bottom" type="primary" size="small" @click="revert()">
-              <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> -->
         <div>
           <ws-button type="primary" @click="handleAdd()">待审核</ws-button>
           <ws-button type="primary" @click="handleAdd()">待结算</ws-button>
           <ws-button type="primary" @click="handleAdd()">已结算</ws-button>
           <ws-button type="primary" @click="handleAdd()">全部</ws-button>
-            <ws-button type="primary" @click="handleAdd()">通过</ws-button>
+          <ws-button type="primary" @click="handleAdd()">通过</ws-button>
           <ws-button type="primary" @click="handleAdd()">驳回</ws-button>
+          <ws-button type="primary" @click="dialogFormVisible1=true">付款</ws-button>
+          <el-dialog
+            width="25%"
+            title="付款"
+            :visible.sync="dialogFormVisible1"
+            :append-to-body="true"
+          >
+            <el-form :model="form">
+              <el-form-item label="未付金额(元)" :label-width="formLabelWidth">
+                <!-- <el-input v-model="form.region" autocomplete="off" class="deal"></el-input> -->
+              </el-form-item>
+              <el-form-item label="补充金额" :label-width="formLabelWidth">
+                <el-input
+                  v-model="form.region"
+                  autocomplete="off"
+                  placeholder="请输入补充金额"
+                  class="deal"
+                ></el-input>
+              </el-form-item>
+              <el-form-item
+                label="付款日期"
+                prop="submissionDate"
+                :label-width="formLabelWidth"
+                class="deal"
+              >
+                <ws-date-picker
+                  v-model="deptBudgetList.submissionDate"
+                  type="date"
+                  placeholder="请选择付款日期"
+                  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"
+                  :on-preview="handlePictureCardPreview"
+                  :on-remove="handleRemove"
+                  class="photo2"
+                >
+                  <i class="el-icon-plus"></i>
+                </el-upload>
+              </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+              <el-button @click="dialogFormVisible1 = false">取 消</el-button>
+              <el-button type="primary" @click="dialogFormVisible1= false">提 交</el-button>
+            </div>
+          </el-dialog>
+          <!-- 开发票 -->
+          <ws-button type="primary" @click="dialogFormVisible2=true">开发票</ws-button>
+          <el-dialog
+            width="30%"
+            title="批量开发票"
+            :visible.sync="dialogFormVisible2"
+            :append-to-body="true"
+          >
+            <el-form :model="form">
+              <el-form-item label="发票类型" :label-width="formLabelWidth">
+                <el-select v-model="form.name" autocomplete="off" class="deal"></el-select>
+              </el-form-item>
+              <el-form-item label="发票金额(元)" :label-width="formLabelWidth">
+                <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+              </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+              <el-button @click="dialogFormVisible2 = false">取 消</el-button>
+              <el-button type="primary" @click="dialogFormVisible2 = false">提 交</el-button>
+            </div>
+          </el-dialog>
+          <!-- 开发票 -->
+          <el-dialog
+            width="30%"
+            title="开发票"
+            :visible.sync="dialogFormVisible2"
+            :append-to-body="true"
+          >
+            <el-form :model="form">
+              <el-form-item label="发票类型" :label-width="formLabelWidth">
+                <el-select v-model="form.name" autocomplete="off" class="deal"></el-select>
+              </el-form-item>
+              <el-form-item label="可开发票金额(元)" :label-width="formLabelWidth">
+                <!-- <el-input v-model="form.region" autocomplete="off" class="deal"></el-input> -->
+              </el-form-item>
+              <el-form-item label="实际发票金额(元)" :label-width="formLabelWidth">
+                <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+              </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+              <el-button @click="dialogFormVisible2 = false">取 消</el-button>
+              <el-button type="primary" @click="dialogFormVisible2 = false">提 交</el-button>
+            </div>
+          </el-dialog>
           <ws-button type="primary" @click="dialogFormVisible5=true">修改</ws-button>
           <el-dialog
             width="30%"
@@ -53,7 +130,7 @@
             </el-form>
             <div slot="footer" class="dialog-footer">
               <el-button @click="dialogFormVisible5 = false">取 消</el-button>
-              <el-button type="primary" @click="dialogFormVisible5 = false">确认</el-button>
+              <el-button type="primary" @click="dialogFormVisible5 = false">提 交</el-button>
             </div>
           </el-dialog>
           <ws-button type="primary" @click="dialogFormVisible11 = true">补货结转</ws-button>
@@ -79,23 +156,6 @@
             </div>
           </el-dialog>
           <ws-button type="primary" @click="handleAdd()">审核</ws-button>
-          <template slot="right">
-            <span style="width: 70px; display: inline-block; color: #8890b1">状态:</span>
-            <ws-select
-              v-model="searchTypeText"
-              class="typeselect"
-              @change="selecttaskType"
-              :value="searchType"
-            >
-              <ws-option
-                v-for="item in taskTypeList"
-                :key="item.value"
-                :label="item.value"
-                :value="item.value"
-                style="color: #8890b1"
-              />
-            </ws-select>
-          </template>
           <ws-select
             v-model="searchKeyWord"
             placeholder="可按照合同编号和任务编号进行查找"
@@ -116,34 +176,33 @@
           style="width: 100%; margin-top: 20px"
           height="780"
         >
-           <el-table-column type="selection" width="55"></el-table-column>
+          <el-table-column type="selection" width="55"></el-table-column>
           <el-table-column type="index" label="序号" width="50"></el-table-column>
           <el-table-column class="table_td" prop="contractNo" label="合同编号"></el-table-column>
-          <el-table-column class="table_td" prop="procurementPlan" label="货名"></el-table-column>
-          <el-table-column class="table_td" prop="customer" label="仓位号"></el-table-column>
-          <el-table-column class="table_td" prop="unitPrice" label="车牌号"></el-table-column>
-          <el-table-column class="table_td" prop="basis" label="入库日期"></el-table-column>
-          <el-table-column class="table_td" prop="freezingDeposit" label="蛋白(%)>="></el-table-column>
+          <el-table-column class="table_td" prop="goodsName" label="货名"></el-table-column>
+          <el-table-column class="table_td" prop="positionNumber" label="仓位号"></el-table-column>
+          <el-table-column class="table_td" prop="carNo" label="车牌号"></el-table-column>
+          <el-table-column class="table_td" prop="warehousingDate" label="入库日期"></el-table-column>
+          <el-table-column class="table_td" prop="protein" label="蛋白(%)>="></el-table-column>
           <el-table-column class="table_td" prop="defaultDeposit" label="水分(%)>="></el-table-column>
-          <el-table-column class="table_td" prop="unloadingCharge" label="单价(元/吨)"></el-table-column>
-          <el-table-column class="table_td" prop="invoiceFee" label="基差(元/吨)"></el-table-column>
-          <el-table-column class="table_td" prop="send" label="卸车费(元/吨)"></el-table-column>
-          <el-table-column class="table_td" prop="stockInQuantity" label="发票费(元/吨)"></el-table-column>
-          <el-table-column class="table_td" prop="openPosition" label="扣款(元/吨)"></el-table-column>
-          <el-table-column class="table_td" prop="closedPosition" label="结算单价(元/吨)"></el-table-column>
-          <el-table-column class="table_td" prop=" cumulativeTurnover" label="净重(吨)"></el-table-column>
-          <el-table-column class="table_td" label="应付金额(元)" prop="type"></el-table-column>
-          <el-table-column class="table_td" label="已付金额(元)"></el-table-column>
-          <el-table-column class="table_td" label="未付金额(元)" prop="type"></el-table-column>
-          <el-table-column class="table_td" label="付款日期"></el-table-column>
-          <el-table-column class="table_td" label="结转"></el-table-column>
-          <el-table-column class="table_td" label="客户确认"></el-table-column>
-          <el-table-column class="table_td" label="客户"></el-table-column>
-          <el-table-column class="table_td" label="库点"></el-table-column>
-          <el-table-column class="table_td" label="发票类型"></el-table-column>
-          <el-table-column class="table_td" label="已开发票(元)"></el-table-column>
-          <el-table-column prop="status" label="状态">
-          </el-table-column>
+          <el-table-column class="table_td" prop="unitPrice" label="单价(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop="basisPrice" label="基差(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop="unloadingCharge" label="卸车费(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop="invoiceFee" label="发票费(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop="deductionAmount" label="扣款(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop="settlementPrice" label="结算单价(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop="netWeight" label="净重(吨)"></el-table-column>
+          <el-table-column class="table_td" label="应付金额(元)" prop="amountIngPayable"></el-table-column>
+          <el-table-column class="table_td" label="已付金额(元)" prop="amountEdPayable"></el-table-column>
+          <el-table-column class="table_td" label="未付金额(元)" prop="amountNotPayable"></el-table-column>
+          <el-table-column class="table_td" label="付款日期"  prop="paymentDate"></el-table-column>
+          <el-table-column class="table_td" label="结转" prop="carryForward"></el-table-column>
+          <el-table-column class="table_td" label="客户确认"  prop="customerConfirmationStatus"></el-table-column>
+          <el-table-column class="table_td" label="客户" prop="customerName"></el-table-column>
+          <el-table-column class="table_td" label="库点"  prop="warehouseName"></el-table-column>
+          <el-table-column class="table_td" label="发票类型"  prop="invoiceTypeKey"></el-table-column>
+          <el-table-column class="table_td" label="已开发票(元)"  prop="alreadyInvoice"></el-table-column>
+          <el-table-column label="状态" prop="status"></el-table-column>
         </el-table>
 
         <!-- 页数 -->
@@ -155,7 +214,6 @@
           layout="total, sizes, prev, pager, next, jumper"
           :total="deptBudgetTotal"
         ></el-pagination>
-      </el-scrollbar>
     </el-scrollbar>
   </div>
 
@@ -163,10 +221,8 @@
 </template>
 <script>
 import {
-  detailsList,
-  chengList,
-  closePositionList
-} from '@/model/purchasingManagement/index'
+  getpurchreceipt
+} from '@/model/statisticalReport/index'
 import { downloadFile } from '@/utils/batchDown'
 import Pagination from '@/components/Pagination'
 import WsUpload from '@/components/WsUpload'
@@ -197,7 +253,7 @@ export default {
       dialogFormVisible6: false,
       dialogFormVisible7: false,
       dialogFormVisible8: false,
-      dialogFormVisible11 :false,
+      dialogFormVisible11: false,
       dialogVisible: false,
 
       form: {
@@ -261,6 +317,9 @@ export default {
       deptCircularPage: {},
       warehouseList: [],
       deptBudgetList: {},
+       currentPage: 1,
+      pageSize: 10,
+      searchType: 1,
       pcFlag: 1,
       historyList: [],
       pickerBeginDateBefore: {
@@ -273,6 +332,7 @@ export default {
   },
   activated() {
     // this.loaddata()
+    console.log(1111)
     this.getList()
     this.showType = this.isShow
   },
@@ -313,12 +373,10 @@ export default {
       })
     },
     getList() {
-      console.log(123456)
-      detailsList({
+      getpurchreceipt({
         compId: sessionStorage.getItem('ws-pf_compId'),
         currentPage: this.currentPage,
         pageSize: this.pageSize,
-        pcFlag: this.pcFlag,
         searchType: this.searchType,
         searchKeyWord: this.searchKeyWord
       })
@@ -328,8 +386,8 @@ export default {
         })
     },
     handleSelectionChange(val) {
-        this.multipleSelection = val;
-      },
+      this.multipleSelection = val
+    },
     handleRemove(file) {
       console.log(file)
     },
@@ -749,9 +807,9 @@ export default {
 .el-scrollbar__wrap {
   overflow-y: hidden;
 }
-.deal {
-  margin-left: 9%;
-  width: 66%;
+/deep/.deal {
+  margin-left: 0%;
+  width: 64%;
 }
 .photo {
   padding: 0% 34%;
@@ -760,7 +818,7 @@ export default {
   padding: 0 10%;
 }
 .photo2 {
-  padding: 0 55%;
+  padding: 0 12%;
 }
 /deep/.el-form-item--small .el-form-item__label,
 .el-form-item--small .el-form-item__content {
@@ -773,6 +831,11 @@ hr {
   width: 66%;
   margin-left: 9%;
 }
+.el-date-editor.el-input,
+.el-date-editor.el-input__inner,
+.el-input-number--small {
+  width: 123% !important;
+}
 // .danjia{
 //   width: 9px;
 //   height: 9px;

+ 819 - 0
src/views/statisticalReport/salesClosingCashierList.vue

@@ -0,0 +1,819 @@
+<!--销售平仓报表-->
+<template>
+  <div class="container">
+    <el-scrollbar style="height:100%">
+      <el-scrollbar style="width:130%">
+        <el-row>
+          <el-col :span="12">
+            <h2 class="bg-left title"></h2>
+          </el-col>
+          <el-col :span="12" class="bg-right">
+            <el-button class="bg-bottom" type="primary" size="small" @click="revert()">
+              <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> -->
+        <div>
+          <ws-button type="primary" @click="handleAdd()">待审核</ws-button>
+          <ws-button type="primary" @click="handleAdd()">待结算</ws-button>
+          <ws-button type="primary" @click="handleAdd()">已结算</ws-button>
+          <ws-button type="primary" @click="handleAdd()">全部</ws-button>
+          <ws-button type="primary" @click="handleAdd()">驳回</ws-button>
+          <ws-button type="primary" @click="handleAdd()">通过</ws-button>
+          <ws-button type="primary" @click="handleAdd()">审核</ws-button>
+          <ws-button type="primary" @click="dialogFormVisible1=true">付款</ws-button>
+          <el-dialog
+            width="25%"
+            title="付款"
+            :visible.sync="dialogFormVisible1"
+            :append-to-body="true"
+          >
+            <el-form :model="form">
+              <el-form-item label="未付金额(元)" :label-width="formLabelWidth">
+                <!-- <el-input v-model="form.region" autocomplete="off" class="deal"></el-input> -->
+              </el-form-item>
+              <el-form-item label="本次付款金额(元)" :label-width="formLabelWidth">
+                <el-input
+                  v-model="form.region"
+                  autocomplete="off"
+                  placeholder="请输入本次付款金额"
+                  class="deal"
+                ></el-input>
+              </el-form-item>
+              <el-form-item
+                label="付款日期"
+                prop="submissionDate"
+                :label-width="formLabelWidth"
+                class="deal"
+              >
+                <ws-date-picker
+                  v-model="deptBudgetList.submissionDate"
+                  type="date"
+                  placeholder="请选择付款日期"
+                  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"
+                  :on-preview="handlePictureCardPreview"
+                  :on-remove="handleRemove"
+                  class="photo2"
+                >
+                  <i class="el-icon-plus"></i>
+                </el-upload>
+              </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+              <el-button @click="dialogFormVisible1 = false">取 消</el-button>
+              <el-button type="primary" @click="dialogFormVisible1= false">提 交</el-button>
+            </div>
+          </el-dialog>
+          <ws-button type="primary" @click="dialogFormVisible2=true">收款</ws-button>
+          <el-dialog
+            width="25%"
+            title="收款"
+            :visible.sync="dialogFormVisible2"
+            :append-to-body="true"
+          >
+            <el-form :model="form">
+              <el-form-item label="未收金额(元)" :label-width="formLabelWidth">
+                <!-- <el-input v-model="form.region" autocomplete="off" class="deal"></el-input> -->
+              </el-form-item>
+              <el-form-item label="本次收款金额(元)" :label-width="formLabelWidth">
+                <el-input
+                  v-model="form.region"
+                  autocomplete="off"
+                  placeholder="请输入本次收款金额"
+                  class="deal"
+                ></el-input>
+              </el-form-item>
+              <el-form-item
+                label="付款日期"
+                prop="submissionDate"
+                :label-width="formLabelWidth"
+                class="deal"
+              >
+                <ws-date-picker
+                  v-model="deptBudgetList.submissionDate"
+                  type="date"
+                  placeholder="请选择付款日期"
+                  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"
+                  :on-preview="handlePictureCardPreview"
+                  :on-remove="handleRemove"
+                  class="photo2"
+                >
+                  <i class="el-icon-plus"></i>
+                </el-upload>
+              </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+              <el-button @click="dialogFormVisible2 = false">取 消</el-button>
+              <el-button type="primary" @click="dialogFormVisible2= false">提 交</el-button>
+            </div>
+          </el-dialog>
+          <template slot="right">
+            <span style="width: 70px; display: inline-block; color: #8890b1">状态:</span>
+            <ws-select
+              v-model="searchTypeText"
+              class="typeselect"
+              @change="selecttaskType"
+              :value="searchType"
+            >
+              <ws-option
+                v-for="item in taskTypeList"
+                :key="item.value"
+                :label="item.value"
+                :value="item.value"
+                style="color: #8890b1"
+              />
+            </ws-select>
+          </template>
+          <ws-select
+            v-model="searchKeyWord"
+            placeholder="可按照合同编号和任务编号进行查找"
+            clearable
+            maxlength="500"
+            type="input"
+            class="findValue"
+          ></ws-select>
+        </div>
+
+        <el-table
+          class="wenzi"
+          :data="warehouseList.records"
+          style="width: 100%; margin-top: 20px"
+          height="780"
+          @selection-change="handleSelectionChange"
+        >
+          <el-table-column type="selection" width="55"></el-table-column>
+          <el-table-column type="index" label="序号" width="50"></el-table-column>
+          <el-table-column class="table_td" prop="contractNo" label="合同编号"></el-table-column>
+          <el-table-column class="table_td" prop="procurementPlan" label="平仓日期"></el-table-column>
+          <el-table-column class="table_td" prop="customer" label="平仓数量(吨)"></el-table-column>
+          <el-table-column class="table_td" prop="unitPrice" label="成交价格(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop="basis" label="平仓价格(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop="freezingDeposit" label="基差(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop="defaultDeposit" label="应付金额(元)"></el-table-column>
+          <el-table-column class="table_td" prop="unloadingCharge" label="已付金额(元)"></el-table-column>
+          <el-table-column class="table_td" prop="unloadingCharge" label="未付金额(元)"></el-table-column>
+          <el-table-column class="table_td" prop="invoiceFee" label="付款日期"></el-table-column>
+          <el-table-column class="table_td" prop="send" label="应收金额(元)"></el-table-column>
+          <el-table-column class="table_td" prop="stockInQuantity" label="已收金额(元)"></el-table-column>
+          <el-table-column class="table_td" prop="openPosition" label="未收金额(元)"></el-table-column>
+          <el-table-column class="table_td" prop="closedPosition" label="收款日期"></el-table-column>
+          <el-table-column class="table_td" label="客户"></el-table-column>
+          <el-table-column class="table_td" label="库点"></el-table-column>
+          <el-table-column prop="status" label="状态"></el-table-column>
+        </el-table>
+
+        <!-- 页数 -->
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-size="pageSize"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="deptBudgetTotal"
+        ></el-pagination>
+      </el-scrollbar>
+    </el-scrollbar>
+  </div>
+
+  <!-- </div> -->
+</template>
+<script>
+import {
+  detailsList,
+  chengList,
+  closePositionList
+} from '@/model/purchasingManagement/index'
+import { downloadFile } from '@/utils/batchDown'
+import Pagination from '@/components/Pagination'
+import WsUpload from '@/components/WsUpload'
+import { dayjs, fmoney, EventBus } from 'base-core-lib'
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+    Pagination
+  },
+  watch: {
+    vesselId(val) {
+      this.getList()
+    },
+    isShow(val) {
+      this.showType = val
+    }
+  },
+
+  data() {
+    return {
+      checked: true,
+      dialogFormVisible1: false,
+      dialogFormVisible2: false,
+      dialogVisible: false,
+
+      form: {
+        transactionPrice: '',
+        transactionsNumber: '',
+        basis: '',
+        submissionDate: ''
+        // delivery: false,
+        // type: [],
+        // resource: '',
+        // desc: ''
+      },
+      formLabelWidth: '120px',
+
+      barWidth: 0,
+      barHeight: 0,
+      retioX: 1,
+      ratioY: 1,
+      isTaped: false,
+      isHover: false,
+      isShow: !this.autohide,
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      pickerOptions: {},
+      value2: '',
+      deptBudgetTotal: 0,
+      currentPage: 1,
+      tranTypeKey: 1,
+      pageSize: 10,
+      searchType: 1,
+      searchTypeText: '未完成',
+      searchKeyWord: '',
+      contractType: 2,
+      enter: {
+        closePositionList: []
+      },
+      // taskTypeList:[
+      //   {value:'待审核',type:1},
+      //   {value:'已完成',type:2},
+      //   {value:'已通过',type:3},
+      //   {value:'已成交',type:4},
+      // ],
+
+      // 提交类型
+      submitType: true,
+      size: 10,
+      spanArr: [],
+      contractNo: '',
+      inOutTaskNo: '',
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      warehouseList: [],
+      deptBudgetList: {},
+      pcFlag: 1,
+      historyList: [],
+      pickerBeginDateBefore: {
+        disabledDate: time => {
+          return time.getTime() > Date.now()
+        }
+      },
+      accessoryTFs: false
+    }
+  },
+  activated() {
+    // this.loaddata()
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    //成交
+    submit() {
+      if (!this.warehouseList.transactionPrice) {
+        this.$message({
+          message: '成交价不能为空',
+          type: 'warning'
+        })
+        return
+      }
+      this.$confirm(`确定提交成交信息`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning'
+      }).then(() => {
+        console.log(23456678790)
+
+        chengList(this.warehouseList)
+          .toPromise()
+          .then(response => {
+            this.$message.success('添加成功')
+
+            // this.$router.go(-1)
+          })
+          .catch(() => {
+            console.log(1111111111)
+            return false
+          })
+      })
+    },
+    getList() {
+      console.log(123456)
+      detailsList({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        currentPage: this.currentPage,
+        pageSize: this.pageSize,
+        pcFlag: this.pcFlag,
+        searchType: this.searchType,
+        searchKeyWord: this.searchKeyWord
+      })
+        .toPromise()
+        .then(response => {
+          this.warehouseList = response
+        })
+    },
+    // loaddata(){
+    //   chengList({
+    //      compId: sessionStorage.getItem('ws-pf_compId'),
+    //   })
+    //   .toPromise()
+    //   .then(response => {
+    //       this.warehouseList = response
+    //     })
+    // },
+    handleSelectionChange(val) {
+      this.multipleSelection = val
+    },
+    handleRemove(file) {
+      console.log(file)
+    },
+    handlePictureCardPreview(file) {
+      this.dialogImageUrl = file.url
+      this.dialogVisible = true
+    },
+    handleDownload(file) {
+      console.log(file)
+    },
+
+    // statusquery(state) {
+    //   this.searchType = state
+    //   this.getList()
+    // },
+    // delivery(item) {
+    //   this.$router.push({
+    //     path: 'warehouseManagementDelivery',
+    //     query: {
+    //       baseId: item.warehouseId,
+    //       positionId: item.binNumberId,
+    //       warehouseName: item.warehouseName,
+    //       binNumber: item.binNumber,
+    //       capacity: item.capacity
+    //     }
+    //   })
+    // },
+    getSpanArr(data) {
+      let that = this
+
+      //页面展示的数据,不一定是全部的数据,所以每次都清空之前存储的 保证遍历的数据是最新的数据。以免造成数据渲染混乱
+
+      that.spanArr = []
+
+      that.pos = 0
+
+      // //遍历数据
+
+      data.forEach((item, index) => {
+        //判断是否是第一项
+
+        if (index === 0) {
+          this.spanArr.push(1)
+          this.pos = 0
+        } else {
+          //不是第一项时,就根据标识去存储
+          if (data[index].warehouseNumViewList.length > 1) {
+            查找到符合条件的数据时每次要把之前存储的数据 + 1
+            this.spanArr[this.pos] = data[index].warehouseNumViewList.length
+            this.spanArr.push(0)
+          } else {
+            // 没有符合的数据时,要记住当前的index
+            this.spanArr.push(1)
+            this.pos = index
+          }
+        }
+      })
+    },
+    //查看
+    handleLook(row) {
+      this.$router.push({
+        path: 'warehouseManagementPutOutLook',
+        query: {
+          relevanceId: row.relevanceId
+        }
+      })
+    },
+    //返回
+    revert() {
+      this.$router.push({ path: 'warehouseManagementList' })
+    },
+    dateFormat(fmt, date) {
+      let ret
+      const opt = {
+        'Y+': date.getFullYear().toString(), // 年
+        'm+': (date.getMonth() + 1).toString(), // 月
+        'd+': date.getDate().toString(), // 日
+        'H+': date.getHours().toString() // 时
+        // "M+": date.getMinutes().toString(),         // 分
+        // "S+": date.getSeconds().toString()          // 秒
+        // 有其他格式化字符需求可以继续添加,必须转化成字符串
+      }
+      for (let k in opt) {
+        ret = new RegExp('(' + k + ')').exec(fmt)
+        if (ret) {
+          fmt = fmt.replace(
+            ret[1],
+            ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
+          )
+        }
+      }
+      return fmt
+    },
+    handleClose() {
+      this.accessoryTFs = false
+    },
+    handleSizeChange(val) {
+      console.log(`每页 ${val} 条`)
+      this.pageSize = val
+      this.getList()
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val
+      console.log(`当前页: ${val}`)
+      this.getList()
+    },
+    editClick(row) {
+      var status = ''
+      if (row.status == '待审核' || row.status == '已完成') {
+        status = '执行中'
+      } else if (row.status == '执行中') {
+        status = '已完成'
+      }
+      //cancelButtonClass: "btn-custom-cancel"
+      this.$confirm(`是否将状态改为${status}`, {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(() => {
+          alsostate({ id: row.id })
+            .toPromise()
+            .then(response => {
+              this.$notify.success({
+                title: '成功',
+                message: '状态修改成功'
+              })
+              this.getList()
+            })
+            .catch(response => {
+              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    selecttaskType(e) {
+      for (var i = 0; i < this.taskTypeList.length; i++) {
+        if (this.taskTypeList[i].value == e) {
+          this.searchType = this.taskTypeList[i].type
+        }
+      }
+    },
+    // fujian(row) {
+    //   if (
+    //     row.receiveAttachmentPath === null ||
+    //     row.receiveAttachmentPath === ''
+    //   ) {
+    //     EventBus.$emit(
+    //       'warning',
+    //       this.$t('system.noticeCircular.NoInformation')
+    //     )
+    //   } else {
+    //     this.accessoryTFs = true
+    //   }
+    //   this.appendixIdss = row.receiveAttachmentPath
+    // },
+    handleExamine(row) {
+      this.$router.push({
+        name: 'salesContractExamine',
+        query: { id: row.id }
+      })
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleCloe() {
+      this.dialogViewSpareMoney = false
+    },
+    history(row) {
+      billoperatehis({ id: row.id })
+        .toPromise()
+        .then(response => {
+          this.historyList = response
+        })
+    },
+    //查找
+    find() {
+      this.currentPage = 1
+      this.getList()
+    },
+    async exportlist() {
+      const { data } = await export1(
+        {
+          compId: sessionStorage.getItem('ws-pf_compId'),
+          contractType: this.contractType,
+          currentPage: this.currentPage,
+          pageSize: this.pageSize,
+          searchType: this.searchType,
+          searchKeyWord: this.searchKeyWord,
+          startDate: this.startDate,
+          endDate: this.endDate
+        },
+        {},
+        { responseType: 'blob' }
+      ).toPromise()
+      downloadFile({
+        res: data,
+        fileName: `${this.date.year +
+          (this.date.month ? `-${this.date.month}` : '')}_采购合同`,
+        type: 'xls'
+      })
+    },
+    total() {}
+  }
+}
+</script>
+<style lang="scss" scoped>
+.connert {
+  width: 90%;
+  margin: 0 auto;
+}
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+//分页
+.el-pagination {
+  padding: 10px 15px;
+  margin-bottom: 0;
+  text-align: center;
+}
+/deep/.el-pager li.active {
+  color: #5878e8;
+  cursor: default;
+}
+/deep/.el-pager li:hover {
+  color: #5878e8;
+  cursor: default;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-button--default {
+  color: #8890b1;
+  border-color: #e8eaf1;
+}
+/deep/.base_header_layout .grid-content.right .find.el-button--primary {
+  width: 30px;
+  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;
+  width: 385px;
+}
+.completed.el-button--default {
+  border-color: #5878e8;
+  background-color: #f6f7fc;
+  color: #5878e8;
+}
+.putstorage.el-button--default,
+.deliverystorage.el-button--default {
+  border-color: #8890b1;
+  background-color: #fff;
+  color: #8890b1;
+}
+/deep/.el-table td,
+/deep/.el-table th.is-leaf {
+  border-right: 1px solid #e9ecf7;
+  text-align: center;
+}
+/deep/.el-table tr td:first-child,
+/deep/.el-table tr th.is-leaf:first-child {
+  border-left: 1px solid #e9ecf7;
+}
+.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: 150px;
+// }
+.base_header_layout .grid-content {
+  margin-top: 80px;
+}
+.el-input--small .el-input__inner {
+  margin-left: 20px;
+}
+.el-range-editor--small.el-input__inner {
+  height: 32px;
+  margin-left: -20%;
+}
+//执行样式
+.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;
+}
+.record,
+.adjustment {
+  display: inline-block;
+  color: #5878e8;
+  padding: 0 4px !important;
+  position: relative;
+  font-size: 14px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.bg-left {
+  padding-left: 30px;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+  // margin-left: 85%;
+  margin-top: 20px;
+}
+//导航条样式
+.el-col-12 {
+  width: 50%;
+  height: 60px;
+  background: #f6f7fc;
+  border-radius: 4px 4px 1px 1px;
+}
+.el-input--small .el-input__inner {
+  height: 32px;
+  line-height: 32px;
+  width: 385px;
+  margin-top: 10px;
+}
+.bg-bottom {
+  margin-left: 85%;
+}
+.but {
+  margin-left: 30%;
+  /* margin-top: -32px; */
+  overflow: auto;
+  /* float: left; */
+  /* margin-left: 1px; */
+  margin-left: -10px;
+}
+.el-input--small {
+  font-size: 13px;
+  width: 390px;
+  margin-left: 74%;
+}
+/deep/.el-table .el-table__header .cell,
+.el-table .el-table__body .cell {
+  text-align: center;
+}
+.el-scrollbar__wrap {
+  overflow-y: hidden;
+}
+/deep/.deal {
+  margin-left: 0%;
+  width: 64%;
+}
+.photo {
+  padding: 0% 34%;
+}
+.photo1 {
+  padding: 0 10%;
+}
+.photo2 {
+  padding: 0 17%;
+}
+/deep/.el-form-item--small .el-form-item__label,
+.el-form-item--small .el-form-item__content {
+  text-align: center;
+}
+hr {
+  width: 91%;
+}
+/deep/.deaal {
+  width: 66%;
+  margin-left: 9%;
+}
+.el-date-editor.el-input,
+.el-date-editor.el-input__inner,
+.el-input-number--small {
+  width: 123% !important;
+}
+// .danjia{
+//   width: 9px;
+//   height: 9px;
+//   margin-left: 40px;
+// }
+</style>

+ 952 - 0
src/views/statisticalReport/salesDeliveryReportList.vue

@@ -0,0 +1,952 @@
+//销售出库报表
+<template>
+  <div class="container">
+    <el-scrollbar style="height:100%">
+      <el-scrollbar style="width:130%">
+        <el-row>
+          <el-col :span="12">
+            <h2 class="bg-left title"></h2>
+          </el-col>
+          <el-col :span="12" class="bg-right">
+            <el-button class="bg-bottom" type="primary" size="small" @click="revert()">
+              <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> -->
+        <div>
+          <ws-button type="primary" @click="handleAdd()">待审核</ws-button>
+          <ws-button type="primary" @click="handleAdd()">待结算</ws-button>
+          <ws-button type="primary" @click="handleAdd()">已结算</ws-button>
+          <ws-button type="primary" @click="handleAdd()">全部</ws-button>
+          <ws-button type="primary" @click="dialogFormVisible1=true">最终估算价</ws-button>
+          <el-dialog
+            width="30%"
+            title="最终结算价"
+            :visible.sync="dialogFormVisible1"
+            :append-to-body="true"
+          >
+            <el-form :model="form">
+              <el-form-item label="单价" :label-width="formLabelWidth">
+                <el-input v-model="form.name" autocomplete="off" class="deal"></el-input>
+              </el-form-item>
+              <el-form-item label="基差" :label-width="formLabelWidth">
+                <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+              </el-form-item>
+              <el-form-item label="发票费" :label-width="formLabelWidth">
+                <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+              </el-form-item>
+              <el-form-item label="最终结算价" :label-width="formLabelWidth">
+                <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+              </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+              <el-button @click="dialogFormVisible1= false">取 消</el-button>
+              <el-button type="primary" @click="dialogFormVisible1 = false">提 交</el-button>
+            </div>
+          </el-dialog>
+          <ws-button type="primary" @click="handleAdd()">审核</ws-button>
+          <ws-button type="primary" @click="handleAdd()">驳回</ws-button>
+          <ws-button type="primary" @click="handleAdd()">通过</ws-button>
+          <ws-button type="primary" @click="dialogFormVisible2=true">收款</ws-button>
+          <el-dialog
+            width="25%"
+            title="收款"
+            :visible.sync="dialogFormVisible2"
+            :append-to-body="true"
+          >
+            <el-form :model="form">
+              <el-form-item label="未收金额(元)" :label-width="formLabelWidth">
+                <!-- <el-input v-model="form.region" autocomplete="off" class="deal"></el-input> -->
+              </el-form-item>
+              <el-form-item label="补充金额" :label-width="formLabelWidth">
+                <el-input
+                  v-model="form.region"
+                  autocomplete="off"
+                  placeholder="请输入补充金额"
+                  class="deal"
+                ></el-input>
+              </el-form-item>
+              <el-form-item
+                label="付款日期"
+                prop="submissionDate"
+                :label-width="formLabelWidth"
+                class="deal"
+              >
+                <ws-date-picker
+                  v-model="deptBudgetList.submissionDate"
+                  type="date"
+                  placeholder="请选择付款日期"
+                  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"
+                  :on-preview="handlePictureCardPreview"
+                  :on-remove="handleRemove"
+                  class="photo2"
+                >
+                  <i class="el-icon-plus"></i>
+                </el-upload>
+              </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+              <el-button @click="dialogFormVisible2 = false">取 消</el-button>
+              <el-button type="primary" @click="dialogFormVisible2= false">提 交</el-button>
+            </div>
+          </el-dialog>
+
+          <ws-button type="primary" @click="dialogFormVisible3=true">开发票</ws-button>
+          <el-dialog
+            width="25%"
+            title="批量开发票"
+            :visible.sync="dialogFormVisible3"
+            :append-to-body="true"
+          >
+            <el-form :model="form">
+               <div style=" margin-left: 30%;"><h4>合计发票金额{{}}元,确定提交?</h4></div>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+              <el-button @click="dialogFormVisible3 = false">取 消</el-button>
+              <el-button type="primary" @click="dialogFormVisible3 = false">提 交</el-button>
+            </div>
+          </el-dialog>
+          <!-- 开发票 -->
+          <!-- <el-dialog
+            width="30%"
+            title="开发票"
+            :visible.sync="dialogFormVisible3"
+            :append-to-body="true"
+          >
+            <el-form :model="form">
+              <el-form-item label="可开发票金额(元)" :label-width="formLabelWidth">
+                <el-input v-model="form.region" autocomplete="off" class="deal"></el-input>
+              </el-form-item>
+              <el-form-item label="实际发票金额(元)" :label-width="formLabelWidth">
+                <el-input v-model="form.region" autocomplete="off" class="deal" placeholder="请输入本次收款金额"></el-input>
+              </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+              <el-button @click="dialogFormVisible3 = false">取 消</el-button>
+              <el-button type="primary" @click="dialogFormVisible3 = false">提 交</el-button>
+            </div>
+           </el-dialog> -->
+          <ws-button type="primary" @click="dialogFormVisible4=true">付款</ws-button>
+
+          <el-dialog
+            width="25%"
+            title="付款"
+            :visible.sync="dialogFormVisible4"
+            :append-to-body="true"
+          >
+            <el-form :model="form">
+              <el-form-item label="未付金额(元)" :label-width="formLabelWidth">
+                <!-- <el-input v-model="form.region" autocomplete="off" class="deal"></el-input> -->
+              </el-form-item>
+              <el-form-item label="本次付款金额(元)" :label-width="formLabelWidth">
+                <el-input
+                  v-model="form.region"
+                  autocomplete="off"
+                  placeholder="请输入本次付款金额"
+                  class="deal"
+                ></el-input>
+              </el-form-item>
+              <el-form-item
+                label="付款日期"
+                prop="submissionDate"
+                :label-width="formLabelWidth"
+                class="deal"
+              >
+                <ws-date-picker
+                  v-model="deptBudgetList.submissionDate"
+                  type="date"
+                  placeholder="请选择付款日期"
+                  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"
+                  :on-preview="handlePictureCardPreview"
+                  :on-remove="handleRemove"
+                  class="photo2"
+                >
+                  <i class="el-icon-plus"></i>
+                </el-upload>
+              </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+              <el-button @click="dialogFormVisible4 = false">取 消</el-button>
+              <el-button type="primary" @click="dialogFormVisible4= false">提 交</el-button>
+            </div>
+          </el-dialog>
+          <ws-button type="primary" @click="dialogFormVisible5=true">收款</ws-button>
+          <el-dialog
+            width="25%"
+            title="收款"
+            :visible.sync="dialogFormVisible5"
+            :append-to-body="true"
+          >
+            <el-form :model="form">
+              <el-form-item label="未收金额(元)" :label-width="formLabelWidth">
+                <!-- <el-input v-model="form.region" autocomplete="off" class="deal"></el-input> -->
+              </el-form-item>
+              <el-form-item label="本次收款金额(元)" :label-width="formLabelWidth">
+                <el-input
+                  v-model="form.region"
+                  autocomplete="off"
+                  placeholder="请输入本次收款金额"
+                  class="deal"
+                ></el-input>
+              </el-form-item>
+              <el-form-item
+                label="付款日期"
+                prop="submissionDate"
+                :label-width="formLabelWidth"
+                class="deal"
+              >
+                <ws-date-picker
+                  v-model="deptBudgetList.submissionDate"
+                  type="date"
+                  placeholder="请选择付款日期"
+                  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"
+                  :on-preview="handlePictureCardPreview"
+                  :on-remove="handleRemove"
+                  class="photo2"
+                >
+                  <i class="el-icon-plus"></i>
+                </el-upload>
+              </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+              <el-button @click="dialogFormVisible5 = false">取 消</el-button>
+              <el-button type="primary" @click="dialogFormVisible5 = false">提 交</el-button>
+            </div>
+          </el-dialog>
+          <ws-select
+            v-model="searchKeyWord"
+            placeholder="可按照合同编号和任务编号进行查找"
+            clearable
+            maxlength="500"
+            type="input"
+            class="findValue"
+          ></ws-select>
+        </div>
+
+        <span>合同重量:吨</span>
+        <span>成交量:吨</span>
+        <span>已平仓:吨</span>
+        <span>入库量:吨</span>
+        <el-table
+          class="wenzi"
+          :data="warehouseList.records"
+          style="width: 100%; margin-top: 20px"
+          height="780"
+          show-summary
+         
+        >
+          <el-table-column type="selection" width="55"></el-table-column>
+          <el-table-column type="index" label="序号" width="50"></el-table-column>
+          <el-table-column class="table_td" prop="contractNo" label="合同编号"></el-table-column>
+          <el-table-column class="table_td" prop="procurementPlan" label="货名"></el-table-column>
+          <el-table-column class="table_td" prop="customer" label="仓位号"></el-table-column>
+          <el-table-column class="table_td" prop="unitPrice" label="车牌号"></el-table-column>
+          <el-table-column class="table_td" prop="basis" label="入库日期"></el-table-column>
+          <el-table-column class="table_td" prop="freezingDeposit" label="蛋白(%)>="></el-table-column>
+          <el-table-column class="table_td" prop="defaultDeposit" label="水分(%)>="></el-table-column>
+          <el-table-column class="table_td" prop="unloadingCharge" label="单价(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop="invoiceFee" label="基差(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop="send" label="卸车费(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop="stockInQuantity" label="发票费(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop="openPosition" label="扣款(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop="closedPosition" label="结算单价(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop=" cumulativeTurnover" label="净重(吨)"></el-table-column>
+          <el-table-column class="table_td" label="应付金额(元)" prop="type"></el-table-column>
+          <el-table-column class="table_td" label="已付金额(元)"></el-table-column>
+          <el-table-column class="table_td" label="未付金额(元)" prop="type"></el-table-column>
+          <el-table-column class="table_td" label="付款日期"></el-table-column>
+          <el-table-column class="table_td" label="结转"></el-table-column>
+          <el-table-column class="table_td" label="客户确认"></el-table-column>
+          <el-table-column class="table_td" label="客户"></el-table-column>
+          <el-table-column class="table_td" label="库点"></el-table-column>
+          <el-table-column class="table_td" label="发票类型"></el-table-column>
+          <el-table-column class="table_td" label="已开发票(元)"></el-table-column>
+          <el-table-column prop="status" label="状态"></el-table-column>
+        </el-table>
+
+        <!-- 页数 -->
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-size="pageSize"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="deptBudgetTotal"
+        ></el-pagination>
+      </el-scrollbar>
+    </el-scrollbar>
+  </div>
+
+  <!-- </div> -->
+</template>
+<script>
+import {
+  detailsList,
+  chengList,
+  closePositionList
+} from '@/model/purchasingManagement/index'
+import { downloadFile } from '@/utils/batchDown'
+import Pagination from '@/components/Pagination'
+import WsUpload from '@/components/WsUpload'
+import { dayjs, fmoney, EventBus } from 'base-core-lib'
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+    Pagination
+  },
+  watch: {
+    vesselId(val) {
+      this.getList()
+    },
+    isShow(val) {
+      this.showType = val
+    }
+  },
+
+  data() {
+    return {
+      checked: true,
+      dialogFormVisible1: false,
+      dialogFormVisible2: false,
+      dialogFormVisible3: false,
+      dialogFormVisible4: false,
+      dialogFormVisible5: false,
+      dialogFormVisible6: false,
+      dialogFormVisible7: false,
+      dialogFormVisible8: false,
+      dialogFormVisible11: false,
+      dialogVisible: false,
+
+      form: {
+        transactionPrice: '',
+        transactionsNumber: '',
+        basis: '',
+        submissionDate: ''
+        // delivery: false,
+        // type: [],
+        // resource: '',
+        // desc: ''
+      },
+      formLabelWidth: '120px',
+
+      barWidth: 0,
+      barHeight: 0,
+      retioX: 1,
+      ratioY: 1,
+      isTaped: false,
+      isHover: false,
+      isShow: !this.autohide,
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      pickerOptions: {},
+      value2: '',
+      deptBudgetTotal: 0,
+      currentPage: 1,
+      tranTypeKey: 1,
+      pageSize: 10,
+      searchType: 1,
+      searchTypeText: '未完成',
+      searchKeyWord: '',
+      contractType: 2,
+      enter: {
+        closePositionList: []
+      },
+      // 提交类型
+      submitType: true,
+      size: 10,
+      spanArr: [],
+      contractNo: '',
+      inOutTaskNo: '',
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      warehouseList: [],
+      deptBudgetList: {},
+      pcFlag: 1,
+      historyList: [],
+      pickerBeginDateBefore: {
+        disabledDate: time => {
+          return time.getTime() > Date.now()
+        }
+      },
+      accessoryTFs: false
+    }
+  },
+  activated() {
+    // this.loaddata()
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+//       getSummaries (param) {
+//   const { columns, data } = param
+//   const sums = []
+//   columns.forEach((column, index) => {
+//   if (index === 0) {
+//    sums[index] = '总计'
+//   } else if (index === 5 || index === 6) {
+//    const values = data.map(item => Number(item[column.property]))
+//    if (!values.every(value => isNaN(value))) {
+//    sums[index] = values.reduce((prev, curr) => {
+//     const value = Number(curr)
+//     if (!isNaN(value)) {
+//     return prev + curr
+//     } else {
+//     return prev
+//     }
+//    }, 0)
+//    } else {
+//    sums[index] = 'N/A'
+//    }
+//   } else {
+//    sums[index] = '--'
+//   }
+//   })
+//   return sums
+//  },
+    //成交
+    submit() {
+      if (!this.warehouseList.transactionPrice) {
+        this.$message({
+          message: '成交价不能为空',
+          type: 'warning'
+        })
+        return
+      }
+      this.$confirm(`确定提交成交信息`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning'
+      }).then(() => {
+        console.log(23456678790)
+        // chengList({
+        //    id: this.id,
+        //    compId: sessionStorage.getItem('ws-pf_compId'),
+        //    transactionPrice: this.transactionPrice,
+        //    transactionsNumber: this.transactionsNumber,
+        //    basis: this.basis,
+        // })
+        chengList(this.warehouseList)
+          .toPromise()
+          .then(response => {
+            this.$message.success('添加成功')
+
+            // this.$router.go(-1)
+          })
+          .catch(() => {
+            console.log(1111111111)
+            return false
+          })
+      })
+    },
+    getList() {
+      console.log(123456)
+      detailsList({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        currentPage: this.currentPage,
+        pageSize: this.pageSize,
+        pcFlag: this.pcFlag,
+        searchType: this.searchType,
+        searchKeyWord: this.searchKeyWord
+      })
+        .toPromise()
+        .then(response => {
+          this.warehouseList = response
+        })
+    },
+    handleSelectionChange(val) {
+      this.multipleSelection = val
+    },
+    handleRemove(file) {
+      console.log(file)
+    },
+    handlePictureCardPreview(file) {
+      this.dialogImageUrl = file.url
+      this.dialogVisible = true
+    },
+    handleDownload(file) {
+      console.log(file)
+    },
+
+    // statusquery(state) {
+    //   this.searchType = state
+    //   this.getList()
+    // },
+    // delivery(item) {
+    //   this.$router.push({
+    //     path: 'warehouseManagementDelivery',
+    //     query: {
+    //       baseId: item.warehouseId,
+    //       positionId: item.binNumberId,
+    //       warehouseName: item.warehouseName,
+    //       binNumber: item.binNumber,
+    //       capacity: item.capacity
+    //     }
+    //   })
+    // },
+    getSpanArr(data) {
+      let that = this
+
+      //页面展示的数据,不一定是全部的数据,所以每次都清空之前存储的 保证遍历的数据是最新的数据。以免造成数据渲染混乱
+
+      that.spanArr = []
+
+      that.pos = 0
+
+      // //遍历数据
+
+      data.forEach((item, index) => {
+        //判断是否是第一项
+
+        if (index === 0) {
+          this.spanArr.push(1)
+          this.pos = 0
+        } else {
+          //不是第一项时,就根据标识去存储
+          if (data[index].warehouseNumViewList.length > 1) {
+            查找到符合条件的数据时每次要把之前存储的数据 + 1
+            this.spanArr[this.pos] = data[index].warehouseNumViewList.length
+            this.spanArr.push(0)
+          } else {
+            // 没有符合的数据时,要记住当前的index
+            this.spanArr.push(1)
+            this.pos = index
+          }
+        }
+      })
+    },
+    //查看
+    handleLook(row) {
+      this.$router.push({
+        path: 'warehouseManagementPutOutLook',
+        query: {
+          relevanceId: row.relevanceId
+        }
+      })
+    },
+    //返回
+    revert() {
+      this.$router.push({ path: 'warehouseManagementList' })
+    },
+    dateFormat(fmt, date) {
+      let ret
+      const opt = {
+        'Y+': date.getFullYear().toString(), // 年
+        'm+': (date.getMonth() + 1).toString(), // 月
+        'd+': date.getDate().toString(), // 日
+        'H+': date.getHours().toString() // 时
+        // "M+": date.getMinutes().toString(),         // 分
+        // "S+": date.getSeconds().toString()          // 秒
+        // 有其他格式化字符需求可以继续添加,必须转化成字符串
+      }
+      for (let k in opt) {
+        ret = new RegExp('(' + k + ')').exec(fmt)
+        if (ret) {
+          fmt = fmt.replace(
+            ret[1],
+            ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
+          )
+        }
+      }
+      return fmt
+    },
+    handleClose() {
+      this.accessoryTFs = false
+    },
+    handleSizeChange(val) {
+      console.log(`每页 ${val} 条`)
+      this.pageSize = val
+      this.getList()
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val
+      console.log(`当前页: ${val}`)
+      this.getList()
+    },
+    editClick(row) {
+      var status = ''
+      if (row.status == '待审核' || row.status == '已完成') {
+        status = '执行中'
+      } else if (row.status == '执行中') {
+        status = '已完成'
+      }
+      //cancelButtonClass: "btn-custom-cancel"
+      this.$confirm(`是否将状态改为${status}`, {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(() => {
+          alsostate({ id: row.id })
+            .toPromise()
+            .then(response => {
+              this.$notify.success({
+                title: '成功',
+                message: '状态修改成功'
+              })
+              this.getList()
+            })
+            .catch(response => {
+              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    selecttaskType(e) {
+      for (var i = 0; i < this.taskTypeList.length; i++) {
+        if (this.taskTypeList[i].value == e) {
+          this.searchType = this.taskTypeList[i].type
+        }
+      }
+    },
+    // fujian(row) {
+    //   if (
+    //     row.receiveAttachmentPath === null ||
+    //     row.receiveAttachmentPath === ''
+    //   ) {
+    //     EventBus.$emit(
+    //       'warning',
+    //       this.$t('system.noticeCircular.NoInformation')
+    //     )
+    //   } else {
+    //     this.accessoryTFs = true
+    //   }
+    //   this.appendixIdss = row.receiveAttachmentPath
+    // },
+    handleExamine(row) {
+      this.$router.push({
+        name: 'salesContractExamine',
+        query: { id: row.id }
+      })
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleCloe() {
+      this.dialogViewSpareMoney = false
+    },
+    history(row) {
+      billoperatehis({ id: row.id })
+        .toPromise()
+        .then(response => {
+          this.historyList = response
+        })
+    },
+    //查找
+    find() {
+      this.currentPage = 1
+      this.getList()
+    },
+    async exportlist() {
+      const { data } = await export1(
+        {
+          compId: sessionStorage.getItem('ws-pf_compId'),
+          contractType: this.contractType,
+          currentPage: this.currentPage,
+          pageSize: this.pageSize,
+          searchType: this.searchType,
+          searchKeyWord: this.searchKeyWord,
+          startDate: this.startDate,
+          endDate: this.endDate
+        },
+        {},
+        { responseType: 'blob' }
+      ).toPromise()
+      downloadFile({
+        res: data,
+        fileName: `${this.date.year +
+          (this.date.month ? `-${this.date.month}` : '')}_采购合同`,
+        type: 'xls'
+      })
+    },
+    total() {}
+  }
+}
+</script>
+<style lang="scss" scoped>
+.connert {
+  width: 90%;
+  margin: 0 auto;
+}
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+//分页
+.el-pagination {
+  padding: 10px 15px;
+  margin-bottom: 0;
+  text-align: center;
+}
+/deep/.el-pager li.active {
+  color: #5878e8;
+  cursor: default;
+}
+/deep/.el-pager li:hover {
+  color: #5878e8;
+  cursor: default;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+ 
+}
+.el-button--default {
+  color: #8890b1;
+  border-color: #e8eaf1;
+}
+/deep/.base_header_layout .grid-content.right .find.el-button--primary {
+  width: 30px;
+  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;
+  width: 385px;
+}
+.completed.el-button--default {
+  border-color: #5878e8;
+  background-color: #f6f7fc;
+  color: #5878e8;
+}
+.putstorage.el-button--default,
+.deliverystorage.el-button--default {
+  border-color: #8890b1;
+  background-color: #fff;
+  color: #8890b1;
+}
+/deep/.el-table td,
+/deep/.el-table th.is-leaf {
+  border-right: 1px solid #e9ecf7;
+  text-align: center;
+}
+/deep/.el-table tr td:first-child,
+/deep/.el-table tr th.is-leaf:first-child {
+  border-left: 1px solid #e9ecf7;
+}
+.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: 150px;
+// }
+.base_header_layout .grid-content {
+  margin-top: 80px;
+}
+.el-input--small .el-input__inner {
+  margin-left: 20px;
+}
+.el-range-editor--small.el-input__inner {
+  height: 32px;
+  margin-left: -20%;
+}
+//执行样式
+.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;
+}
+.record,
+.adjustment {
+  display: inline-block;
+  color: #5878e8;
+  padding: 0 4px !important;
+  position: relative;
+  font-size: 14px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.bg-left {
+  padding-left: 30px;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+  // margin-left: 85%;
+  margin-top: 20px;
+}
+//导航条样式
+.el-col-12 {
+  width: 50%;
+  height: 60px;
+  background: #f6f7fc;
+  border-radius: 4px 4px 1px 1px;
+}
+.el-input--small .el-input__inner {
+  height: 32px;
+  line-height: 32px;
+  width: 385px;
+  margin-top: 10px;
+}
+.bg-bottom {
+  margin-left: 85%;
+}
+.but {
+  margin-left: 30%;
+  /* margin-top: -32px; */
+  overflow: auto;
+  /* float: left; */
+  /* margin-left: 1px; */
+  margin-left: -10px;
+}
+.el-input--small {
+  font-size: 13px;
+  width: 390px;
+  margin-left: 74%;
+}
+/deep/.el-table .el-table__header .cell,
+.el-table .el-table__body .cell {
+  text-align: center;
+}
+.el-scrollbar__wrap {
+  overflow-y: hidden;
+}
+/deep/.deal {
+  margin-left: 0%;
+  width: 64%;
+}
+.photo {
+  padding: 0% 34%;
+}
+.photo1 {
+  padding: 0 10%;
+}
+.photo2 {
+  padding: 0 12%;
+}
+/deep/.el-form-item--small .el-form-item__label,
+.el-form-item--small .el-form-item__content {
+  text-align: center;
+}
+hr {
+  width: 91%;
+}
+/deep/.deaal {
+  width: 66%;
+  margin-left: 9%;
+}
+.el-date-editor.el-input,
+.el-date-editor.el-input__inner,
+.el-input-number--small {
+  width: 123% !important;
+}
+// .danjia{
+//   width: 9px;
+//   height: 9px;
+//   margin-left: 40px;
+// }
+</style>

+ 1 - 3
src/views/warehouse/warehouseManagementPut.vue

@@ -151,10 +151,9 @@
               placeholder="请输入车牌号"
               maxlength="7"
               size="small"
-              onkeyup="value=value.replace(/[^\A-\Z0-9\u4E00-\u9FA5\.]/g,'')"
             />
           </ws-form-item>
-
+              <!-- onkeyup="value=value.replace(/[^\A-\Z0-9\u4E00-\u9FA5\.]/g,'')" -->
           <!--合同编号-->
           <ws-form-item label="合同编号" span="1" prop="contractNo">
             <ws-select
@@ -529,7 +528,6 @@ export default {
         })
         return
       }
-
       if (!this.deptBudgetList.carNo) {
         this.$message({
           message: '车牌号不能为空',

+ 1 - 1
vue.config.js

@@ -141,8 +141,8 @@ module.exports = {
         // target: 'https://product-server.winsea.com/', //目标地址
         // target: 'http://standard-dev.winsea.com/', //目标地址
         // target: 'http://localhost:8090/',
-        // target: 'http://192.168.1.121:8090/',
         target: 'http://192.168.1.120:8090/',
+        // target: 'http://192.168.1.112:8090/',
         // target: 'http://192.168.1.119:8090/',
         // target: 'http://192.168.24.5:8098',//目标地址
         // target: 'http://product-server.winsea.com/',