Commit 9342746e authored by renjintao's avatar renjintao

单文件上传

parent 6428865d
<!--一次只能上传一个文件 -->
<template>
<div>
<Input v-model="newName" style="height:30px;width:240px;float:left" placeholder="请选择上传文件" disabled />
<Upload
v-model="name"
:action="postUrl"
:on-success="uploadSuccess"
:on-error="uploadError"
:on-remove="removeFile"
:format="formatList"
:max-size="maxSize"
:on-exceeded-size="onExceededSize"
:on-format-error="onFormatError"
:show-upload-list="false"
:files="files"
:on-progress="onProgress"
>
<Button icon="ios-cloud-upload-outline">上传文件</Button>
</Upload>
<Progress :percent="per" :stroke-width="5" v-show="vshowPro"/>
<div>
<Input
v-model="newName"
style="height:30px;width:240px;float:left;"
placeholder="请选择上传文件"
disabled
/>
<Upload
v-model="name"
:action="postUrl"
:on-success="uploadSuccess"
:on-error="uploadError"
:on-remove="removeFile"
:format="formatList"
:max-size="maxSize"
:on-exceeded-size="onExceededSize"
:on-format-error="onFormatError"
:show-upload-list="false"
:files="files"
:on-progress="onProgress"
style="width:120px;float:left"
>
<Button icon="ios-cloud-upload-outline">上传文件</Button>
</Upload>
<a v-show="newName.length>2&&showButton" :href="fileUrlPath" @click="downFile(newPath)" target="_blank" style="float:left">查看</a>
</div>
<Progress :percent="per" :stroke-width="5" v-show="vshowPro" />
</div>
</template>
<script>
export default {
name: 'inputFile',
name: "inputFile",
model: {
prop: 'value',
event: 'on-change'
prop: "value",
event: "on-change"
},
data() {
return {
file: null,
name: this.value,
downUrl: fileUrlDown,
fileUrlPath: '',
fileUrlPath: "",
nameList: [],
postUrl:
fileUrl +
'/upload/?token=Bearer ' +
window.sessionStorage.getItem('token') +
'&' +
"/upload/?token=Bearer " +
window.sessionStorage.getItem("token") +
"&" +
this.parms,
formatList: ['png', 'jpg', 'gif'],
newName: '',
formatList: ["png", "jpg", "gif"],
newName: "",
newPath:'',
per: 0,
vshowPro: false
}
};
},
created() {},
props: {
......@@ -60,55 +70,60 @@ export default {
},
parms: {
type: String,
default: ''
default: ""
},
showButton:{
type:Boolean,
default:true,
}
},
methods: {
onProgress(event, file, fileList) {
this.per = 0
this.vshowPro = true
this.per = 0;
this.vshowPro = true;
},
// change(event) {
// this.$emit('on-change', event.target.value)
// },
//上传成功文件
uploadSuccess(response, file, fileList) {
this.per = 60
this.vshowPro = true
const hbaseFileList = []
const filesList = []
this.per = 60;
this.vshowPro = true;
const hbaseFileList = [];
const filesList = [];
if (file.response.status == 0) {
let objImag = {}
objImag.fileName = file.response.data.fileName
objImag.filePath = file.response.data.downloadPath
filesList.push(objImag)
this.newName = file.response.data.fileName
this.$emit('on-change', JSON.stringify(filesList))
this.per = 100
let objImag = {};
objImag.fileName = file.response.data.fileName;
objImag.filePath = file.response.data.downloadPath;
filesList.push(objImag);
this.newName = file.response.data.fileName;
this.newPath=file.response.data.downloadPath
this.$emit("on-change", JSON.stringify(filesList));
this.per = 100;
setTimeout(() => {
this.per = 0
this.vshowPro = false
}, 2000)
this.per = 0;
this.vshowPro = false;
}, 2000);
} else {
this.$Message.error('上传失败,请重新上传!')
this.$Message.error("上传失败,请重新上传!");
}
},
//上传文件失败
uploadError(response, file, fileList) {
this.$Message.error('上传失败,请重新上传!')
this.$Message.error("上传失败,请重新上传!");
},
//文件大小验证返回
onExceededSize(file, fileList) {
if (Object.keys(file).length == 0) {
this.$Message.error(
'上传文件不能大于' + this.maxSize + 'k,请重新上传!'
)
"上传文件不能大于" + this.maxSize + "k,请重新上传!"
);
}
},
//文件格式验证
onFormatError(file, fileList) {
if (Object.keys(file).length == 0) {
this.$Message.error('上传文件格式不正确,请重新上传!')
this.$Message.error("上传文件格式不正确,请重新上传!");
}
},
//删除上传
......@@ -116,36 +131,40 @@ export default {
formatL() {
if (this.files) {
this.formatList = [
'pdf',
'docx',
'doc',
'xls',
'xlsx',
'txt',
'png',
'jpg',
'gif',
'zip',
'rar'
]
"pdf",
"docx",
"doc",
"xls",
"xlsx",
"txt",
"png",
"jpg",
"gif",
"zip",
"rar"
];
}
return this.formatList
}
return this.formatList;
},
downFile(path) {
this.fileUrlPath = this.downUrl + path;
},
},
mounted() {
this.formatL()
this.formatL();
},
computed: {
nativeInputValue() {
return this.value === null || this.value === undefined ? '' : this.value
return this.value === null || this.value === undefined ? "" : this.value;
}
},
watch: {
value(v) {
this.name = v
this.name = v;
}
}
}
};
</script>
<style lang="less">
</style>
\ No newline at end of file
......@@ -9558,7 +9558,8 @@
"dependencies": {
"deepmerge": {
"version": "2.2.1",
"resolved": false
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz",
"integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA=="
}
}
},
......
......@@ -4,8 +4,13 @@
<p slot="title">个人头像</p>
<div style="height:415px;">
<p style="text-align:center;padding-top:100px;">
<Avatar :src="avatorPath" size="150" v-if="avatorPath" />
<Avatar size="150" style="background-color: #87d068" v-else-if="!avatorPath" icon="ios-person" />
<Avatar :src="avatorPath" size="150" v-if="avatorPath" />
<Avatar
size="150"
style="background-color: #87d068"
v-else-if="!avatorPath"
icon="ios-person"
/>
</p>
<p style="text-align:center;padding:10px;">
<Button @click="openModalAvatar">修改头像</Button>
......@@ -80,15 +85,19 @@
</Card>
<Modal v-model="modalAvatar" title="修改头像" :width="460">
<Form :model="imageModel">
<div class="imgBg">
<img :src="avatorPath" />
</div>
<inputFiles v-model="imgName" :parms="parms" />
<Row>
<div class="imgBg">
<img :src="avatorPath" />
</div>
<inputFiles v-model="imgName" :parms="parms" :showButton="false" />
</Row>
</Form>
<div slot="footer">
<Button @click="cancelAvatar">取消</Button>
<Button type="primary" @click="upAvatar">确定</Button>
</div>
<Row>
<div slot="footer" style="clear:both">
<Button @click="cancelAvatar">取消</Button>
<Button type="primary" @click="upAvatar">确定</Button>
</div>
</Row>
</Modal>
</div>
</template>
......@@ -132,7 +141,7 @@ export default {
remark: "",
avatarUrl: ""
},
userInfos:{},
userInfos: {},
imageModel: {
id: null,
avatar_Url: "",
......@@ -208,7 +217,7 @@ export default {
this.$http.sysUser.getuserinfo(parma).then(res => {
if (res.result) {
this.userInfo = res.result;
this.userInfos=res.result;
this.userInfos = res.result;
this.imageModel.id = this.userInfo.id;
if (
res.result.avatarUrl &&
......@@ -268,9 +277,9 @@ export default {
};
</script>
<style lang="less" >
.img_top01{
width:350px;
float:left;
.img_top01 {
width: 350px;
float: left;
.ivu-card-body {
padding: 0px;
}
......
......@@ -112,10 +112,11 @@
</Col>
<Col :span="24">
<FormItem :label="l('qualityTemplateName')" prop="qualityTemplateName">
<files ref="refFile" :parms="parms" files singleFile />
<inputFile v-model="tempFile" :parms="parms" />
</FormItem>
</Col>
<!--
<files ref="refFile" :parms="parms" files singleFile />
<Col :span="12">
<FormItem :label="l('isImportant')" prop="isImportant">
<Dictionary code="Process.state" v-model="entity.isImportant" type="radio"></Dictionary>
......@@ -206,6 +207,7 @@ export default {
sampling: null,
samplingBatch: ""
},
tempFile: "",
rules: {
routingDetailId: [
{ required: true, message: "请选择工序名称", type: "number" }
......@@ -213,12 +215,13 @@ export default {
checkContent: [{ required: true, message: "必填", trigger: "blur" }]
},
routingDetailList: [],
parms: {
app: "qccard",
eid: null,
name: "",
field: ""
}
parms: "app=qccard&eid=" + this.$u.guid() + "&name=''"
// parms: {
// app: "qccard",
// eid: null,
// name: "",
// field: ""
// }
};
},
props: {
......@@ -236,26 +239,31 @@ export default {
this.$refs.form.validate(v => {
if (v) {
this.disabled = true;
this.entity.qualityTemplateName = "";
this.entity.qualityTemplate = "";
if (this.$refs.refFile.nameList.length > 0) {
let nameList = this.$refs.refFile.nameList;
let names = [];
let url = [];
nameList.forEach(e => {
names.push(e.fileName);
url.push(e.filePath);
});
this.entity.qualityTemplateName = JSON.stringify(names)
.replace("[", "")
.replace("]", "")
.replace(/\"/g, ""); //附件本地库暂存文件名称
this.entity.qualityTemplate = JSON.stringify(url)
.replace("[", "")
.replace("]", "")
.replace(/\"/g, "");
if (this.tempFile != "") {
let tempName = JSON.parse(this.$u.clone(this.tempFile));
this.entity.qualityTemplateName = tempName[0].fileName;
this.entity.qualityTemplate = tempName[0].filePath;
} else {
this.entity.qualityTemplateName = "";
this.entity.qualityTemplate = "";
}
// if (this.$refs.refFile.nameList.length > 0) {
// let nameList = this.$refs.refFile.nameList;
// let names = [];
// let url = [];
// nameList.forEach(e => {
// names.push(e.fileName);
// url.push(e.filePath);
// });
// this.entity.qualityTemplateName = JSON.stringify(names)
// .replace("[", "")
// .replace("]", "")
// .replace(/\"/g, ""); //附件本地库暂存文件名称
// this.entity.qualityTemplate = JSON.stringify(url)
// .replace("[", "")
// .replace("]", "")
// .replace(/\"/g, "");
// }
this.entity.routingHeaderId = this.headid;
Api.create(this.entity)
......
......@@ -54,8 +54,9 @@
</Col>
<Col :span="24">
<FormItem :label="l('qualityTemplateName')" prop="qualityTemplateName">
<files ref="refFile" :parms="parms" files singleFile />
<inputFile ref="inputfile" v-model="tempFile" :parms="parms" />
<!--
<files ref="refFile" :parms="parms" files singleFile />
<a
:href="fileUrlPath"
@click="downFile(entity.qualityTemplate)"
......@@ -82,10 +83,14 @@ export default {
raidoDis: false,
downUrl: fileUrlDown,
fileUrlPath: "",
tempFile: "",
tempFileName: "",
tempFilePath: "",
entity: {
qualityTemplateName: "",
qualityTemplate: ""
},
rules: {
routingDetailId: [
{ required: true, message: "请选择工序名称", type: "number" }
......@@ -93,12 +98,13 @@ export default {
checkContent: [{ required: true, message: "必填", trigger: "blur" }]
},
routingDetailList: [],
parms: {
app: "qccard",
eid: this.eid,
name: "",
field: ""
}
parms: "app=qccard&eid=" + this.$u.guid() + "&name=''"
// parms: {
// app: "qccard",
// eid: this.eid,
// name: "",
// field: ""
// }
};
},
props: {
......@@ -115,10 +121,11 @@ export default {
methods: {
load(v) {
Api.get({ id: v }).then(r => {
this.$refs.refFile.intFilesClone();
this.parms.eid = v;
// this.$refs.refFile.intFilesClone();
//this.parms.eid = v;
this.entity = r.result;
this.$refs.inputfile.newName = this.entity.qualityTemplateName;
this.$refs.inputfile.newPath = this.entity.qualityTemplate;
if (r.result.checkType == 1 || r.result.checkType == 2) {
this.raidoDis = false;
this.entity.isphotograph = null;
......@@ -134,26 +141,30 @@ export default {
this.$refs.form.validate(v => {
if (v) {
this.disabled = true;
this.entity.qualityTemplateName = "";
this.entity.qualityTemplate = "";
if (this.$refs.refFile.nameList.length > 0) {
let nameList = this.$refs.refFile.nameList;
let names = [];
let url = [];
nameList.forEach(e => {
names.push(e.fileName);
url.push(e.filePath);
});
this.entity.qualityTemplateName = JSON.stringify(names)
.replace("[", "")
.replace("]", "")
.replace(/\"/g, ""); //附件本地库暂存文件名称
this.entity.qualityTemplate = JSON.stringify(url)
.replace("[", "")
.replace("]", "")
.replace(/\"/g, "");
if (this.tempFile != "") {
let tempName = JSON.parse(this.$u.clone(this.tempFile));
this.entity.qualityTemplateName = tempName[0].fileName;
this.entity.qualityTemplate = tempName[0].filePath;
}
// if (this.$refs.refFile.nameList.length > 0) {
// let nameList = this.$refs.refFile.nameList;
// let names = [];
// let url = [];
// nameList.forEach(e => {
// names.push(e.fileName);
// url.push(e.filePath);
// });
// this.entity.qualityTemplateName = JSON.stringify(names)
// .replace("[", "")
// .replace("]", "")
// .replace(/\"/g, ""); //附件本地库暂存文件名称
// this.entity.qualityTemplate = JSON.stringify(url)
// .replace("[", "")
// .replace("]", "")
// .replace(/\"/g, "");
// }
Api.update(this.entity)
.then(r => {
this.disabled = false;
......@@ -213,7 +224,7 @@ export default {
if (v != 0) {
this.load(v);
}
}
},
}
};
</script>
......@@ -11,7 +11,7 @@
<Input v-model="entity.unicode"></Input>
</FormItem>
</Col>-->
<Col :span="8">
<Col :span="8">
<FormItem :label="l('code')" prop="code">
<Input v-model="entity.code" disabled></Input>
</FormItem>
......@@ -21,7 +21,7 @@
<Input v-model="entity.name"></Input>
</FormItem>
</Col>
<Col :span="8">
<FormItem :label="l('routingType')" prop="routingType">
<Dictionary code="Process.Routing.routingType" v-model="entity.routingType"></Dictionary>
......@@ -52,7 +52,7 @@
<departmentSelect v-model="entity.departmentId" @on-change="departChange"></departmentSelect>
</FormItem>
</Col>
<Col :span="8">
<FormItem :label="l('isEffect')" prop="isEffect">
<Dictionary code="Process.Status" v-model="entity.isEffect" type="radio"></Dictionary>
......@@ -184,6 +184,9 @@ export default {
this.$refs.refFile.intFilesClone();
this.parms.eid = this.uid;
this.entity = r.result;
if (this.entity.isEffect && this.entity.isEffect != "") {
this.entity.isEffect = Number(this.entity.isEffect);
}
});
},
handleSubmit() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment