|
@@ -1,457 +1,468 @@
|
|
<template>
|
|
<template>
|
|
- <div class="edito">
|
|
|
|
|
|
+ <div>
|
|
<Head />
|
|
<Head />
|
|
- <div
|
|
|
|
- class="onlineTextMain"
|
|
|
|
- v-loading="loading"
|
|
|
|
- element-loading-background="rgba(225,225,225,0.1)"
|
|
|
|
- >
|
|
|
|
- <div class="flex1">
|
|
|
|
- <div class="btn-grounp">
|
|
|
|
- 文章内容
|
|
|
|
- <el-button
|
|
|
|
- type="primary"
|
|
|
|
- style="
|
|
|
|
- float: right;
|
|
|
|
- margin-top: 0.3em;
|
|
|
|
- margin-right: 0.5em;
|
|
|
|
- padding: 0 1.8em;
|
|
|
|
- "
|
|
|
|
- @click="getServer"
|
|
|
|
- :loading="loading"
|
|
|
|
- >
|
|
|
|
- 校验
|
|
|
|
- </el-button>
|
|
|
|
- <el-button
|
|
|
|
- class="clearError"
|
|
|
|
- type="primary"
|
|
|
|
- style="float: right; margin-top: 0.3em; margin-right: 0.5em"
|
|
|
|
- @click="clearError"
|
|
|
|
- :icon="Delete"
|
|
|
|
- >
|
|
|
|
- 清空
|
|
|
|
- </el-button>
|
|
|
|
- </div>
|
|
|
|
- <div class="Fle">
|
|
|
|
- <Editor v-model:rawText="rawText" />
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="flex2">
|
|
|
|
- <div class="btn-grounp">检索结果</div>
|
|
|
|
- <div style="padding: 1em 1em 0 1em">
|
|
|
|
- <div class="tabs">
|
|
|
|
- <div
|
|
|
|
- class="tab"
|
|
|
|
- @click="() => changeTabAll()"
|
|
|
|
- style="background-color: #2974ff; color: #fff"
|
|
|
|
- >
|
|
|
|
- <p>全部错误</p>
|
|
|
|
- {{ search.tabs[0] ? search.tabs[0].num : 0 }}
|
|
|
|
- </div>
|
|
|
|
- <div
|
|
|
|
- class="tab"
|
|
|
|
- @click="() => changeTab(1)"
|
|
|
|
- v-if="tabSelect[1]"
|
|
|
|
- :style="{
|
|
|
|
- backgroundColor: getTypeError(1, 'rgba'),
|
|
|
|
- color: getTypeError(1, 'rgb'),
|
|
|
|
- }"
|
|
|
|
- >
|
|
|
|
- <p>严重错误</p>
|
|
|
|
- {{ search.tabs[1] ? search.tabs[1].num : 0 }}
|
|
|
|
- </div>
|
|
|
|
- <div class="tab" @click="() => changeTab(1)" v-else>
|
|
|
|
- <p>严重错误</p>
|
|
|
|
- {{ search.tabs[1] ? search.tabs[1].num : 0 }}
|
|
|
|
- </div>
|
|
|
|
- <div
|
|
|
|
- class="tab"
|
|
|
|
- @click="() => changeTab(3)"
|
|
|
|
- v-if="tabSelect[3]"
|
|
|
|
- :style="{
|
|
|
|
- backgroundColor: getTypeError(3, 'rgba'),
|
|
|
|
- color: getTypeError(3, 'rgb'),
|
|
|
|
- }"
|
|
|
|
|
|
+
|
|
|
|
+ <div class="edito">
|
|
|
|
+ <div
|
|
|
|
+ class="onlineTextMain"
|
|
|
|
+ v-loading="loading"
|
|
|
|
+ element-loading-background="rgba(225,225,225,0.1)"
|
|
|
|
+ >
|
|
|
|
+ <div class="flex1">
|
|
|
|
+ <div class="btn-grounp">
|
|
|
|
+ 文章内容
|
|
|
|
+ <el-button
|
|
|
|
+ type="primary"
|
|
|
|
+ style="
|
|
|
|
+ float: right;
|
|
|
|
+ margin-top: 0.3em;
|
|
|
|
+ margin-right: 0.5em;
|
|
|
|
+ padding: 0 1.8em;
|
|
|
|
+ "
|
|
|
|
+ @click="getServer"
|
|
|
|
+ :loading="loading"
|
|
>
|
|
>
|
|
- <p>一般错误</p>
|
|
|
|
- {{ search.tabs[3] ? search.tabs[3].num : 0 }}
|
|
|
|
- </div>
|
|
|
|
- <div class="tab" @click="() => changeTab(3)" v-else>
|
|
|
|
- <p>一般错误</p>
|
|
|
|
- {{ search.tabs[3] ? search.tabs[3].num : 0 }}
|
|
|
|
- </div>
|
|
|
|
- <div
|
|
|
|
- class="tab"
|
|
|
|
- @click="() => changeTab(2)"
|
|
|
|
- v-if="tabSelect[2]"
|
|
|
|
- :style="{
|
|
|
|
- backgroundColor: getTypeError(2, 'rgba'),
|
|
|
|
- color: 'rgba(73, 92, 202, 1)',
|
|
|
|
- }"
|
|
|
|
|
|
+ 校验
|
|
|
|
+ </el-button>
|
|
|
|
+ <el-button
|
|
|
|
+ class="clearError"
|
|
|
|
+ type="primary"
|
|
|
|
+ style="float: right; margin-top: 0.3em; margin-right: 0.5em"
|
|
|
|
+ @click="clearError"
|
|
|
|
+ :icon="Delete"
|
|
>
|
|
>
|
|
- <p>疑错</p>
|
|
|
|
- {{ search.tabs[2] ? search.tabs[2].num : 0 }}
|
|
|
|
- </div>
|
|
|
|
- <div class="tab" @click="() => changeTab(2)" v-else>
|
|
|
|
- <p>疑错</p>
|
|
|
|
- {{ search.tabs[2] ? search.tabs[2].num : 0 }}
|
|
|
|
- </div>
|
|
|
|
- <div
|
|
|
|
- class="tab"
|
|
|
|
- v-if="tabSelect[4]"
|
|
|
|
- @click="() => changeTab(4)"
|
|
|
|
- :style="{
|
|
|
|
- backgroundColor: getTypeError(4, 'rgba'),
|
|
|
|
- color: 'rgba(156, 133, 255, 1)',
|
|
|
|
- }"
|
|
|
|
- >
|
|
|
|
- <p>
|
|
|
|
- 自定义错误
|
|
|
|
- <el-popover
|
|
|
|
- placement="top-start"
|
|
|
|
- :width="200"
|
|
|
|
- trigger="hover"
|
|
|
|
- content="若自定义的词语(除正词外)与系统通用逻辑检测出的错误重叠,则该词语会展示两条错误。例:“尊守”为系统检出的错误,若同时设置“尊守”为禁用词,则当文章中出现“尊守”时,会展示两条错误,一条为系统检出,一条为自定义禁用词错误。"
|
|
|
|
- >
|
|
|
|
- <template #reference>
|
|
|
|
- <div
|
|
|
|
- style="
|
|
|
|
- display: inline-block;
|
|
|
|
- border: 1px solid rgb(156, 133, 255);
|
|
|
|
- vertical-align: middle;
|
|
|
|
- border-radius: 50%;
|
|
|
|
- width: 1.2em;
|
|
|
|
- height: 1.2em;
|
|
|
|
- line-height: 1.2em;
|
|
|
|
- text-align: center;
|
|
|
|
- color: #5e5e5e;
|
|
|
|
- "
|
|
|
|
- >
|
|
|
|
- ?
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-popover>
|
|
|
|
- </p>
|
|
|
|
- {{ search.tabs[4] ? search.tabs[4].num : 0 }}
|
|
|
|
- </div>
|
|
|
|
- <div class="tab" v-else @click="() => changeTab(4)">
|
|
|
|
- <p>
|
|
|
|
- 自定义错误
|
|
|
|
- <el-popover
|
|
|
|
- placement="top-start"
|
|
|
|
- :width="200"
|
|
|
|
- trigger="hover"
|
|
|
|
- content="若自定义的词语(除正词外)与系统通用逻辑检测出的错误重叠,则该词语会展示两条错误。例:“尊守”为系统检出的错误,若同时设置“尊守”为禁用词,则当文章中出现“尊守”时,会展示两条错误,一条为系统检出,一条为自定义禁用词错误。"
|
|
|
|
- >
|
|
|
|
- <template #reference>
|
|
|
|
- <div
|
|
|
|
- style="
|
|
|
|
- display: inline-block;
|
|
|
|
- border: 1px solid rgb(156, 133, 255);
|
|
|
|
- vertical-align: middle;
|
|
|
|
- border-radius: 50%;
|
|
|
|
- width: 1.2em;
|
|
|
|
- height: 1.2em;
|
|
|
|
- line-height: 1.2em;
|
|
|
|
- text-align: center;
|
|
|
|
- color: #5e5e5e;
|
|
|
|
- "
|
|
|
|
- >
|
|
|
|
- ?
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-popover>
|
|
|
|
- </p>
|
|
|
|
- {{ search.tabs[4] ? search.tabs[4].num : 0 }}
|
|
|
|
- </div>
|
|
|
|
|
|
+ 清空
|
|
|
|
+ </el-button>
|
|
</div>
|
|
</div>
|
|
- <div>
|
|
|
|
- <el-radio-group v-model="tabAct">
|
|
|
|
- <el-radio :label="0">未处理: {{ search.list.length }}</el-radio>
|
|
|
|
- <el-radio :label="1">已忽略: {{ search.list1.length }}</el-radio>
|
|
|
|
- <el-radio :label="2">已替换: {{ search.list2.length }}</el-radio>
|
|
|
|
- </el-radio-group>
|
|
|
|
|
|
+ <div class="Fle">
|
|
|
|
+ <Editor v-model:rawText="rawText" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="search">
|
|
|
|
- <div v-if="tabAct === 0">
|
|
|
|
- <div v-for="(item, index) in search.list" :key="index">
|
|
|
|
- <div v-for="(v, i) in item.htmlWords" :key="'son' + i">
|
|
|
|
- <div
|
|
|
|
- v-if="tabSelect[item.um_error_level]"
|
|
|
|
- class="searchEnd"
|
|
|
|
- :style="{
|
|
|
|
- borderColor: getTypeError(item.um_error_level, 'rgb'),
|
|
|
|
- backgroundColor:
|
|
|
|
- select === index
|
|
|
|
- ? getTypeError(item.um_error_level, 'rgba')
|
|
|
|
- : '',
|
|
|
|
- }"
|
|
|
|
- @click="() => changeselect(index, item.type.belongId)"
|
|
|
|
- >
|
|
|
|
- <p style="display: flex">
|
|
|
|
- <span
|
|
|
|
- v-text="v.word"
|
|
|
|
- :style="{
|
|
|
|
- flex: 1,
|
|
|
|
- color: getTypeError(item.um_error_level, 'rgb'),
|
|
|
|
- }"
|
|
|
|
- ></span>
|
|
|
|
- <span
|
|
|
|
- style="flex: 1; text-align: right; color: #2dc76d"
|
|
|
|
- v-text="item.suggest[i]"
|
|
|
|
- ></span>
|
|
|
|
- </p>
|
|
|
|
- <p style="line-height: 2.5em">
|
|
|
|
- <span
|
|
|
|
- :style="{
|
|
|
|
- float: 'left',
|
|
|
|
- fontSize: '12px',
|
|
|
|
- }"
|
|
|
|
- >
|
|
|
|
- <span style="vertical-align: middle; margin-right: 5px">
|
|
|
|
- 错误原因:{{ item.youmeiWordName }}
|
|
|
|
- </span>
|
|
|
|
- <el-popover
|
|
|
|
- v-if="item.explanation"
|
|
|
|
- placement="top-start"
|
|
|
|
- :width="200"
|
|
|
|
- trigger="hover"
|
|
|
|
- :content="item.explanation"
|
|
|
|
|
|
+ <div class="flex2">
|
|
|
|
+ <div class="btn-grounp">检索结果</div>
|
|
|
|
+ <div style="padding: 1em 1em 0 1em">
|
|
|
|
+ <div class="tabs">
|
|
|
|
+ <div
|
|
|
|
+ class="tab"
|
|
|
|
+ @click="() => changeTabAll()"
|
|
|
|
+ style="background-color: #2974ff; color: #fff"
|
|
|
|
+ >
|
|
|
|
+ <p>全部错误</p>
|
|
|
|
+ {{ search.tabs[0] ? search.tabs[0].num : 0 }}
|
|
|
|
+ </div>
|
|
|
|
+ <div
|
|
|
|
+ class="tab"
|
|
|
|
+ @click="() => changeTab(1)"
|
|
|
|
+ v-if="tabSelect[1]"
|
|
|
|
+ :style="{
|
|
|
|
+ backgroundColor: getTypeError(1, 'rgba'),
|
|
|
|
+ color: getTypeError(1, 'rgb'),
|
|
|
|
+ }"
|
|
|
|
+ >
|
|
|
|
+ <p>严重错误</p>
|
|
|
|
+ {{ search.tabs[1] ? search.tabs[1].num : 0 }}
|
|
|
|
+ </div>
|
|
|
|
+ <div class="tab" @click="() => changeTab(1)" v-else>
|
|
|
|
+ <p>严重错误</p>
|
|
|
|
+ {{ search.tabs[1] ? search.tabs[1].num : 0 }}
|
|
|
|
+ </div>
|
|
|
|
+ <div
|
|
|
|
+ class="tab"
|
|
|
|
+ @click="() => changeTab(3)"
|
|
|
|
+ v-if="tabSelect[3]"
|
|
|
|
+ :style="{
|
|
|
|
+ backgroundColor: getTypeError(3, 'rgba'),
|
|
|
|
+ color: getTypeError(3, 'rgb'),
|
|
|
|
+ }"
|
|
|
|
+ >
|
|
|
|
+ <p>一般错误</p>
|
|
|
|
+ {{ search.tabs[3] ? search.tabs[3].num : 0 }}
|
|
|
|
+ </div>
|
|
|
|
+ <div class="tab" @click="() => changeTab(3)" v-else>
|
|
|
|
+ <p>一般错误</p>
|
|
|
|
+ {{ search.tabs[3] ? search.tabs[3].num : 0 }}
|
|
|
|
+ </div>
|
|
|
|
+ <div
|
|
|
|
+ class="tab"
|
|
|
|
+ @click="() => changeTab(2)"
|
|
|
|
+ v-if="tabSelect[2]"
|
|
|
|
+ :style="{
|
|
|
|
+ backgroundColor: getTypeError(2, 'rgba'),
|
|
|
|
+ color: 'rgba(73, 92, 202, 1)',
|
|
|
|
+ }"
|
|
|
|
+ >
|
|
|
|
+ <p>疑错</p>
|
|
|
|
+ {{ search.tabs[2] ? search.tabs[2].num : 0 }}
|
|
|
|
+ </div>
|
|
|
|
+ <div class="tab" @click="() => changeTab(2)" v-else>
|
|
|
|
+ <p>疑错</p>
|
|
|
|
+ {{ search.tabs[2] ? search.tabs[2].num : 0 }}
|
|
|
|
+ </div>
|
|
|
|
+ <div
|
|
|
|
+ class="tab"
|
|
|
|
+ v-if="tabSelect[4]"
|
|
|
|
+ @click="() => changeTab(4)"
|
|
|
|
+ :style="{
|
|
|
|
+ backgroundColor: getTypeError(4, 'rgba'),
|
|
|
|
+ color: 'rgba(156, 133, 255, 1)',
|
|
|
|
+ }"
|
|
|
|
+ >
|
|
|
|
+ <p>
|
|
|
|
+ 自定义错误
|
|
|
|
+ <el-popover
|
|
|
|
+ placement="top-start"
|
|
|
|
+ :width="200"
|
|
|
|
+ trigger="hover"
|
|
|
|
+ content="若自定义的词语(除正词外)与系统通用逻辑检测出的错误重叠,则该词语会展示两条错误。例:“尊守”为系统检出的错误,若同时设置“尊守”为禁用词,则当文章中出现“尊守”时,会展示两条错误,一条为系统检出,一条为自定义禁用词错误。"
|
|
|
|
+ >
|
|
|
|
+ <template #reference>
|
|
|
|
+ <div
|
|
|
|
+ style="
|
|
|
|
+ display: inline-block;
|
|
|
|
+ border: 1px solid rgb(156, 133, 255);
|
|
|
|
+ vertical-align: middle;
|
|
|
|
+ border-radius: 50%;
|
|
|
|
+ width: 1.2em;
|
|
|
|
+ height: 1.2em;
|
|
|
|
+ line-height: 1.2em;
|
|
|
|
+ text-align: center;
|
|
|
|
+ color: #5e5e5e;
|
|
|
|
+ "
|
|
>
|
|
>
|
|
- <template #reference>
|
|
|
|
- <div
|
|
|
|
- style="
|
|
|
|
- display: inline-block;
|
|
|
|
- border: 1px solid #5e5e5e;
|
|
|
|
- vertical-align: middle;
|
|
|
|
- border-radius: 50%;
|
|
|
|
- width: 1.2em;
|
|
|
|
- height: 1.2em;
|
|
|
|
- line-height: 1.2em;
|
|
|
|
- text-align: center;
|
|
|
|
- color: #5e5e5e;
|
|
|
|
- "
|
|
|
|
- >
|
|
|
|
- ?
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-popover>
|
|
|
|
- </span>
|
|
|
|
- <span style="float: right; text-align: right">
|
|
|
|
- <span
|
|
|
|
- class="btn"
|
|
|
|
- v-if="item.suggest[i]"
|
|
|
|
- @click.stop="
|
|
|
|
- () =>
|
|
|
|
- clearEle(
|
|
|
|
- item.colorPosition,
|
|
|
|
- item.suggest[i],
|
|
|
|
- index,
|
|
|
|
- 2
|
|
|
|
- )
|
|
|
|
|
|
+ ?
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-popover>
|
|
|
|
+ </p>
|
|
|
|
+ {{ search.tabs[4] ? search.tabs[4].num : 0 }}
|
|
|
|
+ </div>
|
|
|
|
+ <div class="tab" v-else @click="() => changeTab(4)">
|
|
|
|
+ <p>
|
|
|
|
+ 自定义错误
|
|
|
|
+ <el-popover
|
|
|
|
+ placement="top-start"
|
|
|
|
+ :width="200"
|
|
|
|
+ trigger="hover"
|
|
|
|
+ content="若自定义的词语(除正词外)与系统通用逻辑检测出的错误重叠,则该词语会展示两条错误。例:“尊守”为系统检出的错误,若同时设置“尊守”为禁用词,则当文章中出现“尊守”时,会展示两条错误,一条为系统检出,一条为自定义禁用词错误。"
|
|
|
|
+ >
|
|
|
|
+ <template #reference>
|
|
|
|
+ <div
|
|
|
|
+ style="
|
|
|
|
+ display: inline-block;
|
|
|
|
+ border: 1px solid rgb(156, 133, 255);
|
|
|
|
+ vertical-align: middle;
|
|
|
|
+ border-radius: 50%;
|
|
|
|
+ width: 1.2em;
|
|
|
|
+ height: 1.2em;
|
|
|
|
+ line-height: 1.2em;
|
|
|
|
+ text-align: center;
|
|
|
|
+ color: #5e5e5e;
|
|
"
|
|
"
|
|
- >替换</span
|
|
|
|
>
|
|
>
|
|
|
|
+ ?
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-popover>
|
|
|
|
+ </p>
|
|
|
|
+ {{ search.tabs[4] ? search.tabs[4].num : 0 }}
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div>
|
|
|
|
+ <el-radio-group v-model="tabAct">
|
|
|
|
+ <el-radio :label="0"
|
|
|
|
+ >未处理: {{ search.list.length }}</el-radio
|
|
|
|
+ >
|
|
|
|
+ <el-radio :label="1"
|
|
|
|
+ >已忽略: {{ search.list1.length }}</el-radio
|
|
|
|
+ >
|
|
|
|
+ <el-radio :label="2"
|
|
|
|
+ >已替换: {{ search.list2.length }}</el-radio
|
|
|
|
+ >
|
|
|
|
+ </el-radio-group>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="search">
|
|
|
|
+ <div v-if="tabAct === 0">
|
|
|
|
+ <div v-for="(item, index) in search.list" :key="index">
|
|
|
|
+ <div v-for="(v, i) in item.htmlWords" :key="'son' + i">
|
|
|
|
+ <div
|
|
|
|
+ v-if="tabSelect[item.um_error_level]"
|
|
|
|
+ class="searchEnd"
|
|
|
|
+ :style="{
|
|
|
|
+ borderColor: getTypeError(item.um_error_level, 'rgb'),
|
|
|
|
+ backgroundColor:
|
|
|
|
+ select === index
|
|
|
|
+ ? getTypeError(item.um_error_level, 'rgba')
|
|
|
|
+ : '',
|
|
|
|
+ }"
|
|
|
|
+ @click="() => changeselect(index, item.type.belongId)"
|
|
|
|
+ >
|
|
|
|
+ <p style="display: flex">
|
|
<span
|
|
<span
|
|
- class="btn"
|
|
|
|
- v-if="isDel(item.type.belongId)"
|
|
|
|
- @click.stop="
|
|
|
|
- () =>
|
|
|
|
- removeEle(
|
|
|
|
- item.colorPosition,
|
|
|
|
- item.suggest[i],
|
|
|
|
- index,
|
|
|
|
- 2
|
|
|
|
- )
|
|
|
|
- "
|
|
|
|
- >删除
|
|
|
|
- </span>
|
|
|
|
|
|
+ v-text="v.word"
|
|
|
|
+ :style="{
|
|
|
|
+ flex: 1,
|
|
|
|
+ color: getTypeError(item.um_error_level, 'rgb'),
|
|
|
|
+ }"
|
|
|
|
+ ></span>
|
|
<span
|
|
<span
|
|
- class="btn"
|
|
|
|
- @click.stop="
|
|
|
|
- () =>
|
|
|
|
- clearEle(
|
|
|
|
- item.colorPosition,
|
|
|
|
- item.wordHtml,
|
|
|
|
- index,
|
|
|
|
- 1
|
|
|
|
- )
|
|
|
|
- "
|
|
|
|
- >忽略</span
|
|
|
|
|
|
+ style="flex: 1; text-align: right; color: #2dc76d"
|
|
|
|
+ v-text="item.suggest[i]"
|
|
|
|
+ ></span>
|
|
|
|
+ </p>
|
|
|
|
+ <p style="line-height: 2.5em">
|
|
|
|
+ <span
|
|
|
|
+ :style="{
|
|
|
|
+ float: 'left',
|
|
|
|
+ fontSize: '12px',
|
|
|
|
+ }"
|
|
>
|
|
>
|
|
- </span>
|
|
|
|
- <span style="clear: both; display: block"></span>
|
|
|
|
- </p>
|
|
|
|
|
|
+ <span style="vertical-align: middle; margin-right: 5px">
|
|
|
|
+ 错误原因:{{ item.youmeiWordName }}
|
|
|
|
+ </span>
|
|
|
|
+ <el-popover
|
|
|
|
+ v-if="item.explanation"
|
|
|
|
+ placement="top-start"
|
|
|
|
+ :width="200"
|
|
|
|
+ trigger="hover"
|
|
|
|
+ :content="item.explanation"
|
|
|
|
+ >
|
|
|
|
+ <template #reference>
|
|
|
|
+ <div
|
|
|
|
+ style="
|
|
|
|
+ display: inline-block;
|
|
|
|
+ border: 1px solid #5e5e5e;
|
|
|
|
+ vertical-align: middle;
|
|
|
|
+ border-radius: 50%;
|
|
|
|
+ width: 1.2em;
|
|
|
|
+ height: 1.2em;
|
|
|
|
+ line-height: 1.2em;
|
|
|
|
+ text-align: center;
|
|
|
|
+ color: #5e5e5e;
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ ?
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-popover>
|
|
|
|
+ </span>
|
|
|
|
+ <span style="float: right; text-align: right">
|
|
|
|
+ <span
|
|
|
|
+ class="btn"
|
|
|
|
+ v-if="item.suggest[i]"
|
|
|
|
+ @click.stop="
|
|
|
|
+ () =>
|
|
|
|
+ clearEle(
|
|
|
|
+ item.colorPosition,
|
|
|
|
+ item.suggest[i],
|
|
|
|
+ index,
|
|
|
|
+ 2
|
|
|
|
+ )
|
|
|
|
+ "
|
|
|
|
+ >替换</span
|
|
|
|
+ >
|
|
|
|
+ <span
|
|
|
|
+ class="btn"
|
|
|
|
+ v-if="isDel(item.type.belongId)"
|
|
|
|
+ @click.stop="
|
|
|
|
+ () =>
|
|
|
|
+ removeEle(
|
|
|
|
+ item.colorPosition,
|
|
|
|
+ item.suggest[i],
|
|
|
|
+ index,
|
|
|
|
+ 2
|
|
|
|
+ )
|
|
|
|
+ "
|
|
|
|
+ >删除
|
|
|
|
+ </span>
|
|
|
|
+ <span
|
|
|
|
+ class="btn"
|
|
|
|
+ @click.stop="
|
|
|
|
+ () =>
|
|
|
|
+ clearEle(
|
|
|
|
+ item.colorPosition,
|
|
|
|
+ item.wordHtml,
|
|
|
|
+ index,
|
|
|
|
+ 1
|
|
|
|
+ )
|
|
|
|
+ "
|
|
|
|
+ >忽略</span
|
|
|
|
+ >
|
|
|
|
+ </span>
|
|
|
|
+ <span style="clear: both; display: block"></span>
|
|
|
|
+ </p>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <el-empty
|
|
|
|
+ description="所选类型下暂无信息"
|
|
|
|
+ v-if="!search.list || !search.list.length"
|
|
|
|
+ />
|
|
</div>
|
|
</div>
|
|
- <el-empty
|
|
|
|
- description="所选类型下暂无信息"
|
|
|
|
- v-if="!search.list || !search.list.length"
|
|
|
|
- />
|
|
|
|
- </div>
|
|
|
|
- <div v-if="tabAct === 1">
|
|
|
|
- <div v-for="(item, index) in search.list1 || []" :key="index">
|
|
|
|
- <div v-for="(v, i) in item.htmlWords" :key="'son' + i">
|
|
|
|
- <div
|
|
|
|
- class="searchEnd"
|
|
|
|
- v-if="tabSelect[item.um_error_level]"
|
|
|
|
- :style="{
|
|
|
|
- borderColor: getTypeError(item.um_error_level, 'rgb'),
|
|
|
|
- backgroundColor:
|
|
|
|
- select === index
|
|
|
|
- ? getTypeError(item.um_error_level, 'rgba')
|
|
|
|
- : '',
|
|
|
|
- }"
|
|
|
|
- @click="() => changeselect(index, item.type.belongId)"
|
|
|
|
- >
|
|
|
|
- <p style="display: flex">
|
|
|
|
- <span
|
|
|
|
- v-text="v.word"
|
|
|
|
- :style="{
|
|
|
|
- flex: 1,
|
|
|
|
- color: getTypeError(item.um_error_level, 'rgb'),
|
|
|
|
- }"
|
|
|
|
- ></span>
|
|
|
|
- <span
|
|
|
|
- style="flex: 1; text-align: right; color: #2dc76d"
|
|
|
|
- v-text="item.suggest[i]"
|
|
|
|
- ></span>
|
|
|
|
- </p>
|
|
|
|
- <p style="line-height: 2.5em">
|
|
|
|
- <span
|
|
|
|
- :style="{
|
|
|
|
- float: 'left',
|
|
|
|
- fontSize: '12px',
|
|
|
|
- }"
|
|
|
|
- >
|
|
|
|
- <span style="vertical-align: middle; margin-right: 5px">
|
|
|
|
- 错误原因:{{ item.youmeiWordName }}
|
|
|
|
- </span>
|
|
|
|
- <el-popover
|
|
|
|
- v-if="item.explanation"
|
|
|
|
- placement="top-start"
|
|
|
|
- :width="200"
|
|
|
|
- trigger="hover"
|
|
|
|
- :content="item.explanation"
|
|
|
|
- >
|
|
|
|
- <template #reference>
|
|
|
|
- <div
|
|
|
|
- style="
|
|
|
|
- display: inline-block;
|
|
|
|
- border: 1px solid #5e5e5e;
|
|
|
|
- vertical-align: middle;
|
|
|
|
- border-radius: 50%;
|
|
|
|
- width: 1.2em;
|
|
|
|
- height: 1.2em;
|
|
|
|
- line-height: 1.2em;
|
|
|
|
- text-align: center;
|
|
|
|
- color: #5e5e5e;
|
|
|
|
- "
|
|
|
|
- >
|
|
|
|
- ?
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-popover>
|
|
|
|
- </span>
|
|
|
|
- <span style="float: right; text-align: right">
|
|
|
|
- <span class="btn" @click.stop="() => back(item, index, 1)"
|
|
|
|
- >撤销</span
|
|
|
|
|
|
+ <div v-if="tabAct === 1">
|
|
|
|
+ <div v-for="(item, index) in search.list1 || []" :key="index">
|
|
|
|
+ <div v-for="(v, i) in item.htmlWords" :key="'son' + i">
|
|
|
|
+ <div
|
|
|
|
+ class="searchEnd"
|
|
|
|
+ v-if="tabSelect[item.um_error_level]"
|
|
|
|
+ :style="{
|
|
|
|
+ borderColor: getTypeError(item.um_error_level, 'rgb'),
|
|
|
|
+ backgroundColor:
|
|
|
|
+ select === index
|
|
|
|
+ ? getTypeError(item.um_error_level, 'rgba')
|
|
|
|
+ : '',
|
|
|
|
+ }"
|
|
|
|
+ @click="() => changeselect(index, item.type.belongId)"
|
|
|
|
+ >
|
|
|
|
+ <p style="display: flex">
|
|
|
|
+ <span
|
|
|
|
+ v-text="v.word"
|
|
|
|
+ :style="{
|
|
|
|
+ flex: 1,
|
|
|
|
+ color: getTypeError(item.um_error_level, 'rgb'),
|
|
|
|
+ }"
|
|
|
|
+ ></span>
|
|
|
|
+ <span
|
|
|
|
+ style="flex: 1; text-align: right; color: #2dc76d"
|
|
|
|
+ v-text="item.suggest[i]"
|
|
|
|
+ ></span>
|
|
|
|
+ </p>
|
|
|
|
+ <p style="line-height: 2.5em">
|
|
|
|
+ <span
|
|
|
|
+ :style="{
|
|
|
|
+ float: 'left',
|
|
|
|
+ fontSize: '12px',
|
|
|
|
+ }"
|
|
>
|
|
>
|
|
- </span>
|
|
|
|
- <span style="clear: both; display: block"></span>
|
|
|
|
- </p>
|
|
|
|
|
|
+ <span style="vertical-align: middle; margin-right: 5px">
|
|
|
|
+ 错误原因:{{ item.youmeiWordName }}
|
|
|
|
+ </span>
|
|
|
|
+ <el-popover
|
|
|
|
+ v-if="item.explanation"
|
|
|
|
+ placement="top-start"
|
|
|
|
+ :width="200"
|
|
|
|
+ trigger="hover"
|
|
|
|
+ :content="item.explanation"
|
|
|
|
+ >
|
|
|
|
+ <template #reference>
|
|
|
|
+ <div
|
|
|
|
+ style="
|
|
|
|
+ display: inline-block;
|
|
|
|
+ border: 1px solid #5e5e5e;
|
|
|
|
+ vertical-align: middle;
|
|
|
|
+ border-radius: 50%;
|
|
|
|
+ width: 1.2em;
|
|
|
|
+ height: 1.2em;
|
|
|
|
+ line-height: 1.2em;
|
|
|
|
+ text-align: center;
|
|
|
|
+ color: #5e5e5e;
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ ?
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-popover>
|
|
|
|
+ </span>
|
|
|
|
+ <span style="float: right; text-align: right">
|
|
|
|
+ <span
|
|
|
|
+ class="btn"
|
|
|
|
+ @click.stop="() => back(item, index, 1)"
|
|
|
|
+ >撤销</span
|
|
|
|
+ >
|
|
|
|
+ </span>
|
|
|
|
+ <span style="clear: both; display: block"></span>
|
|
|
|
+ </p>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <el-empty
|
|
|
|
+ description="所选类型下暂无信息"
|
|
|
|
+ v-if="!search.list1 || !search.list1.length"
|
|
|
|
+ />
|
|
</div>
|
|
</div>
|
|
- <el-empty
|
|
|
|
- description="所选类型下暂无信息"
|
|
|
|
- v-if="!search.list1 || !search.list1.length"
|
|
|
|
- />
|
|
|
|
- </div>
|
|
|
|
- <div v-if="tabAct === 2">
|
|
|
|
- <div v-for="(item, index) in search.list2 || []" :key="index">
|
|
|
|
- <div v-for="(v, i) in item.htmlWords" :key="'son' + i">
|
|
|
|
- <div
|
|
|
|
- class="searchEnd"
|
|
|
|
- v-if="tabSelect[item.um_error_level]"
|
|
|
|
- :style="{
|
|
|
|
- borderColor: getTypeError(item.um_error_level, 'rgb'),
|
|
|
|
- backgroundColor:
|
|
|
|
- select === index
|
|
|
|
- ? getTypeError(item.um_error_level, 'rgba')
|
|
|
|
- : '',
|
|
|
|
- }"
|
|
|
|
- @click="() => changeselect(index, item.type.belongId)"
|
|
|
|
- >
|
|
|
|
- <p style="display: flex">
|
|
|
|
- <span
|
|
|
|
- v-text="v.word"
|
|
|
|
- :style="{
|
|
|
|
- flex: 1,
|
|
|
|
- color: getTypeError(item.um_error_level, 'rgb'),
|
|
|
|
- }"
|
|
|
|
- ></span>
|
|
|
|
- <span
|
|
|
|
- style="flex: 1; text-align: right; color: #2dc76d"
|
|
|
|
- v-text="item.suggest[i]"
|
|
|
|
- ></span>
|
|
|
|
- </p>
|
|
|
|
- <p style="line-height: 2.5em">
|
|
|
|
- <span
|
|
|
|
- :style="{
|
|
|
|
- float: 'left',
|
|
|
|
- fontSize: '12px',
|
|
|
|
- }"
|
|
|
|
- >
|
|
|
|
- <span style="vertical-align: middle; margin-right: 5px">
|
|
|
|
- 错误原因:{{ item.youmeiWordName }}
|
|
|
|
- </span>
|
|
|
|
- <el-popover
|
|
|
|
- v-if="item.explanation"
|
|
|
|
- placement="top-start"
|
|
|
|
- :width="200"
|
|
|
|
- trigger="hover"
|
|
|
|
- :content="item.explanation"
|
|
|
|
- >
|
|
|
|
- <template #reference>
|
|
|
|
- <div
|
|
|
|
- style="
|
|
|
|
- display: inline-block;
|
|
|
|
- border: 1px solid #5e5e5e;
|
|
|
|
- vertical-align: middle;
|
|
|
|
- border-radius: 50%;
|
|
|
|
- width: 1.2em;
|
|
|
|
- height: 1.2em;
|
|
|
|
- line-height: 1.2em;
|
|
|
|
- text-align: center;
|
|
|
|
- color: #5e5e5e;
|
|
|
|
- "
|
|
|
|
- >
|
|
|
|
- ?
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-popover>
|
|
|
|
- </span>
|
|
|
|
- <span style="float: right; text-align: right">
|
|
|
|
|
|
+ <div v-if="tabAct === 2">
|
|
|
|
+ <div v-for="(item, index) in search.list2 || []" :key="index">
|
|
|
|
+ <div v-for="(v, i) in item.htmlWords" :key="'son' + i">
|
|
|
|
+ <div
|
|
|
|
+ class="searchEnd"
|
|
|
|
+ v-if="tabSelect[item.um_error_level]"
|
|
|
|
+ :style="{
|
|
|
|
+ borderColor: getTypeError(item.um_error_level, 'rgb'),
|
|
|
|
+ backgroundColor:
|
|
|
|
+ select === index
|
|
|
|
+ ? getTypeError(item.um_error_level, 'rgba')
|
|
|
|
+ : '',
|
|
|
|
+ }"
|
|
|
|
+ @click="() => changeselect(index, item.type.belongId)"
|
|
|
|
+ >
|
|
|
|
+ <p style="display: flex">
|
|
<span
|
|
<span
|
|
- class="btn"
|
|
|
|
- @click.stop="() => back(item, index, 2)"
|
|
|
|
|
|
+ v-text="v.word"
|
|
|
|
+ :style="{
|
|
|
|
+ flex: 1,
|
|
|
|
+ color: getTypeError(item.um_error_level, 'rgb'),
|
|
|
|
+ }"
|
|
|
|
+ ></span>
|
|
|
|
+ <span
|
|
|
|
+ style="flex: 1; text-align: right; color: #2dc76d"
|
|
|
|
+ v-text="item.suggest[i]"
|
|
|
|
+ ></span>
|
|
|
|
+ </p>
|
|
|
|
+ <p style="line-height: 2.5em">
|
|
|
|
+ <span
|
|
|
|
+ :style="{
|
|
|
|
+ float: 'left',
|
|
|
|
+ fontSize: '12px',
|
|
|
|
+ }"
|
|
>
|
|
>
|
|
- 撤销
|
|
|
|
|
|
+ <span style="vertical-align: middle; margin-right: 5px">
|
|
|
|
+ 错误原因:{{ item.youmeiWordName }}
|
|
|
|
+ </span>
|
|
|
|
+ <el-popover
|
|
|
|
+ v-if="item.explanation"
|
|
|
|
+ placement="top-start"
|
|
|
|
+ :width="200"
|
|
|
|
+ trigger="hover"
|
|
|
|
+ :content="item.explanation"
|
|
|
|
+ >
|
|
|
|
+ <template #reference>
|
|
|
|
+ <div
|
|
|
|
+ style="
|
|
|
|
+ display: inline-block;
|
|
|
|
+ border: 1px solid #5e5e5e;
|
|
|
|
+ vertical-align: middle;
|
|
|
|
+ border-radius: 50%;
|
|
|
|
+ width: 1.2em;
|
|
|
|
+ height: 1.2em;
|
|
|
|
+ line-height: 1.2em;
|
|
|
|
+ text-align: center;
|
|
|
|
+ color: #5e5e5e;
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ ?
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-popover>
|
|
|
|
+ </span>
|
|
|
|
+ <span style="float: right; text-align: right">
|
|
|
|
+ <span
|
|
|
|
+ class="btn"
|
|
|
|
+ @click.stop="() => back(item, index, 2)"
|
|
|
|
+ >
|
|
|
|
+ 撤销
|
|
|
|
+ </span>
|
|
</span>
|
|
</span>
|
|
- </span>
|
|
|
|
|
|
|
|
- <span style="clear: both; display: block"></span>
|
|
|
|
- </p>
|
|
|
|
|
|
+ <span style="clear: both; display: block"></span>
|
|
|
|
+ </p>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <el-empty
|
|
|
|
+ description="所选类型下暂无信息"
|
|
|
|
+ v-if="!search.list2 || !search.list2.length"
|
|
|
|
+ />
|
|
</div>
|
|
</div>
|
|
- <el-empty
|
|
|
|
- description="所选类型下暂无信息"
|
|
|
|
- v-if="!search.list2 || !search.list2.length"
|
|
|
|
- />
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -598,7 +609,8 @@ function getServer() {
|
|
const ele = document.querySelector(
|
|
const ele = document.querySelector(
|
|
"[data-umpos='" + item.colorPosition + "']"
|
|
"[data-umpos='" + item.colorPosition + "']"
|
|
);
|
|
);
|
|
- ele.style.borderBottom = '3px solid rgb(' + errType[item.um_error_level] + ')';
|
|
|
|
|
|
+ ele.style.borderBottom =
|
|
|
|
+ '3px solid rgb(' + errType[item.um_error_level] + ')';
|
|
if (!tabs[item.um_error_level])
|
|
if (!tabs[item.um_error_level])
|
|
tabs[item.um_error_level] = {
|
|
tabs[item.um_error_level] = {
|
|
num: 0,
|
|
num: 0,
|
|
@@ -615,7 +627,7 @@ function getServer() {
|
|
}
|
|
}
|
|
|
|
|
|
function geturl() {
|
|
function geturl() {
|
|
- const searchText = location.hash.split("?")[1] || "";
|
|
|
|
|
|
+ const searchText = location.hash.split('?')[1] || '';
|
|
let search = searchText.replace('?', '').split('&');
|
|
let search = searchText.replace('?', '').split('&');
|
|
let obj = {};
|
|
let obj = {};
|
|
for (let i = 0; i < search.length; i++) {
|
|
for (let i = 0; i < search.length; i++) {
|