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>