|
@@ -10,14 +10,24 @@
|
|
|
<el-button size="small" type="primary" @click="dialogVisible = true">上传证书</el-button>
|
|
|
<el-table size="small" :data="dataList" border style="margin-top: 20px;width: 100%">
|
|
|
<el-table-column align="center" type="index" width="50" label="序号"></el-table-column>
|
|
|
- <el-table-column width="80" align="center" prop="type" label="类型"></el-table-column>
|
|
|
- <el-table-column align="center" prop="title" label="证书">
|
|
|
+ <el-table-column align="center" prop="title" width="100" label="标题"></el-table-column>
|
|
|
+ <el-table-column align="center" label="证书">
|
|
|
<template slot-scope="props">
|
|
|
- <a style="color: #1e80ff;" target="_blank" :href="props.row.file">{{ props.row.title }}</a>
|
|
|
+ <div v-for="(item,index) in props.row.files" :key="index">
|
|
|
+ <a style="color: #1e80ff;" target="_blank" :href="item.url">{{ item.oldName }}</a>
|
|
|
+ </div>
|
|
|
+
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column width="150" align="center" prop="createTime" label="上传时间"></el-table-column>
|
|
|
</el-table>
|
|
|
+ <!-- 分页 -->
|
|
|
+ <div class="myPage">
|
|
|
+ <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
|
|
|
+ :current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="10"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper" :total="total">
|
|
|
+ </el-pagination>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -27,19 +37,12 @@
|
|
|
title="上传证书"
|
|
|
:visible.sync="dialogVisible"
|
|
|
width="40%">
|
|
|
- <el-form ref="dataForm" :model="dataForm" label-width="50px">
|
|
|
- <el-form-item label="类型:">
|
|
|
- <el-select style="width: 95%;" size="small" v-model="dataForm.type"
|
|
|
- placeholder="请选择证书类型">
|
|
|
- <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="名称:">
|
|
|
+ <el-form :rules="rules" ref="dataForm" :model="dataForm" label-width="80px">
|
|
|
+ <el-form-item label="名称:" prop="title">
|
|
|
<el-input placeholder="请填写证名称" size="small" style="width: 95%;" v-model="dataForm.title"></el-input>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="证书:">
|
|
|
+ <el-form-item label="证书:" prop="fileIds">
|
|
|
<el-upload
|
|
|
:action="fileUrl"
|
|
|
:file-list="dataForm.files"
|
|
@@ -53,14 +56,13 @@
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
- <!-- <el-button size="small" @click="dialogVisible = false">取 消</el-button> -->
|
|
|
<el-button size="small" type="primary" @click="submitForm">确 定</el-button>
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
-import { msgList } from "@/api/allApi";
|
|
|
+import { certificatePage,certificateUpload } from "@/api/allApi";
|
|
|
import SiderInfo from '@/components/SiderInfo.vue'
|
|
|
export default{
|
|
|
components: {
|
|
@@ -69,43 +71,25 @@ export default{
|
|
|
data() {
|
|
|
return {
|
|
|
fileUrl: this.baseUrl,
|
|
|
- dataList:[
|
|
|
- {
|
|
|
- title:'英语四级证书',
|
|
|
- file: "https://xiaoyou.dgtis.com/images/image/2023/05/08/5hibpn5vzqr1i3z1cm3b.jpg",
|
|
|
- fileName: "微信图片_20230217092706.jpg",
|
|
|
- type: "类别1",
|
|
|
- createTime: "2023-5-8",
|
|
|
- }
|
|
|
- ],
|
|
|
+ dataList:[],
|
|
|
dialogVisible: false,
|
|
|
- options: [{
|
|
|
- value: '类别1',
|
|
|
- label: '类别1'
|
|
|
- }, {
|
|
|
- value: '类别2',
|
|
|
- label: '类别2'
|
|
|
- }, {
|
|
|
- value: '类别3',
|
|
|
- label: '类别3'
|
|
|
- }, {
|
|
|
- value: '类别4',
|
|
|
- label: '类别4'
|
|
|
- }, {
|
|
|
- value: '类别5',
|
|
|
- label: '类别5'
|
|
|
- }],
|
|
|
+ rules: {
|
|
|
+ title: [{ required: true, message: "请填写证书名称", trigger: "blur" }],
|
|
|
+ fileIds: [{ required: true, message: "请上传附件", trigger: "blur" }],
|
|
|
+ },
|
|
|
+ total: 0,
|
|
|
+ listQuery: {
|
|
|
+ page: 1,
|
|
|
+ limit: 10,
|
|
|
+ },
|
|
|
dataForm: {
|
|
|
title:'',
|
|
|
- files:[],
|
|
|
- fileName: '',
|
|
|
- file:'',
|
|
|
- createTime:'2023-5-8'
|
|
|
+ fileIds:'',
|
|
|
}
|
|
|
};
|
|
|
},
|
|
|
created(){
|
|
|
- // this.getDataList();
|
|
|
+ this.getDataList();
|
|
|
},
|
|
|
methods:{
|
|
|
beforeRemove(file, fileList) {
|
|
@@ -113,17 +97,12 @@ export default{
|
|
|
},
|
|
|
handleRemove(file, fileList) {
|
|
|
console.log(file, fileList);
|
|
|
- let files = [];
|
|
|
- let names = [];
|
|
|
+ let fileIds = [];
|
|
|
for (let i in fileList) {
|
|
|
- let response = fileList[i].response;
|
|
|
- let name = fileList[i].name;
|
|
|
- let url = response.data.url;
|
|
|
- files.push(url);
|
|
|
- names.push(name);
|
|
|
+ let id = fileList[i].response.data.id;
|
|
|
+ fileIds.push(id);
|
|
|
}
|
|
|
- this.dataForm.file = files.join(",");
|
|
|
- this.dataForm.fileName = names.join(",");
|
|
|
+ this.dataForm.fileIds = fileIds.join(",");
|
|
|
},
|
|
|
beforeUploadFile(file){
|
|
|
console.log(file);
|
|
@@ -139,8 +118,7 @@ export default{
|
|
|
console.log("------", "==========");
|
|
|
console.log("res = " , res);
|
|
|
|
|
|
- let files = [];
|
|
|
- let names = [];
|
|
|
+ let fileIds = [];
|
|
|
for (let i in fileList) {
|
|
|
let response = fileList[i].response;
|
|
|
if (response.errno && response.errno != "0") {
|
|
@@ -148,14 +126,11 @@ export default{
|
|
|
// 上传失败移除该 file 对象
|
|
|
fileList.splice(i, 1);
|
|
|
} else {
|
|
|
- let name = fileList[i].name;
|
|
|
- let url = fileList[i].response.data.url;
|
|
|
- files.push(url);
|
|
|
- names.push(name);
|
|
|
+ let id = fileList[i].response.data.id;
|
|
|
+ fileIds.push(id);
|
|
|
}
|
|
|
}
|
|
|
- this.dataForm.file = files.join(",");
|
|
|
- this.dataForm.fileName = names.join(",");
|
|
|
+ this.dataForm.fileIds = fileIds.join(",");
|
|
|
},
|
|
|
resetForm() {
|
|
|
this.$refs['dataForm'].resetFields();
|
|
@@ -163,20 +138,41 @@ export default{
|
|
|
submitForm() {
|
|
|
this.$refs['dataForm'].validate((valid) => {
|
|
|
if (valid) {
|
|
|
- this.dataList.push(this.dataForm);
|
|
|
- console.log(this.dataList);
|
|
|
- this.dialogVisible = false;
|
|
|
- this.resetForm();
|
|
|
+ certificateUpload(this.dataForm)
|
|
|
+ .then((response) => {
|
|
|
+ this.dialogVisible = false;
|
|
|
+ this.$notify({
|
|
|
+ title: "成功",
|
|
|
+ message: "证书上传成功",
|
|
|
+ type: "success",
|
|
|
+ duration: 2000,
|
|
|
+ });
|
|
|
+ this.getDataList();
|
|
|
+ })
|
|
|
+ .catch(() => { });
|
|
|
} else {
|
|
|
return false;
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
getDataList(){
|
|
|
- msgList().then(response=>{
|
|
|
- this.dataList = response.data.data.list;
|
|
|
+ certificatePage(this.listQuery).then(response=>{
|
|
|
+ this.dataList = response.data.data.items;
|
|
|
+ this.total = response.data.data.total;
|
|
|
})
|
|
|
},
|
|
|
+ handleFilter() {
|
|
|
+ this.listQuery.page = 1
|
|
|
+ this.getDataList()
|
|
|
+ },
|
|
|
+ handleSizeChange(val) {
|
|
|
+ this.listQuery.limit = val
|
|
|
+ this.getDataList()
|
|
|
+ },
|
|
|
+ handleCurrentChange(val) {
|
|
|
+ this.listQuery.page = val
|
|
|
+ this.getDataList()
|
|
|
+ },
|
|
|
|
|
|
},
|
|
|
}
|
|
@@ -213,4 +209,10 @@ export default{
|
|
|
font-size: 18px;
|
|
|
font-weight: 600;
|
|
|
}
|
|
|
+.myPage {
|
|
|
+ margin-top: 30px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
</style>
|