From 3d6a8e384d31432a23f5a8c1a3135a58cbe617b5 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 27 五月 2025 17:25:38 +0800
Subject: [PATCH] 提交一把

---
 company/src/views/business/knowledge.vue |  148 ++++++++++++++++++++++++++++++-------------------
 1 files changed, 91 insertions(+), 57 deletions(-)

diff --git a/company/src/views/business/knowledge.vue b/company/src/views/business/knowledge.vue
index 1d8ab69..90b7f19 100644
--- a/company/src/views/business/knowledge.vue
+++ b/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>

--
Gitblit v1.9.3