zhongtianhaoyuan 3 年 前
コミット
81afb79997

+ 2 - 3
src/components/WsUpload/index.vue

@@ -39,7 +39,7 @@
       </template>
       <template v-slot:file="{ file }">
         <div class="thumbnail-group">
-          <winsea-picture-view
+          <!-- <winsea-picture-view
             v-if="isPictureFile(file)"
             class="el-upload-list__item-thumbnail"
             picturesShowType="fold"
@@ -47,9 +47,8 @@
             :pic-list="_getFileImgs"
             :width="110"
             :height="110"
-          />
+          /> -->
           <img
-            v-else
             class="el-upload-list__item-thumbnail"
             :class="getFileClass(file)"
           />

+ 16 - 0
src/lang/zh.js

@@ -503,6 +503,13 @@
     warehouseManagementPerfectput: '编辑',
     warehouseManagementPutOut:'任务',
     warehouseManagementPutOutLook:'查看',
+    //采购管理
+    purchasingManagement:'采购业务管理',
+    procurementPlanList:'采购计划',
+    procurementPlanAdd:'采购计划添加',
+    procurementPlanEdit:'采购计划编辑',
+    procurementPlanLook:'采购计划查看',
+    purchaseOrderList:'采购订单',
     //运输管理
     tranManagement: '运输管理',
     tranManagementDriver: '司机管理',
@@ -4741,6 +4748,15 @@
     warehouseManagementPutOutLook:'查看',
 
   },
+  //采购计划管理
+  purchasingManagement:{
+    procurementPlanList:'采购计划',
+    procurementPlanAdd:'采购计划添加',
+    procurementPlanEdit:'采购计划编辑',
+    procurementPlanLook:'采购计划查看',
+    purchaseOrderList:'采购订单',
+  },
+
   //运输管理
   tranManagement: {
     tranManagementDriver: '司机管理',

+ 2 - 0
src/layout/index/sidebar/sidebarItem.vue

@@ -109,9 +109,11 @@ export default {
       return generateTitle(item[this.labelKey], (item.meta || {}).title, this)
     },
     vaildAvtive(item) {
+      console.log(item)
       const groupFlag = (item['group'] || []).some((ele) =>
         this.$route.path.includes(ele)
       )
+      console.log(groupFlag)
       if (groupFlag)
         // console.info(groupFlag, 'groupFlag', item['group'], this.$route.path, this.nowTagValue, item[this.pathKey])
         return this.nowTagValue === item[this.pathKey] || groupFlag

+ 2 - 1
src/main.js

@@ -7,7 +7,7 @@ import notification from './notification'
 import '@/styles/common.scss' // global css
 import i18n from '@/lang' // Internationalization
 import './permission' // permission control
-import './registerServiceWorker';
+import './registerServiceWorker'; 
 import crudCommon from '@/mixins/crud'
 window.$crudCommon = crudCommon;
 import vendors from '@/vendors'
@@ -16,6 +16,7 @@ Vue.config.productionTip = false
 import AMap from 'vue-amap';
 Vue.use(AMap);
 
+
 import $ from 'jquery'
 // 初始化vue-amap
 AMap.initAMapApiLoader({

+ 96 - 0
src/views/purchasingManagement/component/routers/route.js

@@ -0,0 +1,96 @@
+import Layout from '@/layout/index';
+
+const purchasingManagementRouter = {
+  path: '/purchasingManagement',
+  component: Layout,
+  redirect: '/purchasingManagement',
+  name: 'purchasingManagement',
+  alwaysShow: true, // will always show the root menu
+  meta: {
+    title: 'purchasingManagement',
+    module: 'contractManagement',
+    icon: '-caigouyewuguanli'
+  },
+  children: [
+      //采购计划列表
+    {
+      path: 'procurementPlanList',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/purchasingManagement/procurementPlanList'),
+      name: 'procurementPlanList',
+      meta: {
+        title: 'procurementPlanList',
+        shortcutEntrance: 'purchasingManagement',
+        module: 'contractManagement.procurementPlanList',
+        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: '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: '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
+    // },
+   
+  ],
+
+};
+
+export default purchasingManagementRouter;

+ 751 - 0
src/views/purchasingManagement/procurementPlanAdd.vue

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

+ 756 - 0
src/views/purchasingManagement/procurementPlanEdit.vue

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

+ 605 - 0
src/views/purchasingManagement/procurementPlanList.vue

@@ -0,0 +1,605 @@
+//采购计划
+<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
+        v-model="searchKeyWord"
+        placeholder="可按照合同编号和任务编号进行查找"
+        clearable
+        maxlength="500"
+        type="input"
+        class="findValue"
+      ></ws-input>
+      <ws-button class="but" type="primary" @click="find()">
+        <img
+          width="16"
+          height="16"
+          style="
+              vertical-align: text-top;
+              position: relative;
+              top: 0px;
+              left: -8px;
+            "
+          src="../../../public/img/sousuo.png"
+          alt
+        />
+      </ws-button>
+    </div>
+    <ws-button type="primary" @click="handleAdd()">添加</ws-button>
+    <el-table
+      class="wenzi"
+      :data="warehouseList.records"
+      style="width: 100%; margin-top: 20px"
+      height="780"
+    >
+      <el-table-column type="index" label="序号" width="80"></el-table-column>
+      <el-table-column class="table_td" prop="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="状态">
+        <template slot-scope="scope">
+          <el-popover
+            placement="left"
+            :width="285"
+            trigger="click"
+            visible-arrow="false"
+            @show="history(scope.row)"
+          >
+            <template>
+              <span slot="reference">
+                <span v-if="scope.row.taskStatus == '展示中'" class="executory"></span>
+                <span v-if="scope.row.taskStatus == '已隐藏'" class="inExecution"></span>
+              </span>
+            </template>
+            <div>
+              <!-- <p style="margin-top: 0; padding-left: 10px">历史记录</p> -->
+              <div v-for="(item, index) in historyList" class="flex" :key="index">
+                <div class="vertical-text vertical-text-left">{{ item.updateDate }}</div>
+                <div>
+                  <div class="vertical-circle"></div>
+                  <div v-if="index != historyList.length - 1" class="vertical-line"></div>
+                </div>
+                <div class="vertical-text">
+                  {{ item.operateUser }}
+                  <br />
+                  {{ item.dealMsg }}
+                </div>
+              </div>
+            </div>
+          </el-popover>
+        </template>
+      </el-table-column>
+      <el-table-column class="table_td" label="更新时间" prop="establishDate"></el-table-column>
+      <el-table-column prop="seller" label="操作" width="300">
+        <template slot-scope="scope">
+          <div class="record" @click="handleLook(scope.row)">查看</div>
+          <div class="record" @click="handleEdit(scope.row)">编辑</div>
+          <div class="record" @click="handleDelete(scope.row)">删除</div>
+        </template>
+      </el-table-column>
+    </el-table>
+    <!-- 页数 -->
+    <el-pagination
+      @size-change="handleSizeChange"
+      @current-change="handleCurrentChange"
+      :current-page="currentPage"
+      :page-size="pageSize"
+      layout="total, sizes, prev, pager, next, jumper"
+      :total="deptBudgetTotal"
+    ></el-pagination>
+  </div>
+  <!-- </div> -->
+</template>
+<script>
+import { taskList } from '@/model/warehouse/index'
+import { downloadFile } from '@/utils/batchDown'
+import Pagination from '@/components/Pagination'
+import WsUpload from '@/components/WsUpload'
+import { dayjs, fmoney, EventBus } from 'base-core-lib'
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+    Pagination
+  },
+  watch: {
+    vesselId(val) {
+      this.getList()
+    },
+    isShow(val) {
+      this.showType = val
+    }
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      pickerOptions: {},
+      value2: '',
+      deptBudgetTotal: 0,
+      currentPage: 1,
+      tranTypeKey: 1,
+      pageSize: 10,
+      searchType: 1,
+      searchTypeText: '未完成',
+      searchKeyWord: '',
+      contractType: 2,
+
+      // 提交类型
+      submitType: true,
+      size: 10,
+      spanArr: [],
+      contractNo: '',
+      inOutTaskNo: '',
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      warehouseList: [],
+      deptBudgetList: {},
+      historyList: [],
+      pickerBeginDateBefore: {
+        disabledDate: time => {
+          return time.getTime() > Date.now()
+        }
+      },
+      accessoryTFs: false
+    }
+  },
+  activated() {
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    getList() {
+      console.log(123456)
+      taskList({
+        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
+      })
+        .toPromise()
+        .then(response => {
+          this.warehouseList = response
+        })
+    },
+    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;
+}
+</style>

+ 684 - 0
src/views/purchasingManagement/procurementPlanLook.vue

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

+ 638 - 0
src/views/purchasingManagement/purchaseOrderList.vue

@@ -0,0 +1,638 @@
+//采购详情
+<template>
+  <div class="container">
+    <el-scrollbar style=" height: 100%">
+      <el-scrollbar style="width:140%">
+        <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-input
+            v-model="searchKeyWord"
+            placeholder="可按照合同编号和任务编号进行查找"
+            clearable
+            maxlength="500"
+            type="input"
+            class="findValue"
+          ></ws-input>
+          <ws-button class="but" type="primary" @click="find()">
+            <img
+              width="16"
+              height="16"
+              style="
+              vertical-align: text-top;
+              position: relative;
+              top: 0px;
+              left: -8px;
+            "
+              src="../../../public/img/sousuo.png"
+              alt
+            />
+          </ws-button>
+        </div>
+
+        <el-table
+          class="wenzi"
+          :data="warehouseList.records"
+          style="width: 100%; margin-top: 20px"
+          height="780"
+        >
+          <el-table-column type="index" label="序号" width="50"></el-table-column>
+          <el-table-column class="table_td" prop="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 class="table_td" prop="send" label="卸车费(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop="send" label="发票费(元/吨)"></el-table-column>
+          <el-table-column class="table_td" prop="send" label="合同重量(吨)"></el-table-column>
+          <el-table-column class="table_td" prop="send" label="已入库量(吨)"></el-table-column>
+          <el-table-column class="table_td" prop="send" label="可平仓量(吨)"></el-table-column>
+          <el-table-column class="table_td" prop="send" label="已平仓量(吨)"></el-table-column>
+          <el-table-column class="table_td" prop="send" 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="taskStatus" label="状态">
+            <template slot-scope="scope">
+              <el-popover
+                placement="left"
+                :width="285"
+                trigger="click"
+                visible-arrow="false"
+                @show="history(scope.row)"
+              >
+                <template>
+                  <span slot="reference">
+                    <span v-if="scope.row.taskStatus == '待审核'" class="executory"></span>
+                    <span v-if="scope.row.taskStatus == '执行中'" class="inExecution"></span>
+                    <span v-if="scope.row.taskStatus == '已完成'" class="done"></span>
+                    {{ scope.row.taskStatus }}
+                  </span>
+                </template>
+                <!-- <div> -->
+                <!-- <p style="margin-top: 0; padding-left: 10px">历史记录</p> -->
+                <!-- <div v-for="(item, index) in historyList" class="flex" :key="index">
+                <div class="vertical-text vertical-text-left">{{ item.updateDate }}</div>
+                <div>
+                  <div class="vertical-circle"></div>
+                  <div v-if="index != historyList.length - 1" class="vertical-line"></div>
+                </div>
+                <div class="vertical-text">
+                  {{ item.operateUser }}
+                  <br />
+                  {{ item.dealMsg }}
+                </div>
+              </div>
+                </div>-->
+              </el-popover>
+            </template>
+          </el-table-column>
+          <el-table-column class="table_td" label="更新时间" prop="establishDate"></el-table-column>
+          <el-table-column class="table_td" label="入库结算"></el-table-column>
+          <el-table-column class="table_td" label="平仓结算"></el-table-column>
+          <el-table-column prop="seller" label="操作" width="200">
+            <template slot-scope="scope">
+              <div class="record" @click="handleLook(scope.row)">成交</div>
+              <div class="record" @click="handleEdit(scope.row)">补充定金</div>
+              <div class="record" @click="handleDelete(scope.row)">解冻定金</div>
+              <div class="record" @click="handle(scope.row)">平仓</div>
+              <div class="record" @click="handle(scope.row)">完成</div>
+            </template>
+          </el-table-column>
+        </el-table>
+        <!-- 页数 -->
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-size="pageSize"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="deptBudgetTotal"
+        ></el-pagination>
+      </el-scrollbar>
+    </el-scrollbar>
+  </div>
+  <!-- </div> -->
+</template>
+<script>
+import { taskList } from '@/model/warehouse/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 {
+      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,
+
+      // 提交类型
+      submitType: true,
+      size: 10,
+      spanArr: [],
+      contractNo: '',
+      inOutTaskNo: '',
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      warehouseList: [],
+      deptBudgetList: {},
+      historyList: [],
+      pickerBeginDateBefore: {
+        disabledDate: time => {
+          return time.getTime() > Date.now()
+        }
+      },
+      accessoryTFs: false
+    }
+  },
+  activated() {
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    getList() {
+      console.log(123456)
+      taskList({
+        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
+      })
+        .toPromise()
+        .then(response => {
+          this.warehouseList = response
+        })
+    },
+    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;
+}
+</style>

+ 3 - 5
src/views/taskManagement/component/routers/route.js

@@ -104,16 +104,14 @@ const tranManagementRouter = {
     },
     //出入库任务
     {
-      path: 'tranManagementWarehouseInOutTask',
+      path: 'tranManagementWarehouseInOuttask',
       component: () =>
         import(/* webpackChunkName: "applDetail" */ '@/views/taskManagement/tranManagementWarehouseInOutTask'),
-      name: 'tranManagementWarehouseInOutTask',
+      name: 'tranManagementWarehouseInOuttask',
       meta: {
         title: 'tranManagementWarehouseInOutTask',
         shortcutEntrance: 'tranManagement',
-        module: 'warehouseManagement.warehouse.warehouseInfoTask',
-        permissicon: [],
-        keepAlive: true
+        module: 'warehouseManagement.warehouse.warehouseInfoTask.View',
       },
     },
     //出入库任务查看

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

@@ -635,9 +635,7 @@ export default {
             this.dataList = response[0]
             this.dataList1 = response[1]
           } else {
-            console.log(response[0].taskTypeKey)
             if(response[0].taskTypeKey==2){
-              
               this.dataList1 = response[0]
               this.dataList = response[0]
             }else{

+ 3 - 1
src/views/taskManagement/tranManagementTransportAdd.vue

@@ -223,8 +223,10 @@
             v-if="index == deptBudgetList.tranProcessInfoList.length - 1"
           >最终阶段</span> -->
           <el-checkbox
-            @change="engflagchange"
+          @change="(val) => engflagchange(val,index)"
             class="endflag"
+            true-label="1"
+            false-label="0"
             v-if="index == deptBudgetList.tranProcessInfoList.length - 1"
             v-model="item.endFlag"
             :label="1"

+ 4 - 2
src/views/taskManagement/tranManagementTransportEdit.vue

@@ -219,7 +219,7 @@
             alt=""
           />
           <el-checkbox
-            @change="engflagchange"
+          @change="(val) => engflagchange(val,index)"
             class="endflag"
             v-bind:checked="endflag"
             v-if="index == deptBudgetList.tranProcessInfoList.length - 1"
@@ -487,7 +487,7 @@ export default {
     weightchange(e) {
       this.deptBudgetList.tranProcessInfoList[0].weight = e
     },
-    engflagchange(e) {
+    engflagchange(e,index) {
       this.endflag = e
       if (this.endflag) {
         this.deptBudgetList.tranProcessInfoList[
@@ -545,6 +545,7 @@ export default {
             this.selectedOptions1 = tmp1
           }
           for (var i = 0; i < response.tranProcessInfoList.length; i++) {
+            console.log(response.tranProcessInfoList[i].endFlag)
             if (
               response.tranProcessInfoList[i].sendPrivate != '' &&
               response.tranProcessInfoList[i].sendCity != '' &&
@@ -665,6 +666,7 @@ export default {
         sendDetailedAddress: '',
         receiveDetailedAddress: '',
         sender: '',
+        endFlag:'0',
         receiver: '',
         senderPhone: '',
         receiverPhone: '',

+ 11 - 11
src/views/taskManagement/tranManagementWarehouseInOutTaskAdd.vue

@@ -847,7 +847,7 @@ export default {
       this.$router.go(-1)
     },
     returnsales() {
-      this.$router.push({ path: 'tranManagementWarehouseInOutTask' })
+      this.$router.push({ path: 'tranManagementWarehouseInOuttask' })
     },
     // 获取当前年月日
     getdate() {
@@ -1002,16 +1002,16 @@ export default {
       }
     },
     requestadd(list, status) {
-      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' })
-        })
+          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' })
+            })
     },
     //提交按钮
     submit() {

+ 3 - 3
src/views/taskManagement/tranManagementWarehouseInOutTaskAudit.vue

@@ -832,7 +832,7 @@ export default {
       this.$router.go(-1)
     },
     returnsales() {
-      this.$router.push({ path: 'tranManagementWarehouseInOutTask' })
+      this.$router.push({ path: 'tranManagementWarehouseInOuttask' })
     },
     // 获取当前年月日
     getdate() {
@@ -978,7 +978,7 @@ export default {
               woekflowhandle({taskId:list.taskId,approved:true,auditMind:'34',needReapply:false}).toPromise()
             .then((response) => {
               this.$message.success('审核成功')
-              this.$router.push({ path: 'tranManagementWarehouseInOutTask' })
+              this.$router.push({ path: 'tranManagementWarehouseInOuttask' })
             })
               
             })
@@ -994,7 +994,7 @@ export default {
               woekflowhandle({taskId:list.taskId,approved:true,auditMind:this.auditMind,needReapply:false}).toPromise()
             .then((response) => {
               this.$message.success('驳回成功')
-              this.$router.push({ path: 'tranManagementWarehouseInOutTask' })
+              this.$router.push({ path: 'tranManagementWarehouseInOuttask' })
             })
               
             })

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

@@ -783,7 +783,7 @@ export default {
       this.$router.go(-1)
     },
     returnsales() {
-      this.$router.push({ path: 'tranManagementWarehouseInOutTask' })
+      this.$router.push({ path: 'tranManagementWarehouseInOuttask' })
     },
     // 获取当前年月日
     getdate() {
@@ -924,7 +924,7 @@ export default {
             .toPromise()
             .then((response) => {
               this.$message.success('编辑成功')
-              this.$router.push({ path: 'tranManagementWarehouseInOutTask' })
+              this.$router.push({ path: 'tranManagementWarehouseInOuttask' })
             })
     },
     //提交按钮

+ 2 - 2
src/views/warehouse/component/router/index.js

@@ -8,7 +8,7 @@ const warehouseManagementRouter = {
   alwaysShow: true, // will always show the root menu
   meta: {
     title: 'warehouseManagementList',
-    module: 'warehouseManagement',
+    module: 'warehouseManagement.warehouse.warehouseInfo',
     icon: '-cangkubeifen'
   },
   children: [
@@ -20,7 +20,7 @@ const warehouseManagementRouter = {
       meta: {
         title: 'warehouseManagementList',
         shortcutEntrance: 'warehouseManagementList',
-        module: 'warehouseManagement.warehouse',
+        module: 'warehouseManagement.warehouse.warehouseInfo',
         permissicon: [],
         keepAlive: true
         // module: 'procurement.sparepart.applDetail'

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

@@ -537,7 +537,7 @@ export default {
         return
       }
 
-      if (this.deptBudgetList.carNo.length > 7) {
+      if (this.deptBudgetList.carNo.length >7) {
         this.$message({
           message: '车牌号输入错误,请输入7个字符之内',
           type: 'warning'
@@ -852,20 +852,20 @@ export default {
         })
         return
       }
-      if (!this.deptBudgetList.carNo) {
-        this.$message({
-          message: '车牌号不能为空',
-          type: 'warning'
-        })
-        return
-      }
-      if (this.deptBudgetList.carNo.length > 7) {
-        this.$message({
-          message: '车牌号输入错误,请输入7个字符之内',
-          type: 'warning'
-        })
-        return
-      }
+      // if (!this.deptBudgetList.carNo) {
+      //   this.$message({
+      //     message: '车牌号不能为空',
+      //     type: 'warning'
+      //   })
+      //   return
+      // }
+      // if (this.deptBudgetList.carNo.length > 7) {
+      //   this.$message({
+      //     message: '车牌号输入错误,请输入7个字符之内',
+      //     type: 'warning'
+      //   })
+      //   return
+      // }
       if (!this.deptBudgetList.contractNo) {
         this.$message({
           message: '合同编号不能为空',