zs 9 months ago
parent
commit
076736f9f5

+ 3 - 4
src/components/custom/custom-search.vue

@@ -206,7 +206,6 @@ const removeEmptyValues = (obj) => {
 }
 const toSearchInfo = async () => {
   const search = await removeEmptyValues(searchForm.value)
-  console.log(search)
   emits('toSearchInfo', search)
 }
 const getField = (item, data) => {
@@ -228,7 +227,7 @@ const getField = (item, data) => {
     align-items: stretch;
     position: relative;
     border: solid 1px #e5e5e5;
-    border-bottom: 0;
+    border-top: 0;
     font-size: $global-font-size-18;
     color: #666;
     min-height: 60px;
@@ -276,9 +275,9 @@ const getField = (item, data) => {
       margin: 0 5px 0 0;
     }
   }
-  .searchList:last-child {
+  .searchList:first-child {
     .twoSeacher {
-      border-bottom: 1;
+      border-top: solid 1px #e5e5e5;
     }
   }
   .twoIpunt {

+ 5 - 5
src/views/detail/company.vue

@@ -75,11 +75,11 @@
           </div>
         </div>
         <div class="two_ipunt">
-          <a-input class="input" size="large" v-model:value="searchForm.name" placeholder="公司名称" />
-          <a-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
-          <a-input class="input" size="large" v-model:value="searchForm.direction" placeholder="研究方向" />
-          <a-input class="input" size="large" v-model:value="searchForm.scale" placeholder="公司规模" />
-          <a-button class="button" size="large" type="primary" @click="toSearchInfo">检索</a-button>
+          <el-input class="input" size="large" v-model:value="searchForm.name" placeholder="公司名称" />
+          <el-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
+          <el-input class="input" size="large" v-model:value="searchForm.direction" placeholder="研究方向" />
+          <el-input class="input" size="large" v-model:value="searchForm.scale" placeholder="公司规模" />
+          <el-button class="button" size="large" type="primary" @click="toSearchInfo">检索</el-button>
         </div>
       </el-col>
       <div class="thr">

+ 15 - 206
src/views/detail/expert.vue

@@ -4,97 +4,7 @@
       <el-image class="image" :src="lists" fit="fill" />
     </el-col>
     <div class="w_1300">
-      <!-- <div class="active">
-        <div class="active_1" v-show="industry && industry.length > 0">
-          <div class="active_left">行业:</div>
-          <div class="active_right">
-            <div class="active_label" v-for="(item, index) in industry" :key="index">
-              {{ item.title }}<el-icon @click="toDel(item, '1')"><Close /></el-icon>
-            </div>
-          </div>
-        </div>
-        <div class="active_1" v-show="field && field.length > 0">
-          <div class="active_left">技术领域:</div>
-          <div class="active_right">
-            <div class="active_label" v-for="(item, index) in field" :key="index">
-              {{ item.label }}<el-icon @click="toDel(item, '2')"><Close /></el-icon>
-            </div>
-          </div>
-        </div>
-        <div class="active_1" v-show="city && city.length > 0">
-          <div class="active_left">所在地:</div>
-          <div class="active_right">
-            <div class="active_label" v-for="(item, index) in city" :key="index">
-              {{ item.name }}<el-icon @click="toDel(item, '3')"><Close /></el-icon>
-            </div>
-          </div>
-        </div>
-      </div> -->
-      <div class="two">
-        <div class="twoSeacher">
-          <div class="twoLeft">
-            <span>行业</span>
-          </div>
-          <div v-if="!oneShow" class="twoRight">
-            <div class="label" :class="[item.is_active ? 'show' : '']" v-for="(item, index) in plateList.slice(0, 6)" :key="index" @click="toSelect(item, '1')">
-              {{ item.title }}
-            </div>
-          </div>
-          <div v-else class="twoRight">
-            <div class="label" :class="[item.is_active ? 'show' : '']" v-for="(item, index) in plateList" :key="index" @click="toSelect(item, '1')">
-              {{ item.title }}
-            </div>
-          </div>
-          <div class="button">
-            <span v-if="!oneShow" @click="oneShow = true">
-              <el-icon><ArrowDown /></el-icon>
-            </span>
-            <span v-else @click="oneShow = false">
-              <el-icon><ArrowUp /></el-icon>
-            </span>
-          </div>
-        </div>
-        <div class="twoSeacher">
-          <div class="twoLeft">
-            <span>技术领域</span>
-          </div>
-          <div v-if="!twoShow" class="twoRight">
-            <div class="label" :class="[item.is_active ? 'show' : '']" v-for="(item, index) in typeList.slice(0, 10)" :key="index" @click="toSelect(item, '2')">
-              {{ item.label }}
-            </div>
-          </div>
-          <div v-else class="twoRight">
-            <div class="label" :class="[item.is_active ? 'show' : '']" v-for="(item, index) in typeList" :key="index" @click="toSelect(item, '2')">
-              {{ item.label }}
-            </div>
-          </div>
-          <div class="button">
-            <span v-if="!twoShow" @click="twoShow = true">
-              <el-icon><ArrowDown /></el-icon>
-            </span>
-            <span v-else @click="twoShow = false">
-              <el-icon><ArrowUp /></el-icon>
-            </span>
-          </div>
-        </div>
-        <div class="twoSeacher">
-          <div class="twoLeft">
-            <span>所在地</span>
-          </div>
-          <div class="twoRight">
-            <div class="label" :class="[item.is_active ? 'show' : '']" v-for="(item, index) in cityList" :key="index" @click="toSelect(item, '3')">
-              {{ item.name }}
-            </div>
-          </div>
-        </div>
-      </div>
-      <div class="two_ipunt">
-        <a-input class="input" size="large" v-model:value="searchForm.name" placeholder="专家名称" />
-        <a-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
-        <a-input class="input" size="large" v-model:value="searchForm.direction" placeholder="研究方向" />
-        <a-input class="input" size="large" v-model:value="searchForm.industry" placeholder="所属产业" />
-        <a-button class="button" size="large" type="primary" @click="toSearchInfo">检索</a-button>
-      </div>
+      <custom-search :cityList="cityList" :typeList="typeList" :plateList="plateList" :fields="fields" :searchFields="searchFields" @toSearchInfo="toSearchInfo"></custom-search>
       <div class="twoTwo">
         <div class="twoTable">
           <div class="label" v-for="(item, index) in column" :key="index" :style="item.style">
@@ -123,9 +33,6 @@
 // 图片引入
 import lists from '/images/expert.png'
 const $checkRes = inject('$checkRes')
-import { UserStore } from '@/store/user'
-const userStore = UserStore()
-const user = computed(() => userStore.user)
 // 接口
 import { ExpertStore } from '@/store/api/user/expert'
 import { RegionStore } from '@/store/api/system/region'
@@ -139,9 +46,7 @@ const dictDataStore = DictDataStore()
 const loading = ref(false)
 // 路由
 const router = useRouter()
-// 是否展开
-const oneShow = ref(false)
-const twoShow = ref(false)
+
 const cityList = ref([])
 const typeList = ref([])
 const plateList = ref([])
@@ -160,10 +65,17 @@ let limit = 15
 const total = ref(0)
 // 搜索
 const searchForm = ref({})
-// 查询
-const industry = ref([])
-const field = ref([])
-const city = ref([])
+
+const fields = ref([
+  { model: 'name', label: '专家名称' },
+  { model: 'tags', label: '标签名称' },
+  { model: 'direction', label: '研究方向' }
+])
+const searchFields = ref([
+  { title: '行业', type: '1', list: plateList },
+  { title: '技术领域', type: '2', list: typeList },
+  { title: '所在地', type: '3', list: cityList }
+])
 // 请求
 onMounted(async () => {
   loading.value = true
@@ -199,7 +111,8 @@ const search = async (query = { skip, limit }) => {
   }
 }
 // 搜索
-const toSearchInfo = async () => {
+const toSearchInfo = async (data) => {
+  searchForm.value = data
   await search({ skip, limit })
 }
 // 查看
@@ -216,110 +129,6 @@ const sizeChange = (limits) => {
   currentPage.value = 1
   search({ skip: 0, limit: limit })
 }
-// 筛选条件
-const toSearchFind = async () => {
-  if (industry.value && industry.value.length > 0) {
-    searchForm.value.industry = industry.value.map((i) => {
-      return i.title
-    })
-  } else delete searchForm.value.industry
-  if (field.value && field.value.length > 0) {
-    searchForm.value.field = field.value.map((i) => {
-      return i.label
-    })
-  } else delete searchForm.value.field
-  if (city.value && city.value.length > 0) {
-    searchForm.value.area = city.value.map((i) => {
-      return i.name
-    })
-  } else delete searchForm.value.area
-  await search({ skip, limit })
-}
-const toSelect = async (data, type) => {
-  if (data.is_active) {
-    toDel(data, type)
-  } else {
-    if (data.id != '-1') {
-      if (type == '1') {
-        for (const val of plateList.value) {
-          if (data.id == val.id) val.is_active = true
-          if (val.id == '-1') val.is_active = false
-        }
-        const res = industry.value.find((i) => i.id == data.id)
-        if (!res) industry.value.push(data)
-      } else if (type == '2') {
-        for (const val of typeList.value) {
-          if (data.id == val.id) val.is_active = true
-          if (val.id == '-1') val.is_active = false
-        }
-        const res = field.value.find((i) => i.id == data.id)
-        if (!res) field.value.push(data)
-      } else {
-        for (const val of cityList.value) {
-          if (data.id == val.id) val.is_active = true
-          if (val.id == '-1') val.is_active = false
-        }
-        const res = city.value.find((i) => i.id == data.id)
-        if (!res) city.value.push(data)
-      }
-    } else {
-      if (type == '1') {
-        for (const val of plateList.value) {
-          if (val.id == '-1') val.is_active = true
-          else val.is_active = false
-        }
-        industry.value = []
-      } else if (type == '2') {
-        for (const val of typeList.value) {
-          if (val.id == '-1') val.is_active = true
-          else val.is_active = false
-        }
-        field.value = []
-      } else {
-        for (const val of cityList.value) {
-          if (val.id == '-1') val.is_active = true
-          else val.is_active = false
-        }
-        city.value = []
-      }
-    }
-  }
-  await toSearchFind()
-}
-const toDel = async (data, type) => {
-  if (type == '1') {
-    for (const val of plateList.value) {
-      if (data.id == val.id) val.is_active = false
-    }
-    industry.value = industry.value.filter((f) => f.id != data.id)
-    if (industry.value.length == 0) {
-      for (const val of plateList.value) {
-        if (val.id == '-1') val.is_active = true
-      }
-    }
-  } else if (type == '2') {
-    for (const val of typeList.value) {
-      if (data.id == val.id) val.is_active = false
-    }
-    field.value = field.value.filter((f) => f.id != data.id)
-    if (field.value.length == 0) {
-      for (const val of typeList.value) {
-        if (val.id == '-1') val.is_active = true
-      }
-    }
-  } else {
-    for (const val of cityList.value) {
-      if (data.id == val.id) val.is_active = false
-    }
-    city.value = city.value.filter((f) => f.id != data.id)
-    if (city.value.length == 0) {
-      for (const val of cityList.value) {
-        if (val.id == '-1') val.is_active = true
-      }
-    }
-  }
-  await toSearchFind()
-}
 </script>
 <style scoped lang="scss">
 .main {

+ 6 - 6
src/views/detail/project.vue

@@ -68,11 +68,11 @@
               </div>
             </div>
             <div class="one_ipunt">
-              <a-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
-              <a-input class="input" size="large" v-model:value="searchForm.source" placeholder="项目来源" />
-              <a-input class="input" size="large" v-model:value="searchForm.main" placeholder="项目主体" />
-              <a-input class="input" size="large" v-model:value="searchForm.progress" placeholder="项目进展" />
-              <a-button class="button" size="large" type="primary" @click="toSearchInfo">检索</a-button>
+              <el-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
+              <el-input class="input" size="large" v-model:value="searchForm.source" placeholder="项目来源" />
+              <el-input class="input" size="large" v-model:value="searchForm.main" placeholder="项目主体" />
+              <el-input class="input" size="large" v-model:value="searchForm.progress" placeholder="项目进展" />
+              <el-button class="button" size="large" type="primary" @click="toSearchInfo">检索</el-button>
             </div>
           </div>
           <div class="one_2_2">
@@ -196,7 +196,7 @@ const sizeChange = (limits) => {
   search({ skip: 0, limit: limit })
 }
 // 选择
-const oneChange = async (value) => {
+const oneChange = async () => {
   if (checked1.value && checked1.value.length > 0) {
     searchForm.value.industryList = checked1.value
   } else if (checked2.value && checked2.value.length > 0) {

+ 4 - 4
src/views/five/index.vue

@@ -64,10 +64,10 @@
           </el-row>
         </el-col>
         <div class="two_ipunt">
-          <a-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
-          <a-input class="input" size="large" v-model:value="searchForm.industry" placeholder="所属产业" />
-          <a-input class="input" size="large" v-model:value="searchForm.work" placeholder="组织单位" />
-          <a-button class="button" size="large" type="primary" @click="toSearchInfo">检索</a-button>
+          <el-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
+          <el-input class="input" size="large" v-model:value="searchForm.industry" placeholder="所属产业" />
+          <el-input class="input" size="large" v-model:value="searchForm.work" placeholder="组织单位" />
+          <el-button class="button" size="large" type="primary" @click="toSearchInfo">检索</el-button>
         </div>
         <el-col :span="24" class="two_2">
           <div class="list" v-for="(item, index) in list" :key="index">

+ 1 - 3
src/views/four/index.vue

@@ -54,8 +54,7 @@ const search = async () => {
   const info = {
     skip: 0,
     limit: 6,
-    is_use: '0',
-    status: '1'
+    is_use: '0'
   }
   const res = await store.query(info)
   if (res.errcode == '0') list.value = res.data
@@ -74,7 +73,6 @@ const remoteMethod = (query) => {
       searchLoading.value = false
       const info = {
         is_use: '0',
-        status: '1',
         title: query
       }
       const res = await store.query(info)

+ 4 - 4
src/views/nine/index.vue

@@ -142,10 +142,10 @@
           </div>
         </div>
         <div class="two_ipunt">
-          <a-input class="input" size="large" v-model:value="searchForm.name" placeholder="成果名称" />
-          <a-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
-          <a-input class="input" size="large" v-model:value="searchForm.source" placeholder="项目来源" />
-          <a-button class="button" size="large" type="primary" @click="toSearchInfo">检索</a-button>
+          <el-input class="input" size="large" v-model:value="searchForm.name" placeholder="成果名称" />
+          <el-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
+          <el-input class="input" size="large" v-model:value="searchForm.source" placeholder="项目来源" />
+          <el-button class="button" size="large" type="primary" @click="toSearchInfo">检索</el-button>
         </div>
       </div>
       <div class="thr">

+ 49 - 7
src/views/search/parts/achievement.vue

@@ -139,11 +139,11 @@
           </div>
         </div>
         <div class="two_ipunt">
-          <a-input class="input" size="large" v-model:value="searchForm.name" placeholder="成果名称" />
-          <a-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
-          <a-input class="input" size="large" v-model:value="searchForm.source" placeholder="项目来源" />
-          <a-input class="input" size="large" v-model:value="searchForm.industry" placeholder="所属产业" />
-          <a-button class="button" size="large" type="primary" @click="toSearchInfo">检索</a-button>
+          <el-input class="input" size="large" v-model:value="searchForm.name" placeholder="成果名称" />
+          <el-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
+          <el-input class="input" size="large" v-model:value="searchForm.source" placeholder="项目来源" />
+          <el-input class="input" size="large" v-model:value="searchForm.industry" placeholder="所属产业" />
+          <el-button class="button" size="large" type="primary" @click="toSearchInfo">检索</el-button>
         </div>
       </div>
       <div class="thr">
@@ -306,7 +306,47 @@ const sizeChange = (limits) => {
   currentPage.value = 1
   search({ skip: 0, limit: limit })
 }
-const toSelect = (data, type) => {
+// 筛选条件
+const toSearchFind = async () => {
+  if (industry.value && industry.value.length > 0) {
+    searchForm.value.industry = industry.value.map((i) => {
+      return i.title
+    })
+  } else delete searchForm.value.industry
+
+  if (field.value && field.value.length > 0) {
+    searchForm.value.field = field.value.map((i) => {
+      return i.label
+    })
+  } else delete searchForm.value.field
+
+  if (mature.value && mature.value.length > 0) {
+    searchForm.value.mature = mature.value.map((i) => {
+      return i.value
+    })
+  } else delete searchForm.value.mature
+
+  if (sell.value && sell.value.length > 0) {
+    searchForm.value.sell = sell.value.map((i) => {
+      return i.value
+    })
+  } else delete searchForm.value.sell
+
+  if (money.value && money.value.length > 0) {
+    searchForm.value.money = money.value.map((i) => {
+      return i.value
+    })
+  } else delete searchForm.value.money
+
+  if (city.value && city.value.length > 0) {
+    searchForm.value.area = city.value.map((i) => {
+      return i.name
+    })
+  } else delete searchForm.value.area
+
+  await search({ skip, limit })
+}
+const toSelect = async (data, type) => {
   if (data.is_active) {
     toDel(data, type)
   } else {
@@ -402,8 +442,9 @@ const toSelect = (data, type) => {
       }
     }
   }
+  await toSearchFind()
 }
-const toDel = (data, type) => {
+const toDel = async (data, type) => {
   if (type == '1') {
     for (const val of plateList.value) {
       if (data.id == val.id) val.is_active = false
@@ -465,6 +506,7 @@ const toDel = (data, type) => {
       }
     }
   }
+  await toSearchFind()
 }
 </script>
 <style scoped lang="scss">

+ 29 - 7
src/views/search/parts/company.vue

@@ -72,11 +72,11 @@
           </div>
         </div>
         <div class="two_ipunt">
-          <a-input class="input" size="large" v-model:value="searchForm.name" placeholder="公司名称" />
-          <a-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
-          <a-input class="input" size="large" v-model:value="searchForm.direction" placeholder="研究方向" />
-          <a-input class="input" size="large" v-model:value="searchForm.scale" placeholder="公司规模" />
-          <a-button class="button" size="large" type="primary" @click="toSearchInfo">检索</a-button>
+          <el-input class="input" size="large" v-model:value="searchForm.name" placeholder="公司名称" />
+          <el-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
+          <el-input class="input" size="large" v-model:value="searchForm.direction" placeholder="研究方向" />
+          <el-input class="input" size="large" v-model:value="searchForm.scale" placeholder="公司规模" />
+          <el-button class="button" size="large" type="primary" @click="toSearchInfo">检索</el-button>
         </div>
       </el-col>
       <div class="thr">
@@ -228,7 +228,27 @@ const sizeChange = (limits) => {
   currentPage.value = 1
   search({ skip: 0, limit: limit })
 }
-const toSelect = (data, type) => {
+// 筛选条件
+const toSearchFind = async () => {
+  if (industry.value && industry.value.length > 0) {
+    searchForm.value.industry = industry.value.map((i) => {
+      return i.title
+    })
+  } else delete searchForm.value.industry
+  if (pattern.value && pattern.value.length > 0) {
+    searchForm.value.field = pattern.value.map((i) => {
+      return i.label
+    })
+  } else delete searchForm.value.pattern
+  if (city.value && city.value.length > 0) {
+    searchForm.value.area = city.value.map((i) => {
+      return i.name
+    })
+  } else delete searchForm.value.area
+
+  await search({ skip, limit })
+}
+const toSelect = async (data, type) => {
   if (data.is_active) {
     toDel(data, type)
   } else {
@@ -277,8 +297,9 @@ const toSelect = (data, type) => {
       }
     }
   }
+  await toSearchFind()
 }
-const toDel = (data, type) => {
+const toDel = async (data, type) => {
   if (type == '1') {
     for (const val of plateList.value) {
       if (data.id == val.id) val.is_active = false
@@ -310,6 +331,7 @@ const toDel = (data, type) => {
       }
     }
   }
+  await toSearchFind()
 }
 </script>
 <style scoped lang="scss">

+ 30 - 33
src/views/search/parts/demand.vue

@@ -1,32 +1,6 @@
 <template>
   <div class="main">
     <div class="w_1300">
-      <!-- <div class="active">
-    <div class="active_1" v-show="industry && industry.length > 0">
-      <div class="active_left">行业:</div>
-      <div class="active_right">
-        <div class="active_label" v-for="(item, index) in industry" :key="index">
-          {{ item.title }}<el-icon @click="toDel(item, '1')"><Close /></el-icon>
-        </div>
-      </div>
-    </div>
-    <div class="active_1" v-show="field && field.length > 0">
-      <div class="active_left">技术领域:</div>
-      <div class="active_right">
-        <div class="active_label" v-for="(item, index) in field" :key="index">
-          {{ item.label }}<el-icon @click="toDel(item, '2')"><Close /></el-icon>
-        </div>
-      </div>
-    </div>
-    <div class="active_1" v-show="city && city.length > 0">
-      <div class="active_left">所在地:</div>
-      <div class="active_right">
-        <div class="active_label" v-for="(item, index) in city" :key="index">
-          {{ item.name }}<el-icon @click="toDel(item, '3')"><Close /></el-icon>
-        </div>
-      </div>
-    </div>
-  </div> -->
       <div class="demand">
         <div class="demandOne">
           <div class="demandSeacher">
@@ -87,11 +61,11 @@
           </div>
         </div>
         <div class="demandIpunt">
-          <a-input class="input" size="large" v-model:value="searchForm.name" placeholder="需求名称" />
-          <a-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
-          <a-input class="input" size="large" v-model:value="searchForm.industry" placeholder="所属产业" />
-          <a-input class="input" size="large" v-model:value="searchForm.company" placeholder="所属企业" />
-          <a-button class="button" size="large" type="primary" @click="toSearchInfo(searchForm, '0')">检索</a-button>
+          <el-input class="input" size="large" v-model:value="searchForm.name" placeholder="需求名称" />
+          <el-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
+          <el-input class="input" size="large" v-model:value="searchForm.industry" placeholder="所属产业" />
+          <el-input class="input" size="large" v-model:value="searchForm.company" placeholder="所属企业" />
+          <el-button class="button" size="large" type="primary" @click="toSearchInfo(searchForm, '0')">检索</el-button>
         </div>
         <div class="demandTwo">
           <div class="demandTable">
@@ -235,7 +209,28 @@ const getDict = (data, model) => {
     return get(res, 'label')
   }
 }
-const toSelect = (data, type) => {
+// 筛选条件
+const toSearchFind = async () => {
+  if (industry.value && industry.value.length > 0) {
+    searchForm.value.industry = industry.value.map((i) => {
+      return i.title
+    })
+  } else delete searchForm.value.industry
+  if (field.value && field.value.length > 0) {
+    searchForm.value.field = field.value.map((i) => {
+      return i.label
+    })
+  } else delete searchForm.value.field
+  if (city.value && city.value.length > 0) {
+    searchForm.value.area = city.value.map((i) => {
+      return i.name
+    })
+  } else delete searchForm.value.area
+
+  await search({ skip, limit })
+}
+
+const toSelect = async (data, type) => {
   if (data.is_active) {
     toDel(data, type)
   } else {
@@ -284,8 +279,9 @@ const toSelect = (data, type) => {
       }
     }
   }
+  await toSearchFind()
 }
-const toDel = (data, type) => {
+const toDel = async (data, type) => {
   if (type == '1') {
     for (const val of plateList.value) {
       if (data.id == val.id) val.is_active = false
@@ -317,6 +313,7 @@ const toDel = (data, type) => {
       }
     }
   }
+  await toSearchFind()
 }
 </script>
 <style scoped lang="scss">

+ 5 - 5
src/views/search/parts/expert.vue

@@ -86,11 +86,11 @@
         </div>
       </div>
       <div class="two_ipunt">
-        <a-input class="input" size="large" v-model:value="searchForm.name" placeholder="专家名称" />
-        <a-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
-        <a-input class="input" size="large" v-model:value="searchForm.direction" placeholder="研究方向" />
-        <a-input class="input" size="large" v-model:value="searchForm.industry" placeholder="所属产业" />
-        <a-button class="button" size="large" type="primary" @click="toSearchInfo">检索</a-button>
+        <el-input class="input" size="large" v-model:value="searchForm.name" placeholder="专家名称" />
+        <el-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
+        <el-input class="input" size="large" v-model:value="searchForm.direction" placeholder="研究方向" />
+        <el-input class="input" size="large" v-model:value="searchForm.industry" placeholder="所属产业" />
+        <el-button class="button" size="large" type="primary" @click="toSearchInfo">检索</el-button>
       </div>
       <div class="twoTwo">
         <div class="twoTable">

+ 17 - 10
src/views/search/parts/project.vue

@@ -59,11 +59,11 @@
               </div>
             </div>
             <div class="one_ipunt">
-              <a-input class="input" size="large" v-model:value="searchForm.name" placeholder="项目名称" />
-              <a-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
-              <a-input class="input" size="large" v-model:value="searchForm.source" placeholder="项目来源" />
-              <a-input class="input" size="large" v-model:value="searchForm.industry" placeholder="所属产业" />
-              <a-button class="button" size="large" type="primary" @click="toSearchInfo">检索</a-button>
+              <el-input class="input" size="large" v-model:value="searchForm.name" placeholder="项目名称" />
+              <el-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
+              <el-input class="input" size="large" v-model:value="searchForm.source" placeholder="项目来源" />
+              <el-input class="input" size="large" v-model:value="searchForm.industry" placeholder="所属产业" />
+              <el-button class="button" size="large" type="primary" @click="toSearchInfo">检索</el-button>
             </div>
           </div>
           <div class="one_2_2">
@@ -195,11 +195,18 @@ const sizeChange = (limits) => {
   search({ skip: 0, limit: limit })
 }
 // 选择
-const oneChange = (value) => {
-  console.log('1', checked1.value)
-  console.log('2', checked2.value)
-  console.log('3', checked3.value)
-  console.log('4', checked4.value)
+const oneChange = async () => {
+  if (checked1.value && checked1.value.length > 0) {
+    searchForm.value.industryList = checked1.value
+  } else if (checked2.value && checked2.value.length > 0) {
+    searchForm.value.fieldList = checked2.value
+  } else if (checked3.value && checked3.value.length > 0) {
+    searchForm.value.cityList = checked3.value
+  } else if (checked4.value && checked4.value.length > 0) {
+    searchForm.value.maturityList = checked4.value
+  } else searchForm.value = {}
+
+  await search({ skip, limit })
 }
 </script>
 <style scoped lang="scss">

+ 30 - 7
src/views/search/parts/supply.vue

@@ -87,11 +87,11 @@
           </div>
         </div>
         <div class="demandIpunt">
-          <a-input class="input" size="large" v-model:value="searchForm.name" placeholder="供应名称" />
-          <a-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
-          <a-input class="input" size="large" v-model:value="searchForm.industry" placeholder="所属产业" />
-          <a-input class="input" size="large" v-model:value="searchForm.source" placeholder="所属来源" />
-          <a-button class="button" size="large" type="primary" @click="toSearchInfo(searchForm, '1')">检索</a-button>
+          <el-input class="input" size="large" v-model:value="searchForm.name" placeholder="供应名称" />
+          <el-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
+          <el-input class="input" size="large" v-model:value="searchForm.industry" placeholder="所属产业" />
+          <el-input class="input" size="large" v-model:value="searchForm.source" placeholder="所属来源" />
+          <el-button class="button" size="large" type="primary" @click="toSearchInfo(searchForm, '1')">检索</el-button>
         </div>
         <div class="demandTwo">
           <div class="demandTable">
@@ -220,7 +220,28 @@ const column = ref([
 const toView = (item) => {
   router.push({ path: '/supply/detail', query: { id: item.id || item._id } })
 }
-const toSelect = (data, type) => {
+// 筛选条件
+const toSearchFind = async () => {
+  if (industry.value && industry.value.length > 0) {
+    searchForm.value.industry = industry.value.map((i) => {
+      return i.title
+    })
+  } else delete searchForm.value.industry
+  if (field.value && field.value.length > 0) {
+    searchForm.value.field = field.value.map((i) => {
+      return i.label
+    })
+  } else delete searchForm.value.field
+  if (city.value && city.value.length > 0) {
+    searchForm.value.area = city.value.map((i) => {
+      return i.name
+    })
+  } else delete searchForm.value.area
+
+  await search({ skip, limit })
+}
+
+const toSelect = async (data, type) => {
   if (data.is_active) {
     toDel(data, type)
   } else {
@@ -269,8 +290,9 @@ const toSelect = (data, type) => {
       }
     }
   }
+  await toSearchFind()
 }
-const toDel = (data, type) => {
+const toDel = async (data, type) => {
   if (type == '1') {
     for (const val of plateList.value) {
       if (data.id == val.id) val.is_active = false
@@ -302,6 +324,7 @@ const toDel = (data, type) => {
       }
     }
   }
+  await toSearchFind()
 }
 </script>
 <style scoped lang="scss">

+ 13 - 317
src/views/seven/index.vue

@@ -4,96 +4,7 @@
       <el-image class="image" :src="lists" fit="fill" />
     </el-col>
     <div class="w_1300">
-      <!-- <div class="active">
-        <div class="active_1" v-show="industry && industry.length > 0">
-          <div class="active_left">行业:</div>
-          <div class="active_right">
-            <div class="active_label" v-for="(item, index) in industry" :key="index">
-              {{ item.title }}<el-icon @click="toDel(item, '1')"><Close /></el-icon>
-            </div>
-          </div>
-        </div>
-        <div class="active_1" v-show="field && field.length > 0">
-          <div class="active_left">技术领域:</div>
-          <div class="active_right">
-            <div class="active_label" v-for="(item, index) in field" :key="index">
-              {{ item.label }}<el-icon @click="toDel(item, '2')"><Close /></el-icon>
-            </div>
-          </div>
-        </div>
-        <div class="active_1" v-show="city && city.length > 0">
-          <div class="active_left">所在地:</div>
-          <div class="active_right">
-            <div class="active_label" v-for="(item, index) in city" :key="index">
-              {{ item.name }}<el-icon @click="toDel(item, '3')"><Close /></el-icon>
-            </div>
-          </div>
-        </div>
-      </div> -->
-      <div class="two">
-        <div class="twoSeacher">
-          <div class="twoLeft">
-            <span>行业</span>
-          </div>
-          <div v-if="!oneShow" class="twoRight">
-            <div class="label" :class="[item.is_active ? 'show' : '']" v-for="(item, index) in plateList.slice(0, 6)" :key="index" @click="toSelect(item, '1')">
-              {{ item.title }}
-            </div>
-          </div>
-          <div v-else class="twoRight">
-            <div class="label" :class="[item.is_active ? 'show' : '']" v-for="(item, index) in plateList" :key="index" @click="toSelect(item, '1')">
-              {{ item.title }}
-            </div>
-          </div>
-          <div class="button">
-            <span v-if="!oneShow" @click="oneShow = true">
-              <el-icon><ArrowDown /></el-icon>
-            </span>
-            <span v-else @click="oneShow = false">
-              <el-icon><ArrowUp /></el-icon>
-            </span>
-          </div>
-        </div>
-        <div class="twoSeacher">
-          <div class="twoLeft">
-            <span>技术领域</span>
-          </div>
-          <div v-if="!twoShow" class="twoRight">
-            <div class="label" :class="[item.is_active ? 'show' : '']" v-for="(item, index) in typeList.slice(0, 10)" :key="index" @click="toSelect(item, '2')">
-              {{ item.label }}
-            </div>
-          </div>
-          <div v-else class="twoRight">
-            <div class="label" :class="[item.is_active ? 'show' : '']" v-for="(item, index) in typeList" :key="index" @click="toSelect(item, '2')">
-              {{ item.label }}
-            </div>
-          </div>
-          <div class="button">
-            <span v-if="!twoShow" @click="twoShow = true">
-              <el-icon><ArrowDown /></el-icon>
-            </span>
-            <span v-else @click="twoShow = false">
-              <el-icon><ArrowUp /></el-icon>
-            </span>
-          </div>
-        </div>
-        <div class="twoSeacher">
-          <div class="twoLeft">
-            <span>所在地</span>
-          </div>
-          <div class="twoRight">
-            <div class="label" :class="[item.is_active ? 'show' : '']" v-for="(item, index) in cityList" :key="index" @click="toSelect(item, '3')">
-              {{ item.name }}
-            </div>
-          </div>
-        </div>
-      </div>
-      <div class="two_ipunt">
-        <a-input class="input" size="large" v-model:value="searchForm.name" placeholder="服务名称" />
-        <a-input class="input" size="large" v-model:value="searchForm.tags" placeholder="标签名称" />
-        <a-input class="input" size="large" v-model:value="searchForm.industry" placeholder="所属产业" />
-        <a-button class="button" size="large" type="primary" @click="toSearchInfo">检索</a-button>
-      </div>
+      <custom-search :cityList="cityList" :typeList="typeList" :plateList="plateList" :fields="fields" :searchFields="searchFields" @toSearchInfo="toSearchInfo"></custom-search>
       <div class="twoTwo">
         <div class="twoTable">
           <div class="label" v-for="(item, index) in column" :key="index" :style="item.style">
@@ -129,16 +40,10 @@ const store = SupportStore()
 const regionStore = RegionStore()
 const sectorStore = SectorStore()
 const dictDataStore = DictDataStore()
-import { UserStore } from '@/store/user'
-const userStore = UserStore()
-const user = computed(() => userStore.user)
 // 加载中
 const loading = ref(false)
 // 路由
 const router = useRouter()
-// 是否展开
-const oneShow = ref(false)
-const twoShow = ref(false)
 const cityList = ref([])
 const typeList = ref([])
 const plateList = ref([])
@@ -154,10 +59,16 @@ const list = ref([])
 let skip = 0
 let limit = 8
 const total = ref(0)
-// 查询
-const industry = ref([])
-const field = ref([])
-const city = ref([])
+const fields = ref([
+  { model: 'name', label: '公司名称' },
+  { model: 'tags', label: '标签名称' },
+  { model: 'time', label: '登记时间' }
+])
+const searchFields = ref([
+  { title: '行业', type: '1', list: plateList },
+  { title: '技术领域', type: '2', list: typeList },
+  { title: '所在地', type: '3', list: cityList }
+])
 // 请求
 onMounted(async () => {
   loading.value = true
@@ -189,7 +100,8 @@ const search = async (query = { skip, limit }) => {
   }
 }
 // 搜索
-const toSearchInfo = async () => {
+const toSearchInfo = async (data) => {
+  searchForm.value = data
   await search({ skip, limit })
 }
 // 查看详情
@@ -206,110 +118,6 @@ const sizeChange = (limits) => {
   currentPage.value = 1
   search({ skip: 0, limit: limit })
 }
-// 筛选条件
-const toSearchFind = async () => {
-  if (industry.value && industry.value.length > 0) {
-    searchForm.value.industry = industry.value.map((i) => {
-      return i.title
-    })
-  } else delete searchForm.value.industry
-  if (field.value && field.value.length > 0) {
-    searchForm.value.field = field.value.map((i) => {
-      return i.label
-    })
-  } else delete searchForm.value.field
-  if (city.value && city.value.length > 0) {
-    searchForm.value.area = city.value.map((i) => {
-      return i.name
-    })
-  } else delete searchForm.value.area
-  await search({ skip, limit })
-}
-const toSelect = async (data, type) => {
-  if (data.is_active) {
-    toDel(data, type)
-  } else {
-    if (data.id != '-1') {
-      if (type == '1') {
-        for (const val of plateList.value) {
-          if (data.id == val.id) val.is_active = true
-          if (val.id == '-1') val.is_active = false
-        }
-        const res = industry.value.find((i) => i.id == data.id)
-        if (!res) industry.value.push(data)
-      } else if (type == '2') {
-        for (const val of typeList.value) {
-          if (data.id == val.id) val.is_active = true
-          if (val.id == '-1') val.is_active = false
-        }
-        const res = field.value.find((i) => i.id == data.id)
-        if (!res) field.value.push(data)
-      } else {
-        for (const val of cityList.value) {
-          if (data.id == val.id) val.is_active = true
-          if (val.id == '-1') val.is_active = false
-        }
-        const res = city.value.find((i) => i.id == data.id)
-        if (!res) city.value.push(data)
-      }
-    } else {
-      if (type == '1') {
-        for (const val of plateList.value) {
-          if (val.id == '-1') val.is_active = true
-          else val.is_active = false
-        }
-        industry.value = []
-      } else if (type == '2') {
-        for (const val of typeList.value) {
-          if (val.id == '-1') val.is_active = true
-          else val.is_active = false
-        }
-        field.value = []
-      } else {
-        for (const val of cityList.value) {
-          if (val.id == '-1') val.is_active = true
-          else val.is_active = false
-        }
-        city.value = []
-      }
-    }
-  }
-  await toSearchFind()
-}
-const toDel = async (data, type) => {
-  if (type == '1') {
-    for (const val of plateList.value) {
-      if (data.id == val.id) val.is_active = false
-    }
-    industry.value = industry.value.filter((f) => f.id != data.id)
-    if (industry.value.length == 0) {
-      for (const val of plateList.value) {
-        if (val.id == '-1') val.is_active = true
-      }
-    }
-  } else if (type == '2') {
-    for (const val of typeList.value) {
-      if (data.id == val.id) val.is_active = false
-    }
-    field.value = field.value.filter((f) => f.id != data.id)
-    if (field.value.length == 0) {
-      for (const val of typeList.value) {
-        if (val.id == '-1') val.is_active = true
-      }
-    }
-  } else {
-    for (const val of cityList.value) {
-      if (data.id == val.id) val.is_active = false
-    }
-    city.value = city.value.filter((f) => f.id != data.id)
-    if (city.value.length == 0) {
-      for (const val of cityList.value) {
-        if (val.id == '-1') val.is_active = true
-      }
-    }
-  }
-  await toSearchFind()
-}
 </script>
 <style scoped lang="scss">
 .main {
@@ -321,121 +129,9 @@ const toDel = async (data, type) => {
       height: 350px;
     }
   }
-  .active {
-    .active_1 {
-      display: inline-flex;
-      background: #f5f7f9;
-      border-radius: 2px;
-      min-height: 28px;
-      line-height: 28px;
-      margin: 10px 10px 0 0;
-      position: relative;
-      background-color: #fff;
-      padding: 10px;
-      .active_left {
-        flex: 0 0 auto;
-        font-family: PingFangSC-Regular;
-        color: #525a68;
-        line-height: 36px;
-      }
-      .active_right {
-        font-family: PingFangSC-Regular;
-        color: rgba(0, 0, 0, 0.85);
-        line-height: 28px;
-        padding-right: 4px;
-        display: flex;
-        flex-wrap: wrap;
-        overflow: hidden;
-        .active_label {
-          overflow: hidden;
-          display: inline-block;
-          margin-right: 10px;
-          margin-top: 3px;
-          margin-bottom: 3px;
-          padding: 10px;
-          display: flex;
-          align-items: center;
-          flex: none;
-          box-sizing: border-box;
-          max-width: 100%;
-          height: 30px;
-          background: #f5f5f5;
-          border: 1px solid #f0f0f0;
-          border-radius: 2px;
-          cursor: default;
-        }
-      }
-    }
-  }
   .two {
     margin: 10px 0;
     background-color: $global-color-fff;
-    .twoSeacher {
-      display: flex;
-      justify-content: center;
-      align-items: stretch;
-      position: relative;
-      border: solid 1px #e5e5e5;
-      border-bottom: 0;
-      font-size: $global-font-size-18;
-      color: #666;
-      min-height: 60px;
-      overflow: hidden;
-      .twoLeft {
-        display: flex;
-        justify-content: center;
-        align-items: center;
-        flex-shrink: 0;
-        width: 110px;
-        text-align: center;
-        color: #000;
-        font-weight: bold;
-        background-color: #fafafa;
-      }
-      .twoRight {
-        display: flex;
-        flex-wrap: wrap;
-        align-items: center;
-        padding: 12px;
-        flex: 1;
-        border-left: solid 1px #e5e5e5;
-        background-color: #fff;
-        .label {
-          margin-right: 3px;
-          color: #313131;
-          margin-bottom: 10px;
-          padding: 8px 10px;
-          border-radius: 3px;
-          background-color: #fff;
-          border: solid 1px transparent;
-          cursor: pointer;
-        }
-        .show {
-          color: #0a58c2;
-          border: solid 1px #006dd2;
-        }
-        .label:hover {
-          color: $global-color-107;
-        }
-      }
-      .button {
-        display: flex;
-        align-items: center;
-        margin: 0 5px 0 0;
-      }
-    }
-  }
-  .two_ipunt {
-    display: flex;
-    align-items: center;
-    justify-content: space-between;
-    margin: 10px 0;
-    .input {
-      margin: 0 5px 0 0;
-    }
-    .button {
-      margin: 0 0 0 5px;
-    }
   }
   .twoTwo {
     margin: 10px 0;

+ 14 - 261
src/views/six/index.vue

@@ -5,64 +5,7 @@
     </el-col>
     <div class="two">
       <div class="w_1300">
-        <!-- <div class="active">
-          <div class="active_1" v-show="industry && industry.length > 0">
-            <div class="active_left">行业:</div>
-            <div class="active_right">
-              <div class="active_label" v-for="(item, index) in industry" :key="index">
-                {{ item.title }}<el-icon @click="toDel(item, '1')"><Close /></el-icon>
-              </div>
-            </div>
-          </div>
-          <div class="active_1" v-show="city && city.length > 0">
-            <div class="active_left">所在地:</div>
-            <div class="active_right">
-              <div class="active_label" v-for="(item, index) in city" :key="index">
-                {{ item.name }}<el-icon @click="toDel(item, '2')"><Close /></el-icon>
-              </div>
-            </div>
-          </div>
-        </div> -->
-        <div class="twoSeacher">
-          <div class="twoLeft">
-            <span>行业</span>
-          </div>
-          <div v-if="!oneShow" class="twoRight">
-            <div class="label" :class="[item.is_active ? 'show' : '']" v-for="(item, index) in plateList.slice(0, 6)" :key="index" @click="toSelect(item, '1')">
-              {{ item.title }}
-            </div>
-          </div>
-          <div v-else class="twoRight">
-            <div class="label" :class="[item.is_active ? 'show' : '']" v-for="(item, index) in plateList" :key="index" @click="toSelect(item, '2')">
-              {{ item.title }}
-            </div>
-          </div>
-          <div class="button">
-            <span v-if="!oneShow" @click="oneShow = true">
-              <el-icon><ArrowDown /></el-icon>
-            </span>
-            <span v-else @click="oneShow = false">
-              <el-icon><ArrowUp /></el-icon>
-            </span>
-          </div>
-        </div>
-        <div class="twoSeacher">
-          <div class="twoLeft">
-            <span>所在地</span>
-          </div>
-          <div class="twoRight">
-            <div class="label" :class="[item.is_active ? 'show' : '']" v-for="(item, index) in cityList" :key="index" @click="toSelect(item, '2')">
-              {{ item.name }}
-            </div>
-          </div>
-        </div>
-        <div class="twoIpunt">
-          <a-input class="input" size="large" v-model:value="searchForm.name" placeholder="中试平台/实验室名称" />
-          <a-input class="input" size="large" v-model:value="searchForm.build" placeholder="建设主体" />
-          <a-input class="input" size="large" v-model:value="searchForm.operate" placeholder="运营主体" />
-          <a-input class="input" size="large" v-model:value="searchForm.field" placeholder="服务产业领域" />
-          <a-button class="button" size="large" type="primary" @click="toSearchInfo">检索</a-button>
-        </div>
+        <custom-search :cityList="cityList" :plateList="plateList" :fields="fields" :searchFields="searchFields" @toSearchInfo="toSearchInfo"></custom-search>
       </div>
     </div>
     <el-col :span="24" class="thr">
@@ -121,15 +64,10 @@ import { SectorStore } from '@/store/api/platform/sector'
 const store = FootplateStore()
 const regionStore = RegionStore()
 const sectorStore = SectorStore()
-import { UserStore } from '@/store/user'
-const userStore = UserStore()
-const user = computed(() => userStore.user)
 // 加载中
 const loading = ref(false)
 // 路由
 const router = useRouter()
-// 是否展开
-const oneShow = ref(false)
 const cityList = ref([])
 const plateList = ref([])
 // 列表
@@ -138,9 +76,17 @@ const list = ref([])
 let skip = 0
 let limit = inject('limit')
 const total = ref(6)
-// 查询
-const industry = ref([])
-const city = ref([])
+
+const fields = ref([
+  { model: 'name', label: '中试平台/实验室名称' },
+  { model: 'build', label: '建设主体' },
+  { model: 'operate', label: '运营主体' },
+  { model: 'field', label: '服务产业领域' }
+])
+const searchFields = ref([
+  { title: '行业', type: '1', list: plateList },
+  { title: '所在地', type: '3', list: cityList }
+])
 // 请求
 onMounted(async () => {
   loading.value = true
@@ -166,7 +112,8 @@ const search = async (query = { skip, limit }) => {
   }
 }
 // 搜索
-const toSearchInfo = async () => {
+const toSearchInfo = async (data) => {
+  searchForm.value = data
   await search({ skip, limit })
 }
 // 查看
@@ -186,83 +133,6 @@ const sizeChange = (limits) => {
 const getUrl = (item) => {
   if (item && item.length > 0) return `${import.meta.env.VITE_APP_HOST}${item[0].uri}`
 }
-// 筛选条件
-const toSearchFind = async () => {
-  if (industry.value && industry.value.length > 0) {
-    searchForm.value.industry = industry.value.map((i) => {
-      return i.title
-    })
-  } else delete searchForm.value.industry
-
-  if (city.value && city.value.length > 0) {
-    searchForm.value.area = city.value.map((i) => {
-      return i.name
-    })
-  } else delete searchForm.value.area
-  await search({ skip, limit })
-}
-const toSelect = async (data, type) => {
-  if (data.is_active) {
-    toDel(data, type)
-  } else {
-    if (data.id != '-1') {
-      if (type == '1') {
-        for (const val of plateList.value) {
-          if (data.id == val.id) val.is_active = true
-          if (val.id == '-1') val.is_active = false
-        }
-        const res = industry.value.find((i) => i.id == data.id)
-        if (!res) industry.value.push(data)
-      } else {
-        for (const val of cityList.value) {
-          if (data.id == val.id) val.is_active = true
-          if (val.id == '-1') val.is_active = false
-        }
-        const res = city.value.find((i) => i.id == data.id)
-        if (!res) city.value.push(data)
-      }
-    } else {
-      if (type == '1') {
-        for (const val of plateList.value) {
-          if (val.id == '-1') val.is_active = true
-          else val.is_active = false
-        }
-        industry.value = []
-      } else {
-        for (const val of cityList.value) {
-          if (val.id == '-1') val.is_active = true
-          else val.is_active = false
-        }
-        city.value = []
-      }
-    }
-  }
-  await toSearchFind()
-}
-const toDel = async (data, type) => {
-  if (type == '1') {
-    for (const val of plateList.value) {
-      if (data.id == val.id) val.is_active = false
-    }
-    industry.value = industry.value.filter((f) => f.id != data.id)
-    if (industry.value.length == 0) {
-      for (const val of plateList.value) {
-        if (val.id == '-1') val.is_active = true
-      }
-    }
-  } else {
-    for (const val of cityList.value) {
-      if (data.id == val.id) val.is_active = false
-    }
-    city.value = city.value.filter((f) => f.id != data.id)
-    if (city.value.length == 0) {
-      for (const val of cityList.value) {
-        if (val.id == '-1') val.is_active = true
-      }
-    }
-  }
-  await toSearchFind()
-}
 </script>
 <style scoped lang="scss">
 .main {
@@ -276,123 +146,6 @@ const toDel = async (data, type) => {
   .two {
     margin: 10px 0;
     background-color: $global-color-fff;
-    .active {
-      margin: 0 0 10px 0;
-      .active_1 {
-        display: inline-flex;
-        background: #f5f7f9;
-        border-radius: 2px;
-        min-height: 28px;
-        line-height: 28px;
-        margin: 0 10px 0 0;
-        position: relative;
-        background-color: #fff;
-        .active_left {
-          flex: 0 0 auto;
-          font-family: PingFangSC-Regular;
-          color: #525a68;
-          line-height: 36px;
-        }
-        .active_right {
-          font-family: PingFangSC-Regular;
-          color: rgba(0, 0, 0, 0.85);
-          line-height: 28px;
-          padding-right: 4px;
-          display: flex;
-          flex-wrap: wrap;
-          overflow: hidden;
-          .active_label {
-            overflow: hidden;
-            display: inline-block;
-            margin-right: 10px;
-            margin-top: 3px;
-            margin-bottom: 3px;
-            padding: 10px;
-            display: flex;
-            align-items: center;
-            flex: none;
-            box-sizing: border-box;
-            max-width: 100%;
-            height: 30px;
-            background: #f5f5f5;
-            border: 1px solid #f0f0f0;
-            border-radius: 2px;
-            cursor: default;
-          }
-        }
-      }
-    }
-    .twoSeacher {
-      display: flex;
-      justify-content: center;
-      align-items: stretch;
-      position: relative;
-      border: solid 1px #e5e5e5;
-      // border-bottom: 0;
-      font-size: $global-font-size-18;
-      color: #666;
-      min-height: 60px;
-      overflow: hidden;
-      .twoLeft {
-        display: flex;
-        justify-content: center;
-        align-items: center;
-        flex-shrink: 0;
-        width: 110px;
-        text-align: center;
-        color: #000;
-        font-weight: bold;
-        background-color: #fafafa;
-      }
-      .twoRight {
-        display: flex;
-        flex-wrap: wrap;
-        align-items: center;
-        padding: 12px;
-        flex: 1;
-        border-left: solid 1px #e5e5e5;
-        background-color: #fff;
-        .label {
-          margin-right: 3px;
-          color: #313131;
-          margin-bottom: 10px;
-          padding: 8px 10px;
-          border-radius: 3px;
-          background-color: #fff;
-          border: solid 1px transparent;
-          cursor: pointer;
-        }
-        .show {
-          color: #0a58c2;
-          border: solid 1px #006dd2;
-        }
-
-        .label:hover {
-          color: $global-color-107;
-        }
-      }
-      .button {
-        display: flex;
-        align-items: center;
-        margin: 0 5px 0 0;
-      }
-    }
-    .twoSeacher:first-child {
-      border-bottom: 0;
-    }
-
-    .twoIpunt {
-      display: flex;
-      align-items: center;
-      justify-content: space-between;
-      margin: 10px 0 0 0;
-      .input {
-        margin: 0 5px 0 0;
-      }
-      .button {
-        margin: 0 0 0 5px;
-      }
-    }
   }
   .thr {
     .list {