<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)" @blur="inputBlur($event,item)"></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: '所在部门',
						value: 'department',
						titleClass: 'title',
						placeholder: '请输入所在部门',
						type: 'input',
					},
					{
						label: '职务',
						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',
						validator:validate.isPhone
					},
					{
						label: '国籍',
						required: true,
						value: 'nationality',
						titleClass: 'title',
						type: 'picker',
						opts: [{
								label: "中国",
								value: "China"
							},
							{
								label: "中国香港",
								value: "Hong Kong"
							},
							{
								label: "中国澳门",
								value: "Macau"
							},
							{
								label: "中国台湾",
								value: "Taiwan prov."
							},
							{
								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: "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: "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: "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: "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"
							}
						],
						show: [8],
						showValue: ['China']

					},
					{
						label: '身份证号/护照号',
						required: true,
						value: 'idCard',
						titleClass: 'title',
						placeholder: '请输入身份证号/护照号',
						type: 'input',
						validator:validate.isIdCard
						
					},
					{
						label: '户籍地址',
						required: true,
						value: 'householdAddress',
						titleClass: 'title',
						placeholder: '请输入户籍地址',
						type: 'input',
						num: 8,
						hidden: true,
					},
					{
						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: ['0']
					},
					{
						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))
									}
								})
							})
							break
						}
					}
				}
				// 复选框展示和隐藏
				if (type === 'pickerMore') {
					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))
									}
								})
							})
						})

					}
				}

				if (type === 'picker') {
					let val = 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) {
							current.show.forEach(child => {
								this.list.forEach(row => {
									if (child == row.num) {
										this.$set(row, 'hidden', !current.showValue.includes(val))
									}
								})
							})
							break
						}
					}
				}

			},
			isShowChild() {
				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
			},
			// 输入框失去焦点
			inputBlur(e,item) {
				const val = e.detail.value
				if(!val) {
					return
				}
				if(item.validator && !item.validator(val)) {
					uni.showToast({
						icon: 'none',
						title: `${item.label }填写错误`
					})
				}
			},
				
			// 更新下拉框绑定的表单内容
			updatePickerVal(event, item) {
				const opts = item.opts
				const prop = item.value
				const val = event.detail.value
				if (!opts) {
					this.$set(this.form, prop, val)
					return
				}
				if (prop == 'orgName') {
					this.$set(this.form, 'orgId', opts[val].value)
					this.$set(this.form, prop, opts[val].label)
				} else {
					this.$set(this.form, prop, opts[val].label)
				}

				if (item.show) {
					this.showChange(event, item)
				}
			},
			// 提交信息
			formSubmit() {
				let flag = true
				let msg = ''
				if(this.form.agree != 1) {
					uni.showToast({
						icon: 'none',
						title: `请勾选知情同意书`
					})
					return
				}
				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(this.list[i].validator && !this.list[i].validator(val)) {
							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()
							uni.showToast({
								icon: 'success',
								title:'提交成功'
							})
						} 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>
