tian
2025-09-23 7afa7c7ad7d7f1250a086a406453a7cbc8b5cbd5
src/views/archiveManager/archiveMaterial/index.vue
@@ -24,9 +24,8 @@
              value-format="yyyy-MM-dd"
              placeholder="请选择日期">
            </el-date-picker> -->
  <el-col :span="8">
                        <el-input v-model="form.date" placeholder="请输入日期" />
  </el-col>
            <el-input v-model="form.date" placeholder="请输入日期 (格式:yyyy-mm-dd)" style="width: 450px;" />
            <!-- <div style="color: #999; font-size: 12px; margin-top: 4px;">请输入正确的日期格式:yyyy-mm-dd</div> -->
          </el-form-item>
      
@@ -52,10 +51,9 @@
          
        </el-form-item>
        <el-form-item 
  label="页号"
  prop="pageNumber"
  v-if=" form.fileStyle !== '其他材料'"
>
          label="页号"
          prop="pageNumber"
          v-if=" form.fileStyle !== '其他材料'">
      <el-col :span="8">
  <el-input 
    v-model="form.pageNumber" 
@@ -178,7 +176,7 @@
      <el-row :gutter="10" class="mb8">
      <el-row :gutter="12" class="mb8">
        <el-col :span="1.5">
          <el-button
            type="primary"
@@ -220,6 +218,7 @@
            @click="handleExport"
            v-hasPermi="['system:materials:export']"
          >导出</el-button>
        </el-col>
          <el-col :span="1.5">
          <el-button
            type="success"
@@ -229,6 +228,8 @@
            @click="handleImport"
            v-hasPermi="['system:materials:edit']"
          >全部附件导入</el-button>
            <!-- 在按钮下方添加导入对话框 -->
  <el-dialog title="批量导入附件" :visible.sync="importDialogVisible" width="50%">
    <el-upload
@@ -248,12 +249,38 @@
    >
      <el-button slot="trigger" size="small" type="primary">选择文件</el-button>
      <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button>
      <div slot="tip" class="el-upload__tip">可上传PDF/DOC/XLS/JPG等格式文件,单个文件不超过50MB</div>
      <div slot="tip" class="el-upload__tip">可上传JPG等格式文件,单个文件不超过50MB</div>
    </el-upload>
  </el-dialog>
        </el-col>
        </el-col>
        <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-download"
          size="mini"
          @click="handleExportTemplate"
          v-hasPermi="['system:materials:edit']"
        >导入模板下载</el-button>
      </el-col>
        <el-col :span="1.5">
        <el-upload
          action=""
          class="upload-demo"
          :show-file-list="false"
          :http-request="handleImportData"
              accept=".xlsx,.xls"
        >
          <el-button size="mini"   type="primary"
                     plain
                     icon="el-icon-top">导入</el-button>
        </el-upload>
      </el-col>
        <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
      </el-row>
@@ -286,7 +313,7 @@
        <el-table-column label="宽度" align="center" prop="width" />
        <el-table-column label="高度" align="center" prop="height" />
        <el-table-column label="大小" align="center" prop="fileSize" />
        <el-table-column label="附件及历史发问号" align="center" prop="attachmentHistoryNumbers" />
        <el-table-column label="附件及历史发文号" align="center" prop="attachmentHistoryNumbers" />
        <el-table-column label="操作" align="center" width="160" class-name="small-padding ">
          <template slot-scope="scope">
@@ -327,7 +354,7 @@
        <el-form ref="forms" :model="forms" :rules="rules" label-width="100px">
           <el-row>
           <el-col :span="8">
               8<el-form-item label="责任者" prop="creator">
               <el-form-item label="责任者" prop="creator">
                   <el-input v-model="forms.creator" placeholder="请输入责任者" />
                 </el-form-item>
           </el-col>
@@ -338,15 +365,13 @@
           </el-col>
           </el-row>
                 <el-form-item label="日期" prop="date">
                  <el-input v-model="forms.date" placeholder="请输入日期 (格式:yyyy-mm-dd)" style="width: 200px;" />
                   <!-- <el-date-picker clearable
                     v-model="forms.date"
                type="date"
                     type="date"
                     value-format="yyyy-MM-dd"
                     placeholder="请选择日期">
                   </el-date-picker> -->
                   <el-input v-model="forms.date" placeholder="请输入日期" prop="date"/>
                 </el-form-item>
                 <!-- <el-form-item label="页次" prop="pageOrder">
                   <el-input v-model="forms.pageOrder" placeholder="请输入页次" />
@@ -501,12 +526,14 @@
        />
      </el-form-item>
      <el-form-item label="日期" prop="date">
        <el-date-picker clearable
        <el-input v-model="queryParams.date" placeholder="请输入日期 (格式:yyyy-mm-dd)" />
        <div style="color: #999; font-size: 12px; margin-top: 4px;">请输入正确的日期格式:yyyy-mm-dd</div>
        <!-- <el-date-picker clearable
          v-model="queryParams.date"
          type="date"
          value-format="yyyy-MM-dd"
          placeholder="请选择日期">
        </el-date-picker>
        </el-date-picker> -->
      </el-form-item>
      <el-form-item label="页号" prop="pageNumber">
        <el-input
@@ -657,7 +684,7 @@
  </template>
  <script>
  import { listMaterials, getMaterials, delMaterials, addMaterials, updateMaterials } from "@/api/system/materials"
  import { listMaterials, enload, getMaterials, delMaterials, addMaterials, updateMaterials } from "@/api/system/materials"
import { getToken } from '@/utils/auth'
  export default {
@@ -780,7 +807,8 @@
            { required: true, message: "案卷题名不能为空", trigger: "blur" }
          ],
          date: [
            { required: true, message: "日期不能为空", trigger: "blur" }
            { required: true, message: "日期不能为空", trigger: "blur" },
            { pattern: /^\d{4}-\d{2}-\d{2}$/, message: "日期格式必须为yyyy-mm-dd", trigger: "blur" }
          ],
        }
      }
@@ -1032,7 +1060,50 @@
        this.download('system/materials/export', {
          ...this.queryParams
        }, `materials_${new Date().getTime()}.xlsx`)
      }
      },
       /** 导入模板下载操作*/
    handleExportTemplate()
    {
      this.download('/system/materials/model', {
      }, `materials_${new Date().getTime()}.xlsx`)
    },
       /** 导入操作*/
    async handleImportData({file}){
   // 检查文件类型是否为xlsx
  // if (!params.file.name.endsWith('.xlsx')) {
  //   this.$message.error('请上传.xlsx格式的文件');
  //   return;
  // }
  const formData = new FormData();
  formData.append('file', file);
  formData.append('recordId', this.recordId)
  alert(this.recordId)
  console.log(file)
  // 显示加载中状态
  const loading = this.$loading({
    lock: true,
    text: '上传中...',
    spinner: 'el-icon-loading',
    background: 'rgba(0, 0, 0, 0.7)'
  });
  enload(formData, {
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  }).then(response => {
    loading.close();
    this.$message.success('导入成功');
    this.getList();
  }).catch(error => {
    loading.close();
    this.$message.error('导入失败: ' + (error.message || '未知错误'));
  });
    }
    }
  }
  </script>