فهرست منبع

Merge branch 'master' of http://git.cc-lotus.info/news-zhwl/cms-zhwl

lrf402788946 4 سال پیش
والد
کامیت
a43b7387f4

+ 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');

+ 9 - 9
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,9 +87,9 @@ export default {
   created() {},
   methods: {
     ...treaty({ getTreatyList: 'query' }),
-    ...item({ getItemList: 'query' }),
+    ...project({ getItemList: 'query' }),
     ...route({ getRouteList: 'query' }),
-    ...route({ getModeList: 'query' }),
+    ...mode({ getModeList: 'query' }),
     async getTreaty(client) {
       const res = await this.getTreatyList({ client });
       if (this.$checkRes(res)) {
@@ -102,20 +102,20 @@ export default {
     },
     async getItem(treaty) {
       const res = await this.getItemList({ treaty });
-      // if (this.$checkRes(res)) {
-      //   const { data } = res;
-      //   this.$set(this, `itemList`, data);
-      // }
+      if (this.$checkRes(res)) {
+        const { data } = res;
+        this.$set(this, `itemList`, data);
+      }
     },
     async getRoute(item) {
-      const res = await this.getItemList({ item });
+      const res = await this.getRouteList({ item });
       if (this.$checkRes(res)) {
         const { data } = res;
         this.$set(this, `routeList`, data);
       }
     },
     async getMode(route) {
-      const res = await this.getItemList({ route });
+      const res = await this.getModeList({ route });
       if (this.$checkRes(res)) {
         const { data } = res;
         this.$set(this, `modeList`, data);

+ 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() {

+ 93 - 19
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">
@@ -85,7 +116,7 @@
                     <span v-else-if="form.supply_type == '1'">
                       <el-form-item label="供应商">
                         <el-select v-model="form.supplier.client" placeholder="供应商" @change="changeClient">
-                          <el-option v-for="item in clientList" :key="item.label" :label="item.name" :value="item.id"> </el-option>
+                          <el-option v-for="item in supClientList" :key="item.label" :label="item.name" :value="item.id"> </el-option>
                         </el-select>
                       </el-form-item>
                       <el-form-item label="合同">
@@ -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() {
@@ -268,6 +302,12 @@ export default {
         const { data, total } = res;
         this.$set(this, `clientList`, data);
       }
+      // 查供应商
+      res = await this.clientQuery({ type: '供应商' });
+      if (this.$checkRes(res)) {
+        const { data, total } = res;
+        this.$set(this, `supClientList`, data);
+      }
       // 查询线路列表
       res = await this.routeQuery();
       if (this.$checkRes(res)) {
@@ -281,10 +321,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 +369,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)) {
@@ -353,22 +396,22 @@ export default {
       else return value;
     },
     // 选择供应商,查询合同
-    async changeClient() {
-      let res = await this.treatyQuery({ type: '供应商' });
+    async changeClient(value) {
+      let res = await this.treatyQuery({ client: value });
       if (this.$checkRes(res)) {
         this.$set(this, `treatyList`, res.data);
       }
     },
     // 选择合同,查询项目
     async changeTreaty(value) {
-      let res = await this.projectQuery({ client: value });
+      let res = await this.projectQuery({ treaty: value });
       if (this.$checkRes(res)) {
         this.$set(this, `itemList`, res.data);
       }
     },
     // 选择项目,查询线路
     async changeItem(value) {
-      let res = await this.routeQuery({ treaty: value });
+      let res = await this.routeQuery({ item: value });
       if (this.$checkRes(res)) {
         this.$set(this, `supRouteList`, res.data);
       }
@@ -380,7 +423,7 @@ export default {
     },
     // 选择线路,查询计算方式
     async changeRoute(value) {
-      let res = await this.modeQuery({ item: value });
+      let res = await this.modeQuery({ route: value });
       if (this.$checkRes(res)) {
         this.$set(this, `modeList`, res.data);
       }
@@ -440,6 +483,37 @@ export default {
         this.$set(this, `carnoList`, res.data);
       }
     },
+    handleSelectionChange(val, index) {
+      let obj = this.newObj;
+      let numberIndex;
+      console.log(this.num);
+      //如果返回来的数组为空,那么就是这个list全部取消
+      if (val.length === 0) {
+        let newArray = _.differenceWith(this.selected, this.list[index].split, _.isEqual);
+        this.$set(this, `selected`, newArray);
+      } else {
+        //正常取消,除了全部取消的情况
+        if (this.num === false) {
+          numberIndex = _.findIndex(this.selected, function(o) {
+            return o._id == obj._id;
+          });
+          var newSelected = _.cloneDeep(this.selected);
+          newSelected.splice(numberIndex, 1);
+          this.$set(this, `selected`, newSelected);
+        } else if (this.num === true || this.num === 0) {
+          let newArr = _.difference(val, this.selected);
+          let newData = newArr.concat(this.selected);
+          this.$set(this, `selected`, newData);
+        }
+      }
+      console.log(this.selected);
+    },
+    onTableSelect(selection, row) {
+      //判断是选中还是取消商品,num为true是选中,为false的时候是取消
+      //取消没了的时候selection.length为0,num也就是0
+      this.num = selection.length && selection.indexOf(row) !== -1;
+      this.newObj = row;
+    },
   },
   computed: {
     ...mapState(['user']),

+ 6 - 3
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');
@@ -125,8 +127,9 @@ export default {
     },
     //保存
     async turnSave(data) {
-      console.log(data);
+      // console.log(data);
       if (data.id) {
+        data.status = '1';
         const res = await this.transportSign(data);
         if (this.$checkRes(res, '修改成功', res.errmsg || '修改失败')) {
           this.toClose();
@@ -134,7 +137,7 @@ export default {
       }
     },
     sign(data) {
-      console.log(data);
+      // console.log(data);
       this.$set(this, `form`, data);
       this.dialog = true;
     },