From 6e996f74553e1418531e119ae9d5fd1630ea28d4 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 23 一月 2026 14:28:08 +0800
Subject: [PATCH] 经销商管理

---
 admin/src/views/business/platformGoods.vue |   82 +++++++++++++++++++++-------------------
 1 files changed, 43 insertions(+), 39 deletions(-)

diff --git a/admin/src/views/business/platformGoods.vue b/admin/src/views/business/platformGoods.vue
index 2c1f3df..885cc8c 100644
--- a/admin/src/views/business/platformGoods.vue
+++ b/admin/src/views/business/platformGoods.vue
@@ -2,11 +2,6 @@
   <TableLayout :permissions="['business:goods:query']">
     <!-- 鎼滅储琛ㄥ崟 -->
     <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-<!--      <el-tabs v-model="activeName" @tab-click="handleClick">
-        <el-tab-pane label="鍏ㄩ儴鍟嗗搧" name="first"></el-tab-pane>
-        <el-tab-pane label="宸插敭缃勫晢鍝�" name="second"></el-tab-pane>
-        <el-tab-pane label="鍥炴敹绔欏晢鍝�" name="third"></el-tab-pane>
-      </el-tabs>-->
       <el-form-item label="鍟嗗搧鍚嶇О" prop="name">
         <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�" @keypress.enter.native="search"></el-input>
       </el-form-item>
@@ -16,7 +11,10 @@
       <el-form-item label="鎵�灞炲垎绫�" prop="categoryId">
         <el-select
           v-model="searchForm.categoryId"
+          style="width: 150px"
           placeholder="璇烽�夋嫨鎵�灞炲垎绫�"
+          clearable
+          @change="search"
         >
           <el-option
             v-for="item in labels"
@@ -29,7 +27,10 @@
       <el-form-item label="鎵�灞炲搧鐗�" prop="brandId">
         <el-select
           v-model="searchForm.brandId"
+          style="width: 150px"
           placeholder="璇烽�夋嫨鎵�灞炲搧鐗�"
+          clearable
+          @change="search"
         >
           <el-option
             v-for="item in brands"
@@ -41,8 +42,10 @@
       </el-form-item>
       <el-form-item label="涓婃灦鐘舵��" prop="status">
         <el-select
-          v-model="searchForm.brandId"
+          v-model="searchForm.status"
           placeholder="璇烽�夋嫨涓婃灦鐘舵��"
+          clearable
+          @change="search"
         >
           <el-option :key="0" :value="0" label="涓婃灦"></el-option>
           <el-option :key="1" :value="1" label="涓嬫灦"></el-option>
@@ -55,10 +58,11 @@
     </el-form>
     <!-- 琛ㄦ牸鍜屽垎椤� -->
     <template v-slot:table-wrap>
-      <ul class="toolbar" v-permissions="['business:goods:create', 'business:goods:delete']">
+      <ul class="toolbar" >
         <li><el-button type="primary" icon="el-icon-plus" @click="$refs.operaGoodsWindow.open('鏂板缓鍟嗗搧', null, 0)" v-permissions="['business:goods:create']">鏂板缓</el-button></li>
         <li><el-button type="primary"  icon="el-icon-edit"  @click="issued(0)">涓婃灦</el-button></li>
         <li><el-button type="danger"  icon="el-icon-edit"  @click="issued(1)">涓嬫灦</el-button></li>
+        <li><p class="tip-warn" style="width: 100%;margin-left: 20px;"><i class="el-icon-warning"></i>鎻愮ず锛氥�愪緵璐т环璁剧疆銆戝彧缁熻鍚敤鐘舵�佺殑渚涢攢鍟嗚缃暟鎹紝锛堝凡瀹氫环渚涢攢鍟嗘暟/鍏ㄩ儴渚涢攢鍟嗘暟锛�</p></li>
       </ul>
       <el-table
         v-loading="isWorking.search"
@@ -68,9 +72,9 @@
         @selection-change="handleSelectionChange"
       >
         <el-table-column type="selection" width="55"></el-table-column>
-        <el-table-column prop="imgurl" label="鍟嗗搧淇℃伅" min-width="100px">
+        <el-table-column prop="imgurl" label="鍟嗗搧淇℃伅" min-width="80px">
           <template slot-scope="{row}">
-            <el-image style="width: 80px;height: 80px;" v-if="row.imgurl && row.imgurl!=''" :src="row.resourcePath+row.imgurl" :preview-src-list="[row.resourcePath+row.imgurl]"></el-image>
+            <el-image style="width: 50px;height: 50px;" v-if="row.imgurl && row.imgurl!=''" :src="row.resourcePath+row.imgurl" :preview-src-list="[row.resourcePath+row.imgurl]"></el-image>
           </template>
         </el-table-column>
         <el-table-column prop="id" label="鍟嗗搧ID" min-width="150px" ></el-table-column>
@@ -78,14 +82,14 @@
         <el-table-column prop="categoryName" label="鎵�灞炲垎绫�" min-width="120px"></el-table-column>
         <el-table-column prop="brandName" label="鎵�灞炲搧鐗�" min-width="120px"></el-table-column>
         <el-table-column prop="price" label="灞曠ず浠锋牸" min-width="100px"></el-table-column>
-        <el-table-column prop="stockNum" label="鍓╀綑搴撳瓨閲�" min-width="100px"></el-table-column>
-        <el-table-column prop="salesVolume" label="瀹為檯閿�閲�" min-width="100px"></el-table-column>
-        <el-table-column prop="skuPrice" label="闆跺敭浠�(鍏�)" min-width="100px"></el-table-column>
+        <el-table-column prop="skuPrice" label="閿�鍞环(鍏�)" min-width="100px"></el-table-column>
         <el-table-column prop="shopPrice" label="渚涜揣浠疯缃�" min-width="100px" align="center">
           <template slot-scope="{row}" >
-          <div @click="goPriceSet(row)" style="cursor:pointer;"><span  class="red"> {{row.shopPriceNum||0}}</span> / <span class="green"> {{row.shopNum||0}}</span>  </div>
+            <div title="閽堝鍚敤渚涢攢鍟嗕环鏍艰缃粺璁�" @click="goPriceSet(row)" style="cursor:pointer;"><span  class="red"> {{row.pricedShopNum||0}}</span> / <span class="green"> {{row.shopNum||0}}</span>  </div>
           </template>
         </el-table-column>
+        <el-table-column prop="stockNum" label="鍓╀綑搴撳瓨閲�" min-width="100px"></el-table-column>
+        <el-table-column prop="salesVolume" label="瀹為檯閿�閲�" min-width="100px"></el-table-column>
         <el-table-column prop="editDate" label="鏈�杩戞洿鏂版椂闂�" min-width="100px"></el-table-column>
         <el-table-column prop="status" label="涓婁笅鏋剁姸鎬�" min-width="100px" fixed="right" align="center">
           <template slot-scope="{row}">
@@ -101,14 +105,14 @@
         </el-table-column>
         <el-table-column
           label="鎿嶄綔"
-          min-width="250"
+          min-width="160"
           fixed="right"
         >
           <template slot-scope="{row}">
-             <el-button type="text" @click="$refs.operaGoodsWindow.open('缂栬緫鍟嗗搧', row, 0)" v-permissions="['business:goods:update']">缂栬緫</el-button>
-            <el-button type="text"  @click="goPriceSet(row)">渚涜揣浠�</el-button>
+             <el-button type="text" v-if="row.status == 1" @click="$refs.operaGoodsWindow.open('缂栬緫鍟嗗搧', row, 0)" v-permissions="['business:goods:update']">缂栬緫</el-button>
+            <el-button type="text" v-permissions="['business:goods:update']" @click="goPriceSet(row)">渚涜揣浠�</el-button>
             <el-button type="text" style="color: red;" @click="deleteById(row)" v-permissions="['business:goods:delete']">鍒犻櫎</el-button>
-            <!--              <el-button type="text" @click="$refs.operaGoodsDetailWindow.open('鍟嗗搧璇︽儏', row, 0)">鏌ョ湅璇︽儏</el-button>-->
+            <!-- <el-button type="text" @click="$refs.operaGoodsDetailWindow.open('鍟嗗搧璇︽儏', row, 0)">鏌ョ湅璇︽儏</el-button>-->
           </template>
         </el-table-column>
       </el-table>
@@ -123,6 +127,7 @@
     <OperaGoodsWindow ref="operaGoodsWindow" @success="handlePageChange"/>
     <OperaGoodsDetailWindow ref="operaGoodsDetailWindow"/>
     <OperaPlatformGoodsSkuWindow ref="operaPlatformGoodsSkuWindow"/>
+    <OperaShopGoodsWindow ref="OperaShopGoodsWindow" @success="priceSuccess"/>
   </TableLayout>
 </template>
 
@@ -133,43 +138,29 @@
 import OperaGoodsWindow from '@/components/business/OperaGoodsWindow'
 import OperaGoodsDetailWindow from '@/components/business/OperaGoodsDetailWindow'
 import OperaPlatformGoodsSkuWindow from '@/components/business/OperaPlatformGoodsSkuWindow'
+import OperaShopGoodsWindow from '@/components/business/OperaShopGoodsWindow'
 import { findAll as labelList } from '@/api/business/labels'
 export default {
   name: 'Goods',
   extends: BaseTable,
-  components: { TableLayout, Pagination, OperaGoodsWindow, OperaGoodsDetailWindow, OperaPlatformGoodsSkuWindow },
+  components: { TableLayout, Pagination, OperaGoodsWindow, OperaGoodsDetailWindow, OperaPlatformGoodsSkuWindow, OperaShopGoodsWindow },
   data () {
     return {
       activeName: 'first',
       // 鎼滅储
       searchForm: {
         id: '',
-        creator: '',
-        createDate: '',
-        editor: '',
-        editDate: '',
-        isdeleted: '',
-        remark: '',
-        imgurl: '',
         name: '',
-        info: '',
         categoryId: '',
         brandId: '',
-        price: '',
-        salenum: '',
-        content: '',
-        sortnum: '',
-        looknum: '',
         // 绫诲瀷 0骞冲彴鍟嗗煄 1鍜栬眴鍟嗗煄 2鍜栧暋璁″垝鍟嗗搧
         type: '0', // 骞冲彴鍟嗗搧
         status: '',
-        isrec: '',
-        styleImg: '',
         labels: ''
       },
       labels: [],
-      serials: [],
-      brands: []
+      brands: [],
+      serials: []
     }
   },
   provide () {
@@ -199,10 +190,18 @@
       })
   },
   methods: {
-    goPriceSet(row){
-
+    priceSuccess () {
+      this.handlePageChange()
+    },
+    goPriceSet (row) {
+      if (row.skuPrice == null) {
+        this.$tip.warning('璇峰厛璁剧疆鍟嗗搧閿�鍞环锛�')
+        return
+      }
+      this.$refs.OperaShopGoodsWindow.open('璁剧疆渚涜揣浠� - ' + row.name, row)
     },
     handleClick (val) {
+
     },
     /**
      *
@@ -216,6 +215,11 @@
       const message = `纭${status === 0 ? '涓婃灦' : '涓嬫灦'}閫変腑鐨勫晢鍝佷箞?`
       this.$dialog.messageWaring(message)
         .then(() => {
+          var temp = []
+          this.tableData.selectedRows.forEach(item => {
+            temp.push({ id: item.id, name: item.name, status: status })
+          })
+          this.statusChangeBiz(temp)
         })
     },
     statusChange (row) {
@@ -224,10 +228,10 @@
     statusChangeBiz (rows) {
       this.api.updateStatus(rows)
         .then(() => {
-          this.search()
+          this.handlePageChange()
         })
         .catch(e => {
-          this.search()
+          this.handlePageChange()
         })
     }
   }

--
Gitblit v1.9.3