This commit is contained in:
fanxb 2021-12-02 09:06:11 +08:00
parent ee649ee5e0
commit 4e17b86554
8 changed files with 209 additions and 277 deletions

1
.gitignore vendored
View File

@ -103,3 +103,4 @@ dist
# TernJS port file # TernJS port file
.tern-port .tern-port
openRenamerBackend/database.db openRenamerBackend/database.db
openRenamerBackend/database.db

View File

@ -1,13 +0,0 @@
{ "name": "nas_backup", "script": "./dist/index.js",
"cwd": "./",
"env": {
"PORT": 8082,
"MYSQL_HOST":"localhost",
"MYSQL_PORT":3306,
"MYSQL_USER":"root",
"MYSQL_PASS":"123456"
},
"log_file": "./log/combined.log",
"out_file": "./log/out.log",
"error_file": "./error.log"
}

View File

@ -23,6 +23,7 @@
"moment": "^2.22.2", "moment": "^2.22.2",
"mysql2": "^2.2.5", "mysql2": "^2.2.5",
"sqlite": "^4.0.23", "sqlite": "^4.0.23",
"sqlite3": "^5.0.2",
"uuid": "^3.3.2", "uuid": "^3.3.2",
"winston": "^3.1.0" "winston": "^3.1.0"
} }

View File

@ -1,14 +0,0 @@
module.exports = {
root: true,
env: {
node: true,
},
extends: ["plugin:vue/vue3-essential", "eslint:recommended", "@vue/prettier"],
parserOptions: {
parser: "babel-eslint",
},
rules: {
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
},
};

View File

@ -2,7 +2,7 @@
node_modules node_modules
/dist /dist
package-lock.json package-lock.json
yarn.lock
# local env files # local env files
.env.local .env.local

View File

@ -0,0 +1,4 @@
{
"printWidth": 150,
"tabWidth": 2
}

View File

@ -21,11 +21,6 @@
"@vue/cli-plugin-router": "~4.5.0", "@vue/cli-plugin-router": "~4.5.0",
"@vue/cli-service": "~4.5.0", "@vue/cli-service": "~4.5.0",
"@vue/compiler-sfc": "^3.0.0", "@vue/compiler-sfc": "^3.0.0",
"@vue/eslint-config-prettier": "^6.0.0",
"babel-eslint": "^10.1.0",
"eslint": "^6.7.2",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-vue": "^7.0.0",
"less": "^3.0.4", "less": "^3.0.4",
"less-loader": "^5.0.0", "less-loader": "^5.0.0",
"prettier": "^2.2.1" "prettier": "^2.2.1"

View File

@ -1,45 +1,21 @@
<template> <template>
<div v-loading="loading" element-loading-text="后台处理中,请稍候"> <div v-loading="loading" element-loading-text="后台处理中,请稍候">
<el-button type="primary" @click="dialogVisible = true" size="small" <el-button type="primary" @click="dialogVisible = true" size="small">1.新增文件</el-button>
>1.新增文件</el-button <el-button type="primary" @click="showResult" size="small">2.预览</el-button>
>
<el-button type="primary" @click="showResult" size="small"
>2.预览</el-button
>
<el-button type="primary" @click="submit" size="small">3.重命名</el-button> <el-button type="primary" @click="submit" size="small">3.重命名</el-button>
<!-- 规则列表 --> <!-- 规则列表 -->
<div class="ruleList"> <div class="ruleList">
<div class="menu"> <div class="menu">
<span>应用规则</span> <span>应用规则</span>
<el-button type="primary" size="mini" @click="ruleDialogShow = true" <el-button type="primary" size="mini" @click="ruleDialogShow = true">新增</el-button>
>新增</el-button <el-button type="primary" size="mini" v-if="checkedRules.length == 1" @click="editClick">编辑</el-button>
> <el-button type="warning" size="mini" @click="block">禁用/启用</el-button>
<el-button <el-button type="danger" size="mini" @click="deleteRule">删除</el-button>
type="primary" <el-button type="primary" size="mini" @click="saveOrUpdate">保存模板</el-button>
size="mini" <el-button type="primary" size="mini" @click="ruleTemplateShow = true">选择模板</el-button>
v-if="checkedRules.length == 1"
@click="editClick"
>编辑</el-button
>
<el-button type="warning" size="mini" @click="block"
>禁用/启用</el-button
>
<el-button type="danger" size="mini" @click="deleteRule"
>删除</el-button
>
<el-button type="primary" size="mini" @click="saveOrUpdate"
>保存模板</el-button
>
<el-button type="primary" size="mini" @click="ruleTemplateShow = true"
>选择模板</el-button
>
</div> </div>
<div class="ruleBlock"> <div class="ruleBlock">
<el-checkbox <el-checkbox v-model="item.checked" v-for="(item, index) in ruleList" :key="index">
v-model="item.checked"
v-for="(item, index) in ruleList"
:key="index"
>
<s v-if="item.blocked">{{ item.message }}</s> <s v-if="item.blocked">{{ item.message }}</s>
<span v-else>{{ item.message }}</span> <span v-else>{{ item.message }}</span>
</el-checkbox> </el-checkbox>
@ -50,32 +26,20 @@
<div> <div>
文件列表 文件列表
<el-button type="primary" size="mini" @click="selectAllFiles" <el-button type="primary" size="mini" @click="selectAllFiles">反选</el-button>
>反选</el-button <el-button type="danger" size="mini" @click="deleteCheckedFiles">删除</el-button>
>
<el-button type="danger" size="mini" @click="deleteCheckedFiles"
>删除</el-button
>
</div> </div>
<div class="fileBlock"> <div class="fileBlock">
<!-- 左侧原始文件名 --> <!-- 左侧原始文件名 -->
<el-checkbox <el-checkbox style="display: block" v-for="(item, index) in fileList" :key="index" v-model="item.checked">
style="display: block" <div class="oneFileName">
v-for="(item, index) in fileList"
:key="index"
v-model="item.checked"
><div class="oneFileName">
{{ item.name }} {{ item.name }}
<ArrowDownBold <ArrowDownBold
style="width: 20px; padding-left: 10px" style="width: 20px; padding-left: 10px"
v-if="index < fileList.length - 1" v-if="index < fileList.length - 1"
@click.stop.prevent="moveIndex(index + 1, index)" @click.stop.prevent="moveIndex(index + 1, index)"
/> />
<ArrowUpBold <ArrowUpBold style="width: 20px; padding-left: 10px" v-if="index > 0" @click.stop.prevent="moveIndex(index - 1, index)" />
style="width: 20px; padding-left: 10px"
v-if="index > 0"
@click.stop.prevent="moveIndex(index - 1, index)"
/>
</div> </div>
</el-checkbox> </el-checkbox>
</div> </div>
@ -93,7 +57,6 @@
<el-dialog title="新增文件" v-model="dialogVisible" width="70%"> <el-dialog title="新增文件" v-model="dialogVisible" width="70%">
<file-chose @addData="addData" /> <file-chose @addData="addData" />
</el-dialog> </el-dialog>
<el-dialog title="选择规则模板" v-model="ruleTemplateShow" width="70%"> <el-dialog title="选择规则模板" v-model="ruleTemplateShow" width="70%">
<application-rule-list /> <application-rule-list />
</el-dialog> </el-dialog>
@ -142,6 +105,7 @@ export default {
data.forEach((item) => (item.checked = false)); data.forEach((item) => (item.checked = false));
this.fileList.push(...data); this.fileList.push(...data);
this.dialogVisible = false; this.dialogVisible = false;
console.log("asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
this.needPreview = true; this.needPreview = true;
await this.showResult(); await this.showResult();
}, },
@ -163,9 +127,7 @@ export default {
}, },
/// ///
async block() { async block() {
this.ruleList this.ruleList.filter((item) => item.checked).forEach((item) => (item.blocked = !item.blocked));
.filter((item) => item.checked)
.forEach((item) => (item.blocked = !item.blocked));
this.needPreview = true; this.needPreview = true;
await this.showResult(); await this.showResult();
}, },
@ -190,11 +152,7 @@ export default {
fileList: this.fileList, fileList: this.fileList,
ruleList: this.ruleList.filter((item) => !item.blocked), ruleList: this.ruleList.filter((item) => !item.blocked),
}; };
this.changedFileList = await HttpUtil.post( this.changedFileList = await HttpUtil.post("/renamer/preview", null, body);
"/renamer/preview",
null,
body
);
this.needPreview = false; this.needPreview = false;
this.loading = false; this.loading = false;
}, },