Commit a48c15db authored by sjf1256754123's avatar sjf1256754123
parents 7af2e713 c352f13f
......@@ -5,8 +5,8 @@
<template v-if="item.type == 'radio'">
<view class="margin-top padding sict-label" :key="item.value" v-show="!item.hidden">
<view v-show="!item.hidden">
<span style="color:red;display: inline-block; vertical-align:inherit;margin-right:4upx" v-if="item.required">*</span>
{{index+1}} {{item.label}}
<span style="color:red;display: inline-block; vertical-align:inherit;margin-right:4upx" :style="{opacity: item.required ? 1 : 0}" >*</span>
{{item.label}}
</view>
<view class="text-right sict-value" v-show="!item.hidden">
<radio-group @change="showChange($event,item)">
......@@ -24,7 +24,7 @@
<template v-else-if="item.type == 'picker'">
<view class="cu-form-group margin-top padding-rl" v-show="!item.hidden" :key="item.value">
<view :class="item.titleClass"><span style="color:red;display: inline-block; vertical-align:inherit;margin-right:4upx"
v-if="item.required">*</span>{{index+1}}{{item.label}}</view>
:style="{opacity: item.required ? 1 : 0}">*</span>{{item.label}}</view>
<picker @change="updatePickerVal($event,item)" range-key="label" mode="selector" :value="form[item.value]" :range="item.opts">
<view class="picker">
{{form[item.value]?form[item.value]:'请选择'}}
......@@ -36,7 +36,7 @@
<template v-else-if="item.type == 'pickerMore'">
<view class="margin-top" :key="index">
<uni-collapse>
<uni-collapse-item :title="index+1 +'、' + item.label" :open="true" :required="item.required">
<uni-collapse-item :title="item.label" :open="true" :required="item.required">
<view class="padding-lr">
<view class="uni-list">
<checkbox-group @change="showChange($event,item)">
......@@ -60,8 +60,8 @@
<template v-else-if="item.type == 'date'">
<view class="cu-form-group margin-top padding-rl" v-show="!item.hidden" :key="item.value">
<view :class="item.titleClass"><span style="color:red;display: inline-block; vertical-align:inherit;margin-right:4upx"
v-if="item.required">*</span>{{index+1}}{{item.label}}</view>
<picker mode="date" :value="date" start="2015-09-01" end="2020-09-01" @change="updatePickerVal($event,item)">
:style="{opacity: item.required ? 1 : 0}">*</span>{{item.label}}</view>
<picker mode="date" :value="form[item.value]" start="2015-09-01" end="2020-09-01" @change="updatePickerVal($event,item)">
<view class="picker">
{{form[item.value]?form[item.value]:'请选择'}}
</view>
......@@ -71,8 +71,8 @@
<template v-else-if="item.type == 'input'">
<view class="cu-form-group margin-top padding-rl" :key="item.value" v-show="!item.hidden">
<view :class="item.titleClass">
<span style="color:red;display: inline-block; vertical-align:inherit;margin-right:4upx" v-if="item.required">*</span>
{{index+1}}{{item.label}}</view>
<span style="color:red;display: inline-block; vertical-align:inherit;margin-right:4upx" :style="{opacity: item.required ? 1 : 0}">*</span>
{{item.label}}</view>
<input class="text-right" :placeholder="item.placeholder" :type="item.controType" :value="form[item.value]" name="input"
@input="updateInputVal($event,item.value)" @blur="inputBlur($event,item)"></input>
</view>
......@@ -98,14 +98,14 @@
</view>
</template>
<view class="cu-form-group margin-top-sm">
<view class="cu-form-group margin-top-sm" v-show="!isRead">
<view class="uni-padding-wrap uni-common-mt">
<view class="padding-top padding-bottom">
<checkbox-group @click="openModal">
<label>
<checkbox value="A" :checked="form.agree == '1'" class="fl" style="margin-top:4upx" />
<checkbox value="A" :checked="form.agree == 1" class="fl" style="margin-top:4upx" />
<view style="padding-left:60upx;padding-top:6upx">
我已阅读理解并同意知情同意书内容
我已阅读并认可<span style="color:#0081FF" @click.stop="modalName = true">《知情同意书》</span>,承诺如实填报。
</view>
</label>
</checkbox-group>
......@@ -124,16 +124,17 @@
</view>
<view class="padding-xl green-word">
<div class="text-left">
<p>根据中华人民共和国国家卫生健康委员会2020年第1号公告要求以及《国际卫生条例(2005)》、《中华人民共和国传染病防治法》等有关法律规定,并按照国务院常务会议提出的“分类有序复工复产”和上海疫情防控办及市政府《关于进一步落实各项疫情防控措施的通告》的相关要求,为做好新型冠状病毒感染的肺炎疫情防控工作,保障广大人民群众生命健康,现面向使用本系统的所有用户,特告知如下:</p>
<p class="content">根据中华人民共和国国家卫生健康委员会2020年第1号公告要求以及《国际卫生条例(2005)》、《中华人民共和国传染病防治法》等有关法律规定,并按照国务院常务会议提出的“分类有序复工复产”和上海疫情防控办及市政府《关于进一步落实各项疫情防控措施的通告》的相关要求,为做好新型冠状病毒感染的肺炎疫情防控工作,保障广大人民群众生命健康,现面向使用本系统的所有用户,特告知如下:</p>
<p>&nbsp;</p>
<p>本系统将对所有注册使用的用户信息进行记录,必要时将与执法部门进行信息对接,请积极配合并确保所填信息真实、有效。如若有任何瞒报情况被查出,将被有关部门依法追究法律责任并被列为失信人员,敬请配合。</p>
<p>另本人承诺:同意将本系统的个人信息数据经脱敏后用于防疫工作开展以及相关科学研究等。</p>
<p class="content">本系统将对所有注册使用的用户信息进行记录,必要时将与执法部门进行信息对接,请积极配合并确保所填信息真实、有效。如若有任何瞒报情况被查出,将被有关部门依法追究法律责任并被列为失信人员,敬请配合。</p>
<p>&nbsp;</p>
<p class="content">另本人承诺:同意将本系统的个人信息数据经脱敏后用于防疫工作开展以及相关科学研究等。</p>
</div>
<button @click="modalName = ''" class="cu-btn block bg-blue margin-tb-sm lg">我知道了</button>
</view>
</view>
</view>
<view class="padding">
<view class="padding" v-show="!isRead">
<button form-type="submit" class="cu-btn block bg-blue margin-tb-sm lg">提 交</button>
</view>
</form>
......@@ -152,294 +153,7 @@
data() {
return {
modalName: false,
id: '',
radio: [],
shanghaiList: [{
label: '是否离沪',
required: true,
value: 'left',
titleClass: 'title',
type: 'picker',
opts: [{
value: 'a',
label: ''
}, {
value: 'b',
label: ''
}]
},
{
label: '离沪原因',
required: true,
value: 'leftReason',
titleClass: 'title',
type: 'picker',
opts: [{
value: 'a',
label: '探亲'
}, {
value: 'b',
label: '出差'
}, {
value: 'b',
label: '旅游'
}, {
value: 'b',
label: '其他'
}]
},
{
label: '离沪出发日期',
required: true,
value: 'leftDate',
titleClass: 'title',
type: 'date',
},
{
label: '离沪方式',
required: true,
value: 'leftVehicle',
titleClass: 'title',
type: 'date',
opts: [{
value: 'a',
label: '火车 '
}, {
value: '飞机',
label: ''
}, {
value: '客车',
label: ''
}, {
value: '自驾',
label: ''
}]
},
{
label: '离沪车次/航班',
required: true,
value: 'leftVehicleNum',
titleClass: 'title',
placeholder: '请输入地址',
type: 'input',
},
{
label: '离沪到达日期',
required: true,
value: 'leftReachDate',
titleClass: 'title',
type: 'date',
},
{
label: '离沪目的地',
required: true,
value: 'leftTarget',
titleClass: 'title',
placeholder: '请输入地址',
type: 'input',
},
{
label: '离沪具体地址',
required: true,
value: 'leftAddress',
titleClass: 'title',
placeholder: '请输入地址',
type: 'input',
},
{
label: '离沪同行者姓名(没有填无)',
required: true,
value: 'leftDependentNames',
titleClass: 'title',
placeholder: '请输入',
type: 'input',
},
{
label: '离沪同行者联系方式(没有填无)',
required: true,
value: 'leftDependentPhones',
titleClass: 'title',
placeholder: '请输入',
type: 'input',
},
{
label: '是否返沪',
required: true,
value: 'backed',
titleClass: 'title',
type: 'picker',
opts: [{
value: 'a',
label: ''
}, {
value: 'b',
label: ''
}]
},
{
label: '返沪出发地',
required: true,
value: 'backFrom',
titleClass: 'title',
placeholder: '请输入',
type: 'input',
},
{
label: '返沪出发日期',
required: true,
value: 'backDate',
titleClass: 'title',
type: 'date',
},
{
label: '返沪方式',
required: true,
value: 'backVehicle',
titleClass: 'title',
type: 'picker',
opts: [{
value: 'a',
label: '火车 '
}, {
value: '飞机',
label: ''
}, {
value: '客车',
label: ''
}, {
value: '自驾',
label: ''
}]
},
{
label: '返沪车次/航班',
required: true,
value: 'backVehicleNum',
titleClass: 'title',
placeholder: '请输入地址',
type: 'input',
},
{
label: '返沪到达日期',
required: true,
value: 'backReachedDate',
titleClass: 'title',
type: 'date',
},
{
label: '返沪同行者姓名(没有填无)',
required: true,
value: 'backDependentNames',
titleClass: 'title',
placeholder: '请输入',
type: 'input',
},
{
label: '返沪同行者联系方式(没有填无)',
required: true,
value: 'backDependentPhones',
titleClass: 'title',
placeholder: '请输入',
type: 'input',
},
{
label: '当前状况',
required: true,
value: 'currentStatus',
titleClass: 'title',
type: 'picker',
opts: [{
value: 'a',
label: '已经确诊'
}, {
value: 'b',
label: '疑似诊断'
}, {
value: 'b',
label: '亲密接触者'
}, {
value: 'b',
label: '正在接受集中医学观察'
}, {
value: 'b',
label: '居家观察'
}, {
value: 'b',
label: '已解除集中医学观察'
}, {
value: 'b',
label: '无上述情况'
}]
},
{
label: '症状',
required: true,
value: 'symptom',
titleClass: 'title',
type: 'pickerMore',
opts: [{
value: '发热',
label: '发热'
}, {
value: '咳嗽',
label: '咳嗽'
}, {
value: '流涕',
label: '流涕'
}, {
value: '咽痛',
label: '咽痛'
}, {
value: '咳痰',
label: '咳痰'
}, {
value: '胸痛',
label: '胸痛'
}, {
value: '肌肉酸痛/关节痛',
label: '肌肉酸痛/关节痛'
}, {
value: '气促',
label: '气促'
}, {
value: '腹泻',
label: '腹泻'
}, {
value: '无上述症状',
label: '无上述症状'
}]
},
{
label: '湖北接触史',
required: true,
value: 'relativesGastricCount',
titleClass: 'title',
type: 'picker',
opts: [{
value: 'a',
label: '已经确诊'
}, {
value: 'b',
label: '疑似诊断'
}, {
value: 'b',
label: '亲密接触者'
}, {
value: 'b',
label: '正在接受集中医学观察'
}, {
value: 'b',
label: '居家观察'
}, {
value: 'b',
label: '已解除集中医学观察'
}, {
value: 'b',
label: '无上述情况'
}]
}
],
isRead:false,
list: [{
label: '单位名称',
required: true,
......@@ -449,14 +163,14 @@
opts: []
},
{
label: '所在部门',
label: '所在部门(选填)',
value: 'department',
titleClass: 'title',
placeholder: '请输入所在部门',
type: 'input',
},
{
label: '职务',
label: '职务(选填)',
value: 'position',
titleClass: 'title',
placeholder: '请输入职务',
......@@ -475,7 +189,7 @@
required: true,
value: 'phone',
titleClass: 'title',
placeholder: '请输入联系方式',
placeholder: '请输入11位数字手机号',
type: 'input',
validator:validate.isPhone
},
......@@ -1312,7 +1026,7 @@
required: true,
value: 'householdAddress',
titleClass: 'title',
placeholder: '请输入户籍地址',
placeholder: '例:**路**号**小区**号楼**室',
type: 'input',
num: 8,
hidden: true,
......@@ -1322,7 +1036,7 @@
required: true,
value: 'residenceAddress',
titleClass: 'title',
placeholder: '请输入地址',
placeholder: '例:**路**号**小区**号楼**室',
type: 'input',
},
{
......@@ -1856,7 +1570,7 @@
hidden: true
},
{
label: '症状',
label: '当日症状',
required: true,
value: 'symptom',
titleClass: 'title',
......@@ -1914,14 +1628,14 @@
onLoad(option) {
this.getOrg()
this.getInfo()
},
methods: {
openModal() {
if (!this.form.agree) {
this.form.agree = '1'
this.modalName = true
this.form.agree = 1
} else {
this.form.agree = 0
}
......@@ -1951,8 +1665,40 @@
})
},
// 获取信息
getInfo(id) {
getInfo() {
this.$http.get(`/sict-ncov/report`, this.form).then(res => {
const d = res.data
if(d.code == 1) {
this.isRead = true
const data = d.object.reportContent || {}
this.form = data
// 赋值
for (let k in data) {
const val = data[k]
if (val) {
const item = this.list.find(child => child.value == k)
if (item) {
this.showChange({
value: val
}, item)
if (item.type == "pickerMore") {
console.log(1,22)
item.opts.forEach(opt => {
val.split(',').forEach(v => {
if (v === opt.label) {
console.log(opt)
this.$set(opt, 'checked', true)
}
})
})
}
}
}
}
}
})
},
// 更新复选框绑定的表单内容
checkboxChange(index, obj, item) {
......@@ -1992,7 +1738,7 @@
const prop = item.value
const type = item.type
if (type === 'radio') {
const val = evt.target.value
const val = evt.value || evt.target.value
this.$set(this.form, prop, val)
for (let i = 0; i < this.list.length; i++) {
const current = this.list[i]
......@@ -2010,7 +1756,7 @@
}
// 复选框展示和隐藏
if (type === 'pickerMore') {
let val = evt.detail.value;
let val = evt.value || evt.detail.value;
const showList = item.showList
if (showList && showList.length > 0) {
showList.forEach(item => {
......@@ -2027,7 +1773,7 @@
}
if (type === 'picker') {
let val = item.opts[evt.detail.value].value;
let val = evt.value || item.opts[evt.detail.value].value;
for (let i = 0; i < this.list.length; i++) {
const current = this.list[i]
if (current.value == prop && current.show) {
......@@ -2107,7 +1853,7 @@
flag = false
uni.showToast({
icon: 'none',
title: `${i+1}${this.list[i].label }未填写`
title: `${this.list[i].label }未填写`
})
break
}
......@@ -2115,7 +1861,7 @@
flag = false
uni.showToast({
icon: 'none',
title: `${i+1}${this.list[i].label }填写错误`
title: `${this.list[i].label }填写错误`
})
break
}
......@@ -2185,7 +1931,9 @@
}
}
}
.content {
text-indent: 20px;
}
uni-radio-group {
border: 2upx solid #d3d3d3;
border-radius: 8upx;
......
<template>
<view class="questionnaire">
<form @submit="formSubmit">
......@@ -7,7 +6,7 @@
<view class="margin-top padding sict-label" :key="item.value" v-show="!item.hidden">
<view v-show="!item.hidden">
<span style="color:red;display: inline-block; vertical-align:inherit;margin-right:4upx" :style="{opacity: item.required ? 1 : 0}">*</span>
{{item.label}}
{{item.label}}
</view>
<view class="text-right sict-value" v-show="!item.hidden">
<radio-group @change="showChange($event,item)">
......@@ -395,7 +394,7 @@
hidden: true
},
{
label: '症状',
label: '当日症状',
required: true,
value: 'symptom',
titleClass: 'title',
......@@ -432,7 +431,7 @@
label: '以上均无'
}]
},
{
label: '是否离沪',
required: true,
......@@ -668,7 +667,38 @@
}
},
onLoad(option) {},
onLoad(option) {
// 获取信息
this.$http.post(`/sict-ncov/report`, this.form).then(res => {
console.log(res)
})
const data = {
currentStatus: '亲密接触者'
}
for (let k in data) {
const val = data[k]
if (val) {
const item = this.list.find(child => child.value == k)
if (item) {
this.showChange({
value: val
}, item)
if (item.type == "pickerMore") {
console.log(1,22)
item.opts.forEach(opt => {
val.split(',').forEach(v => {
if (v === opt.label) {
console.log(opt)
this.$set(opt, 'checked', true)
}
})
})
}
}
}
}
},
methods: {
......@@ -710,7 +740,7 @@
const prop = item.value
const type = item.type
if (type === 'radio') {
const val = evt.target.value
const val = evt.value || evt.target.value
this.$set(this.form, prop, val)
for (let i = 0; i < this.list.length; i++) {
const current = this.list[i]
......@@ -727,7 +757,7 @@
}
// 复选框展示和隐藏
if (type === 'pickerMore') {
let val = evt.detail.value;
let val = evt.value || evt.detail.value;
const showList = item.showList
if (showList && showList.length > 0) {
showList.forEach(item => {
......@@ -795,11 +825,11 @@
this.$http.post(`/sict-ncov/report/daily`, this.form).then(res => {
const d = res.data
if (d.code == 1) {
uni.navigateBack()
uni.showToast({
icon: 'success',
title:'提交成功'
title: '提交成功'
})
} else {
uni.showToast({
......
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