MrShi
4 天以前 05aec1e9986fbe3e907259bb1a1396f129bd0fa1
admin/src/views/business/category.vue
@@ -5,6 +5,9 @@
      <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="detail">
        <el-input v-model="searchForm.detail" placeholder="请输入战区编码" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
        <el-button @click="reset">重置</el-button>
@@ -14,7 +17,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 +69,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,
@@ -75,6 +79,7 @@
      // 搜索
      searchForm: {
        name: '',
        detail: '',
        type: 0
      }
    }
@@ -89,6 +94,81 @@
    this.search()
  },
  methods: {
    synchronization() {
      this.$dialog.actionConfirmButton('确认同步战区信息吗?')
        .then(() => {
          syncZhanQu()
            .then(res=>{
              if (res.code === 200) {
                this.search()
                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 })