<!doctype html>
|
<html>
|
<head>
|
<meta charset="utf-8">
|
<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"></script>
|
<script src="../../js/myelement.js"></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" rel="stylesheet">
|
<link href="../../css/iconfont.css" rel="stylesheet">
|
<link href="../../css/page.css" 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: 900px; 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;">
|
<!-- 数据导入步骤 -->
|
<el-steps :active="add_Step" finish-status="success">
|
<!-- 步骤一 -->
|
<el-step title="选择文件"></el-step>
|
<!-- 步骤二 -->
|
<el-step title="预览"></el-step>
|
</el-steps>
|
<div
|
style="height: 300px; border: 1px solid #C0C4CC; padding:0px; box-sizing:boder-box; overflow: auto;">
|
<!-- 步骤一,选择数据文件 -->
|
<div v-if="add_Step == 0" style="width: 100%; height: 100%;" align="center">
|
<div style="padding-top: 90px; box-sizing:boder-box">
|
<el-upload class="upload-demo" :before-upload="beforeAvatarUpload"
|
:on-exceed="handleExceed" :action="upload_url" :headers="upload_headers"
|
:on-success="upload_change_" :on-error="upload_error"
|
: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>
|
<div v-if="filetype" slot="tip" class="el-upload__tip">只能上传{{filetype}}文件</div>
|
</el-upload>
|
<div style="width: 100%; text-align: left;">
|
<!-- 上传时的反馈日志 -->
|
<li v-for="row in messagelist">{{row}}</li>
|
</div>
|
</div>
|
</div>
|
|
<!-- 导入数据的预览 -->
|
<div v-if="add_Step == 1" style="width: 100%; height: 100%; margin:0 auto">
|
<el-image v-if="file_img" v-for="picimg in fileObjList"
|
style="width: 600px; height: 400px; margin-left: 10px;"
|
:src="picimg.url"
|
fit="contain">
|
</el-image>
|
<div v-else>
|
<span>仅可预览.png和.jpg图片文件</span>
|
</div>
|
|
<div v-if="file_txt" style="height: 50%;">
|
<h-form ref="form1"
|
:form-attr="formAttr"
|
:table-fields="tableFields"
|
:form-data="form_data"
|
>
|
</h-form>
|
</div>
|
</div>
|
|
</div>
|
</div>
|
</div>
|
<div class="el-dialog__footer">
|
<!-- 下一页 -->
|
<el-button v-if="add_Step == 0" :disabled="disabled_NextStepLength" type="primary"
|
:loading="loading_nextStep" size="small" @click="NextStep">上传预览</el-button>
|
<el-button v-else-if="add_Step == 1" :disabled="disabled_NextStepLength" type="primary"
|
:loading="loading_nextStep" 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) {
|
|
}
|
},
|
tableFields: [
|
{isshow: "T", field: "num", name: "序号"},
|
{isshow: "T", field: "scope", name: "范围"},
|
{isshow: "T", field: "licence_date", name: "发证日期", type: "date"},
|
{isshow: "T", field: "ia", name: "发证机构"},
|
{isshow: "T", field: "license_term", name: "失效日期", type: "date"},
|
],
|
form_data: {},
|
file_txt: false,
|
file_img: false,
|
|
//上传页面
|
add_Step: 0,
|
upload_url: "",
|
upload_headers: {},
|
upload_multiple: false, //是否允许多文件
|
fileList: [],
|
|
filetypelist: [],
|
analysistype: "",
|
filetype: "jpg/png/pdf",
|
loading_nextStep: false,
|
messagelist: [],
|
disabled_NextStepLength: false,
|
uploade_state: false,
|
upload_file: null,
|
|
},
|
|
created() {
|
this.popupParames = clone(Root.popupParames);
|
//this.upload_url = window.top.RootSetting.url + "root/file/exec";
|
this.upload_url = window.top.RootSetting.url_jeminact + "file/exec?userId=" + localStorage.getItem("id");
|
},
|
mounted() {
|
var me = this;
|
if (this.popupParames.data) {
|
this.formData = clone(this.popupParames.data);
|
this.filetypelist = clone(this.popupParames.delta.filetypelist);
|
if (this.popupParames.delta.analysistype) {
|
this.analysistype = clone(this.popupParames.delta.analysistype);
|
}
|
else {
|
this.analysistype = "";
|
}
|
|
this.filetype = "";
|
this.filetypelist.map(e=>{
|
e = e.toLowerCase();
|
/* if (me.filetype) {
|
me.filetype = e;
|
} */
|
me.filetype += "/" + e;
|
});
|
}
|
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() {
|
this.saveAfter();
|
},
|
|
saveAfter() {
|
var me = this;
|
if (this.popupParames.callback) {
|
let obj = {
|
row: this.fileObjList,
|
filetxt: this.form_data
|
}
|
this.popupParames.callback(obj, function() {
|
if (me.popupParames.totab) {
|
Root.tab.removeItem(Root.tab.selected);
|
Root.tab.open(me.popupParames.parentOption, false);
|
} else {
|
Root.hidePopup();
|
}
|
});
|
} else {
|
alert("该按键事件缺失!")
|
}
|
},
|
|
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 次限制选择 1 个文件`);
|
},
|
|
|
/* 步骤下一步事件 */
|
NextStep() {
|
if (!this.uploade_state) {
|
this.submitUpload();
|
return;
|
} else if (this.add_Step == 1) {
|
this.saveRowTable();
|
}
|
},
|
|
/* 数据导入事件 */
|
submitUpload() {
|
if (!this.upload_file || !this.upload_file.raw) {
|
this.$message.warning("请先上传文件");
|
return
|
}
|
this.loading_nextStep = true;
|
//this.$refs.upload.submit();
|
|
let me = this;
|
let formData = new FormData()
|
formData.append("file", this.upload_file.raw);
|
|
this.uploadFile(me, formData, result_ => {
|
me.uploade_state = true;
|
|
var ids = result_.data.data.ids;
|
me.getFilePreview(ids, me.upload_file);
|
})
|
},
|
|
uploadFile(vue, formData, callback, error_callback) {
|
var user_id = localStorage.getItem("id");
|
uploadAxios.post(window.top.RootSetting.url_jeminact +'file/exec?userId=' + user_id, formData).then(data_ => {
|
vue.$message({
|
showClose: true,
|
message: '上传成功!',
|
type: 'success'
|
});
|
if (callback) {
|
callback(data_);
|
}
|
}).catch(error => {
|
vue.$message({
|
showClose: true,
|
message: ':请求出现错误:' + error,
|
type: 'error'
|
});
|
console.error(error);
|
if (error_callback) {
|
error_callback(error);
|
}
|
});
|
},
|
|
/* 导入时文件状态改变事件*/
|
upload_change(file, fileList) {
|
console.log(file);
|
this.upload_file = file;
|
if (fileList.length > 0) {
|
this.disabled_NextStepLength = false;
|
}
|
},
|
|
/* 导入时文件成功事件 */
|
upload_change_(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(); //后缀名
|
|
if (suffix == ".png" || suffix == ".jpg") {
|
this.file_img = true;
|
}
|
|
this.fileObjList = ids.map(oneFileId => {
|
return {
|
id: oneFileId,
|
name: file.name,
|
url: getDownloadFileUrl(oneFileId)
|
}
|
})
|
if (this.analysistype && suffix != ".pdf") {
|
var parse_ = "";
|
if(this.analysistype == "BizLicense") {
|
parse_ = "parseBDLicence";//"parseLicense";
|
}
|
else if(this.analysistype == "BizYPLicence") {
|
parse_ = "parseYPLicence";
|
}
|
else if(this.analysistype == "BizGSP") {
|
parse_ = "parseGSP";
|
}
|
|
if (!parse_) {
|
Root.message({
|
type: 'warning',
|
message: '没有'
|
});
|
}
|
let param_ = {
|
isClientMode: false,
|
file_id: ids[0],
|
type: me.analysistype//"BizLicense"
|
}
|
me.form_data = {};
|
|
Server.call("root/api/" + parse_, param_, function(result){
|
//options_ = result.data.entityset;
|
if(me.analysistype == "BizLicense") {
|
var form_data_ = {};
|
var retObj_ = result.data.data.words_result;
|
var zz_map_ = {
|
"社会信用代码": "RegNum",
|
"单位名称":"Name",
|
"法人":"Person",
|
"地址":"Address",
|
|
"经营范围": "Business",
|
"成立日期": "SetDate",
|
"有效期": "Period",
|
/*
|
单位名称: {words: "浙江金益医药有限公司有限责任公司(非自然人投资或控股的法人独资)", location: {…}}
|
地址: {words: "金华市金东区金园路39号", location: {…}}
|
实收资本: {words: "无", location: {…}}
|
成立日期: {words: "2006年07月07日", location: {…}}
|
有效期: {words: "2026年07月06日", location: {…}}
|
法人: {words: "郭佳奕", location: {…}}
|
注册资本: {words: "500万元", location: {…}}
|
登记机关: {words: "无", location: {…}}
|
社会信用代码: {words: "91330703790971767X", location: {…}}
|
税务登记号: {words: "无", location: {…}}
|
类型: {words: "无", location: {…}}
|
组成形式: {words: "无", location: {…}}
|
经营范围: {words: "中成药、中药材、中药饮片、化学原料药及其制剂、抗生素原料药及其制剂、生化药品、生物制品、蛋白同化制剂…器材批发、零售:服镜验光、配镜:体车服务。(依法须经批准的项目,经相关部门批准后方可开展经营活动)", location: {…}}
|
证件编号: {words: "无", location: {…}}
|
[[Prototype]]: Obj */
|
}
|
if(retObj_ && retObj_["社会信用代码"] && retObj_["社会信用代码"].words.length > 10) {
|
for(var o in zz_map_) {
|
if (retObj_[o]) {
|
var v_ = retObj_[o].words;
|
if ( "string" == typeof v_) {
|
//去除两端的空格
|
v_ = v_.replace(/(^\s*)|(\s*$)/g, "");
|
//去除中间的回车换行
|
v_ = v_.replace(/[\r\n]/g,"");
|
//去除中间所有"
|
v_ = v_.replace(/\"/g,"");
|
}
|
form_data_[zz_map_[o]] = v_;
|
}
|
}
|
}else {
|
me.$message({
|
type:"warning",
|
message:"识别失败"
|
})
|
me.fileObjList = [{
|
url: ""
|
}];
|
me.disabled_NextStepLength = true;
|
}
|
me.form_data = form_data_;
|
/* var retList_ = result.data.parseResult;
|
var form_data_ = {};
|
for (var k in retList_) {
|
var v_ = retList_[k];
|
if ( "string" == typeof v_) {
|
//去除两端的空格
|
v_ = v_.replace(/(^\s*)|(\s*$)/g, "");
|
//去除中间的回车换行
|
v_ = v_.replace(/[\r\n]/g,"");
|
//去除中间所有"
|
v_ = v_.replace(/\"/g,"");
|
}
|
form_data_[k] = v_;
|
}
|
me.form_data = form_data_; */
|
}
|
else if(me.analysistype == "BizYPLicence") {
|
var retList_ = result.data.data.ret;
|
var retObj_ = {};
|
retList_.map(r=>{
|
var v_ = r.word;
|
if ( "string" == typeof v_) {
|
//去除两端的空格
|
v_ = v_.replace(/(^\s*)|(\s*$)/g, "");
|
//去除中间的回车换行
|
v_ = v_.replace(/[\r\n]/g,"");
|
//去除中间所有"
|
v_ = v_.replace(/\"/g,"");
|
}
|
|
retObj_[r.word_name] = v_;
|
});
|
|
me.form_data = retObj_;
|
}
|
else if(me.analysistype == "BizGSP") {
|
var retList_ = result.data.data.ret;
|
var retObj_ = {};
|
retList_.map(r=>{
|
var v_ = r.word;
|
if ( "string" == typeof v_) {
|
//去除两端的空格
|
v_ = v_.replace(/(^\s*)|(\s*$)/g, "");
|
//去除中间的回车换行
|
v_ = v_.replace(/[\r\n]/g,"");
|
//去除中间所有"
|
v_ = v_.replace(/\"/g,"");
|
}
|
retObj_[r.word_name] = v_;
|
});
|
|
me.form_data = retObj_;
|
}
|
|
//me.file_txt = true;
|
me.add_Step = 1;
|
me.loading_nextStep = false;
|
}, function(result) {
|
me.form_data = null;
|
me.add_Step = 1;
|
me.loading_nextStep = false;
|
Root.message({
|
message: result.message,
|
type: 'warning'
|
});
|
});
|
}
|
else {
|
this.add_Step = 1;
|
this.loading_nextStep = false;
|
}
|
|
},
|
|
/* 导入时文件失败事件 */
|
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;
|
}
|
</style>
|
|
</body>
|
</html>
|