戴艳蓉 hace 3 años
padre
commit
2aff968b30

+ 3 - 3
src/App.vue

@@ -6,7 +6,7 @@
 
 <script>
 import { JudgeEnvironment } from "@/utils/validate";
-import asyncRequest from "@/apis/service/test";
+// import asyncRequest from "@/apis/service/test";
 import { getCode } from "@/utils/dingding";
 export default {
   name: "App",
@@ -16,8 +16,8 @@ export default {
     };
   },
   async created() {
-    const res = await asyncRequest.list({type_code:"WSM8b49211013191450"});
-    console.log(res);
+    // const res = await asyncRequest.list({type_code:"WSM8b49211013191450"});
+    // console.log(res);
     // if (res && res.code === 0 && res.data) {
     //   this.tableData = res.data.list;
     //   this.pageInfo.total = Number(res.data.count);

+ 2 - 4
src/components/search-account/main.vue

@@ -1,6 +1,6 @@
 <template>
   <el-select
-    v-model="code"
+    v-model="value"
     multiple
     filterable
     remote
@@ -8,7 +8,7 @@
     reserve-keyword
     :size="size || 'medium'"
     style="width: 100%"
-    :placeholder="placeholder"
+    :placeholder="placeholder||''"
     :disabled="disabled"
     :remote-method="remoteMethod"
     :loading="selectLoading"
@@ -56,14 +56,12 @@ export default {
   data() {
     return {
       options: [],
-      code: [],
       selectLoading: false,
       searchName: "",
     };
   },
   watch: {
     names: function (val, old) {
-      console.log(val, old);
       this.searchName = val;
       if (this.isDetail && this.searchName) {
         this.remoteMethod(this.searchName);

+ 3 - 4
src/components/search-customer/main.vue

@@ -1,6 +1,6 @@
 <template>
   <el-select
-    v-model="code"
+    v-model="value"
     multiple
     filterable
     remote
@@ -8,7 +8,7 @@
     reserve-keyword
     :size="size || 'medium'"
     style="width: 100%"
-    :placeholder="placeholder"
+     :placeholder="placeholder||''"
     :disabled="disabled"
     :remote-method="remoteMethod"
     :loading="selectLoading"
@@ -31,7 +31,7 @@ import resToken from "@/mixins/resToken";
 export default {
   name: "SearchCustomer",
   mixins: [resToken],
-  props: ["size", "code", "placeholder", "isDetail", "disabled", "names"],
+  props: ["size", "value", "placeholder", "isDetail", "disabled", "names"],
   /**
    * 属性集合
    * @param {String}        size             : 组件大小            非必填
@@ -48,7 +48,6 @@ export default {
   data() {
     return {
       options: [],
-      code: [],
       selectLoading: false,
       searchName: "",
     };

+ 3 - 4
src/components/search-stock/main.vue

@@ -1,6 +1,6 @@
 <template>
   <el-select
-    v-model="code"
+    v-model="value"
     multiple
     filterable
     remote
@@ -8,7 +8,7 @@
     reserve-keyword
     :size="size || 'medium'"
     style="width: 100%"
-    :placeholder="placeholder"
+     :placeholder="placeholder||''"
     :disabled="disabled"
     :remote-method="remoteMethod"
     :loading="selectLoading"
@@ -30,7 +30,7 @@ import resToken from "@/mixins/resToken";
 export default {
   name: "SearchStock",
   mixins: [resToken],
-  props: ["size", "code", "placeholder", "isDetail", "disabled", "names"],
+  props: ["size", "value", "placeholder", "isDetail", "disabled", "names"],
   /**
    * 属性集合
    * @param {String}        size             : 组件大小            非必填
@@ -47,7 +47,6 @@ export default {
   data() {
     return {
       options: [],
-      code: [],
       selectLoading: false,
       searchName: "",
     };

+ 2 - 3
src/components/search-supplier/main.vue

@@ -1,6 +1,6 @@
 <template>
   <el-select
-    v-model="code"
+    v-model="value"
     multiple
     filterable
     remote
@@ -8,7 +8,7 @@
     reserve-keyword
     :size="size || 'medium'"
     style="width: 100%"
-    :placeholder="placeholder"
+    :placeholder="placeholder||''"
     :disabled="disabled"
     :remote-method="remoteMethod"
     :loading="selectLoading"
@@ -48,7 +48,6 @@ export default {
   data() {
     return {
       options: [],
-      code: [],
       selectLoading: false,
       searchName: "",
     };

+ 47 - 5
src/components/select-area/main.vue

@@ -1,31 +1,54 @@
 <template>
+  <div class="select-area">
     <el-cascader
+      v-if="!loading"
       :size="size || 'medium'"
       style="width: 100%"
       filterable
       clearable
       v-model="value"
+      :placeholder="placeholder || ''"
       :props="props"
+      :disabled="disabled"
       @change="handleChange"
     ></el-cascader>
+    <div class="loading-input" :class="{ disabled: disabled }" v-else>
+      <i class="el-icon-loading"></i>
+      <span>{{ placeholder || "" }}</span>
+    </div>
+  </div>
 </template>
 
 <script>
 import asyncRequest from "@/apis/components/select-area";
 export default {
   name: "SelectArea",
-  props: ["size", "value"],
+  props: ["size", "value", "isDetail", "placeholder", "disabled"],
   /**
    * 属性集合
-   * @param {String}       size       : 组件大小 非必填
-   * @param {Array}        value      : 选中值  必填
+   * @param {String}        size                   : 组件大小 非必填
+   * @param {Array}         value                  : 选中值  必填
+   * @param {String}        placeholder            : 提示信息            非必填
+   * @param {Boolean}       isDetail               : 是否是详情逻辑       必填
+   * @param {Boolean}       disabled               : 是否禁用            必填
    */
   /**
    * 事件集合
    * @selectChange            : 选中值变化调用   抛出选中数据
    */
+  watch: {
+    value: function (val, old) {
+      if (val) {
+        this.loading = true;
+        setTimeout(() => {
+          this.loading = false;
+        }, 10);
+      }
+    },
+  },
   data() {
     return {
+      loading: false,
       props: {
         lazy: true, //开启远程加载
         async lazyLoad(node, resolve) {
@@ -70,8 +93,27 @@ export default {
 };
 </script>
 
-<style>
+<style lang="scss" scoped>
 .select-area {
-  display: inline-block;
+  .loading-input {
+    background-color: transparent;
+    border: 1px solid #dfe4ed;
+    color: #c0c4cc;
+    width: 100%;
+    height: 36px;
+    line-height: 36px;
+    padding: 0 30px 0 12px;
+    border-radius: 4px;
+    &.disabled {
+      background-color: #f5f7fa;
+    }
+    span {
+      font-size: 16px;
+      height: 36px;
+      line-height: 36px;
+      padding:0 0 0 3px;
+      vertical-align: top;
+    }
+  }
 }
 </style>

+ 29 - 9
src/views/purchaseIn/storeSet/addEdit.vue

@@ -24,7 +24,7 @@
             label-width="100px"
             class="demo-ruleForm"
           >
-            <div style="padding: 8px 0 12px 0">
+            <div style="padding: 0 0 12px 0">
               <el-divider content-position="center">仓库信息</el-divider>
             </div>
 
@@ -36,8 +36,9 @@
                   style="width: 100%"
                 >
                   <search-supplier
-                    :value="supplierNo"
+                    :value="ruleForm.supplierNo"
                     :names="supplier_name"
+                    :is-detail="id !== 'add'"
                     :disabled="isDetail"
                     :placeholder="'请输入公司名称'"
                     @searchChange="supplierChange"
@@ -70,7 +71,7 @@
                     :size="searchSize"
                     :value="ruleForm.contactor"
                     :placeholder="'请输入负责人'"
-                    :is-detail="isDetail"
+                    :is-detail="id !== 'add'"
                     :disabled="isDetail"
                     :names="accountNames"
                     @searchChange="accountChange"
@@ -83,6 +84,7 @@
                     v-model="ruleForm.mobile"
                     maxlength="11"
                     clearable
+                    :disabled="isDetail"
                   >
                   </el-input> </el-form-item
               ></el-col>
@@ -93,6 +95,8 @@
                   <select-area
                     :placeholder="'请选择省/市/区'"
                     :value="ruleForm.addr_code"
+                    :is-detail="id !== 'add'"
+                    :disabled="isDetail"
                     @selectChange="selectAreaAddr_code"
                   />
                 </el-form-item>
@@ -104,6 +108,7 @@
                     v-model="ruleForm.addr"
                     maxlength="100"
                     clearable
+                    :disabled="isDetail"
                   >
                   </el-input>
                 </el-form-item>
@@ -130,6 +135,7 @@
                     placeholder="请输入联系人电话"
                     v-model="ruleForm.wsm_mobile"
                     maxlength="11"
+                    :disabled="isDetail"
                     clearable
                   >
                   </el-input> </el-form-item
@@ -140,6 +146,7 @@
               <el-col :span="12">
                 <el-form-item label="省/市/区" prop="addrs_code">
                   <select-area
+                    :is-detail="id !== 'add'"
                     :disabled="isDetail"
                     :value="ruleForm.addrs_code"
                     :placeholder="'请选择省/市/区'"
@@ -151,6 +158,7 @@
                   <el-input
                     placeholder="请输入详细地址"
                     maxlength="100"
+                    :disabled="isDetail"
                     v-model="ruleForm.wsm_addr"
                     clearable
                   >
@@ -213,6 +221,7 @@ export default {
 
     return {
       supplier_name: "",
+      accountNames:"",
       loading: false,
       title: "添加仓库",
       showModelThis: this.showModel,
@@ -404,14 +413,16 @@ export default {
           wsm_name,
         } = res.data;
 
-        this.supplier_name = supplierNo;
+        this.supplier_name = supplier_name;
+        this.accountNames = ""
+        //accountNames||"";
         this.ruleForm = {
           name: name, // 仓库名称
           supplierNo: [supplierNo], //供应商编码
           // wsmtype: "", //仓库类型 目前随便填
-          addr_code: [], //仓库省市区
+          addr_code: this.getCode(addr_code), //仓库省市区
           addr: addr, //仓库详细地址
-          contactor: [], //仓库联系人
+          contactor: contactor ? [contactor] : [], //仓库联系人
           mobile: mobile, //仓库联系方式
           // position: "", //联系人职位  目前随便填
           // wsm_type: "", //目前随便填
@@ -419,9 +430,9 @@ export default {
           wsm_name: wsm_name, //收发货联系人
           wsm_mobile: wsm_mobile, //收发货联系方式
           wsm_addr: wsm_addr, //收发货地址详细
-          addrs_code: [], //收发货省市区
+          addrs_code: this.getCode(addrs_code), //收发货省市区
         };
-        console.log(res.data);
+        console.log(this.ruleForm);
 
         // this.ruleForm = res.data;
         // this.ruleForm.role_id = this.ruleForm.role;
@@ -437,6 +448,8 @@ export default {
         if (this.$refs.ruleForm) {
           this.$refs.ruleForm.resetFields();
           this.$refs.ruleForm.clearValidate();
+          this.supplier_name = "";
+          this.accountNames = "";
           this.ruleForm = {
             name: "测试测试", // 仓库名称
             supplierNo: [], //供应商编码
@@ -459,11 +472,18 @@ export default {
     setCode(list) {
       let model = {
         provice_code: list[0],
-        city_code: list[2],
+        city_code: list[1],
         area_code: list[2],
       };
       return model;
     },
+    getCode(obj) {
+      let arr = [];
+      arr.push(obj.provice_code);
+      arr.push(obj.city_code);
+      arr.push(obj.area_code);
+      return arr;
+    },
     getId(list) {
       let arr = JSON.parse(JSON.stringify(list));
       return arr.join(",");