wxy 4 years ago
parent
commit
10ce420c61

+ 5 - 0
src/views/bill/supplier.vue

@@ -45,6 +45,10 @@ export default {
           name: '哈哈哈',
           num: '3333',
         },
+        {
+          name: '哈哈哈1',
+          num: '333113',
+        },
       ],
       total: 0,
       //选择的数据列表
@@ -61,6 +65,7 @@ export default {
     //选中的数据
     toSelect(data) {
       console.log('选择');
+      console.log(data);
       this.selected = data;
     },
     //导出

+ 1 - 0
src/views/car/once.vue

@@ -122,6 +122,7 @@ export default {
       }
     },
     toSelect(data) {
+      console.log(data);
       this.selected = data;
     },
     async toResult() {

+ 1 - 0
src/views/order/goods.vue

@@ -134,6 +134,7 @@
 </template>
 
 <script>
+const _ = require('lodash');
 const { mapActions: client } = createNamespacedHelpers('client');
 const { mapActions: order } = createNamespacedHelpers('order');
 const { mapActions: user } = createNamespacedHelpers('user');

+ 2 - 1
src/views/order/in.vue

@@ -50,6 +50,7 @@ const { mapActions: order } = createNamespacedHelpers('order');
 const { mapActions: user } = createNamespacedHelpers('user');
 const { mapActions: inBill } = createNamespacedHelpers('inBill');
 const { mapActions: orderPri } = createNamespacedHelpers('orderPri');
+const _ = require('lodash');
 
 import { mapState, createNamespacedHelpers } from 'vuex';
 import inDetail from './inDetail.vue';
@@ -174,7 +175,7 @@ export default {
     async toSave(data) {
       if (data.id) {
         const res = await this.inBill(data);
-        console.log(res);
+        // console.log(res);
         if (this.$checkRes(res, '保存成功', res.errmsg || '保存失败')) {
           this.search();
           this.flag = false;

+ 1 - 0
src/views/order/inDetail.vue

@@ -162,6 +162,7 @@
 </template>
 
 <script>
+const _ = require('lodash');
 const { mapActions: project } = createNamespacedHelpers('project');
 const { mapActions: route } = createNamespacedHelpers('route');
 const { mapActions: mode } = createNamespacedHelpers('mode');

+ 2 - 2
src/views/order/index-parts/search-bar.vue

@@ -60,7 +60,7 @@
 <script>
 import { mapState, createNamespacedHelpers } from 'vuex';
 const { mapActions: treaty } = createNamespacedHelpers('treaty');
-const { mapActions: item } = createNamespacedHelpers('item');
+const { mapActions: project } = createNamespacedHelpers('project');
 const { mapActions: route } = createNamespacedHelpers('route');
 const { mapActions: mode } = createNamespacedHelpers('mode');
 export default {
@@ -87,7 +87,7 @@ export default {
   created() {},
   methods: {
     ...treaty({ getTreatyList: 'query' }),
-    ...item({ getItemList: 'query' }),
+    ...project({ getItemList: 'query' }),
     ...route({ getRouteList: 'query' }),
     ...route({ getModeList: 'query' }),
     async getTreaty(client) {

+ 1 - 0
src/views/order/index.vue

@@ -50,6 +50,7 @@
 </template>
 
 <script>
+const _ = require('lodash');
 import searchBar from './index-parts/search-bar.vue';
 import orderForm from './index-parts/form.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';

+ 1 - 1
src/views/order/out.vue

@@ -152,6 +152,7 @@
 </template>
 
 <script>
+const _ = require('lodash');
 import { mapState, createNamespacedHelpers } from 'vuex';
 const { mapActions: order } = createNamespacedHelpers('order');
 const { mapActions: client } = createNamespacedHelpers('client');
@@ -162,7 +163,6 @@ const { mapActions: user } = createNamespacedHelpers('user');
 import page from '@f/components/pagination.vue';
 //查询search
 import searchBar from './index-parts/search-bar.vue';
-const _ = require('lodash');
 export default {
   metaInfo() {
     return { title: this.$route.meta.title };

+ 1 - 0
src/views/order/transport/detail.vue

@@ -9,6 +9,7 @@
 </template>
 
 <script>
+const _ = require('lodash');
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
   metaInfo() {

+ 91 - 13
src/views/order/transport/index.vue

@@ -25,8 +25,39 @@
                       <el-col class="card-header1" :span="24">线路:{{ getroute(item.route) }}</el-col>
                     </el-row>
                   </div>
-                  <data-table height="200px" :fields="fields" :data="item.split" :usePage="false" :opera="opera" @handleSelect="toSelect" :select="true">
-                  </data-table>
+                  <!-- <data-table
+                    height="200px"
+                    :fields="fields"
+                    :data="item.split"
+                    :usePage="false"
+                    :opera="opera"
+                    @handleSelect="toSelect"
+                    :select="true"
+                    rowkey="_id"
+                  >
+                  </data-table> -->
+                  <el-row>
+                    <el-col :span="24">
+                      <el-table
+                        :data="item.split"
+                        border
+                        height="200px"
+                        @selection-change="
+                          val => {
+                            handleSelectionChange(val, index);
+                          }
+                        "
+                        @select="onTableSelect"
+                      >
+                        <el-table-column type="selection" width="55"> </el-table-column>
+                        <el-table-column prop="name" label="货物" sortable></el-table-column>
+                        <el-table-column prop="number" label="数量" sortable></el-table-column>
+                        <el-table-column prop="weight" label="重量" sortable></el-table-column>
+                        <el-table-column prop="volume" label="体积" sortable></el-table-column>
+                        <el-table-column prop="remark" label="备注" sortable></el-table-column>
+                      </el-table>
+                    </el-col>
+                  </el-row>
                 </el-card>
               </el-col>
               <el-col :span="24" class="page">
@@ -156,6 +187,7 @@
 // 分页
 import page from '@f/components/pagination.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
+const _ = require('lodash');
 // 订单表
 const { mapActions: order } = createNamespacedHelpers('order');
 // 客户表
@@ -192,13 +224,13 @@ export default {
       // 线路列表
       routeList: [],
       // 订单列表
-      fields: [
-        { label: '货物', model: 'name' },
-        { label: '数量', model: 'number' },
-        { label: '重量', model: 'weight' },
-        { label: '体积', model: 'volume' },
-        { label: '备注', model: 'remark' },
-      ],
+      // fields: [
+      //   { label: '货物', model: 'name' },
+      //   { label: '数量', model: 'number' },
+      //   { label: '重量', model: 'weight' },
+      //   { label: '体积', model: 'volume' },
+      //   { label: '备注', model: 'remark' },
+      // ],
       list: [],
       total: 0,
       limit: 4,
@@ -238,6 +270,8 @@ export default {
       taxesList: [],
       // 当供应商类型为0,2时,路线在订单中直接获取
       depositRoute: '',
+      num: true,
+      newObj: {},
     };
   },
   async created() {
@@ -281,10 +315,12 @@ export default {
       }
     },
     // 选择货物
-    toSelect(data) {
-      let newData = data.concat(this.selected);
-      this.$set(this, `selected`, newData);
-    },
+    // toSelect(data) {
+    //   console.log(data);
+    //   let newData = data.concat(this.selected);
+    //   this.$set(this, `selected`, newData);
+    //   console.log(this.selected);
+    // },
     // 发车
     async toExport() {
       let res = await this.transportNo();
@@ -327,6 +363,7 @@ export default {
     // 生成装车单
     async onSubmit() {
       let data = this.form;
+      // console.log(data);
       data.goods = this.goodsList;
       let res = await this.transportCreate(data);
       if (this.$checkRes(res)) {
@@ -440,6 +477,47 @@ export default {
         this.$set(this, `carnoList`, res.data);
       }
     },
+    handleSelectionChange(val, index) {
+      // console.log(val, index);
+      let obj = this.newObj;
+      let numberIndex;
+      // console.log(obj);
+      if (val.length === 0) {
+        // console.log(index);
+        // console.log(this.selected);
+        // console.log(this.list[index].split);
+
+        let newArray = _.differenceWith(this.selected, this.list[index].split, _.isEqual);
+        this.$set(this, `selected`, newArray);
+        // console.log('全部取消');
+      } else {
+        if (this.num === false) {
+          numberIndex = _.findIndex(this.selected, function(o) {
+            return o._id == obj._id;
+          });
+          // console.log(numberIndex);
+          var newSelected = _.cloneDeep(this.selected);
+          newSelected.splice(numberIndex, 1);
+          this.$set(this, `selected`, newSelected);
+          // console.log('取消');
+        } else if (this.num === true || this.num === 0) {
+          // console.log(this.num);
+          let newArr = _.difference(val, this.selected);
+          let newData = newArr.concat(this.selected);
+          this.$set(this, `selected`, newData);
+          // console.log('选中');
+          // console.log(this.selected);
+        }
+      }
+      // console.log(this.selected);
+    },
+    onTableSelect(selection, row) {
+      // console.log(selection, row);
+      this.num = selection.length && selection.indexOf(row) !== -1;
+      // console.log('哈哈哈');
+      // console.log(this.num);
+      this.newObj = row;
+    },
   },
   computed: {
     ...mapState(['user']),

+ 5 - 1
src/views/order/transport/sign.vue

@@ -26,6 +26,7 @@
               <el-table-column label="操作">
                 <template slot-scope="scope">
                   <el-button v-if="scope.row.status == '0'" size="mini" type="text" @click="sign(scope.row)">签收</el-button>
+                  <span v-else style="color:#409EFF">已签收</span>
                 </template>
               </el-table-column>
             </el-table>
@@ -36,7 +37,7 @@
     <el-dialog title="签收详情" :visible.sync="dialog" @close="toClose">
       <el-form :model="form" :rules="rules">
         <el-form-item label="签收时间" prop="sign_time">
-          <el-date-picker v-model="form.sign_time" type="datetime" placeholder="选择日期时间"> </el-date-picker>
+          <el-date-picker v-model="form.sign_time" type="datetime" placeholder="选择日期时间" value-format="yyyy-MM-dd HH:mm:ss"> </el-date-picker>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer" style="text-align:center">
@@ -47,6 +48,7 @@
 </template>
 
 <script>
+const _ = require('lodash');
 import { mapState, createNamespacedHelpers } from 'vuex';
 const { mapActions: order } = createNamespacedHelpers('order');
 const { mapActions: client } = createNamespacedHelpers('client');
@@ -104,6 +106,7 @@ export default {
         const { data, total } = res;
         this.$set(this, `list`, data);
         this.$set(this, `total`, total);
+        console.log(this.list);
       }
       //查客户列表
       const res1 = await this.cQuery({ type: '客户' });
@@ -127,6 +130,7 @@ export default {
     async turnSave(data) {
       console.log(data);
       if (data.id) {
+        data.status = '1';
         const res = await this.transportSign(data);
         if (this.$checkRes(res, '修改成功', res.errmsg || '修改失败')) {
           this.toClose();