<template>
|
<el-main style="overflow: hidden">
|
<el-form ref="form" :model="form" :disabled="form.registerState == '1'">
|
<el-form-item label="现场照片 " :label-width="formLabelWidth">
|
<el-upload
|
action="/admin/sys-file/upload"
|
list-type="picture-card"
|
:headers="headers"
|
:file-list="fileList"
|
accept="image/png, image/jpeg"
|
:before-upload="handleBeforeUpload"
|
:on-preview="handlePictureCardPreview"
|
:on-success="handleAvatarSuccess"
|
:on-remove="handleRemove">
|
<i class="el-icon-plus"></i>
|
</el-upload>
|
<el-dialog append-to-body :visible.sync="dialogVisible">
|
<img width="100%" :src="dialogImageUrl" alt="">
|
</el-dialog>
|
</el-form-item>
|
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="照片编号" :label-width="formLabelWidth">
|
<el-input v-model="form.code" autocomplete="off"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="拍摄时间" :label-width="formLabelWidth">
|
<el-date-picker
|
v-model="form.takeTime"
|
type="datetime"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
style="width: 100%"
|
placeholder="选择日期时间">
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-form-item label="证明事项" :label-width="formLabelWidth">
|
<el-input type="textarea" v-model="form.description" autocomplete="off"></el-input>
|
</el-form-item>
|
|
<el-form-item label="拍摄地点" :label-width="formLabelWidth">
|
<el-input v-model="form.takeAddr" autocomplete="off"></el-input>
|
</el-form-item>
|
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="执法人1 " :label-width="formLabelWidth">
|
<el-input v-model="form.lawPersonOne" autocomplete="off"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="执法证号" :label-width="formLabelWidth">
|
<el-input v-model="form.lawcertOne" autocomplete="off"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="执法人2 " :label-width="formLabelWidth">
|
<el-input v-model="form.lawPersonTwo" autocomplete="off"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="执法证号" :label-width="formLabelWidth">
|
<el-input v-model="form.lawcertTwo" autocomplete="off"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="拍摄人" :label-width="formLabelWidth">
|
<el-input v-model="form.takePerson" autocomplete="off"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<WordView ref="wordInfo" :isShowYulan="showView" @cancel="cancelWord"></WordView>
|
</el-form>
|
<div style="text-align: center">
|
<el-button v-if="isFinish!='2'" plain @click="dataFormSubmit('0')">保存</el-button>
|
<el-button v-if="isFinish!='2'" type="warning" plain @click="dataFormSubmit('1')">定稿</el-button>
|
<el-button type="primary" plain @click="viewVord(form)">预览</el-button>
|
<el-button type="success" plain @click="downloadWord(form)">下载</el-button>
|
</div>
|
</el-main>
|
</template>
|
|
<script>
|
import WordView from "@/views/News/word-view";
|
import {getObj, saveObj} from "@/api/News/photosEvidence";
|
import moment from "moment";
|
|
/*export default {
|
name: "photosEvidence"
|
}*/
|
export default {
|
name: "photosEvidence",
|
props:['isShowYulan','id','isFinish','processId','title'],
|
components:{
|
WordView
|
},
|
data() {
|
return {
|
dialogVisible:false,
|
dialogImageUrl:false,
|
fileList:[],
|
fileNameList:[],
|
showView: false,
|
form: {
|
photos:"",
|
code:"",
|
description:"",
|
takeTime:"",
|
takeAddr:"",
|
lawPersonOne:"",
|
lawcertOne:"",
|
lawPersonTwo:"",
|
lawcertTwo:"",
|
takePerson:"",
|
litigant:"",
|
},
|
formLabelWidth: "140px",
|
imgSize : { //控制导出的word图片大小
|
photos: [1200, 800]
|
},
|
headers: {
|
'TENANT-ID': this.$store.getters.userInfo.tenantId,
|
Authorization: 'Bearer ' + this.$store.getters.access_token
|
}
|
};
|
},
|
created() {
|
this.init()
|
},
|
methods: {
|
// 照片上传
|
handleRemove(file, fileList) {
|
this.fileChange(fileList)
|
},
|
handleBeforeUpload(file) { //上传文件之前
|
// console.log(file,'上传文件之前===')
|
// console.log(this.fileNameList,'上传文件之前===this.fileNameList')
|
// for(let i = 0; i < this.fileNameList.length; i++) {
|
// console.log(this.fileNameList[i],'this.fileNameList[i]====')
|
// if(this.fileNameList[i].name == this.fileNameList[i+1].name) {
|
// alert(111)
|
// this.fileNameList.pop()
|
// this.$message.warning('不能重复上传图片')
|
// return false
|
// }
|
// }
|
},
|
handlePictureCardPreview(file) {
|
this.dialogImageUrl = file.url;
|
this.dialogVisible = true;
|
},
|
handleAvatarSuccess(response, file, fileList){
|
this.fileChange(fileList)
|
|
|
},
|
fileChange(fileList) { //设置photo的值
|
let temp_str = ''
|
if(fileList.length > 0) {
|
for (let i = 0 ; i < fileList.length; i++) {
|
if(fileList[i].response) {
|
if( fileList[i].response.code == 0) {
|
if(i == 0) {
|
temp_str += fileList[i].response.data.url
|
}else {
|
temp_str += ',' + fileList[i].response.data.url;
|
}
|
}
|
|
}else {
|
if(i == 0) {
|
temp_str += fileList[i].url
|
}else {
|
temp_str += ',' + fileList[i].url;
|
}
|
}
|
}
|
}
|
this.form.photos = temp_str
|
},
|
init() {
|
getObj(this.id).then((res) => {
|
this.fileList = []
|
if (res.data.code == 0) {
|
// 转换null为""
|
let v = res.data.data;
|
for (let attr in v) {
|
if (v[attr] == null) {
|
v[attr] = "";
|
}
|
}
|
let str = JSON.stringify(v);
|
let data = JSON.parse(str);
|
this.form = data;
|
if(this.form.photos) {
|
let a = this.form.photos.split(',')
|
a.map((item,i) => {
|
this.fileList.push({
|
name: i,
|
url: item
|
})
|
})
|
}
|
}
|
});
|
},
|
dataFormSubmit(type) {
|
this.$refs['form'].validate((valid) => {
|
if (valid) {
|
let obj = this;
|
if ("1" == type) {
|
this.$confirm('保存为定稿将不能修改,是否继续?', '提示', {
|
confirmButtonText: '是',
|
cancelButtonText: '否',
|
type: 'warning'
|
}).then(function () {
|
obj.form.registerState = type;
|
obj.form.registerId = obj.id;
|
obj.form.processId = obj.processId;
|
saveObj(obj.form).then((res) => {
|
// this.submitLoading = false;
|
obj.$message.success('操作成功');
|
obj.cancel();
|
// obj.$emit('getDataList');
|
})
|
})
|
} else {
|
obj.form.registerState = type;
|
obj.form.registerId = obj.id;
|
obj.form.processId = obj.processId;
|
saveObj(obj.form).then((res) => {
|
// this.submitLoading = false;
|
obj.$message.success("操作成功");
|
obj.cancel();
|
// obj.$emit('getDataList');
|
})
|
}
|
}
|
})
|
},
|
cancel() {
|
this.$emit('cancel', false);
|
},
|
cancelWord() {
|
this.showView = false;
|
},
|
viewVord(data) {
|
if(data.registerState == null || data.registerState == ""){
|
//预览前先进行保存
|
data.registerState = '0';
|
data.registerId = this.id;
|
data.processId = this.processId;
|
saveObj(data).then((res) => {
|
})
|
}
|
// if(data.photos){
|
// data.photos = data.photos.split(',')
|
// }
|
//↓↓↓↓↓↓以下部分根据具体业务修改↓↓↓↓↓↓
|
//格式转换
|
let wordData = this.transforData(data);
|
//↑↑↑↑↑↑以上部分根据具体业务修改↑↑↑↑↑↑
|
this.showView = true;
|
this.$nextTick(() => {
|
this.$refs.wordInfo.init(wordData, "/wordes/photosEvidence.docx",'photos', this.imgSize);
|
})
|
},
|
downloadWord(data) {
|
if(data.registerState == null || data.registerState == ""){
|
//预览前先进行保存
|
data.registerState = '0';
|
data.registerId = this.id;
|
data.processId = this.processId;
|
saveObj(data).then((res) => {
|
})
|
}
|
let wordData = this.transforData(data);
|
this.$nextTick(() => {
|
this.$refs.wordInfo.exportDoc(wordData, "/wordes/photosEvidence.docx", this.title+'.docx', 'photos', this.imgSize);
|
})
|
},
|
transforData(obj) {
|
let s = JSON.stringify(obj);
|
let data = JSON.parse(s);
|
|
if (data.takeTime != '' && data.takeTime != null) {
|
data.takeTime = moment(data.takeTime).format('YYYY年MM月DD日HH时mm分');
|
} else {
|
data.takeTime = ' 年 月 日 时 分'
|
}
|
return data;
|
}
|
}
|
}
|
</script>
|
|
<style scoped>
|
|
</style>
|