From 97158794d69fd2beee1bf27577aa7cadea8d847d Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 04 二月 2026 16:08:45 +0800
Subject: [PATCH] 优化

---
 admin/src/views/business/category.vue |   77 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 76 insertions(+), 1 deletions(-)

diff --git a/admin/src/views/business/category.vue b/admin/src/views/business/category.vue
index c202c48..58bf7fb 100644
--- a/admin/src/views/business/category.vue
+++ b/admin/src/views/business/category.vue
@@ -14,7 +14,7 @@
     <template v-slot:table-wrap>
       <ul class="toolbar" v-permissions="['business:category:create', 'business:category:delete']">
         <li><el-button type="primary" @click="$refs.operaCategoryWindow.open('鏂板缓鎴樺尯',null,searchForm.type)" icon="el-icon-plus" v-permissions="['business:category:create']">鏂板缓</el-button></li>
-        <li><el-button type="primary" icon="el-icon-refresh" v-permissions="['business:category:create']">鍚屾</el-button></li>
+        <li><el-button type="primary" icon="el-icon-refresh" v-permissions="['business:category:create']" @click="synchronization">鍚屾</el-button></li>
         <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:category:delete']">鍒犻櫎</el-button></li>
       </ul>
       <el-table
@@ -66,6 +66,7 @@
 import TableLayout from '@/layouts/TableLayout'
 import Pagination from '@/components/common/Pagination'
 import OperaCategoryWindow from '@/components/business/OperaCategoryWindow'
+import { syncZhanQu } from '@/api/business/category'
 export default {
   name: 'Category',
   extends: BaseTable,
@@ -89,6 +90,80 @@
     this.search()
   },
   methods: {
+    synchronization() {
+      this.$dialog.deleteConfirm('纭鍚屾鎴樺尯淇℃伅鍚楋紵')
+        .then(() => {
+          syncZhanQu()
+            .then(res=>{
+              if (res.code === 200) {
+                this.$message.success('鍚屾鎴愬姛锛�')
+              }
+            })
+        })
+        .catch(() => {})
+    },
+    deleteById (row, childConfirm = true, call) {
+      this.__checkApi()
+      let message = `纭鍒犻櫎鎴樺尯鏁版嵁鍚�?`
+      if (childConfirm && row.children != null && row.children.length > 0) {
+        message = `纭鍒犻櫎鎴樺尯鏁版嵁鍚�?`
+      }
+      this.$dialog.deleteConfirm(message)
+              .then(() => {
+                this.isWorking.delete = true
+                this.api.deleteById(row[this.configData['field.id']])
+                        .then(() => {
+                          this.__afterDelete()
+                          if (call) {
+                            call()
+                          }
+                        })
+                        .catch(e => {
+                          this.$tip.apiFailed(e)
+                        })
+                        .finally(() => {
+                          this.isWorking.delete = false
+                        })
+              })
+              .catch(() => {})
+    },
+    deleteByIdInBatch (childConfirm = true, call) {
+      this.__checkApi()
+      if (this.tableData.selectedRows.length === 0) {
+        this.$tip.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�')
+        return
+      }
+      let message = `纭鍒犻櫎鎴樺尯鏁版嵁鍚�?`
+      if (childConfirm) {
+        const containChildrenRows = []
+        for (const row of this.tableData.selectedRows) {
+          if (row.children != null && row.children.length > 0) {
+            containChildrenRows.push(row[this.configData['field.main']])
+          }
+        }
+        if (containChildrenRows.length > 0) {
+          message = `纭鍒犻櫎鎴樺尯鏁版嵁鍚�?`
+        }
+      }
+      this.$dialog.deleteConfirm(message)
+              .then(() => {
+                this.isWorking.delete = true
+                this.api.deleteByIdInBatch(this.tableData.selectedRows.map(row => row[this.configData['field.id']]).join(','))
+                        .then(() => {
+                          this.__afterDelete(this.tableData.selectedRows.length)
+                          if (call) {
+                            call()
+                          }
+                        })
+                        .catch(e => {
+                          this.$tip.apiFailed(e)
+                        })
+                        .finally(() => {
+                          this.isWorking.delete = false
+                        })
+              })
+              .catch(() => {})
+    },
     changeStatus (e, row) {
       this.working = true
       this.api.updateStatus({ id: row.id, status: e })

--
Gitblit v1.9.3