qiushang 1 år sedan
förälder
incheckning
66bfef9e63
2 ändrade filer med 115 tillägg och 6 borttagningar
  1. 1 1
      src/renderer/assets/css/home.scss
  2. 114 5
      src/renderer/components/home.vue

+ 1 - 1
src/renderer/assets/css/home.scss

@@ -276,7 +276,7 @@ div,p{
 }
 
 .table-scroll {
-  overflow-y: auto;
+  overflow: hidden;
   height: 100%;
 }
 

+ 114 - 5
src/renderer/components/home.vue

@@ -96,7 +96,7 @@
 						</el-button-group>
 						
 						<div>
-							<el-popover placement="bottom" popper-class="popper-open" trigger="hover" content="命名撤回一次">
+							<el-popover v-if="['1','2'].indexOf(menuIndex) > -1" placement="bottom" popper-class="popper-open" trigger="hover" content="命名撤回一次">
 								<i slot="reference" class="el-icon-refresh-left icon-back icon-back-grey" v-if="backFileList.length == 0" ></i>
 								<i slot="reference" class="el-icon-refresh-left icon-back" v-else  @click="back()"></i>
 							</el-popover>
@@ -314,10 +314,63 @@
 								
 							</div>
 						</div>
+						
+						<!-- 设置区域 -->
 						<div class="content-right">
 							
-							<!--5、时间属性 -->
-							<template v-if="menuIndex == '3' || menuIndex == '4'">
+							<!--提取设置 -->
+							<template v-if="['5', '6'].indexOf(menuIndex) > -1">
+								<el-divider content-position="left">
+									<i class="el-icon-s-goods" style="margin-right: 3px;"></i>提取内容
+									<el-popover placement="bottom" popper-class="popper-open" trigger="hover" content="勾选内容将与文件名一起提取">
+									    <i class="el-icon-question" style="color: #888;" slot="reference"></i>
+									</el-popover>
+								</el-divider>
+								<div class="handle-item" v-if="menuIndex == '5'">
+									<el-checkbox v-model="extractData.includeSuffix">包含扩展名</el-checkbox>
+								</div>
+								<div class="handle-item">
+									<el-checkbox v-model="extractData.includePath">提取文件路径</el-checkbox>
+								</div>
+								<div class="handle-item">
+									<el-checkbox v-model="extractData.includeBtime">提取文件创建时间</el-checkbox>
+								</div>
+								<div class="handle-item">
+									<el-checkbox v-model="extractData.includeMtime">提取文件修改时间</el-checkbox>
+								</div>
+								
+								<el-divider content-position="left"><i class="el-icon-s-tools" style="margin-right: 3px;"></i>导出设置</el-divider>
+								<el-popover placement="left" popper-class="popper-open" width="200" trigger="manual" v-model="visible4" content='文件名不能包含下列任何字符: \ / : * ? " < > |'>
+									<i slot="reference"></i>
+								</el-popover>
+								
+								<div class="handle-item" >
+									<label class="handle-label">导出名称:</label>
+									<el-input v-if="menuIndex == '5'" v-model="extractData.fileName" placeholder="请输入名称" style="width:150px;" size="small" @input="extractChange('fileName')"></el-input>
+									<el-input v-if="menuIndex == '6'" v-model="extractData.dirName" placeholder="请输入名称" style="width:150px;" size="small" @input="extractChange('dirName')"></el-input>
+								</div>
+								<div class="handle-item" >
+									<label class="handle-label">导出格式:</label>
+									<el-select v-model="extractData.exportSuffix" style="width:150px;" size="small">
+										<el-option value="xlsx" label="xlsx"></el-option>
+										<el-option value="docx" label="docx"></el-option>
+										<el-option value="txt" label="txt"></el-option>
+									</el-select>
+								</div>
+								<div class="handle-item" >
+									<label class="handle-label">导出目录:</label>
+									<el-input :title="extractData.newPath" ref="upload-input" @focus="pickPath" placeholder="请选择输出目录" size="small" v-model="extractData.newPath" readonly style="width:150px; font-size: 12px;" 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="width: 18px;cursor: pointer; font-size: 22px; vertical-align: middle;" @click="openFolder()"></i>
+									</el-popover>
+								</div>
+								
+								
+								
+							</template>
+							
+							<!--时间属性 -->
+							<template v-if="['3', '4'].indexOf(menuIndex) > -1">
 								<el-divider content-position="left"><i class="el-icon-s-flag" style="margin-right: 3px;"></i>时间属性</el-divider>
 								<div class="handle-item">
 									<label class="handle-label">创建时间:</label>
@@ -329,7 +382,8 @@
 								</div>
 							</template>
 							
-							<template v-else>
+							<!-- 重命名设置 -->
+							<template v-if="['1', '2'].indexOf(menuIndex) > -1">
 								<div class="handle-item">
 									<label class="handle-label">命名方式:</label>
 									<el-select v-model="handleData.fileMethod" style="width:150px;" size="small" @change="setChange">
@@ -584,6 +638,7 @@ export default {
 			visible: false,
 			visible2: false,
 			visible3: false,
+			visible4: false,
 			tipsModal: true,
 			tipsDesc: '非会员不支持修改时间属性,如需完整功能请开通会员',
 			imgUrl: this.$api.imgUrl,
@@ -596,7 +651,6 @@ export default {
 			dirTimeList: [], //文件夹时间列表
 	
 	        downloadDir: '', // 默认下载目录
-	        softdownloadDir: '', // 软件下载目录
 	        handleData: {
 				fileMethod: "1", //命名方式
 				fileName: "", // 新文件名
@@ -629,6 +683,18 @@ export default {
 				digit: 1 // 位数
 	        },
 			
+			extractData: { // 导出格式设置
+				includeSuffix: true,
+				includeMtime: true,
+				includeBtime: true,
+				includePath: true,
+				timeStyle: 'yyyy/mm/dd hh:mm:ss',
+				newPath: '',
+				fileName: '文件名提取',
+				dirName: '文件夹名提取',
+				exportSuffix: "xlsx",
+			},
+			
 	        dowloadModel: false,
 	        finishModel: false,
 			loading: false,
@@ -645,6 +711,16 @@ export default {
 	},
 	mounted() {
 		this.$refs.updateRef.updateSoft(true);
+		
+		let __dirname = os.userInfo().homedir;
+		this.softdownloadDir = __dirname + separator + "Downloads";
+		if(fs.existsSync(__dirname + separator + "Desktop")){
+			this.downloadDir = __dirname + separator + "Desktop"
+		} else{
+			this.downloadDir = __dirname + separator + "Downloads"
+		}
+		this.extractData.newPath = this.downloadDir;
+		
 	    // 打开浏览器
 	    const { shell } = require('electron');
 	    const links = document.querySelectorAll('a[href]');
@@ -657,6 +733,27 @@ export default {
 	    });
 	},
 	methods: {
+		// 选择目录
+		pickPath() {
+			this.$refs['upload-input'].blur();
+			electronApi.call('pickDir', []).then((path) => {
+				if (path) {
+					this.extractData.newPath = path;
+					this.downloadDir = path;
+				}
+			});
+		},
+		// 打开自定义下载目录
+		openFolder(){
+			let path = this.downloadDir;
+			if(fs.existsSync(this.downloadDir + separator + pjson.softInfo.softName)){
+				path = this.downloadDir + separator + pjson.softInfo.softName;
+			} else {
+				fs.mkdirSync(this.downloadDir + separator + pjson.softInfo.softName);
+				path = this.downloadDir + separator + pjson.softInfo.softName;
+			}
+			electronApi.call('showItemInfolder',[path+'\\tty.tty'])
+		},
 		handleDrop(e){
 			//阻止默认行为
 			e.preventDefault();
@@ -1231,6 +1328,18 @@ export default {
 				
 			});
 		},
+		extractChange(str){
+			if(this.containsAnyChar(this.extractData[str], ['\\', '/', ':', '*', '?', '"', '<', '>', '|'])){ // 判断是否含有特殊字符
+				this.extractData[str] = this.extractData[str].replace(/[\\|/|:|*|?|"|<|>||]/g,"");
+				
+				if(!this.visible4){
+					this.visible4 = true;
+					setTimeout(() => {
+						this.visible4 = false;
+					}, 1500)
+				}
+			}
+		},
 		modifyChange(row, rowIndex){
 			if(this.containsAnyChar(row.modifyName, ['\\', '/', ':', '*', '?', '"', '<', '>', '|'])){ // 判断是否含有特殊字符
 				row.modifyName = row.modifyName.replace(/[\\|/|:|*|?|"|<|>||]/g, "");