Pārlūkot izejas kodu

v0.8.4版本新增功能

yfb 2 gadi atpakaļ
vecāks
revīzija
8c45f38d17

BIN
.DS_Store


+ 1 - 1
manifest.json

@@ -2,7 +2,7 @@
     "name" : "追踪方法学",
     "appid" : "__UNI__03C4C69",
     "description" : "",
-    "versionName" : "0.8.3",
+    "versionName" : "0.8.4",
     "versionCode" : 100,
     "transformPx" : false,
     "app-plus" : {

+ 7 - 1
pages/auditItemDetails/auditItemDetails.vue

@@ -118,8 +118,14 @@
 			this.isZichaDucha = isZichaDucha;
 			this.improveType = improveType;
 			
-			this.loadItemDetail(id);
+			this.loadItemDetail(id);
 
+			if (improveType == 0) {
+				this.situationsCenter.currentSelectedSituation.systemSituationType=1;
+			}
+			else{
+				this.situationsCenter.currentSelectedSituation.systemSituationType=2;
+			}
 			//只有查核展示底部按钮
 			if (roleNum == 3) {
 				//接收来自上个页面所传过来的数据

+ 23 - 10
pages/checkGroup/checkGroup.vue

@@ -21,14 +21,18 @@
 				<view class="line">
 					<view class="left">{{`职能科室:${item.functionDepartment}`}}</view>
 					<view class="right">{{`${item.checkStartDate}~${item.checkEndDate}`}}</view>
-				</view>
-				<view class="line">
-					<view class="left">自查情况</view>
-					<view class="right">{{`得分:${item.selfScore} 改善:${item.improveStatus}`}}</view>
-				</view>
+				</view>
+				<div v-if="isSelfCheck">
+					<view class="line">
+						<view class="left">自查情况</view>
+						<view class="right">{{`得分:${item.selfScore} 改善:${item.improveStatus}`}}</view>
+					</view>
+				</div>
 			</view>
-		</view>
-	</view>
+		</view>
+		<tm-callback-listpage />
+	</view>
+	
 </template>
 
 <script>
@@ -43,7 +47,8 @@
 		data() {
 			return {
                 list:[],
-				pageTitle:'标题'
+				pageTitle:'标题',
+				isSelfCheck:true
 			};
 		},
 		computed: {
@@ -57,6 +62,7 @@
 					this.getData(this.situationId,this.num,this.planType);
 				}
 			}
+			
 		},
 		onLoad({
 			situationId,
@@ -73,6 +79,11 @@
 			this.pageTitle = name;
 			this.getData(situationId,num,planType);
 			this.systemSituationType = systemSituationType;
+			if (planType==1)
+			{
+				this.isSelfCheck=false;
+			}
+		
 		},
 		methods: {
 			goBack(e) {
@@ -113,14 +124,16 @@
 	}
 </script>
 
-<style lang="less" scoped>
+<style lang="less" scoped>
+	@listHeight:280rpx;
 	.checkGroup {
 		padding: 25rpx;
 
 		.list {
 			position: relative;
 			width: 700rpx;
-			height: 280rpx;
+			//height: @listHeight;
+			//height: 280rpx;
 			padding: 25rpx;
 			box-sizing: border-box;
 			background: #FFFFFF;

+ 34 - 8
pages/checkMainPoints/checkMainPoints.vue

@@ -228,7 +228,9 @@
 				applicable: true, //是否适用
 				situationType: null, //情境类型
 				notApplicableList: [], //保存本次check的查核项id
-
+				scoreType:null,  //计分方式类型  add by yfb 20230417
+				customScoreTotal:null,  //自定义计分总分分值
+				deductPointTotal:null,  //扣分汇总
 			};
 		},
 		computed: {
@@ -284,7 +286,8 @@
 			isZichaDucha,
 			functionId, //计划id 用于自查督查
 			departmentId,//科室id 用于自查督查
-			systemSituationType, 
+			systemSituationType, 
+			pointsetType,  //计分方式类型 add by yfb 20230417
 		}) {
 
 			this.deptId = deptId;
@@ -296,6 +299,7 @@
 			this.isZichaDucha = isZichaDucha?JSON.parse(isZichaDucha):false;
 			this.departmentId = departmentId; //用于自查督查作为科室id
 			this.systemSituationType = systemSituationType;
+			this.pointsetType=pointsetType;
 			
 			if (situationType == 2) {
 				//分页模式
@@ -454,10 +458,22 @@
 							this.isBindResponsible = data.isBindResponsible;
 							this.detailList = renderList;
 							this.copyDetailList = renderList;
-							this.currentScore = data.getScore;
-							this.totalScore = data.totalScore;
+							
 							this.subtotalScore = data.subtotalScore;
 							this.isShowSubtotal = data.isShowSubtotal;
+							//add by yfb 20230417
+							this.scoreType=data.scoreType;
+							this.customScoreTotal=data.customScoreTotal;
+							this.deductPointTotal=data.deductPointTotal;
+							if (data.scoreType==2){
+								this.totalScore=data.customScore;
+								this.currentScore=data.customScoreTotal;
+								console.log('true');
+							}else{
+								this.currentScore = data.getScore;
+								this.totalScore = data.totalScore;
+								console.log('false');
+							}
 							this.totalSubtotalScore = data.totalSubtotalScore;
 							this.checkDetailMapResponses = renderList;
 							renderList.map(({
@@ -593,7 +609,7 @@
 				}
 				uni.showModal({
 					title: '注意',
-					content: '确定所有未填写查核结果项默认无缺失结果吗?',
+					content: '确定所有未填写查核结果项默认满分结果吗?',
 					success: (res) => {
 						if (res.confirm) {
 							console.log('用户点击确定');
@@ -760,12 +776,22 @@
 						this.isBindResponsible = data.isBindResponsible;
 						this.detailList = renderList;
 						this.copyDetailList = renderList;
-						this.currentScore = data.getScore;
-						this.totalScore = data.totalScore;
+						
 						this.subtotalScore = data.subtotalScore;
 						this.isShowSubtotal = data.isShowSubtotal;
 						this.totalSubtotalScore = data.totalSubtotalScore;
-						this.checkDetailMapResponses = renderList;
+						this.checkDetailMapResponses = renderList;
+						this.scoreType=data.scoreType;
+						this.customScoreTotal=data.customScoreTotal;
+						this.deductPointTotal=data.deductPointTotal;
+						if (data.scoreType==2){
+							this.totalScore=data.customScore;
+							this.currentScore=data.customScoreTotal;
+						}else
+						{
+							this.currentScore = data.getScore;
+							this.totalScore = data.totalScore;
+						}
 						renderList.map(({
 							checkPointId,
 							checkPointName

+ 59 - 2
pages/creatingSituations/components/situationPreview.vue

@@ -80,7 +80,19 @@
 				<text>分页模板</text>
 				<text class="typeValue">{{situationPreview.templateName}}</text>
 				<image class="arrowRight" src="../../../static/incon-more.png"></image>
+			</view>
+			<!--add by yfb 20230417-->
+			<view class="pointsetType" @click="pointsetTypeHandle">
+				<text>计分方式</text>
+				<text class="typeValue">{{situationPreview.pointsetTypeName}}</text>
+				<image class="arrowRight" src="../../../static/incon-more.png" mode=""></image>
 			</view>
+			<view v-if="ifShowSetTotal" class="pointsetTotal">
+				<text>设置总分分值</text>
+				<input v-model="situationPreview.preTotal" placeholder="请输入" type="number" />
+				<text>分</text>
+			</view>
+			<!--end 20230417-->
 		</view>
 	</view>
 </template>
@@ -95,7 +107,8 @@
 			return {
 				
 				modalVisible:false,
-				ifShowTemplateSelector: false, //是否展示选择模版的选项
+				ifShowTemplateSelector: false, //是否展示选择模版的选项
+				ifShowSetTotal:false,
 				childContainer:[],
 				resultLists:[],//创建情境选择的条件
 			}
@@ -107,7 +120,8 @@
 				conditionCard: state => state.creatingSituations.conditionCard,
 				checkRent: state => state.creatingSituations.checkRent,
 				situationPreview: state => state.creatingSituations.situationPreview,
-				situationTypeList: state => state.creatingSituations.situationTypeList
+				situationTypeList: state => state.creatingSituations.situationTypeList,
+				pointsetTypeList:state => state.creatingSituations.pointsetTypeList
 			}),
 			situationTypeName() {
 				if (this.situationTypeList.length > 0 && this.situationPreview) {
@@ -116,6 +130,15 @@
 					return temp.length > 0 ? temp[0].situationTypeName : null;
 				}
 				return null;
+			},
+			pointsetTypeName(){
+				if (this.pointsetTypeList.length > 0 && this.situationPreview) {
+					const temp = this.pointsetTypeList.filter(item => item.situationType == this.situationPreview
+						.pointsetType);
+					
+					return temp.length > 0 ? temp[0].pointsetTypeName : null;
+				}
+				return null;
 			},
 			list: function() {
 				const {
@@ -153,6 +176,15 @@
 						key: 'templateList',
 						data: []
 					});
+				}
+				if (newVal.pointsetType == 2){
+					//情境类型为预设总分
+					this.ifShowSetTotal=true;
+					
+				}else{
+					//
+					this.ifShowSetTotal=false;
+					
 				}
 			}
 		},
@@ -202,6 +234,16 @@
 					key: 'showPopupSelectorList',
 					data: true
 				});
+			},
+			pointsetTypeHandle(){
+				this.$store.commit('creatingSituations/comChangeState', {
+					key: 'popupType',
+					data: 3
+				});
+				this.$store.commit('creatingSituations/comChangeState', {
+					key: 'showPopupSelectorList',
+					data: true
+				});
 			},
 			loopOptions: function(arr, conditionIds, list) {
 				arr.map((item) => {
@@ -498,6 +540,21 @@
 					width: 15rpx;
 					height: 25rpx;
 				}
+			}
+			.pointsetType {
+				position: relative;
+			
+				.typeValue {
+					display: inline-block;
+					margin-left: 40rpx;
+				}
+			
+				.arrowRight {
+					position: absolute;
+					right: 20rpx;
+					width: 15rpx;
+					height: 25rpx;
+				}
 			}
 		}
 	}

+ 51 - 2
pages/creatingSituations/components/taskPreview.vue

@@ -44,7 +44,18 @@
 				<text class="typeValue">{{situationTypeName}}</text>
 				<image class="arrowRight" src="../../../static/incon-more.png" mode=""></image>
 			</view>
-	        
+			<!--add by yfb 20230417-->
+			<view class="pointsetType" @click="pointsetTypeHandle">
+				<text>计分方式</text>
+				<text class="typeValue">{{pointsetTypeName}}</text>
+				<image class="arrowRight" src="../../../static/incon-more.png" mode=""></image>
+			</view>
+	        <view v-if="ifShowSetTotal" class="pointsetTotal">
+	        	<text>设置总分分值</text>
+	        	<input v-model="situationPreview.preTotal" placeholder="请输入" type="number" />
+	        	<text>分</text>
+	        </view>
+			<!--end 20230417-->
 		</view>
 	</view>
 </template>
@@ -55,6 +66,9 @@
 		data(){
 			return {
 				 ifShowTemplateSelector:false,//是否展示选择模版的选项
+				 ifShowSetTotal:false,//是否展示填写总分分值内容
+				 taskPointsetType:null,
+				 taskPreTotal:0,
 			}
 		},
 		computed: {
@@ -66,7 +80,8 @@
 				situationPreview: state => state.creatingSituations.situationPreview,
 				situationsCenter: state => state.situationsCenter,
 				checkPerson: state => state.creatingSituations.checkPerson,
-				situationTypeList:state => state.creatingSituations.situationTypeList
+				situationTypeList:state => state.creatingSituations.situationTypeList,
+				pointsetTypeList:state=>state.creatingSituations.pointsetTypeList  //add by yfb 20230417
 			}),
 			situationTypeName(){
 				if(this.situationTypeList.length>0&&this.situationPreview){
@@ -75,6 +90,13 @@
 				}
 				return null;
 			},
+			pointsetTypeName(){
+				if(this.pointsetTypeList.length>0&&this.situationPreview){
+					  const temp  = this.pointsetTypeList.filter(item=>item.pointsetType == this.situationPreview.pointsetType);
+					  return temp.length>0?temp[0].pointsetTypeName:null;
+				}
+				return null;
+			},
 			list: function() {
 				const { conditionIds, options } = this.condition;
 				let list = [];
@@ -99,6 +121,15 @@
 					this.ifShowTemplateSelector = false;
 					this.$store.commit('creatingSituations/comChangeState',{key:'templateList',data:[]});
 				}
+				if (newVal.pointsetType == 2){
+					//情境类型为预设总分
+					this.ifShowSetTotal=true;
+					
+				}else{
+					//
+					this.ifShowSetTotal=false;
+					
+				}
 			}
 		},
 		methods: {
@@ -112,6 +143,11 @@
 				this.$store.commit('creatingSituations/comChangeState',{key:'popupType',data:2});
 				this.$store.commit('creatingSituations/comChangeState',{key:'showPopupSelectorList',data:true});
 			},
+			pointsetTypeHandle(){
+				// this.$refs.popup.open();
+				this.$store.commit('creatingSituations/comChangeState',{key:'popupType',data:3});
+				this.$store.commit('creatingSituations/comChangeState',{key:'showPopupSelectorList',data:true});
+			},
 			loopOptions: function(arr, conditionIds, list) {
 				arr.map((item)=>{
 					if(conditionIds.includes(item.id)) {
@@ -306,6 +342,19 @@
 					height: 25rpx;
 				}
 			}
+			.pointsetType {
+				position: relative;
+				.typeValue {
+					display: inline-block;
+					margin-left: 40rpx;
+				}
+				.arrowRight {
+					position: absolute;
+					right:20rpx;
+					width: 15rpx;
+					height: 25rpx;
+				}
+			}
 		}
 	}
 </style>

+ 191 - 266
pages/creatingSituations/components/theme.vue

@@ -1,266 +1,191 @@
-<template>
-	<view class="theme">
-		<view class="title">请先选定一个主题进行追踪</view>
-		<view class="content">
-			<view class="item" 
-				v-for="(item, index) in themeList" 
-				@click="checkedHandle(item,index)"
-				:key="index">
-				<div class="up">
-					 <view class="left">
-					 	<image :src="`../../static/theme${item.id}.png`"></image>
-					 </view>
-					 <view class="right">
-					 	<text>{{item.title}}</text>
-					 	<text>{{item.des}}</text>
-					 </view>
-				</div>
-				<!-- <div class="down" v-if="index == 1">
-					  <div class="leftBtn" @click="checkedHandle(item,index,'NORMAL')">普通</div>
-					  <div class="rightBtn" @click="checkedHandle(item,index,'MULTI')">督查+自查</div>
-				</div> -->
-				<!-- <div class="mid">
-					<view class="left">
-					 	<image :src="`../../static/theme${item.id}.png`"></image>
-					 </view>
-					 <view class="right">
-					 	<text>{{item.title}}</text>
-					 	<text>{{item.des}}</text>
-					 </view>
-				</div>
-				<div class="down">
-					<view class="left">
-					 	<image :src="`../../static/theme${item.id}.png`"></image>
-					 </view>
-					 <view class="right">
-					 	<text>{{item.title}}</text>
-					 	<text>{{item.des}}</text>
-					 </view>
-				</div> -->
-				<image class="checkmark" v-if="theme.id === item.id" src="../../../static/theme.png"></image>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import { mapState } from "vuex";
-	import {themeList} from "./utils.js";
-	
-	export default {
-		data() {
-			return {
-				themeList
-			}
-		},
-		computed: {
-			...mapState({
-				theme: state => state.creatingSituations.theme
-			})
-		},
-		methods: {
-			/**
-			 * @param {Object} item  操作数据
-			 * @param {number} index  操作下标
-			 * @param {string} type  操作类型
-			 */
-			checkedHandle: function(item,index,type) {
-				//by yfb 20230210 修改入口
-				// if(index==0||(index == 1&&type == 'NORMAL')){
-				// 	//个案/普通系统追踪
-				// 	 this.myCommit('theme',{...item,type:'NORMAL'});
-				// 	 this.myCommit('needReload', true);
-				// 	 this.myCommit('stepActive', 1);
-				// }
-				// if(index == 1 && type == 'MULTI'){
-				// 	//督查+自查
-				// 	this.myCommit('theme',{...item,type:type});
-				// 	this.myCommit('needReload', true);
-				// 	this.myCommit('stepActive', 1);
-					
-				// }
-				if(index==0||index==1){
-					//个案/普通系统追踪
-					 this.myCommit('theme',{...item,type:'NORMAL'});
-					 this.myCommit('needReload', true);
-					 this.myCommit('stepActive', 1);
-				}
-				if(index == 2){
-					//督查+自查
-					this.myCommit('theme',{...item,type:'MULTI'});
-					this.myCommit('needReload', true);
-					this.myCommit('stepActive', 1);
-					
-				}
-	
-			},
-			myCommit: function(key, data) {
-				this.$store.commit({type: 'creatingSituations/comChangeState',key,data});
-			}
-		}
-	}
-</script>
-
-<style lang="less">
-	.theme {
-		overflow: hidden;
-		width: 100%;
-		height: 100%;
-		.content {
-			display: flex;
-			flex-direction: column;
-			align-items: center;
-			.item {
-				position: relative;
-				width:90%;
-				margin: 0 auto;
-				border-radius: 15rpx;
-				background: linear-gradient(270deg, #6697FE 0%, #4980F2 100%);
-				box-shadow: 0 12.5rpx 12.5rpx 0 rgba(73, 128, 242, 0.2);
-				margin-bottom: 22px;
-				
-				.checkmark {
-						position: absolute;
-						top: 10rpx;
-						right: 10rpx;
-						width: 46.87rpx;
-						height: 46.87rpx;
-				}
-				
-				
-				.up {
-					display: flex;
-					flex-direction: row;
-					// padding: 37.5rpx 50rpx;
-					padding: 37.5rpx 20rpx;
-					// >image {
-					// 	position: absolute;
-					// 	top: 10rpx;
-					// 	right: 10rpx;
-					// 	width: 46.87rpx;
-					// 	height: 46.87rpx;
-					// }
-									
-					.left {
-						margin-right: 25rpx;
-						image {
-							width: 112.5rpx;
-							height: 112.5rpx;
-						}
-					}
-					.right {
-						display: flex;
-						flex-direction: column;
-						text {
-							font-size: 17.5rpx;
-							line-height: 25rpx;
-							color: #fff;
-							&:first-child {
-								margin-bottom: 5rpx;
-								font-size: 30rpx;
-								font-weight: bold;
-								line-height: 45rpx;
-							}
-						}
-					}
-				} 
-				.mid {
-					display: flex;
-					flex-direction: row;
-					align-items: center;
-					justify-content: center;
-					padding-bottom:50rpx;
-					.left {
-						margin-right: 25rpx;
-						image {
-							width: 112.5rpx;
-							height: 112.5rpx;
-						}
-					}
-					.right {
-						display: flex;
-						flex-direction: column;
-						text {
-							font-size: 17.5rpx;
-							line-height: 25rpx;
-							color: #fff;
-							&:first-child {
-								margin-bottom: 5rpx;
-								font-size: 30rpx;
-								font-weight: bold;
-								line-height: 45rpx;
-							}
-						}
-					}
-					// .leftBtn,.rightBtn {
-					// 	width: 237.5rpx;
-					// 	height: 62.5rpx;
-					// 	line-height:62.5rpx;
-					// 	background: #FFFFFF;
-					// 	border-radius: 31.25rpx;
-					// 	text-align: center;
-					// 	font-size: 30rpx;
-					// 	font-family: SourceHanSansCN-Medium, SourceHanSansCN;
-					// 	font-weight: 500;
-					// 	color: #4980F2;
-					// }
-					// .rightBtn {
-					// 	margin-left: 37.5rpx;
-					// }
-				}
-				.down {
-					display: flex;
-					flex-direction: row;
-					align-items: center;
-					justify-content: center;
-					padding-bottom:50rpx;
-					.left {
-						margin-right: 25rpx;
-						image {
-							width: 112.5rpx;
-							height: 112.5rpx;
-						}
-					}
-					.right {
-						display: flex;
-						flex-direction: column;
-						text {
-							font-size: 17.5rpx;
-							line-height: 25rpx;
-							color: #fff;
-							&:first-child {
-								margin-bottom: 5rpx;
-								font-size: 30rpx;
-								font-weight: bold;
-								line-height: 45rpx;
-							}
-						}
-					}
-					// .leftBtn,.rightBtn {
-					// 	width: 237.5rpx;
-					// 	height: 62.5rpx;
-					// 	line-height:62.5rpx;
-					// 	background: #FFFFFF;
-					// 	border-radius: 31.25rpx;
-					// 	text-align: center;
-					// 	font-size: 30rpx;
-					// 	font-family: SourceHanSansCN-Medium, SourceHanSansCN;
-					// 	font-weight: 500;
-					// 	color: #499DF2;
-					// }
-					// .rightBtn {
-					// 	margin-left: 37.5rpx;
-					// }
-				}
-				
-				&:first-child {
-					margin-top: 125rpx;
-					// margin-bottom: 125rpx;
-					margin-bottom: 40rpx;
-					background: linear-gradient(270deg, #00CCBB 0%, #00CCAA 100%);
-					box-shadow: 0 12.5rpx 12.5rpx 0 rgba(0, 204, 170, 0.2);
-				}
-			}
-		}
-	}
-</style>
+<template>
+	<view class="theme">
+		<view class="title">请先选定一个主题进行追踪</view>
+		<view class="content">
+			<view class="item" 
+				v-for="(item, index) in themeList" 
+				@click="checkedHandle(item,index)"
+				:key="index">
+				<div class="up">
+					 <view class="left">
+					 	<image :src="`../../static/theme${item.id}.png`"></image>
+					 </view>
+					 <view class="right">
+						<view>
+							<text>{{item.title}}</text>
+						</view>
+						<view class="descontent">
+							<text>{{item.des}}</text>
+						</view>
+					 </view>
+				</div>
+				<!-- <div class="down" v-if="index == 1">
+					  <div class="leftBtn" @click="checkedHandle(item,index,'NORMAL')">普通</div>
+					  <div class="rightBtn" @click="checkedHandle(item,index,'MULTI')">督查+自查</div>
+				</div> -->
+	
+				<image class="checkmark" v-if="theme.id === item.id" src="../../../static/theme.png"></image>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import { mapState } from "vuex";
+	import {themeList} from "./utils.js";
+	
+	export default {
+		data() {
+			return {
+				themeList
+			}
+		},
+		computed: {
+			...mapState({
+				theme: state => state.creatingSituations.theme
+			})
+		},
+		methods: {
+			/**
+			 * @param {Object} item  操作数据
+			 * @param {number} index  操作下标
+			 * @param {string} type  操作类型
+			 */
+			checkedHandle: function(item,index,type) {
+				//by yfb 20230210 修改入口
+				// if(index==0||(index == 1&&type == 'NORMAL')){
+				// 	//个案/普通系统追踪
+				// 	 this.myCommit('theme',{...item,type:'NORMAL'});
+				// 	 this.myCommit('needReload', true);
+				// 	 this.myCommit('stepActive', 1);
+				// }
+				// if(index == 1 && type == 'MULTI'){
+				// 	//督查+自查
+				// 	this.myCommit('theme',{...item,type:type});
+				// 	this.myCommit('needReload', true);
+				// 	this.myCommit('stepActive', 1);
+					
+				// }
+				if(index==0||index==1){
+					//个案/普通系统追踪
+					 this.myCommit('theme',{...item,type:'NORMAL'});
+					 this.myCommit('needReload', true);
+					 this.myCommit('stepActive', 1);
+				}
+				if(index == 2){
+					//督查+自查
+					this.myCommit('theme',{...item,type:'MULTI'});
+					this.myCommit('needReload', true);
+					this.myCommit('stepActive', 1);
+					
+				}
+	
+			},
+			myCommit: function(key, data) {
+				this.$store.commit({type: 'creatingSituations/comChangeState',key,data});
+			}
+		}
+	}
+</script>
+
+<style lang="less">
+	.theme {
+		overflow: hidden;
+		width: 100%;
+		height: 100%;
+		.content {
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			.item {
+				position: relative;
+				margin: 0 auto;
+				width: 92%;
+				border-radius: 15rpx;
+				background: linear-gradient(270deg, #6697FE 0%, #4980F2 100%);
+				box-shadow: 0 20rpx 20rpx 0 rgba(73, 128, 242, 0.2);
+				margin-bottom: 18px;
+				
+				
+				.checkmark {
+						position: absolute;
+						top: 10rpx;
+						right: 10rpx;
+						width: 46.87rpx;
+						height: 46.87rpx;
+				}
+				
+				
+				.up {
+					display: flex;
+					flex-direction: row;
+					// padding: 37.5rpx 50rpx;
+					padding: 37.5rpx 25rpx;
+					//min-height: 90%;
+					// >image {
+					// 	position: absolute;
+					// 	top: 10rpx;
+					// 	right: 10rpx;
+					// 	width: 46.87rpx;
+					// 	height: 46.87rpx;
+					// }
+									
+					.left {
+						margin-right: 20rpx;
+						image {
+							width: 112.5rpx;
+							height: 112.5rpx;
+						}
+					}
+					.right {
+						display: flex;
+						flex-direction: column;
+						text {
+							font-size: 17.5rpx;
+							line-height: 30rpx;
+							color: #fff;
+							&:first-child {
+								margin-bottom: 5rpx;
+								font-size: 30rpx;
+								font-weight: bold;
+								line-height: 45rpx;
+							}
+						}
+						.descontent{
+							//height:60%;
+							// margin-top:5px;
+							text {
+								font-size: 12rpx;
+								line-height: 25rpx;
+								font-weight: normal;
+								color: rgba(255,255,255,0.8);
+								&:first-child {
+									margin-bottom: 5rpx;
+									font-size: 20rpx;
+									//font-weight: ;
+									line-height: 25rpx;
+								}
+								}
+						}
+					}			
+				} 
+				
+				&:first-child {
+					//margin-top: 70rpx;
+					margin-top: 10rpx;
+					// margin-bottom: 125rpx;
+					// margin-bottom: 32rpx;
+					background: linear-gradient(270deg, #00CCBB 0%, #00CCAA 100%);
+					box-shadow: 0 20rpx 20rpx 0 rgba(0, 204, 170, 0.2);
+				}
+				&:last-child{
+					// margin-top: 0rpx;
+					// margin-bottom: 125rpx;
+					// margin-bottom: 32rpx;
+					background: linear-gradient(270deg, #18AAF2 0%, #4DC3FF 100%);
+					box-shadow: 0 20rpx 20rpx 0 rgba(73,157,242, 0.2);
+				}
+			}
+		}
+	}
+</style>

+ 4 - 2
pages/creatingSituations/components/utils.js

@@ -175,7 +175,7 @@ export const editCheckPlan = ({planConfig, planList}) =>{
 	}
 }
 // 预览数据
-export const editSituationPreview = ({name, remindPlanDay,remindPlanHour,remindCheckDay,situationType,subtotal,showNotApplicable}) => {
+export const editSituationPreview = ({name, remindPlanDay,remindPlanHour,remindCheckDay,situationType,subtotal,showNotApplicable,remindpointsetType,remingpreTotal}) => {
 	return {
 		sitName: name,
 		preDay: remindPlanDay,
@@ -183,7 +183,9 @@ export const editSituationPreview = ({name, remindPlanDay,remindPlanHour,remindC
 		startDay: remindCheckDay,
 		situationType:situationType,
 		subtotal:subtotal,
-		showNotApplicable:showNotApplicable
+		showNotApplicable:showNotApplicable,
+		pointsetType:remindpointsetType  ,//计分方式类型 add by yfb 20230417
+		preTotal:remingpreTotal,
 	}
 } 
 // 判断两个数组全等

+ 74 - 17
pages/creatingSituations/creatingSituations.vue

@@ -12,8 +12,13 @@
 				:setting="{
 			  value: 'id',
 			  name: 'name'
-			}" :openkeys="[0]" @change="templateTypeChanged" />
-
+			}" :openkeys="[0]" @change="templateTypeChanged" />
+			
+			<tm-radio-group v-if="popupType==3" :list="pointsetTypeList" :defaultValue='situationPreview.pointsetType'
+				:setting="{
+			  value: 'pointsetType',
+			  name: 'pointsetTypeName'
+			}" :openkeys="[0]" @change="pointsetTypeChanged" />
 		</uni-popup>
 
 		<check-map-detail v-if="showCheckMapDetail"></check-map-detail>
@@ -132,12 +137,21 @@
 				zhinengDepartments:state=>state.creatingSituations.zhinengDepartments,
 				typeList:state=>state.creatingSituations.typeList,
 				checkPerson:state=>state.creatingSituations.checkPerson,
-				conditionCard: state => state.creatingSituations.conditionCard
+				conditionCard: state => state.creatingSituations.conditionCard,
+				pointsetTypeList:state=>state.creatingSituations.pointsetTypeList   ,//add by yfb 20230417
+
 			}),
 			situationTypeName() {
 				const temp = this.situationTypeList.filter(item => item.situationType == this.situationPreview
 					.situationType);
 				return temp[0].situationTypeName;
+			},
+			pointsetTypeName(){
+				const temp = this.pointsetTypeList.filter(item => item.pointsetType == this.situationPreview
+					.pointsetType);
+				console.log('042702');
+				console.log(temp);
+				return temp[0].pointsetTypeName;
 			},
 			botmBtnGroup: function() {
 				if(this.stepActive === 0){
@@ -287,13 +301,22 @@
 			themeName, //情境名
 			systemSituationType, //系统情境类型 0 个案 1 普通 2自查督查
 		}) {
+			this.dispatch('getDictionary').then(res => {
+				//获取后处理pointset类型
+				let tmp= res.PointSet.map((item)=>{
+					return {
+						pointsetType: parseInt(item.itemCode),
+						pointsetTypeName: item.itemName,
+					}
+				});
+				this.myCommit('pointsetTypeList', tmp);
+				this.situationPreview.pointsetTypeName=tmp[0].pointsetTypeName;
+			});
 			
 			this.isPlanSet = actTarget == 'planSet';
 			this.situationId = situationId;
 			
 			
-			
-			
 			this.saveType = type ? type : 'POST';
 			
 			if(systemSituationType == 2){
@@ -312,8 +335,8 @@
 			
 			this.dispatch('getSituationTypes').then(res => {
 				this.myCommit('situationTypeList', res);
-			});
-			
+			});
+			
 			
 			if (id) {
 				this.editID = id;
@@ -380,6 +403,17 @@
 						templateName: item.name
 					}
 				});
+			},
+			pointsetTypeChanged(type, name) {
+				// console.log({type,name});
+				this.$store.commit('creatingSituations/comChangeState', {
+					key: 'situationPreview',
+					data: {
+						...this.situationPreview,
+						pointsetType: type,
+						pointsetTypeName:name.pointsetTypeName
+					}
+				});
 			},
 			zichaduchaSave: function() {
 				  let data = {
@@ -419,10 +453,11 @@
 					  		endDate: `${dateHandle.getNewData(date, this.checkPlan.checkedItem.model - 1)} 23:59`
 					  	}
 					  }),
-					  filterDepartments:this.checkMap.list.map(item=>item.departmentId)
+					  filterDepartments:this.checkMap.list.map(item=>item.departmentId),
+					  scoreType:this.situationPreview.pointsetType,   //add by yfb 20230417 
+					  customScore:this.situationPreview.preTotal
 					  
-				}
-				
+				}
 				this.dispatch(`saveZichaduchaPlan`, param).then((data) => {
 					if (data) {
 						// 保存成功先清空数据
@@ -443,7 +478,9 @@
 					situationType,
 					showNotApplicable,
 					showCountNum,
-					pageTemplateId
+					pageTemplateId,
+					pointsetType,
+					preTotal
 				} = this.situationPreview;
 				const {
 					dateObj,
@@ -495,7 +532,18 @@
 						showCancel: false
 					});
 					return;
-				}
+				}
+				if(pointsetType==2){
+					if (preTotal<0) {
+						uni.showModal({
+							title: '温馨提示',
+							content: `设置总分部能为负数!`,
+							showCancel: false
+						});
+						return;
+					}
+				}
+				
 				let data = {
 					description,
 					name: sitName,
@@ -525,12 +573,16 @@
 							startDate: date,
 							endDate: dateHandle.getNewData(date, checkedItem.model - 1)
 						}
-					})
+					}),
+					scoreType:pointsetType,
+					customScore:parseInt(preTotal),
+					remingpreTotal:parseInt(preTotal),
+					remindpointsetType:pointsetType
 				};
 				if (this.saveType === 'PUT') {
 					data.id = this.editID;
 				}
-				
+				
 				this.dispatch(`save${this.saveType}`, data).then((data) => {
 					if (data) {
 						// 保存成功先清空数据
@@ -631,7 +683,12 @@
 								console.log({
 									res
 								});
-							})
+							});
+							this.dispatch('getDictionary').then(res => {
+								console.log({
+									res
+								});
+							});
 							break;
 						default:
 							flage = true;
@@ -739,7 +796,7 @@
 				});
 			},
 			checkCondition:function(condition){
-				 console.log('测试',condition);
+				 //console.log('测试',condition);
 				// for(var i=0;i<condition.conditionIds.length;i++){
 				// 	// console.log('测试',condition.childContainer[i].list[0].id);
 				// 	let tempdata=condition.options.filter((item) => item. == condition.conditionIds[i]);
@@ -747,7 +804,7 @@
 				// }
 				
 				let checklist=condition.options.filter(item=>item.child.length>1);
-				console.log('带监测队列',checklist);
+				//console.log('带监测队列',checklist);
 				//checklist.
 				return true;
 			}

+ 99 - 95
pages/creatingSituations/model.js

@@ -1,96 +1,100 @@
-import { commServer } from './server.js';
-import {dateHandle} from "../../utils/dateHandle.js";
-
-	
-const initState = {
-	showCheckMapDetail: false,
-	showCheckMapAdd: false,
-	showCheckPlan1: true,
-	popupType:1, //可选值 1:情境类型 2:模板类型
-	needReload: true, // 切换页面是否需要获取新数据
-	stepActive: 0, // 步骤进度
-	showPopupSelectorList:false, //是否打开选择弹窗
-	theme: {id: null, title: null, des: null,type:null,situationId:null}, // 主题选中数据(id: 0个案 1普通 2自查督查)
-
-	typeList:{
-		//类型
-		list:[],
-		checkedItems:[]
-	},
-	conditionCard:{
-		//卡片条件,
-		checkResults:[],
-	},
-	zhinengDepartments:{
-		//职能科室
-		list:[],
-		checkedItems:[]
-	},
-	checkPerson:{
-		situationId:null,
-		list:[],
-		checkedItems:[]
-	},//自查督查情境选择的查核人
-	condition: { // 条件页面数据
-		options: [], // 树形节点数据
-		conditionIds: [], // 选中的key
-		depType: 1, // 门急诊类型 1-门诊 2-急诊
-		defaultOpen: [], // 默认展开的项
-		checkedItems:[],//已勾选项,
-		childContainer:[],//卡片条件,展开的子项
-	},
-	checkRent: { // 查核组页面数据
-		list: [],
-		checkedItem: {id: null}
-	},
-	checkMap: { // 查核地图数据
-		list: [], // 列表数据
-		actionItem: {id: '', pointList: []}, // 当前操作的列表项
-		deptList: [], // 新增单位数据
-	},
-	checkPlan: { // 查核计划
-		checkedItem: {id: 'month', value: 2, label: '每月', model: 30}, // 选中的取模方式对象
-		dateObj: { // 保存开始日期结束日期的对象
-			start:dateHandle.todayDate(),
-			end: '',
-			dayNum: 0 // 两个日期间隔的天数
-		}, 
-		checkList: [], // 核查计划数组
-	},
-	situationPreview: { // 预览
-		sitName: null,
-		description: null,
-		preDay: null,
-		preH: null,
-		startDay: null,
-		situationType:1,
-		templateName:null,//分页模板名
-		pageTemplateId:null,//分页模板Id
-		showNotApplicable:0, //情境是否需要展示不适用快捷按钮 0 展示 1不展示
-		showCountNum:0,//查核组员查核列表是否统计小计
-	},
-	templateList:[],//分页模板
+import { commServer } from './server.js';
+import {dateHandle} from "../../utils/dateHandle.js";
+
+	
+const initState = {
+	showCheckMapDetail: false,
+	showCheckMapAdd: false,
+	showCheckPlan1: true,
+	popupType:1, //可选值 1:情境类型 2:模板类型
+	needReload: true, // 切换页面是否需要获取新数据
+	stepActive: 0, // 步骤进度
+	showPopupSelectorList:false, //是否打开选择弹窗
+	theme: {id: null, title: null, des: null,type:null,situationId:null}, // 主题选中数据(id: 0个案 1普通 2自查督查)
+
+	typeList:{
+		//类型
+		list:[],
+		checkedItems:[]
+	},
+	conditionCard:{
+		//卡片条件,
+		checkResults:[],
+	},
+	zhinengDepartments:{
+		//职能科室
+		list:[],
+		checkedItems:[]
+	},
+	checkPerson:{
+		situationId:null,
+		list:[],
+		checkedItems:[]
+	},//自查督查情境选择的查核人
+	condition: { // 条件页面数据
+		options: [], // 树形节点数据
+		conditionIds: [], // 选中的key
+		depType: 1, // 门急诊类型 1-门诊 2-急诊
+		defaultOpen: [], // 默认展开的项
+		checkedItems:[],//已勾选项,
+		childContainer:[],//卡片条件,展开的子项
+	},
+	checkRent: { // 查核组页面数据
+		list: [],
+		checkedItem: {id: null}
+	},
+	checkMap: { // 查核地图数据
+		list: [], // 列表数据
+		actionItem: {id: '', pointList: []}, // 当前操作的列表项
+		deptList: [], // 新增单位数据
+	},
+	checkPlan: { // 查核计划
+		checkedItem: {id: 'month', value: 2, label: '每月', model: 30}, // 选中的取模方式对象
+		dateObj: { // 保存开始日期结束日期的对象
+			start:dateHandle.todayDate(),
+			end: '',
+			dayNum: 0 // 两个日期间隔的天数
+		}, 
+		checkList: [], // 核查计划数组
+	},
+	situationPreview: { // 预览
+		sitName: null,
+		description: null,
+		preDay: null,
+		preH: null,
+		startDay: null,
+		situationType:1,
+		templateName:null,//分页模板名
+		pageTemplateId:null,//分页模板Id
+		showNotApplicable:0, //情境是否需要展示不适用快捷按钮 0 展示 1不展示
+		showCountNum:0,//查核组员查核列表是否统计小计
+		preTotal:0,    //预设总分参数
+		pointsetType:1,//计分方式类型,1:汇总累加 2:自定义   -add by yfb 20230417
+		pointsetTypeName:null //计分方式名称
+	},
+	templateList:[],//分页模板
 	situationTypeList:[],//情境类型列表
-	editConfig: null // 编辑时候的原始数据
-};
-
-export default {
-  namespaced: true,
-  state: JSON.parse(JSON.stringify(initState)),
-  mutations: {
-		comChangeState(state, {key, data}) {
-			state[key] = data;
-		},
-		setInit(state) {
-			let _initState = JSON.parse(JSON.stringify(initState));
-			for(let key in _initState) {
-				state[key] = _initState[key];
-			}
-		}
-  },
-  actions: {
-		commActions({ commit, state }, { key, data }) {
-             return commServer(key, data);
-		},
-  }
-}
+	pointsetTypeList:[],//计分方式类型列表    -add by yfb 20230417
+	editConfig: null // 编辑时候的原始数据
+};
+
+export default {
+  namespaced: true,
+  state: JSON.parse(JSON.stringify(initState)),
+  mutations: {
+		comChangeState(state, {key, data}) {
+			state[key] = data;
+		},
+		setInit(state) {
+			let _initState = JSON.parse(JSON.stringify(initState));
+			for(let key in _initState) {
+				state[key] = _initState[key];
+			}
+		}
+  },
+  actions: {
+		commActions({ commit, state }, { key, data }) {
+             return commServer(key, data);
+		},
+  }
+}

+ 5 - 0
pages/creatingSituations/server.js

@@ -89,6 +89,11 @@ const requestList = {
   saveZichaduchaPlan:{
 	  method: 'POST',
 	  url: 'inspector/savePlan',  
+  },
+  //获取字典数据
+  getDictionary:{
+	  method:'GET',
+	  url:'dictionary',
   }
 };
 

+ 13 - 7
pages/editCheckList/editCheckList.vue

@@ -75,7 +75,7 @@
 				</view>
 			</view>
 		</view>
-
+		<tm-callback-listpage />
 		<uni-popup ref="popup" type="bottom" :maskClick="true">
 			<view class="selectableList">
 				<scroll-view scroll-y="true" class="listWrap">
@@ -193,7 +193,8 @@
 			endDate,
 			multiple,
 			situationType,
-			checkNo
+			checkNo,
+			pointsetType
 		}) {
 			this.init(situationId,
 				checkId,
@@ -202,7 +203,8 @@
 				endDate,
 				multiple,
 				situationType,
-				checkNo
+				checkNo,
+				pointsetType
 			);
 		},
 		onShow() {
@@ -218,7 +220,8 @@
 					this.endDate,
 					this.multiple,
 					this.situationType,
-					this.checkNo
+					this.checkNo,
+					this.pointsetType
 				) // A页面 method中的方法,用来刷新页面A
 			}
 
@@ -239,7 +242,8 @@
 				endDate,
 				multiple,
 				situationType,
-				checkNo) {
+				checkNo,
+				pointsetType) {
 				this.getCheckList(checkId, situationType);
 				this.checkGroupId = checkGroupId ? +checkGroupId : 0;
 				this.situationId = situationId ? +situationId : 0;
@@ -249,7 +253,8 @@
 				this.multiple = multiple;
 				this.checkedList = [];
 				this.situationType = situationType;
-				this.checkNo = checkNo;
+				this.checkNo = checkNo;
+				this.pointsetType=pointsetType;//add by yfb 20230417
 			},
 			ifStartCheck(timeStr) {
 				if (timeStr) {
@@ -398,7 +403,8 @@
 					checkId: this.checkId, // 查核id
 					checkGroupId: this.checkGroupId, //查核组id
 					planStartDate: this.startDate, // 计划开始时间
-					planEndDate: this.endDate // 计划结束时间
+					planEndDate: this.endDate, // 计划结束时间
+					pointsetType:this.pointsetType //计分方式   add by yfb 20230417
 				}
 
 				if (key == 'left') { //全选

+ 1 - 1
pages/home/home.vue

@@ -107,7 +107,7 @@
 			return {
 				ifshowVersionInfo:false,
 				showJournal: false,
-				version: '0.8.3',
+				version: '0.8.4',
 				versionData: {
 					versionNo: '',
 					versionId: '',

+ 1 - 0
pages/planDetailList/planDetailList.vue

@@ -14,6 +14,7 @@
 			  	   <text class="right">{{item.improveStatus}}</text>
 			  </view>
 		</view>
+		<tm-callback-listpage />
 	</view>
 </template>
 

+ 2 - 1
pages/planList/planList.vue

@@ -26,7 +26,8 @@
 		<view class="btn-distribution" @click="gotoCheckList(true, planList[0])" v-if="isShowDistribution">
 			<text class="btn-text">批量分配</text>
 		</view>
-		<modal v-if="showModal" v-on:callback="callback"></modal>
+		<modal v-if="showModal" v-on:callback="callback"></modal>
+		<tm-callback-listpage/>
 	</view>
 </template>
 

+ 4 - 3
pages/situationsCenter/situationsCenter.vue

@@ -10,7 +10,7 @@
 			<scroll-view class="scroll-box" scroll-y="true" @scrolltolower="toLower" lower-threshold="5">
 				<view class="content" :style="[situationList.length === 0 ?{height:'100%'}:{}]">
 					<view class="situation" v-for="(item, index) in situationList" :key="item.id"
-						@click="gotoDetail(item.situationID?item.situationID:id,item.systemSituationType,item)">
+						@click="gotoDetail(item.situationID?item.situationID:item.id,item.systemSituationType,item)">
 						<!-- <image v-if="item.systemSituationType != 2" class="situation-topic" :src="`/static/${
                 item.topic ? 'situation-case' : 'situation-system'
               }.png`"></image> -->
@@ -260,13 +260,14 @@
 					url: "/pages/creatingSituations/creatingSituations",
 				});
 			},
-			gotoDetail(id, systemSituationType, item) {
+			gotoDetail(id, systemSituationType, item) {
+				console.log(this.situationList);
                 console.log({id, systemSituationType, item});
 				this.$store.commit({
 					type: 'situationsCenter/comChangeState',
 					key: 'currentSelectedSituation',
 					data: item
-				});
+				});
 
 				uni.navigateTo({
 					url: `/pages/situationDetail/situationDetail?situationId=${id}&systemSituationType=${systemSituationType}`,

+ 6 - 1
utils/requestUrl.js

@@ -15,7 +15,12 @@ export const networkType = 1; //网络类型:内网=0,外网=1
 // export const URL = '118.31.245.65:8086/imed/pfm/'; //65测试环境
 // export const URL = '118.31.245.65:8802/imed/pfm/'; //线上
 // export const URL = '112.12.21.134:8111/imed/pfm/'; //横店
-   export const URL = '47.97.190.5:8086/imed/pfm/'; 
+  // export const URL = '47.97.190.5:8086/imed/pfm/'; 
+  
+ //export const URL = '47.96.149.190:8802/imed/pfm/'; //演示环境
+export const URL = '120.27.235.181:8802/imed/pfm/'; //开发环境
+//export const URL = '47.97.190.5:8802/imed/pfm/'; //正式环境
+//export const URL = '47.97.190.5:8086/imed/pfm/'; //正式环境dev
 
 // export const URL = '192.168.1.253:8111/imed/pfm/';
 // export const URL = '192.168.1.45:8088/imed/pfm/'; //内网