Просмотр исходного кода

Merge branch 'master' of http://49.234.186.218:9000/root/ieplus

mingfu 1 месяц назад
Родитель
Сommit
a1200d057f

+ 53 - 0
back-ui/src/api/system/bBusiWishUniversities.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询院校库列表
+export function listBBusiWishUniversities(query) {
+  return request({
+    url: '/system/bBusiWishUniversities/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询院校库详细
+export function getBBusiWishUniversities(id) {
+  return request({
+    url: '/system/bBusiWishUniversities/' + id,
+    method: 'get'
+  })
+}
+
+// 新增院校库
+export function addBBusiWishUniversities(data) {
+  return request({
+    url: '/system/bBusiWishUniversities',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改院校库
+export function updateBBusiWishUniversities(data) {
+  return request({
+    url: '/system/bBusiWishUniversities',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除院校库
+export function delBBusiWishUniversities(id) {
+  return request({
+    url: '/system/bBusiWishUniversities/' + id,
+    method: 'delete'
+  })
+}
+
+// 查询所有院校库(不分页)
+export function listAllBBusiWishUniversities(query) {
+  return request({
+    url: '/system/bBusiWishUniversities/listAll',
+    method: 'get',
+    params: query
+  })
+}

+ 8 - 0
back-ui/src/api/system/bBusiWishUniversitiesEnrollBrochure.js

@@ -42,3 +42,11 @@ export function delBBusiWishUniversitiesEnrollBrochure(id) {
     method: 'delete'
   })
 }
+
+// 获取简章类型列表
+export function getBrochureTypes() {
+  return request({
+    url: '/system/bBusiWishUniversitiesEnrollBrochure/getBrochureTypes',
+    method: 'get'
+  })
+}

+ 702 - 0
back-ui/src/views/system/bBusiWishUniversities/index.vue

@@ -0,0 +1,702 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="代码" prop="code">
+        <el-input
+          v-model="queryParams.code"
+          placeholder="请输入代码"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入名称"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="所在省" prop="location">
+        <el-input
+          v-model="queryParams.location"
+          placeholder="请输入所在地"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="所在市" prop="cityName">
+        <el-input
+                v-model="queryParams.cityName"
+                placeholder="请输入所在市"
+                clearable
+                @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="梯队" prop="tier">
+        <el-select v-model="queryParams.tier" placeholder="请选择梯队" clearable style="width: 170px">
+          <el-option
+            v-for="dict in tier_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+
+      <el-form-item label="招生省份" prop="enrollLocation">
+        <el-input
+          v-model="queryParams.enrollLocation"
+          placeholder="请输入名称"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
+        <el-button icon="Refresh" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="Plus"
+          @click="handleAdd"
+          v-hasPermi="['system:bBusiWishUniversities:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="Edit"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:bBusiWishUniversities:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="Delete"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:bBusiWishUniversities:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="Download"
+          @click="handleExport"
+          v-hasPermi="['system:bBusiWishUniversities:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="bBusiWishUniversitiesList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+<!--      <el-table-column label="ID" align="center" prop="id" />-->
+<!--      <el-table-column label="国标编码" align="center" prop="gbCode" />-->
+      <el-table-column label="名称" align="center">
+        <template #default="{ row }">
+          <span>{{ row.name }} ({{ row.code }})</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="logo" align="center" prop="logo">
+        <template #default="{ row }">
+          <image-preview v-if="row.logo" :src="row.logo" :width="50" :height="50" />
+          <span v-else>暂无图片</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="所在地" align="center">
+        <template #default="{ row }">
+          <span>{{ row.location }} {{ row.cityName }}</span>
+        </template>
+      </el-table-column>
+<!--      <el-table-column label="主管部门类别" align="center" prop="managerType" />-->
+      <el-table-column label="院校类型" align="center" prop="type" />
+      <el-table-column label="学历层次" align="center" prop="level" />
+      <el-table-column label="梯队" align="center" prop="tier">
+        <template #default="scope">
+          <dict-tag :options="tier_type" :value="scope.row.tier" />
+        </template>
+      </el-table-column>
+<!--      <el-table-column label="排序" align="center" prop="tierRank" />-->
+<!--      <el-table-column label="省id" align="center" prop="provinceId" />-->
+<!--      <el-table-column label="市id" align="center" prop="cityId" />-->
+<!--      <el-table-column label="研究生院(1:不是,2:是)" align="center" prop="yjsy" />-->
+<!--      <el-table-column label="独立学院(1:不是,2:是)" align="center" prop="dlxy" />-->
+<!--      <el-table-column label="民办高校(1:不是,2:是)" align="center" prop="mbgx" />-->
+      <el-table-column label="电话" align="center" prop="tel">
+        <template #default="{ row }">
+          <span :title="row.tel" class="table-cell-ellipsis">{{ row.tel }}</span>
+        </template>
+      </el-table-column>
+<!--      <el-table-column label="网址" align="center" prop="url">-->
+<!--        <template #default="{ row }">-->
+<!--          <span :title="row.url" class="table-cell-ellipsis">{{ row.url }}</span>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
+<!--      <el-table-column label="面积" align="center" prop="area" />-->
+<!--      <el-table-column label="创建时间" align="center" prop="createTime" width="180">-->
+<!--        <template #default="scope">-->
+<!--          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
+<!--      <el-table-column label="状态(0:无效,1:有效)" align="center" prop="status">-->
+<!--        <template #default="scope">-->
+<!--          <dict-tag :options="bool_values" :value="scope.row.status"/>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
+<!--      <el-table-column label="BSH数量" align="center" prop="numberOfBSH" />-->
+<!--      <el-table-column label="学生数" align="center" prop="numberOfStu" />-->
+      <el-table-column label="评分" align="center" prop="comScore" />
+<!--      <el-table-column label="教育部排名" align="center" prop="rankingOfEdu" />-->
+<!--      <el-table-column label="排名" align="center" prop="ranking" />-->
+      <el-table-column label="建立年份" align="center" prop="createdYear" />
+<!--      <el-table-column label="硕士招办网站" align="center" prop="shuoShiZBWZ" />-->
+<!--      <el-table-column label="vrUrl" align="center" prop="vrUrl" />-->
+<!--      <el-table-column label="校训" align="center" prop="motto" />-->
+      <el-table-column label="招办网站" align="center" prop="zhaoBanWZ">
+        <template #default="{ row }">
+          <span :title="row.zhaoBanWZ" class="table-cell-ellipsis">{{ row.zhaoBanWZ }}</span>
+        </template>
+      </el-table-column>
+<!--      <el-table-column label="简称" align="center" prop="shortName" />-->
+<!--      <el-table-column label="英文名称" align="center" prop="enName" />-->
+      <el-table-column label="简介" align="center" prop="introduction">
+        <template #default="{ row }">
+          <span :title="row.introduction" class="table-cell-ellipsis">{{ row.introduction }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="竞争力星级" align="center" prop="star">
+        <template #default="scope">
+          <dict-tag :options="university_stars" :value="scope.row.star" />
+        </template>
+      </el-table-column>
+<!--      <el-table-column label="vr的短url" align="center" prop="vrShortUrl" />-->
+<!--      <el-table-column label="庆祝日" align="center" prop="celebrateDay" />-->
+      <el-table-column label="natureType" align="center" prop="natureType" />
+      <el-table-column label="公私立" align="center" prop="natureTypeCN" />
+
+      <!--      <el-table-column label="专业录取规则" align="center" prop="majorRule">-->
+<!--        <template #default="{ row }">-->
+<!--          <span :title="row.majorRule" class="table-cell-ellipsis">{{ row.majorRule }}</span>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
+<!--      <el-table-column label="博士点" align="center" prop="pointsOfBo" />-->
+<!--      <el-table-column label="硕士点" align="center" prop="pointsOfShuo" />-->
+      <el-table-column label="bxLevel" align="center" prop="bxLevel" />
+      <!-- <el-table-column label="features" align="center" prop="features" /> -->
+      <!-- <el-table-column label="bxType" align="center" prop="bxType" /> -->
+      <el-table-column label="考生类型" align="center" prop="entranceType" />
+<!--      <el-table-column label="硕士招办电话" align="center" prop="shuoShiZBDH" />-->
+      <el-table-column label="招办电话" align="center" prop="zhaoBanDH">
+        <template #default="{ row }">
+          <span :title="row.zhaoBanDH" class="table-cell-ellipsis">{{ row.zhaoBanDH }}</span>
+        </template>
+      </el-table-column>
+<!--      <el-table-column label="曾用名" align="center" prop="nameUsed" />-->
+      <el-table-column label="地址" align="center" prop="address">
+        <template #default="{ row }">
+          <span :title="row.address" class="table-cell-ellipsis">{{ row.address }}</span>
+        </template>
+      </el-table-column>
+<!--      <el-table-column label="奖项" align="center" prop="awards" />-->
+<!--      <el-table-column label="点击量" align="center" prop="hits" />-->
+      <!-- <el-table-column label="学历层次" align="center" prop="eduLevel" /> -->
+      <el-table-column label="banner" align="center" prop="bannerUrl">
+        <template #default="{ row }">
+          <image-preview v-if="row.bannerUrl" :src="row.bannerUrl" :width="50" :height="50" />
+          <span v-else>暂无图片</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="网站" align="center" prop="webSite" />
+<!--      <el-table-column label="名称" align="center" prop="name2" />-->
+      <el-table-column label="招生省份" align="center" prop="enrollLocation" />
+<!--      <el-table-column label="收藏数" align="center" prop="collect" />-->
+<!--      <el-table-column label="虚拟收藏数" align="center" prop="favorities" />-->
+<!--      <el-table-column label="createTime0" align="center" prop="createTime0" width="180">-->
+<!--        <template #default="scope">-->
+<!--          <span>{{ parseTime(scope.row.createTime0, '{y}-{m}-{d}') }}</span>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template #default="scope">
+          <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:bBusiWishUniversities:edit']">修改</el-button>
+          <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:bBusiWishUniversities:remove']">删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      v-model:page="queryParams.pageNum"
+      v-model:limit="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改院校库对话框 -->
+    <el-dialog :title="title" v-model="open" width="500px" append-to-body>
+      <el-form ref="bBusiWishUniversitiesRef" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="代码" prop="code">
+          <el-input v-model="form.code" placeholder="请输入代码" />
+        </el-form-item>
+        <el-form-item label="国标编码" prop="gbCode">
+          <el-input v-model="form.gbCode" placeholder="请输入国标编码" />
+        </el-form-item>
+        <el-form-item label="名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入名称" />
+        </el-form-item>
+        <el-form-item label="logo" prop="logo">
+          <image-upload v-model="form.logo" :limit="1" />
+        </el-form-item>
+        <el-form-item label="所在地" prop="location">
+          <el-input v-model="form.location" placeholder="请输入所在地" />
+        </el-form-item>
+        <el-form-item label="学历层次" prop="level">
+          <el-input v-model="form.level" placeholder="请输入学历层次" />
+        </el-form-item>
+        <el-form-item label="梯队" prop="tier">
+          <el-select v-model="form.tier" placeholder="请选择梯队" clearable style="width: 100%">
+            <el-option
+              v-for="dict in tier_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="排序" prop="tierRank">
+          <el-input v-model="form.tierRank" placeholder="请输入排序" />
+        </el-form-item>
+        <el-form-item label="省id" prop="provinceId">
+          <el-input v-model="form.provinceId" placeholder="请输入省id" />
+        </el-form-item>
+        <el-form-item label="市id" prop="cityId">
+          <el-input v-model="form.cityId" placeholder="请输入市id" />
+        </el-form-item>
+        <el-form-item label="研究生院(1:不是,2:是)" prop="yjsy">
+          <el-input v-model="form.yjsy" placeholder="请输入研究生院(1:不是,2:是)" />
+        </el-form-item>
+        <el-form-item label="独立学院(1:不是,2:是)" prop="dlxy">
+          <el-input v-model="form.dlxy" placeholder="请输入独立学院(1:不是,2:是)" />
+        </el-form-item>
+        <el-form-item label="民办高校(1:不是,2:是)" prop="mbgx">
+          <el-input v-model="form.mbgx" placeholder="请输入民办高校(1:不是,2:是)" />
+        </el-form-item>
+        <el-form-item label="电话" prop="tel">
+          <el-input v-model="form.tel" placeholder="请输入电话" />
+        </el-form-item>
+        <el-form-item label="网址" prop="url">
+          <el-input v-model="form.url" placeholder="请输入网址" />
+        </el-form-item>
+        <el-form-item label="面积" prop="area">
+          <el-input v-model="form.area" placeholder="请输入面积" />
+        </el-form-item>
+        <el-form-item label="状态(0:无效,1:有效)" prop="status">
+          <el-select v-model="form.status" placeholder="请选择状态(0:无效,1:有效)">
+            <el-option
+              v-for="dict in bool_values"
+              :key="dict.value"
+              :label="dict.label"
+              :value="parseInt(dict.value)"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="BSH数量" prop="numberOfBSH">
+          <el-input v-model="form.numberOfBSH" placeholder="请输入BSH数量" />
+        </el-form-item>
+        <el-form-item label="学生数" prop="numberOfStu">
+          <el-input v-model="form.numberOfStu" placeholder="请输入学生数" />
+        </el-form-item>
+        <el-form-item label="评分" prop="comScore">
+          <el-input v-model="form.comScore" placeholder="请输入评分" />
+        </el-form-item>
+<!--        <el-form-item label="教育部排名" prop="rankingOfEdu">-->
+<!--          <el-input v-model="form.rankingOfEdu" placeholder="请输入教育部排名" />-->
+<!--        </el-form-item>-->
+<!--        <el-form-item label="排名" prop="ranking">-->
+<!--          <el-input v-model="form.ranking" placeholder="请输入排名" />-->
+<!--        </el-form-item>-->
+        <el-form-item label="建立年份" prop="createdYear">
+          <el-input v-model="form.createdYear" placeholder="请输入建立年份" />
+        </el-form-item>
+        <el-form-item label="硕士招办网站" prop="shuoShiZBWZ">
+          <el-input v-model="form.shuoShiZBWZ" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="vrUrl" prop="vrUrl">
+          <el-input v-model="form.vrUrl" placeholder="请输入vrUrl" />
+        </el-form-item>
+        <el-form-item label="校训" prop="motto">
+          <el-input v-model="form.motto" placeholder="请输入校训" />
+        </el-form-item>
+        <el-form-item label="招办网站" prop="zhaoBanWZ">
+          <el-input v-model="form.zhaoBanWZ" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="简称" prop="shortName">
+          <el-input v-model="form.shortName" placeholder="请输入简称" />
+        </el-form-item>
+        <el-form-item label="所在市" prop="cityName">
+          <el-input v-model="form.cityName" placeholder="请输入所在市" />
+        </el-form-item>
+        <el-form-item label="英文名称" prop="enName">
+          <el-input v-model="form.enName" placeholder="请输入英文名称" />
+        </el-form-item>
+        <el-form-item label="简介" prop="introduction">
+          <el-input v-model="form.introduction" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="竞争力星级" prop="star">
+          <el-select v-model="form.star" placeholder="请选择竞争力星级" clearable style="width: 100%">
+            <el-option
+              v-for="dict in university_stars"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="vr的短url" prop="vrShortUrl">
+          <el-input v-model="form.vrShortUrl" placeholder="请输入vr的短url" />
+        </el-form-item>
+        <el-form-item label="庆祝日" prop="celebrateDay">
+          <el-input v-model="form.celebrateDay" placeholder="请输入庆祝日" />
+        </el-form-item>
+        <el-form-item label="专业录取规则" prop="majorRule">
+          <el-input v-model="form.majorRule" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="bxLevel" prop="bxLevel">
+          <el-input v-model="form.bxLevel" placeholder="请输入bxLevel" />
+        </el-form-item>
+        <el-form-item label="bxLevel" prop="features">
+          <el-input v-model="form.features" placeholder="请输入bxLevel" />
+        </el-form-item>
+        <el-form-item label="硕士招办电话" prop="shuoShiZBDH">
+          <el-input v-model="form.shuoShiZBDH" placeholder="请输入硕士招办电话" />
+        </el-form-item>
+        <el-form-item label="招办电话" prop="zhaoBanDH">
+          <el-input v-model="form.zhaoBanDH" placeholder="请输入招办电话" />
+        </el-form-item>
+        <el-form-item label="地址" prop="address">
+          <el-input v-model="form.address" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="点击量" prop="hits">
+          <el-input v-model="form.hits" placeholder="请输入点击量" />
+        </el-form-item>
+        <el-form-item label="院校举办:'private'私立, 'aw_ga'中外/港澳, 'public'公立" prop="natureTypeCN">
+          <el-input v-model="form.natureTypeCN" placeholder="请输入院校举办:'private'私立, 'aw_ga'中外/港澳, 'public'公立" />
+        </el-form-item>
+        <el-form-item label="学历层次" prop="eduLevel">
+          <el-input v-model="form.eduLevel" placeholder="请输入学历层次" />
+        </el-form-item>
+        <el-form-item label="bannerUrl" prop="bannerUrl">
+          <image-upload v-model="form.bannerUrl" :limit="1" />
+        </el-form-item>
+        <el-form-item label="网站" prop="webSite">
+          <el-input v-model="form.webSite" placeholder="请输入网站" />
+        </el-form-item>
+        <el-form-item label="名称" prop="name2">
+          <el-input v-model="form.name2" placeholder="请输入名称" />
+        </el-form-item>
+        <el-form-item label="名称" prop="enrollLocation">
+          <el-input v-model="form.enrollLocation" placeholder="请输入名称" />
+        </el-form-item>
+        <el-form-item label="收藏数" prop="collect">
+          <el-input v-model="form.collect" placeholder="请输入收藏数" />
+        </el-form-item>
+        <el-form-item label="虚拟收藏数" prop="favorities">
+          <el-input v-model="form.favorities" placeholder="请输入虚拟收藏数" />
+        </el-form-item>
+        <el-form-item label="createTime0" prop="createTime0">
+          <el-date-picker clearable
+            v-model="form.createTime0"
+            type="date"
+            value-format="YYYY-MM-DD"
+            placeholder="请选择createTime0">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="submitForm">确 定</el-button>
+          <el-button @click="cancel">取 消</el-button>
+        </div>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script setup name="BBusiWishUniversities">
+import { listBBusiWishUniversities, getBBusiWishUniversities, delBBusiWishUniversities, addBBusiWishUniversities, updateBBusiWishUniversities } from "@/api/system/bBusiWishUniversities"
+
+const { proxy } = getCurrentInstance()
+const { bool_values, tier_type, university_stars } = proxy.useDict('bool_values', 'tier_type', 'university_stars')
+
+const bBusiWishUniversitiesList = ref([])
+const open = ref(false)
+const loading = ref(true)
+const showSearch = ref(true)
+const ids = ref([])
+const single = ref(true)
+const multiple = ref(true)
+const total = ref(0)
+const title = ref("")
+
+const data = reactive({
+  form: {},
+  queryParams: {
+    pageNum: 1,
+    pageSize: 10,
+    code: null,
+    gbCode: null,
+    name: null,
+    logo: null,
+    location: null,
+    managerType: null,
+    type: null,
+    level: null,
+    tier: null,
+    tierRank: null,
+    provinceId: null,
+    cityId: null,
+    yjsy: null,
+    dlxy: null,
+    mbgx: null,
+    tel: null,
+    url: null,
+    area: null,
+    createTime: null,
+    status: null,
+    numberOfBSH: null,
+    numberOfStu: null,
+    comScore: null,
+    rankingOfEdu: null,
+    ranking: null,
+    createdYear: null,
+    shuoShiZBWZ: null,
+    vrUrl: null,
+    motto: null,
+    zhaoBanWZ: null,
+    shortName: null,
+    cityName: null,
+    enName: null,
+    introduction: null,
+    star: null,
+    vrShortUrl: null,
+    celebrateDay: null,
+    natureType: null,
+    majorRule: null,
+    pointsOfBo: null,
+    pointsOfShuo: null,
+    bxLevel: null,
+    features: null,
+    bxType: null,
+    entranceType: null,
+    shuoShiZBDH: null,
+    zhaoBanDH: null,
+    nameUsed: null,
+    address: null,
+    awards: null,
+    hits: null,
+    natureTypeCN: null,
+    eduLevel: null,
+    bannerUrl: null,
+    webSite: null,
+    name2: null,
+    enrollLocation: null,
+    collect: null,
+    favorities: null,
+    createTime0: null
+  },
+  rules: {
+    name: [
+      { required: true, message: "名称不能为空", trigger: "blur" }
+    ],
+    status: [
+      { required: true, message: "状态(0:无效,1:有效)不能为空", trigger: "change" }
+    ],
+  }
+})
+
+const { queryParams, form, rules } = toRefs(data)
+
+/** 查询院校库列表 */
+function getList() {
+  loading.value = true
+  listBBusiWishUniversities(queryParams.value).then(response => {
+    bBusiWishUniversitiesList.value = response.rows
+    total.value = response.total
+    loading.value = false
+  })
+}
+
+// 取消按钮
+function cancel() {
+  open.value = false
+  reset()
+}
+
+// 表单重置
+function reset() {
+  form.value = {
+    id: null,
+    code: null,
+    gbCode: null,
+    name: null,
+    logo: null,
+    location: null,
+    managerType: null,
+    type: null,
+    level: null,
+    tier: null,
+    tierRank: null,
+    provinceId: null,
+    cityId: null,
+    yjsy: null,
+    dlxy: null,
+    mbgx: null,
+    tel: null,
+    url: null,
+    area: null,
+    createTime: null,
+    status: null,
+    numberOfBSH: null,
+    numberOfStu: null,
+    comScore: null,
+    rankingOfEdu: null,
+    ranking: null,
+    createdYear: null,
+    shuoShiZBWZ: null,
+    vrUrl: null,
+    motto: null,
+    zhaoBanWZ: null,
+    shortName: null,
+    cityName: null,
+    enName: null,
+    introduction: null,
+    star: null,
+    vrShortUrl: null,
+    celebrateDay: null,
+    natureType: null,
+    majorRule: null,
+    pointsOfBo: null,
+    pointsOfShuo: null,
+    bxLevel: null,
+    features: null,
+    bxType: null,
+    entranceType: null,
+    shuoShiZBDH: null,
+    zhaoBanDH: null,
+    nameUsed: null,
+    address: null,
+    awards: null,
+    hits: null,
+    natureTypeCN: null,
+    eduLevel: null,
+    bannerUrl: null,
+    webSite: null,
+    name2: null,
+    enrollLocation: null,
+    collect: null,
+    favorities: null,
+    createTime0: null
+  }
+  proxy.resetForm("bBusiWishUniversitiesRef")
+}
+
+/** 搜索按钮操作 */
+function handleQuery() {
+  queryParams.value.pageNum = 1
+  getList()
+}
+
+/** 重置按钮操作 */
+function resetQuery() {
+  proxy.resetForm("queryRef")
+  handleQuery()
+}
+
+// 多选框选中数据
+function handleSelectionChange(selection) {
+  ids.value = selection.map(item => item.id)
+  single.value = selection.length != 1
+  multiple.value = !selection.length
+}
+
+/** 新增按钮操作 */
+function handleAdd() {
+  reset()
+  open.value = true
+  title.value = "添加院校库"
+}
+
+/** 修改按钮操作 */
+function handleUpdate(row) {
+  reset()
+  const _id = row.id || ids.value
+  getBBusiWishUniversities(_id).then(response => {
+    form.value = response.data
+    open.value = true
+    title.value = "修改院校库"
+  })
+}
+
+/** 提交按钮 */
+function submitForm() {
+  proxy.$refs["bBusiWishUniversitiesRef"].validate(valid => {
+    if (valid) {
+      if (form.value.id != null) {
+        updateBBusiWishUniversities(form.value).then(response => {
+          proxy.$modal.msgSuccess("修改成功")
+          open.value = false
+          getList()
+        })
+      } else {
+        addBBusiWishUniversities(form.value).then(response => {
+          proxy.$modal.msgSuccess("新增成功")
+          open.value = false
+          getList()
+        })
+      }
+    }
+  })
+}
+
+/** 删除按钮操作 */
+function handleDelete(row) {
+  const _ids = row.id || ids.value
+  proxy.$modal.confirm('是否确认删除院校库编号为"' + _ids + '"的数据项?').then(function() {
+    return delBBusiWishUniversities(_ids)
+  }).then(() => {
+    getList()
+    proxy.$modal.msgSuccess("删除成功")
+  }).catch(() => {})
+}
+
+/** 导出按钮操作 */
+function handleExport() {
+  proxy.download('system/bBusiWishUniversities/export', {
+    ...queryParams.value
+  }, `bBusiWishUniversities_${new Date().getTime()}.xlsx`)
+}
+
+getList()
+</script>
+<style>
+.table-cell-ellipsis {
+  display: inline-block;
+  max-width: 100%;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+  vertical-align: middle;
+}
+</style>

+ 360 - 172
back-ui/src/views/system/bBusiWishUniversitiesEnrollBrochure/index.vue

@@ -25,56 +25,56 @@
           @keyup.enter="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="编辑" prop="editor">
-        <el-input
-          v-model="queryParams.editor"
-          placeholder="请输入编辑"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="summary" prop="summary">
-        <el-input
-          v-model="queryParams.summary"
-          placeholder="请输入summary"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="标题" prop="title">
-        <el-input
-          v-model="queryParams.title"
-          placeholder="请输入标题"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="isArt" prop="isArt">
-        <el-input
-          v-model="queryParams.isArt"
-          placeholder="请输入isArt"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="元数据描述" prop="metaDescription">
-        <el-input
-          v-model="queryParams.metaDescription"
-          placeholder="请输入元数据描述"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="tags" prop="tags">
-        <el-input
-          v-model="queryParams.tags"
-          placeholder="请输入tags"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
+<!--      <el-form-item label="编辑" prop="editor">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.editor"-->
+<!--          placeholder="请输入编辑"-->
+<!--          clearable-->
+<!--          @keyup.enter="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="summary" prop="summary">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.summary"-->
+<!--          placeholder="请输入summary"-->
+<!--          clearable-->
+<!--          @keyup.enter="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="标题" prop="title">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.title"-->
+<!--          placeholder="请输入标题"-->
+<!--          clearable-->
+<!--          @keyup.enter="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="isArt" prop="isArt">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.isArt"-->
+<!--          placeholder="请输入isArt"-->
+<!--          clearable-->
+<!--          @keyup.enter="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="元数据描述" prop="metaDescription">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.metaDescription"-->
+<!--          placeholder="请输入元数据描述"-->
+<!--          clearable-->
+<!--          @keyup.enter="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="tags" prop="tags">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.tags"-->
+<!--          placeholder="请输入tags"-->
+<!--          clearable-->
+<!--          @keyup.enter="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
       <el-form-item label="是否显示" prop="isShow">
-        <el-select v-model="queryParams.isShow" placeholder="请选择是否显示" clearable>
+        <el-select v-model="queryParams.isShow" placeholder="请选择是否显示" clearable style="width: 160px">
           <el-option
             v-for="dict in bool_values"
             :key="dict.value"
@@ -83,61 +83,39 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="点击量" prop="hits">
-        <el-input
-          v-model="queryParams.hits"
-          placeholder="请输入点击量"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="元数据关键词" prop="metaKeywords">
-        <el-input
-          v-model="queryParams.metaKeywords"
-          placeholder="请输入元数据关键词"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="排名" prop="rank">
-        <el-input
-          v-model="queryParams.rank"
-          placeholder="请输入排名"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="类型名称" prop="typeName">
-        <el-input
-          v-model="queryParams.typeName"
-          placeholder="请输入类型名称"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="创建日期" prop="createTime">
-        <el-date-picker clearable
-          v-model="queryParams.createTime"
-          type="date"
-          value-format="YYYY-MM-DD"
-          placeholder="请选择创建日期">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="创建日期" prop="updateTime">
-        <el-date-picker clearable
-          v-model="queryParams.updateTime"
-          type="date"
-          value-format="YYYY-MM-DD"
-          placeholder="请选择创建日期">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="数据库创建日期" prop="createTime2">
-        <el-date-picker clearable
-          v-model="queryParams.createTime2"
-          type="date"
-          value-format="YYYY-MM-DD"
-          placeholder="请选择数据库创建日期">
-        </el-date-picker>
+<!--      <el-form-item label="点击量" prop="hits">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.hits"-->
+<!--          placeholder="请输入点击量"-->
+<!--          clearable-->
+<!--          @keyup.enter="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="元数据关键词" prop="metaKeywords">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.metaKeywords"-->
+<!--          placeholder="请输入元数据关键词"-->
+<!--          clearable-->
+<!--          @keyup.enter="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="排名" prop="rank">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.rank"-->
+<!--          placeholder="请输入排名"-->
+<!--          clearable-->
+<!--          @keyup.enter="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+      <el-form-item label="类型" prop="type">
+        <el-select v-model="queryParams.type" placeholder="请选择类型" clearable style="width: 170px;">
+          <el-option
+            v-for="typeItem in brochureTypeList"
+            :key="typeItem.type"
+            :label="typeItem.typeName"
+            :value="typeItem.type"
+          />
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
@@ -193,39 +171,52 @@
       <el-table-column label="年份" align="center" prop="year" />
       <el-table-column label="学校编码" align="center" prop="collegeCode" />
       <el-table-column label="学校名称" align="center" prop="collegeName" />
-      <el-table-column label="编辑" align="center" prop="editor" />
-      <el-table-column label="summary" align="center" prop="summary" />
+<!--      <el-table-column label="编辑" align="center" prop="editor" />-->
+<!--      <el-table-column label="summary" align="center" prop="summary" />-->
       <el-table-column label="标题" align="center" prop="title" />
-      <el-table-column label="isArt" align="center" prop="isArt" />
-      <el-table-column label="类型" align="center" prop="type" />
-      <el-table-column label="元数据描述" align="center" prop="metaDescription" />
-      <el-table-column label="简章内容" align="center" prop="content" />
-      <el-table-column label="tags" align="center" prop="tags" />
-      <el-table-column label="是否显示" align="center" prop="isShow">
-        <template #default="scope">
-          <dict-tag :options="bool_values" :value="scope.row.isShow"/>
+<!--      <el-table-column label="isArt" align="center" prop="isArt" />-->
+      <el-table-column label="类型名称" align="center" prop="typeName" />
+      <!--      <el-table-column label="元数据描述" align="center" prop="metaDescription" />-->
+      <el-table-column label="内容" align="center">
+        <template #default="{ row }">
+          <el-link v-if="!row.url" type="primary" @click="showContentDetail(row.id)" :underline="false" style="cursor: pointer;">详情</el-link>
+          <span v-else>{{ row.content }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="点击量" align="center" prop="hits" />
-      <el-table-column label="链接" align="center" prop="url" />
-      <el-table-column label="元数据关键词" align="center" prop="metaKeywords" />
-      <el-table-column label="排名" align="center" prop="rank" />
-      <el-table-column label="类型名称" align="center" prop="typeName" />
-      <el-table-column label="创建日期" align="center" prop="createTime" width="180">
+<!--      <el-table-column label="tags" align="center" prop="tags" />-->
+      <el-table-column label="是否显示" align="center" prop="isShow">
         <template #default="scope">
-          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
+          <dict-tag :options="bool_values" :value="scope.row.isShow"/>
         </template>
       </el-table-column>
-      <el-table-column label="创建日期" align="center" prop="updateTime" width="180">
+<!--      <el-table-column label="点击量" align="center" prop="hits" />-->
+      <el-table-column label="链接" align="center" prop="url" show-overflow-tooltip>
         <template #default="scope">
-          <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
+          <div v-if="scope.row.url" style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
+            <el-link type="primary" @click="handlePreview(scope.row.url)" :underline="false" style="cursor: pointer;">
+              {{ scope.row.url }}
+            </el-link>
+          </div>
+          <span v-else>-</span>
         </template>
       </el-table-column>
-      <el-table-column label="数据库创建日期" align="center" prop="createTime2" width="180">
+<!--      <el-table-column label="元数据关键词" align="center" prop="metaKeywords" />-->
+<!--      <el-table-column label="排名" align="center" prop="rank" />-->
+      <el-table-column label="创建日期" align="center" prop="createTime" width="180">
         <template #default="scope">
-          <span>{{ parseTime(scope.row.createTime2, '{y}-{m}-{d}') }}</span>
+          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
         </template>
       </el-table-column>
+<!--      <el-table-column label="创建日期" align="center" prop="updateTime" width="180">-->
+<!--        <template #default="scope">-->
+<!--          <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
+<!--      <el-table-column label="数据库创建日期" align="center" prop="createTime2" width="180">-->
+<!--        <template #default="scope">-->
+<!--          <span>{{ parseTime(scope.row.createTime2, '{y}-{m}-{d}') }}</span>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template #default="scope">
           <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:bBusiWishUniversitiesEnrollBrochure:edit']">修改</el-button>
@@ -233,7 +224,7 @@
         </template>
       </el-table-column>
     </el-table>
-    
+
     <pagination
       v-show="total>0"
       :total="total"
@@ -243,71 +234,111 @@
     />
 
     <!-- 添加或修改院校简章大纲对话框 -->
-    <el-dialog :title="title" v-model="open" width="500px" append-to-body>
+    <el-dialog :title="title" v-model="open" width="800px" append-to-body>
       <el-form ref="bBusiWishUniversitiesEnrollBrochureRef" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="年份" prop="year">
           <el-input v-model="form.year" placeholder="请输入年份" />
         </el-form-item>
-        <el-form-item label="学校编码" prop="collegeCode">
-          <el-input v-model="form.collegeCode" placeholder="请输入学校编码" />
-        </el-form-item>
-        <el-form-item label="学校名称" prop="collegeName">
-          <el-input v-model="form.collegeName" placeholder="请输入学校名称" />
+        <el-form-item label="学校" prop="collegeCode">
+          <el-select
+            v-model="form.collegeCode"
+            placeholder="请选择学校"
+            filterable
+            clearable
+            @change="handleCollegeChange"
+            style="width: 100%"
+          >
+            <el-option
+              v-for="college in collegeList"
+              :key="college.code"
+              :label="college.name"
+              :value="college.code"
+            >
+              <span style="float: left">{{ college.name }}</span>
+              <span style="float: right; color: #8492a6; font-size: 13px">{{ college.code }}</span>
+            </el-option>
+          </el-select>
         </el-form-item>
-        <el-form-item label="编辑" prop="editor">
-          <el-input v-model="form.editor" placeholder="请输入编辑" />
+        <el-form-item label="学校编码" prop="collegeCode" v-if="false">
+          <el-input v-model="form.collegeCode" placeholder="请输入学校编码" disabled/>
         </el-form-item>
-        <el-form-item label="summary" prop="summary">
-          <el-input v-model="form.summary" placeholder="请输入summary" />
+        <el-form-item label="学校名称" prop="collegeName" v-if="false">
+          <el-input v-model="form.collegeName" placeholder="请输入学校名称" />
         </el-form-item>
+<!--        <el-form-item label="编辑" prop="editor">-->
+<!--          <el-input v-model="form.editor" placeholder="请输入编辑" />-->
+<!--        </el-form-item>-->
+<!--        <el-form-item label="summary" prop="summary">-->
+<!--          <el-input v-model="form.summary" placeholder="请输入summary" />-->
+<!--        </el-form-item>-->
         <el-form-item label="标题" prop="title">
           <el-input v-model="form.title" placeholder="请输入标题" />
         </el-form-item>
-        <el-form-item label="isArt" prop="isArt">
-          <el-input v-model="form.isArt" placeholder="请输入isArt" />
-        </el-form-item>
-        <el-form-item label="元数据描述" prop="metaDescription">
-          <el-input v-model="form.metaDescription" placeholder="请输入元数据描述" />
-        </el-form-item>
-        <el-form-item label="简章内容">
-          <editor v-model="form.content" :min-height="192"/>
-        </el-form-item>
-        <el-form-item label="tags" prop="tags">
-          <el-input v-model="form.tags" placeholder="请输入tags" />
+        <el-form-item label="类型" prop="typeName">
+          <el-select
+                  v-model="form.typeName"
+                  placeholder="请选择类型"
+                  filterable
+                  clearable
+                  @change="handleTypeNameChange"
+                  style="width: 100%"
+          >
+            <el-option
+                    v-for="typeItem in brochureTypeList"
+                    :key="typeItem.type"
+                    :label="typeItem.typeName"
+                    :value="typeItem.typeName"
+            >
+              <span style="float: left">{{ typeItem.typeName }}</span>
+              <span style="float: right; color: #8492a6; font-size: 13px">{{ typeItem.type }}</span>
+            </el-option>
+          </el-select>
         </el-form-item>
         <el-form-item label="是否显示" prop="isShow">
           <el-select v-model="form.isShow" placeholder="请选择是否显示">
             <el-option
-              v-for="dict in bool_values"
-              :key="dict.value"
-              :label="dict.label"
-              :value="parseInt(dict.value)"
+                    v-for="dict in bool_values"
+                    :key="dict.value"
+                    :label="dict.label"
+                    :value="parseInt(dict.value)"
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="点击量" prop="hits">
-          <el-input v-model="form.hits" placeholder="请输入点击量" />
+<!--        <el-form-item label="isArt" prop="isArt">-->
+<!--          <el-input v-model="form.isArt" placeholder="请输入isArt" />-->
+<!--        </el-form-item>-->
+<!--        <el-form-item label="元数据描述" prop="metaDescription">-->
+<!--          <el-input v-model="form.metaDescription" placeholder="请输入元数据描述" />-->
+<!--        </el-form-item>-->
+        <el-form-item label="内容">
+          <editor v-model="form.content" :min-height="192"/>
         </el-form-item>
+<!--        <el-form-item label="tags" prop="tags">-->
+<!--          <el-input v-model="form.tags" placeholder="请输入tags" />-->
+<!--        </el-form-item>-->
+
+<!--        <el-form-item label="点击量" prop="hits">-->
+<!--          <el-input v-model="form.hits" placeholder="请输入点击量" />-->
+<!--        </el-form-item>-->
         <el-form-item label="链接" prop="url">
-          <el-input v-model="form.url" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="元数据关键词" prop="metaKeywords">
-          <el-input v-model="form.metaKeywords" placeholder="请输入元数据关键词" />
-        </el-form-item>
-        <el-form-item label="排名" prop="rank">
-          <el-input v-model="form.rank" placeholder="请输入排名" />
-        </el-form-item>
-        <el-form-item label="类型名称" prop="typeName">
-          <el-input v-model="form.typeName" placeholder="请输入类型名称" />
-        </el-form-item>
-        <el-form-item label="数据库创建日期" prop="createTime2">
-          <el-date-picker clearable
-            v-model="form.createTime2"
-            type="date"
-            value-format="YYYY-MM-DD"
-            placeholder="请选择数据库创建日期">
-          </el-date-picker>
+          <el-input v-model="form.url" type="textarea" :autosize="{ minRows: 2, maxRows: 6 }" placeholder="请输入内容" />
         </el-form-item>
+<!--&lt;!&ndash;        <el-form-item label="元数据关键词" prop="metaKeywords">&ndash;&gt;-->
+<!--&lt;!&ndash;          <el-input v-model="form.metaKeywords" placeholder="请输入元数据关键词" />&ndash;&gt;-->
+<!--&lt;!&ndash;        </el-form-item>&ndash;&gt;-->
+<!--        <el-form-item label="排名" prop="rank">-->
+<!--          <el-input v-model="form.rank" placeholder="请输入排名" />-->
+<!--        </el-form-item>-->
+
+
+<!--        <el-form-item label="数据库创建日期" prop="createTime2">-->
+<!--          <el-date-picker clearable-->
+<!--            v-model="form.createTime2"-->
+<!--            type="date"-->
+<!--            value-format="YYYY-MM-DD"-->
+<!--            placeholder="请选择数据库创建日期">-->
+<!--          </el-date-picker>-->
+<!--        </el-form-item>-->
       </el-form>
       <template #footer>
         <div class="dialog-footer">
@@ -320,7 +351,10 @@
 </template>
 
 <script setup name="BBusiWishUniversitiesEnrollBrochure">
-import { listBBusiWishUniversitiesEnrollBrochure, getBBusiWishUniversitiesEnrollBrochure, delBBusiWishUniversitiesEnrollBrochure, addBBusiWishUniversitiesEnrollBrochure, updateBBusiWishUniversitiesEnrollBrochure } from "@/api/system/bBusiWishUniversitiesEnrollBrochure"
+import { listBBusiWishUniversitiesEnrollBrochure, getBBusiWishUniversitiesEnrollBrochure, delBBusiWishUniversitiesEnrollBrochure, addBBusiWishUniversitiesEnrollBrochure, updateBBusiWishUniversitiesEnrollBrochure, getBrochureTypes } from "@/api/system/bBusiWishUniversitiesEnrollBrochure"
+import { listAllBBusiWishUniversities } from "@/api/system/bBusiWishUniversities"
+import { ElMessageBox } from "element-plus/es"
+
 
 const { proxy } = getCurrentInstance()
 const { bool_values } = proxy.useDict('bool_values')
@@ -334,6 +368,8 @@ const single = ref(true)
 const multiple = ref(true)
 const total = ref(0)
 const title = ref("")
+const collegeList = ref([])
+const brochureTypeList = ref([])
 
 const data = reactive({
   form: {},
@@ -380,6 +416,9 @@ const data = reactive({
     type: [
       { required: true, message: "类型不能为空", trigger: "change" }
     ],
+    typeName: [
+      { required: true, message: "类型名称不能为空", trigger: "change" }
+    ],
     isShow: [
       { required: true, message: "是否显示不能为空", trigger: "change" }
     ],
@@ -398,6 +437,83 @@ function getList() {
   })
 }
 
+/** 加载学校列表 */
+function loadCollegeList() {
+  listAllBBusiWishUniversities({}).then(response => {
+    // 假设接口返回的数据格式为 { code, name } 或 { collegeCode, collegeName }
+    // 根据实际接口返回格式调整
+    if (response.data && Array.isArray(response.data)) {
+      collegeList.value = response.data.map(item => ({
+        code: item.code || item.collegeCode,
+        name: item.name || item.collegeName
+      }))
+    } else if (response.rows && Array.isArray(response.rows)) {
+      collegeList.value = response.rows.map(item => ({
+        code: item.code || item.collegeCode,
+        name: item.name || item.collegeName
+      }))
+    }
+  }).catch(error => {
+    console.error('加载学校列表失败:', error)
+  })
+}
+
+/** 学校选择变化 */
+function handleCollegeChange(collegeCode) {
+  if (collegeCode) {
+    const selectedCollege = collegeList.value.find(item => item.code === collegeCode)
+    if (selectedCollege) {
+      form.value.collegeCode = selectedCollege.code
+      form.value.collegeName = selectedCollege.name
+    }
+  } else {
+    form.value.collegeCode = null
+    form.value.collegeName = null
+  }
+}
+
+/** 加载简章类型列表 */
+function loadBrochureTypeList() {
+  getBrochureTypes().then(response => {
+    // 处理接口返回的数据
+    if (response.data && Array.isArray(response.data)) {
+      brochureTypeList.value = response.data
+    } else if (Array.isArray(response)) {
+      brochureTypeList.value = response
+    }
+  }).catch(error => {
+    console.error('加载简章类型列表失败:', error)
+  })
+}
+
+/** 类型选择变化 */
+function handleTypeChange(type) {
+  if (type) {
+    const selectedType = brochureTypeList.value.find(item => item.type === type)
+    if (selectedType) {
+      form.value.type = selectedType.type
+      form.value.typeName = selectedType.typeName
+    }
+  } else {
+    form.value.type = null
+    form.value.typeName = null
+  }
+}
+
+/** 类型名称选择变化 */
+function handleTypeNameChange(typeName) {
+  if (typeName) {
+    const selectedType = brochureTypeList.value.find(item => item.typeName === typeName)
+    if (selectedType) {
+      form.value.type = selectedType.type
+      form.value.typeName = selectedType.typeName
+    }
+  } else {
+    form.value.type = null
+    form.value.typeName = null
+  }
+}
+
 // 取消按钮
 function cancel() {
   open.value = false
@@ -456,6 +572,14 @@ function handleAdd() {
   reset()
   open.value = true
   title.value = "添加院校简章大纲"
+  // 如果学校列表为空,则加载
+  if (collegeList.value.length === 0) {
+    loadCollegeList()
+  }
+  // 如果类型列表为空,则加载
+  if (brochureTypeList.value.length === 0) {
+    loadBrochureTypeList()
+  }
 }
 
 /** 修改按钮操作 */
@@ -466,6 +590,14 @@ function handleUpdate(row) {
     form.value = response.data
     open.value = true
     title.value = "修改院校简章大纲"
+    // 如果学校列表为空,则加载
+    if (collegeList.value.length === 0) {
+      loadCollegeList()
+    }
+    // 如果类型列表为空,则加载
+    if (brochureTypeList.value.length === 0) {
+      loadBrochureTypeList()
+    }
   })
 }
 
@@ -508,5 +640,61 @@ function handleExport() {
   }, `bBusiWishUniversitiesEnrollBrochure_${new Date().getTime()}.xlsx`)
 }
 
+/** 预览文件 */
+function handlePreview(url) {
+  if (!url) return
+
+  // 判断是否为Word文件
+  const isWord = /\.(doc|docx)$/i.test(url)
+
+  if (isWord) {
+    // Word文件使用微软在线预览服务
+    const previewUrl = `https://view.officeapps.live.com/op/view.aspx?src=${encodeURIComponent(url)}`
+    window.open(previewUrl, '_blank')
+  } else {
+    // PDF或其他文件直接打开
+    window.open(url, '_blank')
+  }
+}
+
+/** 显示内容详情 */
+function showContentDetail(id) {
+  getBBusiWishUniversitiesEnrollBrochure(id).then(response => {
+    const content = response.data?.content || ''
+    const title = response.data?.title || '内容详情'
+    // 创建弹窗显示内容
+    proxy.$alert(content, title, {
+      dangerouslyUseHTMLString: true,
+      confirmButtonText: '确定',
+      customClass: 'content-detail-alert',
+      callback: action => {}
+    })
+  }).catch(error => {
+    console.error('获取内容失败:', error)
+    proxy.$modal.msgError('获取内容失败')
+  })
+}
+
+// 组件挂载时加载学校列表和类型列表
+loadCollegeList()
+loadBrochureTypeList()
 getList()
 </script>
+<style>
+.content-detail-alert {
+  min-width: 400px;
+  width: auto;
+  max-width: 90vw;
+  max-height: 80vh;
+  overflow-y: auto;
+}
+
+.content-detail-alert .el-message-box__message {
+  max-height: 60vh;
+  overflow-y: auto;
+  text-align: left;
+  padding-right: 10px;
+  word-wrap: break-word;
+  white-space: normal;
+}
+</style>

+ 113 - 0
ie-admin/src/main/java/com/ruoyi/web/controller/dz/BBusiWishUniversitiesController.java

@@ -0,0 +1,113 @@
+package com.ruoyi.web.controller.dz;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.syzy.domain.BBusiWishUniversities;
+import com.ruoyi.syzy.service.IBBusiWishUniversitiesService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 院校库Controller
+ *
+ * @author ie
+ * @date 2026-01-20
+ */
+@RestController
+@RequestMapping("/system/bBusiWishUniversities")
+public class BBusiWishUniversitiesController extends BaseController
+{
+    @Autowired
+    private IBBusiWishUniversitiesService bBusiWishUniversitiesService;
+
+    /**
+     * 查询院校库列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:bBusiWishUniversities:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BBusiWishUniversities bBusiWishUniversities)
+    {
+        startPage();
+        List<BBusiWishUniversities> list = bBusiWishUniversitiesService.selectBBusiWishUniversitiesList(bBusiWishUniversities);
+        return getDataTable(list);
+    }
+
+    @PreAuthorize("@ss.hasPermi('system:bBusiWishUniversities:list')")
+    @GetMapping("/listAll")
+    public AjaxResult listAll(BBusiWishUniversities bBusiWishUniversities)
+    {
+        List<BBusiWishUniversities> list = bBusiWishUniversitiesService.selectBBusiWishUniversitiesList(bBusiWishUniversities);
+        return AjaxResult.success(list);
+    }
+
+    /**
+     * 导出院校库列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:bBusiWishUniversities:export')")
+    @Log(title = "院校库", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BBusiWishUniversities bBusiWishUniversities)
+    {
+        List<BBusiWishUniversities> list = bBusiWishUniversitiesService.selectBBusiWishUniversitiesList(bBusiWishUniversities);
+        ExcelUtil<BBusiWishUniversities> util = new ExcelUtil<BBusiWishUniversities>(BBusiWishUniversities.class);
+        util.exportExcel(response, list, "院校库数据");
+    }
+
+    /**
+     * 获取院校库详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:bBusiWishUniversities:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(bBusiWishUniversitiesService.selectBBusiWishUniversitiesById(id));
+    }
+
+    /**
+     * 新增院校库
+     */
+    @PreAuthorize("@ss.hasPermi('system:bBusiWishUniversities:add')")
+    @Log(title = "院校库", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BBusiWishUniversities bBusiWishUniversities)
+    {
+        return toAjax(bBusiWishUniversitiesService.insertBBusiWishUniversities(bBusiWishUniversities));
+    }
+
+    /**
+     * 修改院校库
+     */
+    @PreAuthorize("@ss.hasPermi('system:bBusiWishUniversities:edit')")
+    @Log(title = "院校库", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BBusiWishUniversities bBusiWishUniversities)
+    {
+        return toAjax(bBusiWishUniversitiesService.updateBBusiWishUniversities(bBusiWishUniversities));
+    }
+
+    /**
+     * 删除院校库
+     */
+    @PreAuthorize("@ss.hasPermi('system:bBusiWishUniversities:remove')")
+    @Log(title = "院校库", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(bBusiWishUniversitiesService.deleteBBusiWishUniversitiesByIds(ids));
+    }
+}

+ 10 - 0
ie-admin/src/main/java/com/ruoyi/web/controller/dz/BBusiWishUniversitiesEnrollBrochureController.java

@@ -102,4 +102,14 @@ public class BBusiWishUniversitiesEnrollBrochureController extends BaseControlle
     {
         return toAjax(bBusiWishUniversitiesEnrollBrochureService.deleteBBusiWishUniversitiesEnrollBrochureByIds(ids));
     }
+
+    /**
+     * 获取简章类型列表
+     */
+    @GetMapping("/getBrochureTypes")
+    public AjaxResult getBrochureTypes()
+    {
+        List<BBusiWishUniversitiesEnrollBrochure> types = bBusiWishUniversitiesEnrollBrochureService.getBrochureTypes();
+        return success(types);
+    }
 }

+ 7 - 0
ie-system/src/main/java/com/ruoyi/syzy/mapper/BBusiWishUniversitiesEnrollBrochureMapper.java

@@ -58,4 +58,11 @@ public interface BBusiWishUniversitiesEnrollBrochureMapper
      * @return 结果
      */
     public int deleteBBusiWishUniversitiesEnrollBrochureByIds(Long[] ids);
+
+    /**
+     * 查询所有类型(去重)
+     * 
+     * @return 类型列表
+     */
+    public List<BBusiWishUniversitiesEnrollBrochure> selectDistinctTypes();
 }

+ 7 - 0
ie-system/src/main/java/com/ruoyi/syzy/service/IBBusiWishUniversitiesEnrollBrochureService.java

@@ -58,4 +58,11 @@ public interface IBBusiWishUniversitiesEnrollBrochureService
      * @return 结果
      */
     public int deleteBBusiWishUniversitiesEnrollBrochureById(Long id);
+
+    /**
+     * 查询所有类型(去重)
+     * 
+     * @return 类型列表
+     */
+    public List<BBusiWishUniversitiesEnrollBrochure> getBrochureTypes();
 }

+ 24 - 0
ie-system/src/main/java/com/ruoyi/syzy/service/IBBusiWishUniversitiesService.java

@@ -68,4 +68,28 @@ public interface IBBusiWishUniversitiesService {
     public List<String> getBxTypes(String entranceType);
     public List<String> getLevels(String entranceType);
 
+    /**
+     * 新增院校库
+     *
+     * @param bBusiWishUniversities 院校库
+     * @return 结果
+     */
+    public int insertBBusiWishUniversities(BBusiWishUniversities bBusiWishUniversities);
+
+    /**
+     * 删除院校库
+     *
+     * @param id 院校库主键
+     * @return 结果
+     */
+    public int deleteBBusiWishUniversitiesById(Long id);
+
+    /**
+     * 批量删除院校库
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBBusiWishUniversitiesByIds(Long[] ids);
+
 }

+ 26 - 8
ie-system/src/main/java/com/ruoyi/syzy/service/impl/BBusiWishUniversitiesEnrollBrochureServiceImpl.java

@@ -2,6 +2,7 @@ package com.ruoyi.syzy.service.impl;
 
 import java.util.List;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.syzy.mapper.BBusiWishUniversitiesEnrollBrochureMapper;
@@ -10,19 +11,19 @@ import com.ruoyi.syzy.service.IBBusiWishUniversitiesEnrollBrochureService;
 
 /**
  * 院校招生简章Service业务层处理
- * 
+ *
  * @author voluntary
  * @date 2024-09-27
  */
 @Service
-public class BBusiWishUniversitiesEnrollBrochureServiceImpl implements IBBusiWishUniversitiesEnrollBrochureService 
+public class BBusiWishUniversitiesEnrollBrochureServiceImpl implements IBBusiWishUniversitiesEnrollBrochureService
 {
     @Autowired
     private BBusiWishUniversitiesEnrollBrochureMapper bBusiWishUniversitiesEnrollBrochureMapper;
 
     /**
      * 查询院校招生简章
-     * 
+     *
      * @param id 院校招生简章主键
      * @return 院校招生简章
      */
@@ -34,7 +35,7 @@ public class BBusiWishUniversitiesEnrollBrochureServiceImpl implements IBBusiWis
 
     /**
      * 查询院校招生简章列表
-     * 
+     *
      * @param bBusiWishUniversitiesEnrollBrochure 院校招生简章
      * @return 院校招生简章
      */
@@ -46,7 +47,7 @@ public class BBusiWishUniversitiesEnrollBrochureServiceImpl implements IBBusiWis
 
     /**
      * 新增院校招生简章
-     * 
+     *
      * @param bBusiWishUniversitiesEnrollBrochure 院校招生简章
      * @return 结果
      */
@@ -54,12 +55,18 @@ public class BBusiWishUniversitiesEnrollBrochureServiceImpl implements IBBusiWis
     public int insertBBusiWishUniversitiesEnrollBrochure(BBusiWishUniversitiesEnrollBrochure bBusiWishUniversitiesEnrollBrochure)
     {
         bBusiWishUniversitiesEnrollBrochure.setCreateTime(DateUtils.getNowDate());
+        if (StringUtils.isEmpty(bBusiWishUniversitiesEnrollBrochure.getEditor())){
+            bBusiWishUniversitiesEnrollBrochure.setEditor(bBusiWishUniversitiesEnrollBrochure.getTitle());
+        }
+        if (StringUtils.isEmpty(bBusiWishUniversitiesEnrollBrochure.getSummary())){
+            bBusiWishUniversitiesEnrollBrochure.setSummary(bBusiWishUniversitiesEnrollBrochure.getTitle());
+        }
         return bBusiWishUniversitiesEnrollBrochureMapper.insertBBusiWishUniversitiesEnrollBrochure(bBusiWishUniversitiesEnrollBrochure);
     }
 
     /**
      * 修改院校招生简章
-     * 
+     *
      * @param bBusiWishUniversitiesEnrollBrochure 院校招生简章
      * @return 结果
      */
@@ -72,7 +79,7 @@ public class BBusiWishUniversitiesEnrollBrochureServiceImpl implements IBBusiWis
 
     /**
      * 批量删除院校招生简章
-     * 
+     *
      * @param ids 需要删除的院校招生简章主键
      * @return 结果
      */
@@ -84,7 +91,7 @@ public class BBusiWishUniversitiesEnrollBrochureServiceImpl implements IBBusiWis
 
     /**
      * 删除院校招生简章信息
-     * 
+     *
      * @param id 院校招生简章主键
      * @return 结果
      */
@@ -93,4 +100,15 @@ public class BBusiWishUniversitiesEnrollBrochureServiceImpl implements IBBusiWis
     {
         return bBusiWishUniversitiesEnrollBrochureMapper.deleteBBusiWishUniversitiesEnrollBrochureById(id);
     }
+
+    /**
+     * 查询所有类型(去重)
+     *
+     * @return 类型列表
+     */
+    @Override
+    public List<BBusiWishUniversitiesEnrollBrochure> getBrochureTypes()
+    {
+        return bBusiWishUniversitiesEnrollBrochureMapper.selectDistinctTypes();
+    }
 }

+ 37 - 0
ie-system/src/main/java/com/ruoyi/syzy/service/impl/BBusiWishUniversitiesServiceImpl.java

@@ -3,6 +3,7 @@ package com.ruoyi.syzy.service.impl;
 import com.google.common.collect.Maps;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.CommonUtils;
+import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.sy.domain.SyMajor;
 import com.ruoyi.sy.service.ISyMajorService;
@@ -267,6 +268,42 @@ public class BBusiWishUniversitiesServiceImpl implements IBBusiWishUniversitiesS
         return CommonUtils.sortByChina(new ArrayList<String>(levels));
     }
 
+    /**
+     * 新增院校库
+     *
+     * @param bBusiWishUniversities 院校库
+     * @return 结果
+     */
+    @Override
+    public int insertBBusiWishUniversities(BBusiWishUniversities bBusiWishUniversities)
+    {
+        bBusiWishUniversities.setCreateTime(DateUtils.getNowDate());
+        return bBusiWishUniversitiesMapper.insertBBusiWishUniversities(bBusiWishUniversities);
+    }
+
+    /**
+     * 批量删除院校库
+     *
+     * @param ids 需要删除的院校库主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBBusiWishUniversitiesByIds(Long[] ids)
+    {
+        return bBusiWishUniversitiesMapper.deleteBBusiWishUniversitiesByIds(ids);
+    }
+
+    /**
+     * 删除院校库信息
+     *
+     * @param id 院校库主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBBusiWishUniversitiesById(Long id)
+    {
+        return bBusiWishUniversitiesMapper.deleteBBusiWishUniversitiesById(id);
+    }
 
 
 }

+ 7 - 0
ie-system/src/main/resources/mapper/syzy/BBusiWishUniversitiesEnrollBrochureMapper.xml

@@ -149,4 +149,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{id}
         </foreach>
     </delete>
+
+    <select id="selectDistinctTypes" resultMap="BBusiWishUniversitiesEnrollBrochureResult">
+        SELECT DISTINCT `type`, typeName 
+        FROM b_busi_wish_universities_enroll_brochure 
+        WHERE typeName IS NOT NULL
+        ORDER BY `type`
+    </select>
 </mapper>

+ 4 - 7
ie-system/src/main/resources/mapper/syzy/BBusiWishUniversitiesMapper.xml

@@ -107,23 +107,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
       <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
       <if test="logo != null  and logo != ''"> and logo like concat('%', #{logo}, '%')</if>
       <if test="bannerUrl != null  and bannerUrl != ''"> and bannerUrl like concat('%', #{bannerUrl}, '%')</if>
-      <if test="location != null  and location != ''"> and location = #{location}</if>
-      <if test="cityName != null  and cityName != ''"> and cityName = #{cityName}</if>
+      <if test="location != null  and location != ''"> and location like concat('%', #{location}, '%') </if>
+      <if test="cityName != null  and cityName != ''"> and cityName like concat('%', #{cityName}, '%') </if>
       <if test="managerType != null  and managerType != ''"> and managerType = #{managerType}</if>
       <if test="type != null  and type != ''"> and type like concat('%', #{type}, '%')</if>
       <if test="level != null  and level != ''"> and level = #{level}</if>
-      <if test="ylxx != null "> and ylxx = #{ylxx}</if>
-      <if test="ylxk != null "> and ylxk = #{ylxk}</if>
-      <if test="yjsy != null "> and yjsy = #{yjsy}</if>
-      <if test="dlxy != null "> and dlxy = #{dlxy}</if>
-      <if test="mbgx != null "> and mbgx = #{mbgx}</if>
       <if test="tel != null  and tel != ''"> and tel = #{tel}</if>
       <if test="url != null  and url != ''"> and url = #{url}</if>
       <if test="favorities != null "> and favorities = #{favorities}</if>
+      <if test="tier != null "> and tier = #{tier}</if>
       <if test="createTime != null "> and createTime = #{createTime}</if>
       <if test="status != null "> and status = #{status}</if>
       <if test="natureTypeCN != null  and natureTypeCN != ''"> and natureTypeCN like concat('%', #{natureTypeCN}, '%')</if>
       <if test="features != null  and features != ''"> and features like concat('%', #{features}, '%')</if>
+      <if test="enrollLocation != null  and enrollLocation != ''"> and enrollLocation like concat('%', #{enrollLocation}, '%')</if>
     </where>
     <if test="params.orderBy!=null and params.orderBy != ''"> order by #{params.orderBy} </if>
   </select>