|
@@ -22,12 +22,32 @@
|
|
|
</el-radio-group> -->
|
|
|
</div>
|
|
|
<div class="right">
|
|
|
- <el-cascader
|
|
|
+ <!-- <el-cascader
|
|
|
v-model="level"
|
|
|
:options="levelList"
|
|
|
+ :props="props"
|
|
|
style="width: 140px; margin-right: 24px"
|
|
|
@change="page1getdata"
|
|
|
- />
|
|
|
+ >
|
|
|
+ <template slot-scope="{ data }">
|
|
|
+ <span>{{ data.name }}</span>
|
|
|
+ </template>
|
|
|
+ </el-cascader> -->
|
|
|
+ <el-select
|
|
|
+ v-model="level"
|
|
|
+ multiple
|
|
|
+ collapse-tags
|
|
|
+ style="width: 180px; margin-right: 24px"
|
|
|
+ placeholder="请选择"
|
|
|
+ @change="page1getdata">
|
|
|
+ <el-checkbox class="checkAllCheckbox" :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">全部</el-checkbox>
|
|
|
+ <el-option
|
|
|
+ v-for="item in levelList"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
<div class="seek">
|
|
|
<img src="../../assets/teacherdev/search-icon.png" alt="" />
|
|
|
<input v-model="keyword" type="text" />
|
|
@@ -79,7 +99,7 @@
|
|
|
</th>
|
|
|
</template>
|
|
|
</tr>
|
|
|
- <tr v-for="(item, index) in dataList.list" :key="index + 'td'">
|
|
|
+ <tr v-for="(item, index) in dataList.word_list" :key="index + 'td'">
|
|
|
<td class="sort-td">{{ item.number }}</td>
|
|
|
<td :class="['sort-td', typeIndex === 0 ? 'pinyin' : 'hanzi']">
|
|
|
<span
|
|
@@ -87,22 +107,22 @@
|
|
|
fontFamily: typeIndex !== 0 ? '楷体' : '',
|
|
|
fontWeight: '400',
|
|
|
fontSize: '18px',
|
|
|
- color: item.levelName && levelMap[item.levelName] ? levelMap[item.levelName].color : '',
|
|
|
+ color: item.level_id && levelMap[item.level_id] ? levelMap[item.level_id].color : '',
|
|
|
}"
|
|
|
>{{ item.word }}</span
|
|
|
>
|
|
|
</td>
|
|
|
<td v-if="typeIndex !== 0" class="sort-td" style="font-family: 'GB-PINYINOK-B'; text-align: left">
|
|
|
- {{ item.pinYin }}
|
|
|
+ {{ item.pinyin }}
|
|
|
</td>
|
|
|
<td class="sort-td">
|
|
|
<span
|
|
|
:style="{
|
|
|
fontFamily: '楷体',
|
|
|
fontSize: '16px',
|
|
|
- color: item.gradeName && levelMap[item.gradeName] ? levelMap[item.gradeName].color : '',
|
|
|
+ color: item.grade_id && levelMap[item.grade_id] ? levelMap[item.grade_id].color : '',
|
|
|
}"
|
|
|
- >{{ item.gradeName }}</span
|
|
|
+ >{{ item.grade_name }}</span
|
|
|
>
|
|
|
</td>
|
|
|
<td class="sort-td jb" style="text-align: right">
|
|
@@ -110,19 +130,19 @@
|
|
|
:style="{
|
|
|
fontFamily: '楷体',
|
|
|
fontSize: '16px',
|
|
|
- color: item.levelName && levelMap[item.levelName] ? levelMap[item.levelName].color : '',
|
|
|
+ color: item.level_id && levelMap[item.level_id] ? levelMap[item.level_id].color : '',
|
|
|
}"
|
|
|
- >{{ item.levelName }}</span
|
|
|
+ >{{ item.level_name }}</span
|
|
|
>
|
|
|
</td>
|
|
|
<td
|
|
|
class="sort-td"
|
|
|
style="font-size: 16px; cursor: pointer"
|
|
|
- @click="backHighlight(item, levelMap[item.levelName].color, 'all', index)"
|
|
|
+ @click="backHighlight(item, levelMap[item.level_id].color, 'all', index)"
|
|
|
>
|
|
|
{{ item.freq }}
|
|
|
</td>
|
|
|
- <td class="sort-td">{{ item.textRatio }}%</td>
|
|
|
+ <td class="sort-td">{{ item.text_ratio }}%</td>
|
|
|
<td>
|
|
|
<div style="display: flex; flex-wrap: wrap">
|
|
|
<span
|
|
@@ -133,17 +153,17 @@
|
|
|
marginRight: '10px',
|
|
|
cursor: 'pointer',
|
|
|
borderColor:
|
|
|
- items.levelName && levelMap[items.levelName] ? levelMap[items.levelName].color + '16' : '',
|
|
|
+ items.levelId && levelMap[items.levelId] ? levelMap[items.levelId].color + '16' : '',
|
|
|
background:
|
|
|
- items.levelName && levelMap[items.levelName] ? levelMap[items.levelName].color + '50' : '',
|
|
|
+ items.levelId && levelMap[items.levelId] ? levelMap[items.levelId].color + '50' : '',
|
|
|
}"
|
|
|
- @click="backHighlight(items, levelMap[item.levelName].color, 'one', index)"
|
|
|
+ @click="backHighlight(items, levelMap[item.levelId].color, 'one', index)"
|
|
|
>
|
|
|
<span style="font-family: '楷体'" v-html="items.word"> </span>
|
|
|
<span
|
|
|
:style="{
|
|
|
fontFamily: '楷体',
|
|
|
- color: items.levelName && levelMap[items.levelName] ? levelMap[items.levelName].color : '',
|
|
|
+ color: items.levelId && levelMap[items.levelId] ? levelMap[items.levelId].color : '',
|
|
|
}"
|
|
|
>
|
|
|
{{ items.levelName }}
|
|
@@ -156,7 +176,7 @@
|
|
|
</td>
|
|
|
</tr>
|
|
|
</table>
|
|
|
- <template v-if="dataList.list.length == 0">
|
|
|
+ <template v-if="dataList.word_list.length == 0">
|
|
|
<div class="no_data">暂无数据</div>
|
|
|
</template>
|
|
|
|
|
@@ -255,13 +275,13 @@
|
|
|
</el-table-column>
|
|
|
</el-table> -->
|
|
|
</div>
|
|
|
- <div v-if="dataList.list.length > 0" class="page">
|
|
|
+ <div v-if="dataList.word_list.length > 0" class="page">
|
|
|
<el-pagination
|
|
|
background
|
|
|
:current-page="page"
|
|
|
:page-size="pageSize"
|
|
|
layout="prev, pager, next, jumper"
|
|
|
- :total="dataList.total"
|
|
|
+ :total="dataList.total_count"
|
|
|
@current-change="handleCurrentChange"
|
|
|
/>
|
|
|
</div>
|
|
@@ -271,7 +291,7 @@
|
|
|
|
|
|
<script>
|
|
|
import HeaderPage from '@/components/Header.vue';
|
|
|
-import { postapi } from '@/api/api';
|
|
|
+import { postapi, publicMethods } from '@/api/api';
|
|
|
import { levelMap } from '../../common/data';
|
|
|
import { json2excel } from '@/utils/setMethods';
|
|
|
|
|
@@ -281,10 +301,13 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ props: { multiple: true },
|
|
|
typeIndex: 0,
|
|
|
headText: 1,
|
|
|
keyword: '',
|
|
|
- level: null,
|
|
|
+ level: [],
|
|
|
+ checkAll: false,
|
|
|
+ isIndeterminate: true,
|
|
|
levelList: [
|
|
|
{
|
|
|
value: null,
|
|
@@ -389,7 +412,7 @@ export default {
|
|
|
},
|
|
|
],
|
|
|
dataList: {
|
|
|
- list: [],
|
|
|
+ word_list: [],
|
|
|
},
|
|
|
page: 1,
|
|
|
pageSize: 10,
|
|
@@ -401,6 +424,8 @@ export default {
|
|
|
sortField: 'level_id',
|
|
|
routerData: null,
|
|
|
alldata: null,
|
|
|
+ id: '',
|
|
|
+ allLevels: []
|
|
|
};
|
|
|
},
|
|
|
// 生命周期 - 创建完成(可以访问当前this实例)
|
|
@@ -408,15 +433,16 @@ export default {
|
|
|
this.routerData = JSON.parse(JSON.stringify(this.$route.query));
|
|
|
|
|
|
this.partition_key = Number(this.$route.query.partition_key);
|
|
|
-
|
|
|
+ this.id = this.routerData.id
|
|
|
+ this.getLevelList()
|
|
|
this.getlist();
|
|
|
},
|
|
|
methods: {
|
|
|
// 下载
|
|
|
download() {
|
|
|
- let data = JSON.parse(JSON.stringify(this.alldata.list));
|
|
|
- data.forEach((item) => {
|
|
|
- item.textRatio += '%';
|
|
|
+ let data = JSON.parse(JSON.stringify(this.alldata));
|
|
|
+ data.forEach((item,index) => {
|
|
|
+ item.text_ratio += '%';
|
|
|
let str = '';
|
|
|
// 处理备注
|
|
|
item.remarks.forEach((items) => {
|
|
@@ -425,6 +451,7 @@ export default {
|
|
|
str += `${node.innerText} ${items.levelName} ${items.freq} `;
|
|
|
});
|
|
|
item.remarksTxt = str;
|
|
|
+ item.number = index+1
|
|
|
});
|
|
|
let tHeader = [];
|
|
|
let filterVal = [];
|
|
@@ -433,10 +460,10 @@ export default {
|
|
|
});
|
|
|
if (this.typeIndex === 0) {
|
|
|
tHeader.splice(2, 1);
|
|
|
- filterVal = ['number', 'word', 'gradeName', 'levelName', 'freq', 'textRatio', 'remarksTxt'];
|
|
|
+ filterVal = ['number', 'word', 'grade_name', 'level_name', 'freq', 'text_ratio', 'remarksTxt'];
|
|
|
} else {
|
|
|
tHeader[1] = '汉字';
|
|
|
- filterVal = ['number', 'word', 'pinYin', 'gradeName', 'levelName', 'freq', 'textRatio', 'remarksTxt'];
|
|
|
+ filterVal = ['number', 'word', 'pinyin', 'grade_name', 'level_name', 'freq', 'text_ratio', 'remarksTxt'];
|
|
|
}
|
|
|
let excelDatas = [
|
|
|
{
|
|
@@ -459,12 +486,12 @@ export default {
|
|
|
arr.push(items.word);
|
|
|
});
|
|
|
} else {
|
|
|
- arr.push(this.dataList.list[index].word);
|
|
|
+ arr.push(this.dataList.word_list[index].word);
|
|
|
}
|
|
|
} else if (this.typeIndex === 0) {
|
|
|
arr.push(item.word);
|
|
|
} else {
|
|
|
- arr.push(this.dataList.list[index].word);
|
|
|
+ arr.push(this.dataList.word_list[index].word);
|
|
|
}
|
|
|
data.remarks = JSON.stringify(arr);
|
|
|
data.color = color;
|
|
@@ -483,57 +510,111 @@ export default {
|
|
|
this.page = val;
|
|
|
this.getlist();
|
|
|
},
|
|
|
+ // 获取等级列表
|
|
|
+ getLevelList(){
|
|
|
+ this.allLevels = []
|
|
|
+ // this.levelList = [{
|
|
|
+ // value: '',
|
|
|
+ // id: '',
|
|
|
+ // name: '全部',
|
|
|
+ // label: '全部'
|
|
|
+ // }]
|
|
|
+ this.levelList = []
|
|
|
+ publicMethods('/TeachingServer/TextAnalyser/GetLevelList',{})
|
|
|
+ .then((res) => {
|
|
|
+ if(res.status===1){
|
|
|
+ res.level_list.forEach(item=>{
|
|
|
+ item.value = item.id
|
|
|
+ item.label = item.name
|
|
|
+ this.allLevels.push(item.id)
|
|
|
+ })
|
|
|
+ this.levelList = this.levelList.concat(res.level_list)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
getlist() {
|
|
|
this.loading = true;
|
|
|
- postapi({
|
|
|
- url: '/GCLSTCServer/tools/TS/glossary/list',
|
|
|
- data: {
|
|
|
- pageIndex: this.page,
|
|
|
- pageSize: this.pageSize,
|
|
|
- partitionKey: this.partition_key,
|
|
|
- searchType: this.typeIndex,
|
|
|
+ let order_column_list = []
|
|
|
+ if(this.sortType===1){
|
|
|
+ order_column_list = [this.sortField + ':desc']
|
|
|
+ }else if(this.sortType===0){
|
|
|
+ // 升序不传值
|
|
|
+ order_column_list = [this.sortField]
|
|
|
+ }
|
|
|
+ let data = {
|
|
|
+ cur_page: this.page,
|
|
|
+ page_capacity: this.pageSize,
|
|
|
+ type: this.typeIndex,
|
|
|
word: this.keyword,
|
|
|
- sortField: this.sortField,
|
|
|
- sortType: this.sortType,
|
|
|
- levels: this.level ? this.level[1] : null,
|
|
|
- },
|
|
|
- })
|
|
|
+ order_column_list: order_column_list,
|
|
|
+ level_id_list: this.level ,
|
|
|
+ analyse_record_id: this.id
|
|
|
+ }
|
|
|
+ publicMethods('/TeachingServer/TextAnalyser/PageQueryWordList',data)
|
|
|
+ // postapi({
|
|
|
+ // url: '/GCLSTCServer/tools/TS/glossary/list',
|
|
|
+ // data: {
|
|
|
+ // pageIndex: this.page,
|
|
|
+ // pageSize: this.pageSize,
|
|
|
+ // partitionKey: this.partition_key,
|
|
|
+ // searchType: this.typeIndex,
|
|
|
+ // word: this.keyword,
|
|
|
+ // sortField: this.sortField,
|
|
|
+ // sortType: this.sortType,
|
|
|
+ // levels: this.level ? this.level[1] : null,
|
|
|
+ // },
|
|
|
+ // })
|
|
|
.then((res) => {
|
|
|
let num = this.page * this.pageSize - this.pageSize + 1;
|
|
|
- res.data.result.list.forEach((item) => {
|
|
|
+ res.word_list.forEach((item) => {
|
|
|
item.remarks = JSON.parse(item.remarks);
|
|
|
item.number = num;
|
|
|
num += 1;
|
|
|
});
|
|
|
- this.dataList = res.data.result;
|
|
|
+ this.dataList = res;
|
|
|
this.loading = false;
|
|
|
})
|
|
|
.catch(() => {
|
|
|
this.loading = false;
|
|
|
});
|
|
|
- postapi({
|
|
|
- url: '/GCLSTCServer/tools/TS/glossary/list',
|
|
|
- data: {
|
|
|
- pageIndex: 1,
|
|
|
- pageSize: 9999,
|
|
|
- partitionKey: this.partition_key,
|
|
|
- searchType: this.typeIndex,
|
|
|
- word: this.keyword,
|
|
|
- sortField: this.sortField,
|
|
|
- sortType: this.sortType,
|
|
|
- levels: this.level ? this.level[1] : null,
|
|
|
- },
|
|
|
- }).then((res) => {
|
|
|
+ publicMethods('/TeachingServer/TextAnalyser/PageQueryWordList',{
|
|
|
+ cur_page: 1,
|
|
|
+ page_capacity: 9999,
|
|
|
+ type: this.typeIndex,
|
|
|
+ word: this.keyword,
|
|
|
+ order_column_list: order_column_list,
|
|
|
+ level_id_list: this.level ,
|
|
|
+ analyse_record_id: this.id
|
|
|
+ })
|
|
|
+ // postapi({
|
|
|
+ // url: '/GCLSTCServer/tools/TS/glossary/list',
|
|
|
+ // data: {
|
|
|
+ // pageIndex: 1,
|
|
|
+ // pageSize: 9999,
|
|
|
+ // partitionKey: this.partition_key,
|
|
|
+ // searchType: this.typeIndex,
|
|
|
+ // word: this.keyword,
|
|
|
+ // sortField: this.sortField,
|
|
|
+ // sortType: this.sortType,
|
|
|
+ // levels: this.level ? this.level[1] : null,
|
|
|
+ // },
|
|
|
+ // })
|
|
|
+ .then((res) => {
|
|
|
let num = 0;
|
|
|
- res.data.result.list.forEach((item) => {
|
|
|
+ res.word_list.forEach((item) => {
|
|
|
item.remarks = JSON.parse(item.remarks);
|
|
|
item.number = num;
|
|
|
num += 1;
|
|
|
});
|
|
|
- this.alldata = res.data.result;
|
|
|
+ this.alldata = res.word_list;
|
|
|
});
|
|
|
},
|
|
|
- page1getdata() {
|
|
|
+ page1getdata(value) {
|
|
|
+ if(value){
|
|
|
+ let checkedCount = value.length;
|
|
|
+ this.checkAll = checkedCount === this.levelList.length;
|
|
|
+ this.isIndeterminate = checkedCount > 0 && checkedCount < this.levelList.length;
|
|
|
+ }
|
|
|
this.loading = true;
|
|
|
this.page = 1;
|
|
|
this.getlist();
|
|
@@ -582,6 +663,10 @@ export default {
|
|
|
this.typeIndex = index;
|
|
|
this.page1getdata();
|
|
|
},
|
|
|
+ handleCheckAllChange(val) {
|
|
|
+ this.level = val ? this.allLevels : [];
|
|
|
+ this.isIndeterminate = false;
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
@@ -885,4 +970,19 @@ export default {
|
|
|
border-radius: 2px;
|
|
|
}
|
|
|
}
|
|
|
+.checkAllCheckbox{
|
|
|
+ width: 100%;
|
|
|
+ padding: 0 20px;
|
|
|
+ height: 34px;
|
|
|
+ line-height: 34px;
|
|
|
+ &:hover{
|
|
|
+ background-color: #F5F7FA;
|
|
|
+ }
|
|
|
+ .el-checkbox__input{
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+ .el-checkbox__label{
|
|
|
+ padding: 0;
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|