From fea8e0742ee241a94c5bbd4f452d6ad82cf4dd9c Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期五, 06 二月 2026 10:58:26 +0800
Subject: [PATCH] 功能开发
---
admin/src/views/business/category.vue | 87 +++++++++++++++++++++++++++++++++++++++++--
1 files changed, 82 insertions(+), 5 deletions(-)
diff --git a/admin/src/views/business/category.vue b/admin/src/views/business/category.vue
index 0581cdd..58bf7fb 100644
--- a/admin/src/views/business/category.vue
+++ b/admin/src/views/business/category.vue
@@ -13,8 +13,9 @@
<!-- 琛ㄦ牸鍜屽垎椤� -->
<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 @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:category:delete']">鍒犻櫎</el-button></li>
+ <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']" @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
:height="tableHeightNew"
@@ -24,7 +25,8 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="name" label="鍗曚綅鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column prop="name" label="鎴樺尯鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column prop="detail" label="鎴樺尯缂栫爜" min-width="100px"></el-table-column>
<el-table-column label="鐘舵��">
<template slot-scope="{row}">
<el-switch @change="changeStatus($event, row)" v-model="row.status" active-color="#13ce66"
@@ -42,8 +44,8 @@
fixed="right"
>
<template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaCategoryWindow.open('缂栬緫鏂板缓鍝佺閰嶇疆', row,searchForm.type)" icon="el-icon-edit" v-permissions="['business:category:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:category:delete']">鍒犻櫎</el-button>
+ <el-button type="text" @click="$refs.operaCategoryWindow.open('缂栬緫鎴樺尯', row,searchForm.type)" icon="el-icon-edit" v-permissions="['business:category:update']">缂栬緫</el-button>
+ <el-button type="text" style="color: red" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:category:delete']">鍒犻櫎</el-button>
</template>
</el-table-column>
</el-table>
@@ -64,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,
@@ -87,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