浏览代码

【修改】仓库认证打单
【修改】经销商提货列表新增、编辑
【新增】全局自定指令

howie 2 年之前
父节点
当前提交
ff8c4f01e6
共有 4 个文件被更改,包括 107 次插入29 次删除
  1. 27 0
      src/directives/index.js
  2. 6 2
      src/main.js
  3. 55 19
      src/views/supply/pickup/check.vue
  4. 19 8
      src/views/supply/pickup/components/pickup_form.vue

+ 27 - 0
src/directives/index.js

@@ -0,0 +1,27 @@
+export default  {
+  'select-loadmore': {
+    bind(el, binding) {
+      // binding.arg 自定义数据
+      // 获取element-ui定义好的scroll盒⼦
+      const SELECTWRAP_DOM = el.querySelector(binding.arg.class)
+        // ".el-table__body-wrapper"
+        // '.el-select-dropdown .el-select-dropdown__wrap'
+
+      SELECTWRAP_DOM.addEventListener('scroll', function() {
+        /**
+         * scrollHeight 获取元素内容⾼度(只读)
+         * scrollTop 获取或者设置元素的偏移值,常⽤于, 计算滚动条的位置, 当⼀个元素的容器没有产⽣垂直⽅向的滚动条, 那它的scrollTop的值默认为0.
+         * clientHeight 读取元素的可见⾼度(只读)
+         * 如果元素滚动到底, 下⾯等式返回true, 没有则返回false:
+         * ele.scrollHeight - ele.scrollTop === ele.clientHeight;
+         */
+        const condition =
+          this.scrollHeight - this.scrollTop <= this.clientHeight
+        if (condition) {
+          binding.value()
+        }
+      })
+    }
+  },
+
+}

+ 6 - 2
src/main.js

@@ -31,7 +31,7 @@ import '@/icons' // icon
 import '@/permission' // permission control
 
 import * as filters from './filters' // global filters
-
+import  directives from './directives'
 
 // 成功/错误提示
 import {successMsg, errorMsg, warningNotify, checkBtnRole, getSummaries, numToFixed} from '@/utils/common.js'
@@ -73,10 +73,14 @@ if (process.env.NODE_ENV === 'production') {
 Vue.use(ElementUI)
 // register global utility filters
 Object.keys(filters).forEach(key => {
-  // console.log(key)
   Vue.filter(key, filters[key])
 })
 
+Object.keys(directives).forEach(key => {
+  Vue.directive(key,directives[key])
+})
+
+
 Vue.config.productionTip = false
 
  new Vue({

+ 55 - 19
src/views/supply/pickup/check.vue

@@ -27,20 +27,24 @@
           <template v-if="!radio">
             <el-row :gutter="20">
             <el-col :xs="24" :sm="8" :lg="6">
-              <el-form-item label="物流公司">
-                <el-select v-model="screenForm.logistics"  placeholder="选择物流公司" clearable filterable >
-                  <el-option v-for="item in logisticsArr"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value">
-                  </el-option>
-                </el-select>
-
+              <el-form-item label="物流公司" prop="logisticsId">
+                <el-select
+                v-model="screenForm.logisticsId"
+                placeholder="全部"
+                style="width: 100%"
+              >
+                <el-option
+                  :label="item.logisticsCompany"
+                  :value="item.id"
+                  v-for="(item, index) in companyList"
+                  :key="index"
+                ></el-option>
+              </el-select>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="8" :lg="6">
-              <el-form-item label="经销商">
-                <el-select v-model="screenForm.customerId"  placeholder="选择经销商" clearable filterable >
+              <el-form-item label="经销商" prop="customerId">
+                <el-select v-model="screenForm.customerId" v-select-loadmore:[myData]="loadmore"  placeholder="选择经销商" clearable filterable >
                   <el-option v-for="item in dealerList"
                     :key="item.id"
                     :label="item.name"
@@ -51,7 +55,7 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="8" :lg="6">
-              <el-form-item label="仓库">
+              <el-form-item label="仓库" prop="warehouse">
                 <el-select v-model="screenForm.warehouse"  placeholder="选择仓库" clearable filterable >
                   <el-option v-for="item in warehouseList"
                     :key="item.id"
@@ -535,6 +539,7 @@
 import {
   getPickupList,
   getCode,
+  getCompanyList,
   getPickupManInfo,
   checkPassword,
   getWarehouseList,
@@ -571,7 +576,7 @@ export default {
         customerName: "",
         warehouse: "",
         customerId: "",
-        logistics:"",
+        logisticsId:"",
         storeId:""
       },
       statusList: [
@@ -583,9 +588,11 @@ export default {
       getCodeText: "获取验证码",
       countDown: 60,
       timer: null,
-
+      myData:{
+        class:".el-select-dropdown .el-select-dropdown__wrap"
+      },
       tableSelection: [],
-
+      companyList:[],
       queryItem: {},
       isShowPrint: false,
       dealerList: [],
@@ -601,7 +608,9 @@ export default {
       userList: [],
       isShowDialog: false,
       radio: 0,
-      logisticsArr:[]
+      logisticsArr:[],
+      pageNum:1,
+      listTotal:0
     };
   },
 
@@ -616,6 +625,7 @@ export default {
 
   created() {
     this.getDealerList()
+    this.getCompanyList()
     this.getWarehouseList();
   },
   // activated(){
@@ -626,6 +636,7 @@ export default {
   },
   methods: {
     handleReset(){
+      this.screenForm.customerId = ''
       this.$refs.screenForm.resetFields()
     },
     getDate() {
@@ -644,10 +655,31 @@ export default {
       return currentdate;
     },
     async getDealerList() {
-      const res = await getDealerList({ pageNum: 1, pageSize: -1 });
-      this.dealerList = res.data.records;
+      const res = await getDealerList({ pageNum: 30, pageSize: 50 });
+      this.dealerList = [...this.dealerList,...res.data.records];
+      this.listTotal = res.data.total
     },
+    loadmore() {
+      let len = Math.ceil(this.listTotal/50)
+      if (this.pageNum<=len) {
+        this.pageNum++
+        this.getDealerList()
+      }
 
+    },
+      // 获取物流公司列表
+      getCompanyList() {
+      getCompanyList({
+        pageNum: 1,
+        pageSize: -1,
+      }).then((res) => {
+        this.companyList = res.data.records;
+      });
+    },
+    getLogisticsId(e){
+     const item = this.companyList.find(k=>k.id===e)
+        this.screenForm.company = item.logisticsCompany
+    },
     // 获取仓库列表
     getWarehouseList() {
       getWarehouseList({
@@ -717,12 +749,15 @@ export default {
     // 查询列表
     getList() {
       console.log(this.screenForm.customerId);
-      if (!this.screenForm.manId) {
+      if (this.radio==='1') {
+        if (!this.screenForm.manId) {
         return this.$errorMsg("请先查询提货人信息");
       }
       if (!this.screenForm.warehouse) {
         return this.$errorMsg("请选择仓库");
       }
+      }
+
       this.listLoading = true;
 
       let params = {
@@ -734,6 +769,7 @@ export default {
         // customerName:this.screenForm.customerName,
         correspondId: this.screenForm.warehouse,
         customerId: this.screenForm.customerId,
+        logisticsId:this.screenForm.logisticsId
       };
       getPickupList(params).then((res) => {
         this.dataList = res.data.records;

+ 19 - 8
src/views/supply/pickup/components/pickup_form.vue

@@ -76,7 +76,7 @@
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="8">
-            <el-form-item label="提货人" prop="pickupMan">
+            <el-form-item label="提货人" prop="pickupMan" v-if="mainForm.pickupWay == '1'">
               <el-select
                 v-model="mainForm.pickupMan"
                 placeholder="全部"
@@ -112,14 +112,15 @@
           <el-col :xs="24" :sm="12" :lg="8" v-if="mainForm.pickupWay == '2'">
             <el-form-item label="物流公司" prop="company">
               <el-select
-                v-model="mainForm.company"
+                v-model="mainForm.logisticsId"
+                @change="getLogisticsId"
                 placeholder="全部"
                 style="width: 100%"
                 :disabled="flag"
               >
                 <el-option
                   :label="item.logisticsCompany"
-                  :value="item.logisticsNumber"
+                  :value="item.id"
                   v-for="(item, index) in companyList"
                   :key="index"
                 ></el-option>
@@ -301,6 +302,7 @@ export default {
         pickupCar: "",
         company: "",
         remark: "",
+        logisticsId:""
       },
       mainFormRules: {
         date: [
@@ -376,6 +378,7 @@ export default {
         this.mainForm.pickupCar = data.takerCarId;
         this.mainForm.company = data.pickLogistics;
         this.mainForm.remark = data.remark;
+        this.mainForm.logisticsId = data.logisticsId
 
         this.deliverList = data.invoicePickBeans;
       });
@@ -425,9 +428,13 @@ export default {
         pageSize: -1,
       }).then((res) => {
         this.companyList = res.data.records;
+        console.log(this.companyList);
       });
     },
-
+    getLogisticsId(e){
+     const item = this.companyList.find(k=>k.id===e)
+        this.mainForm.company = item.logisticsCompany
+    },
     // 查询列表
     getDeliverList() {
       if (!this.mainForm.warehouse) {
@@ -493,10 +500,12 @@ export default {
 
     submitForm() {
       this.formLoading = true;
-
-      let takerName = this.pickupManList.find(
+      let takerName
+      if (this.mainForm.pickupWay == "1") {
+         takerName = this.pickupManList.find(
         (o) => o.id == this.mainForm.pickupMan
-      ).takerName;
+      ).takerName ;
+      }
       // let correspondName = this.warehouseList.find(o => o.id == this.mainForm.warehouse).name;
 
       let orderList = [];
@@ -510,7 +519,8 @@ export default {
         pickStatus: Number(this.mainForm.timeSlot),
         pickType: Number(this.mainForm.pickupWay),
         takerId: this.mainForm.pickupMan,
-        takerName,
+        takerName:takerName||'',
+
         remark: this.mainForm.remark,
         invoiceOrderIds: orderList,
       };
@@ -519,6 +529,7 @@ export default {
       }
       if (this.mainForm.pickupWay == "2") {
         params.pickLogistics = this.mainForm.company;
+        params.logisticsId = this.mainForm.logisticsId
       }
       if (this.listItem) {
         params.id = this.listItem.id;