From 7afa7c7ad7d7f1250a086a406453a7cbc8b5cbd5 Mon Sep 17 00:00:00 2001
From: tian <3072314689@qq.com>
Date: 星期二, 23 九月 2025 19:35:55 +0800
Subject: [PATCH] 合并‘

---
 src/views/archiveManager/archiveMaterial/index.vue | 1019 +++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 747 insertions(+), 272 deletions(-)

diff --git a/src/views/archiveManager/archiveMaterial/index.vue b/src/views/archiveManager/archiveMaterial/index.vue
index 35ccbc2..d8a3c55 100644
--- a/src/views/archiveManager/archiveMaterial/index.vue
+++ b/src/views/archiveManager/archiveMaterial/index.vue
@@ -1,5 +1,512 @@
 <template>
     <div class="app-container">
+         <h2 class="title-border">娣诲姞妗堝嵎璇︾粏璁板綍</h2>
+ <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+    <el-row>
+    <el-col :span="8">
+          <el-form-item label="璐d换鑰�" prop="creator">
+            <el-input v-model="form.creator" placeholder="璇疯緭鍏ヨ矗浠昏��" />
+          </el-form-item>
+          </el-col>
+  </el-row>
+  <el-row>
+
+  <el-col :span="8">
+          <el-form-item label="鏂囦欢棰樺悕" prop="title">
+            <el-input v-model="form.title" placeholder="璇疯緭鍏ユ枃浠堕鍚�" />
+          </el-form-item>
+    </el-col>
+    </el-row>
+          <el-form-item label="鏃ユ湡" prop="date">
+            <!-- <el-date-picker clearable
+              v-model="form.date"
+              type="date"
+              value-format="yyyy-MM-dd"
+              placeholder="璇烽�夋嫨鏃ユ湡">
+            </el-date-picker> -->
+            <el-input v-model="form.date" placeholder="璇疯緭鍏ユ棩鏈� (鏍煎紡锛歽yyy-mm-dd)" style="width: 450px;" />
+            <!-- <div style="color: #999; font-size: 12px; margin-top: 4px;">璇疯緭鍏ユ纭殑鏃ユ湡鏍煎紡锛歽yyy-mm-dd</div> -->
+          </el-form-item>
+      
+
+
+
+
+
+          <!-- <el-form-item label="椤垫" prop="pageOrder">
+            <el-input v-model="form.pageOrder" placeholder="璇疯緭鍏ラ〉娆�" />
+          </el-form-item> -->
+           <el-form-item label="鏉愭枡绫诲瀷" prop="fileStyle">
+          <el-select
+            v-model="form.fileStyle"
+            placeholder="璇烽�夋嫨鏉愭枡绫诲瀷"
+          >
+            <el-option
+              v-for="item in fileStyleOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+          
+        </el-form-item>
+        <el-form-item 
+          label="椤靛彿" 
+          prop="pageNumber"
+          v-if=" form.fileStyle !== '鍏朵粬鏉愭枡'">
+      <el-col :span="8">
+  <el-input 
+    v-model="form.pageNumber" 
+    placeholder="璇疯緭鍏ラ〉鍙�" 
+  /></el-col>
+</el-form-item>
+          <el-form-item label="鎵�澶勯樁娈�" prop="stage">
+          <el-select
+            v-model="form.stage"
+            placeholder="璇烽�夋嫨鎵�澶勯樁娈�"
+          >
+            <el-option
+              v-for="item in stageOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+        </el-form-item>
+          <el-form-item label="鍏紑灞炴��" prop="publicity">
+          <el-select
+            v-model="form.publicity"
+            placeholder="璇烽�夋嫨鍏紑灞炴��"
+          >
+            <el-option
+              v-for="item in publicityOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+        </el-form-item>
+
+          <el-form-item label="鏄惁涓洪檮浠�" prop="isAttachment">
+          <el-select
+            v-model="form.isAttachment"
+            placeholder="璇烽�夋嫨鏄惁涓洪檮浠�"
+          >
+            <el-option
+              v-for="item in isAttachmentOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+        </el-form-item>
+
+          <el-form-item label="淇濈鏈熼檺" prop="retentionPeriod">
+          <el-select
+            v-model="form.retentionPeriod"
+            placeholder="璇烽�夋嫨淇濈鏈熼檺"
+          >
+            <el-option
+              v-for="item in retentionPeriodOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+        </el-form-item>
+
+      <!-- 瀵硅瘽妗嗚〃鍗曚腑鐨勫瘑绾� -->
+      <el-form-item label="瀵嗙骇" prop="securityLevel">
+          <el-select
+            v-model="form.securityLevel"
+            placeholder="璇烽�夋嫨瀵嗙骇"
+          >
+            <el-option
+              v-for="item in securityLevelOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+        </el-form-item>
+
+
+
+          <el-form-item label="鏄惁鏁忔劅" prop="isSensitive">
+          <el-select
+            v-model="form.isSensitive"
+            placeholder="璇疯緭鍏ユ槸鍚︽晱鎰�"
+          >
+            <el-option
+              v-for="item in isAttachmentOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+          </el-form-item>
+          <el-form-item label="鏄惁娉ㄩ攢" prop="isCanceled">
+          <el-select
+            v-model="form.isCanceled"
+            placeholder="璇疯緭鍏ユ槸鍚︽敞閿�"
+          >
+            <el-option
+              v-for="item in isAttachmentOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+        </el-form-item>
+
+
+        </el-form>
+        <div slot="footer" class="dialog-footer" @keydown.enter="submitForm">
+          <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+         <el-button type="primary" @click="resetForms">閲嶇疆</el-button>
+
+          <el-button @click="cancel">鍙� 娑�</el-button>
+        </div>
+
+
+
+<div class="title-border"></div>
+
+
+
+
+
+      <el-row :gutter="12" class="mb8">
+        <el-col :span="1.5">
+          <el-button
+            type="primary"
+            plain
+            icon="el-icon-plus"
+            size="mini"
+            @click="handleAdd"
+            v-hasPermi="['system:materials:add']"
+          >鎼滅储</el-button>
+        </el-col>
+        <el-col :span="1.5">
+          <el-button
+            type="success"
+            plain
+            icon="el-icon-edit"
+            size="mini"
+            :disabled="single"
+            @click="handleUpdate"
+            v-hasPermi="['system:materials:edit']"
+          >淇敼</el-button>
+        </el-col>
+        <el-col :span="1.5">
+          <el-button
+            type="danger"
+            plain
+            icon="el-icon-delete"
+            size="mini"
+            :disabled="multiple"
+            @click="handleDelete"
+            v-hasPermi="['system:materials:remove']"
+          >鍒犻櫎</el-button>
+        </el-col>
+        <el-col :span="1.5">
+          <el-button
+            type="warning"
+            plain
+            icon="el-icon-download"
+            size="mini"
+            @click="handleExport"
+            v-hasPermi="['system:materials:export']"
+          >瀵煎嚭</el-button>
+        </el-col>
+          <el-col :span="1.5">
+          <el-button
+            type="success"
+            plain
+            icon="el-icon-edit"
+            size="mini"
+            @click="handleImport"
+            v-hasPermi="['system:materials:edit']"
+          >鍏ㄩ儴闄勪欢瀵煎叆</el-button>
+
+
+            <!-- 鍦ㄦ寜閽笅鏂规坊鍔犲鍏ュ璇濇 -->
+  <el-dialog title="鎵归噺瀵煎叆闄勪欢" :visible.sync="importDialogVisible" width="50%">
+    <el-upload
+      class="upload-demo"
+      ref="upload"
+      :action="uploadUrl"
+         :headers="headers"
+               :data="uploadParams"
+      :on-success="handleSuccess"
+      :on-error="handleError"
+      :on-preview="handlePreview"
+      :on-remove="handleRemove"
+      :file-list="fileList"
+      :auto-upload="false"
+      multiple
+      accept=".jpg,.png"
+    >
+      <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">鍙笂浼燡PG绛夋牸寮忔枃浠讹紝鍗曚釜鏂囦欢涓嶈秴杩�50MB</div>
+    </el-upload>
+  </el-dialog>
+        </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>
+
+      <el-table v-loading="loading" :data="materialsList" @selection-change="handleSelectionChange">
+        <el-table-column type="selection" width="55" align="center" />
+                <el-table-column label="鏂囦欢鏉愭枡搴忓彿" align="center" prop="fileNumber" />
+
+        <el-table-column label="璐d换鑰�" align="center" prop="creator" />
+        <el-table-column label="鏂囦欢棰樺悕" align="center" prop="title" />
+        <el-table-column label="鏃ユ湡" align="center" prop="date" width="180">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.date, '{y}-{m}-{d}') }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="椤靛彿" sortable align="center" prop="pageNumber"  /> 
+                <el-table-column label="椤垫" sortable align="center" prop="pageOrder"  /> 
+
+        <el-table-column label="鎵�澶勯樁娈�" sortable align="center" prop="stage" />
+        <el-table-column label="鍏紑灞炴��" sortable align="center" prop="publicity" />
+        <el-table-column label="鏄惁涓洪檮鍥惧強闄勪欢" align="center" prop="isAttachment" />
+
+        <el-table-column label="淇濈鏈熼檺" align="center" prop="retentionPeriod" />
+        <el-table-column label="瀵嗙骇" align="center" prop="securityLevel" />
+        <el-table-column label="鏄惁娑夊瘑鍙婃晱鎰熶俊鎭�" align="center" prop="isSensitive" />
+        <el-table-column label="鏄惁娉ㄩ攢" align="center" prop="isCanceled" />
+        <el-table-column label="鏍煎紡" align="center" prop="format" />
+        <el-table-column label="骞呴潰" align="center" prop="sizeType" />
+        <el-table-column label="姘村钩鍒嗚鲸鐜�" align="center" prop="horizontalResolution" />
+        <el-table-column label="鍨傜洿鍒嗚鲸鐜�" align="center" prop="verticalResolution" />
+        <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" width="160" class-name="small-padding ">
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-edit"
+              @click="handleUpdate(scope.row)"
+              v-hasPermi="['system:materials:edit']"
+            >淇敼</el-button>
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-edit"
+              @click="handleUpdate(scope.row)"
+              v-hasPermi="['system:materials:edit']"
+            >瀵煎叆闄勪欢</el-button>
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-delete"
+              @click="handleDelete(scope.row)"
+              v-hasPermi="['system:materials:remove']"
+            >鍒犻櫎</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <pagination
+        v-show="total>0"
+        :total="total"
+        :page.sync="queryParams.pageNum"
+        :limit.sync="queryParams.pageSize"
+        @pagination="getList"
+      />
+      <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
+
+        <el-form ref="forms" :model="forms" :rules="rules" label-width="100px">
+           <el-row>
+           <el-col :span="8">
+               <el-form-item label="璐d换鑰�" prop="creator">
+                   <el-input v-model="forms.creator" placeholder="璇疯緭鍏ヨ矗浠昏��" />
+                 </el-form-item>
+           </el-col>
+               <el-col :span="8">
+                 <el-form-item label="鏂囦欢棰樺悕" prop="title">
+                   <el-input v-model="forms.title" placeholder="璇疯緭鍏ユ枃浠堕鍚�" />
+                 </el-form-item>
+           </el-col>
+           </el-row>
+                 <el-form-item label="鏃ユ湡" prop="date">
+                  <el-input v-model="forms.date" placeholder="璇疯緭鍏ユ棩鏈� (鏍煎紡锛歽yyy-mm-dd)" style="width: 200px;" />
+                   <!-- <el-date-picker clearable
+                     v-model="forms.date"
+                     type="date"
+                     value-format="yyyy-MM-dd"
+                     placeholder="璇烽�夋嫨鏃ユ湡">
+                   </el-date-picker> -->
+                 </el-form-item>
+                 <!-- <el-form-item label="椤垫" prop="pageOrder">
+                   <el-input v-model="forms.pageOrder" placeholder="璇疯緭鍏ラ〉娆�" />
+                 </el-form-item> -->
+    <el-form-item label="鏂囧瓧鏉愭枡" prop="fileStyle">
+          <el-select
+            v-model="forms.fileStyle"
+
+            placeholder="璇烽�夋嫨鏂囧瓧鏉愭枡"
+            clearable
+          >
+            <el-option
+              v-for="item in fileStyleOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+        </el-form-item>
+
+
+                 <el-form-item label="鎵�澶勯樁娈�" prop="stage">
+                 <el-select
+                   v-model="forms.stage"
+                   placeholder="璇烽�夋嫨鎵�澶勯樁娈�"
+                 >
+                   <el-option
+                     v-for="item in stageOptions"
+                     :key="item.value"
+                     :label="item.label"
+                     :value="item.value"
+                   />
+                 </el-select>
+               </el-form-item>
+                 <el-form-item label="鍏紑灞炴��" prop="publicity">
+                 <el-select
+                   v-model="forms.publicity"
+                   placeholder="璇烽�夋嫨鍏紑灞炴��"
+                 >
+                   <el-option
+                     v-for="item in publicityOptions"
+                     :key="item.value"
+                     :label="item.label"
+                     :value="item.value"
+                   />
+                 </el-select>
+               </el-form-item>
+
+                 <el-form-item label="鏄惁涓洪檮浠�" prop="isAttachment">
+                 <el-select
+                   v-model="forms.isAttachment"
+                   placeholder="璇烽�夋嫨鏄惁涓洪檮浠�"
+                 >
+                   <el-option
+                     v-for="item in isAttachmentOptions"
+                     :key="item.value"
+                     :label="item.label"
+                     :value="item.value"
+                   />
+                 </el-select>
+               </el-form-item>
+
+                 <el-form-item label="淇濈鏈熼檺" prop="retentionPeriod">
+                 <el-select
+                   v-model="forms.retentionPeriod"
+                   placeholder="璇烽�夋嫨淇濈鏈熼檺"
+                 >
+                   <el-option
+                     v-for="item in retentionPeriodOptions"
+                     :key="item.value"
+                     :label="item.label"
+                     :value="item.value"
+                   />
+                 </el-select>
+               </el-form-item>
+
+             <!-- 瀵硅瘽妗嗚〃鍗曚腑鐨勫瘑绾� -->
+             <el-form-item label="瀵嗙骇" prop="securityLevel">
+                 <el-select
+                   v-model="forms.securityLevel"
+                   placeholder="璇烽�夋嫨瀵嗙骇"
+                 >
+                   <el-option
+                     v-for="item in securityLevelOptions"
+                     :key="item.value"
+                     :label="item.label"
+                     :value="item.value"
+                   />
+                 </el-select>
+               </el-form-item>
+
+
+
+                 <el-form-item label="鏄惁鏁忔劅" prop="isSensitive">
+                 <el-select
+                   v-model="forms.isSensitive"
+                   placeholder="璇疯緭鍏ユ槸鍚︽晱鎰�"
+                 >
+                   <el-option
+                     v-for="item in isAttachmentOptions"
+                     :key="item.value"
+                     :label="item.label"
+                     :value="item.value"
+                   />
+                 </el-select>
+                 </el-form-item>
+                 <el-form-item label="鏄惁娉ㄩ攢" prop="isCanceled">
+                 <el-select
+                   v-model="forms.isCanceled"
+                   placeholder="璇疯緭鍏ユ槸鍚︽敞閿�"
+                 >
+                   <el-option
+                     v-for="item in isAttachmentOptions"
+                     :key="item.value"
+                     :label="item.label"
+                     :value="item.value"
+                   />
+                 </el-select>
+               </el-form-item>
+
+
+               </el-form>
+               <div slot="footer" class="dialog-footer">
+                 <el-button type="primary" @click="submitForms">纭� 瀹�</el-button>
+                 <el-button @click="cancel">鍙� 娑�</el-button>
+               </div>
+
+
+
+
+        </el-dialog>
+      <!-- 娣诲姞鎴栦慨鏀广�愯濉啓鍔熻兘鍚嶇О銆戝璇濇 -->
+      <el-dialog :title="titles" :visible.sync="opens" width="800px" append-to-body>
+
+
 
  <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
       <el-form-item label="璐d换鑰�" prop="creator">
@@ -19,12 +526,14 @@
         />
       </el-form-item>
       <el-form-item label="鏃ユ湡" prop="date">
-        <el-date-picker clearable
+        <el-input v-model="queryParams.date" placeholder="璇疯緭鍏ユ棩鏈� (鏍煎紡锛歽yyy-mm-dd)" />
+        <div style="color: #999; font-size: 12px; margin-top: 4px;">璇疯緭鍏ユ纭殑鏃ユ湡鏍煎紡锛歽yyy-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
@@ -42,6 +551,23 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
+     <el-form-item label="鏂囧瓧鏉愭枡" prop="fileStyle">
+          <el-select
+            v-model="queryParams.fileStyle"
+
+            placeholder="璇烽�夋嫨鏂囧瓧鏉愭枡"
+            clearable
+          >
+            <el-option
+              v-for="item in fileStyleOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+        </el-form-item>
+
+
       <el-form-item label="鎵�澶勯樁娈�" prop="stage">
           <el-select
             v-model="queryParams.stage"
@@ -114,7 +640,7 @@
           </el-select>
       </el-form-item>
       <el-form-item label="鏄惁鏁忔劅" prop="isSensitive">
-       
+
 
 
         <el-select
@@ -131,7 +657,7 @@
           </el-select>
       </el-form-item>
       <el-form-item label="鏄惁娉ㄩ攢" prop="isCanceled">
-        
+
 
         <el-select
             v-model="queryParams.isCanceled"
@@ -153,255 +679,36 @@
       </el-form-item>
     </el-form>
 
-      <el-row :gutter="10" class="mb8">
-        <el-col :span="1.5">
-          <el-button
-            type="primary"
-            plain
-            icon="el-icon-plus"
-            size="mini"
-            @click="handleAdd"
-            v-hasPermi="['system:materials:add']"
-          >鏂板</el-button>
-        </el-col>
-        <el-col :span="1.5">
-          <el-button
-            type="success"
-            plain
-            icon="el-icon-edit"
-            size="mini"
-            :disabled="single"
-            @click="handleUpdate"
-            v-hasPermi="['system:materials:edit']"
-          >淇敼</el-button>
-        </el-col>
-        <el-col :span="1.5">
-          <el-button
-            type="danger"
-            plain
-            icon="el-icon-delete"
-            size="mini"
-            :disabled="multiple"
-            @click="handleDelete"
-            v-hasPermi="['system:materials:remove']"
-          >鍒犻櫎</el-button>
-        </el-col>
-        <el-col :span="1.5">
-          <el-button
-            type="warning"
-            plain
-            icon="el-icon-download"
-            size="mini"
-            @click="handleExport"
-            v-hasPermi="['system:materials:export']"
-          >瀵煎嚭</el-button>
-        </el-col>
-        <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-      </el-row>
-
-      <el-table v-loading="loading" :data="materialsList" @selection-change="handleSelectionChange">
-        <el-table-column type="selection" width="55" align="center" />
-        <el-table-column label="璐d换鑰�" align="center" prop="creator" />
-        <el-table-column label="鏂囦欢棰樺悕" align="center" prop="title" />
-        <el-table-column label="鏃ユ湡" align="center" prop="date" width="180">
-          <template slot-scope="scope">
-            <span>{{ parseTime(scope.row.date, '{y}-{m}-{d}') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="椤靛彿" align="center" prop="pageNumber" />
-        <el-table-column label="椤垫" align="center" prop="pageOrder" />
-        <el-table-column label="鎵�澶勯樁娈�" align="center" prop="stage" />
-        <el-table-column label="鍏紑灞炴��" align="center" prop="publicity" />
-        <el-table-column label="鏄惁涓洪檮鍥惧強闄勪欢" align="center" prop="isAttachment" />
-
-        <el-table-column label="淇濈鏈熼檺" align="center" prop="retentionPeriod" />
-        <el-table-column label="瀵嗙骇" align="center" prop="securityLevel" />
-        <el-table-column label="鏄惁娑夊瘑鍙婃晱鎰熶俊鎭�" align="center" prop="isSensitive" />
-        <el-table-column label="鏄惁娉ㄩ攢" align="center" prop="isCanceled" />
-        <el-table-column label="鏍煎紡" align="center" prop="format" />
-        <el-table-column label="骞呴潰" align="center" prop="sizeType" />
-        <el-table-column label="姘村钩鍒嗚鲸鐜�" align="center" prop="horizontalResolution" />
-        <el-table-column label="鍨傜洿鍒嗚鲸鐜�" align="center" prop="verticalResolution" />
-        <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" width="160" class-name="small-padding ">
-          <template slot-scope="scope">
-            <el-button
-              size="mini"
-              type="text"
-              icon="el-icon-edit"
-              @click="handleUpdate(scope.row)"
-              v-hasPermi="['system:materials:edit']"
-            >淇敼</el-button>
-            <el-button
-              size="mini"
-              type="text"
-              icon="el-icon-edit"
-              @click="handleUpdate(scope.row)"
-              v-hasPermi="['system:materials:edit']"
-            >瀵煎叆闄勪欢</el-button>
-            <el-button
-              size="mini"
-              type="text"
-              icon="el-icon-delete"
-              @click="handleDelete(scope.row)"
-              v-hasPermi="['system:materials:remove']"
-            >鍒犻櫎</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-
-      <pagination
-        v-show="total>0"
-        :total="total"
-        :page.sync="queryParams.pageNum"
-        :limit.sync="queryParams.pageSize"
-        @pagination="getList"
-      />
-
-      <!-- 娣诲姞鎴栦慨鏀广�愯濉啓鍔熻兘鍚嶇О銆戝璇濇 -->
-      <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
-        <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-          <el-form-item label="璐d换鑰�" prop="creator">
-            <el-input v-model="form.creator" placeholder="璇疯緭鍏ヨ矗浠昏��" />
-          </el-form-item>
-          <el-form-item label="鏂囦欢棰樺悕" prop="title">
-            <el-input v-model="form.title" placeholder="璇疯緭鍏ユ枃浠堕鍚�" />
-          </el-form-item>
-          <el-form-item label="鏃ユ湡" prop="date">
-            <el-date-picker clearable
-              v-model="form.date"
-              type="date"
-              value-format="yyyy-MM-dd"
-              placeholder="璇烽�夋嫨鏃ユ湡">
-            </el-date-picker>
-          </el-form-item>
-          <el-form-item label="椤靛彿" prop="pageNumber">
-            <el-input v-model="form.pageNumber" placeholder="璇疯緭鍏ラ〉鍙�" />
-          </el-form-item>
-          <el-form-item label="椤垫" prop="pageOrder">
-            <el-input v-model="form.pageOrder" placeholder="璇疯緭鍏ラ〉娆�" />
-          </el-form-item>
-          <el-form-item label="鎵�澶勯樁娈�" prop="stage">
-          <el-select
-            v-model="form.stage"
-            placeholder="璇烽�夋嫨鎵�澶勯樁娈�"
-          >
-            <el-option
-              v-for="item in stageOptions"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            />
-          </el-select>
-        </el-form-item>
-          <el-form-item label="鍏紑灞炴��" prop="publicity">
-          <el-select
-            v-model="form.publicity"
-            placeholder="璇烽�夋嫨鍏紑灞炴��"
-          >
-            <el-option
-              v-for="item in publicityOptions"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            />
-          </el-select>
-        </el-form-item>
-
-          <el-form-item label="鏄惁涓洪檮浠�" prop="isAttachment">
-          <el-select
-            v-model="form.isAttachment"
-            placeholder="璇烽�夋嫨鏄惁涓洪檮浠�"
-          >
-            <el-option
-              v-for="item in isAttachmentOptions"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            />
-          </el-select>
-        </el-form-item>
-
-          <el-form-item label="淇濈鏈熼檺" prop="retentionPeriod">
-          <el-select
-            v-model="form.retentionPeriod"
-            placeholder="璇烽�夋嫨淇濈鏈熼檺"
-          >
-            <el-option
-              v-for="item in retentionPeriodOptions"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            />
-          </el-select>
-        </el-form-item>
-
-      <!-- 瀵硅瘽妗嗚〃鍗曚腑鐨勫瘑绾� -->
-      <el-form-item label="瀵嗙骇" prop="securityLevel">
-          <el-select
-            v-model="form.securityLevel"
-            placeholder="璇烽�夋嫨瀵嗙骇"
-          >
-            <el-option
-              v-for="item in securityLevelOptions"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            />
-          </el-select>
-        </el-form-item>
-
-         
-
-          <el-form-item label="鏄惁鏁忔劅" prop="isSensitive">
-          <el-select
-            v-model="form.isSensitive"
-            placeholder="璇疯緭鍏ユ槸鍚︽晱鎰�"
-          >
-            <el-option
-              v-for="item in isAttachmentOptions"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            />
-          </el-select>
-          </el-form-item>
-          <el-form-item label="鏄惁娉ㄩ攢" prop="isCanceled">
-          <el-select
-            v-model="form.isCanceled"
-            placeholder="璇疯緭鍏ユ槸鍚︽敞閿�"
-          >
-            <el-option
-              v-for="item in isAttachmentOptions"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            />
-          </el-select>
-        </el-form-item>
-
-
-        </el-form>
-        <div slot="footer" class="dialog-footer">
-          <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
-          <el-button @click="cancel">鍙� 娑�</el-button>
-        </div>
       </el-dialog>
     </div>
   </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 {
     name: "Materials",
     data() {
       return {
-        // 娣诲姞瀵嗙骇閫夐」
+       importDialogVisible: false,
+      fileList: [],
+      uploadUrl:  process.env.VUE_APP_BASE_API +'/system/materials/upload', // 鏇挎崲涓哄疄闄呯殑涓婁紶鎺ュ彛
+           headers: {
+        Authorization: 'Bearer ' + getToken()
+      },     
+      uploadParams: {
+        type: 'material' // 鑷畾涔変笂浼犵被鍨�
+      },
+      // 娣诲姞鏉愭枡绫诲瀷閫夐」
+      fileStyleOptions: [
+          { value: '鏂囧瓧鏉愭枡', label: '鏂囧瓧鏉愭枡' },
+          { value: '鍥炬牱鏉愭枡', label: '鍥炬牱鏉愭枡' },
+          { value: '鐓х墖鏉愭枡', label: '鐓х墖鏉愭枡' },
+                    { value: '鍏朵粬鏉愭枡', label: '鍏朵粬鏉愭枡' },
+        ],
+
+      // 娣诲姞瀵嗙骇閫夐」
         securityLevelOptions: [
           { value: '绉樺瘑', label: '绉樺瘑' },
           { value: '鏅��', label: '鏅��' }
@@ -430,7 +737,8 @@
           { value: '02-鍔炴杩囩▼鏉愭枡', label: '02-鍔炴杩囩▼鏉愭枡' },
           { value: '03-缁撹鎬ф枃浠�', label: '03-缁撹鎬ф枃浠�' },
           { value: '04-鍏朵粬鏉愭枡', label: '04-鍏朵粬鏉愭枡' },
-          { value: '05-妗f鍙樻洿鏉愭枡', label: '05-妗f鍙樻洿鏉愭枡' }
+          { value: '05-妗f鍙樻洿鏉愭枡', label: '05-妗f鍙樻洿鏉愭枡' },
+          { value: '06-涓氬姟鏁版嵁', label: '06-涓氬姟鏁版嵁' },
         ],
         recordId: null,
         // 閬僵灞�
@@ -451,6 +759,8 @@
         title: "",
         // 鏄惁鏄剧ず寮瑰嚭灞�
         open: false,
+        titles: "",
+        opens: false,
         // 鏌ヨ鍙傛暟
         queryParams: {
           pageNum: 1,
@@ -486,25 +796,44 @@
             // ... 鍏朵粬form灞炴�т繚鎸佷笉鍙� ...
             securityLevel: '鏅��' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ��
         },
+        forms:
+        {},
         // 琛ㄥ崟鏍¢獙
         rules: {
           creator: [
-            { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+            { required: true, message: "鍒涘缓鑰呬笉鑳戒负绌�", trigger: "blur" }
           ],
           title: [
-            { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+            { required: true, message: "妗堝嵎棰樺悕涓嶈兘涓虹┖", trigger: "blur" }
           ],
           date: [
-            { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" }
+            { required: true, message: "鏃ユ湡涓嶈兘涓虹┖", trigger: "blur" },
+            { pattern: /^\d{4}-\d{2}-\d{2}$/, message: "鏃ユ湡鏍煎紡蹇呴』涓簓yyy-mm-dd", trigger: "blur" }
           ],
         }
       }
     },
+   mounted() {
+    // 鏀逛负鐩戝惉keydown浜嬩欢
+    document.addEventListener('keydown', this.handleKeyDown)
+  },
+  beforeDestroy() {
+    document.removeEventListener('keydown', this.handleKeyDown)
+  },
     created() {
       //const roleId = this.$route.params && this.$route.params.roleId
       const recordId = this.$route.params && this.$route.params.recordId
-      alert(recordId)
+      //alert(recordId)
       this.recordId = recordId;
+
+// alert('Bearer ' + getToken())
+      this.reset()
+      this.form.securityLevel = '鏅��' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ��
+      this.form.isSensitive = '鍚�' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ��
+      this.form.isCanceled = '鍚�' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ��
+      this.form.isAttachment = '鍚�' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ��
+      this.form.isDiagram = '鍚�' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ��
+      this.form.retentionPeriod = '姘镐箙' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ��
       if (recordId) {
 
         this.queryParams.recordId = recordId
@@ -512,6 +841,62 @@
       }
     },
     methods: {
+        // 涓婁紶澶辫触鍥炶皟
+    handleError(err, file, fileList) {
+      this.$modal.msgError("涓婁紶澶辫触: " + err.message)
+       // 娓呴櫎涓婁紶鍒楄〃
+  this.$refs.upload.clearFiles();
+    },
+          // 涓婁紶鎴愬姛鍥炶皟
+    handleSuccess(response, file, fileList) {
+      if (response.code === 200) {
+        this.$modal.msgSuccess("涓婁紶鎴愬姛")
+ // 娓呴櫎涓婁紶鍒楄〃
+  this.$refs.upload.clearFiles();
+  // 鍏抽棴涓婁紶瀵硅瘽妗�
+  this.importDialogVisible = false;
+  // 鍒锋柊鍒楄〃鏁版嵁
+  this.getList();        // 杩欓噷鍙互璋冪敤鎺ュ彛鍏宠仈涓婁紶鐨勬枃浠跺拰褰撳墠璁板綍
+      } else {
+        // alert(234)
+        console.log(response)
+        this.$modal.msgError(response.msg)
+      }
+    },
+       // 鎵撳紑瀵煎叆瀵硅瘽妗�
+    handleImport() {
+      this.importDialogVisible = true
+    },
+    // 鏂囦欢绉婚櫎
+    handleRemove(file, fileList) {
+      this.fileList = fileList
+    },
+    // 鏂囦欢棰勮
+    handlePreview(file) {
+      console.log(file)
+    },
+    // 鎻愪氦涓婁紶
+    submitUpload() {
+      this.$refs.upload.submit()
+    },
+          handleKeyDown(e) {
+      // 鍦╧eydown浜嬩欢涓洿鏃╁湴闃绘榛樿琛屼负
+      if ((e.ctrlKey || e.metaKey) && e.key === 's') {
+        e.preventDefault()
+         this.$refs.form.validate(valid => {
+      if (valid) {
+        this.submitForm();
+      } else {
+        this.$message.error('璇峰~鍐欐墍鏈夊繀濉瓧娈�');
+      }
+    });
+      }
+        // 鏂板Ctrl+D蹇嵎閿�
+  if ((e.ctrlKey || e.metaKey) && e.key === 'd') {
+    e.preventDefault();
+    this.resetForms();
+  }
+    },
       /** 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛� */
       getList() {
         this.loading = true
@@ -526,6 +911,37 @@
       cancel() {
         this.open = false
         this.reset()
+      },
+      resets() {
+        this.forms = {
+          materialId: null,
+          creator: null,
+          title: null,
+          date: null,
+          pageNumber: null,
+          pageOrder: null,
+          stage: null,
+          publicity: null,
+          isAttachment: null,
+          isDiagram: null,
+          retentionPeriod: null,
+          securityLevel: null,
+          isSensitive: null,
+          isCanceled: null,
+          format: null,
+          sizeType: null,
+          horizontalResolution: null,
+          verticalResolution: null,
+          width: null,
+          height: null,
+          fileSize: null,
+          attachmentHistoryNumbers: null,
+          remarks: null,
+          createdAt: null,
+          updatedAt: null,
+          recordId: null
+        }
+        this.resetForm("forms")
       },
       // 琛ㄥ崟閲嶇疆
       reset() {
@@ -577,45 +993,54 @@
       },
       /** 鏂板鎸夐挳鎿嶄綔 */
       handleAdd() {
-        this.reset()
-        this.form.securityLevel = '鏅��' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ��
-        this.form.isSensitive = '鍚�' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ��
-        this.form.isCanceled = '鍚�' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ��
-        this.form.isAttachment = '鍚�' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ��
-        this.form.isDiagram = '鍚�' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ��
-        this.form.retentionPeriod = '姘镐箙' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ��
-        this.open = true
-        this.title = "娣诲姞妗堝嵎璇︾粏淇℃伅"
+
+        this.opens = true
+        this.titles = "鎼滅储妗堝嵎璇︾粏淇℃伅"
       },
       /** 淇敼鎸夐挳鎿嶄綔 */
       handleUpdate(row) {
-        this.reset()
+        this.resets()
         const materialId = row.materialId || this.ids
         getMaterials(materialId).then(response => {
-          this.form = response.data
+          this.forms = response.data
           this.open = true
           this.title = "淇敼妗堝嵎璇︾粏淇℃伅"
         })
       },
+      resetForms()
+      {
+   this.reset()
+          this.form.securityLevel = '鏅��' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ��
+          this.form.isSensitive = '鍚�' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ��
+          this.form.isCanceled = '鍚�' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ��
+          this.form.isAttachment = '鍚�' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ��
+          this.form.isDiagram = '鍚�' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ��
+          this.form.retentionPeriod = '姘镐箙' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ��
+      },
+      submitForm()
+      {
+        console.log(this.form)
+        this.form.recordId = this.recordId
+        console.log("==============+++++++++++++++============")
+        addMaterials(this.form).then(response => {
+          this.$modal.msgSuccess("鏂板鎴愬姛")
+        //  this.opens = false
+       
+          this.getList()
+        })
+      },
       /** 鎻愪氦鎸夐挳 */
-      submitForm() {
-        this.$refs["form"].validate(valid => {
+      submitForms() {
+        this.$refs["forms"].validate(valid => {
           if (valid) {
-            if (this.form.materialId != null) {
-              updateMaterials(this.form).then(response => {
+            if (this.forms.materialId != null) {
+              updateMaterials(this.forms).then(response => {
                 this.$modal.msgSuccess("淇敼鎴愬姛")
                 this.open = false
                 this.getList()
               })
             } else {
-              console.log(this.form)
-              this.form.recordId = this.recordId
-              console.log("==============+++++++++++++++============")
-              addMaterials(this.form).then(response => {
-                this.$modal.msgSuccess("鏂板鎴愬姛")
-                this.open = false
-                this.getList()
-              })
+
             }
           }
         })
@@ -635,7 +1060,57 @@
         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>
+<style scoped>
+.title-border {
+  border-bottom: 1px solid #dcdfe6;
+  padding-bottom: 10px;
+  margin-bottom: 20px;
+}
+</style>

--
Gitblit v1.9.1