<template>
|
<div class="app-container">
|
<div class="form-header mt">
|
<h4 class="dt h4">基本信息 </h4>
|
<el-button type="primary" class="pt" icon="el-icon-edit" @click="handleEdit()" :disabled="btn">编辑</el-button>
|
<el-button type="primary" @click="Petnote(id)" :disabled="btn">魅宠备忘录</el-button>
|
</div>
|
<h2 style="width: 100px;height: 16px;font-size: 15px;font-family: Microsoft YaHei-Regular, Microsoft YaHei;font-weight: 400;color: #000000;line-height: 15px;">基本信息</h2>
|
<el-container >
|
<div >
|
<el-container >
|
<el-col >
|
<el-form ref="elForm" :model="petList" :rules="rules" size="medium" label-position="left"
|
v-loading="loading" :data="petList" @selection-change="handleSelectionChange" label-width="120px" >
|
<el-row :span="5">
|
<el-form-item label="证件号码" prop="idNum" label-width="80px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petList.idNum" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb" >
|
</el-input>
|
</el-form-item>
|
</el-row>
|
<el-row :span="5">
|
<el-form-item label="防伪证" prop="securityCode" label-width="55px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petList.securityCode" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
<el-row :span="5">
|
<el-form-item label="出生日期" prop="birth" label-width="70px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petList.birth" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
<el-row :span="5">
|
<el-form-item label="颜色" prop="color" label-width="40px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petList.color" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
<el-row :span="5">
|
<el-form-item label="饮食习惯(喜)" prop="eatHabit" label-width="100px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petList.eatHabit" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
<el-row :span="5">
|
<el-form-item label="生活习惯(喜)" prop="lifeHabit" label-width="100px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petList.lifeHabit" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
<el-row :span="5">
|
<el-form-item label="居住地址" prop="address" label-width="70px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petList.address" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
</el-form>
|
</el-col>
|
</el-container>
|
</div>
|
|
<div style="padding-left:150px">
|
<el-container>
|
<el-col v-loading="loading" :data="petList" @selection-change="handleSelectionChange">
|
<el-form ref="elForm" :model="petList" :rules="rules" size="medium" label-position="left" >
|
<el-row :span="5">
|
<el-form-item label="种类" prop="type" label-width="50px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petList.type" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
<el-row :span="5">
|
<el-form-item label="名字" prop="name" label-width="40px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petList.name" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
<el-row :span="5">
|
<el-form-item label="性别" prop="sex" label-width="40px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petList.sex === 1 ? '雄性':'雌性' " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
<el-row :span="5">
|
<el-form-item label="性质" prop="properties" label-width="40px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petList.properties" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
<el-row :span="5">
|
<el-form-item label="饮食习惯(恶)" prop="disEatHabit" label-width="100px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petList.disEatHabit" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
<el-row :span="5">
|
<el-form-item label="生活习惯(恶)" prop="disLifeHabit" label-width="100px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petList.disLifeHabit" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
<el-row :span="5">
|
<el-form-item label="听懂方言" prop="dialect" label-width="80px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petList.dialect" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
</el-form>
|
</el-col>
|
</el-container>
|
</div>
|
|
<div style="padding-left:250px;padding-top:30px">
|
<el-col :span="6" :data="petList">
|
<div class="block" :model="petList" >
|
<el-col v-model="petList.url" prop="url">
|
<el-avatar shape="square" :size=200 >
|
<el-image
|
:src="'http://47.93.189.255:8080/'+ petList.url"
|
:fit="fit" style="width: 212px;height: 168px;border-radius: 0px 0px 0px 0px;opacity: 1;border: 1px solid rgba(0,0,0,0.5);"
|
></el-image>
|
</el-avatar>
|
</el-col>
|
</div>
|
|
</el-col>
|
</div>
|
</el-container>
|
|
<!-- 魅宠主人 -->
|
<h2 style="width: 100px;height: 16px;font-size: 15px;font-family: Microsoft YaHei-Regular, Microsoft YaHei;font-weight: 400;color: #000000;line-height: 15px;">饲养人信息</h2>
|
<el-container >
|
<div >
|
<el-container >
|
<el-col >
|
<el-form ref="elForm" :model="petownerList" :rules="rules" size="medium" label-position="left"
|
v-loading="loading" :data="petownerList" @selection-change="handleSelectionChange" label-width="120px" >
|
<el-row :span="5">
|
<el-form-item label="饲养人姓名" prop="name" label-width="100px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petownerList.name" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb" >
|
</el-input>
|
</el-form-item>
|
</el-row>
|
<el-row :span="5">
|
<el-form-item label="固定电话" prop="fixedNo" label-width="100px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petownerList.fixedNo" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
<el-row :span="5">
|
<el-form-item label="移动电话" prop="birth" label-width="100px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petownerList.birth" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
<el-row :span="5">
|
<el-form-item label="住所性质" prop="property" label-width="100px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petownerList.property" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
<el-form-item label="住所详细地址" prop="address" label-width="100px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petownerList.address" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
</el-form>
|
</el-col>
|
</el-container>
|
</div>
|
|
<div style="padding-left:150px">
|
<el-container>
|
<el-col v-loading="loading" :data="petownerList" @selection-change="handleSelectionChange">
|
<el-form ref="elForm" :model="petownerList" :rules="rules" size="medium" label-position="left" >
|
<el-row :span="5">
|
<el-form-item label="证件类型" prop="certificateType" label-width="80px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petownerList.certificateType" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
<el-row :span="5">
|
<el-form-item label="证件号码" prop="certificateNo" label-width="80px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petownerList.certificateNo" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
<el-row :span="5">
|
<el-form-item label="拥有犬只数量" prop="many" label-width="140px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petownerList.many " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
<el-row :span="5">
|
<el-form-item label="电子邮件" prop="email" label-width="80px" style="background: #FAD1E0;border-radius: 6px 6px 0px 6px;opacity: 1;">
|
<el-input v-model="petownerList.email" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb">
|
</el-input>
|
</el-form-item>
|
</el-row>
|
|
</el-form>
|
</el-col>
|
</el-container>
|
</div>
|
|
|
</el-container>
|
|
<el-dialog :visible.sync="dialogVisible">
|
<img w-full :src="dialogImageUrl" alt="Preview Image" />
|
</el-dialog>
|
</div>
|
</template>
|
<script>
|
import {getPetList, getPetownerList, uploadPic, download} from "@/api/pet/index";
|
import {addRole, updateRole} from "@/api/system/role";
|
import {blobValidate} from "@/utils/ruoyi";
|
import errorCode from "@/utils/errorCode";
|
import {Message} from "element-ui";
|
|
export default {
|
components: {},
|
props: [],
|
data() {
|
return {
|
cdi:"魅宠详细信息",
|
udi:"魅宠信息修改",
|
fot:[".jpg",".jif"],
|
fileList:[
|
],
|
fileListOther:[
|
|
],
|
dsb:true,
|
btn:false,
|
petList: {
|
type: undefined,
|
kind: undefined,
|
suitable: undefined,
|
method: undefined,
|
location:undefined,
|
place:undefined,
|
remark: undefined,
|
url: undefined,
|
},
|
petownerList: {
|
email: undefined,
|
name: undefined,
|
certificateType: undefined,
|
certificateNo: undefined,
|
fixedNo:undefined,
|
many:undefined,
|
address: undefined,
|
property: undefined,
|
},
|
dialogImageUrl: '',
|
dialogVisible: false,
|
disabled: false,
|
rules: {
|
idNum: [{
|
required: true,
|
message: '请输入idNum',
|
trigger: 'blur'
|
}],
|
kind: [{
|
required: true,
|
message: '请选择保洁/收纳',
|
trigger: 'change'
|
}],
|
type: [{
|
required: true,
|
message: '请输入类别',
|
trigger: 'blur'
|
}],
|
method: [{
|
required: true,
|
message: '请输入保洁方法',
|
trigger: 'blur'
|
}],
|
location: [{
|
required: true,
|
message: '请输入材料存放地',
|
trigger: 'blur'
|
}],
|
place: [{
|
required: true,
|
message: '请输入放置地点',
|
trigger: 'blur'
|
}],
|
suitable: [{
|
required: true,
|
message: '请输入适用人',
|
trigger: 'blur'
|
}],
|
|
},
|
typeOptions: [],
|
}
|
},
|
computed: {},
|
watch: {},
|
created() {
|
const id = this.$route.params && this.$route.params.id;
|
let jd;
|
if(this.$route.query.detail!=undefined)
|
{
|
jd = this.$route.query.detail
|
this.btn= jd
|
this.dsb = !jd
|
document.title = "修改魅宠详细信息";
|
this.$route.meta.title = "修改魅宠详细信息";//列表的名称
|
}
|
else{
|
document.title = "查看魅宠详细信息";
|
this.$route.meta.title = "查看魅宠详细信息";//列表的名称
|
}
|
|
let _this = this
|
if (id) {
|
this.loading = true;
|
getPetList(id).then((response) => {
|
this.petList = response.data;
|
let paths = response.data.url.split(",");
|
for(let i = 0; i < paths.length; i++)
|
{
|
if(paths[i]!="") {
|
|
let pth = paths[i].substr(paths[i].length - 4, paths[i].length)
|
|
if (_this.fot.includes(pth) === true)
|
_this.fileList.push({name:paths[i],url: process.env.VUE_APP_BASE_TRUE_API+paths[i]})
|
else {
|
// alert(paths[i])
|
let nms = paths[i].split("\/")
|
let nm = nms[nms.length - 1]
|
_this.fileListOther.push({name:nm, url: process.env.VUE_APP_BASE_TRUE_API+paths[i]})
|
}
|
}
|
}
|
|
|
this.loading = false;
|
|
});
|
this.getCateInfor()
|
|
};
|
if (id,pid) {
|
this.loading = true;
|
getPetownerList(id,pid).then((response) => {
|
this.petownerList = response.data;
|
let paths = response.data.url.split(",");
|
for(let i = 0; i < paths.length; i++)
|
{
|
if(paths[i]!="") {
|
|
let pth = paths[i].substr(paths[i].length - 4, paths[i].length)
|
|
if (_this.fot.includes(pth) === true)
|
_this.fileList.push({name:paths[i],url: process.env.VUE_APP_BASE_TRUE_API+paths[i]})
|
else {
|
// alert(paths[i])
|
let nms = paths[i].split("\/")
|
let nm = nms[nms.length - 1]
|
_this.fileListOther.push({name:nm, url: process.env.VUE_APP_BASE_TRUE_API+paths[i]})
|
}
|
}
|
}
|
this.loading = false;
|
|
|
});
|
this.getCateInfor()
|
|
};
|
this.getList();
|
},
|
mounted() {},
|
methods: {
|
submitForm() {
|
let ul = this.fileList.map(function (elem){
|
return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
|
}).join(",")
|
let uls = this.fileListOther.map(function (elem){
|
return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
|
}).join(",")
|
this.formData.url = ul+","+uls
|
|
this.$refs['elForm'].validate(valid => {
|
|
|
if (valid) {
|
if (this.formData.id != undefined) {
|
updateEconomy(this.formData).then(response => {
|
this.$modal.msgSuccess("修改成功");
|
// this.open = false;
|
this.btn=false
|
});
|
} else {
|
this.$modal.msgSuccess("修改失败");
|
|
}
|
}
|
})
|
},
|
resetForm() {
|
this.$refs['elForm'].resetFields()
|
},
|
handlePreview(file)
|
{
|
let formData = {'path':"/"+file.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")};
|
let lens = formData.path.split(".")
|
let suffix = lens[lens.length-1]
|
download(formData).then(async (response) => {
|
const isLogin = await blobValidate(response);
|
let nt = new Date().getTime()
|
let filename = 'economy_'+nt+'.'+suffix
|
const blob = new Blob([response])
|
saveAs(blob, filename)
|
})
|
},
|
|
|
/** 备忘录 */
|
Petnote(pid){
|
this.$router.push("/familymodel/pet/petnote/" + pid);
|
},
|
handlePictureCardPreview(file) {
|
this.dialogFileUrl = file.url;
|
const Base64 = require('js-base64').Base64
|
this.desurl = process.env.VUE_APP_BASE_OTHER_API+'onlinePreview?url='+encodeURIComponent(Base64.encode(this.dialogFileUrl));
|
myWindow=window.open(this.desurl,'','width=1200,height=800,top=150,left=300');
|
|
},
|
//删除图片
|
handleRemoveFile(file,) {
|
|
for(let i = 0; i < this.fileListOther.length; i++)
|
{
|
if(this.fileListOther[i].url==file.url)
|
this.$delete(this.fileListOther,i);
|
}
|
},
|
handleDownload(url) {
|
var formData = {'path':"/"+url.replace(process.env.VUE_APP_BASE_TRUE_API,"")};
|
|
let lens = formData.path.split(".")
|
let suffix = lens[lens.length-1]
|
download(formData).then(async (response) => {
|
const isLogin = await blobValidate(response);
|
let nt = new Date().getTime()
|
let filename = 'property_'+nt+'.'+suffix
|
const blob = new Blob([response])
|
saveAs(blob, filename)
|
})
|
},
|
handleEdit()
|
{
|
this.dsb = false
|
this.btn = true
|
},
|
requestUpload(params)
|
{
|
var file = params.file;
|
var formData = new FormData();
|
formData.append('uploadFile', file);
|
let _this = this
|
|
uploadPic(formData).then(response => {
|
let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length)
|
|
if(_this.fot.includes(pth) === true)
|
{
|
_this.fileList.push({name:response.data.fileName, "url":response.data.url})
|
|
}
|
|
else{
|
_this.fileListOther.push({name:response.data.fileName, url:response.data.url})
|
|
}
|
})
|
|
}
|
|
}
|
}
|
|
</script>
|
<style scoped lang="scss">
|
.mt
|
{
|
position: relative;
|
}
|
.dt{
|
display: block;
|
|
}
|
.pt{
|
right: 50px;
|
top:-3px;
|
display: block;
|
position: absolute;
|
}
|
</style>
|