<!doctype html>
|
<html>
|
<head>
|
<meta charset="utf-8"><meta http-equiv="Expires" content="0"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Cache-control" content="no-cache"><meta http-equiv="Cache" content="no-cache">
|
<title>上传文件附件</title>
|
<script src="../../js/vue/vue.js"></script>
|
<script src="../../js/vue/axios/dist/axios.min.js"></script>
|
<script src="../../js/vue/element-ui/lib/index.js"></script>
|
<script src="../../js/vue/page.js?v=20220425"></script>
|
<script src="../../js/myelement.js?v=20220425"></script>
|
<script src="../../js/common.js"></script>
|
|
<link href="../../js/vue/element-ui/lib/theme-chalk/index.css" rel="stylesheet">
|
<link href="../../css/myelement.css?v=20220425" rel="stylesheet">
|
<link href="../../css/iconfont.css" rel="stylesheet">
|
<link href="../../css/page.css?v=20220425" rel="stylesheet">
|
<link href="//at.alicdn.com/t/font_2374495_mkoo966o0uo.css" rel="stylesheet">
|
</head>
|
|
<body>
|
<div id="vbody">
|
<div id="page_root">
|
<div ref="popup_body" style="width: 300px; height: 490px;padding-right: 20px;">
|
<div class="el-dialog__header">
|
<div class="dialog-title">
|
<i class="iconfont icon-customermanagement"></i>
|
<span> 头像上传 </span>
|
</div>
|
</div>
|
<div class="el-dialog__body" style="height: 350px;">
|
<div class="class_dataImport" style="padding: 0px 24px;">
|
<img :src="picture_" style="height: 160px;width: 160px; border-radius: 50%">
|
<div>
|
<!-- 步骤一,选择数据文件 -->
|
<div >
|
<div style="padding-top: 90px; box-sizing:boder-box">
|
<el-upload class="avatar-uploader" :before-upload="beforeAvatarUpload"
|
:on-exceed="handleExceed" :action="upload_url" :headers="upload_headers"
|
:on-success="upload_success" :on-error="upload_error" accept=".png,.jpg"
|
:on-change="upload_change" :multiple="upload_multiple" :limit="1"
|
:file-list="fileList" :auto-upload="false" ref="upload">
|
<el-button size="small" type="primary">选择上传图片</el-button>
|
</el-upload>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="el-dialog__footer">
|
<el-button type="primary" size="small" @click="saveRowTable">保 存</el-button>
|
<el-button size="small" @click="closeDialog">关 闭</el-button>
|
</div>
|
</div>
|
</div>
|
<div id="page_loading" style="position: absolute; top:0px; width: 100vw; height: 100vh;">
|
<div class="spinner">
|
<div class="cube1"></div>
|
<div class="cube2"></div>
|
</div>
|
</div>
|
</div>
|
<script type="text/javascript">
|
new Vue({
|
el: "#vbody",
|
data: {
|
popupParames: {},
|
formData: {},
|
fileObjList: [],
|
formAttr: {
|
istitle: false,
|
title: "",
|
columnnumber: 1,
|
labelwidth: "150px",
|
labelposition: "right",
|
size: "medium",
|
border: "3px solid #c6c6c600",
|
|
formatter: function(data, fields) {
|
|
}
|
},
|
|
form_data: {},
|
file_txt: false,
|
|
|
//上传页面
|
add_Step: 0,
|
upload_url: "",
|
upload_headers: {},
|
upload_multiple: false, //是否允许多文件
|
fileList: [".png", ".jpg"],
|
|
filetypelist: [],
|
analysistype: "",
|
filetype: "jpg/png/pdf",
|
loading_nextStep: false,
|
messagelist: [],
|
disabled_NextStepLength: false,
|
uploade_state: false,
|
upload_file: null,
|
picture_:"",
|
|
},
|
|
created() {
|
this.popupParames = clone(Root.popupParames);
|
//this.upload_url = window.top.RootSetting.url + "root/file/exec";
|
this.upload_url = window.top.RootSetting.url + "file/exec";
|
},
|
mounted() {
|
var me = this;
|
let param_ = {
|
dataname: "user",
|
filter: "id ='" + localStorage.getItem("id")+"'",
|
}
|
|
Server.call("root/data/getEntity", param_, function(result_) {
|
console.log(result_);
|
if (result_ && result_.data.entity.avatar) {
|
me.picture_ = getDownloadFileUrl(result_.data.entity.avatar)
|
|
}
|
});
|
this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
|
document.getElementById('page_root').style.display = "block";
|
document.getElementById('page_loading').style.display = "none";
|
|
//重新设置弹窗宽高
|
this.$nextTick(function() {
|
let w_ = this.$refs.popup_body.offsetWidth + "px";
|
let h_ = this.$refs.popup_body.offsetHeight + "px";
|
Root.setPopupWH(w_, h_);
|
})
|
});
|
},
|
|
methods: {
|
closeDialog() {
|
Root.hidePopup();
|
},
|
saveRowTable() {
|
let me = this;
|
let formData = new FormData()
|
formData.append("file", this.upload_file.raw);
|
|
uploadFile(me, formData, result_ => {
|
me.uploade_state = true;
|
|
var ids = result_.data.data.ids;
|
me.getFilePreview(ids, me.upload_file);
|
})
|
|
},
|
|
beforeAvatarUpload(file) {
|
let FileName = file.name;
|
let index1 = FileName.lastIndexOf(".");
|
let index2 = FileName.length;
|
let suffix = FileName.substring(index1, index2).toLowerCase(); //后缀名
|
let isFileType = false;
|
|
if (this.filetypelist.length) {
|
this.filetypelist.map(e=>{
|
if (suffix === e) {
|
isFileType = true;
|
}
|
});
|
}
|
else {//没有设置则默认全部文件可传
|
isFileType = true;
|
}
|
|
if (!isFileType) {
|
this.$message.error('只能上传' + this.filetype + '文件');
|
} else {}
|
return isFileType;
|
},
|
handleExceed(files, fileList) {
|
this.$message.warning(`当前限制选择 1 个文件`);
|
},
|
|
|
/* 导入时文件状态改变事件*/
|
upload_change(event) {
|
|
var URL = null;
|
if (window.createObjectURL != undefined) {
|
// basic
|
URL = window.createObjectURL(event.raw);
|
} else if (window.URL != undefined) {
|
// mozilla(firefox)
|
URL = window.URL.createObjectURL(event.raw);
|
} else if (window.webkitURL != undefined) {
|
// webkit or chrome
|
URL = window.webkitURL.createObjectURL(event.raw);
|
}
|
// 转换后的地址为 blob:http://xxx/7bf54338-74bb-47b9-9a7f-7a7093c716b5
|
this.picture_ = URL;
|
console.log(event);
|
this.upload_file = event;
|
|
},
|
|
/* 导入时文件成功事件 */
|
upload_success(response, file, fileList) {
|
console.log(response);
|
this.uploade_state = true;
|
|
var ids = response.data.data.ids;
|
//this.getFilePreview(ids, file);
|
|
},
|
|
getFilePreview(ids, file) {
|
var me = this;
|
|
let FileName = file.name;
|
let index1 = FileName.lastIndexOf(".");
|
let index2 = FileName.length;
|
let suffix = FileName.substring(index1, index2).toLowerCase(); //后缀名
|
|
|
this.fileObjList = ids.map(oneFileId => {
|
return {
|
id: oneFileId,
|
name: file.name,
|
url: getDownloadFileUrl(oneFileId)
|
}
|
})
|
var paramObj = {};
|
paramObj.id = localStorage.getItem("id");
|
paramObj.avatar = this.fileObjList[0].id;
|
var param = paramObj;
|
|
Server.call("root/data/updateEntity/user", param, function(result) {
|
Root.message({
|
type: 'success',
|
message: '提交成功'
|
});
|
if(me.popupParames.callback) {
|
let obj = {
|
url: me.picture_
|
}
|
me.popupParames.callback(obj, function() {
|
Root.hidePopup();
|
});
|
}
|
|
});
|
|
},
|
|
/* 导入时文件失败事件 */
|
upload_error(err, file, fileList) {
|
console.log(err);
|
this.loading_nextStep = false;
|
this.messagelist = ['上传请求失败'];
|
clearTimeout(this.timer);
|
this.$message({
|
message: '上传请求失败',
|
type: 'warning'
|
});
|
},
|
|
}
|
});
|
</script>
|
|
<style>
|
.el-input__inner {
|
padding: 0 2px;
|
}
|
.avatar-uploader .el-upload {
|
border: 1px dashed #d9d9d9;
|
border-radius: 6px;
|
cursor: pointer;
|
position: relative;
|
overflow: hidden;
|
}
|
.avatar-uploader .el-upload:hover {
|
border-color: #409EFF;
|
}
|
.avatar-uploader-icon {
|
font-size: 28px;
|
color: #8c939d;
|
width: 178px;
|
height: 178px;
|
line-height: 178px;
|
text-align: center;
|
}
|
.avatar {
|
width: 30px;
|
height: 30px;
|
display: block;
|
}
|
</style>
|
|
</body>
|
</html>
|