From 559f6fcd685d2144e931d2c4e56cbe38c2308d70 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期三, 10 十二月 2025 17:42:51 +0800
Subject: [PATCH] 经销商管理

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

diff --git a/admin/src/views/business/shop.vue b/admin/src/views/business/shop.vue
index 440885d..6dc4b7e 100644
--- a/admin/src/views/business/shop.vue
+++ b/admin/src/views/business/shop.vue
@@ -2,50 +2,28 @@
   <TableLayout :permissions="['business:shop:query']">
     <!-- 鎼滅储琛ㄥ崟 -->
     <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-      <el-form-item label="搴楅摵鍚嶇О" prop="name">
-        <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ簵閾哄悕绉�" @keypress.enter.native="search"></el-input>
+      <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="搴楅摵鐘舵��" prop="status">
+      <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.status"
-          placeholder="璇烽�夋嫨搴楅摵鐘舵��"
-        >
-          <el-option
-            :key="0"
-            :value="0"
-            label="姝e父"
-          ></el-option>
-          <el-option
-            :key="1"
-            :value="1"
-            label="绂佺敤"
-          ></el-option>
+        <el-select     v-model="searchForm.saleType"  placeholder="閿�鍞ā寮�"  @change="search"  >
+          <el-option  :key="0" :value="0"  label="骞冲彴閾鸿揣"  ></el-option>
+          <el-option   :key="1" :value="1" label="鑷富閲囪喘"  ></el-option>
         </el-select>
-        <!-- <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬�0姝e父 1绂佺敤" @keypress.enter.native="search"></el-input> -->
       </el-form-item>
-      <el-form-item label="鎺ㄨ崘" prop="isrec">
-        <!-- 0鍚� 1鏄� -->
-        <el-select
-          v-model="searchForm.isrec"
-          placeholder="璇烽�夋嫨搴楅摵鐘舵��"
-        >
-          <el-option
-            :key="0"
-            :value="0"
-            label="鍚�"
-          ></el-option>
-          <el-option
-            :key="1"
-            :value="1"
-            label="鏄�"
-          ></el-option>
+      <el-form-item label="鐘舵��" prop="status">
+        <!-- 0姝e父 1绂佺敤 -->
+        <el-select     v-model="searchForm.status"  placeholder="璇烽�夋嫨鐘舵��"    @change="search"   >
+          <el-option  :key="0" :value="0"  label="姝e父"  ></el-option>
+          <el-option   :key="1" :value="1" label="绂佺敤"  ></el-option>
         </el-select>
-        <!-- <el-input v-model="searchForm.isrec" placeholder="璇疯緭鍏ユ槸鍚︽帹鑽�0鍚� 1鏄�" @keypress.enter.native="search"></el-input> -->
       </el-form-item>
       <section>
         <el-button type="primary" @click="search">鎼滅储</el-button>
-        <!-- <el-button type="primary" @click="showDetail">鎼滅储</el-button> -->
         <el-button @click="reset">閲嶇疆</el-button>
       </section>
     </el-form>
@@ -63,37 +41,44 @@
         @selection-change="handleSelectionChange"
       >
         <!-- <el-table-column type="selection" width="55"></el-table-column> -->
-        <el-table-column prop="name" label="搴楅摵鍚嶇О" align="center" min-width="100px"></el-table-column>
-        <el-table-column prop="imgurl" label="搴楅摵LOGO" align="center" min-width="100px">
+        <el-table-column prop="name" label="鍚嶇О" fixed align="center" min-width="100px">
           <template slot-scope="{row}">
-            <el-image :scr="row.imgFullUrl + row.imgurl" :preview-src-list="[row.imgFullUrl + row.imgurl]"></el-image>
+            <el-button type="text" @click="showDetail(row)">{{row.name}}</el-button>
           </template>
         </el-table-column>
-        <el-table-column prop="addr" label="鍦板潃" align="center" min-width="100px"></el-table-column>
+        <el-table-column prop="code" label="闂ㄥ簵ID" align="center" min-width="100px"></el-table-column>
+        <el-table-column prop="integral" label="鐜版湁绉垎" align="center" min-width="100px">
+          <template slot-scope="{row}">
+            <span class="orange">{{(row.integral || 0).toFixed(0)}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="totalIntegral" label="绱绉垎" align="center" min-width="100px">
+          <template slot-scope="{row}">
+            <span class="orange">  {{(row.totalIntegral || 0).toFixed(0)}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="username" label="鐧诲綍璐﹀彿" align="center" min-width="100px"></el-table-column>
+        <el-table-column prop="bigAreaName" label="鎵�灞炲尯鍩�" align="center" min-width="100px"></el-table-column>
+        <el-table-column prop="areaFullName" label="鐪佸競鍖�" align="center" min-width="150px" show-overflow-tooltip>
+          <template slot-scope="{row}">
+            <span v-if="row.areas!=null">{{(row.areas.provinceName||'') + (row.areas.cityName||'') + (row.areas.name||'')}}</span>
+          </template>
+        </el-table-column>
+<!--        <el-table-column prop="imgurl" label="闂ㄥご鍥�" align="center" min-width="100px">
+          <template slot-scope="{row}">
+            <el-image v-if=" row.imgurl" :scr="row.imgFullUrl + row.imgurl" :preview-src-list="[row.imgFullUrl + row.imgurl]"></el-image>
+          </template>
+        </el-table-column>-->
+        <el-table-column prop="addr" label="璇︾粏鍦板潃" align="center" min-width="150px" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="realname" label="鑱旂郴浜�" align="center" min-width="100px"></el-table-column>
+        <el-table-column prop="phone" label="鑱旂郴鐢佃瘽" align="center" min-width="150px"></el-table-column>
+        <el-table-column prop="saleType"  label="閿�鍞ā寮�" align="center" min-width="150px">
+          <template slot-scope="{row}">
+            {{ row.saleType == 1?'鑷富閲囪喘':'骞冲彴閾鸿揣'}}
+          </template>
+        </el-table-column>
         <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" align="center" min-width="140px"></el-table-column>
-        <el-table-column label="璐熻矗浜�" align="center" min-width="150px">
-          <template slot-scope="{row}">
-            {{ `${row.nickName} ${row.memberPhone}` }}
-          </template>
-        </el-table-column>
-        <el-table-column label="缁忛攢鍟嗘暟鎹�" align="center" min-width="150px">
-          <template slot-scope="{row}">
-            <el-button type="text" @click="showDetail(row)">鏌ョ湅</el-button>
-          </template>
-        </el-table-column>
-        <el-table-column prop="isrec" label="鏄惁鎺ㄨ崘" align="center" min-width="100px">
-          <template slot-scope="{row}">
-            <el-switch
-              v-model="row.isrec"
-              active-color="#13ce66"
-              inactive-color="#999"
-              :active-value="1"
-              :inactive-value="0"
-              @change="statusChange(row)"
-            ></el-switch>
-          </template>
-        </el-table-column>
-        <el-table-column prop="status" label="鐘舵��" align="center" min-width="100px">
+        <el-table-column prop="status" label="鐘舵��" align="center" min-width="100px" fixed="right">
           <template slot-scope="{row}">
             <el-switch
               v-model="row.status"
@@ -105,38 +90,18 @@
             ></el-switch>
           </template>
         </el-table-column>
-
-        <!-- <el-table-column prop="editor" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
-        <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
-        <el-table-column prop="isdeleted" label="鏄惁鍒犻櫎0鍚� 1鏄�" min-width="100px"></el-table-column>
-        <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
-        <el-table-column prop="sex" label="鎬у埆 0鐢� 1濂� 2鏈煡" min-width="100px"></el-table-column>
-        <el-table-column prop="idcard" label="韬唤璇佸彿" min-width="100px"></el-table-column>
-        <el-table-column prop="idcardImg" label="韬唤璇佹闈㈢収" min-width="100px"></el-table-column>
-        <el-table-column prop="idcardImgBack" label="韬唤璇佸弽闈㈢収" min-width="100px"></el-table-column>
-        <el-table-column prop="businessImg" label="钀ヤ笟鎵х収" min-width="100px"></el-table-column>
-        <el-table-column prop="longitude" label="瀹氫綅缁忓害" min-width="100px"></el-table-column>
-        <el-table-column prop="latitude" label="瀹氫綅缁村害" min-width="100px"></el-table-column>
-        <el-table-column prop="areaId" label="鎵�灞炲幙鍖虹紪鐮侊紙鍏宠仈areas)" min-width="100px"></el-table-column>
-        <el-table-column prop="info" label="搴楅摵鎻忚堪" min-width="100px"></el-table-column>
-        <el-table-column prop="origin" label="鏁版嵁鏉ユ簮 0灏忕▼搴忕敵璇� 1鍚庡彴褰曞叆" min-width="100px"></el-table-column>
-        <el-table-column prop="memberId" label="鐢ㄦ埛缂栫爜锛堝叧鑱攎ember琛級" min-width="100px"></el-table-column>
-        <el-table-column prop="applyId" label="鐢宠缂栫爜锛堝叧鑱攕hop_apply琛級" min-width="100px"></el-table-column>
-        <el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="100px"></el-table-column>
-        <el-table-column prop="looknum" label="鎬绘祻瑙堥噺" min-width="100px"></el-table-column>
-        <el-table-column prop="startTime" label="钀ヤ笟寮�濮嬫椂闂�" min-width="100px"></el-table-column>
-        <el-table-column prop="endTime" label="钀ヤ笟缁撴潫鏃堕棿" min-width="100px"></el-table-column>
-        <el-table-column prop="brandStory" label="鍝佺墝鏁呬簨" min-width="100px"></el-table-column> -->
         <el-table-column
           v-if="containPermissions(['business:shop:update', 'business:shop:delete'])"
           label="鎿嶄綔"
-          min-width="120"
+          min-width="200"
           fixed="right"
           align="center"
         >
           <template slot-scope="{row}">
-            <el-button type="text" @click="$refs.operaShopWindow.open('缂栬緫搴楅摵', row)" icon="el-icon-edit" v-permissions="['business:shop:update']">缂栬緫</el-button>
-            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:shop:delete']">鍒犻櫎</el-button>
+            <el-button type="text" @click="$refs.operaShopWindow.open('缂栬緫缁忛攢鍟�', row)" icon="el-icon-edit" v-permissions="['business:shop:update']">缂栬緫</el-button>
+            <el-button type="text" @click="resetPwd(row)" icon="el-icon-edit"  v-permissions="['business:shop:update']">閲嶇疆瀵嗙爜</el-button>
+            <el-button type="text" style="color: red" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:shop:delete']">鍒犻櫎</el-button>
+
           </template>
         </el-table-column>
       </el-table>
@@ -150,6 +115,7 @@
     <!-- 鏂板缓/淇敼 -->
     <OperaShopWindow ref="operaShopWindow" @success="handlePageChange"/>
     <OperaShopDetailWindow ref="operaShopDetailWindow" />
+    <ResetPwdShopWindow ref="resetPwdWindow"/>
   </TableLayout>
 </template>
 
@@ -159,19 +125,22 @@
 import Pagination from '@/components/common/Pagination'
 import OperaShopWindow from '@/components/business/OperaShopWindow'
 import OperaShopDetailWindow from '@/components/business/OperaShopDetailWindow'
-import { updateIsRecById } from '@/api/business/shop'
+import { resetPwd, updateIsRecById } from '@/api/business/shop'
+import ResetPwdShopWindow from '@/components/business/ResetPwdShopWindow'
 export default {
   name: 'Shop',
   extends: BaseTable,
-  components: { TableLayout, Pagination, OperaShopWindow, OperaShopDetailWindow },
+  components: { TableLayout, Pagination, OperaShopWindow, OperaShopDetailWindow, ResetPwdShopWindow },
   data () {
     return {
 
       // 鎼滅储
       searchForm: {
         name: '',
+        username: '',
         status: '',
-        isrec: '',
+        saleType: '',
+        isrec: ''
       }
     }
   },
@@ -185,7 +154,24 @@
     this.search()
   },
   methods: {
-    statusChange(row) {
+    resetPwd (row) {
+      this.$dialog.messageWaring('纭閲嶇疆璇ョ粡閿�鍟嗐��' + row.name + '銆戠殑鐧诲綍瀵嗙爜鍚楋紵')
+        .then(() => {
+          resetPwd({
+            id: row.id
+          })
+            .then(() => {
+              this.$tip.apiSuccess('瀵嗙爜閲嶇疆鎴愬姛')
+            })
+            .catch(e => {
+              this.$tip.apiFailed(e)
+            })
+            .finally(() => {
+
+            })
+        })
+    },
+    statusChange (row) {
       updateIsRecById(row)
         .then(() => {
           this.$message.success('鎿嶄綔鎴愬姛')
@@ -197,9 +183,9 @@
           this.handlePageChange()
         })
     },
-    showDetail(row) {
+    showDetail (row) {
       this.$refs.operaShopDetailWindow.open('搴楅摵璇︽儏', row)
     }
-  },
+  }
 }
 </script>

--
Gitblit v1.9.3