Redeem 3 tuần trước cách đây
mục cha
commit
1f60448ee1

+ 71 - 71
cors.js

@@ -1,30 +1,30 @@
-let url = 'http://172.16.4.162/icore.icp.web/pass'
+let url = "http://172.16.4.162/icore.icp.web/pass";
 module.exports = {
   proxyTable: {
-    '/icore.icp.web/pass/v1': {
-      target: url + '/v1', //加http
+    "/icore.icp.web/pass/v1": {
+      target: url + "/v1", //加http
       changeOrigin: true,
       pathRewrite: {
-        '^/icore.icp.web/pass/v1': '/' //这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
+        "^/icore.icp.web/pass/v1": "/", //这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
         // 比如我要调用'http://0.0:300/user/add',直接写‘/api/user/add’即可 代理后地址栏显示/
-      }
+      },
     },
-    '/icore.icp.web/pass/auth': {
+    "/icore.icp.web/pass/auth": {
       // target: 'http://172.22.4.6:20002/auth',
       //target: url + '/auth',
       //target: 'https://172.16.4.162/icore.icp.web/pass/auth',
-      target: 'http://172.16.4.162/icore.icp.web/pass/auth',
+      target: "http://172.16.4.162/icore.icp.web/pass/auth",
       changeOrigin: true,
       pathRewrite: {
-        '^/icore.icp.web/pass/auth': '/'
-      }
+        "^/icore.icp.web/pass/auth": "/",
+      },
     },
-    '/icore.icp.web/pass/logout': {
-      target: url + '/logout',
+    "/icore.icp.web/pass/logout": {
+      target: url + "/logout",
       changeOrigin: true,
       pathRewrite: {
-        '^/icore.icp.web/pass/logout': '/'
-      }
+        "^/icore.icp.web/pass/logout": "/",
+      },
     },
     // '/icore.icp.web/pass/configCenter': {
     //   target: 'http://dev-config.steerinfo.com/configCenter',
@@ -33,12 +33,12 @@ module.exports = {
     //     '^/icore.icp.web/pass/configCenter': '/'
     //   }
     // },
-    '/icore.icp.web/restPassword': {
+    "/icore.icp.web/restPassword": {
       target: url,
       changeOrigin: true,
       pathRewrite: {
-        '^/icore.icp.web/restPassword': '/'
-      }
+        "^/icore.icp.web/restPassword": "/",
+      },
     },
     // '/icore.icp.web/pass/serviceCenter': {
     //   target: 'http://dev-govern.steerinfo.com',
@@ -82,29 +82,29 @@ module.exports = {
     //     '^/icore.icp.web/pass/websocket': '/'
     //   }
     // },
-    '/icore-api': {
-      target: 'http://172.16.4.162/icore.icp.web/pass/',
+    "/icore-api": {
+      target: "http://172.16.4.162/icore.icp.web/pass/",
       changeOrigin: true,
       pathRewrite: {
-        '^/icore-api': '/'
-      }
+        "^/icore-api": "/",
+      },
     },
-     '/icore.icp.web/pass/testManagement/v1': {
+    "/icore.icp.web/pass/testManagement/v1": {
       //  target: 'http://172.22.4.6:9006/v1', // 加https
       //  target: 'http://prod-lims-test/v1', //
       //  target: 'http://localhost:9001/v1', //加http
-       target: 'http://172.16.4.162', // 加https
-       // target: 'https://lims-bnusiness-dev.steerinfo.com/v1', //加https
-       changeOrigin: true
-     },
-    // '/icore.icp.web/pass/testManagement/v1': {
+      target: "http://172.16.4.162", // 加https
+      // target: 'https://lims-bnusiness-dev.steerinfo.com/v1', //加https
+      changeOrigin: true,
+    },
+    // "/icore.icp.web/pass/testManagement/v1": {
     //   // target: 'http://127.0.0.1:9001/v1', // 加https
-    //   target: 'http://localhost:9001/v1', // 正式
+    //   target: "http://localhost:9001/v1", // 正式
     //   changeOrigin: true,
     //   pathRewrite: {
-    //     '^/icore.icp.web/pass/testManagement/v1': '/' // 这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
-    //     // 比如我要调用'https://0.0:300/user/add',直接写‘/api/user/add’即可 代理后地址栏显示/ 
-    //   }
+    //     "^/icore.icp.web/pass/testManagement/v1": "/", // 这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
+    //     // 比如我要调用'https://0.0:300/user/add',直接写‘/api/user/add’即可 代理后地址栏显示/
+    //   },
     // },
     // '/icore.icp.web/pass/mqtt/v1': {
     //   // target: 'http://172.22.4.6:9006/v1', // 加https
@@ -115,99 +115,99 @@ module.exports = {
     //     '^/icore.icp.web/pass/mqtt/v1': '/'
     //   }
     // },
-    // '/icore.icp.web/pass/baseManagement/v1': {
-    //   target: 'http://localhost:9002/v1', // 正式
+    // "/icore.icp.web/pass/baseManagement/v1": {
+    //   target: "http://localhost:9002/v1", // 正式
     //   // target: 'http://192.168.3.165:9002/v1', // 加https
     //   // target: 'https://jclims.steerinfo.com/v1',
     //   changeOrigin: true,
     //   pathRewrite: {
-    //     '^/icore.icp.web/pass/baseManagement/v1': '/' // 这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
+    //     "^/icore.icp.web/pass/baseManagement/v1": "/", // 这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
     //     // 比如我要调用'https://0.0:300/user/add',直接写‘/api/user/add’即可 代理后地址栏显示/
-    //   }
+    //   },
     // },
-    '/icore.icp.web/pass/baseManagement/v1': {
-      target: 'http://172.16.4.162', // 正式
+    "/icore.icp.web/pass/baseManagement/v1": {
+      target: "http://172.16.4.162", // 正式
       // target: 'http://localhost:9002/v1', // 正式
       // target: 'http://192.168.3.165:9002/v1', // 加https
       // target: 'https://jclims.steerinfo.com/v1',
-      changeOrigin: true
+      changeOrigin: true,
     },
-    '/icore.icp.web/pass/systemBase/v1': {
+    "/icore.icp.web/pass/systemBase/v1": {
       // target: 'http://168.168.45.55:9002/v1',
       // target: 'http://192.168.3.38:9004/v1',
       // target: 'http://168.168.44.214:9004/v1',
       // target: 'http://172.22.42.233:9004/v1',
-      target: 'http://172.16.4.162', //加http
+      target: "http://172.16.4.162", //加http
       // target: 'http://localhost:9002/v1', //加http
       // target: 'http://192.168.3.113:9004/v1', //加http
       // target: 'http://168.168.44.214:9004/v1', //加http
       // target: 'http://jc1.steerinfo.com/v1', //加http
       changeOrigin: true,
     },
-    '/weblib': {
-      target: 'http://172.22.42.2/',
+    "/weblib": {
+      target: "http://172.22.42.2/",
       // target: 'http://172.22.4.2:9004/v1', //加http
       // target: 'http://jc1.steerinfo.com/v1', //加http
       changeOrigin: true,
       pathRewrite: {
-        '^/weblib': '/' //这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
+        "^/weblib": "/", //这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
         // 比如我要调用'http://0.0:300/user/add',直接写‘/api/user/add’即可 代理后地址栏显示/
-      }
+      },
     },
     // 文件系统-上传下载
-    '/icore.icp.web/pass/seaweedfs/v1/download': {
-      target: 'http://172.22.4.6:30888',
+    "/icore.icp.web/pass/seaweedfs/v1/download": {
+      target: "http://172.22.4.6:30888",
       // target: 'http://oss-filer.icore-oss.svc.cluster.local:8888', // 正式
       changeOrigin: true,
       pathRewrite: {
-        '^/icore.icp.web/pass/seaweedfs/v1/download': '/' // 这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
+        "^/icore.icp.web/pass/seaweedfs/v1/download": "/", // 这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
         // 比如我要调用'https://0.0:300/user/add',直接写‘/api/user/add’即可 代理后地址栏显示/
-      }
+      },
     },
     // 报表地址代理
-    '/webroot/decision': {
-      target: 'http://172.22.4.5:8080/webroot/decision',
+    "/webroot/decision": {
+      target: "http://172.22.4.5:8080/webroot/decision",
       changeOrigin: true,
       pathRewrite: {
-        '^/webroot/decision': '/' // 这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
-      }
+        "^/webroot/decision": "/", // 这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
+      },
     },
     // 文件上传地址代理
-    '/icore.icp.web/file': {
-      target: 'http://lims.jnmc.com',
+    "/icore.icp.web/file": {
+      target: "http://lims.jnmc.com",
       changeOrigin: true,
       pathRewrite: {
-        '^/webroot/decision': '/' // 这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
-      }
+        "^/webroot/decision": "/", // 这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
+      },
     },
     // 文件上传地址代理
-    '/icore.icp.web/oss-volume-0': {
-      target: 'http://lims.jnmc.com',
+    "/icore.icp.web/oss-volume-0": {
+      target: "http://lims.jnmc.com",
       changeOrigin: true,
       pathRewrite: {
-        '^/webroot/decision': '/' // 这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
-      }
+        "^/webroot/decision": "/", // 这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
+      },
     },
     // 文件上传地址代理
-    '/icore.icp.web/oss-volume-1': {
-      target: 'http://lims.jnmc.com',
+    "/icore.icp.web/oss-volume-1": {
+      target: "http://lims.jnmc.com",
       changeOrigin: true,
       pathRewrite: {
-        '^/webroot/decision': '/' // 这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
-      }
+        "^/webroot/decision": "/", // 这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
+      },
     },
     // 文件上传地址代理
-    '/icore.icp.web/oss-volume-2': {
-      target: 'http://lims.jnmc.com',
+    "/icore.icp.web/oss-volume-2": {
+      target: "http://lims.jnmc.com",
       changeOrigin: true,
       pathRewrite: {
-        '^/webroot/decision': '/' // 这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
-      }
-    }
+        "^/webroot/decision": "/", // 这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
+      },
+    },
   },
   // devModules: ['index', 'entrustedManagement','sampleManager','screeningTests', 'resourceManager']
   //devModules: ['reportForm', 'screeningTests', 'index',  'entrustedManagement','measurementDataManagement', 'approveManagement', 'testAnalysis', 'resourceManager', 'taskManagement']
-   devModules: ['all']
+  devModules: ["all"],
   //  devModules:['index']
-  // devModules: ['index',  'approveManagement']
-}
+  // devModules: ["index", "standardManagement"],
+};

+ 8 - 0
src/views/approveManagement/components/fourApprove.vue

@@ -1003,7 +1003,15 @@ export default {
           newArr,
           { individualType: "json" }
         );
+        if(!cfs.code) {
+            this.$message.warning("电文数据异常,请联系管理员!");
+            return;
+        }
         if (cfs.code == 0 || cfs.code == 200) {
+          if (!cfs.data) {
+            this.$message.warning("电文数据异常,请联系管理员");
+            return;
+          }
           if (cfs.data.info) {
             this.$message.warning(cfs.data);
           } else {

+ 316 - 0
src/views/standardManagement/components/systemFileManagement/batchFileUploadComponents.vue

@@ -0,0 +1,316 @@
+<template>
+  <div class="examination batch-edit-wrap">
+    <el-dialog
+      @close="closeDialog"
+      :visible.sync="recordShowFlag"
+      customClass="dialog_wrap"
+      :close-on-click-modal="false"
+    >
+      <div slot="title" class="titleBox">
+        <i class="el-icon-document" style="font-size: 20px"></i>
+        <span style="margin-left: 10px; font-size: 18px">批量上传文件记录信息</span>
+      </div>
+
+      <el-form
+        ref="editFormRef"
+        label-width="65px"
+        :inline="false"
+        :rules="ruleValidate"
+        :model="batchForm"
+      >
+        <el-form-item prop="uploadType" label="上传方式">
+          <el-select
+            v-model="batchForm.uploadType"
+            size="small"
+            style="width: 180px"
+          >
+            <el-option label="文件名不变" value="1"></el-option>
+            <el-option label="系统随机生成文件名" value="2"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item prop="fileDate" label="文件日期">
+          <el-date-picker
+            v-model="batchForm.fileDate"
+            size="small"
+            type="date"
+            style="width: 200px"
+            placeholder="选择日期"
+            format="yyyy-MM-dd"
+            value-format="yyyy-MM-dd"
+          ></el-date-picker>
+        </el-form-item>
+
+        <el-form-item prop="audit" label="是否审核">
+          <el-select
+            v-model="batchForm.audit"
+            filterable
+            collapse-tags
+            size="small"
+            style="width: 100px"
+          >
+            <el-option
+              v-for="(item, index) in isSmpType"
+              :key="index"
+              :label="item.isSmp"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item prop="memo" label="备注(批量)">
+          <el-input
+            v-model="batchForm.memo"
+            clearable
+            size="small"
+            style="width: 300px"
+            placeholder="请输入批量备注(所有文件共用)"
+          ></el-input>
+        </el-form-item>
+
+        <!-- 文件上传:本地暂存、校验是否选文件 -->
+        <el-form-item label="文件上传" prop="fileList">
+          <el-upload
+            class="upload-demo"
+            action="javascript:void(0);"
+            multiple
+            show-file-list
+            :file-list="selectedFileList"
+            :on-change="handleFileChange"
+            :on-remove="handleFileRemove"
+            :before-upload="beforeUploadCheck"
+            :auto-upload="false"
+            ref="uploadRef"
+          >
+            <el-button type="primary" size="mini" icon="el-icon-upload2">选择文件</el-button>
+            <div slot="tip" class="el-upload__tip">
+              支持多文件批量选择,选中暂存本地,确认提交统一上传,单个文件≤10MB
+            </div>
+          </el-upload>
+        </el-form-item>
+      </el-form>
+
+      <span slot="footer" class="dialog-footer">
+        <el-button type="primary" size="mini" @click="submitAll">提交</el-button>
+        <el-button size="mini" type="default" @click="closeDialog">取消</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { getCookie } from '@/utils/util.js';
+import { cookieUserId, cookieUserName } from '@/config/config.js';
+import { Message } from 'element-ui';
+
+// 全局用户信息
+let userName = getCookie(cookieUserName) || '';
+let userId = getCookie(cookieUserId) || '';
+
+export default {
+  name: 'BatchFileUpload',
+  props: {
+    recordShowFlag: {
+      type: Boolean,
+      default: false
+    },
+    recordObj: {
+      type: Object,
+      default: function() {
+        return {};
+      }
+    }
+  },
+  data() {
+    var _this = this;
+    return {
+      // 表单公共数据:和文件一起一次提交给后端
+      batchForm: {
+        uploadType: '1', // 上传方式:1-原名,2-随机名
+        fileDate: _this.formatDate(new Date()), // 文件日期
+        memo: '', // 备注
+        audit: '1' // 是否审核:1-是,0-否
+      },
+      selectedFileList: [], // 本地暂存的文件列表(核心校验)
+      isSmpType: [
+        { id: "0", isSmp: "否" },
+        { id: "1", isSmp: "是" },
+      ],
+      // 仅校验:本地是否选文件、表单必填项是否填
+      ruleValidate: {
+        uploadType: [{ required: true, message: '请选择上传方式', trigger: 'change' }],
+        fileDate: [{ required: true, message: '文件日期不能为空', trigger: 'change' }],
+        audit: [{ required: true, message: '请选择审核状态', trigger: 'change' }],
+        fileList: [{
+          validator: function(rule, val, cb) {
+            if (_this.selectedFileList.length === 0) {
+              cb(new Error('请至少选择一个文件'));
+            } else {
+              cb();
+            }
+          },
+          trigger: ['change', 'blur']
+        }]
+      },
+      apiConfig: {
+        upload: 'pass/baseManagement/v1/file/uploadMultipart' // 唯一接口:一次传表单+文件
+      },
+      uploadConfig: {
+        maxSize: 10, // 单个文件10MB,和后端一致
+        timeout: 60000 // 60秒超时
+      }
+    };
+  },
+  methods: {
+    // 格式化日期:yyyy-MM-dd
+    formatDate(date) {
+      if (!date || !(date instanceof Date)) date = new Date();
+      var y = date.getFullYear();
+      var m = (date.getMonth() + 1) < 10 ? "0" + (date.getMonth() + 1) : (date.getMonth() + 1);
+      var d = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
+      return y + "-" + m + "-" + d;
+    },
+
+    // 更新本地暂存文件:严格过滤有效文件
+    handleFileChange(file, fileList) {
+      this.selectedFileList = fileList.filter(function(item) {
+        return item.status !== 'removed' && item.raw && item.raw.name && item.raw.size > 0;
+      });
+    },
+
+    // 移除文件:同步更新本地暂存列表
+    handleFileRemove(file, fileList) {
+      this.handleFileChange(null, fileList);
+    },
+
+    // 选择文件前:仅校验大小,不上传
+    beforeUploadCheck(file) {
+      var isLtMaxSize = file.size / 1024 / 1024 < this.uploadConfig.maxSize;
+      if (!isLtMaxSize) {
+        Message.error('文件' + file.name + '超过' + this.uploadConfig.maxSize + 'MB,无法选择');
+        return false;
+      }
+      return true;
+    },
+
+    // 核心:构造FormData(表单数据+多文件)+ 原请求写法(后端能接收)
+    submitAll() {
+      var _this = this;
+      // 1. 先做表单校验(必填项+是否选文件)
+      if (!_this.$refs.editFormRef) {
+        Message.warning('表单未加载完成,请稍候');
+        return;
+      }
+      _this.$refs.editFormRef.validate(function(valid) {
+        if (!valid) return;
+
+        // 2. 再次过滤有效文件,防止脏数据
+        var validFiles = [];
+        for (var i = 0; i < _this.selectedFileList.length; i++) {
+          var f = _this.selectedFileList[i];
+          if (f.raw && f.raw.name && f.raw.size > 0) {
+            validFiles.push(f);
+          }
+        }
+        if (validFiles.length === 0) {
+          Message.warning('无有效文件可上传');
+          return;
+        }
+
+        // 3. 构造FormData:【原请求写法不变】+ 追加表单所有数据
+        var formData = new FormData();
+        // 第一步:追加表单公共数据(和文件一起传,后端@RequestParam接收)
+        formData.append('uploadType', _this.batchForm.uploadType);
+        formData.append('fileDate', _this.batchForm.fileDate);
+        formData.append('memo', _this.batchForm.memo || '');
+        formData.append('audit', _this.batchForm.audit);
+
+        // 第二步:追加多文件【原写法不变】- 相同key=file,多次append原始文件
+        for (var j = 0; j < validFiles.length; j++) {
+          var fileItem = validFiles[j];
+          formData.append('file', fileItem.raw, fileItem.raw.name);
+        }
+
+        // 4. 发起请求【完全沿用原请求写法,不做任何修改】
+        Message.info('开始提交(表单+文件),请勿关闭弹窗...');
+        _this.axios({
+          url: _this.apiConfig.upload,
+          method: 'post',
+          data: formData,
+          headers: {
+            'Content-Type': 'multipart/form-data'
+          },
+          timeout: _this.uploadConfig.timeout,
+          transformRequest: [function(data) {
+            return data;
+          }]
+        }).then(function(res) {
+          // 适配后端RESTfulResult返回结构
+          if (res && res.status === 'succeed') {
+            Message.success('提交结果: ' + res.data);
+            _this.$emit('refresh'); // 通知父组件刷新列表
+            _this.closeDialog(); // 关闭弹窗并重置
+          } else {
+            Message.error('提交失败:' + (response.message || '后端返回异常'));
+          }
+        }).catch(function(err) {
+          Message.error('提交异常:' + (err.message || '网络错误'));
+          console.error('提交报错详情:', err);
+        });
+      });
+    },
+
+    // 关闭弹窗:重置所有状态
+    closeDialog() {
+      this.selectedFileList = [];
+      this.batchForm = {
+        uploadType: '1',
+        fileDate: this.formatDate(new Date()),
+        memo: '',
+        audit: '1'
+      };
+      if (this.$refs.editFormRef) {
+        this.$refs.editFormRef.resetFields();
+      }
+      if (this.$refs.uploadRef) {
+        this.$refs.uploadRef.clearFiles();
+      }
+      this.$emit('close');
+    },
+    getYNM(date) {
+      let year = date.getFullYear().toString();
+      let month = date.getMonth() + 1;
+      let day = date.getDate();
+      month = month < 10 ? "0" + month : month;
+      day = day < 10 ? "0" + day : day;
+      return `${year}-${month}-${day}`;
+    },
+  },
+  // 弹窗关闭时自动重置(兜底)
+  watch: {
+    recordShowFlag: function(newVal) {
+      if (!newVal) {
+        this.closeDialog();
+      }
+    },
+    recordObj(newVal, oldVal) {
+      this.editData = { ...this.editDataCache, ...newVal }
+      if (this.editData.fileDate == null || this.editData.fileDate == "") {
+        this.editData.fileDate = this.getYNM(new Date())
+      }
+    }
+  }
+};
+</script>
+
+<style scoped>
+.batch-edit-wrap .el-icon-close { display: none; }
+.batch-edit-wrap .el-dialog__header { padding-top: 0; padding-bottom: 10px; }
+.dialog_wrap { width: 920px !important; }
+.dialog_wrap .el-dialog__body { padding: 15px 20px; }
+.dialog_wrap .el-dialog__footer { text-align: center; padding: 10px 20px; }
+.upload-demo { margin-top: 8px; }
+.upload-demo >>> .el-upload-list { max-height: 200px; overflow-y: auto; margin-top: 6px; }
+.upload-demo >>> .el-upload__tip { font-size: 12px; color: #909399; margin-top: 4px; }
+.el-form-item { margin-bottom: 12px; }
+</style>

+ 33 - 1
src/views/standardManagement/components/systemFileManagement/systemFileManagement.vue

@@ -163,6 +163,8 @@
               @click="deleteRecordData">删除</el-button>
             <el-button icon="el-icon-circle-plus-outline" type="primary" :loading="addLoading" size="mini"
               @click="supplementRecodData">补充模板内容</el-button>
+            <el-button icon="el-icon-upload" type="primary" :loading="addLoading" size="mini"
+              @click="batchShowARecordDialog">批量上传文件</el-button>
           </div>
           <el-table v-loading="recordDataLoading" ref="recordTable" highlight-current-row border
             @current-change="recordRowChange" @selection-change="recordSelectChange"
@@ -228,6 +230,8 @@
               align="center"></el-table-column>
             <el-table-column sortable :show-overflow-tooltip="true" min-width="80px" prop="updateMan" label="修改人"
               align="center"></el-table-column>
+            <el-table-column sortable :show-overflow-tooltip="true" min-width="120px" prop="isAudit" label="是否审核流"
+              align="center"></el-table-column>
           </el-table>
           <div class="common-foot-style">
             <el-pagination v-loading="recordDataLoading" @size-change="recordPageSizeChange"
@@ -292,12 +296,16 @@
     <record-alert-components :type="recordDialogTitle" :recordShowFlag="recordDialogVisible" :recordObj="recordData"
       @close="closeDialog('record')" @refresh="refresh1">
     </record-alert-components>
+    <batch-file-upload-components :recordShowFlag="batchFileUploadVisible" :recordObj="recordData"
+      @close="closeDialog('batchFileUpload')" @refresh="refresh2">
+    </batch-file-upload-components>
   </div>
 </template>
 
 <script>
 import fileAlertComponents from './fileAlertComponents.vue'
 import recordAlertComponents from './recordAlertComponents.vue'
+import batchFileUploadComponents from './batchFileUploadComponents'
 import { formatDate, getCookie } from '@/utils/util.js';
 import { cookieUserId, cookieUserName } from '@/config/config.js';
 import pdf from 'vue-pdf'
@@ -375,6 +383,7 @@ export default {
       fileDialogTitle: '新增文件信息',
       recordDialogTitle: '新增文件记录信息',
       recordDialogVisible: false,
+      batchFileUploadVisible: false,
       tableHeight: 250,
       filePage: {
         pageIndex: 1,
@@ -632,6 +641,15 @@ export default {
       // this.recordData.fileName = this.selectedData.fileName
       this.recordDialogVisible = true
     },
+    // 显示记录信息批量上传窗口
+    batchShowARecordDialog() {
+      // 如果没有选中文件信息不允许新增记录信息
+      if (!this.selectedData.id || this.selectedData.id - 0 === '') {
+        return this.$message.warning('请先选择要新增记录信息的文件')
+      }
+      this.recordData = { fileNo: this.selectedData.id }
+      this.batchFileUploadVisible = true
+    },
     // 显示记录信息编辑窗口
     showERecordDialog() {
       this.recordDialogTitle = '编辑文件记录信息'
@@ -676,6 +694,11 @@ export default {
       this.recordDialogVisible = false
       this.recordDataSearch(this.selectedData.fileNo);
     },
+    refresh2() {
+      this.batchFileUploadVisible = false
+      console.log(this.selectedData.fileNo, 'this.selectedData.fileNo')
+      this.recordDataSearch(this.selectedData.fileNo);
+    },
     // 关闭文件新增弹窗
     closeDialog(dialogFlag) {
       switch (dialogFlag) {
@@ -692,7 +715,15 @@ export default {
           this.selectedRecordList = []
           this.$refs.recordTable.clearSelection()
           this.recordDialogVisible = false
+          break;
+        case 'batchFileUpload':
+          // 清空文件编辑弹窗选择数据
+          // this.recordData = {}
+          this.selectedRecordList = []
+          this.$refs.recordTable.clearSelection()
+          this.batchFileUploadVisible = false
           break
+
       }
     },
     showFlag(docx) {
@@ -918,7 +949,8 @@ export default {
   },
   components: {
     fileAlertComponents,
-    recordAlertComponents
+    recordAlertComponents,
+    batchFileUploadComponents
   }
 }
 </script>