浏览代码

Merge branch 'master' of http://git.zthymaoyi.com/gdc/yiliangyiyun-pc

gjy 4 年之前
父节点
当前提交
02291d0a63

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

@@ -41,4 +41,8 @@ export const API_GET_AUTOMOBILE_SEE = "/tranProcessInfo/getTranProcess"
 export const API_GET_AUTOMOBILE_NAME = "/driverViewInfo/selectDriverName"
 //
 export const API_GET_AUTOMOBILE_ARRANGE = "/driverViewInfo/selectDriverDetail"
+//发货反馈
+export const API_POST_AUTOMOBILE_FEEDBACK = '/tranProcessInfo/api/insertTranCar'
+//更改反馈状态
+export const API_POST_AUTOMOBILE_STATE = '/tranProcessInfo/api/editFeedbackStatus'
 

+ 17 - 2
src/lang/zh.js

@@ -511,15 +511,17 @@
     tranManagementDriverEdit: '编辑司机',
     // 任务管理
     taskManagement: '任务管理',
-
+    moveWarehouseTask:'移库任务',
     tranManagementLook: '运输任务查看',
     tranManagementTransportAdd: '运输任务添加',
     tranManagementTransportEdit: '运输任务编辑',
+    tranManagementWarehouseInOutTask: '出入库任务',
+    tranManagementWarehouseInOutTaskAdd: '出入库任务添加',
     tranManagementVehicle: '汽运调度',
     tranManagementVehicleDispatching: '汽车调度',
     tranManagementVehicleLook: '查看派车详情',
     tranManagementTransporTationFire: '火运调度',
-
+    inOutWarehouseTaskEdit:'编辑',
     tranManagementShipping:'船运调度',
     tranManagementShippingArrangemen:'船次安排',
     tranManagementShippingLook:'船运调度详情',
@@ -530,6 +532,12 @@
     tranManagementTransporHairRespond: '发货反馈',
     tranManagementTransporFeedback: '反馈',
 
+    tranManagementTransporFeedbackLook : '查看',
+
+    tranManagementReceivingFeedback:'收货反馈',
+    tranManagementReceivingloading:'反馈',
+    tranManagementReceivingloadingLook:'查看',
+
 
     // 采购模块
     procurement: '采购管理',
@@ -4753,12 +4761,19 @@
   tranManagementTransporHairRespond:{
     tranManagementTransporHairRespond: '发货反馈',
     tranManagementTransporFeedback:'反馈',
+    tranManagementTransporFeedbackLook : '查看'
   },
   tranManagementShipping:{
     tranManagementShipping:'船运调度',
     tranManagementShippingArrangemen:'船次安排',
     tranManagementShippingLook:'船运调度详情'
   },
+  tranManagementReceivingFeedback:{
+    tranManagementReceivingFeedback:'收货反馈',
+    tranManagementReceivingloading:'反馈',
+    tranManagementReceivingloadingLook:'查看',
+    
+  },
   // 任务管理
   tranManagement: '任务管理',
   // 年度培训

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

@@ -24,6 +24,8 @@ import {
     API_GET_AUTOMOBILE_SEE,
     API_GET_AUTOMOBILE_ARRANGE,
     API_GET_AUTOMOBILE_NAME,
+    API_POST_AUTOMOBILE_FEEDBACK,
+    API_POST_AUTOMOBILE_STATE,
 
 } from '@/api/V2/transport'
 // 司机列表
@@ -68,3 +70,8 @@ export const seeCat = appRx.get(API_GET_AUTOMOBILE_SEE, errorCatcher, errorHandl
 export const nameXiala = appRx.get(API_GET_AUTOMOBILE_NAME, errorCatcher, errorHandle, filter)
 //司机其他信息
 export const arrange = appRx.get(API_GET_AUTOMOBILE_ARRANGE, errorCatcher, errorHandle, filter)
+//发货反馈
+export const feedback = appRx.post(API_POST_AUTOMOBILE_FEEDBACK, errorCatcher, errorHandle, filter)
+//更改反馈状态
+export const state = appRx.post(API_POST_AUTOMOBILE_STATE, errorCatcher, errorHandle, filter)
+

+ 54 - 1
src/views/taskManagement/component/routers/route.js

@@ -49,7 +49,7 @@ const tranManagementRouter = {
       path: 'tranManagementTransportAdd',
       component: () =>
         import(/* webpackChunkName: "applDetail" */ '@/views/taskManagement/tranManagementTransportAdd'),
-      name: 'tranManagementTransportAdd',
+      name: 'tranManagemen  tTransportAdd',
       meta: {
         title: 'tranManagementTransportAdd',
         shortcutEntrance: 'tranManagement',
@@ -75,6 +75,59 @@ const tranManagementRouter = {
       hidden: true
 
     },
+    //移库任务
+    {
+      path: 'moveWarehouseTask',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/taskManagement/moveWarehouseTask'),
+      name: 'moveWarehouseTask',
+      meta: {
+        title: 'moveWarehouseTask',
+        shortcutEntrance: 'tranManagement',
+        module: 'tranManagement.tranManagementDriver.moveWarehouseTask',
+      }
+    },
+    //出入库任务
+    {
+      path: 'tranManagementWarehouseInOutTask',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/taskManagement/tranManagementWarehouseInOutTask'),
+      name: 'tranManagementWarehouseInOutTask',
+      meta: {
+        title: 'tranManagementWarehouseInOutTask',
+        shortcutEntrance: 'tranManagement',
+        module: 'tranManagement.tranManagementDriver.tranManagementWarehouseInOutTask',
+        permissicon: [],
+        keepAlive: true
+      },
+    },
+    //出入库任务编辑
+    {
+      path: 'inOutWarehouseTaskEdit',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/taskManagement/inOutWarehouseTaskEdit'),
+      name: 'inOutWarehouseTaskEdit',
+      meta: {
+        title: 'inOutWarehouseTaskEdit',
+        shortcutEntrance: 'tranManagement',
+        module: 'tranManagement.tranManagementDriver.inOutWarehouseTaskEdit',
+      }
+    },
+    //出入库任务添加
+    {
+      path: 'tranManagementWarehouseInOutTaskAdd',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/taskManagement/tranManagementWarehouseInOutTaskAdd'),
+      name: 'tranManagementWarehouseInOutTaskAdd',
+      meta: {
+        title: 'tranManagementWarehouseInOutTaskAdd',
+        shortcutEntrance: 'tranManagement',
+        module: 'tranManagement.tranManagementDriver.tranManagementWarehouseInOutTaskAdd',
+        permissicon: [],
+        keepAlive: true
+      },
+      hidden: true
+    },  
 
   ],
 

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

@@ -0,0 +1,1315 @@
+<!--出入库任务编辑-->
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="20">
+        <h2 class="bg-left title">编辑出入库任务</h2>
+      </el-col>
+      <el-col :span="4" 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>
+    <el-radio v-model="radio" label="1">出库</el-radio>
+    <el-radio v-model="radio" label="2">入库</el-radio>
+    <el-radio v-model="radio" label="3">移库</el-radio>
+    <el-radio v-model="radio" label="4">退库并出库</el-radio>
+    <el-form  label-width="80px">
+      <h2>
+          出库任务({{  }})
+          <span class="position" v-show="this.$route.query.warehouseType == 1">
+          </span>
+       </h2>
+      <ws-info-table>
+        <!-- 仓库名 -->
+        <el-form-item label="仓库名">
+          <el-select v-model="form.region" placeholder="请选择仓库">
+          </el-select>
+        </el-form-item>
+        <!-- 出库类型 -->
+        <el-form-item label="出库类型">
+          <el-select v-model="form.region" placeholder="请选择出库类型">
+            <el-option label="销售出库" value=""></el-option>
+            <el-option label="移库出库" value=""></el-option>
+            <el-option label="暂存出库" value=""></el-option>
+            <el-option label="贸易服务出库" value=""></el-option>
+          </el-select>
+        </el-form-item>
+        <!-- 合同编号 -->
+        <el-form-item label="合同编号">
+          <el-input v-model="form.name" placeholder="请输入合同编号"></el-input>
+        </el-form-item>
+        <!-- 货名 -->
+        <el-form-item label="货名">
+          <el-input v-model="form.name" placeholder="请输入货名"></el-input>
+        </el-form-item>
+        <!-- 重量(吨) -->
+        <el-form-item label="重量(吨)">
+          <el-input v-model="form.name" placeholder="请输入重量"></el-input>
+        </el-form-item>
+        <!-- 品级 -->
+        <ws-form-item label="品级" span="1" class="readonly">
+          <ws-select
+            v-model="deptBudgetList.grade"
+            placeholder="请选择品级"
+            class="typeselect"
+            @change="selectpackingMethod"
+          >
+            <ws-option
+              v-for="item in gradeList"
+              :key="item.constKey"
+              :label="item.constValue"
+              :value="item.constValue"
+            />
+          </ws-select>
+        </ws-form-item>
+        <!-- 容重(%)<= -->
+        <el-form-item label="容重(%)<=">
+          <el-input v-model="form.name" placeholder="请输入容重"></el-input>
+        </el-form-item>
+        <!-- 水分(%)<= -->
+        <el-form-item label="水分(%)<=">
+          <el-input v-model="form.name" placeholder="请输入水分"></el-input>
+        </el-form-item>
+        <!-- 单价(元/吨) -->
+        <el-form-item label="单价(元/吨)">
+          <el-input v-model="form.name" placeholder="请输入单价"></el-input>
+        </el-form-item>
+        <!-- 预计出库日期 -->
+       <el-form-item label="预计出库日期">
+          <el-col :span="11">
+            <el-date-picker type="date" placeholder="请选择日期" v-model="form.date1" style="width: 100%;"></el-date-picker>
+          </el-col>
+          <el-col class="line" :span="2">-</el-col>
+        </el-form-item>
+        <!--出库经办人-->
+        <el-form-item label="出库经办人">
+          <el-select v-model="form.region" placeholder="请选择经办人">
+          </el-select>
+        </el-form-item>
+        <!-- 业务描述 -->
+        <el-form-item label="业务描述">
+           <el-input type="textarea" v-model="form.desc" placeholder="请输入业务描述"></el-input>
+         </el-form-item>
+
+       <div style="text-align: right; padding: 10px">
+        <el-button
+          class="bg-bottom-up"
+          type="primary"
+          size="small"
+          @click="submit()"
+          >提交</el-button
+        >
+       </div>
+      </ws-info-table>  
+    </el-form>
+
+
+    <el-form  label-width="80px">
+      <h2>
+          入库任务({{  }})
+          <span class="position" v-show="this.$route.query.warehouseType == 1">
+          </span>
+       </h2>
+      <ws-info-table>
+        <!-- 仓库名 -->
+        <el-form-item label="仓库名">
+          <el-select v-model="form.region" placeholder="请选择仓库">
+          </el-select>
+        </el-form-item>
+        <!-- 入库类型 -->
+        <el-form-item label="入库类型">
+          <el-select v-model="form.region" placeholder="请选择入库类型">
+            <el-option label="采购入库" value=""></el-option>
+            <el-option label="移库入库" value=""></el-option>
+            <el-option label="暂存入库" value=""></el-option>
+            <el-option label="金融入库" value=""></el-option>
+            <el-option label="退库" value=""></el-option>
+          </el-select>
+        </el-form-item>
+        <!-- 合同编号 -->
+        <el-form-item label="合同编号">
+          <el-input v-model="form.name" placeholder="请输入合同编号"></el-input>
+        </el-form-item>
+        <!-- 货名 -->
+        <el-form-item label="货名">
+          <el-input v-model="form.name" placeholder="请输入货名"></el-input>
+        </el-form-item>
+        <!-- 重量(吨) -->
+        <el-form-item label="重量(吨)">
+          <el-input v-model="form.name" placeholder="请输入重量"></el-input>
+        </el-form-item>
+        <!-- 品级 -->
+        <ws-form-item label="品级" span="1" class="readonly">
+          <ws-select
+            v-model="deptBudgetList.grade"
+            placeholder="请选择品级"
+            class="typeselect"
+            @change="selectpackingMethod"
+          >
+            <ws-option
+              v-for="item in gradeList"
+              :key="item.constKey"
+              :label="item.constValue"
+              :value="item.constValue"
+            />
+          </ws-select>
+        </ws-form-item>
+        <!-- 容重(%)<= -->
+        <el-form-item label="容重(%)<=">
+          <el-input v-model="form.name" placeholder="请输入容重"></el-input>
+        </el-form-item>
+        <!-- 水分(%)<= -->
+        <el-form-item label="水分(%)<=">
+          <el-input v-model="form.name" placeholder="请输入水分"></el-input>
+        </el-form-item>
+        <!-- 单价(元/吨) -->
+        <el-form-item label="单价(元/吨)">
+          <el-input v-model="form.name" placeholder="请输入单价"></el-input>
+        </el-form-item>
+        <!-- 预计入库日期 -->
+       <el-form-item label="预计入库日期">
+          <el-col :span="11">
+            <el-date-picker type="date" placeholder="请选择日期" v-model="form.date1" style="width: 100%;"></el-date-picker>
+          </el-col>
+          <el-col class="line" :span="2">-</el-col>
+        </el-form-item>
+        <!--入库经办人-->
+        <el-form-item label="入库经办人">
+          <el-select v-model="form.region" placeholder="请选择经办人">
+          </el-select>
+        </el-form-item>
+        <!-- 业务描述 -->
+        <el-form-item label="业务描述">
+           <el-input type="textarea" v-model="form.desc" placeholder="请输入业务描述"></el-input>
+         </el-form-item>
+
+       <div style="text-align: right; padding: 10px">
+        <el-button
+          class="bg-bottom-up"
+          type="primary"
+          size="small"
+          @click="submit()"
+          >提交</el-button
+        >
+       </div>
+      </ws-info-table>  
+    </el-form>
+
+
+
+  </div>
+</template>
+<script>
+import {
+  pullDown,
+  addstorageputList,
+  xialaNo,
+  getstaff,
+} from '@/model/warehouse/index'
+import Pagination from '@/components/Pagination'
+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
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      deptBudgetTotal: 0,
+      currentPage: 1,
+      pageSize: 10,
+      searchType: 1,
+      searchKeyWord: '',
+      contractType: 2,
+      startDate: null,
+      endDate: null,
+      goodnameList: {},
+      checked: true,
+      agent: [],
+      staffList: [],
+      options: [],
+      form:{},
+      radio: '1',
+      outContractNo: [],
+      props: [],
+      bulkDensity: [],
+
+      // 提交类型
+      submitType: true,
+      storageType: [],
+      deliveryType: [],
+      readonly: true,
+      appendixIdsAdd: '',
+      uploadSuccess: {},
+      onChange: {},
+      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: [],
+      deptBudgetList: {
+        warehouseInOutDetail: {},
+      },
+      historyList: [],
+
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+    }
+  },
+  mounted() {
+    this.deptBudgetList.baseId = this.$route.query.baseId
+    this.deptBudgetList.positionId = this.$route.query.positionId
+    this.deptBudgetList.warehouseName = this.$route.query.warehouseName
+    this.deptBudgetList.binNumber = this.$route.query.binNumber
+    this.deptBudgetList.warehouseType = this.$route.query.warehouseType
+    this.deptBudgetList.createType = this.$route.query.createType
+    this.getList()
+    this.deptBudgetList.goodsName = '玉米'
+    this.deptBudgetList.goodsNameKey = '1'
+    this.deptBudgetList.grade = '一等品'
+    this.deptBudgetList.gradeKey = '1'
+    if (this.deptBudgetList.warehouseType == 1) {
+      this.deptBudgetList.inOutType = '采购入库'
+      this.deptBudgetList.inOutTypeKey = '1'
+    } else {
+      this.deptBudgetList.inOutType = '退库'
+      this.deptBudgetList.inOutTypeKey = '1'
+    }
+  },
+  methods: {
+    //返回按钮
+    revert() {
+      this.$router.push({ path: 'warehouseManagementList' })
+    },
+    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.deptBudgetList.personChargeKey = this.staffList[i].staffId
+        }
+      }
+    },
+    //提交按钮
+    submit() {
+      if (!this.deptBudgetList.goodsName) {
+        this.$message({
+          message: '货名不能为空',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.grossWeight) {
+        this.$message({
+          message: '毛重不能为空',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.grossWeight < 0 ||
+        this.deptBudgetList.grossWeight > 10000 ||
+        (String(this.deptBudgetList.grossWeight).indexOf('.') != -1 &&
+          String(this.deptBudgetList.grossWeight).length -
+            (String(this.deptBudgetList.grossWeight).indexOf('.') + 1) >
+            3)
+      ) {
+        this.$message({
+          message: '毛重输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.tare) {
+        this.$message({
+          message: '皮重不能为空',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.tare < 0 ||
+        this.deptBudgetList.tare > 10000 ||
+        (String(this.deptBudgetList.tare).indexOf('.') != -1 &&
+          String(this.deptBudgetList.tare).length -
+            (String(this.deptBudgetList.tare).indexOf('.') + 1) >
+            3)
+      ) {
+        this.$message({
+          message: '皮重输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.agent) {
+        this.$message({
+          message: '经办人不能为空',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.agent.length < 2 ||
+        this.deptBudgetList.agent.length > 10
+      ) {
+        this.$message({
+          message: '经办人输入有误',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.grade) {
+        this.$message({
+          message: '品级不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.inOutDate) {
+        this.$message({
+          message: '入库日期不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.inOutType) {
+        this.$message({
+          message: '入库类型不能为空!',
+          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: '合同编号不能为空',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractNo.length < 6 ||
+        this.deptBudgetList.contractNo.length > 20
+      ) {
+        this.$message({
+          message: '合同编号长度不符合要求,请输入6-20个字符之内',
+          type: 'warning',
+        })
+        return
+      }
+
+      // if (this.deptBudgetList.netWeight > this.$route.query.capacity) {
+      //   this.$message({
+      //     message: '入库量大于该仓库容量!',
+      //     type: 'warning',
+      //   })
+      //   return
+      // }
+      //自检员
+      if (this.deptBudgetList.warehouseInOutDetail.qualityInspector) {
+        if (
+          this.deptBudgetList.warehouseInOutDetail.qualityInspector.length <
+            2 ||
+          this.deptBudgetList.warehouseInOutDetail.qualityInspector.length > 10
+        ) {
+          this.$message({
+            message: '质检员姓名长度错误!',
+            type: 'warning',
+          })
+          return
+        }
+      }
+      if (this.deptBudgetList.warehouseInOutDetail.waterContent) {
+        if (isNaN(this.deptBudgetList.warehouseInOutDetail.waterContent)) {
+          this.$message({
+            message: '水分(%)非数字!',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          this.deptBudgetList.warehouseInOutDetail.waterContent < 1 ||
+          this.deptBudgetList.warehouseInOutDetail.waterContent > 40 ||
+          (String(
+            this.deptBudgetList.warehouseInOutDetail.waterContent
+          ).indexOf('.') != -1 &&
+            String(this.deptBudgetList.warehouseInOutDetail.waterContent)
+              .length -
+              (String(
+                this.deptBudgetList.warehouseInOutDetail.waterContent
+              ).indexOf('.') +
+                1) >
+              2)
+        ) {
+          this.$message({
+            message: '水分(%)输入错误! 取值范围1-40之间且可以保留2小数',
+            type: 'warning',
+          })
+          return
+        }
+      }
+
+      //杂质
+      if (this.deptBudgetList.warehouseInOutDetail.impurity) {
+        if (isNaN(this.deptBudgetList.warehouseInOutDetail.impurity)) {
+          this.$message({
+            message: '杂质(%)非数字!',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          this.deptBudgetList.warehouseInOutDetail.impurity < 1 ||
+          this.deptBudgetList.warehouseInOutDetail.impurity > 40 ||
+          (String(this.deptBudgetList.warehouseInOutDetail.impurity).indexOf(
+            '.'
+          ) != -1 &&
+            String(this.deptBudgetList.warehouseInOutDetail.impurity).length -
+              (String(
+                this.deptBudgetList.warehouseInOutDetail.impurity
+              ).indexOf('.') +
+                1) >
+              2)
+        ) {
+          this.$message({
+            message: '杂质(%)输入错误! 取值范围1-40之间且可以保留2小数',
+            type: 'warning',
+          })
+          return
+        }
+      }
+      //霉变
+      if (this.deptBudgetList.warehouseInOutDetail.mildewGrain) {
+        if (isNaN(this.deptBudgetList.warehouseInOutDetail.mildewGrain)) {
+          this.$message({
+            message: '霉变粒(%)非数字!',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          this.deptBudgetList.warehouseInOutDetail.mildewGrain < 1 ||
+          this.deptBudgetList.warehouseInOutDetail.mildewGrain > 40 ||
+          (String(this.deptBudgetList.warehouseInOutDetail.mildewGrain).indexOf(
+            '.'
+          ) != -1 &&
+            String(this.deptBudgetList.warehouseInOutDetail.mildewGrain)
+              .length -
+              (String(
+                this.deptBudgetList.warehouseInOutDetail.mildewGrain
+              ).indexOf('.') +
+                1) >
+              2)
+        ) {
+          this.$message({
+            message: '霉变粒(%)输入错误! 取值范围1-40之间且可以保留2小数',
+            type: 'warning',
+          })
+          return
+        }
+      }
+
+      //热损伤
+      if (this.deptBudgetList.warehouseInOutDetail.jiaorenli) {
+        if (isNaN(this.deptBudgetList.warehouseInOutDetail.jiaorenli)) {
+          this.$message({
+            message: '热损伤(%)非数字!',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          this.deptBudgetList.warehouseInOutDetail.jiaorenli < 1 ||
+          this.deptBudgetList.warehouseInOutDetail.jiaorenli > 40 ||
+          (String(this.deptBudgetList.warehouseInOutDetail.jiaorenli).indexOf(
+            '.'
+          ) != -1 &&
+            String(this.deptBudgetList.warehouseInOutDetail.jiaorenli).length -
+              (String(
+                this.deptBudgetList.warehouseInOutDetail.jiaorenli
+              ).indexOf('.') +
+                1) >
+              2)
+        ) {
+          this.$message({
+            message: '热损伤(%)输入错误! 取值范围1-40之间且可以保留2小数',
+            type: 'warning',
+          })
+          return
+        }
+      }
+
+      //不完整粒(%)
+      if (this.deptBudgetList.warehouseInOutDetail.imperfectGrain) {
+        if (isNaN(this.deptBudgetList.warehouseInOutDetail.imperfectGrain)) {
+          this.$message({
+            message: '不完整粒(%)非数字!',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          this.deptBudgetList.warehouseInOutDetail.imperfectGrain < 1 ||
+          this.deptBudgetList.warehouseInOutDetail.imperfectGrain > 40 ||
+          (String(
+            this.deptBudgetList.warehouseInOutDetail.imperfectGrain
+          ).indexOf('.') != -1 &&
+            String(this.deptBudgetList.warehouseInOutDetail.imperfectGrain)
+              .length -
+              (String(
+                this.deptBudgetList.warehouseInOutDetail.imperfectGrain
+              ).indexOf('.') +
+                1) >
+              2)
+        ) {
+          this.$message({
+            message: '不完整粒(%)输入错误! 取值范围1-40之间且可以保留2小数',
+            type: 'warning',
+          })
+          return
+        }
+      }
+      //容重
+      if (this.deptBudgetList.warehouseInOutDetail.bulkDensity) {
+        if (isNaN(this.deptBudgetList.warehouseInOutDetail.bulkDensity)) {
+          this.$message({
+            message: '容重(克/升)非数字!',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          this.deptBudgetList.warehouseInOutDetail.bulkDensity < 1 ||
+          this.deptBudgetList.warehouseInOutDetail.bulkDensity > 40 ||
+          (String(this.deptBudgetList.warehouseInOutDetail.bulkDensity).indexOf(
+            '.'
+          ) != -1 &&
+            String(this.deptBudgetList.warehouseInOutDetail.bulkDensity)
+              .length -
+              (String(
+                this.deptBudgetList.warehouseInOutDetail.bulkDensity
+              ).indexOf('.') +
+                1) >
+              0)
+        ) {
+          this.$message({
+            message: '容重(克/升)输入错误! 取值范围1-40之间且是整数',
+            type: 'warning',
+          })
+          return
+        }
+      }
+      this.deptBudgetList.id = this.$route.query.id
+      this.$confirm(`确定提交入库信息`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning',
+      })
+        .then(() => {
+          this.$refs.deptBudgetList.validate((valid) => {
+            if (valid) {
+              this.deptBudgetList.compId =
+                sessionStorage.getItem('ws-pf_compId')
+              this.deptBudgetList.inOutFlag = 2
+              this.deptBudgetList.statusFlag = 3
+              addstorageputList(this.deptBudgetList)
+                .toPromise()
+                .then((response) => {
+                  this.$message.success('添加成功')
+                  this.$router.push({ path: 'warehouseManagementList' })
+                })
+            } else {
+              EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              return false
+            }
+          })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    temporaryStorage() {
+      if (!this.deptBudgetList.goodsName) {
+        this.$message({
+          message: '货名不能为空',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.grossWeight) {
+        this.$message({
+          message: '毛重不能为空',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.grossWeight < 0 ||
+        this.deptBudgetList.grossWeight > 10000 ||
+        (String(this.deptBudgetList.grossWeight).indexOf('.') != -1 &&
+          String(this.deptBudgetList.grossWeight).length -
+            (String(this.deptBudgetList.grossWeight).indexOf('.') + 1) >
+            3)
+      ) {
+        this.$message({
+          message: '毛重输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.tare) {
+        this.$message({
+          message: '皮重不能为空',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.tare < 0 ||
+        this.deptBudgetList.tare > 10000 ||
+        (String(this.deptBudgetList.tare).indexOf('.') != -1 &&
+          String(this.deptBudgetList.tare).length -
+            (String(this.deptBudgetList.tare).indexOf('.') + 1) >
+            3)
+      ) {
+        this.$message({
+          message: '皮重输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.agent) {
+        this.$message({
+          message: '经办人不能为空',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.agent.length < 2 ||
+        this.deptBudgetList.agent.length > 10
+      ) {
+        this.$message({
+          message: '经办人输入有误',
+          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: '合同编号不能为空',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractNo.length < 6 ||
+        this.deptBudgetList.contractNo.length > 20
+      ) {
+        this.$message({
+          message: '合同编号长度不符合要求,请输入6-20个字符之内',
+          type: 'warning',
+        })
+        return
+      }
+      // if (this.deptBudgetList.netWeight > this.$route.query.capacity) {
+      //   this.$message({
+      //     message: '入库量大于该仓库容量!',
+      //     type: 'warning',
+      //   })
+      //   return
+      // }
+      //自检员
+      if (this.deptBudgetList.warehouseInOutDetail.qualityInspector) {
+        if (
+          this.deptBudgetList.warehouseInOutDetail.qualityInspector.length <
+            2 ||
+          this.deptBudgetList.warehouseInOutDetail.qualityInspector.length > 10
+        ) {
+          this.$message({
+            message: '质检员姓名长度错误!',
+            type: 'warning',
+          })
+          return
+        }
+      }
+      if (this.deptBudgetList.warehouseInOutDetail.waterContent) {
+        if (isNaN(this.deptBudgetList.warehouseInOutDetail.waterContent)) {
+          this.$message({
+            message: '水分(%)非数字!',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          this.deptBudgetList.warehouseInOutDetail.waterContent < 1 ||
+          this.deptBudgetList.warehouseInOutDetail.waterContent > 40 ||
+          (String(
+            this.deptBudgetList.warehouseInOutDetail.waterContent
+          ).indexOf('.') != -1 &&
+            String(this.deptBudgetList.warehouseInOutDetail.waterContent)
+              .length -
+              (String(
+                this.deptBudgetList.warehouseInOutDetail.waterContent
+              ).indexOf('.') +
+                1) >
+              2)
+        ) {
+          this.$message({
+            message: '水分(%)输入错误! 取值范围1-40之间且可以保留2小数',
+            type: 'warning',
+          })
+          return
+        }
+      }
+
+      //杂质
+      if (this.deptBudgetList.warehouseInOutDetail.impurity) {
+        if (isNaN(this.deptBudgetList.warehouseInOutDetail.impurity)) {
+          this.$message({
+            message: '杂质(%)非数字!',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          this.deptBudgetList.warehouseInOutDetail.impurity < 1 ||
+          this.deptBudgetList.warehouseInOutDetail.impurity > 40 ||
+          (String(this.deptBudgetList.warehouseInOutDetail.impurity).indexOf(
+            '.'
+          ) != -1 &&
+            String(this.deptBudgetList.warehouseInOutDetail.impurity).length -
+              (String(
+                this.deptBudgetList.warehouseInOutDetail.impurity
+              ).indexOf('.') +
+                1) >
+              2)
+        ) {
+          this.$message({
+            message: '杂质(%)输入错误! 取值范围1-40之间且可以保留2小数',
+            type: 'warning',
+          })
+          return
+        }
+      }
+      //霉变
+      if (this.deptBudgetList.warehouseInOutDetail.mildewGrain) {
+        if (isNaN(this.deptBudgetList.warehouseInOutDetail.mildewGrain)) {
+          this.$message({
+            message: '霉变粒(%)非数字!',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          this.deptBudgetList.warehouseInOutDetail.mildewGrain < 1 ||
+          this.deptBudgetList.warehouseInOutDetail.mildewGrain > 40 ||
+          (String(this.deptBudgetList.warehouseInOutDetail.mildewGrain).indexOf(
+            '.'
+          ) != -1 &&
+            String(this.deptBudgetList.warehouseInOutDetail.mildewGrain)
+              .length -
+              (String(
+                this.deptBudgetList.warehouseInOutDetail.mildewGrain
+              ).indexOf('.') +
+                1) >
+              2)
+        ) {
+          this.$message({
+            message: '霉变粒(%)输入错误! 取值范围1-40之间且可以保留2小数',
+            type: 'warning',
+          })
+          return
+        }
+      }
+
+      //热损伤
+      if (this.deptBudgetList.warehouseInOutDetail.jiaorenli) {
+        if (isNaN(this.deptBudgetList.warehouseInOutDetail.jiaorenli)) {
+          this.$message({
+            message: '热损伤(%)非数字!',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          this.deptBudgetList.warehouseInOutDetail.jiaorenli < 1 ||
+          this.deptBudgetList.warehouseInOutDetail.jiaorenli > 40 ||
+          (String(this.deptBudgetList.warehouseInOutDetail.jiaorenli).indexOf(
+            '.'
+          ) != -1 &&
+            String(this.deptBudgetList.warehouseInOutDetail.jiaorenli).length -
+              (String(
+                this.deptBudgetList.warehouseInOutDetail.jiaorenli
+              ).indexOf('.') +
+                1) >
+              2)
+        ) {
+          this.$message({
+            message: '热损伤(%)输入错误! 取值范围1-40之间且可以保留2小数',
+            type: 'warning',
+          })
+          return
+        }
+      }
+
+      //不完整粒(%)
+      if (this.deptBudgetList.warehouseInOutDetail.imperfectGrain) {
+        if (isNaN(this.deptBudgetList.warehouseInOutDetail.imperfectGrain)) {
+          this.$message({
+            message: '不完整粒(%)非数字!',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          this.deptBudgetList.warehouseInOutDetail.imperfectGrain < 1 ||
+          this.deptBudgetList.warehouseInOutDetail.imperfectGrain > 40 ||
+          (String(
+            this.deptBudgetList.warehouseInOutDetail.imperfectGrain
+          ).indexOf('.') != -1 &&
+            String(this.deptBudgetList.warehouseInOutDetail.imperfectGrain)
+              .length -
+              (String(
+                this.deptBudgetList.warehouseInOutDetail.imperfectGrain
+              ).indexOf('.') +
+                1) >
+              2)
+        ) {
+          this.$message({
+            message: '不完整粒(%)输入错误! 取值范围1-40之间且可以保留2小数',
+            type: 'warning',
+          })
+          return
+        }
+      }
+      //容重
+      if (this.deptBudgetList.warehouseInOutDetail.bulkDensity) {
+        if (isNaN(this.deptBudgetList.warehouseInOutDetail.bulkDensity)) {
+          this.$message({
+            message: '容重(克/升)非数字!',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          this.deptBudgetList.warehouseInOutDetail.bulkDensity < 1 ||
+          this.deptBudgetList.warehouseInOutDetail.bulkDensity > 40 ||
+          (String(this.deptBudgetList.warehouseInOutDetail.bulkDensity).indexOf(
+            '.'
+          ) != -1 &&
+            String(this.deptBudgetList.warehouseInOutDetail.bulkDensity)
+              .length -
+              (String(
+                this.deptBudgetList.warehouseInOutDetail.bulkDensity
+              ).indexOf('.') +
+                1) >
+              0)
+        ) {
+          this.$message({
+            message: '容重(克/升)输入错误! 取值范围1-40之间且是整数',
+            type: 'warning',
+          })
+          return
+        }
+      }
+      this.$confirm(`暂存后可在待完成页面查看,确定暂存`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning',
+      })
+        .then(() => {
+          this.$refs.deptBudgetList.validate((valid) => {
+            if (valid) {
+              this.deptBudgetList.compId =
+                sessionStorage.getItem('ws-pf_compId')
+              this.deptBudgetList.inOutFlag = 2
+              this.deptBudgetList.statusFlag = 1
+              addstorageputList(this.deptBudgetList)
+                .toPromise()
+                .then((response) => {
+                  this.$message.success('暂存成功')
+                  this.$router.push({ path: 'warehouseManagementList' })
+                })
+            } else {
+              EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              return false
+            }
+          })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    tarechange(e) {
+      if (this.deptBudgetList.grossWeight && this.deptBudgetList.tare) {
+        this.deptBudgetList.netWeight = Number(
+          this.deptBudgetList.grossWeight - this.deptBudgetList.tare
+        )
+      }
+    },
+    grossWeightchange(e) {
+      if (this.deptBudgetList.grossWeight && this.deptBudgetList.tare) {
+        this.deptBudgetList.netWeight = Number(
+          this.deptBudgetList.grossWeight - this.deptBudgetList.tare
+        )
+      }
+    },
+    selectgoodsName(e) {
+      for (var i = 0; i < this.goodnameList.length; i++) {
+        if (this.goodnameList[i].constValue == e) {
+          this.deptBudgetList.goodsNameKey = this.goodnameList[i].constKey
+        }
+      }
+    },
+    selectpackingMethod(e) {
+      for (var i = 0; i < this.packtypeList.length; i++) {
+        if (this.packtypeList[i].constValue == e) {
+          this.deptBudgetList.packingMethodKey = this.packtypeList[i].constKey
+        }
+      }
+    },
+    selectstorageType(e) {
+      for (var i = 0; i < this.storageType.length; i++) {
+        if (this.storageType[i].constValue == e) {
+          this.deptBudgetList.inOutTypeKey = this.storageType[i].constKey
+        }
+      }
+    },
+    handleClose() {
+      this.accessoryTFs = false
+    },
+    handleSizeChange(val) {
+      console.log(`每页 ${val} 条`)
+      this.pageSize = val
+      this.getList()
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val
+      console.log(`当前页: ${val}`)
+      this.getList()
+    },
+    getList() {
+      // 货名
+      pullDown({ constId: 'CON2' })
+        .toPromise()
+        .then((response) => {
+          this.goodnameList = response
+        })
+      // 品级
+      pullDown({ constId: 'CON3' })
+        .toPromise()
+        .then((response) => {
+          this.gradeList = response
+        })
+      // 类型
+      if (this.deptBudgetList.warehouseType == '1') {
+        pullDown({ constId: 'CON5' })
+          .toPromise()
+          .then((response) => {
+            this.storageType = response
+          })
+      } else if (this.deptBudgetList.warehouseType == '2') {
+        pullDown({ constId: 'WARE1' })
+          .toPromise()
+          .then((response) => {
+            this.storageType = response
+          })
+
+        pullDown({ constId: 'WARE2' })
+          .toPromise()
+          .then((response) => {
+            this.deliveryType = response
+          })
+      }
+      //合同编号
+      xialaNo({ compId: sessionStorage.getItem('ws-pf_compId') })
+        .toPromise()
+        .then((response) => {
+          this.outContractNo = response
+        })
+      //经办人
+      getstaff({ compId: sessionStorage.getItem('ws-pf_compId') })
+        .toPromise()
+        .then((response) => {
+          this.options = response
+          this.staffList = response
+          //  this.agent = response
+        })
+    },
+    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
+    //     })
+    // },
+    // deletecontract(){},
+    //删除
+    approve() {},
+    listQuery() {},
+  },
+}
+</script>
+<style lang="scss" scoped>
+/deep/.basicInformation {
+  .ws-info-table {
+    border: none;
+  }
+  .el-form-item {
+    width: 33.3333%;
+    border: none;
+    .el-form-item__label {
+      background: transparent;
+      border: none;
+    }
+    .el-form-item__content {
+      border: none;
+    }
+  }
+}
+
+.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 10%;
+}
+.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;
+}
+
+//选填
+/deep/.el-form-item {
+  width: 50%;
+}
+.container {
+  overflow: scroll;
+  height: 120vh;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  text-align: center;
+}
+.deliverydate {
+  display: inline-block;
+  width: 10%;
+}
+.center {
+  margin-top: -60px;
+  width: 80%;
+}
+//仓位
+
+.position {
+  background: #afb5cb;
+  border-radius: 2px;
+  font-size: 12px;
+  color: #ffffff;
+  line-height: 20px;
+  display: inline-grid;
+  padding: 2px 4px;
+}
+//表格文字
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  text-align: left;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+}
+.inspector {
+  width: 50%;
+}
+//质检员
+.inspector .el-form-item__content {
+  text-align: left;
+  margin-left: 0px;
+}
+.small-title {
+  position: relative;
+  padding: 10px;
+  font-weight: 600;
+}
+.small-title::before {
+  position: absolute;
+  content: '';
+  display: block;
+  background: #5473e8;
+  width: 4px;
+  height: 14px;
+  left: 0px;
+  top: 13px;
+  padding: 4px 2px;
+}
+//下面列表
+.neifor {
+  width: 80%;
+  background-color: #f6f7fc;
+}
+/deep/.neifor .ws-info-table .el-form-item .el-form-item__label {
+  width: 35%;
+  text-align: center;
+}
+/deep/.neifor .ws-info-table .el-form-item .el-form-item__content {
+  width: 60%;
+  background-color: #f6f7fc;
+}
+
+/deep/.neifor .el-input--small .el-input__inner {
+  width: 100%;
+}
+</style>

+ 521 - 0
src/views/taskManagement/moveWarehouseTask.vue

@@ -0,0 +1,521 @@
+<!--移库任务-->
+<template>
+  <div>
+    <BaseHeaderLayout :leftSpan="20">
+      <template slot="left">
+        <ws-button class="but" type="primary" @click="handlestatus(1)">
+          执行中</ws-button
+        >
+        <ws-button class="but" @click="handlestatus(2)">已完成</ws-button>
+        <ws-button class="but" @click="handlestatus('')">全部任务</ws-button>
+      </template>
+      <template slot="left">
+         <ws-input
+          v-model="warehouseName"
+          placeholder="可按移库任务编号、发货库和收货库查找"
+          clearable
+          maxlength="500"
+          type="input"
+          class="findValue"
+        ></ws-input>
+        <!-- v-hasPermission="'procurement.sparepart.directShip'" -->
+        <div class="search">
+          <ws-button class="find" type="primary" @click="lookUp()"
+            ><img
+              width="16"
+              height="16"
+              style="
+                vertical-align: text-top;
+                position: relative;
+                top: 0px;
+                left: -8px;
+              "
+              src="../../../public/img/sousuo.png"
+              alt=""
+          /></ws-button>
+        </div>
+      </template>
+    </BaseHeaderLayout>
+    <div>
+      <el-table
+        class="wenzi"
+        :data="gainList.records"
+        style="width: 100%; margin-top: 20px"
+        height="780"
+      >
+      
+     <el-table-column type="index" label="序号">
+          <template scope="scope">
+            <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+            <span v-else>{{ scope.$index + 1 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="contractNo" label="移库任务编号"> </el-table-column>
+        <el-table-column prop="taskNo" label="发货库" >
+            </el-table-column>
+        <el-table-column prop="warehouseName" class="table_td" label="收货库">
+            </el-table-column>
+        <el-table-column prop="goodsName" label="货名"> </el-table-column>
+        <el-table-column prop="weight" label="重量(吨)"> </el-table-column>
+        <el-table-column prop="weight" label="出库量(吨)"> </el-table-column>
+        <el-table-column prop="weight" label="入库量(吨)"> </el-table-column>
+        <el-table-column prop="weight" label="退库量(吨)"> </el-table-column>
+        <el-table-column prop="weight" label="运输损耗(吨)"> </el-table-column>
+        <el-table-column prop="weight" label="发布者"> </el-table-column>
+        <el-table-column prop="status" label="状态">
+          <template slot-scope="scope">
+            <el-popover
+              placement="left"
+              :width="285"
+              trigger="click"
+              visible-arrow="false"
+              @show="history(scope.row)"
+            >
+              <template>
+                <span slot="reference">
+                  <span
+                    v-if="scope.row.status == '待执行'"
+                    class="executory"
+                  ></span>
+                  <span
+                    v-if="scope.row.status == '执行中'"
+                    class="inExecution"
+                  ></span>
+                  <span v-if="scope.row.status == '已完成'" class="done"></span
+                  >{{ scope.row.status }}
+                </span>
+              </template>
+              <div>
+                <p style="margin-top: 0; padding-left: 10px">XXXXX</p>
+                <div v-for="(item, index) in historyList" class="flex">
+                  <div class="vertical-text vertical-text-left">
+                    {{ item.updateDate }}
+                  </div>
+                  <div>
+                    <div class="vertical-circle"></div>
+                    <div
+                      v-if="index != historyList.length - 1"
+                      class="vertical-line"
+                    ></div>
+                  </div>
+                  <div class="vertical-text">
+                    {{ item.operateUser }}<br />{{ item.dealMsg }}
+                  </div>
+                </div>
+              </div>
+            </el-popover>
+            <img
+              width="17"
+              height="18"
+              style="vertical-align: text-top; position: relative; top: -1px"
+              src="../../../public/img/edit.png"
+              @click="editClick(scope.row)"
+              alt=""
+            />
+          </template>
+        </el-table-column>
+        <el-table-column prop="weight" label="发布时间"> </el-table-column>
+        
+        <el-table-column prop="seller" label="详情" width="240">
+          <template slot-scope="scope">
+            <ws-button class="completed" @click="nocomplete(scope.row)">
+              查看
+            </ws-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+  </div>
+</template>
+<script>
+import { gain, deltran } from '@/model/tasksport/index'
+import { downloadFile } from '@/utils/batchDown'
+import Pagination from '@/components/Pagination'
+import WsUpload from '@/components/WsUpload'
+import { dayjs, fmoney, EventBus } from 'base-core-lib'
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+    Pagination,
+  },
+  watch: {
+    vesselId(val) {
+      this.getList()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      gainList: [],
+      currentPage: 1,
+      pageSize: 10,
+      searchType: 1,
+      searchTypeText: '未完成',
+      searchKeyWord: '',
+      contractType: 2,
+      // 提交类型
+      submitType: true,
+      size: 10,
+      spanArr: [],
+      warehouseName: '',
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      historyList: [],
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+    }
+  },
+  activated() {
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    //添加
+    add() {
+      this.$router.push({ path: 'tranManagementTransportAdd' })
+    },
+    //查找
+    lookUp() {
+      this.currentPage = 1
+      this.getList()
+    },
+    deleteclick(row) {
+      //cancelButtonClass: "btn-custom-cancel"
+      this.$confirm(`运输任务删除后不可恢复,是否确定删除?`, {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+        .then(() => {
+          console.log(row)
+          deltran({
+            id: row.id,
+          })
+            .toPromise()
+            .then((response) => {
+              this.getList()
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    getList() {
+      gain({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        currentPage: this.currentPage,
+        pageSize: this.pageSize,
+        searchType: this.searchType,
+        searchKeyWord: this.searchKeyWord,
+      })
+        .toPromise()
+        .then((response) => {
+          this.gainList = response
+        })
+    },
+    handlestatus(status) {
+      this.searchType = status
+      this.getList()
+    },
+    //编辑
+    delivery(item) {
+      this.$router.push({
+        path: 'tranManagementTransportEdit',
+        query: {
+          id: item.id,
+        },
+      })
+    },
+    //查看
+    warehousing(item) {
+      var free = 0
+      for (var i = 0; i < item.warehouseNumViewList.length; i++) {
+        free += Number(item.warehouseNumViewList[i].storage)
+      }
+      this.$router.push({
+        path: 'tranManagementLook',
+        query: {
+          baseId: item.warehouseId,
+          positionId: item.binNumberId,
+          warehouseName: item.warehouseName,
+          binNumber: item.binNumber,
+          capacity: item.capacity - free,
+        },
+      })
+    },
+    getSpanArr(data) {
+      let that = this
+
+      //页面展示的数据,不一定是全部的数据,所以每次都清空之前存储的 保证遍历的数据是最新的数据。以免造成数据渲染混乱
+
+      that.spanArr = []
+
+      that.pos = 0
+
+      //遍历数据
+
+      data.forEach((item, index) => {
+        //判断是否是第一项
+
+        // if (index === 0) {
+        //   this.spanArr.push(1)
+        //   this.pos = 0
+        // } else {
+        //不是第一项时,就根据标识去存储
+        if (data[index].warehouseNumViewList.length > 1) {
+          // 查找到符合条件的数据时每次要把之前存储的数据+1
+          this.spanArr[this.pos] = data[index].warehouseNumViewList.length
+          this.spanArr.push(0)
+        } else {
+          // 没有符合的数据时,要记住当前的index
+          this.spanArr.push(1)
+          this.pos = index
+        }
+        // }
+      })
+    },
+    //查看//传参
+    nocomplete(row) {
+      this.$router.push({
+        path: 'tranManagementLook',
+        query: {
+          id: row.id,
+        },
+      })
+    },
+    //查看
+    handleLook() {
+      this.$router.push({ path: 'tranManagementLook' })
+    },
+    //添加
+    handleAdd() {
+      this.$router.push({ path: 'tranManagementTransportAdd' })
+    },
+    //编辑
+    handleEdit() {
+      this.$router.push({ path: 'tranManagementTransportEdit' })
+    },
+    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(() => {
+          editstatus({ id: row.id })
+            .toPromise()
+            .then((response) => {
+              this.$notify.success({
+                title: '成功',
+                message: '状态修改成功',
+              })
+              this.getList()
+            })
+            .catch((response) => {
+              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    selecttaskType(e) {
+      for (var i = 0; i < this.taskTypeList.length; i++) {
+        if (this.taskTypeList[i].value == e) {
+          this.searchType = this.taskTypeList[i].type
+        }
+      }
+    },
+    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',
+      })
+    },
+  },
+}
+</script>
+<style lang="scss" scoped>
+.connert {
+  width: 90%;
+  margin: 0 auto;
+}
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-button--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;
+}
+.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;
+}
+.but {
+  margin-top: 150px;
+}
+.findValue {
+  width: 50%;
+  margin-left: 25%;
+}
+/deep/.el-input--small .el-input__inner {
+  margin-left: -230px;
+  width: 300px;
+}
+.search {
+  margin-left: -100px;
+}
+</style>

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

@@ -0,0 +1,532 @@
+<!--出入库任务-->
+<template>
+  <div>
+    <BaseHeaderLayout :leftSpan="20">
+      <template slot="right">
+        <ws-button class="but" type="primary" @click="handleAdd()"
+          >添加</ws-button
+        >
+      </template>
+      <template slot="left">
+        <ws-button class="but" type="primary" @click="handlestatus(1)">
+          执行中</ws-button
+        >
+        <ws-button class="but" @click="handlestatus(2)">已完成</ws-button>
+        <ws-button class="but" @click="handlestatus('')">全部任务</ws-button>
+      </template>
+      <template slot="left">
+        <ws-input
+          v-model="warehouseName"
+          placeholder="可按合同编号或任务编号查找"
+          clearable
+          maxlength="500"
+          type="input"
+          class="findValue"
+        ></ws-input>
+        <!-- v-hasPermission="'procurement.sparepart.directShip'" -->
+        <div class="search">
+          <ws-button class="find" type="primary" @click="lookUp()"
+            ><img
+              width="16"
+              height="16"
+              style="
+                vertical-align: text-top;
+                position: relative;
+                top: 0px;
+                left: -1px;
+              "
+              src="../../../public/img/sousuo.png"
+              alt=""
+          /></ws-button>
+        </div>
+      </template>
+    </BaseHeaderLayout>
+    <div>
+      <el-table
+        class="wenzi"
+        :data="gainList.records"
+        style="width: 100%; margin-top: 20px"
+        height="780"
+      >
+        <el-table-column type="index" label="序号">
+          <template scope="scope">
+            <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+            <span v-else>{{ scope.$index + 1 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="contractNo" label="合同编号" width="80">
+        </el-table-column>
+        <el-table-column prop="taskNo" label="任务编号"> </el-table-column>
+        <el-table-column prop=" warehouseName" class="table_td" label="库房名">
+        </el-table-column>
+        <el-table-column prop="inOutType" class="table_td" label="出入库类型">
+        </el-table-column>
+        <el-table-column prop="goodsName" class="table_td" label="货名">
+        </el-table-column>
+        <el-table-column prop=" weight" class="table_td" label="重量(吨)">
+        </el-table-column>
+        <el-table-column prop="yujiDate" class="table_td" label="预计日期">
+        </el-table-column>
+        <el-table-column prop="publisher" class="table_td" label="发布者">
+        </el-table-column>
+        <el-table-column prop="status" label="状态">
+          <template slot-scope="scope">
+            <el-popover
+              placement="left"
+              :width="285"
+              trigger="click"
+              visible-arrow="false"
+              @show="history(scope.row)"
+            >
+              <template>
+                <span slot="reference">
+                  <span
+                    v-if="scope.row.status == '待审核'"
+                    class="executory"
+                  ></span>
+                  <span
+                    v-if="scope.row.status == '执行中'"
+                    class="inExecution"
+                  ></span>
+                  <span v-if="scope.row.status == '已完成'" class="done"></span
+                  >{{ scope.row.status }}
+                </span>
+              </template>
+              <div>
+                <p style="margin-top: 0; padding-left: 10px">操作历史</p>
+                <div v-for="(item, index) in historyList" class="flex">
+                  <div class="vertical-text vertical-text-left">
+                    {{ item.updateDate }}
+                  </div>
+                  <div>
+                    <div class="vertical-circle"></div>
+                    <div
+                      v-if="index != historyList.length - 1"
+                      class="vertical-line"
+                    ></div>
+                  </div>
+                  <div class="vertical-text">
+                    {{ item.operateUser }}<br />{{ item.dealMsg }}
+                  </div>
+                </div>
+              </div>
+            </el-popover>
+            <img
+              width="17"
+              height="18"
+              style="vertical-align: text-top; position: relative; top: -1px"
+              src="../../../public/img/edit.png"
+              @click="editClick(scope.row)"
+              alt=""
+            />
+          </template>
+        </el-table-column>
+        <el-table-column prop="createDate" class="table_td" label="创建时间">
+        </el-table-column>
+        <el-table-column prop="seller" label="操作" width="300">
+          <template slot-scope="scope">
+            <ws-button class="completed" @click="nocomplete(scope.row)">
+              查看
+            </ws-button>
+            <ws-button class="putstorage" @click="delivery(scope.row)">
+              编辑
+            </ws-button>
+            <ws-button @click="deleteclick(scope.row)"> 删除 </ws-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+  </div>
+</template>
+<script>
+import { gain, deltran } from '@/model/tasksport/index'
+import { downloadFile } from '@/utils/batchDown'
+import Pagination from '@/components/Pagination'
+import WsUpload from '@/components/WsUpload'
+import { dayjs, fmoney, EventBus } from 'base-core-lib'
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+    Pagination,
+  },
+  watch: {
+    vesselId(val) {
+      this.getList()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      gainList: [],
+      currentPage: 1,
+      pageSize: 10,
+      searchType: 1,
+      searchTypeText: '未完成',
+      searchKeyWord: '',
+      contractType: 2,
+      // 提交类型
+      submitType: true,
+      size: 10,
+      spanArr: [],
+      warehouseName: '',
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      historyList: [],
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+    }
+  },
+  activated() {
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    //添加
+    add() {
+      this.$router.push({ path: 'tranManagementWarehouseInOutTaskAdd' })
+    },
+    //查找
+    lookUp() {
+      this.currentPage = 1
+      this.getList()
+    },
+    deleteclick(row) {
+      //cancelButtonClass: "btn-custom-cancel"
+      this.$confirm(`运输任务删除后不可恢复,是否确定删除?`, {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+        .then(() => {
+          console.log(row)
+          deltran({
+            id: row.id,
+          })
+            .toPromise()
+            .then((response) => {
+              this.getList()
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    getList() {
+      gain({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        currentPage: this.currentPage,
+        pageSize: this.pageSize,
+        searchType: this.searchType,
+        searchKeyWord: this.searchKeyWord,
+      })
+        .toPromise()
+        .then((response) => {
+          this.gainList = response
+        })
+    },
+    handlestatus(status) {
+      this.searchType = status
+      this.getList()
+    },
+    //编辑
+    delivery(item) {
+      this.$router.push({
+        path: 'tranManagementWarehouseInOutTaskEdit',
+        query: {
+          id: item.id,
+        },
+      })
+    },
+    //查看
+    warehousing(item) {
+      var free = 0
+      for (var i = 0; i < item.warehouseNumViewList.length; i++) {
+        free += Number(item.warehouseNumViewList[i].storage)
+      }
+      this.$router.push({
+        path: 'tranManagementWarehouseInOutTaskLook',
+        query: {
+          baseId: item.warehouseId,
+          positionId: item.binNumberId,
+          warehouseName: item.warehouseName,
+          binNumber: item.binNumber,
+          capacity: item.capacity - free,
+        },
+      })
+    },
+    getSpanArr(data) {
+      let that = this
+
+      //页面展示的数据,不一定是全部的数据,所以每次都清空之前存储的 保证遍历的数据是最新的数据。以免造成数据渲染混乱
+
+      that.spanArr = []
+
+      that.pos = 0
+
+      //遍历数据
+
+      data.forEach((item, index) => {
+        //判断是否是第一项
+
+        // if (index === 0) {
+        //   this.spanArr.push(1)
+        //   this.pos = 0
+        // } else {
+        //不是第一项时,就根据标识去存储
+        if (data[index].warehouseNumViewList.length > 1) {
+          // 查找到符合条件的数据时每次要把之前存储的数据+1
+          this.spanArr[this.pos] = data[index].warehouseNumViewList.length
+          this.spanArr.push(0)
+        } else {
+          // 没有符合的数据时,要记住当前的index
+          this.spanArr.push(1)
+          this.pos = index
+        }
+        // }
+      })
+    },
+    //查看//传参
+    nocomplete(row) {
+      this.$router.push({
+        path: 'tranManagementLook',
+        query: {
+          id: row.id,
+        },
+      })
+    },
+    //查看
+    handleLook() {
+      this.$router.push({ path: 'tranManagementWarehouseInOutTaskLook' })
+    },
+    //添加
+    handleAdd() {
+      this.$router.push({ path: 'tranManagementWarehouseInOutTaskAdd' })
+    },
+    //编辑
+    handleEdit() {
+      this.$router.push({ path: 'tranManagementWarehouseInOutTaskEdit' })
+    },
+    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(() => {
+          editstatus({ id: row.id })
+            .toPromise()
+            .then((response) => {
+              this.$notify.success({
+                title: '成功',
+                message: '状态修改成功',
+              })
+              this.getList()
+            })
+            .catch((response) => {
+              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    selecttaskType(e) {
+      for (var i = 0; i < this.taskTypeList.length; i++) {
+        if (this.taskTypeList[i].value == e) {
+          this.searchType = this.taskTypeList[i].type
+        }
+      }
+    },
+    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',
+      })
+    },
+  },
+}
+</script>
+<style lang="scss" scoped>
+.connert {
+  width: 90%;
+  margin: 0 auto;
+}
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-button--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;
+}
+.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;
+}
+.but {
+  margin-top: 150px;
+}
+.findValue {
+  width: 0%;
+  margin-left: 25%;
+}
+/deep/.el-input--small .el-input__inner {
+  margin-left: -550px;
+  width: 300px;
+}
+.search {
+  margin-left: -250px;
+}
+</style>

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

@@ -0,0 +1,1407 @@
+// 创建出入库任务
+<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 v-model="radio" label="1">出库</el-radio>
+  <el-radio v-model="radio" label="2">入库</el-radio>
+    <el-radio v-model="radio" label="3">移库</el-radio>
+  <el-radio v-model="radio" label="4">退库并出库</el-radio>
+       <div class="center1">
+
+    <!--出库=-->      
+    <div class="small-title"><h3>出库任务( )</h3></div>
+            <el-form ref="form" :model="form" label-width="140px">
+          <!-- 仓库名 -->
+          <el-form-item label="仓库名">
+             <el-select
+              v-model="dataList.warehouseName"
+              placeholder="请选择仓库名"
+              class="typeselect"
+              @change="selectwarehouseName"
+            >
+              <el-option
+                v-for="item in warehouseNameList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </el-select>
+          </el-form-item>
+          <!-- 出库类型 -->
+            <el-form-item label="出库类型">
+                <el-select
+              v-model="dataList.deliveryType"
+              placeholder="请选择出库类型"
+              class="typeselect"
+              @change="selectstorageType"
+            >
+              <el-option
+                v-for="item in storageType"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </el-select>
+             </el-form-item>
+            <!-- 合同编号 -->
+              <el-form-item label="合同编号">
+                    <el-select
+                        v-model="dataList.contractNo"
+                        placeholder="请选择合同编号"
+                        class="typeselect"
+            >
+              <el-option
+                v-for="item in outContractNo"
+                :key="item.constKey"
+                :label="item.contractNo"
+                :value="item.contractNo"
+              />
+            </el-select>
+                </el-form-item>
+            <!-- 货名 -->
+              <el-form-item label="货名">
+                  {{}}
+            </el-select>
+                </el-form-item>
+          <!--重量(吨)-->
+            <el-form-item label="重量(吨)">
+                <el-input
+              @input="weightchange"
+              v-model="dataList.weight"
+              placeholder="请输入重量"
+              maxlength="120"
+              size="small"
+            />
+            </el-form-item>
+          <!-- 品级 -->
+            <el-form-item label="品级">
+                <el-select
+              v-model="dataList.grade"
+              placeholder=""
+              class="typeselect"
+              @change="selectpackingMethod"
+            >
+              <el-option
+                v-for="item in gradeList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </el-select>
+            </el-form-item>
+          <!--容重(克/升)>=-->
+            <el-form-item label="容重(克/升)>=">
+                    <el-input
+              @input="bulkDensitychange"
+              v-model="dataList.bulkDensity"
+              placeholder="请输入容重"
+              maxlength="120"
+              size="small"
+            />
+            </el-form-item>  
+        <!--水分(%)<=--> 
+            <el-form-item label="水分(%)<=">
+                <el-input
+              @input="waterContentchange"
+              v-model="dataList.waterContent"
+              placeholder="请输入水分占比"
+              maxlength="120"
+              size="small"
+            />
+            </el-form-item>  
+          <!--单价(元/吨)-->  
+            <el-form-item label="单价(元/吨)">
+               <el-input
+              @input="unitPricechange"
+              v-model="dataList.unitPrice"
+              placeholder="请输入单价"
+              maxlength="120"
+              size="small"
+            />
+            </el-form-item>
+          <!--预计出库日期-->
+          <el-form-item
+            label="预计出库日期"
+            span="1"
+            prop="deliveryDate"
+            class="deliverydate"
+          >
+            <el-date-picker
+              v-model="dataList.deliveryDate"
+              type="date"
+              placeholder="请选择预计出库日期"
+              value-format="yyyy-MM-dd"
+            />
+          </el-form-item>   
+          <!--经办人-->
+         <el-form-item label="出库经办人">
+              <el-select
+              v-model="dataList.agent"
+              placeholder="请选择经办人"
+              filterable
+              :filter-method="dataFilter"
+              @change="selectstaff"
+            >
+              <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.staffName"
+                :value="item.staffName"
+              />
+            </el-select>
+          </el-form-item>
+        <!--业务描述=-->
+          <el-form-item label="业务描述" >
+            <el-input
+              @input="businessDescriptionchange"
+              v-model="dataList.businessDescription"
+              placeholder="请输入业务描述,不超过150字"
+              maxlength="150"
+              size="small"
+            />
+          </el-form-item>           
+</el-form>
+
+      <!--入库=-->
+      <div class="small-title"><h3>入库任务( )</h3></div>
+            <el-form ref="form" :model="form" label-width="140px">
+
+          <!-- 仓库名 -->
+          <el-form-item label="仓库名">
+             <el-select
+              v-model="dataList.warehouseName"
+              placeholder="请选择仓库名"
+              class="typeselect"
+              @change="selectwarehouseName"
+            >
+              <el-option
+                v-for="item in warehouseNameList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </el-select>
+          </el-form-item>
+          <!-- 入库类型 -->
+            <el-form-item label="入库类型">
+                <el-select
+              v-model="dataList.inOutType"
+              placeholder="请选择入库类型"
+              class="typeselect"
+              @change="selectstorageType"
+            >
+              <el-option
+                v-for="item in storageType"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </el-select>
+             </el-form-item>
+            <!-- 合同编号 -->
+              <el-form-item label="合同编号">
+                    <el-select
+                        v-model="dataList.contractNo"
+                        placeholder="请选择合同编号"
+                        class="typeselect"
+            >
+              <el-option
+                v-for="item in outContractNo"
+                :key="item.constKey"
+                :label="item.contractNo"
+                :value="item.contractNo"
+              />
+            </el-select>
+                </el-form-item>
+            <!-- 货名 -->
+              <el-form-item label="货名">
+                  {{}}
+                </el-form-item>
+          <!--重量(吨)-->
+            <el-form-item label="重量(吨)">
+                <el-input
+              @input="weightchange"
+              v-model="dataList.weight"
+              placeholder="请输入重量"
+              maxlength="120"
+              size="small"
+            />
+            </el-form-item>
+          <!-- 品级 -->
+            <el-form-item label="品级">
+                <el-select
+              v-model="dataList.grade"
+              placeholder="一等品"
+              class="typeselect"
+              @change="selectpackingMethod"
+            >
+              <el-option
+                v-for="item in gradeList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </el-select>
+            </el-form-item>
+          <!--容重(克/升)>=-->
+            <el-form-item label="容重(克/升)>=">
+                    <el-input
+              @input="bulkDensitychange"
+              v-model="dataList.bulkDensity"
+              placeholder="请输入容重"
+              maxlength="120"
+              size="small"
+            />
+            </el-form-item>  
+        <!--水分(%)<=--> 
+            <el-form-item label="水分(%)<=">
+                <el-input
+              @input="waterContentchange"
+              v-model="dataList.waterContent"
+              placeholder="请输入水分占比"
+              maxlength="120"
+              size="small"
+            />
+            </el-form-item>  
+          <!--单价(元/吨)-->  
+            <el-form-item label="单价(元/吨)">
+               <el-input
+              @input="unitPricechange"
+              v-model="dataList.unitPrice"
+              placeholder="请输入单价"
+              maxlength="120"
+              size="small"
+            />
+            </el-form-item>
+          <!--预计入库日期-->
+          <el-form-item
+            label="预计入库日期"
+            span="1"
+            prop="inOutDate"
+            class="deliverydate"
+          >
+            <el-date-picker
+              v-model="dataList.inOutDate"
+              type="date"
+              placeholder="请选择预计入库日期"
+              value-format="yyyy-MM-dd"
+            />
+          </el-form-item>   
+          <!--经办人-->
+         <el-form-item label="入库经办人">
+              <el-select
+              v-model="dataList.agent"
+              placeholder="请选择经办人"
+              filterable
+              :filter-method="dataFilter"
+              @change="selectstaff"
+            >
+              <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.staffName"
+                :value="item.staffName"
+              />
+            </el-select>
+          </el-form-item>
+        <!--业务描述=-->
+          <el-form-item label="业务描述" >
+            <el-input
+              @input="businessDescriptionchange"
+              v-model="dataList.businessDescription"
+              placeholder="请输入业务描述,不超过150字"
+              maxlength="150"
+              size="small"
+            />
+          </el-form-item>   
+</el-form>
+
+<!--移库-->      
+    <div class="small-title"><h3>出库任务( )</h3></div>
+            <el-form ref="form" :model="form" label-width="140px">
+          <!-- 仓库名 -->
+          <el-form-item label="仓库名">
+             <el-select
+              v-model="dataList.warehouseName"
+              placeholder="请选择仓库"
+              class="typeselect"
+              @change="selectwarehouseName"
+            >
+              <el-option
+                v-for="item in warehouseNameList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </el-select>
+          </el-form-item>
+          <!-- 出库类型 -->
+            <el-form-item label="出库类型">
+                {{}}
+             </el-form-item>
+            <!--移库任务编号-->
+            <el-form-item label="移库任务编号">
+                <el-input
+              @input="mobileTaskNochange"
+              v-model="dataList.mobileTaskNo"
+              placeholder="请输入移库任务编号"
+              maxlength="120"
+              size="small"
+            />
+            </el-form-item>
+            <!-- 货名 -->
+              <el-form-item label="货名">
+                  {{}}
+            </el-select>
+                </el-form-item>
+          <!--重量(吨)-->
+            <el-form-item label="重量(吨)">
+                <el-input
+              @input="weightchange"
+              v-model="dataList.weight"
+              placeholder="请输入重量"
+              maxlength="120"
+              size="small"
+            />
+            </el-form-item>
+          <!-- 品级 -->
+            <el-form-item label="品级">
+                <el-select
+              v-model="dataList.grade"
+              placeholder="一等品"
+              class="typeselect"
+              @change="selectpackingMethod"
+            >
+              <el-option
+                v-for="item in gradeList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </el-select>
+            </el-form-item>
+          <!--容重(克/升)>=-->
+            <el-form-item label="容重(克/升)>=">
+                    <el-input
+              @input="bulkDensitychange"
+              v-model="dataList.bulkDensity"
+              placeholder="请输入容重"
+              maxlength="120"
+              size="small"
+            />
+            </el-form-item>  
+        <!--水分(%)<=--> 
+            <el-form-item label="水分(%)<=">
+                <el-input
+              @input="waterContentchange"
+              v-model="dataList.waterContent"
+              placeholder="请输入水分占比"
+              maxlength="120"
+              size="small"
+            />
+            </el-form-item>  
+          <!--单价(元/吨)-->  
+            <el-form-item label="单价(元/吨)">
+               <el-input
+              @input="unitPricechange"
+              v-model="dataList.unitPrice"
+              placeholder="请输入单价"
+              maxlength="120"
+              size="small"
+            />
+            </el-form-item>
+          <!--预计出库日期-->
+          <el-form-item
+            label="预计出库日期"
+            span="1"
+            prop="deliveryDate"
+            class="deliverydate"
+          >
+            <el-date-picker
+              v-model="dataList.deliveryDate"
+              type="date"
+              placeholder="请选择预计出库日期"
+              value-format="yyyy-MM-dd"
+            />
+          </el-form-item>   
+          <!--经办人-->
+         <el-form-item label="出库经办人">
+              <el-select
+              v-model="dataList.agent"
+              placeholder="请选择经办人"
+              filterable
+              :filter-method="dataFilter"
+              @change="selectstaff"
+            >
+              <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.staffName"
+                :value="item.staffName"
+              />
+            </el-select>
+          </el-form-item>           
+</el-form>
+<div class="small-title"><h3>入库任务( )</h3></div>
+            <el-form ref="form" :model="form" label-width="140px">
+          <!-- 仓库名 -->
+          <el-form-item label="仓库名">
+             <el-select
+              v-model="dataList.warehouseName"
+              placeholder="请选择仓库"
+              class="typeselect"
+              @change="selectwarehouseName"
+            >
+              <el-option
+                v-for="item in warehouseNameList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </el-select>
+          </el-form-item>
+          <!-- 入库类型 -->
+            <el-form-item label="入库类型">
+                {{}}
+             </el-form-item>
+            <!--移库任务编号-->
+            <el-form-item label="移库任务编号">
+              {{}}
+            </el-form-item>
+            <!-- 货名 -->
+              <el-form-item label="货名">
+                  {{}}
+            </el-select>
+                </el-form-item>
+          <!--重量(吨)-->
+            <el-form-item label="重量(吨)">
+                <el-input
+              @input="weightchange"
+              v-model="dataList.weight"
+              placeholder="请输入重量"
+              maxlength="120"
+              size="small"
+            />
+            </el-form-item>
+          <!-- 品级 -->
+            <el-form-item label="品级">
+             {{}}
+            </el-form-item>
+          <!--容重(克/升)>=-->
+            <el-form-item label="容重(克/升)>=">
+              {{}}
+            </el-form-item>  
+        <!--水分(%)<=--> 
+            <el-form-item label="水分(%)<=">
+           {{}} 
+            </el-form-item>  
+          <!--单价(元/吨)-->  
+            <el-form-item label="单价(元/吨)">
+           {{}}
+            </el-form-item>
+          <!--预计入库日期-->
+          <el-form-item
+            label="预计入库日期"
+            span="1"
+            prop="inOutDate"
+            class="deliverydate"
+          >
+            <el-date-picker
+              v-model="dataList.inOutDate"
+              type="date"
+              placeholder="请选择预计入库日期"
+              value-format="yyyy-MM-dd"
+            />
+          </el-form-item>   
+          <!--经办人-->
+         <el-form-item label="入库经办人">
+              <el-select
+              v-model="dataList.agent"
+              placeholder="请选择经办人"
+              filterable
+              :filter-method="dataFilter"
+              @change="selectstaff"
+            >
+              <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.staffName"
+                :value="item.staffName"
+              />
+            </el-select>
+          </el-form-item>
+        <!--业务描述=-->
+          <el-form-item label="业务描述" >
+            <el-input
+              @input="businessDescriptionchange"
+              v-model="dataList.businessDescription"
+              placeholder="请输入业务描述,不超过150字"
+              maxlength="150"
+              size="small"
+            />
+          </el-form-item>           
+</el-form>
+
+<!--退库并出库-->      
+    <div class="small-title"><h3>入库任务( )</h3></div>
+            <el-form ref="form" :model="form" label-width="140px">
+          <!-- 仓库名 -->
+          <el-form-item label="仓库名">
+             <el-select
+              v-model="dataList.warehouseName"
+              placeholder="请选择仓库"
+              class="typeselect"
+              @change="selectwarehouseName"
+            >
+              <el-option
+                v-for="item in warehouseNameList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </el-select>
+          </el-form-item>
+          <!-- 入库类型 -->
+            <el-form-item label="入库类型">
+                {{}}
+             </el-form-item>
+            <!-- 合同编号 -->
+              <el-form-item label="合同编号">
+                    <el-select
+                        v-model="dataList.contractNo"
+                        placeholder="请选择合同编号"
+                        class="typeselect"
+            >
+              <el-option
+                v-for="item in outContractNo"
+                :key="item.constKey"
+                :label="item.contractNo"
+                :value="item.contractNo"
+              />
+            </el-select>
+                </el-form-item>
+            <!-- 货名 -->
+              <el-form-item label="货名">
+                  {{}}
+            </el-select>
+                </el-form-item>
+          <!--重量(吨)-->
+            <el-form-item label="重量(吨)">
+                <el-input
+              @input="weightchange"
+              v-model="dataList.weight"
+              placeholder="请输入重量"
+              maxlength="120"
+              size="small"
+            />
+            </el-form-item>
+          <!-- 品级 -->
+            <el-form-item label="品级">
+                <el-select
+              v-model="dataList.grade"
+              placeholder="一等品"
+              class="typeselect"
+              @change="selectpackingMethod"
+            >
+              <el-option
+                v-for="item in gradeList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </el-select>
+            </el-form-item>
+          <!--容重(克/升)>=-->
+            <el-form-item label="容重(克/升)>=">
+                    <el-input
+              @input="bulkDensitychange"
+              v-model="dataList.bulkDensity"
+              placeholder="请输入容重"
+              maxlength="120"
+              size="small"
+            />
+            </el-form-item>  
+        <!--水分(%)<=--> 
+            <el-form-item label="水分(%)<=">
+                <el-input
+              @input="waterContentchange"
+              v-model="dataList.waterContent"
+              placeholder="请输入水分占比"
+              maxlength="120"
+              size="small"
+            />
+            </el-form-item>  
+          <!--单价(元/吨)-->  
+            <el-form-item label="单价(元/吨)">
+               <el-input
+              @input="unitPricechange"
+              v-model="dataList.unitPrice"
+              placeholder="请输入单价"
+              maxlength="120"
+              size="small"
+            />
+            </el-form-item>
+          <!--预计入库日期-->
+          <el-form-item
+            label="预计入库日期"
+            span="1"
+            prop="inOutDate"
+            class="deliverydate"
+          >
+            <el-date-picker
+              v-model="dataList.inOutDate"
+              type="date"
+              placeholder="请选择预计入库日期"
+              value-format="yyyy-MM-dd"
+            />
+          </el-form-item>   
+          <!--经办人-->
+         <el-form-item label="入库经办人">
+              <el-select
+              v-model="dataList.agent"
+              placeholder="请选择经办人"
+              filterable
+              :filter-method="dataFilter"
+              @change="selectstaff"
+            >
+              <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.staffName"
+                :value="item.staffName"
+              />
+            </el-select>
+          </el-form-item>           
+</el-form>
+<div class="small-title"><h3>出库任务( )</h3></div>
+            <el-form ref="form" :model="form" label-width="140px">
+          <!-- 仓库名 -->
+          <el-form-item label="仓库名">
+            {{}}
+          </el-form-item>
+          <!-- 出库类型 -->
+            <el-form-item label="入库类型">
+                {{}}
+             </el-form-item>
+            <!-- 合同编号 -->
+              <el-form-item label="合同编号">
+                    <el-select
+                        v-model="dataList.contractNo"
+                        placeholder="请选择合同编号"
+                        class="typeselect"
+            >
+              <el-option
+                v-for="item in outContractNo"
+                :key="item.constKey"
+                :label="item.contractNo"
+                :value="item.contractNo"
+              />
+            </el-select>
+                </el-form-item>
+            <!-- 货名 -->
+              <el-form-item label="货名">
+                  {{}}
+            </el-select>
+                </el-form-item>
+          <!--重量(吨)-->
+            <el-form-item label="重量(吨)">
+               {{}}
+            </el-form-item>
+          <!-- 品级 -->
+            <el-form-item label="品级">
+             {{}}
+            </el-form-item>
+          <!--容重(克/升)>=-->
+            <el-form-item label="容重(克/升)>=">
+              {{}}
+            </el-form-item>  
+        <!--水分(%)<=--> 
+            <el-form-item label="水分(%)<=">
+           {{}} 
+            </el-form-item>  
+          <!--单价(元/吨)-->  
+            <el-form-item label="单价(元/吨)">
+           {{}}
+            </el-form-item>
+          <!--预计出库日期-->
+          <el-form-item
+            label="预计出库日期"
+            span="1"
+            prop="deliveryDate"
+            class="deliverydate"
+          >
+            <el-date-picker
+              v-model="dataList.deliveryDate"
+              type="date"
+              placeholder="请选择预计出库日期"
+              value-format="yyyy-MM-dd"
+            />
+          </el-form-item>   
+          <!--经办人-->
+         <el-form-item label="出库经办人">
+              <el-select
+              v-model="dataList.agent"
+              placeholder="请选择经办人"
+              filterable
+              :filter-method="dataFilter"
+              @change="selectstaff"
+            >
+              <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.staffName"
+                :value="item.staffName"
+              />
+            </el-select>
+          </el-form-item>
+        <!--业务描述=-->
+          <el-form-item label="业务描述" >
+            <el-input
+              @input="businessDescriptionchange"
+              v-model="dataList.businessDescription"
+              placeholder="请输入业务描述,不超过150字"
+              maxlength="150"
+              size="small"
+            />
+          </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(deptBudgetList)"
+        >提交</el-button
+      >
+    </div>
+  </div>
+</template>
+<script>
+import {
+  pullDown,
+  addstorageputList,
+  xialaNo,
+  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: '',
+      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: [],
+      deliveryType: [],
+      outContractNo: [],
+      // 提交类型
+      submitType: true,
+      storageType: [],
+      status:[],
+      weightchange:[],
+      unitPricechange:[],
+      selectwarehouseName:[],
+      warehouseNameList:[],
+      businessDescriptionchange:[],
+      bulkDensitychange:[],
+      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: [],
+      warehouseList:{
+          records:[]
+
+      },
+      dataList: {
+        id: '',
+        grossWeight: '',
+        contractNo: '',
+        tare: '',
+        netWeight: '',
+        grade: '',
+        agent: '',
+        carNo: '',
+        inOutDate: '',
+        inOutType: '',
+        goodsName: '',
+        warehouseInOutDetail: {},
+      },
+      historyList: [],
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+    }
+  },
+  activated() {
+    this.deptBudgetList1.warehouseName = this.$route.query.warehouseName
+    this.deptBudgetList1.binNumber = this.$route.query.binNumber
+    this.getList()
+    this.dataList.id = this.$route.query.id
+    this.dataList.grossWeight = this.$route.query.grossWeight
+    this.dataList.contractNo = this.$route.query.contractNo
+    this.dataList.baseId = this.$route.query.baseId
+    this.dataList.positionId = this.$route.query.positionId
+    this.dataList.warehouseName = this.$route.query.warehouseName
+    this.dataList.binNumber = this.$route.query.binNumber
+    this.dataList.tare = this.$route.query.tare
+    this.dataList.netWeight = this.$route.query.netWeight
+    this.dataList.grade = this.$route.query.grade
+    this.dataList.agent = this.$route.query.agent
+    this.dataList.carNo = this.$route.query.carNo
+    this.dataList.inOutDate = this.$route.query.inOutDate
+    this.dataList.contractNo = this.$route.query.contractNo
+    this.dataList.inOutType = this.$route.query.inOutType
+    this.dataList.compId = this.$route.query.compId
+    this.dataList.goodsName = this.$route.query.goodsName
+    this.dataList.goodsNameKey = Number(this.$route.query.goodsNameKey)
+    this.dataList.inOutFlag = this.$route.inOutFlag
+    this.dataList.inOutTypeKey = Number(this.$route.query.inOutTypeKey)
+    this.dataList.statusFlag = this.$route.statusFlag
+    this.dataList.warehouseInOutDetail = this.$route.query.warehouseInOutDetail
+    this.deptBudgetList.warehouseType = this.$route.query.warehouseType
+  },
+  methods: {
+    //返回按钮
+    revert() {
+      this.$router.go(-1)
+    },
+    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.deptBudgetList.personChargeKey = this.staffList[i].staffId
+        }
+      }
+    },
+    //提交按钮
+    submit() {
+      if (!this.dataList.warehouseName) {
+        this.$message({
+          message: '仓库名不能为空',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.dataList.weight) {
+        this.$message({
+          message: '重量不能为空',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.dataList.weight <= 0 ||
+        this.dataList.weight > 10000 ||
+        (String(this.dataList.weight).indexOf('.') != -1 &&
+          String(this.dataList.weight).length -
+            (String(this.dataList.weight).indexOf('.') + 1) >
+            3)
+      ) {
+        this.$message({
+          message: '重量输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.dataList.agent) {
+        this.$message({
+          message: '经办人不能为空',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.dataList.agent.length < 2 || this.dataList.agent.length > 10) {
+        this.$message({
+          message: '经办人输入有误',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.dataList.grade) {
+        this.$message({
+          message: '品级不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.dataList.inOutDate) {
+        this.$message({
+          message: '预计出库日期不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.dataList.inOutType) {
+        this.$message({
+          message: '出库类型不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.dataList.contractNo) {
+        this.$message({
+          message: '合同编号不能为空',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.dataList.contractNo.length < 6 ||
+        this.dataList.contractNo.length > 20
+      ) {
+        this.$message({
+          message: '合同编号长度不符合要求,请输入6-20个字符之内',
+          type: 'warning',
+        })
+        return
+      }
+
+      if (this.dataList.netWeight > this.$route.query.capacity) {
+        this.$message({
+          message: '入库量大于该仓库容量!',
+          type: 'warning',
+        })
+        return
+      }
+      this.$confirm(`确定提交任务信息`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning',
+      })
+        .then(() => {
+          this.$refs.dataList.validate((valid) => {
+            if (valid) {
+              this.dataList.compId = sessionStorage.getItem('el-pf_compId')
+              this.dataList.inOutFlag = 2
+              this.dataList.statusFlag = 3
+              addstorageputList(this.dataList)
+                .toPromise()
+                .then((response) => {
+                  this.$message.success('添加成功')
+                  this.$router.push({ path: 'warehouseManagementList' })
+                })
+            } else {
+              EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              return false
+            }
+          })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    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
+        }
+      }
+    },
+    selectpackingMethod(e) {
+      for (var i = 0; i < this.packtypeList.length; i++) {
+        if (this.packtypeList[i].constValue == e) {
+          this.dataList.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
+        }
+      }
+    },
+    handleClose() {
+      this.accessoryTFs = false
+    },
+    handleSizeChange(val) {
+      console.log(`每页 ${val} 条`)
+      this.pageSize = val
+      this.getList()
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val
+      console.log(`当前页: ${val}`)
+      this.getList()
+    },
+    getList() {
+      // 货名
+      pullDown({ constId: 'CON2' })
+        .toPromise()
+        .then((response) => {
+          this.goodnameList = response
+        })
+      // 品级
+      pullDown({ constId: 'CON3' })
+        .toPromise()
+        .then((response) => {
+          this.gradeList = response
+        })
+      // 类型
+      if (this.$route.query.warehouseType == '1') {
+        pullDown({ constId: 'CON5' })
+          .toPromise()
+          .then((response) => {
+            this.storageType = response
+          })
+      } else if (this.$route.query.warehouseType == '2') {
+        //临时仓库入库类型
+        pullDown({ constId: 'WARE1' })
+          .toPromise()
+          .then((response) => {
+            this.storageType = respons
+          })
+        //临时仓库出库类型
+        pullDown({ constId: 'WARE2' })
+          .toPromise()
+          .then((response) => {
+            this.deliveryType = response
+          })
+      }
+      //合同编号
+      xialaNo({ compId: sessionStorage.getItem('ws-pf_compId') })
+        .toPromise()
+        .then((response) => {
+          this.outContractNo = response
+        })
+      //经办人
+      getstaff({ compId: sessionStorage.getItem('ws-pf_compId') })
+        .toPromise()
+        .then((response) => {
+          this.options = response
+          this.staffList = response
+          //  this.agent = response
+        })
+    },
+    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) {
+      console.log(row)
+      billoperatehis({ id: row.id })
+        .toPromise()
+        .then((response) => {
+          this.historyList = response
+        })
+    },
+
+    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',
+      })
+    },
+
+    // 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:150px;
+}
+.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%;
+}
+</style>

+ 61 - 3
src/views/tranManagement/component/routers/route.js

@@ -12,6 +12,7 @@ const tranManagementRouter = {
     icon: 'cg'
   },
   children: [
+
     //火运调度
     {
       path: 'tranManagementTransporTationFire',
@@ -41,8 +42,8 @@ const tranManagementRouter = {
       },
       hidden: true
     },
-     //火运调度详情
-     {
+    //火运调度详情
+    {
       path: 'tranManagementTransporTrainDetails',
       component: () =>
         import(/* webpackChunkName: "applDetail" */ '@/views/tranManagement/tranManagementTransporTrainDetails'),
@@ -146,7 +147,7 @@ const tranManagementRouter = {
         permissicon: [],
         keepAlive: true
       },
-     
+
     },
     //编辑司机
     {
@@ -266,7 +267,64 @@ const tranManagementRouter = {
       hidden: true
     },
 
+    //反馈查看
+    {
+      path: 'tranManagementTransporFeedbackLook',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/tranManagement/tranManagementTransporFeedbackLook'),
+      name: 'tranManagementTransporFeedbackLook',
+      meta: {
+        title: 'tranManagementTransporFeedbackLook',
+        shortcutEntrance: 'tranManagement',
+        module: 'tranManagement.tranManagementTransporFeedbackLook',
+      },
+      hidden: true
+    },
 
+    //收货反馈
+    {
+      path: 'tranManagementReceivingFeedback',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/tranManagement/tranManagementReceivingFeedback'),
+      name: 'tranManagementReceivingFeedback',
+      meta: {
+        title: 'tranManagementReceivingFeedback',
+        shortcutEntrance: 'tranManagement',
+        module: 'tranManagement.tranManagementDriver.tranManagementReceivingFeedback',
+        permissicon: [],
+
+      },
+    },
+    //反馈
+    {
+      path: 'tranManagementReceivingloading',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/tranManagement/tranManagementReceivingloading'),
+      name: 'tranManagementReceivingloading',
+      meta: {
+        title: 'tranManagementReceivingloading',
+        shortcutEntrance: 'tranManagement',
+        module: 'tranManagement.tranManagementReceivingloading',
+        permissicon: [],
+        keepAlive: true
+      },
+      hidden: true
+    },
+    //反馈查看
+    {
+      path: 'tranManagementReceivingloadingLook',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/tranManagement/tranManagementReceivingloadingLook'),
+      name: 'tranManagementReceivingloadingLook',
+      meta: {
+        title: 'tranManagementReceivingloadingLook',
+        shortcutEntrance: 'tranManagement',
+        module: 'tranManagement.tranManagementReceivingloadingLook',
+        permissicon: [],
+        keepAlive: true
+      },
+      hidden: true
+    },
   ],
 };
 export default tranManagementRouter;

+ 547 - 0
src/views/tranManagement/tranManagementReceivingFeedback.vue

@@ -0,0 +1,547 @@
+//收获反馈
+<template>
+  <div>
+    <BaseHeaderLayout :leftSpan="14">
+      <template slot="left">
+        <ws-button
+        class="but"
+          type="primary"
+          @click="handleAdd()"
+          >
+          执行中</ws-button
+        >
+        <ws-button
+        class="but"
+          @click="appp()"
+          
+          >已完成</ws-button
+        >
+        <ws-button
+        class="but"
+          @click="handleEdit()"
+          
+          >全部任务</ws-button
+        > 
+      </template>
+      <!-- 接单开始 -->
+      <template slot="left">
+            <el-date-picker
+          v-model="value2"
+          type="daterange"
+          align="right"
+          unlink-panels
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          :picker-options="pickerOptions"
+        >
+        </el-date-picker>
+        <ws-input
+          v-model="searchKeyWord"
+          placeholder="可按照合同编号、买方名称、卖方名称进行查找"
+          clearable
+          maxlength="500"
+          type="input"
+          class="findValue"
+        ></ws-input>
+        <ws-button
+          class="find"
+          type="primary"
+          @click="find()"
+          ><img
+            width="16"
+            height="16"
+            style="
+              vertical-align: text-top;
+              position: relative;
+              top: 0px;
+              left: -8px;
+            "
+            src="../../../public/img/sousuo.png"
+            alt=""
+        /></ws-button>
+      </template>
+    </BaseHeaderLayout>
+    <div>
+      <el-table
+        class="wenzi"
+        :data="warehouseList.records"
+        style="width: 100%; margin-top: 20px"
+        height="780"
+      >
+        <el-table-column type="index" label="序号" width="80">
+          <template scope="scope">
+            <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+            <span v-else>{{ scope.$index + 1 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column class="table_td" prop="processNo" label="运输任务编号">
+        </el-table-column>
+        <el-table-column prop="tranType" label="运输方式" width="80">
+        </el-table-column>
+        <el-table-column class="table_td" prop="goodsName" label="货名">
+
+        </el-table-column>
+        <el-table-column class="table_td" label="重量(吨)" prop="weight">
+         
+        </el-table-column>
+        <el-table-column class="table_td" label="发货" prop="send">
+          
+        </el-table-column>
+        <el-table-column class="table_td" label="收货" prop="receive">
+          
+        </el-table-column>
+        <el-table-column class="table_td" label="运输周期" prop="tranCycle">
+         <template scope="scope">
+               {{scope.row.deliveryDateStart}} ~ {{scope.row.deliveryDateEnd}}
+             </template>
+        </el-table-column>
+      <el-table-column prop="status" label="状态">
+        <template slot-scope="scope">
+          <el-popover
+          placement="left"
+          :width="285"
+          trigger="click"
+          visible-arrow="false"
+          @show="history(scope.row)"
+          >
+          <template>
+                <span slot="reference">
+                  <span
+                    v-if="scope.row.feedbackStatus == '待执行'"
+                    class="executory"
+                  ></span>
+                  <span
+                    v-if="scope.row.feedbackStatus == '执行中'"
+                    class="inExecution"
+                  ></span>
+                  <span
+                    v-if="scope.row.feedbackStatus == '已完成'"
+                    class="done"
+                  ></span
+                  >{{ scope.row.feedbackStatus }}
+                </span>
+              </template>
+          <div>
+              <p style="margin-top: 0; padding-left: 10px"></p>
+              <div v-for="(item, index) in historyList" class="flex">
+                <div class="vertical-text vertical-text-left">
+                  {{ item.updateDate }}
+                </div>
+                <div>
+                  <div class="vertical-circle"></div>
+                  <div
+                    v-if="index != historyList.length - 1"
+                    class="vertical-line"
+                  ></div>
+                </div>
+                <div class="vertical-text">
+                  {{ item.operateUser }}<br />{{ item.dealMsg }}
+                </div>
+              </div>
+            </div>
+          </el-popover>
+          <img
+            width="17"
+            height="18"
+            style="vertical-align: text-top; position: relative; top: -1px"
+            src="../../../public/img/edit.png"
+            @click="editClick(scope.row)"
+            alt=""
+          />
+        </template>
+      </el-table-column>
+      <el-table-column class="table_td" label="接单日期" prop="receivingDate">
+        </el-table-column>
+        <el-table-column prop="seller" label="操作" width="300">
+          <template slot-scope="scope">
+            <div
+              class="completed"
+              @click="trainSee(scope.row)"
+            >
+            查看
+            </div>
+            <div
+              class="putstorage"
+              @click="feedback(scope.row)"
+              v-show="scope.row.tranType == '汽运'"
+            >
+            反馈
+            </div>
+            </template>
+        </el-table-column>
+        <!-- <el-table-column prop="address" label="操作" width="200">
+          <template slot-scope="scope">
+            <div class="record" @click="record(scope.row)">记录</div>
+            <div class="adjustment" @click="loss(scope.row)">盘损</div>
+          </template>
+        </el-table-column> -->
+      </el-table>
+    </div>
+  </div>
+</template>
+<script>
+import {
+ shippingList,
+} from '@/model/transport/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: '',
+      currentPage: 1,
+      pageSize: 10,
+      searchType: 1,
+      searchTypeText: '未完成',
+      searchKeyWord: '',
+      contractType: 2,
+      
+      // 提交类型
+      submitType: true,
+      size: 10,
+      spanArr: [],
+      warehouseName: '',
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      warehouseList: [],
+      deptBudgetList: {},
+      historyList: [],
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+    }
+  },
+  mounted(){
+    console.log(11111)
+    this.getList()
+  },
+  methods: {
+      //接口
+    getList() {
+        console.log(765)
+      shippingList({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        currentPage: this.currentPage,
+        pageSize: this.pageSize,
+        contractType:this.contractType,
+      })
+        .toPromise()
+        .then((response) => {
+          this.warehouseList = response
+        })
+    },
+    handleAdd(){
+        this.$router.push({
+            path: 'tranManagementReceivingloading',
+        })
+    },
+    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
+        }
+        }
+      })
+    },
+    //查看
+    trainSee(row) {
+      if (row.tranType == '汽运') {
+        this.$router.push({
+          path: 'tranManagementReceivingloadingLook',
+          query: {
+            id: row.id,
+          },
+        })
+      }
+        
+    },
+
+    //反馈
+    feedback(row) {
+      this.$router.push({
+        path: 'tranManagementReceivingloading',
+        query: {
+          id: row.id,
+        },
+      })
+    },
+    dateFormat(fmt, date) {
+      let ret
+      const opt = {
+        'Y+': date.getFullYear().toString(), // 年
+        'm+': (date.getMonth() + 1).toString(), // 月
+        'd+': date.getDate().toString(), // 日
+        'H+': date.getHours().toString(), // 时
+        // "M+": date.getMinutes().toString(),         // 分
+        // "S+": date.getSeconds().toString()          // 秒
+        // 有其他格式化字符需求可以继续添加,必须转化成字符串
+      }
+      for (let k in opt) {
+        ret = new RegExp('(' + k + ')').exec(fmt)
+        if (ret) {
+          fmt = fmt.replace(
+            ret[1],
+            ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
+          )
+        }
+      }
+      return fmt
+    },
+    handleClose() {
+      this.accessoryTFs = false
+    },
+    handleSizeChange(val) {
+      console.log(`每页 ${val} 条`)
+      this.pageSize = val
+      this.getList()
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val
+      console.log(`当前页: ${val}`)
+      this.getList()
+    },
+    editClick(row) {
+      var status = ''
+      if (row.status == '待执行' || row.status == '已完成') {
+        status = '执行中'
+      } else if (row.status == '执行中') {
+        status = '已完成'
+      }
+      //cancelButtonClass: "btn-custom-cancel"
+      this.$confirm(`是否将状态改为${status}`, {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+        .then(() => {
+          editstatus({ id: row.id })
+            .toPromise()
+            .then((response) => {
+              this.$notify.success({
+                title: '成功',
+                message: '状态修改成功',
+              })
+              this.getList()
+            })
+            .catch((response) => {
+              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    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',
+      })
+    },
+  },
+}
+</script>
+<style lang="scss" scoped>
+.connert {
+  width: 90%;
+  margin: 0 auto;
+}
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-button--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;
+}
+.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;
+}
+.but{
+    margin-top: 150px;
+}
+.el-input--small .el-input__inner{
+    margin-left: 20px;
+}
+.el-range-editor--small.el-input__inner {
+    height: 32px;
+    margin-left: -20%;
+}
+</style>

+ 663 - 0
src/views/tranManagement/tranManagementReceivingloading.vue

@@ -0,0 +1,663 @@
+// 汽运卸车反馈
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="20">
+        <h2 class="bg-left title">汽运卸车反馈</h2>
+      </el-col>
+      <el-col :span="4" 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 class="center">
+    <ws-form ref="deptBudgetList" :model="deptBudgetList" :rules="rules">
+      <div class="basicInformation">
+        <h2> 任务编号 </h2>
+        <ws-info-table>
+          <!-- 任务编号 -->
+          <ws-form-item label="任务编号" span="1" prop="processNo">
+          {{deptBudgetList.processNo}}
+        </ws-form-item>
+        <!-- 货名 -->
+          <ws-form-item label="货名" span="1" prop="goodsName">
+            {{deptBudgetList.goodsName}}
+        </ws-form-item>
+          <!--重量(吨)-->
+          <ws-form-item label="重量(吨)" span="1" prop="weight">
+          {{deptBudgetList.weight}}
+        </ws-form-item>
+          <!--发货地址-->
+          <ws-form-item label="发货地址" span="1" prop="sendDetailedAddress">
+            
+            {{deptBudgetList.sendPrivate}}{{deptBudgetList.sendCity}}{{deptBudgetList.sendArea}}
+          </ws-form-item>
+         <!--发货人-->
+          <ws-form-item label="发货人" span="1" prop="sender">
+          
+          {{deptBudgetList.sender}}
+          </ws-form-item>
+
+          <!--发货人电话-->
+          <ws-form-item label="发货人电话" span="1" prop="senderPhone">
+            
+            {{deptBudgetList.senderPhone}}
+          </ws-form-item>
+          <!--收货地址-->
+        <ws-form-item label="收货地址" span="1" prop="receiveDetailedAddress">
+            
+             {{deptBudgetList.receivePrivate}}{{deptBudgetList.receiveCity}}{{deptBudgetList.receiveArea}}
+        </ws-form-item>
+         <!--收货人-->
+          <ws-form-item label="收货人" span="1" prop="receiver">
+            {{deptBudgetList.receiver}}
+          </ws-form-item>
+
+          <!--收货人电话-->
+          <ws-form-item label="收货人电话" span="1" prop="receiverPhone">
+           
+             {{deptBudgetList.receiverPhone}}
+          </ws-form-item>
+          <!--发货日期-->
+          <ws-form-item label="发货日期" span="1" prop="deliveryDateStart">
+          
+          {{deptBudgetList.deliveryDateStart}}
+        </ws-form-item>
+           <!--最晚发货日期-->
+          <ws-form-item label="最晚到货日期" span="1" prop="deliveryDateEnd">
+          
+          {{deptBudgetList.deliveryDateEnd}}
+        </ws-form-item>
+          <!--合同编号-->
+          <ws-form-item label="合同编号" span="1" prop="contractNo">
+            
+            {{deptBudgetList.contractNo}}
+          </ws-form-item>
+          <!-- 运输方式 -->
+          <ws-form-item label="运输方式" span="1" prop="tranType">
+              {{deptBudgetList.tranType}}
+          </ws-form-item>
+        </ws-info-table>
+      
+        <div class="small-title"><h2>卸车详情</h2></div>
+        <div class="liaison">
+        <div
+          style="width: 100%"
+          class="flex position"
+          v-for="(item, index) in this.freightspace"
+          :key="index"
+        >
+          <ws-info-table>
+            <!--司机-->
+            <ws-form-item :label="'司机' + (index + 1)" span="1" prop="driver">
+               <el-input
+                v-show="item.temporaryDriverFlag != 0"
+                v-model="item.driver"
+                placeholder="请选择司机"
+                filterable
+                :filter-method="dataFilter"
+                @change="selectstaff"
+              >
+                <el-option
+                  v-for="item in options"
+                  :key="item.value"
+                  :label="item.staffName"
+                  :value="item.staffName"
+                />
+               </el-input> 
+               <span v-show="item.temporaryDriverFlag == 0">{{item.driver}} </span> 
+                   
+            </ws-form-item>
+            <!--电话-->
+            <ws-form-item label="司机电话" span="1" prop="driverPhone">
+               <ws-input
+               v-show="item.temporaryDriverFlag != 0"
+                v-model="item.driverPhone"
+                placeholder="请输入司机电话"
+                maxlength="20"
+                size="small"
+              /> 
+             <span v-show="item.temporaryDriverFlag == 0">{{item.driverPhone}} </span> 
+            </ws-form-item>
+            <!--车牌号-->
+            <ws-form-item label="车牌号" span="1" prop="carNo">
+               <ws-input
+               v-show="item.temporaryDriverFlag != 0"
+                v-model="item.carNo"
+                placeholder="请输入车牌号"
+                maxlength="20"
+                size="small"
+              /> 
+             <span v-show="item.temporaryDriverFlag == 0">{{item.carNo}} </span> 
+            </ws-form-item>
+            <!--装车净重-->
+            <ws-form-item label="装车(吨)" span="1" prop="loadNetWeight">
+              <ws-input
+                v-model="item.loadNetWeight"
+                placeholder="请输入装车净重"
+                maxlength="20"
+                size="small"
+              />
+            </ws-form-item>
+            <!--卸车净重(吨)-->
+            <ws-form-item label="卸车净重(吨)" span="1" prop="unloadNetWeight">
+              <ws-input
+                v-model="item.unloadNetWeight"
+                placeholder=""
+                maxlength="20"
+                size="small"
+              />
+            </ws-form-item>
+            <!--磅单-->
+            <ws-form-item label="磅单" span="1" prop="loadPoundImg">
+              <template slot-scope="scope">
+              
+                <img
+                  width="18"
+                  height="20"
+                  style="
+                    vertical-align: text-top;
+                    position: relative;
+                    top: -1px;
+                  "
+                  src="../../../public/img/fujian.png"
+                  @click="fujian(scope.row)"
+                  alt=""
+                />
+                <span v-show="item.temporaryDriverFlag == 0" >{{item.signStatus}}</span>
+              </template>
+            </ws-form-item>
+          </ws-info-table>
+        </div>
+      </div>
+      </div>
+    </ws-form>
+    <div style="text-align: right; padding: 10px">
+        <el-button
+          class="bg-bottom-up"
+          type="primary"
+          size="small"
+          @click="submit(deptBudgetList)"
+          >提交</el-button
+        >
+      </div>
+      <WinseaContentModal
+      v-model="accessoryTFs"
+      :title="$t('system.noticeCircular.information')"
+      @on-cancel="handleClose"
+    >
+      <p>上传附件</p>
+      <ws-upload
+        ref="upload"
+        table-name="maintain_work_order"
+        oss-key="mainPlan"
+        :comp-id="compId"
+        :file-list="fileList"
+        :appendix-ids="appendixIdsAdd"
+        :vesselId="deptBudgetList.loadPoundImg"
+        :size-limit="size"
+        @uploadSuccess="uploadSuccess"
+        accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar"
+      />
+    </WinseaContentModal>
+    </div>
+  </div>
+  
+</template>
+<script>
+import { regionData, CodeToText, TextToCode } from 'element-china-area-data'
+import {seeCat, packList, feedback} from '@/model/transport/index'
+import{getstaff}from '@/model/warehouse/index'
+import Pagination from '@/components/Pagination'
+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
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      item:[],
+      shipType:[],
+      tranType: 3,
+      deptBudgetTotal: 0,
+      currentPage: 1,
+      pageSize: 10,
+      searchType: 1,
+      searchKeyWord: '',
+      contractType: 2,
+      startDate: null,
+      endDate: null,
+      goodnameList: {},
+      // 提交类型
+      submitType: true,
+      storageType: [],
+      readonly: true,
+      appendixIdsAdd: '',
+      uploadSuccess: {},
+      onChange: {},
+      selectedOptions: [],
+        options:[],
+      tranCarInfoList: {},
+        staffList :[],
+      gradeList: [],
+      rules: {
+        netWeight: [
+          {
+            required: true,
+            type: 'number',
+            message: '请输入活动名称',
+            trigger: 'blur',
+          },
+        ],
+      },
+      fileList:[],
+     freightspace: [
+        {
+          driver: '',
+          driverPhone: '',
+          carNo: '',
+          loadNetWeight: '',
+        },
+      ],
+      size: 10,
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      packtypeList: {},
+      date: {
+        year: dayjs().format('YYYY'),
+        month: dayjs().format('MM'),
+      },
+      contractList: [],
+      deptBudgetList: {
+        warehouseInOutDetail: {},
+      },
+      historyList: [],
+
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+    }
+  },
+  mounted() {
+    this.deptBudgetList.id = this.$route.query.id
+    this.getList()
+  },
+//  activated(){
+//    this.loaddata()
+//    this.getList()
+//  },
+ computed: {
+    totalStorage: function () {
+      var maxStorage = 0
+      for (var i = 0; i < this.freightspace.length; i++) {
+        maxStorage += Number(this.freightspace[i].maxStorage)
+      }
+      return maxStorage
+    },
+  },
+  methods: {
+   getList() {
+      seeCat({ id: this.deptBudgetList.id })
+        .toPromise()
+        .then((response) => {
+          this.deptBudgetList = response
+          //  this.deptBudgetList.tranCarInfoList = response.tranCarInfoList
+          this.freightspace = response.tranCarInfoList
+          for (var i = 0; i < this.freightspace.length; i++) {
+            if (!this.freightspace[i].loadNetWeight) {
+              this.freightspace[i].loadNetWeight = 0
+            }
+          }
+        })
+    },
+    dataFilter(val) {
+      this.deptBudgetList.personCharge = val
+      if (val) {
+        console.log(val)
+        this.options = this.staffList.filter((item) => {
+          if (
+            !!~item.staffName.indexOf(val) ||
+            !!~item.staffName.toUpperCase().indexOf(val.toUpperCase())
+          ) {
+            return true
+          }
+        })
+      } else {
+        this.options = this.staffList
+      }
+    },
+    selectstaff(e) {
+      for (var i = 0; i < this.staffList.length; i++) {
+        if (this.staffList[i].staffName == e) {
+          this.deptBudgetList.driverPhone = this.staffList[i].staffMobilePhone
+          this.deptBudgetList.personChargeKey = this.staffList[i].staffId
+        }
+      }
+    },
+    // loaddata() {
+    //   dispatchCat({ id: this.deptBudgetList.id  })
+    //     .toPromise()
+    //     .then((response) => {
+    //       this.deptBudgetList = response
+    //         this.freightspace = response.tranCarInfoList
+    //         for (var i = 0; i < this.freightspace.length; i++) {
+    //         if (!this.freightspace[i].loadNetWeight) {
+    //           this.freightspace[i].loadNetWeight = 0
+    //         }
+    //       }
+        //   for(var i = 0; i<this.deptBudgetList.tranCarInfoList.length;i++){
+        //    var num  = this.deptBudgetList.tranCarInfoList[i].positionWeight.split("," )  
+        //    for(var j = 0;j<num.length;j++){
+        //     var num2 = num[j].split("/")
+        //      this.freightspace.push({
+        //        'impurity': num2[i],
+        //        'positionWeight':num2[num2.length-1]
+        //      })
+        //    }
+
+        //   }
+  //   })
+  // },
+  //上传
+    fujian(row) {
+      if (
+        row.receiveAttachmentPath === null ||
+        row.receiveAttachmentPath === ''
+      ) {
+        EventBus.$emit(
+          'warning',
+          this.$t('system.noticeCircular.NoInformation')
+        )
+      } else {
+        this.accessoryTFs = true
+      }
+      this.appendixIdss = row.receiveAttachmentPath
+    },
+    //返回按钮
+    revert() {
+      this.freightspace=[]
+      this.$router.push({ path: 'tranManagementReceivingFeedback' })
+    },
+    
+    selectdriver() {},
+    handleChange(value) {
+      this.selectedOptions = value
+    },
+    returnsales() {
+      this.deptBudgetList = {}
+      this.freightspace = {}
+      this.selectedOptions = ''
+      this.$router.push({ path: 'tranManagementReceivingFeedback' })
+    },
+    //提交按钮
+    submit() { 
+      this.$confirm(`所有车辆完成卸车任务后,请及时修改任务状态,确定提交卸车信息?`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning',
+      })
+        .then(() => {
+          this.$refs.deptBudgetList.validate((valid) => {
+            if (valid) {
+              
+            //  for(var i = 0; i < this.freightspace.length; i++){
+            //    var num  = this.freightspace[i].impurity + "/" + this.freightspace[i].positionWeight
+            //    this.arr.push(
+            //      num
+            //    )  
+            //  }
+          
+            this.tranCarInfoList=this.freightspace
+            this.tranCarInfoList.driver = this.deptBudgetList.driver
+              this.tranCarInfoList.driverPhone = this.deptBudgetList.driverPhone
+              this.tranCarInfoList. carNo = this.deptBudgetList.carNo
+              this.tranCarInfoList.loadNetWeight = this.deptBudgetList.loadNetWeigh
+              this.tranCarInfoList.unloadNetWeight = this.deptBudgetList.unloadNetWeight
+              this.tranCarInfoList.loadPoundImg = this.deptBudgetList.loadPoundImg
+              this.tranCarInfoList.tranType = this.deptBudgetList.tranType
+            for(var i = 0 ; i<this.tranCarInfoList.length;i++){
+                this.tranCarInfoList[i].id = this.freightspace[i].id
+                if(this.tranCarInfoList[i].temporaryDriverFlag !=0){
+                   this.tranCarInfoList[i].temporaryDriverFlag = 1
+                   this.tranCarInfoList[i].tranType = this.tranType
+                 }
+            }
+              var tranProcessInfo = {}
+              var tranList = this.tranCarInfoList
+              tranProcessInfo.id = this.deptBudgetList.id
+              tranProcessInfo.infoId = this.deptBudgetList.infoId
+              tranProcessInfo.tranCarInfoList = this.tranCarInfoList
+              feedback(tranProcessInfo)
+                .toPromise()
+                .then((response) => {
+                  this.$message.success('添加成功')
+                  this.deptBudgetList = {}
+                  this.freightspace = {}
+                  this.selectedOptions = ''
+                  this.$router.push({
+                    path: 'tranManagementReceivingFeedback',
+                  })
+                })
+            } else {
+              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              return false
+            }
+          })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    resetForm(deptBudgetList) {
+      this.$refs[deptBudgetList].resetFields()
+    },
+    handleClose() {
+      this.accessoryTFs = false
+    },
+    handleSizeChange(val) {
+      console.log(`每页 ${val} 条`)
+      this.pageSize = val
+      this.getList()
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val
+      console.log(`当前页: ${val}`)
+      this.getList()
+    },
+    selecttaskType(e) {
+      for (var i = 0; i < this.taskTypeList.length; i++) {
+        if (this.taskTypeList[i].value == e) {
+          this.searchType = this.taskTypeList[i].type
+        }
+      }
+    },
+    approve() {},
+    listQuery() {},
+  },
+}
+</script>
+<style lang="scss" scoped>
+/deep/.basicInformation {
+  .ws-info-table {
+    border: none;
+  }
+  .el-form-item {
+    width: 33.3333%;
+    border: none;
+    .el-form-item__label {
+      background: transparent;
+      border: none;
+    }
+    .el-form-item__content {
+      border: none;
+    }
+  }
+}
+.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 10%;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
+.bg-right {
+  text-align: right;
+  padding: 16px 20px;
+}
+.center{
+  width: 80%;
+  margin: 0 auto;
+}
+
+//表格文字
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  text-align: left;
+  font-size: 14px;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+}
+//蓝标
+.small-title {
+  position: relative;
+  padding: 10px;
+  font-weight: 600;
+}
+.small-title::before {
+  position: absolute;
+  content: '';
+  display: block;
+  background: #5473e8;
+  width: 4px;
+  height: 14px;
+  left: 0px;
+  top: 13px;
+  padding: 4px 2px;
+}
+.position{
+  width: 90%;
+}
+.position .siji{
+  width: 16%;
+}
+/deep/.position .ws-info-table .el-form-item .el-form-item__label{
+  width: 40%;
+  text-align: center;
+}
+.position .zaizhong{
+  width: 16%;
+}
+//减号
+.del {
+  right: -70px;
+}
+.bot{
+  width: 30%;
+}
+.position .siji {
+  width: 20.5%;
+}
+/deep/.el-form-item {
+  border-right: 0px;
+  border-bottom: 0px;
+}
+/deep/.ws-info-table {
+  border-left: 0px;
+  border-top: 0px;
+}
+.ws-info-table .el-form-item .el-form-item__content {
+  border-right: 0px;
+  border-bottom: 0px;
+  border-left: 0px;
+  border-top: 0px;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 0px;
+  border-bottom: 0px;
+  border-left: 0px;
+  border-top: 0px;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  background: #f5f7fa;
+  border-radius: 4px;
+  border: 1px solid #d8dce6;
+  font-family: PingFangSC-Regular, PingFang SC;
+  margin-bottom: 5px;
+  background-color: #fff;
+  font-size: 14px;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  background-color: #fff;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+}
+// .flex .position{
+//   margin-top: 150px;
+//   margin-left: 20px;
+// }
+.position{
+  width: 100%;
+}
+.position .siji{
+  width: 20.6%;
+}
+</style>

+ 580 - 0
src/views/tranManagement/tranManagementReceivingloadingLook.vue

@@ -0,0 +1,580 @@
+// 查看汽车卸货详情
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="20">
+        <h2 class="bg-left title">查看汽运卸车信息</h2>
+      </el-col>
+      <el-col :span="4" 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>
+
+    <ws-form ref="deptBudgetList" :rules="rules" :model="deptBudgetList">
+      <div class="small-title">任务详情</div>
+      <ws-info-table>
+        <!--任务编号-->
+        <ws-form-item label="任务编号" span="1" prop="processNo">
+          <ws-input
+            :disabled="disabled"
+            v-model="deptBudgetList.processNo"
+            placeholder="请输入任务编号"
+            maxlength="20"
+            size="small"
+          />
+        </ws-form-item>
+        <!--货名-->
+        <ws-form-item label="货名" span="1" prop="goodsName">
+          <!-- <el-select
+            v-model="deptBudgetList.goodsName"
+            placeholder="请选择货名"
+            filterable
+            :filter-method="dataFilter"
+            @change="selectstaff"
+          >
+            <el-option
+              v-for="item in personCharge"
+              :key="item.value"
+              :label="item.staffName"
+              :value="item.staffName"
+            /> -->
+          <ws-input
+            :disabled="disabled"
+            v-model="deptBudgetList.goodsName"
+            placeholder="请输入货名"
+            maxlength="20"
+            size="small"
+          />
+          <!-- </el-select> -->
+        </ws-form-item>
+        <!--重量(吨)-->
+        <ws-form-item label="重量(吨)" span="1" prop="weight">
+          <ws-input
+            :disabled="disabled"
+            v-model="deptBudgetList.weight"
+            placeholder="请输入重量(吨)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--发货地址-->
+        <ws-form-item label="发货地址" span="1" prop="sendDetailedAddress">
+          <!-- <ws-input
+            v-model="deptBudgetList.sendDetailedAddress"
+            placeholder=""
+            maxlength="100"
+            size="small"
+          /> -->
+          {{ deptBudgetList.sendPrivate }}{{ deptBudgetList.sendCity
+          }}{{ deptBudgetList.sendArea }}
+        </ws-form-item>
+
+        <!--发货人-->
+        <ws-form-item label="发货人" span="1" prop="sender" class="readonly">
+          <ws-input
+            :disabled="disabled"
+            v-model="deptBudgetList.sender"
+            placeholder="请输入发货人"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--发货人电话-->
+        <ws-form-item
+          label="发货人电话"
+          span="1"
+          prop="senderPhone"
+          class="readonly"
+        >
+          <ws-input
+            :disabled="disabled"
+            v-model="deptBudgetList.senderPhone"
+            placeholder="请输入发货人电话"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--收货地址-->
+        <ws-form-item label="收货地址" span="1" prop="receiveDetailedAddress">
+          <!-- <ws-input
+            v-model="deptBudgetList.receiveDetailedAddress"
+            placeholder="请输入仓库名"
+            maxlength="20"
+            size="small"
+          /> -->
+          {{ deptBudgetList.receivePrivate }}{{ deptBudgetList.receiveCity
+          }}{{ deptBudgetList.receiveArea }}
+        </ws-form-item>
+        <!--收货人-->
+        <ws-form-item label="收货人" span="1" prop="receiver">
+          <ws-input
+            :disabled="disabled"
+            v-model="deptBudgetList.receiver"
+            placeholder="请输入仓库名"
+            maxlength="20"
+            size="small"
+          />
+        </ws-form-item>
+        <!--收货人电话-->
+        <ws-form-item label="收货人电话" span="1" prop="receiverPhone">
+          <ws-input
+            :disabled="disabled"
+            v-model="deptBudgetList.receiverPhone"
+            placeholder="请输入仓库名"
+            maxlength="20"
+            size="small"
+          />
+        </ws-form-item>
+        <!--发货日期-->
+        <ws-form-item label="发货日期" span="1" prop="deliveryDateStart">
+          <ws-input
+            :disabled="disabled"
+            v-model="deptBudgetList.deliveryDateStart"
+            placeholder="请输入仓库名"
+            maxlength="20"
+            size="small"
+          />
+        </ws-form-item>
+        <!--最晚到货日期-->
+        <ws-form-item label="最晚到货日期" span="1" prop="deliveryDateEnd">
+          <ws-input
+            :disabled="disabled"
+            v-model="deptBudgetList.deliveryDateEnd"
+            placeholder="请输入仓库名"
+            maxlength="20"
+            size="small"
+          />
+        </ws-form-item>
+        <!--合同编号-->
+        <ws-form-item label="合同编号" span="1" prop="contractNo">
+          <ws-input
+            :disabled="disabled"
+            v-model="deptBudgetList.contractNo"
+            placeholder="请输入合同编号"
+            maxlength="20"
+            size="small"
+          />
+        </ws-form-item>
+        <!-- 运输方式 -->
+          <ws-form-item label="运输方式" span="1" prop="tranType">
+              {{deptBudgetList.tranType}}
+          </ws-form-item>
+      </ws-info-table>
+      <div class="small-title">卸车详情</div>
+      <div
+        style="width: 100%"
+        class="driver"
+        v-for="(item, index) in deptBudgetList.tranCarInfoList"
+      >
+        <ws-info-table>
+          <span class="not" v-if="item.statusFlag == 3">{{ item.status }}</span>
+          <span class="already" v-if="item.statusFlag == 1">{{
+            item.status
+          }}</span>
+          <!--姓名-->
+          <ws-form-item label="司机" span="1" prop="driver">
+            <ws-input
+              :disabled="disabled"
+              v-model="item.driver"
+              placeholder="请输入姓名"
+              maxlength="20"
+              size="small"
+            />
+          </ws-form-item>
+          <ws-form-item class="phone" label="司机电话" span="1" prop="driverPhone">
+            <ws-input
+              :disabled="disabled"
+              v-model="item.driverPhone"
+              placeholder=""
+              maxlength="20"
+              size="small"
+            />
+          </ws-form-item>
+          <ws-form-item label="车牌号" span="1" prop="carNo">
+            <ws-input
+              :disabled="disabled"
+              v-model="item.carNo"
+              placeholder="请输入车牌号"
+              maxlength="20"
+              size="small"
+            />
+          </ws-form-item>
+          <ws-form-item label="装车(吨)" span="1" prop="loadNetWeight">
+            <ws-input
+              :disabled="disabled"
+              v-model="deptBudgetList.loadNetWeight"
+              placeholder=""
+              maxlength="20"
+              size="small"
+            />
+          </ws-form-item>
+          <ws-form-item label="卸车(吨)" span="1" prop="unloadNetWeight">
+            <ws-input
+              :disabled="disabled"
+              v-model="item.unloadNetWeight"
+              placeholder=""
+              maxlength="20"
+              size="small"
+            />
+          </ws-form-item>
+          <!--磅单-->
+            <ws-form-item label="磅单" span="1" prop="loadPoundImg">
+              <template slot-scope="scope">
+              
+                <img
+                  width="18"
+                  height="20"
+                  style="
+                    vertical-align: text-top;
+                    position: relative;
+                    top: -1px;
+                  "
+                  src="../../../public/img/fujian.png"
+                  @click="fujian(scope.row)"
+                  alt=""
+                />
+                <span v-show="item.temporaryDriverFlag == 0" >{{item.signStatus}}</span>
+              </template>
+            </ws-form-item>
+        </ws-info-table>
+      </div>
+    </ws-form>
+    <div style="text-align: right; padding: 10px">
+      <el-button
+        class="bg-bottom-up"
+        type="primary"
+        size="small"
+        @click="revert()"
+        >关闭</el-button
+      >
+    </div>
+  </div>
+</template>
+<script>
+import { pullDown, addstorageputList } from '@/model/warehouse/index'
+import Pagination from '@/components/Pagination'
+import WsUpload from '@/components/WsUpload'
+import { seeCat } from '@/model/transport/index'
+// 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
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      disabled: true,
+      deptBudgetTotal: 0,
+      currentPage: 1,
+      pageSize: 10,
+      searchType: 1,
+      searchKeyWord: '',
+      contractType: 2,
+      startDate: null,
+      endDate: null,
+      goodnameList: {},
+      // 提交类型
+      submitType: true,
+      storageType: [],
+      readonly: true,
+      appendixIdsAdd: '',
+      uploadSuccess: {},
+      onChange: {},
+      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: [],
+      deptBudgetList: {
+        warehouseInOutDetail: {},
+      },
+      historyList: [],
+
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+    }
+  },
+  activated() {
+    this.getList()
+  },
+  methods: {
+    //返回按钮
+    revert() {
+      this.$router.push({ path: 'tranManagementReceivingFeedback' })
+    },
+    del(index) {
+      if (this.freightspace.length > 1) {
+        this.freightspace.splice(index, 1)
+      }
+    },
+    getList() {
+      seeCat({ id: this.$route.query.id })
+        .toPromise()
+        .then((response) => {
+          for (var i = 0; i < response.tranCarInfoList.length; i++) {
+            if (
+              response.tranCarInfoList[i].loadNetWeight &&
+              response.tranCarInfoList[i].unloadNetWeight
+            ) {
+              response.tranCarInfoList[i].loss =
+                response.tranCarInfoList[i].loadNetWeight -
+                response.tranCarInfoList[i].unloadNetWeight
+            } else if (response.tranCarInfoList[i].loadNetWeight) {
+              response.tranCarInfoList[i].loss =
+                response.tranCarInfoList[i].loadNetWeight
+            } else {
+              response.tranCarInfoList[i].loss = 0
+            }
+          }
+          this.deptBudgetList = response
+        })
+    },
+    // 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
+    //     })
+    // },
+    // deletecontract(){},
+    //删除
+    approve() {},
+    listQuery() {},
+  },
+}
+</script>
+<style lang="scss" scoped>
+/deep/.basicInformation {
+  .ws-info-table {
+    border: none;
+  }
+  .el-form-item {
+    width: 33.3333%;
+    border: none;
+    .el-form-item__label {
+      background: transparent;
+      border: none;
+    }
+    .el-form-item__content {
+      border: none;
+    }
+  }
+}
+.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 10%;
+}
+.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;
+}
+/deep/.ws-info-table .el-form-item {
+  width: 33.33%;
+}
+/deep/.el-form-item__label {
+  width: 160px;
+}
+//选填
+/deep/.el-form-item {
+  width: 50%;
+}
+.container {
+  overflow: scroll;
+  height: 120vh;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  text-align: center;
+}
+.deliverydate {
+  display: inline-block;
+  width: 10%;
+}
+.center {
+  margin-top: -60px;
+  width: 80%;
+}
+//仓位
+
+.position {
+  border-radius: 2px;
+  font-size: 12px;
+  line-height: 20px;
+  display: inline-grid;
+  padding: 2px 4px;
+}
+//表格文字
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  text-align: left;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #000;
+  line-height: 16px;
+}
+.small-title {
+  position: relative;
+  padding: 10px;
+  font-weight: 600;
+}
+.small-title::before {
+  position: absolute;
+  content: '';
+  display: block;
+  background: #5473e8;
+  width: 4px;
+  height: 14px;
+  left: 0px;
+  top: 13px;
+  padding: 4px 2px;
+}
+// 下面列表
+.neifor {
+  width: 90%;
+  background-color: #f6f7fc;
+}
+/deep/.neifor .ws-info-table .el-form-item .el-form-item__label {
+  width: 35%;
+  text-align: center;
+}
+
+/deep/.neifor .el-input--small .el-input__inner {
+  width: 100%;
+}
+// .ws-info-table[data-v-850a44a6] .el-form-item {
+//     width: 16.66%;
+// }
+.xia {
+  width: 16%;
+}
+//去边框
+/deep/.el-form-item {
+  border-right: 0px;
+  border-bottom: 0px;
+}
+/deep/.ws-info-table {
+  border-left: 0px;
+  border-top: 0px;
+}
+.ws-info-table .el-form-item .el-form-item__content {
+  border-right: 0px;
+  border-bottom: 0px;
+  border-left: 0px;
+  border-top: 0px;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 0px;
+  border-bottom: 0px;
+  border-left: 0px;
+  border-top: 0px;
+}
+.driver {
+  position: relative;
+}
+.not,
+.already {
+  position: absolute;
+  left: -45px;
+  top: 10px;
+}
+
+/deep/.driver .ws-info-table .el-form-item {
+  width: 14%;
+}
+/deep/.driver .ws-info-table .el-form-item .el-form-item__label {
+  width: 86px;
+}
+/deep/.driver .ws-info-table .el-form-item.phone .el-form-item__label {
+  width: 50px;
+}
+</style>

+ 44 - 56
src/views/tranManagement/tranManagementShipping.vue

@@ -25,19 +25,17 @@
       </template>
       <!-- 接单开始 -->
       <template slot="left">
-            <ws-date-picker
-              v-model="deptBudgetList.startDate"
-              type="date"
-              placeholder="请选择开始日期"
-              value-format="yyyy-MM-dd"
-            />
-            <span>至</span>
-            <ws-date-picker
-              v-model="deptBudgetList.endDate"
-              type="date"
-              placeholder="请选择结束日期"
-              value-format="yyyy-MM-dd"
-            />
+        <el-date-picker
+          v-model="value2"
+          type="daterange"
+          align="right"
+          unlink-panels
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          :picker-options="pickerOptions"
+        >
+        </el-date-picker>
         <ws-input
           v-model="searchKeyWord"
           placeholder="可按照合同编号、买方名称、卖方名称进行查找"
@@ -148,28 +146,32 @@
         </el-table-column>
         <el-table-column prop="seller" label="操作" width="300">
           <template slot-scope="scope">
-            <ws-button
-              class="completed"
+            <div
+              class="record"
               @click="handleLook(scope.row)"
               
             >
-              查看({{ scope.row.number }})
-            </ws-button>
-            <ws-button
-              class="putstorage"
+              查看
+            </div>
+            <div
+              class="adjustment"
               @click="shipping(scope.row)"
             >
               船次
-            </ws-button>
+            </div>
           </template>
         </el-table-column>
-        <!-- <el-table-column prop="address" label="操作" width="200">
-          <template slot-scope="scope">
-            <div class="record" @click="record(scope.row)">记录</div>
-            <div class="adjustment" @click="loss(scope.row)">盘损</div>
-          </template>
-        </el-table-column> -->
       </el-table>
+      <!-- 页数 -->
+      <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="currentPage"
+        :page-size="deptCircularPage.pageSize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="deptBudgetTotal"
+    >
+      </el-pagination>
     </div>
   </div>
 </template>
@@ -211,6 +213,11 @@ export default {
       showType: true,
       // 年
       year: '',
+      pickerOptions:{
+        
+      },
+      value2: '',
+      deptBudgetTotal:0,
       currentPage: 1,
       tranTypeKey:3,
       pageSize: 10,
@@ -256,7 +263,11 @@ export default {
       })
       .toPromise()
       .then((response)=>{
-        this.warehouseList = response 
+        this.warehouseList = response
+        this.deptCircularPage.currentPage = response.current
+          this.deptCircularPage.pageSize = response.size
+          this.deptBudgetTotal = response.total
+        
         
       })
     },
@@ -273,23 +284,6 @@ export default {
         },
       })
     },
-    
-    // warehousing(item) {
-    //   var free = 0
-    //   for (var i = 0; i < item.warehouseNumViewList.length; i++) {
-    //     free += Number(item.warehouseNumViewList[i].storage)
-    //   }
-    //   this.$router.push({
-    //     path: 'tranManagementVehicleDispatching',
-    //     query: {
-    //       baseId: item.warehouseId,
-    //       positionId: item.binNumberId,
-    //       warehouseName: item.warehouseName,
-    //       binNumber: item.binNumber,
-    //       capacity:item.capacity - free ,
-    //     },
-    //   })
-    // },
     getSpanArr(data) {
       let that = this
 
@@ -322,17 +316,17 @@ export default {
       })
     },
     //查看//传参
-    nocomplete(row) {
-      this.$router.push({
-        path: 'tranManagementVehicleLook',
+    // nocomplete(row) {
+    //   this.$router.push({
+    //     path: 'tranManagementVehicleLook',
         // query: {
         //   baseId: row.warehouseId,
         //   positionId: row.binNumberId,
         //   warehouseName: row.warehouseName,
         //   binNumber: row.binNumber,
-        // },
-      })
-    },
+    //     // },
+    //   })
+    // },
     //记录
     record(item) {
       this.$router.push({
@@ -349,12 +343,6 @@ export default {
         },
       })
     },
-    
-    handleAdd(){
-        this.$router.push({
-            path: 'tranManagementShippingArrangemen',
-        })
-    },
     //查看
     handleLook(row) {
       this.$router.push({ 

+ 206 - 148
src/views/tranManagement/tranManagementShippingArrangemen.vue

@@ -24,7 +24,7 @@
     <div class="center">
     <ws-form ref="deptBudgetList" :model="deptBudgetList" :rules="rules">
       <div class="basicInformation">
-        <h2> 任务编号 </h2>
+         <div class="small-title">任务详情</div>
         <ws-info-table>
           <!-- 任务编号 -->
           <ws-form-item label="任务编号" span="1" prop="processNo">
@@ -87,17 +87,18 @@
           
         </ws-info-table>
       
-      <div class="small-title" ><h2>联络员及航次</h2></div>
+        <div class="small-title">联络员及航次</div>
         <div
           style="width: 100%"
-          class="flex position"
-          :model="deptBudgetList"
+          class=" position siji"
+          v-for='(item,index) in deptBudgetList.tranCarInfoList'
+          :key='index'
         >
-        <ws-info-table>
+          <ws-info-table>
           <!--姓名-->
-         <ws-form-item label="姓名" span="1" prop="driver">
+          <ws-form-item label="姓名" span="1" prop="driver" class="siji">
             <el-select
-              v-model="deptBudgetList.driver"
+              v-model="item.driver"
               placeholder="请选择姓名"
               filterable
               :filter-method="dataFilter"
@@ -112,18 +113,19 @@
             </el-select>
           </ws-form-item>
           <!--电话-->
-          <ws-form-item label="电话" span="1" prop="driverPhone">
-          <ws-input
-            v-model="deptBudgetList.driverPhone"
+          <ws-form-item label="电话" span="1" prop="driverPhone" class="siji">
+            <ws-input
+            :readonly="true"
+            v-model="item.driverPhone"
             placeholder="请输入电话"
             maxlength="20"
             size="small"
           />
-        </ws-form-item>
+          </ws-form-item>
           <!--发船日期-->
           <ws-form-item label="发船日期" span="1" prop="sendDateStart" class="siji">
             <ws-date-picker
-            v-model="deptBudgetList.sendDateStart"
+            v-model="item.sendDateStart"
             type="date"
             placeholder="请选择发货日期"
             value-format="yyyy-MM-dd"
@@ -132,7 +134,7 @@
           <!--预计到港日-->
           <ws-form-item label="预计到港日期" span="1" prop="receiveDateEnd" class="siji">
             <ws-date-picker
-            v-model="deptBudgetList.receiveDateEnd"
+            v-model="item.receiveDateEnd"
             type="date"
             placeholder="请选择发货日期"
             value-format="yyyy-MM-dd"
@@ -141,7 +143,7 @@
           <!-- 船名 -->
           <ws-form-item label="船名" span="1" prop="shipName" class="siji">
             <ws-input 
-              v-model="deptBudgetList.shipName"
+              v-model="item.shipName"
               placeholder="请输入船名"
               maxlength="100"
               size="small"
@@ -150,163 +152,85 @@
           <!-- 航次 -->
           <ws-form-item label="航次" span="1" prop="shipNo" class="siji">
             <ws-input 
-              v-model="deptBudgetList.shipNo"
+              v-model="item.shipNo"
               placeholder="请选择航次"
               maxlength="100"
               size="small"
             ></ws-input>
           </ws-form-item>
-        <!-- 类型 -->
-        <ws-form-item label="类型" span="1" prop="shipType" class="siji">
-          <ws-select
-            v-model="deptBudgetList.shipType"
+          <!-- 类型 -->
+          <ws-form-item label="类型" span="1" prop="shipType" class="siji">
+            <ws-select
+            v-model="item.shipType"
             placeholder="请输入"
             class="typeselect"
           >
-            <ws-option
-              v-for="item in shipType"
-              :key="item.constKey"
-              :label="item.constValue"
-              :value="item.constValue"
+              <ws-option
+              v-for="items in shipType"
+              :key="items.constKey"
+              :label="items.constValue"
+              :value="items.constValue"
             />
           </ws-select>
-        </ws-form-item>
-        <ws-form-item label="数量" span="1" prop="boxNumber" class="siji">
-          <ws-input
-          v-model="deptBudgetList.boxNumber"
-          placeholder="请输入数量"
-          size="small"
-          ></ws-input>
-        </ws-form-item>
-        </ws-info-table>
-      </div>
-      <div class="small-title"><h2>联络员及航次</h2></div>
-      <div
-          style="width: 100%"
-          class="flex position"
-         :model="deptBudgetList"
-         v-show="deptBudgetList.shipType == '散船'"
-        >
-        <ws-info-table>
-          <!-- 姓名 -->
-          <ws-form-item label="姓名" span="1" prop="driver">
-            <el-select
-              v-model="deptBudgetList.driver"
-              placeholder="请选择姓名"
-              filterable
-              :filter-method="dataFilter"
-              @change="selectstaff"
-            >
-              <el-option
-                v-for="item in options"
-                :key="item.value"
-                :label="item.staffName"
-                :value="item.staffName"
-              />
-            </el-select>
           </ws-form-item>
-          <!-- 电话 -->
-          <ws-form-item label="电话" span="1" prop="driverPhone" class="siji">
+          <ws-form-item label="数量" span="1" prop="boxNumber" class="siji" v-show="item.shipType=='集装箱'">
             <ws-input
-            v-model="deptBudgetList.driverPhone"
-            placeholder="联络员电话"
-            size="small"
-            ></ws-input>
-          </ws-form-item>
-          <!--发船日期-->
-          <ws-form-item label="发船日期" span="1" prop="deliveryDateStart" class="siji">
-            <ws-select
-                v-model="deptBudgetList.deliveryDateStart"
-                placeholder="请选择日期"
-            ></ws-select>
-          </ws-form-item>
-        <ws-form-item label="预计到港日期" span="1" prop="receiveDateEnd" class="siji">
-          <ws-input
-              v-model="deptBudgetList.receiveDateEnd"
-              type="date"
-              placeholder="请选择日期"
-              value-format="yyyy-MM-dd"
-              size="small"
-            />
-        </ws-form-item>
-          <!-- 船名 -->
-          <ws-form-item label="船名" span="1" prop="shipName" class="siji">
-            <ws-input 
-              v-model="deptBudgetList.shipName"
-              placeholder="请输入船名"
-              maxlength="100"
-              size="small"
-            ></ws-input>
-          </ws-form-item>
-          <!-- 航次 -->
-          <ws-form-item label="航次" span="1" prop="shipNo" class="siji">
-            <ws-input 
-              v-model="deptBudgetList.shipNo"
-              placeholder="请选择航次"
-              maxlength="100"
-              size="small"
-            ></ws-input>
-          </ws-form-item>
-        <!-- 类型 -->
-        <ws-form-item label="类型" span="1" prop="shipType" class="siji">
-          <ws-select
-          v-model="deptBudgetList.shipType"
-          placeholder=""
-          size="small"
-          ></ws-select>
-        </ws-form-item>
-        <ws-form-item label="数量" span="1" prop=" boxNumber" class="siji">
-          <ws-input
-          v-model="deptBudgetList. boxNumber"
+          v-model="item.boxNumber"
           placeholder="请输入数量"
           size="small"
           ></ws-input>
-        </ws-form-item>
-        </ws-info-table>
-        </div>
-      <div
+          </ws-form-item>
+          </ws-info-table>
+          <div class="aa">
+            <div
           style="width: 100%"
-          class="flex position"
-          v-for="(item, index) in freightspace"
-          
+          class="xia"
+          v-for="(items, index) in freightspace"
+          :key="index"
+          v-show="item.shipType=='散船'"
         >
-     <ws-info-table>
-        <ws-form-item :label="'仓位号-'+ (index + 1 )" span="1" prop="impurity" class="bot">
+        <ws-info-table>
+          <ws-form-item :label="'仓位号-'+ (index +1 )" span="1" prop="impurity" class="bot" >
             <ws-input
-          v-model="item.impurity"
+          v-model="items.impurity"
           placeholder="请输入仓位号"
           size="small"
           ></ws-input>
           </ws-form-item>
-          <!-- 重量(吨) -->
-          <ws-form-item label="重量(吨)" span="1" prop="positionWeight" class="bot">
+         
+        <ws-form-item label="重量(吨)" span="1" prop="positionWeight" class="bot" >
           <ws-input
-          v-model="item.positionWeight"
+          v-model="items.positionWeight"
           placeholder="请输入装仓重量"
           size="small"
           ></ws-input>
         </ws-form-item>
-        
-     </ws-info-table>
-      <img
+          <!-- <img
             width="22"
             height="22"
             class="del"
             @click="del(index)"
             src="../../../public/img/del.png"
             alt=""
-          />
-
+          />   -->
+            <span class="del" @click="del(index)">x</span>
+        </ws-info-table> 
+      </div> 
       </div>
-      <el-button
-          class="add"
+      <div class="aa">
+         <el-button
+          v-show="item.shipType=='散船'"
+          class="add "
           type="primary"
           size="small"
-          @click="add()"
+          @click="add"
           >添加仓位</el-button
-        >
-      <div style="text-align: right; padding: 10px">
-        
+        >    
+      </div>
+        </div>
+      </div>
+    </ws-form>
+    <div style="text-align: right; padding: 10px">
         <el-button
           class="bg-bottom-up"
           type="primary"
@@ -315,8 +239,6 @@
           >提交</el-button
         >
       </div>
-      </div>
-    </ws-form>
     </div>
   </div>
   
@@ -356,7 +278,9 @@ export default {
       showType: true,
       // 年
       year: '',
+      item:[],
       shipType:[],
+      tranType: 3,
       deptBudgetTotal: 0,
       currentPage: 1,
       pageSize: 10,
@@ -390,9 +314,9 @@ export default {
       },
       arr:[],
       freightspace: [
-        {
-          impurity:'',
-        },
+        // {
+        //   impurity:'',
+        // },
       ],
       size: 10,
       compId: sessionStorage.getItem('ws-pf_compId'),
@@ -467,6 +391,7 @@ export default {
       for (var i = 0; i < this.staffList.length; i++) {
         if (this.staffList[i].staffName == e) {
           this.deptBudgetList.driverPhone = this.staffList[i].staffMobilePhone
+          this.deptBudgetList.tranCarInfoList[0].driverPhone = this.staffList[i].staffMobilePhone
           this.deptBudgetList.personChargeKey = this.staffList[i].staffId
         }
       }
@@ -476,10 +401,22 @@ export default {
         .toPromise()
         .then((response) => {
           this.deptBudgetList = response
+          for(var i = 0; i<this.deptBudgetList.tranCarInfoList.length;i++){
+           var num  = this.deptBudgetList.tranCarInfoList[i].positionWeight.split("," )  
+           for(var j = 0;j<num.length;j++){
+            var num2 = num[j].split("/")
+             this.freightspace.push({
+               'impurity': num2[i],
+               'positionWeight':num2[num2.length-1]
+             })
+           }
+
+          }
     })
   },
     //返回按钮
     revert() {
+      this.freightspace=[]
       this.$router.push({ path: 'tranManagementShipping' })
     },
     del(index){
@@ -520,17 +457,18 @@ export default {
                )  
              }
              
-             console.log(this.arr,"字符串")
              this.deptBudgetList.totalStorage = this.totalStorage
              this.tranCarInfoList.driver = this.deptBudgetList.driver
               this.tranCarInfoList.driverPhone = this.deptBudgetList.driverPhone
-              this.tranCarInfoList.deliveryDateStart = this.deptBudgetList.deliveryDateStart
+              this.tranCarInfoList.sendDateStart = this.deptBudgetList.sendDateStart
               this.tranCarInfoList.receiveDateEnd = this.deptBudgetList.receiveDateEnd
               this.tranCarInfoList.shipName = this.deptBudgetList.shipName
               this.tranCarInfoList.shipNo = this.deptBudgetList.shipNo
+              this.tranCarInfoList.id = this.deptBudgetList.tranCarInfoList[0].id
               this.tranCarInfoList.tranType = this.deptBudgetList.tranType
               this.tranCarInfoList.boxNumber = this.deptBudgetList.boxNumber
-              this.tranCarInfoList.boxNo = this.arr.toString()
+              this.tranCarInfoList.shipType = this.deptBudgetList.shipType
+              this.tranCarInfoList.positionWeight = this.arr.toString()
               var tranCarInfo = {}
               var tranList = [this.tranCarInfoList]
               tranCarInfo.id = this.deptBudgetList.id
@@ -588,6 +526,7 @@ export default {
     border: none;
   }
   .el-form-item {
+    border: 1px solid #D8DCE6;
     width: 33.3333%;
     border: none;
     .el-form-item__label {
@@ -655,12 +594,11 @@ export default {
   left: 0px;
   top: 13px;
   padding: 4px 2px;
-}
-.position{
-  width: 90%;
-}
-.position .siji{
-  width: 23%;
+  font-size: 16px;
+  font-family: PingFangSC-Semibold, PingFang SC;
+  font-weight: 600;
+  color: #323233;
+  line-height: 22px;
 }
 /deep/.position .ws-info-table .el-form-item .el-form-item__label{
   width: 40%;
@@ -672,8 +610,128 @@ export default {
 //减号
 .del {
   right: -70px;
+  width: 20px;
+  height: 20px;
 }
 .bot{
   width: 30%;
 }
+//去边框
+/deep/.el-form-item {
+  border-right: 0px;
+  border-bottom: 0px;
+}
+/deep/.ws-info-table {
+  border-left: 0px;
+  border-top: 0px;
+}
+.ws-info-table .el-form-item .el-form-item__content {
+  border-right: 0px;
+  border-bottom: 0px;
+  border-left: 0px;
+  border-top: 0px;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 0px;
+  border-bottom: 0px;
+  border-left: 0px;
+  border-top: 0px;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  background: #f5f7fa;
+  border-radius: 4px;
+  border: 1px solid #d8dce6;
+  font-family: PingFangSC-Regular, PingFang SC;
+  margin-bottom: 5px;
+  background-color: #fff;
+  font-size: 14px;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  background-color: #fff;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+}
+.position{
+  width: 90%;
+}
+//下表格样式
+/deep/.position.siji{
+  background: #F6F7FC;
+  border-radius: 4px;
+  border: 1px solid #D8DCE6;
+}
+/deep/.zi{
+  width: 64px;
+  height: 22px;
+  font-size: 16px;
+  font-family: PingFangSC-Semibold, PingFang SC;
+  font-weight: 600;
+  color: #323233;
+  line-height: 22px;
+}
+//表格文字
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  text-align: left;
+  font-size: 14px;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+}
+//小标题文字
+.small-title::before {
+  position: absolute;
+  content: '';
+  display: block;
+  background: #5473e8;
+  width: 4px;
+  height: 14px;
+  left: 0px;
+  top: 13px;
+  padding: 4px 2px;
+}
+/deep/.basicInformation {
+  .el-form-item {
+    width: 25%;
+    
+    .el-form-item__label {
+      background: transparent;
+       border: none;
+    }
+    .el-form-item__content {
+      // border: none;
+    }
+  }
+}
+//下方表格
+// .biao{
+//   background: #F6F7FC;
+//   border-radius: 4px;
+//   border: 1px solid #D8DCE6;
+//   margin-top: 10px;
+  
+// }
+//添加仓位样式
+.add{
+  width: 90px;
+  height: 20px;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  line-height: 20px;
+  border: none;
+}
+//
+.xia{
+  width: 600px;
+  height:54px ;
+  // background: #F6F7FC;
+  border-radius: 4px;
+  border: 1px solid #D8DCE6;
+}
 </style>

+ 236 - 190
src/views/tranManagement/tranManagementShippingLook.vue

@@ -28,21 +28,23 @@
         <ws-info-table>
           <!-- 任务编号 -->
           <ws-form-item label="任务编号" span="1"  prop="processNo">
-            <ws-input
+            <!-- <ws-input
               v-model="deptBudgetList.processNo" 
               placeholder="请输入任务编号"
               maxlength="20"
               size="small"
-            />
+            /> -->
+            {{deptBudgetList.processNo}}
           </ws-form-item>
         <!-- 货名 -->
           <ws-form-item label="货名" span="1" prop="goodsName">
-            <ws-input
+            <!-- <ws-input
               v-model="deptBudgetList.goodsName"
               placeholder="请输入货名"
               maxlength="20"
               size="small"
-              />
+              /> -->
+              {{deptBudgetList.goodsName}}
           </ws-form-item>
           <!--重量(吨)-->
           <ws-form-item
@@ -51,12 +53,13 @@
             prop="weight"
             class="readonly"
           >
-            <ws-input
+            <!-- <ws-input
               v-model="deptBudgetList.weight"
               placeholder="请输入重重"
               maxlength="100"
               size="small"
-            />
+            /> -->
+            {{deptBudgetList.weight}}
           </ws-form-item>
 
           <!--发货地址-->
@@ -72,22 +75,24 @@
           </ws-form-item>
          <!--发货人-->
           <ws-form-item label="发货人" span="1" prop="sender">
-            <ws-input
+            <!-- <ws-input
               v-model="deptBudgetList.sender"
               placeholder="请输入发货人姓名"
               maxlength="100"
               size="small"
-          />
+          /> -->
+          {{deptBudgetList.sender}}
           </ws-form-item>
 
           <!--发货人电话-->
           <ws-form-item label="发货人电话" span="1" prop="senderPhone">
-            <ws-input
+            <!-- <ws-input
               v-model="deptBudgetList.senderPhone"
               placeholder="请输入发货人电话"
               maxlength="100"
               size="small"
-            />
+            /> -->
+            {{deptBudgetList.senderPhone}}
           </ws-form-item>
           <!--收货地址-->
         <ws-form-item label="收货地址" span="1" prop="receiveDetailedAddress">
@@ -102,265 +107,181 @@
         </ws-form-item>
          <!--收货人-->
           <ws-form-item label="收货人" span="1" prop="receiver">
-            <ws-input
+            <!-- <ws-input
               v-model="deptBudgetList.receiver"
               placeholder="请输入发货人"
               maxlength="100"
               size="small"
-          />
+          /> -->
+          {{deptBudgetList.receiver}}
           </ws-form-item>
 
           <!--收货人电话-->
           <ws-form-item label="收货人电话" span="1" prop="receiverPhone">
-            <ws-input
+            <!-- <ws-input
               v-model="deptBudgetList.receiverPhone"
               placeholder="请输入收货人电话"
               maxlength="100"
               size="small"
-            />
-          </ws-form-item>
-          <!--发货日期-->
-          <ws-form-item
-            label="发货日期"
-            span="1"
-            prop="deliveryDateStart"
-            class="deliverydate"
-          >
-            <ws-date-picker
-              v-model="deptBudgetList.deliveryDateStart"
-              type="date"
-              placeholder="请选择发货日期"
-              value-format="yyyy-MM-dd"
-            />
+            /> -->
+            {{deptBudgetList.receiverPhone}}
           </ws-form-item>
+         
+          <!--发船日期-->
+        <ws-form-item label="发船日期" span="1" prop="deliveryDateStart">
+          <!-- <ws-input
+            v-model="deptBudgetList.deliveryDateStart"
+            placeholder=""
+            maxlength="20"
+            size="small"
+          /> -->
+          {{deptBudgetList.deliveryDateStart}}
+        </ws-form-item>
+      
            <!--最晚发货日期-->
-          <ws-form-item
-            label="最晚发货日期"
-            span="1"
-            prop="deliveryDateEnd"
-            class="deliverydate"
-          >
-            <ws-date-picker
-              v-model="deptBudgetList.deliveryDateEnd"
-              type="date"
-              placeholder="请选择最晚发货日期"
-              value-format="yyyy-MM-dd"
-            />
-          </ws-form-item>
+          <ws-form-item label="最晚到货日期" span="1" prop="deliveryDateEnd">
+            <!-- <ws-input
+            v-model="deptBudgetList.deliveryDateEnd"
+            placeholder=""
+            maxlength="20"
+            size="small"
+          /> -->
+          {{deptBudgetList.deliveryDateEnd}}
+        </ws-form-item>
           <!--合同编号-->
           <ws-form-item label="合同编号" span="1" prop="contractNo">
-            <ws-input
-              v-model="deptBudgetList.contractNo"
-              placeholder="请输入合同编号"
-              maxlength="100"
-              size="small"
-            />
-          </ws-form-item>
-          
-        </ws-info-table>
-      
-      <div class="small-title"><h2>联络员及航次</h2></div>
-        <div
-          style="width: 100%"
-          class="flex position"
-          :model="deptBudgetList"
-          
-        >
-        <ws-info-table>
-          <!--姓名-->
-          <ws-form-item label="姓名" span="1"  prop="driver" class="siji" >
-            <!-- <ws-input
-                v-model="deptBudgetList.driver"
-                placeholder="请选择联络员"
-
-            ></ws-input> -->
-            {{deptBudgetList.driver}}
-          </ws-form-item>
-         <!-- 电话 -->
-          <ws-form-item label="电话" span="1" prop="driverPhone" class="siji">
             <!-- <ws-input
-            v-model="deptBudgetList.driverPhone"
-            placeholder="联络员电话"
+            v-model="deptBudgetList.contractNo"
+            placeholder="请输入合同编号"
+            maxlength="20"
             size="small"
-            ></ws-input> -->
-            {{deptBudgetList.driverPhone}}
-          </ws-form-item>
-          <!--发船日期-->
-          <ws-form-item label="发船日期" span="1" prop="sendDateStart" class="siji">
-            <!-- <ws-select
-                v-model="deptBudgetList.sendDateStart"
-                placeholder="请选择日期"
-                
-            ></ws-select> -->
-            {{deptBudgetList.sendDateStart}}
-          </ws-form-item>
-          <!--预计到港日-->
-          <ws-form-item label="预计到港日期" span="1" prop="receiveDateEnd" class="siji">
-            <!-- <ws-input
-              v-model="deptBudgetList.receiveDateEnd"
-              type="date"
-              placeholder="请选择日期"
-              value-format="yyyy-MM-dd"
-              size="small"
-            /> -->
-            {{deptBudgetList.receiveDateEnd}}
-          </ws-form-item>
-          <!-- 船名 -->
-          <ws-form-item label="船名" span="1" prop="shipName" class="siji">
-            <!-- <ws-input 
-              v-model="deptBudgetList.shipName"
-              placeholder="请输入船名"
-              maxlength="100"
-              size="small"
-            ></ws-input> -->
-            {{deptBudgetList.shipName}}
-          </ws-form-item>
-          <!-- 航次 -->
-          <ws-form-item label="航次" span="1" prop="shipNo" class="siji">
-            <!-- <ws-input 
-              v-model="deptBudgetList.shipNo"
-              placeholder="请选择航次"
-              maxlength="100"
-              size="small"
-            ></ws-input> -->
-            {{deptBudgetList.shipNo}}
-          </ws-form-item>
-        <!-- 类型 -->
-        <ws-form-item label="类型" span="1" prop="tranType" class="siji">
-          <!-- <ws-select
-          v-model="deptBudgetList.tranType"
-          placeholder=""
-          size="small"
-          ></ws-select> -->
-          {{deptBudgetList.tranType}}
-        </ws-form-item>
-        <ws-form-item label="数量" span="1" prop="boxNumber" class="siji">
-          <!-- <ws-input
-          v-model="deptBudgetList.boxNumber"
-          placeholder="请输入数量"
-          size="small"
-          ></ws-input> -->
-          {{deptBudgetList.boxNumber}}
+          /> -->
+          {{deptBudgetList.contractNo}}
         </ws-form-item>
+          
         </ws-info-table>
-      </div>
-      <div class="small-title"><h2>联络员及航次</h2></div>
+       <div class="small-title">联络员及航次</div>
+       <div class="aa">
+       <div  class="small-title">航次信息</div>
       <div
           style="width: 100%"
           class="flex position"
-          :model="deptBudgetList"
-         
+           v-for="(item, index) in deptBudgetList.tranCarInfoList"
+           :key="index.id"
         >
+        
         <ws-info-table>
           <!-- 姓名 -->
           <ws-form-item label="姓名" span="1" prop="driver" class="siji">
-            <!-- <ws-select
-            v-model="deptBudgetList.driver"
+            <!-- <ws-input
+            v-model="item.driver"
             placeholder="请选择联络员"
             size="small"
-            ></ws-select> -->
-             {{deptBudgetList.driver}}
+            ></ws-input> -->
+            {{item.driver}}
           </ws-form-item>
           <!-- 电话 -->
           <ws-form-item label="电话" span="1" prop="driverPhone" class="siji">
             <!-- <ws-input
-            v-model="deptBudgetList.driverPhone"
+            v-model="item.driverPhone"
             placeholder="联络员电话"
             size="small"
             ></ws-input> -->
-            {{deptBudgetList.driverPhone}}
+          {{item.driverPhone}}
           </ws-form-item>
           <!--发船日期-->
           <ws-form-item label="发船日期" span="1" prop="sendDateStart" class="siji">
             <!-- <ws-input
-                v-model="deptBudgetList.sendDateStart"
+                v-model="item.sendDateStart"
                 placeholder="请选择日期"
-                
             ></ws-input> -->
-            {{deptBudgetList.sendDateStart}}
+            {{item.sendDateStart}}
           </ws-form-item>
         <ws-form-item label="预计到港日期" span="1" prop="receiveDateEnd" class="siji">
           <!-- <ws-input
-              v-model="deptBudgetList.receiveDateEnd"
-              type="date"
+              v-model="item.receiveDateEnd"
               placeholder="请选择日期"
               value-format="yyyy-MM-dd"
               size="small"
             /> -->
-            {{deptBudgetList.receiveDateEnd}}
+          {{item.receiveDateEnd}}
         </ws-form-item>
           <!-- 船名 -->
           <ws-form-item label="船名" span="1" prop="shipName" class="siji">
             <!-- <ws-input 
-              v-model="deptBudgetList.shipName"
+              v-model="item.shipName"
               placeholder="请输入船名"
               maxlength="100"
               size="small"
             ></ws-input> -->
-            {{deptBudgetList.shipName}}
+            {{item.shipName}}
           </ws-form-item>
           <!-- 航次 -->
           <ws-form-item label="航次" span="1" prop="shipNo" class="siji">
             <!-- <ws-input 
-              v-model="deptBudgetList.shipNo"
+              v-model="item.shipNo"
               placeholder="请选择航次"
               maxlength="100"
               size="small"
             ></ws-input> -->
-            {{deptBudgetList.shipNo}}
+            {{item.shipNo}}
           </ws-form-item>
         <!-- 类型 -->
-        <ws-form-item label="类型" span="1" prop="tranType" class="siji">
-          <!-- <ws-select
-          v-model="deptBudgetList.tranType"
+        <ws-form-item label="类型" span="1" prop="shipType" class="siji">
+          <!-- <ws-input
+          v-model="item.shipType"
           placeholder=""
           size="small"
-          ></ws-select> -->
-          {{deptBudgetList.tranType}}
+          ></ws-input> -->
+          {{item.shipType}}
         </ws-form-item>
-        <ws-form-item label="数量" span="1" prop="boxNumber" class="siji">
+        <ws-form-item label="数量" span="1" prop="boxNumber" class="siji" v-show="item.shipType=='集装箱'"> 
           <!-- <ws-input
-          v-model="deptBudgetList.boxNumber"
+          v-model="item.boxNumber"
           placeholder="请输入数量"
           size="small"
           ></ws-input> -->
-          {{deptBudgetList.boxNumber}}
+          {{item.boxNumber}}
         </ws-form-item>
         </ws-info-table>
         </div>
+        </div>
+        <div class="xia">
       <div
           style="width: 100%"
-          class="flex position"
-          v-for="(item, index) in freightspace"
+          class=""
+         v-for="(item, index) in freightspace"
+         :key="index"
         >
      <ws-info-table>
-        <ws-form-item :label="'仓位号1-'+ (index+1)" span="1" prop="impurity" class="bot">
+        <ws-form-item :label="'仓位号-'+ (index + 1 )" span="1" prop="impurity" class="bot">
             <!-- <ws-input
-          v-model="deptBudgetList.impurity"
+          v-model="item.impurity"
           placeholder="请输入仓位号"
           size="small"
           ></ws-input> -->
-          {{deptBudgetList.impurity}}
+          {{item.impurity}}
           </ws-form-item>
           <!-- 重量(吨) -->
           <ws-form-item label="重量(吨)" span="1" prop="positionWeight" class="bot">
           <!-- <ws-input
-          v-model="deptBudgetList.impurity"
+          v-model="item.positionWeight"
           placeholder="请输入装仓重量"
           size="small"
           ></ws-input> -->
-          {{deptBudgetList.positionWeight}}
+          {{item.positionWeight}}
         </ws-form-item>
         
      </ws-info-table>
-      <img
+      <!-- <img
             width="22"
             height="22"
             class="del"
             @click="del(index)"
             src="../../../public/img/del.png"
             alt=""
-          />
+          /> -->
+      </div>
       </div>
       <!-- <el-button
           class="add"
@@ -369,16 +290,16 @@
           @click="add()"
           >添加仓位</el-button
         > -->
-      <!-- <div style="text-align: right; padding: 10px">
+      <div style="text-align: right; padding: 10px">
         
         <el-button
           class="bg-bottom-up"
           type="primary"
           size="small"
-          @click="submit()"
-          >提交</el-button
+          @click="returnsales()"
+          >关闭</el-button
         >
-      </div> -->
+      </div>
       </div>
     </ws-form>
     </div>
@@ -386,6 +307,7 @@
   
 </template>
 <script>
+import { regionData, CodeToText, TextToCode } from 'element-china-area-data'
 import {shippingList,shippingLook } from '@/model/transport/index'
 import Pagination from '@/components/Pagination'
 import WsUpload from '@/components/WsUpload'
@@ -435,6 +357,9 @@ export default {
       uploadSuccess: {},
       onChange: {},
       gradeList: [],
+       tranCarInfoList: [],
+       list:[],
+       arr:[],
        freightspace: [{ binNumber: '', maxStorage: '', remark: '' }],
       rules: {
         netWeight: [
@@ -457,6 +382,7 @@ export default {
       contractList: [],
       deptBudgetList: {
         warehouseInOutDetail: {},
+        tranCarInfoList:[]
       },
       historyList: [],
 
@@ -485,10 +411,29 @@ export default {
         .toPromise()
         .then((response) => {
           this.deptBudgetList = response
+          // this.deptBudgetList.driver = this.deptBudgetList.tranCarInfoList[0].driver
+          // this.deptBudgetList.driverPhone = this.deptBudgetList.tranCarInfoList[0].driverPhone
+          // this.deptBudgetList.sendDateStart = this.deptBudgetList.tranCarInfoList[0].sendDateStart
+          //   this.deptBudgetList.sendDateStart = this.deptBudgetList.tranCarInfoList[0].sendDateStart
+          //    this.deptBudgetList.receiveDateEnd = this.deptBudgetList.tranCarInfoList[0].receiveDateEnd
+          //   this.deptBudgetList.shipName = this.deptBudgetList.tranCarInfoList[0].shipName
+          //    this.deptBudgetList.shipNo = this.deptBudgetList.tranCarInfoList[0].shipNo
+          //     this.deptBudgetList.shipType = this.deptBudgetList.tranCarInfoList[0].shipType
+          //    this.deptBudgetList. boxNumber =this.deptBudgetList.tranCarInfoList[0].boxNumber
+          for(var i = 0; i<this.deptBudgetList.tranCarInfoList.length;i++){
+           var num  = this.deptBudgetList.tranCarInfoList[i].positionWeight.split("," )  
+           for(var j = 0;j<num.length;j++){
+            var num2 = num[j].split("/")
+             this.freightspace.push({
+               'impurity': num2[i],
+               'positionWeight':num2[num2.length-1]
+             })
+           }
+
+          }  
     })
   },
     getList(){
-      console.log(123456)
       shippingList({
         compId: sessionStorage.getItem('ws-pf_compId'),
         currentPage:this.currentPage,
@@ -503,7 +448,8 @@ export default {
     },
     //返回按钮
     revert() {
-      this.$router.push({ path: 'tranManagementVehicle' })
+      this.freightspace=[]
+      this.$router.push({ path: 'tranManagementShipping' })
     },
     del(index){
         if(this.freightspace.length > 1 ){
@@ -548,7 +494,9 @@ export default {
           return false
         })
     },
-  
+  returnsales(){
+     this.$router.push({ path: 'tranManagementShipping' })
+  },
     handleClose() {
       this.accessoryTFs = false
     },
@@ -589,20 +537,6 @@ export default {
         }
       }
     },
-    // fujian(row) {
-    //   if (
-    //     row.receiveAttachmentPath === null ||
-    //     row.receiveAttachmentPath === ''
-    //   ) {
-    //     EventBus.$emit(
-    //       'warning',
-    //       this.$t('system.noticeCircular.NoInformation')
-    //     )
-    //   } else {
-    //     this.accessoryTFs = true
-    //   }
-    //   this.appendixIdss = row.receiveAttachmentPath
-    // },
     approve() {},
     listQuery() {},
   },
@@ -686,7 +620,7 @@ export default {
   width: 90%;
 }
 .position .siji{
-  width: 23%;
+  width: 16%;
 }
 /deep/.position .ws-info-table .el-form-item .el-form-item__label{
   width: 40%;
@@ -701,5 +635,117 @@ export default {
 }
 .bot{
   width: 30%;
+  border: none;
+}
+.siji{
+  width: 300px;
+}
+/deep/.el-form-item {
+  border-right: 0px;
+  border-bottom: 0px;
+}
+/deep/.ws-info-table {
+  border-left: 0px;
+  border-top: 0px;
+}
+.ws-info-table .el-form-item .el-form-item__content {
+  border-right: 0px;
+  border-bottom: 0px;
+  border-left: 0px;
+  border-top: 0px;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 0px;
+  border-bottom: 0px;
+  border-left: 0px;
+  border-top: 0px;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  background: #f5f7fa;
+  border-radius: 4px;
+  border: 1px solid #d8dce6;
+  font-family: PingFangSC-Regular, PingFang SC;
+  margin-bottom: 5px;
+  background-color: #fff;
+  font-size: 14px;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  background-color: #fff;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+}
+
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  background: #f5f7fa;
+  border-radius: 4px;
+  border: 1px solid #d8dce6;
+}
+/deep/.flex .ws-info-table .el-form-item .el-form-item__content{
+  border: 0px;
+}
+/deep/.ws-class-table-col {
+  height: auto;
+  padding: 0px 2px;
+  /deep/.el-input__inner {
+    padding: 0px 2px;
+  }
+}
+/deep/.is-disabled {
+  .el-input__prefix,
+  .el-input__suffix {
+    display: none;
+  }
+  .el-input__inner {
+    background-color: #fff;
+    border-color: #fff !important;
+    color: #000 !important;
+    font-size: 14px;
+    cursor: text;
+    padding: 0 !important;
+    border: none;
+  }
+}
+//联络员及航次样式
+.aa{
+  width: 100%;
+  height: 90px;
+  background: #F5F7FA;
+  border-radius: 4px;
+  border: 1px solid #D8DCE6;
+}
+.xia{
+  width:70%;
+  height: 46px;
+  background: #F5F7FA;
+  border-radius: 4px;
+  border: 1px solid #D8DCE6;
+  margin-top: 10px;
+  border: none;
+}
+.xiaxia{
+  width: 70%;
+  height: 46px;
+  background: #F5F7FA;
+  border-radius: 4px;
+  // border: 1px solid #D8DCE6;
+  margin-top: 10px;
+  // border: none;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+    background-color: #f5f7fa;
+    font-size: 14px;
+    font-family: PingFangSC-Regular, PingFang SC;
+    font-weight: 400;
+    color: #8890b1;
+    line-height: 16px;
+}
+.position .siji {
+    width: 14.2%;
 }
 </style>

+ 263 - 106
src/views/tranManagement/tranManagementTransporFeedback.vue

@@ -3,7 +3,7 @@
   <div class="container">
     <el-row>
       <el-col :span="12">
-        <h2 class="bg-left title">车次安排</h2>
+        <h2 class="bg-left title">汽运装车反馈</h2>
       </el-col>
       <el-col :span="12" class="bg-right">
         <el-button
@@ -28,7 +28,7 @@
       :rules="rules"
       :model="deptBudgetList"
     >
-      <div class="small-title">任务详情</div>
+      <div class="small-title" style="font-size: 16px;">任务详情</div>
       <ws-info-table>
         <!--任务编号-->
         <ws-form-item label="任务编号" span="1" prop="processNo">
@@ -90,18 +90,39 @@
           {{ deptBudgetList.contractNo }}
         </ws-form-item>
       </ws-info-table>
-      <div class="small-title">装车详情</div>
+      <div class="small-title" style="font-size: 16px;">装车详情</div>
       <div class="liaison">
-        <ws-info-table>
-          <div
-            style="width: 100%"
-            class="flex position"
-            v-for="(item, index) in freightspace"
-          >
+        <div
+          style="width: 100%"
+          class="flex position"
+          v-for="(item, index) in this.freightspace"
+          :key="index"
+        >
+          <ws-info-table>
+            <div class="catNos" v-show="item.temporaryDriverFlag == 0">司机-{{index+1}}</div>
+             <div class="catNos catNosCor" v-show="item.temporaryDriverFlag != 0">司机-{{index+1}}(临)</div>
+            <!--司机-->
+            <ws-form-item
+              label="姓名:"
+              span="1"
+              prop="driver"
+              v-show="item.temporaryDriverFlag == 0"
+            >
+              <span v-show="item.temporaryDriverFlag == 0"
+                >{{ item.driver }}
+              </span>
+            </ws-form-item>
             <!--司机-->
-            <ws-form-item :label="'司机'+(index+1)" span="1" prop="driver">
+
+            <ws-form-item
+              label="姓名"
+              span="1"
+              prop="driver"
+              v-show="item.temporaryDriverFlag != 0"
+            >
               <el-select
-                v-model="deptBudgetList.tranCarInfoList[0].driver"
+                v-show="item.temporaryDriverFlag != 0"
+                v-model="item.driver"
                 placeholder="请选择司机"
                 filterable
                 :filter-method="dataFilter"
@@ -114,62 +135,90 @@
                   :value="item.staffName"
                 />
               </el-select>
+              <!-- <span v-show="item.temporaryDriverFlag == 0">{{item.driver}} </span>  -->
             </ws-form-item>
+
             <!--电话-->
-            <ws-form-item label="司机电话" span="1" prop="driverPhone">
+            <ws-form-item label="司机电话" span="1" prop="driverPhone">
               <ws-input
-                v-model="deptBudgetList.driverPhone"
+                v-show="item.temporaryDriverFlag != 0"
+                v-model="item.driverPhone"
                 placeholder="请输入司机电话"
                 maxlength="20"
                 size="small"
               />
+              <span v-show="item.temporaryDriverFlag == 0"
+                >{{ item.driverPhone }}
+              </span>
             </ws-form-item>
             <!--车牌号-->
-            <ws-form-item label="车牌号" span="1" prop="sendDateStart">
-               <ws-input
-                v-model="deptBudgetList.driverPhone"
-                placeholder="请输入司机电话"
+            <ws-form-item label="车牌号:" span="1" prop="carNo">
+              <ws-input
+                v-show="item.temporaryDriverFlag != 0"
+                v-model="item.carNo"
+                placeholder="请输入车牌号"
                 maxlength="20"
                 size="small"
               />
+              <span v-show="item.temporaryDriverFlag == 0"
+                >{{ item.carNo }}
+              </span>
             </ws-form-item>
             <!--装车净重-->
-            <ws-form-item label="装车净重" span="1" prop="receiveDateEnd">
+            <ws-form-item label="装车净重:" span="1" prop="loadNetWeight">
               <ws-input
-                v-model="deptBudgetList.driverPhone"
-                placeholder="请输入司机电话"
+                v-model="item.loadNetWeight"
+                placeholder="请输入装车净重"
                 maxlength="20"
                 size="small"
               />
             </ws-form-item>
-            <!--车型-->
-            <ws-form-item label="车型" span="1" prop="carModel">
-              <ws-select
-                v-model="deptBudgetList.carModel"
-                placeholder="请输入车型"
-                class="typeselect"
-              >
-                <ws-option
-                  v-for="item in carModel"
-                  :key="item.constKey"
-                  :label="item.constValue"
-                  :value="item.constValue"
+            <!--磅单-->
+            <ws-form-item label="磅单:" span="1" prop="loadPoundImg">
+              <template slot-scope="scope">
+                <img
+                  width="18"
+                  height="20"
+                  style="
+                    vertical-align: text-top;
+                    position: relative;
+                    top: -1px;
+                  "
+                  src="../../../public/img/fujian.png"
+                  @click="fujian(scope.row)"
+                  alt=""
                 />
-              </ws-select>
+                <div v-show="item.temporaryDriverFlag == 0">
+                  {{ item.signStatus }}
+                </div>
+              </template>
             </ws-form-item>
-            <img
-              width="22"
-              height="22"
-              class="del"
-              @click="del(index)"
-              src="../../../public/img/del.png"
-              alt=""
-            />
-          </div>
-        </ws-info-table>
+            
+            <span
+            v-show="item.temporaryDriverFlag != 0"
+                width="22"
+                height="22"
+                class="del"
+                @click="del(index)"
+                src="../../../public/img/del.png"
+                alt=""
+                >×</span
+              >
+          </ws-info-table>
+        </div>
+      </div>
+      <div style="text-align: right;color: #8890B1;font-size: 16px;">
+        合计(吨):{{ total }}/{{ deptBudgetList.weight }}
       </div>
-      <el-button class="add bg-bottom" type="primary" size="small" @click="add"
-        >添加车厢</el-button
+      <el-button class="add bg-bottom" type="primary" size="small" @click="add">
+         <img
+          width="22"
+          height="22"
+          @click="add"
+          src="../../../public/img/add.png"
+          alt=""
+        />
+       <div class="spans"> 添加临时用车</div></el-button
       >
     </ws-form>
     <!-- 提交 -->
@@ -182,11 +231,30 @@
         >提交</el-button
       >
     </div>
+    <WinseaContentModal
+      v-model="accessoryTFs"
+      :title="$t('system.noticeCircular.information')"
+      @on-cancel="handleClose"
+    >
+      <p>上传附件</p>
+      <ws-upload
+        ref="upload"
+        table-name="maintain_work_order"
+        oss-key="mainPlan"
+        :comp-id="compId"
+        :file-list="fileList"
+        :appendix-ids="appendixIdsAdd"
+        :vesselId="deptBudgetList.loadPoundImg"
+        :size-limit="size"
+        @uploadSuccess="uploadSuccess"
+        accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar"
+      />
+    </WinseaContentModal>
   </div>
 </template>
 <script>
 import { regionData, CodeToText, TextToCode } from 'element-china-area-data'
-import { seeCat, dispatchCat, packList } from '@/model/transport/index'
+import { seeCat, packList, feedback } from '@/model/transport/index'
 import { getstaff } from '@/model/warehouse/index'
 import WsUpload from '@/components/WsUpload'
 import mapDrag from '@/components/mapdrag/mapdrag'
@@ -206,7 +274,6 @@ export default {
   },
   data() {
     return {
-      staffList: [],
       deptBudgetList: {
         totalStorage: 0,
       },
@@ -223,7 +290,6 @@ export default {
       listDate: { country: '中国', level: 'country', city: '' },
       citylist: [],
       compId: sessionStorage.getItem('ws-pf_compId'),
-      tranType: 2,
       rules: {
         warehouseName: [
           {
@@ -239,28 +305,34 @@ export default {
           },
         ],
       },
-      appendixIdsAdd: '',
+      tranType: 1,
       size: 10,
       value1: '',
       unitList: [],
       freightspace: [
         {
-          trainNo: '',
+          driver: '',
+          driverPhone: '',
+          carNo: '',
+          loadNetWeight: '',
         },
       ],
       name: '',
-
       staffList: [],
       options: [],
       carModel: [],
       tranCarInfoList: {},
-      arr: [],
+      //上传
+      accessoryTFs: false,
+      fileList: [],
+      appendixIdsAdd: '',
     }
   },
   mounted() {
     this.deptBudgetList.id = this.$route.query.id
     this.getList()
   },
+
   computed: {
     totalStorage: function () {
       var maxStorage = 0
@@ -269,6 +341,15 @@ export default {
       }
       return maxStorage
     },
+    total: function () {
+      var maxStorage = 0
+      for (var i = 0; i < this.deptBudgetList.tranCarInfoList.length; i++) {
+        maxStorage += Number(
+          this.deptBudgetList.tranCarInfoList[i].loadNetWeight
+        )
+      }
+      return maxStorage
+    },
   },
   methods: {
     dataFilter(val) {
@@ -290,6 +371,9 @@ export default {
       for (var i = 0; i < this.staffList.length; i++) {
         if (this.staffList[i].staffName == e) {
           this.deptBudgetList.driverPhone = this.staffList[i].staffMobilePhone
+          this.freightspace[i].driverPhone = this.staffList[i].staffMobilePhone
+          // this.deptBudgetList.tranCarInfoList[i].driverPhone = this.staffList[i].staffMobilePhone
+          console.log(this.freightspace[i].driverPhone, 'dianhu')
           this.deptBudgetList.personChargeKey = this.staffList[i].staffId
         }
       }
@@ -312,7 +396,10 @@ export default {
     },
     add() {
       this.freightspace.push({
-        trainNo: '',
+        driver: '',
+        driverPhone: '',
+        carNo: '',
+        loadNetWeight: '',
       })
     },
     del(index) {
@@ -329,7 +416,7 @@ export default {
       this.deptBudgetList = {}
       this.freightspace = {}
       this.selectedOptions = ''
-      this.$router.push({ path: 'tranManagementTransporTationFire' })
+      this.$router.push({ path: 'tranManagementTransporHairRespond' })
     },
     // confirmPosition() {
     //   this.draggable = false
@@ -338,8 +425,44 @@ export default {
     uploadSuccess(data, files, url) {
       console.log(data, files, url)
     },
+    handleClose() {
+      this.accessoryTFs = false
+    },
     submit() {
-      this.$confirm(`提交成功后,任务将下发给相关人员,是否确定提交?`, {
+      for(var i = 0 ; i < this.freightspace.length ; i++){
+        if(this.freightspace[i].temporaryDriverFlag != 0){
+          if(!this.freightspace[i].driver){
+            this.$message({
+              message : '司机姓名不能为空!',
+              type: 'warning'
+            })
+            return
+          }
+          if(!this.freightspace[i].driverPhone){
+            this.$message({
+              message:'司机电话不能为空!',
+              type: "warning"
+            })
+            return
+          }
+          if(!this.freightspace[i].carNo){
+            this.$message({
+              message : "车牌号不能为空!",
+              type:"warning"
+            })
+            return
+          }
+          if(!this.freightspace[i].loadNetWeight){
+            this.$message({
+              message:"装载净重不能为空!",
+              type: "warning"
+            })
+            return
+          }
+
+        }
+      }
+      this.$confirm(`提交成功后提醒司机及时签订运输合同,确定提交装车信息?`, {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning',
@@ -347,36 +470,38 @@ export default {
         .then(() => {
           this.$refs.deptBudgetList.validate((valid) => {
             if (valid) {
-              for (var i = 0; i < this.freightspace.length; i++) {
-                var num = this.freightspace[i].trainNo
-                this.arr.push(num)
-              }
-              this.deptBudgetList.totalStorage = this.totalStorage
-
+              // this.deptBudgetList.totalStorage = this.totalStorage
+              this.tranCarInfoList = this.freightspace
               this.tranCarInfoList.driver = this.deptBudgetList.driver
               this.tranCarInfoList.driverPhone = this.deptBudgetList.driverPhone
-              this.tranCarInfoList.sendDateStart =
-                this.deptBudgetList.sendDateStart
-              this.tranCarInfoList.receiveDateEnd =
-                this.deptBudgetList.receiveDateEnd
-              this.tranCarInfoList.carModel = this.deptBudgetList.carModel
+              this.tranCarInfoList.carNo = this.deptBudgetList.carNo
+              this.tranCarInfoList.loadNetWeight =
+                this.deptBudgetList.loadNetWeight
               this.tranCarInfoList.tranType = this.tranType
-              this.tranCarInfoList.boxNo = this.arr.toString()
-              var tranCarInfo = {}
-              var tranList = [this.tranCarInfoList]
-              tranCarInfo.id = this.deptBudgetList.id
-              tranCarInfo.infoId = this.deptBudgetList.infoId
-              tranCarInfo.tranCarInfoList = tranList
+              this.tranCarInfoList.loadPoundImg =
+                this.deptBudgetList.loadPoundImg
+              // this.tranCarInfoList.boxNo = this.arr.toString()
+              for (var i = 0; i < this.tranCarInfoList.length; i++) {
+                this.tranCarInfoList[i].id = this.freightspace[i].id
+                if (this.tranCarInfoList[i].temporaryDriverFlag != 0) {
+                  this.tranCarInfoList[i].temporaryDriverFlag = 1
+                  this.tranCarInfoList[i].tranType = this.tranType
+                }
+              }
+              var tranProcessInfo = {}
+              tranProcessInfo.id = this.deptBudgetList.id
+              tranProcessInfo.infoId = this.deptBudgetList.infoId
+              tranProcessInfo.tranCarInfoList = this.tranCarInfoList
               // dispatchCat({tranCarInfo:{tranCarInfoList:[this.tranCarInfoList],id:this.deptBudgetList.id}
-              dispatchCat(tranCarInfo)
+              feedback(tranProcessInfo)
                 .toPromise()
                 .then((response) => {
-                  this.$message.success('添加成功')
+                  this.$message.success('提交成功')
                   this.deptBudgetList = {}
                   this.freightspace = {}
                   this.selectedOptions = ''
                   this.$router.push({
-                    path: 'tranManagementTransporTationFire',
+                    path: 'tranManagementTransporHairRespond',
                   })
                 })
             } else {
@@ -397,6 +522,13 @@ export default {
         .toPromise()
         .then((response) => {
           this.deptBudgetList = response
+          //  this.deptBudgetList.tranCarInfoList = response.tranCarInfoList
+          this.freightspace = response.tranCarInfoList
+          for (var i = 0; i < this.freightspace.length; i++) {
+            if (!this.freightspace[i].loadNetWeight) {
+              this.freightspace[i].loadNetWeight = 0
+            }
+          }
         })
       //司机姓名下拉
       getstaff({ compId: sessionStorage.getItem('ws-pf_compId') })
@@ -452,35 +584,20 @@ export default {
         }
       }
     },
-    // 编辑
-    editClick(item, index) {
-      const map = JSON.parse(JSON.stringify(item))
-      if (Object.is(item.id, 1)) {
-        return
-      }
-      if (Object.is(this.unitList[index].flag, 'delete')) {
-        map.flag = 'check'
-        this.$set(this.unitList, index, map)
+    //上传
+    fujian(row) {
+      if (
+        row.receiveAttachmentPath === null ||
+        row.receiveAttachmentPath === ''
+      ) {
+        EventBus.$emit(
+          'warning',
+          this.$t('system.noticeCircular.NoInformation')
+        )
       } else {
-        map.flag = 'delete'
-        this.$set(this.unitList, index, map)
-      }
-    },
-    // 删除
-    deleteClick(item, index) {
-      if (Object.is(item.constKey, 1)) {
-        return
-      }
-      if (!item.constValue) {
-        this.unitList.splice(index, 1)
-        return
+        this.accessoryTFs = true
       }
-      delxiala({ id: this.unitList[index].id })
-        .toPromise()
-        .then((response) => {
-          this.getUnitList()
-          this.pleaseChoose = ''
-        })
+      this.appendixIdss = row.receiveAttachmentPath
     },
   },
 }
@@ -513,12 +630,16 @@ export default {
 .del {
   position: absolute;
   right: -38px;
-  top: 9px;
+  top: 14px;
   cursor: pointer;
-}
-.del {
   right: 0;
+  display: inline-block;
+  font-size: 26px;
+  width: 26px;
+  height: 10px;
+  line-height: 0px;
 }
+
 .amap-page-container {
   width: 300px;
   height: 300px;
@@ -801,9 +922,45 @@ export default {
   width: 20%;
 }
 /deep/.liaison .ws-info-table .el-form-item .el-form-item__label {
-  width: 25%;
+  width: 30%;
+  background: #F6F7FC;
 }
 /deep/.liaison .flex {
   display: contents;
 }
+/deep/.liaison .ws-info-table{
+  background: #F6F7FC;
+border-radius: 4px;
+border: 1px solid #D8DCE6;
+}
+.catNos{
+  width: 100%;
+  height: 30px;
+  margin-top: 10px;
+  margin-left: 20px;
+  font-size: 14px;
+}
+.catNosCor{
+  color: #5473E8;
+}
+.add {
+  width: 130px;
+  height: 34px;
+  background: #f6f7fb;
+  border-radius: 17px;
+  color: #5473e8;
+  font-size: 14px;
+  border: none;
+}
+.add img {
+  display: inline-block;
+  margin-top: 3px;
+  margin-left: -30px;
+}
+.add .spans {
+  display: table-caption;
+  width: 56px;
+  height: 20px;
+  line-height: 18px;
+}
 </style>

+ 776 - 0
src/views/tranManagement/tranManagementTransporFeedbackLook.vue

@@ -0,0 +1,776 @@
+//反馈
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="12">
+        <h2 class="bg-left title">查看汽运装车信息</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right">
+        <el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="returnsales()"
+          ><img
+            width="6"
+            height="10"
+            style="vertical-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt=""
+          />返回</el-button
+        >
+      </el-col>
+    </el-row>
+
+    <ws-form
+      class="position"
+      ref="deptBudgetList"
+      :rules="rules"
+      :model="deptBudgetList"
+    >
+      <div class="small-title" style="font-size: 16px;">任务详情</div>
+      <ws-info-table>
+        <!--任务编号-->
+        <ws-form-item label="任务编号" span="1" prop="processNo">
+          {{ deptBudgetList.processNo }}
+        </ws-form-item>
+        <!--货名-->
+        <ws-form-item label="货名" span="1" prop="goodsName">
+          {{ deptBudgetList.goodsName }}
+        </ws-form-item>
+        <!--重量(吨)-->
+        <ws-form-item label="重量(吨)" span="1" prop="weight">
+          {{ deptBudgetList.weight }}
+        </ws-form-item>
+        <!--发货地址-->
+        <ws-form-item label="发货地址" span="1" prop="sendDetailedAddress">
+          {{ deptBudgetList.sendPrivate }}{{ deptBudgetList.sendCity
+          }}{{ deptBudgetList.sendArea }}
+        </ws-form-item>
+        <!--发货人-->
+        <ws-form-item label="发货人" span="1" prop="sender" class="readonly">
+          {{ deptBudgetList.sender }}
+        </ws-form-item>
+        <!--发货人电话-->
+        <ws-form-item
+          label="发货人电话"
+          span="1"
+          prop="senderPhone"
+          class="readonly"
+        >
+          {{ deptBudgetList.senderPhone }}
+        </ws-form-item>
+        <!--收货地址-->
+        <ws-form-item label="收货地址" span="1" prop="receiveDetailedAddress">
+          {{ deptBudgetList.receivePrivate }}{{ deptBudgetList.receiveCity
+          }}{{ deptBudgetList.receiveArea }}
+        </ws-form-item>
+        <!--收货人-->
+        <ws-form-item label="收货人" span="1" prop="receiver">
+          {{ deptBudgetList.receiver }}
+        </ws-form-item>
+        <!--收货人电话-->
+        <ws-form-item label="收货人电话" span="1" prop="receiverPhone">
+          {{ deptBudgetList.receiverPhone }}
+        </ws-form-item>
+        <!--发货日期-->
+        <ws-form-item label="发货日期" span="1" prop="deliveryDateStart">
+          {{ deptBudgetList.deliveryDateStart }}
+        </ws-form-item>
+        <!--最晚到货日期-->
+        <ws-form-item label="最晚到货日期" span="1" prop="deliveryDateEnd">
+          {{ deptBudgetList.deliveryDateEnd }}
+        </ws-form-item>
+        <!--合同编号-->
+        <ws-form-item label="合同编号" span="1" prop="contractNo">
+          {{ deptBudgetList.contractNo }}
+        </ws-form-item>
+        <!-- 运输方式 -->
+        <ws-form-item label="运输方式" span="1" prop="contractNo">
+          {{ deptBudgetList.contractNo }}
+        </ws-form-item>
+      </ws-info-table>
+      <div class="small-title" style="font-size: 16px;">装车详情</div>
+      <div class="liaison">
+        <div
+          style="width: 100%"
+          class="flex position"
+          v-for="(item, index) in this.freightspace"
+          :key="index"
+        >
+          <ws-info-table>
+            <div class="catNos" v-show="item.temporaryDriverFlag == 0">司机-{{index+1}}</div>
+             <div class="catNos catNosCor" v-show="item.temporaryDriverFlag != 0">司机-{{index+1}}(临)</div>
+            <!--司机-->
+            <ws-form-item label="姓名:" span="1" prop="driver" v-show="freightspace[index].temporaryDriverFlag == 0">
+              <span>{{ item.driver }} </span>
+            </ws-form-item>
+            <!--司机-->
+            <ws-form-item label="姓名:" span="1" prop="driver" v-show="freightspace[index].temporaryDriverFlag == 1">
+              <span>{{ item.driver }} </span>
+            </ws-form-item>
+            <!--电话-->
+            <ws-form-item label="司机电话" span="1" prop="driverPhone">
+              <span>{{ item.driverPhone }} </span>
+            </ws-form-item>
+            <!--车牌号-->
+            <ws-form-item label="车牌号" span="1" prop="carNo">
+              <span>{{ item.carNo }} </span>
+            </ws-form-item>
+            <!--装车净重-->
+            <ws-form-item label="装车净重" span="1" prop="loadNetWeight">
+              {{ item.loadNetWeight }}
+            </ws-form-item>
+            <!--磅单-->
+            <ws-form-item label="磅单" span="1" prop="loadPoundImg">
+              <template slot-scope="scope">
+                <img
+                  width="18"
+                  height="20"
+                  style="
+                    vertical-align: text-top;
+                    position: relative;
+                    top: -1px;
+                  "
+                  src="../../../public/img/fujian.png"
+                  @click="fujian(scope.row)"
+                  alt=""
+                />
+                <div v-show="item.temporaryDriverFlag == 0">
+                  {{ item.signStatus }}
+                </div>
+              </template>
+            </ws-form-item>
+           
+          </ws-info-table>
+        </div>
+      </div>
+      <div style="text-align: right;color: #8890B1;font-size: 16px;">
+        合计(吨):{{ total }}/{{ deptBudgetList.weight }}
+      </div>
+    </ws-form>
+    <!-- 提交 -->
+    <div style="text-align: right; padding: 10px" class="center">
+      <el-button
+        class="bg-bottom"
+        type="primary"
+        size="small"
+        @click="returnsales()"
+        >关闭</el-button
+      >
+    </div>
+    <WinseaContentModal
+      v-model="accessoryTFs"
+      :title="$t('system.noticeCircular.information')"
+      @on-cancel="handleClose"
+    >
+      <p>上传附件</p>
+      <ws-upload
+        ref="upload"
+        table-name="maintain_work_order"
+        oss-key="mainPlan"
+        :comp-id="compId"
+        :file-list="fileList"
+        :appendix-ids="appendixIdsAdd"
+        :vesselId="deptBudgetList.loadPoundImg"
+        :size-limit="size"
+        @uploadSuccess="uploadSuccess"
+        accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar"
+      />
+    </WinseaContentModal>
+  </div>
+</template>
+<script>
+import { regionData, CodeToText, TextToCode } from 'element-china-area-data'
+import { seeCat, packList, feedback } from '@/model/transport/index'
+import { getstaff } from '@/model/warehouse/index'
+import WsUpload from '@/components/WsUpload'
+import mapDrag from '@/components/mapdrag/mapdrag'
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+    mapDrag,
+  },
+  watch: {
+    vesselId(val) {
+      this.getVesselData()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      deptBudgetList: {
+        totalStorage: 0,
+      },
+      options_: regionData,
+      heightData: '600px',
+      zoom: 7,
+      selectedOptions: [],
+      center: [116.244694, 39.517344],
+      window: '',
+      radio: 1,
+      personCharge: [],
+      district: null,
+      driverList: [],
+      listDate: { country: '中国', level: 'country', city: '' },
+      citylist: [],
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      rules: {
+        warehouseName: [
+          {
+            required: true,
+            message: '请输入仓库名称',
+            trigger: 'blur',
+          },
+          {
+            min: 2,
+            max: 20,
+            message: '仓库名长度不符合要求,请输入2-20字符之内',
+            trigger: 'blur',
+          },
+        ],
+      },
+      tranType: 1,
+      size: 10,
+      value1: '',
+      unitList: [],
+      freightspace: [
+        {
+          driver: '',
+          driverPhone: '',
+          carNo: '',
+          loadNetWeight: '',
+        },
+      ],
+      name: '',
+      staffList: [],
+      options: [],
+      carModel: [],
+      tranCarInfoList: {},
+      //上传
+      accessoryTFs: false,
+      fileList: [],
+      appendixIdsAdd: '',
+    }
+  },
+  mounted() {
+    this.deptBudgetList.id = this.$route.query.id
+    this.getList()
+  },
+
+  computed: {
+    totalStorage: function () {
+      var maxStorage = 0
+      for (var i = 0; i < this.freightspace.length; i++) {
+        maxStorage += Number(this.freightspace[i].maxStorage)
+      }
+      return maxStorage
+    },
+    total: function () {
+      var maxStorage = 0
+      for (var i = 0; i < this.deptBudgetList.tranCarInfoList.length; i++) {
+        maxStorage += Number(
+          this.deptBudgetList.tranCarInfoList[i].loadNetWeight
+        )
+      }
+      return maxStorage
+    },
+    label1: function () {
+      //  for (var i = 0; i < this.deptBudgetList.tranCarInfoList.length; i++) {
+      //   if (this.deptBudgetList.tranCarInfoList[i].temporaryDriverFlag == 0) {
+      //     return '司机名称'
+      //   }
+      //   else if (this.deptBudgetList.tranCarInfoList[i].temporaryDriverFlag == 1) {
+      //     // alert(this.deptBudgetList.tranCarInfoList[i].temporaryDriverFlag)
+      //     return '司机名称(临)'
+      //   }
+      //  }
+      return "(临)"
+
+      // item.temporaryDriverFlag == 0
+    },
+  },
+  methods: {
+    dataFilter(val) {
+      this.deptBudgetList.personCharge = val
+      if (val) {
+        this.options = this.staffList.filter((item) => {
+          if (
+            !!~item.staffName.indexOf(val) ||
+            !!~item.staffName.toUpperCase().indexOf(val.toUpperCase())
+          ) {
+            return true
+          }
+        })
+      } else {
+        this.options = this.staffList
+      }
+    },
+    selectstaff(e) {
+      for (var i = 0; i < this.staffList.length; i++) {
+        if (this.staffList[i].staffName == e) {
+          this.deptBudgetList.driverPhone = this.staffList[i].staffMobilePhone
+          this.freightspace[i].driverPhone = this.staffList[i].staffMobilePhone
+          // this.deptBudgetList.tranCarInfoList[i].driverPhone = this.staffList[i].staffMobilePhone
+          console.log(this.freightspace[i].driverPhone, 'dianhu')
+          this.deptBudgetList.personChargeKey = this.staffList[i].staffId
+        }
+      }
+    },
+    marker: function (item) {
+      this.deptBudgetList.warehousePositioning =
+        item.lnglat.lat + ',' + item.lnglat.lng
+    },
+    selectedAddress(e) {
+      this.deptBudgetList.warehousePositioning =
+        e.center.lat + ',' + e.center.lng
+    },
+    confirmPositioncity() {
+      this.listDate.level = 'city'
+      this.listDate.country = this.name
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleClose() {
+      this.dialogViewSpareMoney = false
+    },
+
+    //下拉司机姓名改变事件
+    selectdriver() {},
+    handleChange(value) {
+      this.selectedOptions = value
+    },
+    returnsales() {
+      this.deptBudgetList = {}
+      this.freightspace = {}
+      this.selectedOptions = ''
+      this.$router.push({ path: 'tranManagementTransporHairRespond' })
+    },
+    // confirmPosition() {
+    //   this.draggable = false
+    // },
+    // 上传附件
+    uploadSuccess(data, files, url) {
+      console.log(data, files, url)
+    },
+    handleClose() {
+      this.accessoryTFs = false
+    },
+    resetForm(deptBudgetList) {
+      this.$refs[deptBudgetList].resetFields()
+    },
+    getList() {
+      seeCat({ id: this.deptBudgetList.id })
+        .toPromise()
+        .then((response) => {
+          this.deptBudgetList = response
+          //  this.deptBudgetList.tranCarInfoList = response.tranCarInfoList
+          this.freightspace = response.tranCarInfoList
+          for (var i = 0; i < this.freightspace.length; i++) {
+            if (!this.freightspace[i].loadNetWeight) {
+              this.freightspace[i].loadNetWeight = 0
+            }
+          }
+        })
+      //司机姓名下拉
+      getstaff({ compId: sessionStorage.getItem('ws-pf_compId') })
+        .toPromise()
+        .then((response) => {
+          this.options = response
+          this.staffList = response
+        })
+      //车型
+      packList({ constId: 'TRAN5' })
+        .toPromise()
+        .then((response) => {
+          this.carModel = response
+        })
+    },
+    handleExamine() {},
+    approve() {},
+    // returnsales() {
+    //   this.$router.push({ path: 'purchaseContract' })
+    // },
+    selectChapterTwo(e) {
+      for (var i = 0; i < this.ChapterTwoList.length; i++) {
+        if (this.ChapterTwoList[i].constValue == e) {
+          this.deptBudgetList.gradeKey = this.ChapterTwoList[i].constKey
+        }
+      }
+    },
+    selectunitList(e) {
+      for (var i = 0; i < this.unitList.length; i++) {
+        if (this.unitList[i].constValue == e) {
+          this.deptBudgetList.acceptanceMethodKey = this.unitList[i].constKey
+        }
+      }
+    },
+    selectgrade(e) {
+      for (var i = 0; i < this.gradeList.length; i++) {
+        if (this.gradeList[i].constValue == e) {
+          this.deptBudgetList.gradeKey = this.gradeList[i].constKey
+        }
+      }
+    },
+    selectgoodsName(e) {
+      for (var i = 0; i < this.goodnameList.length; i++) {
+        if (this.goodnameList[i].constValue == e) {
+          this.deptBudgetList.goodsNameKey = this.goodnameList[i].constKey
+        }
+      }
+    },
+    selectpackingMethod(e) {
+      for (var i = 0; i < this.packtypeList.length; i++) {
+        if (this.packtypeList[i].constValue == e) {
+          this.deptBudgetList.packingMethodKey = this.packtypeList[i].constKey
+        }
+      }
+    },
+    //上传
+    fujian(row) {
+      if (
+        row.receiveAttachmentPath === null ||
+        row.receiveAttachmentPath === ''
+      ) {
+        EventBus.$emit(
+          'warning',
+          this.$t('system.noticeCircular.NoInformation')
+        )
+      } else {
+        this.accessoryTFs = true
+      }
+      this.appendixIdss = row.receiveAttachmentPath
+    },
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+/deep/.totalStorage .el-input__inner {
+  color: #afb5cb;
+  background: #f5f7fa;
+}
+.small-title {
+  position: relative;
+  padding: 10px;
+  font-weight: 600;
+}
+.small-title::before {
+  position: absolute;
+  content: '';
+  display: block;
+  background: #5473e8;
+  width: 4px;
+  height: 14px;
+  left: 0px;
+  top: 13px;
+}
+.position {
+  position: relative;
+}
+.amap-page-container {
+  width: 300px;
+  height: 300px;
+}
+.el-form {
+  padding: 0 15%;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 1px solid transparent;
+  border-bottom: 1px solid transparent;
+}
+.readonly {
+  position: relative;
+}
+.readonly:after {
+  content: '*';
+  color: #ff2727;
+  position: absolute;
+  right: 8px;
+  z-index: 10;
+  top: 21%;
+  font-size: 20px;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  padding: 0 25px;
+  border-left: 1px solid transparent;
+  background: #fff;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 100px;
+  text-align: center;
+  background: #fff;
+  // border: 1px solid #cdd2dc;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.box-app {
+  display: inline-block;
+  float: left;
+  margin-left: 30px;
+  line-height: 50px;
+}
+/deep/.el-dialog {
+  .el-form-item {
+    margin-bottom: 0 !important;
+    .el-input--medium {
+      textarea {
+        min-height: 100px !important;
+      }
+    }
+  }
+}
+.collapse-bottom {
+  margin-bottom: 20px;
+}
+.input-main .textarea .el-textarea__inner {
+  width: 100%;
+  z-index: 1;
+}
+.bg-left {
+  padding-left: 30px;
+}
+.bg-right {
+  padding-right: 10px;
+  text-align: right;
+}
+.bg-bottom {
+  margin: 15px 0px;
+}
+.wenzi {
+  width: 900px;
+  margin: 0 auto;
+}
+.wenzi h3 {
+  display: inline-block;
+  left: 10px;
+}
+.wenzi p {
+  display: inline-block;
+}
+.center {
+  width: 900px;
+  margin: 0 auto;
+}
+.el-form-item {
+  width: 50%;
+}
+.el-form-item__label {
+  text-align: center;
+}
+.ce {
+  width: 900px;
+  margin: 0 auto;
+}
+/*.crt-main .textarea /deep/ .el-form-item__label {*/
+/*  height: 82px;*/
+/*}*/
+// 控制select为只读的时候显示样式
+
+.hide-sel {
+  .el-input__inner {
+    border: 0px;
+  }
+  .el-icon-arrow-up {
+    display: none;
+  }
+  .el-textarea__inner {
+    background-color: #fff !important;
+    border: 0;
+  }
+  .el-date-editor {
+    i {
+      display: none;
+    }
+  }
+  .is-disabled {
+    .el-input__inner:hover {
+      background-color: #fff !important;
+      border: 0;
+    }
+    color: #606266;
+    .el-input__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+    .el-textarea__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+  }
+}
+
+// 控制select为只读的时候显示样式
+/deep/.ws-class-table-col {
+  height: auto;
+  padding: 0px 2px;
+  /deep/.el-input__inner {
+    padding: 0px 2px;
+  }
+}
+/deep/.is-disabled {
+  .el-input__prefix,
+  .el-input__suffix {
+    display: none;
+  }
+  .el-input__inner {
+    background-color: #fff;
+    border-color: #fff !important;
+    color: #000 !important;
+    font-size: 14px;
+    cursor: text;
+    padding: 0 !important;
+  }
+}
+.winseaview-view {
+  padding: 0 0 20px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+.ws-info-table .el-form-item {
+  width: 33.3333%;
+}
+.readonly:after {
+  display: none;
+}
+.el-textarea__inner {
+  display: none;
+}
+.el-form {
+  margin-top: 50px;
+}
+.readonly {
+  width: 16%;
+}
+
+//去边框
+/deep/.el-form-item {
+  border-right: 0px;
+  border-bottom: 0px;
+}
+/deep/.ws-info-table {
+  border-left: 0px;
+  border-top: 0px;
+}
+.ws-info-table .el-form-item .el-form-item__content {
+  border-right: 0px;
+  border-bottom: 0px;
+  border-left: 0px;
+  border-top: 0px;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 0px;
+  border-bottom: 0px;
+  border-left: 0px;
+  border-top: 0px;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  background: #f5f7fa;
+  border-radius: 4px;
+  border: 1px solid #d8dce6;
+  font-family: PingFangSC-Regular, PingFang SC;
+  margin-bottom: 5px;
+  background-color: #fff;
+  font-size: 14px;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  background-color: #fff;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+}
+
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  background: #f5f7fa;
+  border-radius: 4px;
+  border: 1px solid #d8dce6;
+}
+/deep/.flex .ws-info-table .el-form-item .el-form-item__content {
+  border: 0px;
+}
+//联络员及车次
+/deep/.liaison .ws-info-table .el-form-item {
+  width: 20%;
+}
+/deep/.liaison .ws-info-table .el-form-item .el-form-item__label {
+  width: 30%;
+  background: #F6F7FC;
+}
+/deep/.liaison .flex {
+  display: contents;
+}
+/deep/.liaison .ws-info-table{
+  background: #F6F7FC;
+border-radius: 4px;
+border: 1px solid #D8DCE6;
+}
+.catNos{
+  width: 100%;
+  height: 30px;
+  margin-top: 10px;
+  margin-left: 20px;
+  font-size: 14px;
+}
+.catNosCor{
+  color: #5473E8;
+}
+</style>

+ 64 - 45
src/views/tranManagement/tranManagementTransporHairRespond.vue

@@ -3,23 +3,11 @@
   <div>
     <BaseHeaderLayout :leftSpan="12">
       <template slot="left">
-        <ws-button
-          class="but"
-          type="primary"
-          @click="handleAdd()"
-        >
+        <ws-button class="but" type="primary" @click="handleAdd()">
           执行中</ws-button
         >
-        <ws-button
-          class="but"
-          @click="handleLook()" 
-          >已完成</ws-button
-        >
-        <ws-button
-          class="but"
-          @click="handleEdit()"  
-          >全部任务</ws-button
-        >
+        <ws-button class="but" @click="handleLook()">已完成</ws-button>
+        <ws-button class="but" @click="handleEdit()">全部任务</ws-button>
       </template>
       <!-- 接单开始 -->
       <template slot="left">
@@ -44,10 +32,7 @@
           type="input"
           class="findValue"
         ></ws-input>
-        <ws-button
-          class="find"
-          type="primary"
-          @click="find()"
+        <ws-button class="find" type="primary" @click="find()"
           ><img
             width="16"
             height="16"
@@ -77,22 +62,22 @@
         </el-table-column>
         <el-table-column prop="processNo" label="运输任务编号" width="120">
         </el-table-column>
-        <el-table-column prop="goodsName" label="运输方式" width="80">
+        <el-table-column prop="tranType" label="运输方式" width="80">
         </el-table-column>
-         <el-table-column prop="goodsName" label="货名" width="80">
+        <el-table-column prop="goodsName" label="货名" width="80">
         </el-table-column>
         <el-table-column prop="weight" label="重量(吨)" width="120">
         </el-table-column>
-        <el-table-column prop="send" label="发货" width="160">
+        <el-table-column prop="send" label="发货" width="200">
         </el-table-column>
-        <el-table-column prop="receive" label="收货" width="160">
+        <el-table-column prop="receive" label="收货" width="200">
         </el-table-column>
         <el-table-column prop="tranCycle" label="运输周期" width="160">
           <template scope="scope">
             {{ scope.row.deliveryDateStart }} ~ {{ scope.row.deliveryDateEnd }}
           </template>
         </el-table-column>
-        <el-table-column prop="status" label="状态">
+        <el-table-column prop="feedbackStatus" label="状态">
           <template slot-scope="scope">
             <el-popover
               placement="left"
@@ -104,20 +89,27 @@
               <template>
                 <span slot="reference">
                   <span
-                    v-if="scope.row.status == '待执行'"
+                    v-if="scope.row.feedbackStatus == '待执行'"
                     class="executory"
                   ></span>
                   <span
-                    v-if="scope.row.status == '执行中'"
+                    v-if="scope.row.feedbackStatus == '执行中'"
                     class="inExecution"
                   ></span>
-                  <span v-if="scope.row.status == '已完成'" class="done"></span
-                  >{{ scope.row.status }}
+                  <span
+                    v-if="scope.row.feedbackStatus == '已完成'"
+                    class="done"
+                  ></span
+                  >{{ scope.row.feedbackStatus }}
                 </span>
               </template>
               <div>
                 <p style="margin-top: 0; padding-left: 10px">XXXXX</p>
-                <div v-for="(item, index) in historyList" class="flex">
+                <div
+                  v-for="(item, index) in historyList"
+                  class="flex"
+                  :key="index"
+                >
                   <div class="vertical-text vertical-text-left">
                     {{ item.updateDate }}
                   </div>
@@ -151,7 +143,11 @@
             <ws-button class="completed" @click="trainSee(scope.row)">
               查看
             </ws-button>
-            <ws-button class="putstorage" @click="feedback(scope.row)">
+            <ws-button
+              class="putstorage"
+              @click="feedback(scope.row)"
+              v-show="scope.row.tranType == '汽运' && scope.row.feedbackStatus != '已完成'"
+            >
               反馈
             </ws-button>
           </template>
@@ -161,7 +157,7 @@
   </div>
 </template>
 <script>
-import { automobileList } from '@/model/transport/index'
+import { automobileList, state } from '@/model/transport/index'
 import { downloadFile } from '@/utils/batchDown'
 import Pagination from '@/components/Pagination'
 import WsUpload from '@/components/WsUpload'
@@ -255,29 +251,51 @@ export default {
     },
     //查看火运调度详细
     trainSee(row) {
-      this.$router.push({
-        
-      })
+      // if (row.tranType == '汽运') {
+      //   this.$router.push({
+      //     path: 'tranManagementVehicleLook',
+      //     query: {
+      //       id: row.id,
+      //     },
+      //   })
+      // }else if(row.tranType == '火运'){
+      //    this.$router.push({
+      //     path: 'tranManagementTransporTrainDetails',
+      //     query: {
+      //       id: row.id,
+      //     },
+      //   })
+      // }else if(row.tranType == '船运'){
+      //   this.$router.push({
+      //     path: 'tranManagementShippingLook',
+      //     query: {
+      //       id: row.id,
+      //     },
+      //   })
+      // }  
+       this.$router.push({
+          path: 'tranManagementTransporFeedbackLook',
+          query: {
+            id: row.id,
+          },
+        })
     },
     //反馈
     feedback(row) {
       this.$router.push({
         path: 'tranManagementTransporFeedback',
+        query: {
+          id: row.id,
+        },
       })
     },
 
     //已完成
-    handleLook() {
-      
-    },
+    handleLook() {},
     //待完成
-    handleAdd() {
-      
-    },
+    handleAdd() {},
     //全部任务
-    handleEdit() {
-      
-    },
+    handleEdit() {},
 
     dateFormat(fmt, date) {
       let ret
@@ -320,7 +338,6 @@ export default {
         contractType: this.contractType,
         currentPage: this.currentPage,
         pageSize: this.pageSize,
-        tranTypeKey: this.tranTypeKey,
       })
         .toPromise()
         .then((response) => {
@@ -341,7 +358,9 @@ export default {
         type: 'warning',
       })
         .then(() => {
-          editstatus({ id: row.id })
+          state({
+            id: row.id,
+          })
             .toPromise()
             .then((response) => {
               this.$notify.success({

+ 4 - 4
src/views/tranManagement/tranManagementTransporTationFire.vue

@@ -67,9 +67,9 @@
         </el-table-column>
         <el-table-column prop="weight" label="重量(吨)" width="120">
         </el-table-column>
-        <el-table-column prop="send" label="发货" width="160">
+        <el-table-column prop="send" label="发货" width="200">
         </el-table-column>
-        <el-table-column prop="receive" label="收货" width="160">
+        <el-table-column prop="receive" label="收货" width="200">
         </el-table-column>
         <el-table-column prop="tranCycle" label="运输周期" width="160">
           <template scope="scope">
@@ -101,7 +101,7 @@
               </template>
               <div>
                 <p style="margin-top: 0; padding-left: 10px">XXXXX</p>
-                <div v-for="(item, index) in historyList" class="flex">
+                <div v-for="(item, index) in historyList" class="flex" :key="index">
                   <div class="vertical-text vertical-text-left">
                     {{ item.updateDate }}
                   </div>
@@ -255,7 +255,7 @@ export default {
       })
     },
 
-    //执行中
+    //待完成
     handleLook() {},
     //已完成
     handleAdd() {},

+ 526 - 373
src/views/tranManagement/tranManagementTransporTrainDetails.vue

@@ -1,16 +1,16 @@
-// 查看派车详情
+//火运调度详情
 <template>
   <div class="container">
     <el-row>
-      <el-col :span="20">
-        <h2 class="bg-left title">查看派车详情</h2>
+      <el-col :span="12">
+        <h2 class="bg-left title">火运调度详情</h2>
       </el-col>
-      <el-col :span="4" class="bg-right">
+      <el-col :span="12" class="bg-right">
         <el-button
           class="bg-bottom"
           type="primary"
           size="small"
-          @click="revert()"
+          @click="returnsales()"
           ><img
             width="6"
             height="10"
@@ -22,75 +22,35 @@
       </el-col>
     </el-row>
 
-    <ws-form ref="deptBudgetList" :rules="rules" :model="deptBudgetList">
-      <div class="small-title">任务详情</div>
+    <ws-form
+      class="position"
+      ref="deptBudgetList"
+      :rules="rules"
+      :model="deptBudgetList"
+    >
+      <div class="small-title" style="font-size: 16px;">任务详情</div>
       <ws-info-table>
         <!--任务编号-->
         <ws-form-item label="任务编号" span="1" prop="processNo">
-          <ws-input
-            :disabled="disabled"
-            v-model="deptBudgetList.processNo"
-            placeholder="请输入任务编号"
-            maxlength="20"
-            size="small"
-          />
+          {{ deptBudgetList.processNo }}
         </ws-form-item>
         <!--货名-->
         <ws-form-item label="货名" span="1" prop="goodsName">
-          <!-- <el-select
-            v-model="deptBudgetList.goodsName"
-            placeholder="请选择货名"
-            filterable
-            :filter-method="dataFilter"
-            @change="selectstaff"
-          >
-            <el-option
-              v-for="item in personCharge"
-              :key="item.value"
-              :label="item.staffName"
-              :value="item.staffName"
-            /> -->
-          <ws-input
-            :disabled="disabled"
-            v-model="deptBudgetList.goodsName"
-            placeholder="请输入货名"
-            maxlength="20"
-            size="small"
-          />
-          <!-- </el-select> -->
+          {{ deptBudgetList.goodsName }}
         </ws-form-item>
         <!--重量(吨)-->
         <ws-form-item label="重量(吨)" span="1" prop="weight">
-          <ws-input
-            :disabled="disabled"
-            v-model="deptBudgetList.weight"
-            placeholder="请输入重量(吨)"
-            maxlength="100"
-            size="small"
-          />
+          {{ deptBudgetList.weight }}
         </ws-form-item>
-
         <!--发货地址-->
         <ws-form-item label="发货地址" span="1" prop="sendDetailedAddress">
-          <!-- <ws-input
-            v-model="deptBudgetList.sendDetailedAddress"
-            placeholder=""
-            maxlength="100"
-            size="small"
-          /> -->
           {{ deptBudgetList.sendPrivate }}{{ deptBudgetList.sendCity
           }}{{ deptBudgetList.sendArea }}
         </ws-form-item>
 
         <!--发货人-->
         <ws-form-item label="发货人" span="1" prop="sender" class="readonly">
-          <ws-input
-            :disabled="disabled"
-            v-model="deptBudgetList.sender"
-            placeholder="请输入发货人"
-            maxlength="100"
-            size="small"
-          />
+          {{ deptBudgetList.sender }}
         </ws-form-item>
 
         <!--发货人电话-->
@@ -100,322 +60,388 @@
           prop="senderPhone"
           class="readonly"
         >
-          <ws-input
-            :disabled="disabled"
-            v-model="deptBudgetList.senderPhone"
-            placeholder="请输入发货人电话"
-            maxlength="100"
-            size="small"
-          />
+          {{ deptBudgetList.senderPhone }}
         </ws-form-item>
         <!--收货地址-->
         <ws-form-item label="收货地址" span="1" prop="receiveDetailedAddress">
-          <!-- <ws-input
-            v-model="deptBudgetList.receiveDetailedAddress"
-            placeholder="请输入仓库名"
-            maxlength="20"
-            size="small"
-          /> -->
           {{ deptBudgetList.receivePrivate }}{{ deptBudgetList.receiveCity
           }}{{ deptBudgetList.receiveArea }}
         </ws-form-item>
         <!--收货人-->
         <ws-form-item label="收货人" span="1" prop="receiver">
-          <ws-input
-            :disabled="disabled"
-            v-model="deptBudgetList.receiver"
-            placeholder="请输入仓库名"
-            maxlength="20"
-            size="small"
-          />
+          {{ deptBudgetList.receiver }}
         </ws-form-item>
         <!--收货人电话-->
         <ws-form-item label="收货人电话" span="1" prop="receiverPhone">
-          <ws-input
-            :disabled="disabled"
-            v-model="deptBudgetList.receiverPhone"
-            placeholder="请输入仓库名"
-            maxlength="20"
-            size="small"
-          />
+          {{ deptBudgetList.receiverPhone }}
         </ws-form-item>
         <!--发货日期-->
         <ws-form-item label="发货日期" span="1" prop="deliveryDateStart">
-          <ws-input
-            :disabled="disabled"
-            v-model="deptBudgetList.deliveryDateStart"
-            placeholder="请输入仓库名"
-            maxlength="20"
-            size="small"
-          />
+          {{ deptBudgetList.deliveryDateStart }}
         </ws-form-item>
         <!--最晚到货日期-->
         <ws-form-item label="最晚到货日期" span="1" prop="deliveryDateEnd">
-          <ws-input
-            :disabled="disabled"
-            v-model="deptBudgetList.deliveryDateEnd"
-            placeholder="请输入仓库名"
-            maxlength="20"
-            size="small"
-          />
+          {{ deptBudgetList.deliveryDateEnd }}
         </ws-form-item>
         <!--合同编号-->
         <ws-form-item label="合同编号" span="1" prop="contractNo">
-          <ws-input
-            :disabled="disabled"
-            v-model="deptBudgetList.contractNo"
-            placeholder="请输入合同编号"
-            maxlength="20"
-            size="small"
-          />
+          {{ deptBudgetList.contractNo }}
         </ws-form-item>
       </ws-info-table>
-      <div class="small-title">派车</div>
-      <div
-        style="width: 100%"
-        class="driver"
-        v-for="(item, index) in deptBudgetList.tranCarInfoList"
-      >
+      <div class="small-title" style="font-size: 16px;">联络员及车皮信息</div>
+      <div class="liaison" v-for="(item, index) in deptBudgetList.tranCarInfoList" :key="index">
         <ws-info-table>
-          <span class="not" v-if="item.statusFlag == 3">{{ item.status }}</span>
-          <span class="already" v-if="item.statusFlag == 1">{{
-            item.status
-          }}</span>
           <!--姓名-->
-          <ws-form-item label="姓名" span="1" prop="driver">
-            <ws-input
-              :disabled="disabled"
-              v-model="item.driver"
-              placeholder="请输入姓名"
-              maxlength="20"
-              size="small"
-            />
-          </ws-form-item>
-          <ws-form-item class="phone" label="电话" span="1" prop="driverPhone">
-            <ws-input
-              :disabled="disabled"
-              v-model="item.driverPhone"
-              placeholder="请输入电话"
-              maxlength="20"
-              size="small"
-            />
+          <ws-form-item label="姓名:" span="1" prop="driver">
+            {{ item.driver }}
           </ws-form-item>
-          <ws-form-item label="车牌号" span="1" prop="carNo">
-            <ws-input
-              :disabled="disabled"
-              v-model="item.carNo"
-              placeholder="请输入车牌号"
-              maxlength="20"
-              size="small"
-            />
+          <!--电话-->
+          <ws-form-item label="电话:" span="1" prop="driverPhone">
+            {{ item.driverPhone }}
           </ws-form-item>
-          <ws-form-item label="装车(吨)" span="1" prop="loadNetWeight">
-            <ws-input
-              :disabled="disabled"
-              v-model="deptBudgetList.loadNetWeight"
-              placeholder="未装车"
-              maxlength="20"
-              size="small"
-            />
+          <!--发车日期-->
+          <ws-form-item label="发车日期:" span="1" prop="sendDateStart">
+            {{ item.sendDateStart }}
           </ws-form-item>
-          <ws-form-item label="卸车(吨)" span="1" prop="unloadNetWeight">
-            <ws-input
-              :disabled="disabled"
-              v-model="item.unloadNetWeight"
-              placeholder="未卸车"
-              maxlength="20"
-              size="small"
-            />
+          <!--到站日期-->
+          <ws-form-item label="到站日期:" span="1" prop="receiveDateEnd">
+            {{ item.receiveDateEnd }}
           </ws-form-item>
-          <ws-form-item label="损耗(吨)" span="1" prop="loss">
-            <ws-input
-              :disabled="disabled"
-              v-model="item.loss"
-              placeholder="未损耗"
-              maxlength="20"
-              size="small"
-            />
-          </ws-form-item>
-          <ws-form-item label="合同" span="1" prop="unloadNetWeight">
+          <!--车型-->
+          <ws-form-item label="车型:" span="1" prop="carModel">
+            {{item.carModel }}
           </ws-form-item>
         </ws-info-table>
+        <ws-info-table>
+          <div
+            style="width: 100%"
+            class="flex position"
+            v-for="(items, index) in freightspace"
+            :key="index"
+          >
+            <!--车厢号-->
+            <ws-form-item
+              :label="'车厢号-' + (index + 1)+':'"
+              span="1"
+              prop="trainNo"
+            >
+              {{ items.trainNo }}
+            </ws-form-item>
+          </div>
+        </ws-info-table>
       </div>
     </ws-form>
-    <div style="text-align: right; padding: 10px">
+
+    <!-- 提交 -->
+    <div style="text-align: right; padding: 10px" class="center">
       <el-button
-        class="bg-bottom-up"
+        class="bg-bottom"
         type="primary"
         size="small"
-        @click="revert()"
+        @click="returnsales()"
         >关闭</el-button
       >
     </div>
   </div>
 </template>
 <script>
-import { pullDown, addstorageputList } from '@/model/warehouse/index'
-import Pagination from '@/components/Pagination'
+import { regionData, CodeToText, TextToCode } from 'element-china-area-data'
+import { seeCat, dispatchCat, packList } from '@/model/transport/index'
+import { getstaff } from '@/model/warehouse/index'
 import WsUpload from '@/components/WsUpload'
-import { seeCat } from '@/model/transport/index'
-// import { dayjs, fmoney, EventBus } from 'base-core-lib'
-import { dayjs, EventBus } from 'base-core-lib'
+import mapDrag from '@/components/mapdrag/mapdrag'
 export default {
   name: 'viewSpareMoney',
   components: {
     WsUpload,
-    Pagination,
+    mapDrag,
   },
   watch: {
-    // vesselId(val) {
-    //   this.getList()
-    // },
+    vesselId(val) {
+      this.getVesselData()
+    },
     isShow(val) {
       this.showType = val
     },
   },
   data() {
     return {
-      //弹出框
-      dialogViewSpareMoney: false,
-      dialogApproveFormVisible: false,
-      // 船舶类型
-      monetaryKey: null,
-      // 表格显示数据
-      tableDate: [],
-      // 是否显示
-      showType: true,
-      // 年
-      year: '',
-      disabled: true,
-      deptBudgetTotal: 0,
-      currentPage: 1,
-      pageSize: 10,
-      searchType: 1,
-      searchKeyWord: '',
-      contractType: 2,
-      startDate: null,
-      endDate: null,
-      goodnameList: {},
-      // 提交类型
-      submitType: true,
-      storageType: [],
-      readonly: true,
-      appendixIdsAdd: '',
-      uploadSuccess: {},
-      onChange: {},
-      gradeList: [],
+      staffList: [],
+      deptBudgetList: {
+        totalStorage: 0,
+        tranCarInfoList: [],
+      },
+      options_: regionData,
+      heightData: '600px',
+      zoom: 7,
+      selectedOptions: [],
+      center: [116.244694, 39.517344],
+      window: '',
+      radio: 1,
+      personCharge: [],
+      district: null,
+      driverList: [],
+      listDate: { country: '中国', level: 'country', city: '' },
+      citylist: [],
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      tranType: 2,
       rules: {
-        netWeight: [
+        warehouseName: [
           {
             required: true,
-            type: 'number',
-            message: '请输入活动名称',
+            message: '请输入仓库名称',
+            trigger: 'blur',
+          },
+          {
+            min: 2,
+            max: 20,
+            message: '仓库名长度不符合要求,请输入2-20字符之内',
             trigger: 'blur',
           },
         ],
       },
+      appendixIdsAdd: '',
       size: 10,
-      compId: sessionStorage.getItem('ws-pf_compId'),
-      deptCircularPage: {},
-      packtypeList: {},
-      date: {
-        year: dayjs().format('YYYY'),
-        month: dayjs().format('MM'),
-      },
-      contractList: [],
-      deptBudgetList: {
-        warehouseInOutDetail: {},
-      },
-      historyList: [],
-
-      pickerBeginDateBefore: {
-        disabledDate: (time) => {
-          return time.getTime() > Date.now()
-        },
-      },
-      accessoryTFs: false,
+      value1: '',
+      unitList: [],
+      freightspace: [
+        // {
+        //   trainNo: '',
+        // },
+      ],
+      name: '',
+      list: [],
+      staffList: [],
+      options: [],
+      carModel: [],
+      tranCarInfoList: {},
+      arr: [],
     }
   },
-  activated() {
+  mounted() {
+    this.deptBudgetList.id = this.$route.query.id
     this.getList()
   },
+  computed: {
+    totalStorage: function () {
+      var maxStorage = 0
+      for (var i = 0; i < this.freightspace.length; i++) {
+        maxStorage += Number(this.freightspace[i].maxStorage)
+      }
+      return maxStorage
+    },
+  },
   methods: {
-    //返回按钮
-    revert() {
-      this.$router.push({ path: 'tranManagementVehicle' })
+    dataFilter(val) {
+      this.deptBudgetList.personCharge = val
+      if (val) {
+        this.options = this.staffList.filter((item) => {
+          if (
+            !!~item.staffName.indexOf(val) ||
+            !!~item.staffName.toUpperCase().indexOf(val.toUpperCase())
+          ) {
+            return true
+          }
+        })
+      } else {
+        this.options = this.staffList
+      }
     },
-    del(index) {
-      if (this.freightspace.length > 1) {
-        this.freightspace.splice(index, 1)
+    selectstaff(e) {
+      for (var i = 0; i < this.staffList.length; i++) {
+        if (this.staffList[i].staffName == e) {
+          this.deptBudgetList.driverPhone = this.staffList[i].staffMobilePhone
+          this.deptBudgetList.personChargeKey = this.staffList[i].staffId
+        }
       }
     },
+    marker: function (item) {
+      this.deptBudgetList.warehousePositioning =
+        item.lnglat.lat + ',' + item.lnglat.lng
+    },
+    selectedAddress(e) {
+      this.deptBudgetList.warehousePositioning =
+        e.center.lat + ',' + e.center.lng
+    },
+    confirmPositioncity() {
+      this.listDate.level = 'city'
+      this.listDate.country = this.name
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleClose() {
+      this.dialogViewSpareMoney = false
+    },
+    //下拉司机姓名改变事件
+    selectdriver() {},
+    handleChange(value) {
+      this.selectedOptions = value
+    },
+    returnsales() {
+      this.deptBudgetList = {}
+      this.freightspace = {}
+      this.selectedOptions = ''
+      this.$router.push({ path: 'tranManagementTransporTationFire' })
+    },
+    // confirmPosition() {
+    //   this.draggable = false
+    // },
+    // 上传附件
+    uploadSuccess(data, files, url) {
+      console.log(data, files, url)
+    },
+    resetForm(deptBudgetList) {
+      this.$refs[deptBudgetList].resetFields()
+    },
+
     getList() {
-      seeCat({ id: this.$route.query.id })
+      seeCat({ id: this.deptBudgetList.id })
         .toPromise()
         .then((response) => {
-          for (var i = 0; i < response.tranCarInfoList.length; i++) {
-            if (
-              response.tranCarInfoList[i].loadNetWeight &&
-              response.tranCarInfoList[i].unloadNetWeight
-            ) {
-              response.tranCarInfoList[i].loss =
-                response.tranCarInfoList[i].loadNetWeight -
-                response.tranCarInfoList[i].unloadNetWeight
-            } else if (response.tranCarInfoList[i].loadNetWeight) {
-              response.tranCarInfoList[i].loss =
-                response.tranCarInfoList[i].loadNetWeight
-            } else {
-              response.tranCarInfoList[i].loss = 0
+          this.deptBudgetList = response
+          this.deptBudgetList.tranCarInfoList = response.tranCarInfoList
+          if (response.tranCarInfoList[0].boxNo) {
+            this.list = response.tranCarInfoList[0].boxNo.split(',')
+            for (var i = 0; i < this.list.length; i++) {
+              var num = this.list[i]
+              this.freightspace.push({
+                trainNo: num,
+              })
             }
           }
-          this.deptBudgetList = response
         })
     },
-    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
-    //     })
-    // },
-    // deletecontract(){},
-    //删除
+    handleExamine() {},
     approve() {},
-    listQuery() {},
+    // returnsales() {
+    //   this.$router.push({ path: 'purchaseContract' })
+    // },
+    selectChapterTwo(e) {
+      for (var i = 0; i < this.ChapterTwoList.length; i++) {
+        if (this.ChapterTwoList[i].constValue == e) {
+          this.deptBudgetList.gradeKey = this.ChapterTwoList[i].constKey
+        }
+      }
+    },
+    selectunitList(e) {
+      for (var i = 0; i < this.unitList.length; i++) {
+        if (this.unitList[i].constValue == e) {
+          this.deptBudgetList.acceptanceMethodKey = this.unitList[i].constKey
+        }
+      }
+    },
+    selectgrade(e) {
+      for (var i = 0; i < this.gradeList.length; i++) {
+        if (this.gradeList[i].constValue == e) {
+          this.deptBudgetList.gradeKey = this.gradeList[i].constKey
+        }
+      }
+    },
+    selectgoodsName(e) {
+      for (var i = 0; i < this.goodnameList.length; i++) {
+        if (this.goodnameList[i].constValue == e) {
+          this.deptBudgetList.goodsNameKey = this.goodnameList[i].constKey
+        }
+      }
+    },
+    selectpackingMethod(e) {
+      for (var i = 0; i < this.packtypeList.length; i++) {
+        if (this.packtypeList[i].constValue == e) {
+          this.deptBudgetList.packingMethodKey = this.packtypeList[i].constKey
+        }
+      }
+    },
+    // 编辑
+    editClick(item, index) {
+      const map = JSON.parse(JSON.stringify(item))
+      if (Object.is(item.id, 1)) {
+        return
+      }
+      if (Object.is(this.unitList[index].flag, 'delete')) {
+        map.flag = 'check'
+        this.$set(this.unitList, index, map)
+      } else {
+        map.flag = 'delete'
+        this.$set(this.unitList, index, map)
+      }
+    },
+    // 删除
+    deleteClick(item, index) {
+      if (Object.is(item.constKey, 1)) {
+        return
+      }
+      if (!item.constValue) {
+        this.unitList.splice(index, 1)
+        return
+      }
+      delxiala({ id: this.unitList[index].id })
+        .toPromise()
+        .then((response) => {
+          this.getUnitList()
+          this.pleaseChoose = ''
+        })
+    },
   },
 }
 </script>
+
 <style lang="scss" scoped>
-/deep/.basicInformation {
-  .ws-info-table {
-    border: none;
-  }
-  .el-form-item {
-    width: 33.3333%;
-    border: none;
-    .el-form-item__label {
-      background: transparent;
-      border: none;
-    }
-    .el-form-item__content {
-      border: none;
-    }
-  }
+/deep/.totalStorage .el-input__inner {
+  color: #afb5cb;
+  background: #f5f7fa;
+}
+.small-title {
+  position: relative;
+  padding: 10px;
+  font-weight: 600;
+}
+.small-title::before {
+  position: absolute;
+  content: '';
+  display: block;
+  background: #5473e8;
+  width: 4px;
+  height: 14px;
+  left: 0px;
+  top: 13px;
+}
+.position {
+  position: relative;
+}
+
+.del {
+  position: absolute;
+  right: -38px;
+  top: 9px;
+  cursor: pointer;
+}
+.del {
+  right: 0;
+}
+.amap-page-container {
+  width: 300px;
+  height: 300px;
+}
+.el-form {
+  padding: 0 15%;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 1px solid transparent;
+  border-bottom: 1px solid transparent;
+}
+.readonly {
+  position: relative;
+}
+.readonly:after {
+  content: '*';
+  color: #ff2727;
+  position: absolute;
+  right: 8px;
+  z-index: 10;
+  top: 21%;
+  font-size: 20px;
 }
 .title {
   position: relative;
-  padding-left: 10px;
 }
 .title::before {
   content: '';
@@ -426,9 +452,6 @@ export default {
   position: absolute;
   left: 0;
 }
-.el-form {
-  padding: 0 10%;
-}
 .el-button--primary {
   background-color: #5878e8;
   border-color: #5878e8;
@@ -436,95 +459,191 @@ export default {
 .el-col {
   background: #f6f7fc;
 }
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  padding: 0 25px;
+  border-left: 1px solid transparent;
+  background: #fff;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 100px;
+  text-align: center;
+  background: #fff;
+  // border: 1px solid #cdd2dc;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.box-app {
+  display: inline-block;
+  float: left;
+  margin-left: 30px;
+  line-height: 50px;
+}
+/deep/.el-dialog {
+  .el-form-item {
+    margin-bottom: 0 !important;
+    .el-input--medium {
+      textarea {
+        min-height: 100px !important;
+      }
+    }
+  }
+}
+.collapse-bottom {
+  margin-bottom: 20px;
+}
+.input-main .textarea .el-textarea__inner {
+  width: 100%;
+  z-index: 1;
+}
+.bg-left {
+  padding-left: 30px;
+}
 .bg-right {
+  padding-right: 10px;
   text-align: right;
-  padding: 16px 20px;
 }
-.center {
-  position: relative;
-  top: 50px;
-  width: 40%;
-  height: 2000px;
+.bg-bottom {
+  margin: 15px 0px;
+}
+.wenzi {
+  width: 900px;
   margin: 0 auto;
 }
-/deep/.ws-info-table .el-form-item {
-  width: 33.33%;
+.wenzi h3 {
+  display: inline-block;
+  left: 10px;
 }
-/deep/.el-form-item__label {
-  width: 160px;
+.wenzi p {
+  display: inline-block;
 }
-//选填
-/deep/.el-form-item {
-  width: 50%;
+.center {
+  width: 900px;
+  margin: 0 auto;
 }
-.container {
-  overflow: scroll;
-  height: 120vh;
+.el-form-item {
+  width: 50%;
 }
-/deep/.ws-info-table .el-form-item .el-form-item__label {
+.el-form-item__label {
   text-align: center;
 }
-.deliverydate {
-  display: inline-block;
-  width: 10%;
+.ce {
+  width: 900px;
+  margin: 0 auto;
 }
-.center {
-  margin-top: -60px;
-  width: 80%;
+/*.crt-main .textarea /deep/ .el-form-item__label {*/
+/*  height: 82px;*/
+/*}*/
+// 控制select为只读的时候显示样式
+
+.hide-sel {
+  .el-input__inner {
+    border: 0px;
+  }
+  .el-icon-arrow-up {
+    display: none;
+  }
+  .el-textarea__inner {
+    background-color: #fff !important;
+    border: 0;
+  }
+  .el-date-editor {
+    i {
+      display: none;
+    }
+  }
+  .is-disabled {
+    .el-input__inner:hover {
+      background-color: #fff !important;
+      border: 0;
+    }
+    color: #606266;
+    .el-input__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+    .el-textarea__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+  }
 }
-//仓位
 
-.position {
-  border-radius: 2px;
-  font-size: 12px;
-  line-height: 20px;
-  display: inline-grid;
-  padding: 2px 4px;
+// 控制select为只读的时候显示样式
+/deep/.ws-class-table-col {
+  height: auto;
+  padding: 0px 2px;
+  /deep/.el-input__inner {
+    padding: 0px 2px;
+  }
 }
-//表格文字
-/deep/.ws-info-table .el-form-item .el-form-item__label {
-  text-align: left;
-  font-size: 14px;
-  font-family: PingFangSC-Regular, PingFang SC;
-  font-weight: 400;
-  color: #000;
-  line-height: 16px;
+/deep/.is-disabled {
+  .el-input__prefix,
+  .el-input__suffix {
+    display: none;
+  }
+  .el-input__inner {
+    background-color: #fff;
+    border-color: #fff !important;
+    color: #000 !important;
+    font-size: 14px;
+    cursor: text;
+    padding: 0 !important;
+  }
 }
-.small-title {
-  position: relative;
-  padding: 10px;
-  font-weight: 600;
+.winseaview-view {
+  padding: 0 0 20px;
 }
-.small-title::before {
-  position: absolute;
-  content: '';
-  display: block;
-  background: #5473e8;
-  width: 4px;
-  height: 14px;
-  left: 0px;
-  top: 13px;
-  padding: 4px 2px;
+.container {
+  overflow: scroll;
+  height: 93vh;
 }
-// 下面列表
-.neifor {
-  width: 90%;
-  background-color: #f6f7fc;
+.ws-info-table .el-form-item {
+  width: 33.3333%;
 }
-/deep/.neifor .ws-info-table .el-form-item .el-form-item__label {
-  width: 35%;
-  text-align: center;
+.readonly:after {
+  display: none;
 }
-
-/deep/.neifor .el-input--small .el-input__inner {
-  width: 100%;
+.el-textarea__inner {
+  display: none;
+}
+.el-form {
+  margin-top: 50px;
 }
-// .ws-info-table[data-v-850a44a6] .el-form-item {
-//     width: 16.66%;
-// }
-.xia {
+.readonly {
   width: 16%;
 }
+
 //去边框
 /deep/.el-form-item {
   border-right: 0px;
@@ -546,23 +665,57 @@ export default {
   border-left: 0px;
   border-top: 0px;
 }
-.driver {
-  position: relative;
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  background: #f5f7fa;
+  border-radius: 4px;
+  border: 1px solid #d8dce6;
+  font-family: PingFangSC-Regular, PingFang SC;
+  margin-bottom: 5px;
+  background-color: #fff;
+  font-size: 14px;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
 }
-.not,
-.already {
-  position: absolute;
-  left: -45px;
-  top: 10px;
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  background-color: #fff;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
 }
 
-/deep/.driver .ws-info-table .el-form-item {
-  width: 14%;
-}
-/deep/.driver .ws-info-table .el-form-item .el-form-item__label {
-  width: 86px;
-}
-/deep/.driver .ws-info-table .el-form-item.phone .el-form-item__label {
-  width: 50px;
-}
-</style>
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  background: #f5f7fa;
+  border-radius: 4px;
+  border: 1px solid #d8dce6;
+}
+/deep/.flex .ws-info-table .el-form-item .el-form-item__content {
+  border: 0px;
+}
+//联络员及车次
+/deep/.liaison .ws-info-table .el-form-item {
+  width: 20%;
+}
+/deep/.liaison .ws-info-table .el-form-item .el-form-item__label {
+  width: 30%;
+  background: #F5F7FA;
+  border: none;
+}
+/deep/.liaison .flex {
+  display: contents;
+}
+/deep/.liaison{
+  background: #F5F7FA;
+border-radius: 4px;
+border: 0px solid #D8DCE6;
+}
+/deep/.liaison .ws-info-table .el-form-item .el-form-item__content {
+  // border: 0px solid #d8dce6;
+  border-radius: 0px;
+  border-left: none;
+  border-bottom: none;
+  border-top: none;
+}
+</style>

+ 259 - 147
src/views/tranManagement/tranManagementTransporTrainNo.vue

@@ -28,160 +28,182 @@
       :rules="rules"
       :model="deptBudgetList"
     >
-      <div class="small-title">任务详情</div>
+      <div class="small-title" style="font-size: 16px;">任务详情</div>
       <ws-info-table>
         <!--任务编号-->
         <ws-form-item label="任务编号" span="1" prop="processNo">
-          {{deptBudgetList.processNo}}
+          {{ deptBudgetList.processNo }}
         </ws-form-item>
         <!--货名-->
         <ws-form-item label="货名" span="1" prop="goodsName">
-            {{deptBudgetList.goodsName}}
+          {{ deptBudgetList.goodsName }}
         </ws-form-item>
         <!--重量(吨)-->
         <ws-form-item label="重量(吨)" span="1" prop="weight">
-          {{deptBudgetList.weight}}
+          {{ deptBudgetList.weight }}
         </ws-form-item>
         <!--发货地址-->
         <ws-form-item label="发货地址" span="1" prop="sendDetailedAddress">
-           {{deptBudgetList.sendPrivate}}{{deptBudgetList.sendCity}}{{deptBudgetList.sendArea}}
+          {{ deptBudgetList.sendPrivate }}{{ deptBudgetList.sendCity
+          }}{{ deptBudgetList.sendArea }}
         </ws-form-item>
 
         <!--发货人-->
         <ws-form-item label="发货人" span="1" prop="sender" class="readonly">
-          {{deptBudgetList.sender}}
+          {{ deptBudgetList.sender }}
         </ws-form-item>
 
         <!--发货人电话-->
-        <ws-form-item label="发货人电话" span="1"  prop="senderPhone" class="readonly">
-          {{deptBudgetList.senderPhone}}
+        <ws-form-item
+          label="发货人电话"
+          span="1"
+          prop="senderPhone"
+          class="readonly"
+        >
+          {{ deptBudgetList.senderPhone }}
         </ws-form-item>
         <!--收货地址-->
         <ws-form-item label="收货地址" span="1" prop="receiveDetailedAddress">
-           {{deptBudgetList.receivePrivate}}{{deptBudgetList.receiveCity}}{{deptBudgetList.receiveArea}}
+          {{ deptBudgetList.receivePrivate }}{{ deptBudgetList.receiveCity
+          }}{{ deptBudgetList.receiveArea }}
         </ws-form-item>
         <!--收货人-->
         <ws-form-item label="收货人" span="1" prop="receiver">
-          {{deptBudgetList.receiver}}
+          {{ deptBudgetList.receiver }}
         </ws-form-item>
         <!--收货人电话-->
         <ws-form-item label="收货人电话" span="1" prop="receiverPhone">
-          {{deptBudgetList.receiverPhone}}
+          {{ deptBudgetList.receiverPhone }}
         </ws-form-item>
         <!--发货日期-->
         <ws-form-item label="发货日期" span="1" prop="deliveryDateStart">
-          {{deptBudgetList.deliveryDateStart}}
+          {{ deptBudgetList.deliveryDateStart }}
         </ws-form-item>
         <!--最晚到货日期-->
         <ws-form-item label="最晚到货日期" span="1" prop="deliveryDateEnd">
-          {{deptBudgetList.deliveryDateEnd}}
+          {{ deptBudgetList.deliveryDateEnd }}
         </ws-form-item>
         <!--合同编号-->
         <ws-form-item label="合同编号" span="1" prop="contractNo">
-          {{deptBudgetList.contractNo}}
-        </ws-form-item>
-      </ws-info-table>
-      <div class="small-title">联络员及车皮信息</div>
-     <div class="liaison">
-      <ws-info-table >
-        <!--姓名-->
-        <ws-form-item label="姓名" span="1" prop="driver">
-          <el-select
-            v-model="this.deptBudgetList.tranCarInfoList[0].driver"
-            placeholder="请选择姓名"
-            filterable
-            :filter-method="dataFilter"
-            @change="selectstaff"
-          >
-            <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.staffName"
-              :value="item.staffName"
-            />
-          </el-select>
-        
-        </ws-form-item>
-        <!--电话-->
-        <ws-form-item label="电话" span="1" prop="driverPhone">
-          <ws-input
-            v-model="this.deptBudgetList.tranCarInfoList[0].driverPhone"
-            placeholder="请输入电话"
-            maxlength="20"
-            size="small"
-          />
-        </ws-form-item>
-        <!--发车日期-->
-        <ws-form-item label="发车日期" span="1" prop="sendDateStart">
-          <ws-date-picker
-            v-model="this.deptBudgetList.tranCarInfoList[0].sendDateStart"
-            type="date"
-            placeholder="请选择发货日期"
-            value-format="yyyy-MM-dd"
-          />
-        </ws-form-item>
-        <!--到站日期-->
-        <ws-form-item label="到站日期" span="1" prop="receiveDateEnd">
-          <ws-date-picker
-            v-model="this.deptBudgetList.tranCarInfoList[0].receiveDateEnd"
-            type="date"
-            placeholder="请选择发货日期"
-            value-format="yyyy-MM-dd"
-          />
-        </ws-form-item>
-        <!--车型-->
-        <ws-form-item label="车型" span="1" prop="carModel">
-          <ws-select
-            v-model="this.deptBudgetList.tranCarInfoList[0].carModel"
-            placeholder="请输入车型"
-            class="typeselect"
-          >
-            <ws-option
-              v-for="item in carModel"
-              :key="item.constKey"
-              :label="item.constValue"
-              :value="item.constValue"
-            />
-          </ws-select>
+          {{ deptBudgetList.contractNo }}
         </ws-form-item>
       </ws-info-table>
-      <ws-info-table>
-        <div
-          style="width: 100%"
-          class="flex position"
-          v-for="(item, index) in freightspace"
-        >
-          <!--车厢号-->
-          <ws-form-item
-            :label="'车厢号-' + (index + 1)"
-            span="1"
-            prop="trainNo"
-          >
+      <div class="small-title" style="font-size: 16px;">联络员及车皮信息</div>
+      <div
+        class="liaison"
+        v-for="(item, index) in deptBudgetList.tranCarInfoList"
+        :key="index"
+      >
+        <ws-info-table>
+          <!--姓名-->
+          <ws-form-item label="姓名" span="1" prop="driver">
+            <el-select
+              v-model="item.driver"
+              placeholder="请选择姓名"
+              filterable
+              :filter-method="dataFilter"
+              @change="selectstaff"
+            >
+              <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.staffName"
+                :value="item.staffName"
+              />
+            </el-select>
+          </ws-form-item>
+          <!--电话-->
+          <ws-form-item label="电话" span="1" prop="driverPhone">
             <ws-input
-              v-model="item.trainNo"
-              placeholder="请输入车厢号"
+              v-model="item.driverPhone"
+              readonly
+              unselectable="on"
+              placeholder="请输入电话"
               maxlength="20"
               size="small"
             />
-            <img
-              width="22"
-              height="22"
-              class="del"
-              @click="del(index)"
-              src="../../../public/img/del.png"
-              alt=""
+          </ws-form-item>
+          <!--发车日期-->
+          <ws-form-item label="发车日期" span="1" prop="sendDateStart">
+            <ws-date-picker
+              v-model="item.sendDateStart"
+              type="date"
+              placeholder="请选择发货日期"
+              value-format="yyyy-MM-dd"
             />
           </ws-form-item>
-        </div>
-      </ws-info-table>
-     </div>
-       <el-button
-          class="add bg-bottom"
-          type="primary"
-          size="small"
+          <!--到站日期-->
+          <ws-form-item label="到站日期" span="1" prop="receiveDateEnd">
+            <ws-date-picker
+              v-model="item.receiveDateEnd"
+              type="date"
+              placeholder="请选择到站日期"
+              value-format="yyyy-MM-dd"
+            />
+          </ws-form-item>
+          <!--车型-->
+          <ws-form-item label="车型" span="1" prop="carModel">
+            <ws-select
+              v-model="item.carModel"
+              placeholder="请输入车型"
+              class="typeselect"
+              multiple
+              filterable
+              allow-create
+              default-first-option
+            >
+              <ws-option
+                v-for="items in carModel"
+                :key="items.constKey"
+                :label="items.constValue"
+                :value="items.constValue"
+              />
+            </ws-select>
+          </ws-form-item>
+        </ws-info-table>
+        <ws-info-table>
+          <div
+            style="width: 100%"
+            class="flex position "
+            v-for="(item1, index) in freightspace"
+            :key="index"
+          >
+            <!--车厢号-->
+            <ws-form-item
+              :label="'车厢号-' + (index + 1)"
+              span="1"
+              prop="boxNo"
+            >
+              <ws-input
+                v-model="item1.trainNo"
+                placeholder="请输入车厢号"
+                maxlength="20"
+                size="small"
+              />
+              <span
+                width="22"
+                height="22"
+                class="del"
+                @click="del(index)"
+                src="../../../public/img/del.png"
+                alt=""
+                >×</span
+              >
+            </ws-form-item>
+          </div>
+        </ws-info-table>
+        
+      </div>
+      <el-button class="add bg-bottom" type="primary" size="small" @click="add">
+        <img
+          width="22"
+          height="22"
           @click="add"
-          >添加车厢</el-button
-        >
+          src="../../../public/img/add.png"
+          alt=""
+        />
+        <div class="spans">添加车厢</div>
+      </el-button>
     </ws-form>
 
     <!-- 提交 -->
@@ -256,9 +278,9 @@ export default {
       value1: '',
       unitList: [],
       freightspace: [
-        {
-          trainNo: '',
-        },
+        // {
+        //   trainNo: '',
+        // },
       ],
       name: '',
       list: [],
@@ -266,7 +288,7 @@ export default {
       options: [],
       carModel: [],
       tranCarInfoList: {},
-      arr:[],
+      arr: [],
     }
   },
   mounted() {
@@ -302,6 +324,8 @@ export default {
       for (var i = 0; i < this.staffList.length; i++) {
         if (this.staffList[i].staffName == e) {
           this.deptBudgetList.driverPhone = this.staffList[i].staffMobilePhone
+          this.deptBudgetList.tranCarInfoList[0].driverPhone =
+            this.staffList[i].staffMobilePhone
           this.deptBudgetList.personChargeKey = this.staffList[i].staffId
         }
       }
@@ -351,6 +375,67 @@ export default {
       console.log(data, files, url)
     },
     submit() {
+      for (var i = 0; i < this.deptBudgetList.tranCarInfoList.length; i++) {
+        if (!this.deptBudgetList.tranCarInfoList[i].driver) {
+          this.$message({
+            message: '姓名不能为空!',
+            type: 'warning',
+          })
+          return
+        }
+        if (!this.deptBudgetList.tranCarInfoList[i].driverPhone) {
+          this.$message({
+            message: '电话不能为空!',
+            type: 'warning',
+          })
+          return
+        }
+        if (!this.deptBudgetList.tranCarInfoList[i].sendDateStart) {
+          this.$message({
+            message: '发车日期不能为空!',
+            type: 'warning',
+          })
+          return
+        }
+        if (!this.deptBudgetList.tranCarInfoList[i].receiveDateEnd) {
+          this.$message({
+            message: '到站日期不能为空',
+            type: 'warning',
+          })
+          return
+        }
+        if (
+          new Date(
+            this.deptBudgetList.tranCarInfoList[i].sendDateStart
+          ).getTime() >
+          new Date(
+            this.deptBudgetList.tranCarInfoList[i].receiveDateEnd
+          ).getTime()
+        ) {
+          this.$message({
+            message: '发车时间不能大于到站时间!',
+            type: 'warning',
+          })
+          return
+        }
+        if (!this.deptBudgetList.tranCarInfoList[i].carModel) {
+          this.$message({
+            message: '车型不能为空!',
+            type: 'warning',
+          })
+          return
+        }
+      }
+      for (var j = 0; j < this.freightspace.length; j++) {
+        if (!this.freightspace[j].trainNo) {
+          this.$message({
+            message: '车厢号不能为空',
+            type: 'warning',
+          })
+          return
+        }
+      }
+
       this.$confirm(`提交成功后,任务将下发给相关人员,是否确定提交?`, {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
@@ -361,19 +446,20 @@ export default {
             if (valid) {
               for (var i = 0; i < this.freightspace.length; i++) {
                 var num = this.freightspace[i].trainNo
-                this.arr.push(
-                  num  
-                )
+                this.arr.push(num)
               }
-              console.log(this.tranCarInfoList.boxNo = this.arr.toString())
               this.deptBudgetList.totalStorage = this.totalStorage
 
               this.tranCarInfoList.driver = this.deptBudgetList.driver
               this.tranCarInfoList.driverPhone = this.deptBudgetList.driverPhone
-              this.tranCarInfoList.sendDateStart = this.deptBudgetList.sendDateStart
-              this.tranCarInfoList.receiveDateEnd = this.deptBudgetList.receiveDateEnd
+              this.tranCarInfoList.sendDateStart =
+                this.deptBudgetList.sendDateStart
+              this.tranCarInfoList.receiveDateEnd =
+                this.deptBudgetList.receiveDateEnd
               this.tranCarInfoList.carModel = this.deptBudgetList.carModel
-              this.tranCarInfoList.tranType= this.tranType
+              this.tranCarInfoList.id =
+                this.deptBudgetList.tranCarInfoList[0].id
+              this.tranCarInfoList.tranType = this.tranType
               this.tranCarInfoList.boxNo = this.arr.toString()
               var tranCarInfo = {}
               var tranList = [this.tranCarInfoList]
@@ -411,6 +497,15 @@ export default {
         .toPromise()
         .then((response) => {
           this.deptBudgetList = response
+          if (response.tranCarInfoList[0].boxNo) {
+            this.list = response.tranCarInfoList[0].boxNo.split(',')
+            for (var i = 0; i < this.list.length; i++) {
+              var num = this.list[i]
+              this.freightspace.push({
+                trainNo: num,
+              })
+            }
+          }
         })
       //司机姓名下拉
       getstaff({ compId: sessionStorage.getItem('ws-pf_compId') })
@@ -418,6 +513,7 @@ export default {
         .then((response) => {
           this.options = response
           this.staffList = response
+          //  this.deptBudgetList.tranCarInfoList.driverPhone = response
         })
       //车型
       packList({ constId: 'TRAN5' })
@@ -526,13 +622,17 @@ export default {
 
 .del {
   position: absolute;
-  right: -38px;
+  // right: -38px;
   top: 9px;
   cursor: pointer;
-}
-.del {
   right: 0;
+  display: inline-block;
+  font-size: 20px;
+  width: 16px;
+  height: 10px;
+  line-height: 0px;
 }
+
 .amap-page-container {
   width: 300px;
   height: 300px;
@@ -650,17 +750,7 @@ export default {
 .bg-bottom {
   margin: 15px 0px;
 }
-.wenzi {
-  width: 900px;
-  margin: 0 auto;
-}
-.wenzi h3 {
-  display: inline-block;
-  left: 10px;
-}
-.wenzi p {
-  display: inline-block;
-}
+
 .center {
   width: 900px;
   margin: 0 auto;
@@ -671,10 +761,6 @@ export default {
 .el-form-item__label {
   text-align: center;
 }
-.ce {
-  width: 900px;
-  margin: 0 auto;
-}
 /*.crt-main .textarea /deep/ .el-form-item__label {*/
 /*  height: 82px;*/
 /*}*/
@@ -769,12 +855,6 @@ export default {
   border-left: 0px;
   border-top: 0px;
 }
-.ws-info-table .el-form-item .el-form-item__content {
-  border-right: 0px;
-  border-bottom: 0px;
-  border-left: 0px;
-  border-top: 0px;
-}
 /deep/.ws-info-table .el-form-item {
   border-right: 0px;
   border-bottom: 0px;
@@ -807,7 +887,7 @@ export default {
   border-radius: 4px;
   border: 1px solid #d8dce6;
 }
-/deep/.flex .ws-info-table .el-form-item .el-form-item__content{
+/deep/.flex .ws-info-table .el-form-item .el-form-item__content {
   border: 0px;
 }
 //联络员及车次
@@ -815,11 +895,43 @@ export default {
   width: 20%;
 }
 /deep/.liaison .ws-info-table .el-form-item .el-form-item__label {
-
-  width: 25%;
+  width: 30%;
+  border: 0px solid #d8dce6;
+  background: #f5f7fa;
 }
-/deep/.liaison .flex{
+/deep/.liaison .flex {
   display: contents;
 }
+/deep/.liaison {
+  background: #f5f7fa;
+  border-radius: 4px;
+  border: 0px solid #d8dce6;
+}
+/deep/.liaison .ws-info-table .el-form-item .el-form-item__content {
+  border: none;
+}
+.add {
+  width: 100px;
+  height: 34px;
+  background: #f6f7fb;
+  border-radius: 17px;
+  color: #5473e8;
+  font-size: 14px;
+  border: none;
+}
+.add img {
+  display: inline-block;
+  margin-top: 3px;
+  margin-left: -12px;
+}
+.add .spans {
+  display: table-caption;
+  width: 56px;
+  height: 20px;
+  line-height: 18px;
+}
+/deep/.carNos{
+  margin-top: 20px;
+}
 
 </style>

+ 1 - 1
vue.config.js

@@ -144,7 +144,7 @@ module.exports = {
         // target: 'http://standard-dev.winsea.com/', //目标地址
         // target: 'http://localhost:8090/',
         // target: 'http://192.168.1.121:8090/',
-        target: 'http://192.168.1.124:8090/',
+        target: 'http://192.168.1.115:8090/',
         // target: 'http://192.168.1.119:8090/',
         // target: 'http://192.168.24.5:8098',//目标地址
         // target: 'http://product-server.winsea.com/',