Selaa lähdekoodia

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

zhongtianhaoyuan 3 vuotta sitten
vanhempi
commit
6d019326ca
37 muutettua tiedostoa jossa 9252 lisäystä ja 683 poistoa
  1. 10 0
      src/api/V2/customer/index.js
  2. 14 0
      src/api/V2/platformaudit/index.js
  3. 16 0
      src/api/V2/purchasingManagement/index.js
  4. 22 3
      src/lang/zh.js
  5. 21 0
      src/model/customer/index.js
  6. 26 0
      src/model/platformaudit/index.js
  7. 29 0
      src/model/purchasingManagement/index.js
  8. 48 2
      src/views/contractManagement/component/routers/route.js
  9. 616 0
      src/views/contractManagement/priceConfirmationSheet.vue
  10. 800 0
      src/views/contractManagement/priceConfirmationSheetAdd.vue
  11. 800 0
      src/views/contractManagement/priceConfirmationSheetEdit.vue
  12. 3 0
      src/views/contractManagement/purchaseContract.vue
  13. 1 0
      src/views/contractManagement/purchaseContractAdd.vue
  14. 3 0
      src/views/contractManagement/salesContract.vue
  15. 23 22
      src/views/contractManagement/salesContractAdd.vue
  16. 22 22
      src/views/contractManagement/salesContractEdit.vue
  17. 2 2
      src/views/contractManagement/salesContractExamine.vue
  18. 32 0
      src/views/customer/component/router/route.js
  19. 834 0
      src/views/customer/customerList.vue
  20. 62 0
      src/views/platformaudit/component/router/route.js
  21. 710 0
      src/views/platformaudit/driverreview.vue
  22. 674 0
      src/views/platformaudit/grainmerchantreview.vue
  23. 581 0
      src/views/platformaudit/transactioninformationreview.vue
  24. 61 60
      src/views/purchasingManagement/component/routers/route.js
  25. 612 214
      src/views/purchasingManagement/procurementPlanAdd.vue
  26. 532 181
      src/views/purchasingManagement/procurementPlanEdit.vue
  27. 80 48
      src/views/purchasingManagement/procurementPlanList.vue
  28. 51 48
      src/views/purchasingManagement/procurementPlanLook.vue
  29. 884 55
      src/views/purchasingManagement/purchaseOrderList.vue
  30. 50 0
      src/views/statisticalReport/component/routers/route.js
  31. 816 0
      src/views/statisticalReport/purchaseClosingCashierList.vue
  32. 781 0
      src/views/statisticalReport/purchaseReceiptStatisticsList.vue
  33. 2 2
      src/views/taskManagement/inOutWarehouseTaskEdit.vue
  34. 19 13
      src/views/taskManagement/tranManagementWarehouseInOutTask.vue
  35. 8 4
      src/views/tranManagement/tranManagementDriver.vue
  36. 4 4
      src/views/warehouse/warehouseManagementPut.vue
  37. 3 3
      src/views/warehouse/warehouseManagementRecord.vue

+ 10 - 0
src/api/V2/customer/index.js

@@ -0,0 +1,10 @@
+
+//客户列表查看
+export const API_GET_CUSTOMERINFO_LOOK = '/customerInfo/selectCustomerInfo'
+
+// 设置默认定金比例
+export const API_GET_INSTALLDEPOSITRATIO = '/customerInfo/api/installDepositRatio'
+
+// 编辑
+export const API_POST_EDITCUSTOMERINFO = '/customerInfo/api/editCustomerInfo'
+

+ 14 - 0
src/api/V2/platformaudit/index.js

@@ -0,0 +1,14 @@
+//粮商审核
+export const API_POST_GRAINMERCHANTREVIEW = '/identityAuthenticationInfo/api/examine'
+//司机审核
+export const API_POST_DRIVERREVIEW = '/driverViewInfo/api/examine'
+//交易信息审核
+export const API_POST_TRANSACTIONINFORMATIONREVIEW = '/procurementPlanInfo/api/examine'
+//粮商列表
+export const API_GET_GRAINMERCHANT_LIST = '/identityAuthenticationInfo/selectIdentityAuthenticationInfoPc'
+//司机列表
+export const API_GET_DRIVER_LIST = '/driverViewInfo/selectDriverInfoPage'
+//交易信息列表
+export const API_GET_TRANSACTIONINFORMATION_LIST = '/procurementPlanInfo/selectProcurementPlanInfo'
+//交易信息删除
+export const API_POST_DELETETRANSACTIONINFORMATION = '/procurementPlanInfo/api/deleteProcurementPlan'

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

@@ -0,0 +1,16 @@
+//采购订单列表
+export const API_GET_PURCHASING_LIST = '/purchaseOrder/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'

+ 22 - 3
src/lang/zh.js

@@ -488,6 +488,9 @@
     salesContractAdd: '销售合同添加',
     purchaseContractAdd: '采购合同添加',
     purchaseContractEdit: '采购合同编辑',
+    priceConfirmationSheet: '点价确认单',
+    priceConfirmationSheetAdd:'创建点价确认单',
+    priceConfirmationSheetEdit:'编辑点价确认单',   
     //仓库管理
     warehouseManagementList: '仓库管理',
     warehouseManagementAdd: '仓库管理添加',
@@ -503,6 +506,8 @@
     warehouseManagementPerfectput: '编辑',
     warehouseManagementPutOut:'任务',
     warehouseManagementPutOutLook:'查看',
+    //客户管理
+    customerList:'客户管理',
     //采购管理
     purchasingManagement:'采购业务管理',
     procurementPlanList:'采购计划',
@@ -510,6 +515,13 @@
     procurementPlanEdit:'采购计划编辑',
     procurementPlanLook:'采购计划查看',
     purchaseOrderList:'采购订单',
+    //统计报表
+    statisticalReport:'统计报表',
+    purchaseReceiptStatisticsList:'采购入库报表',
+    purchaseClosingCashierList:'采购平仓报表',
+    
+
+    
     //运输管理
     tranManagement: '运输管理',
     tranManagementDriver: '司机管理',
@@ -537,19 +549,21 @@
     tranManagementShipping: '船运调度',
     tranManagementShippingArrangemen: '船次安排',
     tranManagementShippingLook: '船运调度详情',
-
     tranManagementTransporTrainNo: '车次安排',
     tranManagementTransporTrainDetails: '火运调度详情',
     //发货反馈
     tranManagementTransporHairRespond: '发货反馈',
     tranManagementTransporFeedback: '反馈',
-
     tranManagementTransporFeedbackLook: '查看',
-
     tranManagementReceivingFeedback: '收货反馈',
     tranManagementReceivingloading: '反馈',
     tranManagementReceivingloadingLook: '查看',
 
+    //平台审核
+    platformaudit: '平台审核',
+    grainmerchantreview: '粮商审核',
+    driverreview: '司机审核',
+    transactioninformationreview: '交易信息审核', 
 
     // 采购模块
     procurement: '采购管理',
@@ -4756,7 +4770,12 @@
     procurementPlanLook:'采购计划查看',
     purchaseOrderList:'采购订单',
   },
+  //统计管理
+  statisticalReport:{
+    purchaseReceiptStatisticsList:'采购入库报表',
+    purchaseClosingCashierList:'采购平仓报表',
 
+  },
   //运输管理
   tranManagement: {
     tranManagementDriver: '司机管理',

+ 21 - 0
src/model/customer/index.js

@@ -0,0 +1,21 @@
+import { errorCatcher, errorHandle, filter } from 'base-core-lib'
+import { appRx } from '../defalutConfig/indexRx'
+import {
+    API_GET_CUSTOMERINFO_LOOK,
+    API_GET_INSTALLDEPOSITRATIO,
+    API_POST_EDITCUSTOMERINFO
+} from '@/api/V2/customer'
+// import { app } from 'electron'
+
+// 客户管理列表
+export const getList = appRx.get(API_GET_CUSTOMERINFO_LOOK, errorCatcher, errorHandle, filter)
+
+// 设置默认定金比例
+export const installDepositRatio = appRx.get(API_GET_INSTALLDEPOSITRATIO, errorCatcher, errorHandle, filter)
+
+// 编辑
+export const editCustomerInfo = appRx.post(API_POST_EDITCUSTOMERINFO, errorCatcher, errorHandle, filter)
+
+
+
+

+ 26 - 0
src/model/platformaudit/index.js

@@ -0,0 +1,26 @@
+import { errorCatcher, errorHandle, filter } from 'base-core-lib'
+import { appRx } from '../defalutConfig/indexRx'
+import {
+    API_POST_GRAINMERCHANTREVIEW,
+    API_POST_DRIVERREVIEW,
+    API_POST_TRANSACTIONINFORMATIONREVIEW,
+    API_GET_GRAINMERCHANT_LIST,
+    API_GET_DRIVER_LIST,
+    API_GET_TRANSACTIONINFORMATION_LIST,
+    API_POST_DELETETRANSACTIONINFORMATION
+} from '@/api/V2/platformaudit'
+// import { app } from 'electron'
+// 粮商审核
+export const getGrainMerchants = appRx.post(API_POST_GRAINMERCHANTREVIEW, errorCatcher, errorHandle, filter)
+// 司机审核
+export const getDriver = appRx.post(API_POST_DRIVERREVIEW, errorCatcher, errorHandle, filter)
+// 交易信息审核
+export const getTransactionInformation = appRx.post(API_POST_TRANSACTIONINFORMATIONREVIEW, errorCatcher, errorHandle, filter)
+// 粮商列表
+export const grainMerchantsList = appRx.get(API_GET_GRAINMERCHANT_LIST, errorCatcher, errorHandle, filter)
+//司机列表
+export const driverList = appRx.get(API_GET_DRIVER_LIST, errorCatcher, errorHandle, filter)
+//交易信息列表
+export const transactionInformationList = appRx.get(API_GET_TRANSACTIONINFORMATION_LIST, errorCatcher, errorHandle, filter)
+// 交易信息删除
+export const deleteTransactionInformation = appRx.post(API_POST_DELETETRANSACTIONINFORMATION, errorCatcher, errorHandle, filter)

+ 29 - 0
src/model/purchasingManagement/index.js

@@ -0,0 +1,29 @@
+import { errorCatcher, errorHandle, filter } from 'base-core-lib'
+import { appRx } from '../defalutConfig/indexRx'
+import {
+    API_GET_PURCHASING_LIST,
+    API_POST_PURCHASING_LIST,
+    API_POST_PURCHASING_CLOSEPOSITION,
+    API_GET_PROCUREMENT_LIST,
+    API_GET_PROCUREMENT_LOOK,
+    API_POST_PROCUREMENT_ADD,
+    API_POST_PROCUREMENT_EDIT,
+    API_POST_PROCUREMENT_DELETE,
+} from '@/api/V2/purchasingManagement'
+// import { API_GET_PROCUREMENT_LOOK } from '../../api/V2/purchasingManagement'
+//采购详情列表
+export const detailsList = appRx.get(API_GET_PURCHASING_LIST, errorCatcher, errorHandle, filter)
+//采购详情成交
+export const chengList = appRx.post(API_POST_PURCHASING_LIST, errorCatcher, errorHandle, filter)
+//采购详情平仓
+export const closePositionList = appRx.post(API_POST_PURCHASING_CLOSEPOSITION, errorCatcher, errorHandle,filter)
+//采购计划列表
+export const procurementPlan = appRx.get(API_GET_PROCUREMENT_LIST,errorCatcher, errorHandle, filter)
+//采购计划查看
+export const procurementLook = appRx.get(API_GET_PROCUREMENT_LOOK, errorCatcher, errorHandle,filter)
+//采购计划添加
+export const procurementAdd = appRx.post(API_POST_PROCUREMENT_ADD, errorCatcher, errorHandle,filter)
+//采购计划编辑
+export const procurementEdit = appRx.post( API_POST_PROCUREMENT_EDIT, errorCatcher, errorHandle,filter)
+//采购计划删除
+export const procurementDel = appRx.post(API_POST_PROCUREMENT_DELETE, errorCatcher,errorHandle,filter)

+ 48 - 2
src/views/contractManagement/component/routers/route.js

@@ -129,8 +129,54 @@ const contractManagementRouter = {
         // module: 'procurement.sparepart.applDetail'
       },
       hidden: true
-    }
-    
+    },
+    //点价确认单
+    {
+      path: 'priceConfirmationSheet',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/priceConfirmationSheet'),
+      name: 'priceConfirmationSheet',
+      meta: {
+        title: 'priceConfirmationSheet',
+        shortcutEntrance: 'contractManagement',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      }
+    },
+    //创建点价确认单
+    {
+      path: 'priceConfirmationSheetAdd',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/priceConfirmationSheetAdd'),
+      name: 'priceConfirmationSheetAdd',
+      meta: {
+        title: 'priceConfirmationSheetAdd',
+        shortcutEntrance: 'contractManagement',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
+    //编辑点价确认单
+    {
+      path: 'priceConfirmationSheetEdit',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/priceConfirmationSheetEdit'),
+      name: 'priceConfirmationSheetEdit',
+      meta: {
+        title: 'priceConfirmationSheetEdit',
+        shortcutEntrance: 'contractManagement',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
   ],
 
 };

+ 616 - 0
src/views/contractManagement/priceConfirmationSheet.vue

@@ -0,0 +1,616 @@
+<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="vertion-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt=""
+          />返回</el-button
+        >
+      </el-col>
+    </el-row>
+
+    <div class="wenzi">
+      <h3>所属合同</h3>
+      <p>
+        &nbsp;&nbsp;采购合同(
+        <template>{{ this.deptBudgetList.contractNo }}</template>
+        )
+      </p>
+      <div class="tianjiaanniu">
+        <ws-button
+          type="primary"
+          @click="sheetAdd()"
+          v-hasPermission="
+            `contractManagement.salesContract.salesContractInfo.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
+        >
+      </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
+          >
+        </template>
+      </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>
+    </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 WsUpload from '@/components/WsUpload'
+import { EventBus } from 'base-core-lib'
+import { regionData,  } from 'element-china-area-data'
+
+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,
+      selectedOptions: [],
+      selectedOptions1: [],
+      // 提交类型
+      submitType: true,
+      tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
+      trainingMethods: {},
+      packtypeList: [],
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      contractNo: '',
+      mainReportAdd: {},
+      appendixIdsAdd: '',
+      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: [],
+    }
+  },
+  methods: {
+    close(index) {
+      this.addressUrls.splice(index, 1)
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleClose() {
+      this.dialogViewSpareMoney = false
+    },
+    handleChange(value) {
+      this.selectedOptions = value
+    },
+    handleChange1(value) {
+      this.selectedOptions1 = value
+    },
+    returnsales() {
+      this.$router.push({ path: 'salesContract' })
+    },
+    //创建点价确认单
+    sheetAdd() {
+      this.$router.push({ path: 'priceConfirmationSheetAdd' })
+    },
+    // 编辑点价确认单
+    sheetEdit() {
+        this.$router.push({ path: 'priceConfirmationSheetEdit' })
+    },
+    // 删除点价确认单
+    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 })
+        
+    },
+    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(',')
+    },
+    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)
+          }
+        })
+    },
+    resetForm(deptBudgetList) {
+      this.$refs[deptBudgetList].resetFields()
+    },
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  padding: 0 25px;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 1px solid #cdd2dc;
+  border-bottom: 1px solid #cdd2dc;
+}
+.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;
+}
+.readonly {
+  position: relative;
+}
+.readonly:after {
+  content: '*';
+  color: #ff2727;
+  position: absolute;
+  right: 8px;
+  z-index: 10;
+  top: 21%;
+  font-size: 20px;
+}
+/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: 16px 0px;
+}
+.caozuoanniu {
+  margin-left: 83%;
+  margin-top: -49px;
+  margin-bottom: 20px;
+}
+.fujian {
+  margin-left: 20px;
+}
+.wenzi {
+  width: 68%;
+  margin: 0 auto;
+  margin-top: 15px;
+}
+.wenzi h3 {
+  display: inline-block;
+  left: 10px;
+}
+.wenzi p {
+  display: inline-block;
+  margin-left: 16px;
+}
+.dianjiadanbianhao {
+  width: 70%;
+  margin: 0 auto;
+  margin-top: 45px;
+}
+.dianjiadanbianhao h3 {
+  display: inline-block;
+  left: 10px;
+  font-size: inherit;
+  margin-bottom: 24px;
+}
+.dianjiadanbianhao p {
+  display: inline-block;
+  margin-left: 20px;
+}
+.center {
+  width: 70%;
+  margin: 0 auto;
+}
+.el-form-item {
+  width: 50%;
+}
+.el-form-item__label {
+  text-align: center;
+}
+.ce {
+  width: 70%;
+  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;
+    }
+  }
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 148px;
+}
+/deep/.el-date-editor {
+  font-size: 13px;
+}
+/deep/.el-textarea {
+  width: 101%;
+  margin: 0px;
+}
+/deep/el-date-editor--date {
+  width: 200px;
+}
+.unchanged {
+  position: absolute;
+  left: 37px;
+  width: 102px;
+  height: 14px;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #afb5cb;
+  line-height: 14px;
+}
+.tianjiaanniu {
+  margin-left: 92%;
+  margin-top: -43px;
+}
+/deep/.el-input--small .el-input__inner {
+  height: 32px;
+  line-height: 32px;
+}
+// 控制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;
+}
+.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>

+ 800 - 0
src/views/contractManagement/priceConfirmationSheetAdd.vue

@@ -0,0 +1,800 @@
+<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="vertion-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt=""
+          />返回</el-button
+        >
+      </el-col>
+    </el-row>
+
+    <div class="wenzi">
+      <h3>所属合同</h3>
+      <p>
+        &nbsp;&nbsp;采购合同(
+        <template>{{ this.deptBudgetList.contractNo }}</template>
+        )
+      </p>
+    </div>
+    <div class="center">
+      <ws-form ref="deptBudgetList" :model="deptBudgetList">
+        <!--基本信息-->
+
+        <ws-info-table>
+          <!--点价单编号-->
+          <ws-form-item
+            label="点价单编号"
+            span="1"
+            prop="priceListNo"
+            class="readonly"
+          >
+            <ws-input
+              v-model="deptBudgetList.priceListNo"
+              placeholder="请输入点价单编号"
+              maxlength="20"
+              size="small"
+              :rules="ruleDeptBudget"
+            />
+          </ws-form-item>
+
+          <!--点价单附件-->
+          <ws-form-item label="点价单附件" span="1" prop="priceListNo">
+            <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>
+            </el-upload>
+            <div class="shangchuan">
+              <template>
+                <span v-if="deptBudgetList.enclosureTypeFlag == '0'"
+                  >未上传</span
+                >
+                <span v-if="deptBudgetList.enclosureTypeFlag == '1'"
+                  >已上传</span
+                >
+              </template>
+            </div>
+          </ws-form-item>
+
+          <!--品种合约及方向-->
+          <ws-form-item
+            label="品种合约及方向"
+            span="1"
+            prop="varietyContractDirection"
+            class="readonly"
+          >
+            <ws-input
+              v-model="deptBudgetList.varietyContractDirection"
+              placeholder="请输入品种合约及方向"
+              maxlength="100"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--买方联络人-->
+          <ws-form-item label="买方联络人" span="1" prop="buyer">
+            <ws-input
+              v-model="deptBudgetList.buyer"
+              placeholder="请输入买方联络人"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+          <!--成交数量-->
+          <ws-form-item
+            label="成交数量"
+            span="1"
+            prop="transactionsNumberHand"
+            class="readonly"
+          >
+            <ws-input
+              @input="transactionsNumberHandChange"
+              v-model="deptBudgetList.transactionsNumberHand"
+              placeholder="请输入"
+              maxlength="100"
+              size="small"
+            />&nbsp;&nbsp;&nbsp;手&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;即&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+            <ws-input
+              readonly="readonly"
+              v-model="deptBudgetList.transactionsNumber"
+              placeholder="自动计算"
+              maxlength="100"
+              size="small"
+            />&nbsp;&nbsp;&nbsp;吨
+          </ws-form-item>
+
+          <!--买方联络人电话-->
+          <ws-form-item label="买方联络人电话" span="1" prop="buyerPhone">
+            <ws-input
+              v-model="deptBudgetList.buyerPhone"
+              placeholder="请输入买方联络人电话"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--成交价格(元/吨)-->
+          <ws-form-item label="成交价格(元/吨)" span="1" prop="transactionPrice">
+            <ws-input
+              v-model="deptBudgetList.transactionPrice"
+              placeholder="请输入成交价格"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--卖方联络人-->
+          <ws-form-item label="卖方联络人" span="1" prop="seller">
+            <ws-input
+              v-model="deptBudgetList.seller"
+              placeholder="请输入卖方联络人"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--成交日期-->
+          <ws-form-item label="成交日期" span="1" prop="transactionDate">
+            <ws-date-picker
+              v-model="deptBudgetList.transactionDate"
+              type="date"
+              placeholder="请选择成交日期"
+              value-format="yyyy-MM-dd"
+            />
+          </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="remarks">
+            <ws-input
+              v-model="deptBudgetList.remarks"
+              placeholder="请输入备注,不超过200字"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+        </ws-info-table>
+      </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
+      >
+    </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 WsUpload from '@/components/WsUpload'
+import { regionData, CodeToText } from 'element-china-area-data'
+
+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,
+      selectedOptions: [],
+      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',
+          },
+        ],
+      },
+      selectIntendedShip: {},
+      interviewTypeList: {},
+      fileList: [],
+    }
+  },
+  methods: {
+    close(index) {
+      this.addressUrls.splice(index, 1)
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleClose() {
+      this.dialogViewSpareMoney = false
+    },
+    handleChange(value) {
+      this.selectedOptions = value
+    },
+    handleChange1(value) {
+      this.selectedOptions1 = value
+    },
+    returnsales() {
+      this.$router.push({ path: 'priceConfirmationSheet' })
+    },
+
+    // 上传附件
+    uploadSuccessHandle(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)
+      })
+    },
+    //计算成交数量(吨)
+    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)
+          }
+        })
+    },
+
+    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
+      }
+
+      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)) {
+          this.$message({
+            message: '成交价格输入错误!',
+            type: 'warning',
+          })
+          return
+        }
+      }
+      if (!this.deptBudgetList.transactionPrice) {
+        this.$message({
+          message: '成交价格不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.transactionDate) {
+        this.$message({
+          message: '成交日期不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+    },
+    resetForm(deptBudgetList) {
+      this.$refs[deptBudgetList].resetFields()
+    },
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  padding: 0 25px;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 1px solid #cdd2dc;
+  border-bottom: 1px solid #cdd2dc;
+}
+.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;
+}
+.readonly {
+  position: relative;
+}
+/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;
+}
+.shangchuan {
+  margin-left: 22px;
+}
+.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: 16px 0px;
+}
+.wenzi {
+  width: 70%;
+  margin: 0 auto;
+}
+.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: 70%;
+  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;
+    }
+  }
+}
+/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;
+}
+/deep/.el-textarea {
+  width: 101%;
+  margin: 0px;
+}
+/deep/el-date-editor--date {
+  width: 200px;
+}
+.unchanged {
+  position: absolute;
+  left: 37px;
+  width: 102px;
+  height: 14px;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #afb5cb;
+  line-height: 14px;
+}
+/deep/.el-input--small .el-input__inner {
+  height: 32px;
+  line-height: 32px;
+}
+// 控制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;
+}
+.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>

+ 800 - 0
src/views/contractManagement/priceConfirmationSheetEdit.vue

@@ -0,0 +1,800 @@
+<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="vertion-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt=""
+          />返回</el-button
+        >
+      </el-col>
+    </el-row>
+
+    <div class="wenzi">
+      <h3>所属合同</h3>
+      <p>
+        &nbsp;&nbsp;采购合同(
+        <template>{{ this.deptBudgetList.contractNo }}</template>
+        )
+      </p>
+    </div>
+    <div class="center">
+      <ws-form ref="deptBudgetList" :model="deptBudgetList">
+        <!--基本信息-->
+
+        <ws-info-table>
+          <!--点价单编号-->
+          <ws-form-item
+            label="点价单编号"
+            span="1"
+            prop="priceListNo"
+            class="readonly"
+          >
+            <ws-input
+              v-model="deptBudgetList.priceListNo"
+              placeholder="请输入点价单编号"
+              maxlength="20"
+              size="small"
+              :rules="ruleDeptBudget"
+            />
+          </ws-form-item>
+
+          <!--点价单附件-->
+          <ws-form-item label="点价单附件" span="1" prop="priceListNo">
+            <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>
+            </el-upload>
+            <div class="shangchuan">
+              <template>
+                <span v-if="deptBudgetList.enclosureTypeFlag == '0'"
+                  >未上传</span
+                >
+                <span v-if="deptBudgetList.enclosureTypeFlag == '1'"
+                  >已上传</span
+                >
+              </template>
+            </div>
+          </ws-form-item>
+
+          <!--品种合约及方向-->
+          <ws-form-item
+            label="品种合约及方向"
+            span="1"
+            prop="varietyContractDirection"
+            class="readonly"
+          >
+            <ws-input
+              v-model="deptBudgetList.varietyContractDirection"
+              placeholder="请输入品种合约及方向"
+              maxlength="100"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--买方联络人-->
+          <ws-form-item label="买方联络人" span="1" prop="buyer">
+            <ws-input
+              v-model="deptBudgetList.buyer"
+              placeholder="请输入买方联络人"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+          <!--成交数量-->
+          <ws-form-item
+            label="成交数量"
+            span="1"
+            prop="transactionsNumberHand"
+            class="readonly"
+          >
+            <ws-input
+              @input="transactionsNumberHandChange"
+              v-model="deptBudgetList.transactionsNumberHand"
+              placeholder="请输入"
+              maxlength="100"
+              size="small"
+            />&nbsp;&nbsp;&nbsp;手&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;即&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+            <ws-input
+              readonly="readonly"
+              v-model="deptBudgetList.transactionsNumber"
+              placeholder="自动计算"
+              maxlength="100"
+              size="small"
+            />&nbsp;&nbsp;&nbsp;吨
+          </ws-form-item>
+
+          <!--买方联络人电话-->
+          <ws-form-item label="买方联络人电话" span="1" prop="buyerPhone">
+            <ws-input
+              v-model="deptBudgetList.buyerPhone"
+              placeholder="请输入买方联络人电话"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--成交价格(元/吨)-->
+          <ws-form-item label="成交价格(元/吨)" span="1" prop="transactionPrice">
+            <ws-input
+              v-model="deptBudgetList.transactionPrice"
+              placeholder="请输入成交价格"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--卖方联络人-->
+          <ws-form-item label="卖方联络人" span="1" prop="seller">
+            <ws-input
+              v-model="deptBudgetList.seller"
+              placeholder="请输入卖方联络人"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--成交日期-->
+          <ws-form-item label="成交日期" span="1" prop="transactionDate">
+            <ws-date-picker
+              v-model="deptBudgetList.transactionDate"
+              type="date"
+              placeholder="请选择成交日期"
+              value-format="yyyy-MM-dd"
+            />
+          </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="remarks">
+            <ws-input
+              v-model="deptBudgetList.remarks"
+              placeholder="请输入备注,不超过200字"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+        </ws-info-table>
+      </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
+      >
+    </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 WsUpload from '@/components/WsUpload'
+import { regionData, CodeToText } from 'element-china-area-data'
+
+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,
+      selectedOptions: [],
+      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',
+          },
+        ],
+      },
+      selectIntendedShip: {},
+      interviewTypeList: {},
+      fileList: [],
+    }
+  },
+  methods: {
+    close(index) {
+      this.addressUrls.splice(index, 1)
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleClose() {
+      this.dialogViewSpareMoney = false
+    },
+    handleChange(value) {
+      this.selectedOptions = value
+    },
+    handleChange1(value) {
+      this.selectedOptions1 = value
+    },
+    returnsales() {
+      this.$router.push({ path: 'priceConfirmationSheet' })
+    },
+
+    // 上传附件
+    uploadSuccessHandle(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)
+      })
+    },
+    //计算成交数量(吨)
+    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)
+          }
+        })
+    },
+
+    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
+      }
+
+      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)) {
+          this.$message({
+            message: '成交价格输入错误!',
+            type: 'warning',
+          })
+          return
+        }
+      }
+      if (!this.deptBudgetList.transactionPrice) {
+        this.$message({
+          message: '成交价格不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.transactionDate) {
+        this.$message({
+          message: '成交日期不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+    },
+    resetForm(deptBudgetList) {
+      this.$refs[deptBudgetList].resetFields()
+    },
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  padding: 0 25px;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 1px solid #cdd2dc;
+  border-bottom: 1px solid #cdd2dc;
+}
+.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;
+}
+.readonly {
+  position: relative;
+}
+/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;
+}
+.shangchuan {
+  margin-left: 22px;
+}
+.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: 16px 0px;
+}
+.wenzi {
+  width: 70%;
+  margin: 0 auto;
+}
+.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: 70%;
+  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;
+    }
+  }
+}
+/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;
+}
+/deep/.el-textarea {
+  width: 101%;
+  margin: 0px;
+}
+/deep/el-date-editor--date {
+  width: 200px;
+}
+.unchanged {
+  position: absolute;
+  left: 37px;
+  width: 102px;
+  height: 14px;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #afb5cb;
+  line-height: 14px;
+}
+/deep/.el-input--small .el-input__inner {
+  height: 32px;
+  line-height: 32px;
+}
+// 控制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;
+}
+.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>

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

@@ -370,6 +370,7 @@ export default {
       searchTypeText: '未完成',
       searchKeyWord: '',
       contractType: 2,
+      goodsType: 1,
       startDate: null,
       endDate: null,
       addressUrls: [],
@@ -498,6 +499,7 @@ export default {
       getList({
         compId: sessionStorage.getItem('ws-pf_compId'),
         contractType: this.contractType,
+        goodsType:this.goodsType,
         currentPage: this.currentPage,
         pageSize: this.pageSize,
         searchType: this.searchType,
@@ -637,6 +639,7 @@ export default {
         {
           compId: sessionStorage.getItem('ws-pf_compId'),
           contractType: this.contractType,
+          goodsType:this.goodsType,
           currentPage: this.currentPage,
           pageSize: this.pageSize,
           searchType: this.searchType,

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

@@ -1268,6 +1268,7 @@ export default {
             CodeToText[this.selectedOptions1[1]]
           this.deptBudgetList.compId = this.compId
           this.deptBudgetList.contractType = 2
+          this.deptBudgetList.goodsType = 1
           if (
             this.deptBudgetList.deliveryProvince == '澳门特别行政区' ||
             this.deptBudgetList.deliveryProvince == '澳门特别行政区'

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

@@ -341,6 +341,7 @@ export default {
       searchTypeText: '未完成',
       searchKeyWord: '',
       contractType: 1,
+      goodsType:1,
       startDate: null,
       endDate: null,
       // 提交类型
@@ -474,6 +475,7 @@ export default {
       getList({
         compId: sessionStorage.getItem('ws-pf_compId'),
         contractType: this.contractType,
+        goodsType:this.goodsType,
         currentPage: this.currentPage,
         pageSize: this.pageSize,
         searchType: this.searchType,
@@ -623,6 +625,7 @@ export default {
         {
           compId: sessionStorage.getItem('ws-pf_compId'),
           contractType: this.contractType,
+          goodsType:this.goodsType,
           currentPage: this.currentPage,
           pageSize: this.pageSize,
           searchType: this.searchType,

+ 23 - 22
src/views/contractManagement/salesContractAdd.vue

@@ -506,7 +506,7 @@
           </ws-form-item>
 
           <!--已完成发货量(吨)-->
-          <ws-form-item
+          <!-- <ws-form-item
             label="已完成发运量(吨)"
             span="1"
             prop="imperfectGrain"
@@ -517,7 +517,7 @@
               maxlength="100"
               size="small"
             />
-          </ws-form-item>
+          </ws-form-item> -->
           <!--双章原件回收情况-->
           <ws-form-item label="双章原件回收情况" span="1" prop="grade">
             <ws-select
@@ -1216,26 +1216,26 @@ export default {
         })
         return
       }
-      if (
-        (this.deptBudgetList.contractProcessInfo.imperfectGrain > 200000) |
-          (this.deptBudgetList.contractProcessInfo.imperfectGrain < 0) ||
-        (String(this.deptBudgetList.contractProcessInfo.imperfectGrain).indexOf(
-          '.'
-        ) != -1 &&
-          String(this.deptBudgetList.contractProcessInfo.imperfectGrain)
-            .length -
-            (String(
-              this.deptBudgetList.contractProcessInfo.imperfectGrain
-            ).indexOf('.') +
-              1) >
-            2)
-      ) {
-        this.$message({
-          message: '已完成发运量输入错误',
-          type: 'warning',
-        })
-        return
-      }
+      // if (
+      //   (this.deptBudgetList.contractProcessInfo.imperfectGrain > 200000) |
+      //     (this.deptBudgetList.contractProcessInfo.imperfectGrain < 0) ||
+      //   (String(this.deptBudgetList.contractProcessInfo.imperfectGrain).indexOf(
+      //     '.'
+      //   ) != -1 &&
+      //     String(this.deptBudgetList.contractProcessInfo.imperfectGrain)
+      //       .length -
+      //       (String(
+      //         this.deptBudgetList.contractProcessInfo.imperfectGrain
+      //       ).indexOf('.') +
+      //         1) >
+      //       2)
+      // ) {
+      //   this.$message({
+      //     message: '已完成发运量输入错误',
+      //     type: 'warning',
+      //   })
+      //   return
+      // }
       if (
         (!this.deptBudgetList.contractProcessInfo.mildewGrain > 1000000000) |
           (this.deptBudgetList.contractProcessInfo.mildewGrain < 0) ||
@@ -1268,6 +1268,7 @@ export default {
 
           this.deptBudgetList.compId = this.compId
           this.deptBudgetList.contractType = 1
+          this.deptBudgetList.goodsType = 1
 
           if (
             this.deptBudgetList.deliveryProvince == '澳门特别行政区' ||

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

@@ -474,14 +474,14 @@
           </ws-form-item>
 
           <!--已完成发货量(吨)-->
-          <ws-form-item label="已完成发货量(吨)" span="1" prop="contractNo">
+          <!-- <ws-form-item label="已完成发货量(吨)" span="1" prop="contractNo">
             <ws-input
               v-model="deptBudgetList.contractProcessInfo.imperfectGrain"
               placeholder="请输入已完成发货量(吨)"
               maxlength="100"
               size="small"
             />
-          </ws-form-item>
+          </ws-form-item> -->
           <!--双章原件回收情况-->
           <ws-form-item label="双章原件回收情况" span="1" prop="grade">
             <ws-select
@@ -1258,26 +1258,26 @@ export default {
         })
         return
       }
-      if (
-        (this.deptBudgetList.contractProcessInfo.imperfectGrain > 200000) |
-          (this.deptBudgetList.contractProcessInfo.imperfectGrain < 0) ||
-        (String(this.deptBudgetList.contractProcessInfo.imperfectGrain).indexOf(
-          '.'
-        ) != -1 &&
-          String(this.deptBudgetList.contractProcessInfo.imperfectGrain)
-            .length -
-            (String(
-              this.deptBudgetList.contractProcessInfo.imperfectGrain
-            ).indexOf('.') +
-              1) >
-            2)
-      ) {
-        this.$message({
-          message: '已完成发运量输入错误',
-          type: 'warning',
-        })
-        return
-      }
+      // if (
+      //   (this.deptBudgetList.contractProcessInfo.imperfectGrain > 200000) |
+      //     (this.deptBudgetList.contractProcessInfo.imperfectGrain < 0) ||
+      //   (String(this.deptBudgetList.contractProcessInfo.imperfectGrain).indexOf(
+      //     '.'
+      //   ) != -1 &&
+      //     String(this.deptBudgetList.contractProcessInfo.imperfectGrain)
+      //       .length -
+      //       (String(
+      //         this.deptBudgetList.contractProcessInfo.imperfectGrain
+      //       ).indexOf('.') +
+      //         1) >
+      //       2)
+      // ) {
+      //   this.$message({
+      //     message: '已完成发运量输入错误',
+      //     type: 'warning',
+      //   })
+      //   return
+      // }
       if (
         (!this.deptBudgetList.contractProcessInfo.mildewGrain > 1000000000) |
           (this.deptBudgetList.contractProcessInfo.mildewGrain < 0) ||

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

@@ -293,7 +293,7 @@
               {{ deptBudgetList.contractProcessInfo.mildewGrain }}
             </div>
           </ws-form-item>
-          <ws-form-item
+          <!-- <ws-form-item
             label="已完成发运量(吨)"
             span="1"
             prop="imperfectGrain"
@@ -302,7 +302,7 @@
             <div class="unchanged">
               {{ deptBudgetList.contractProcessInfo.imperfectGrain }}
             </div>
-          </ws-form-item>
+          </ws-form-item> -->
           <ws-form-item label="双章原件回收情况" span="1" prop="grade">
             <div class="unchanged">
               {{ deptBudgetList.contractProcessInfo.grade }}

+ 32 - 0
src/views/customer/component/router/route.js

@@ -0,0 +1,32 @@
+import Layout from '@/layout/index';
+
+const customerRouter = {
+    path: '/customer',
+    component: Layout,
+    redirect: { name: 'customerList' },
+    name: 'customerList',
+    alwaysShow: true, // will always show the root menu
+    meta: {
+      title: 'customerList',
+      module: 'warehouseManagement.warehouse.warehouseInfo',
+      icon: '-cangkubeifen'
+    },
+    children: [
+      {
+        path: 'customerList',
+        component: () =>
+          import(/* webpackChunkName: "applDetail" */ '@/views/customer/customerList'),
+        name: 'customerList',
+        meta: {
+          title: 'customerList',
+          shortcutEntrance: 'customerList',
+          module: 'warehouseManagement.warehouse.warehouseInfo',
+          permissicon: [],
+          keepAlive: true
+          // module: 'procurement.sparepart.applDetail'
+        },
+         hidden: true
+      },
+  ],
+};
+export default customerRouter;  

+ 834 - 0
src/views/customer/customerList.vue

@@ -0,0 +1,834 @@
+//客户管理
+<template>
+  <div>
+    <BaseHeaderLayout :leftSpan="8">
+      <template slot="left"> </template>
+      <template slot="left">
+        <ws-input
+          v-model="searchKeyWord"
+          placeholder="可按客户名称、电话查找"
+          clearable
+          maxlength="500"
+          type="input"
+          class="findValue"
+        ></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: -2px;
+            "
+            src="../../../public/img/sousuo.png"
+            alt=""
+        /></ws-button>
+
+        <!--设置默认定金比例-->
+        <el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="installRatio()"
+        >
+          默认定金比例</el-button
+        >
+        <WinseaContentModal
+          v-model="outerVisibleDefaultEdit"
+          title="设置默认定金比例"
+          @on-cancel="handleClose"
+        >
+          <div style="width: 90%">
+            <div class="dingjin">定金比例(元/吨)</div>
+            <el-input
+              type="textarea"
+              :rows="2"
+              placeholder="请输入定金比例"
+              v-model="depositRatio"
+            >
+            </el-input>
+          </div>
+          <div class="dialog-footer">
+            <el-button @click="outerVisibleDefaultEdit = false"
+              >取 消</el-button
+            >
+            <el-button type="primary" @click="editDepositRatio()"
+              >确定</el-button
+            >
+          </div>
+        </WinseaContentModal>
+
+        <!--修改定金比例-->
+        <WinseaContentModal
+          v-model="outerVisibleEdit"
+          title="修改定金比例"
+          @on-cancel="handleClose"
+        >
+          <div style="width: 90%" class="xiugai">
+            <el-input
+              type="textarea"
+              :rows="2"
+              maxlength="30"
+              placeholder="请输入定金比例"
+              v-model="depositRatio"
+            >
+            </el-input>
+          </div>
+          <div class="dialog-footer">
+            <el-button @click="outerVisibleEdit = false">取 消</el-button>
+            <el-button type="primary" @click="editPrice(0)">确定</el-button>
+          </div>
+        </WinseaContentModal>
+
+        <!--增加定金-->
+        <WinseaContentModal
+          v-model="outerVisibleAdd"
+          title="增加定金"
+          @on-cancel="handleClose"
+        >
+          <div class="addprice">
+            已付定金
+            <div class="yifudingjin">
+              <template> {{ this.totalDeposit }} 元 </template>
+            </div>
+          </div>
+          <div class="addpricejine">增加金额</div>
+          <div style="width: 90%" class="zengjia">
+            <el-input
+              type="textarea"
+              :rows="2"
+              maxlength="30"
+              placeholder="请输入本次增加定金金额"
+              v-model="money"
+            >
+            </el-input>
+            <div class="yuan">元</div>
+          </div>
+          <div class="dialog-footer">
+            <el-button @click="outerVisibleAdd = false">取 消</el-button>
+            <el-button type="primary" @click="editPrice(1)">确定</el-button>
+          </div>
+        </WinseaContentModal>
+
+        <!--退回定金-->
+        <WinseaContentModal
+          v-model="outerVisibleReturn"
+          title="退回定金"
+          @on-cancel="handleClose"
+        >
+          <div class="returnprice">
+            可退定金
+            <div class="ketuidingjin">
+              <template>
+                {{ this.totalDeposit - this.freezingDeposit }} 元
+              </template>
+            </div>
+          </div>
+          <div class="returnpricejine">退回金额</div>
+          <div style="width: 90%" class="tuihui">
+            <el-input
+              type="textarea"
+              :rows="2"
+              maxlength="30"
+              placeholder="请输入本次退回定金金额"
+              v-model="money"
+            >
+            </el-input>
+            <div class="yuan">元</div>
+          </div>
+          <div class="dialog-footer">
+            <el-button @click="outerVisibleReturn = false">取 消</el-button>
+            <el-button type="primary" @click="editPrice(2)">确定</el-button>
+          </div>
+        </WinseaContentModal>
+      </template>
+    </BaseHeaderLayout>
+    <div>
+      <el-table
+        class="wenzi"
+        :data="customerList.records"
+        style="width: 100%"
+        height="780"
+      >
+        <el-table-column prop="index" label="序号" width="80">
+          <template scope="scope">
+            <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+            <span v-else>{{ scope.$index + 1 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="customerName" label="客户名称">
+          <template scope="scope">
+            <span
+              v-if="
+                scope.row.customerName == '' || scope.row.customerName == null
+              "
+              >{{ scope.row.compName }}</span
+            >
+            <span
+              v-if="scope.row.compName == '' || scope.row.compName == null"
+              >{{ scope.row.customerName }}</span
+            >
+          </template>
+        </el-table-column>
+        <el-table-column prop="compAddress" label="地址"></el-table-column>
+        <el-table-column prop="customerPhone" label="电话"> </el-table-column>
+        <el-table-column prop="payTaxesCard" label="纳税人识别号">
+          <template scope="scope">
+            <span
+              v-if="
+                scope.row.payTaxesCard == '' || scope.row.payTaxesCard == null
+              "
+            >
+              — —
+            </span>
+            {{ scope.row.payTaxesCard }}
+          </template>
+        </el-table-column>
+        <el-table-column prop="bankDeposit" label="开户行">
+          <template slot-scope="scope">
+            {{ scope.row.bankDeposit }} - {{ scope.row.bankDepositBranch }}
+          </template>
+        </el-table-column>
+        <el-table-column prop="bankCard" label="银行卡号"> </el-table-column>
+        <el-table-column prop="totalDeposit" label="总定金(元)">
+        </el-table-column>
+        <el-table-column prop="freezingDeposit" label="冻结定金(元)">
+        </el-table-column>
+        <el-table-column prop="depositRatio" label="定金比例(元/吨)">
+          <template slot-scope="scope">
+            {{ scope.row.depositRatio }}
+            <img
+              width="17"
+              height="18"
+              style="vertical-align: text-top; position: relative; top: -1px"
+              src="../../../public/img/edit.png"
+              @click="editClick(0, scope.row)"
+              alt=""
+            />
+          </template>
+        </el-table-column>
+        <el-table-column prop="updateDate" label="更新时间"> </el-table-column>
+        <el-table-column prop="seller" label="操作" width="280">
+          <template slot-scope="scope">
+            <el-button
+              class="find"
+              type="primary"
+              @click="editClick(1, scope.row)"
+              >增加定金</el-button
+            >
+            <el-button
+              class="find"
+              type="primary"
+              @click="editClick(2, scope.row)"
+              >退回定金</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="currentPage"
+        :page-size="deptCircularPage.pageSize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="deptBudgetTotal"
+      >
+      </el-pagination>
+    </div>
+  </div>
+</template>
+<script>
+import {
+  getList,
+  installDepositRatio,
+  editCustomerInfo,
+} from '@/model/customer/index'
+import Pagination from '@/components/Pagination'
+import WsUpload from '@/components/WsUpload'
+
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+    Pagination,
+  },
+  watch: {
+    vesselId(val) {
+      this.getList()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      currentPage: 1,
+      pageSize: 10,
+      deptBudgetTotal: 0,
+      searchKeyWord: '',
+      outerVisibleDefaultEdit: false,
+      outerVisibleEdit: false,
+      outerVisibleAdd: false,
+      outerVisibleReturn: false,
+      contractType: 2,
+      searchType: 1,
+      // 提交类型
+      submitType: true,
+      size: 10,
+      spanArr: [],
+      depositRatio: '',
+      id: '',
+      money: '',
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      customerList: [],
+      deptBudgetList: {},
+      historyList: [],
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+      customerInfo: {
+        id: '',
+        compId: '',
+        depositRatio: '',
+        flag: '',
+        money: '',
+        totalDeposit: 0,
+        freezingDeposit: 0,
+      },
+      totalDeposit: 0,
+      freezingDeposit: 0,
+    }
+  },
+  activated() {
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    //查看//传参
+    nocomplete(row) {
+      this.$router.push({
+        name: 'vehicleDispatchingview',
+        query: {
+          id: row.id,
+        },
+      })
+    },
+    dateFormat(fmt, date) {
+      let ret
+      const opt = {
+        'Y+': date.getFullYear().toString(), // 年
+        'm+': (date.getMonth() + 1).toString(), // 月
+        'd+': date.getDate().toString(), // 日
+        'H+': date.getHours().toString(), // 时
+        // "M+": date.getMinutes().toString(),         // 分
+        // "S+": date.getSeconds().toString()          // 秒
+        // 有其他格式化字符需求可以继续添加,必须转化成字符串
+      }
+      for (let k in opt) {
+        ret = new RegExp('(' + k + ')').exec(fmt)
+        if (ret) {
+          fmt = fmt.replace(
+            ret[1],
+            ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
+          )
+        }
+      }
+      return fmt
+    },
+    handleClose() {
+      this.accessoryTFs = false
+    },
+    handleSizeChange(val) {
+      console.log(`每页 ${val} 条`)
+      this.pageSize = val
+      this.getList()
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val
+      console.log(`当前页: ${val}`)
+      this.getList()
+    },
+    changestatus(state) {
+      this.searchType = state
+      this.getList()
+    },
+    //列表查询
+    getList() {
+      getList({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        currentPage: this.currentPage,
+        pageSize: this.pageSize,
+        searchKeyWord: this.searchKeyWord,
+        customerTypeFlag: this.customerTypeFlag,
+      })
+        .toPromise()
+        .then((response) => {
+          this.deptCircularPage.currentPage = response.current
+          this.deptCircularPage.pageSize = response.size
+          this.deptBudgetTotal = response.total
+          this.customerList = response
+        })
+    },
+    //设置默认定金比例
+    installRatio() {
+      this.outerVisibleDefaultEdit = true
+    },
+    editDepositRatio() {
+      if (
+        this.depositRatio < 1 ||
+        this.depositRatio > 100000 ||
+        (String(this.depositRatio).indexOf('.') != -1 &&
+          String(this.depositRatio).length -
+            (String(this.depositRatio).indexOf('.') + 1) >
+            2)
+      ) {
+        this.$message({
+          message: '默认定金比例输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.depositRatio) {
+        if (isNaN(this.depositRatio)) {
+          this.$message({
+            message: '默认定金比例非数字!',
+            type: 'warning',
+          })
+          return
+        }
+        if (!this.depositRatio) {
+          this.$message({
+            message: '默认定金比例不能为空!',
+            type: 'warning',
+          })
+          return
+        }
+        installDepositRatio({
+          compId: sessionStorage.getItem('ws-pf_compId'),
+          depositRatio: this.depositRatio,
+        })
+          .toPromise()
+          .then((response) => {
+            this.outerVisibleDefaultEdit = false
+            this.getList()
+            this.$message.success('设置默认定金比例成功')
+          })
+      }
+    },
+    //编辑
+    editClick(index, row) {
+      this.id = row.id
+      this.depositRatio = row.depositRatio
+      this.totalDeposit = row.totalDeposit
+      this.freezingDeposit = row.freezingDeposit
+
+      //更改定金比例
+      if (index == 0) {
+        this.outerVisibleEdit = true
+        this.customerInfo.flag = 0
+      }
+      //增加定金
+      else if (index == 1) {
+        this.outerVisibleAdd = true
+        this.customerInfo.flag = 1
+      }
+      //退回定金
+      else {
+        this.outerVisibleReturn = true
+        this.customerInfo.flag = 2
+      }
+    },
+    editPrice(asdf) {
+      this.customerInfo.id = this.id
+      this.customerInfo.compId = this.compId
+      this.customerInfo.depositRatio = this.depositRatio
+      this.customerInfo.money = this.money
+      this.customerInfo.totalDeposit = this.totalDeposit
+      this.customerInfo.freezingDeposit = this.freezingDeposit
+      //修改定金比例
+      if (asdf == 0) {
+        if (
+          this.depositRatio < 0 ||
+          this.depositRatio > 100000 ||
+          (String(this.depositRatio).indexOf('.') != -1 &&
+            String(this.depositRatio).length -
+              (String(this.depositRatio).indexOf('.') + 1) >
+              2)
+        ) {
+          this.$message({
+            message: '定金比例输入错误',
+            type: 'warning',
+          })
+          return
+        }
+        if (this.depositRatio) {
+          if (isNaN(this.depositRatio)) {
+            this.$message({
+              message: '定金比例非数字!',
+              type: 'warning',
+            })
+            return
+          }
+        }
+        if (!this.depositRatio) {
+          this.$message({
+            message: '定金比例不能为空!',
+            type: 'warning',
+          })
+          return
+        }
+      }
+      //增加定金
+      else if (asdf == 1) {
+        if (
+          this.money < 0 ||
+          this.money > 100000000 ||
+          (String(this.money).indexOf('.') != -1 &&
+            String(this.money).length - (String(this.money).indexOf('.') + 1) >
+              2)
+        ) {
+          this.$message({
+            message: '增加金额输入错误',
+            type: 'warning',
+          })
+          return
+        }
+        if (this.money) {
+          if (isNaN(this.money)) {
+            this.$message({
+              message: '增加金额非数字!',
+              type: 'warning',
+            })
+            return
+          }
+        }
+        if (!this.money) {
+          this.$message({
+            message: '增加金额不能为空!',
+            type: 'warning',
+          })
+          return
+        }
+      }
+      //退回定金
+      if (asdf == 2) {
+        if (
+          this.money < 0 ||
+          this.money > 100000000 ||
+          (String(this.money).indexOf('.') != -1 &&
+            String(this.money).length - (String(this.money).indexOf('.') + 1) >
+              2)
+        ) {
+          this.$message({
+            message: '退回金额输入错误',
+            type: 'warning',
+          })
+          return
+        }
+        if (this.money) {
+          if (isNaN(this.money)) {
+            this.$message({
+              message: '退回金额非数字!',
+              type: 'warning',
+            })
+            return
+          }
+        }
+        if (!this.money) {
+          this.$message({
+            message: '退回金额不能为空!',
+            type: 'warning',
+          })
+          return
+        }
+        if (this.money > this.totalDeposit - this.freezingDeposit) {
+          this.$message({
+            message: '退回金额不能大于可退金额!',
+            type: 'warning',
+          })
+          return
+        }
+      }
+      editCustomerInfo(this.customerInfo)
+        .toPromise()
+        .then((response) => {
+          this.outerVisibleAdd = false
+          this.outerVisibleReturn = false
+          this.outerVisibleEdit = false
+          this.getList()
+          //修改定金比例
+          if (asdf == 0) {
+            this.$message.success('修改定金比例成功')
+          }
+          //增加定金
+          else if (asdf == 1) {
+            this.$message.success('增加成功')
+          }
+          //退回定金
+          if (asdf == 2) {
+            this.$message.success('退回成功')
+          }
+        })
+    },
+    find() {
+      this.currentPage = 1
+      this.getList()
+    },
+  },
+}
+</script>
+<style lang="scss" scoped>
+.connert {
+  width: 90%;
+  margin: 0 auto;
+}
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  color: #fff;
+}
+.el-button--default {
+  color: #8890b1;
+  border-color: #e8eaf1;
+}
+/deep/.base_header_layout .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;
+}
+//操作按钮
+.record,
+.adjustment {
+  display: inline-block;
+  color: #5878e8;
+  padding: 0 4px !important;
+  position: relative;
+  font-size: 14px;
+}
+.record:after {
+  position: absolute;
+  content: '';
+  display: block;
+  top: 5px;
+  right: -2px;
+  width: 1px;
+  height: 12px;
+  background: #e9ecf7;
+}
+//状态样式
+.executory,
+.inExecution,
+.done {
+  width: 6px;
+  height: 6px;
+  display: inline-block;
+  border-radius: 50%;
+  position: relative;
+  top: -1px;
+  font-size: 14px;
+}
+.executory {
+  background: #ff9f24;
+}
+.inExecution {
+  background: #5878e8;
+}
+.done {
+  background: #50cad4;
+}
+.putstorage.el-button--default,
+.deliverystorage.el-button--default {
+  border-color: #8890b1;
+  background-color: #fff;
+  color: #8890b1;
+}
+/deep/.el-table td,
+/deep/.el-table th.is-leaf {
+  border-right: 1px solid #e9ecf7;
+  text-align: center;
+}
+/deep/.el-table tr td:first-child,
+/deep/.el-table tr th.is-leaf:first-child {
+  border-left: 1px solid #e9ecf7;
+}
+.record,
+.adjustment {
+  display: inline-block;
+  color: #5878e8;
+  padding: 0 4px !important;
+  position: relative;
+}
+.record:after {
+  position: absolute;
+  content: '';
+  display: block;
+  top: 5px;
+  right: -2px;
+  width: 1px;
+  height: 12px;
+  background: #e9ecf7;
+}
+.el-row {
+  height: 60px;
+}
+.base_header_layout .grid-content {
+  margin-top: 80px;
+}
+.el-input--small .el-input__inner {
+  margin-left: 20px;
+}
+.dialog-footer {
+  margin-top: 33px;
+}
+.el-range-editor--small.el-input__inner {
+  height: 32px;
+  margin: 0 10px;
+}
+/deep/.el-pagination {
+  text-align: center;
+  white-space: nowrap;
+  padding: 2px 5px;
+  color: #303133;
+  font-weight: 700;
+  margin-bottom: 20px;
+}
+.el-select {
+  width: 30%;
+  margin-right: 10px;
+}
+/deep/.zengjia .el-textarea__inner {
+  display: block;
+  padding: 13px 17px;
+  line-height: 0.5;
+  box-sizing: border-box;
+  width: 80%;
+  font-size: inherit;
+  color: #606266;
+  background-color: #fff;
+  background-image: none;
+  border: 1px solid #dcdfe6;
+  border-radius: 4px;
+  transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+  margin-left: 180px;
+}
+
+/deep/.xiugai .el-textarea__inner {
+  display: block;
+  padding: 13px 17px;
+  line-height: 0.5;
+  box-sizing: border-box;
+  width: 105%;
+  font-size: inherit;
+  color: #606266;
+  background-color: #fff;
+  background-image: none;
+  border: 1px solid #dcdfe6;
+  border-radius: 4px;
+  transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+  margin-left: 0px;
+}
+
+/deep/.tuihui .el-textarea__inner {
+  display: block;
+  padding: 13px 17px;
+  line-height: 0.5;
+  box-sizing: border-box;
+  width: 80%;
+  font-size: inherit;
+  color: #606266;
+  background-color: #fff;
+  background-image: none;
+  border: 1px solid #dcdfe6;
+  border-radius: 4px;
+  transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+  margin-left: 180px;
+}
+/deep/.dingjin {
+  width: 98px;
+  margin-left: 30px;
+  margin-bottom: -37px;
+  padding-top: 20px;
+}
+/deep/.el-textarea__inner {
+  display: block;
+  padding: 13px 17px;
+  line-height: 0.5;
+  box-sizing: border-box;
+  width: 90%;
+  font-size: inherit;
+  color: #606266;
+  background-color: #fff;
+  background-image: none;
+  border: 1px solid #dcdfe6;
+  border-radius: 4px;
+  transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+  margin-left: 180px;
+}
+/deep/.addprice {
+  width: 98px;
+  margin-left: 50px;
+}
+/deep/.returnprice {
+  width: 98px;
+  margin-left: 50px;
+}
+/deep/.yuan {
+  width: 10px;
+  margin-left: 1400px;
+  margin-top: -36px;
+}
+/deep/.addpricejine {
+  width: 98px;
+  margin-left: 50px;
+  margin-bottom: -37px;
+  padding-top: 20px;
+}
+/deep/.returnpricejine {
+  width: 98px;
+  margin-left: 50px;
+  margin-bottom: -37px;
+  padding-top: 20px;
+}
+/deep/.typeselect .el-input__inner {
+  color: #8890b1;
+}
+/deep/.yifudingjin {
+  margin-left: 135px;
+  width: 70px;
+  margin-top: -31px;
+}
+/deep/.ketuidingjin {
+  margin-left: 135px;
+  width: 70px;
+  margin-top: -31px;
+}
+</style>

+ 62 - 0
src/views/platformaudit/component/router/route.js

@@ -0,0 +1,62 @@
+import Layout from '@/layout/index';
+
+const platformauditRouter = {
+    path: '/platformaudit',
+    component: Layout,
+    redirect: '/platformaudit',
+    name: 'platformaudit',
+    alwaysShow: true, // will always show the root menu
+    meta: {
+      title: 'platformaudit',
+      module: 'warehouseManagement.warehouse.warehouseInfo',
+      icon: '-shenhe'
+    },
+    children: [
+  
+      //粮商审核
+      {
+        path: 'grainmerchantreview',
+        component: () =>
+          import(/* webpackChunkName: "applDetail" */ '@/views/platformaudit/grainmerchantreview'),
+        name: 'grainmerchantreview',
+        meta: {
+          title: 'grainmerchantreview',
+          shortcutEntrance: 'grainmerchantreview',
+          module: 'warehouseManagement.warehouse.warehouseInfo',
+          permissicon: [],
+          keepAlive: true
+        },
+      },
+
+      //司机审核
+      {
+        path: 'driverreview',
+        component: () =>
+          import(/* webpackChunkName: "applDetail" */ '@/views/platformaudit/driverreview'),
+        name: 'driverreview',
+        meta: {
+          title: 'driverreview',
+          shortcutEntrance: 'driverreview',
+          module: 'warehouseManagement.warehouse.warehouseInfo',
+          permissicon: [],
+          keepAlive: true
+        },
+      },
+
+      //交易信息审核
+      {
+        path: 'transactioninformationreview',
+        component: () =>
+          import(/* webpackChunkName: "applDetail" */ '@/views/platformaudit/transactioninformationreview'),
+        name: 'transactioninformationreview',
+        meta: {
+          title: 'transactioninformationreview',
+          shortcutEntrance: 'transactioninformationreview',
+          module: 'warehouseManagement.warehouse.warehouseInfo',
+          permissicon: [],
+          keepAlive: true
+        },
+      },
+    ],
+};
+export default platformauditRouter;  

+ 710 - 0
src/views/platformaudit/driverreview.vue

@@ -0,0 +1,710 @@
+<!--司机审核-->
+<template>
+  <div>
+    <BaseHeaderLayout :leftSpan="15">
+      <template slot="left"> </template>
+      <template slot="right">
+        <span style="width: 70px; display: inline-block; color: #8890b1"
+          >状态:</span
+        >
+        <ws-select
+          v-model="searchTypeText"
+          placeholder=""
+          class="typeselect"
+          @change="selectExamineType"
+          :value="searchType"
+        >
+          <ws-option
+            v-for="item in searchTypeList"
+            :key="item.value"
+            :label="item.value"
+            :value="item.value"
+            style="color: #8890b1"
+          />
+        </ws-select>
+        <ws-input
+          v-model="searchKeyWord"
+          placeholder="可按身份证号、手机号和姓名查找"
+          clearable
+          maxlength="500"
+          type="input"
+        ></ws-input>
+        <ws-button class="find" type="primary" @click="lookUp()"
+          ><img
+            width="16"
+            height="16"
+            style="
+              vertical-align: text-top;
+              position: relative;
+              top: 0px;
+              left: -5px;
+            "
+            src="../../../public/img/sousuo.png"
+            alt=""
+        /></ws-button>
+        <!-- </div> -->
+      </template>
+    </BaseHeaderLayout>
+    <div>
+      <el-table
+        class="wenzi"
+        :data="driverList.records"
+        style="width: 100%; margin-top: 20px"
+        fit
+        ref="expandstable"
+        :expand-row-keys="expands"
+        :row-key="getRowKeys"
+        height="780"
+      >
+        <el-table-column type="expand">
+          <template slot-scope="props">
+            <ws-form>
+              <div v-for="item in props.row.driverPayeeInfoList">
+                <ws-info-table>
+                  <ws-form-item
+                    :class="item.accountTypeFlag == 1 ? 'personage' : 'company'"
+                    v-if="item.accountTypeFlag == 1"
+                    label="收款人"
+                    span="1"
+                    prop="payeeName"
+                    class="el-car name"
+                  >
+                    <div style="width: 100%">{{ item.payeeName }}</div>
+                  </ws-form-item>
+                  <ws-form-item
+                    :class="item.accountTypeFlag == 1 ? 'personage' : 'company'"
+                    v-if="item.accountTypeFlag == 2"
+                    label="企业名称"
+                    span="1"
+                    prop="compName"
+                    class="el-car"
+                  >
+                    <div style="width: 100%">{{ item.compName }}</div>
+                  </ws-form-item>
+                  <ws-form-item
+                    :class="item.accountTypeFlag == 1 ? 'personage' : 'company'"
+                    v-if="item.accountTypeFlag == 1"
+                    label="身份证"
+                    span="1"
+                    prop="payeeNumberCard"
+                    class="el-car card"
+                  >
+                    <div style="width: 100%">
+                      {{ item.payeeNumberCard }}
+                      <img
+                        width="12"
+                        height="13"
+                        src="../../../public/img/fujian-grey.png"
+                        alt=""
+                        @click="fujian1(item)"
+                      />
+                    </div>
+                  </ws-form-item>
+                  <ws-form-item
+                    :class="item.accountTypeFlag == 1 ? 'personage' : 'company'"
+                    label="开户行"
+                    span="1"
+                    prop="bankDeposit"
+                    class="el-car"
+                  >
+                    <span
+                      style="
+                        margin: 10px;
+                        display: inline-block;
+                        border-right: 1px solid #e9ecf7;
+                        padding-right: 10px;
+                      "
+                      >{{ item.bankDeposit }}</span
+                    ><span
+                      style="
+                        margin: 10px;
+                        padding: 0px;
+                        display: inline-block;
+                        word-wrap: break-word;
+                        line-height: 20px;
+                        white-space: normal;
+                      "
+                      >{{ item.bankDepositBranch }}</span
+                    >
+                  </ws-form-item>
+                  <ws-form-item
+                    :class="item.accountTypeFlag == 1 ? 'personage' : 'company'"
+                    label="账号"
+                    span="1"
+                    prop="bankCard"
+                    class="el-car"
+                  >
+                    <div style="width: 100%">{{ item.bankCard }}</div>
+                  </ws-form-item>
+                </ws-info-table>
+              </div>
+            </ws-form>
+          </template>
+        </el-table-column>
+        <el-table-column type="index" label="序号" width="80">
+          <template scope="scope">
+            <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+            <span v-else>{{ scope.$index + 1 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="driverName" label="姓名" >
+        </el-table-column>
+        <el-table-column prop="numberCard" label="身份证号" >
+        </el-table-column>
+        <el-table-column prop="driverPhone" label="手机号" >
+        </el-table-column>
+        <el-table-column prop="carNumber" label="车牌号" >
+          <template scope="scope">
+            <ws-select
+              v-model="scope.row.carNumber"
+              placeholder=""
+              class="typeselect"
+              @change="selectcar($event, scope.row)"
+            >
+              <ws-option
+                v-for="item in scope.row.driverCarInfoList"
+                :key="item.constKey"
+                :label="item.carNumber"
+                :value="item.carNumber"
+              />
+            </ws-select>
+          </template>
+        </el-table-column>
+        <el-table-column prop="carModel" label="车型" >
+        </el-table-column>
+        <el-table-column prop="carLength" label="车长(米)" >
+        </el-table-column>
+        <el-table-column prop="carLoad" label="载重(吨)" >
+        </el-table-column>
+        <el-table-column prop="yearManufacture" label="出厂年份" >
+        </el-table-column>
+        <el-table-column prop="binNumber" label="常驻城市" >
+          <template slot-scope="scope">
+            {{ scope.row.residentCityProvincial
+            }}{{ scope.row.residentCityMunicipal }}
+          </template>
+        </el-table-column>
+        <el-table-column prop="updateDate" label="更新时间" width="140" >
+        </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>
+          </template>
+        </el-table-column>
+        <el-table-column label="账户信息" >
+          <template slot-scope="scope">
+            <el-button
+              v-if="!scope.row.expandsStatus"
+              size="medium"
+              type="text"
+              class="fs-16"
+              @click="expandsHandle(scope.row)"
+              >展开<img
+                width="9"
+                height="6"
+                style="vertical-align: middle; margin-left: 3px"
+                src="../../../public/img/zhankai.png"
+                alt=""
+            /></el-button>
+            <el-button
+              v-if="scope.row.expandsStatus"
+              size="medium"
+              type="text"
+              class="fs-16"
+              @click="expandsHandle(scope.row)"
+              >收起<img
+                width="9"
+                height="6"
+                style="vertical-align: middle; margin-left: 3px"
+                src="../../../public/img/shouqi.png"
+                alt=""
+            /></el-button>
+          </template>
+        </el-table-column>
+        <el-table-column prop="address" label="审核">
+          <template slot-scope="scope">
+            <el-button
+              size="medium"
+              type="text"
+              class="record"
+              v-if="scope.row.authenticationStatusKey==1"
+              @click="reject(scope.row)"
+              >驳回</el-button
+            >
+            <el-button
+              size="medium"
+              type="text"
+              class="record"
+              v-if="scope.row.authenticationStatusKey==1"
+              @click="adopt(scope.row)"
+              >通过</el-button
+            >
+            <template v-else slot-scope="scope"> 
+            {{ scope.row.authenticationStatus}}
+          </template>
+          </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>
+    <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"
+      :title="$t('system.noticeCircular.information')"
+      @on-cancel="handleClose"
+    >
+      <p>查看附件</p>
+      <div
+        style="display: inline-block; margin: 5px"
+        v-for="item in appendixIdss"
+      >
+        <img width="100" height="100" :src="item" alt="" />
+      </div>
+    </WinseaContentModal>
+    <WinseaContentModal
+      v-model="accesscard"
+      :title="$t('system.noticeCircular.information')"
+      @on-cancel="handleClose1"
+    >
+      <p>查看附件</p>
+      <img width="100" height="100" :src="accessurl" alt="" />
+    </WinseaContentModal>
+  </div>
+</template>
+<script>
+import {
+  driverList,
+  getDriver,
+} from '@/model/platformaudit/index'
+import Pagination from '@/components/Pagination'
+import { provinceAndCityData, CodeToText } from 'element-china-area-data'
+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,
+      options_: provinceAndCityData,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      deptBudgetTotal: 0,
+      currentPage: 1,
+      pageSize: 10,
+      searchType: 1,
+      searchKeyWord: '',
+      contractType: 2,
+      startDate: null,
+      endDate: null,
+      carNumber: '',
+      searchTypeText: '待审核',
+      outerVisible: false,
+      //图片
+      fileList: [],
+      // 提交类型
+      submitType: true,
+      size: 10,
+      spanArr: [],
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      date: {
+        year: dayjs().format('YYYY'),
+        month: dayjs().format('MM'),
+      },
+      disablieForm: {},
+      expands: [], //只展开一行放入当前行id
+      getRowKeys: (row) => {
+        //获取当前行id
+        // console.log(row)
+        return row.id //这里看这一行中需要根据哪个属性值是id
+      },
+      driverList: [],
+      deptBudgetList: {},
+      historyList: [],
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      appendixIdss: [],
+      accessoryTFs: false,
+      accesscard: false,
+      accessurl: '',
+      residentCityProvincial: '',
+      residentCityMunicipal: '',
+      searchTypeList: [
+        { value: '待审核', type: 1 },
+        { value: '已通过', type: 2 },
+        { value: '全部', type: '' },
+      ],
+      driverViewInfo:{
+        id: '',
+        flag: '',
+      },
+    }
+  },
+  activated() {
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    expandsHandle(row) {
+      row.expandsStatus = !row.expandsStatus
+      this.$refs.expandstable.toggleRowExpansion(row)
+    },
+    edit(row) {
+      this.$router.push({
+        name: 'driverManagementedit',
+        query: { id: row.id },
+      })
+    },
+    //查找
+    handleLook() {
+      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()
+    },
+    look(row) {
+      this.$router.push({
+        name: 'driverManagementview',
+        query: { id: row.id },
+      })
+    },
+    //查找
+    lookUp() {
+      this.currentPage = 1
+      this.getList()
+    },
+    handlestatus(status) {
+      this.searchType = status
+      if (status == 1) {
+        this.primary = 1
+      } else if (status == 2) {
+        this.primary = 2
+      } else {
+        this.primary = 3
+      }
+      this.getList()
+    },
+    selectcar(e, row) {
+      console.log(e, row)
+      for (var i = 0; i < row.driverCarInfoList.length; i++) {
+        if (e == row.driverCarInfoList[i].carNumber) {
+          row.carModel = row.driverCarInfoList[i].carModel
+          row.carLength = row.driverCarInfoList[i].carLength
+          row.carLoad = row.driverCarInfoList[i].carLoad
+          row.yearManufacture = row.driverCarInfoList[i].yearManufacture
+        }
+      }
+    },
+    stop(row) {
+      this.outerVisible = true
+      this.disablieForm.id = row.id
+    },
+    //审核通过
+    adopt(row) {
+      this.driverViewInfo.id = row.id
+      this.driverViewInfo.flag = 1
+      this.$confirm(`确定通过该认证信息?`, '提示', {
+        confirmButtonText: '通过',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+        .then(() => {
+          getDriver(this.driverViewInfo)
+            .toPromise()
+            .then((response) => {
+              this.$notify.success({
+                title: '成功',
+                message: '通过成功',
+              })
+              this.getList()
+            })
+            .catch((response) => {
+              console.log(response)
+              EventBus.$emit('error', response.message)
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    //审核驳回  
+    reject(row) {
+      this.driverViewInfo.id = row.id
+      this.driverViewInfo.flag = 2
+      this.$confirm(`确定驳回该认证信息?`, '提示', {
+        confirmButtonText: '驳回',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+        .then(() => {
+          getDriver(this.driverViewInfo)
+            .toPromise()
+            .then((response) => {
+              this.$notify.success({
+                title: '成功',
+                message: '驳回成功',
+              })
+              this.getList()
+            })
+            .catch((response) => {
+              console.log(response)
+              EventBus.$emit('error', response.message)
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    handleClose() {
+      this.accessoryTFs = 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() {
+      driverList({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        currentPage: this.currentPage,
+        pageSize: this.pageSize,
+        searchType: this.searchType,
+        searchKeyWord: this.searchKeyWord,
+        id: this.id,
+        flag: this.flag,
+      })
+        .toPromise()
+        .then((response) => {
+          for (var i = 0; i < response.records.length; i++) {
+            response.records[i].expandsStatus = false
+            if (response.records[i].addressUrl != null) {
+              response.records[i].addressUrlArray =
+                response.records[i].addressUrl.split(',')
+              this.fileList[i] = 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.driverList = response
+        })
+    },
+    selectExamineType(e) {
+      for (var i = 0; i < this.searchTypeList.length; i++) {
+        if (this.searchTypeList[i].value == e) {
+          this.searchType = this.searchTypeList[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.addressUrlArray
+    },
+    fujian1(item) {
+      if (item.cardAddressUrl === null || item.cardAddressUrl === '') {
+        EventBus.$emit(
+          'warning',
+          this.$t('system.noticeCircular.NoInformation')
+        )
+      } else {
+        this.accesscard = true
+      }
+      this.accessurl = item.cardAddressUrl
+    },
+    handleExamine(row) {
+      this.$router.push({
+        name: 'salesContractExamine',
+        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() {
+      this.startDate = this.dateFormat('YYYY-mm-dd', this.value2[0])
+      this.endDate = this.dateFormat('YYYY-mm-dd', this.value2[1])
+      this.currentPage = 1
+      this.getList()
+    },
+  },
+}
+</script>
+<style lang="scss" scoped>
+.connert {
+  width: 90%;
+  margin: 0 auto;
+}
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+.findValue {
+  margin: 0 10px;
+}
+/deep/.el-icon-arrow-right {
+  display: none;
+}
+
+/deep/.el-pagination {
+  text-align: center;
+}
+.ws-info-table {
+  border-left: 1px solid #e9ecf7;
+  border-top: 1px solid #e9ecf7;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 1px solid #e9ecf7;
+  border-bottom: 1px solid #e9ecf7;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  text-align: center;
+  background: #f6f7fc;
+  color: #8890b1;
+  font-size: 12px;
+}
+
+/deep/.ws-info-table .el-form-item.company,
+/deep/.ws-info-table .el-form-item.personage {
+  width: 33.333%;
+}
+/deep/.ws-info-table .el-form-item.name {
+  width: 15.665%;
+}
+/deep/.ws-info-table .el-form-item.card {
+  width: 17.665%;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  text-align: center;
+  border-left: 1px solid #e9ecf7;
+}
+/deep/.el-table .el-table__header .cell,
+/deep/.el-table .el-table__body .cell {
+  text-align: center;
+}
+/deep/.el-table th.is-leaf,
+.el-table td {
+  border-right: 1px solid #eee;
+}
+.el-button--text {
+  color: #5878e8;
+}
+.el-button--primary {
+  background: #5878e8;
+}
+//操作按钮
+.record,
+.adjustment,
+.record1 {
+  display: inline-block;
+  color: #5878e8;
+  padding: 0 4px !important;
+  position: relative;
+  font-size: 14px;
+}
+.record1 {
+  width: 38px;
+  height: 32px;
+}
+.record:after {
+  position: absolute;
+  content: '';
+  display: block;
+  top: 9px;
+  right: -7px;
+  width: 1px;
+  height: 12px;
+  background: #e9ecf7;
+}
+/deep/.el-table td {
+  border-right: 1px solid #eee;
+}
+</style>

+ 674 - 0
src/views/platformaudit/grainmerchantreview.vue

@@ -0,0 +1,674 @@
+<!--粮商审核-->
+<template>
+  <div>
+    <BaseHeaderLayout :leftSpan="15">
+      <template slot="left"> </template>
+      <template slot="right">
+        <span style="width: 70px; display: inline-block; color: #8890b1"
+          >状态:</span
+        >
+        <ws-select
+          v-model="searchTypeText"
+          placeholder=""
+          class="typeselect"
+          @change="selectExamineType"
+          :value="searchType"
+        >
+          <ws-option
+            v-for="item in searchTypeList"
+            :key="item.value"
+            :label="item.value"
+            :value="item.value"
+            style="color: #8890b1"
+          />
+        </ws-select>
+        <ws-input
+          v-model="searchKeyWord"
+          placeholder="可按身份证号、手机号和姓名查找"
+          clearable
+          maxlength="500"
+          type="input"
+        ></ws-input>
+        <ws-button class="find" type="primary" @click="lookUp()"
+          ><img
+            width="16"
+            height="16"
+            style="
+              vertical-align: text-top;
+              position: relative;
+              top: 0px;
+              left: -5px;
+            "
+            src="../../../public/img/sousuo.png"
+            alt=""
+        /></ws-button>
+        <!-- </div> -->
+      </template>
+    </BaseHeaderLayout>
+    <div>
+      <el-table
+        class="wenzi"
+        :data="driverList.records"
+        style="width: 100%; margin-top: 20px"
+        fit
+        ref="expandstable"
+        :expand-row-keys="expands"
+        :row-key="getRowKeys"
+        height="780"
+      >
+        <el-table-column type="expand">
+          <template slot-scope="props">
+            <ws-form>
+              <ws-info-table>
+                <ws-form-item
+                  :class="
+                    props.row.customerTypeFlag == 1 ? 'personage' : 'company'
+                  "
+                  v-if="props.row.customerTypeFlag == 1"
+                  label="收款人"
+                  span="1"
+                  prop="payeeName"
+                  class="el-car name"
+                >
+                  <div style="width: 100%">{{ props.row.payeeName }}</div>
+                </ws-form-item>
+                <ws-form-item
+                  :class="
+                    props.row.customerTypeFlag == 1 ? 'personage' : 'company'
+                  "
+                  v-if="props.row.customerTypeFlag == 2"
+                  label="企业名称"
+                  span="1"
+                  prop="compName"
+                  class="el-car"
+                >
+                  <div style="width: 100%">{{ props.row.compName }}</div>
+                </ws-form-item>
+                <ws-form-item
+                  :class="
+                    props.row.customerTypeFlag == 1 ? 'personage' : 'company'
+                  "
+                  v-if="props.row.customerTypeFlag == 1"
+                  label="身份证"
+                  span="1"
+                  prop="payeeNumberCard"
+                  class="el-car card"
+                >
+                  <div style="width: 100%">
+                    {{ props.row.payeeNumberCard }}
+                    <img
+                      width="12"
+                      height="13"
+                      src="../../../public/img/fujian-grey.png"
+                      alt=""
+                      @click="fujian1(props.row)"
+                    />
+                  </div>
+                </ws-form-item>
+                <ws-form-item
+                  :class="
+                    props.row.customerTypeFlag == 1 ? 'personage' : 'company'
+                  "
+                  label="开户行"
+                  span="1"
+                  prop="bankDeposit"
+                  class="el-car"
+                >
+                  <span
+                      style="
+                        margin: 10px;
+                        display: inline-block;
+                        border-right: 1px solid #e9ecf7;
+                        padding-right: 10px;
+                      "
+                      >{{ props.row.bankDeposit }}</span
+                    ><span
+                      style="
+                        margin: 10px;
+                        padding: 0px;
+                        display: inline-block;
+                        word-wrap: break-word;
+                        line-height: 20px;
+                        white-space: normal;
+                      "
+                      >{{ props.row.bankDepositBranch }}</span
+                    >
+                </ws-form-item>
+                <ws-form-item
+                  :class="
+                    props.row.customerTypeFlag == 1 ? 'personage' : 'company'
+                  "
+                  label="账号"
+                  span="1"
+                  prop="bankCard"
+                  class="el-car"
+                >
+                  <div style="width: 100%">{{ props.row.bankCard }}</div>
+                </ws-form-item>
+              </ws-info-table>
+            </ws-form>
+          </template>
+        </el-table-column>
+        <el-table-column type="index" label="序号" width="80">
+          <template scope="scope">
+            <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+            <span v-else>{{ scope.$index + 1 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="customerType" label="类型"> </el-table-column>
+        <el-table-column prop="customerName" label="姓名"> </el-table-column>
+        <el-table-column prop="customerNumberCard" label="身份证号">
+        </el-table-column>
+        <el-table-column prop="customerPhone" label="手机号"> </el-table-column>
+        <el-table-column prop="payTaxesCard" label="纳税人识别号">
+        </el-table-column>
+        <el-table-column prop="compAddress" label="地址"> </el-table-column>
+        <el-table-column prop="updateDate" label="更新时间"> </el-table-column>
+        <el-table-column prop="businessLicenseAddressUrl" 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>
+          </template>
+        </el-table-column>
+        <el-table-column label="账户信息">
+          <template slot-scope="scope">
+            <el-button
+              v-if="!scope.row.expandsStatus"
+              size="medium"
+              type="text"
+              class="fs-16"
+              @click="expandsHandle(scope.row)"
+              >展开<img
+                width="9"
+                height="6"
+                style="vertical-align: middle; margin-left: 3px"
+                src="../../../public/img/zhankai.png"
+                alt=""
+            /></el-button>
+            <el-button
+              v-if="scope.row.expandsStatus"
+              size="medium"
+              type="text"
+              class="fs-16"
+              @click="expandsHandle(scope.row)"
+              >收起<img
+                width="9"
+                height="6"
+                style="vertical-align: middle; margin-left: 3px"
+                src="../../../public/img/shouqi.png"
+                alt=""
+            /></el-button>
+          </template>
+        </el-table-column>
+        <el-table-column prop="address" label="审核">
+          <template slot-scope="scope">
+            <el-button
+              size="medium"
+              type="text"
+              class="record"
+              v-if="scope.row.authenticationStatusKey == 1"
+              @click="reject(scope.row)"
+              >驳回</el-button
+            >
+            <el-button
+              size="medium"
+              type="text"
+              class="record"
+              v-if="scope.row.authenticationStatusKey == 1"
+              @click="adopt(scope.row)"
+              >通过</el-button
+            >
+            <template v-else slot-scope="scope">
+              {{ scope.row.authenticationStatus }}
+            </template>
+          </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>
+    <!-- 附件弹框 -->
+    <WinseaContentModal
+      v-model="accessoryTFs"
+      :title="$t('system.noticeCircular.information')"
+      @on-cancel="handleClose"
+    >
+      <p>查看附件</p>
+      <div
+        style="display: inline-block; margin: 5px"
+        v-for="item in appendixIdss"
+      >
+        <img width="100" height="100" :src="item" alt="" />
+      </div>
+    </WinseaContentModal>
+    <WinseaContentModal
+      v-model="accesscard"
+      :title="$t('system.noticeCircular.information')"
+      @on-cancel="handleClose1"
+    >
+      <p>查看附件</p>
+      <img width="100" height="100" :src="accessurl" alt="" />
+    </WinseaContentModal>
+  </div>
+</template>
+<script>
+import {
+  grainMerchantsList,
+  billoperatehis,
+  getGrainMerchants,
+} from '@/model/platformaudit/index'
+import Pagination from '@/components/Pagination'
+import { provinceAndCityData, CodeToText } from 'element-china-area-data'
+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,
+      options_: provinceAndCityData,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      deptBudgetTotal: 0,
+      currentPage: 1,
+      pageSize: 10,
+      searchType: 1,
+      searchKeyWord: '',
+      contractType: 2,
+      startDate: null,
+      endDate: null,
+      carNumber: '',
+      searchTypeText: '待审核',
+      outerVisible: false,
+      //图片
+      fileList: [],
+      // 提交类型
+      submitType: true,
+      size: 10,
+      spanArr: [],
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      date: {
+        year: dayjs().format('YYYY'),
+        month: dayjs().format('MM'),
+      },
+      disablieForm: {},
+      expands: [], //只展开一行放入当前行id
+      getRowKeys: (row) => {
+        //获取当前行id
+        // console.log(row)
+        return row.id //这里看这一行中需要根据哪个属性值是id
+      },
+      driverList: [],
+      deptBudgetList: {},
+      historyList: [],
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      appendixIdss: [],
+      accessoryTFs: false,
+      accesscard: false,
+      accessurl: '',
+      residentCityProvincial: '',
+      residentCityMunicipal: '',
+      searchTypeList: [
+        { value: '待审核', type: 1 },
+        { value: '已通过', type: 2 },
+        { value: '全部', type: '' },
+      ],
+      identityAuthenticationInfo: {
+        id: '',
+        flag: '',
+      },
+    }
+  },
+  activated() {
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    expandsHandle(row) {
+      row.expandsStatus = !row.expandsStatus
+      this.$refs.expandstable.toggleRowExpansion(row)
+    },
+
+    //查找
+    lookUp() {
+      this.currentPage = 1
+      this.getList()
+    },
+    //查找
+    handleLook() {
+      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()
+    },
+    //审核通过
+    adopt(row) {
+      this.identityAuthenticationInfo.id = row.id
+      this.identityAuthenticationInfo.flag = 1
+      this.$confirm(`确定通过该认证信息?`, '提示', {
+        confirmButtonText: '通过',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+        .then(() => {
+          getGrainMerchants(this.identityAuthenticationInfo)
+            .toPromise()
+            .then((response) => {
+              this.$notify.success({
+                title: '成功',
+                message: '通过成功',
+              })
+              this.getList()
+            })
+            .catch((response) => {
+              console.log(response)
+              EventBus.$emit('error', response.message)
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    //审核驳回
+    reject(row) {
+      this.identityAuthenticationInfo.id = row.id
+      this.identityAuthenticationInfo.flag = 1
+      this.$confirm(`确定驳回该认证信息?`, '提示', {
+        confirmButtonText: '驳回',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+        .then(() => {
+          getGrainMerchants(this.identityAuthenticationInfo)
+            .toPromise()
+            .then((response) => {
+              this.$notify.success({
+                title: '成功',
+                message: '驳回成功',
+              })
+              this.getList()
+            })
+            .catch((response) => {
+              console.log(response)
+              EventBus.$emit('error', response.message)
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+
+    handleClose() {
+      this.accessoryTFs = 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() {
+      grainMerchantsList({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        currentPage: this.currentPage,
+        pageSize: this.pageSize,
+        searchType: this.searchType,
+        searchKeyWord: this.searchKeyWord,
+      })
+        .toPromise()
+        .then((response) => {
+          for (var i = 0; i < response.records.length; i++) {
+            response.records[i].expandsStatus = false
+            if (response.records[i].addressUrl != null) {
+              response.records[i].addressUrlArray =
+                response.records[i].addressUrl.split(',')
+              this.fileList[i] = 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.driverList = response
+        })
+    },
+    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(() => {
+          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
+        })
+    },
+    selectExamineType(e) {
+      for (var i = 0; i < this.searchTypeList.length; i++) {
+        if (this.searchTypeList[i].value == e) {
+          this.searchType = this.searchTypeList[i].type
+        }
+      }
+    },
+    handlestatus(status) {
+      this.searchType = status
+      if (status == 1) {
+        this.primary = 1
+      } else if (status == 2) {
+        this.primary = 2
+      } else {
+        this.primary = 3
+      }
+      this.getList()
+    },
+    fujian(row) {
+      if (row.addressUrl === null || row.addressUrl === '') {
+        EventBus.$emit(
+          'warning',
+          this.$t('system.noticeCircular.NoInformation')
+        )
+      } else {
+        this.accessoryTFs = true
+      }
+      this.appendixIdss = row.addressUrlArray
+    },
+    fujian1(item) {
+      if (item.cardAddressUrl === null || item.cardAddressUrl === '') {
+        EventBus.$emit(
+          'warning',
+          this.$t('system.noticeCircular.NoInformation')
+        )
+      } else {
+        this.accesscard = true
+      }
+      this.accessurl = item.cardAddressUrl
+    },
+    handleExamine(row) {
+      this.$router.push({
+        name: 'salesContractExamine',
+        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() {
+      this.startDate = this.dateFormat('YYYY-mm-dd', this.value2[0])
+      this.endDate = this.dateFormat('YYYY-mm-dd', this.value2[1])
+      this.currentPage = 1
+      this.getList()
+    },
+  },
+}
+</script>
+<style lang="scss" scoped>
+.connert {
+  width: 90%;
+  margin: 0 auto;
+}
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+.findValue {
+  margin: 0 10px;
+}
+/deep/.el-icon-arrow-right {
+  display: none;
+}
+
+/deep/.el-pagination {
+  text-align: center;
+}
+.ws-info-table {
+  border-left: 1px solid #e9ecf7;
+  border-top: 1px solid #e9ecf7;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 1px solid #e9ecf7;
+  border-bottom: 1px solid #e9ecf7;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  text-align: center;
+  background: #f6f7fc;
+  color: #8890b1;
+  font-size: 12px;
+}
+
+/deep/.ws-info-table .el-form-item.company,
+/deep/.ws-info-table .el-form-item.personage {
+  width: 33.333%;
+}
+/deep/.ws-info-table .el-form-item.name {
+  width: 15.665%;
+}
+/deep/.ws-info-table .el-form-item.card {
+  width: 17.665%;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  text-align: center;
+  border-left: 1px solid #e9ecf7;
+}
+/deep/.el-table .el-table__header .cell,
+/deep/.el-table .el-table__body .cell {
+  text-align: center;
+}
+/deep/.el-table th.is-leaf,
+.el-table td {
+  border-right: 1px solid #eee;
+}
+.el-button--text {
+  color: #5878e8;
+}
+.el-button--primary {
+  background: #5878e8;
+}
+//操作按钮
+.record,
+.adjustment,
+.record1 {
+  display: inline-block;
+  color: #5878e8;
+  padding: 0 4px !important;
+  position: relative;
+  font-size: 14px;
+}
+.record1 {
+  width: 38px;
+  height: 32px;
+}
+.record:after {
+  position: absolute;
+  content: '';
+  display: block;
+  top: 9px;
+  right: -7px;
+  width: 1px;
+  height: 12px;
+  background: #e9ecf7;
+}
+/deep/.el-table td {
+  border-right: 1px solid #eee;
+}
+</style>

+ 581 - 0
src/views/platformaudit/transactioninformationreview.vue

@@ -0,0 +1,581 @@
+<!--交易信息审核-->
+<template>
+  <div>
+    <BaseHeaderLayout :leftSpan="15">
+      <template slot="left"> </template>
+      <template slot="right">
+        <span style="width: 70px; display: inline-block; color: #8890b1"
+          >状态:</span
+        >
+        <ws-select
+          v-model="searchTypeText"
+          placeholder=""
+          class="typeselect"
+          @change="selectExamineType"
+          :value="searchType"
+        >
+          <ws-option
+            v-for="item in searchTypeList"
+            :key="item.value"
+            :label="item.value"
+            :value="item.value"
+            style="color: #8890b1"
+          />
+        </ws-select>
+        <ws-input
+          v-model="searchKeyWord"
+          placeholder="可按编号、发布企业和发布方查找"
+          clearable
+          maxlength="500"
+          type="input"
+        ></ws-input>
+        <ws-button class="find" type="primary" @click="lookUp()"
+          ><img
+            width="16"
+            height="16"
+            style="
+              vertical-align: text-top;
+              position: relative;
+              top: 0px;
+              left: -5px;
+            "
+            src="../../../public/img/sousuo.png"
+            alt=""
+        /></ws-button>
+        <!-- </div> -->
+      </template>
+    </BaseHeaderLayout>
+    <div class="container">
+      <el-table
+        class="wenzi"
+        :data="tranManagementList.records"
+        style="width: 100%"
+        height="780"
+      >
+        <el-table-column type="index" label="序号" width="50">
+          <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="procurementPlanNo" label="编号" > </el-table-column>
+        <el-table-column prop="buyer" label="发布企业/发布人" >
+        </el-table-column>
+        <el-table-column label="发布平台" > 
+          <template scope="scope">
+            <span v-if="scope.row.pcFlag==1">PC端</span>
+            <span v-else>移动端</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="goodsName" label="货名" > </el-table-column>
+        <el-table-column prop="weight" label="重量(吨)" > </el-table-column>
+        <el-table-column prop="procurementPlanType" label="交易类型" > </el-table-column>
+        <el-table-column prop="basisPrice" label="基差(元/吨)" > </el-table-column>
+        <el-table-column prop="unitPrice" label="价格(元/吨)" > </el-table-column>
+        <el-table-column prop="buyerPhone" label="电话" > </el-table-column>
+        <el-table-column prop="updateDate" label="更新时间" width="140"> </el-table-column>
+        <el-table-column prop="" label="操作" width="180">
+          <template slot-scope="scope">
+            <div
+              class="record"
+              @click="nocomplete(scope.row)"
+              v-hasPermission="
+           `transportationTask.transportation.transportationInfo.view`
+          "
+            >查看</div>
+            <div
+              class="record"
+              @click="delivery(scope.row)"
+              v-hasPermission="
+           `transportationTask.transportation.transportationInfo.edit`
+          "
+            >编辑</div>
+            <div
+              class="record1"
+              @click="deleteclick(scope.row)"
+              v-hasPermission="
+           `transportationTask.transportation.transportationInfo.delete`
+          "
+            >删除</div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="address" label="审核" >
+          <template slot-scope="scope">
+            <el-button
+              size="medium"
+              type="text"
+              class="record"
+              v-if="scope.row.statusFlag==1"
+              @click="reject(scope.row)"
+              >驳回</el-button
+            >
+            <el-button
+              size="medium"
+              type="text"
+              class="record"
+              v-if="scope.row.statusFlag==1"
+              @click="adopt(scope.row)"
+              >通过</el-button
+            >
+            <template v-else slot-scope="scope"> 
+            {{ scope.row.status}}
+          </template>
+          </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 { getTransactionInformation, transactionInformationList ,deleteTransactionInformation} from '@/model/platformaudit/index'
+import Pagination from '@/components/Pagination'
+import WsUpload from '@/components/WsUpload'
+import { EventBus } from 'base-core-lib'
+import { billoperatehis } from '@/model/contarct/index'
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+    Pagination,
+  },
+  watch: {
+    vesselId(val) {
+      this.getList()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      currentPage: 1,
+      pageSize: 10,
+      deptBudgetTotal: 0,
+      searchTypeText: '待审核',
+      searchKeyWord: '',
+      // 提交类型
+      submitType: true,
+      size: 10,
+      spanArr: [],
+      warehouseName: '',
+      searchType: 1,
+      startDate: null,
+      endDate: null,
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      tranManagementList: [],
+      deptBudgetList: {},
+      historyList: [],
+      inOutDate: [],
+      searchTypeList: [
+        { value: '待审核', type: 1 },
+        { value: '已通过', type: 2 },
+        { value: '全部', type: '' },
+      ],
+      procurementPlanInfo:{
+        id: '',
+        flag: '',
+      },
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+    }
+  },
+  activated() {
+    //cg.viewBudget
+    //cg.viewSpareMoney
+    // this.getVesselData();
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    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
+        }
+        // }
+      })
+    },
+    //删除
+    deleteclick(row) {
+      //cancelButtonClass: "btn-custom-cancel"
+      this.$confirm(`交易信息删除后不可恢复,是否确定删除?`, {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(() => {
+          deleteTransactionInformation({
+            id: row.id
+          })
+            .toPromise()
+            .then(response => {
+              this.getList()
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    //查找
+    lookUp() {
+      this.currentPage = 1
+      this.getList()
+    },
+    selectExamineType(e) {
+      for (var i = 0; i < this.searchTypeList.length; i++) {
+        if (this.searchTypeList[i].value == e) {
+          this.searchType = this.searchTypeList[i].type
+        }
+      }
+    },
+    //审核通过
+    adopt(row) {
+      this.procurementPlanInfo.id = row.id
+      this.procurementPlanInfo.flag = 1
+      this.$confirm(`确定通过该认证信息?`, '提示', {
+        confirmButtonText: '通过',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+        .then(() => {
+          getTransactionInformation( this.procurementPlanInfo )
+            .toPromise()
+            .then((response) => {
+              
+              this.$notify.success({
+                title: '成功',
+                message: '通过成功',
+              })
+              this.getList()
+            })
+            .catch((response) => {
+              console.log(response)
+              EventBus.$emit('error', response.message)
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    //审核驳回
+    reject(row) {
+       this.procurementPlanInfo.id = row.id
+       this.procurementPlanInfo.flag = 2
+      this.$confirm(`确定驳回该认证信息?`, '提示', {
+        confirmButtonText: '驳回',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+        .then(() => {
+          getTransactionInformation(this.procurementPlanInfo)
+            .toPromise()
+            .then((response) => {
+              this.$notify.success({
+                title: '成功',
+                message: '驳回成功',
+              })
+              this.getList()
+            })
+            .catch((response) => {
+              console.log(response)
+              EventBus.$emit('error', response.message)
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    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()
+    },
+    getList() {
+      transactionInformationList({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        searchType: this.searchType,
+        currentPage: this.currentPage,
+        pageSize: this.pageSize,
+        searchKeyWord: this.searchKeyWord,
+      })
+        .toPromise()
+        .then((response) => {
+          this.tranManagementList = response
+          this.deptCircularPage.currentPage = response.current
+          this.deptCircularPage.pageSize = response.size
+          this.deptBudgetTotal = response.total
+        })
+    },
+    editClick(row) {
+      var status = ''
+      if (row.processStatus == '待执行' || row.processStatus == '已完成') {
+        status = '执行中'
+      } else if (row.processStatus == '执行中') {
+        status = '已完成'
+      }
+      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() {
+      if (this.inOutDate != null) {
+        if (this.inOutDate.length != 0) {
+          this.startDate = this.dateFormat('YYYY-mm-dd', this.inOutDate[0])
+          this.endDate = this.dateFormat('YYYY-mm-dd', this.inOutDate[1])
+        } else {
+          this.startDate = ''
+          this.endDate = ''
+        }
+      } else {
+        this.startDate = ''
+        this.endDate = ''
+      }
+      this.currentPage = 1
+      this.getList()
+    },
+  },
+}
+</script>
+<style lang="scss" scoped>
+.container {
+  width: 100%;
+  margin: 0 auto;
+}
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-button--default {
+  color: #8890b1;
+  border-color: #e8eaf1;
+}
+/deep/.base_header_layout .grid-content.right .find.el-button--primary {
+  width: 30px;
+  margin-left: 0;
+  border-top-left-radius: 0px;
+  border-bottom-left-radius: 0px;
+}
+/deep/.findValue .el-input__inner {
+  border-top-right-radius: 0px;
+  border-bottom-right-radius: 0px;
+}
+//操作按钮
+.record,
+.adjustment {
+  display: inline-block;
+  color: #5878e8;
+  padding: 0 4px !important;
+  position: relative;
+  font-size: 14px;
+}
+.record:after {
+  position: absolute;
+  content: '';
+  display: block;
+  top: 5px;
+  right: -2px;
+  width: 1px;
+  height: 12px;
+  background: #e9ecf7;
+}
+//状态样式
+.executory,
+.inExecution,
+.done {
+  width: 6px;
+  height: 6px;
+  display: inline-block;
+  border-radius: 50%;
+  position: relative;
+  top: -1px;
+  font-size: 14px;
+}
+.executory {
+  background: #ff9f24;
+}
+.inExecution {
+  background: #5878e8;
+}
+.done {
+  background: #50cad4;
+}
+.putstorage.el-button--default,
+.deliverystorage.el-button--default {
+  border-color: #8890b1;
+  background-color: #fff;
+  color: #8890b1;
+}
+/deep/.el-table td,
+/deep/.el-table th.is-leaf {
+  border-right: 1px solid #e9ecf7;
+  text-align: center;
+}
+/deep/.el-table tr td:first-child,
+/deep/.el-table tr th.is-leaf:first-child {
+  border-left: 1px solid #e9ecf7;
+}
+.el-row {
+  height: 60px;
+}
+.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: 0 10px;
+}
+/deep/.el-pagination {
+  text-align: center;
+  white-space: nowrap;
+  padding: 2px 5px;
+  color: #303133;
+  font-weight: 700;
+  margin-bottom: 20px;
+}
+.el-select {
+  width: 30%;
+  margin-right: 10px;
+}
+/deep/.typeselect .el-input__inner {
+  color: #8890b1;
+}
+</style>

+ 61 - 60
src/views/purchasingManagement/component/routers/route.js

@@ -12,7 +12,7 @@ const purchasingManagementRouter = {
     icon: '-caigouyewuguanli'
   },
   children: [
-      //采购计划列表
+      // 采购计划列表
     {
       path: 'procurementPlanList',
       component: () =>
@@ -21,73 +21,74 @@ const purchasingManagementRouter = {
       meta: {
         title: 'procurementPlanList',
         shortcutEntrance: 'purchasingManagement',
-        module: 'contractManagement.procurementPlanList',
+        module: 'contractManagement.salesContract',
         permissicon: [],
         keepAlive: true
         // module: 'procurement.sparepart.applDetail'
       }
     },
     // // 采购计划添加
-    // {
-    //   path: 'procurementPlanAdd',
-    //   component: () =>
-    //     import(/* webpackChunkName: "sparepartList" */ '@/views/purchasingManagement/procurementPlanAdd'),
-    //   name: 'procurementPlanAdd',
-    //   meta: {
-    //     title: 'procurementPlanAdd',
-    //     shortcutEntrance: 'purchasingManagement',
-    //     module: 'purchasingManagement.procurementPlanAdd',
-    //     permissicon: [],
-    //     keepAlive: true
-    //   }
-    // },
+    {
+      path: 'procurementPlanAdd',
+      component: () =>
+        import(/* webpackChunkName: "sparepartList" */ '@/views/purchasingManagement/procurementPlanAdd'),
+      name: 'procurementPlanAdd',
+      meta: {
+        title: 'procurementPlanAdd',
+        shortcutEntrance: 'purchasingManagement',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+      },
+      hidden: true
+    },
     // //采购修改
-    // {
-    //   path: 'procurementPlanEdit',
-    //   component: () =>
-    //     import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/procurementPlanEdit'),
-    //   name: 'procurementPlanEdit',
-    //   meta: {
-    //     title: 'procurementPlanEdit',
-    //     shortcutEntrance: 'purchasingManagement',
-    //     module: 'purchasingManagement.buyContract.buyContractInfo.view',
-    //     permissicon: [],
-    //     keepAlive: true
-    //     // module: 'procurement.sparepart.applDetail'
-    //   },
-    //   hidden: true
-    // },
-    // {
-    //   path: 'procurementPlanLook',
-    //   component: () =>
-    //     import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/procurementPlanLook'),
-    //   name: 'procurementPlanLook',
-    //   meta: {
-    //     title: 'procurementPlanLook',
-    //     shortcutEntrance: 'purchasingManagement',
-    //     module: 'purchasingManagement.buyContract.buyContractInfo.edit',
-    //     permissicon: [],
-    //     keepAlive: true
-    //     // module: 'procurement.sparepart.applDetail'
-    //   },
-    //   hidden: true
-    // },
+    {
+      path: 'procurementPlanEdit',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/purchasingManagement/procurementPlanEdit'),
+      name: 'procurementPlanEdit',
+      meta: {
+        title: 'procurementPlanEdit',
+        shortcutEntrance: 'purchasingManagement',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
+    {
+      path: 'procurementPlanLook',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/purchasingManagement/procurementPlanLook'),
+      name: 'procurementPlanLook',
+      meta: {
+        title: 'procurementPlanLook',
+        shortcutEntrance: 'purchasingManagement',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
     //采购订单列表
-    // {
-    //   path: 'purchaseOrderList',
-    //   component: () =>
-    //     import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/purchaseOrderList'),
-    //   name: 'purchaseOrderList',
-    //   meta: {
-    //     title: 'purchaseOrderList',
-    //     shortcutEntrance: 'purchasingManagement',
-    //     module: 'purchasingManagement.buyContract.buyContractInfo.add',
-    //     permissicon: [],
-    //     keepAlive: true
-    //     // module: 'procurement.sparepart.applDetail'
-    //   },
-    // //   hidden: true
-    // },
+    {
+      path: 'purchaseOrderList',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/purchasingManagement/purchaseOrderList'),
+      name: 'purchaseOrderList',
+      meta: {
+        title: 'purchaseOrderList',
+        shortcutEntrance: 'purchasingManagement',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+    //   hidden: true
+    },
    
   ],
 

+ 612 - 214
src/views/purchasingManagement/procurementPlanAdd.vue

@@ -18,107 +18,150 @@
       </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-form ref="dataList" :model="dataList" label-width="140px">
+          <ws-form-item label="标题" span="1" prop="title">
+            <el-input v-model="dataList.title" maxlength="16" placeholder="请输入标题,不超过16个字" />
+          </ws-form-item>
+          <ws-form-item label="货名" span="1" prop="goodsName">
+            <ws-select
+              v-model="dataList.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="plannedPurchaseVolume">
             <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="请选择收货库"
+              v-model="dataList.plannedPurchaseVolume"
+              class="typeselect"
+              placeholder="请输入计划采购量"
             />
-          </el-form-item>
-          <!--收货库所在地区-->
-          <el-form-item label="收货库所在地区" span="1">
-            <el-select
+          </ws-form-item>
+          <ws-form-item label="最小成交量(吨)" span="1" prop="minimumVolume">
+            <el-input v-model="dataList.minimumVolume" placeholder="请输入最小成交量" />
+          </ws-form-item>
+          <ws-form-item label="类型" span="1" prop="procurementPlanType">
+            <ws-select
+              v-model="dataList.procurementPlanType"
+              placeholder
+              class="typeselect"
+              @change="selectprocurementPlanType"
+            >
+              <ws-option
+                v-for="item in procurementPlanTypeList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </ws-select>
+          </ws-form-item>
+         <ws-form-item label="价格类型" span="1" prop="priceType">
+            <el-input v-model="dataList.priceType" disabled />
+          </ws-form-item>
+           <ws-form-item
+            v-show="dataList.procurementPlanType=='期货'"
+            label="基差(元/吨)"
+            span="1"
+            prop="basisPrice"
+          >
+            <el-input v-model="dataList.basisPrice" placeholder="请输入基差" />
+          </ws-form-item>
+          <ws-form-item
+            v-show="dataList.procurementPlanType=='现货'"
+            label="采购价格(元)"
+            span="1"
+            prop="unitPrice"
+          >
+            <el-input
               v-model="dataList.unitPrice"
               maxlength="120"
               size="small"
-              placeholder="请选择收货库说在地区"
+              placeholder="请输入采购价格"
             />
-          </el-form-item>
-          <!--运费承担方-->
-          <el-form-item label="运费承担方" span="1">
-            <el-select
-              v-model="dataList.unitPrice"
-              maxlength="120"
-              size="small"
-              placeholder="请选择运费承担方"
+          </ws-form-item>
+          <ws-form-item label="收货库" span="1" prop="receiveWarehouse">
+            <ws-select
+              v-model="dataList.receiveWarehouse"
+              placeholder
+              class="typeselect"
+              @change="sendWarehousechange"
+            >
+              <ws-option
+                v-for="item in warehouseList"
+                :key="item.warehouseName"
+              :label="item.warehouseName"
+              :value="item.warehouseName"
+              />
+            </ws-select>
+          </ws-form-item>
+          <ws-form-item label="收货库所在地区" span="1" prop="receiveArea">
+            <el-cascader
+              :options="options_"
+              v-model="selectedOptions"
+              clearable
+              size="large"
+              placeholder="请选择收货库所在地区"
+              @change="handleChange"
+              style="width:200%"
             />
-          </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">
+          </ws-form-item>
+          <ws-form-item label="运费承担方" span="1" prop="freightPayer">
+            <ws-select
+              v-model="dataList.freightPayer"
+              placeholder
+              class="typeselect"
+              @change="selectfreightPayer"
+            >
+              <ws-option
+                v-for="item in freightPayerList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </ws-select>
+          </ws-form-item>
+          <ws-form-item label="包装方式" span="1" prop="packingType">
+            <ws-select
+              v-model="dataList.packingType"
+              placeholder
+              class="typeselect"
+              @change="selectpackingType"
+            >
+              <ws-option
+                v-for="item in packingTypeList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </ws-select>
+          </ws-form-item>
+          <el-form-item v-if="dataList.packingType!='散装'" label="装袋备注" span="1" prop="baggingNotes">
             <el-input
-              v-model="dataList.businessDescribe"
+            maxlength='30'
+              v-model="dataList.baggingNotes"
               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">
+          <ws-form-item label="买方" span="1" prop="buyer">
+            <el-input maxlength='25' v-model="dataList.buyer" size="small" placeholder="请输入买方名称" />
+          </ws-form-item>
+          <el-form-item label="买方电话" span="1" prop="buyerPhone">
             <el-input
-              v-model="dataList.agent"
+              v-model="dataList.buyerPhone"
               filterable
+              type="number"
               :filter-method="dataFilter"
               placeholder="请输入买方电话"
             ></el-input>
@@ -131,64 +174,77 @@
           <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 label="水分(%)<=" span="1" prop="waterContent">
+            <el-input v-model="dataList.waterContent" class="typeselect" placeholder="请输入水分占比" />
           </el-form-item>
-          <!-- 杂质 -->
-          <el-form-item label="杂质(%)<=" span="1">
-            <el-input v-model="dataList.contractNo" class="typeselect" placeholder="请输入杂质占比" />
+          <el-form-item label="容重(g/l)<=" span="1" prop="bulkDensity">
+            <el-input v-model="dataList.bulkDensity" class="typeselect" placeholder="请输入容重" />
           </el-form-item>
-          <!-- 霉变粒 -->
-          <el-form-item label="霉变粒(%)<=" span="1">
-            <el-input v-model="dataList.goodsName" placeholder="请输入霉变粒占比" />
+          <el-form-item label="热损伤(%)<=" span="1" prop="jiaorenli">
+            <el-input v-model="dataList.jiaorenli" class="typeselect" placeholder="请输入热损伤占比" />
           </el-form-item>
-          <!--不完善粒(%)<=-->
-          <el-form-item label="不完善粒(%)<=" span="1">
-            <el-input v-model="dataList.weight" maxlength="120" placeholder="请输入不完善粒占比" />
+          <el-form-item label="杂质(%)<=" span="1" prop="impurity">
+            <el-input v-model="dataList.impurity" class="typeselect" placeholder="请输入杂质占比" />
           </el-form-item>
-          <!-- 蛋白(%)<= -->
-          <el-form-item label="蛋白(%)<=" span="1">
-            <el-input v-model="dataList.grade" class="typeselect" placeholder="请输入蛋白占比" />
+          <el-form-item label="霉变粒(%)<=" span="1" prop="mildewGrain">
+            <el-input v-model="dataList.mildewGrain" placeholder="请输入霉变粒占比" />
           </el-form-item>
-          <!--粒型-->
-          <el-form-item label="粒型" span="1">
-            <el-select
-              v-model="dataList.bulkDensity"
-              maxlength="120"
-              size="small"
-              placeholder="请选择粒型"
-            />
+          <el-form-item label="不完善粒(%)<=" span="1" prop="imperfectGrain">
+            <el-input v-model="dataList.imperfectGrain" maxlength="120" placeholder="请输入不完善粒占比" />
           </el-form-item>
-          <!--品级-->
-          <el-form-item label="品级" span="1">
-            <el-select
-              v-model="dataList.waterContent"
-              maxlength="120"
-              size="small"
-              placeholder="请选择品级"
-            />
+          <el-form-item label="蛋白(%)<=" span="1" prop="protein">
+            <el-input v-model="dataList.protein" class="typeselect" placeholder="请输入蛋白占比" />
           </el-form-item>
-          <!--产地-->
-          <el-form-item label="产地" span="1">
-            <el-select
-              v-model="dataList.unitPrice"
-              maxlength="120"
-              size="small"
+          <ws-form-item label="粒型" span="1" prop="grain">
+            <ws-select
+              v-model="dataList.grain"
+              placeholder
+              class="typeselect"
+              @change="selectgrain"
+            >
+              <ws-option
+                v-for="item in grainList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </ws-select>
+          </ws-form-item>
+          <ws-form-item label="品级" span="1" prop="grade">
+            <ws-select
+              v-model="dataList.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="unitPrice">
+            <el-cascader
+              :options="options1_"
+              v-model="selectedOptions1"
+              clearable
+              size="large"
               placeholder="请选择产地"
+              @change="handleChange1"
+              style="width:200%"
             />
-          </el-form-item>
-          <!--产出年份-->
-          <el-form-item label="产出年份" span="1">
-            <el-select v-model="dataList.unitPrice" size="small" placeholder="请选择年份" />
+          </ws-form-item>
+          <el-form-item label="产出年份" span="1" prop="outputYear">
+            <el-date-picker
+              v-model="dataList.outputYear"
+              type="year"
+              align="right"
+              unlink-panels
+              range-separator="至"
+              placeholder="开始日期"
+            ></el-date-picker>
           </el-form-item>
         </el-form>
       </div>
@@ -200,14 +256,12 @@
   </div>
 </template>
 <script>
-import {
-  getwarehousename,
-  xialaNo,
-  addoreditoutput,
-  outexamine
-} from '@/model/tasksport/index'
+import { procurementAdd } from '@/model/purchasingManagement/index'
+import { regionData,provinceAndCityDataPlus, CodeToText, TextToCode } from 'element-china-area-data'
+import { pullDown } from '@/model/warehouse/index'
 import { packList } from '@/model/contarct/index'
-import { pullDown, getstaff } from '@/model/warehouse/index'
+import { getwarehousename } from '@/model/tasksport/index'
+import { getstaff } from '@/model/warehouse/index'
 import { downloadFile } from '@/utils/batchDown'
 import Pagination from '@/components/Pagination'
 import { mapActions, mapGetters, mapState } from 'vuex'
@@ -229,21 +283,25 @@ export default {
     }
   },
   computed: {
-    ...mapGetters(['deptBudgetList'])
+
   },
   data() {
     return {
       //弹出框
       dialogViewSpareMoney: false,
       dialogApproveFormVisible: false,
-      // 船舶类型
-      monetaryKey: null,
-      // 表格显示数据
-      tableDate: [],
       // 是否显示
       showType: true,
       // 年
       year: '',
+      options_: regionData,
+      options1_:provinceAndCityDataPlus,
+      packingTypeList: '',
+      procurementPlanTypeList: '',
+      freightPayerList: '',
+      searchTypeText: '',
+      selectedOptions: [],
+      selectedOptions1: [],
       contractNoList: [],
       deptBudgetTotal: 0,
       readonly: true,
@@ -255,10 +313,11 @@ export default {
       contractType: 2,
       startDate: null,
       endDate: null,
-      goodnameList: [],
+      goodnameList: {},
+      grainList: [],
       checked: true,
       form: {},
-
+      pcFlag: 1,
       staffList: [],
       options: [],
       storageType: [],
@@ -273,6 +332,7 @@ export default {
       waterContentchange: [],
       appendixIdsAdd: '',
       uploadSuccess: {},
+      warehouseList: [],
       warehouseInOutDetail: {},
       onChange: {},
       deptBudgetList1: [],
@@ -287,6 +347,7 @@ export default {
           }
         ]
       },
+      outputYear: [],
       size: 10,
       compId: sessionStorage.getItem('ws-pf_compId'),
       deptCircularPage: {},
@@ -297,9 +358,8 @@ export default {
       },
       contractList: [],
       inOutTaskNo: '',
-      inOutTaskNo1: '',
-      dataList: { taskTypeKey: '1' },
-      dataList1: { taskTypeKey: '1' },
+      dataList: { taskTypeKey: '1',goodsName:'玉米',goodsNameKey:1,procurementPlanType:'现货',procurementPlanTypeKey:2,priceType:'定价采购',priceTypeKey:2,packingType:'散装',
+      packingTypeKey:1 },
       historyList: [],
       pickerBeginDateBefore: {
         disabledDate: time => {
@@ -309,15 +369,18 @@ export default {
       accessoryTFs: false
     }
   },
-  mounted() {
-    this.getList()
+  activated() {
+    this.loaddata()
   },
+  mounted() {},
   methods: {
     //返回按钮
     revert() {
       this.$router.go(-1)
     },
     returnsales() {
+      this.dataList = {}
+      // this.selectedOptions = ''
       this.$router.push({ path: 'procurementPlanList' })
     },
     // 获取当前年月日
@@ -367,6 +430,14 @@ export default {
         this.options = this.staffList
       }
     },
+
+    selecttaskType(e) {
+      for (var i = 0; i < this.taskTypeList.length; i++) {
+        if (this.taskTypeList[i].value == e) {
+          this.searchType = this.taskTypeList[i].type
+        }
+      }
+    },
     selectstaff(e) {
       for (var i = 0; i < this.staffList.length; i++) {
         if (this.staffList[i].staffName == e) {
@@ -381,49 +452,399 @@ export default {
         }
       }
     },
-    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
+    selectgrain(e) {
+      for (var i = 0; i < this.grainList.length; i++) {
+        if (this.grainList[i].constValue == e) {
+          this.dataList.grainKey = this.grainList[i].constKey
         }
-      })
+      }
+    },
+    selectpackingType(e) {
+      for (var i = 0; i < this.packingTypeList.length; i++) {
+        if (this.packingTypeList[i].constValue == e) {
+          this.dataList.packingTypeKey = this.packingTypeList[i].constKey
+        }
+      }
+    },
+    selectfreightPayer(e) {
+      for (var i = 0; i < this.freightPayerList.length; i++) {
+        if (this.freightPayerList[i].constValue == e) {
+          this.dataList.freightPayerKey = this.freightPayerList[i].constKey
+        }
+      }
+    },
+    selectgrade(e) {
+      for (var i = 0; i < this.gradeList.length; i++) {
+        if (this.gradeList[i].constValue == e) {
+          this.dataList.gradeKey = this.gradeList[i].constKey
+        }
+      }
+    },
+    selectprocurementPlanType(e) {
+      if(e=='现货'){
+        this.dataList.priceType='定价采购'
+        this.dataList.priceTypeKey=2
+      }else{
+        this.dataList.priceType='期货盘面价+基差'
+        this.dataList.priceTypeKey=1
+      }
+      for (var i = 0; i < this.procurementPlanTypeList.length; i++) {
+        if (this.procurementPlanTypeList[i].constValue == e) {
+          this.dataList.procurementPlanTypekey = this.procurementPlanTypeList[
+            i
+          ].constKey
+        }
+      }
+    },
+    handleChange(value) {
+      this.selectedOptions = value
+      this.dataList.receivePrivate = CodeToText[value[0]]
+      this.dataList.receiveCity = CodeToText[value[1]]
+      this.dataList.receiveArea = CodeToText[value[2]]
+    },
+    handleChange1(value) {
+      this.selectedOptions1 = value
+      this.dataList.receivePrivate = CodeToText[value[0]]
+      this.dataList.receiveCity = CodeToText[value[1]]
+      this.dataList.receiveArea = CodeToText[value[2]]
+    },
+    sendWarehousechange(e) {
+      for (let i = 0; i < this.warehouseList.length; i++) {
+        if (this.warehouseList[i].warehouseName == e) {
+          var tmp = []
+          tmp[0] = TextToCode[this.warehouseList[i].warehousePrivate].code
+          tmp[1] =
+            TextToCode[this.warehouseList[i].warehousePrivate][
+              this.warehouseList[i].warehouseCity
+            ].code
+          tmp[2] =
+            TextToCode[this.warehouseList[i].warehousePrivate][
+              this.warehouseList[i].warehouseCity
+            ][this.warehouseList[i].warehouseArea].code
+          this.selectedOptions = tmp
+        }
+      }
     },
     //关闭
     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')
-    //   }
-    // },
+
+    loaddata() {
+      getwarehousename({
+        compId: this.compId,
+        warehouseType: 1,
+      })
+        .toPromise()
+        .then(response => {
+          console.log(response)
+          this.warehouseList = response
+        })
+      // 货名
+      packList({ constId: 'CON2' })
+        .toPromise()
+        .then(response => {
+          this.goodnameList = response
+        })
+      // 品级
+      packList({ constId: 'CON3' })
+        .toPromise()
+        .then(response => {
+          this.gradeList = response
+        })
+      //粒形
+      packList({ constId: 'PRO4' })
+        .toPromise()
+        .then(response => {
+          this.grainList = response
+        })
+      //类型
+      packList({ constId: 'PRO1' })
+        .toPromise()
+        .then(response => {
+          this.procurementPlanTypeList = response
+        })
+      //包装方式
+      packList({ constId: 'PRO2' })
+        .toPromise()
+        .then(response => {
+          this.packingTypeList = response
+        })
+      //运费承担方
+      packList({ constId: 'PRO3' })
+        .toPromise()
+        .then(response => {
+          this.freightPayerList = response
+        })
+    },
+    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('')
+    },
+    submit() {
+      // if(!this.dataList.goodName) {
+      //   this.$message({
+      //     message:'货名不能为空',
+      //     type:'warning'
+      //   })
+      //   return
+      // }
+      if (!this.dataList.title) {
+        this.$message({
+          message: '标题不能为空!',
+          type: 'warning'
+        })
+        return
+      }
+      if (this.dataList.title.length>16) {
+        this.$message({
+          message: '标题输入错误!',
+          type: 'warning'
+        })
+        return
+      }
+      if (!this.dataList.plannedPurchaseVolume) {
+        this.$message({
+          message: '计划采购量不能为空!',
+          type: 'warning'
+        })
+        return
+      }
+      if (this.dataList.plannedPurchaseVolume>10000000||this.dataList.plannedPurchaseVolume<1) {
+        this.$message({
+          message: '计划采购量输入错误!',
+          type: 'warning'
+        })
+        return
+      }
+      if (this.dataList.plannedPurchaseVolume.indexOf('.')!=-1) {
+        if(this.dataList.plannedPurchaseVolume.split('.')[1].length>2){
+          this.$message({
+            message: '计划采购量输入错误!',
+            type: 'warning'
+          })
+          return
+        }
+      }
+      if (!this.dataList.minimumVolume) {
+        this.$message({
+          message: '最小交易量不能为空!',
+          type: 'warning'
+        })
+        return
+      }
+      if (
+        this.dataList.minimumVolume>10000000||this.dataList.minimumVolume<1) {
+        this.$message({
+          message: '最小交易量输入错误!',
+          type: 'warning'
+        })
+        return
+      }
+      if (this.dataList.minimumVolume.indexOf('.') != -1 &&this.dataList.minimumVolume.split('.')[1].length >2) {
+        this.$message({
+          message: '最小交易量输入错误!',
+          type: 'warning'
+        })
+        return
+      }
+      // if(!this.dataList.receiveWarehouse) {
+      //   this.$message({
+      //     message:'收货库不能为空',
+      //     type:'warning'
+      //   })
+      //   return
+      // }
+      // if(!this.dataList.freightPayer) {
+      //   this.$message({
+      //     message:'运费承担方不能为空',
+      //     type:'warning'
+      //   })
+      //   return
+      // }
+      if (!this.dataList.buyer) {
+        this.$message({
+          message: '买方不能为空!',
+          type: 'warning'
+        })
+        return
+      }
+      if (this.dataList.buyer.length>25||this.dataList.buyer.length<1) {
+        this.$message({
+          message: '买方输入错误!',
+          type: 'warning'
+        })
+        return
+      }
+      if (!this.dataList.buyerPhone) {
+        this.$message({
+          message: '请输入买方电话!',
+          type: 'warning'
+        })
+        return
+      }
+      if (this.dataList.buyerPhone.length!=11) {
+        this.$message({
+          message: '买方电话输入错误!',
+          type: 'warning'
+        })
+        return
+      }
+      if (!this.dataList.waterContent) {
+        this.$message({
+          message: '水分不能为空!',
+          type: 'warning'
+        })
+        return
+      }
+      if (this.dataList.waterContent>40||this.dataList.waterContent<1) {
+        this.$message({
+          message: '水分输入错误!',
+          type: 'warning'
+        })
+        return
+      }
+      if (String(this.dataList.waterContent).indexOf('.') != -1 &&
+          String(this.dataList.waterContent).length -
+            (String(this.dataList.waterContent).indexOf('.') + 1) >
+            2) {
+        this.$message({
+          message: '水分输入错误',
+          type: 'warning'
+        })
+        return
+      }
+      if (
+        this.dataList.bulkDensity&&String(this.dataList.bulkDensity).indexOf('.') != -1 &&
+          String(this.dataList.bulkDensity).length -
+            (String(this.dataList.bulkDensity).indexOf('.') + 1) >
+            2||this.dataList.bulkDensity>1000||this.dataList.bulkDensity<500){
+        this.$message({
+          message: '容重输入错误',
+          type: 'warning'
+        })
+        return
+      }
+      if (
+        this.dataList.protein&&String(this.dataList.protein).indexOf('.') != -1 &&
+          String(this.dataList.protein).length -
+            (String(this.dataList.protein).indexOf('.') + 1) >
+            2||this.dataList.protein>40||this.dataList.protein<1){
+        this.$message({
+          message: '蛋白占比输入错误',
+          type: 'warning'
+        })
+        return
+      }
+      if (
+        this.dataList.impurity&&String(this.dataList.impurity).indexOf('.') != -1 &&
+          String(this.dataList.impurity).length -
+            (String(this.dataList.impurity).indexOf('.') + 1) >2) {
+        this.$message({
+          message: '杂质输入错误',
+          type: 'warning'
+        })
+        return
+      }
+      if (
+        this.dataList.mildewGrain&&String(this.dataList.mildewGrain).indexOf('.') != -1 &&
+          String(this.dataList.mildewGrain).length -
+            (String(this.dataList.mildewGrain).indexOf('.') + 1) >
+            2) {
+        this.$message({
+          message: '霉变粒输入错误',
+          type: 'warning'
+        })
+        return
+      }
+      if (
+        this.dataList.jiaorenli&&String(this.dataList.jiaorenli).indexOf('.') != -1 &&
+          String(this.dataList.jiaorenli).length -
+            (String(this.dataList.jiaorenli).indexOf('.') + 1) >
+            2) {
+        this.$message({
+          message: '热损伤输入错误',
+          type: 'warning'
+        })
+        return
+      }
+      if (
+        this.dataList.imperfectGrain&&String(this.dataList.imperfectGrain).indexOf('.') != -1 &&
+          String(this.dataList.imperfectGrain).length -
+            (String(this.dataList.imperfectGrain).indexOf('.') + 1) >
+            2) {
+        this.$message({
+          message: '不完整粒输入错误',
+          type: 'warning'
+        })
+        return
+      }
+      this.dataList.id = this.$route.query.id
+      this.$confirm(`提交后该采购信息将发布到交易平台,是否确定提交?`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning'
+      })
+        .then(() => {
+          this.$refs.dataList.validate(valid => {
+            if (valid) {
+              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 =
+                CodeToText[this.selectedOptions1[0]]
+              this.dataList.deliveryCity = 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')
+
+              procurementAdd(this.dataList)
+                .toPromise()
+                .then(response => {
+                  this.$message.success('添加成功')
+                  ;(this.outputYear = ''),
+                    this.$router.push({ path: 'procurementPlanList' })
+                })
+            } else {
+              EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              return false
+            }
+          })
+        })
+        .catch(() => {
+          console.log(3523543534)
+          return false
+        })
+    },
+
     selectwarehouseName() {},
     tarechange(e) {
       if (this.dataList.grossWeight && this.dataList.tare) {
@@ -446,13 +867,6 @@ export default {
         }
       }
     },
-    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) {
@@ -492,24 +906,6 @@ export default {
       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() {},
@@ -616,7 +1012,6 @@ export default {
   position: relative;
   top: 50px;
   width: 40%;
-  height: 2000px;
   margin: 0 auto;
   margin-right: 180px;
 }
@@ -748,4 +1143,7 @@ export default {
   top: 21%;
   font-size: 20px;
 }
+/deep/.typeselect .el-input__inner {
+  color: #8890b1;
+}
 </style>

+ 532 - 181
src/views/purchasingManagement/procurementPlanEdit.vue

@@ -18,111 +18,165 @@
       </el-col>
     </el-row>
     <div class="basicInformation">
-      <el-radio-group @change="tasktypechange" v-model="dataList.taskTypeKey"></el-radio-group>
+      <!-- <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>
+          <ws-form-item label="标题" span="1" prop="title">
+            <el-input v-model="dataList.title" maxlength="16" placeholder="请输入标题,不超过16个字" />
+          </ws-form-item>
           <!-- 货名 -->
-          <el-form-item label="货名" span="1">
-            <el-select
-              v-model="dataList.inOutType"
-              class="typeselect"
-              placeholder="请选择货名"
+          <ws-form-item label="货名" span="1" prop="goodsName">
+            <ws-select
               disabled
-            />
-          </el-form-item>
+              v-model="dataList.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>
           <!-- 计划采购量(吨) -->
-          <el-form-item label="计划采购量(吨)" span="1">
-            <el-input v-model="dataList.contractNo" class="typeselect" placeholder="请输入计划采购量" />
-          </el-form-item>
+          <ws-form-item label="计划采购量(吨)" span="1" prop="plannedPurchaseVolume">
+            <el-input
+              v-model="dataList.plannedPurchaseVolume"
+              class="typeselect"
+              placeholder="请输入计划采购量"
+            />
+          </ws-form-item>
           <!-- 最小成交量 -->
-          <el-form-item label="最小成交量(吨)" span="1">
-            <el-input v-model="dataList.goodsName" placeholder="请输入最小成交量" />
-          </el-form-item>
+          <ws-form-item label="最小成交量(吨)" span="1" prop="minimumVolume">
+            <el-input v-model="dataList.minimumVolume" placeholder="请输入最小成交量" />
+          </ws-form-item>
           <!--类型-->
-          <el-form-item label="类型" span="1">
-            <el-select v-model="dataList.weight" maxlength="120" placeholder="请选择类型" disabled />
-          </el-form-item>
+          <ws-form-item label="类型" span="1" prop="procurementPlanType">
+            <ws-select
+              disabled
+              v-model="dataList.procurementPlanType"
+              placeholder
+              class="typeselect"
+              @change="selectprocurementPlanType"
+            >
+              <ws-option
+                v-for="item in procurementPlanTypeList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </ws-select>
+          </ws-form-item>
           <!-- 价格类型 -->
-          <el-form-item label="价格类型" span="1">
-            <el-input v-model="dataList.grade" placeholder="请输入价格类型" disabled />
-          </el-form-item>
+          <ws-form-item label="价格类型" span="1" prop="priceType">
+            <el-input v-model="dataList.priceType" disabled />
+          </ws-form-item>
           <!-- 基差 -->
-          <el-form-item label="基差(元/吨)" span="1">
-            <el-input v-model="dataList.grade" placeholder="请输入基差" />
-          </el-form-item>
+          <ws-form-item
+            v-show="dataList.procurementPlanType=='期货'"
+            label="基差(元/吨)"
+            span="1"
+            prop="basisPrice"
+          >
+            <el-input v-model="dataList.basisPrice" placeholder="请输入基差" />
+          </ws-form-item>
           <!--采购价格(元)-->
-          <el-form-item label="采购价格(元)" span="1">
+          <ws-form-item
+            v-show="dataList.procurementPlanType=='现货'"
+            label="采购价格(元)"
+            span="1"
+            prop="procurementPrice"
+          >
             <el-input
-              v-model="dataList.bulkDensity"
+              v-model="dataList.procurementPrice"
               maxlength="120"
               size="small"
               placeholder="请输入采购价格"
             />
-          </el-form-item>
+          </ws-form-item>
           <!--收货库-->
-          <el-form-item label="收货库" span="1">
+          <ws-form-item label="收货库" span="1" prop="receiveWarehouse">
             <el-select
-              v-model="dataList.waterContent"
+              disabled
+              v-model="dataList.receiveWarehouse"
               maxlength="120"
               size="small"
-              placeholder="请选择收货库"
+              
             />
-          </el-form-item>
+            <el-option
+              v-for="item in warehouseList1"
+              :key="item.constKey"
+              :label="item.warehouseName"
+              :value="item.warehouseName"
+            ></el-option>
+          </ws-form-item>
           <!--收货库所在地区-->
-          <el-form-item label="收货库所在地区" span="1">
-            <el-select
-              v-model="dataList.unitPrice"
-              maxlength="120"
-              size="small"
-              placeholder="请选择收货库说在地区"
+          <ws-form-item label="收货库所在地区" span="1" prop="receiveArea">
+            <el-cascader
+              :options="options_"
+              v-model="selectedOptions"
+              clearable
+              size="large"
+              placeholder="请选择收货库所在地区"
+              @change="handleChange"
+              style="width:200%"
             />
-          </el-form-item>
+          </ws-form-item>
           <!--运费承担方-->
-          <el-form-item label="运费承担方" span="1">
-            <el-select
-              v-model="dataList.unitPrice"
-              maxlength="120"
-              size="small"
-              placeholder="请选择运费承担方"
-            />
-          </el-form-item>
+          <ws-form-item label="运费承担方" span="1" prop="freightPayer">
+            <ws-select
+              v-model="dataList.freightPayer"
+              placeholder
+              class="typeselect"
+              @change="selectfreightPayer"
+            >
+              <ws-option
+                v-for="item in freightPayerList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </ws-select>
+          </ws-form-item>
           <!--包装方式-->
-          <el-form-item label="包装方式" span="1">
-            <el-select
-              v-model="dataList.agent"
-              filterable
-              :filter-method="dataFilter"
-              placeholder="请选择包装方式"
-            ></el-select>
-          </el-form-item>
+          <ws-form-item label="包装方式" span="1" prop="packingType">
+            <ws-select
+              v-model="dataList.packingType"
+              placeholder
+              class="typeselect"
+              @change="selectpackingType"
+            >
+              <ws-option
+                v-for="item in packingTypeList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </ws-select>
+          </ws-form-item>
           <!--装袋备注=-->
-          <el-form-item label="装袋备注" span="1">
+          <el-form-item label="装袋备注" span="1" prop="baggingNotes">
             <el-input
-              v-model="dataList.businessDescribe"
+              v-model="dataList.baggingNotes"
               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>
+          <ws-form-item label="买方" span="1" prop="buyer">
+            <el-input v-model="dataList.buyer" maxlength="120" size="small" placeholder="请输入买方名称" />
+          </ws-form-item>
           <!-- 买方电话 -->
-          <el-form-item label="买方电话" span="1">
+          <el-form-item label="买方电话" span="1" prop="buyerPhone">
             <el-input
-              v-model="dataList.agent"
+              v-model="dataList.buyerPhone"
               filterable
               :filter-method="dataFilter"
               placeholder="请输入买方电话"
@@ -136,64 +190,90 @@
           <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 label="水分(%)<=" span="1" prop="waterContent">
+            <el-input v-model="dataList.waterContent" 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 label="容重(g/l)<=" span="1" prop="bulkDensity">
+            <el-input v-model="dataList.bulkDensity" class="typeselect" placeholder="请输入容重" />
           </el-form-item>
           <!-- 热损伤 -->
-          <el-form-item label="热损伤(%)<=" span="1">
-            <el-input v-model="dataList.inOutType" class="typeselect" placeholder="请输入热损伤占比" />
+          <el-form-item label="热损伤(%)<=" span="1" prop="jiaorenli">
+            <el-input v-model="dataList.jiaorenli" class="typeselect" placeholder="请输入热损伤占比" />
           </el-form-item>
           <!-- 杂质 -->
-          <el-form-item label="杂质(%)<=" span="1">
-            <el-input v-model="dataList.contractNo" class="typeselect" placeholder="请输入杂质占比" />
+          <el-form-item label="杂质(%)<=" span="1" prop="impurity">
+            <el-input v-model="dataList.impurity" class="typeselect" placeholder="请输入杂质占比" />
           </el-form-item>
           <!-- 霉变粒 -->
-          <el-form-item label="霉变粒(%)<=" span="1">
-            <el-input v-model="dataList.goodsName" placeholder="请输入霉变粒占比" />
+          <el-form-item label="霉变粒(%)<=" span="1" prop="mildewGrain">
+            <el-input v-model="dataList.mildewGrain" placeholder="请输入霉变粒占比" />
           </el-form-item>
           <!--不完善粒(%)<=-->
-          <el-form-item label="不完善粒(%)<=" span="1">
-            <el-input v-model="dataList.weight" maxlength="120" placeholder="请输入不完善粒占比" />
+          <el-form-item label="不完善粒(%)<=" span="1" prop="imperfectGrain">
+            <el-input v-model="dataList.imperfectGrain" maxlength="120" placeholder="请输入不完善粒占比" />
           </el-form-item>
           <!-- 蛋白(%)<= -->
-          <el-form-item label="蛋白(%)<=" span="1">
-            <el-input v-model="dataList.grade" class="typeselect" placeholder="请输入蛋白占比" />
+          <el-form-item label="蛋白(%)<=" span="1" prop="protein">
+            <el-input v-model="dataList.protein" 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>
+          <ws-form-item label="粒型" span="1" prop="grain">
+            <ws-select
+              v-model="dataList.grain"
+              placeholder
+              class="typeselect"
+              @change="selectgrain"
+            >
+              <ws-option
+                v-for="item in grainList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </ws-select>
+          </ws-form-item>
           <!--品级-->
-          <el-form-item label="品级" span="1">
-            <el-select
-              v-model="dataList.waterContent"
-              maxlength="120"
-              size="small"
-              placeholder="请选择品级"
-            />
-          </el-form-item>
+          <ws-form-item label="品级" span="1" prop="grade">
+            <ws-select
+              v-model="dataList.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>
           <!--产地-->
-          <el-form-item label="产地" span="1">
-            <el-select
-              v-model="dataList.unitPrice"
-              maxlength="120"
-              size="small"
+          <ws-form-item label="产地" span="1" prop="unitPrice">
+            <el-cascader
+              :options="options_"
+              v-model="selectedOptions1"
+              clearable
+              size="large"
               placeholder="请选择产地"
+              @change="handleChange1"
+              style="width:200%"
             />
-          </el-form-item>
+          </ws-form-item>
           <!--产出年份-->
-          <el-form-item label="产出年份" span="1">
-            <el-select v-model="dataList.unitPrice" size="small" placeholder="请选择年份" />
+          <el-form-item label="产出年份" span="1" prop="outputYear">
+           <el-date-picker
+              v-model="outputYear"
+              type="daterange"
+              align="right"
+              unlink-panels
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+        >
+        </el-date-picker>
           </el-form-item>
         </el-form>
       </div>
@@ -205,14 +285,12 @@
   </div>
 </template>
 <script>
-import {
-  getwarehousename,
-  xialaNo,
-  addoreditoutput,
-  outexamine
-} from '@/model/tasksport/index'
+import { procurementLook , procurementEdit } from '@/model/purchasingManagement/index'
+import { regionData, CodeToText, TextToCode } from 'element-china-area-data'
+import { pullDown } from '@/model/warehouse/index'
 import { packList } from '@/model/contarct/index'
-import { pullDown, getstaff } from '@/model/warehouse/index'
+import {  getwarehousename } from '@/model/tasksport/index'
+import { getstaff } from '@/model/warehouse/index'
 import { downloadFile } from '@/utils/batchDown'
 import Pagination from '@/components/Pagination'
 import { mapActions, mapGetters, mapState } from 'vuex'
@@ -234,7 +312,7 @@ export default {
     }
   },
   computed: {
-    ...mapGetters(['deptBudgetList'])
+    ...mapGetters(['dataList'])
   },
   data() {
     return {
@@ -249,21 +327,30 @@ export default {
       showType: true,
       // 年
       year: '',
+       options_: regionData,
+      packingTypeList: '',
+      procurementPlanTypeList: '',
+      freightPayerList: '',
+      searchTypeText: '',
+      selectedOptions: [],
+      selectedOptions1: [],
       contractNoList: [],
       deptBudgetTotal: 0,
       readonly: true,
       currentPage: 1,
       pageSize: 10,
       searchType: 1,
+      warehouseList1:[],
       searchKeyWord: '',
       radio: '1',
       contractType: 2,
       startDate: null,
       endDate: null,
-      goodnameList: [],
+      goodnameList: {},
+      grainList: [],
       checked: true,
       form: {},
-
+       pcFlag:1,
       staffList: [],
       options: [],
       storageType: [],
@@ -292,6 +379,8 @@ export default {
           }
         ]
       },
+
+     outputYear: [],
       size: 10,
       compId: sessionStorage.getItem('ws-pf_compId'),
       deptCircularPage: {},
@@ -302,7 +391,6 @@ export default {
       },
       contractList: [],
       inOutTaskNo: '',
-      inOutTaskNo1: '',
       dataList: { taskTypeKey: '1' },
       dataList1: { taskTypeKey: '1' },
       historyList: [],
@@ -314,15 +402,19 @@ export default {
       accessoryTFs: false
     }
   },
-  mounted() {
-    this.getList()
+  activated() {
+    this.loaddata()
+    this.showType = this.isShow
   },
+  mounted() {},
   methods: {
     //返回按钮
     revert() {
       this.$router.go(-1)
     },
     returnsales() {
+      this.dataList = {}
+      // this.selectedOptions = ''
       this.$router.push({ path: 'procurementPlanList' })
     },
     // 获取当前年月日
@@ -372,6 +464,14 @@ export default {
         this.options = this.staffList
       }
     },
+    
+    selecttaskType(e) {
+      for (var i = 0; i < this.taskTypeList.length; i++) {
+        if (this.taskTypeList[i].value == e) {
+          this.searchType = this.taskTypeList[i].type
+        }
+      }
+    },
     selectstaff(e) {
       for (var i = 0; i < this.staffList.length; i++) {
         if (this.staffList[i].staffName == e) {
@@ -386,49 +486,321 @@ export default {
         }
       }
     },
-    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
+    selectgrain(e) {
+      for (var i = 0; i < this.grainList.length; i++) {
+        if (this.grainList[i].constValue == e) {
+          this.dataList.grainKey = this.grainList[i].constKey
         }
-      })
+      }
+    },
+    selectpackingType(e) {
+      for (var i = 0; i < this.packingTypeList.length; i++) {
+        if (this.packingTypeList[i].constValue == e) {
+          this.dataList.packingTypeKey = this.packingTypeList[i].constKey
+        }
+      }
+    },
+    selectfreightPayer(e) {
+      for (var i = 0; i < this.freightPayerList.length; i++) {
+        if (this.freightPayerList[i].constValue == e) {
+          this.dataList.freightPayerKey = this.freightPayerList[i].constKey
+        }
+      }
+    },
+    selectgrade(e) {
+      for (var i = 0; i < this.gradeList.length; i++) {
+        if (this.gradeList[i].constValue == e) {
+          this.dataList.gradeKey = this.gradeList[i].constKey
+        }
+      }
+    },
+    selectprocurementPlanType(e) {
+      for (var i = 0; i < this.procurementPlanTypeList.length; i++) {
+        if (this.procurementPlanTypeList[i].constValue == e) {
+          this.dataList.procurementPlanTypekey = this.procurementPlanTypeList[
+            i
+          ].constKey
+        }
+      }
+    },
+    handleChange(value) {
+      this.selectedOptions = value
+      this.dataList.receivePrivate = CodeToText[value[0]]
+      this.dataList.receiveCity = CodeToText[value[1]]
+      this.dataList.receiveArea = CodeToText[value[2]]
+    },
+    handleChange1(value) {
+      this.selectedOptions = value
+      this.dataList.receivePrivate = CodeToText[value[0]]
+      this.dataList.receiveCity = CodeToText[value[1]]
+      this.dataList.receiveArea = CodeToText[value[2]]
+    },
+    submit() {
+      if (this.outputYear) {
+        this.startDate = this.dateFormat('YYYY-mm-dd', this.outputYear[0])
+        this.endDate = this.dateFormat('YYYY-mm-dd', this.outputYear[1])
+      } else {
+        this.startDate = ''
+        this.endDate = ''
+      }
+      // this.getList()
     },
     //关闭
     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')
-    //   }
-    // },
+    
+    loaddata() {
+       procurementLook({ id: this.$route.query.id })
+        .toPromise()
+        .then((response) => {
+          this.dataList = response
+        })
+      // 货名
+      packList({ constId: 'CON2' })
+        .toPromise()
+        .then(response => {
+          this.goodnameList = response
+        })
+      // 品级
+      packList({ constId: 'CON3' })
+        .toPromise()
+        .then(response => {
+          this.gradeList = response
+        })
+      //粒形
+      packList({ constId: 'PRO4' })
+        .toPromise()
+        .then(response => {
+          this.grainList = response
+        })
+      //类型
+      packList({ constId: 'PRO1' })
+        .toPromise()
+        .then(response => {
+          this.procurementPlanTypeList = response
+        })
+      //包装方式
+      packList({ constId: 'PRO2' })
+        .toPromise()
+        .then(response => {
+          this.packingTypeList = response
+        })
+      //运费承担方
+      packList({ constId: 'PRO3' })
+        .toPromise()
+        .then(response => {
+          this.freightPayerList = response
+        })
+    },
+    submit() {
+      // if(!this.dataList.goodName) {
+      //   this.$message({
+      //     message:'货名不能为空',
+      //     type:'warning'
+      //   })
+      //   return
+      // }
+      if (!this.dataList.title) {
+        this.$message({
+          message: '标题不能为空',
+          type: 'warning'
+        })
+        return
+      }
+      if (!this.dataList.plannedPurchaseVolume) {
+        this.$message({
+          message: '计划采购量不能为空',
+          type: 'warning'
+        })
+        return
+      }
+      if (
+        !this.dataList.minimumVolume ||
+        (String(this.dataList.minimumVolume).indexOf('.') != -1 &&
+          String(this.dataList.minimumVolume).length -
+            (String(this.dataList.minimumVolume).indexOf('.') + 1) >
+            2)
+      ) {
+        this.$message({
+          message: '最小交易量输入错误',
+          type: 'warning'
+        })
+        return
+      }
+      if (!this.dataList.procurementPlanType) {
+        this.$message({
+          message: '类型不能为空',
+          type: 'warning'
+        })
+        return
+      }
+      // if(!this.dataList.receiveWarehouse) {
+      //   this.$message({
+      //     message:'收货库不能为空',
+      //     type:'warning'
+      //   })
+      //   return
+      // }
+      // if(!this.dataList.freightPayer) {
+      //   this.$message({
+      //     message:'运费承担方不能为空',
+      //     type:'warning'
+      //   })
+      //   return
+      // }
+      if (!this.dataList.packingType) {
+        this.$message({
+          message: '包装方式不能为空',
+          type: 'warning'
+        })
+        return
+      }
+      if (!this.dataList.buyer) {
+        this.$message({
+          message: '买方不能为空',
+          type: 'warning'
+        })
+        return
+      }
+      if (!this.dataList.buyerPhone) {
+        this.$message({
+          message: '请输入买方电话!',
+          type: 'warning'
+        })
+        return
+      }
+      if (isNaN(this.dataList.buyerPhone)) {
+        this.$message({
+          message: '输入买方电话有误!',
+          type: 'warning'
+        })
+        return
+      }
+      if (
+        this.dataList.buyerPhone.length < 6 ||
+        this.dataList.buyerPhone.length > 15
+      ) {
+        this.$message({
+          message: '买方电话输入错误',
+          type: 'warning'
+        })
+        return
+      }
+      if (!this.dataList.waterContent) {
+        this.$message({
+          message: '水分不能为空',
+          type: 'warning'
+        })
+        return
+      }
+      if (
+        !this.dataList.bulkDensity ||
+        (String(this.dataList.bulkDensity).indexOf('.') != -1 &&
+          String(this.dataList.bulkDensity).length -
+            (String(this.dataList.bulkDensity).indexOf('.') + 1) >
+            2)
+      ) {
+        this.$message({
+          message: '容重输入错误',
+          type: 'warning'
+        })
+        return
+      }
+      if (
+        !this.dataList.impurity ||
+        (String(this.dataList.impurity).indexOf('.') != -1 &&
+          String(this.dataList.impurity).length -
+            (String(this.dataList.impurity).indexOf('.') + 1) >
+            2)
+      ) {
+        this.$message({
+          message: '杂质输入错误',
+          type: 'warning'
+        })
+        return
+      }
+      if (
+        !this.dataList.mildewGrain ||
+        (String(this.dataList.mildewGrain).indexOf('.') != -1 &&
+          String(this.dataList.mildewGrain).length -
+            (String(this.dataList.mildewGrain).indexOf('.') + 1) >
+            2)
+      ) {
+        this.$message({
+          message: '霉变粒输入错误',
+          type: 'warning'
+        })
+        return
+      }
+      if (
+        !this.dataList.jiaorenli ||
+        (String(this.dataList.jiaorenli).indexOf('.') != -1 &&
+          String(this.dataList.jiaorenli).length -
+            (String(this.dataList.jiaorenli).indexOf('.') + 1) >
+            2)
+      ) {
+        this.$message({
+          message: '热损伤输入错误',
+          type: 'warning'
+        })
+        return
+      }
+      if (
+        !this.dataList.imperfectGrain ||
+        (String(this.dataList.imperfectGrain).indexOf('.') != -1 &&
+          String(this.dataList.imperfectGrain).length -
+            (String(this.dataList.imperfectGrain).indexOf('.') + 1) >
+            2)
+      ) {
+        this.$message({
+          message: '不完整粒输入错误',
+          type: 'warning'
+        })
+        return
+      }
+      this.dataList.id = this.$route.query.id
+      this.$confirm(`提交后该采购信息将发布到交易平台,是否确定提交?`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning'
+      })
+        .then(() => {
+          this.$refs.dataList.validate(valid => {
+
+            if (valid) {
+          this.dataList.sourceProvince =
+            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.compId = this.compId
+          // this.dataList.pcFlag = 1
+              this.dataList.compId = sessionStorage.getItem('ws-pf_compId')
+
+              procurementEdit(this.dataList)
+                .toPromise()
+                .then(response => {
+                  this.$message.success('添加成功')
+                  
+                  this.$router.push({ path: 'procurementPlanList' })
+                })
+            } else {
+              EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              return false
+            }
+          })
+        })
+        .catch(() => {
+          console.log(3523543534)
+          return false
+        })
+    },
+
     selectwarehouseName() {},
     tarechange(e) {
       if (this.dataList.grossWeight && this.dataList.tare) {
@@ -451,13 +823,6 @@ export default {
         }
       }
     },
-    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) {
@@ -497,24 +862,6 @@ export default {
       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() {},
@@ -553,6 +900,7 @@ export default {
       align-items: center;
       text-align: left;
       overflow: hidden;
+      
     }
   }
 }
@@ -753,4 +1101,7 @@ export default {
   top: 21%;
   font-size: 20px;
 }
+/deep/.typeselect .el-input__inner {
+  color: #8890b1;
+}
 </style>

+ 80 - 48
src/views/purchasingManagement/procurementPlanList.vue

@@ -1,22 +1,6 @@
 //采购计划
 <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="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-input
@@ -50,14 +34,14 @@
       height="780"
     >
       <el-table-column type="index" label="序号" width="80"></el-table-column>
-      <el-table-column class="table_td" prop="inOutTaskNo" label="采购计划编号"></el-table-column>
-      <el-table-column class="table_td" prop="contractNo" label="标题"></el-table-column>
-      <el-table-column class="table_td" prop="warehouseName" label="货名"></el-table-column>
-      <el-table-column class="table_td" prop="inOutType" label="重量(吨)"></el-table-column>
-      <el-table-column class="table_td" prop="weight" label="基差(元/吨)"></el-table-column>
-      <el-table-column class="table_td" prop="send" label="单价(元/吨)"></el-table-column>
-      <el-table-column class="table_td" prop="predictDate" label="收货库"></el-table-column>
-      <el-table-column prop="taskStatus" label="状态">
+      <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 prop="status" label="状态">
         <template slot-scope="scope">
           <el-popover
             placement="left"
@@ -68,8 +52,8 @@
           >
             <template>
               <span slot="reference">
-                <span v-if="scope.row.taskStatus == '展示中'" class="executory"></span>
-                <span v-if="scope.row.taskStatus == '已隐藏'" class="inExecution"></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>
@@ -90,7 +74,7 @@
           </el-popover>
         </template>
       </el-table-column>
-      <el-table-column class="table_td" label="更新时间" prop="establishDate"></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>
@@ -104,15 +88,16 @@
       @size-change="handleSizeChange"
       @current-change="handleCurrentChange"
       :current-page="currentPage"
-      :page-size="pageSize"
+      :page-size="deptCircularPage.pageSize"
       layout="total, sizes, prev, pager, next, jumper"
       :total="deptBudgetTotal"
-    ></el-pagination>
+    >
+    </el-pagination>
   </div>
   <!-- </div> -->
 </template>
 <script>
-import { taskList } from '@/model/warehouse/index'
+import { procurementPlan , procurementDel } from '@/model/purchasingManagement/index'
 import { downloadFile } from '@/utils/batchDown'
 import Pagination from '@/components/Pagination'
 import WsUpload from '@/components/WsUpload'
@@ -147,25 +132,27 @@ export default {
       year: '',
       pickerOptions: {},
       value2: '',
+      handleSizeChange:'',
       deptBudgetTotal: 0,
       currentPage: 1,
-      tranTypeKey: 1,
+      // tranTypeKey: 1,
       pageSize: 10,
       searchType: 1,
       searchTypeText: '未完成',
       searchKeyWord: '',
       contractType: 2,
-
+      pcFlag:1,
       // 提交类型
       submitType: true,
       size: 10,
       spanArr: [],
       contractNo: '',
-      inOutTaskNo: '',
+      // inOutTaskNo: '',
       compId: sessionStorage.getItem('ws-pf_compId'),
       deptCircularPage: {},
       warehouseList: [],
       deptBudgetList: {},
+      pcFlag:1,
       historyList: [],
       pickerBeginDateBefore: {
         disabledDate: time => {
@@ -182,15 +169,14 @@ export default {
   methods: {
     getList() {
       console.log(123456)
-      taskList({
+      procurementPlan({
         compId: sessionStorage.getItem('ws-pf_compId'),
         currentPage: this.currentPage,
         pageSize: this.pageSize,
         contractType: this.contractType,
         tranTypeKey: this.tranTypeKey,
-        searchType: this.searchType,
         contractNo: this.contractNo,
-        inOutTaskNo: this.inOutTaskNo
+        pcFlag: this.pcFlag,
       })
         .toPromise()
         .then(response => {
@@ -201,16 +187,23 @@ export default {
       this.searchType = state
       this.getList()
     },
-    delivery(item) {
+    // 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({
-        path: 'warehouseManagementDelivery',
-        query: {
-          baseId: item.warehouseId,
-          positionId: item.binNumberId,
-          warehouseName: item.warehouseName,
-          binNumber: item.binNumber,
-          capacity: item.capacity
-        }
+        name: 'procurementPlanEdit',
+        query: {  id: row.id },
       })
     },
     getSpanArr(data) {
@@ -244,15 +237,54 @@ export default {
         }
       })
     },
+    //添加
+    handleAdd(){
+      this.$router.push({
+        name: 'procurementPlanAdd',
+      })
+    },
     //查看
     handleLook(row) {
       this.$router.push({
-        path: 'warehouseManagementPutOutLook',
+        name: 'procurementPlanLook',
         query: {
-          relevanceId: row.relevanceId
+         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' })
@@ -390,7 +422,7 @@ export default {
     },
     total() {}
   }
-}
+
 </script>
 <style lang="scss" scoped>
 .connert {

+ 51 - 48
src/views/purchasingManagement/procurementPlanLook.vue

@@ -26,59 +26,67 @@
         <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-input disabled v-model="dataList.title" class="typeselect"></el-input>
           </el-form-item>
           <!-- 货名 -->
           <el-form-item label="货名">
-            <el-select disabled v-model="dataList.inOutType" class="typeselect"></el-select>
+            <el-input disabled v-model="dataList.goodsName" class="typeselect"></el-input>
           </el-form-item>
           <!-- 合同编号 -->
           <el-form-item label="计划采购量(吨)">
-            <el-input disabled v-model="dataList.contractNo" class="typeselect"></el-input>
+            <el-input disabled v-model="dataList.plannedPurchaseVolume" class="typeselect"></el-input>
           </el-form-item>
           <!-- 货名 -->
           <el-form-item label="最小成交量(吨)">
-            <el-input disabled v-model="dataList.goodsName"></el-input>
+            <el-input disabled v-model="dataList.minimumVolume"></el-input>
           </el-form-item>
           <!--重量(吨)-->
           <el-form-item label="类型" span="1">
-            <el-select disabled v-model="dataList.weight" maxlength="120" />
+            <el-input disabled v-model="dataList.procurementPlanType" maxlength="120" />
           </el-form-item>
           <!-- 价格类型 -->
           <el-form-item label="价格类型">
-            <el-select v-model="dataList.grade" placeholder class="typeselect" disabled></el-select>
+            <el-input v-model="dataList.priceType" placeholder class="typeselect" disabled></el-input>
           </el-form-item>
+          <ws-form-item v-show="dataList.procurementPlanType=='期货'" label="基差(元/吨)" span="1" prop="basisPrice">
+            <el-input v-model="dataList.basisPrice" disabled   maxlength="120" size="small" />
+          </ws-form-item>
           <!--采购价格(元)-->
-          <el-form-item label="采购价格(元)">
-            <el-input disabled v-model="dataList.bulkDensity" maxlength="120" size="small" />
-          </el-form-item>
+         <ws-form-item v-show="dataList.procurementPlanType=='现货'" label="采购价格(元)" span="1" prop="procurementPrice">
+            <el-input
+            disabled
+              v-model="dataList.procurementPrice"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
           <!--收货库-->
           <el-form-item label="收货库" span="1">
-            <el-select disabled v-model="dataList.waterContent" maxlength="120" size="small" />
+            <el-input disabled v-model="dataList.receiveWarehouse" 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-input disabled v-model="dataList.unitPrice" maxlength="120" size="small" /> -->{{dataList.receivePrivate}}{{dataList.receiveCity}}{{dataList.receiveArea}}
           </el-form-item>
           <!--运费承担方-->
           <el-form-item label="运费承担方">
-            <el-input disabled v-model="dataList.unitPrice" maxlength="120" size="small" />
+            <el-input disabled v-model="dataList.freightPayer" 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-input disabled v-model="dataList.packingType" filterable :filter-method="dataFilter"></el-input>
           </el-form-item>
           <!--装袋备注=-->
           <el-form-item label="装袋备注">
-            <el-input disabled v-model="dataList.businessDescribe" size="small" />
+            <el-input disabled v-model="dataList.baggingNotes" size="small" />
           </el-form-item>
           <!-- 买方 -->
           <el-form-item label="买方">
-            <el-input disabled v-model="dataList.unitPrice" maxlength="120" size="small" />
+            <el-input disabled v-model="dataList.buyer" 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-input disabled v-model="dataList.buyerPhone" filterable :filter-method="dataFilter"></el-input>
           </el-form-item>
           <div class="small-title"></div>
         </el-form>
@@ -89,48 +97,49 @@
         </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 disabled v-model="dataList.waterContent" class="typeselect" />
           </el-form-item>
 
           <!-- 容重 -->
           <el-form-item label="容重(g/l)<=">
-            <el-input disabled v-model="dataList.warehouseName" class="typeselect" />
+            <el-input disabled v-model="dataList.bulkDensity" class="typeselect" />
           </el-form-item>
           <!-- 热损伤 -->
           <el-form-item label="热损伤(%)<=">
-            <el-input disabled v-model="dataList.inOutType" class="typeselect" />
+            <el-input disabled v-model="dataList.jiaorenli" class="typeselect" />
           </el-form-item>
           <!-- 杂质 -->
           <el-form-item label="杂质(%)<=">
-            <el-input disabled v-model="dataList.contractNo" class="typeselect" />
+            <el-input disabled v-model="dataList.impurity" class="typeselect" />
           </el-form-item>
-          <!-- 货名 -->
+          <!-- 霉变粒 -->
           <el-form-item label="霉变粒(%)<=">
-            <el-input disabled v-model="dataList.goodsName" />
+            <el-input disabled v-model="dataList.mildewGrain" />
           </el-form-item>
           <!--不完善粒(%)<=-->
           <el-form-item label="不完善粒(%)<=" span="1">
-            <el-input disabled v-model="dataList.weight" maxlength="120" />
+            <el-input disabled v-model="dataList.imperfectGrain" maxlength="120" />
           </el-form-item>
           <!-- 蛋白(%)<= -->
           <el-form-item label="蛋白(%)<=" span="1">
-            <el-input v-model="dataList.grade" placeholder class="typeselect" disabled />
+            <el-input v-model="dataList.protein" 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-input disabled v-model="dataList.grain" 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-input disabled v-model="dataList.grade" 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-input disabled></el-input>    -->
+            {{dataList.outputPrivate}}{{dataList.outputCity}}
           </el-form-item>
           <!--产出年份-->
           <el-form-item label="产出年份" span="1">
-            <el-select v-model="dataList.unitPrice" size="small" disabled />
+            <el-input v-model="dataList.outputYear" size="small" disabled />
           </el-form-item>
         </el-form>
       </div>
@@ -143,11 +152,9 @@
 </template>
 <script>
 import {
-  getwarehousename,
-  xialaNo,
-  addoreditoutput,
-  outexamine
-} from '@/model/tasksport/index'
+
+  procurementLook,
+} from '@/model/purchasingManagement/index'
 import { packList } from '@/model/contarct/index'
 import { pullDown, getstaff } from '@/model/warehouse/index'
 import { downloadFile } from '@/utils/batchDown'
@@ -251,8 +258,12 @@ export default {
       accessoryTFs: false
     }
   },
-  mounted() {
+  activated() {
     this.getList()
+    this.showType = this.isShow
+  },
+  mounted() {
+      this.dataList.id = this.$route.query.id
   },
   methods: {
     //返回按钮
@@ -434,21 +445,13 @@ export default {
       var Rand = Math.random()
       return Min + Math.round(Rand * Range)
     },
-    getList() {
-      outexamine({ relevanceId: this.$route.query.relevanceId })
-        .toPromise()
+    getList(){
+      procurementLook({
+        id: this.$route.query.id
+      })
+      .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]
-            }
-          }
+          this.dataList = response
         })
     },
 

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 884 - 55
src/views/purchasingManagement/purchaseOrderList.vue


+ 50 - 0
src/views/statisticalReport/component/routers/route.js

@@ -0,0 +1,50 @@
+import Layout from '@/layout/index';
+
+const statisticalReportRouter = {
+  path: '/statisticalReport',
+  component: Layout,
+  redirect: '/statisticalReport',
+  name: 'statisticalReport',
+  alwaysShow: true, // will always show the root menu
+  meta: {
+    title: 'statisticalReport',
+    module: 'contractManagement',
+    icon: '-caigouyewuguanli'
+  },
+  children: [
+      // 采购入库报表统计
+    {
+      path: 'purchaseReceiptStatisticsList',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/statisticalReport/purchaseReceiptStatisticsList'),
+      name: 'purchaseReceiptStatisticsList',
+      meta: {
+        title: 'purchaseReceiptStatisticsList',
+        shortcutEntrance: 'statisticalReport',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      }
+    },
+      //采购平仓报表
+      {
+          path: 'purchaseClosingCashierList',
+          component: () =>
+          import(/* webpackChunkName: "applDetail" */ '@/views/statisticalReport/purchaseClosingCashierList'),
+          name: 'purchaseClosingCashierList',
+          meta: {
+          title: 'purchaseClosingCashierList',
+          shortcutEntrance: 'statisticalReport',
+          module: 'contractManagement.salesContract',
+          permissicon: [],
+          keepAlive: true
+          // module: 'procurement.sparepart.applDetail'
+          },
+      //   hidden: true
+      },
+  ],
+
+};
+
+export default statisticalReportRouter;

+ 816 - 0
src/views/statisticalReport/purchaseClosingCashierList.vue

@@ -0,0 +1,816 @@
+//采购平仓报表
+<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="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.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-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%;
+}
+// .danjia{
+//   width: 9px;
+//   height: 9px;
+//   margin-left: 40px;
+// }
+</style>

+ 781 - 0
src/views/statisticalReport/purchaseReceiptStatisticsList.vue

@@ -0,0 +1,781 @@
+//采购入库报表
+<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="dialogFormVisible5=true">修改</ws-button>
+          <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>
+            <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-button type="primary" @click="dialogFormVisible11 = true">补货结转</ws-button>
+          <el-dialog
+            width="30%"
+            title="补货结转"
+            :visible.sync="dialogFormVisible11"
+            :append-to-body="true"
+          >
+            <el-form :model="form">
+              <el-button @click="dialogFormVisible5 = false">本合同</el-button>
+              <el-button @click="dialogFormVisible5 = false">其他合同</el-button>
+              <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.name" autocomplete="off" class="deal" placeholder="请输入结转重量"></el-input>
+              </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+              <el-button @click="dialogFormVisible11 = false">取 消</el-button>
+              <el-button type="primary" @click="dialogFormVisible11= false">确认</el-button>
+            </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="可按照合同编号和任务编号进行查找"
+            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"
+        >
+           <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: []
+      },
+      // 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({
+        //    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;
+}
+.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>

+ 2 - 2
src/views/taskManagement/inOutWarehouseTaskEdit.vue

@@ -489,7 +489,7 @@ export default {
       this.$router.go(-1)
     },
     returnsales() {
-      this.$router.push({ path: 'tranManagementWarehouseInOutTask' })
+      this.$router.push({ path: 'tranManagementWarehouseInOuttask' })
     },
     // 获取当前年月日
     getdate() {
@@ -573,7 +573,7 @@ export default {
     },
     //关闭
     close() {
-      this.$router.push({ path: 'tranManagementWarehouseInOutTask' })
+      this.$router.push({ path: 'tranManagementWarehouseInOuttask' })
     },
     tarechange(e) {
       if (this.dataList.grossWeight && this.dataList.tare) {

+ 19 - 13
src/views/taskManagement/tranManagementWarehouseInOutTask.vue

@@ -178,7 +178,7 @@
               </div>
             </el-popover>
             <img
-            v-if='scope.row.taskStatus=="执行中"'
+              v-if="scope.row.taskStatus == '执行中'"
               width="17"
               height="18"
               style="vertical-align: text-top; position: relative; top: -1px"
@@ -195,7 +195,8 @@
         ></el-table-column>
         <el-table-column prop="seller" label="操作" width="300">
           <template slot-scope="scope">
-            <span class="corles"
+            <span
+              class="corles"
               @click="nocomplete(scope.row)"
               v-hasPermission="
                 `warehouseManagement.warehouse.warehouseInfoTask.View`
@@ -206,7 +207,8 @@
               direction="vertical"
               v-if="scope.row.taskStatus == '待审核'"
             ></el-divider>
-            <span class="corles"
+            <span
+              class="corles"
               v-hasPermission="
                 `warehouseManagement.warehouse.warehouseInfoTask.audit`
               "
@@ -218,16 +220,19 @@
               direction="vertical"
               class="divider"
               v-if="
-                scope.row.taskStatus == '待审核'||scope.row.taskStatus == '执行中' ||
+                scope.row.taskStatus == '待审核' ||
+                scope.row.taskStatus == '执行中' ||
                 scope.row.taskStatus == '已驳回'
               "
             ></el-divider>
-            <span class="corles"
+            <span
+              class="corles"
               v-hasPermission="
                 `warehouseManagement.warehouse.warehouseInfoTask.edit`
               "
               v-if="
-                scope.row.taskStatus == '待审核' ||scope.row.taskStatus == '执行中' ||
+                scope.row.taskStatus == '待审核' ||
+                scope.row.taskStatus == '执行中' ||
                 scope.row.taskStatus == '已驳回'
               "
               @click="delivery(scope.row)"
@@ -237,7 +242,8 @@
               direction="vertical"
               v-if="scope.row.taskId == null"
             ></el-divider>
-            <span class="corles"
+            <span
+              class="corles"
               v-hasPermission="
                 `warehouseManagement.warehouse.warehouseInfoTask.delete`
               "
@@ -405,8 +411,8 @@ export default {
         query: {
           relevanceId: item.relevanceId,
           taskId: item.taskId,
-          businessKey:item.id,
-          workflowId:item.workflowId
+          businessKey: item.id,
+          workflowId: item.workflowId,
         },
       })
     },
@@ -447,8 +453,8 @@ export default {
         path: 'inOutWarehousetaskEdit',
         query: {
           relevanceId: row.relevanceId,
-          businessKey:row.id,
-          workflowId:row.workflowId
+          businessKey: row.id,
+          workflowId: row.workflowId,
         },
       })
     },
@@ -647,8 +653,8 @@ export default {
 /deep/.typeselect .el-input__inner {
   color: #8890b1;
 }
-.corles{
-  color: #5878E8;
+.corles {
+  color: #5878e8;
   font-size: 14px;
 }
 </style>

+ 8 - 4
src/views/tranManagement/tranManagementDriver.vue

@@ -393,6 +393,7 @@ export default {
       submitType: true,
       size: 10,
       spanArr: [],
+      pcFlag:1,
       compId: sessionStorage.getItem('ws-pf_compId'),
       deptCircularPage: {},
       date: {
@@ -552,6 +553,7 @@ export default {
         currentPage: this.currentPage,
         pageSize: this.pageSize,
         searchType: this.searchType,
+        pcFlag:this.pcFlag,
         residentCityProvincial: this.residentCityProvincial,
         residentCityMunicipal: this.residentCityMunicipal,
         searchKeyWord: this.searchKeyWord,
@@ -559,13 +561,15 @@ export default {
         .toPromise()
         .then((response) => {
           for (var i = 0; i < response.records.length; i++) {
-            response.records[i].expandsStatus = false
-            response.records[i].carNumber =
+            if(response.records[i].driverCarInfoList.length>0){
+              response.records[i].carNumber =
               response.records[i].driverCarInfoList[0].carNumber
-            response.records[i].carModel =
+              response.records[i].carModel =
               response.records[i].driverCarInfoList[0].carModel
-            response.records[i].carLength =
+              response.records[i].carLength =
               response.records[i].driverCarInfoList[0].carLength
+            }
+            response.records[i].expandsStatus = false
             if (response.records[i].addressUrl != null) {
               response.records[i].addressUrlArray =
                 response.records[i].addressUrl.split(',')

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

@@ -144,13 +144,14 @@
             </ws-select>
           </ws-form-item>
 
-          <!--车牌号-->
+          <!--车牌号  -->
           <ws-form-item label="车牌号" span="1" prop="carNo">
             <ws-input
               v-model="deptBudgetList.carNo"
               placeholder="请输入车牌号"
-              maxlength="20"
+              maxlength="7"
               size="small"
+              onkeyup="value=value.replace(/[^\A-\Z0-9\u4E00-\u9FA5\.]/g,'')"
             />
           </ws-form-item>
 
@@ -536,8 +537,7 @@ export default {
         })
         return
       }
-
-      if (this.deptBudgetList.carNo.length >7) {
+      if (this.deptBudgetList.carNo > 7) {
         this.$message({
           message: '车牌号输入错误,请输入7个字符之内',
           type: 'warning'

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

@@ -416,8 +416,7 @@ export default {
       compId: sessionStorage.getItem('ws-pf_compId'),
       deptCircularPage: {},
       packtypeList: {},
-      currentPage: 1,
-      pageSize: 10,
+      pcFlag: 1,
       date: {
         year: dayjs().format('YYYY'),
         month: dayjs().format('MM'),
@@ -526,7 +525,8 @@ export default {
         warehouseName: this.deptBudgetList.warehouseName,
         searchType: this.searchType,
         currentPage: this.currentPage,
-        pageSize: this.pageSize,
+        pcFlag: this.pcFlag,
+        pageSize: this.pageSize
       })
         .toPromise()
         .then((response) => {

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä