From 97667573dd1f176bccb9aa09c0bf71fbb16974e1 Mon Sep 17 00:00:00 2001 From: tian <3072314689@qq.com> Date: 星期日, 28 九月 2025 18:19:43 +0800 Subject: [PATCH] 必选框 --- src/views/archiveManager/archiveMaterial/index.vue | 1052 ++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 762 insertions(+), 290 deletions(-) diff --git a/src/views/archiveManager/archiveMaterial/index.vue b/src/views/archiveManager/archiveMaterial/index.vue index 66b92f9..9765d8c 100644 --- a/src/views/archiveManager/archiveMaterial/index.vue +++ b/src/views/archiveManager/archiveMaterial/index.vue @@ -1,5 +1,508 @@ <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.number="form.pageNumber" + placeholder="璇疯緭鍏ラ〉鍙凤紙鏁板瓧绫诲瀷锛�" + type="number" + min="1" + oninput="value=value.replace(/[^\d]/g,'')" style="width: 450px;" + /></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,20 +522,27 @@ /> </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 - v-model="queryParams.pageNumber" - placeholder="璇疯緭鍏ラ〉鍙�" - clearable - @keyup.enter.native="handleQuery" - /> + <el-col :span="8"> + <el-input + v-model.number="queryParams.pageNumber" + placeholder="璇疯緭鍏ラ〉鍙凤紙鏁板瓧绫诲瀷锛�" + clearable + type="number" + min="1" + oninput="value=value.replace(/[^\d]/g,'')" + @keyup.enter.native="handleQuery" + /> + </el-col> </el-form-item> <el-form-item label="椤垫" prop="pageOrder"> <el-input @@ -42,6 +552,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 +641,7 @@ </el-select> </el-form-item> <el-form-item label="鏄惁鏁忔劅" prop="isSensitive"> - + <el-select @@ -131,7 +658,7 @@ </el-select> </el-form-item> <el-form-item label="鏄惁娉ㄩ攢" prop="isCanceled"> - + <el-select v-model="queryParams.isCanceled" @@ -153,269 +680,41 @@ </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 :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> - <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: '鏅��' } + { value: '鏅��', label: '鏅��' }, + { value: '璇ラ〉鍙﹀瓨', label: '璇ラ〉鍙﹀瓨' } + ], // 娣诲姞淇濈鏈熼檺閫夐」 retentionPeriodOptions: [ @@ -441,7 +740,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, // 閬僵灞� @@ -462,6 +762,8 @@ title: "", // 鏄惁鏄剧ず寮瑰嚭灞� open: false, + titles: "", + opens: false, // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, @@ -497,25 +799,49 @@ // ... 鍏朵粬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" } ], + pageNumber: [ + { required: true, message: "椤靛彿涓嶈兘涓虹┖", trigger: "blur" }, + { type: 'number', message: '椤靛彿蹇呴』涓烘暟瀛楃被鍨�', trigger: ['blur', 'change'] }, + { pattern: /^\d+$/, message: '璇疯緭鍏ユ鏁存暟', 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 @@ -523,6 +849,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 @@ -537,6 +919,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() { @@ -588,45 +1001,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() - }) + } } }) @@ -646,7 +1068,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