zhongtianhaoyuan преди 3 години
родител
ревизия
f714befa32

+ 1 - 0
package.json

@@ -59,6 +59,7 @@
     "nprogress": "0.2.0",
     "path-to-regexp": "2.4.0",
     "pinyin": "^2.9.1",
+    "qrcodejs2": "0.0.2",
     "querystring": "^0.2.0",
     "register-service-worker": "^1.0.0",
     "sass-loader": "^7.1.0",

BIN
public/img/icons/acquisition1.png


BIN
public/img/icons/acquisition2.png


BIN
public/img/icons/acquisition3.png


BIN
public/img/icons/acquisition4.png


BIN
public/img/icons/acquisition5.png


BIN
public/img/icons/acquisition6.png


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

@@ -43,8 +43,11 @@ 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'
+//更改收货反馈状态
+export const API_POST_AUTOMOBILE_STATEREC = '/tranProcessInfo/api/editReceivingStatus'
+
 //状态
 export const API_POST_AUTOMOBILE_ALSOSTATE = '/tranProcessInfo/editStatus'
 //运输价格

+ 23 - 3
src/lang/zh.js

@@ -982,13 +982,22 @@
     dynamicReportsDetail: '动态报详情',
 
     // 库内自采
+    houseSelfCollect:"库内自采",
     customerManagement:'客户管理',
+
     acquisitionManagement:'仓库设置',
     inspectionManagement:'质检管理',
     paymentManagement:'付款管理',
     weighingManagement:'检斤管理',
     houseSelfCollect:"库内自采",
-    houseSelfCollectPrint:"查看"
+    houseSelfCollectPrint:"查看",
+    acquisitionManagementAdd:'收购管理新增',
+    acquisitionManagementEdit:'收购管理编辑',
+    inspectionManagement:'质检管理',
+    paymentManagement:'付款管理',
+    weighingManagement:'检斤管理',
+    customerManagementEdit:"客户管理编辑",
+    customerManagementAdd:"客户管理添加",
   },
   // 后台错误码
   message: {
@@ -4810,7 +4819,7 @@
     purchaseClosingCashierList:'采购平仓报表',
     salesDeliveryReportList:'销售出库报表',
     salesClosingCashierList:'销售平仓报表',
-   
+
   },
   financialManagement:{
     collectionManagementList:'收款管理',
@@ -7403,12 +7412,23 @@
   //库内自采
   houseSelfCollect:{
     customerManagement:'客户管理',
+<<<<<<< HEAD
     acquisitionManagement:'仓库设置',
+=======
+    acquisitionManagement:'收购管理',
+    acquisitionManagementAdd:'收购管理新增',
+    acquisitionManagementEdit:'收购管理编辑',
+>>>>>>> d520598f0af8dd105275ef8c3a02b19af5a731c1
     inspectionManagement:'质检管理',
     paymentManagement:'付款管理',
     weighingManagement:'检斤管理',
     houseSelfCollect:"库内自采",
+<<<<<<< HEAD
     houseSelfCollectPrint:"查看"
+=======
+    customerManagementEdit:"客户管理编辑",
+    customerManagementAdd:"客户管理添加"
+>>>>>>> d520598f0af8dd105275ef8c3a02b19af5a731c1
   }
-  
+
 }

+ 6 - 2
src/model/transport/index.js

@@ -28,7 +28,8 @@ import {
     API_POST_AUTOMOBILE_STATE,
     API_POST_AUTOMOBILE_TRANPRICE,
     API_POST_DEL_HAULAGE_STAGE, 
-    API_POST_AUTOMOBILE_ALSOSTATE
+    API_POST_AUTOMOBILE_ALSOSTATE,
+    API_POST_AUTOMOBILE_STATEREC
 
 } from '@/api/V2/transport'
 // 司机列表
@@ -75,8 +76,11 @@ export const nameXiala = appRx.get(API_GET_AUTOMOBILE_NAME, errorCatcher, errorH
 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)
+//更改收货反馈状态
+export const stateRec = appRx.post(API_POST_AUTOMOBILE_STATEREC, errorCatcher, errorHandle, filter)
+
 //状态
 export const alsostate = appRx.post(API_POST_AUTOMOBILE_ALSOSTATE, errorCatcher, errorHandle, filter)
 //设置运输价格

+ 128 - 21
src/views/houseSelfCollect/acquisitionManagement.vue

@@ -1,34 +1,141 @@
 <!--收购管理-->
 <template>
-  <div>
-   收购管理
+  <div class="content">
+    <div class="header">
+      <div>
+        <el-select v-model="value" placeholder="请选择">
+          <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
+          </el-option>
+        </el-select>
+        <el-checkbox v-model="checked" @change="allowEdit">允许手动编辑重量</el-checkbox>
+      </div>
+      <el-button type="primary" @click="newAcquisition()">新增</el-button>
+    </div>
+    <el-dialog title="新增" :visible.sync="newAcquisitionDialogVisible" width="50%">
+     <acquisitionManagementAdd></acquisitionManagementAdd>
+    </el-dialog>
+    <div class="table-content">
+      <el-table :data="tableData" style="width: 100%">
+        <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 label="仓库名称"></el-table-column>
+        <el-table-column prop="contractNo" label="货名"></el-table-column>
+        <el-table-column label="水分范围(%)"></el-table-column>
+        <el-table-column label="基准水分(%)"></el-table-column>
+        <el-table-column label="扣重比"></el-table-column>
+        <el-table-column label="销量上线"></el-table-column>
+        <el-table-column label="状态"></el-table-column>
+        <el-table-column label="扣重比"></el-table-column>
+        <el-table-column label="通过时间"></el-table-column>
+        <el-table-column label="操作" width="300">
+          <template slot-scope="scope">
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">查看</el-button>
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+            <el-button size="mini" type="danger" @click="handleDelete(scope.$index, scope.row)">删除</el-button>
+            <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">打印</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-popover
+        placement="center"
+        width="160"
+        v-model="visible">
+        <p>这是一段内容这是一段内容确定删除吗?</p>
+        <div style="text-align: right; margin: 0">
+          <el-button size="mini" type="text" @click="visible = false">取消</el-button>
+          <el-button type="primary" size="mini" @click="visible = false">确定</el-button>
+        </div>
+      </el-popover>
+    </div>
   </div>
 </template>
 <script>
-import {
-  // getList,
-} from '@/model/houseSelfCollect/index'
+  // import { getList,} from '@/model/houseSelfCollect/index'
+  import acquisitionManagementAdd from './acquisitionManagementAdd.vue'
+  export default {
 
-export default {
+    components: {
 
-  components: {
+    },
+    watch: {
 
-  },
-  watch: {
+    },
+    data() {
+      return {
+        newAcquisitionDialogVisible:false,
+         visible: false,
+        checked: false,
+        tableData: [{
+          date: '2016-05-02',
+          name: '王小虎',
+          address: '上海市普陀区金沙江路 1518 弄'
+        }, {
+          date: '2016-05-04',
+          name: '王小虎',
+          address: '上海市普陀区金沙江路 1517 弄'
+        }, {
+          date: '2016-05-01',
+          name: '王小虎',
+          address: '上海市普陀区金沙江路 1519 弄'
+        }, {
+          date: '2016-05-03',
+          name: '王小虎',
+          address: '上海市普陀区金沙江路 1516 弄'
+        }],
+        options: [{
+          value: '选项1',
+          label: '黄金糕'
+        }, {
+          value: '选项2',
+          label: '双皮奶'
+        }, {
+          value: '选项3',
+          label: '蚵仔煎'
+        }, {
+          value: '选项4',
+          label: '龙须面'
+        }, {
+          value: '选项5',
+          label: '北京烤鸭'
+        }],
+        value: ''
+      }
+    },
+    activated() {
 
-  },
-  data() {
-    return {
- 
-    }
-  },
-  activated() {
+    },
+    created() {
+      this.value = this.options[0].value
+    },
+    methods: {
+      newAcquisition(){
+        this.$router.push({
+          name: 'acquisitionManagementAdd'
+          // query: { id: row.id },
+        })
 
-  },
-  methods: {
-
-  },
-}
+      },
+      allowEdit(val) {
+        console.log(val)
+      },
+      handleEdit(index, row) {
+        console.log(index, row);
+      },
+      handleDelete(index, row) {
+        this.visible = true
+        console.log(index, row);
+      }
+    },
+  }
 </script>
 <style lang="scss" scoped>
+  .header{
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+  }
 </style>

+ 495 - 0
src/views/houseSelfCollect/acquisitionManagementAdd.vue

@@ -0,0 +1,495 @@
+<!--收购管理新增-->
+<template>
+  <el-container class="container">
+    <el-header class="header">
+      <img class="head-icon" src="../../../public/img/icons/acquisition6.png" alt="">
+      <div class="head-title">鲅鱼圈一号库</div>
+    </el-header>
+    <el-main>
+      <el-form ref="form" label-position="left" :model="form" label-width="120px">
+        <el-row class="base-info">
+          基本信息
+        </el-row>
+        <div class="row1">
+          <div class="grid-content">
+            <el-form-item label="货名">
+              <el-input v-model="form.name"></el-input>
+            </el-form-item>
+          </div>
+          <div class="grid-content">
+            <el-form-item label="基准水分(%)">
+              <el-input v-model="form.name"></el-input>
+            </el-form-item>
+          </div>
+          <div class="grid-content">
+            <el-form-item label="扣重比">
+              <el-input v-model="form.name"></el-input>
+            </el-form-item>
+          </div>
+        </div>
+        <div class="row2">
+          <div class="grid-content">
+            <el-form-item label="干粮水分">
+              <el-input v-model="form.name"></el-input>
+            </el-form-item>
+          </div>
+          <div class="grid-content">
+            <el-form-item label="水分上限">
+              <el-input v-model="form.name"></el-input>
+            </el-form-item>
+          </div>
+          <div class="grid-content">
+            <el-form-item label="销售上限(年/吨)">
+              <el-input v-model="form.name"></el-input>
+            </el-form-item>
+          </div>
+        </div>
+      </el-form>
+      <el-row class="row3">
+        <div class="top">
+          <div class="title">粮价设置</div>
+          <el-button class="btn" @click="newSetPrice">新增</el-button>
+        </div>
+        <div class="content" v-for="(item,index) in priceList" :key="index">
+          <div class="top">
+            <div class="left">
+              <div class="text">基准单价(元/公斤)</div>
+              <el-input v-model="priceList.name"></el-input>
+            </div>
+            <el-button @click="delSetPrice(item,index)">删除</el-button>
+          </div>
+          <div class="level">
+            <el-checkbox-group v-model="checkList" @change="changeLevel">
+              <el-checkbox label="一等"></el-checkbox>
+              <el-checkbox label="二等"></el-checkbox>
+              <el-checkbox label="三等"></el-checkbox>
+              <el-checkbox label="等外"></el-checkbox>
+            </el-checkbox-group>
+          </div>
+          <div class="count">
+            <div class="left">
+              <div>水分(%)</div>
+              <div>降幅(元/0.5%)</div>
+            </div>
+            <div class="right">
+              <div class="line"></div>
+              <div class="jt-style"></div>
+
+              <div v-for="(item1,index) in item.detailList">
+                <div class="item-style">
+                  <div v-if="item1.type!=4" class="item-style-title">
+                    <span>{{item1.name}}{{item1.index}}</span>
+                    <span class="add" @click="add(item,item1,index)" v-if="item1.type!=3">+</span>
+                    <span class="reduce" @click="reduce(item,item1,index)"
+                      v-show="item1.type!=1&&item1.type!=2&&item1.type!=3">-</span>
+                  </div>
+                  <div v-show="item1.type!=4">
+                    <input class="water-price" v-model="form.name" :disabled="item1.isWrite?false:true"></input>
+                  </div>
+                  <div class="circle" v-if="item1.type!=4"></div>
+                </div>
+                <div class="bottom-price">
+                  <input v-if="item1.type==4" class="water-price" v-model="item1.jfprice"></input>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </el-row>
+
+    </el-main>
+  </el-container>
+</template>
+<script>
+  // import { getList,} from '@/model/houseSelfCollect/index'
+
+  export default {
+
+    components: {
+
+    },
+    watch: {
+
+    },
+    data() {
+      return {
+        priceList: [{
+          unitPrice: '',
+          index: 0,
+          detailList: [{
+              type: 1,
+              name: "干粮",
+              water: '15',
+              isWrite: false
+            },
+            {
+              type: 4,
+              jfprice: "0.03"
+            },
+            {
+              type: 2,
+              name: "基准",
+              water: '30',
+              isWrite: false
+            },
+            {
+              type: 4,
+              jfprice: "0.03"
+            },
+            {
+              type: 3,
+              name: "上限",
+              water: '40',
+              isWrite: false
+            },
+          ],
+        }],
+        checkList: [],
+        form: {
+          name: "姓名"
+        },
+
+        index: 0
+      }
+    },
+    created() {},
+    methods: {
+      add(item, item1, index) {
+        debugger
+        // let _data = this.detailList;
+        if (item.index > 2) {
+          this.$message({
+            message: '最多插入3个分界值',
+            type: 'warning'
+          });
+        } else {
+          item.index++
+          item.detailList.splice(index + 1, 0, {
+            name: "分界",
+            water: '30',
+            type: 5,
+            index: 1,
+            isWrite: true
+            // jfprice: "0.03"
+          });
+          item.detailList.splice(index + 1, 0, {
+            jfprice: "0.03",
+            type: 4
+          });
+          this.makeSpliceIndex(item, item1, index)
+        }
+      },
+      reduce(item, item1, index) {
+        item.index--
+        item.detailList.splice(index, 2);
+        console.log(item, index)
+      },
+      makeSpliceIndex(item, item1) {
+        let _index = 0
+        for (let j = 0; j < item.detailList.length; j++) {
+          if (item.detailList[j].type == 5) {
+            _index++
+            item.detailList[j].index = _index;
+          }
+        }
+      },
+      changeLevel() {
+        console.log(this.checkList)
+      },
+      newSetPrice() {
+        let _newObj = {
+          unitPrice: '',
+          index: 0,
+          detailList: [{
+              type: 1,
+              name: "干粮",
+              water: '15',
+              isWrite: false
+            },
+            {
+              type: 4,
+              jfprice: "0.03"
+            },
+            {
+              type: 2,
+              name: "基准",
+              water: '30',
+              isWrite: false
+            },
+            {
+              type: 4,
+              jfprice: "0.03"
+            },
+            {
+              type: 3,
+              name: "上限",
+              water: '40',
+              isWrite: false
+            },
+          ],
+        }
+        this.priceList.push(_newObj)
+      },
+      delSetPrice() {
+        let _newObj = {
+          unitPrice: '',
+          detailList: [{
+              type: 1,
+              name: "干粮",
+              water: '15',
+              isWrite: false
+            },
+            {
+              type: 4,
+              jfprice: "0.03"
+            },
+            {
+              type: 2,
+              name: "基准",
+              water: '30',
+              isWrite: false
+            },
+            {
+              type: 4,
+              jfprice: "0.03"
+            },
+            {
+              type: 3,
+              name: "上限",
+              water: '40',
+              isWrite: false
+            },
+          ],
+        }
+        // this.detailList.push(_newObj)
+      }
+    },
+  }
+</script>
+<style lang="scss">
+  .el-checkbox__input.is-checked .el-checkbox__inner,
+  .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+    background-color: #5878E8;
+    border-color: #5878E8;
+  }
+
+  .el-checkbox__input.is-checked+.el-checkbox__label {
+    color: #5878E8;
+  }
+
+  .el-checkbox.is-bordered.is-checked {
+    border-color: #5878E8;
+  }
+
+  .el-checkbox__input.is-focus .el-checkbox__inner {
+    border-color: #5878E8;
+  }
+
+  .basic-container {
+    overflow: auto;
+  }
+
+  .container {
+    padding: 20px
+  }
+
+  /deep/.el-header {
+    padding: 0;
+  }
+
+  .header {
+    display: flex;
+    align-items: center;
+    border-bottom: 1px solid #E9ECF7;
+    padding-bottom: 10px;
+    width: 80%;
+
+    .head-icon {
+      width: 19px;
+      height: 19px;
+      margin-right: 10px;
+    }
+
+    .head-title {
+      font-size: 21px;
+      font-weight: 600;
+      color: #323233;
+    }
+  }
+
+  .row1,
+  .row2 {
+    // background: red;
+    display: flex;
+    // margin-right: 20px;
+  }
+
+  .row3 {
+    .top {
+      display: flex;
+
+      .btn {
+        width: 52px;
+        height: 24px;
+        background: #5878E8;
+        color: white;
+        margin-left: 20px;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        // text-align: center;
+      }
+    }
+
+    .title {
+      display: flex;
+      align-items: center;
+      border-left: 4px solid #5473E8;
+      font-size: 16px;
+      font-weight: 600;
+      color: #323233;
+      padding-left: 10px;
+    }
+  }
+
+  .base-info {
+    border-left: 4px solid #5473E8;
+    font-size: 16px;
+    font-weight: 600;
+    color: #323233;
+    padding-left: 10px;
+    margin: 24px 0 10px 0;
+  }
+
+  .grid-content {
+    margin-right: 20px;
+  }
+
+  .content {
+    border: 1px solid #D8DCE6;
+    margin: 20px 0;
+    padding: 15px;
+    border-radius: 4px;
+
+    .top {
+      display: flex;
+      justify-content: space-between;
+
+      .left {
+        display: flex;
+        align-items: center;
+
+        .text {
+          width: 220px;
+          font-size: 14px;
+          font-weight: 400;
+          color: #8890B1;
+        }
+      }
+    }
+
+    .level {
+      margin: 10px 0;
+    }
+
+    .count {
+      display: flex;
+      margin-bottom: 15px;
+
+      .left {
+        width: 10%;
+        display: flex;
+        flex-direction: column;
+        align-items: flex-end;
+        justify-content: flex-end;
+        line-height: 24px;
+      }
+
+      .right {
+        width: 85%;
+        position: relative;
+        padding-bottom: 50px;
+
+        .water-price {
+          width: 60px;
+          height: 30px;
+          background: #F6F7FB;
+          border-radius: 4px;
+          border: 1px solid #D8DCE6;
+          text-align: center
+        }
+
+        .add,
+        .reduce {
+          width: 16px;
+          height: 16px;
+          background: #5473E8;
+          border-radius: 2px;
+          color: white;
+          display: inline-block;
+          text-align: center;
+          line-height: 16px;
+        }
+
+        .reduce {
+          background: white;
+          color: #D5D8DE;
+          border: 1px solid #D5D8DE;
+          display: inline-flex;
+          justify-content: center;
+          align-items: center;
+        }
+
+        .item-style {
+          position: relative;
+
+          .item-style-title {
+            margin-bottom: 10px;
+            text-align: center;
+          }
+        }
+
+        .line {
+          position: absolute;
+          top: 72px;
+          width: 100%;
+          height: 5px;
+          background: linear-gradient(39deg, #E6EEFF 0%, #91B0F5 42%, #5878E8 100%);
+          border-radius: 3px;
+        }
+
+        .bottom-price {
+          position: absolute;
+          bottom: -10px;
+        }
+
+        .jt-style {
+          position: absolute;
+          top: 64px;
+          width: 0px;
+          height: 0px;
+          right: -15px;
+          border-left: 15px solid #5473E8;
+          border-top: 10px solid transparent;
+          border-bottom: 10px solid transparent;
+        }
+
+        display: flex;
+        justify-content: space-between;
+
+        .circle {
+          position: absolute;
+          z-index: 2;
+          width: 15px;
+          height: 15px;
+          background: #FFFFFF;
+          border: 3px solid #5473E8;
+          border-radius: 50%;
+          right: 40%;
+          bottom: -22px
+        }
+
+      }
+    }
+  }
+</style>

+ 50 - 5
src/views/houseSelfCollect/component/routers/route.js

@@ -20,12 +20,42 @@ const houseSelfCollectRouter = {
       name: 'customerManagement',
       meta: {
         title: 'customerManagement',
-        shortcutEntrance: 'customerManagement',
+        shortcutEntrance: 'houseSelfCollect',
         module: 'procurement.procurementOrder.delete',
         permissicon: [],
         keepAlive: true
       }
     },
+    //客户管理编辑
+    {
+      path: 'customerManagementEdit',
+      component: () =>
+        import(/* webpackChunkName: "sparepartList" */ '@/views/houseSelfCollect/customerManagementEdit'),
+      name: 'customerManagementEdit',
+      meta: {
+        title: 'customerManagementEdit',
+        shortcutEntrance: 'houseSelfCollect',
+        module: 'procurement.procurementOrder.delete',
+        permissicon: [],
+        keepAlive: true
+      },
+      hidden: true
+    },
+        //客户管理添加
+        {
+          path: 'customerManagementAdd',
+          component: () =>
+            import(/* webpackChunkName: "sparepartList" */ '@/views/houseSelfCollect/customerManagementAdd'),
+          name: 'customerManagementAdd',
+          meta: {
+            title: 'customerManagementAdd',
+            shortcutEntrance: 'houseSelfCollect',
+            module: 'procurement.procurementOrder.delete',
+            permissicon: [],
+            keepAlive: true
+          },
+          hidden: true
+        },
     //收购管理
     {
       path: 'acquisitionManagement',
@@ -34,12 +64,27 @@ const houseSelfCollectRouter = {
       name: 'acquisitionManagement',
       meta: {
         title: 'acquisitionManagement',
-        shortcutEntrance: 'acquisitionManagement',
+        shortcutEntrance: 'houseSelfCollect',
         module: 'procurement.procurementOrder.delete',
         permissicon: [],
         keepAlive: true
       }
     },
+    //收购新增
+    {
+      path: 'acquisitionManagementAdd',
+      component: () =>
+        import(/* webpackChunkName: "sparepartList" */ '@/views/houseSelfCollect/acquisitionManagementAdd'),
+      name: 'acquisitionManagementAdd',
+      meta: {
+        title: 'acquisitionManagementAdd',
+        shortcutEntrance: 'houseSelfCollect',
+        module: 'procurement.procurementOrder.delete',
+        permissicon: [],
+        keepAlive: true
+      },
+        hidden: true
+    },
     // 质检管理
     {
       path: 'inspectionManagement',
@@ -48,7 +93,7 @@ const houseSelfCollectRouter = {
       name: 'inspectionManagement',
       meta: {
         title: 'inspectionManagement',
-        shortcutEntrance: 'inspectionManagement',
+        shortcutEntrance: 'houseSelfCollect',
         module: 'procurement.procurementOrder.delete',
         permissicon: [],
         keepAlive: true
@@ -62,7 +107,7 @@ const houseSelfCollectRouter = {
       name: 'weighingManagement',
       meta: {
         title: 'weighingManagement',
-        shortcutEntrance: 'weighingManagement',
+        shortcutEntrance: 'houseSelfCollect',
         module: 'procurement.procurementOrder.delete',
         permissicon: [],
         keepAlive: true
@@ -76,7 +121,7 @@ const houseSelfCollectRouter = {
       name: 'paymentManagement',
       meta: {
         title: 'paymentManagement',
-        shortcutEntrance: 'paymentManagement',
+        shortcutEntrance: 'houseSelfCollect',
         module: 'procurement.procurementOrder.delete',
         permissicon: [],
         keepAlive: true

+ 192 - 24
src/views/houseSelfCollect/customerManagement.vue

@@ -1,34 +1,202 @@
 <!--客户管理-->
 <template>
-  <div>
-   客户管理
+  <div class="content">
+    <div class="seach">
+      <div class="search-left">
+        <ws-input v-model="searchKeyWord" placeholder="可按姓名、手机号查找" clearable maxlength="500" type="input"
+          class="findValue"></ws-input>
+        <ws-button class="find" type="primary" @click="find()">
+          <img width="16" height="16" style="
+              vertical-align: text-top;
+              position: relative;
+              top: 0px;
+              left: -8px;
+            " src="../../../public/img/sousuo.png" alt />
+        </ws-button>
+      </div>
+      <div class="search-right">
+        <ws-button @click="getCustomer()">获取客户</ws-button>
+        <el-dialog title="客户扫码" :visible.sync="customerDialogVisible" width="30%">
+          <div id="qrcode"></div>
+        </el-dialog>
+        <ws-button @click="createCustomer()">创建新客户</ws-button>
+        <el-dialog title="创建新客户" :visible.sync="creatNewCustomerDialogVisible" width="50%">
+         <customerManagementAdd></customerManagementAdd>
+        </el-dialog>
+      </div>
+    </div>
+    <el-table class="wenzi" :data="customertList.records" style="width: 100%; margin-top: 10px" height="780">
+      <el-table-column type="index" label="序号">
+        <template scope="scope">
+          <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+          <span v-else>{{ scope.$index + 1 }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="contractNo" label="客户"></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="unitContractPrice" label="开户行"></el-table-column>
+      <el-table-column prop="packingMethod" label="收款人"></el-table-column>
+      <el-table-column prop="status" label="状态"></el-table-column>
+      <el-table-column prop="address" label="操作">
+        <template slot-scope="scope">
+          <img width="16" height="16" style="vertical-align: text-top; margin: 0 6px"
+            src="../../../public/img/chakan.png" @click="handleExamine(scope.row)" v-hasPermission="
+              `contractManagement.buyContract.buyContractInfo.view`
+            " alt />
+          <img width="17" height="16" style="vertical-align: text-top; margin: 0 6px"
+            src="../../../public/img/bianji.png" @click="handleEdit(scope.row)" v-hasPermission="
+              `contractManagement.buyContract.buyContractInfo.edit`
+            " alt />
+          <img width="16" height="17" style="
+              vertical-align: text-top;
+              position: relative;
+              top: -1px;
+              margin: 0 6px;
+            " src="../../../public/img/shanchu.png" v-hasPermission="
+              `contractManagement.buyContract.buyContractInfo.delete`
+            " @click="handleDelete(scope.row)" alt />
+        </template>
+      </el-table-column>
+    </el-table>
+    <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+      :page-size="deptCircularPage.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal">
+    </el-pagination>
   </div>
 </template>
 <script>
-import {
-  // getList,
-} from '@/model/houseSelfCollect/index'
-
-export default {
-
-  components: {
+  // import xx
+  // '@/model/houseSelfCollect/index'
+  import QRCode from 'qrcodejs2'
+  import customerManagementAdd from './customerManagementAdd.vue'
+  export default {
+    components: {
+      customerManagementAdd
+    },
+    watch: {},
+    data() {
+      return {
+        searchKeyWord: '',
+        customerDialogVisible: false,
+        creatNewCustomerDialogVisible:false,
+        customertList: {
+          records: [{
+            contractNo: '小王',
+            goodsName: '17127741111',
+            weight: '111111111',
+            unitContractPrice: '312321312132321',
+            packingMethod: '12213321231fsfssfd',
+            status: 'fsdfsdfsd'
+          }]
+        },
+        currentPage: 1,
+        pageSize: 10,
+        deptBudgetTotal: 0,
+        deptCircularPage: {}
+      }
+    },
+    methods: {
+      find() {
+        console.log('搜索')
+      },
+      //获取客户
+      getCustomer() {
+        this.customerDialogVisible = true
+        this.$nextTick(function() {
+          document.getElementById('qrcode').innerHTML = ''
+          let qrcode = new QRCode('qrcode', {
+            width: 150,
+            height: 150,
+            text: 'https://www.baidu.com',
+            colorDark: '#109dff',
+            colorLight: '#d9d9d9'
+          })
+        })
+      },
+      //创建客户
+      createCustomer() {
+        // this.creatNewCustomerDialogVisible = true
+        this.$router.push({
+          name: 'customerManagementAdd'
+          // query: { id: row.id },
+        })
+      },
+      handleSizeChange(val) {
+        console.log(`每页 ${val} 条`)
+        this.pageSize = val
+        this.getList()
+      },
+      handleCurrentChange(val) {
+        this.currentPage = val
+        console.log(`当前页: ${val}`)
+        this.getList()
+      },
+      handleExamine(row) {
+        console.log(row)
+        // this.$router.push({
+        //   name: 'purchaseContractExamine',
+        //   query: { id: row.id, status: row.status },
+        // })
+      },
+      handleEdit(row) {
+        console.log(row)
+        this.$router.push({
+          name: 'customerManagementEdit',
+          query: {
+            id: row.id
+          }
+        })
+      },
+      handleDelete(row) {
+        console.log(row)
+        // var text = ''
+        // if (row.deliverType == 1) {
+        //   text =
+        //     '删除该合同将同时永久删除合同对应的临时仓库相关数据,是否确定删除?'
+        // } else {
+        //   text = '合同删除后不可恢复,是否继续删除?'
+        // }
+        // this.$confirm(text, '提示', {
+        //   confirmButtonText: '确定',
+        //   cancelButtonText: '取消',
+        //   type: 'warning',
+        // })
+        //   .then(() => {
+        //     deletecontract({ id: row.id })
+        //       .toPromise()
+        //       .then((response) => {
+        //         this.$notify.success({
+        //           title: '成功',
+        //           message: '删除成功',
+        //         })
+        //         this.getList()
+        //       })
+        //       .catch((response) => {})
+        //   })
+        //   .catch(() => {
+        //     return false
+        //   })
+      },
+      getList() {}
+    }
+  }
+</script>
+<style lang="scss" scoped>
+  .content {
+    padding: 20px;
+  }
 
-  },
-  watch: {
+  .seach {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
 
-  },
-  data() {
-    return {
- 
+    .find {
+      width: 32px;
     }
-  },
-  activated() {
 
-  },
-  methods: {
-
-  },
-}
-</script>
-<style lang="scss" scoped>
+    .search-left {
+      display: flex;
+    }
+  }
 </style>

+ 155 - 0
src/views/houseSelfCollect/customerManagementAdd.vue

@@ -0,0 +1,155 @@
+<!--客户管理-->
+<template>
+  <div class="content">
+    <div class="title">新增粮商</div>
+    <div class="unload">
+      <el-upload action="https://jsonplaceholder.typicode.com/posts/" :limit="2" list-type="picture-card"
+        :on-preview="handlePictureCardPreview" :on-remove="handleRemove">
+        <i class="el-icon-plus"></i>
+      </el-upload>
+<!--      <el-dialog :visible.sync="dialogVisible">
+        <img width="100%" :src="dialogImageUrl" alt="">
+      </el-dialog> -->
+      <el-form ref="form" :model="form" label-width="120px">
+        <el-form-item label="姓名">
+          <el-input v-model="form.name"></el-input>
+        </el-form-item>
+        <el-form-item label="身份证号">
+          <el-input v-model="form.name"></el-input>
+        </el-form-item>
+        <el-form-item label="银行卡号">
+          <el-input v-model="form.name"></el-input>
+        </el-form-item>
+        <el-form-item label="开户行">
+          <el-input v-model="form.name"></el-input>
+        </el-form-item>
+        <el-form-item label="开户支行">
+          <el-input v-model="form.name"></el-input>
+        </el-form-item>
+        <el-form-item label="收款人姓名">
+          <el-input v-model="form.name"></el-input>
+        </el-form-item>
+        <el-form-item label="收款人身份证号">
+          <el-input v-model="form.name"></el-input>
+        </el-form-item>
+        <el-form-item label="手机号">
+          <el-input v-model="form.name"></el-input>
+        </el-form-item>
+        <!-- 验证码 -->
+        <el-form-item prop="veriCode" :label="$t('login.register08')">
+            <el-input v-model="form.name"></el-input>
+   <!--       <div style="display: flex; justify-content: space-between">
+            <el-input
+              v-model="form.name"
+              :disabled="disabledFlag"
+              class="code_style"
+              :placeholder="$t('login.registerVerif08')"
+            />
+            <div>
+              <ws-button
+                v-show="verification"
+                type="primary"
+                @click="toSend"
+                >{{ $t('login.sendVerification') }}</ws-button
+              >
+              <ws-button v-show="!verification" class="retry" disabled
+                >{{ $t('login.retry') }}({{ count }})s</ws-button
+              >
+            </div>
+          </div> -->
+        </el-form-item>
+        <el-form-item label="联系地址">
+          <el-input v-model="form.name"></el-input>
+        </el-form-item>
+       </el-form>
+    </div>
+  </div>
+</template>
+<script>
+  // import xx
+  // '@/model/houseSelfCollect/index'
+
+  export default {
+    components: {},
+    watch: {},
+    data() {
+      return {
+        dialogImageUrl: '',
+        dialogVisible: false,
+        form:{
+          name:"姓名"
+        },
+        disabledFlag: true,
+
+      }
+    },
+    methods: {
+      handleRemove(file, fileList) {
+        console.log(file, fileList);
+      },
+      handlePictureCardPreview(file) {
+        this.dialogImageUrl = file.url;
+        this.dialogVisible = true;
+      },
+      // 发送验证码
+      toSend() {
+        if (this.registerForm.linkmanPhone) {
+          if (validUserCellPhone(this.registerForm.linkmanPhone)) {
+            this.disabledFlag = false
+            clearInterval(this.timer)
+            this.timer = null
+            const TIME_COUNT = 60
+            if (!this.timer) {
+              this.count = TIME_COUNT
+              this.verification = false
+              let data = {
+                mobilePhone: this.registerForm.linkmanPhone,
+              }
+              sendRegisterCode(data)
+                .toPromise()
+                .then((res) => {
+                  this.timer = setInterval(() => {
+                    if (this.count > 0 && this.count <= TIME_COUNT) {
+                      this.count--
+                    } else {
+                      this.verification = true
+                      clearInterval(this.timer)
+                      this.timer = null
+                    }
+                  }, 1000)
+                })
+                .catch((err) => {
+                  this.verification = true
+                })
+            }
+          } else {
+            EventBus.$emit('error', this.$t('login.registerVerif09'))
+          }
+        } else {
+          EventBus.$emit('error', this.$t('login.registerVerif05'))
+        }
+      },
+    }
+  }
+</script>
+<style lang="scss" scoped>
+  /deep/.el-form-item{
+    margin-bottom: 0;
+  }
+  .content {
+    padding: 20px;
+  }
+
+  .seach {
+    display: flex;
+    align-items: center;
+
+    .find {
+      width: 32px;
+    }
+
+    .search-left {
+      display: flex;
+    }
+  }
+</style>

+ 115 - 0
src/views/houseSelfCollect/customerManagementEdit.vue

@@ -0,0 +1,115 @@
+<!--客户管理-->
+<template>
+  <div class="content">
+    客户管理编辑
+  </div>
+</template>
+<script>
+// import xx
+// '@/model/houseSelfCollect/index'
+
+export default {
+  components: {},
+  watch: {},
+  data() {
+    return {
+      searchKeyWord: '',
+      customertList:{
+        records:[
+          {
+            contractNo:"小王",
+            goodsName:"17127741111",
+            weight:"111111111",
+            unitContractPrice:'312321312132321',
+            packingMethod:"12213321231fsfssfd",
+            status:"fsdfsdfsd"
+            
+          }
+        ]
+      },
+       currentPage: 1,
+      pageSize: 10,
+      deptBudgetTotal: 0,
+      deptCircularPage: {},
+    }
+  },
+  methods: {
+    find() {
+      console.log('搜索')
+    },
+    getCustomer() {},
+    createCustomer() {},
+        handleSizeChange(val) {
+      console.log(`每页 ${val} 条`)
+      this.pageSize = val
+      this.getList()
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val
+      console.log(`当前页: ${val}`)
+      this.getList()
+    },
+        handleExamine(row) {
+      console.log(row)
+      // this.$router.push({
+      //   name: 'purchaseContractExamine',
+      //   query: { id: row.id, status: row.status },
+      // })
+    },
+        handleEdit(row) {
+          console.log(row)
+      this.$router.push({
+        name: 'purchaseContractEdit',
+        query: { id: row.id },
+      })
+    },
+        handleDelete(row) {
+          console.log(row)
+      // var text = ''
+      // if (row.deliverType == 1) {
+      //   text =
+      //     '删除该合同将同时永久删除合同对应的临时仓库相关数据,是否确定删除?'
+      // } else {
+      //   text = '合同删除后不可恢复,是否继续删除?'
+      // }
+      // this.$confirm(text, '提示', {
+      //   confirmButtonText: '确定',
+      //   cancelButtonText: '取消',
+      //   type: 'warning',
+      // })
+      //   .then(() => {
+      //     deletecontract({ id: row.id })
+      //       .toPromise()
+      //       .then((response) => {
+      //         this.$notify.success({
+      //           title: '成功',
+      //           message: '删除成功',
+      //         })
+      //         this.getList()
+      //       })
+      //       .catch((response) => {})
+      //   })
+      //   .catch(() => {
+      //     return false
+      //   })
+    },
+    getList(){}
+  }
+}
+</script>
+<style lang="scss" scoped>
+.content{
+  padding: 20px;
+}
+.seach {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  .find {
+    width: 32px;
+  }
+  .search-left {
+    display: flex;
+  }
+}
+</style>

+ 14 - 21
src/views/tranManagement/tranManagementReceivingFeedback.vue

@@ -107,18 +107,18 @@
               <template>
                 <span slot="reference">
                   <span
-                    v-if="scope.row.feedbackStatus == '待执行'"
+                    v-if="scope.row.receivingStatus == '待执行'"
                     class="executory"
                   ></span>
                   <span
-                    v-if="scope.row.feedbackStatus == '执行中'"
+                    v-if="scope.row.receivingStatus == '执行中'"
                     class="inExecution"
                   ></span>
                   <span
-                    v-if="scope.row.feedbackStatus == '已完成'"
+                    v-if="scope.row.receivingStatus == '已完货'"
                     class="done"
                   ></span
-                  >{{ scope.row.feedbackStatus }}
+                  >{{ scope.row.receivingStatus }}
                 </span>
               </template>
               <div>
@@ -156,24 +156,17 @@
           <template slot-scope="scope">
             <template
               v-if="
-                scope.row.tranType == '汽运' &&
-                scope.row.feedbackStatus != '已完成'
+                scope.row.receivingStatus != '已完货'
               "
             >
               <div class="record" @click="trainSee(scope.row)">查看</div>
               <div class="adjustment" @click="feedback(scope.row)">反馈</div>
             </template>
             <template
-              v-else-if="
-                scope.row.tranType == '汽运' &&
-                scope.row.feedbackStatus == '已完成'
-              "
+              v-else
             >
               <div class="record1" @click="trainSee(scope.row)">查看</div>
             </template>
-            <template v-else>
-              <div class="record1">—— ——</div>
-            </template>
           </template>
         </el-table-column>
       </el-table>
@@ -193,7 +186,7 @@
   </div>
 </template>
 <script>
-import { shippingList, state } from '@/model/transport/index'
+import { shippingList, stateRec } from '@/model/transport/index'
 import { downloadFile } from '@/utils/batchDown'
 import Pagination from '@/components/Pagination'
 import WsUpload from '@/components/WsUpload'
@@ -228,14 +221,14 @@ export default {
       year: '',
       currentPage: 1,
       pageSize: 10,
-      feedbackFlag: 1,
+      feedbackFlag: 4,
       searchType: 1,
       searchTypeText: '执行中',
       searchKeyWord: '',
       contractType: 2,
       taskTypeList: [
-        { value: '执行中', type: 1 },
-        { value: '已完成', type: 2 },
+        { value: '执行中', type: 4 },
+        { value: '已完货', type: 5 },
         { value: '全部任务', type: 3 },
       ],
 
@@ -397,10 +390,10 @@ export default {
     },
     editClick(row) {
       var status = ''
-      if (row.feedbackStatus == '待执行' || row.feedbackStatus == '已完成') {
+      if (row.receivingStatus == '待执行' || row.receivingStatus == '已完货') {
         status = '执行中'
-      } else if (row.feedbackStatus == '执行中') {
-        status = '已完'
+      } else if (row.receivingStatus == '执行中') {
+        status = '已完'
       }
       //cancelButtonClass: "btn-custom-cancel"
       this.$confirm(`是否将状态改为${status}`, {
@@ -409,7 +402,7 @@ export default {
         type: 'warning',
       })
         .then(() => {
-          state({ id: row.id })
+          stateRec({ id: row.id })
             .toPromise()
             .then((response) => {
               this.$notify.success({

+ 94 - 8
src/views/tranManagement/tranManagementReceivingloading.vue

@@ -79,14 +79,34 @@
             <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="small-title" style="font-size: 16px;width: 50%;float: left;">卸车详情</div>
+          <!-- 导入 -->
+          <div style="font-size: 16px;width: 50%; margin-left: 1150px;">
+          <el-button
+            class="bg-bottom"
+            type="primary"
+            size="small"
+            @click="import(deptBudgetList)"
+            >导入</el-button
+          >
+        </div>
           <div
             class="driver position liaison"
             v-for="(item, index) in deptBudgetList.tranCarInfoList"
+            :key="index"
           >
             <ws-info-table>
-              <div class="catNos" v-show="item.temporaryDriverFlag == 0">司机-{{index+1}}</div>
+              <div class="catNos" v-show="item.temporaryDriverFlag == 0">司机-{{index+1}}
+                 <span class="noservice" v-show="item.status == '未装车'">{{
+                  item.status
+                }}</span>
+                <span class="service" v-show="item.status == '已装车'">
+                   未卸车
+                </span>
+                 <span class="serviced" v-show="item.status == '已送达'">
+                   已卸车
+                </span>
+              </div>
               <div class="catNos catNosCor" v-show="item.temporaryDriverFlag != 0">司机-{{index+1}}(临)</div>
               <!--姓名-->
               <ws-form-item
@@ -117,11 +137,11 @@
                 <span v-show="item.temporaryDriverFlag == 0">{{ 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="loadNetWeight" style="width:150px">{{item.loadNetWeight}}</ws-form-item>
               <!--卸车净重(吨)-->
               <ws-form-item label="卸车净重(吨):" span="1" prop="unloadNetWeight">
                 <ws-input
-                  v-if="item.status == '已送达'" 
+                  v-if="item.status == '已送达'||item.status == '未装车'" 
                   v-model="item.unloadNetWeight"
                   placeholder="请输入卸车净重"
                   maxlength="20"
@@ -136,6 +156,23 @@
                   size="small"
                 />
               </ws-form-item>
+               <!--卸车日期-->
+            <ws-form-item label="卸车日期:" span="1" prop="receiveDateEnd"  style="width:275px">
+            <ws-date-picker
+              v-model="item.receiveDateEnd"
+              v-if="item.status == '已送达'||item.status == '未装车'" 
+              :disabled="readonly"
+              type="date"
+              value-format="yyyy-MM-dd"
+            />
+            <ws-date-picker
+              v-model="item.receiveDateEnd"
+              v-else
+              type="date"
+              placeholder="请选择日期"
+              value-format="yyyy-MM-dd"
+            />
+          </ws-form-item>
               <!--磅单-->
               <ws-form-item label="磅单:" span="1" prop="unloadPoundImg">
                 <template >
@@ -185,13 +222,27 @@
             </div>
             </ws-info-table>
           </div>
+        </div>
           <div
             style="text-align: right; color: #8890b1; font-size: 16px"
-          >合计{{ total }}/{{ deptBudgetList.weight }}</div>
+          >合计{{ total }}/{{ deptBudgetList.weight }}
+           <!--阶段状态-->
+         <span class="noservice" v-show="deptBudgetList.receivingStatus=='执行中'">
+          未完货
+        </span>
+        <span class="service" v-show="deptBudgetList.receivingStatus=='已完货'">{{
+          deptBudgetList.receivingStatus
+        }}</span></div>
           <div style="text-align: right; padding: 10px">
             <el-button class="bg-bottom-up" type="primary" size="small" @click="submit()">提交</el-button>
+             <el-button
+                class="bg-bottom"
+                type="primary"
+                size="small"
+                @click="finished (deptBudgetList)"
+                >完货</el-button
+              >
           </div>
-        </div>
       </ws-form>
     </div>
   </div>
@@ -199,7 +250,7 @@
 <script>
 import Pagination from '@/components/Pagination'
 import WsUpload from '@/components/WsUpload'
-import { seeCat, packList, feedback, getbank } from '@/model/transport/index'
+import { seeCat, packList, feedback, getbank,stateRec } from '@/model/transport/index'
 // import { dayjs, fmoney, EventBus } from 'base-core-lib'
 import { dayjs, EventBus } from 'base-core-lib'
 export default {
@@ -362,7 +413,42 @@ export default {
           return false
         })
     },
+    //导入
+    import(){
+
+    },
+    finished(){
+       this.$confirm(`完货操作后,卸车信息不可修改,是否确定完货?`, {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+        .then(() => {
+          this.$refs.deptBudgetList.validate((valid) => {
+            if (valid) {
+              var tranProcessInfo = {}
+              tranProcessInfo.id = this.deptBudgetList.id
+              stateRec(tranProcessInfo)
+                .toPromise()
+                .then((response) => {
+                  this.$message.success('完货成功')
+                  this.deptBudgetList = {}
+                  this.freightspace = {}
+                  this.selectedOptions = ''
+                  this.$router.push({
+                    path: 'tranManagementReceivingFeedback',
+                  })
+                })
+            } else {
+              return false
+            }
+          })
+        })
+        .catch(() => {
+          return false
+        })
 
+    },
     handleClose() {
       this.accessoryTFs = false
     },

+ 41 - 2
src/views/tranManagement/tranManagementReceivingloadingLook.vue

@@ -99,7 +99,17 @@
           
         >
           <ws-info-table>
-            <div class="catNos" v-show="item.temporaryDriverFlag == 0">司机-{{index+1}}</div>
+            <div class="catNos" v-show="item.temporaryDriverFlag == 0">司机-{{index+1}}
+              <span class="noservice" v-show="item.status == '未装车'">{{
+                  item.status
+                }}</span>
+                <span class="service" v-show="item.status == '已装车'">
+                  未卸车
+                </span>
+                 <span class="serviced" v-show="item.status == '已送达'">
+                  已卸车
+                </span>
+            </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">
@@ -128,7 +138,11 @@
             <ws-form-item label="卸车净重(吨):" span="1" prop="unloadNetWeight">
               {{ item.unloadNetWeight }}
             </ws-form-item>
-             <el-divider direction="vertical" class="line"></el-divider>
+            <el-divider direction="vertical" class="line"></el-divider>
+            <!--卸车日期-->
+            <el-form-item label="卸车日期:" span="1" prop="receiveDateEnd" >
+              {{ item.receiveDateEnd }}
+          </el-form-item>
             <!--磅单-->
             <ws-form-item label="磅单:" span="1" prop="unloadPoundImg">
               <template >
@@ -164,6 +178,7 @@
                 </div> -->
               </template>
             </ws-form-item>
+            <el-divider direction="vertical" class="line"></el-divider>
             <!--箱号-->
             <ws-form-item label="箱号:" span="1" prop="caseNo">
              <span>{{ item.caseNo }}</span>
@@ -184,6 +199,13 @@
       </div>
       <div style="text-align: right;color: #8890B1;font-size: 16px;">
         合计(吨):{{ total }}/{{ deptBudgetList.weight }}
+         <!--阶段状态-->
+         <span class="noservice" v-show="deptBudgetList.feedbackStatus=='执行中'">
+          未完货
+        </span>
+        <span class="service" v-show="deptBudgetList.feedbackStatus=='已完货'">{{
+          deptBudgetList.feedbackStatus
+        }}</span>
       </div>
     </ws-form>
     <!-- 提交 -->
@@ -829,4 +851,21 @@ margin-top: 20px;
   color: #5473e8;
   line-height: 24px;
 }
+//送达/未送达
+.noservice,
+.service {
+  display: inline-block;
+  border-radius: 4px;
+  border: 1px solid #d8dce6;
+  padding: 2px;
+  font-size: 12px;
+}
+.noservice {
+  background: #c4cada;
+  color: #ffffff;
+}
+.service {
+  background: #e5f1f7;
+  color: #50cad4;
+}
 </style>

+ 113 - 5
src/views/tranManagement/tranManagementTransporFeedback.vue

@@ -89,7 +89,17 @@
           {{ deptBudgetList.contractNo }}
         </ws-form-item>
       </ws-info-table>
-      <div class="small-title" style="font-size: 16px">装车详情</div>
+      <div class="small-title" style="font-size: 16px; width: 50%;float: left;">装车详情</div>
+          <!-- 导入 -->
+      <div style="font-size: 16px; width: 50%;float: left;text-align: right;">
+      <el-button
+        class="bg-bottom"
+        type="primary"
+        size="small"
+        @click="import(deptBudgetList)"
+        >导入</el-button
+      >
+    </div>
       <div class="liaison">
         <div
           style="width: 100%"
@@ -100,6 +110,15 @@
           <ws-info-table>
             <div class="catNos" v-show="item.temporaryDriverFlag == 0">
               司机-{{ index + 1 }}
+              <span class="noservice" v-show="item.status == '未装车'">{{
+                  item.status
+                }}</span>
+                <span class="service" v-show="item.status == '已装车'">{{
+                  item.status
+                }}</span>
+                 <span class="serviced" v-show="item.status == '已送达'">{{
+                  item.status
+                }}</span>
             </div>
             <div
               class="catNos catNosCor"
@@ -177,15 +196,37 @@
                 placeholder="请输入装车净重"
                 maxlength="20"
                 size="small"
+                style="width:80px"
               />
                <ws-input
                 v-else
                 v-model="item.loadNetWeight"
                 placeholder="请输入装车净重"
                 maxlength="20"
+                style="width:80px"
                 size="small"
               />
             </ws-form-item>
+            <!--装车日期-->
+            <ws-form-item label="装车日期:" span="1" prop="sendDateStart">
+            <ws-date-picker
+              v-if="item.status == '已装车'||item.status == '已送达'" 
+              :disabled="readonly"
+              v-model="item.sendDateStart"
+              type="date"
+              style="width: 150px;"
+              placeholder="请选择日期"
+              value-format="yyyy-MM-dd"
+            />
+               <ws-date-picker
+              v-else
+              v-model="item.sendDateStart"
+              type="date"
+              style="width: 150px;"
+              placeholder="请选择日期"
+              value-format="yyyy-MM-dd"
+            />
+          </ws-form-item>
             <!--磅单-->
             <ws-form-item label="磅单:" span="1" prop="loadPoundImg">
               <!-- slot-scope="scope" -->
@@ -244,6 +285,13 @@
       </div>
       <div style="text-align: right; color: #8890b1; font-size: 16px">
         合计(吨):{{ total }}/{{ deptBudgetList.weight }}
+        <!--阶段状态-->
+         <span class="noservice" v-show="deptBudgetList.feedbackStatus=='执行中'">
+          未完货
+        </span>
+        <span class="service" v-show="deptBudgetList.feedbackStatus=='已完货'">{{
+          deptBudgetList.feedbackStatus
+        }}</span>
       </div>
       <!-- <el-button class="add bg-bottom" type="primary" size="small" @click="add">
         <img width="22" height="22" src="../../../public/img/add.png" alt="" />
@@ -251,7 +299,7 @@
       > -->
     </ws-form>
     <!-- 提交 -->
-    <div style="text-align: right; padding: 10px" class="center">
+    <div style="margin-left: 1300px;" >
       <el-button
         class="bg-bottom"
         type="primary"
@@ -259,12 +307,19 @@
         @click="submit(deptBudgetList)"
         >提交</el-button
       >
+      <el-button
+        class="bg-bottom"
+        type="primary"
+        size="small"
+        @click="finished (deptBudgetList)"
+        >完货</el-button
+      >
     </div>
   </div>
 </template>
 <script>
 import { regionData, CodeToText, TextToCode } from 'element-china-area-data'
-import { seeCat, packList, feedback, getbank } from '@/model/transport/index'
+import { seeCat, packList, feedback, getbank ,state} from '@/model/transport/index'
 import { getstaff } from '@/model/warehouse/index'
 import WsUpload from '@/components/WsUpload'
 import mapDrag from '@/components/mapdrag/mapdrag'
@@ -456,6 +511,42 @@ export default {
     handleClose() {
       this.accessoryTFs = false
     },
+    //导入
+    import(){
+
+    },
+    finished(){
+       this.$confirm(`完货操作后,装车信息不可修改,是否确定完货?`, {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+        .then(() => {
+          this.$refs.deptBudgetList.validate((valid) => {
+            if (valid) {
+              var tranProcessInfo = {}
+              tranProcessInfo.id = this.deptBudgetList.id
+              state(tranProcessInfo)
+                .toPromise()
+                .then((response) => {
+                  this.$message.success('完货成功')
+                  this.deptBudgetList = {}
+                  this.freightspace = {}
+                  this.selectedOptions = ''
+                  this.$router.push({
+                    path: 'tranManagementTransporHairRespond',
+                  })
+                })
+            } else {
+              return false
+            }
+          })
+        })
+        .catch(() => {
+          return false
+        })
+
+    },
     submit() {
       for (var i = 0; i < this.freightspace.length; i++) {
         if (this.freightspace[i].temporaryDriverFlag != 0) {
@@ -736,7 +827,7 @@ export default {
     margin-left: 10px;
     &/deep/.auditFlow-icon {
       width: auto;
-      padding-right: 30px;
+      padding-right: 5px;
     }
     &/deep/.auditFlow-main {
       position: absolute;
@@ -770,7 +861,7 @@ export default {
   padding-left: 30px;
 }
 .bg-right {
-  padding-right: 10px;
+  padding-right: 2px;
   text-align: right;
 }
 .bg-bottom {
@@ -1003,6 +1094,23 @@ export default {
   margin-top: 6px;
   left: 2px;
 }
+//送达/未送达
+.noservice,
+.service {
+  display: inline-block;
+  border-radius: 4px;
+  border: 1px solid #d8dce6;
+  padding: 2px;
+  font-size: 12px;
+}
+.noservice {
+  background: #c4cada;
+  color: #ffffff;
+}
+.service {
+  background: #e5f1f7;
+  color: #50cad4;
+}
 /deep/.liaison .ws-info-table .el-form-item .el-form-item__content{
   padding: 0px;
 }

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

@@ -101,6 +101,15 @@
           <ws-info-table>
             <div class="catNos" v-show="item.temporaryDriverFlag == 0">
               司机-{{ index + 1 }}
+               <span class="noservice" v-show="item.status == '未装车'">{{
+                  item.status
+                }}</span>
+                <span class="service" v-show="item.status == '已装车'">{{
+                  item.status
+                }}</span>
+                 <span class="serviced" v-show="item.status == '已送达'">{{
+                  item.status
+                }}</span>
             </div>
             <div
               class="catNos catNosCor"
@@ -125,6 +134,10 @@
             <ws-form-item label="装车净重(吨):" span="1" prop="loadNetWeight">
               {{ item.loadNetWeight }}
             </ws-form-item>
+             <!--装车日期-->
+            <el-form-item label="装车日期:" span="1" prop="sendDateStart" >
+              {{ item.sendDateStart }}
+          </el-form-item>
             <!--磅单-->
             <ws-form-item label="磅单:" span="1" prop="loadPoundImg">
               <template>
@@ -189,6 +202,13 @@
       </div>
       <div style="text-align: right; color: #8890b1; font-size: 16px">
         合计(吨):{{ total }}/{{ deptBudgetList.weight }}
+         <!--阶段状态-->
+         <span class="noservice" v-show="deptBudgetList.feedbackStatus=='执行中'">
+          未完货
+        </span>
+        <span class="service" v-show="deptBudgetList.feedbackStatus=='已完货'">{{
+          deptBudgetList.feedbackStatus
+        }}</span>
       </div>
     </ws-form>
     <!-- 提交 -->
@@ -808,4 +828,21 @@ export default {
   color: #5473e8;
   line-height: 24px;
 }
+//送达/未送达
+.noservice,
+.service {
+  display: inline-block;
+  border-radius: 4px;
+  border: 1px solid #d8dce6;
+  padding: 2px;
+  font-size: 12px;
+}
+.noservice {
+  background: #c4cada;
+  color: #ffffff;
+}
+.service {
+  background: #e5f1f7;
+  color: #50cad4;
+}
 </style>

+ 31 - 28
src/views/tranManagement/tranManagementTransporHairRespond.vue

@@ -106,7 +106,7 @@
                     class="inExecution"
                   ></span>
                   <span
-                    v-if="scope.row.feedbackStatus == '已完'"
+                    v-if="scope.row.feedbackStatus == '已完'"
                     class="done"
                   ></span
                   >{{ scope.row.feedbackStatus }}
@@ -149,25 +149,12 @@
         </el-table-column>
         <el-table-column prop="seller" label="操作" width="300">
           <template slot-scope="scope">
-            <template
-              v-if="
-                scope.row.tranType == '汽运' &&
-                scope.row.feedbackStatus != '已完成'
-              "
-            >
+            <template v-if="scope.row.feedbackStatus != '已完货'">
               <div class="record" @click="trainSee(scope.row)">查看</div>
               <div class="adjustment" @click="feedback(scope.row)">反馈</div>
             </template>
-            <template
-              v-else-if="
-                scope.row.tranType == '汽运' &&
-                scope.row.feedbackStatus == '已完成'
-              "
-            >
-              <div class="record1" @click="trainSee(scope.row)">查看</div>
-            </template>
             <template v-else>
-              <div class="record1">—— ——</div>
+              <div class="record1" @click="trainSee(scope.row)">查看</div>
             </template>
           </template>
         </el-table-column>
@@ -230,7 +217,7 @@ export default {
       searchTypeOne: 1,
       taskTypeList: [
         { value: '执行中', type: 1 },
-        { value: '已完', type: 2 },
+        { value: '已完', type: 2 },
         { value: '全部任务', type: 3 },
       ],
       // 提交类型
@@ -293,16 +280,32 @@ export default {
             id: row.id,
           },
         })
+      } else if (row.tranType == '火运') {
+        this.$router.push({
+          path: 'tranManagementFireFeedbackLook',
+          query: {
+            id: row.id,
+          },
+        })
       }
     },
     //反馈
     feedback(row) {
-      this.$router.push({
-        path: 'tranManagementTransporFeedback',
-        query: {
-          id: row.id,
-        },
-      })
+      if (row.tranType == '汽运') {
+        this.$router.push({
+          path: 'tranManagementTransporFeedback',
+          query: {
+            id: row.id,
+          },
+        })
+      } else if (row.tranType == '火运') {
+        this.$router.push({
+          path: 'tranManagementFireFeedback',
+          query: {
+            id: row.id,
+          },
+        })
+      }
     },
     // statusquery(status) {
     //    if (status == 1) {
@@ -370,10 +373,10 @@ export default {
     },
     editClick(row) {
       var feedbackStatus = ''
-      if (row.feedbackStatus == '待执行' || row.feedbackStatus == '已完') {
+      if (row.feedbackStatus == '待执行' || row.feedbackStatus == '已完') {
         feedbackStatus = '执行中'
       } else if (row.feedbackStatus == '执行中') {
-        feedbackStatus = '已完'
+        feedbackStatus = '已完'
       }
       //cancelButtonClass: "btn-custom-cancel"
       this.$confirm(`是否将状态改为${feedbackStatus}`, {
@@ -417,9 +420,9 @@ export default {
           this.startDate = ''
           this.endDate = ''
         }
-      }else{
-         this.startDate = ''
-          this.endDate = ''
+      } else {
+        this.startDate = ''
+        this.endDate = ''
       }
       this.currentPage = 1
       this.getList()