老产品前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

263 lines
9.9 KiB

<template>
<el-dialog :visible.sync="visible" :title="dataForm.flag === '1' ? '查看' : '审核'" :close-on-click-modal="false" :close-on-press-escape="false">
<el-form :inline="true" :model="dataForm" :rules="dataRule" ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()" label-width="120px" disabled>
<div v-if="dataForm.flag === '2'">
<div style="height: 30px;font-weight: bold;">房屋信息</div>
<el-form-item label="所属社区" prop="gridName">
<el-input v-model="dataForm.gridName" placeholder="网格"></el-input>
</el-form-item>
<el-form-item label="所属网格" prop="gridName">
<el-input v-model="dataForm.gridName" placeholder="所属网格"></el-input>
</el-form-item>
<br/>
<el-form-item label="房屋" prop="homeName">
<el-input v-model="dataForm.homeName" placeholder="房屋"></el-input>
</el-form-item>
<el-form-item label="房主姓名" prop="ownerName">
<el-input v-model="dataForm.ownerName" placeholder="房主姓名"></el-input>
</el-form-item>
<br/>
<div style="height: 30px;font-weight: bold;">居住成员信息</div>
<el-table v-loading="dataListLoading" :data="dataForm.tenantList" border style="width: 100%">
<el-table-column label="序号" header-align="center" align="center" width="50px">
<template slot-scope="scope">
{{scope.$index+1}}
</template>
</el-table-column>
<el-table-column prop="name" label="姓名" header-align="center" align="center"></el-table-column>
<el-table-column prop="yfzgx" label="与户主关系" header-align="center" align="center"></el-table-column>
<el-table-column prop="mobile" label="手机" header-align="center" align="center"></el-table-column>
<el-table-column prop="idCard" label="身份证号" header-align="center" align="center"></el-table-column>
<el-table-column prop="imgList" label="照片" header-align="center" align="center">
<template slot-scope="scope">
<div v-for="(item,index) in scope.row.imgList">
<img :src="item.fileUrl" @click="imgShow(item.fileUrl)" width="40" height="40" />
</div>
</template>
</el-table-column>
</el-table>
<br/>
</div>
<div style="height: 30px;font-weight: bold;">合同信息</div>
<div style="height: 30px;">出租人信息</div>
<el-form-item label="出租人姓名" prop="lessorName">
<el-input v-model="dataForm.lessorName" placeholder="出租人姓名"></el-input>
</el-form-item>
<el-form-item label="出租人身份证" prop="lessorIdCard">
<el-input v-model="dataForm.lessorIdCard" placeholder="出租人身份证"></el-input>
</el-form-item>
<br/>
<el-form-item label="出租人手机" prop="lessorMobile">
<el-input v-model="dataForm.lessorMobile" placeholder="出租人手机"></el-input>
</el-form-item>
<br/>
<div style="height: 30px;">承租人信息</div>
<el-form-item label="承租人姓名" prop="lesseeName">
<el-input v-model="dataForm.lesseeName" placeholder="承租人姓名"></el-input>
</el-form-item>
<el-form-item label="承租人身份证" prop="lesseeIdCard">
<el-input v-model="dataForm.lesseeIdCard" placeholder="承租人身份证"></el-input>
</el-form-item>
<br/>
<el-form-item label="承租人手机" prop="lesseeMobile">
<el-input v-model="dataForm.lesseeMobile" placeholder="承租人手机"></el-input>
</el-form-item>
<br/>
<div style="height: 30px;font-weight: bold;">合同内容</div>
<el-form-item label="签署日期" prop="signDate">
<el-input v-model="dataForm.signDate" placeholder="签署日期"></el-input>
</el-form-item>
<br/>
<el-form-item label="合同开始日期" prop="startDate">
<el-input v-model="dataForm.startDate" placeholder="合同开始日期"></el-input>
</el-form-item>
<el-form-item label="合同结束日期" prop="endDate">
<el-input v-model="dataForm.endDate" placeholder="合同结束日期"></el-input>
</el-form-item>
<br/>
<el-form-item label="合同附件" prop="fileList">
<template slot-scope="scope">
<label v-for="(item,index) in dataForm.fileList">
<img :src="item.fileUrl" @click="imgShow(item.fileUrl)" width="100" height="100" />
</label>
</template>
</el-form-item>
</el-form>
<template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="checkHandle(1)">{{ $t('checkTGBtn') }}</el-button>
<el-button type="primary" @click="checkHandle(2)">{{ $t('checkBTGBtn') }}</el-button>
</template>
<el-dialog :visible.sync="dialogVisible" :modal="false">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-dialog>
</template>
<script>
import debounce from 'lodash/debounce'
export default {
data () {
return {
visible: false,
dataForm: {
id: '',
flag: '',
gridId: '',
gridName: '',
buildId: '',
buildName: '',
unitId: '',
unitName: '',
homeId: '',
homeName: '',
ownerName: '',
state: '',
lessorName: '',
lessorIdCard: '',
lessorMobile: '',
lesseeName: '',
lesseeIdCard: '',
lesseeMobile: '',
signDate: '',
startDate: '',
endDate: ''
},
dataListLoading: false,
dialogVisible: false,
dialogImageUrl: ''
}
},
computed: {
dataRule () {
return {
gridId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
gridName: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
buildId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
buildName: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
unitId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
unitName: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
homeId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
homeName: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
ownerName: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
state: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
lessorName: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
lessorIdCard: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
lessorMobile: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
lesseeName: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
lesseeIdCard: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
lesseeMobile: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
signDate: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
startDate: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
endDate: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
]
}
}
},
methods: {
init () {
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.getInfo()
}
})
},
// 查看大图
imgShow(url){
this.dialogImageUrl = url
this.dialogVisible = true
},
// 获取信息
getInfo () {
this.$http.get(`/pli/power/rentContractInfo/${this.dataForm.id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.dataForm = {
...this.dataForm,
...res.data
}
}).catch(() => {})
},
// 审核提交方法
checkHandle: function (type) {
this.$message({
message: type,
type: 'success',
duration: 500,
onClose: () => {
}
})
},
// 表单提交
dataFormSubmitHandle: debounce(function () {
this.$refs['dataForm'].validate((valid) => {
if (!valid) {
return false
}
this.$http[!this.dataForm.id ? 'post' : 'put']('/pli/power/rentContractInfo/', this.dataForm).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.$message({
message: this.$t('prompt.success'),
type: 'success',
duration: 500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
}).catch(() => {})
})
}, 1000, { 'leading': true, 'trailing': false })
}
}
</script>