Commit c53f2faf authored by gengchunlei's avatar gengchunlei

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

parent 196ee02e
...@@ -532,17 +532,20 @@ export default { ...@@ -532,17 +532,20 @@ export default {
const { const {
personId, personId,
visitWay, visitWay,
visitWayRules, visitWayRules ,
groupsArrays,
sendNumber, sendNumber,
...others ...others
} = this.form } = this.form
let par = { let par = {
visitWay, visitWay,
visitWayRules, visitWayRules,
groupsArrays,
sendNumber, sendNumber,
residentInfoId: this.form.residentInfoId, residentInfoId: this.form.residentInfoId,
residentsRecord: { residentsRecord: {
...others, ...others,
groupsArrays: this.info.groupsArrays,
id: this.form.personId id: this.form.personId
} }
} }
......
...@@ -251,8 +251,25 @@ export default { ...@@ -251,8 +251,25 @@ export default {
onSubmit() { onSubmit() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.$refs.form.validate().then(() => { 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 = { let par = {
...this.form ...others,
isSms,
isWx,
isSmsIsWx,
sendNumber: wxTel,
} }
resolve(par) resolve(par)
}).catch((e) => { }).catch((e) => {
......
...@@ -25,27 +25,77 @@ ...@@ -25,27 +25,77 @@
class='input-back mt-2 form-input' class='input-back mt-2 form-input'
/> />
</div> </div>
<!-- 健康指导--> <!-- 健康指导-->
<div v-if='showTwo'> <div v-if='showTwo'>
<div class='flex justify-between items-center mt-5'> <div class='flex justify-between items-center mt-5'>
<div class='label-title '>健康指导</div> <div class='label-title '>健康指导</div>
<van-button class='doc-btn-p' @click='toShowTem(1)'>选择内容</van-button> <van-button class='doc-btn-p' @click='toShowTem(1)'>选择内容</van-button>
</div> </div>
<div class='health mt-2'>
<div class='mt-2'> <GuideTextVideo :file-type='[1]'
<GuideTextVideo :file-type="[1]" :info='form.guide'
:info="form.guide"
:content-title="'指导内容'" :content-title="'指导内容'"
:classify="1" :classify='1'
ref="guideRef"></GuideTextVideo> ref='guideRef'></GuideTextVideo>
</div> </div>
</div> </div>
<!-- 宣教内容--> <!-- 宣教内容-->
<div v-if='showThree'> <div v-if='showThree'>
<div class='flex justify-between items-center mt-5'> <div class='flex justify-between items-center mt-5'>
<div class='label-title '>宣教内容</div> <div class='label-title '>宣教内容</div>
<van-button class='doc-btn-p' @click='toShowTem(2)'>选择内容</van-button> <van-button class='doc-btn-p' @click='toShowTem(2)'>选择内容</van-button>
</div> </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> </div>
<!-- 催检--> <!-- 催检-->
...@@ -119,7 +169,7 @@ ...@@ -119,7 +169,7 @@
</div> </div>
</van-form> </van-form>
<div> <div v-if='showTem'>
<temList :show='showTem' @closed='closedTem' @selectRecord='getSelectTem'></temList> <temList :show='showTem' @closed='closedTem' @selectRecord='getSelectTem'></temList>
</div> </div>
</div> </div>
...@@ -129,16 +179,17 @@ ...@@ -129,16 +179,17 @@
import { useStore } from '@/resident/store' import { useStore } from '@/resident/store'
import dayjs from 'dayjs' import dayjs from 'dayjs'
import DocIcon from '@/components/docIcon/DocIcon' import DocIcon from '@/components/docIcon/DocIcon'
import { showToast } from 'vant' import { showFailToast, showToast } from 'vant'
import { fetchDataHandle } from '@/utils/common' import { fetchDataHandle, uniqueArr } from '@/utils/common'
import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload' import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload'
import TemList from '@/doctor/components/template/temList' import TemList from '@/doctor/components/template/temList'
import { getTemplateDetail } from '@/api/doctor/workbench' import { getTemplateDetail } from '@/api/doctor/workbench'
import GuideTextVideo from '@/doctor/followUp/generalFU/form/GuideTextVideo' import GuideTextVideo from '@/doctor/followUp/generalFU/form/GuideTextVideo'
import CheckBtn from '@/doctor/components/checkBtn/CheckBtn'
export default { export default {
name: 'GeneralFUForm', name: 'GeneralFUForm',
components: { GuideTextVideo, TemList, DocImageUpload, DocIcon }, components: { CheckBtn, GuideTextVideo, TemList, DocImageUpload, DocIcon },
props: { props: {
info: { info: {
default: () => { default: () => {
...@@ -163,6 +214,8 @@ export default { ...@@ -163,6 +214,8 @@ export default {
showDate: false, showDate: false,
showTime1: false, showTime1: false,
showTem: false, showTem: false,
showPublicizeType: false,
checkPublicizeType: [],
currentTime1: null, currentTime1: null,
citeInfo: 1, citeInfo: 1,
rules: { rules: {
...@@ -238,35 +291,47 @@ export default { ...@@ -238,35 +291,47 @@ export default {
this.currentTime1 = time.split('-') this.currentTime1 = time.split('-')
}, },
methods: { methods: {
setForm(info = {}) { setForm(data = {}) {
const modeArray = this.store.getDict('DC00084') let info = fetchDataHandle(data, {
let visitHealthGuideList = [] visitWayRules: 'strToArrNum',
if (info.healthGuideContent) { groupsArrays: 'strToArrNum',
visitHealthGuideList = JSON.parse(info.healthGuideContent) 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 = { const form = {
id: info.id, id: info.id,
diseaseType: info.diseaseType, groupsArrays: info.groupsArrays,
visitDate: info.visitDate || new dayjs(), 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, isSms: info.isSms,
isWx: info.isWx, isWx: info.isWx,
screenTime: new dayjs().add(1, 'day').format('YYYY-MM-DD'), isSmsIsWx: isSmsIsWx,
visitContent: info.visitContent, visitContent: info.visitContent,
disposalOpinion: info.disposalOpinion, disposalOpinion: info.disposalOpinion,
uploadVisitRecord: info.uploadVisitRecord, uploadVisitRecord: info.uploadVisitRecord,
sceneVisitImage: info.sceneVisitImage, sceneVisitImage: info.sceneVisitImage,
screenTime: info.screenTime || new dayjs().add(1, 'day').format('YYYY-MM-DD HH'),
sendInfo: info.sendInfo, sendInfo: info.sendInfo,
visitHealthGuideList: modeArray.map(e => { publicizeType: info.publicizeType,
const item = visitHealthGuideList.find(i => i.templateMode === e.value) guide: info.guide || {},
return { publicize: info.publicize || {},
templateMode: e.value,
name: e.name,
templateContent: item ? item.templateContent : '',
id: item ? item.visitId : ''
}
})
} }
return form return form
}, },
...@@ -280,7 +345,7 @@ export default { ...@@ -280,7 +345,7 @@ export default {
this.showTime1 = false this.showTime1 = false
}, },
toShowTem(val) { toShowTem(val) {
this.citeInfo =val this.citeInfo = val
this.showTem = true this.showTem = true
}, },
closedTem(val) { closedTem(val) {
...@@ -291,32 +356,313 @@ export default { ...@@ -291,32 +356,313 @@ export default {
if (val) { if (val) {
let par = { id: val } let par = { id: val }
let result = await getTemplateDetail(par) let result = await getTemplateDetail(par)
const { data } = result
//健康指导 //健康指导
if (this.citeInfo == 1) { if (this.showTwo && this.citeInfo == 1) {
this.setGuide(data)
} else { //宣教内容 }
//宣教内容
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() { onSubmit() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.$refs.form.validate().then(() => { this.$refs.form.validate().then(async () => {
if (this.imgList.length > 6 || this.imgList2.length > 8) { let time = dayjs(this.form.screenTime).format('YYYY-MM-DD HH:00:00')
return let content = `${this.modeEnumList?.urgeResidentShow ? `${this.firstForm?.residentsRecord?.residentName}先生/女士,` : `您好,`}请您于${time}${this.authInfo.unitName}进行专病高危筛查/慢病复查,祝早日恢复健康!`
} let res = {
let time = dayjs(this.form.screenTime).format('YYYY-MM-DD') ...this.form,
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,
urgentInsContent: content, 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) => { }).catch((e) => {
console.warn('generaFu error', e) console.warn('generaFu error', e)
// reject(e) // reject(e)
...@@ -475,6 +821,9 @@ export default { ...@@ -475,6 +821,9 @@ export default {
text-align: left; text-align: left;
} }
:deep(.van-popup) {
min-height: 30% !important;
}
</style> </style>
<style lang='less'> <style lang='less'>
...@@ -493,4 +842,5 @@ export default { ...@@ -493,4 +842,5 @@ export default {
.van-swipe-item { .van-swipe-item {
width: 100% !important; width: 100% !important;
} }
</style> </style>
\ No newline at end of file
...@@ -2,8 +2,7 @@ ...@@ -2,8 +2,7 @@
<van-form ref='form' <van-form ref='form'
class='grow flex flex-col' style='min-height: 1px;flex-wrap: nowrap;'> class='grow flex flex-col' style='min-height: 1px;flex-wrap: nowrap;'>
<div class='flex flex-col' v-if='fileType?.includes(1)'> <div class='flex flex-col' v-if='fileType?.includes(1)'>
<div>
<div class='health mt-2'>
<!-- 无选项--> <!-- 无选项-->
<div class='health-cell mt-2' v-for="item in form.contentList.filter(e => e.templateModeTrans == '无')"> <div class='health-cell mt-2' v-for="item in form.contentList.filter(e => e.templateModeTrans == '无')">
<div class='no-req-label'>{{ contentTitle }}</div> <div class='no-req-label'>{{ contentTitle }}</div>
...@@ -18,36 +17,37 @@ ...@@ -18,36 +17,37 @@
</div> </div>
<!-- 更多选项--> <!-- 更多选项-->
<div class='health-cell mt-2'> <div class='health-cell mt-2'>
<div class='no-req-label'>更多{{ contentTitle }}</div> <div class='no-req-label'>更多{{ contentTitle }}</div>
<van-field <van-field
v-model='form.contentSelectName' v-model='form.contentSelectName'
readonly readonly
is-link is-link
placeholder='请选择' placeholder='请选择'
class='input-back mt-2 form-input' class='input-back mt-2 form-input'
:rules='rules.contentSelectName' :rules='rules.contentSelectName'
@click='showContentSelect= true' @click='showContentSelect= true'
> >
<template #input> <template #input>
<span class='text-end'>{{ form.contentSelectName }}</span> <span class='text-end'>{{ form.contentSelectName }}</span>
</template> </template>
</van-field> </van-field>
<van-popup v-model:show='showContentSelect' position='bottom'> <van-popup v-model:show='showContentSelect' position='bottom'>
<div class='p-4'> <div class='p-4'>
<div class='flex justify-between mb-4'> <div class='flex justify-between mb-4'>
<div class='greyColor' @click='showContentSelect = false'>取消</div> <div class='greyColor' @click='showContentSelect = false'>取消</div>
<div class='blueColor' @click='contentSelectConfirm'>确认</div> <div class='blueColor' @click='contentSelectConfirm'>确认</div>
</div>
<CheckBtn multiple column-2 :options='contentArray' v-model:value='checkContentSelect'
:fieldNames="{text: 'name', value: 'value'}" />
</div> </div>
<CheckBtn multiple column-2 :options='contentArray' v-model:value='checkContentSelect' </van-popup>
:fieldNames="{text: 'name', value: 'value'}" />
</div>
</van-popup>
</div> </div>
<div class='health-cell mt-2' v-for="item in form.contentList.filter(e => e.templateModeTrans != '无')"> <div class='health-cell mt-2' v-for="item in form.contentList.filter(e => e.templateModeTrans != '无')">
<template v-if='item.templateMode === 5'> <template v-if='item.templateMode === 5'>
<div class='no-req-label'>药物指导</div> <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> <div class='text-driver' v-if='index'></div>
<DocDrug v-model:value='item.drugsCode' placeholder='拼音码查询药品' <DocDrug v-model:value='item.drugsCode' placeholder='拼音码查询药品'
:valueName="selectData.drugsList ? selectData.drugsList[index]?.helpCode : ''" :valueName="selectData.drugsList ? selectData.drugsList[index]?.helpCode : ''"
...@@ -152,15 +152,20 @@ ...@@ -152,15 +152,20 @@
@play='e => activeMediaUrl = e.annexUrl' @play='e => activeMediaUrl = e.annexUrl'
remove remove
@onRemove='getMP3RemoveInfo' @onRemove='getMP3RemoveInfo'
class='mt-2'
/> />
</div> </div>
</div> </div>
<div v-if='fileType.includes(3)' class='w-full'> <div v-if='fileType.includes(3)' class='w-full'>
<Mp4 :files='_video' :activeMediaUrl='activeMediaUrl' <div class='health-cell mt-2'>
@play='e => activeMediaUrl = e.annexUrl' <div class='no-req-label'>视频</div>
remove <Mp4 :files='_video' :activeMediaUrl='activeMediaUrl'
@onRemove='getMP4RemoveInfo' @play='e => activeMediaUrl = e.annexUrl'
/> remove
@onRemove='getMP4RemoveInfo'
class='mt-2'
/>
</div>
</div> </div>
</van-form> </van-form>
...@@ -286,18 +291,37 @@ export default { ...@@ -286,18 +291,37 @@ export default {
] ]
let infoC = info.contentList || [] let infoC = info.contentList || []
//判断父组件的数据里是否存在 无 的选项 //判断父组件的数据里是否存在 无 的选项
let resList = infoC.filter(item => item.templateMode !=1) let resList = infoC.filter(item => item.templateMode != 1)
if (!resList.length) { if (!resList.length) {
contentList = [...initC, ...infoC] contentList = [...initC, ...infoC]
} else { } else {
contentList = [...infoC] contentList = [...infoC]
} }
const drugsList = info?.drugsList?.length ? info.drugsList.map(e => { const drugsList = info?.drugsList?.length ? info.drugsList.map(e => {
if (e.id) { if (e.id) {
e._id = 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 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 = { const form = {
id: info.id, id: info.id,
templateType: info.templateType, templateType: info.templateType,
...@@ -313,7 +337,8 @@ export default { ...@@ -313,7 +337,8 @@ export default {
// 存放上传后返回的id // 存放上传后返回的id
_video: JSON.parse(JSON.stringify(info._video || [])), _video: JSON.parse(JSON.stringify(info._video || [])),
_audio: JSON.parse(JSON.stringify(info._audio || [])), _audio: JSON.parse(JSON.stringify(info._audio || [])),
drugSelect: 1 drugSelect: 1,
contentSelectName: contentSelectName,
} }
return form return form
}, },
...@@ -457,7 +482,7 @@ export default { ...@@ -457,7 +482,7 @@ export default {
const drugsList = query.drugsList const drugsList = query.drugsList
let str = '' let str = ''
drugsList.forEach(e => { 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 item.templateContent = str
} }
...@@ -499,7 +524,7 @@ export default { ...@@ -499,7 +524,7 @@ export default {
const drugsList = query.drugsList const drugsList = query.drugsList
let str = '' let str = ''
drugsList.forEach(e => { 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 item.templateContent = str
} }
......
...@@ -186,6 +186,7 @@ export default { ...@@ -186,6 +186,7 @@ export default {
this.modeEnumList = getModeEnum(this.info) this.modeEnumList = getModeEnum(this.info)
}, },
async toNext(val) { async toNext(val) {
window.scrollTo(0, 0)
if (val == 2) { if (val == 2) {
this.firstForm = await this.$refs.baseInfo.onSubmit() this.firstForm = await this.$refs.baseInfo.onSubmit()
} }
...@@ -224,33 +225,10 @@ export default { ...@@ -224,33 +225,10 @@ export default {
let baseInfo = await this.$refs.baseInfo.onSubmit() let baseInfo = await this.$refs.baseInfo.onSubmit()
let generalFUForm = await this.$refs.generalFUForm.onSubmit() let generalFUForm = await this.$refs.generalFUForm.onSubmit()
let commonBottom = await this.$refs.commonBottom.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 = { let params = {
...baseInfo,
...generalFUForm, ...generalFUForm,
...commonBottom, ...commonBottom,
uploadVisitRecord, ...baseInfo,
sceneVisitImage,
source: 2 source: 2
} }
if (this.info.id) { if (this.info.id) {
......
...@@ -286,4 +286,18 @@ export function isResidentInfo() { ...@@ -286,4 +286,18 @@ export function isResidentInfo() {
res = true res = true
} }
return res 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