Parcourir la Source

mod:问卷相关逻辑调整

闪电 il y a 1 an
Parent
commit
26197a1e5a

+ 1 - 1
package.json

@@ -59,7 +59,7 @@
59 59
     "moment": "^2.29.4",
60 60
     "nprogress": "0.2.0",
61 61
     "pinia": "2.0.22",
62
-    "qrcode": "^1.5.3",
62
+    "qrcode": "^1.5.4",
63 63
     "qrcodejs2": "^0.0.2",
64 64
     "qrcodejs2-fix": "^0.0.1",
65 65
     "sortablejs": "^1.15.1",

+ 4 - 4
src/views/main/patientFile/patientFileList/config/search.config.js

@@ -11,14 +11,14 @@ export const searchFormConfig = {
11 11
     {
12 12
       field: 'name',
13 13
       type: 'input',
14
-      label: '患者姓名',
15
-      placeholder: '请输入患者姓名'
14
+      label: '姓名',
15
+      placeholder: '请输入姓名'
16 16
     },
17 17
     {
18 18
       field: 'phoneNumber',
19 19
       type: 'input',
20
-      label: '患者手机号',
21
-      placeholder: '请输入患者手机号'
20
+      label: '手机号',
21
+      placeholder: '请输入手机号(全部)'
22 22
     },
23 23
     {
24 24
       field: 'label',

+ 27 - 17
src/views/main/questionnaireManagement/fillOut.vue

@@ -168,7 +168,7 @@ const { proxy } = getCurrentInstance();
168 168
 const props = defineProps({
169 169
 	surveyId: {
170 170
 		type: Number,
171
-		default:2
171
+		default: 0
172 172
 	},
173 173
 	userId: {
174 174
 		type: String,
@@ -232,8 +232,9 @@ const buttDis = ref(true);
232 232
 
233 233
 // 获取初始化数据
234 234
 const getData = () => {
235
-
236
-	if ((query.user && query.user !== '-1') || props.userId ) {
235
+	console.log(query.user, props.userId, 'query.user');
236
+	if ((query.user && query.user !== '-1') || props.userId) {
237
+		
237 238
 		getPageListData(`/survey/survey/getdetail?id=${props.surveyId || query.id}&user=${props.userId || query.user}`).then(({ data }) => {
238 239
 
239 240
 			for (const val of data.questionlist) {
@@ -258,7 +259,7 @@ const getData = () => {
258 259
 			Fingerprint2.get(async (components) => {
259 260
 				const values = components.map(component => component.value);
260 261
 				const murmur = Fingerprint2.x64hash128(values.join(''), 31);
261
-
262
+				
262 263
 				// 获取微信头像与昵称 
263 264
 				if (query.code) {
264 265
 					await getPageListData('/wechat/getopenid', {
@@ -302,12 +303,14 @@ const getData = () => {
302 303
 					}
303 304
 
304 305
 					formData.value = data;
305
-
306
+					console.log(isEnd(formData.value), 'isEnd(formData.value)');
306 307
 					// 不是进行中的问卷 全部隐藏
307 308
 					if (isEnd(formData.value) !== '进行中' && query.user !== '-1') {
308 309
 						return;
309 310
 					}
310 311
 
312
+					
313
+					
311 314
 					// 判断 只能微信填写 没有进行微信授权 该用户没有填写
312 315
 					if (formData.value.setting === 1 && query.code === undefined && formData.value.existanswer !== 1) {
313 316
 						const appid = 'wxe8b06998505853d2';
@@ -497,21 +500,28 @@ function clear() {
497 500
 // 判断状态
498 501
 function isEnd(data) {
499 502
 	let oldTime = new Date(data.starttime).getTime();
500
-	let newTime = new Date(data.endtime).getTime();
501
-	let time = new Date().getTime();
503
+		let newTime = new Date(data.endtime).getTime();
504
+		let time = new Date().getTime();
505
+		
502 506
 
503 507
 
504
-	if (!data.endtime || !data.starttime) {
505
-		return '未发布';
506
-	}
508
+		if (data.active === 0) {
509
+			return '停用';
510
+		} 
511
+		if (!data.active) {
512
+			return '未发布';
513
+		}
514
+		if (data.active === 2) {
515
+			return '进行中';
516
+		}
507 517
 
508
-	if (time < oldTime) {
509
-		return '未开始';
510
-	} else if (time > newTime) {
511
-		return '已结束';
512
-	} else if (time > oldTime && time < newTime) {
513
-		return '进行中';
514
-	}
518
+		if (time < oldTime) {
519
+			return '未开始';
520
+		} else if (time > newTime) {
521
+			return '已结束';
522
+		} else if (time > oldTime && time < newTime) {
523
+			return '进行中';
524
+		}
515 525
 }
516 526
 
517 527
 // 获取域名

+ 3 - 3
src/views/main/questionnaireManagement/statisticalAnalysis.vue

@@ -2,10 +2,10 @@
2 2
 	<div class="app">
3 3
 		<div class="center">
4 4
 			<div class="title">
5
-				<div>教育类调查问卷</div>
5
+				<div>{{ ysData.title }}</div>
6 6
 				<div>
7 7
 					<div>
8
-						<div>更新时间:{{ysData.createtime}}</div>
8
+						<div>{{ysData.createtime}}</div>
9 9
 						<div>注:以下针对整体数据进行分析,共{{ysData.answercount || 0}}份答卷</div>
10 10
 					</div>
11 11
 					<div>
@@ -75,7 +75,7 @@
75 75
 		if (props.surveyId) {
76 76
 			surveyId = props.surveyId
77 77
 		}
78
-		getPageListData(`/survey/survey/answerstatis/2`).then(({data})=>{
78
+		getPageListData(`/survey/survey/answerstatis/${surveyId}`).then(({data})=>{
79 79
 			ysData.value = data;
80 80
 			const arr = [];
81 81
 			

+ 67 - 30
src/views/main/questionnaireManagement/survey/survey.vue

@@ -14,9 +14,9 @@
14 14
 						placeholder="请输入发布日期" />
15 15
 				</div>
16 16
 				<div style="width: 240px;">
17
-					<el-select v-model="scarData.active" placeholder="发布状态" style="width: 240px">
17
+					<el-select v-model="scarData.active" clearable placeholder="发布状态" style="width: 240px">
18 18
 						<el-option label="进行中" value="1" />
19
-						<el-option label="已结束" value="2" />
19
+						<el-option label="停用/已结束" value="2" />
20 20
 						<el-option label="未发布" value="3" />
21 21
 					</el-select>
22 22
 				</div>
@@ -93,7 +93,24 @@
93 93
 					</div>
94 94
 				</div>
95 95
 			</div>
96
+			
96 97
 		</div>
98
+		<div class="page" style="background-color: #fff;height: 50px;padding: 10px;">
99
+			<el-pagination
100
+			style="float: right;margin-right: 10px;"
101
+				v-model:current-page="scarData.pageNum"
102
+				v-model:page-size="scarData.pageSize"
103
+				:page-sizes="[10, 30, 50, 100]"
104
+				:size="size"
105
+				:disabled="disabled"
106
+				:background="background"
107
+				layout="total, sizes, prev, pager, next, jumper"
108
+				:total="page.total"
109
+				@size-change="handleSizeChange"
110
+				@current-change="handleCurrentChange"
111
+			/>
112
+		</div>
113
+		
97 114
 
98 115
 
99 116
 		<!-- 弹出框 -->
@@ -166,13 +183,13 @@
166 183
 	</div>
167 184
 </template>
168 185
 
169
-<script setup>
170
-	import { ref, getCurrentInstance } from 'vue';
186
+<script setup name="Survey">
187
+	import { ref, getCurrentInstance, reactive, onActivated } from 'vue';
171 188
 
172 189
 	import { useRouter } from 'vue-router';
173 190
 	const router = useRouter();
174 191
 	import moment from 'moment';
175
-	import QRCode from 'qrcodejs2-fix';
192
+	import QRCode from 'qrcode';
176 193
 
177 194
 	import request from '@/utils/request'
178 195
 	import { download } from '@/utils/request'
@@ -184,13 +201,18 @@
184 201
 	const table = ref({})
185 202
 
186 203
 	// 表格数据
187
-	const dataList = ref([]);;
204
+	const dataList = ref([]);
205
+	const page = reactive({
206
+		total: 0,
207
+	});
188 208
 
189 209
 	// 搜索数据
190 210
 	const scarData = ref({
191 211
 		title: '',
192 212
 		createtime: '',
193
-		active: ''
213
+		active: '',
214
+		pageNum: 1,
215
+		pageSize: 10,
194 216
 	});
195 217
 
196 218
 	// 用户弹出框
@@ -215,7 +237,7 @@
215 237
 
216 238
 	// 获取列表
217 239
 	const getListData = (() => {
218
-		return (function fn(page) {
240
+		return (function fn() {
219 241
 			dataList.value = [];
220 242
 			console.log(scarData.value)
221 243
 			// scarData.value.createtime = moment(scarData.value.createtime).format('YYYY-MM-DD')
@@ -225,34 +247,36 @@
225 247
 			const params = scarData.value
226 248
 			getPageListData(`/survey/survey`, params).then(({ data, total }) => {
227 249
 				dataList.value = data;
250
+				console.log(total, 'total')
251
+				page.total = total;
228 252
 			});
229 253
 			return fn;
230 254
 		})();
231 255
 	})();
232 256
 
233
-	// 二维码下载
234
-	function dowQR(v) {
235
-		const el = document.getElementById(`pageQR_${v.surveyId}`);
236
-		el.innerHTML = '';
237
-
238
-		new QRCode(el, {
239
-			text: returnCopyData(v), //二维码内容字符串
240
-			width: 128, //图像宽度
241
-			height: 128, //图像高度
242
-			colorDark: '#000000', //二维码前景色
243
-			colorLight: '#ffffff', //二维码背景色
244
-			correctLevel: QRCode.CorrectLevel.H, //容错级别
245
-		})
257
+	const handleSizeChange = (val) => {
258
+		scarData.value.pageSize = val;
259
+		getListData();
260
+	}
246 261
 
247
-		let img = document.querySelectorAll(`#pageQR_${v.surveyId} img`)[0];
248
-		img.onload = () => {
249
-			let a = document.createElement('a');
250
-			a.setAttribute('href', img.src);
251
-			a.download = '二维码.png';
252
-			a.click();
262
+	const handleCurrentChange = (val) => {
263
+		scarData.value.pageNum = val;
264
+		getListData();
265
+	}
253 266
 
254
-			a.remove();
255
-		}
267
+	// 二维码下载
268
+	async function dowQR(v) {
269
+		const img = await QRCode.toDataURL(returnCopyData(v), {
270
+			width: 200,
271
+			margin: 2,
272
+		});
273
+
274
+		console.log(img, 'img');
275
+		let a = document.createElement('a');
276
+		a.setAttribute('href', img);
277
+		a.download = '二维码.png';
278
+		a.click();
279
+		a.remove();
256 280
 
257 281
 	}
258 282
 
@@ -439,11 +463,18 @@
439 463
 		let oldTime = new Date(data.starttime).getTime();
440 464
 		let newTime = new Date(data.endtime).getTime();
441 465
 		let time = new Date().getTime();
466
+		
442 467
 
443 468
 
444
-		if (!data.endtime || !data.starttime) {
469
+		if (data.active === 0) {
470
+			return '停用';
471
+		} 
472
+		if (!data.active) {
445 473
 			return '未发布';
446 474
 		}
475
+		if (data.active === 2) {
476
+			return '进行中';
477
+		}
447 478
 
448 479
 		if (time < oldTime) {
449 480
 			return '未开始';
@@ -454,6 +485,12 @@
454 485
 		}
455 486
 	}
456 487
 
488
+	// 页面跳转过来,特定场景刷新
489
+	onActivated(() => {
490
+		
491
+		getListData();
492
+	});
493
+
457 494
 </script>
458 495
 
459 496
 <style scoped lang="scss">

+ 5 - 12
src/views/main/questionnaireManagement/surveyAdd.vue

@@ -348,18 +348,11 @@
348 348
 			}
349 349
 		}
350 350
 
351
-		if(type === 'edit'){
352
-			createPageData('/survey/survey' , contentDatas.value ).then(()=>{
353
-				proxy.$modal.msgSuccess('编辑成功!');
354
-				router.back();
355
-			}) 
356
-		}
357
-		if(type === 'add' || type === 'copy'){
358
-			createPageData('/survey/survey' , contentDatas.value ).then(()=>{
359
-				proxy.$modal.msgSuccess('添加成功!');
360
-				router.back();
361
-			})
362
-		}
351
+		createPageData('/survey/survey' , contentDatas.value ).then(()=>{
352
+			proxy.$modal.msgSuccess((type === 'add' || type === 'copy') ? '添加功!' : '编辑成功!');
353
+			// router.back();
354
+			router.push(`/questionnaireManagement/survey?asyc=${new Date().getTime()}`)
355
+		})
363 356
 	}
364 357
 </script>
365 358