Files
dvcp_v2_webapp/packages/2.0.5/AppMonitoringObject/components/add.vue
aixianling a8dff862d2 初始化
2021-12-14 18:36:19 +08:00

797 lines
37 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<section style="height: 100%">
<ai-detail class="add">
<template #title>
<ai-title :title="params.id ? '监测对象详情' : '新增监测对象'" :isShowBack="true" :isShowBottomBorder="true" @onBackClick="cancel(false)">
<template slot="rightBtn" v-if="params.id && navIndex != 1">
<el-button size="small" icon="iconfont iconEdit" type="primary" v-if="!isEdit" @click="isEdit=true">编辑</el-button>
<el-button size="small" icon="iconfont" type="primary" v-if="isEdit" @click="save">保存</el-button>
<el-button size="small" icon="iconfont" v-if="isEdit" @click="getDetail(),isEdit=false">取消</el-button>
</template>
</ai-title>
</template>
<template #content>
<el-form ref="rules" :model="forms" :rules="formRules" size="small" label-suffix="" label-width="136px">
<div class="nav-list" v-if="params.id">
<div class="nav-item" :class="navIndex != 1 ? 'active' : ''" @click="navIndex=0">基本信息</div>
<div class="nav-item" :class="navIndex == 1 ? 'active' : ''" @click="navIndex=1;getLogList()">帮扶日志</div>
</div>
<div v-if="navIndex != 1">
<ai-card title="基础信息">
<template slot="content">
<div v-if="isEdit">
<div class="above">
<div class="left">
<el-form-item label="监测对象类型" prop="type" >
<ai-select v-model="forms.type" placeholder="请选择" clearable :selectList="$dict.getDict('fpType')"></ai-select>
</el-form-item>
<el-form-item label="联系方式" prop="phone" >
<el-input v-model="forms.phone" placeholder="请输入" maxlength="20" show-word-limit></el-input>
</el-form-item>
</div>
<div class="right">
<el-form-item label="是否搬迁" prop="move" >
<ai-select v-model="forms.move" placeholder="请选择" clearable :selectList="$dict.getDict('fpYesOrNo')"></ai-select>
</el-form-item>
</div>
</div>
<el-form-item label="所属区域" prop="addressAreaId">
<ai-area-select
clearable
always-show
:instance="instance"
v-model="forms.addressAreaId"
@fullname="v=>forms.addressArea=v"
:disabled-level="user.info.areaList.length"
/>
</el-form-item>
<el-form-item label="家庭住址" prop="address">
<el-input v-model="forms.address" placeholder="请输入" maxlength="50" show-word-limit></el-input>
</el-form-item>
<el-form-item label="安置地区" prop="placeAreaId" v-if="forms.move == '01'">
<ai-area-select
clearable
always-show
:instance="instance"
v-model="forms.placeAreaId"
@fullname="v=>forms.placeArea=v"
:disabled-level="user.info.areaList.length"
/>
</el-form-item>
<el-form-item label="安置详细地址" prop="place" v-if="forms.move == '01'">
<el-input v-model="forms.place" placeholder="请输入" maxlength="50" show-word-limit></el-input>
</el-form-item>
</div>
<template v-else>
<div class="above">
<div class="left">
<ai-wrapper label-width="120px" :columnsNumber="1" style="margin-top: 16px;">
<ai-info-item label="监测对象类型:"><span >{{dict.getLabel('fpType', forms.type)}}</span></ai-info-item>
<ai-info-item label="联系方式:"><span >{{forms.phone}}</span></ai-info-item>
</ai-wrapper>
</div>
<div class="right">
<ai-wrapper label-width="120px" :columnsNumber="1" style="margin-top: 16px;">
<ai-info-item label="是否搬迁:"><span >{{dict.getLabel('fpYesOrNo', forms.move)}}</span></ai-info-item>
</ai-wrapper>
</div>
</div>
<ai-wrapper label-width="120px" :columnsNumber="1" style="margin-top: 16px;">
<ai-info-item label="所属区域:"><span >{{forms.addressArea}}</span></ai-info-item>
<ai-info-item label="家庭住址:"><span >{{forms.address}}</span></ai-info-item>
<ai-info-item label="安置地区:" v-if="forms.move == '01'"><span >{{forms.placeArea}}</span></ai-info-item>
<ai-info-item label="安置详细地址:" v-if="forms.move == '01'"><span >{{forms.place}}</span></ai-info-item>
</ai-wrapper>
</template>
</template>
</ai-card>
<ai-card title="家庭成员">
<template slot="content">
<ai-search-bar v-if="isEdit">
<template #right><el-button type="primary" icon="iconfont iconAdd" @click="showAddFamily=true">添加</el-button></template>
</ai-search-bar>
<ai-table :tableData="forms.familyList" :colConfigs="colConfigs" :dict="dict" :isShowPagination="false">
<el-table-column slot="age" label="年龄" align="center" width="200">
<template v-slot="{ row }">
<span>{{getAge(row.idNumber)}}</span>
</template>
</el-table-column>
<el-table-column slot="options" label="操作" align="center" fixed="right" width="200" v-if="isEdit">
<template v-slot="{ row, $index }">
<el-button type="text" @click="editFamily(row, $index)">编辑</el-button>
<el-button type="text" @click="delFamily(row, $index)">删除</el-button>
</template>
</el-table-column>
</ai-table>
</template>
</ai-card>
<ai-card title="家庭情况">
<template slot="content">
<div class="above" v-if="isEdit">
<div class="left">
<el-form-item label="是否危房" prop="dilapidatedHouse" >
<ai-select v-model="forms.dilapidatedHouse" placeholder="请选择" clearable :selectList="$dict.getDict('fpYesOrNo')"></ai-select>
</el-form-item>
<el-form-item label="风险类型" prop="riskType" >
<ai-select v-model="forms.riskType" placeholder="请选择" clearable :selectList="$dict.getDict('fpRiskType')"></ai-select>
</el-form-item>
</div>
<div class="right">
<el-form-item label="是否饮水安全" prop="waterSecurity" >
<ai-select v-model="forms.waterSecurity" placeholder="请选择" clearable :selectList="$dict.getDict('fpYesOrNo')"></ai-select>
</el-form-item>
</div>
</div>
<div class="above" v-else>
<div class="left">
<ai-wrapper label-width="120px" :columnsNumber="1" style="margin-top: 16px;">
<ai-info-item label="是否危房:"><span >{{dict.getLabel('fpYesOrNo', forms.dilapidatedHouse)}}</span></ai-info-item>
<ai-info-item label="风险类型:"><span >{{dict.getLabel('fpRiskType', forms.riskType)}}</span></ai-info-item>
</ai-wrapper>
</div>
<div class="right">
<ai-wrapper label-width="120px" :columnsNumber="1" style="margin-top: 16px;">
<ai-info-item label="是否饮水安全:"><span >{{dict.getLabel('fpYesOrNo', forms.waterSecurity)}}</span></ai-info-item>
</ai-wrapper>
</div>
</div>
</template>
</ai-card>
<ai-card title="收入情况(单位:元)">
<template slot="content">
<div v-if="isEdit">
<div class="above">
<div class="left">
<el-form-item label="工资收入">
<el-input v-model.number="forms.income1" placeholder="请输入" maxlength="10"></el-input>
</el-form-item>
<el-form-item label="财产性收入">
<el-input v-model.number="forms.income3" placeholder="请输入" maxlength="10"></el-input>
</el-form-item>
<el-form-item label="理赔收入">
<el-input v-model.number="forms.income8" placeholder="请输入" maxlength="10"></el-input>
</el-form-item>
<el-form-item label="合规自然支出">
<el-input v-model.number="forms.income9" placeholder="请输入" maxlength="10"></el-input>
</el-form-item>
</div>
<div class="right">
<el-form-item label="生存经营收入">
<el-input v-model.number="forms.income2" placeholder="请输入" maxlength="10"></el-input>
</el-form-item>
<el-form-item label="转移性收入">
<el-input v-model.number="forms.income4" placeholder="请输入" maxlength="10"></el-input>
</el-form-item>
<el-form-item label="生产经营支出">
<el-input v-model.number="forms.income5" placeholder="请输入" maxlength="10"></el-input>
</el-form-item>
</div>
</div>
<p style="font-size:14px;">备注不填写时默认为0元</p>
</div>
<div class="above" v-else>
<div class="left">
<ai-wrapper label-width="120px" :columnsNumber="1" style="margin-top: 16px;">
<ai-info-item label="工资收入:"><span >{{forms.income1 || 0}}</span></ai-info-item>
<ai-info-item label="财产性收入:"><span >{{forms.income3 || 0}}</span></ai-info-item>
<ai-info-item label="理赔收入:"><span >{{forms.income8 || 0}}</span></ai-info-item>
<ai-info-item label="合规自然支出:"><span >{{forms.income9 || 0}}</span></ai-info-item>
</ai-wrapper>
</div>
<div class="right">
<ai-wrapper label-width="120px" :columnsNumber="1" style="margin-top: 16px;">
<ai-info-item label="生存经营收入:"><span >{{forms.income2 || 0}}</span></ai-info-item>
<ai-info-item label="转移性收入:"><span >{{forms.income4 || 0}}</span></ai-info-item>
<ai-info-item label="生产经营支出:"><span >{{forms.income5 || 0}}</span></ai-info-item>
</ai-wrapper>
</div>
</div>
</template>
</ai-card>
<ai-card title="帮扶情况">
<template slot="content">
<div class="above" v-if="isEdit">
<div class="left">
<el-form-item label="产业帮扶" prop="industrialAssistance" >
<ai-select v-model="forms.industrialAssistance" placeholder="请选择" clearable :selectList="$dict.getDict('fpIndustrialAssistance')"></ai-select>
</el-form-item>
<el-form-item label="就业帮扶" prop="employmentAssistance" >
<ai-select v-model="forms.employmentAssistance" placeholder="请选择" clearable :selectList="$dict.getDict('fpEmploymentAssistance')"></ai-select>
</el-form-item>
<el-form-item label="金融帮扶" prop="financialAssistance" >
<ai-select v-model="forms.financialAssistance" placeholder="请选择" clearable :selectList="$dict.getDict('fpFinancialAssistance')"></ai-select>
</el-form-item>
<el-form-item label="公益岗位帮扶" prop="publicWelfarePostAssistance" >
<ai-select v-model="forms.publicWelfarePostAssistance" placeholder="请选择" clearable :selectList="$dict.getDict('fpPublicWelfarePostAssistance')"></ai-select>
</el-form-item>
<el-form-item label="风险消除时间" prop="riskEliminationDate" v-if="forms.isRisk == 1">
<el-date-picker
v-model="forms.riskEliminationDate"
type="date"
value-format="yyyy-MM-dd"
size="small"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</div>
<div class="right">
<el-form-item label="健康帮扶" prop="healthAssistance" >
<ai-select v-model="forms.healthAssistance" placeholder="请选择" clearable :selectList="$dict.getDict('fpHealthAssistance')"></ai-select>
</el-form-item>
<el-form-item label="教育帮扶" prop="educationalAssistance" >
<ai-select v-model="forms.educationalAssistance" placeholder="请选择" clearable :selectList="$dict.getDict('fpEducationalAssistance')"></ai-select>
</el-form-item>
<el-form-item label="社会帮扶" prop="socialAssistance" >
<ai-select v-model="forms.socialAssistance" placeholder="请选择" clearable :selectList="$dict.getDict('fpSocialAssistance')"></ai-select>
</el-form-item>
<el-form-item label="是否风险消除">
<ai-select v-model="forms.isRisk" placeholder="请选择" clearable :selectList="$dict.getDict('fpYesOrNo')"></ai-select>
</el-form-item>
<el-form-item label="风险消除方式" prop="riskEliminationMethod" v-if="forms.isRisk == 1">
<ai-select v-model="forms.riskEliminationMethod" placeholder="请选择" clearable :selectList="$dict.getDict('fpRiskEliminationMethod')"></ai-select>
</el-form-item>
</div>
</div>
<div class="above" v-else>
<div class="left">
<ai-wrapper label-width="120px" :columnsNumber="1" style="margin-top: 16px;">
<ai-info-item label="产业帮扶:"><span >{{dict.getLabel('fpIndustrialAssistance', forms.industrialAssistance)}}</span></ai-info-item>
<ai-info-item label="就业帮扶:"><span >{{dict.getLabel('fpEmploymentAssistance', forms.employmentAssistance)}}</span></ai-info-item>
<ai-info-item label="金融帮扶:"><span >{{dict.getLabel('fpFinancialAssistance', forms.financialAssistance)}}</span></ai-info-item>
<ai-info-item label="公益岗位帮扶:"><span >{{dict.getLabel('fpPublicWelfarePostAssistance', forms.publicWelfarePostAssistance)}}</span></ai-info-item>
<ai-info-item label="风险消除时间:" v-if="forms.isRisk == 1"><span >{{forms.riskEliminationDate}}</span></ai-info-item>
</ai-wrapper>
</div>
<div class="right">
<ai-wrapper label-width="120px" :columnsNumber="1" style="margin-top: 16px;">
<ai-info-item label="健康帮扶:"><span >{{dict.getLabel('fpHealthAssistance', forms.healthAssistance)}}</span></ai-info-item>
<ai-info-item label="教育帮扶:"><span >{{dict.getLabel('fpEducationalAssistance', forms.educationalAssistance)}}</span></ai-info-item>
<ai-info-item label="社会帮扶:"><span >{{dict.getLabel('fpSocialAssistance', forms.socialAssistance)}}</span></ai-info-item>
<ai-info-item label="是否风险消除:"><span >{{dict.getLabel('fpYesOrNo', forms.isRisk)}}</span></ai-info-item>
<ai-info-item label="风险消除方式:" v-if="forms.isRisk == 1"><span >{{dict.getLabel('fpRiskEliminationMethod', forms.riskEliminationMethod)}}</span></ai-info-item>
</ai-wrapper>
</div>
</div>
</template>
</ai-card>
</div>
<ai-card title="帮扶日志" v-if="navIndex == 1">
<template #right>
<span class="edit-text" @click="showAddLog=true">新增日志</span>
</template>
<template slot="content">
<div class="log-list" v-if="logList.length">
<div class="log-item" v-for="(item, index) in logList" :key="index">
<img src="https://thirdwx.qlogo.cn/mmopen/vi_32/POgEwh4mIHO4nibH0KlMECNjjGxQUq24ZEaGT4poC6icRiccVGKSyXwibcPq4BWmiaIGuG1icwxaQX6grC9VemZoJ8rg/132" alt="">
<div class="content">
<div class="heade-info">
<h2>{{item.createUserName}}</h2>
<p>{{item.createTime}}</p>
</div>
<p class="text">{{item.detail}}</p>
<div class="img-list">
<ai-uploader :disabled="true" :instance="instance" v-model="item.file" :limit="9"></ai-uploader>
</div>
<div class="footer-btn">
<span class="edit-text" @click="editLog(item)">编辑</span>
<span class="edit-text" @click="delLog(item)">删除</span>
</div>
</div>
</div>
</div>
<ai-empty v-else></ai-empty>
</template>
</ai-card>
</el-form>
<ai-dialog title="新增帮扶日志" :visible.sync="showAddLog" :customFooter="true" :destroyOnClose="true" border width="900px">
<el-form ref="logrules" :model="logInfo" :rules="formRules" size="small" label-suffix="" label-width="150px">
<el-form-item label="帮扶内容" prop="detail">
<el-input v-model="logInfo.detail" type="textarea" placeholder="请输入" maxlength="500" show-word-limit></el-input>
</el-form-item>
<el-form-item label="图片最多9张" >
<ai-uploader
:isShowTip="true"
:instance="instance"
v-model="logInfo.file"
fileType="img"
acceptType=".png,.jpg,.jpeg"
:limit="9">
<template slot="tips">最多上传9张图片,单张图片最大10MB<br/>支持.png,.jpg,.jpeg格式</template>
</ai-uploader>
</el-form-item>
</el-form>
<div class="dialog-footer" slot="footer" >
<el-button size="medium" @click="showAddLog=false">取消</el-button>
<el-button type="primary" size="medium" @click="addLog()">确认</el-button>
</div>
</ai-dialog>
<ai-dialog title="新增家庭成员" :visible.sync="showAddFamily" :customFooter="true" :destroyOnClose="true" border width="900px">
<el-form ref="addrules" :model="familyInfo" :rules="formRules" size="small" label-suffix="" label-width="150px">
<div class="above">
<div class="left">
<el-form-item label="与户主关系" prop="relationship" >
<ai-select v-model="familyInfo.relationship" placeholder="请选择" clearable :selectList="$dict.getDict('fpRelationship')"></ai-select>
</el-form-item>
<el-form-item label="性别" prop="sex" >
<ai-select v-model="familyInfo.sex" placeholder="请选择" clearable :selectList="$dict.getDict('sex')" disabled></ai-select>
</el-form-item>
<el-form-item label="政治面貌" prop="politicalOutlook" >
<ai-select v-model="familyInfo.politicalOutlook" placeholder="请选择" clearable :selectList="$dict.getDict('fpPoliticalOutlook')"></ai-select>
</el-form-item>
<el-form-item label="在校情况" prop="studentsInSchool" >
<ai-select v-model="familyInfo.studentsInSchool" placeholder="请选择" clearable :selectList="$dict.getDict('fpStudentsInSchool')"></ai-select>
</el-form-item>
<el-form-item label="劳动技能" prop="laborSkills" >
<ai-select v-model="familyInfo.laborSkills" placeholder="请选择" clearable :selectList="$dict.getDict('fpLaborSkills')"></ai-select>
</el-form-item>
<el-form-item label="务工时间" prop="workingMonths" >
<el-input v-model.number="familyInfo.workingMonths" placeholder="请输入(月数)" maxlength="30" show-word-limit></el-input>
</el-form-item>
<el-form-item label="是否参加大病医保" prop="sicknessInsurance" >
<ai-select v-model="familyInfo.sicknessInsurance" placeholder="请选择" clearable :selectList="$dict.getDict('fpYesOrNo')"></ai-select>
</el-form-item>
<el-form-item label="享受最低生活保障" prop="subsistenceAllowance" >
<ai-select v-model="familyInfo.subsistenceAllowance" placeholder="请选择" clearable :selectList="$dict.getDict('fpYesOrNo')"></ai-select>
</el-form-item>
</div>
<div class="right">
<el-form-item label="姓名" prop="name" >
<el-input v-model.number="familyInfo.name" placeholder="请输入" maxlength="11" show-word-limit></el-input>
</el-form-item>
<el-form-item label="身份证号" prop="idNumber" >
<ai-id size="small" v-model="familyInfo.idNumber" @change="getSex(familyInfo.idNumber)"/>
</el-form-item>
<el-form-item label="民族" prop="nation" >
<ai-select v-model="familyInfo.nation" placeholder="请选择" clearable :selectList="$dict.getDict('fpNation')"></ai-select>
</el-form-item>
<el-form-item label="文化程度" prop="education" >
<ai-select v-model="familyInfo.education" placeholder="请选择" clearable :selectList="$dict.getDict('fpEducation')"></ai-select>
</el-form-item>
<el-form-item label="健康状况" prop="health" >
<ai-select v-model="familyInfo.health" placeholder="请选择" clearable :selectList="$dict.getDict('fpHealth')"></ai-select>
</el-form-item>
<el-form-item label="务工区域" prop="workArea" >
<el-input v-model="familyInfo.workArea" placeholder="请输入" maxlength="30" show-word-limit></el-input>
</el-form-item>
<el-form-item label="是否参加医保" prop="medicalInsurance" >
<ai-select v-model="familyInfo.medicalInsurance" placeholder="请选择" clearable :selectList="$dict.getDict('fpYesOrNo')"></ai-select>
</el-form-item>
<el-form-item label="是否参加养老保险" prop="endowmentInsurance" >
<ai-select v-model="familyInfo.endowmentInsurance" placeholder="请选择" clearable :selectList="$dict.getDict('fpYesOrNo')"></ai-select>
</el-form-item>
<el-form-item label="是否特困供养" prop="destitute" >
<ai-select v-model="familyInfo.destitute" placeholder="请选择" clearable :selectList="$dict.getDict('fpYesOrNo')"></ai-select>
</el-form-item>
</div>
</div>
</el-form>
<div class="dialog-footer" slot="footer" >
<el-button size="medium" @click="showAddFamily=false">取消</el-button>
<el-button type="primary" size="medium" @click="addFamily()">确认</el-button>
</div>
</ai-dialog>
</template>
<template #footer v-if="!params.id">
<el-button @click="cancel(false)" class="delete-btn footer-btn" > </el-button>
<el-button type="primary" @click="save()" class="footer-btn"> </el-button>
</template>
</ai-detail>
</section>
</template>
<script>
import {mapState} from "vuex";
export default {
name: "add",
props: {
instance: Function,
dict: Object,
permissions: Function,
params: Object,
},
data() {
return {
forms: {
type: '',
phone: '',
move: '',
addressAreaId: '',
address: '',
placeAreaId: '',
dilapidatedHouse: '',
riskType: '',
waterSecurity: '',
income1: '',
income2: '',
income3: '',
income4: '',
income5: '',
income8: '',
income9: '',
isRisk: '',
riskEliminationDate: '',
riskEliminationMethod: '',
industrialAssistance: '',
employmentAssistance: '',
financialAssistance: '',
publicWelfarePostAssistance: '',
healthAssistance: '',
educationalAssistance: '',
socialAssistance: '',
familyList: []
},
navIndex: 0,
showAddFamily: false,
isEdit: false,
familyInfo: {
relationship: '',
sex: '',
politicalOutlook: '',
studentsInSchool: '',
laborSkills: '',
workingMonths: '',
sicknessInsurance: '',
subsistenceAllowance: '',
name: '',
idNumber: '',
nation: '',
education: '',
health: '',
workArea: '',
medicalInsurance: '',
endowmentInsurance: '',
destitute: '',
},
editFamilyIndex: '',
showAddLog: false,
logList: [],
logInfo: {
detail: '',
file: [],
picture: ''
}
};
},
created() {
this.dict.load('fpType', 'fpYesOrNo', 'fpRiskType', 'fpRiskEliminationMethod', 'fpIndustrialAssistance', 'fpEmploymentAssistance', 'fpFinancialAssistance',
'fpPublicWelfarePostAssistance', 'fpHealthAssistance', 'fpEducationalAssistance', 'fpSocialAssistance', 'fpRelationship', 'sex', 'fpPoliticalOutlook',
'fpStudentsInSchool', 'fpLaborSkills', 'fpNation', 'fpEducation', 'fpHealth')
if (this.params.id) {
this.getDetail()
this.isEdit = false
} else {
this.isEdit = true
this.forms.addressAreaId = this.user.info.areaId
this.forms.placeAreaId = this.user.info.areaId
}
},
computed: {
formRules() {
return {
type: [{ required: true, message: "请选择监测对象类型", trigger: "change" }],
move: [{ required: true, message: "请选择是否搬迁", trigger: "change" }],
phone: [{ required: true, message: "请输入联系方式", trigger: "change" }],
addressAreaId: [
{required: true, message: "请选择所属区域"},
{trigger:'blur',validator: (r, v, cb) => /0{3}$/g.test(v) ? cb('请选择到村/社区') : cb()}
],
address: [{ required: true, message: "请输入家庭住址", trigger: "change" }],
placeAreaId: [
{required: true, message: "请选择安置地区"},
{trigger:'blur',validator: (r, v, cb) => /0{3}$/g.test(v) ? cb('请选择到村/社区') : cb()}
],
place: [{ required: true, message: "请输入安置详细住址", trigger: "change" }],
riskEliminationMethod: [{ required: true, message: "请选择风险消除方式", trigger: "change" }],
riskEliminationDate: [{ required: true, message: "请选择风险消除时间", trigger: "change" }],
relationship: [{ required: true, message: "请选择与户主关系", trigger: "change" }],
name: [{ required: true, message: "请输入姓名", trigger: "change" }],
idNumber: [{ required: true, message: "请输入证件号码", trigger: "change" }],
studentsInSchool: [{ required: true, message: "请选择在校情况", trigger: "change" }],
health: [{ required: true, message: "请选择健康情况", trigger: "change" }],
sicknessInsurance: [{ required: true, message: "请选择是否大病医保", trigger: "change" }],
subsistenceAllowance: [{ required: true, message: "请选择享受最低生活保障", trigger: "change" }],
medicalInsurance: [{ required: true, message: "请选择是否参加医保", trigger: "change" }],
endowmentInsurance: [{ required: true, message: "请选择是否参加养老保险", trigger: "change" }],
destitute: [{ required: true, message: "请选择是否特困供养", trigger: "change" }],
detail: [{ required: true, message: "请输入帮扶内容", trigger: "change" }],
};
},
...mapState(['user']),
colConfigs() {
return [
{label: "与户主关系", prop: "relationship", dict: 'fpRelationship', align: 'center'},
{label: "姓名", prop: "name", align: 'center'},
{label: "性别", prop: "sex", dict: 'sex', align: 'center'},
{slot: 'age'},
{
label: "身份证号", width: "160px", align: 'center',
render: (h, {row}) => h('span', null, this.idCardNoUtil.hideId(row.idNumber))
},
{slot: "options"},
]
}
},
methods: {
save() {
this.$refs["rules"].validate((valid) => {
if (valid) {
this.confirmSave()
} else {
return false;
}
});
},
confirmSave() {
var isHolder = false //家庭成员必须有户主
if(this.forms.familyList.length) {
this.forms.familyList.map((item) => {
if(item.relationship == '01') {
isHolder = true
}
})
}
if(!isHolder) {
return this.$message.error('家庭成员必须添加户主信息');
}
if(this.forms.isRisk == '01') {
this.forms.status = 1
}
this.instance .post( `/app/apppreventionreturntopoverty/addOrUpdate`, { ...this.forms}).then((res) => {
if (res.code == 0) {
if (!this.params.id) {
this.cancel(true)
} else {
this.isEdit = false
this.getDetail()
}
}
});
},
getDetail() {
this.instance.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${this.params.id}`).then((res) => {
if (res.code == 0) {
this.forms = { ...this.forms, ...res.data }
if(this.forms.riskEliminationDate) {
this.forms.isRisk = '01'
}else {
this.forms.isRisk = '02'
}
}
});
},
addFamily() {
this.$refs["addrules"].validate((valid) => {
if (valid) {
if(this.editFamilyIndex === '') {
this.forms.familyList.push(this.familyInfo)
}else {
this.$set(this.forms.familyList, this.editFamilyIndex, this.familyInfo)
}
if(this.forms.isRisk == '02') {
this.forms.riskEliminationDate = ''
this.forms.riskEliminationMethod = ''
}
this.showAddFamily = false
this.editFamilyIndex = ''
this.familyInfo = Object.assign({},this.$options.data().familyInfo);
} else {
return false;
}
});
},
editFamily(item, index) {
this.showAddFamily = true
this.editFamilyIndex = index
this.familyInfo = {...item}
},
delFamily(item, index) {
this.$confirm("是否要删除该家庭成员", {
type: 'error'
}).then(() => {
this.$message({message: '家庭成员删除成功', type: 'success'});
this.forms.familyList.splice(index, 1)
}).catch(() => 0)
},
getAge(UUserCard) {
const myDate = new Date();
const month = myDate.getMonth() + 1;
const day = myDate.getDate();
let age = myDate.getFullYear() - UUserCard.substring(6, 10) - 1;
if ( UUserCard.substring(10, 12) < month || (UUserCard.substring(10, 12) == month && UUserCard.substring(12, 14) <= day)) {
age++;
}
return age
},
getSex(UUserCard) {
if (UUserCard) {
if (parseInt(UUserCard.substr(16, 1)) % 2 == 1) {
this.familyInfo.sex = '1'
} else {
this.familyInfo.sex = '0'
}
}
},
cancel (isRefresh) {
this.$emit('change', {
type: 'List',
isRefresh: isRefresh ? true : false,
})
},
getLogList() {
this.instance.post(`/app/apppreventionreturntopovertylog/list?pid=${this.params.id}`).then((res) => {
if (res.code == 0) {
res.data.records.map((item) => {
item.file = JSON.parse(item.picture)
})
this.logList = res.data.records
}
});
},
addLog() {
this.$refs["logrules"].validate((valid) => {
if (valid) {
this.logInfo.picture = JSON.stringify(this.logInfo.file)
this.logInfo.pid = this.params.id
this.logInfo.createUserName = this.user.info.name
this.instance .post( `/app/apppreventionreturntopovertylog/addOrUpdate`, { ...this.logInfo}).then((res) => {
if (res.code == 0) {
this.$message({message: this.logInfo.id ? '编辑帮扶日志成功' : '新增帮扶日志成功', type: 'success'});
this.getLogList()
this.logInfo = Object.assign({},this.$options.data().logInfo)
this.showAddLog = false
}
});
} else {
return false;
}
});
},
delLog(row) {
this.$confirm("是否要删除该帮扶日志", {
type: 'error'
}).then(() => {
this.instance.post(`/app/apppreventionreturntopovertylog/delete?ids=${row.id}`).then((res) => {
if (res.code == 0) {
this.$message({message: '帮扶日志删除成功', type: 'success'});
this.getLogList()
}
});
}).catch(() => 0)
},
editLog(row) {
this.logInfo = {...row}
this.logInfo.file = JSON.parse(row.picture)
this.showAddLog = true
}
},
};
</script>
<style lang="scss" scoped>
.add {
height: 100%;
.log-list{
.log-item{
display: flex;
border-bottom: 1px solid #ddd;
padding-top: 16px;
img{
width: 48px;
height: 48px;
border-radius: 50%;
margin-right: 16px;
}
.content{
width: calc(100% - 64px);
color: #000;
.heade-info{
display: flex;
justify-content: space-between;
height: 36px;
line-height: 36px;
h2{
font-size: 16px;
font-weight: 400;
}
p{
font-size: 14px;
color: #333;
}
}
.text{
font-size: 14px;
word-break: break-all;
margin-bottom: 8px;
}
.img-list{
img{
width: 150px;
height: 150px;
margin: 0 16px 16px 0;
}
}
.footer-btn{
width: 100%;
text-align: right;
padding-bottom: 16px;
}
}
}
.log-item:nth-last-of-type(1) {
border-bottom: 0;
}
}
.ai-detail__title {
background-color: #fff;
}
.ai-detail__content {
.ai-detail__content--wrapper {
.el-form {
// background-color: #fff;
// padding: 0 60px;
.flex {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
.el-form-item {
width: 48%;
}
.buildingTypes {
width: 100%;
}
}
}
}
}
::v-deep .el-tag {
margin-right: 8px;
color: #333333;
}
.footer-btn {
width: 92px;
}
.above{
display: flex;
.left, .right{
flex: 1;
}
}
.nav-list{
position: absolute;
top: 100px;
left: -152px;
.nav-item{
width: 120px;
height: 50px;
text-align: center;
line-height: 50px;
background-color: #fff;
cursor: pointer;
font-size: 16px;
color: #666;
}
.active{
font-weight: 700;
color: #26f;
}
}
::v-deep .el-date-editor.el-input, .el-date-editor.el-input__inner{
width: 100%;
}
.edit-text{
color:#2266FF;
margin-left: 16px;
cursor: pointer;
font-size: 12px;
}
}
</style>