From c261cb7ff2e4cfce233d02c6aca9e8f85e8ba1ba Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期二, 20 一月 2026 18:05:08 +0800
Subject: [PATCH] 经销商管理

---
 admin/src/views/business/information.vue |  175 +++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 136 insertions(+), 39 deletions(-)

diff --git a/admin/src/views/business/information.vue b/admin/src/views/business/information.vue
index f89cd4b..63886e8 100644
--- a/admin/src/views/business/information.vue
+++ b/admin/src/views/business/information.vue
@@ -2,23 +2,41 @@
   <TableLayout :permissions="['business:activity: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="realName">
         <el-input v-model="searchForm.realName" placeholder="璇疯緭鍏ュ彂甯冧汉" @keypress.enter.native="search"></el-input>
       </el-form-item>
-      <el-form-item label="鐢ㄦ埛绫诲瀷" prop="userType">
+      <el-form-item label="鎵�灞炲垎绫�" prop="labelId">
         <el-select
-          v-model="searchForm.userType"
-          placeholder="璇烽�夋嫨鐢ㄦ埛绫诲瀷"
+            v-model="searchForm.labelId"
+            placeholder="璇烽�夋嫨鎵�灞炲垎绫�"
+            style="width: 150px"
+            clearable
+            @change="search"
         >
-        <!-- 0绯荤粺绠$悊鍛� 1鏈烘瀯绠$悊鍛� 2鍒涗綔涓績绠$悊鍛� -->
           <el-option
-            v-for="item in userType"
-            :key="item.id"
-            :value="item.id"
-            :label="item.label"
+              v-for="item in labels"
+              :key="item.id"
+              :value="item.id"
+              :label="item.name"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <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"
+              :key="item.id"
+              :value="item.id"
+              :label="item.name"
           ></el-option>
         </el-select>
       </el-form-item>
@@ -42,28 +60,40 @@
         @selection-change="handleSelectionChange"
       >
         <el-table-column type="selection" width="55" ></el-table-column>
-        <el-table-column prop="imgurlfull" label="璧勮涓诲浘" align="center" min-width="100px">
+        <el-table-column prop="imgurlfull" label="涓诲浘" align="center" min-width="100px">
           <template slot-scope="{row}">
-            <el-image :scr="row.imgurlfull" :preview-src-list="[row.imgurlfull]"></el-image>
+            <el-image style="width: 50px;height: 50px;" v-if="row.imgurl && row.imgurl!=''" :src="row.imgurlfull" :preview-src-list="[row.imgurlfull]"></el-image>
           </template>
         </el-table-column>
-        <el-table-column prop="name" label="璧勮鏍囬" align="center" min-width="100px">
+        <el-table-column prop="name" label="鏍囬" align="center" min-width="100px"></el-table-column>
+        <el-table-column prop="lablesName" label="鎵�灞炲垎绫�" align="center" min-width="100px"></el-table-column>
+        <el-table-column prop="brandName" label="鎵�灞炲搧鐗�" align="center" min-width="100px"></el-table-column>
+        <el-table-column prop="content" label="鏁版嵁鍊�" min-width="100px">
           <template slot-scope="{row}">
-            <el-button type="text" @click="shopDetail(row)">{{ row.name }}</el-button>
+            <div v-if="row.content">
+              <el-button v-if="row.contentType == 1" title="鐐瑰嚮璺宠浆澶栭摼鏌ョ湅" type="text" @click="openUrl(row)" >鐐瑰嚮璺宠浆</el-button>
+              <el-button v-else title="鐐瑰嚮鏌ョ湅璇︽儏" type="text" @click="showCode(row)" >鐐瑰嚮鏌ョ湅</el-button>
+            </div>
           </template>
         </el-table-column>
-        <el-table-column prop="lablesName" label="璧勮鍒嗙被" align="center" min-width="100px"></el-table-column>
-        <el-table-column prop="realName" label="鍙戝竷鐢ㄦ埛" align="center" min-width="100px"></el-table-column>
-        <el-table-column prop="name" label="鐢ㄦ埛绫诲瀷" align="center" min-width="100px">
-          <template slot-scope="{row}">
-            {{ userTypeToStr(row.userType) }}
-          </template>
-        </el-table-column>
-        <el-table-column prop="looknum" label="娴忚鏁�" align="center" min-width="100px"></el-table-column>
+        <el-table-column prop="looknum" label="娴忚閲�" align="center" min-width="100px"></el-table-column>
         <el-table-column prop="zanCount" label="鐐硅禐鏁�" align="center" min-width="100px"></el-table-column>
-        <el-table-column prop="commentCount" label="璇勮鏁�" align="center" min-width="100px"></el-table-column>
         <el-table-column prop="collectCount" label="鏀惰棌鏁�" align="center" min-width="100px"></el-table-column>
-        <el-table-column prop="createDate" label="鍙戝竷鏃堕棿" align="center" min-width="140px"></el-table-column>
+        <el-table-column prop="realName" label="鍙戝竷浜�" align="center" min-width="140px"></el-table-column>
+        <el-table-column prop="editDate" label="鍙戝竷鏃堕棿" align="center" min-width="140px"></el-table-column>
+        <el-table-column prop="status" label="鐘舵��" min-width="80px" align="center">
+          <template slot-scope="{row}">
+            <el-switch
+                v-model="row.status"
+                :active-value="1"
+                :inactive-value="0"
+                active-color="#13ce66"
+                fixed="right"
+                inactive-color="#ff4949"
+                @change="statusChange(row)"
+            ></el-switch>
+          </template>
+        </el-table-column>
         <el-table-column
           v-if="containPermissions(['business:activity:update', 'business:activity:delete'])"
           label="鎿嶄綔"
@@ -85,6 +115,21 @@
     </template>
     <!-- 鏂板缓/淇敼 -->
     <OperaInformationWindow ref="operaInformationWindow" @success="handlePageChange"/>
+    <el-dialog
+        class="center-title"
+        :title="'鍐呭璇︽儏銆�'+curTitle+'銆�'"
+        width="70%"
+        height="70%"
+        text="瀛楀吀鍊�"
+        :visible.sync="visible1"
+        append-to-body
+    >
+      <div class="agree-list"  v-html="agreement">
+      </div>
+      <template  v-slot:footer>
+        <el-button @click="visible1=false">杩斿洖</el-button>
+      </template>
+    </el-dialog>
   </TableLayout>
 </template>
 
@@ -93,6 +138,7 @@
 import TableLayout from '@/layouts/TableLayout'
 import Pagination from '@/components/common/Pagination'
 import OperaInformationWindow from '@/components/business/OperaInformationWindow'
+import { findAll as labelList } from '@/api/business/labels'
 export default {
   name: 'Information',
   extends: BaseTable,
@@ -103,18 +149,25 @@
       searchForm: {
         name: '',
         realName: '',
-        userType: '',
-        type: 3 //绫诲瀷0鍟嗗娲诲姩 1骞冲彴娲诲姩 2鎺㈠簵 3璧勮
+        brandId: null,
+        labelId: null,
+        contentType: '',
+        type: 3 // 绫诲瀷0鍟嗗娲诲姩 1骞冲彴娲诲姩 2鎺㈠簵 3璧勮
       },
-      // 0绯荤粺绠$悊鍛� 1鏈烘瀯绠$悊鍛� 2鍒涗綔涓績绠$悊鍛�
-      userType: [
-        { label: '骞冲彴', id: 0 },
-        { label: '鏈烘瀯', id: 1 },
-        { label: '鍒涗綔鑰�', id: 2 }
-      ]
+      agreement: null,
+      curTitle:'',
+      visible1: false,
+      labels: [],
+      brands: []
     }
   },
-  created () {
+  provide () {
+    return {
+      labels: () => this.labels,
+      brands: () => this.brands
+    }
+  },
+  created: function () {
     this.config({
       module: '璧勮淇℃伅琛�',
       api: '/business/activity',
@@ -122,15 +175,59 @@
       'field.main': 'id'
     })
     this.search()
+    labelList({
+      type: 0 // 鍟嗗搧鍒嗙被
+    }).then(res => {
+      this.labels = res
+    })
+    labelList({
+      type: 1 // 鍟嗗搧鍝佺墝
+    })
+      .then(res => {
+        this.brands = res
+      })
   },
   methods: {
-    userTypeToStr(type) {
-      const temp = this.userType.find(item => item.id = type)
-      return temp ? temp.label : '-'
+    showCode(row){
+      this.curTitle =row.name
+      this.agreement=row.content
+      this.visible1=true
     },
-    shopDetail(row) {
-
+    openUrl(row){
+      window.open(row.content)
+    },
+    statusChange (row) {
+      this.api.updateStatusById({ id: row.id, status: row.status })
+        .then(() => {
+          this.$message.success('鎿嶄綔鎴愬姛')
+        })
+        .catch(e => {
+          this.$message.error('鎿嶄綔鎴愬姛')
+        })
+        .then(() => {
+          this.handlePageChange()
+        })
     }
-  },
+  }
 }
 </script>
+
+<style scoped lang="scss">
+.agree-list{
+  height: 550px;
+  //max-height: 50%;
+  overflow: auto;
+}
+.no-scroll {
+  overflow: hidden !important;
+}
+/deep/ .window__body {
+  .table-content {
+    padding: 0;
+    .table-wrap {
+      padding-top: 0;
+    }
+  }
+
+}
+</style>

--
Gitblit v1.9.3