<template>
	<view class="mainPointsDetailPage">
		<tm-modal v-if="showSelectModal" @click="clickModalhandle">
			<view class="checkItemResultModal">
				<view class="modalContent">
					<view class="modalBar">请选择查核结果</view>
					<scroll-view v-if="data.checkModelName != '访谈'" class="scroll" scroll-y="true">
						<view v-for="item in checkItemResultList"
							:class="[checkedSelectResultListIds.includes(item.id)?'list on':'list']" :key="item.id"
							@click.stop="selectResultHandle(item)">
							<image class="checkIcon" :src="`../../static/${!moreDeduction?'check-radio.png':'check-checkbox.png'}`" mode=""></image>
							{{item.resultName}}
						</view>
					</scroll-view>

					<scroll-view v-if="data.checkModelName == '访谈'" class="scroll" scroll-y="true">
						<view v-for="item in checkItemResultList"
							:class="[checkedSelectResultListIds[currentEditTextAreaIndex]&&checkedSelectResultListIds[currentEditTextAreaIndex].includes(item.id)?'list on':'list']"
							:key="item.id" @click.stop="selectResultHandle(item)">
							<image class="checkIcon" :src="`../../static/${!moreDeduction?'check-radio.png':'check-checkbox.png'}`" mode=""></image>
							{{item.resultName}}
						</view>
					</scroll-view>
					<view class="comfirmBtn" @click="commitSelectResult">确定</view>
				</view>
			</view>
		</tm-modal>
		<scroll-view scroll-y="true" class="scroll-y">
			<view class="checkItem">
				<view class="chBg">
					<image src="../../static/chahexiang-bg.png" mode="" class="img"></image>
					<text class="title">查核项</text>
				</view>
				<image src="../../static/tuli.png" mode="" class="tlImg" @click="toTuLi"></image>
				<view class="chContent">
					<view class="checkItemName">{{ data.checkItemName ? data.checkItemName : "" }}</view>
					<view class="checkPointName">{{ data.checkPointName ? data.checkPointName : "" }}</view>
					<view class="cont">
						<view class="floatLeft other">
							<view class="letterTitle2">{{ data.deptName ? data.deptName : "" }}</view>
							<view class="letterTitle">查核单位</view>
						</view>
						<view class="floatLeft borderLine"></view>
						<view class="floatLeft other">
							<view class="letterTitle2">{{ data.checkModelName ? data.checkModelName : "" }}</view>
							<view class="letterTitle">查核方式</view>
						</view>
						<view class="floatLeft borderLine"></view>
						<view class="floatLeft other">
							<view class="letterTitle2">{{ data.lastResult ? data.lastResult : "" }}</view>
							<view class="letterTitle">上次结果</view>
						</view>
						<view class="floatLeft borderLine"></view>
						<view class="floatLeft other">
							<view class="letterTitle2">{{ data.checkResult ? data.checkResult : "" }}</view>
							<view class="letterTitle">本次结果</view>
						</view>
					</view>
					<view class="checked">
						<view class="checked-checkItem" v-for="item in checkConfiglist" :key="item.attr"
							@click="checkedOne(item)" :style="
                Index == item.attr
                  ? { backgroundColor: '#3377FF', color: '#fff' }
                  : { backgroundColor: '#EBEFF7' }
              ">{{item.attr}}
							<view v-if="lastIndex == item.attr">
								<image src="../../static/shangci.png" mode="" class="img"></image>
								<text class="lastName">上次</text>
							</view>
						</view>

					</view>
					<view class="more" @click="toHistory">
						<text>查看改善历史</text>
						<view class="moreImg">
							<image src="../../static/blue-arrow.png" mode="" class="moreImg2"></image>
						</view>
					</view>
					<view class="multipleResponsible">
						<view class="inner" @click="toSelectResponsible">
							<text class="label">当事人</text>
							<input type="text" disabled v-model="checkedResponsibleList.join(',')"
								placeholder="请选择当事人（可多选）" class="value" placeholder-class="valuePlaceholder" />
							<image class="arrow" src="../../static/incon-more.png" mode=""></image>
						</view>
					</view>
					<view class="score">
						<view class="box">
							<text class="lable">总分</text>
							<text class="totalScore">{{totalScore}}</text>
						</view>
						<view class="box">
							<text class="lable">本次得分</text>
							<text class="currentScore">{{currentScore>0?currentScore:0}}</text>
						</view>
					</view>
					<view class="inputScore">
						<text class="label">本项扣分</text>
						<view class="textValue" v-if="!ifInputScore" @click='changeToInputScore'>{{deductPoint}}</view>
						<input class="value" v-if="ifInputScore" @input="onInputScore" focus='true' auto-blur='true'  @blur='inputOnBlur' type="number" v-model="inputScore"
						  placeholder-class="placeholder" />
					</view>
				</view>
			</view>
			<view v-if="data.checkModelName == '访谈'" class="talk">
				<view v-for="(item, i) in talkList">
					<view class="talkTitle">
						<text>访谈内容{{ i + 1 }}{{ i == 0 ? "" : "（访谈人员：护士、医生）" }}</text>
						<text v-if="i != 0" class="del" @click="del(i)">删除</text>
					</view>
					<view>
						<view class="talkResult">
							<view class="seeResultFloorOne">
								<text class="seeName">查核结果</text>
								<view class="plusAction" v-if="checkItemResultList.length>0"
									@click="openSelectModal(i)">
									<image class="plusIcon" src="../../static/icon-add.png" mode=""></image>
									<text class="threePoint">缺陷</text>
								</view>
							</view>
							<text class="clear" @click="clearResult(true,i)">清空</text>
							<textarea maxlength="300" class="seeTextarea" value="" placeholder="请输入"
								v-model="item.talkResult" @blur="changeTextarea($event, i)"></textarea>
						</view>
						<view class="talkImg" @click="imgClick(i)">
							<tm-upload-img label="上传图片" :filePaths="item.filePath" :isMultiple="true"
							    :pickIndex = "i"
								@changeFilePaths="changeFilePaths2" />
						</view>
					</view>
				</view>
			</view>
			<view v-else class="see">
				<view class="seeResult">
					<view class="seeResultFloorOne">
						<text class="seeName">查核结果</text>
						<view class="plusAction" v-if="checkItemResultList.length>0" @click="openSelectModal">
							<image class="plusIcon" src="../../static/icon-add.png" mode=""></image>
							<text class="threePoint">缺陷</text>
						</view>
					</view>
					<text class="clear" @click="clearResult(false)">清空</text>
					<textarea maxlength="300" class="seeTextarea" placeholder="请输入" v-model="recordList[0].seeResult"
						@blur="changeTextarea2"></textarea>
				</view>
				<view class="seeImg">
					<tm-upload-img label="上传图片" :filePaths="filePath" :isMultiple="true"
						@changeFilePaths="changeFilePaths" />
				</view>
			</view>

			<button class="insert" @click="insert" v-if="data.checkModelName == '访谈'">
				+ 增加一条记录
			</button>
		</scroll-view>
		<!-- <button type="primary" class="sureDetail" @click="sureDetail" v-if="data.display?data.display:false">完成</button> -->
		<view class="bottomMenuGroup">
			<view class="menuBtn" @click="goToPrevPage">
				<image class="threeLineMenuIcon" src="/static/threeLineMenu.png"></image>
			</view>
			<view class="prevBtn" @click="switchItem(1)">下一项</view>
			<view class="nextBtn" @click="sureDetail('back')" v-if="data.display?data.display:false">完成</view>
		</view>
	</view>
</template>

<script>
	import {
		_goBackFresh
	} from '../../utils/compatible.js';

	export default {
		data() {
			return {
				value: '',
				showSelectModal: false,
				data: {}, //详情数据
				lastIndex: null, //上次选中的结果
				Index: null, //点击修改本次选中样式
				filePath: [],
				recordList: [{
					seeResult: "",
					filePath: []
				}],
				talkLength: 1,
				talkList: [{
					talkResult: "",
					filePath: []
				}],
				editIndex: null,
				resultConfigList: [],
				id: "",
				checkPointId: "",
				itemBelongGroup: [],
				itemId: '',
				currentEditTextAreaIndex:-1, //当前编辑的查核结果下标
				checkItemResultList: [], //查核结果说明下拉列表
				checkedSelectResultList: [], //下拉结果选中集合
				checkedSelectResultListIds: [],
				currentSelect: '',
				checkItemScore:0, //查核选中的分数
				checkItemValue: null, //查核选中的分数占比
				checkConfiglist: [], //查核情况可配置列表
				totalScore: 0, //总分
				currentScore: 0, //当前得分
				inputScore: null, //手动填写分值
				selectedScore: 0, //缺失项分值
				checkedResponsibleList: [],
				deptId: '', //病区id
				checkedResponsibleData: [],
				checkedSelectResultListData: [],
				multiSelectScore: [],
				deductPoint: 0, //本次扣分
				currentCheckedTab: null, //当前选中的查核tab
				moreDeduction:false,  //缺陷项是否多选
				ifInputScore:false,  //是否手动干预分值
			};
		},
		onShow() {
			const {
				responsibleList
			} = this.$store.state;
			this.checkedResponsibleData = responsibleList.checkedResponsibleList;
			this.checkedResponsibleList = responsibleList.checkedResponsibleList.map(item => item.main);
		},
		computed: {
		},
		watch: {
			checkedResponsibleList: function() {
				const {
					responsibleList
				} = this.$store.state;
				return responsibleList.checkedResponsibleList.map(item => item.main);
			},
			selectedScore:function(newVal,oldVal){
				  this.scoreCounter()
			},
			checkItemScore:function(newVal){
				  this.scoreCounter()
			},
			deductPoint:function(newVal,oldVal){
				   this.currentScore = this.totalScore - newVal
			}
		},
		mounted() {
			this.checkTaskDetail(this.id);
			this.getPeizhiList();

		},
		onBackPress() {
			this.$store.commit('checkMainPoints/comChangeState', { //刷新前一页数据
				key: 'ifReloadPageData',
				data: true
			});
		},
		methods: {
			scoreCounter(){
				if(this.inputScore){
					this.deductPoint = Number(this.inputScore) + this.selectedScore
				}else{
					this.deductPoint = this.selectedScore + this.checkItemScore
				}
			},
			changeToInputScore(){
				this.ifInputScore = true;
			},
			inputOnBlur(){
				this.ifInputScore = false;
				// this.inputScore = null;
			},
			onInputScore(e) {
				this.deductPoint = e.target.value;
			},
			//查核结果清空操作
			clearResult(ifMulti, index) {
				if (ifMulti) {
					//多个查核结果组件时	
					this.talkList[index].talkResult = '';
					if(this.multiSelectScore[index]){
						    this.selectedScore = this.selectedScore - this.multiSelectScore[index];
					}
					this.checkedSelectResultListIds.splice(index, 1, []);
					this.checkedSelectResultList.splice(index, 1, []);
					this.checkedSelectResultListData.splice(index, 1, []);
					this.multiSelectScore[index] = 0;
					this.currentEditTextAreaIndex = -1;
					
                    
				} else {
					
					this.recordList[0].seeResult = '';
					this.checkedSelectResultListIds = [];
					this.checkedSelectResultList = [];
					this.checkedSelectResultListData = [];
					this.selectedScore = 0;
				}
				
			},
			clickModalhandle() {
				this.showSelectModal = false;
				this.currentEditTextAreaIndex = -1;
			},
			openSelectModal(index) {
				if (index >= 0) {
					this.currentEditTextAreaIndex = index;
				}
				this.showSelectModal = true;
			},
			//跳转选择当事人
			toSelectResponsible() {
				uni.navigateTo({
					url: `/pages/responsibleList/responsibleList?deptId=${this.deptId}&checkId=${this.id}`,
				});
			},
			selectResultHandle(item) {

				if (this.data.checkModelName == '访谈') {
					const currentIndex = this.currentEditTextAreaIndex;
					if(!this.moreDeduction){
						 //缺陷项单选
						 this.checkedSelectResultListIds.splice(currentIndex, 1,[item.id]);
						 this.checkedSelectResultList.splice(currentIndex, 1, [item.resultName]);
						 this.checkedSelectResultListData.splice(currentIndex, 1, [item]);
						 
						 return ;
					} 
					
					if (this.checkedSelectResultListIds[currentIndex] && this.checkedSelectResultListIds[currentIndex]
						.includes(item.id)) {

						const tempIdsArr = JSON.parse(JSON.stringify(this.checkedSelectResultListIds[currentIndex]));
						const tempArr = JSON.parse(JSON.stringify(this.checkedSelectResultList[currentIndex]));
						const tempArrData = JSON.parse(JSON.stringify(this.checkedSelectResultListData[currentIndex]));

						tempIdsArr.splice(tempIdsArr.indexOf(item.id), 1);
						tempArr.splice(tempArr.indexOf(item.resultName), 1);
						tempArrData.splice(tempArrData.indexOf(item.id), 1);

						this.checkedSelectResultListIds.splice(currentIndex, 1, tempIdsArr);
						this.checkedSelectResultList.splice(currentIndex, 1, tempArr);
						this.checkedSelectResultListData.splice(currentIndex, 1, tempArrData);
					} else {
						if (!Array.isArray(this.checkedSelectResultListIds[currentIndex])) this.checkedSelectResultListIds[
							currentIndex] = [];
						if (!Array.isArray(this.checkedSelectResultList[currentIndex])) this.checkedSelectResultList[
							currentIndex] = [];
						if (!Array.isArray(this.checkedSelectResultListData[currentIndex])) this
							.checkedSelectResultListData[currentIndex] = [];

						const tempIdsArr = this.checkedSelectResultListIds[currentIndex].concat([item.id]);
						const tempArr = this.checkedSelectResultList[currentIndex].concat([item.resultName]);
						const tempArrData = this.checkedSelectResultListData[currentIndex].concat([item]);

						this.checkedSelectResultListIds.splice(currentIndex, 1, tempIdsArr);
						this.checkedSelectResultList.splice(currentIndex, 1, tempArr);
						this.checkedSelectResultListData.splice(currentIndex, 1, tempArrData);
					}
				} else {
					if(!this.moreDeduction){
						 //缺陷项单选
						 this.checkedSelectResultListIds = [item.id];
						 this.checkedSelectResultList = [item.resultName];
						 this.checkedSelectResultListData = [item];
						 return ;
					} 
					// 缺陷项多选
					if (this.checkedSelectResultListIds.includes(item.id)) {
						const tempIdsArr = this.checkedSelectResultListIds;
						const tempArr = this.checkedSelectResultList;
						const tempArrData = this.checkedSelectResultListData;
						tempIdsArr.splice(tempIdsArr.indexOf(item.id), 1);
						tempArr.splice(tempArr.indexOf(item.resultName), 1);
						tempArrData.splice(tempArrData.findIndex(t=>t.id == item.id), 1);
						this.checkedSelectResultListIds = tempIdsArr;
						this.checkedSelectResultList = tempArr;
						this.checkedSelectResultListData = tempArrData;
					} else {
						this.checkedSelectResultListIds.push(item.id);
						this.checkedSelectResultList.push(item.resultName);
						this.checkedSelectResultListData.push(item);
					}
				}
			},
			commitSelectResult() {

				const _commitFunc = () => {
					if (this.data.checkModelName == '访谈') {
	
						const tempArr = this.checkedSelectResultListData[this.currentEditTextAreaIndex].map(item =>
							item.percentScore);
						const tempScore = tempArr.reduce((prev, cur) => {
							return prev + cur;
						}, 0);

						this.talkList[this.currentEditTextAreaIndex].talkResult = this.checkedSelectResultList[this
							.currentEditTextAreaIndex].join(',');
						this.multiSelectScore[this.currentEditTextAreaIndex] = tempScore;
						this.selectedScore = this.multiSelectScore.reduce((prev, cur) => (prev + cur), 0);
						
					} else {
				
						const tempArr = this.checkedSelectResultListData.map(item => item.percentScore);
						const tempScore = tempArr.reduce((prev, cur) => {
							return prev + cur;
						}, 0);
						this.recordList[0].seeResult = this.checkedSelectResultList.join(',');
						this.selectedScore = tempScore;
					}
				}
				_commitFunc();
				this.showSelectModal = false;
			},
			checkTaskDetail(id) {
				this.$store.dispatch({
					type: "mainPointsDetail/commActions",
					payload: {
						key: "checkTaskDetail",
						data: {
							id: id,
						},
					},
				}).then((res) => {
				    uni.$once('未在查核规定时间内', function (data) {
						  uni.navigateBack();
					});
					
					this.id = id;
					this.deptId = res.deptId;
					//再次编辑回显
					const filePath = res.checkResultTxt ? JSON.parse(res.checkResultTxt) : [];
					this.filePath = filePath[0] && filePath[0].checkResultUrl != '' ? filePath[0].checkResultUrl
						.split(',') : [];
					this.Index = res.checkResult;
					this.totalScore = res.totalScore;
					this.currentScore = res.score;
					this.deductPoint = res.deductPoint;
					this.moreDeduction = res.moreDeduction;
					if (res.checkResultRequestList && res.checkResultRequestList.length > 0) {
						if (res.checkModelName == '访谈') {
							this.talkList = res.checkResultRequestList.map((item, currentIndex) => {
								const arr = item.checkResultDescribe.split(',');
								const tempResult = this.checkItemResultList.filter(v => arr.includes(v
									.resultName));

								if (!Array.isArray(this.checkedSelectResultListIds[currentIndex])) this
									.checkedSelectResultListIds[currentIndex] = [];
								if (!Array.isArray(this.checkedSelectResultList[currentIndex])) this
									.checkedSelectResultList[currentIndex] = [];
								if (!Array.isArray(this.checkedSelectResultListData[currentIndex])) this
									.checkedSelectResultListData[currentIndex] = [];

								const tempIdsArr = this.checkedSelectResultListIds[currentIndex].concat(
									tempResult.map(item => item.id));
								const tempArr = this.checkedSelectResultList[currentIndex].concat(
									tempResult.map(item => item.resultName));
								

								this.checkedSelectResultListIds.splice(currentIndex, 1, tempIdsArr);
								this.checkedSelectResultList.splice(currentIndex, 1, tempArr);
								this.checkedSelectResultListData.splice(currentIndex, 1, tempResult);

								const tempArrFull = this.checkedSelectResultListData[currentIndex].map(
									item => item.percentScore);
								const tempScore = tempArrFull.reduce((prev, cur) => {
									return prev + cur;
								}, 0);
								this.multiSelectScore[currentIndex] = tempScore;
								return {
									talkResult: item.checkResultDescribe,
									filePath: item.checkResultUrl != '' ? item.checkResultUrl.split(',') :
										[]
								}
							});
							//设置回显分数
							// this.selectedScore = this.multiSelectScore.reduce((prev, cur) => (prev + cur), 0);

						} else {

							const arr = res.checkResultRequestList[0].checkResultDescribe.split(',');
							const tempResult = this.checkItemResultList.filter(v => arr.includes(v.resultName));
							const tempIds = tempResult.map(item => item.id);
							const scores = tempResult.map(item => item.percentScore);
							const tempScore = scores.reduce((prev, cur) => (prev + cur), 0);
							this.recordList[0].seeResult = res.checkResultRequestList[0].checkResultDescribe;
							this.checkedSelectResultListIds = tempIds;
							this.checkedSelectResultList = res.checkResultRequestList[0].checkResultDescribe.split(
								',');
							this.checkedSelectResultListData = tempResult;
							// this.selectedScore = tempScore;

						}
					}

					//用于当时人页面回显
					if (res.responsibleUserName) {
						const tempResponsibleUserName = res.responsibleUserName.split(',');
						const tempResponsibleUserId = res.responsibleUserId.split(',');
						this.checkedResponsibleList = tempResponsibleUserName;
						const arr = tempResponsibleUserName.map((item, index) => ({
							main: item,
							id: parseInt(tempResponsibleUserId[index])
						}));
						// console.log({arr});
						this.$store.commit('responsibleList/updateCheckedResponsibleList', arr);
					} else {
						this.checkedResponsibleList = [];
						this.$store.commit('responsibleList/updateCheckedResponsibleList', []);
					}

					if (res) {
						this.data = res;
						if (res && res.lastResult == "不适用") {
							// this.lastIndex = 1;
							this.lastIndex = res.lastResult;
						} else if (res && res.lastResult == "无缺失") {
							this.lastIndex = res.lastResult;
						} else if (res && res.lastResult == "主要缺失") {
							this.lastIndex = res.lastResult;
						} else if (res && res.lastResult == "次要缺失") {
							this.lastIndex = res.lastResult;
						} else if (res && res.lastResult == "观察事项") {
							this.lastIndex = res.lastResult;
						} else {
							this.lastIndex = 0;
						}
					}
				});
			},
			getPeizhiList() {
				this.$store.dispatch({
					type: "configure/commActions",
					payload: {
						key: "getResultConfig",
					},
				}).then((res) => {
					this.resultConfigList = res ? res : [];
				});
			},
			//查核点击回调
			checkedOne(data) {
				const parsedData = JSON.parse(JSON.stringify(data));
				this.currentCheckedTab = data;
				this.Index = parsedData.attr;
				this.data.checkResult = parsedData.attr;
				this.checkItemScore = parsedData.itemGetScore;
				this.checkItemValue = parsedData.value;
				this.calScore = parsedData.calScore;
				if (!this.inputScore) {   //没有手输调整过的才可以修改
					this.checkItemScore = parsedData.itemGetScore; 
				}

			},
			/**
			 * @param {{
				 files
				 index,
			 }} fileInfo
			 files：文件集合
			 index:当前编辑的下标
			 */
			changeFilePaths({files, index}) {
				let _recordList = [...this.recordList];
				_recordList[index].filePath = files;
				this.filePath = _recordList[0].filePath;
			},
			insert() {
				let list = [...this.talkList];
				if (list.length < 10) {
					list.push({
						talkResult: "",
						filePath: []
					});
					this.talkList = list;
				}
			},
			del(index) {
				let list = [...this.talkList];
				let list2 = [];
			    //清空该项数据
				this.clearResult(true,index);
				
				for (let i = 0; i < list.length; i++) {
					if (i != index) {
						list2.push(list[i]);
					}
				}
				this.talkList = list2;
			},
			/**
			 * @param {{
				 files
				 index,
			 }} fileInfo
			 files：文件集合
			 index:当前编辑的下标
			 */
			changeFilePaths2(fileInfo) {
				const {files,index} = fileInfo;
				for (let j = 0; j < this.talkList.length; j++) {
					this.talkList[index].filePath = files;
				}
			},
			changeTextarea(e, i) {
				for (let j = 0; j < this.talkList.length; j++) {
					this.talkList[i].talkResult = e.detail.value;
				}
			},
			changeTextarea2(e) {
				this.recordList[0].seeResult = e.target.value;
			},
			imgClick(i) {
				this.editIndex = i;
			},
			sureDetail(key) {
				console.log('commit check');
				return new Promise((resolve)=>{
					     const _commitCheck = () => {
							 try{
								   if (this.Index) {
								   	let params = {
								   		id: this.data.id,
								   		checkResult: this.data.checkResult,
								   		checkResultRequestList: [],
								   		checkItemScore: this.checkItemScore,
								   		value: this.checkItemValue,
								   		situationType: this.situationType,
								   		calScore: this.calScore,
								   		score: this.currentScore,
								   		deductPoint: this.deductPoint,
								   	};
								   					     
								   					     
								   	if (this.data.checkModelName == "访谈") {
								   		let list = [];
								   		for (let i = 0; i < this.talkList.length; i++) {
								   			let path = "";
								   			for (let j = 0; j < this.talkList[i].filePath.length; j++) {
								   				if (j == 0) {
								   					path += `${this.talkList[i].filePath[j]}`;
								   				} else {
								   					path += `,${this.talkList[i].filePath[j]}`;
								   				}
								   			}
								   			let item = {
								   				checkResultId: i,
								   				checkResultDescribe: this.talkList[i].talkResult,
								   				checkResultUrl: path,
								   			};
								   					     
								   			list.push(item);
								   		}
								   		params.checkResultRequestList = list;
								   	} else {
								   		let list = [];
								   		let path = "";
								   		for (let j = 0; j < this.recordList[0].filePath.length; j++) {
								   			if (j == 0) {
								   				path += `${this.recordList[0].filePath[j]}`;
								   			} else {
								   				path += `,${this.recordList[0].filePath[j]}`;
								   			}
								   		}
								   		let item = {
								   			checkResultId: 1,
								   			checkResultDescribe: this.recordList[0].seeResult,
								   			checkResultUrl: path,
								   		};
								   					     
								   		list.push(item);
								   		params.checkResultRequestList = list;
								   	}
								   	const checkConfiglist = JSON.parse(JSON.stringify(this.checkConfiglist));
								
								   	this.$store.dispatch({
								   		type: "mainPointsDetail/commActions",
								   		payload: {
								   			key: "saveCheckTaskDetail",
								   			data: {
								   				...params,
								   			},
								   		},
								   	}).then((res) => {
								   		if (res) {
								   			resolve(true);
											// console.log({checkConfiglist,params});
								   			for (let i = 0; i < checkConfiglist.length; i++) {

								   				if (
								   					checkConfiglist[i].attr == params.checkResult &&
								   					(checkConfiglist[i].resultType == 2 ||
								   						checkConfiglist[i].resultType == 3)
								   				) {
													//当主要缺失和次要缺失时发起改善任务
								   					console.log('开始提交改善前准备');
								   				
								   					let param = {
								   						situationId: this.data.situationId,
								   						situationName: this.data.situationName,
								   						checkGroupId: this.data.checkGroupId,
								   						checkGroupName: this.data.checkGroupName,
								   						checkItemId: this.data.checkItemId,
								   						checkItemName: this.data.checkItemName,
								   						checkPointId: this.data.checkPointId,
								   						checkPointName: this.data.checkPointName,
								   						deptName: this.data.deptName,
								   						deptId: this.data.deptId,
								   						appointFlag: false,
								   						desicion: 0,
								   						taskType: "1",
								   						checkId: this.data.checkId,
								   						checkResult: 0,
								   						newResultType: checkConfiglist[i].resultType,
								   						// checkResult: this.resultConfigList[i].id,
								   						receiveEmpId: this.data.receiveEmpId,
								   						receiveEmpName: this.data.receiveEmpName,
								   						checkDetailId: this.data.id,
								   					};
								   					     
								   					this.$store.dispatch({
								   						type: "mission/commActions",
								   						payload: {
								   							key: "comTaskCirculation",
								   							data: {
								   								...param,
								   							},
								   						},
								   					});
								   				} else {
								   					console.log('改善条件为false');
								   				}
								   			}
								   					     
								   			if (key == 'back') {
								   				//点完成时返回
								   				this.$store.commit('checkMainPoints/comChangeState', {
								   					'key': 'ifUpdate',
								   					'data': true
								   				});
								   				_goBackFresh('pages/checkMainPoints/checkMainPoints');
								   			}
								   		} else {
								   			console.log('res为false');
								   			resolve(false);
								   		}
								   	});
								   } else {
									   uni.showToast({
										title: '请先选择查核结果！',
										duration: 2000,
										icon: 'none'
									   });
								   	resolve(false);
								   }
							 }catch(err){
								 resolve(err);
							 }     
					     }
					     
					     if(this.data.checkResult == '无缺失'&&this.deductPoint != 0){
					     	//查核结果为‘无缺失’且扣分为非0
					     	uni.showModal({
					     	    title: '提示',
					     	    content: `当前选择无缺失结果，但扣分数为${this.deductPoint}，确认继续提交么？`,
					     	    success: function (res) {
					     	        if (res.confirm) {
					     	            _commitCheck();
					     	        } else if (res.cancel) {
					     	            console.log('用户点击取消操作');
										resolve(false);
					     	        }
					     	    }
					     	});
					     }else{
							 _commitCheck();
						 }
				})
			},
			toTuLi() {
				uni.navigateTo({
					url: `/pages/legendDetails/legendDetails?checkItemId=${this.data.checkItemId}&checkPointId=${this.checkPointId}`,
				});
			},
			toHistory() {
				const situationId = this.data.situationId;
				this.$store.dispatch({
					type: 'mission/commActions',
					payload: {
						key: "getMissionList",
						data: {
							situationId
						}
					}
				}).then(data => {
					if (data) {
						if (data.improvingTaskResponses.length > 0) {
							uni.navigateTo({
								url: `/pages/improve-mission-list/improve-mission-list?situationId=${this.data.situationId}`,
							});
						} else {
							uni.showModal({
								content: '暂无改善历史',
								showCancel: false
							});
						}
					}
				});
			

			},
			clearForm(index) {
				//清除上一项的查核信息
				this.Index = '';
				// this.deductPoint = 0;
				this.currentScore = 0;
				this.inputScore = 0;
				if (this.data.checkModelName == '访谈') {
					if (index) {
						this.talkList[index].talkResult = '';
					} else {
						for (let i = 0; i < this.talkList.length; i++) {
							this.talkList[i].talkResult = '';
						}
					}

				} else {
					this.recordList[0].talkResult = '';
	
				}
				this.checkedSelectResultListIds = [];
				this.checkedSelectResultList = [];
				this.checkedSelectResultListData = [];
			},
			goToPrevPage() {
				_goBackFresh('pages/checkMainPoints/checkMainPoints');
			},
			switchItem: async function(num) {
				if (!this.data.checkResult) {
					uni.showToast({
						title: '请先选择查核结果！',
						duration: 2000,
						icon: 'none'
					});
					return;
				}
				const result = await this.sureDetail();
		
				if(result){
					  let current = this.itemBelongGroup.filter(item => {
					  	return item.id == this.id;
					  });
					  if (num < 0) {
					  	if (current[0].index == 0) {
					  		uni.showToast({
					  			title: '已经没有上一项',
					  			duration: 2000,
					  			icon: 'none'
					  		});
					  		return;
					  	}
					  }
					  if (num > 0) {
					  	if (current[0].index == this.itemBelongGroup.length - 1) {
					  		uni.showToast({
					  			title: '已经没有下一项',
					  			duration: 2000,
					  			icon: 'none'
					  		});
					  		return;
					  	}
					  }
					  let needItemIndex = num > 0 ? current[0].index + 1 : current[0].index - 1;
					  let needItemId = this.itemBelongGroup[needItemIndex].id;
					  let needItemCheckId = this.itemBelongGroup[needItemIndex].checkItemId;
					
					  this.clearForm();
					  this.clearResult();
					  this.checkTaskDetail(needItemId);
					  this.getCheckItemResultList(needItemCheckId); //获取缺陷项列表数据
				};
			},
			// 获取查核项可配置列表
			getCheckConfigList(checkItemId) {
				this.$store.dispatch({
					type: 'mainPointsDetail/commActions',
					payload: {
						key: 'getCheckItemAttr',
						data: checkItemId
					}
				}).then(data => {
					this.checkConfiglist = data
				})
			},
			// 获取查核项结果说明下拉列表
			getCheckItemResultList(checkItemId) {
				this.$store.dispatch({
					type: 'mainPointsDetail/commActions',
					payload: {
						key: 'getCheckItemResultList',
						data: checkItemId
					}
				}).then(data => {
					this.checkItemResultList = data;
				})
			},
		},
		onLoad({
			id,
			checkPointId,
			checkItemId,
			situationType
		}) {
			this.id = id;
			this.checkPointId = checkPointId;
			this.situationType = situationType;
			this.checkItemId = checkItemId;
			this.getCheckConfigList(checkItemId);
			this.getCheckItemResultList(checkItemId);

			//接收来自上个页面所传过来的数据
			const eventChannel = this.getOpenerEventChannel();
			eventChannel.on('acceptDataFromOpenerPage', (data) => {
				// console.log({data});
				this.itemBelongGroup = data.data[0].responseList.map((item, index) => {
					
					return ({
						index: index,
						id: item['id'],
						checkItemId:item['checkItemId']
					})
				});
				//重新导航进页面，删除缓存并设置最新数据
				uni.removeStorageSync('itemBelongGroup');
				uni.setStorageSync('itemBelongGroup', this.itemBelongGroup);
			});
			//手动刷新页面，获取本地缓存
			const itemBelongGroup = uni.getStorageSync('itemBelongGroup');
			this.itemBelongGroup = itemBelongGroup;
		},
	};
</script>

<style lang="less">
	.mainPointsDetailPage {
		position: relative;
		// min-height: 75rpx;
		// overflow-y: auto;
		height: 100%;

		.checkItemResultModal {
			display: flex;
			height: 100%;
			justify-content: center;
			align-items: center;

			.modalContent {
				width: 90%;
				height: 600rpx;
				border-radius: 10rpx;
				overflow: hidden;
				background-color: #FFFFFF;

				.modalBar {
					display: flex;
					justify-content: center;
					align-items: center;
					height: 80rpx;
					color: #4E78FF;
					font-size: 22.5rpx;
					box-shadow: 0 6rpx 6rpx #E5E5E5;
					border-bottom: 0.1rpx solid #E5E5E5;
				}

				.comfirmBtn {
					font-size: 22rpx;
					color: #FFFFFF;
					height: 85rpx;
					line-height: 85rpx;
					text-align: center;
					background-color: #3377FF;
				}

				.scroll {
					height: calc(100% - 160rpx);

					.list {
						position: relative;
						display: flex;
						height: 80rpx;
						justify-content: center;
						align-items: center;
						border-bottom: 0.1rpx solid #E5E5E5;

						.checkIcon {
							display: none;
							position: absolute;
							left: 5%;
							width: 25rpx;
							height: 25rpx;
						}

						&.on {
							color: #3377FF;

							.checkIcon {
								display: block;
							}
						}
					}
				}
			}
		}

		.scroll-y {
			height: calc(100% - 75rpx);
		}

		.checkItem {
			padding-top: 47.5rpx;
			width: 100%;
			min-height: 450rpx;
			background-color: #fff;
			position: relative;

			.chBg {
				position: absolute;
				top: 0;
				left: 0;
				width: 125rpx;
				height: 37.5rpx;

				.img {
					width: 125rpx;
					height: 37.5rpx;
				}

				.title {
					position: absolute;
					top: 8.75rpx;
					left: 25rpx;
					font-size: 20rpx;
					color: #fff;
					font-weight: 500;
					line-height: 20rpx;
				}
			}

			.tlImg {
				width: 40rpx;
				height: 40rpx;
				position: absolute;
				right: 25rpx;
				top: 25rpx;
			}

			.chContent {
				width: 100%;

				.checkItemName {
					margin-left: 31.25rpx;
					font-size: 25rpx;
					line-height: 55rpx;
					color: #292c33;
				}

				.checkPointName {
					margin-left: 31.25rpx;
					font-size: 17.5rpx;
					line-height: 17.5rpx;
					color: #7a8599;
				}

				.cont {
					height: 135rpx;

					.floatLeft {
						float: left;
					}

					.borderLine {
						margin-top: 56.25rpx;
						width: 0.62rpx;
						height: 25rpx;
						background-color: #dadee6;
					}

					.other {
						padding: 40rpx 0rpx;
						height: 95rpx;
						width: 187.18rpx;
						text-align: center;

						.letterTitle {
							font-size: 17.5rpx;
							color: #7a8599;
							line-height: 17.5rpx;
						}

						.letterTitle2 {
							height: 22.5rpx;
							font-size: 22.5rpx;
							line-height: 22.5rpx;
							color: #292c33;
							margin-bottom: 15rpx;
							font-weight: 500;
							overflow: hidden;
							word-break: break-all;
							/* break-all(允许在单词内换行。) */
							text-overflow: ellipsis;
							/* 超出部分省略号 */
							display: -webkit-box;
							/** 对象作为伸缩盒子模型显示 **/
							-webkit-box-orient: vertical;
							/** 设置或检索伸缩盒对象的子元素的排列方式 **/
							-webkit-line-clamp: 1;
							/** 显示的行数 **/
						}
					}
				}

				.checked {
					margin-bottom: 40rpx;
					padding: 0rpx 15.62rpx;
					height: 75rpx;

					.checked-checkItem {
						margin: 0rpx 9.37rpx;
						padding: 0;
						width: 125rpx;
						height: 75rpx;
						background: #ebeff7;
						float: left;
						line-height: 75rpx;
						text-align: center;
						color: #292c33;
						border-radius: 20rpx;
						position: relative;

						.img {
							width: 51.25rpx;
							height: 25rpx;
							position: absolute;
							right: -6.25rpx;
							top: -6.25rpx;
						}

						.lastName {
							color: #fff;
							font-size: 13.75rpx;
							line-height: 13.75rpx;
							position: absolute;
							right: 5rpx;
							top: -1.87rpx;
						}
					}
				}

				.more {
					margin: 0rpx 25rpx 0rpx 25rpx;
					text-align: center;
					border-top: 0.62rpx solid #dadee6;

					text {
						padding: 29.37rpx 0rpx 27.5rpx;
						margin-right: 10rpx;
						line-height: 22.5rpx;
						font-size: 22.5rpx;
						color: #3377ff;
						display: inline-block;
						vertical-align: top;
					}

					.moreImg {
						margin-top: 28.75rpx;
						width: 12.37rpx;
						height: 21.21rpx;
						display: inline-block;
					}

					.moreImg2 {
						width: 12.37rpx;
						height: 21.21rpx;
					}
				}

				.multipleResponsible {
					padding-top: 15rpx;
					background-color: #F5F6FA;

					.inner {
						position: relative;
						display: flex;
						height: 87.5rpx;
						z-index: 10;
						flex-direction: row;
						justify-content: flex-start;
						align-items: center;
						padding: 0 25rpx;
						background-color: #FFFFFF;

						.label {
							display: inline-block;
							font-size: 22.5rpx;
							font-family: SourceHanSansCN-Normal, SourceHanSansCN;
							font-weight: 400;
							color: #525866;
							margin-right: 105rpx;
						}
					
						.value {
							flex: 0.9;
							font-size: 22.5rpx;
							overflow: hidden; //超出的文本隐藏
							text-overflow: ellipsis; //溢出用省略号显示
							white-space: nowrap; //溢出不换行
						}

						.valuePlaceholder {
							font-size: 22.5rpx;
							font-family: SourceHanSansCN-Normal, SourceHanSansCN;
							font-weight: 400;
							color: #B8BECC;
						}

						.arrow {
							position: absolute;
							right: 25rpx;
							width: 12.5rpx;
							height: 20rpx;
						}
					}
				}

				.score {
					display: flex;
					height: 87.5rpx;
					flex-direction: row;
					justify-content: space-between;
					align-items: center;
					padding: 0 25rpx;
					background: #F5F6FA;

					.box {
						text-align: center;
						vertical-align: bottom;

						.lable {
							display: inline-block;
							font-size: 22.5rpx;
							font-family: SourceHanSansCN-Normal, SourceHanSansCN;
							font-weight: 400;
							color: #525866;
							margin-right: 10rpx;
						}

						.totalScore {
							font-size: 30rpx;
							font-family: SourceHanSansCN-Bold, SourceHanSansCN;
							font-weight: bold;
							color: #292C33;
						}

						.currentScore {
							font-size: 30rpx;
							font-family: SourceHanSansCN-Bold, SourceHanSansCN;
							font-weight: bold;
							color: #3377FF;
						}
					}
				}
				
				.textValue {
					display: flex;
					flex-direction: row;
					justify-content: flex-start;
					align-items: center;
					width: 70%;
					height: 100%;
				}

				.inputScore {
					display: flex;
					flex-direction: row;
					justify-content: flex-start;
					align-items: center;
					height: 87.5rpx;
					padding: 0 25rpx;
					background-color: #FFFFFF;

					.label {
						display: inline-block;
						font-size: 22.5rpx;
						font-family: SourceHanSansCN-Normal, SourceHanSansCN;
						font-weight: 400;
						color: #525866;
						margin-right: 81.25rpx;
					}

					.value {
						font-size: 22.5rpx;
					}

					.placeholder {
						font-size: 22.5rpx;
						font-family: SourceHanSansCN-Normal, SourceHanSansCN;
						font-weight: 400;
						color: #525866;
					}
				}
			}
		}

		.see {
			margin-top: 15rpx;
			height: 287.5rpx;
			background-color: #fff;

			// padding-left: 25rpx;
			.seeResult {
				position: relative;
				margin-left: 25rpx;
				padding-top: 32.5rpx;
				// height: 200rpx;
				border-bottom: 1px solid #dadee6;

				.clear {
					position: absolute;
					z-index: 10;
					right: 25rpx;
					bottom: 25rpx;
					font-size: 22.5rpx;
					font-family: SourceHanSansCN-Normal, SourceHanSansCN;
					font-weight: 400;
					color: #FF3355;
				}

				.seeResultFloorOne {
					display: flex;
					flex-direction: row;
					justify-content: space-between;
					align-items: center;
					margin-bottom: 25rpx;
					padding-right: 25rpx;

					.plusAction {
						display: flex;
						flex-direction: row;
						justify-content: center;
						align-items: center;

						.plusIcon {
							width: 25rpx;
							height: 25rpx;
							margin-right: 10rpx;
						}

						.threePoint {
							font-size: 22.5rpx;
							font-family: SourceHanSansCN-Normal, SourceHanSansCN;
							font-weight: 400;
							color: #7A8599;
						}
					}

				}

				.seeName {
					width: 175rpx;
					font-size: 22.5rpx;
					color: #525866;
					line-height: 22.5rpx;
					display: inline-block;
				}

				.seeTextarea {
					width: 97%;
					height: 155rpx;
					display: inline-block;
					font-size: 22.5rpx;
					line-height: 27.5rpx;
				}
			}

			.seeImg {
				min-height: 87.5rpx;

				.seeName2 {
					width: 175rpx;
					font-size: 22.5rpx;
					color: #525866;
					line-height: 87.5rpx;
					display: inline-block;
				}
			}
		}

		.talk {
			.talkTitle {
				padding: 25rpx 25rpx 15rpx;
				font-size: 22.5rpx;
				line-height: 22.5rpx;
				color: #666f80;

				.del {
					float: right;
					color: #3377ff;
				}
			}

			.talkResult {
				position: relative;
				padding-left: 25rpx;
				padding-top: 32.5rpx;
				border-bottom: 1px solid #dadee6;
				background-color: #fff;

				.clear {
					position: absolute;
					z-index: 10;
					right: 25rpx;
					bottom: 25rpx;
					font-size: 22.5rpx;
					font-family: SourceHanSansCN-Normal, SourceHanSansCN;
					font-weight: 400;
					color: #FF3355;
				}

				.seeResultFloorOne {
					display: flex;
					flex-direction: row;
					justify-content: space-between;
					align-items: center;
					margin-bottom: 25rpx;
					padding-right: 25rpx;

					.plusAction {
						display: flex;
						flex-direction: row;
						justify-content: center;
						align-items: center;

						.plusIcon {
							width: 25rpx;
							height: 25rpx;
							margin-right: 10rpx;
						}

						.threePoint {
							font-size: 22.5rpx;
							font-family: SourceHanSansCN-Normal, SourceHanSansCN;
							font-weight: 400;
							color: #7A8599;
						}
					}
				}

				.seeName {
					width: 175rpx;
					font-size: 22.5rpx;
					color: #525866;
					line-height: 22.5rpx;
					display: inline-block;
				}

				.seeTextarea {
					width: 531.25rpx;
					height: 155rpx;
					display: inline-block;
					font-size: 22.5rpx;
					line-height: 27.5rpx;
				}
			}

			.talkImg {
				min-height: 87.5rpx;

				.seeName2 {
					width: 175rpx;
					font-size: 22.5rpx;
					color: #525866;
					line-height: 87.5rpx;
					display: inline-block;
				}
			}
		}

		.insert {
			background-color: #fff;
			font-size: 22.5rpx;
			line-height: 22.5rpx;
			color: #3377ff;
			padding: 26.25rpx;
		}

		.sureDetail {
			width: 100%;
			height: 75rpx;
			font-size: 22.5rpx;
			background-color: #3377ff;
			line-height: 75rpx;
			position: absolute;
			bottom: 0rpx;
		}

		.bottomMenuGroup {
			position: fixed;
			bottom: 0;
			width: 100%;
			height: 75rpx;
			display: flex;
			flex-direction: row;
			background: #FFFFFF;
			border-top: 0.62rpx solid #DADEE6;

			.menuBtn {
				display: flex;
				width: 75rpx;
				height: 75rpx;
				justify-content: center;
				align-items: center;
				border-right: 0.62rpx solid #DADEE6;

				.threeLineMenuIcon {
					width: 26.25rpx;
					height: 21.25rpx;
				}

			}

			.prevBtn,
			.nextBtn {
				display: flex;
				flex: 1;
				justify-content: center;
				height: 75rpx;
				line-height: 75rpx;
				font-size: 22.5rpx;
				font-family: SourceHanSansCN-Normal, SourceHanSansCN;
				font-weight: 400;
				color: #3377FF;
			}

			.prevBtn {
				border-right: 0.62rpx solid #DADEE6;
			}

			.nextBtn {
				color: #FFFFFF;
				background: #3377FF;
			}
		}
	}
</style>
