jiangping
2025-05-27 3d6a8e384d31432a23f5a8c1a3135a58cbe617b5
company/src/views/business/knowledge.vue
@@ -2,15 +2,29 @@
    <TableLayout :permissions="['business:knowledge:query']">
        <!-- 搜索表单 -->
        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
            <el-form-item label="标题/内容" prop="title">
                <el-input v-model="searchForm.title" placeholder="请输入标题内容" @keypress.enter.native="search"></el-input>
            <el-form-item label="标题" prop="title">
                <el-input v-model="searchForm.title" style="width: 120px"  clearable placeholder="请输入标题" @keypress.enter.native="search"></el-input>
            </el-form-item>
            <el-form-item label="省份编码" prop="provinceId">
                <el-input v-model="searchForm.provinceId" placeholder="请输入省份编码" @keypress.enter.native="search"></el-input>
            </el-form-item>
            <el-form-item label="城市编码" prop="cityId">
                <el-input v-model="searchForm.cityId" placeholder="请输入城市编码" @keypress.enter.native="search"></el-input>
            </el-form-item>
          <el-form-item label="省份" prop="area">
            <el-select style="width: 120px"  v-model="searchForm.provinceId" clearable filterable @change="changeProvince" placeholder="请选择">
              <el-option
                  v-for="item in areas"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id">
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="城市" prop="area">
            <el-select style="width: 120px" v-model="searchForm.cityId"  clearablefilterable @change="search" placeholder="请选择">
              <el-option
                  v-for="item in citys"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id">
              </el-option>
            </el-select>
          </el-form-item>
            <section>
                <el-button type="primary" @click="search">搜索</el-button>
<!--                <el-button type="primary" :loading="isWorking.export" v-permissions="['business:knowledge:exportExcel']" @click="exportExcel">导出</el-button>-->
@@ -25,18 +39,17 @@
            </ul>
            <div class="list" v-loading="isWorking.search" v-if="tableData.list.length > 0">
                <div class="list-item" v-for="(item, index) in tableData.list" :key="index">
                    <div class="list-item-title">
                        <span>{{item.title}}</span>
                    <div class="list-item-title" @click="gourl(item.link)">
                        <span >{{item.title}}</span>
                        <i class="el-icon-arrow-right"></i>
                    </div>
                    <div class="list-item-cates" v-if="item.labelNames">
                        <div class="list-item-cates-row" v-for="(label, index) in item.labelNames.split(',')" :key="index">政策法规labels</div>
                        <div class="list-item-cates-row">{{label}}</div>
                    <div class="list-item-cates" v-if="item.labels">
                        <div class="list-item-cates-row" v-for="(label, index) in item.labels.split(',')" :key="index">  {{label}}</div>
                    </div>
                    <div class="list-item-footer">
                        <div class="left">
                            <div class="list-item-footer-row">适用地区:{{item.cityName ? item.cityName : item.provinceName}}</div>
                            <div class="list-item-footer-row">适用年份:{{item.yearInfo}}</div>
                            <div class="list-item-footer-row">适用年份:{{item.yearInfo}} 年</div>
                        </div>
                        <div class="right">
                            <el-button type="text" size="medium" style="margin-right: 15px; color: red;" @click="dele(item.id)">删除</el-button>
@@ -61,50 +74,71 @@
</template>
<script>
    import BaseTable from '@/components/base/BaseTable'
    import TableLayout from '@/layouts/TableLayout'
    import Pagination from '@/components/common/Pagination'
    import OperaKnowledgeWindow from '@/components/business/OperaKnowledgeWindow'
    import { deleteById } from '@/api/business/knowledge'
    export default {
        name: 'Knowledge',
        extends: BaseTable,
        components: { TableLayout, Pagination, OperaKnowledgeWindow },
        data () {
            return {
                // 搜索
                searchForm: {
                    provinceId: '',
                    cityId: '',
                    title: ''
                }
            }
        },
        created () {
            this.config({
                module: '知识库信息表',
                api: '/business/knowledge',
                'field.id': 'id',
                'field.main': 'id'
            })
            this.search()
        },
        methods: {
            dele(id) {
                this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    type: 'warning'
                }).then(async () => {
                    let res = await deleteById(id)
                    this.search()
                    this.$message.success('删除成功')
                }).catch(() => {
                });
            }
        }
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaKnowledgeWindow from '@/components/business/OperaKnowledgeWindow'
import {deleteById, findTreeList} from '@/api/business/knowledge'
export default {
  name: 'Knowledge',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaKnowledgeWindow },
  data () {
    return {
      // 搜索
      searchForm: {
        provinceId: '',
        cityId: '',
        title: ''
      },
      areas: [],
      citys: []
    }
  },
  created () {
    this.config({
      module: '知识库信息表',
      api: '/business/knowledge',
      'field.id': 'id',
      'field.main': 'id'
    })
    this.search()
    this.getCityTree()
  },
  methods: {
    changeProvince (e) {
      this.citys = []
      this.searchForm.cityId=null
      this.areas.forEach(item => {
        if (item.id === this.searchForm.provinceId) {
          this.citys = item.childAreasList || []
        }
      })
      this.search()
    },
    gourl (url) {
      if (url) {
        window.open(url)
      }
    },
    dele (id) {
      this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(async () => {
        const res = await deleteById(id)
        this.search()
        this.$message.success('删除成功')
      }).catch(() => {
      })
    },
    async getCityTree () {
      this.areas = await findTreeList({})
    }
  }
}
</script>
<style lang="scss" scoped>