Commit c53f2faf authored by gengchunlei's avatar gengchunlei

居民端小程序 v1.2 通用随访字段 逻辑处理调整

parent 196ee02e
......@@ -532,17 +532,20 @@ export default {
const {
personId,
visitWay,
visitWayRules,
visitWayRules ,
groupsArrays,
sendNumber,
...others
} = this.form
let par = {
visitWay,
visitWayRules,
groupsArrays,
sendNumber,
residentInfoId: this.form.residentInfoId,
residentsRecord: {
...others,
groupsArrays: this.info.groupsArrays,
id: this.form.personId
}
}
......
......@@ -251,8 +251,25 @@ export default {
onSubmit() {
return new Promise((resolve, reject) => {
this.$refs.form.validate().then(() => {
const { isSmsIsWx = [], ...others} = this.form
let isSms = 2
let isWx = 2
let wxTel = ''
if (isSmsIsWx.length && this.showPush) {
if (isSmsIsWx.includes(1)) {
isWx = 1
wxTel = this.modeEnumList.weixinTel
}
if (isSmsIsWx.includes(2)) {
isSms = 1
}
}
let par = {
...this.form
...others,
isSms,
isWx,
isSmsIsWx,
sendNumber: wxTel,
}
resolve(par)
}).catch((e) => {
......
......@@ -25,27 +25,77 @@
class='input-back mt-2 form-input'
/>
</div>
<!-- 健康指导-->
<!-- 健康指导-->
<div v-if='showTwo'>
<div class='flex justify-between items-center mt-5'>
<div class='label-title '>健康指导</div>
<van-button class='doc-btn-p' @click='toShowTem(1)'>选择内容</van-button>
</div>
<div class='mt-2'>
<GuideTextVideo :file-type="[1]"
:info="form.guide"
<div class='health mt-2'>
<GuideTextVideo :file-type='[1]'
:info='form.guide'
:content-title="'指导内容'"
:classify="1"
ref="guideRef"></GuideTextVideo>
:classify='1'
ref='guideRef'></GuideTextVideo>
</div>
</div>
<!-- 宣教内容-->
<!-- 宣教内容-->
<div v-if='showThree'>
<div class='flex justify-between items-center mt-5'>
<div class='label-title '>宣教内容</div>
<van-button class='doc-btn-p' @click='toShowTem(2)'>选择内容</van-button>
</div>
<div class='health mt-2'>
<div class='health-cell mt-2'>
<div class='no-req-label'>健康宣教</div>
<van-field
v-model='form.publicizeTypeName'
readonly
is-link
placeholder='请选择'
class='input-back mt-2 form-input'
@click='showPublicizeType= true'
>
<template #input>
<span class='text-end'>{{ form.publicizeTypeName }}</span>
</template>
</van-field>
<van-popup v-model:show='showPublicizeType' position='bottom'>
<div class='p-4'>
<div class='flex justify-between mb-4'>
<div class='greyColor' @click='showPublicizeType = false'>取消</div>
<div class='blueColor' @click='publicizeTypeConfirm'>确认</div>
</div>
<CheckBtn multiple column-3 :options="store.getDict('DC00091')"
v-model:value='checkPublicizeType'
:fieldNames="{text: 'name', value: 'value'}"
/>
</div>
</van-popup>
</div>
<div v-if='form?.publicizeType?.includes(1)'>
<GuideTextVideo :file-type='[1]'
:info='form.publicize'
:content-title="'文本内容'"
:classify='2'
ref='contentOne'></GuideTextVideo>
</div>
<div v-if='form?.publicizeType?.includes(2)'>
<GuideTextVideo :file-type='[2]'
:info='form.publicize'
:classify='2'
ref='contentTwo'></GuideTextVideo>
</div>
<div v-if='form?.publicizeType?.includes(3)'>
<GuideTextVideo :file-type='[3]'
:info='form.publicize'
:classify='2'
ref='contentThree'></GuideTextVideo>
</div>
</div>
</div>
<!-- 催检-->
......@@ -119,7 +169,7 @@
</div>
</van-form>
<div>
<div v-if='showTem'>
<temList :show='showTem' @closed='closedTem' @selectRecord='getSelectTem'></temList>
</div>
</div>
......@@ -129,16 +179,17 @@
import { useStore } from '@/resident/store'
import dayjs from 'dayjs'
import DocIcon from '@/components/docIcon/DocIcon'
import { showToast } from 'vant'
import { fetchDataHandle } from '@/utils/common'
import { showFailToast, showToast } from 'vant'
import { fetchDataHandle, uniqueArr } from '@/utils/common'
import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload'
import TemList from '@/doctor/components/template/temList'
import { getTemplateDetail } from '@/api/doctor/workbench'
import GuideTextVideo from '@/doctor/followUp/generalFU/form/GuideTextVideo'
import CheckBtn from '@/doctor/components/checkBtn/CheckBtn'
export default {
name: 'GeneralFUForm',
components: { GuideTextVideo, TemList, DocImageUpload, DocIcon },
components: { CheckBtn, GuideTextVideo, TemList, DocImageUpload, DocIcon },
props: {
info: {
default: () => {
......@@ -163,6 +214,8 @@ export default {
showDate: false,
showTime1: false,
showTem: false,
showPublicizeType: false,
checkPublicizeType: [],
currentTime1: null,
citeInfo: 1,
rules: {
......@@ -238,35 +291,47 @@ export default {
this.currentTime1 = time.split('-')
},
methods: {
setForm(info = {}) {
const modeArray = this.store.getDict('DC00084')
let visitHealthGuideList = []
if (info.healthGuideContent) {
visitHealthGuideList = JSON.parse(info.healthGuideContent)
setForm(data = {}) {
let info = fetchDataHandle(data, {
visitWayRules: 'strToArrNum',
groupsArrays: 'strToArrNum',
publicizeType: 'strToArrNum',
})
let isSmsIsWx = []
if (info.id) {
const {isSms, isWx} = info
if (isSms == 1) {
isSmsIsWx = [1]
}
if (isWx == 1) {
isSmsIsWx = [2]
}
if (isSms == 1 && isWx == 1) {
isSmsIsWx = [1, 2]
}
} else {
isSmsIsWx = [1]
}
const form = {
id: info.id,
diseaseType: info.diseaseType,
groupsArrays: info.groupsArrays,
visitDate: info.visitDate || new dayjs(),
nextVisitDate: info.nextVisitDate || new dayjs().add(1, 'day').format('YYYY-MM-DD'),
nextVisitDate: info.nextVisitDate,
visitWay: info.visitWay || 1,
isSms: info.isSms,
isWx: info.isWx,
screenTime: new dayjs().add(1, 'day').format('YYYY-MM-DD'),
isSmsIsWx: isSmsIsWx,
visitContent: info.visitContent,
disposalOpinion: info.disposalOpinion,
uploadVisitRecord: info.uploadVisitRecord,
sceneVisitImage: info.sceneVisitImage,
screenTime: info.screenTime || new dayjs().add(1, 'day').format('YYYY-MM-DD HH'),
sendInfo: info.sendInfo,
visitHealthGuideList: modeArray.map(e => {
const item = visitHealthGuideList.find(i => i.templateMode === e.value)
return {
templateMode: e.value,
name: e.name,
templateContent: item ? item.templateContent : '',
id: item ? item.visitId : ''
}
})
publicizeType: info.publicizeType,
guide: info.guide || {},
publicize: info.publicize || {},
}
return form
},
......@@ -280,7 +345,7 @@ export default {
this.showTime1 = false
},
toShowTem(val) {
this.citeInfo =val
this.citeInfo = val
this.showTem = true
},
closedTem(val) {
......@@ -291,32 +356,313 @@ export default {
if (val) {
let par = { id: val }
let result = await getTemplateDetail(par)
const { data } = result
//健康指导
if (this.citeInfo == 1) {
} else { //宣教内容
if (this.showTwo && this.citeInfo == 1) {
this.setGuide(data)
}
//宣教内容
if (this.showThree && this.citeInfo == 2) {
this.setPublicize(data)
}
}
},
publicizeTypeConfirm() {
let res = []
this.store.getDict('DC00091').forEach(item => {
let selected = this.checkPublicizeType.filter(i => i == item.value)
if (selected && selected.length) {
res.push(item.name)
}
})
if (this.checkPublicizeType && this.checkPublicizeType.length) {
this.form.publicizeType = this.checkPublicizeType.join()
this.form.publicizeTypeName = res.join()
}
this.showPublicizeType = false
},
//健康指导模板赋值
async setGuide(val = {}) {
//获取上一次的值
let lastObj = {
contentList: [],
drugsList: []
}
let obj = await this.$refs.guideRef.getForm()
lastObj = {
contentList: obj.contentList,
drugsList: obj.drugsList
}
//重新赋值
let resObj = {
contentList: [],
drugsList: []
}
if (lastObj.contentList && lastObj.contentList.length) {
resObj.contentList = [...lastObj.contentList]
}
if (lastObj.drugsList && lastObj.drugsList.length) {
resObj.drugsList = [...lastObj.drugsList]
}
//判断模板文本是否选中 并赋值
if (val.contentList) {
//文本内容区域存在 初始值 后面选中的模板内容需要拼接在初始值后面
if (lastObj.contentList && lastObj.contentList.length) {
//合并相同的文本选项内容
resObj.contentList.forEach(item => {
val.contentList.forEach(vitem => {
if (item.templateMode != 5 && item.templateMode == vitem.templateMode) {
item.templateContent = item.templateContent ? item.templateContent + `\n` + vitem.templateContent : vitem.templateContent
}
})
})
//去掉 返回的val中与合并后相同的文本
resObj.contentList.forEach(item => {
let reIndex = val.contentList.findIndex(vitem => vitem.templateMode == item.templateMode)
if (reIndex != -1) {
val.contentList.splice(reIndex, 1)
}
})
//合并剩余的val.contentList到 resObj.contentList中
resObj.contentList = [...resObj.contentList, ...val.contentList]
//合并药物指导
//判断之前是否存在药物指导
if (lastObj.drugsList && lastObj.drugsList.length) {
//获取之前药物指导的最大_id的值
let rowId = 0
rowId = Math.max.apply(null, lastObj.drugsList.map(item => Number(item._id)))
val.drugsList.forEach((item, index) => {
item.id = ''
item._id = rowId + index + 1
})
//合并
resObj.drugsList = [...resObj.drugsList, ...val.drugsList]
} else {
resObj.drugsList = [...val.drugsList]
}
} else {
if (val.contentList) {
resObj.contentList = [...val.contentList]
resObj.drugsList = [...val.drugsList]
}
}
} else {
//模板未选中文本 赋初始值
if (lastObj.contentList && lastObj.contentList.length) {
resObj.contentList = [...lastObj.contentList]
}
}
console.log('resObj', resObj)
this.form.guide = resObj
},
//宣教内容模板赋值
async setPublicize(val = {}) {
//获取上一次的值
let lastObj = {
annexList: [],
contentList: [],
drugsList: []
}
//文本
if (this.form?.publicizeType?.includes(1)) {
let obj1 = await this.$refs.contentOne.getForm()
lastObj = {
annexList: [],
contentList: obj1.contentList,
drugsList: obj1.drugsList
}
}
//音频
if (this.form?.publicizeType?.includes(2)) {
let obj2 = await this.$refs.contentTwo.getForm()
let list = obj2.annexList.filter(item => item.type == 2)
lastObj = {
...lastObj,
annexList: list
}
}
//视频
if (this.form?.publicizeType?.includes(3)) {
let obj3 = await this.$refs.contentThree.getForm()
let list = obj3.annexList.filter(item => item.type == 3)
lastObj = {
...lastObj,
annexList: [...lastObj.annexList, ...list]
}
}
//重新赋值
console.log('json', val)
let resObj = {
annexList: [],
contentList: [],
drugsList: []
}
const { publicizeType = [], publicize = {} } = this.form
if (lastObj.annexList && lastObj.annexList.length) {
resObj.annexList = [...lastObj.annexList]
}
if (lastObj.contentList && lastObj.contentList.length) {
resObj.contentList = [...lastObj.contentList]
}
if (lastObj.drugsList && lastObj.drugsList.length) {
resObj.drugsList = [...lastObj.drugsList]
}
//文本
if (publicizeType.includes(1)) {
//判断模板文本是否选中 并赋值
if (val.contentList) {
//文本内容区域存在 初始值 后面选中的模板内容需要拼接在初始值后面
if (lastObj.contentList && lastObj.contentList.length) {
//合并相同的文本选项内容
resObj.contentList.forEach(item => {
val.contentList.forEach(vitem => {
if (item.templateMode != 5 && item.templateMode == vitem.templateMode) {
item.templateContent = item.templateContent ? item.templateContent + `\n` + vitem.templateContent : vitem.templateContent
}
})
})
//去掉 返回的val中与合并后相同的文本
resObj.contentList.forEach(item => {
let reIndex = val.contentList.findIndex(vitem => vitem.templateMode == item.templateMode)
if (reIndex != -1) {
val.contentList.splice(reIndex, 1)
}
})
//合并剩余的val.contentList到 resObj.contentList中
resObj.contentList = [...resObj.contentList, ...val.contentList]
//合并药物指导
//判断之前是否存在药物指导
if (lastObj.drugsList && lastObj.drugsList.length) {
//获取之前药物指导的最大_id的值
let rowId = 0
rowId = Math.max.apply(null, lastObj.drugsList.map(item => Number(item._id)))
val.drugsList.forEach((item, index) => {
item.id = ''
item._id = rowId + index + 1
})
//合并
resObj.drugsList = [...resObj.drugsList, ...val.drugsList]
} else {
resObj.drugsList = [...val.drugsList]
}
} else {
if (val.contentList) {
resObj.contentList = [...val.contentList]
resObj.drugsList = [...val.drugsList]
}
}
} else {
//模板未选中文本 赋初始值
if (lastObj.contentList && lastObj.contentList.length) {
resObj.contentList = [...lastObj.contentList]
}
}
}
//音频
if (publicizeType.includes(2)) {
//判断模板音频是否选中 并赋值
let mp3List = val.annexList.filter(item => item.type == 2) || []
if (mp3List && mp3List.length) {
if (resObj.annexList && resObj.annexList.length) {
let rowId = 0
rowId = Math.max.apply(null, resObj.annexList.map(item => Number(item.annexId)))
mp3List.forEach((item, index) => {
item['annexId'] = rowId + index + 1
resObj.annexList.push(item)
})
} else {
resObj.annexList = [...mp3List]
}
}
}
//视频
if (publicizeType.includes(3)) {
//判断模板视频是否选中 并赋值
let mp4List = val.annexList.filter(item => item.type == 3) || []
if (mp4List && mp4List.length) {
if (resObj.annexList && resObj.annexList.length) {
let rowId = 0
rowId = Math.max.apply(null, resObj.annexList.map(item => Number(item.annexId)))
mp4List.forEach((item, index) => {
item['annexId'] = rowId + index + 1
resObj.annexList.push(item)
})
} else {
resObj.annexList = [...mp4List]
}
}
}
//对视频音频去重
resObj.annexList = uniqueArr(resObj.annexList, 'relativeUrl')
this.form.publicize = resObj
},
onSubmit() {
return new Promise((resolve, reject) => {
this.$refs.form.validate().then(() => {
if (this.imgList.length > 6 || this.imgList2.length > 8) {
return
}
let time = dayjs(this.form.screenTime).format('YYYY-MM-DD')
let content = `${this.modeEnumList.urgeResidentShow ? `${this.firstForm.residentsRecord.residentName}先生/女士,` : `您好,`}请您于${time}${this.authInfo.unitName}进行专病高危筛查/慢病复查,祝早日恢复健康!`
let par = {
img1: this.imgList || [],
img2: this.imgList2 || [],
imgInput1: this.imgInputList1,
imgInput2: this.imgInputList2,
...this.form,
this.$refs.form.validate().then(async () => {
let time = dayjs(this.form.screenTime).format('YYYY-MM-DD HH:00:00')
let content = `${this.modeEnumList?.urgeResidentShow ? `${this.firstForm?.residentsRecord?.residentName}先生/女士,` : `您好,`}请您于${time}${this.authInfo.unitName}进行专病高危筛查/慢病复查,祝早日恢复健康!`
let res = {
...this.form,
urgentInsContent: content,
healthGuideContent: JSON.stringify(this.form.visitHealthGuideList)
}
resolve(par)
//健康指导
if (this.showTwo) {
let obj = await this.$refs.guideRef.submit()
res.guide = {
contentList: obj.contentList,
drugsList: obj.drugsList
}
}
//宣教内容
if (this.showThree) {
let resObj = {
annexList: [],
contentList: [],
drugsList: [],
}
//文本
if (this.form?.publicizeType?.includes(1)) {
let obj1 = await this.$refs.contentOne.submit()
resObj = {
annexList: [],
contentList: obj1.contentList,
drugsList: obj1.drugsList
}
}
//音频
if (this.form?.publicizeType?.includes(2)) {
let obj2 = await this.$refs.contentTwo.submit()
let list = obj2.annexList.filter(item => item.type == 2)
if (!list.length) {
showFailToast('请上传音频')
return
}
resObj = {
...resObj,
annexList: list
}
}
//视频
if (this.form?.publicizeType?.includes(3)) {
let obj3 = await this.$refs.contentThree.submit()
let list = obj3.annexList.filter(item => item.type == 3)
if (!list.length) {
showFailToast('请上传视频')
return
}
resObj = {
...resObj,
annexList: [...resObj.annexList, ...list]
}
}
res.publicize = {
...resObj
}
}
resolve(res)
}).catch((e) => {
console.warn('generaFu error', e)
// reject(e)
......@@ -475,6 +821,9 @@ export default {
text-align: left;
}
:deep(.van-popup) {
min-height: 30% !important;
}
</style>
<style lang='less'>
......@@ -493,4 +842,5 @@ export default {
.van-swipe-item {
width: 100% !important;
}
</style>
\ No newline at end of file
......@@ -2,8 +2,7 @@
<van-form ref='form'
class='grow flex flex-col' style='min-height: 1px;flex-wrap: nowrap;'>
<div class='flex flex-col' v-if='fileType?.includes(1)'>
<div class='health mt-2'>
<div>
<!-- 无选项-->
<div class='health-cell mt-2' v-for="item in form.contentList.filter(e => e.templateModeTrans == '无')">
<div class='no-req-label'>{{ contentTitle }}</div>
......@@ -18,36 +17,37 @@
</div>
<!-- 更多选项-->
<div class='health-cell mt-2'>
<div class='no-req-label'>更多{{ contentTitle }}</div>
<van-field
v-model='form.contentSelectName'
readonly
is-link
placeholder='请选择'
class='input-back mt-2 form-input'
:rules='rules.contentSelectName'
@click='showContentSelect= true'
>
<template #input>
<span class='text-end'>{{ form.contentSelectName }}</span>
</template>
</van-field>
<van-popup v-model:show='showContentSelect' position='bottom'>
<div class='p-4'>
<div class='flex justify-between mb-4'>
<div class='greyColor' @click='showContentSelect = false'>取消</div>
<div class='blueColor' @click='contentSelectConfirm'>确认</div>
<div class='no-req-label'>更多{{ contentTitle }}</div>
<van-field
v-model='form.contentSelectName'
readonly
is-link
placeholder='请选择'
class='input-back mt-2 form-input'
:rules='rules.contentSelectName'
@click='showContentSelect= true'
>
<template #input>
<span class='text-end'>{{ form.contentSelectName }}</span>
</template>
</van-field>
<van-popup v-model:show='showContentSelect' position='bottom'>
<div class='p-4'>
<div class='flex justify-between mb-4'>
<div class='greyColor' @click='showContentSelect = false'>取消</div>
<div class='blueColor' @click='contentSelectConfirm'>确认</div>
</div>
<CheckBtn multiple column-2 :options='contentArray' v-model:value='checkContentSelect'
:fieldNames="{text: 'name', value: 'value'}" />
</div>
<CheckBtn multiple column-2 :options='contentArray' v-model:value='checkContentSelect'
:fieldNames="{text: 'name', value: 'value'}" />
</div>
</van-popup>
</van-popup>
</div>
<div class='health-cell mt-2' v-for="item in form.contentList.filter(e => e.templateModeTrans != '无')">
<template v-if='item.templateMode === 5'>
<div class='no-req-label'>药物指导</div>
<div v-for='(item, index) in form.drugsList' :key='item._id' :style="{marginTop: index == 0 ? '0': '.16rem'}">
<div v-for='(item, index) in form.drugsList' :key='item._id'
:style="{marginTop: index == 0 ? '0': '.16rem'}">
<div class='text-driver' v-if='index'></div>
<DocDrug v-model:value='item.drugsCode' placeholder='拼音码查询药品'
:valueName="selectData.drugsList ? selectData.drugsList[index]?.helpCode : ''"
......@@ -152,15 +152,20 @@
@play='e => activeMediaUrl = e.annexUrl'
remove
@onRemove='getMP3RemoveInfo'
class='mt-2'
/>
</div>
</div>
<div v-if='fileType.includes(3)' class='w-full'>
<Mp4 :files='_video' :activeMediaUrl='activeMediaUrl'
@play='e => activeMediaUrl = e.annexUrl'
remove
@onRemove='getMP4RemoveInfo'
/>
<div class='health-cell mt-2'>
<div class='no-req-label'>视频</div>
<Mp4 :files='_video' :activeMediaUrl='activeMediaUrl'
@play='e => activeMediaUrl = e.annexUrl'
remove
@onRemove='getMP4RemoveInfo'
class='mt-2'
/>
</div>
</div>
</van-form>
......@@ -286,18 +291,37 @@ export default {
]
let infoC = info.contentList || []
//判断父组件的数据里是否存在 无 的选项
let resList = infoC.filter(item => item.templateMode !=1)
let resList = infoC.filter(item => item.templateMode != 1)
if (!resList.length) {
contentList = [...initC, ...infoC]
contentList = [...initC, ...infoC]
} else {
contentList = [...infoC]
contentList = [...infoC]
}
const drugsList = info?.drugsList?.length ? info.drugsList.map(e => {
if (e.id) {
e._id = e.id
e.doseUnitName = this.store.getDictValue(this.store.getDict('CP00081'), e.doseUnit)
e.frequencyName = this.store.getDictValue(this.store.getDict('CP00084'), e.frequency)
e.usageMethodName = this.store.getDictValue(this.store.getDict('CP00083'), e.usageMethod)
}
return e
}) : []
//给更多内容赋值
let contentSelectName = ''
let contentSelectNameList = []
this.checkContentSelect = []
contentList.forEach(item => {
if (item.templateMode !=1) {
this.checkContentSelect.push(item.templateMode)
contentSelectNameList.push(item.templateModeTrans)
}
if (contentSelectNameList && contentSelectNameList.length) {
contentSelectName = contentSelectNameList.join()
}
})
const form = {
id: info.id,
templateType: info.templateType,
......@@ -313,7 +337,8 @@ export default {
// 存放上传后返回的id
_video: JSON.parse(JSON.stringify(info._video || [])),
_audio: JSON.parse(JSON.stringify(info._audio || [])),
drugSelect: 1
drugSelect: 1,
contentSelectName: contentSelectName,
}
return form
},
......@@ -457,7 +482,7 @@ export default {
const drugsList = query.drugsList
let str = ''
drugsList.forEach(e => {
str = `药品名:${e.drugsName} 剂量:${e.dose} ${this.$dictValue('CP00081', e.doseUnit)} 频次:${this.$dictValue('CP00084', e.frequency)} 用法:${this.$dictValue('CP00083', e.usageMethod)}\n` + str
str = `药品名:${e.drugsName} 剂量:${e.dose} ${this.store.getDictValue('CP00081', e.doseUnit)} 频次:${this.store.getDictValue('CP00084', e.frequency)} 用法:${this.store.getDictValue('CP00083', e.usageMethod)}\n` + str
})
item.templateContent = str
}
......@@ -499,7 +524,7 @@ export default {
const drugsList = query.drugsList
let str = ''
drugsList.forEach(e => {
str = `药品名:${e.drugsName} 剂量:${e.dose} ${this.$dictValue('CP00081', e.doseUnit)} 频次:${this.$dictValue('CP00084', e.frequency)} 用法:${this.$dictValue('CP00083', e.usageMethod)}\n` + str
str = `药品名:${e.drugsName} 剂量:${e.dose} ${this.store.getDictValue('CP00081', e.doseUnit)} 频次:${this.store.getDictValue('CP00084', e.frequency)} 用法:${this.store.getDictValue('CP00083', e.usageMethod)}\n` + str
})
item.templateContent = str
}
......
......@@ -186,6 +186,7 @@ export default {
this.modeEnumList = getModeEnum(this.info)
},
async toNext(val) {
window.scrollTo(0, 0)
if (val == 2) {
this.firstForm = await this.$refs.baseInfo.onSubmit()
}
......@@ -224,33 +225,10 @@ export default {
let baseInfo = await this.$refs.baseInfo.onSubmit()
let generalFUForm = await this.$refs.generalFUForm.onSubmit()
let commonBottom = await this.$refs.commonBottom.onSubmit()
let imgInput1List = []
let imgInput2List = []
let uploadVisitRecord = ''
let sceneVisitImage = ''
//图片上传
if (generalFUForm.imgInput1.length) {
imgInput1List = await this.upload(generalFUForm.imgInput1)
}
if (generalFUForm.imgInput2.length) {
imgInput2List = await this.upload(generalFUForm.imgInput2)
}
if (generalFUForm.img1.length) {
let img1List = this.baseImgHandle(generalFUForm.img1)
let lsit1 = [...imgInput1List, ...img1List]
uploadVisitRecord = Array.from(new Set(lsit1)).join()
}
if (generalFUForm.img2.length) {
let img2List = this.baseImgHandle(generalFUForm.img2)
let lsit2 = [...imgInput2List, ...img2List]
sceneVisitImage = Array.from(new Set(lsit2)).join()
}
let params = {
...baseInfo,
...generalFUForm,
...commonBottom,
uploadVisitRecord,
sceneVisitImage,
...baseInfo,
source: 2
}
if (this.info.id) {
......
......@@ -286,4 +286,18 @@ export function isResidentInfo() {
res = true
}
return res
}
//一维数组去重
export function uniqueArr(arr =[], key= '') {
let res = []
if (key) {
arr.forEach(item => {
let tmp = res.filter(i => i[key] == item[key])
if (!tmp.length) {
res.push(item)
}
})
}
return res
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment