|
@@ -174,7 +174,7 @@
|
|
|
</el-auto-resizer>
|
|
|
</div>
|
|
|
<div class="addschool-dialog">
|
|
|
- <el-dialog v-model="adddialog" title="学校搜索" width="30%" :close-on-click-modal="false">
|
|
|
+ <el-dialog v-model="adddialog" title="学校搜索" width="50%" :close-on-click-modal="false">
|
|
|
<div class="addschool-box">
|
|
|
<div>
|
|
|
<el-input v-model="addvalue" placeholder="搜索学校简码" class="input-with-select">
|
|
@@ -184,17 +184,22 @@
|
|
|
</el-input>
|
|
|
</div>
|
|
|
<div class="school-list">
|
|
|
- <div class="notsearch-box" v-if="!addschool.id"><img src="@/assets/img/notsearch.png" /></div>
|
|
|
- <div class="search-result" v-else-if="addschool.id">
|
|
|
+ <!-- <div class="notsearch-box" v-if="!tableData.length =="><img src="@/assets/img/notsearch.png" /></div> -->
|
|
|
+ <div class="search-result">
|
|
|
<p>搜索结果:</p>
|
|
|
<div class="result-box">
|
|
|
- <p><span>学校名称:</span><span class="result-text">{{addschool.name}}</span></p>
|
|
|
+ <!-- <p><span>学校名称:</span><span class="result-text">{{addschool.name}}</span></p>
|
|
|
<p><span>学校简码:</span><span class="result-text">{{addschool.id}}</span></p>
|
|
|
<p><span>学校地址:</span><span class="result-text">{{addschool.region}}{{addschool.province}}{{addschool.city}}{{addschool.dist}}</span></p>
|
|
|
<div class="school-type">
|
|
|
<div>学校类型:</div>
|
|
|
<div><el-tag v-if="addschool.isvirtual">虚拟学校</el-tag><el-tag v-else-if="!addschool.isvirtual" type="success">实体学校</el-tag></div>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
+ <el-auto-resizer>
|
|
|
+ <template #default="{ height, width }">
|
|
|
+ <el-table-v2 :columns="searchColumns" :data="tableData" :width="width" :height="height" :estimated-row-height="40" :sort-by="sortState" @column-sort="onSort" fixed />
|
|
|
+ </template>
|
|
|
+ </el-auto-resizer>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -202,10 +207,10 @@
|
|
|
<template #footer>
|
|
|
<span class="dialog-footer">
|
|
|
<el-button @click="adddialog = false">取消</el-button>
|
|
|
- <el-button type="primary" @click="addschoolfn()" v-if="addschool.id">
|
|
|
+ <el-button type="primary" @click="addschoolfn()" v-if="checkboxArr.length !==0">
|
|
|
添加
|
|
|
</el-button>
|
|
|
- <el-button type="info" v-if="!addschool.id" disabled>
|
|
|
+ <el-button type="info" v-if="checkboxArr.length ===0" disabled>
|
|
|
添加
|
|
|
</el-button>
|
|
|
</span>
|
|
@@ -262,8 +267,8 @@
|
|
|
</template>
|
|
|
<script setup>
|
|
|
import option_cn from '@/static/regions/region_cn.json'
|
|
|
-import { ref, getCurrentInstance, watch } from 'vue'
|
|
|
-import { ElMessage, TableV2SortOrder, ElLoading } from 'element-plus'
|
|
|
+import { ref, getCurrentInstance, watch, h } from 'vue'
|
|
|
+import { ElMessage, TableV2SortOrder, ElLoading, ElCheckbox } from 'element-plus'
|
|
|
import { Search, CirclePlus } from '@element-plus/icons-vue'
|
|
|
import Details from './details.vue'
|
|
|
let { proxy } = getCurrentInstance()
|
|
@@ -351,6 +356,91 @@ let columns = ref([
|
|
|
)
|
|
|
},
|
|
|
])
|
|
|
+const searchColumns = [
|
|
|
+ {
|
|
|
+ cellRenderer: (data) =>
|
|
|
+ h(
|
|
|
+ ElCheckbox,
|
|
|
+ // { onClick: () => handleDelete(data), type: "danger", icon: "Delete" },
|
|
|
+ { onChange: () => selectChange(data.rowData) },
|
|
|
+ { default: () => "" }
|
|
|
+ ),
|
|
|
+ width: 50,//当前列的宽度,必须设置
|
|
|
+ // fixed: true,//是否固定列
|
|
|
+ align: 'center',
|
|
|
+ headerClass: 'cheboxclass',
|
|
|
+ // cellRenderer: ({ rowData }) => {
|
|
|
+ // const onChange = (value: CheckboxValueType) => (rowData.checked = value)
|
|
|
+ // return <SelectionCell value={rowData.checked} onChange={onChange} />
|
|
|
+ // },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ // key: "name",
|
|
|
+ // dataKey: "name",//需要渲染当前列的数据字段,如{id:9527,name:'Mike'},则填name
|
|
|
+ title: "校徽",
|
|
|
+ width: 150,
|
|
|
+ fixed: false,
|
|
|
+ align: 'center',
|
|
|
+ headerClass: 'serachclass',
|
|
|
+ cellRenderer: (data) => (
|
|
|
+ <>
|
|
|
+ <el-image style="width: 45px; height: 45px;margin:5px" src={data.rowData.picture} fit="contain" v-show={data.rowData.picture ? true : false}></el-image>
|
|
|
+ <div style=" width: 45px;height: 45px;line-height: 45px;text-align: center;background-color: #bdc3c7;font-size: 10px;color: #ecf0f1;margin:5px;" v-show={!data.rowData.picture ? true : false}>暂无图片</div>
|
|
|
+ </>
|
|
|
+ )
|
|
|
+ },
|
|
|
+ {
|
|
|
+ key: "name",
|
|
|
+ dataKey: "name",//需要渲染当前列的数据字段,如{id:9527,name:'Mike'},则填name
|
|
|
+ title: "名称",
|
|
|
+ width: 200,
|
|
|
+ fixed: false,
|
|
|
+ headerClass: 'serachclass',
|
|
|
+ align: 'center',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ // key: "name",
|
|
|
+ // dataKey: "name",//需要渲染当前列的数据字段,如{id:9527,name:'Mike'},则填name
|
|
|
+ title: "规模版本",
|
|
|
+ width: 100,
|
|
|
+ fixed: false,
|
|
|
+ align: 'center',
|
|
|
+ headerClass: 'serachclass',
|
|
|
+ // sortable: true,
|
|
|
+ cellRenderer: (data) => (
|
|
|
+ <>
|
|
|
+ <div style="color:#409EFF" v-show={data.rowData.scale === 0 && (data.rowData.size < 100 || data.rowData.size == 100) ? true : false}>基础版</div>
|
|
|
+ <div style="color:#67C23A" v-show={(data.rowData.scale === 300 && data.rowData.size === 500) || (data.rowData.size > 100 && (!data.rowData.service.includes('YMPCVCIM') && !data.rowData.service.includes('VLY6J6N6') && !data.rowData.service.includes('VABAJ6NV'))) ? true : false}>标准版</div>
|
|
|
+ <div style="color: #e6a23c;" v-show={data.rowData.service.includes('YMPCVCIM') || data.rowData.service.includes('VLY6J6N6') || data.rowData.service.includes('VABAJ6NV') ? true : false}>专业版</div>
|
|
|
+ </>
|
|
|
+ ),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ key: "id",
|
|
|
+ dataKey: "id",//需要渲染当前列的数据字段,如{id:9527,name:'Mike'},则填id
|
|
|
+ title: "学校简码",//显示在单元格表头的文本
|
|
|
+ width: 150,//当前列的宽度,必须设置
|
|
|
+ align: 'center',
|
|
|
+ headerClass: 'serachclass',
|
|
|
+ },
|
|
|
+ // {
|
|
|
+ // key: "location",
|
|
|
+ // dataKey: "location",
|
|
|
+ // title: "位置",
|
|
|
+ // align: 'center',
|
|
|
+ // width: 200,
|
|
|
+ // headerClass: 'serachclass',
|
|
|
+ // },
|
|
|
+ {
|
|
|
+ key: "areaName",
|
|
|
+ dataKey: "areaName",
|
|
|
+ title: "所属学区",
|
|
|
+ width: 150,
|
|
|
+ align: 'center',
|
|
|
+ headerClass: 'serachclass',
|
|
|
+ },
|
|
|
+];
|
|
|
+let tableData = ref([])
|
|
|
let filterdata = ref([])
|
|
|
let productData = ref({
|
|
|
dataType: '结果类型',
|
|
@@ -404,6 +494,7 @@ let clickNum = ref({
|
|
|
})
|
|
|
let timeScope = ref('daterange')
|
|
|
let cellWidth = ref((100 / columns.value.length).toFixed(2))
|
|
|
+let searchWidth = ref((107 / searchColumns.length).toFixed(2))
|
|
|
let options = ref([])
|
|
|
let optionsValue = ref()
|
|
|
const props2 = {
|
|
@@ -469,7 +560,9 @@ let dataSource = ref({
|
|
|
school: [],
|
|
|
area: [],
|
|
|
composite: [],
|
|
|
+ originalSchool: []
|
|
|
})
|
|
|
+let checkboxArr = ref([])
|
|
|
let timer = ref()
|
|
|
let oldKeyword = ref('')
|
|
|
let adddialog = ref(false)
|
|
@@ -516,6 +609,9 @@ function dataInit () {
|
|
|
console.log(dataList, 'result!')
|
|
|
options.value = dataList
|
|
|
dataSource.value.composite = dataList
|
|
|
+ dataSource.value.originalSchool = res.scInfos
|
|
|
+ tableData.value = res.scInfos
|
|
|
+ console.log(dataSource.value.composite, '检查是否是所有学校')
|
|
|
}).catch((err) => {
|
|
|
ElMessage.error('API异常,基础数据获取异常')
|
|
|
})
|
|
@@ -732,6 +828,21 @@ function addschoolfn () {
|
|
|
}
|
|
|
adddialog.value = false
|
|
|
}
|
|
|
+//获取所有学校列表 5.18日 调整搜索为 学校列表的形式
|
|
|
+function selectChange (value) {
|
|
|
+ console.log(value)
|
|
|
+ if (checkboxArr.value.length === 0) {
|
|
|
+ checkboxArr.value.push(value)
|
|
|
+ } else {
|
|
|
+ let indexNums = checkboxArr.value.findIndex(item => item.id === value.id)
|
|
|
+ if (indexNums === -1) {
|
|
|
+ checkboxArr.value.push(value)
|
|
|
+ } else {
|
|
|
+ checkboxArr.value.splice(indexNums, 1)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ console.log(checkboxArr.value)
|
|
|
+}
|
|
|
// init()
|
|
|
dataInit()
|
|
|
filterDistrict()
|
|
@@ -904,7 +1015,7 @@ watch(clickNum, (newv) => {
|
|
|
}
|
|
|
.school-list {
|
|
|
width: 100%;
|
|
|
- height: 40vh;
|
|
|
+ /* height: 40vh; */
|
|
|
margin-top: 1%;
|
|
|
}
|
|
|
.notsearch-box img {
|
|
@@ -916,6 +1027,8 @@ watch(clickNum, (newv) => {
|
|
|
text-align: left;
|
|
|
}
|
|
|
.result-box {
|
|
|
+ width: 100%;
|
|
|
+ height: 45vh;
|
|
|
padding: 1% 1% 0% 2%;
|
|
|
border-radius: 5px;
|
|
|
box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
|
|
@@ -966,4 +1079,15 @@ watch(clickNum, (newv) => {
|
|
|
.aresclass .el-select {
|
|
|
width: 100%;
|
|
|
}
|
|
|
+.result-box .serachclass,
|
|
|
+.result-box .el-table-v2__row-cell {
|
|
|
+ width: v-bind(searchWidth + "%") !important;
|
|
|
+ /* width: 12% !important; */
|
|
|
+}
|
|
|
+.result-box .cheboxclass {
|
|
|
+ width: 7% !important;
|
|
|
+}
|
|
|
+.result-box .el-table-v2__row-cell:nth-child(1) {
|
|
|
+ width: 7% !important;
|
|
|
+}
|
|
|
</style>
|