|
@@ -0,0 +1,644 @@
|
|
|
+<template>
|
|
|
+ <div class="new-word-add">
|
|
|
+ <div class="new-word-add-top">
|
|
|
+ <h5>{{itemData?'编辑生词':'添加生词'}}</h5>
|
|
|
+ <div class="btn-box">
|
|
|
+ <el-button type="primary" size="small" @click="handleSave('newWordFlag')" :loading="loading">保存</el-button>
|
|
|
+ <el-button size="small" @click="onCancel('newWordFlag')">取消</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="new-word-add-bottom">
|
|
|
+ <div class="new-word-add-bottom-left">
|
|
|
+ <el-form :model="data" :rules="dataRules" ref="articleForm" label-width="100px" class="registerForm">
|
|
|
+ <el-form-item label="词头" prop="word_name">
|
|
|
+ <el-input v-model="data.word_name" autocomplete="off" placeholder="请输入词头" @blur="searchWordInfo" >
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="类别" prop="vl_level">
|
|
|
+ <el-radio-group v-model="data.vl_level" class="level-box" @input="changeLevel">
|
|
|
+ <el-radio v-for="item in vlInfo" :key="item.id" :label="item.id">{{item.cn}}</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="音标" prop="ph">
|
|
|
+ <el-input v-model="data.ph" autocomplete="off" placeholder="请输入音标" @blur="handleTrim('data','ph')" >
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="发音">
|
|
|
+ <div class="voice-box">
|
|
|
+ <el-button type="primary" size="small" @click="searchWordInfo()" :loading="searchLoading">自动匹配</el-button>
|
|
|
+ <upload :datafileList="data.ph_mp3" :changeFillId="handleAvatarSuccess" :fileName="'ph_mp3'" uploadType="mp3" tips=' ' :filleNumber="1" :showList="true" class="voice-upload" />
|
|
|
+ <p class="error-tips" v-if="!matchFlag"><svg-icon icon-class="error-warning-line"></svg-icon>匹配失败</p>
|
|
|
+ </div>
|
|
|
+ <ul v-if="data.ph_mp3&&data.ph_mp3.length>0" class="resource-list">
|
|
|
+ <li v-for="(itemR,indexR) in data.ph_mp3" :key="indexR">
|
|
|
+ <a @click="PlayAudio">
|
|
|
+ <svg-icon icon-class="mp3" class="icon-logo"></svg-icon><span>{{itemR.name}}</span>
|
|
|
+ <i class="el-icon-loading" v-if="audio.loading"></i>
|
|
|
+ <svg-icon v-if="audio.playing&&!audio.loading" icon-class="pause" className="icon-svg"></svg-icon>
|
|
|
+ <svg-icon v-if="!audio.playing&&!audio.loading" icon-class="play" className="icon-svg"></svg-icon>
|
|
|
+ <audio
|
|
|
+ id="createRecorded"
|
|
|
+ ref="createRecorded"
|
|
|
+ :src="data.ph_file_url"
|
|
|
+ preload="metadata"
|
|
|
+ />
|
|
|
+ </a>
|
|
|
+ <i class="el-icon-delete" @click="handleDelCourseResource()"></i>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="星级" prop="star">
|
|
|
+ <el-rate v-model="data.star"></el-rate>
|
|
|
+ </el-form-item>
|
|
|
+ <el-divider></el-divider>
|
|
|
+ <div v-for="(item,index) in data.word_para_list" :key="'cixing'+index" class="para-list">
|
|
|
+ <el-form-item label="词性" :prop="'word_para_list.'+index+'.cixing'"
|
|
|
+ :rules="{
|
|
|
+ required: true, message: '词性不能为空', trigger: 'change'
|
|
|
+ }">
|
|
|
+ <el-radio-group v-model="item.cixing" class="level-box">
|
|
|
+ <el-radio v-for="item in cixingList" :key="item.value" :label="item.label"></el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="释义" :prop="'word_para_list.'+index+'.para'"
|
|
|
+ :rules="{
|
|
|
+ required: true, message: '释义不能为空', trigger: 'blur'
|
|
|
+ }">
|
|
|
+ <el-input type="textarea" v-model="item.para" placeholder="请输入" maxlength="100" :rows="4" show-word-limit></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <i class="el-icon-delete" @click="handleDelPara(index)"></i>
|
|
|
+ </div>
|
|
|
+ <el-divider></el-divider>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" size="small" plain class="add-btn" @click="handleAddPara()"><i class="el-icon-plus"></i> 增加词性释义</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div class="new-word-add-bottom-right">
|
|
|
+ <div class="sentence-config">
|
|
|
+ <el-input v-model="data.btStr" placeholder="请输入词头本体变体信息,用/隔开"></el-input>
|
|
|
+ <el-button type="primary" size="small" @click="handleSentence">匹配句子</el-button>
|
|
|
+ <el-button type="primary" size="small" @click="handleSave('newWordFlag')"><i class="el-icon-plus"></i>添加句子</el-button>
|
|
|
+ </div>
|
|
|
+ <div class="channel-item" v-for="(item,index) in data.bind_sents" :key="index">
|
|
|
+ <div class="channel-top">
|
|
|
+ <i class="el-icon-caret-bottom" v-if="item.show" @click="handleChangeStatus(item)"></i>
|
|
|
+ <i class="el-icon-caret-top" v-else @click="handleChangeStatus(item)"></i>
|
|
|
+ <div class="channel-top-name">
|
|
|
+ {{(index+1)+'. '+item.text}}
|
|
|
+ </div>
|
|
|
+ <i class="el-icon-delete" @click="handleDeleteSents(index)"></i>
|
|
|
+ </div>
|
|
|
+ <el-collapse-transition>
|
|
|
+ <template v-if="item.show">
|
|
|
+ <div class="channel-bottom">
|
|
|
+ <p>匹配结果</p>
|
|
|
+ <ul>
|
|
|
+ <li v-for="(itent,indext) in item.tokens" :key="indext" :class="[item.highIndexArr.indexOf(indext)>-1?'active':'']" @click="handleHighIndex(item,indext)">
|
|
|
+ {{itent[2]}}
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-collapse-transition>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { getLogin } from "@/api/ajax";
|
|
|
+import Upload from "../../../components/Upload.vue"
|
|
|
+export default {
|
|
|
+ components: {Upload},
|
|
|
+ name: "newwordstemplate",
|
|
|
+ props: ["itemData","articleId","vlInfo", "sentenceList"],
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ data: {
|
|
|
+ word_name: '', // 词头
|
|
|
+ vl_level: null, // 类别
|
|
|
+ vl_level_name:'',
|
|
|
+ ph: '', // 音标
|
|
|
+ ph_mp3: [], // 发音数组
|
|
|
+ ph_mp3_id: '', // 发音文件id
|
|
|
+ ph_file_url: '', // 发音url
|
|
|
+ star: null, // 星级
|
|
|
+ word_para_list: [
|
|
|
+ {
|
|
|
+ cixing: '',
|
|
|
+ para: ''
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ bind_sents: [],
|
|
|
+ btStr: '', // 本体变体字符串
|
|
|
+ },
|
|
|
+ loading: false,
|
|
|
+ dataRules: {
|
|
|
+ word_name: [
|
|
|
+ { required: true, message: '请输入词头', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ vl_level: [
|
|
|
+ { required: true, message: '请选择类别', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ searchLoading: false,
|
|
|
+ player: null,
|
|
|
+ audio: {
|
|
|
+ // 该字段是音频是否处于播放状态的属性
|
|
|
+ playing: false,
|
|
|
+ loading: false,
|
|
|
+ playbackRate: 1,
|
|
|
+ volume: 100
|
|
|
+ },
|
|
|
+ cixingList:[
|
|
|
+ {
|
|
|
+ label:'n.',
|
|
|
+ value: 'n.'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label:'v.',
|
|
|
+ value: 'v.'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label:'adj.',
|
|
|
+ value: 'adj.'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label:'adv.',
|
|
|
+ value: 'adv.'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label:'prep.',
|
|
|
+ value: 'prep.'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label:'pron.',
|
|
|
+ value: 'pron.'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label:'conj.',
|
|
|
+ value: 'conj.'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label:'其他',
|
|
|
+ value: 'other'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ matchFlag: true,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ watch: {},
|
|
|
+ computed: {
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ handleSave(flag){
|
|
|
+ this.$refs['articleForm'].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ this.loading = true
|
|
|
+ let MethodName = '/PaperServer/Manager/ArticleManager/AddNewWordInArt'
|
|
|
+ let data = {
|
|
|
+ art_id: this.articleId,
|
|
|
+ word_name: this.data.word_name,
|
|
|
+ word_explain: this.data,
|
|
|
+ bind_sent_data: {
|
|
|
+ bind_sents: this.data.bind_sents
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(this.itemData){
|
|
|
+ MethodName = '/PaperServer/Manager/ArticleManager/EditNewWordInArt'
|
|
|
+ data.id = this.itemData.id
|
|
|
+ }
|
|
|
+ getLogin(MethodName, data)
|
|
|
+ .then((res) => {
|
|
|
+ if(res.status===1){
|
|
|
+ this.loading = false
|
|
|
+ this.$message.success('保存成功')
|
|
|
+ this.$emit('closeDialog',flag)
|
|
|
+ }
|
|
|
+ }).catch(()=>{
|
|
|
+ this.loading = false
|
|
|
+ })
|
|
|
+
|
|
|
+ }else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ changeLevel(val){
|
|
|
+ this.vlInfo.forEach(item=>{
|
|
|
+ if(item.id===val){
|
|
|
+ this.vl_level_name = item.cn
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleHighIndex(item,index){
|
|
|
+ if(item.highIndexArr.indexOf(index)>-1){
|
|
|
+ item.highIndexArr.splice(item.highIndexArr.indexOf(index),1)
|
|
|
+ }else{
|
|
|
+ item.highIndexArr.push(index)
|
|
|
+ }
|
|
|
+ this.$forceUpdate()
|
|
|
+ },
|
|
|
+ handleChangeStatus(item){
|
|
|
+ item.show = !item.show
|
|
|
+ this.$forceUpdate()
|
|
|
+ },
|
|
|
+ handleAvatarSuccess(fileList,name) {
|
|
|
+ this.data.ph_mp3 = fileList
|
|
|
+ this.data.ph_mp3_id = fileList[0]&&fileList[0].response&&fileList[0].response.file_info_list&&fileList[0].response.file_info_list[0]?fileList[0].response.file_info_list[0].file_id:''
|
|
|
+ this.data.ph_file_url = fileList[0]&&fileList[0].response&&fileList[0].response.file_info_list&&fileList[0].response.file_info_list[0]?fileList[0].response.file_info_list[0].file_url:''
|
|
|
+ this.audio = {
|
|
|
+ // 该字段是音频是否处于播放状态的属性
|
|
|
+ playing: false,
|
|
|
+ loading: false,
|
|
|
+ playbackRate: 1,
|
|
|
+ volume: 100
|
|
|
+ }
|
|
|
+ setTimeout(() => {
|
|
|
+ this.handleLoadAudio()
|
|
|
+ }, 500);
|
|
|
+ this.$forceUpdate()
|
|
|
+ },
|
|
|
+ onCancel(flag){
|
|
|
+ this.$emit('closeDialog',flag)
|
|
|
+ },
|
|
|
+ // 去掉前后空格
|
|
|
+ handleTrim(form,fild){
|
|
|
+ this[form][fild] = this[form][fild].trim()
|
|
|
+ },
|
|
|
+ // 查找单词信息
|
|
|
+ searchWordInfo(){
|
|
|
+ this.data.word_name = this.data.word_name.trim()
|
|
|
+ if(this.data.word_name){
|
|
|
+ this.searchLoading = true
|
|
|
+ let MethodName = '/PaperServer/Manager/ArticleManager/QueryWordInfoInArt'
|
|
|
+ let data = {
|
|
|
+ art_id: this.articleId,
|
|
|
+ word: this.data.word_name
|
|
|
+ }
|
|
|
+ getLogin(MethodName, data)
|
|
|
+ .then((res) => {
|
|
|
+ this.searchLoading = false
|
|
|
+ if(res.status===1){
|
|
|
+ this.matchFlag = true
|
|
|
+ if(res.data.vl_level){
|
|
|
+ this.data.vl_level = res.data.vl_level.id
|
|
|
+ this.data.vl_level_name = res.data.vl_level.cn
|
|
|
+ }
|
|
|
+ let list = res.data.dict_info?res.data.dict_info:[]
|
|
|
+ for(let i = 0; i < list.length; i++){
|
|
|
+ if(list[i].word_name === this.data.word_name){
|
|
|
+ if(list[i].symbols&&list[i].symbols.length>0){
|
|
|
+ this.data.ph = '/' + (list[i].symbols[0].ph_am || list[i].symbols[0].ph_en || list[i].symbols[0].ph_other) + '/'
|
|
|
+ if(list[i].symbols[0].ph_am_mp3||list[i].symbols[0].ph_en_mp3||list[i].symbols[0].ph_tts_mp3){
|
|
|
+ this.data.ph_mp3 = [{
|
|
|
+ name: this.data.word_name + '.mp3'
|
|
|
+ }]
|
|
|
+ this.data.ph_file_url = list[i].symbols[0].ph_am_mp3||list[i].symbols[0].ph_en_mp3||list[i].symbols[0].ph_tts_mp3
|
|
|
+ this.data.ph_mp3_id = ''
|
|
|
+ }
|
|
|
+ this.audio = {
|
|
|
+ // 该字段是音频是否处于播放状态的属性
|
|
|
+ playing: false,
|
|
|
+ loading: false,
|
|
|
+ playbackRate: 1,
|
|
|
+ volume: 100
|
|
|
+ }
|
|
|
+ setTimeout(() => {
|
|
|
+ this.handleLoadAudio()
|
|
|
+ }, 500);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.data.star = res.data.star?res.data.star:null
|
|
|
+ this.data.btStr = this.data.word_name
|
|
|
+ this.handleSentence()
|
|
|
+ }
|
|
|
+ }).catch(()=>{
|
|
|
+ this.matchFlag = false
|
|
|
+ this.searchLoading = false
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 匹配句子
|
|
|
+ handleSentence(){
|
|
|
+ let _this = this
|
|
|
+ let searchSentence = []
|
|
|
+ let wordArr = this.data.btStr.split('/')
|
|
|
+ wordArr.forEach(itemw=>{
|
|
|
+ for(let i = 0; i < _this.sentenceList.length; i++){
|
|
|
+ let items = _this.sentenceList[i]
|
|
|
+ if(items.tokens){
|
|
|
+ for(let j=0; j<items.tokens.length; j++){
|
|
|
+ let itemt = items.tokens[j]
|
|
|
+ if(itemt[2]===itemw){
|
|
|
+ let highIndexArr = []
|
|
|
+ items.tokens.forEach((itemss,index)=>{
|
|
|
+ if(itemss[2]===itemw){
|
|
|
+ highIndexArr.push(index)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ items.highIndexArr = highIndexArr
|
|
|
+ this.$set(items,'show',searchSentence.length===0?true:false)
|
|
|
+ searchSentence.push(items)
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.data.bind_sents = searchSentence
|
|
|
+ },
|
|
|
+ handleDeleteSents(index){
|
|
|
+ this.data.bind_sents.splice(index,1)
|
|
|
+ },
|
|
|
+ // 删除课程视频/音频
|
|
|
+ handleDelCourseResource(){
|
|
|
+ this.data.ph_mp3 = []
|
|
|
+ this.data.ph_mp3_id = ''
|
|
|
+ this.data.ph_file_url = ''
|
|
|
+ if(this.player) this.player.destroy()
|
|
|
+ this.audio = {
|
|
|
+ // 该字段是音频是否处于播放状态的属性
|
|
|
+ playing: false,
|
|
|
+ loading: false,
|
|
|
+ playbackRate: 1,
|
|
|
+ volume: 100
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 加载音频
|
|
|
+ handleLoadAudio(){
|
|
|
+ let _this = this;
|
|
|
+ let audio = document.getElementsByTagName("audio");
|
|
|
+ audio[0].addEventListener("play", function () {
|
|
|
+ _this.audio.playing = true;
|
|
|
+ _this.audio.loading = false;
|
|
|
+ });
|
|
|
+ audio[0].addEventListener("pause", function () {
|
|
|
+ _this.audio.playing = false;
|
|
|
+ });
|
|
|
+ audio[0].addEventListener("ended", function () {
|
|
|
+ _this.audio.playing = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ PlayAudio() {
|
|
|
+ let audio = document.getElementsByTagName("audio");
|
|
|
+ if (this.audio.playing) {
|
|
|
+ audio[0].pause();
|
|
|
+ this.audio.playing = false;
|
|
|
+ } else {
|
|
|
+ audio[0].play();
|
|
|
+ this.audio.playing = true;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleAddPara(){
|
|
|
+ if(this.data.word_para_list[this.data.word_para_list.length-1].cixing&&this.data.word_para_list[this.data.word_para_list.length-1].para){
|
|
|
+ this.data.word_para_list.push({
|
|
|
+ cixing: '',
|
|
|
+ para: ''
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ this.$message.warning('请填写完整')
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleDelPara(index){
|
|
|
+ if(this.data.word_para_list.length>1){
|
|
|
+ this.data.word_para_list.splice(index,1)
|
|
|
+ }else{
|
|
|
+ this.$message.warning('至少保留一个词性释义')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ if(this.itemData){
|
|
|
+ let data = JSON.parse(JSON.stringify(this.itemData))
|
|
|
+ this.data = data.word_explain
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ },
|
|
|
+ beforeDestroy() {
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.new-word-add{
|
|
|
+ &-top{
|
|
|
+ display: flex;
|
|
|
+ border-bottom: 1px solid #E5E6EB;
|
|
|
+ padding: 16px 24px;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ h5{
|
|
|
+ margin: 0;
|
|
|
+ color: #1D2129;
|
|
|
+ font-size: 20px;
|
|
|
+ font-weight: 500;
|
|
|
+ line-height: 28px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+.new-word-add-bottom{
|
|
|
+ display: flex;
|
|
|
+ &-left{
|
|
|
+ width: 504px;
|
|
|
+ padding: 40px 0;
|
|
|
+ border-right: 1px solid #E5E6EB;
|
|
|
+ }
|
|
|
+ &-right{
|
|
|
+ width: 695px;
|
|
|
+ padding: 32px 48px;
|
|
|
+ .sentence-config{
|
|
|
+ .el-input{
|
|
|
+ margin-right: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+.level-box{
|
|
|
+ .el-radio{
|
|
|
+ padding: 5px 0 8px 0;
|
|
|
+ line-height: 22px;
|
|
|
+ }
|
|
|
+}
|
|
|
+.voice-box{
|
|
|
+ display: flex;
|
|
|
+ >button{
|
|
|
+ margin-top: 2px;
|
|
|
+ }
|
|
|
+ .voice-upload{
|
|
|
+ margin-left: 8px;
|
|
|
+ height: 32px;
|
|
|
+ width: 90px;
|
|
|
+ }
|
|
|
+ .error-tips{
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 500;
|
|
|
+ line-height: 34px;
|
|
|
+ color: #F53F3F;
|
|
|
+ margin: 0;
|
|
|
+ .svg-icon{
|
|
|
+ width: 12px;
|
|
|
+ height: 12px;
|
|
|
+ margin-right: 4px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+.resource-list{
|
|
|
+ list-style: none;
|
|
|
+ margin: 12px 0 0 0;
|
|
|
+ padding: 0;
|
|
|
+ li{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ a{
|
|
|
+ width: 360px;
|
|
|
+ padding: 7px 12px;
|
|
|
+ background: #F7F8FA;
|
|
|
+ border-radius: 2px;
|
|
|
+ color: #1D2129;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ span{
|
|
|
+ overflow:hidden;
|
|
|
+ text-overflow:ellipsis;
|
|
|
+ white-space: nowrap;
|
|
|
+ flex: 1;
|
|
|
+ display: block;
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 22px;
|
|
|
+ }
|
|
|
+ .svg-icon{
|
|
|
+ width: 16px;
|
|
|
+ height: 16px;
|
|
|
+ margin-right: 8px;
|
|
|
+ color: #4E5969;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+.el-icon-delete{
|
|
|
+ color: #F53F3F;
|
|
|
+ cursor: pointer;
|
|
|
+ margin-left: 12px;
|
|
|
+ &:hover{
|
|
|
+ color: #F53F3F;
|
|
|
+ }
|
|
|
+}
|
|
|
+.para-list{
|
|
|
+ position: relative;
|
|
|
+ padding-right: 42px;
|
|
|
+ .el-icon-delete{
|
|
|
+ position: absolute;
|
|
|
+ right: 24px;
|
|
|
+ top: 10px;
|
|
|
+ }
|
|
|
+}
|
|
|
+.add-btn{
|
|
|
+ padding: 2px 12px;
|
|
|
+ border-radius: 2px;
|
|
|
+ border: 1px solid #165DFF;
|
|
|
+ color: #165DFF;
|
|
|
+ font-size: 12px;
|
|
|
+ font-weight: 400;
|
|
|
+ line-height: 20px;
|
|
|
+ background: #FFF;
|
|
|
+ .el-icon-plus{
|
|
|
+ margin-right: 8px;
|
|
|
+ }
|
|
|
+ &:hover{
|
|
|
+ background: #FFF;
|
|
|
+ color: #165DFF;
|
|
|
+ }
|
|
|
+}
|
|
|
+.channel-item{
|
|
|
+ border: 1px solid #E5E6EB;
|
|
|
+ margin: 12px 0;
|
|
|
+ .channel-top{
|
|
|
+ display: flex;
|
|
|
+ padding: 0 12px;
|
|
|
+ height: 42px;
|
|
|
+ align-items: center;
|
|
|
+ .el-icon-caret-bottom,.el-icon-caret-top{
|
|
|
+ color: #4E5969;
|
|
|
+ width: 14px;
|
|
|
+ height: 14px;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ &-name{
|
|
|
+ margin-left: 6px;
|
|
|
+ flex: 1;
|
|
|
+ color: #1D2129;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 400;
|
|
|
+ line-height: 22px;
|
|
|
+ overflow: hidden;
|
|
|
+ white-space: nowrap;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ }
|
|
|
+ .el-button--text{
|
|
|
+ padding: 2px 12px;
|
|
|
+ color: #165DFF;
|
|
|
+ .el-icon-plus{
|
|
|
+ width: 12px;
|
|
|
+ height: 12px;
|
|
|
+ margin-right: 8px;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .channel-bottom{
|
|
|
+ padding: 24px 40px;
|
|
|
+ border-top: 1px solid #E5E6EB;
|
|
|
+ p{
|
|
|
+ margin: 0 0 4px 0;
|
|
|
+ }
|
|
|
+ ul{
|
|
|
+ list-style: none;
|
|
|
+ padding: 0;
|
|
|
+ margin: 0;
|
|
|
+ display: flex;
|
|
|
+ flex-flow: wrap;
|
|
|
+ li{
|
|
|
+ color: #000;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 400;
|
|
|
+ line-height: 22px;
|
|
|
+ padding: 0 4px;
|
|
|
+ border-radius: 2px;
|
|
|
+ background: #F2F3F5;
|
|
|
+ margin: 4px 2px 0 0;
|
|
|
+ cursor: pointer;
|
|
|
+ &.active{
|
|
|
+ background: #175DFF;
|
|
|
+ color: #FFF;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|
|
|
+<style lang="scss">
|
|
|
+.new-word-add{
|
|
|
+ .el-rate{
|
|
|
+ padding: 4px 0;
|
|
|
+ .el-rate__item{
|
|
|
+ width: 24px;
|
|
|
+ height: 24px;
|
|
|
+ margin-right: 8px;
|
|
|
+ .el-rate__icon{
|
|
|
+ font-size: 24px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .el-divider{
|
|
|
+ width: 100% !important;
|
|
|
+ }
|
|
|
+ .upload-demo{
|
|
|
+ width: 90px !important;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|