|
@@ -41,6 +41,10 @@
|
|
|
<img src="../assets/image/m-xuanzhuan.png" class="m-image"/>
|
|
|
<span slot="title">批量旋转</span>
|
|
|
</el-menu-item>
|
|
|
+ <el-menu-item index="7" @click="setMenuIndex(7)">
|
|
|
+ <img src="../assets/image/m-name.png" class="m-image"/>
|
|
|
+ <span slot="title">批量命名</span>
|
|
|
+ </el-menu-item>
|
|
|
<el-menu-item index="10" @click="setMenuIndex(10)">
|
|
|
<img src="../assets/image/m-caijian.png" class="m-image"/>
|
|
|
<span slot="title">批量裁剪</span>
|
|
@@ -80,16 +84,37 @@
|
|
|
|
|
|
<div class="img-content" v-else>
|
|
|
<!-- 1、格式转换 2、图片压缩 3、修改dpi-->
|
|
|
- <template v-if="menuIndex == 1 || menuIndex == 2 || menuIndex == 11">
|
|
|
- <div style="height: calc(100% - 78px);">
|
|
|
- <vxe-table ref="xTable" show-overflow class="img-table" max-height="100%" empty-text="没有更多数据了!" :row-config="{isCurrent: true, isHover: true}"
|
|
|
+ <template v-if="menuIndex == 1 || menuIndex == 2 || menuIndex == 11 || menuIndex == 7">
|
|
|
+ <div :style="menuIndex == 7 ? 'height: calc(100% - 120px);' : 'height: calc(100% - 78px);'">
|
|
|
+ <vxe-table ref="xRenameTable" v-show="menuIndex == 7" show-overflow class="img-table" max-height="100%" empty-text="没有更多数据了!" :row-config="{isCurrent: true, isHover: true}"
|
|
|
:edit-config="{trigger: 'click', mode: 'cell'}" :data="imgList" :scroll-y="{enabled: true}">
|
|
|
<vxe-column field="name" :title="'文件名'+'(' + imgList.length + ')'" min-width="120"></vxe-column>
|
|
|
- <vxe-column field="path" title="缩略图" width="70">
|
|
|
+ <vxe-column field="newName" title="新文件名" min-width="120"></vxe-column>
|
|
|
+ <vxe-column field="path" title="文件位置" min-width="200"></vxe-column>
|
|
|
+ <vxe-column field="status" title="状态" min-width="110" max-width="160">
|
|
|
<template #default="{ row }">
|
|
|
- <el-image style="width: 30px; height: 30px" :src="row.path" fit="contain"></el-image>
|
|
|
+ <div v-if="row.status == '2'"><i class="el-icon-circle-check" style="color: #19be6b;"></i> 修改成功</div>
|
|
|
+ <div v-else-if="row.status == '3'"><i class="el-icon-circle-close" style="color: #ed4014;"></i> 修改失败</div>
|
|
|
+ <div v-else-if="row.status == '4'"><i class="el-icon-warning-outline" style="color: #ff9900;"></i> 文件被修改</div>
|
|
|
+ <div v-else-if="row.status == '5'"><i class="el-icon-warning-outline" style="color: #ff9900;"></i> 文件已存在</div>
|
|
|
+ <div v-else>待操作</div>
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ <vxe-column field="action" title="操作" width="80">
|
|
|
+ <template #default="{ row, rowIndex }">
|
|
|
+ <i class="el-icon-delete cur-pointer" @click="delImgFile(rowIndex)"></i>
|
|
|
</template>
|
|
|
</vxe-column>
|
|
|
+ </vxe-table>
|
|
|
+
|
|
|
+ <vxe-table ref="xTable" v-show="menuIndex != 7" show-overflow class="img-table" max-height="100%" empty-text="没有更多数据了!" :row-config="{isCurrent: true, isHover: true}"
|
|
|
+ :edit-config="{trigger: 'click', mode: 'cell'}" :data="imgList" :scroll-y="{enabled: true}">
|
|
|
+ <vxe-column field="name" :title="'文件名'+'(' + imgList.length + ')'" min-width="120"></vxe-column>
|
|
|
+ <!-- <vxe-column field="path" title="缩略图" width="70">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <el-image style="width: 30px; height: 30px" :src="row.path" fit="contain"></el-image>
|
|
|
+ </template>
|
|
|
+ </vxe-column> -->
|
|
|
<vxe-column field="size" title="大小" min-width="100" max-width="120">
|
|
|
<template #default="{ row }">
|
|
|
<span v-if="row.width == 0 && row.height == 0">-</span>
|
|
@@ -116,9 +141,10 @@
|
|
|
</vxe-table>
|
|
|
</div>
|
|
|
</template>
|
|
|
+
|
|
|
|
|
|
<!-- 3、更改尺寸 4、美化图片 5、添加水印 6、图片圆角 9、批量旋转 10、图片裁剪 -->
|
|
|
- <template v-if="[3,4,5,6,9,10].indexOf(menuIndex) > -1">
|
|
|
+ <template v-else-if="[3,4,5,6,9,10].indexOf(menuIndex) > -1">
|
|
|
<div class="soft-content">
|
|
|
<div class="content-left" style="width: calc(100% - 270px)">
|
|
|
<!-- 图片裁剪 -->
|
|
@@ -380,34 +406,6 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <!-- 7重命名 -->
|
|
|
- <template v-if="menuIndex == 7">
|
|
|
- <div class="handle-title">文件名</div>
|
|
|
- <div class="handle-item" >
|
|
|
- <label class="handle-label" style="width: 80px;">新文件名:</label>
|
|
|
- <el-input type="text" v-model="handleRename.fileName" size="small" placeholder="请输入新文件名" style="width:150px;" @change="setChange"></el-input>
|
|
|
- </div>
|
|
|
- <!-- 编号设置 -->
|
|
|
- <template>
|
|
|
- <div class="handle-title">编号设置</div>
|
|
|
- <div class="handle-item" >
|
|
|
- <label class="handle-label" style="width:45px">起始:</label>
|
|
|
- <el-input-number size="small" style="width: 60px;" :min="0" v-model="handleRename.startNumber" @change="setChange" ></el-input-number>
|
|
|
- <span class="i-desc font-12">(第一位编号的值)</span>
|
|
|
- </div>
|
|
|
- <div class="handle-item" >
|
|
|
- <label class="handle-label" style="width:45px">增量:</label>
|
|
|
- <el-input-number size="small" style="width: 60px;" v-model="handleRename.increment" @change="setChange" ></el-input-number>
|
|
|
- <span class="i-desc font-12">(后一位编号增加的值)</span>
|
|
|
- </div>
|
|
|
- <div class="handle-item" >
|
|
|
- <label class="handle-label" style="width:45px">位数:</label>
|
|
|
- <el-input-number size="small" style="width: 60px;" v-model="handleRename.digit" @change="setChange" ></el-input-number>
|
|
|
- <span class="i-desc font-12">(例:001的编号位数为3)</span>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </template>
|
|
|
-
|
|
|
<!-- 9批量旋转 -->
|
|
|
<div v-if="menuIndex == 9">
|
|
|
<div class="handle-item xuan-flex">
|
|
@@ -704,47 +702,71 @@
|
|
|
|
|
|
<!-- 底部设置区域 -->
|
|
|
<div class="img-footer-area">
|
|
|
- <!-- 1格式转化 -->
|
|
|
- <div class="handle-item" v-if="menuIndex == 1">
|
|
|
- <label class="handle-label">格式转换:</label>
|
|
|
- <el-select v-model="handleData.imgFormat" style="width:100px;" size="small">
|
|
|
- <el-option v-for="(item, key) in imgFormat" :key="key" :value="item" :label="item"></el-option>
|
|
|
- </el-select>
|
|
|
- </div>
|
|
|
- <!-- 2图片压缩 -->
|
|
|
- <div class="handle-item" v-if="menuIndex == 2">
|
|
|
- <label class="handle-label">压缩质量:</label>
|
|
|
- <el-input-number v-model="handleData.quality" :min="1" :max="100" size="small"></el-input-number>
|
|
|
- <vxe-button type="text" status="info" icon="vxe-icon-info-circle-fill" @click="$message({message:'质量越低压缩的越小', type:'warning'})"></vxe-button>
|
|
|
- </div>
|
|
|
- <!-- 11修改dpi -->
|
|
|
- <div class="handle-item" v-if="menuIndex == 11">
|
|
|
- <label>将图片DPI更改为:</label>
|
|
|
- <el-select v-model="handleData.dpi" style="width:100px;" size="small">
|
|
|
- <el-option :value="72" label="72DPI"></el-option>
|
|
|
- <el-option :value="96" label="96DPI"></el-option>
|
|
|
- <el-option :value="150" label="150DPI"></el-option>
|
|
|
- <el-option :value="200" label="200DPI"></el-option>
|
|
|
- <el-option :value="300" label="300DPI"></el-option>
|
|
|
- <el-option :value="350" label="350DPI"></el-option>
|
|
|
- <el-option :value="500" label="500DPI"></el-option>
|
|
|
- <el-option :value="1000" label="1000DPI"></el-option>
|
|
|
- </el-select>
|
|
|
- <vxe-button type="text" status="info" icon="vxe-icon-info-circle-fill" @click="$message({message:'提高分辨率(DPI)不能让模糊的图片变清晰,也不会改变照片的高宽像素等属性', type:'warning'})"></vxe-button>
|
|
|
- </div>
|
|
|
- <div class="handle-item" v-else></div>
|
|
|
+ <div class="handle-item" v-if="menuIndex == 7">
|
|
|
+ <label class="handle-label" style="width:80px;">起始编号:</label>
|
|
|
+ <el-input-number size="small" style="width: 110px;" :min="0" v-model="handleRename.startNumber" @change="setChange" ></el-input-number>
|
|
|
|
|
|
- <div>
|
|
|
- <span>保存目录:</span>
|
|
|
- <el-input :title="handleData.newPath" ref="upload-input" @focus="pickPath" placeholder="请选择输出目录" size="small" v-model="handleData.newPath" readonly style="width:180px;" prefix-icon="el-icon-folder"></el-input>
|
|
|
- <el-popover placement="bottom" popper-class="popper-open" trigger="hover" content="打开保存目录">
|
|
|
- <i class="el-icon-folder-opened" slot="reference" style="padding-left: 5px; cursor: pointer; font-size: 22px; vertical-align: middle;" @click="openFolder()"></i>
|
|
|
- </el-popover>
|
|
|
- <el-button type="danger" style="margin: 0 20px;" @click="exportImg()" :loading="loading">开始转换</el-button>
|
|
|
+ <label class="handle-label">增量:</label>
|
|
|
+ <el-input-number size="small" style="width: 110px;" v-model="handleRename.increment" @change="setChange" ></el-input-number>
|
|
|
+ <span class="i-desc font-12">(后一位编号增加的值)</span>
|
|
|
+
|
|
|
+ <label class="handle-label">位数:</label>
|
|
|
+ <el-input-number size="small" style="width: 110px;" v-model="handleRename.digit" @change="setChange" ></el-input-number>
|
|
|
+ <span class="i-desc font-12">(例:001的编号位数为3)</span>
|
|
|
+ </div>
|
|
|
+ <div class="footer-line-between">
|
|
|
+ <!-- 1格式转化 -->
|
|
|
+ <div class="handle-item" v-if="menuIndex == 1">
|
|
|
+ <label class="handle-label">格式转换:</label>
|
|
|
+ <el-select v-model="handleData.imgFormat" style="width:100px;" size="small">
|
|
|
+ <el-option v-for="(item, key) in imgFormat" :key="key" :value="item" :label="item"></el-option>
|
|
|
+ </el-select>
|
|
|
+ <vxe-button v-if="handleData.imgFormat == 'ICO'" type="text" status="info" icon="vxe-icon-info-circle-fill" @click="$message('图标资源ICO有最大尺寸限制,建议尺寸低于512x512')"></vxe-button>
|
|
|
+ <vxe-button v-if="isGif" type="text" status="info" icon="vxe-icon-info-circle-fill" @click="$message('GIF图片默认输出第一帧,多帧输出到单独文件夹中')"></vxe-button>
|
|
|
+ <el-checkbox v-if="isGif" v-model="gifChecked">GIF图片输出所有帧</el-checkbox>
|
|
|
+ </div>
|
|
|
+ <!-- 2图片压缩 -->
|
|
|
+ <div class="handle-item" v-if="menuIndex == 2">
|
|
|
+ <label class="handle-label">压缩质量:</label>
|
|
|
+ <el-input-number v-model="handleData.quality" :min="1" :max="100" size="small"></el-input-number>
|
|
|
+ <vxe-button type="text" status="info" icon="vxe-icon-info-circle-fill" @click="$message('质量越低压缩的越小')"></vxe-button>
|
|
|
+ </div>
|
|
|
+ <!-- 11修改dpi -->
|
|
|
+ <div class="handle-item" v-if="menuIndex == 11">
|
|
|
+ <label>将图片DPI更改为:</label>
|
|
|
+ <el-select v-model="handleData.dpi" style="width:100px;" size="small">
|
|
|
+ <el-option :value="72" label="72DPI"></el-option>
|
|
|
+ <el-option :value="96" label="96DPI"></el-option>
|
|
|
+ <el-option :value="150" label="150DPI"></el-option>
|
|
|
+ <el-option :value="200" label="200DPI"></el-option>
|
|
|
+ <el-option :value="300" label="300DPI"></el-option>
|
|
|
+ <el-option :value="350" label="350DPI"></el-option>
|
|
|
+ <el-option :value="500" label="500DPI"></el-option>
|
|
|
+ <el-option :value="1000" label="1000DPI"></el-option>
|
|
|
+ </el-select>
|
|
|
+ <vxe-button type="text" status="info" icon="vxe-icon-info-circle-fill" @click="$message({message:'提高分辨率(DPI)不能让模糊的图片变清晰,也不会改变照片的高宽像素等属性', type:'warning'})"></vxe-button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 7重命名 -->
|
|
|
+ <div v-if="menuIndex == 7">
|
|
|
+ <div class="handle-item" >
|
|
|
+ <label class="handle-label" style="width: 80px;">新文件名:</label>
|
|
|
+ <el-input type="text" v-model="handleRename.fileName" size="small" placeholder="请输入新文件名" style="width:200px;" @change="setChange"></el-input>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-else> </div>
|
|
|
+
|
|
|
+ <div>
|
|
|
+ <span>保存目录:</span>
|
|
|
+ <el-input :title="handleData.newPath" ref="upload-input" @focus="pickPath" placeholder="请选择输出目录" size="small" v-model="handleData.newPath" readonly style="width:180px;" prefix-icon="el-icon-folder"></el-input>
|
|
|
+ <el-popover placement="bottom" popper-class="popper-open" trigger="hover" content="打开保存目录">
|
|
|
+ <i class="el-icon-folder-opened" slot="reference" style="padding-left: 5px; cursor: pointer; font-size: 22px; vertical-align: middle;" @click="openFolder()"></i>
|
|
|
+ </el-popover>
|
|
|
+ <el-button type="danger" style="margin: 0 20px;" @click="exportImg()" :loading="loading">开始转换</el-button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
-
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
@@ -784,6 +806,14 @@
|
|
|
<el-button type="primary" @click="resetOk()">确 定</el-button>
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
+
|
|
|
+ <el-dialog :visible.sync="renameModal" width="400px">
|
|
|
+ <el-result icon="success" title="处理完成" :subTitle="subTitle">
|
|
|
+ <template slot="extra">
|
|
|
+ <el-button type="primary" @click="renameModal = false;">确定</el-button>
|
|
|
+ </template>
|
|
|
+ </el-result>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
@@ -818,11 +848,15 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ isGif: false, //是否含有gif图片
|
|
|
+ gifChecked: false, // 是否输出所有帧
|
|
|
rollFlag: false,
|
|
|
viewScale: 1,
|
|
|
productName: pjson.softInfo.softName,
|
|
|
setModal: false,
|
|
|
resetModal: false,
|
|
|
+ renameModal: false,
|
|
|
+ subTitle: '请查看列表文件状态',
|
|
|
cropimgShow: false,
|
|
|
cropImgIndex: -1,
|
|
|
cropInt: false,
|
|
@@ -1331,11 +1365,6 @@ export default {
|
|
|
}, 3000);
|
|
|
|
|
|
},
|
|
|
- outImage(){
|
|
|
- this.$refs.cropper.getCropData(data => {
|
|
|
- this.handleDownload(data, 'D:\\1.jpg');
|
|
|
- })
|
|
|
- },
|
|
|
|
|
|
handleDownload(data, path){
|
|
|
var dataBuffer = new Buffer(data.split(',')[1], 'base64');
|
|
@@ -1400,6 +1429,8 @@ export default {
|
|
|
}
|
|
|
|
|
|
this.rollFlag = false;
|
|
|
+ this.isGif = false;
|
|
|
+ this.gifChecked = false;
|
|
|
},
|
|
|
setMenuIndex(index){
|
|
|
this.menuIndex = index;
|
|
@@ -1552,6 +1583,9 @@ export default {
|
|
|
if(this.imgFormat.indexOf(imgInfo.type.toUpperCase()) == -1){
|
|
|
this.$message({message: '不是有效的图片文件! - '+ file , type: 'warning'});
|
|
|
}else{
|
|
|
+ if(imgInfo.type.toUpperCase() == 'GIF'){
|
|
|
+ this.isGif = true;
|
|
|
+ }
|
|
|
try {
|
|
|
let dimensions = sizeOf(file);
|
|
|
imgInfo.width = dimensions.width;
|
|
@@ -1624,7 +1658,7 @@ export default {
|
|
|
this.handleData.height = this.imgInfo.height;
|
|
|
this.imgLoading = true;
|
|
|
|
|
|
- if([1,2,11].indexOf(this.menuIndex) == -1){
|
|
|
+ if([1,2,7,11].indexOf(this.menuIndex) == -1){
|
|
|
electronApi.fileStream(this.imgInfo.path).then(buffer => {
|
|
|
this.imgSrc = "data:image/png;base64,"+buffer.toString('base64');
|
|
|
this.imgLoading = false;
|
|
@@ -1779,7 +1813,7 @@ export default {
|
|
|
taskArr = [];
|
|
|
}).catch(err => {
|
|
|
// 错误文件添加到服务中
|
|
|
- console.log('err',err)
|
|
|
+ console.log('err',err);
|
|
|
})
|
|
|
}
|
|
|
|
|
@@ -1822,8 +1856,8 @@ export default {
|
|
|
electronApi.spawnExec(cmd,{
|
|
|
stderr:(data) => {
|
|
|
let str = data.toString();
|
|
|
- const regexDuration = /load.*?,(.*?)%/;
|
|
|
- const regexDuration2 = /save.*?,(.*?)%/;
|
|
|
+ const regexDuration = /Load.*?,(.*?)%/;
|
|
|
+ const regexDuration2 = /Save.*?,(.*?)%/;
|
|
|
|
|
|
const res = regexDuration.exec(str);
|
|
|
const res2 = regexDuration2.exec(str);
|
|
@@ -1870,13 +1904,29 @@ export default {
|
|
|
break;
|
|
|
case 1: // 格式转换
|
|
|
task = new Promise((resolve,reject) => {
|
|
|
+
|
|
|
let imgPath = imgInfo.path;
|
|
|
- if(imgInfo.type == 'psd'){
|
|
|
+ let gifParams = [];
|
|
|
+ if(imgInfo.type.toLowerCase() == 'psd'){
|
|
|
imgPath = imgInfo.path + '[0]';
|
|
|
}
|
|
|
+ if(imgInfo.type.toLowerCase() == 'gif'){
|
|
|
+ if(this.gifChecked){
|
|
|
+ gifParams = ['-coalesce'];
|
|
|
+ let name = imgInfo.name.slice(0, imgInfo.name.lastIndexOf('.'));
|
|
|
+ let gifPath = this.downloadDir + separator + pjson.softInfo.softName + separator + name;
|
|
|
+ if(!fs.existsSync(gifPath)){
|
|
|
+ fs.mkdirSync(gifPath);
|
|
|
+ }
|
|
|
+ newPath = gifPath + separator + name + '.' + this.handleData.imgFormat.toLowerCase();
|
|
|
+ }else{
|
|
|
+ imgPath = imgInfo.path + '[0]';
|
|
|
+ }
|
|
|
+ }
|
|
|
let cmd = [
|
|
|
'convert.exe',
|
|
|
'-monitor',
|
|
|
+ ...gifParams,
|
|
|
imgPath,
|
|
|
newPath
|
|
|
];
|
|
@@ -1884,12 +1934,14 @@ export default {
|
|
|
electronApi.spawnExec(cmd,{
|
|
|
stderr:(data) => {
|
|
|
let str = data.toString();
|
|
|
- const regexDuration = /load.*?,(.*?)%/;
|
|
|
- const regexDuration2 = /save.*?,(.*?)%/;
|
|
|
+ const regexDuration = /Load.*?,(.*?)%/;
|
|
|
+ let regexDuration2 = /Save.*?,(.*?)%/;
|
|
|
+ if(imgInfo.type.toLowerCase() == 'gif'){
|
|
|
+ regexDuration2 = /Write.*?,(.*?)%/;
|
|
|
+ }
|
|
|
|
|
|
const res = regexDuration.exec(str);
|
|
|
const res2 = regexDuration2.exec(str);
|
|
|
-
|
|
|
let p1 = 0;
|
|
|
let p2 = 0;
|
|
|
if(res && res[1]){
|
|
@@ -1946,8 +1998,8 @@ export default {
|
|
|
electronApi.spawnExec(['convert.exe','-monitor',...extraParams,imgInfo.path, newPath],{
|
|
|
stderr:(data) => {
|
|
|
let str = data.toString();
|
|
|
- const regexDuration = /load.*?,(.*?)%/;
|
|
|
- const regexDuration2 = /save.*?,(.*?)%/;
|
|
|
+ const regexDuration = /Load.*?,(.*?)%/;
|
|
|
+ const regexDuration2 = /Save.*?,(.*?)%/;
|
|
|
const res = regexDuration.exec(str);
|
|
|
const res2 = regexDuration2.exec(str);
|
|
|
|
|
@@ -2093,8 +2145,8 @@ export default {
|
|
|
electronApi.spawnExec(params,{
|
|
|
stderr:(data) => {
|
|
|
let str = data.toString();
|
|
|
- const regexDuration = /load.*?,(.*?)%/;
|
|
|
- const regexDuration2 = /save.*?,(.*?)%/;
|
|
|
+ const regexDuration = /Load.*?,(.*?)%/;
|
|
|
+ const regexDuration2 = /Save.*?,(.*?)%/;
|
|
|
|
|
|
const res = regexDuration.exec(str);
|
|
|
const res2 = regexDuration2.exec(str);
|
|
@@ -2798,12 +2850,13 @@ export default {
|
|
|
});
|
|
|
setTimeout(() => {
|
|
|
this.renameLoading.close();
|
|
|
- this.$alert('重命名成功', '提示', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- callback: action => {
|
|
|
- this.setChange();
|
|
|
- }
|
|
|
- });
|
|
|
+ this.renameModal = true;
|
|
|
+ // this.$alert('重命名成功', '提示', {
|
|
|
+ // confirmButtonText: '确定',
|
|
|
+ // callback: action => {
|
|
|
+ // this.setChange();
|
|
|
+ // }
|
|
|
+ // });
|
|
|
this.imgList = JSON.parse(JSON.stringify(tempList));
|
|
|
}, 3000);
|
|
|
|
|
@@ -2811,7 +2864,7 @@ export default {
|
|
|
|
|
|
let size = 999999999;
|
|
|
if(!authority.isAuthority){
|
|
|
- size = 5;
|
|
|
+ size = 10;
|
|
|
}
|
|
|
|
|
|
setTimeout(()=>{
|
|
@@ -3851,4 +3904,14 @@ export default {
|
|
|
width: 25px;
|
|
|
margin-right: 5px;
|
|
|
}
|
|
|
+
|
|
|
+ .el-menu-item.is-active{
|
|
|
+ font-weight: 800;
|
|
|
+ font-size: 16px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-menu-item:hover{
|
|
|
+ font-weight: 800;
|
|
|
+ font-size: 16px;
|
|
|
+ }
|
|
|
</style>
|