Commit 9de9fa56 authored by songrui's avatar songrui

Merge branch 'chronic-dev' of http://gitlab.yiboshi.com/nightkis1995/frontend-h5 into chronic-dev

parents 2fd993b3 783617c3
<template>
<!-- 弹出层 -->
<van-popup v-model:show="data.isPicker" position="bottom" round @close="confirmOn">
<van-picker ref="picker" title="请选择时间" :columns="data.columns" @cancel="cancelOn"
@confirm="onConfirm" v-model="data.selectedValues" />
</van-popup>
</template>
<script setup>
import { reactive, watch, getCurrentInstance } from "vue";
const customFieldName = {
text: "value",
value: "values",
children: ""
};
const data = reactive({
isPicker: false, //是否显示弹出层
columns: [], //所有时间列
selectedValues: [], //控件选择的时间值
showType: [] //控制显示时间格式 年月日时分秒
});
const props = defineProps({
// 传入的显影状态
showPicker: {
type: Boolean
},
// 传入的值
values: {
type: String
},
showType: {
type: Array,
default:() => {
return ['year', 'month', 'day', 'hour', 'minute', 'second']
}
}
});
//定义要向父组件传递的事件
const emit = defineEmits(["changeValue", "confirm"]);
watch(
() => props.showPicker,
val => {
data.isPicker = val;
data.showType = props.showType
data.columns = [];
getcolumns();
},
{
immediate: true//立即监听--进入就会执行一次 监听显影状态
}
);
function getcolumns() {
let strtime = props.values; //传入的时间
//console.log(strtime); 2023-09-05 19:28:00
let date = new Date(strtime.replace(/-/g, "/"));
// console.log(date); Wed Aug 09 2023 14:53:15 GMT+0800 (中国标准时间)
let timeVaules = date.getTime();
let dateVaules;
if (props.values != "") {
dateVaules = new Date(timeVaules);
} else {
dateVaules = new Date(); //没有传入时间则默认当前时刻
}
let Y = dateVaules.getFullYear();
let M = dateVaules.getMonth();
let D = dateVaules.getDate();
let h = dateVaules.getHours();
let m = dateVaules.getMinutes();
let s = dateVaules.getSeconds();
if(data.showType.includes('year')) {
let year = []; //获取前后十年数组
year.values = [];
let Currentday = new Date().getFullYear();
for (let i = Currentday - 10; i < Currentday + 10; i++) {
year.push({ text: i.toString(), value: i });
}
year.defaultIndex = year.values.indexOf(Y); //设置默认选项当前年
// 个位数补0
const _M = M < 10 ? `0${M + 1}` : M.toString(); //月份比实际获取的少1,所以要加1
const _D = D < 10 ? `0${D}` : D.toString();
const _h = h < 10 ? `0${h}` : h.toString();
const _m = m < 10 ? `0${m}` : m.toString();
const _s = s < 10 ? `0${s}` : s.toString();
// 生成年月日时分秒时间值
data.selectedValues.push(Y);
data.selectedValues.push(_M);
data.selectedValues.push(_D);
data.selectedValues.push(_h);
data.selectedValues.push(_m);
data.selectedValues.push(_s);
data.columns.push(year); //生成年列
}
if (data.showType.includes('month')) {
let month = []; //获取12月数组
month = Object.keys(Array.apply(null, { length: 13 })).map(function (item) {
if (+item + 1 <= 10) {
return { text: "0" + item, value: "0" + item };
} else if (+item + 1 == 11) {
return { text: +item, value: +item };
} else {
return {
text: (+item + 0).toString(),
value: (+item + 0).toString()
};
}
});
month.splice(0, 1);
data.columns.push(month); //生成月列
}
if (data.showType.includes('day')) {
//获取当月的天数
let days = getCountDays(Y, M + 1);
let day = []; //创建当月天数数组
day = Object.keys(Array.apply(null, { length: days + 1 })).map(function (
item
) {
if (+item + 1 <= 10) {
return { text: "0" + item, value: "0" + item };
} else if (+item + 1 == 11) {
return { text: +item, value: +item };
} else {
return {
text: (+item + 0).toString(),
value: (+item + 0).toString()
};
}
});
day.splice(0, 1);
data.columns.push(day); //生成日列
}
if (data.showType.includes('hour')) {
let hour = []; //创建小时数组
hour = Object.keys(Array.apply(null, { length: 24 })).map(function (item) {
if (+item + 1 <= 10) {
return { text: "0" + item, value: "0" + item };
} else if (+item + 1 == 11) {
return { text: +item, value: +item };
} else {
return {
text: (+item + 0).toString(),
value: (+item + 0).toString()
};
}
});
data.columns.push(hour); //生成小时列
}
if (data.showType.includes('minute')) {
let mi = []; //创建分钟数组
mi = Object.keys(Array.apply(null, { length: 60 })).map(function (item) {
if (+item + 1 <= 10) {
return { text: "0" + item, value: "0" + item };
} else if (+item + 1 == 11) {
return { text: +item, value: +item };
} else {
return {
text: (+item + 0).toString(),
value: (+item + 0).toString()
};
}
});
data.columns.push(mi);//生成分钟列
}
if (data.showType.includes('second')) {
let ss = []; //创建秒数数组
ss = Object.keys(Array.apply(null, { length: 60 })).map(function (item) {
if (+item + 1 <= 10) {
return { text: "0" + item, value: "0" + item };
} else if (+item + 1 == 11) {
return { text: +item, value: +item };
} else {
return {
text: (+item + 0).toString(),
value: (+item + 0).toString()
};
}
});
data.columns.push(ss);//生成秒钟列
}
}
function getCountDays(year, month) {
//获取某年某月多少天
let day = new Date(year, month, 0);
return day.getDate();
}
// 关闭弹框
function confirmOn() {
emit("changeValue");
}
//时间选择器关闭 值不改变并关闭弹框
function cancelOn({ selectedValues }) {
confirmOn()
}
// 时间选择器确定 值改变
function onConfirm({ selectedValues }) {
let endval =
selectedValues[0] +
"-" +
selectedValues[1] +
"-" +
selectedValues[2] +
" " +
selectedValues[3] +
":" +
selectedValues[4] +
":" +
selectedValues[5];
confirmOn()
emit("confirm", endval);
}
</script>
...@@ -87,10 +87,10 @@ export default { ...@@ -87,10 +87,10 @@ export default {
this.innerImage = [...this.imageData] this.innerImage = [...this.imageData]
} else { } else {
this.innerImage = [ this.innerImage = [
{ fileType: 'pdf', id: 1, trueDownloadUrl: testUrl }, // { fileType: 'pdf', id: 1, trueDownloadUrl: testUrl },
{ fileType: 'png', id: 2, trueDownloadUrl: testUrl }, // { fileType: 'png', id: 2, trueDownloadUrl: testUrl },
{ fileType: 'png', id: 3, trueDownloadUrl: testUrl }, // { fileType: 'png', id: 3, trueDownloadUrl: testUrl },
{ fileType: 'png', id: 4, trueDownloadUrl: testUrl } // { fileType: 'png', id: 4, trueDownloadUrl: testUrl }
] ]
} }
}, },
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="p-1 flex flex-col mp3"> <div class="p-1 flex flex-col mp3">
<div v-if="file.annexFileName" class="text-12 mb-1 text-ellipsis">{{ file.annexFileName }}</div> <div v-if="file.annexFileName" class="text-12 mb-1 text-ellipsis">{{ file.annexFileName }}</div>
<div class="flex items-center justify-between gap-x-2.5"> <div class="flex items-center justify-between gap-x-2.5">
<div class="shrink-0 play-bt" @click="start(file)"> <div class="shrink-0 play-bt" @click.stop="start(file)">
<doc-icon type="doc-play" v-if="!player.playing"/> <doc-icon type="doc-play" v-if="!player.playing"/>
<doc-icon type="doc-pause" v-else/> <doc-icon type="doc-pause" v-else/>
</div> </div>
......
<template> <template>
<div class="mp4"> <div class="mp4">
<div class="flex flex-wrap justify-between video-list"> <div class="flex flex-wrap justify-between video-list">
<div v-for="item in files" :key="item.annexId"> <div v-for="item in files" :key="item.annexId" @click.stop="start(item)">
<div class="item"> <div class="item">
<div class="shrink-0 play-bt" @click="start(item)"> <div class="shrink-0 play-bt" >
<doc-icon type="doc-play" /> <doc-icon type="doc-play" />
</div> </div>
<span class="close-btn" @click.stop="removeBtn(item)" v-if="remove"> <span class="close-btn" @click.stop="removeBtn(item)" v-if="remove">
......
<template> <template>
<van-popup v-model:show='innerShow' position='right' :style="{ height: '100%', width: '100%' }"> <van-popup v-if='innerShow' v-model:show='innerShow' position='right' :style="{ height: '100%', width: '100%' }">
<div class='flex flex-col' style='height: 100vh'> <div class='flex flex-col' style='height: 100vh'>
<div class='p-3 text-black text-center shrink-0 doc-nav-bar'> <div class='p-3 text-black text-center shrink-0 doc-nav-bar'>
<span @click='onBack' class='text-12 back-bt'> <span @click='onBack' class='text-12 back-bt'>
...@@ -9,11 +9,17 @@ ...@@ -9,11 +9,17 @@
</div> </div>
<div class='grow overflow-y-auto pl-4 pr-4 pt-3 pb-3'> <div class='grow overflow-y-auto pl-4 pr-4 pt-3 pb-3'>
{{fileType}}
<div> <div>
<div class='flex flex-col '> <div class='flex flex-col '>
<!-- 文本 --> <!-- 文本 -->
<div class='card' v-if='contentList?.length'> <div class='card' v-if='contentList?.length' @click='selectFiletype(1)'>
<div class='flex justify-between items-center'>
<div class='font-semibold mb-1'>文本</div> <div class='font-semibold mb-1'>文本</div>
<van-checkbox-group v-model="fileType" shape="square" icon-size="16px">
<van-checkbox :name="1"></van-checkbox>
</van-checkbox-group>
</div>
<div class='conten-bg'> <div class='conten-bg'>
<div v-for='item in contentList' :key='item.templateMode' class='mb-1 flex' <div v-for='item in contentList' :key='item.templateMode' class='mb-1 flex'
:style='`order: ${item.templateMode}`'> :style='`order: ${item.templateMode}`'>
...@@ -24,16 +30,30 @@ ...@@ -24,16 +30,30 @@
</div> </div>
</div> </div>
</div> </div>
<div class='card mt-4' v-if='mp4List?.length'>
<div class='font-semibold mb-1'>视频</div>
<div class='card mt-4' v-if='mp4List?.length' @click='selectFiletype(3)'>
<div class='flex justify-between items-center'>
<div class='font-semibold mb-1'>视频</div>
<van-checkbox-group v-model="fileType" shape="square" icon-size="16px">
<van-checkbox :name="3"></van-checkbox>
</van-checkbox-group>
</div>
<div class='conten-bg'> <div class='conten-bg'>
<Mp4 :files='mp4List' :activeMediaUrl='activeMediaUrl' <Mp4 :files='mp4List' :activeMediaUrl='activeMediaUrl'
@play='e => activeMediaUrl = e.annexUrl' /> @play='e => activeMediaUrl = e.annexUrl' />
</div> </div>
</div> </div>
<div class='card flex flex-col mt-4' style='row-gap: .06rem;' v-if='mp3List?.length'>
<div class='font-semibold mb-1'>音频</div> <div class='card flex flex-col mt-4' style='row-gap: .06rem;' v-if='mp3List?.length' @click='selectFiletype(2)'>
<div class='flex justify-between items-center'>
<div class='font-semibold mb-1'>音频</div>
<van-checkbox-group v-model="fileType" shape="square" icon-size="16px">
<van-checkbox :name="2"></van-checkbox>
</van-checkbox-group>
</div>
<div class='conten-bg'> <div class='conten-bg'>
<Mp3 :file='item' v-for='item in mp3List' :key='item.annexId' <Mp3 :file='item' v-for='item in mp3List' :key='item.annexId'
:activeMediaUrl='activeMediaUrl' :activeMediaUrl='activeMediaUrl'
...@@ -66,7 +86,8 @@ export default { ...@@ -66,7 +86,8 @@ export default {
data() { data() {
return { return {
info: {}, info: {},
activeMediaUrl: '' activeMediaUrl: '',
fileType: [1, 2, 3],
} }
}, },
computed: { computed: {
...@@ -105,8 +126,16 @@ export default { ...@@ -105,8 +126,16 @@ export default {
}).finally(() => { }).finally(() => {
}) })
}, },
selectFiletype(val) {
let index = this.fileType.findIndex(item => item == val)
if (index >= 0) {
this.fileType = this.fileType.filter(item => item != val)
} else {
this.fileType.push(val)
}
},
toUse() { toUse() {
this.$emit('selectedInfo', this.id) this.$emit('selectedInfo', this.id, this.fileType)
this.onBack() this.onBack()
}, },
onBack() { onBack() {
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<div @click='onBack' class='text-12 back-bt'> <div @click='onBack' class='text-12 back-bt'>
<doc-icon type='doc-left2' /> <doc-icon type='doc-left2' />
</div> </div>
<div>随访详情</div> <div>选择内容</div>
<div class='text-primary left-btn' @click='openSearch'>筛查</div> <div class='text-primary left-btn' @click='openSearch'>筛查</div>
</div> </div>
...@@ -77,7 +77,14 @@ ...@@ -77,7 +77,14 @@
</van-popup> </van-popup>
<!-- 查看详情组件--> <!-- 查看详情组件-->
<temDetail v-if='detailShow' :show='detailShow' :id='selectRecord.id' @closeDetail='detailClosed' @selectedInfo='detailToUse' :overlay='false'></temDetail>
<temDetail v-if='detailShow && innerShow'
:show='detailShow'
:id='selectRecord.id'
@closeDetail='detailClosed'
@selectedInfo='detailToUse'
:overlay='false'
></temDetail>
</div> </div>
</div> </div>
</van-popup> </van-popup>
...@@ -199,13 +206,13 @@ export default { ...@@ -199,13 +206,13 @@ export default {
this.detailShow = val this.detailShow = val
}, },
//列表引用 //列表引用
toUse(record) { toUse(record, typeList = [1, 2, 3]) {
this.$emit('selectRecord', record.id) this.$emit('selectRecord', record.id, typeList)
this.onBack() this.onBack()
}, },
//详情选中引用 //详情选中引用
detailToUse(val) { detailToUse(val, typeList = []) {
this.$emit('selectRecord', val) this.$emit('selectRecord', val, typeList)
this.onBack() this.onBack()
}, },
onBack() { onBack() {
......
...@@ -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) => {
......
...@@ -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,36 @@ export default { ...@@ -286,18 +291,36 @@ 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 +336,8 @@ export default { ...@@ -313,7 +336,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 +481,7 @@ export default { ...@@ -457,7 +481,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 +523,7 @@ export default { ...@@ -499,7 +523,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
} }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div> <div>
<van-nav-bar :title="routerDetail.id ? '修改通用随访': '新增通用随访'" left-text='' left-arrow <van-nav-bar :title="routerDetail.id ? '修改通用随访': '新增通用随访'" left-text='' left-arrow
@click-left='toBack'></van-nav-bar> @click-left='toBack'></van-nav-bar>
<div class='p-4 h-overflow'> <div class='p-4 h-overflow' ref='all'>
<base-info :info='info' <base-info :info='info'
:modeEnumList='modeEnumList' :modeEnumList='modeEnumList'
v-show='step == 1' v-show='step == 1'
...@@ -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) {
this.$refs.all.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