From c384e04f81caf681647c602d5896cc10b289582e Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 27 二月 2026 14:59:16 +0800
Subject: [PATCH] 经销商管理

---
 admin/src/views/business/shop.vue |  103 +++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 94 insertions(+), 9 deletions(-)

diff --git a/admin/src/views/business/shop.vue b/admin/src/views/business/shop.vue
index 1f91fc3..8a7ad1c 100644
--- a/admin/src/views/business/shop.vue
+++ b/admin/src/views/business/shop.vue
@@ -5,19 +5,52 @@
       <el-form-item label="鍚嶇О" prop="name">
         <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ悕绉�" @keypress.enter.native="search"></el-input>
       </el-form-item>
+      <el-form-item label="闂ㄥ簵ID" prop="code">
+        <el-input v-model="searchForm.code" placeholder="璇疯緭鍏ラ棬搴桰D" @keypress.enter.native="search"></el-input>
+      </el-form-item>
       <el-form-item label="鐧诲綍璐﹀彿" prop="name">
         <el-input v-model="searchForm.username" placeholder="璇疯緭鍏ョ櫥褰曡处鍙�" @keypress.enter.native="search"></el-input>
       </el-form-item>
       <el-form-item label="閿�鍞ā寮�" prop="saleType" >
         <!-- 0姝e父 1绂佺敤 -->
-        <el-select     v-model="searchForm.saleType"  placeholder="閿�鍞ā寮�"  @change="search"  >
+        <el-select     v-model="searchForm.saleType"  placeholder="閿�鍞ā寮�"  style="width: 100px"  @change="search"  >
           <el-option  :key="0" :value="0"  label="骞冲彴閾鸿揣"  ></el-option>
           <el-option   :key="1" :value="1" label="鑷富閲囪喘"  ></el-option>
         </el-select>
       </el-form-item>
+      <el-form-item label="鐪佸競鍖�" prop="provinceId" >
+      <el-select v-model="searchForm.provinceId" placeholder="鐪佷唤" style="width: 100px" filterable @change="selectProvince">
+        <el-option
+            v-for="item in provinces"
+            :key="item.id"
+            :value="item.id"
+            :label="item.name"
+        ></el-option>
+      </el-select>
+      </el-form-item>
+      <el-form-item label="" prop="cityId" >
+      <el-select v-model="searchForm.cityId" filterable placeholder="鍩庡競"  @change="selectCity" style="width: 100px" >
+        <el-option
+            v-for="item in cities"
+            :key="item.id"
+            :value="item.id"
+            :label="item.name"
+        ></el-option>
+      </el-select>
+      </el-form-item>
+      <el-form-item label="" prop="areaId" >
+      <el-select v-model="searchForm.areaId" filterable placeholder="鍖哄煙"  style="width: 100px" >
+        <el-option
+            v-for="item in areas"
+            :key="item.id"
+            :value="item.id"
+            :label="item.name"
+        ></el-option>
+      </el-select>
+      </el-form-item>
       <el-form-item label="鐘舵��" prop="status">
         <!-- 0姝e父 1绂佺敤 -->
-        <el-select     v-model="searchForm.status"  placeholder="璇烽�夋嫨鐘舵��"    @change="search"   >
+        <el-select     v-model="searchForm.status"  placeholder="璇烽�夋嫨鐘舵��"  style="width: 100px"    @change="search"   >
           <el-option  :key="0" :value="0"  label="姝e父"  ></el-option>
           <el-option   :key="1" :value="1" label="绂佺敤"  ></el-option>
         </el-select>
@@ -32,7 +65,7 @@
       <ul class="toolbar" >
         <li><el-button type="primary" @click="$refs.operaShopWindow.open('鏂板缓缁忛攢鍟�')" icon="el-icon-plus" v-permissions="['business:shop:create']">鏂板缓</el-button></li>
         <!-- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:shop:delete']">鍒犻櫎</el-button></li> -->
-        <li><p class="tip-warn" style="width: 100%;margin-left: 20px;"><i class="el-icon-warning"></i>鎻愮ず锛氥�愪緵璐т环璁剧疆銆戝彧缁熻涓婃灦鐘舵�佺殑鍟嗗搧浠锋牸璁剧疆鏁版嵁</p></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"
@@ -135,21 +168,29 @@
 import OperaGoodsShopWindow from '@/components/business/OperaGoodsShopWindow'
 import { resetPwd, updateIsRecById } from '@/api/business/shop'
 import ResetPwdShopWindow from '@/components/business/ResetPwdShopWindow'
+import { listByParentId } from '@/api/business/areas'
 export default {
   name: 'Shop',
   extends: BaseTable,
-  components: { TableLayout, Pagination, OperaShopWindow, OperaShopInfoWindow, ResetPwdShopWindow,OperaGoodsShopWindow },
+  components: { TableLayout, Pagination, OperaShopWindow, OperaShopInfoWindow, ResetPwdShopWindow, OperaGoodsShopWindow },
   data () {
     return {
 
       // 鎼滅储
       searchForm: {
         name: '',
+        code: '',
         username: '',
         status: '',
         saleType: '',
-        isrec: ''
-      }
+        isrec: '',
+        provinceId: '',
+        cityId: '',
+        areaId: ''
+      },
+      provinces: [],
+      cities: [],
+      areas: []
     }
   },
   created () {
@@ -159,11 +200,55 @@
       'field.id': 'id',
       'field.main': 'id'
     })
+    listByParentId({ type: 0, parentId: '' })
+      .then(data => {
+        this.provinces = data
+      })
     this.search()
   },
   methods: {
-    goPriceSet(row){
-      this.$refs.OperaGoodsShopWindow.open('璁剧疆渚涜揣浠� - '+row.name, row )
+    selectProvince (val) {
+      this.searchForm.cityId = null
+      this.searchForm.areaId = null
+      this.cities = []
+      this.areas = []
+      listByParentId({ type: 1, parentId: val })
+        .then(data => {
+          this.cities = data
+        })
+        .catch(e => {
+          this.$tip.error(e)
+        })
+    },
+    selectCity (val) {
+      this.searchForm.areaId = null
+      this.areas = []
+      listByParentId({ type: 2, parentId: val })
+        .then(data => {
+          this.areas = data
+        })
+        .catch(e => {
+          this.$tip.error(e)
+        })
+    },
+    initCityArea (proid, cityid) {
+      listByParentId({ type: 1, parentId: proid })
+        .then(data => {
+          this.cities = data
+        })
+        .catch(e => {
+          this.$tip.error(e)
+        })
+      listByParentId({ type: 2, parentId: cityid })
+        .then(data => {
+          this.areas = data
+        })
+        .catch(e => {
+          this.$tip.error(e)
+        })
+    },
+    goPriceSet (row) {
+      this.$refs.OperaGoodsShopWindow.open('璁剧疆渚涜揣浠� - ' + row.name, row)
     },
     resetPwd (row) {
       this.$dialog.messageWaring('纭閲嶇疆璇ョ粡閿�鍟嗐��' + row.name + '銆戠殑鐧诲綍瀵嗙爜鍚楋紵')
@@ -195,7 +280,7 @@
         })
     },
     showDetail (row) {
-      this.$refs.OperaShopInfoWindow.open('缁忛攢鍟嗚鎯呫��'+row.name+'銆�', row)
+      this.$refs.OperaShopInfoWindow.open('缁忛攢鍟嗚鎯呫��' + row.name + '銆�', row)
     }
   }
 }

--
Gitblit v1.9.3