ソースを参照

fix:库存统计注释商品跳转至详情页+业务公司切换、竞价转单商品类型必填项

snow 1 年間 前
コミット
e48706a31a

+ 8 - 5
src/apis/user/axios.js

@@ -65,16 +65,19 @@ axios.interceptors.request.use(
     if (!config.data.token) {
       config.data.token = getToken()
     }
-    const { noRelation, needRela, relaComNo } = config.data
+    const { noRelation, needRela, relaComNo, useSelfComNo } = config.data
     const innerRelaComNo = store.state.user.currentCompany
     // 决定传递关联公司:非超管用户且单独的请求中data中没有设置noRelation
     // needRela: 超管需要传递关联公司(默认超管不传递)
     // noRelation: 普通用户不传递关联公司(默认普通用户传递)
-    const isAllowRelaComNo = !store.state.user.isSupertube && !noRelation
-    config.data.relaComNo = isAllowRelaComNo ? innerRelaComNo : ''
-    if (needRela) config.data.relaComNo = relaComNo || innerRelaComNo
 
-    const deleteKeys = ['needRela', 'noRelation']
+    if (!useSelfComNo) {
+      const isAllowRelaComNo = !store.state.user.isSupertube && !noRelation
+      config.data.relaComNo = isAllowRelaComNo ? innerRelaComNo : ''
+      if (needRela) config.data.relaComNo = relaComNo || innerRelaComNo
+    }
+
+    const deleteKeys = ['needRela', 'noRelation', 'useSelfComNo']
     deleteKeys.forEach(key => key in config.data && delete config.data[key])
     return config
   },

+ 10 - 0
src/layout/components/company-select/index.vue

@@ -9,6 +9,7 @@
     :placeholder="placeholder"
     style="width:380px"
     :disabled="disabled"
+    :clearable="clearable"
     reserve-keyword
     :size="size"
     filterable
@@ -80,6 +81,14 @@ export default {
     isSupplier: {
       type: Boolean,
       default: false
+    },
+    noCompanyCode: {
+      type: String,
+      default: () => false
+    },
+    clearable: {
+      type: Boolean,
+      default: () => false
     }
   },
   computed: {
@@ -136,6 +145,7 @@ export default {
     getUserCompany,
     genCompanyLabel(company) {
       const { name, code } = company
+      if (this.noCompanyCode) return name
       return `${code}/${name}`
     },
     async initalData() {

+ 33 - 11
src/views/dataDashboard/stockCount/components/dataWeido/index.vue

@@ -29,9 +29,22 @@
           <div style="width: 100%">
             <el-row style="padding: 0 0 0 80px">
               <el-col :span="24">
-                <el-col :span="12" style="width: 200px; padding-left: 10px">
+               <el-col :span="4" >
+                  <company-select 
+                    style="width:100%"
+                    :value="parmValue.companyNo" 
+                    @change="handleCompanyChange" 
+                    size="mini"
+                    clearable
+                    placeholder="请选择业务公司" 
+                    :noCompanyCode="true" 
+                  />  
+                </el-col>
+
+                <el-col :span="4" style="margin-left:10px">
                   <search-stock
                     :isDetail="true"
+                    style="width:100%"
                     :size="searchSize"
                     :value="parmValue.stock_code"
                     :disabled="parmValue.companyNo === ''"
@@ -42,6 +55,8 @@
                     @searchChange="selectStock"
                   />
                 </el-col>
+
+
                 <!-- 搜索 -->
                 <el-col :span="4" style="width: 54px">
                   <el-button
@@ -80,12 +95,12 @@
               width="190"
             >
               <template slot-scope="scope">
-                <el-tooltip placement="top" content="查看商品详情" v-if="goodCostPremission.includes('007')">
                 <div style="display:flex; align-items:center">
+                <!-- <el-tooltip placement="top" content="查看商品详情" v-if="goodCostPremission.includes('007')">
                      <i @click="linkToGoodDetail(scope.row)" class="el-icon-link" style="cursor:pointer;margin-right:5px;font-size:16px" />
+                  </el-tooltip> -->
                   <p>{{scope.row.spuCode}}</p>
                 </div>
-                </el-tooltip>
               </template>
             </el-table-column>
             <el-table-column
@@ -180,13 +195,14 @@
 import mixinPage from "@/mixins/elPaginationHandle";
 import resToken from "@/mixins/resToken";
 import asyncRequest from "@/apis/service/stock/dataWeido";
-import companyHelper from "@/mixins/companyHelper";
 import columns from "./columns";
 import { mapGetters } from "vuex";
+import CompanySelect from "@/layout/components/company-select"
 
 export default {
   name: "dataWeido",
-  mixins: [mixinPage, resToken, companyHelper],
+  mixins: [mixinPage, resToken],
+  components:{ CompanySelect },
   computed: {
     ...mapGetters(["tablebtnSize", "searchSize", "size"]),
     powers() {
@@ -234,14 +250,14 @@ export default {
     };
   },
   mounted() {
-    this.onCompanyChange()
+    // this.onCompanyChange()
     this.searchList();
   },
   methods: {
-    onCompanyChange(){
-      console.log(this.currentCompany)
-      this.parmValue.companyNo = this.currentCompany
-    },
+    // onCompanyChange(){
+      // console.log(this.currentCompany)
+      // this.parmValue.companyNo = this.currentCompany
+    // },
     //业务公司选择
     async supplierChange(e) {
       const { code } = e;
@@ -276,6 +292,11 @@ export default {
       this.pageInfo.curr = 1;
       await this.searchList();
     },
+    handleCompanyChange(code){
+      this.parmValue.companyNo = code
+      if(code === "") this.parmValue.stock_code = ""
+      this.searchList()
+    },
     linkToGoodDetail(row){
       // console.log(row)
       // http://localhost:8081/#/goodStore/goodsCostDetail?id=SKU2305311527349138&type=view
@@ -317,7 +338,8 @@ export default {
 
       const res = await asyncRequest.list({
         ...model,
-        needRela: true,
+        relaComNo: this.parmValue.companyNo,
+        useSelfComNo: true
       });
 
       if (res && res.code === 0 && res.data) {

+ 27 - 9
src/views/dataDashboard/stockCount/components/productWeido/index.vue

@@ -25,7 +25,7 @@
           <div style="width: 100%">
             <el-row style="padding: 0 0 0 80px" gutter="10">
               <el-col :span="24">
-                <el-col :span="7">
+                <el-col :span="5">
                   <el-input
                     v-model="parmValue.type_code"
                     :size="searchSize"
@@ -33,7 +33,7 @@
                     placeholder="sku编码"
                   />
                 </el-col>
-                <el-col :span="7">
+                <el-col :span="5">
                   <el-input
                     v-model="parmValue.good_name"
                     :size="searchSize"
@@ -41,6 +41,18 @@
                     placeholder="商品名称"
                   />
                 </el-col>
+
+                <el-col :span="4">
+                  <company-select 
+                    :value="parmValue.companyNo" 
+                    @change="handleCompanyChange" 
+                    size="mini"
+                    clearable
+                    placeholder="请选择业务公司" 
+                    :noCompanyCode="true" 
+                  />  
+                </el-col>
+
                 <!-- 搜索 -->
                 <el-col :span="4" style="width: 54px">
                   <el-button
@@ -68,9 +80,9 @@
 
         <template #good_code="{ scope }">
           <div style="display:flex;align-items:center">
-            <el-tooltip placement="top" content="查看商品详情" v-if="goodCostPremission.includes('007')">
+            <!-- <el-tooltip placement="top" content="查看商品详情" v-if="goodCostPremission.includes('007')">
                <i @click="linkToGoodDetail(scope.row)" class="el-icon-link" style="cursor:pointer;margin-right:5px;font-size:16px" />
-            </el-tooltip>
+            </el-tooltip> -->
             <p>{{scope.row.good_code}}</p>
           </div>
         </template>
@@ -187,14 +199,14 @@ import mixinPage from "@/mixins/elPaginationHandle";
 import resToken from "@/mixins/resToken";
 import { statusList } from "@/assets/js/statusList";
 import asyncRequest from "@/apis/service/stock/productWeido";
-import companyHelper from "@/mixins/companyHelper";
 import { mapGetters } from "vuex";
 import columns from "./columns";
+import CompanySelect from "@/layout/components/company-select"
 
 export default {
   name: "productWeido",
-  mixins: [mixinPage, resToken, companyHelper],
-  components: {},
+  mixins: [mixinPage, resToken],
+  components: { CompanySelect },
   computed: {
     ...mapGetters(["tablebtnSize", "searchSize", "size"]),
     powers() {
@@ -218,6 +230,7 @@ export default {
       modelId: 0,
       //入参参数
       parmValue: {
+        companyNo:"",
         type_code: "", //商品属性编码
         good_name: "", //商品名称
         page: 1, // 页码
@@ -245,6 +258,10 @@ export default {
   },
 
   methods: {
+    handleCompanyChange(code){
+      this.parmValue.companyNo = code
+      this.searchList()
+    },
     linkToGoodDetail(row){
       // console.log(row)
       // http://localhost:8081/#/goodStore/goodsCostDetail?id=SKU2305311527349138&type=view
@@ -259,6 +276,7 @@ export default {
         total: 0,
       };
       this.parmValue = {
+        companyNo:"",
         type_code: "",
         good_name: "", //商品名称
         size: 15,
@@ -271,8 +289,8 @@ export default {
       this.loading = true;
       const res = await asyncRequest.list({
         ...this.parmValue,
-        companyNo: this.currentCompany,
-        needRela: true,
+        relaComNo: this.parmValue.companyNo,
+        useSelfComNo: true
       });
 
       if (res && res.code === 0 && res.data) {

+ 6 - 8
src/views/sellOut/salesOrder/detail.vue

@@ -90,19 +90,17 @@
                   </el-popover>
                 </template>
                 <template slot="is_active">
-                  <span
-                    v-if="sitem.order_type + '' === '1' || sitem.order_type + '' === '2'"
-                    ><span
-                      >{{ sitem.is_activity + "" === "1" ? "参与活动" : "不参与活动" }}/{{
+                    <span >{{ sitem.is_activity + "" === "1" ? "参与活动" : "不参与活动" }}
+                    </span>
+                    <span v-if="sitem.is_activity + '' === '0'">
+                      /{{
                         (
                           goodtype_options.find(
                             (item) => item.value == sitem.good_type
                           ) || {}
                         ).label || "--"
-                      }}</span
-                    ></span
-                  >
-                  <span v-else>--</span>
+                      }}
+                    </span>
                 </template>
                 <template slot="proof_id">
                   <el-popover

+ 12 - 1
src/views/sellOut/zixunOrder/components/buyGoodModal.vue

@@ -147,7 +147,11 @@
 
               <el-col :span="12">
                 <el-row>
-                  <el-form-item label-width="85px" label="商品类型">
+                  <el-form-item
+                    label-width="85px"
+                    label="商品类型"
+                    prop="goodtype"
+                  >
                     <el-select v-model="ruleForm.goodtype" style="width:100%" placeholder="商品类型">
                       <el-option
                         v-for="goodType in goodTypes"
@@ -722,6 +726,13 @@ export default {
       },
       rulesThis: this.rules,
       rules: {
+        goodtype: [
+          {
+            required: true,
+            trigger: 'change',
+            message: '请选择商品类型'
+          }
+        ],
         good_num: [
           {
             required: true,