This commit is contained in:
liuye
2024-09-23 17:41:02 +08:00
parent a312d3e34b
commit d536af9311
13 changed files with 610 additions and 143 deletions

View File

@@ -35,7 +35,7 @@ instance.interceptors.response.use(res => {
return res.data
} else if (res.config.alwaysReturn) {
return res.data
} else if (res.data.code == 0) {
} else if (res.data.code == 200) {
return res.data
} else if (res.data.code === 1) {
uni.showToast({

View File

@@ -57,7 +57,15 @@ export default {
preview: Boolean,
size: {default: 10 * 1024 * 1024},
disabled: Boolean,
sourceType: {default: () => ['album', 'camera']}
sourceType: {default: () => ['album', 'camera']},
withoutToken: {
type: Boolean,
default: false,
},
imgUrlHttp: {
type: String,
default: '',
},
},
computed: {
...mapState(['token']),
@@ -140,6 +148,7 @@ export default {
} else {
this.$http.post(this.api, formData, {
params: {type: this.type},
withoutToken: this.withoutToken
}).then((res) => {
if (res?.data) {
this.$emit('data', res.data)
@@ -162,6 +171,8 @@ export default {
this.fileList.push(res.data)
} else if (this.api == '/admin/file/add-portrait') {
this.fileList.push({url: res.data?.split(";")?.[0], id: res.data?.split(";")?.[1]})
}else if (this.api == '/common/upload') { //图片url回显需先拼接imgUrlHttp
this.fileList.push({url: this.imgUrlHttp + res.data.fileName, fileName: res.data.originalFilename, filePath: this.imgUrlHttp + res.data.fileName})
}
this.$emit("update:def", this.fileList)
this.$emit("list", this.fileList)

View File

@@ -29,7 +29,7 @@
"open": true,
"proxy": {
"/lan": {
"target": "http://192.168.1.87:9000",
"target": "http://8.148.23.227:8080",
"changeOrigin": true,
"pathRewrite": {
"^/lan": "/"

View File

@@ -14,10 +14,10 @@
</div>
</div>
</div>
<div class="footer-btn">
<!-- <div class="footer-btn">
<div class="btn primary" @click="toView()">查看儿童详细信息</div>
<div class="btn">返回</div>
</div>
</div> -->
</section>
</template>
@@ -56,10 +56,12 @@ export default {
}
]
}
]
],
childType: '',
synId: ''
}
},
onLoad() {
onLoad(option) {
uni.setNavigationBarColor({
frontColor: '#ffffff',
backgroundColor: '#2183FF'
@@ -67,6 +69,11 @@ export default {
uni.setNavigationBarTitle({
title: '儿童信息详情'
})
this.childType = option.childType
this.synId = option.synId
this.$dict.load(['CHILD_CATEGORY_CODE', 'GENDER_CODE']).then(() => {
this.getDetail()
})
},
methods: {
view(index) {
@@ -74,7 +81,19 @@ export default {
},
toView() {
uni.navigateTo({url: `./AppChildrenDetailView`})
}
},
getDetail() {
this.$http.get(`/mobile/childrenInfo/findDetails/${this.synId}/${this.childType}`,
{
withoutToken: true
}).then((res) => {
if (res.code == 200) {
this.info = {...res.data}
}else {
this.$u.toast(res.msg)
}
})
},
},
}
</script>

View File

@@ -3,9 +3,9 @@
<div class="form">
<div class="item">
<span class="requier">*</span>
<div class="item-content">
<div class="item-content" @click="isShowtype=true">
<div class="label">儿童类型</div>
<div class="value placeholder">请选择</div>
<div :class="childType ? 'value' : 'value placeholder'">{{$dict.getLabel('CHILD_CATEGORY_CODE', childType) || '请选择'}}</div>
<img src="https://cdn.sinoecare.com/i/2024/09/06/66da67b778d99.png" alt="" class="right-icon">
</div>
</div>
@@ -14,11 +14,11 @@
<div class="item-content">
<div class="label">儿童姓名</div>
<div class="value">
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="value" maxlength="10"/>
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="childName" maxlength="10"/>
</div>
</div>
</div>
<div class="item">
<!-- <div class="item">
<span class="requier">*</span>
<div class="item-content">
<div class="label">儿童身份证号</div>
@@ -26,13 +26,14 @@
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="value" maxlength="10"/>
</div>
</div>
</div>
</div> -->
</div>
<div class="footer-btn">
<div class="btn primary">扫描身份证</div>
<!-- <div class="btn primary">扫描身份证</div> -->
<div class="btn primary" @click="toList()">查询</div>
<div class="btn">返回</div>
</div>
<u-select v-model="isShowtype" :list="$dict.getDict('CHILD_CATEGORY_CODE')" value-name="dictValue" label-name="dictName" @confirm="typeChange"></u-select>
</section>
</template>
@@ -42,7 +43,9 @@ export default {
appName: "各类儿童信息查询",
data() {
return {
value: ''
childName: '',
childType: '1',
isShowtype: false
}
},
onLoad() {
@@ -53,10 +56,20 @@ export default {
uni.setNavigationBarTitle({
title: '各类儿童信息查询'
})
this.$dict.load(['CHILD_CATEGORY_CODE'])
},
methods: {
typeChange(e) {
this.childType = e[0].value
},
toList() {
uni.navigateTo({url: './AppChildrenList'})
if(!this.childType) {
return this.$u.toast(`请选择儿童类型`)
}
if(!this.childName) {
return this.$u.toast(`请输入儿童姓名`)
}
uni.navigateTo({url: `./AppChildrenList?childType=${this.childType}&childName=${this.childName}`})
}
},
}

View File

@@ -1,30 +1,17 @@
<template>
<section class="AppChildrenList">
<div class="user-list">
<div class="item" @click="toDetail()">
<div class="item" v-for="(item, index) in list" :key="index" @click="toDetail(item)">
<div class="name-flex">
<div class="name">张珊珊</div>
<div class="name">{{item.childName}}</div>
<div class="type-list">
<div class="type">事实无人抚养儿童</div>
<div class="type">{{$dict.getLabel('CHILD_CATEGORY_CODE', item.childType)}}</div>
</div>
</div>
<img src="https://cdn.sinoecare.com/i/2024/09/06/66da67b778d99.png" alt="" class="right-icon">
<div class="sex-info">
<span></span>
<span>14</span>
</div>
</div>
<div class="item">
<div class="name-flex">
<div class="name">张珊珊</div>
<div class="type-list">
<div class="type">事实无人抚养儿童</div>
</div>
</div>
<img src="https://cdn.sinoecare.com/i/2024/09/06/66da67b778d99.png" alt="" class="right-icon">
<div class="sex-info">
<span></span>
<span>14</span>
<span>{{$dict.getLabel('GENDER_CODE', item.gender)}}</span>
<span>{{item.age}}</span>
</div>
</div>
</div>
@@ -37,10 +24,14 @@ export default {
appName: "各类儿童信息查询",
data() {
return {
childName: '',
childType: '',
current: 1,
pageTotal: 2,
list: []
}
},
onLoad() {
onLoad(option) {
uni.setNavigationBarColor({
frontColor: '#ffffff',
backgroundColor: '#2183FF'
@@ -48,12 +39,41 @@ export default {
uni.setNavigationBarTitle({
title: '各类儿童信息查询'
})
this.childType = option.childType
this.childName = option.childName
this.$dict.load(['CHILD_CATEGORY_CODE', 'GENDER_CODE']).then(() => {
this.getList()
})
},
methods: {
toDetail() {
uni.navigateTo({url: `./AppChildrenDetail`})
toDetail(row) {
uni.navigateTo({url: `./AppChildrenDetail?synId=${row.synId}&childType=${row.childType}`})
},
getList() {
if(this.current > this.pageTotal) return
this.$http.post(`/mobile/childrenInfo/findListPage`,
{
childName: this.childName,
// childType: this.childType,
pageNum: this.current,
pageSize: 10,
},
{
withoutToken: true
}).then((res) => {
if (res.code == 200) {
this.list = this.current > 1 ? [...this.datas, ...res.data.rows] : res.data.rows
this.pageTotal = Math.ceil(res.data.total/10)
}else {
this.$u.toast(res.msg)
}
})
}
},
onReachBottom() {
this.current++
this.getList()
}
}
</script>

View File

@@ -22,7 +22,12 @@ export default {
{
imgUrl: 'https://cdn.sinoecare.com/i/2024/09/06/66da65a41973a.png',
linkUrl: '../AppRecognize/AppRecognize'
},
{
imgUrl: 'https://cdn.sinoecare.com/i/2024/09/23/66f129149bd83.png',
linkUrl: '../AppSecurityObject/AppSecurityObject'
}
]
}
},

View File

@@ -7,29 +7,19 @@
<div class="select-content" v-if="showAdd">
<span class="triangle-up"></span>
<div class="item" @click="linkTo('./AppRecognizeSearchTab')">查询</div>
<div class="item" @click="linkTo('./AppRecognizeAdd')">新增认清助养</div>
<div class="item" @click="linkTo(`./AppRecognizeAdd?assistanceMethod=${tabList[tabIndex].val}`)">新增认清助养</div>
</div>
<u-tabs :list="tabList" :is-scroll="false" :current="tabIndex" @change="change" height="112" :bar-style="barStyle"
bg-color="#fff" inactive-color="#666" active-color="#222" :active-item-style="activeStyle"></u-tabs>
<div class="user-list">
<div class="item" @click="toDetail()">
<div class="item" v-for="(item, index) in list" :key="index" @click="toDetail(item)">
<div class="item-top">
<div class="title">助养方王微微</div>
<div class="info">助养对象张珊珊李思思等被助养人</div>
<div class="info">相信描述衣服物件鞋子无双资金500000元</div>
<div class="title">助养方{{item.sponsorName}}</div>
<div class="info">助养对象{{item.sponsoredChildName}}</div>
<div class="info">相信描述{{item.details}}</div>
</div>
<div class="item-bottom">
<div class="time">2023-09-10</div>
</div>
</div>
<div class="item">
<div class="item-top">
<div class="title">助养方王微微</div>
<div class="info">助养对象张珊珊李思思等被助养人</div>
<div class="info">相信描述衣服物件鞋子无双资金500000元</div>
</div>
<div class="item-bottom">
<div class="time">2023-09-10</div>
<div class="time">{{item.processingDate}}</div>
</div>
</div>
</div>
@@ -37,6 +27,7 @@
</template>
<script>
import {mapState} from 'vuex'
export default {
name: "AppRecognize",
appName: "认亲助养",
@@ -46,7 +37,7 @@ export default {
backgroundNavbar: {
backgroundColor: '#2183FF'
},
tabList: [{name: '一次性助养'}, {name: '长期助养'}],
tabList: [{name: '一次性助养', val: 2}, {name: '长期助养', val: 1}],
tabIndex: 0,
barStyle: {
'width': '20px',
@@ -58,24 +49,64 @@ export default {
'font-weight' : '400',
'color': '#222'
},
showAdd: false
showAdd: false,
current: 1,
pageTotal: 2,
list: []
}
},
computed: {
...mapState(['user']),
},
onLoad() {
this.getList()
uni.$on('updateList', () => {
this.getListInit()
})
},
methods: {
linkTo(url) {
this.showAdd = false
uni.navigateTo({url})
},
toDetail() {
uni.navigateTo({url: `./AppRecognizeDetail`})
toDetail(row) {
uni.navigateTo({url: `./AppRecognizeDetail?id=${row.id}`})
},
change(e) {
this.tabIndex = e
this.getListInit()
},
getListInit() {
this.current = 1
this.pageTotal = 2
this.list = []
this.getList()
},
getList() {
if(this.current > this.pageTotal) return
this.$http.post(`/mobile/supportRaise/findListPage`,
{
sponsorshipMethod: this.tabList[this.tabIndex].val,
pageNum: this.current,
pageSize: 10,
divisionCode: this.user.divisionCode || ''
},
{
withoutToken: true
}).then((res) => {
if (res.code == 200) {
this.list = this.current > 1 ? [...this.datas, ...res.data.rows] : res.data.rows
this.pageTotal = Math.ceil(res.data.total/10)
}else {
this.$u.toast(res.msg)
}
})
}
},
onReachBottom() {
this.current++
this.getList()
}
}
</script>

View File

@@ -15,24 +15,23 @@
<div class="item-content">
<div class="label">助养人姓名</div>
<div class="value">
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="value" maxlength="10"/>
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="form.assistanceName" maxlength="10"/>
</div>
</div>
</div>
<div class="item">
<span class="requier">*</span>
<div class="item-content">
<div class="item-content" @click="isShowRelationship=true">
<div class="label">与助养对象关系</div>
<div class="value">
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="value" maxlength="10"/>
</div>
<div :class="form.relationshipWithChild ? 'value' : 'value placeholder'">{{$dict.getLabel('relationship_children', form.relationshipWithChild) || '请选择'}}</div>
<img src="https://cdn.sinoecare.com/i/2024/09/06/66da67b778d99.png" alt="" class="right-icon">
</div>
</div>
<div class="item">
<span class="requier">*</span>
<div class="item-content">
<div class="item-content" @click="isShowMethod=true">
<div class="label">助养方式</div>
<div class="value">请选择</div>
<div :class="form.assistanceMethod ? 'value' : 'value placeholder'">{{$dict.getLabel('handling_Date', form.assistanceMethod) || '请选择'}}</div>
<img src="https://cdn.sinoecare.com/i/2024/09/06/66da67b778d99.png" alt="" class="right-icon">
</div>
</div>
@@ -41,35 +40,42 @@
<div class="item-content">
<div class="label">详细描述</div>
<div class="value">
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="value" maxlength="10"/>
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="form.details" maxlength="10"/>
</div>
</div>
</div>
<div class="item">
<span class="requier">*</span>
<div class="item-content">
<div class="label">助养对象关系</div>
<div class="label">助养人身份证号</div>
<div class="value">
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="value" maxlength="10"/>
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="form.assistanceIdNumber" maxlength="18"/>
</div>
</div>
</div>
<div class="item">
<span class="requier">*</span>
<div class="item-content">
<div class="item-content" @click="isShowDate=true">
<div class="label">办理日期</div>
<div class="value">请选择</div>
<img src="https://cdn.sinoecare.com/i/2024/09/06/66da67b778d99.png" alt="" class="right-icon">
<div :class="form.handlingDate ? 'value' : 'value placeholder'">{{form.handlingDate || '请选择'}}</div>
<img src="https://cdn.sinoecare.com/i/2024/09/23/66f0cbedbbd23.png" alt="" class="right-icon">
</div>
</div>
</div>
<div class="user-list" v-if="stepIndex == 1">
<div class="item">
<u-search placeholder="搜索儿童姓名" :show-action="false" bg-color="#fff" search-icon-color="#ccc" color="#666"
height="58" v-model="searchChildrenName" @search="getChildrenList()"/>
<div class="item" v-for="(item, index) in childrenList" :key="index">
<div class="item-top">
<div class="title">儿童姓名王微微</div>
<div class="info">身份证号123************456</div>
<div class="info">儿童类别社会散居孤儿</div>
<div class="info">出生年月2000-09-15</div>
<div class="title">儿童姓名{{item.childName}}</div>
<div class="info">身份证号{{item.childNumber}}</div>
<div class="info">儿童类别{{$dict.getLabel('CHILD_CATEGORY_CODE', item.childCategory)}}</div>
<div class="info">出生年月{{item.birthDate}}</div>
<img :src="item.isCheck ? 'https://cdn.sinoecare.com/i/2024/07/16/6695ddf91113c.png' :
'https://cdn.sinoecare.com/i/2024/07/16/6695ddf890b1e.png'" alt="" class="check-img" @click="checkChildren(index)">
</div>
<div class="item-bottom" @click="toChildrenDetail(item)">
<div class="btn">详情</div>
</div>
</div>
</div>
@@ -77,18 +83,9 @@
<div class="item">
<span class="requier">*</span>
<div class="item-content">
<div class="label">助养者身份证信息(身份证正面)</div>
<div class="label">助养者身份证信息(身份证正)</div>
<div class="value">
<AiUploader style="margin-top: 12px;" :def.sync="files" :limit="1" action="/admin/file/add2"></AiUploader>
</div>
</div>
</div>
<div class="item">
<span class="requier">*</span>
<div class="item-content">
<div class="label">助养者身份证信息(身份证反面)</div>
<div class="value">
<AiUploader style="margin-top: 12px;" :def.sync="files" :limit="1" action="/admin/file/add2"></AiUploader>
<AiUploader style="margin-top: 12px;" :def.sync="filesId" :limit="2" :multiple="true" action="/common/upload" :withoutToken="true" :imgUrlHttp="imgUrlHttp"></AiUploader>
</div>
</div>
</div>
@@ -97,7 +94,7 @@
<div class="item-content">
<div class="label">助养者经济状况证明</div>
<div class="value">
<AiUploader style="margin-top: 12px;" :def.sync="files" :limit="9" action="/admin/file/add2"></AiUploader>
<AiUploader style="margin-top: 12px;" :def.sync="filesEconomy" :limit="9" :multiple="true" action="/common/upload" :withoutToken="true" :imgUrlHttp="imgUrlHttp"></AiUploader>
</div>
</div>
</div>
@@ -106,7 +103,7 @@
<div class="item-content">
<div class="label">助养者健康状况</div>
<div class="value">
<AiUploader style="margin-top: 12px;" :def.sync="files" :limit="9" action="/admin/file/add2"></AiUploader>
<AiUploader style="margin-top: 12px;" :def.sync="filesHealth" :limit="9" :multiple="true" action="/common/upload" :withoutToken="true" :imgUrlHttp="imgUrlHttp"></AiUploader>
</div>
</div>
</div>
@@ -115,7 +112,7 @@
<div class="item-content">
<div class="label">其他材料</div>
<div class="value">
<AiUploader style="margin-top: 12px;" :def.sync="files" :limit="9" action="/admin/file/add2"></AiUploader>
<AiUploader style="margin-top: 12px;" :def.sync="filesOther" :limit="9" :multiple="true" action="/common/upload" :withoutToken="true" :imgUrlHttp="imgUrlHttp"></AiUploader>
</div>
</div>
</div>
@@ -126,7 +123,7 @@
<div class="item-content">
<div class="label">办理人</div>
<div class="value">
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="value" maxlength="10"/>
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="form.agentId" maxlength="10"/>
</div>
</div>
</div>
@@ -135,7 +132,7 @@
<div class="item-content">
<div class="label">办理人联系电话</div>
<div class="value">
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="value" maxlength="10"/>
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="form.agentPhone" maxlength="10"/>
</div>
</div>
</div>
@@ -144,21 +141,24 @@
<div class="item-content">
<div class="label">办理机构</div>
<div class="value">
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="value" maxlength="10"/>
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="form.agency" maxlength="10"/>
</div>
</div>
</div>
</div>
<div class="footer-btn">
<div class="btn primary" v-if="!stepIndex">扫描身份证</div>
<div class="btn primary" @click="next" v-if="stepIndex < 3">下一步</div>
<div class="btn primary" @click="confirm" v-if="stepIndex == 3">确认</div>
<div class="btn" @click="pre" v-if="stepIndex != 0">返回</div>
</div>
<u-select v-model="isShowRelationship" :list="$dict.getDict('relationship_children')" value-name="dictValue" label-name="dictName" @confirm="shipChange"></u-select>
<u-select v-model="isShowMethod" :list="$dict.getDict('handling_Date')" value-name="dictValue" label-name="dictName" @confirm="methodChange"></u-select>
<u-calendar v-model="isShowDate" @change="onDateChange" mode="date"></u-calendar>
</section>
</template>
<script>
import {mapState} from 'vuex'
export default {
name: "AppRecognizeAdd",
appName: "认亲助养",
@@ -166,10 +166,40 @@ export default {
return {
stepTitleList: [{name: '助养信息'}, {name: '助养对象'}, {name: '相关文件'}, {name: '经办人'}],
stepIndex: 0,
files: []
files: [],
form: {
assistanceName: '张三',
relationshipWithChild: '1',
assistanceMethod: '1',
details: '111',
assistanceIdNumber: '110102190001010731',
handlingDate: '2024-09-23',
assistanceInformationFile: [],
agentId: '',
agentPhone: '',
agency: '',
childBusinessId: '',
childType: '',
assistanceMethod: ''
},
isShowDate: false,
isShowRelationship: false,
isShowMethod: false,
childrenList: [],
searchChildrenName: '',
checkChildrenInfo: {}, //第二步选择儿童信息
filesId: [], //身份证照片
filesEconomy: [], //经济状况证明
filesHealth: [], //健康证明
filesOther: [], //其它
imgUrlHttp: '',
isNextFlag: true
}
},
onLoad() {
computed: {
...mapState(['user']),
},
onLoad(option) {
uni.setNavigationBarColor({
frontColor: '#ffffff',
backgroundColor: '#2183FF'
@@ -177,14 +207,153 @@ export default {
uni.setNavigationBarTitle({
title: '认亲助养'
})
this.$dict.load(['handling_Date', 'relationship_children', 'CHILD_CATEGORY_CODE'])
this.$http.get(`/system/config/configKey/upload.file.path`,
{
withoutToken: true
}).then((res) => {
if (res.code == 200) {
this.imgUrlHttp = res.data
}
})
this.form.agentId = this.user.name
this.form.agentPhone = this.user.phone
// this.form.agency = this.user.divisionCode
this.form.assistanceMethod = option.assistanceMethod
},
methods: {
linkTo(url) {
uni.navigateTo({url})
shipChange(e) {
this.form.relationshipWithChild = e[0].value
},
methodChange(e) {
this.form.assistanceMethod = e[0].value
},
onDateChange(e) {
this.form.handlingDate = `${e.result}`
},
next() {
if(!this.stepIndex) { //第一步
return this.validateFirst()
}
if(this.stepIndex == 1) { //第二步选择儿童
return this.validateSecond()
}
if(this.stepIndex == 2) {
return this.validateThird() //第三步
}
if(this.stepIndex == 3) {
return this.confrim()
}
},
validateFirst() {
// if (!this.form.assistanceName) {
// return this.$u.toast(`请输入助养人姓名`)
// }
// if (!this.form.relationshipWithChild) {
// return this.$u.toast(`请选择与助养对象关系`)
// }
// if (!this.form.assistanceMethod) {
// return this.$u.toast(`请选择助养方式`)
// }
// if (!this.form.details) {
// return this.$u.toast(`请输入详细描述`)
// }
// if (!this.form.assistanceIdNumber) {
// return this.$u.toast(`请输入助养人身份号码`)
// }
// if (!/^[1-9]\d{5}(19\d{2}|20[0-2]\d)(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\d{3}([0-9xX])$/.test(this.form.assistanceIdNumber)) {
// return this.$u.toast('请输入正确的助养人身份证号')
// }
// if (!this.form.handlingDate) {
// return this.$u.toast(`请选择办理日期`)
// }
this.searchChildrenName = this.form.assistanceName
this.getChildrenList()
},
getChildrenList() {
this.$http.post(`/mobile/supportRaise/findChildrenList`,
{
childName: this.searchChildrenName,
pageSize: 1000,
pageNum: 1,
divisionCode: this.user.divisionCode || ''
},
{
withoutToken: true
}).then((res) => {
if (res.code == 200 && res.data.rows?.length) {
res.data.rows.map((item) => {
item.isCheck = false
})
this.childrenList = res.data.rows
this.stepIndex ++
}else {
this.$u.toast(`未查询到有效的儿童信息,请输入正确的助养人姓名`)
}
})
},
toChildrenDetail(row) {
uni.navigateTo({url: `../AppChildrenInfo/AppChildrenDetail?id=`})
},
checkChildren(index) {
this.childrenList.map((item) => {
item.isCheck = false
})
this.childrenList[index].isCheck = true
this.checkChildrenInfo = this.childrenList[index]
},
validateSecond() {
if(this.checkChildrenInfo.childId) {
this.form.childType = this.checkChildrenInfo.childCategoryType
this.form.childBusinessId = this.checkChildrenInfo.childId
this.stepIndex ++
}else {
this.$u.toast(`请勾选助养儿童`)
}
},
validateThird() {
if(!this.filesId.length) {
return this.$u.toast(`请上传助养者身份证信息`)
}
if(this.filesId.length < 2) {
return this.$u.toast(`请上传助养者身份证正反面信息`)
}
if(!this.filesEconomy.length) {
return this.$u.toast(`请上传经济状况证明`)
}
this.filesId.map((item) => {
item.type = 1
})
this.filesEconomy.map((item) => {
item.type = 2
})
this.filesHealth.map((item) => {
item.type = 3
})
this.filesOther.map((item) => {
item.type = 4
})
this.form.assistanceInformationFile = this.filesId.concat(this.filesEconomy, this.filesHealth, this.filesOther)
this.stepIndex ++
},
confirm() {
this.$http.post(`/mobile/supportRaise/insert`,
{...this.form},
{
withoutToken: true
}).then((res) => {
if (res.code == 200) {
this.$u.toast('新增成功!')
uni.$emit('updateList')
setTimeout(() => {
uni.navigateBack()
}, 800)
}else {
this.$u.toast(res.msg)
}
})
},
pre() {
this.stepIndex --
}
@@ -197,6 +366,7 @@ uni-page-body {
background-color: #F5F6F7;
}
.AppRecognizeAdd {
padding-bottom: 324px;
.step-info {
width: 100%;
padding: 40px 32px 44px;
@@ -261,6 +431,7 @@ uni-page-body {
}
.form {
background-color: #fff;
.item {
display: flex;
padding-top: 16px;
@@ -306,6 +477,9 @@ uni-page-body {
.user-list {
padding: 24px 32px 0 32px;
box-sizing: border-box;
::v-deep .u-search {
margin-bottom: 32px!important;
}
.item {
width: 100%;
background: #FFF;
@@ -313,6 +487,7 @@ uni-page-body {
margin-bottom: 24px;
.item-top {
padding: 24px;
position: relative;
.title {
line-height: 48px;
font-family: PingFangSC-Medium;
@@ -328,15 +503,32 @@ uni-page-body {
font-size: 26px;
color: #666;
}
.check-img {
width: 48px;
height: 48px;
padding: 8px;
position: absolute;
top: 24px;
right: 32px;
}
}
.item-bottom {
padding: 14px 0 10px 24px;
height: 58px;
border-top: 1px solid #E4E5E6;
.time {
line-height: 48px;
position: relative;
.btn {
line-height: 58px;
font-family: PingFangSC-Regular;
font-size: 24px;
color: #999;
font-size: 28px;
color: #fff;
width: 98px;
text-align: center;
border-radius: 4px;
background-color: #2183FF;
position: absolute;
top: 14px;
right: 32px;
}
}
}
@@ -367,5 +559,6 @@ uni-page-body {
color: #fff;
}
}
}
</style>

View File

@@ -2,23 +2,102 @@
<section class="AppRecognizeDetail">
<u-tabs :list="tabList" :is-scroll="false" :current="tabIndex" @change="change" height="112" :bar-style="barStyle"
bg-color="#fff" inactive-color="#666" active-color="#222" :active-item-style="activeStyle"></u-tabs>
<div class="info-content">
<div class="info-content" v-if="!tabIndex">
<div class="item">
<div class="label">助养人姓名</div>
<div class="value">张珊珊</div>
<div class="value">{{info.assistanceName}}</div>
</div>
<div class="item">
<div class="label">助养人姓名</div>
<div class="value">张珊珊</div>
<div class="label">助养对象关系</div>
<div class="value">{{$dict.getLabel('relationship_children', info.relationshipWithChild)}}</div>
</div>
<div class="item">
<div class="label">助养人姓名</div>
<div class="value">张珊珊</div>
<div class="label">助养方式</div>
<div class="value">{{$dict.getLabel('handling_Date', info.assistanceMethod)}}</div>
</div>
<div class="item">
<div class="label">详细描述</div>
<div class="value">{{info.details}}</div>
</div>
<div class="item">
<div class="label">助养人身份证号</div>
<div class="value">{{info.assistanceIdNumber}}</div>
</div>
<div class="item">
<div class="label">办理日期</div>
<div class="value">{{info.handlingDate}}</div>
</div>
</div>
<div class="footer-btn">
<div class="btn primary" @click="toList()">下一步</div>
<div class="btn">返回</div>
<div class="info-content" v-if="tabIndex == 1">
<div class="item">
<div class="label">儿童姓名</div>
<div class="value">{{info.assistanceName}}</div>
</div>
<div class="item">
<div class="label">身份证号</div>
<div class="value">{{info.assistanceIdNumber}}</div>
</div>
<div class="item">
<div class="label">儿童类别</div>
<div class="value">{{$dict.getLabel('CHILD_CATEGORY_CODE', info.childType)}}</div>
</div>
<div class="item">
<div class="label">出生年月</div>
<div class="value">{{info.birthDate}}</div>
</div>
</div>
<div class="info-content" v-if="tabIndex == 2">
<div class="item">
<div class="label">助养者身份证信息</div>
<div class="value">
<!-- <AiUploader style="margin-top: 12px;" :def.sync="filesId" :disabled="true"></AiUploader> -->
<div class="img-list" v-if="filesId.length">
<img :src="item.filePath" alt="" v-for="(item, index) in filesId" :key="index" @click.stop="previewImages(filesId, item.filePath)">
</div>
<p v-else>暂无数据</p>
</div>
</div>
<div class="item">
<div class="label">助养者经济状况证明</div>
<div class="value">
<div class="img-list" v-if="filesEconomy.length">
<img :src="item.filePath" alt="" v-for="(item, index) in filesEconomy" :key="index" @click.stop="previewImages(filesEconomy, item.filePath)">
</div>
<p v-else>暂无数据</p>
</div>
</div>
<div class="item">
<div class="label">助养者健康状况</div>
<div class="value">
<div class="img-list" v-if="filesHealth.length">
<img :src="item.filePath" alt="" v-for="(item, index) in filesHealth" :key="index" @click.stop="previewImages(filesHealth, item.filePath)">
</div>
<p v-else>暂无数据</p>
</div>
</div>
<div class="item">
<div class="label">其他材料</div>
<div class="value">
<div class="img-list" v-if="filesOther.length">
<img :src="item.filePath" alt="" v-for="(item, index) in filesOther" :key="index" @click.stop="previewImages(filesOther, item.filePath)">
</div>
<p v-else>暂无数据</p>
</div>
</div>
</div>
<div class="info-content" v-if="tabIndex == 3">
<div class="item">
<div class="label">办理人</div>
<div class="value">{{info.agentId}}</div>
</div>
<div class="item">
<div class="label">办理人联系电话</div>
<div class="value">{{info.agentPhone}}</div>
</div>
<div class="item">
<div class="label">办理机构</div>
<div class="value">{{info.agency}}</div>
</div>
</div>
</section>
</template>
@@ -41,9 +120,15 @@ export default {
'font-weight' : '400',
'color': '#222'
},
id: '',
info: {},
filesId: [], //身份证照片
filesEconomy: [], //经济状况证明
filesHealth: [], //健康证明
filesOther: [], //其它
}
},
onLoad() {
onLoad(option) {
uni.setNavigationBarColor({
frontColor: '#ffffff',
backgroundColor: '#2183FF'
@@ -51,6 +136,11 @@ export default {
uni.setNavigationBarTitle({
title: '认亲助养'
})
this.id = option.id
this.$dict.load(['handling_Date', 'relationship_children', 'CHILD_CATEGORY_CODE']).then(() => {
this.getDetail()
})
},
methods: {
linkTo(url) {
@@ -58,7 +148,41 @@ export default {
},
change(e) {
this.tabIndex = e
}
},
getDetail() {
this.$http.get(`/mobile/supportRaise/findById/${this.id}`,
{
withoutToken: true
}).then((res) => {
if (res.code == 200) {
this.info = {...res.data}
res.data.assistanceInformationFile.map((item) => {
item.url = item.filePath
if(item.type == 1) {
this.filesId.push(item)
}
if(item.type == 2) {
this.filesEconomy.push(item)
}
if(item.type == 3) {
this.filesHealth.push(item)
}
if(item.type == 4) {
this.filesOther.push(item)
}
})
console.log(this.filesId)
}else {
this.$u.toast(res.msg)
}
})
},
previewImages(images, img) {
uni.previewImage({
urls: images.map(v => v.filePath),
current: img
})
},
},
}
</script>
@@ -93,6 +217,22 @@ uni-page-body {
font-size: 28px;
color: #222;
border-bottom: 1px solid #E4E5E6;
.img-list {
img {
width: 200px;
height: 200px;
margin-right: 16px;
margin-bottom: 16px;
}
img:nth-child(3n) {
margin-right: 0;
}
}
p {
color: #999;
line-height: 44px;
padding: 8px 0;
}
}
}
}

View File

@@ -6,24 +6,23 @@
<div class="item-content">
<div class="label">{{navName == '个人助养' ? '助养人名称' : '助养方名称'}}</div>
<div class="value">
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="value" maxlength="10"/>
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="assistanceName" maxlength="10"/>
</div>
</div>
</div>
<div class="item" v-if="navName == '个人助养'">
<!-- <div class="item" v-if="navName == '个人助养'">
<span class="requier">*</span>
<div class="item-content">
<div class="label">助养人身份证号</div>
<div class="value">
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="value" maxlength="10"/>
<u-input type="text" placeholder="请输入" placeholder-style="color:#999;font-size:14px;" height="40" v-model="assistanceIdNumber" maxlength="18"/>
</div>
</div>
</div>
</div> -->
</div>
<div class="footer-btn">
<div class="btn primary" v-if="navName == '个人助养'">扫描助养人身份证</div>
<div class="btn primary" @click="toList()">查询</div>
<div class="btn">返回</div>
<div class="btn" @click="back">返回</div>
</div>
</section>
</template>
@@ -34,7 +33,8 @@ export default {
appName: "查询个人助养",
data() {
return {
value: '',
assistanceName: '',
assistanceIdNumber: '',
navName: ''
}
},
@@ -50,7 +50,17 @@ export default {
},
methods: {
toList() {
uni.navigateTo({url: './AppRecognizeSearchList'})
if(!this.assistanceName) {
return this.$u.toast(this.navName == '个人助养' ? '请输入助养人名称' : '请输入助养方名称')
}
// if(this.navName == '个人助养' && !this.assistanceIdNumber) {
// return this.$u.toast('请输入助养人身份证号')
// }
var assistanceMethod = this.navName == '个人助养' ? 2 : 1
uni.navigateTo({url: `./AppRecognizeSearchList?assistanceName=${this.assistanceName}&assistanceMethod=${assistanceMethod}`})
},
back() {
uni.navigateBack()
}
},
}

View File

@@ -1,24 +1,14 @@
<template>
<section class="AppRecognizeSearchList">
<div class="user-list">
<div class="item" @click="toDetail()">
<div class="item" v-for="(item, index) in list" :key="index" @click="toDetail(item)">
<div class="item-top">
<div class="title">助养方王微微</div>
<div class="info">助养对象张珊珊李思思等被助养人</div>
<div class="info">相信描述衣服物件鞋子无双资金500000元</div>
<div class="title">助养方{{item.sponsorName}}</div>
<div class="info">助养对象{{item.sponsoredChildName}}</div>
<div class="info">相信描述{{item.details}}</div>
</div>
<div class="item-bottom">
<div class="time">2023-09-10</div>
</div>
</div>
<div class="item">
<div class="item-top">
<div class="title">助养方王微微</div>
<div class="info">助养对象张珊珊李思思等被助养人</div>
<div class="info">相信描述衣服物件鞋子无双资金500000元</div>
</div>
<div class="item-bottom">
<div class="time">2023-09-10</div>
<div class="time">{{item.processingDate}}</div>
</div>
</div>
</div>
@@ -26,15 +16,24 @@
</template>
<script>
import {mapState} from 'vuex'
export default {
name: "AppRecognizeSearchList",
appName: "查询认亲助养",
data() {
return {
assistanceName: '',
assistanceIdNumber: '',
assistanceMethod: '',
current: 1,
pageTotal: 2,
list: []
}
},
onLoad() {
computed: {
...mapState(['user']),
},
onLoad(option) {
uni.setNavigationBarColor({
frontColor: '#ffffff',
backgroundColor: '#2183FF'
@@ -42,15 +41,41 @@ export default {
uni.setNavigationBarTitle({
title: '查询认亲助养'
})
this.assistanceName = option.assistanceName
// this.assistanceIdNumber = option.assistanceIdNumber
this.assistanceMethod = option.assistanceMethod
this.getList()
},
methods: {
linkTo(url) {
uni.navigateTo({url})
toDetail(row) {
uni.navigateTo({url: `./AppRecognizeDetail?id=${row.id}`})
},
toDetail() {
uni.navigateTo({url: `./AppRecognizeDetail`})
getList() {
if(this.current > this.pageTotal) return
this.$http.post(`/mobile/supportRaise/findListPage`,
{
sponsorName: this.assistanceName,
sponsorshipMethod: this.sponsorshipMethod,
pageNum: this.current,
pageSize: 10,
divisionCode: this.user.divisionCode || ''
},
{
withoutToken: true
}).then((res) => {
if (res.code == 200) {
this.list = this.current > 1 ? [...this.datas, ...res.data.rows] : res.data.rows
this.pageTotal = Math.ceil(res.data.total/10)
}else {
this.$u.toast(res.msg)
}
})
}
},
onReachBottom() {
this.current++
this.getList()
}
}
</script>