戴艳蓉 пре 3 година
родитељ
комит
752846d50c

+ 9 - 0
src/apis/components/search-metal-kind.js

@@ -0,0 +1,9 @@
+import http from "@/apis/axios";
+const api = "admin/";
+export default {
+  // 列表
+  list: (data, params) => http(api + "brandlist", data, "post", params),
+  //  // 获取仓库  供应商仓/自建仓
+  //  warequery: (data, params) => http(api + "warequery", data, "post", params),
+};
+   

+ 9 - 0
src/apis/components/search-tax.js

@@ -0,0 +1,9 @@
+import http from "@/apis/axios";
+const api = "admin/";
+export default {
+  // 列表
+  list: (data, params) => http(api + "brandlist", data, "post", params),
+  //  // 获取仓库  供应商仓/自建仓
+  //  warequery: (data, params) => http(api + "warequery", data, "post", params),
+};
+   

+ 0 - 3
src/components/globalComponents/search-brand/main.vue

@@ -93,9 +93,6 @@ export default {
             id: this.options[index].id,
             code: this.options[index].wsm_code,
             label: this.options[index].name,
-            contactor: this.options[index].wsm_name,
-            mobile: this.options[index].mobile,
-            addr: this.options[index].addr_cn + this.options[index].wsm_addr,
           };
           this.$emit("searchChange", model);
         } else {

+ 2 - 0
src/components/globalComponents/search-metal-kind/index.js

@@ -0,0 +1,2 @@
+import Main from './main.vue'
+export default Main

+ 131 - 0
src/components/globalComponents/search-metal-kind/main.vue

@@ -0,0 +1,131 @@
+<template>
+  <el-select
+    v-model="value"
+    multiple
+    filterable
+    remote
+    :multiple-limit="1"
+    reserve-keyword
+    :size="size || 'medium'"
+    style="width: 100%"
+    :placeholder="placeholder || ''"
+    :disabled="disabled"
+    :remote-method="remoteMethod"
+    :loading="selectLoading"
+    @change="selectChange"
+  >
+    <el-option
+      v-for="(item, index) in options"
+      :key="item.id + index"
+      :label="item.name"
+      :value="item.wsm_code"
+      :disabled="item.status === '0'"
+    >
+    </el-option>
+  </el-select>
+</template>
+
+<script>
+import asyncRequest from "@/apis/components/search-metal-kind";
+import resToken from "@/mixins/resToken";
+export default {
+  name: "SearchMetalkind",
+  mixins: [resToken],
+  props: [
+    "size",
+    "value",
+    "placeholder",
+    "isDetail",
+    "disabled",
+    "type",
+    "names",
+  ],
+  /**
+   * 属性集合
+   * @param {String}        size             : 组件大小            非必填
+   * @param {Array}         value            : 选中值              必填
+   * @param {String}        placeholder      : 提示信息            非必填
+   * @param {Boolean}       isDetail         : 是否是详情逻辑       必填
+   * @param {Boolean}       disabled         : 是否禁用            必填
+   * @param {String}        names            : 选中值label         展示详情必填
+   */
+  /**
+   * 事件集合
+   * @searchChange             : 选中值变化调用   抛出选中数据
+   */
+  data() {
+    return {
+      options: [],
+      selectLoading: false,
+      searchName: "",
+      formValue: {
+        page: 1,
+        size: 100,
+        supplierNo: "",
+        wsm_code: "",
+        start: "",
+        end: "",
+        mobile: "",
+        contactor: "",
+      },
+    };
+  },
+  watch: {
+   
+    //  names: function (val, old) {
+    //   // console.log(val, old);
+    //   this.searchName = val;
+    //   if (this.isDetail && this.searchName) {
+    //     this.remoteMethod(this.searchName);
+    //   }
+    // },
+  },
+  mounted() {
+    this.options = [];
+    this.selectLoading = false;
+  },
+  methods: {
+    async selectChange(e) {
+      if (e && e.length > 0) {
+        let index = this.options.findIndex((v) => v.wsm_code === e[0]);
+        if (index !== -1) {
+          let model = {
+            id: this.options[index].id,
+            code: this.options[index].wsm_code,
+            label: this.options[index].name,
+          };
+          this.$emit("searchChange", model);
+        } else {
+          this.$emit("searchChange", {});
+        }
+      } else {
+        this.$emit("searchChange", {});
+      }
+    },
+    async remoteMethod(query) {
+      this.selectLoading = true;
+      if (query !== "") {
+        this.options = [];
+        let res = {};
+      this.formValue.supplierNo = query;
+          res = await asyncRequest.list(this.formValue);
+
+        if (res && res.code === 0 && res.data) {
+            const { list } = res.data;
+            this.options = list;
+        } else if (res && res.code >= 100 && res.code <= 104) {
+          await this.logout();
+        } else {
+          this.$message.warning(res.message);
+        }
+      } else {
+        this.options = [];
+      }
+      this.selectLoading = false;
+    },
+  },
+};
+</script>
+
+<style>
+</style>

+ 0 - 0
src/components/globalComponents/search-metal-kind/贵金属种类选择框


+ 2 - 0
src/components/globalComponents/search-tax/index.js

@@ -0,0 +1,2 @@
+import Main from './main.vue'
+export default Main

+ 131 - 0
src/components/globalComponents/search-tax/main.vue

@@ -0,0 +1,131 @@
+<template>
+  <el-select
+    v-model="value"
+    multiple
+    filterable
+    remote
+    :multiple-limit="1"
+    reserve-keyword
+    :size="size || 'medium'"
+    style="width: 100%"
+    :placeholder="placeholder || ''"
+    :disabled="disabled"
+    :remote-method="remoteMethod"
+    :loading="selectLoading"
+    @change="selectChange"
+  >
+    <el-option
+      v-for="(item, index) in options"
+      :key="item.id + index"
+      :label="item.name"
+      :value="item.wsm_code"
+      :disabled="item.status === '0'"
+    >
+    </el-option>
+  </el-select>
+</template>
+
+<script>
+import asyncRequest from "@/apis/components/search-tax";
+import resToken from "@/mixins/resToken";
+export default {
+  name: "SearchTax",
+  mixins: [resToken],
+  props: [
+    "size",
+    "value",
+    "placeholder",
+    "isDetail",
+    "disabled",
+    "type",
+    "names",
+  ],
+  /**
+   * 属性集合
+   * @param {String}        size             : 组件大小            非必填
+   * @param {Array}         value            : 选中值              必填
+   * @param {String}        placeholder      : 提示信息            非必填
+   * @param {Boolean}       isDetail         : 是否是详情逻辑       必填
+   * @param {Boolean}       disabled         : 是否禁用            必填
+   * @param {String}        names            : 选中值label         展示详情必填
+   */
+  /**
+   * 事件集合
+   * @searchChange             : 选中值变化调用   抛出选中数据
+   */
+  data() {
+    return {
+      options: [],
+      selectLoading: false,
+      searchName: "",
+      formValue: {
+        page: 1,
+        size: 100,
+        supplierNo: "",
+        wsm_code: "",
+        start: "",
+        end: "",
+        mobile: "",
+        contactor: "",
+      },
+    };
+  },
+  watch: {
+   
+    //  names: function (val, old) {
+    //   // console.log(val, old);
+    //   this.searchName = val;
+    //   if (this.isDetail && this.searchName) {
+    //     this.remoteMethod(this.searchName);
+    //   }
+    // },
+  },
+  mounted() {
+    this.options = [];
+    this.selectLoading = false;
+  },
+  methods: {
+    async selectChange(e) {
+      if (e && e.length > 0) {
+        let index = this.options.findIndex((v) => v.wsm_code === e[0]);
+        if (index !== -1) {
+          let model = {
+            id: this.options[index].id,
+            code: this.options[index].wsm_code,
+            label: this.options[index].name,
+          };
+          this.$emit("searchChange", model);
+        } else {
+          this.$emit("searchChange", {});
+        }
+      } else {
+        this.$emit("searchChange", {});
+      }
+    },
+    async remoteMethod(query) {
+      this.selectLoading = true;
+      if (query !== "") {
+        this.options = [];
+        let res = {};
+      this.formValue.supplierNo = query;
+          res = await asyncRequest.list(this.formValue);
+
+        if (res && res.code === 0 && res.data) {
+            const { list } = res.data;
+            this.options = list;
+        } else if (res && res.code >= 100 && res.code <= 104) {
+          await this.logout();
+        } else {
+          this.$message.warning(res.message);
+        }
+      } else {
+        this.options = [];
+      }
+      this.selectLoading = false;
+    },
+  },
+};
+</script>
+
+<style>
+</style>

+ 0 - 0
src/components/globalComponents/search-tax/税率选择框


+ 93 - 71
src/views/goodStore/goodsCost/components/baseForm.vue

@@ -21,31 +21,19 @@
         <el-row>
           <el-col :span="8">
             <el-form-item label="商品分类" prop="a1">
-              <el-cascader
-                v-model="ruleForm.a1"
-                style="width: 100%"
-                filterable
-                placeholder="商品分类"
-                clearable
-                :options="catOptions"
-                :props="{ expandTrigger: 'hover', checkStrictly: true }"
-              ></el-cascader>
+              <good-class
+                :value="ruleForm.a1"
+                @handleChange="goods_class_change"
+                :disabled="false"
+                :size="'mini'"
+                :placeholder="'商品分类'"
+              />
             </el-form-item>
             <el-form-item label="商品品牌" prop="a2">
-              <el-select
-                style="width: 100%"
-                v-model="ruleForm.a2"
-                clearable
-                placeholder="商品品牌"
-              >
-                <el-option
-                  v-for="item in a2Options"
-                  :key="item.id"
-                  :label="item.brand_name"
-                  :value="item.id"
-                >
-                </el-option>
-              </el-select>
+              <search-brand
+                :value="ruleForm.a2"
+                @searchChange="a2searchChange"
+              />
             </el-form-item>
             <el-form-item label="重量" prop="a3">
               <el-input
@@ -93,20 +81,11 @@
               </el-select>
             </el-form-item>
             <el-form-item label="供应商" prop="a6">
-              <el-select
-                v-model="ruleForm.a6"
-                filterable
-                clearable
-                style="width: 100%"
-                placeholder="供应商"
-              >
-                <el-option
-                  v-for="group in supplierOptions6"
-                  :key="group.id"
-                  :label="group.name"
-                  :value="group.id"
-                />
-              </el-select>
+              <search-supplier
+                :value="ruleForm.a6"
+                :placeholder="'供应商'"
+                @searchChange="a6searchChange"
+              />
             </el-form-item>
             <el-form-item label="销售权限" prop="a7">
               <el-select
@@ -125,20 +104,10 @@
               </el-select>
             </el-form-item>
             <el-form-item label="税点" prop="a8">
-              <el-select
-                v-model="ruleForm.a8"
-                filterable
-                clearable
-                style="width: 100%"
-                placeholder="税点"
-              >
-                <el-option
-                  v-for="group in supplierOptions4"
-                  :key="group.id"
-                  :label="group.name"
-                  :value="group.id"
-                />
-              </el-select>
+              <search-brand
+                :value="ruleForm.a8"
+                @searchChange="a8searchChange"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="16">
@@ -151,11 +120,10 @@
             <el-row>
               <el-col :span="12">
                 <el-form-item label="商品单位" prop="b2">
-                  <el-input
-                    placeholder="商品单位"
-                    v-model="ruleForm.b2"
-                    :disabled="isDetail"
-                  ></el-input>
+                  <search-unit
+                    :value="ruleForm.b2"
+                    @searchChange="b2searchChange"
+                  />
                 </el-form-item>
               </el-col>
               <el-col :span="12">
@@ -178,20 +146,10 @@
               </el-col>
               <el-col :span="12">
                 <el-form-item label="贵金属种类" prop="b4">
-                  <el-select
-                    v-model="ruleForm.b4"
-                    filterable
-                    clearable
-                    style="width: 100%"
-                    placeholder="销售权限"
-                  >
-                    <el-option
-                      v-for="group in []"
-                      :key="group.id"
-                      :label="group.name"
-                      :value="group.id"
-                    />
-                  </el-select> </el-form-item
+                  <search-metal-kind
+                    :value="ruleForm.b4"
+                    @searchChange="b4searchChange"
+                  /> </el-form-item
               ></el-col>
               <el-col :span="12">
                 <el-form-item label="启用实时金价" prop="b5">
@@ -468,7 +426,71 @@ export default {
         }
       });
     },
-
+    //商品分类选择
+    goods_class_change(e) {
+      this.ruleForm.a1 = e;
+      this.$refs.ruleForm.validateField("a1");
+    },
+    //商品品牌选择
+    a2searchChange(e) {
+      const { id, code, label } = e;
+      if (id) {
+        this.ruleForm.a2 = id;
+      } else {
+        this.ruleForm.a2 = "";
+      }
+      this.$refs.ruleForm.validateField("a1");
+    },
+    //供应商选择
+    a6searchChange(e) {
+      const { id, code, label } = e;
+      if (id) {
+        this.ruleForm.a6 = code;
+      } else {
+        this.ruleForm.a6 = "";
+      }
+      this.$refs.ruleForm.validateField("a6");
+    },
+    //税点选择
+    a8searchChange(e) {
+      const { id, code, label } = e;
+      if (id) {
+        this.ruleForm.a8 = code;
+      } else {
+        this.ruleForm.a8 = "";
+      }
+      this.$refs.ruleForm.validateField("a8");
+    },
+    //单位选择
+    b2searchChange(e) {
+      const { id, code, label } = e;
+      if (id) {
+        this.ruleForm.b2 = code;
+      } else {
+        this.ruleForm.b2 = "";
+      }
+      this.$refs.ruleForm.validateField("b2");
+    },
+    //贵金属种类选择
+    b4searchChange(e) {
+      const { id, code, label } = e;
+      if (id) {
+        this.ruleForm.b4 = code;
+      } else {
+        this.ruleForm.b4 = "";
+      }
+      this.$refs.ruleForm.validateField("b4");
+    },
+    //税点选择
+    b4searchChange(e) {
+      const { id, code, label } = e;
+      if (id) {
+        this.ruleForm.b4 = code;
+      } else {
+        this.ruleForm.b4 = "";
+      }
+      this.$refs.ruleForm.validateField("b4");
+    },
     async submitForm() {
       await this.$refs.ruleForm.validate(async (valid) => {
         if (valid) {

+ 20 - 13
src/views/goodStore/goodsCost/components/packForm.vue

@@ -223,19 +223,26 @@
             </el-form-item>
           </el-col>
           <el-col :span="16">
-            <el-form-item label="详情介绍图" prop="c2" class="activity-upload">
-              <div class="btnupload" style="position: relative">
-                <img v-if="ruleForm.c3" :src="ruleForm.c3" class="avatar" />
-                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
-                <file-upload
-                  class="Upload"
-                  :disabled="id == '007'"
-                  :accept="'.jpg,.png,.bmp,.jpeg'"
-                  :multiple="true"
-                  :uploadcondition="beforeAvatarUpload"
-                  @UploadErrorEvent="UploadErrorEvent"
-                  @UploadSuccessEvent="UploadSuccessEvent"
-                ></file-upload>
+            <el-form-item label="详情介绍图" prop="c3" class="activity-upload">
+              <div class="c3-div">
+                <ul>
+                  <li v-for="(img, iindex) in ruleForm.c3" :key="img + iindex">
+                    <img :src="img" alt="" />
+                  </li>
+                </ul>
+                <div class="btnupload" style="position: relative">
+                  <img v-if="ruleForm.c3" :src="ruleForm.c3" class="avatar" />
+                  <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+                  <file-upload
+                    class="Upload"
+                    :disabled="id == '007'"
+                    :accept="'.jpg,.png,.bmp,.jpeg'"
+                    :multiple="true"
+                    :uploadcondition="beforeAvatarUpload"
+                    @UploadErrorEvent="UploadErrorEvent"
+                    @UploadSuccessEvent="UploadSuccessEvent"
+                  ></file-upload>
+                </div>
               </div>
               <div class="txt-tips fl">
                 <p>大小:小于1M</p>

+ 1 - 0
src/views/sellOut/salesOrder/components/addEdit.vue

@@ -26,6 +26,7 @@
             class="demo-ruleForm"
           >
             <el-row>
+              
               <el-col :span="12">
                 <el-form-item label="商品分类" prop="goods_class">
                   <good-class