From b8e9e746f6e6427d08be73aa4b98db0d6d9dbd12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=AE=8F=E6=9D=B0?= <1943105267@qq.com> Date: Mon, 24 Feb 2025 16:28:07 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B5=E5=AD=90=E9=82=AE=E4=BB=B6=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=AF=BC=E5=87=BA=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auditPages/assetsManagement/email.vue | 122 +++++++++++++++++- .../assetsManagement/emailDialog.js | 3 + .../assetsManagement/emailDialog.vue | 44 +++++++ .../components/assetsManagement/mobileApp.js | 3 + .../components/assetsManagement/mobileApp.vue | 45 +++++++ 5 files changed, 214 insertions(+), 3 deletions(-) create mode 100644 src/views/auditPages/components/assetsManagement/emailDialog.js create mode 100644 src/views/auditPages/components/assetsManagement/emailDialog.vue create mode 100644 src/views/auditPages/components/assetsManagement/mobileApp.js create mode 100644 src/views/auditPages/components/assetsManagement/mobileApp.vue diff --git a/src/views/auditPages/assetsManagement/email.vue b/src/views/auditPages/assetsManagement/email.vue index 866a231..0875250 100644 --- a/src/views/auditPages/assetsManagement/email.vue +++ b/src/views/auditPages/assetsManagement/email.vue @@ -14,11 +14,21 @@ /> </template> <template v-slot:tablec> - <el-button type="info" plain icon="el-icon-upload2" size="mini" + <el-button + type="info" + plain + icon="el-icon-upload2" + size="mini" + @click="handleImport" >导入</el-button > - <el-button type="warning" plain icon="el-icon-download" size="mini" + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" >导出</el-button > @@ -128,7 +138,12 @@ icon="el-icon-edit-outline" >修改</el-button > - <el-button type="danger" size="mini" plain icon="el-icon-delete" + <el-button + type="danger" + size="mini" + plain + icon="el-icon-delete" + @click="handleDel(scope.row.id)" >删除</el-button > </template> @@ -144,12 +159,55 @@ :limit.sync="formInline.size" @pagination="getList" /> + <!-- 新增修改,详情 --> + <emailDialog /> + <!-- 资产导入对话框 --> + <el-dialog + :title="upload.title" + :visible.sync="upload.open" + width="400px" + append-to-body + > + <el-upload + ref="upload" + :limit="1" + accept=".xlsx, .xls" + :headers="upload.headers" + :action="upload.url + '?updateSupport=' + upload.updateSupport" + :disabled="upload.isUploading" + :on-progress="handleFileUploadProgress" + :on-success="handleFileSuccess" + :auto-upload="false" + drag + > + <i class="el-icon-upload"></i> + <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> + <div class="el-upload__tip text-center" slot="tip"> + <!-- <div class="el-upload__tip" slot="tip"> + <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据 + </div> --> + <span>仅允许导入xls、xlsx格式文件。</span> + <el-link + type="primary" + :underline="false" + style="font-size: 12px; vertical-align: baseline" + @click="importTemplate" + >下载模板</el-link + > + </div> + </el-upload> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitFileForm">确 定</el-button> + <el-button @click="upload.open = false">取 消</el-button> + </div> + </el-dialog> </template> </main-app> </template> <script> import { getToken } from "@/utils/auth"; +import emailDialog from "@/views/auditPages/components/assetsManagement/emailDialog.vue"; import { assetEmailList, deleteAssetEmail, @@ -157,6 +215,7 @@ import { } from "@/api/auditPagesApi/index"; export default { dicts: ["zc_xtzt"], + components: { emailDialog }, data() { return { // 部门树选项 @@ -201,6 +260,29 @@ export default { this.getDeptTree(); }, methods: { + // 导出 + handleExport() { + this.download( + "/tc/assetEmail/export", + { + ...this.formInline, + }, + `电子邮件资产${new Date().getTime()}.xlsx` + ); + }, + //删除 + handleDel(id) { + this.$modal + .confirm('是否确认删除用户编号为"' + id + '"的数据项?') + .then(function () { + return deleteAssetEmail(id); + }) + .then(() => { + this.getList(); + this.$modal.msgSuccess("删除成功"); + }) + .catch(() => {}); + }, // 修改table背景色 tableRowClassName({ row, rowIndex }) { if (rowIndex % 2 !== 0) { @@ -262,6 +344,40 @@ export default { this.tableData = res.data.records; }); }, + // 导入 + handleImport() { + this.upload.open = true; + }, + /** 下载模板操作 */ + importTemplate() { + this.download( + "/tc/assetEmail/importTemplate", + {}, + `电子邮件资产导入模板${new Date().getTime()}.xlsx` + ); + }, + // 文件上传中处理 + handleFileUploadProgress(event, file, fileList) { + this.upload.isUploading = true; + }, + // 文件上传成功处理 + handleFileSuccess(response, file, fileList) { + this.upload.open = false; + this.upload.isUploading = false; + this.$refs.upload.clearFiles(); + this.$alert( + "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + + response.msg + + "</div>", + "导入结果", + { dangerouslyUseHTMLString: true } + ); + this.getList(); + }, + // 提交上传文件 + submitFileForm() { + this.$refs.upload.submit(); + }, }, }; </script> diff --git a/src/views/auditPages/components/assetsManagement/emailDialog.js b/src/views/auditPages/components/assetsManagement/emailDialog.js new file mode 100644 index 0000000..8653e1a --- /dev/null +++ b/src/views/auditPages/components/assetsManagement/emailDialog.js @@ -0,0 +1,3 @@ +const formData = []; +const formRules = {}; +export { formData, formRules }; diff --git a/src/views/auditPages/components/assetsManagement/emailDialog.vue b/src/views/auditPages/components/assetsManagement/emailDialog.vue new file mode 100644 index 0000000..dbfbd21 --- /dev/null +++ b/src/views/auditPages/components/assetsManagement/emailDialog.vue @@ -0,0 +1,44 @@ +<template> + <el-dialog + :title="title" + :visible.sync="open" + append-to-body + fullscreen + center + > + <el-form + :model="ruleForm" + :rules="rules" + ref="ruleForm" + label-width="170px" + label-position="right" + :disabled="disabled" + > + </el-form> + </el-dialog> +</template> + +<script> +import formTitle from "../formTitle.vue"; +import { checkRole } from "@/utils/permission"; // 权限判断函数 +import { formData, formRules } from "./emailDialog.js"; +export default { + components: { formTitle }, + data() { + return { + loading: false, + options: [], + list: formData, + title: "", + open: false, + ruleForm: {}, + rules: formRules, + disabled: false, + }; + }, + mounted() {}, + methods: {}, +}; +</script> + +<style></style> diff --git a/src/views/auditPages/components/assetsManagement/mobileApp.js b/src/views/auditPages/components/assetsManagement/mobileApp.js new file mode 100644 index 0000000..8653e1a --- /dev/null +++ b/src/views/auditPages/components/assetsManagement/mobileApp.js @@ -0,0 +1,3 @@ +const formData = []; +const formRules = {}; +export { formData, formRules }; diff --git a/src/views/auditPages/components/assetsManagement/mobileApp.vue b/src/views/auditPages/components/assetsManagement/mobileApp.vue new file mode 100644 index 0000000..87039a3 --- /dev/null +++ b/src/views/auditPages/components/assetsManagement/mobileApp.vue @@ -0,0 +1,45 @@ +<template> + <el-dialog + :title="title" + :visible.sync="open" + append-to-body + fullscreen + center + > + <el-form + :model="ruleForm" + :rules="rules" + ref="ruleForm" + label-width="170px" + label-position="right" + :disabled="disabled" + > + </el-form> + </el-dialog> +</template> + +<script> +import formTitle from "../formTitle.vue"; +import { checkRole } from "@/utils/permission"; // 权限判断函数 +import { formData, formRules } from "./mobileApp.js"; +export default { + components: { formTitle }, + data() { + return { + loading: false, + options: [], + list: formData, + title: "", + open: false, + ruleForm: { + rules: formRules, + disabled: false, + }, + }; + }, + mounted() {}, + methods: {}, +}; +</script> + +<style></style>