Commit e8161ade authored by lrw's avatar lrw

添加每日填报

parent 01df31be
...@@ -17,6 +17,10 @@ ...@@ -17,6 +17,10 @@
"path" : "pages/security/security", "path" : "pages/security/security",
"style" : {} "style" : {}
} }
,{
"path" : "pages/fillInDay/fillInDay",
"style" : {}
}
], ],
"globalStyle": { "globalStyle": {
"navigationBarTextStyle": "white", "navigationBarTextStyle": "white",
......
...@@ -100,7 +100,7 @@ ...@@ -100,7 +100,7 @@
<view class="cu-form-group margin-top-sm"> <view class="cu-form-group margin-top-sm">
<view class="uni-padding-wrap uni-common-mt"> <view class="uni-padding-wrap uni-common-mt">
<view class="padding-top padding-bottom" > <view class="padding-top padding-bottom">
<checkbox-group @click="openModal"> <checkbox-group @click="openModal">
<label> <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" />
...@@ -1611,12 +1611,12 @@ ...@@ -1611,12 +1611,12 @@
}], }],
showList: [{ showList: [{
value: '亲密接触者', value: '亲密接触者',
show: '32,48' show: [32, 35, 38, 40, 43, 45, 47]
}, },
{ {
value: '居家观察/正在接受集中医学观察', value: '居家观察/正在接受集中医学观察',
show: '49,50', show: [49, 50]
}, },
] ]
}, },
...@@ -1921,10 +1921,10 @@ ...@@ -1921,10 +1921,10 @@
methods: { methods: {
openModal() { openModal() {
if(!this.form.agree) { if (!this.form.agree) {
this.form.agree = '1' this.form.agree = '1'
this.modalName = true this.modalName = true
}else { } else {
this.form.agree = 0 this.form.agree = 0
} }
...@@ -1977,7 +1977,7 @@ ...@@ -1977,7 +1977,7 @@
this.$set(checkList[checkList.length - 1], 'checked', false) this.$set(checkList[checkList.length - 1], 'checked', false)
const values = [] const values = []
for (var i = 0, lenI = checkList.length; i < lenI; ++i) { for (var i = 0, lenI = checkList.length; i < lenI; ++i) {
if(checkList[i].checked) { if (checkList[i].checked) {
values.push(checkList[i].label) values.push(checkList[i].label)
} }
} }
...@@ -2012,23 +2012,17 @@ ...@@ -2012,23 +2012,17 @@
// 复选框展示和隐藏 // 复选框展示和隐藏
if (type === 'pickerMore') { if (type === 'pickerMore') {
console.log(evt) console.log(evt)
const nullList = ['无上述情况','以上均无']
const checkList = item.opts
let val = evt.detail.value; let val = evt.detail.value;
const showList = item.showList const showList = item.showList
if (showList && showList.length > 0) { if (showList && showList.length > 0) {
showList.forEach(item => { showList.forEach(item => {
const start = +item.show.split(',')[0] item.show.forEach(child => {
const end = +item.show.split(',')[1]
for (let i = start, lenI = end; i <= end; i++) {
this.list.forEach(row => { this.list.forEach(row => {
if (i == row.num) { if (child == row.num) {
this.$set(row, 'hidden', !val.includes(item.value)) this.$set(row, 'hidden', !val.includes(item.value))
} }
}) })
} })
}) })
} }
...@@ -2078,7 +2072,7 @@ ...@@ -2078,7 +2072,7 @@
for (let i = 0; i < this.list.length; i++) { for (let i = 0; i < this.list.length; i++) {
if (this.list[i].required) { if (this.list[i].required) {
const val = this.form[this.list[i].value] const val = this.form[this.list[i].value]
if ((!val || val == -1) && !this.list[i].hidden) { if (!val&& !this.list[i].hidden && this.list[i].required) {
flag = false flag = false
uni.showToast({ uni.showToast({
icon: 'none', icon: 'none',
...@@ -2095,10 +2089,10 @@ ...@@ -2095,10 +2089,10 @@
if (!flag) { if (!flag) {
return false return false
} else { } else {
this.$http.post(`/sict-ncov/record`, this.form).then(res => { this.$http.post(`/sict-ncov/report`, this.form).then(res => {
const d = res.data const d = res.data
if (d.code == 1) { if (d.code == 1) {
uni.navigateBack()
} else { } else {
uni.showToast({ uni.showToast({
icon: 'none', icon: 'none',
......
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>
<template>
<view class="questionnaire">
<form @submit="formSubmit">
<template v-for="(item,index) in list">
<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}}
</view>
<view class="text-right sict-value" v-show="!item.hidden">
<radio-group @change="showChange($event,item)">
<view>
<view class="label" v-for="(opt, optIndex) in item.opts" :key="opt.label">
<radio :class="form[item.value]== opt.value ?'checked':''" :checked="form[item.value]== opt.value?true:false"
:value="opt.value"></radio>
<view style="display: inline-block;" class="right">{{opt.label}}</view>
</view>
</view>
</radio-group>
</view>
</view>
</template>
<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>
<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]:'请选择'}}
</view>
</picker>
</view>
</template>
<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">
<view class="padding-lr">
<view class="uni-list">
<checkbox-group @change="showChange($event,item)">
<label class="uni-list-cell uni-list-cell-pd" v-for="(itemCheck,indexCheck) in item.opts" :key="itemCheck.value"
@click="checkboxChange(indexCheck,itemCheck,item)">
<view class="list-item">
<view class="fl">
<checkbox :value="itemCheck.value" :checked="itemCheck.checked" />
</view>
<view style="padding-left:60upx">{{itemCheck.label}}</view>
</view>
</label>
</checkbox-group>
</view>
</view>
</uni-collapse-item>
</uni-collapse>
</view>
</template>
<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)">
<view class="picker">
{{form[item.value]?form[item.value]:'请选择'}}
</view>
</picker>
</view>
</template>
<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>
<input class="text-right" :placeholder="item.placeholder" :type="item.controType" :value="form[item.value]" name="input"
@input="updateInputVal($event,item.value)"></input>
</view>
</template>
<view class="margin-top-xs" v-show="item.child && childItem.show" v-for="(childItem,childIndex) in item.child" :key="childItem.value">
<view class="margin-top-sm padding-rl sict-label cu-form-group">
<view>
<span style="color:red;display: inline-block; vertical-align:inherit;margin-right:4upx" v-if="childItem.required">*</span>
{{childItem.title}}
</view>
<checkbox v-if="childItem.type == 'radio'" :class="form[childItem.value]?'checked':''" :checked="form[childItem.value]?true:false"
:value="childItem.value"></checkbox>
<picker v-else-if="childItem.type == 'picker'" range-key="label" @change="updatePickerVal($event,childItem)"
:value="form[childItem.value]" :range="childItem.opts">
<view class="picker">
{{form[childItem.value]>-1?childItem.opts[form[childItem.value]].label:'请选择'}}
</view>
</picker>
<input class="text-right" v-else-if="childItem.type == 'input'" :type="childItem.controType" :placeholder="childItem.placeholder"
:value="form[childItem.value]" name="input" @input="updateInputVal($event,childItem.value)"></input>
</view>
</view>
</template>
<view class="cu-form-group margin-top-sm">
<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" />
<view style="padding-left:60upx;padding-top:6upx">
我已阅读理解了全部情况,我同意参加
</view>
</label>
</checkbox-group>
</view>
</view>
</checkbox-group>
</view>
<view class="cu-modal" :class="modalName?'show':''">
<view class="cu-dialog">
<view class="cu-bar bg-white justify-end text-bold">
<view class="content">知情同意书</view>
<view class="action" @tap="modalName = ''">
<text class="cuIcon-close text-black"></text>
</view>
</view>
<view class="padding-xl green-word">
<div class="text-left">
<p>在您决定是否参加该筛查(或随访)之前,请仔细阅读以下内容。您可以和您的亲属、朋友一起讨论,或请医生给予解释,然后做出决定。</p>
<p>&nbsp;</p>
<p class="text-bold">一、筛查开展的背景和目的</p>
<p>癌症是严重威胁人民生命和健康的疾病,也是我国居民的主要死亡原因之一。目前因出现临床症状而就诊的患者多为中晚期病人,治疗费用昂贵而且效果不佳,给病人和家属带来极大的痛苦和沉重的经济负担。</p>
<p>医学研究和临床实践证实,癌症的发生发展有一个过程,可以通过科学有效的技术方法对人群进行筛查,及时发现癌前病变及早期癌,经有效治疗,可以阻断癌前病变的发展。接受早诊早治的患者痛苦小,经济花费少,而且患者可以很快恢复健康,像健康人一样工作生活。早诊早治是目前控制癌症的最有效的途径。</p>
<p>&nbsp;</p>
<p class="text-bold">四、哪些人不宜参加筛查</p>
<p>具有下列情况的,不宜参加筛查:①严重心脏病,心力衰竭;②重症呼吸道疾病,呼吸困难,哮喘持续状态;③有严重脑部疾病者;④咽后壁脓肿,严重脊柱畸形,或主动脉瘤患者;⑤身体虚弱不能耐受内镜检查,或难以镇静自控者;⑥上消化道腐蚀性炎症急性期,或疑为上消化道穿孔者;⑦大量腹水、严重腹胀,或有重度食管静脉曲张者;⑧有出血倾向者(凝血功能不正常),或正在服用抗凝血药物者,后者须停药一周后检查出凝血功能正常方可进行内镜检查;⑨妊娠期妇女;⑨40-69岁有碘过敏史者等。</p>
<p>&nbsp;</p>
<p class="text-bold">五、参加筛查可能带来的不适与不便</p>
<p>内镜检查和治疗时一般很安全。但也偶有检查和治疗过程中发生食管或胃出血、穿孔及药物反应(如碘过敏)等。对这些情况医生都有很好的预防措施和应急预案,即使发生,罕有危及生命的可能。如果您想进一步了解情况,请与检查小组的医生联系。</p>
<p>&nbsp;</p>
<p class="text-bold">六、保密原则</p>
<p>您的所有个人资料将是保密的,由承担该筛查工作的医院妥善保存。任何公开报告将不会披露您的个人信息。我们将在法律允许的范围内,尽一切努力保护您的隐私。</p>
<p>我们将保存所采取的标本资料,并可能在以后的研究中使用,标本上贴有带编码的标签,不会出现您的姓名,您的所有信息将会保密。</p>
</div>
<button @click="modalName = ''" class="cu-btn block bg-blue margin-tb-sm lg">我知道了</button>
</view>
</view>
</view>
<view class="padding">
<button form-type="submit" class="cu-btn block bg-blue margin-tb-sm lg">提 交</button>
</view>
</form>
</view>
</template>
<script>
import uniCollapse from '@/components/uni-collapse/uni-collapse.vue'
import uniCollapseItem from '@/components/uni-collapse-item/uni-collapse-item.vue'
import validate from '@/utils/validate.js'
export default {
components: {
uniCollapse,
uniCollapseItem
},
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: '无上述情况'
}]
}
],
list: [{
label: '单位名称',
required: true,
value: 'orgName',
titleClass: 'title',
type: 'picker',
opts: []
},
{
label: '所在部门',
required: true,
value: 'department',
titleClass: 'title',
placeholder: '请输入所在部门',
type: 'input',
},
{
label: '职务',
required: true,
value: 'position',
titleClass: 'title',
placeholder: '请输入职务',
type: 'input',
},
{
label: '员工姓名',
required: true,
value: 'name',
titleClass: 'title',
placeholder: '请输入员工姓名',
type: 'input',
},
{
label: '联系方式',
required: true,
value: 'phone',
titleClass: 'title',
placeholder: '请输入联系方式',
type: 'input',
},
{
label: '国籍',
required: true,
value: 'nationality',
titleClass: 'title',
type: 'picker',
opts: [{
label: "喀麦隆",
value: "Cameroon"
},
{
label: "加拿大",
value: "Canada"
},
{
label: "加那利群岛",
value: "Canary Is"
},
{
label: "佛得角",
value: "Cape Verde"
},
{
label: "开曼群岛",
value: "Cayman Is"
},
{
label: "中非共和国",
value: "Central African Rep."
},
{
label: "乍得",
value: "Chad"
},
{
label: "智利",
value: "Chile"
},
{
label: "中国",
value: "China"
},
{
label: "哥伦比亚",
value: "Colombia"
},
{
label: "科摩罗",
value: "Comoros"
},
{
label: "刚果",
value: "Congo"
},
{
label: "民主刚果",
value: "Congo,DR"
},
{
label: "库克群岛",
value: "Cook Is"
},
{
label: "哥斯达黎加",
value: "Costa Rica"
},
{
label: "科特迪瓦",
value: "Cote d'lvoire"
},
{
label: "克罗地亚",
value: "Croatia Rep"
},
{
label: "古巴",
value: "Cuba"
},
{
label: "库腊索岛",
value: "Curacao"
},
{
label: "塞浦路斯",
value: "Cyprus"
},
{
label: "捷克共和国",
value: "Czech Rep"
},
{
label: "丹麦",
value: "Denmark"
},
{
label: "吉布提",
value: "Djibouti"
},
{
label: "多米尼克",
value: "Dominica"
},
{
label: "多米尼加共和国",
value: "Dominican Rep."
},
{
label: "东帝汶",
value: "East Timor"
},
{
label: "厄瓜多尔",
value: "Ecuador"
},
{
label: "埃及",
value: "Egypt"
},
{
label: "萨尔瓦多",
value: "El Salvador"
},
{
label: "赤道几内亚",
value: "Eq.Guinea"
},
{
label: "厄立特里亚",
value: "Eritrea"
},
{
label: "爱沙尼亚",
value: "Estonia"
},
{
label: "埃塞俄比亚",
value: "Ethiopia"
},
{
label: "斐济",
value: "Fiji"
},
{
label: "芬兰",
value: "Finland"
},
{
label: "法国",
value: "France"
},
{
label: "法属圭亚那",
value: "French Guyana"
},
{
label: "法属玻利尼西亚",
value: "French Polynesia"
},
{
label: "加蓬",
value: "Gabon"
},
{
label: "冈比亚",
value: "Gambia"
},
{
label: "盖比群岛",
value: "Gambier Is"
},
{
label: "格鲁吉亚",
value: "Georgia"
},
{
label: "德国",
value: "Germany"
},
{
label: "加纳",
value: "Ghana"
},
{
label: "直布罗陀",
value: "Gibraltar"
},
{
label: "希腊",
value: "Greece"
},
{
label: "格陵兰",
value: "Greenland"
},
{
label: "格林纳达",
value: "Grenada"
},
{
label: "瓜德罗普",
value: "Guadeloupe"
},
{
label: "危地马拉",
value: "Guatemala"
},
{
label: "几内亚",
value: "Guinea"
},
{
label: "几内亚(比绍)",
value: "Guinea Bissau"
},
{
label: "圭亚那",
value: "Guyana"
},
{
label: "海地",
value: "Haiti"
},
{
label: "洪都拉斯",
value: "Honduras"
},
{
label: "中国香港",
value: "Hong Kong"
},
{
label: "匈牙利",
value: "Hungary"
},
{
label: "冰岛",
value: "Iceland"
},
{
label: "印度",
value: "India"
},
{
label: "印度尼西亚",
value: "Indonesia"
},
{
label: "伊朗",
value: "Iran"
},
{
label: "伊拉克",
value: "Iraq"
},
{
label: "爱尔兰",
value: "Ireland"
},
{
label: "以色列",
value: "Israel"
},
{
label: "意大利",
value: "Italy"
},
{
label: "牙买加",
value: "Jamaica"
},
{
label: "日本",
value: "Japan"
},
{
label: "约旦",
value: "Jordan"
},
{
label: "哈萨克斯坦",
value: "Kazakhstan"
},
{
label: "肯尼亚",
value: "Kenya"
},
{
label: "吉尔吉斯斯坦",
value: "Kirghizia"
},
{
label: "基里巴斯",
value: "Kiribati"
},
{
label: "韩国",
value: "Korea Rep."
},
{
label: "朝鲜",
value: "Korea,DPR"
},
{
label: "科威特",
value: "Kuwait"
},
{
label: "老挝",
value: "Laos,PDR"
},
{
label: "拉脱维亚",
value: "Latvia"
},
{
label: "黎巴嫩",
value: "Lebanon"
},
{
label: "莱索托",
value: "Lesotho"
},
{
label: "利比里亚",
value: "Liberia"
},
{
label: "利比亚",
value: "Libyan Arab Jm"
},
{
label: "列支敦士登",
value: "Liechtenstein"
},
{
label: "立陶宛",
value: "Lithuania"
},
{
label: "卢森堡",
value: "Luxembourg"
},
{
label: "中国澳门",
value: "Macau"
},
{
label: "马其顿",
value: "Macedonia Rep"
},
{
label: "马达加斯加",
value: "Madagascar"
},
{
label: "马拉维",
value: "Malawi"
},
{
label: "马来西亚",
value: "Malaysia"
},
{
label: "马尔代夫",
value: "Maldives"
},
{
label: "马里",
value: "Mali"
},
{
label: "马耳他",
value: "Malta"
},
{
label: "马克萨斯群岛",
value: "Marquesas Is"
},
{
label: "马绍尔群岛",
value: "Marshall Is Rep"
},
{
label: "马提尼克",
value: "Martinique"
},
{
label: "毛里塔尼亚",
value: "Mauritania"
},
{
label: "毛里求斯",
value: "Mauritius"
},
{
label: "马约特岛",
value: "Mayotte"
},
{
label: "梅利利亚",
value: "Melilla"
},
{
label: "墨西哥",
value: "Mexico"
},
{
label: "密克罗尼西亚联邦",
value: "Micronesia Fs"
},
{
label: "摩尔多瓦",
value: "Moldavia"
},
{
label: "摩纳哥",
value: "Monaco"
},
{
label: "蒙古",
value: "Mongolia"
},
{
label: "蒙特塞拉特",
value: "Montserrat"
},
{
label: "摩洛哥",
value: "Morocco"
},
{
label: "莫桑比克",
value: "Mozambique"
},
{
label: "缅甸",
value: "Myanmar"
},
{
label: "纳米比亚",
value: "Namibia"
},
{
label: "瑙鲁",
value: "Nauru"
},
{
label: "尼泊尔",
value: "Nepal"
},
{
label: "荷兰",
value: "Netherlands"
},
{
label: "荷属安德列斯",
value: "NETHERLANDS ANTILLES"
},
{
label: "新喀里多尼亚",
value: "New Caledonia"
},
{
label: "新西兰",
value: "New Zealand"
},
{
label: "尼加拉瓜",
value: "Nicaragua"
},
{
label: "尼日尔",
value: "Niger"
},
{
label: "尼日利亚",
value: "Nigeria"
},
{
label: "诺福克岛",
value: "Norfolk Is"
},
{
label: "挪威",
value: "Norway"
},
{
label: "阿曼",
value: "Oman"
},
{
label: "巴基斯坦",
value: "Pakistan"
},
{
label: "帕劳共和国",
value: "Palau"
},
{
label: "巴勒斯坦",
value: "Palestine"
},
{
label: "巴拿马",
value: "Panama"
},
{
label: "巴布亚新几内亚",
value: "Papua New Guinea"
},
{
label: "巴拉圭",
value: "Paraguay"
},
{
label: "秘鲁",
value: "Peru"
},
{
label: "菲律宾",
value: "Philippines"
},
{
label: "波兰",
value: "Poland"
},
{
label: "葡萄牙",
value: "Portugal"
},
{
label: "波多黎各",
value: "Puerto Rico"
},
{
label: "卡塔尔",
value: "Qatar"
},
{
label: "也门共和国",
value: "Republic of Yemen"
},
{
label: "留尼汪",
value: "Reunion"
},
{
label: "罗马尼亚",
value: "Romania"
},
{
label: "俄罗斯联邦",
value: "Russia"
},
{
label: "卢旺达",
value: "Rwanda"
},
{
label: "南非",
value: "S.Africa"
},
{
label: "萨巴",
value: "Saba"
},
{
label: "圣卢西亚",
value: "Saint Lucia"
},
{
label: "圣马丁岛",
value: "Saint Martin Is"
},
{
label: "圣文森特和格林纳丁斯",
value: "Saint Vincent & Grenadines"
},
{
label: "萨摩亚",
value: "Samoa"
},
{
label: "圣马力诺",
value: "San Marino"
},
{
label: "圣多美和普林西比",
value: "Sao Tome and Principe"
},
{
label: "沙特阿拉伯",
value: "Saudi Arabia"
},
{
label: "塞内加尔",
value: "Senegal"
},
{
label: "塞黑",
value: "Serbia & Montenegro"
},
{
label: "塞舌尔",
value: "Seychelles"
},
{
label: "塞拉利昂",
value: "Sierra Leone"
},
{
label: "新加坡",
value: "Singapore"
},
{
label: "斯洛伐克",
value: "Slovak Rep"
},
{
label: "斯洛文尼亚",
value: "Slovenia Rep"
},
{
label: "社会群岛",
value: "Society Is"
},
{
label: "所罗门群岛",
value: "Solomon Is"
},
{
label: "索马里",
value: "Somalia"
},
{
label: "西班牙",
value: "Spain"
},
{
label: "斯里兰卡",
value: "Sri Lanka"
},
{
label: "圣其茨-尼维斯",
value: "St. Kitts-Nevis"
},
{
label: "圣卢西亚",
value: "ST. LUCIA"
},
{
label: "圣文森特和格纳丁斯",
value: "ST. VINCENT AND THE GRENADINES"
},
{
label: "圣皮埃尔和密克隆",
value: "St.Pierre and Miquelon"
},
{
label: "苏丹",
value: "Sudan"
},
{
label: "苏里南",
value: "Suriname"
},
{
label: "斯威士兰",
value: "Swaziland"
},
{
label: "瑞典",
value: "Sweden"
},
{
label: "瑞士",
value: "Switzerland"
},
{
label: "叙利亚",
value: "Syrian"
},
{
label: "塔吉克斯坦",
value: "Tadzhikistan"
},
{
label: "中国台湾",
value: "Taiwan prov."
},
{
label: "坦桑尼亚",
value: "Tanzania"
},
{
label: "泰国",
value: "Thailand"
},
{
label: "荷属安地列斯群岛",
value: "the Netherlands Antilles"
},
{
label: "多哥",
value: "Togo"
},
{
label: "汤加",
value: "Tonga"
},
{
label: "特立尼达和多巴哥",
value: "Trinidad & Tobago"
},
{
label: "土阿莫土群岛",
value: "Tuamotu Is"
},
{
label: "土布艾群岛",
value: "Tubai Is"
},
{
label: "突尼斯",
value: "Tunisia"
},
{
label: "土耳其",
value: "Turkey"
},
{
label: "土库曼斯坦",
value: "Turkmenistan"
},
{
label: "特克斯和凯科斯群岛",
value: "Turks & Caicos Is"
},
{
label: "图瓦卢",
value: "Tuvalu"
},
{
label: "乌干达",
value: "Uganda"
},
{
label: "乌克兰",
value: "Ukraine"
},
{
label: "阿联酋",
value: "United Arab Emirates"
},
{
label: "英国",
value: "United Kingdom"
},
{
label: "美国",
value: "United States"
},
{
label: "乌拉圭",
value: "Uruguay"
},
{
label: "乌兹别克斯坦",
value: "Uzbekstan"
},
{
label: "瓦努阿图",
value: "Vanuatu"
},
{
label: "梵蒂冈城国",
value: "Vatican City State"
},
{
label: "委内瑞拉",
value: "Venezuela"
},
{
label: "越南",
value: "Vietnam"
},
{
label: "英属维尔京群岛",
value: "VIRGIN IS.(U.K.)"
},
{
label: "美属维尔京群岛",
value: "VIRGIN IS.(US)"
},
{
label: "瓦利斯和浮图纳",
value: "Wallis and Futuna"
},
{
label: "西撒哈拉",
value: "Western Sahara"
},
{
label: "赞比亚",
value: "Zambia"
},
{
label: "津巴布韦",
value: "Zimbabwe"
}
]
},
{
label: '身份证号/护照号',
required: true,
value: 'idCard',
titleClass: 'title',
placeholder: '请输入身份证号/护照号',
type: 'input',
},
{
label: '户籍地址',
required: true,
value: 'householdAddress',
titleClass: 'title',
placeholder: '请输入户籍地址',
type: 'input',
},
{
label: '在沪居住(暂住)地址',
required: true,
value: 'residenceAddress',
titleClass: 'title',
placeholder: '请输入地址',
type: 'input',
},
{
label: '是否复工',
required: true,
value: 'returnToWork',
titleClass: 'title',
type: 'radio',
opts: [{
value: '0',
label: ''
},
{
value: '1',
label: ''
},
],
show: [11],
showValue: ['1']
},
{
label: '计划复工日期',
hidden: true,
required: true,
value: 'planReturnDate',
titleClass: 'title',
type: 'date',
num: 11
},
{
label: '是否离沪',
required: true,
value: 'left',
titleClass: 'title',
type: 'radio',
opts: [{
value: '0',
label: ''
},
{
value: '1',
label: ''
}
],
show: [13, 14, 15, 16, 17, 18, 19, 20, 21],
showValue: ['1']
},
{
label: '离沪原因',
required: true,
value: 'leftReason',
titleClass: 'title',
type: 'picker',
opts: [{
value: 'a',
label: '探亲'
}, {
value: 'b',
label: '出差'
}, {
value: 'b',
label: '旅游'
}, {
value: 'b',
label: '其他'
}],
num: 13,
hidden: true,
},
{
label: '离沪出发日期',
required: true,
value: 'leftDate',
titleClass: 'title',
type: 'date',
num: 14,
hidden: true,
},
{
label: '离沪方式',
required: true,
value: 'leftVehicle',
titleClass: 'title',
type: 'radio',
opts: [{
value: '火车',
label: '火车 '
}, {
value: '飞机',
label: '飞机'
}, {
value: '客车',
label: '客车'
}, {
value: '自驾',
label: '自驾'
}],
num: 15,
show: ['16'],
showValue: ['火车', '飞机'],
hidden: true,
},
{
label: '离沪车次/航班',
required: true,
value: 'leftVehicleNum',
titleClass: 'title',
placeholder: '请输入地址',
type: 'input',
num: 16,
hidden: true,
},
{
label: '离沪到达日期',
required: true,
value: 'leftReachDate',
titleClass: 'title',
type: 'date',
num: 17,
hidden: true,
},
{
label: '离沪目的地',
required: true,
value: 'leftTarget',
titleClass: 'title',
placeholder: '请输入地址',
type: 'input',
num: 18,
hidden: true,
},
{
label: '离沪具体地址',
required: true,
value: 'leftAddress',
titleClass: 'title',
placeholder: '请输入地址',
type: 'input',
num: 19,
hidden: true,
},
{
label: '离沪同行者姓名(没有填无)',
required: true,
value: 'leftDependentNames',
titleClass: 'title',
placeholder: '请输入',
type: 'input',
num: 20,
hidden: true,
},
{
label: '离沪同行者联系方式(没有填无)',
required: true,
value: 'leftDependentPhones',
titleClass: 'title',
placeholder: '请输入',
type: 'input',
num: 21,
hidden: true,
},
{
label: '是否返沪',
required: true,
value: 'backed',
titleClass: 'title',
type: 'radio',
show: [23, 24, 25, 26, 27, 28, 29],
showValue: ['1'],
opts: [{
value: '0',
label: ''
}, {
value: '1',
label: ''
}]
},
{
label: '返沪出发地',
required: true,
value: 'backFrom',
titleClass: 'title',
placeholder: '请输入',
type: 'input',
num: 23,
hidden: true,
},
{
label: '返沪出发日期',
required: true,
value: 'backDate',
titleClass: 'title',
type: 'date',
num: 24,
hidden: true,
},
{
label: '返沪方式',
required: true,
value: 'backVehicle',
titleClass: 'title',
type: 'radio',
opts: [{
value: '火车',
label: '火车 '
}, {
value: '飞机',
label: '飞机'
}, {
value: '客车',
label: '客车'
}, {
value: '自驾',
label: '自驾'
}],
show: ['26'],
showValue: ['火车', '飞机'],
num: 25,
hidden: true,
},
{
label: '返沪车次/航班',
required: true,
value: 'backVehicleNum',
titleClass: 'title',
placeholder: '请输入地址',
type: 'input',
num: 26,
hidden: true,
},
{
label: '返沪到达日期',
required: true,
value: 'backReachedDate',
titleClass: 'title',
type: 'date',
num: 27,
hidden: true,
},
{
label: '返沪同行者姓名(没有填无)',
required: true,
value: 'backDependentNames',
titleClass: 'title',
placeholder: '请输入',
type: 'input',
num: 28,
hidden: true,
},
{
label: '返沪同行者联系方式(没有填无)',
required: true,
value: 'backDependentPhones',
titleClass: 'title',
placeholder: '请输入',
type: 'input',
num: 29,
hidden: true,
},
{
label: '当前状况',
required: true,
value: 'currentStatus',
titleClass: 'title',
type: 'pickerMore',
opts: [{
value: '已经确诊',
label: '已经确诊'
}, {
value: '疑似诊断',
label: '疑似诊断'
}, {
value: '亲密接触者',
label: '亲密接触者'
}, {
value: '居家观察/正在接受集中医学观察',
label: '居家观察/正在接受集中医学观察'
}, {
value: '已解除集中医学观察',
label: '已解除集中医学观察'
}, {
value: '无上述情况',
label: '无上述情况'
}],
showList: [{
value: '亲密接触者',
show: [32, 35, 38, 40, 43, 45, 47]
},
{
value: '居家观察/正在接受集中医学观察',
show: [49, 50]
},
]
},
{
label: '停留湖北',
required: true,
value: 'hubeiStopped',
titleClass: 'title',
type: 'radio',
num: 32,
hidden: true,
opts: [{
value: '0',
label: ''
}, {
value: '1',
label: ''
}],
show: [33, 34],
showValue: ['1']
},
{
label: '到达湖北日期',
required: true,
value: 'hubeiStopStartDate',
titleClass: 'title',
type: 'date',
num: 33,
hidden: true
},
{
label: '离开湖北日期',
required: true,
value: 'hubeiStopEndDate',
titleClass: 'title',
type: 'date',
num: 34,
hidden: true
},
{
label: '途径湖北',
required: true,
value: 'hubeiPassed',
titleClass: 'title',
type: 'radio',
opts: [{
value: '0',
label: ''
}, {
value: '1',
label: ''
}],
show: [36, 37],
num: 35,
hidden: true,
showValue: ['1']
},
{
label: '途径湖北到达日期',
required: true,
value: 'hubeiPassStartDate',
titleClass: 'title',
type: 'date',
num: 36,
hidden: true
},
{
label: '途径湖北离开日期',
required: true,
value: 'hubeiPassEndDate',
titleClass: 'title',
type: 'date',
num: 37,
hidden: true
},
{
label: '接触湖北人员',
required: true,
value: 'hubeiContacted',
titleClass: 'title',
type: 'radio',
opts: [{
value: '0',
label: ''
}, {
value: '1',
label: ''
}],
show: [39],
num: 38,
hidden: true,
showValue: ['1']
},
{
label: '接触湖北人员接触时间',
required: true,
value: 'hubeiContactDate',
titleClass: 'title',
type: 'date',
num: 39,
hidden: true
},
{
label: '家属停留或途径湖北',
required: true,
value: 'hubeiFamilyStopped',
titleClass: 'title',
type: 'radio',
opts: [{
value: '0',
label: ''
}, {
value: '1',
label: ''
}],
show: [41, 42],
num: 40,
hidden: true,
showValue: ['1']
},
{
label: '家属停留或途径湖北到达日期',
required: true,
value: 'hubeiFamilyStopStartDate',
titleClass: 'title',
type: 'date',
num: 41,
hidden: true
},
{
label: '家属停留或途径湖北离开日期',
required: true,
value: 'hubeiFamilyStoppEndDate',
titleClass: 'title',
type: 'date',
num: 42,
hidden: true
},
{
label: '家属接触湖北人员',
required: true,
value: 'hubeiFamilyContacted',
titleClass: 'title',
type: 'radio',
opts: [{
value: '0',
label: ''
}, {
value: '1',
label: ''
}],
show: [44],
num: 43,
hidden: true,
showValue: ['1']
},
{
label: '家属接触湖北人员接触时间',
required: true,
value: 'hubeiFamilyContactDate',
titleClass: 'title',
type: 'date',
num: 44,
hidden: true
},
{
label: '接触过已确诊或疑似患者',
required: true,
value: 'patientContact',
titleClass: 'title',
type: 'radio',
opts: [{
value: '0',
label: ''
}, {
value: '1',
label: ''
}],
show: [46],
num: 45,
hidden: true,
showValue: ['1']
},
{
label: '接触患者时间',
required: true,
value: 'patientContactDate',
titleClass: 'title',
type: 'date',
num: 46,
hidden: true
},
{
label: '家属接触过已确诊或疑似患者',
required: true,
value: 'familyPatientContact',
titleClass: 'title',
type: 'radio',
opts: [{
value: '0',
label: ''
}, {
value: '1',
label: ''
}],
show: [48],
num: 47,
hidden: true,
showValue: ['1']
},
{
label: '家属接触患者时间',
required: true,
value: 'familyPatientContactDate',
titleClass: 'title',
type: 'date',
num: 48,
hidden: true
},
{
label: '隔离地址',
required: true,
value: 'quarantineAdress',
titleClass: 'title',
placeholder: '请输入',
type: 'input',
num: 49,
hidden: true
},
{
label: '隔离开始日期',
required: true,
value: 'quarantineDate',
titleClass: 'title',
type: 'date',
num: 50,
hidden: true
},
{
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: '以上均无'
}]
},
],
form: {
agree: 0,
orgId: '',
orgName: '',
department: '',
position: '',
name: '',
phone: '',
nationality: '',
idCard: '',
returnToWork: '',
householdAddress: '',
residenceAddress: '',
planReturnDate: ''
}
}
},
onLoad(option) {
this.getOrg()
},
methods: {
openModal() {
if (!this.form.agree) {
this.form.agree = '1'
this.modalName = true
} else {
this.form.agree = 0
}
},
getOrg() {
const data = {
params: {
pageNum: 1,
pageSize: 1000000
}
}
this.$http.get(`/sict-ncov/org/page`, data).then(res => {
const d = res.data
if (d.code == 1) {
let list = []
d.object.list.forEach(item => {
list.push({
label: item.orgName,
value: item.id
})
})
this.list[0].opts = list
}
}).catch(err => {
console.log(err)
})
},
// 获取信息
getInfo(id) {
},
// 更新复选框绑定的表单内容
checkboxChange(index, obj, item) {
const checkList = item.opts
const prop = item.value
for (let i = 0, lenI = checkList.length; i < lenI; ++i) {
if (index == i) {
this.$set(checkList[i], 'checked', !checkList[i].checked)
}
}
// 处理以上均无情况
const nullList = ['无上述情况', '以上均无']
if (nullList.includes(obj.label)) {
for (var i = 0, lenI = checkList.length; i < lenI; ++i) {
this.$set(checkList[i], 'checked', false)
}
this.$set(checkList[checkList.length - 1], 'checked', true)
this.form[prop] = obj.label
} else {
this.$set(checkList[checkList.length - 1], 'checked', false)
const values = []
for (var i = 0, lenI = checkList.length; i < lenI; ++i) {
if (checkList[i].checked) {
values.push(checkList[i].label)
}
}
this.form[prop] = values.join(',')
}
},
radioChange(val, prop) {
this.$set(this.form, prop, val)
this.isShowChild()
},
// 隐藏/显示
showChange(evt, item) {
const prop = item.value
const type = item.type
if (type === 'radio') {
const val = evt.target.value
this.$set(this.form, prop, val)
for (let i = 0; i < this.list.length; i++) {
const current = this.list[i]
if (current.value == prop && current.show) {
current.show.forEach(child => {
this.list.forEach(row => {
if (child == row.num) {
this.$set(row, 'hidden', !current.showValue.includes(val))
}
})
})
}
}
}
// 复选框展示和隐藏
if (type === 'pickerMore') {
console.log(evt)
let val = evt.detail.value;
const showList = item.showList
if (showList && showList.length > 0) {
showList.forEach(item => {
item.show.forEach(child => {
this.list.forEach(row => {
if (child == row.num) {
this.$set(row, 'hidden', !val.includes(item.value))
}
})
})
})
}
}
},
isShowChild() {
console.log(this.form['returnToWork'])
this.list[10].hidden = this.form['returnToWork'] == 'a'
},
Switch(e, prop) {
this.form[prop] = e.detail.value
},
// 更新输入框绑定的表单内容
updateInputVal(event, props) {
this.form[props] = event.target.value
},
// 更新下拉框绑定的表单内容
updatePickerVal(event, item) {
console.log(event)
const opts = item.opts
const prop = item.value
const val = event.detail.value
if (!opts) {
this.$set(this.form, prop, val)
return
}
for (let i = 0; i < opts.length; i++) {
if (i == val) {
if (prop == 'orgName') {
this.$set(this.form, 'orgId', opts[i].value)
this.$set(this.form, prop, opts[i].label)
} else {
this.$set(this.form, prop, opts[i].label)
}
}
}
},
// 提交信息
formSubmit() {
console.log(this.form)
let flag = true
let msg = ''
for (let i = 0; i < this.list.length; i++) {
if (this.list[i].required) {
const val = this.form[this.list[i].value]
if (!val&& !this.list[i].hidden && this.list[i].required) {
flag = false
uni.showToast({
icon: 'none',
title: `第${i+1}${this.list[i].label }未填写`
})
break
}
if (!flag) {
break
}
}
}
if (!flag) {
return false
} else {
this.$http.post(`/sict-ncov/report`, this.form).then(res => {
const d = res.data
if (d.code == 1) {
uni.navigateBack()
} else {
uni.showToast({
icon: 'none',
title: d.message
})
}
}).catch(err => {
console.log(err)
})
}
}
}
}
</script>
<style lang="scss" scoped>
.sict-title {
padding: 20upx 0;
padding-right: 20upx;
word-break: break-all;
text-align: justify
}
.sict-label {
background-color: white;
font-size: 30upx;
text-align: justify;
}
.sict-value {
margin-top: 15upx;
.right {
margin-left: 10upx;
vertical-align: bottom;
}
.label {
// display: inline-block;
text-align: left;
padding: 20upx 0;
padding-left: 30upx;
border-bottom: 2upx solid #d3d3d3;
&:last-child {
border-bottom: 0;
}
}
}
uni-radio-group {
border: 2upx solid #d3d3d3;
border-radius: 8upx;
margin-left: 20upx;
display: block;
}
radio-group {
border: 2upx solid #d3d3d3;
border-radius: 8upx;
margin-left: 20upx;
display: block;
}
.icon-right {
font-family: cuIcon;
font-size: 34upx;
color: #8799a3;
line-height: 100upx;
width: 60upx;
text-align: right;
margin: auto;
}
.uni-list-cell {
.list-item {
border-bottom: 2upx solid #d3d3d3;
padding: 20upx 0;
padding-left: 30upx;
}
&:last-child {
.list-item {
border-bottom: 0;
}
}
}
.uni-list {
margin-left: 20upx;
border: 2upx solid #d3d3d3;
border-radius: 8upx;
}
</style>
<style>
.questionnaire .uni-collapse-cell__title:after {
border-bottom: 0 !important;
}
</style>
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
<view class="btnList"> <view class="btnList">
<button class="btnStaff" type="primary" @click="staff">员工填报</button> <button class="btnStaff" type="primary" @click="staff">员工填报</button>
<button class="btnSecurity" type="primary" @click="security">安保测温</button> <button class="btnSecurity" type="primary" @click="security">安保测温</button>
<button class="btnSecurity" type="primary" @click="fillInDay">每日填报</button>
<image class="img" src="../../static/22.jpg" mode="" ></image> <image class="img" src="../../static/22.jpg" mode="" ></image>
<view class="tips"> <view class="tips">
入园请向门卫出示健康码 入园请向门卫出示健康码
...@@ -50,6 +51,12 @@ ...@@ -50,6 +51,12 @@
url: `/pages/security/security` url: `/pages/security/security`
}) })
}, },
fillInDay() {
console.log(232)
uni.navigateTo({
url:`/pages/fillInDay/fillInDay`
})
},
// 获取用户信息 // 获取用户信息
getUserInfo(code) { getUserInfo(code) {
this.$http.post(`/sict-ncov/user/auth?code=${code}`).then(res => { this.$http.post(`/sict-ncov/user/auth?code=${code}`).then(res => {
...@@ -81,7 +88,7 @@ ...@@ -81,7 +88,7 @@
background-size: cover; background-size: cover;
background-image: url('http://139.9.163.126/gastric/static/background.jpg'); background-image: url('http://139.9.163.126/gastric/static/background.jpg');
.btnList{ .btnList{
padding-top: 435upx; padding-top: 355upx;
.btnStaff,.btnSecurity{ .btnStaff,.btnSecurity{
background-color: #92d0f1; background-color: #92d0f1;
color: #FFFFFF; color: #FFFFFF;
......
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