wangxy vor 2 Monaten
Ursprung
Commit
35c25e4270
84 geänderte Dateien mit 2093 neuen und 5468 gelöschten Zeilen
  1. 85 0
      api/common.js
  2. 311 65
      pages.json
  3. 0 118
      pages/baoming/index.vue
  4. 0 211
      pages/course/common/catalogue.vue
  5. 0 39
      pages/course/index.vue
  6. 0 240
      pages/course/kechengInfo.vue
  7. 0 708
      pages/cuoti/cuoti.vue
  8. 0 30
      pages/cuoti/index.vue
  9. 22 0
      pages/dqgzDangjiangongzuo/dqgzDangjiangongzuo.vue
  10. 22 0
      pages/dqgzDangjiangongzuoInfo/dqgzDangjiangongzuoInfo.vue
  11. 22 0
      pages/dqgzDangyuanfengcai/dqgzDangyuanfengcai.vue
  12. 22 0
      pages/dqgzDangzuzhijiagou/dqgzDangzuzhijiagou.vue
  13. 22 0
      pages/dqgzGonghuizhijia/dqgzGonghuizhijia.vue
  14. 22 0
      pages/dqgzGonghuizuzhijiagou/dqgzGonghuizuzhijiagou.vue
  15. 22 0
      pages/dqgzGongzhuizhijiaInfo/dqgzGongzhuizhijiaInfo.vue
  16. 22 0
      pages/dqgzXueyuanfengcaiInfo/dqgzXueyuanfengcaiInfo.vue
  17. 0 1067
      pages/exam/exam.vue
  18. 0 53
      pages/exam/examTools.js
  19. 0 124
      pages/exam/index.vue
  20. 260 0
      pages/index/index - 副本.vue
  21. 84 287
      pages/index/index.vue
  22. 22 0
      pages/jyjxDasaifengcai/jyjxDasaifengcai.vue
  23. 22 0
      pages/jyjxDierketang/jyjxDierketang.vue
  24. 22 0
      pages/jyjxGuizhangzhidu/jyjxGuizhangzhidu.vue
  25. 22 0
      pages/jyjxJinengjianding/jyjxJinengjianding.vue
  26. 22 0
      pages/jyjxKeyandongtai/jyjxKeyandongtai.vue
  27. 22 0
      pages/jyjxKeyanhuodong/jyjxKeyanhuodong.vue
  28. 22 0
      pages/jyjxShiziduiwu/jyjxShiziduiwu.vue
  29. 22 0
      pages/jyjxXiaoqihezuo/jyjxXiaoqihezuo.vue
  30. 22 0
      pages/jyjxZhongdianxiangmu/jyjxZhongdianxiangmu.vue
  31. 22 0
      pages/jyjxZhuanyejianshe/jyjxZhuanyejianshe.vue
  32. 0 40
      pages/lianxi/index.vue
  33. 0 727
      pages/lianxi/lianxi.vue
  34. 0 74
      pages/my/components/birthdayDialog.vue
  35. 0 81
      pages/my/components/genderDialog.vue
  36. 0 103
      pages/my/components/passwordDialog.vue
  37. 0 78
      pages/my/components/realNameDialog.vue
  38. 0 78
      pages/my/components/telDialog.vue
  39. 0 29
      pages/my/credit.vue
  40. 0 171
      pages/my/index.vue
  41. 0 41
      pages/my/mesList.vue
  42. 0 38
      pages/my/mesPage.vue
  43. 0 237
      pages/my/setting.vue
  44. 0 34
      pages/my/zhengshu.vue
  45. 0 67
      pages/score/index.vue
  46. 0 728
      pages/score/kaoshiChengjiInfo.vue
  47. 22 0
      pages/xsydDeyuduiwu/xsydDeyuduiwu.vue
  48. 22 0
      pages/xsydDeyuduiwuInfo/xsydDeyuduiwuInfo.vue
  49. 22 0
      pages/xsydGongqingtuan/xsydGongqingtuan.vue
  50. 22 0
      pages/xsydGongqingtuanInfo/xsydGongqingtuanInfo.vue
  51. 22 0
      pages/xsydXueshenghuodong/xsydXueshenghuodong.vue
  52. 22 0
      pages/xsydXueshenghuodongInfo/xsydXueshenghuodongInfo.vue
  53. 22 0
      pages/xsydZizhuguanli/xsydZizhuguanli.vue
  54. 22 0
      pages/xsydZizhuguanliInfo/xsydZizhuguanliInfo.vue
  55. 22 0
      pages/xydtTongzhigonggao/xydtTongzhigonggao.vue
  56. 22 0
      pages/xydtTongzhigonggaoInfo/xydtTongzhigonggaoInfo.vue
  57. 22 0
      pages/xydtXiaowugongkai/xydtXiaowugongkai.vue
  58. 22 0
      pages/xydtXiaowugongkaiInfo/xydtXiaowugongkaiInfo.vue
  59. 22 0
      pages/xydtXueyuanfengcai/xydtXueyuanfengcai.vue
  60. 22 0
      pages/xydtXueyuanfengcaiInfo/xydtXueyuanfengcaiInfo.vue
  61. 22 0
      pages/xydtXueyuanxingwen/xydtXueyuanxingwen.vue
  62. 22 0
      pages/xydtXueyuanxinwenInfo/xydtXueyuanxinwenInfo.vue
  63. 35 0
      pages/xygkJigoushezhi/xygkJigoushezhi.vue
  64. 34 0
      pages/xygkLianxifangshi/xygkLianxifangshi.vue
  65. 46 0
      pages/xygkXiaoyuanfengguang/xygkXiaoyuanfengguang.vue
  66. 34 0
      pages/xygkXueyuanjianjie/xygkXueyuanjianjie.vue
  67. 46 0
      pages/xygkXueyuanrongyu/xygkXueyuanrongyu.vue
  68. 58 0
      pages/xygkXueyuanwenhua/xygkXueyuanwenhua.vue
  69. 22 0
      pages/xzzxXiazaizhongxin/xzzxXiazaizhongxin.vue
  70. 22 0
      pages/zsjyBaokaozhinan/zsjyBaokaozhinan.vue
  71. 22 0
      pages/zsjyShengxue/zsjyShengxue.vue
  72. 22 0
      pages/zsjyWangnianluqufenshu/zsjyWangnianluqufenshu.vue
  73. 22 0
      pages/zsjyXiaoqihezuo/zsjyXiaoqihezuo.vue
  74. 22 0
      pages/zsjyXiaoqihezuoInfo/zsjyXiaoqihezuoInfo.vue
  75. 22 0
      pages/zsjyYouxiubiyesheng/zsjyYouxiubiyesheng.vue
  76. 22 0
      pages/zsjyYouxiubiyeshengInfo/zsjyYouxiubiyeshengInfo.vue
  77. 22 0
      pages/zsjyYubaoming/zsjyYubaoming.vue
  78. 22 0
      pages/zsjyZhaopinxinxi/zsjyZhaopinxinxi.vue
  79. 22 0
      pages/zsjyZhaoshengjianzhang/zsjyZhaoshengjianzhang.vue
  80. 22 0
      pages/zsjyZhengcewenhuaInfo/zsjyZhengcewenhuaInfo.vue
  81. 22 0
      pages/zsjyZhengcewenjian/zsjyZhengcewenjian.vue
  82. 22 0
      pages/zsjyZhuanyejieshao/zsjyZhuanyejieshao.vue
  83. 22 0
      pages/zypxTongzhigonggao/zypxTongzhigonggao.vue
  84. 22 0
      pages/zypxTongzhigonggaoInfo/zypxTongzhigonggaoInfo.vue

+ 85 - 0
api/common.js

@@ -0,0 +1,85 @@
+import request from '@/utils/request'
+export function getCommonBanners(data = {}) {
+	return request({
+		'url': '/common/client/index/banner/list',
+		headers: {
+			isToken: true
+		},
+		method: 'post',
+		data,
+		timeout: 20000
+	})
+}
+
+export function getCommonXinwenYuanxiaoList(data = {}) {
+	return request({
+		'url': '/common/xinwen/yuanxiao/list',
+		headers: {
+			isToken: true
+		},
+		method: 'post',
+		data,
+		timeout: 20000
+	})
+}
+
+export function getCommonXinwenTongzhiList(data = {}) {
+	return request({
+		'url': '/common/xinwen/tongzhi/list',
+		headers: {
+			isToken: true
+		},
+		method: 'post',
+		data,
+		timeout: 20000
+	})
+}
+
+
+export function getCommonXinwenXiaowuList(data = {}) {
+	return request({
+		'url': '/common/xinwen/xiaowu/list',
+		headers: {
+			isToken: true
+		},
+		method: 'post',
+		data,
+		timeout: 20000
+	})
+}
+
+export function getCommonGaikuangJianjieInfo(data = {}) {
+	return request({
+		'url': '/common/gaikuang/jianjie/info',
+		headers: {
+			isToken: true
+		},
+		method: 'post',
+		data,
+		timeout: 20000
+	})
+}
+
+export function getCommonGaikuangJigouShezhiInfo(data = {}) {
+	return request({
+		'url': '/common/gaikuang/jigou/info',
+		headers: {
+			isToken: true
+		},
+		method: 'post',
+		data,
+		timeout: 20000
+	})
+}
+
+export function getCommonGaikuangRongyuList(data = {}) {
+	return request({
+		'url': '/common/gaikuang/rongyu/list',
+		headers: {
+			isToken: true
+		},
+		method: 'post',
+		data,
+		timeout: 20000
+	})
+}

+ 311 - 65
pages.json

@@ -1,143 +1,404 @@
 {
 	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
 		{
-			"path": "pages/login",
+			"path": "pages/index/index",
 			"style": {
-				"navigationBarTitleText": ""
+				"navigationBarTitleText": "首页"
 			}
 		},
 		{
-			"path": "pages/index/index",
-			"style": {
-				"navigationBarTitleText": "首页"
+			"path" : "pages/xygkXueyuanjianjie/xygkXueyuanjianjie",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
 			}
 		},
 		{
-			"path" : "pages/exam/index",
-			"style" :
+			"path" : "pages/xygkJigoushezhi/xygkJigoushezhi",
+			"style" : 
 			{
-				"navigationBarTitleText" : "考试"
+				"navigationBarTitleText" : ""
 			}
 		},
 		{
-			"path" : "pages/my/index",
-			"style" :
+			"path" : "pages/xygkXueyuanrongyu/xygkXueyuanrongyu",
+			"style" : 
 			{
-				"navigationBarTitleText" : "我的"
+				"navigationBarTitleText" : ""
 			}
 		},
 		{
-			"path" : "pages/my/mesList",
-			"style" :
+			"path" : "pages/xygkXueyuanwenhua/xygkXueyuanwenhua",
+			"style" : 
 			{
-				"navigationBarTitleText" : "消息"
+				"navigationBarTitleText" : ""
 			}
 		},
 		{
-			"path" : "pages/my/zhengshu",
-			"style" :
+			"path" : "pages/xygkXiaoyuanfengguang/xygkXiaoyuanfengguang",
+			"style" : 
 			{
-				"navigationBarTitleText" : "证书"
+				"navigationBarTitleText" : ""
 			}
 		},
 		{
-			"path" : "pages/my/setting",
-			"style" :
+			"path" : "pages/xygkLianxifangshi/xygkLianxifangshi",
+			"style" : 
 			{
-				"navigationBarTitleText" : "设置"
+				"navigationBarTitleText" : ""
 			}
 		},
 		{
-			"path" : "pages/demo/index",
-			"style" :
+			"path" : "pages/dqgzDangzuzhijiagou/dqgzDangzuzhijiagou",
+			"style" : 
 			{
-				"navigationBarTitleText" : "demo"
+				"navigationBarTitleText" : ""
 			}
 		},
 		{
-			"path" : "pages/course/index",
-			"style" :
+			"path" : "pages/dqgzGonghuizuzhijiagou/dqgzGonghuizuzhijiagou",
+			"style" : 
 			{
-				"navigationBarTitleText" : "课程"
+				"navigationBarTitleText" : ""
 			}
 		},
+		{
+			"path" : "pages/dqgzDangjiangongzuo/dqgzDangjiangongzuo",
+			"style" : 
 			{
-			"path" : "pages/course/kechengInfo",
-			"style" :
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/dqgzDangyuanfengcai/dqgzDangyuanfengcai",
+			"style" : 
 			{
-				"navigationBarTitleText" : "课程详情"
+				"navigationBarTitleText" : ""
 			}
 		},
 		{
-			"path" : "pages/score/index",
-			"style" :
+			"path" : "pages/dqgzGonghuizhijia/dqgzGonghuizhijia",
+			"style" : 
 			{
-				"navigationBarTitleText" : "成绩"
+				"navigationBarTitleText" : ""
 			}
 		},
 		{
-			"path" : "pages/score/kaoshiChengjiInfo",
-			"style" :
+			"path" : "pages/xydtXiaowugongkai/xydtXiaowugongkai",
+			"style" : 
 			{
-				"navigationBarTitleText" : "考试成绩"
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/xydtXueyuanxingwen/xydtXueyuanxingwen",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/xydtTongzhigonggao/xydtTongzhigonggao",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/xydtXueyuanfengcai/xydtXueyuanfengcai",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/jyjxZhuanyejianshe/jyjxZhuanyejianshe",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
 			}
 		},
 		{
-			"path" : "pages/exam/exam",
+			"path" : "pages/jyjxShiziduiwu/jyjxShiziduiwu",
 			"style" : 
 			{
 				"navigationBarTitleText" : ""
 			}
 		},
 		{
-			"path" : "pages/lianxi/index",
+			"path" : "pages/jyjxKeyanhuodong/jyjxKeyanhuodong",
 			"style" : 
 			{
-				"navigationBarTitleText" : "练习"
+				"navigationBarTitleText" : ""
 			}
 		},
 		{
-			"path" : "pages/lianxi/lianxi",
+			"path" : "pages/jyjxKeyandongtai/jyjxKeyandongtai",
 			"style" : 
 			{
 				"navigationBarTitleText" : ""
 			}
 		},
 		{
-			"path" : "pages/baoming/index",
+			"path" : "pages/jyjxJinengjianding/jyjxJinengjianding",
 			"style" : 
 			{
-				"navigationBarTitleText" : "报名"
+				"navigationBarTitleText" : ""
 			}
 		},
 		{
-			"path" : "pages/cuoti/index",
+			"path" : "pages/jyjxDierketang/jyjxDierketang",
 			"style" : 
 			{
-				"navigationBarTitleText" : "错题"
+				"navigationBarTitleText" : ""
 			}
 		},
 		{
-			"path" : "pages/cuoti/cuoti",
+			"path" : "pages/jyjxDasaifengcai/jyjxDasaifengcai",
 			"style" : 
 			{
-				"navigationBarTitleText" : "错题答案"
+				"navigationBarTitleText" : ""
 			}
 		},
 		{
-			"path" : "pages/my/mesPage",
+			"path" : "pages/jyjxZhongdianxiangmu/jyjxZhongdianxiangmu",
 			"style" : 
 			{
-				"navigationBarTitleText" : "消息详情"
+				"navigationBarTitleText" : ""
 			}
 		},
 		{
-			"path" : "pages/my/credit",
+			"path" : "pages/jyjxXiaoqihezuo/jyjxXiaoqihezuo",
 			"style" : 
 			{
-				"navigationBarTitleText" : "学分"
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/jyjxGuizhangzhidu/jyjxGuizhangzhidu",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/zsjyZhaoshengjianzhang/zsjyZhaoshengjianzhang",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/zsjyZhuanyejieshao/zsjyZhuanyejieshao",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/zsjyShengxue/zsjyShengxue",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/zsjyBaokaozhinan/zsjyBaokaozhinan",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/zsjyWangnianluqufenshu/zsjyWangnianluqufenshu",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/zsjyXiaoqihezuo/zsjyXiaoqihezuo",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/zsjyZhaopinxinxi/zsjyZhaopinxinxi",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/zsjyZhengcewenjian/zsjyZhengcewenjian",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/zsjyYouxiubiyesheng/zsjyYouxiubiyesheng",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/zsjyYubaoming/zsjyYubaoming",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/xsydDeyuduiwu/xsydDeyuduiwu",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/xsydXueshenghuodong/xsydXueshenghuodong",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/xsydGongqingtuan/xsydGongqingtuan",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/xsydZizhuguanli/xsydZizhuguanli",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/zypxTongzhigonggao/zypxTongzhigonggao",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/xzzxXiazaizhongxin/xzzxXiazaizhongxin",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/xydtXueyuanxinwenInfo/xydtXueyuanxinwenInfo",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/xydtTongzhigonggaoInfo/xydtTongzhigonggaoInfo",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/xydtXiaowugongkaiInfo/xydtXiaowugongkaiInfo",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/xydtXueyuanfengcaiInfo/xydtXueyuanfengcaiInfo",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/dqgzDangjiangongzuoInfo/dqgzDangjiangongzuoInfo",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/dqgzXueyuanfengcaiInfo/dqgzXueyuanfengcaiInfo",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/dqgzGongzhuizhijiaInfo/dqgzGongzhuizhijiaInfo",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/xsydDeyuduiwuInfo/xsydDeyuduiwuInfo",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/xsydXueshenghuodongInfo/xsydXueshenghuodongInfo",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/xsydGongqingtuanInfo/xsydGongqingtuanInfo",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/xsydZizhuguanliInfo/xsydZizhuguanliInfo",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/zypxTongzhigonggaoInfo/zypxTongzhigonggaoInfo",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/zsjyXiaoqihezuoInfo/zsjyXiaoqihezuoInfo",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/zsjyZhengcewenhuaInfo/zsjyZhengcewenhuaInfo",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
+		},
+		{
+			"path" : "pages/zsjyYouxiubiyeshengInfo/zsjyYouxiubiyeshengInfo",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
 			}
 		}
+
 	],
 	"tabBar": {
 			"color": "#565656",
@@ -152,22 +413,7 @@
 				"iconPath": "static/images/tabbar/unselect/index-sj.png",
 				"selectedIconPath": "static/images/tabbar/select/index-sj.png",
 				"text": "首页"
-			}, {
-				"pagePath": "pages/exam/index",
-				"iconPath": "static/images/tabbar/unselect/exam-sj.png",
-				"selectedIconPath": "static/images/tabbar/select/exam-sj.png",
-				"text": "考试"
-			}, {
-				"pagePath": "pages/course/index",
-				"iconPath": "static/images/tabbar/unselect/kecheng-sj.png",
-				"selectedIconPath": "static/images/tabbar/select/kecheng-sj.png",
-				"text": "课程"
-			}, {
-				"pagePath": "pages/score/index",
-				"iconPath": "static/images/tabbar/unselect/score-sj.png",
-				"selectedIconPath": "static/images/tabbar/select/score-sj.png",
-				"text": "成绩"
-			}, {
+			},{
 				"pagePath": "pages/my/index",
 				"iconPath": "static/images/tabbar/unselect/my-sj.png",
 				"selectedIconPath": "static/images/tabbar/select/my-sj.png",

+ 0 - 118
pages/baoming/index.vue

@@ -1,118 +0,0 @@
-<template>
-	<custom-scroll-list :refreshFn="getBaomingList" :tabList="tabData" :defaultTab="0" ref="scrollRef"
-		placeholder="请输入报名考试名称">
-		<template #default="{list}">
-			<scroll-list-card-baoming v-for="(item,index) in list" :key="item.lxId" :data="item"
-				@btnClick="handleClick"></scroll-list-card-baoming>
-		</template>
-	</custom-scroll-list>
-	<!-- 考试须知 -->
-	<kaoshixuzhi ref="ksxzRef" @confirm="handleConfirm"></kaoshixuzhi>
-</template>
-
-<script setup>
-	import scrollListCardBaoming from "@/components/score-list-card-baoming/score-list-card-baoming.vue"
-	import kaoshixuzhi from "@/components/kaoshixuzhi/kaoshixuzhi.vue"
-	import {
-		getBaomingList,
-	} from "@/api/baoming.js";
-	import {
-		ref
-	} from "vue";
-
-
-	const tabData = [{
-			label: "审核中",
-			value: 0,
-		},
-		{
-			label: "已通过",
-			value: 1,
-		}, {
-			label: "未通过",
-			value: 2,
-		}, {
-			label: "未报名",
-			value: 3,
-		}, {
-			label: "已结束",
-			value: 4,
-		}
-	]
-
-
-	function goKaoshiPage(data) {
-		uni.navigateTo({
-			url: `/pages/exam/exam?ksId=${data.ksId}&zhuapai=${data.zhuapai}`
-		})
-	}
-	
-	function handleConfirm() {
-		goKaoshiPage(activeKs.value)
-	}
-
-	function showKaoshiXuzhi() {
-		const option = {
-			ksId: activeKs.value.ksId
-		}
-		getClientKaoshiInfo(option).then(res => {
-			examNoticeInfo.value = res.data;
-			// 校验抓拍
-			doCheckZhuapai()
-		})
-
-	}
-
-	function doCheckZhuapai() {
-		if (examNoticeInfo.value.zhuapai) {
-			// 存在抓拍
-		} else {
-			// 不存在抓拍
-			ksxzRef.value.showDialog(examNoticeInfo.value)
-		}
-	}
-
-	function handleClick(data) {
-		activeKs.value = data;
-		if (data.status == 0) {
-			// 未开始
-			showKaoshiXuzhi()
-		}
-		if (data.status == 1) {
-			// 可以考试
-			showKaoshiXuzhi()
-		}
-		if (data.status == 2) {
-			// 再次考试
-			showKaoshiXuzhi()
-		}
-		if (data.status == 3) {
-			// 考试中
-			showKaoshiXuzhi()
-		}
-		if (data.status == 4) {
-			// 已结束
-			uni.showToast({
-				title: '考试已结束',
-				icon: 'none'
-			})
-		}
-		if (data.status == 5) {
-			// 未报名
-			kaoShiApply({
-				ksId: data.ksId
-			}).then(res => {
-				uni.showToast({
-					title: '报名成功',
-					icon: 'none'
-				})
-				scrollRef.value.onRefresh()
-			})
-		}
-
-	}
-</script>
-
-<style lang="scss">
-
-</style>

+ 0 - 211
pages/course/common/catalogue.vue

@@ -1,211 +0,0 @@
-<template>
-	<view>
-		<uni-collapse class="chapter-collapse" accordion>
-			<uni-collapse-item v-for="(zhangItem, zhangIndex) in props.options.zhangList" :key="zhangIndex"
-				:title="zhangItem.name" :open="isCurrentZhang(zhangIndex)">
-				<uni-collapse class="chapter-collapse" accordion>
-					<uni-collapse-item v-for="(jieItem, jieIndex) in zhangItem.jieList" :key="'jie-'+jieIndex"
-						:title="jieItem.name" :open="isCurrentJie(zhangIndex,jieIndex)">
-						<view class="section-header">{{ jieItem.name }}</view>
-						<view v-for="(video, vidIndex) in jieItem.kejianList" :key="'vid-'+video.kjId"
-							class="video-item" @click="handleVideoClick(zhangIndex, jieIndex, vidIndex,video)">
-							<view class="video-info">
-								<text class="video-name"
-									:class="{ active: isCurrentVideo(zhangIndex, jieIndex, vidIndex) }">
-									{{ video.name }}
-								</text>
-								<view class="progress-container">
-									<progress :percent="calcProgress(video)" stroke-width="4"
-										:activeColor="video.curProcess >= 100 ? '#4cd964' : '#007aff'" />
-								</view>
-							</view>
-						</view>
-					</uni-collapse-item>
-				</uni-collapse>
-			</uni-collapse-item>
-		</uni-collapse>
-	</view>
-</template>
-
-<script setup>
-	import {
-		getKechengList,
-		kejianInfo
-	} from "@/api/course.js";
-	import {
-		onLoad,
-		onReady
-	} from "@dcloudio/uni-app"
-
-	import {
-		ref,
-		reactive,
-		defineProps,
-		defineEmits,
-		onMounted,
-		watchEffect,
-		defineExpose
-	} from 'vue';
-	const props = defineProps({
-		options: {
-			type: Object,
-			default: () => {}
-		},
-		currentVideo: {
-			type: Object,
-			default: () => {}
-		},
-
-	})
-	let currentPos = ref({
-		zhangIndex: -1,
-		jieIndex: -1,
-		vidIndex: -1
-	});
-	const Emits = defineEmits(['kejianInfo', 'playNext']);
-	// 初始化时定位第一个未完成视频
-	onMounted(() => {
-		loadProgressFromCache();
-		findFirstUnfinished();
-	});
-	// 加载缓存进度
-	const loadProgressFromCache = () => {
-		props.options.zhangList.forEach(zhang => {
-			zhang.jieList.forEach(jie => {
-				jie.kejianList.forEach(video => {
-					const cached = uni.getStorageSync(`video_${video.kjId}`);
-					if (cached) {
-						video.curProcess = (cached / uni.getStorageSync(
-							`duration_${video.kjId}`)) * 100 || 0;
-						video.maxProcess = Math.max(video.maxProcess, video.curProcess);
-					}
-				});
-			});
-		});
-	};
-	// 查找第一个未完成视频
-	const findFirstUnfinished = () => {
-		for (let z = 0; z < props.options.zhangList.length; z++) {
-			const zhang = props.options.zhangList[z];
-			for (let j = 0; j < zhang.jieList.length; j++) {
-				const jie = zhang.jieList[j];
-				for (let v = 0; v < jie.kejianList.length; v++) {
-					const video = jie.kejianList[v];
-					if (video.curProcess < 100) {
-						updateCurrentPosition(z, j, v, video);
-						return;
-					}
-				}
-			}
-		}
-	};
-	// 判断是否当前章
-	const isCurrentZhang = (zhangIndex) => {
-		return currentPos.value.zhangIndex === zhangIndex;
-	};
-
-	// 判断是否当前节(需要同时匹配章和节)
-	const isCurrentJie = (zhangIndex, jieIndex) => {
-		return currentPos.value.zhangIndex === zhangIndex &&
-			currentPos.value.jieIndex === jieIndex;
-	};
-
-	// 判断是否当前视频
-	const isCurrentVideo = (z, j, v) => {
-		return currentPos.value.zhangIndex === z &&
-			currentPos.value.jieIndex === j &&
-			currentPos.value.vidIndex === v;
-	};
-
-	// 计算进度
-	const calcProgress = (video) => {
-		return Math.min(video.curProcess, 100);
-	};
-
-	// 点击视频处理
-	const handleVideoClick = (z, j, v, video) => {
-		console.log('video', video);
-		// currentPos.value = {
-		// 	zhangIndex: z,
-		// 	jieIndex: j,
-		// 	vidIndex: v
-		// };
-		updateCurrentPosition(z, j, v, video);
-		kejianInfo({
-			kjId: video.kjId
-		}).then(res => {
-			console.log('res', res);
-			Emits('kejianInfo', {
-				...res.data,
-				kjId: video.kjId
-			})
-		})
-		// 这里添加实际播放逻辑
-	};
-	// 更新播放位置
-	const updateCurrentPosition = (z, j, v, video) => {
-		currentPos.value = {
-			zhangIndex: z,
-			jieIndex: j,
-			vidIndex: v
-		};
-		video.curProcess = uni.getStorageSync(`video_${video.kjId}`) /
-			uni.getStorageSync(`duration_${video.kjId}`) * 100 || 0;
-	};
-	// 播放下一个视频
-	let playNextVideo = () => {
-		let {
-			zhangIndex,
-			jieIndex,
-			vidIndex
-		} = currentPos.value;
-		const chapters = props.options.zhangList;
-
-		// 1. 同节的下一个视频
-		const currentSection = chapters[zhangIndex].jieList[jieIndex];
-		if (vidIndex < currentSection.kejianList.length - 1) {
-			vidIndex++;
-			return playVideoAt(zhangIndex, jieIndex, vidIndex);
-		}
-
-		// 2. 同章的下一节
-		const currentChapter = chapters[zhangIndex];
-		if (jieIndex < currentChapter.jieList.length - 1) {
-			for (let j = jieIndex + 1; j < currentChapter.jieList.length; j++) {
-				if (currentChapter.jieList[j].kejianList.length > 0) {
-					return playVideoAt(zhangIndex, j, 0);
-				}
-			}
-		}
-
-		// 3. 后续章节
-		for (let z = zhangIndex + 1; z < chapters.length; z++) {
-			for (let j = 0; j < chapters[z].jieList.length; j++) {
-				if (chapters[z].jieList[j].kejianList.length > 0) {
-					return playVideoAt(z, j, 0);
-				}
-			}
-		}
-
-		uni.showToast({
-			title: '已播放所有课程',
-			icon: 'none'
-		});
-	};
-	// 辅助方法
-	const playVideoAt = (z, j, v) => {
-		const video = props.options.zhangList[z].jieList[j].kejianList[v];
-		updateCurrentPosition(z, j, v, video);
-		Emits('kejianInfo', {
-			...video,
-			kjId: video.kjId
-		});
-	};
-	defineExpose({
-	  playNextVideo
-	});
-</script>
-
-<style lang="scss">
-
-</style>

+ 0 - 39
pages/course/index.vue

@@ -1,39 +0,0 @@
-<template>
-	<custom-scroll-list :refreshFn="getKechengList" :tabList="tabData" :defaultTab="1">
-		<template #default="{list}">
-			<scroll-list-card-kecheng @click="kechengClick(item)" v-for="(item,index) in list" :key="item.ksId"
-				:data="item"></scroll-list-card-kecheng>
-		</template>
-	</custom-scroll-list>
-</template>
-
-<script setup>
-	import {
-		getKechengList
-	} from "@/api/course.js";
-	import {
-		onLoad,
-		onReady,
-
-	} from "@dcloudio/uni-app"
-	import {
-		reactive,
-		ref
-	} from "vue";
-	const tabData = [{
-		label: "可以学习",
-		value: 1,
-	}, {
-		label: "已结束",
-		value: 4
-	}]
-	const kechengClick = (data) => {
-		uni.navigateTo({
-			url: '/pages/course/kechengInfo?kcId=' + data.kcId + '&name=' + data.name
-		});
-	}
-</script>
-
-<style lang="scss">
-
-</style>

+ 0 - 240
pages/course/kechengInfo.vue

@@ -1,240 +0,0 @@
-<template>
-	<view class="course-container">
-		<!-- 视频播放器 -->
-		<video v-if="currentVideo.url" :src="currentVideo.url" :id="videoId" controls @ended="handleVideoEnd"
-			@timeupdate="handleTimeUpdate" @loadedmetadata="handleVideoLoaded">
-		</video>
-
-		<!-- 课程信息 -->
-		<view class="course-header">
-			<text class="course-title">测试课程1</text>
-			<view class="course-meta">
-				<text>讲师:张老师</text>
-				<text>时长:3分42秒</text>
-				<text>1人学习</text>
-			</view>
-		</view>
-		<!-- 选项卡 -->
-		<view class="course-tabs">
-			<text :class="['tab-item', activeTab === '目录' ? 'active' : '']" @click="activeTab = '目录'">目录</text>
-			<text :class="['tab-item', activeTab === '介绍' ? 'active' : '']" @click="activeTab = '介绍'">介绍</text>
-			<text :class="['tab-item', activeTab === '评论' ? 'active' : '']" @click="activeTab = '评论'">评论</text>
-			<text :class="['tab-item', activeTab === '考试' ? 'active' : '']" @click="activeTab = '考试'">考试</text>
-		</view>
-		<!-- 目录内容 -->
-		<view v-if="activeTab == '目录'" class="course-content">
-			<catalogue ref="catalogueRef" @kejianInfo='getKejianInfo' :options="kejianUserVo"
-				:current-video="currentVideo"></catalogue>
-		</view>
-		<view v-if="activeTab == '介绍'" class="course-content">
-			<view v-if="!kechengData.intro" class="s-kehceng-default">
-				<view>
-					<img :src="jieshaoImg">
-					<text>还没有介绍</text>
-				</view>
-			</view>
-			<view v-else v-html="kechengData.intro" class="kecheng-tab-jieshao"></view>
-		</view>
-			<view v-if="activeTab == '评论'" class="course-content">
-			<view v-if="!kechengData.intro" class="s-kehceng-default">
-				<view>
-					<img :src="jieshaoImg">
-					<text>还没有介绍</text>
-				</view>
-			</view>
-			<view v-else v-html="kechengData.intro" class="kecheng-tab-jieshao"></view>
-		</view>
-
-	</view>
-</template>
-
-<script setup>
-	import {
-		ref,
-		onMounted
-	} from 'vue';
-	import {
-		onLoad,
-		onReady,
-
-	} from "@dcloudio/uni-app"
-	import {
-		kechengStart
-	} from "@/api/course.js";
-	import catalogue from './common/catalogue.vue';
-	// 选项卡状态
-	const activeTab = ref('');
-	let kcId = ref('');
-	let kejianUserVo = ref(null);
-	let jieshaoImg = ref('/static/images/kecheng/kecheng-introduce.svg');
-	let kechengData = ref(null);
-	// 当前播放信息
-	const currentVideo = ref({
-		url: '',
-		kjId: ''
-	});
-	const currentChapter = ref(0);
-	const currentSection = ref(0);
-	const catalogueRef = ref(null);
-	const videoId = ref('courseVideo');
-	let videoContext = null;
-	onLoad((options) => {
-		console.log('options', options);
-		kcId.value = options.kcId
-
-	});
-	onMounted(() => {
-		getKechengData()
-	});
-
-	function getKechengData() {
-		kechengStart({
-			kcId: kcId.value
-		}).then(res => {
-			console.log('res', res);
-			activeTab.value = '目录'
-			kejianUserVo.value = res.data.kejianUserVo
-			kechengData.value = res.data
-		})
-	}
-
-	function getKejianInfo(data) {
-		console.log('data', data.url);
-
-		currentVideo.value = {
-			url: data.url,
-			kjId: data.kjId
-		};
-		setTimeout(() => {
-			if (!videoContext) {
-				videoContext = uni.createVideoContext(videoId.value, this);
-			}
-			const cachedTime = uni.getStorageSync(`video_${data.kjId}`) || 0;
-			videoContext.seek(cachedTime);
-		}, 300);
-	}
-
-
-	const handleTimeUpdate = (e) => {
-		const currentTime = e.detail.currentTime;
-		uni.setStorageSync(`video_${currentVideo.value.kjId}`, currentTime);
-	};
-
-	const handleVideoEnd = () => {
-		catalogueRef.value.playNextVideo();
-	};
-	const handleVideoLoaded = (e) => {
-		uni.setStorageSync(`duration_${currentVideo.value.kjId}`, e.detail.duration);
-	};
-</script>
-
-<style scoped>
-	.course-container {
-		display: flex;
-		flex-direction: column;
-		height: 100vh;
-	}
-
-	.course-header {
-		padding: 20rpx;
-		background: #f5f5f5;
-	}
-
-	.course-title {
-		font-size: 36rpx;
-		font-weight: bold;
-	}
-
-	.course-meta {
-		margin-top: 10rpx;
-		font-size: 24rpx;
-		color: #666;
-	}
-
-	.course-tabs {
-		display: flex;
-		justify-content: space-around;
-		padding: 20rpx;
-		background: #fff;
-		border-bottom: 1rpx solid #ddd;
-	}
-
-	.tab-item {
-		font-size: 28rpx;
-		color: #666;
-	}
-
-	.tab-item.active {
-		color: #09BB07;
-		font-weight: bold;
-	}
-
-	.course-content {
-		flex: 1;
-		overflow-y: auto;
-		padding: 20rpx;
-	}
-
-	.chapter-list {
-		background: #fff;
-	}
-
-	.chapter-item {
-		margin-bottom: 20rpx;
-	}
-
-	.chapter-title {
-		padding: 20rpx;
-		background: #f5f5f5;
-		display: flex;
-		justify-content: space-between;
-		border-bottom: 1rpx solid #ddd;
-	}
-
-	.section-list {
-		background: #fff;
-	}
-
-	.section-item {
-		padding: 20rpx;
-		display: flex;
-		justify-content: space-between;
-		border-bottom: 1rpx solid #eee;
-	}
-
-	.section-info {
-		flex: 1;
-	}
-
-	.section-title {
-		display: block;
-		font-size: 28rpx;
-		color: #333;
-	}
-
-	.play-status {
-		width: 180rpx;
-		text-align: right;
-	}
-
-	.playing {
-		color: #09BB07;
-		font-size: 24rpx;
-	}
-
-	.progress {
-		color: #666;
-		font-size: 24rpx;
-	}
-
-	.unplayed {
-		color: #999;
-		font-size: 24rpx;
-	}
-
-	video {
-		width: 100%;
-		height: 300rpx;
-		background: #000;
-	}
-</style>

+ 0 - 708
pages/cuoti/cuoti.vue

@@ -1,708 +0,0 @@
-<template>
-	<view class="phone-score-page">
-		<!-- 段落 -->
-		<view class="score-shiti-content">
-			<!-- 试题区域 -->
-			<view v-if="activeSt">
-				<template v-if="activeSt.stTypeId == 1">
-					<!-- 单选 -->
-					<danxuan :question="activeSt" :key="activeSt.stId"></danxuan>
-				</template>
-				<template v-if="activeSt.stTypeId == 2">
-					<!-- 多选 -->
-					<duoxuan :question="activeSt" :key="activeSt.stId"></duoxuan>
-				</template>
-				<template v-if="activeSt.stTypeId == 3">
-					<!-- 判断 -->
-					<panduan :question="activeSt" :key="activeSt.stId"></panduan>
-				</template>
-				<template v-if="activeSt.stTypeId == 4">
-					<!-- 填空 -->
-					<tiankong :question="activeSt" :key="activeSt.stId"></tiankong>
-				</template>
-				<template v-if="activeSt.stTypeId == 5">
-					<!-- 简答 -->
-					<jianda :question="activeSt" :key="activeSt.stId"></jianda>
-				</template>
-				<template v-if="activeSt.stTypeId == 6">
-					<!-- 阅读 -->
-					<yuedu :question="activeSt" :key="activeSt.stId" @yudu-change="onYueduChange"></yuedu>
-				</template>
-			</view>
-			<!-- 底部 -->
-			<view class="kaoshi-bottom-box">
-				<view class="shiti-num-box" @click="showAnswerCard">
-					<icon class="shiti-num-icon"></icon>答题卡
-					<text
-						class="active-num">{{activeSt ? activeSt.onlyNum: 0}}</text>/<text>{{data.StListForSearch.length}}</text>
-				</view>
-			</view>
-
-			<!-- 解析 -->
-			<view v-if="activeSt" class="score-answer-box">
-				<view class="phone-question-answer-box" v-if="activeSt.stTypeId == 6">
-					<template v-if="yuduItemAnswer.stTypeId == 5">
-						<!-- 阅读题中简答题 -->
-						<view class="phone-line-title">答案解析</view>
-						<view class="btdf-row">本题得分:<text>{{yuduItemAnswer.score}}</text>分</view>
-						<view class="zqda-row">正确答案:
-							<view>{{yuduItemAnswer.result}}</view>
-						</view>
-						<view class="ndda-row">您的答案:
-							<view>{{yuduItemAnswer.reply}}</view>
-						</view>
-						<view class="dajx-row">答案解析:
-							<rich-text :nodes="yuduItemAnswer.answer"></rich-text>
-						</view>
-					</template>
-					<template v-else-if="yuduItemAnswer.stTypeId == 4">
-						<view class="phone-line-title">答案解析</view>
-						<view class="btdf-row">本题得分:<text>{{yuduItemAnswer.score}}</text>分</view>
-						<view class="zqda-row">正确答案:
-							<view v-for="(item,index) in yuduItemAnswer.result">{{`填空${index+1}`}} : {{item}}</view>
-						</view>
-						<view class="ndda-row">您的答案:
-							<view v-for="(item,index) in yuduItemAnswer.reply"> {{`填空${index+1}`}}: {{item}}</view>
-						</view>
-						<view class="dajx-row">答案解析:
-							<rich-text :nodes="yuduItemAnswer.answer"></rich-text>
-						</view>
-					</template>
-					<template v-else>
-						<view class="phone-line-title">答案解析</view>
-						<view class="btdf-row">本题得分:<text>{{yuduItemAnswer.score}}</text>分</view>
-						<view class="zqda-row">正确答案:<text>{{yuduItemAnswer.result}}</text></view>
-						<view class="ndda-row">您的答案:<text>{{yuduItemAnswer.reply}}</text></view>
-						<view class="dajx-row">答案解析:
-							<rich-text :nodes="yuduItemAnswer.answer"></rich-text>
-						</view>
-					</template>
-				</view>
-				<view class="phone-question-answer-box" v-else-if="activeSt.stTypeId == 5">
-					<view class="phone-line-title">答案解析</view>
-					<view class="btdf-row">本题得分:<text>{{data.score}}</text>分</view>
-					<view class="zqda-row">正确答案:
-						<view>{{data.result}}</view>
-					</view>
-					<view class="ndda-row">您的答案:
-						<view>{{data.reply}}</view>
-					</view>
-					<view class="dajx-row">答案解析:
-						<rich-text :nodes="data.answer"></rich-text>
-					</view>
-				</view>
-				<view class="phone-question-answer-box" v-else-if="activeSt.stTypeId == 4">
-					<view class="phone-line-title">答案解析</view>
-					<view class="btdf-row">本题得分:<text>{{answerRes.score}}</text>分</view>
-					<view class="zqda-row">正确答案:
-						<view v-for="(item,index) in answerRes.result">{{`填空${index+1}`}} : {{item}}</view>
-					</view>
-					<view class="ndda-row">您的答案:
-						<view v-for="(item,index) in answerRes.reply"> {{`填空${index+1}`}}: {{item}}</view>
-					</view>
-					<view class="dajx-row">答案解析:
-						<rich-text :nodes="answerRes.answer"></rich-text>
-					</view>
-				</view>
-				<view class="phone-question-answer-box" v-else>
-					<view class="phone-line-title">答案解析</view>
-					<view class="btdf-row">本题得分:<text>{{answerRes.score}}</text>分</view>
-					<view class="zqda-row">正确答案:<text>{{answerRes.result}}</text></view>
-					<view class="ndda-row">您的答案:<text>{{answerRes.reply}}</text></view>
-					<view class="dajx-row">答案解析:
-						<rich-text :nodes="answerRes.answer"></rich-text>
-					</view>
-				</view>
-			</view>
-		</view>
-		<!-- 上下按钮 -->
-		<view v-if="activeSt" class="score-bottom-box">
-			<view @click="handleOpenCard" class="score-num-box">
-				<icon class="score-num-icon"></icon>
-				<text
-					class="active-num">{{activeSt && activeSt.onlyNum||0}}</text>/<text>{{data.StListForSearch.length}}</text>
-			</view>
-			<view>
-				<button type="default" size="mini" hover-class="none" class="phone-green-btn score-answer-btn"
-					@click="handlePrev" v-if="!isFistStId">上一题</button>
-				<button type="default" size="mini" hover-class="none" class="phone-green-btn score-answer-btn"
-					@click="handleNext" v-if="!isLastStId">下一题</button>
-				<!-- 		<button type="default" size="mini" hover-class="none" class="phone-green-btn score-answer-btn"
-					@click="handleBack" v-if="isLastStId">完成</button> -->
-			</view>
-		</view>
-		<!-- 答题卡 -->
-		<uni-popup ref="popupRef" background-color="#fff" :animation="false" :is-mask-click="false" :mask-click="false">
-			<view class="answer-card-popup">
-				<view class="icon-title-navBar-box">
-					<view @click="handlePopupBack" class="nav-bar-icon"> </view>
-					<text class="nav-bar-title">答题卡</text>
-				</view>
-				<view class="card-content-box">
-					<view class="answer-card-content" v-for="(paragraph,paragraphIndex) in questionData"
-						:key="paragraphIndex">
-						<view class="paragraph-title">
-							{{paragraph.name}}
-						</view>
-						<view class="paragraph-qa" v-for="(qa,qaIndex) in paragraph.qas" :key="qaIndex"
-							:class="getQaClass(qa)" @click="answerCardItemClick(qa)">{{qa.onlyNum}}
-						</view>
-					</view>
-				</view>
-			</view>
-		</uni-popup>
-
-	</view>
-</template>
-
-<script setup>
-	import danxuan from "@/components/questions/danxuan.vue";
-	import duoxuan from "@/components/questions/duoxuan.vue";
-	import tiankong from "@/components/questions/tiankong.vue";
-	import panduan from "@/components/questions/panduan.vue";
-	import jianda from "@/components/questions/jianda.vue";
-	import yuedu from "@/components/questions/yuedu.vue";
-	import {
-		useQuestionTools
-	} from "@/components/questions/useQuestionTools.js";
-
-	import {
-		onLoad
-	} from "@dcloudio/uni-app";
-	import {
-		ref,
-		reactive,
-		computed
-	} from "vue"
-	import * as ctApi from "@/api/cuoti.js"
-	const {
-		checkDanxuanReply,
-		checkDuoxuanReply,
-		checkPanduanReply,
-		checkTiankongReply,
-		getLetterByIndex,
-		checkJiandaReply,
-		checkYueduReply
-	} = useQuestionTools();
-
-
-	const hisId = ref(null)
-	const popupRef = ref(null)
-	const yuduItemAnswer = ref(null); // 阅读小题显示答案
-	const yuduIndexQa = ref(null); // 阅读小题答案
-
-	const data = reactive({
-		ksId: null,
-		ksName: '',
-		stTotal: 0,
-		zyLevelName: '',
-		userScore: '',
-		ksScore: 0,
-		StListForSearch: [],
-		duanluo: []
-	})
-
-	const questionData = ref([]);
-	const progress = reactive({
-		dlIndex: 0,
-		dtIndex: 0
-	})
-
-	const dlName = computed(() => {
-		if (data.StListForSearch && activeSt.value) {
-			return data.StListForSearch[activeSt.value.onlyNum].paragraphName
-		} else {
-			return ''
-		}
-	})
-
-	const activeSt = computed(() => {
-		if (questionData.value.length) {
-			return questionData.value.length && questionData.value[progress.dlIndex].qas[progress.dtIndex];
-		} else {
-			return null
-		}
-	})
-
-	const answerRes = computed(() => {
-		const qa = activeSt.value;
-		let score = qa.score;
-		let reply = '';
-		let result = '';
-		let answer = qa.answer;
-		if (qa.stTypeId == 1) {
-			// 单选题
-			if (qa.reply && qa.reply.trim() !== '') {
-				reply = getLetterByIndex(qa.reply)
-			} else {
-				reply = '未答'
-			}
-
-			if (qa.result) {
-				result = getLetterByIndex(qa.result)
-			} else {
-				result = '无答案'
-			}
-		}
-		if (qa.stTypeId == 2) {
-			// 多选题
-
-			if (qa.reply && qa.reply.length) {
-				reply = qa.reply.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				reply = '未答'
-			}
-			if (qa.result) {
-				result = qa.result.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				result = '无答案'
-			}
-		}
-		if (qa.stTypeId == 3) {
-			// 判断题
-			if (qa.reply === '') {
-				reply = '未答'
-			} else if (qa.reply == 0) {
-				reply = '错误'
-			} else if (qa.reply == 1) {
-				reply = '正确'
-			}
-			if (qa.result == 0) {
-				result = '错误'
-			} else if (qa.result == 1) {
-				result = '正确'
-			}
-		}
-		if (qa.stTypeId == 4) {
-			let reply = qa.reply || [];
-			let result = qa.result || [];
-			// 填空题
-			return {
-				score,
-				reply,
-				result,
-				answer
-			}
-		} else if (qa.stTypeId == 5) {
-			let reply = qa.reply;
-			let result = qa.result;
-			// 简答题
-			return {
-				score,
-				reply,
-				result,
-				answer
-			}
-		} else {
-			return {
-				score,
-				reply,
-				result,
-				answer
-			}
-		}
-	})
-
-	function showAnswerCard() {
-		popupRef.value.open('top')
-	}
-
-	function onYueduChange(data) {
-		yuduIndexQa.value = data;
-		checkYueduJiexi()
-	}
-
-	// 校验阅读解析
-	function checkYueduJiexi() {
-		console.log('格式化阅读题', yuduIndexQa.value)
-		let qa = yuduIndexQa.value;
-		let score = qa.userScore;
-		let reply = '';
-		let result = '';
-		let answer = qa.answer;
-		if (qa.stTypeId == 1) {
-			// 单选题
-			if (qa.reply && qa.reply.trim() !== '') {
-				reply = getLetterByIndex(qa.reply)
-			} else {
-				reply = '未答'
-			}
-
-			if (qa.result) {
-				result = getLetterByIndex(qa.result)
-			} else {
-				result = '无答案'
-			}
-			yuduItemAnswer.value = {
-				score,
-				reply,
-				result,
-				answer
-			}
-		}
-		if (qa.stTypeId == 2) {
-			// 多选题
-
-			if (qa.reply && qa.reply.length) {
-				reply = qa.reply.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				reply = '未答'
-			}
-			if (qa.result) {
-				result = qa.result.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				result = '无答案'
-			}
-			yuduItemAnswer.value = {
-				score,
-				reply,
-				result,
-				answer
-			}
-		}
-		if (qa.stTypeId == 3) {
-			// 判断题
-			if (qa.reply === '') {
-				reply = '未答'
-			} else if (qa.reply == 0) {
-				reply = '错误'
-			} else if (qa.reply == 1) {
-				reply = '正确'
-			}
-			if (qa.result == 0) {
-				result = '错误'
-			} else if (qa.result == 1) {
-				result = '正确'
-			}
-			yuduItemAnswer.value = {
-				score,
-				reply,
-				result,
-				answer
-			}
-		}
-		if (qa.stTypeId == 4) {
-			let reply = qa.reply || [];
-			let result = qa.result || [];
-			// 填空题
-			yuduItemAnswer.value = {
-				score,
-				reply,
-				result,
-				answer
-			}
-		}
-		if (qa.stTypeId == 5) {
-			// 简单题
-			let reply = qa.reply ? '未答' : qa.reply;
-			let result = qa.result;
-			yuduItemAnswer.value = {
-				score,
-				reply,
-				result,
-				answer
-			}
-		}
-
-	}
-
-	const isFistStId = computed(() => {
-		if (data.StListForSearch.length) {
-			return data.StListForSearch[0].stId == activeSt.value.stId
-		} else {
-			return false
-		}
-	});
-	const isLastStId = computed(() => {
-		if (data.StListForSearch.length) {
-			return data.StListForSearch[data.StListForSearch.length - 1].stId == activeSt.value.stId
-		} else {
-			return false
-		}
-	});
-
-
-	onLoad((options) => {
-		hisId.value = options.hisId;
-		initPage()
-	})
-
-
-	function getQaClass(qa) {
-		if (qa.marked && qa.marked === true) {
-			return 'paragraph-qa-block-mark';
-		} else {
-			if (qa.stTypeId == 1) {
-				if (checkDanxuanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 2) {
-				if (checkDuoxuanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 3) {
-				if (checkPanduanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 4) {
-				if (checkTiankongReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 5) {
-				if (checkJiandaReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 6) {
-				if (checkYueduReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			}
-		}
-	}
-
-	function skipQuestion(dlIndex, dtIndex) {
-		progress.dlIndex = dlIndex;
-		progress.dtIndex = dtIndex;
-		handlePopupBack()
-	}
-
-	function answerCardItemClick(qa) {
-		const actQa = data.StListForSearch.find(item => item.stId == qa.stId);
-		skipQuestion(actQa.dlIndex, actQa.dtIndex)
-	}
-
-
-	function handleBack() {
-		uni.redirectTo({
-			url: "/pages/admin/Chengji/list"
-		})
-	}
-
-
-	function formatDuanluoList() {
-		let uIndex = 0; // 试题num
-		let iDuanluo = 0; // 段落num
-		let result = [];
-		for (const duanluo of data.duanluo) {
-			let paragraph = {
-				qas: [],
-			};
-			paragraph.name = duanluo.name;
-
-			let iQa = 0; // 当前试题序号
-			let order = 0; // 当前题型中第几题
-			for (const iDanxuan of duanluo.danxuan) {
-				iDanxuan.type = 'danxuan';
-				iDanxuan.marked = false;
-				iDanxuan.onlyNum = uIndex + 1;
-				iDanxuan.order = order;
-				iDanxuan.iQa = iQa;
-				paragraph.qas.push(iDanxuan);
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iDanxuan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iDanxuan.iQa,
-					num: iDanxuan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iDuoxuan of duanluo.duoxuan) {
-				iDuoxuan.type = 'duoxuan';
-				iDuoxuan.marked = false;
-				iDuoxuan.onlyNum = uIndex + 1;
-				iDuoxuan.order = order;
-				paragraph.qas.push(iDuoxuan);
-				iDuoxuan.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iDuoxuan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iDuoxuan.iQa,
-					num: iDuoxuan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iPanduan of duanluo.panduan) {
-				iPanduan.type = 'panduan';
-				iPanduan.marked = false;
-				iPanduan.onlyNum = uIndex + 1;
-				iPanduan.order = order;
-				paragraph.qas.push(iPanduan);
-				iPanduan.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iPanduan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iPanduan.iQa,
-					num: iPanduan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iTiankong of duanluo.tiankong) {
-				iTiankong.type = 'tiankong';
-				iTiankong.marked = false;
-				iTiankong.onlyNum = uIndex + 1;
-				iTiankong.order = order;
-				paragraph.qas.push(iTiankong);
-				iTiankong.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iTiankong.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iTiankong.iQa,
-					num: iTiankong.onlyNum
-				})
-			}
-			order = 0;
-			for (const iJianda of duanluo.jianda) {
-				iJianda.type = 'jianda';
-				iJianda.onlyNum = uIndex + 1;
-				iJianda.order = order;
-				iJianda.iQa = iQa;
-				paragraph.qas.push(iJianda);
-				iJianda.reply = '';
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iJianda.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iJianda.iQa,
-					num: iJianda.onlyNum
-				})
-			}
-			order = 0;
-			for (const iYuedu of duanluo.yuedu) {
-				iYuedu.type = 'yuedu';
-				iYuedu.onlyNum = uIndex + 1;
-				iYuedu.order = order;
-				iYuedu.iQa = iQa;
-
-				if (iYuedu.duoxuan && iYuedu.duoxuan.length) {
-					iYuedu.duoxuan.map((qIt) => {
-						qIt.reply = qIt.reply || [];
-						return qIt
-					})
-				}
-
-				if (iYuedu.tiankong && iYuedu.tiankong.length) {
-					iYuedu.tiankong.map((qIt) => {
-						qIt.reply = new Array(qIt.count).fill('');
-						return qIt;
-					});
-				}
-
-				paragraph.qas.push(iYuedu);
-				iYuedu.reply = [];
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iYuedu.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iYuedu.iQa,
-					num: iYuedu.onlyNum
-				})
-			}
-			iDuanluo++;
-			questionData.value.push(paragraph)
-
-		}
-	}
-
-	function handlePrev() {
-		const qa = data.StListForSearch.find(item => item.stId == activeSt.value.stId);
-		const index = qa.num - 1;
-		if (index > 0) {
-			const result = data.StListForSearch[index - 1];
-			progress.dlIndex = result.dlIndex;
-			progress.dtIndex = result.dtIndex
-		}
-
-	}
-
-	function handleNext() {
-		const qa = data.StListForSearch.find(item => item.stId == activeSt.value.stId);
-		const index = qa.num - 1;
-		if (index < data.StListForSearch.length) {
-			const result = data.StListForSearch[index + 1];
-			progress.dlIndex = result.dlIndex;
-			progress.dtIndex = result.dtIndex
-		}
-	}
-
-
-
-	function initPage() {
-		uni.setNavigationBarTitle({
-			title: '错题'
-		});
-		ctApi.getCuotiInfo({
-			hisId: hisId.value
-		}).then(res => {
-			data.duanluo = [res.data];
-			formatDuanluoList();
-		})
-	}
-
-	function handlePopupBack() {
-		popupRef.value.close()
-	}
-
-	function handleOpenCard() {
-		popupRef.value.open('top')
-	}
-</script>
-
-<style>
-
-</style>

+ 0 - 30
pages/cuoti/index.vue

@@ -1,30 +0,0 @@
-<template>
-	<custom-scroll-list-date-vue :refreshFn="getCuotiList" :defaultTab="1" ref="scrollRef" placeholder="请输入考试名称">
-		<template #default="{list}">
-			<scroll-list-card-cuoti v-for="(item,index) in list" :key="item.lxId" :data="item"
-				@btnClick="handleClick"></scroll-list-card-cuoti>
-		</template>
-	</custom-scroll-list-date-vue>
-</template>
-
-<script setup>
-	import scrollListCardCuoti from "@/components/score-list-card-cuoti/score-list-card-cuoti.vue";
-	import customScrollListDateVue from "@/components/custom-scroll-list/custom-scroll-list-date.vue";
-	import {
-		getCuotiList,
-	} from "@/api/cuoti.js";
-	import {
-		ref
-	} from "vue";
-
-	function handleClick(data) {
-		uni.navigateTo({
-			url: `/pages/cuoti/cuoti?hisId=${data.hisId}`
-		})	
-	}
-
-</script>
-
-<style lang="scss">
-
-</style>

+ 22 - 0
pages/dqgzDangjiangongzuo/dqgzDangjiangongzuo.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/dqgzDangjiangongzuoInfo/dqgzDangjiangongzuoInfo.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/dqgzDangyuanfengcai/dqgzDangyuanfengcai.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/dqgzDangzuzhijiagou/dqgzDangzuzhijiagou.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/dqgzGonghuizhijia/dqgzGonghuizhijia.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/dqgzGonghuizuzhijiagou/dqgzGonghuizuzhijiagou.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/dqgzGongzhuizhijiaInfo/dqgzGongzhuizhijiaInfo.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/dqgzXueyuanfengcaiInfo/dqgzXueyuanfengcaiInfo.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 0 - 1067
pages/exam/exam.vue

@@ -1,1067 +0,0 @@
-<template>
-	<view class="phone-kaoshi-page">
-		<!-- 导航区域 -->
-		<!-- <view class="icon-title-bjcolor-navBar-box">
-			<text class="nav-bar-title">{{data.ksName}}</text>
-		</view> -->
-		<!-- 第一行 -->
-		<view class="kaoshi-page-title">
-			<view v-if="activeSt" class="title-types">{{dlName}}</view>
-			<!--  倒计时 -->
-			<view v-if="!!data.endSecond">
-				<uni-countdown :show-day="false" :showHour="true" :showMinute="true" :second="data.endSecond"
-					@timeup="onTimeUp" :start="startCountDown"></uni-countdown>
-			</view>
-		</view>
-		<view class="kaoshi-shiti-content">
-			<!-- 内容区域 -->
-			<!-- 试题区域 -->
-			<view v-if="activeSt">
-				<template v-if="activeSt.stTypeId == 1">
-					<!-- 单选 -->
-					<danxuan :question="activeSt" :key="activeSt.stId"></danxuan>
-				</template>
-				<template v-if="activeSt.stTypeId == 2">
-					<!-- 多选 -->
-					<duoxuan :question="activeSt" :key="activeSt.stId"></duoxuan>
-				</template>
-				<template v-if="activeSt.stTypeId == 3">
-					<!-- 判断 -->
-					<panduan :question="activeSt" :key="activeSt.stId"></panduan>
-				</template>
-				<template v-if="activeSt.stTypeId == 4">
-					<!-- 填空 -->
-					<tiankong :question="activeSt" :key="activeSt.stId"></tiankong>
-				</template>
-				<template v-if="activeSt.stTypeId == 5">
-					<!-- 简答 -->
-					<jianda :question="activeSt" :key="activeSt.stId"></jianda>
-				</template>
-				<template v-if="activeSt.stTypeId == 6">
-					<!-- 阅读 -->
-					<yuedu :question="activeSt" :key="activeSt.stId"></yuedu>
-				</template>
-			</view>
-
-		</view>
-
-		<view class="kaoshi-bottom-box">
-			<button class="phone-green-btn bj-btn" hover-class="none" type="default" size="mini"
-				@click="handleBiaoji">{{activeSt && activeSt.marked ? '取标':'标记'}}</button>
-			<view @click="showAnswerCard" class="shiti-num-box">
-				<icon class="shiti-num-icon"></icon>
-				<text class="active-num">{{answercartsCount}}</text>/<text>{{data.StListForSearch.length}}</text>
-			</view>
-			<button class="phone-green-btn save-btn" hover-class="none" type="default" size="mini"
-				@click="handleSave(true)">保存</button>
-		</view>
-		<template v-if="activeSt">
-			<button type="default" size="mini" hover-class="none" class="phone-green-btn ks-btn-prev"
-				@click="handlePrev" v-if="!isFistStId">上一题</button>
-			<button type="default" size="mini" hover-class="none" class="phone-green-btn ks-btn-next"
-				@click="handleNext" v-if="!isLastStId">下一题</button>
-			<button type="default" size="mini" hover-class="none" class="phone-green-btn ks-btn-next"
-				@click="handleJiaojuan" v-if="isLastStId">交卷</button>
-		</template>
-
-		<!-- 答题卡 -->
-		<uni-popup ref="popupRef" background-color="#fff" :animation="false" :is-mask-click="false" :mask-click="false">
-			<view class="answer-card-popup">
-				<view class="icon-title-bjcolor-navBar-box">
-					<view @click="handlePopupBack" class="nav-bar-icon"> </view>
-					<text class="nav-bar-title">答题卡</text>
-				</view>
-				<view class="card-content-box">
-					<view class="answer-card-content" v-for="(paragraph,paragraphIndex) in questionData"
-						:key="paragraphIndex">
-						<view class="paragraph-title">
-							{{paragraph.name}}
-						</view>
-						<view class="paragraph-qa" v-for="(qa,qaIndex) in paragraph.qas" :key="qaIndex"
-							:class="getQaClass(qa)" @click="answerCardItemClick(qa)">{{qa.onlyNum}}
-						</view>
-					</view>
-				</view>
-			</view>
-		</uni-popup>
-		<!-- 摄像头确认 -->
-		<!-- 	<zhuapaiConfirm ref="zhuapaiConfirmRef" @success="zpConfirmSuccess" @error="zpConfirmError" 
-			@cancel="zpConfirmCancel" key="1"></zhuapaiConfirm> -->
-		<template v-if="data.zhuapai && data.zhuapai > 0">
-			<!-- 抓拍 -->
-			<!-- <zhuapaiVue ref="zhuapaiRef" @error="zpError" @success="zpSuccess" key="2" @progress="onProgress"></zhuapaiVue> -->
-		</template>
-
-		<!-- 切屏 -->
-		<qiepingVue ref="qiepingRef" @zhuapai="qpZhuapai" @forceSubmit="forceSubmit" @qiepingToast="qiepingToast"
-			key="3"></qiepingVue>
-		<!-- 交卷确认 -->
-		<answerQueren ref="answerQrRef" @confirm="handleQuerenConfirm"></answerQueren>
-		<!-- 考试得分 -->
-		<submitScoreVue ref="subScoreRef" @confirm="handleScoreConfirm" @close="handleScoreClose"></submitScoreVue>
-
-		<!-- 切屏确认弹窗 -->
-		<qiepingDlVue ref="qiepingDlRef" :content="messageContent" title="注意" okBtn="知道了"></qiepingDlVue>
-	</view>
-</template>
-
-<script setup>
-	import {
-		ref,
-		reactive,
-		computed,
-		watch,
-		nextTick
-	} from "vue";
-	import zhuapaiVue from "@/components/zhuapaiConfirm/zhuapai.vue";
-	import qiepingVue from "@/components/zhuapaiConfirm/qieping.vue";
-	import zhuapaiConfirm from "@/components/zhuapaiConfirm/index.vue";
-	import answerQueren from "@/components/zhuapaiConfirm/answerQueren.vue";
-	import submitScoreVue from "@/components/zhuapaiConfirm/submitScore.vue";
-	import {
-		onLoad
-	} from "@dcloudio/uni-app";
-	import * as ksApi from "@/api/exam.js"
-	import danxuan from "@/components/questions/danxuan.vue";
-	import duoxuan from "@/components/questions/duoxuan.vue";
-	import tiankong from "@/components/questions/tiankong.vue";
-	import panduan from "@/components/questions/panduan.vue";
-	import jianda from "@/components/questions/jianda.vue";
-	import yuedu from "@/components/questions/yuedu.vue";
-	import {
-		useQuestionTools
-	} from "@/components/questions/useQuestionTools.js";
-	import {
-		useKaoShiCache
-	} from "./examTools"
-	import qiepingDlVue from "@/components/dialog/qiepingDl.vue";
-
-	const {
-		checkDanxuanReply,
-		checkDuoxuanReply,
-		checkPanduanReply,
-		checkTiankongReply,
-		getLetterByIndex,
-		checkJiandaReply,
-		checkYueduReply
-	} = useQuestionTools();
-	const {
-		saveCacheKs,
-		getCacheKs,
-		removeCacheKs
-	} = useKaoShiCache();
-
-	onLoad((option) => {
-		data.ksId = option.ksId;
-		data.zhuapai = option.zhuapai;
-		if (data.zhuapai && data.zhuapai != 0) {
-			// 考试前确认摄像头
-			nextTick(() => {
-				// initBeforKaoshi();
-			})
-		} else {
-			console.log('初始化')
-			initKaoshi();
-		}
-	})
-
-
-	const popupRef = ref(null)
-	const zhuapaiRef = ref(null)
-	const qiepingRef = ref(null)
-	const zhuapaiConfirmRef = ref(null)
-	const answerQrRef = ref(null);
-	const startCountDown = ref(false);
-	const subScoreRef = ref(null);
-	const messageContent = ref('');
-	const qiepingDlRef = ref(null);
-	const timer1 = ref(null);
-	const answercartsCount = ref(0); // 已答题数
-
-	const data = reactive({
-		ksId: null,
-		operId: null,
-		ksName: '',
-		stTotal: 0,
-		stScore: 0,
-		biaoji: {},
-		endSecond: 0,
-		pageSize: 0,
-		toggleScreenFlag: 0,
-		toggleScreenSecond: 0,
-		zhuapai: 0,
-		duanluo: [],
-		StListForSearch: [],
-		from: '',
-		hisId: '',
-	})
-
-	const markDB = ref([]);
-
-	const questionData = ref([]);
-
-	const progress = reactive({
-		dlIndex: 0,
-		dtIndex: 0
-	})
-
-	const dlName = computed(() => {
-		if (data.StListForSearch && activeSt.value) {
-			return data.StListForSearch[activeSt.value.onlyNum - 1].paragraphName
-		} else {
-			return ''
-		}
-	})
-
-	watch(() => questionData, (newVal) => {
-		// 计算已答试题数量
-		renderPage(newVal);
-	}, {
-		deep: true
-	})
-
-	function renderPage(data) {
-		let count = 0;
-		for (const paragraph of data.value) {
-			for (const qa of paragraph.qas) {
-				if (qa.stTypeId == 1) {
-					if (checkDanxuanReply(qa)) {
-						count++;
-					}
-				} else if (qa.stTypeId == 2) {
-					if (checkDuoxuanReply(qa)) {
-						count++;
-					}
-				} else if (qa.stTypeId == 3) {
-					if (checkPanduanReply(qa)) {
-						count++;
-					}
-				} else if (qa.stTypeId == 4) {
-					if (checkTiankongReply(qa)) {
-						count++;
-					}
-				} else if (qa.stTypeId == 5) {
-					if (checkJiandaReply(qa)) {
-						count++;
-					}
-				} else if (qa.stTypeId == 4) {
-					if (checkYueduReply(qa)) {
-						count++;
-					}
-				}
-			}
-		}
-		answercartsCount.value = count;
-	}
-
-	const activeSt = computed(() => {
-		if (questionData.value.length) {
-			return questionData.value.length && questionData.value[progress.dlIndex].qas[progress.dtIndex];
-		} else {
-			return null
-		}
-	})
-
-	const isFistStId = computed(() => {
-		if (data.StListForSearch.length) {
-			return data.StListForSearch[0].stId == activeSt.value.stId
-		} else {
-			return false
-		}
-	});
-	const isLastStId = computed(() => {
-		if (data.StListForSearch.length) {
-			return data.StListForSearch[data.StListForSearch.length - 1].stId == activeSt.value.stId
-		} else {
-			return false
-		}
-	});
-
-
-	function handleScoreClose() {
-		handleBack()
-	}
-
-	// 考试得分相关 start
-	function handleScoreConfirm() {
-		// 跳转成绩
-		uni.redirectTo({
-			url: `/pages/client/Chengji/ksScoreShijuan?hisId=${data.hisId}`
-		})
-	}
-
-	// 考试得分相关 end
-
-	// 保存相关
-	function handleSave(showToast) {
-		if (timer1.value) {
-			uni.showToast({
-				title: '请勿连续保存',
-				icon: 'none'
-			})
-			return
-		}
-		timer1.value = setTimeout(() => {
-			clearTimeout(timer1.value);
-		}, 10 * 1000);
-		console.log(questionData.value)
-
-		const result = []
-		const option = {
-			operId: data.operId,
-			replyList: []
-		}
-		questionData.value.forEach(dl => {
-			dl.qas.forEach(qa => {
-				console.log('qa:', qa)
-				if (qa.stTypeId == 5) {
-					const opt = {
-						stId: qa.stId,
-						files: qa.files,
-						reply: qa.reply,
-					}
-					result.push(opt)
-					option.replyList.push(opt)
-				} else if (qa.stTypeId != 6) {
-					const opt = {
-						stId: qa.stId,
-						reply: qa.reply,
-					}
-					result.push(opt)
-					option.replyList.push(opt)
-				} else {
-					// 阅读题
-					let danxuanArr = [];
-					for (const iDanxuan of qa.danxuan) {
-						danxuanArr.push(iDanxuan.reply);
-					}
-					let duoxuanArr = [];
-					for (const iDuoxuan of qa.duoxuan) {
-						duoxuanArr.push(iDuoxuan.reply);
-					}
-
-					let panduanArr = [];
-					for (const iPanduan of qa.panduan) {
-						panduanArr.push(iPanduan.reply);
-					}
-
-					let tiankongArr = [];
-					for (const iTiankong of qa.tiankong) {
-						tiankongArr.push(iTiankong.reply);
-					}
-
-					let jiandaArr = [];
-					for (const iJianda of qa.jianda) {
-						const c = {
-							files: iJianda.files,
-							reply: iJianda.reply,
-						};
-						jiandaArr.push(c);
-					}
-					result.push({
-						reply: {
-							danxuan: danxuanArr,
-							duoxuan: duoxuanArr,
-							panduan: panduanArr,
-							tiankong: tiankongArr,
-							jianda: jiandaArr,
-						},
-						stId: qa.stId,
-					})
-					option.replyList.push({
-						reply: {
-							danxuan: danxuanArr,
-							duoxuan: duoxuanArr,
-							panduan: panduanArr,
-							tiankong: tiankongArr,
-							jianda: jiandaArr,
-						},
-						stId: qa.stId,
-					});
-				}
-			})
-		})
-		// 保存试题答案
-		saveCacheKs(data.operId, {
-			replyList: result,
-			position: {
-				dlIndex: progress.dlIndex,
-				dtIndex: progress.dtIndex
-			}
-		})
-		// 保存答题进度
-		ksApi.getClientKsSave(option).then(res => {
-			if (res.data && showToast) {
-				uni.showToast({
-					title: '保存成功',
-				})
-			}
-		})
-	}
-
-
-	//  交卷相关功能 start
-	function checkJiaojuan() {
-		const result = []
-		let count = 0;
-		let total = 0;
-		questionData.value.forEach(item => {
-			item.qas.forEach(qa => {
-				total++;
-				if (qa.stTypeId == 1 && !checkDanxuanReply(qa)) {
-					count++;
-				}
-				if (qa.stTypeId == 2 && !checkDuoxuanReply(qa)) {
-					count++;
-				}
-				if (qa.stTypeId == 3 && !checkPanduanReply(qa)) {
-					count++;
-				}
-				if (qa.stTypeId == 4 && !checkTiankongReply(qa)) {
-					count++;
-				}
-				if (qa.stTypeId == 5 && !checkJiandaReply(qa)) {
-					count++;
-				}
-				if (qa.stTypeId == 6 && !checkYueduReply(qa)) {
-					count++;
-				}
-			})
-		})
-		return {
-			total,
-			count,
-		}
-	}
-
-	function handleJiaojuan() {
-		const result = checkJiaojuan()
-		if (result.count) {
-			// 提示
-			answerQrRef.value.showDialog({
-				answercartsCount: result.total - result.count,
-				answercartsTotal: result.total,
-			})
-		} else {
-			handleSubmit()
-		}
-	}
-
-	function handleQuerenConfirm() {
-		handleSubmit()
-	}
-
-	function handleSubmit(force = false) {
-		const result = {
-			force,
-			operId: data.operId,
-			replyList: []
-		};
-		questionData.value.forEach(dl => {
-			dl.qas.forEach(st => {
-				if (st.stTypeId == 5) {
-					// 简答题
-					const opt = {
-						stId: st.stId,
-						reply: st.reply,
-						files: st.files,
-					}
-					result.replyList.push(opt)
-				} else if (st.stTypeId == 6) {
-					// 阅读题
-					// 阅读题
-					let danxuanArr = [];
-					for (const iDanxuan of qa.danxuan) {
-						danxuanArr.push(iDanxuan.reply);
-					}
-					let duoxuanArr = [];
-					for (const iDuoxuan of qa.duoxuan) {
-						duoxuanArr.push(iDuoxuan.reply);
-					}
-
-					let panduanArr = [];
-					for (const iPanduan of qa.panduan) {
-						panduanArr.push(iPanduan.reply);
-					}
-
-					let tiankongArr = [];
-					for (const iTiankong of qa.tiankong) {
-						tiankongArr.push(iTiankong.reply);
-					}
-
-					let jiandaArr = [];
-					for (const iJianda of qa.jianda) {
-						const c = {
-							files: iJianda.files,
-							reply: iJianda.reply,
-						};
-						jiandaArr.push(c);
-					}
-					result.replyList.push({
-						reply: {
-							danxuan: danxuanArr,
-							duoxuan: duoxuanArr,
-							panduan: panduanArr,
-							tiankong: tiankongArr,
-							jianda: jiandaArr,
-						},
-						stId: qa.stId,
-					})
-				} else {
-					// 其他
-					const opt = {
-						stId: st.stId,
-						reply: st.reply
-					}
-					result.replyList.push(opt)
-				}
-
-
-			})
-		})
-
-		ksApi.getClientKsSubmit(result).then(res => {
-			if (res.code == 0) {
-				subScoreRef.value.showDialog(res.data);
-				data.hisId = res.data.hisId;
-				// 清空缓存
-				removeCacheKs(data.operId);
-			}
-		})
-	}
-
-	function onTimeUp() {
-		handleSubmit();
-	}
-	//  交卷相关功能 end
-
-
-	// 切屏功能 start
-	function qiepingToast(count) {
-		messageContent.value = `已离开${count}次。${data.toggleScreenFlag}次将自动交卷!`
-		qiepingDlRef.value.handleShow()
-	}
-
-	function forceSubmit() {
-		// 强制交卷
-		console.log('强制交卷')
-		handleSubmit(true)
-	}
-
-	function qpZhuapai() {
-		// 重新开启抓拍
-		zhuapaiRef.value && zhuapaiRef.value.showVideoBtn();
-	}
-	// 切屏功能 end
-
-	// 摄像头抓拍相关功能 start
-
-	function zpSuccess() {}
-
-	function zpError() {
-		uni.showToast({
-			title: '抓拍图片异常',
-			icon: 'none'
-		})
-		handleBack()
-	}
-
-	// 摄像头抓拍相关功能 end
-	// 摄像头确认相关功能 start
-	function onProgress() {
-		uni.showToast({
-			icon: 'none',
-			title: '摄像头运行环境异常,请重新进入考试',
-			duration: 8000
-		})
-		handleBack();
-	}
-
-	function zpConfirmSuccess() {
-		console.log('zpConfirmSuccess')
-		initKaoshi();
-	}
-
-	function zpConfirmError() {
-		handleBack()
-	}
-
-	function zpConfirmCancel() {
-		handleBack()
-	}
-
-	// 摄像头确认相关功能 end
-
-	function getQaClass(qa) {
-		if (qa.marked && qa.marked === true) {
-			return 'paragraph-qa-block-mark';
-		} else {
-			if (qa.stTypeId == 1) {
-				if (checkDanxuanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 2) {
-				if (checkDuoxuanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 3) {
-				if (checkPanduanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 4) {
-				if (checkTiankongReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 5) {
-				if (checkJiandaReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 6) {
-				if (checkYueduReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			}
-		}
-	}
-
-	function skipQuestion(dlIndex, dtIndex) {
-		progress.dlIndex = dlIndex;
-		progress.dtIndex = dtIndex;
-		handlePopupBack()
-	}
-
-	function answerCardItemClick(qa) {
-		const actQa = data.StListForSearch.find(item => item.stId == qa.stId);
-		console.log('actQa', actQa)
-		skipQuestion(actQa.dlIndex, actQa.dtIndex)
-
-	}
-
-	function handleBack() {
-		const pages = getCurrentPages();
-		if (pages.length > 1) {
-			uni.navigateBack()
-		} else {
-			history.back();
-		}
-
-
-	}
-
-	function showAnswerCard() {
-		popupRef.value.open('top')
-	}
-
-	function handlePopupBack() {
-		popupRef.value.close()
-	}
-
-	function handlePrev() {
-		const qa = data.StListForSearch.find(item => item.stId == activeSt.value.stId);
-		const index = qa.onlyNum - 1;
-		if (index > 0) {
-			const result = data.StListForSearch[index - 1];
-			progress.dlIndex = result.dlIndex;
-			progress.dtIndex = result.dtIndex
-		}
-
-	}
-
-	function handleNext() {
-		const qa = data.StListForSearch.find(item => item.stId == activeSt.value.stId);
-		const index = qa.onlyNum - 1;
-		if (index < data.StListForSearch.length) {
-			const result = data.StListForSearch[index + 1];
-			progress.dlIndex = result.dlIndex;
-			progress.dtIndex = result.dtIndex
-		}
-	}
-
-	function formatDuanluoList(dlData) {
-		let uIndex = 0; // 试题onlyNum
-		let iDuanluo = 0; // 段落onlyNum
-		let result = [];
-		for (const duanluo of data.duanluo) {
-			let paragraph = {
-				qas: [],
-			};
-			paragraph.name = duanluo.name;
-
-			let iQa = 0; // 当前试题序号
-			let order = 0; // 当前题型中第几题
-			for (const iDanxuan of duanluo.danxuan) {
-				iDanxuan.type = 'danxuan';
-				iDanxuan.marked = data.biaoji[iDanxuan.stId] ? true : false;
-				iDanxuan.onlyNum = uIndex + 1;
-				iDanxuan.order = order;
-				iDanxuan.iQa = iQa;
-				paragraph.qas.push(iDanxuan);
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iDanxuan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iDanxuan.iQa,
-					onlyNum: iDanxuan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iDuoxuan of duanluo.duoxuan) {
-				iDuoxuan.type = 'duoxuan';
-				iDuoxuan.marked = data.biaoji[iDuoxuan.stId] ? true : false;
-				iDuoxuan.onlyNum = uIndex + 1;
-				iDuoxuan.order = order;
-				paragraph.qas.push(iDuoxuan);
-				iDuoxuan.iQa = iQa;
-				iDuoxuan.reply = [];
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iDuoxuan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iDuoxuan.iQa,
-					onlyNum: iDuoxuan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iPanduan of duanluo.panduan) {
-				iPanduan.type = 'panduan';
-				iPanduan.marked = data.biaoji[iPanduan.stId] ? true : false;
-				iPanduan.onlyNum = uIndex + 1;
-				iPanduan.order = order;
-				paragraph.qas.push(iPanduan);
-				iPanduan.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iPanduan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iPanduan.iQa,
-					onlyNum: iPanduan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iTiankong of duanluo.tiankong) {
-				iTiankong.type = 'tiankong';
-				iTiankong.marked = data.biaoji[iTiankong.stId] ? true : false;
-				iTiankong.onlyNum = uIndex + 1;
-				iTiankong.order = order;
-				paragraph.qas.push(iTiankong);
-				iTiankong.iQa = iQa;
-				iTiankong.reply = new Array(iTiankong.count).fill('');
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iTiankong.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iTiankong.iQa,
-					onlyNum: iTiankong.onlyNum
-				})
-			}
-			order = 0;
-			for (const iJianda of duanluo.jianda) {
-				iJianda.marked = data.biaoji[iJianda.stId] ? true : false;
-				iJianda.type = 'jianda';
-				iJianda.onlyNum = uIndex + 1;
-				iJianda.order = order;
-				iJianda.iQa = iQa;
-				paragraph.qas.push(iJianda);
-				iJianda.reply = '';
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iJianda.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iJianda.iQa,
-					onlyNum: iJianda.onlyNum
-				})
-			}
-			order = 0;
-			for (const iYuedu of duanluo.yuedu) {
-				iYuedu.marked = data.biaoji[iYuedu.stId] ? true : false;
-				iYuedu.type = 'yuedu';
-				iYuedu.onlyNum = uIndex + 1;
-				iYuedu.order = order;
-				iYuedu.iQa = iQa;
-
-				if (iYuedu.duoxuan && iYuedu.duoxuan.length) {
-					iYuedu.duoxuan.map((qIt) => {
-						qIt.reply = qIt.reply || [];
-						return qIt
-					})
-				}
-
-				if (iYuedu.tiankong && iYuedu.tiankong.length) {
-					iYuedu.tiankong.map((qIt) => {
-						qIt.reply = new Array(qIt.count).fill('');
-						return qIt;
-					});
-				}
-
-
-
-				paragraph.qas.push(iYuedu);
-				iYuedu.reply = [];
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iYuedu.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iYuedu.iQa,
-					onlyNum: iYuedu.onlyNum
-				})
-			}
-			iDuanluo++;
-			questionData.value.push(paragraph)
-		}
-	}
-
-	function handleBiaoji() {
-		activeSt.value.marked = !activeSt.value.marked;
-		data.biaoji[activeSt.value.stId] = activeSt.value.marked
-		ksApi.getClientKaoshiBiaoji({
-			operId: data.operId,
-			biaoji: JSON.stringify(data.biaoji)
-		}).catch(err => {
-			/* uni.redirectTo({
-				url: '/pages/client/Kaoshi/list'
-			}) */
-			handleBack()
-		})
-	}
-
-	function formatKaoshiData() {
-		const historyData = getCacheKs(data.operId);
-		if (historyData) {
-			const {
-				replyList,
-				position
-			} = historyData;
-			if (replyList) {
-				questionData.value.forEach(dl => {
-					dl.qas.forEach(st => {
-						if (st.stTypeId == 5) {
-							// 简答题
-							st.reply = replyList.find(item => item.stId == st.stId).reply;
-							st.files = replyList.find(item => item.stId == st.stId).files;
-						} else if (st.stTypeId != 6) {
-							st.reply = replyList.find(item => item.stId == st.stId).reply
-						} else {
-							// 阅读题
-							const hisSt = replyList.find(item => item.stId == st.stId);
-							if (hisSt) {
-								st.danxuan.forEach((itm, index) => {
-									itm.reply = hisSt.reply['danxuan'][index];
-								})
-								st.duoxuan.forEach((itm, index) => {
-									itm.reply = hisSt.reply['duoxuan'][index];
-								})
-								st.panduan.forEach((itm, index) => {
-									itm.reply = hisSt.reply['panduan'][index];
-								})
-								st.tiankong.forEach((itm, index) => {
-									itm.reply = hisSt.reply['tiankong'][index];
-								})
-								st.jianda.forEach((itm, index) => {
-									itm.reply = hisSt.reply['jianda'][index].reply;
-									itm.files = hisSt.reply['jianda'][index].files;
-								})
-							}
-						}
-					})
-				})
-			}
-			if (position) {
-				progress.dlIndex = position.dlIndex;
-				progress.dtIndex = position.dtIndex;
-			}
-
-		}
-	}
-
-	// 摄像头确认初始化
-	function initBeforKaoshi() {
-		console.log(zhuapaiConfirmRef.value)
-		zhuapaiConfirmRef.value.showDialog()
-	}
-
-
-	function initKaoshi() {
-		ksApi.getClientKsStart({
-			ksId: data.ksId,
-		}).then(res => {
-			const {
-				ksId,
-				operId,
-				ksName,
-				stTotal,
-				stScore,
-				biaoji,
-				endSecond,
-				pageSize,
-				toggleScreenFlag,
-				toggleScreenSecond,
-				zhuapai,
-				duanluoList
-			} = res.data;
-
-			data.ksId = ksId;
-			data.operId = operId;
-			data.ksName = ksName;
-			data.stTotal = stTotal;
-			data.stScore = stScore;
-			data.biaoji = biaoji ? JSON.parse(biaoji) : {};
-			data.endSecond = endSecond;
-			data.pageSize = pageSize;
-			data.toggleScreenFlag = toggleScreenFlag;
-			data.toggleScreenSecond = toggleScreenSecond;
-			data.zhuapai = zhuapai;
-			data.duanluo = duanluoList;
-			formatDuanluoList(data.duanluo);
-			// 设置缓存
-			formatKaoshiData();
-			// 设置抓拍监听
-
-			if (data.zhuapai && data.zhuapai > 0) {
-				zhuapaiRef.value.init({
-					zhuapai: zhuapai,
-					operId: operId
-				});
-			}
-
-			// 设置切屏监听
-			qiepingRef.value.init({
-				zhuapaiFlag: !!zhuapai,
-				toggleScreenFlag: toggleScreenFlag,
-				toggleScreenSecond: toggleScreenSecond,
-				ksId: data.ksId
-			})
-
-			startCountDown.value = true;
-
-			uni.setNavigationBarTitle({
-				title: data.ksName
-			});
-		}).catch(err => {
-			console.log('asdasd', err)
-			// handleBack()
-		})
-	}
-</script>
-
-<style lang="scss">
-	.phone-kaoshi-page {
-		display: flex;
-		flex-direction: column;
-		background-color: #f4f6fa;
-		position: relative;
-
-		.kaoshi-page-title {
-			height: 80rpx;
-			line-height: 80rpx;
-			background-color: #fff;
-			margin-top: 20rpx;
-			font-size: 26rpx;
-			color: #333;
-			display: flex;
-			justify-content: space-between;
-			padding: 0 24rpx;
-			border-bottom: 1rpx solid #ebebeb;
-
-			.title-types {
-				font-size: 32rpx;
-				color: #000;
-			}
-		}
-
-		.kaoshi-shiti-content {
-			padding: 24rpx 24rpx 0 24rpx;
-			background-color: #fff;
-			flex: 1;
-		}
-
-		.kaoshi-bottom-box {
-			width: 100%;
-			height: 100rpx;
-			background-color: #f0f0f0;
-			display: flex;
-			align-items: center;
-			justify-content: space-between;
-			padding: 0 24rpx;
-			box-sizing: border-box;
-			position: fixed;
-			bottom: var(--window-bottom);
-
-			.bj-btn,
-			.jx-btn,
-			.save-btn {
-				height: 60rpx;
-				line-height: 58rpx;
-				box-sizing: border-box;
-			}
-
-			.bj-btn {
-				margin-left: unset;
-			}
-
-			.jx-btn,
-			.save-btn {
-				margin-right: unset;
-			}
-
-			.shiti-num-icon {
-				width: 27px;
-				height: 24px;
-				vertical-align: middle;
-				// background-image: url("@/static/images/exam/shiti-num-icon.png");
-				@include ezy-no-repeat-cover();
-			}
-
-			.active-num {
-				color: #30c190;
-			}
-		}
-
-		.ks-btn-prev {
-			position: fixed;
-			bottom: 130rpx;
-			left: 24rpx;
-		}
-
-		.ks-btn-next {
-			position: fixed;
-			bottom: 130rpx;
-			right: 24rpx;
-		}
-	}
-</style>

+ 0 - 53
pages/exam/examTools.js

@@ -1,53 +0,0 @@
-import {
-	useUserCache
-} from "@/utils/userCache.js"
-
-// 身份确认缓存
-const identificationKey = 'ShenFenQueRen'
-export function useIdentificationTools() {
-	const {saveCache,getCache,removeCache} = useUserCache();
-	
-	function saveIdentCache(key,data) {
-		saveCache(identificationKey,key, data)
-	}
-
-	function getIdentCache(key) {
-		return getCache(identificationKey, key)
-	}
-
-	function removeIdentCache(key) {
-		removeCache(identificationKey,key)
-	}
-
-
-	return {
-		saveIdentCache,
-		getIdentCache,
-		removeIdentCache
-	}
-}
-
-
-const ksCache = 'kaoshiCache'
-export function useKaoShiCache() {
-	const {saveCache,getCache,removeCache} = useUserCache();
-	
-	function saveCacheKs(key,data) {
-		saveCache(ksCache,key, data)
-	}
-	
-	function getCacheKs(key) {
-		return getCache(ksCache, key)
-	}
-	
-	function removeCacheKs(key) {
-		removeCache(ksCache,key)
-	}
-	
-	
-	return {
-		saveCacheKs,
-		getCacheKs,
-		removeCacheKs
-	}
-}

+ 0 - 124
pages/exam/index.vue

@@ -1,124 +0,0 @@
-<template>
-	<custom-scroll-list :refreshFn="getExamList" :tabList="tabData" :defaultTab="1" ref="scrollRef">
-		<template #default="{list}">
-			<scroll-list-card v-for="(item,index) in list" :key="item.ksId" :data="item"
-				@btnClick="handleClick"></scroll-list-card>
-		</template>
-	</custom-scroll-list>
-	<!-- 考试须知 -->
-	<kaoshixuzhi ref="ksxzRef" @confirm="handleConfirm"></kaoshixuzhi>
-</template>
-
-<script setup>
-	import {
-		getExamList,
-		kaoShiApply,
-		getClientKaoshiInfo
-	} from "@/api/exam.js";
-	import {
-		onReady,
-	} from "@dcloudio/uni-app"
-	import {
-		reactive,
-		ref
-	} from "vue";
-	import kaoshixuzhi from "@/components/kaoshixuzhi/kaoshixuzhi.vue"
-
-	const activeKs = ref(null);
-	const scrollRef = ref(null);
-	const examNoticeInfo = ref(null);
-	const ksxzRef = ref(null);
-
-	const tabData = [{
-			label: "可以考试",
-			value: 1,
-		},
-		{
-			label: "已结束",
-			value: 4,
-		}
-	]
-
-	function goKaoshiPage(data) {
-		/* uni.redirectTo({
-			url: `/pages/exam/exam?ksId=${data.ksId}&zhuapai=${data.zhuapai}`
-		}) */
-		uni.navigateTo({
-			url: `/pages/exam/exam?ksId=${data.ksId}&zhuapai=${data.zhuapai}`
-		})
-	}
-	
-	function handleConfirm() {
-		goKaoshiPage(activeKs.value)
-	}
-
-	function showKaoshiXuzhi() {
-		const option = {
-			ksId: activeKs.value.ksId
-		}
-		getClientKaoshiInfo(option).then(res => {
-			examNoticeInfo.value = res.data;
-			// 校验抓拍
-			doCheckZhuapai()
-		})
-
-	}
-
-	function doCheckZhuapai() {
-		if (examNoticeInfo.value.zhuapai) {
-			// 存在抓拍
-		} else {
-			// 不存在抓拍
-			ksxzRef.value.showDialog(examNoticeInfo.value)
-		}
-	}
-
-	function handleClick(data) {
-		activeKs.value = data;
-		if (data.status == 0) {
-			// 未开始
-			// goKaoshiPage(data);
-			showKaoshiXuzhi()
-		}
-		if (data.status == 1) {
-			// 可以考试
-			// goKaoshiPage(data);
-			showKaoshiXuzhi()
-		}
-		if (data.status == 2) {
-			// 再次考试
-			// goKaoshiPage(data);
-			showKaoshiXuzhi()
-		}
-		if (data.status == 3) {
-			// 考试中
-			// goKaoshiPage(data);
-			showKaoshiXuzhi()
-		}
-		if (data.status == 4) {
-			// 已结束
-			uni.showToast({
-				title: '考试已结束',
-				icon: 'none'
-			})
-		}
-		if (data.status == 5) {
-			// 未报名
-			kaoShiApply({
-				ksId: data.ksId
-			}).then(res => {
-				uni.showToast({
-					title: '报名成功',
-					icon: 'none'
-				})
-				scrollRef.value.onRefresh()
-			})
-		}
-
-	}
-
-</script>
-
-<style lang="scss">
-
-</style>

+ 260 - 0
pages/index/index - 副本.vue

@@ -0,0 +1,260 @@
+<template>
+	<view class="lli-index-page">
+
+	</view>
+</template>
+
+<script setup>
+	import {
+		kaoShiApply,
+		getClientKaoshiInfo
+	} from "@/api/exam.js";
+	import kaoshixuzhi from "@/components/kaoshixuzhi/kaoshixuzhi.vue"
+	import {ref,reactive} from "vue";
+	import {getCourseList, getNoticeCount,getExamList} from '@/api/index.js';
+	import {onLoad} from "@dcloudio/uni-app"
+	const banners= ref('');
+	const defaultbanners= ref('/static/images/index/index-banner.png');
+	const defultKsImg= ref('/static/images/index/index-ks-default.png');
+	const defultKcImg= ref('/static/images/index/index-kc-default.png');
+	const statusCodeKc= ref(['未开始', '可以学习', '已学完', '学习中', '已结束']);
+	const statusCodeKs= ref(['未开始', '可以考试', '再次考试', '考试中', '已结束', '未报名', '报名审核中', '审核未通过', '等待人工评分']);
+	let menuList = ref([{
+	      		url: '/static/images/index/index-kc-img.png',
+	      		text: '我的课程',
+	      	},
+	      	{
+	      		url: '/static/images/index/index-ks-img.png',
+	      		text: '我的考试',
+	      	},
+	      	{
+	      		url: '/static/images/index/index-lx-img.png',
+	      		text: '每日一练',
+	      	},
+	      	{
+	      		url: '/static/images/index/index-gg-img.png',
+	      		text: '公告',
+				badge:0,
+	      	},
+	      ]);
+	let courseCardList = ref([]);
+	let examCardList = ref([]);
+	let noticeCount = ref(0);
+	const examNoticeInfo = ref(null); // 考试须知数据
+	const ksxzRef = ref(null);
+	const activeKs = ref(null);
+	
+	onLoad(() => {
+		getNoticeCountData();
+		getCourseListData();
+		getExamListData();
+	});
+	
+	function getNoticeCountData() {
+		let req = {
+		          'page': 1,
+		          'size': 4,
+		          'status': 1,
+		        };
+		getNoticeCount(req).then(res => {
+		    menuList.value[3].badge = res.data.noticeCount || 0;
+		});
+	};
+	
+	function getCourseListData() {
+		let req = {
+		          'page': 1,
+		          'size': 4,
+		          'status': 1,
+		        };
+		getCourseList(req).then(res => {
+		          courseCardList.value = res.data.data || [];
+		});
+	};
+	
+	function getExamListData() {
+		let req = {
+		          'page': 1,
+		          'size': 4,
+		          'status': 1,
+		        };
+		getExamList(req).then(res => {
+		          examCardList.value = res.data.data || [];
+		});
+	};
+	
+	function gridClick(e){
+		let {index} = e.detail;
+		switch (index) {
+			case 0:
+			    uni.switchTab({
+			    	url: '/pages/course/index'
+			    });
+			    break;
+			case 1:
+			    uni.switchTab({
+			    	url: '/pages/exam/index'
+			    });
+			    break;
+			case 2:
+			    uni.navigateTo({
+			    	url: '/pages/lianxi/index'
+			    })
+			    break;
+			case 3:
+			    uni.navigateTo({
+			    	url:'/pages/my/mesList?from=indexPeixun'
+			    })
+			    break;
+				}
+	}
+	function developClick(){
+		uni.showToast({
+			icon: 'none',
+			title: '开发中,敬请期侍!',
+		});
+	}
+	
+	function goKaoshiPage(data) {
+		/* uni.redirectTo({
+			url: `/pages/exam/exam?ksId=${data.ksId}&zhuapai=${data.zhuapai}`
+		}) */
+		uni.navigateTo({
+			url: `/pages/exam/exam?ksId=${data.ksId}&zhuapai=${data.zhuapai}`
+		})
+	}
+	
+	function handleConfirm() {
+		goKaoshiPage(activeKs.value)
+	}
+	
+	function showKaoshiXuzhi() {
+		const option = {
+			ksId: activeKs.value.ksId
+		}
+		getClientKaoshiInfo(option).then(res => {
+			examNoticeInfo.value = res.data;
+			// 校验抓拍
+			doCheckZhuapai()
+		})
+	
+	}
+	
+	function doCheckZhuapai() {
+		if (examNoticeInfo.value.zhuapai) {
+			// 存在抓拍
+		} else {
+			// 不存在抓拍
+			ksxzRef.value.showDialog(examNoticeInfo.value)
+		}
+	}
+	
+	function handleClickKs(data) {
+		activeKs.value = data;
+		console.log('ddddd',data)
+		if (data.status == 0) {
+			// 未开始
+			showKaoshiXuzhi()
+		}
+		if (data.status == 1) {
+			// 可以考试
+			showKaoshiXuzhi()
+		}
+		if (data.status == 2) {
+			// 再次考试
+			showKaoshiXuzhi()
+		}
+		if (data.status == 3) {
+			// 考试中
+			showKaoshiXuzhi()
+		}
+		if (data.status == 4) {
+			// 已结束
+			uni.showToast({
+				title: '考试已结束',
+				icon: 'none'
+			})
+		}
+		if (data.status == 5) {
+			// 未报名
+			kaoShiApply({
+				ksId: data.ksId
+			}).then(res => {
+				uni.showToast({
+					title: '报名成功',
+					icon: 'none'
+				})
+				scrollRef.value.onRefresh()
+			})
+		}
+	
+	}
+	
+	function handleCheckMoreKs() {
+		uni.switchTab({
+			url: '/pages/exam/index'
+		})
+	}
+	
+</script>
+
+<style lang="scss">
+.lli-index-page{
+	padding: 24rpx;
+	background: #FCFBFC;
+	min-height: 100vh;
+	// banner
+	.index-imgbox {
+	    text-align: center;width: 100%;
+	    .index-banner-img {
+	      width: 702rpx;
+	      height: 242rpx;
+	      display: inline-block;
+	      border-radius: 4px;
+	    }
+	}
+	
+	//meul-box
+	.index-meul-box{
+		.lli-grid-item {
+				flex: 1;
+				/* #ifndef APP-NVUE */
+				display: flex;
+				/* #endif */
+				flex-direction: column;
+				align-items: center;
+				justify-content: center;
+				padding: 15px 0;
+			}
+		.grid-item-image {width: 99rpx;height: 113rpx;}
+		.grid-item-text {font-size: 24rpx;color: $uni-text-color;}
+		.grid-dot {position: absolute;top: 5px;right: 15px;}
+	}
+	
+	// title-box
+	.lli-index-title-box{
+		margin: 44rpx 0 32rpx;display: flex;justify-content: space-between;align-items: center;
+		.index-title{font-size: 32rpx;color: #333;font-weight: 800;display: inline-flex;align-items: center;}
+		.index-title:before{content:'';width: 3px;height: 30rpx;background: $uni-primary;margin-right: 8px;display: block;}
+		.index-sub-title{font-size: 24rpx;color: #9c9c9c;font-weight: normal;cursor: pointer;}
+	}
+	
+	// card
+	.lli-card-box{width: 100%;display: flex;justify-content: space-between;flex-wrap: wrap;margin-bottom: 8px;cursor: pointer;}
+	.lli-card-item{
+		width: 49%;flex: unset;border-radius: 20rpx;background-color: #ffffff;
+		padding: 12rpx 12rpx 0;box-sizing: border-box;margin-bottom: 20rpx;
+		.lli-card-image{max-width: 100%;height: 180rpx;border-radius: 8rpx;}
+		.custom-cover {max-width: 100%;height: 180rpx;border-radius: 8rpx;overflow: hidden;position: relative;}
+		.cover-content {
+			position: absolute;bottom: 0;left: 0;padding: 4rpx 12rpx;background: rgba(0, 0, 0, 0.29);
+			color: #fff;font-size: 22rpx;border-radius: 0 10rpx 0 10rpx;
+		}
+		.lli-card-name{
+			font-size: 28rpx;line-height: 36rpx;color: #565656;margin: 20rpx 0;
+			display: -webkit-box;-webkit-line-clamp: 2;overflow: hidden;
+			text-overflow: ellipsis;-webkit-box-orient: vertical;
+		}
+	}
+}
+</style>

+ 84 - 287
pages/index/index.vue

@@ -1,317 +1,114 @@
 <template>
 	<view class="lli-index-page">
-		<!-- banner -->
-		<view class="index-imgbox">
-		    <img :src="banners||defaultbanners" class="index-banner-img"/>
+		<view class="uni-margin-wrap">
+			<swiper class="swiper" circular :indicator-dots="true" :autoplay="true" :interval="5000">
+				<swiper-item v-for="item in banners" :key="item.id" @click="handleBannerSelect(item)">
+					<image :src="item.pic"></image>
+				</swiper-item>
+			</swiper>
 		</view>
-		<!-- meul-box -->
-		<view class="index-meul-box">
-			<uni-grid :column="4" :show-border="false" :square="false" @change="gridClick">
-				<uni-grid-item v-for="(item ,index) in menuList" :index="index" :key="index">
-					<view class="lli-grid-item">
-						<image class="grid-item-image" :src="item.url" mode="aspectFill" />
-						<text class="grid-item-text">{{item.text}}</text>
-						<view v-if="item.badge" class="grid-dot">
-							<uni-badge :text="item.badge" :type="item.type" :customStyle="{background: '#FF5551'}" />
-						</view>
-					</view>
-				</uni-grid-item>
-			</uni-grid>
+		<view>
+			新闻:{{data.xinwen}}
 		</view>
-		
-		<!-- 课程list -->
-		<view class="lli-index-title-box">
-			<text class="index-title">最热课程</text>
-			<text class="index-sub-title" @click="developClick">查看更多 ></text>
-		</view>
-		<view class="lli-card-box">
-			<uni-card padding="0" margin="0" spacing="0" :is-shadow="false" :border="false" 
-			v-for="(item ,index) in courseCardList" :index="index" :key="index" class="lli-card-item" @click="developClick(index)">
-				<view class="custom-cover">
-					<image class="lli-card-image" mode="aspectFill" :src="item.pic || defultKcImg"></image>
-					<view class="cover-content" v-if="item.status">
-						<text>{{statusCodeKc[item.status]}}</text>
-					</view>
-				</view>
-				<text class="lli-card-name">{{item.name}}</text>
-			</uni-card>
-		</view>
-		<!-- 考试list -->
-		<view class="lli-index-title-box">
-			<text class="index-title">最热考试</text>
-			<text class="index-sub-title" @click="handleCheckMoreKs">查看更多 ></text>
+		<br />
+		<view>
+			公告: {{data.gonggao}}
 		</view>
-		<view class="lli-card-box">
-			<uni-card padding="0" margin="0" spacing="0" :is-shadow="false" :border="false" 
-			v-for="(item ,index) in examCardList" :index="index" :key="index" class="lli-card-item" @click="handleClickKs(item)">
-				<view class="custom-cover">
-					<image class="lli-card-image" mode="aspectFill" :src="item.pic || defultKsImg"></image>
-					<view class="cover-content" v-if="item.status">
-						<text>{{statusCodeKs[item.status]}}</text>
-					</view>
-				</view>
-				<text class="lli-card-name">{{item.ksName}}</text>
-			</uni-card>
+		<br />
+		<view>
+			校务: {{data.xiaowu}}
 		</view>
 		
-		
-		
-		<!-- 考试须知 -->
-		<kaoshixuzhi ref="ksxzRef" @confirm="handleConfirm"></kaoshixuzhi>
+		<view @click="getXiaowu()"> 获取校务数据 </view>
 	</view>
 </template>
 
 <script setup>
 	import {
-		kaoShiApply,
-		getClientKaoshiInfo
-	} from "@/api/exam.js";
-	import kaoshixuzhi from "@/components/kaoshixuzhi/kaoshixuzhi.vue"
-	import {ref,reactive} from "vue";
-	import {getCourseList, getNoticeCount,getExamList} from '@/api/index.js';
-	import {onLoad} from "@dcloudio/uni-app"
-	const banners= ref('');
-	const defaultbanners= ref('/static/images/index/index-banner.png');
-	const defultKsImg= ref('/static/images/index/index-ks-default.png');
-	const defultKcImg= ref('/static/images/index/index-kc-default.png');
-	const statusCodeKc= ref(['未开始', '可以学习', '已学完', '学习中', '已结束']);
-	const statusCodeKs= ref(['未开始', '可以考试', '再次考试', '考试中', '已结束', '未报名', '报名审核中', '审核未通过', '等待人工评分']);
-	let menuList = ref([{
-	      		url: '/static/images/index/index-kc-img.png',
-	      		text: '我的课程',
-	      	},
-	      	{
-	      		url: '/static/images/index/index-ks-img.png',
-	      		text: '我的考试',
-	      	},
-	      	{
-	      		url: '/static/images/index/index-lx-img.png',
-	      		text: '每日一练',
-	      	},
-	      	{
-	      		url: '/static/images/index/index-gg-img.png',
-	      		text: '公告',
-				badge:0,
-	      	},
-	      ]);
-	let courseCardList = ref([]);
-	let examCardList = ref([]);
-	let noticeCount = ref(0);
-	const examNoticeInfo = ref(null); // 考试须知数据
-	const ksxzRef = ref(null);
-	const activeKs = ref(null);
-	
+		ref,
+		reactive
+	} from "vue";
+	import {
+		onLoad
+	} from "@dcloudio/uni-app"
+	import * as httpApi from "@/api/common.js"
+	const banners = ref('');
+	const data = reactive({
+		xinwen: [],
+		xinwenTotal: 0,
+		gonggao: [],
+		gonggaoTotal: 0,
+		xiaowu: [],
+		xiaowuTotal:0,
+		
+		isGonggao: true,
+	})
+
 	onLoad(() => {
-		getNoticeCountData();
-		getCourseListData();
-		getExamListData();
-	});
-	
-	function getNoticeCountData() {
-		let req = {
-		          'page': 1,
-		          'size': 4,
-		          'status': 1,
-		        };
-		getNoticeCount(req).then(res => {
-		    menuList.value[3].badge = res.data.noticeCount || 0;
-		});
-	};
-	
-	function getCourseListData() {
-		let req = {
-		          'page': 1,
-		          'size': 4,
-		          'status': 1,
-		        };
-		getCourseList(req).then(res => {
-		          courseCardList.value = res.data.data || [];
-		});
-	};
-	
-	function getExamListData() {
-		let req = {
-		          'page': 1,
-		          'size': 4,
-		          'status': 1,
-		        };
-		getExamList(req).then(res => {
-		          examCardList.value = res.data.data || [];
-		});
-	};
-	
-	function gridClick(e){
-		let {index} = e.detail;
-		switch (index) {
-			case 0:
-			    uni.switchTab({
-			    	url: '/pages/course/index'
-			    });
-			    break;
-			case 1:
-			    uni.switchTab({
-			    	url: '/pages/exam/index'
-			    });
-			    break;
-			case 2:
-			    uni.navigateTo({
-			    	url: '/pages/lianxi/index'
-			    })
-			    break;
-			case 3:
-			    uni.navigateTo({
-			    	url:'/pages/my/mesList?from=indexPeixun'
-			    })
-			    break;
-				}
-	}
-	function developClick(){
-		uni.showToast({
-			icon: 'none',
-			title: '开发中,敬请期侍!',
-		});
+		pageInit();
+	})
+
+	function handleBannerSelect(item) {
+		if (item.url) {
+			window.location.href = item.url;
+		}
 	}
 	
-	function goKaoshiPage(data) {
-		/* uni.redirectTo({
-			url: `/pages/exam/exam?ksId=${data.ksId}&zhuapai=${data.zhuapai}`
-		}) */
-		uni.navigateTo({
-			url: `/pages/exam/exam?ksId=${data.ksId}&zhuapai=${data.zhuapai}`
-		})
+	function changeGonggao() {
+		if (this.isGonggao) {
+			return true
+		}
+		data.isGonggao = true;
+		getGonggao()
 	}
 	
-	function handleConfirm() {
-		goKaoshiPage(activeKs.value)
+	function changeXiaowu() {
+		if (!this.isGonggao) {
+			return true
+		}
+		data.isGonggao = false;
+		getXiaowu()
 	}
 	
-	function showKaoshiXuzhi() {
-		const option = {
-			ksId: activeKs.value.ksId
-		}
-		getClientKaoshiInfo(option).then(res => {
-			examNoticeInfo.value = res.data;
-			// 校验抓拍
-			doCheckZhuapai()
+	function getGonggao() {
+		httpApi.getCommonXinwenTongzhiList().then(res => {
+			data.gonggao = res.data.data;
+			data.gonggaoTotal = res.data.total;
 		})
-	
 	}
 	
-	function doCheckZhuapai() {
-		if (examNoticeInfo.value.zhuapai) {
-			// 存在抓拍
-		} else {
-			// 不存在抓拍
-			ksxzRef.value.showDialog(examNoticeInfo.value)
-		}
+	function getXiaowu() {
+		httpApi.getCommonXinwenXiaowuList().then(res => {
+			data.xiaowu = res.data.data;
+			data.xiaowuTotal = res.data.total;
+		})
 	}
 	
-	function handleClickKs(data) {
-		activeKs.value = data;
-		console.log('ddddd',data)
-		if (data.status == 0) {
-			// 未开始
-			showKaoshiXuzhi()
-		}
-		if (data.status == 1) {
-			// 可以考试
-			showKaoshiXuzhi()
-		}
-		if (data.status == 2) {
-			// 再次考试
-			showKaoshiXuzhi()
-		}
-		if (data.status == 3) {
-			// 考试中
-			showKaoshiXuzhi()
-		}
-		if (data.status == 4) {
-			// 已结束
-			uni.showToast({
-				title: '考试已结束',
-				icon: 'none'
-			})
-		}
-		if (data.status == 5) {
-			// 未报名
-			kaoShiApply({
-				ksId: data.ksId
-			}).then(res => {
-				uni.showToast({
-					title: '报名成功',
-					icon: 'none'
-				})
-				scrollRef.value.onRefresh()
+
+	function pageInit() {
+		Promise.all([
+			httpApi.getCommonBanners({
+				size: 1000
+			}),
+			httpApi.getCommonXinwenYuanxiaoList({
+				page: 1,
+				size: 3
+			}),
+			httpApi.getCommonXinwenTongzhiList({
+				page: 1,
+				size: 5
 			})
-		}
-	
-	}
-	
-	function handleCheckMoreKs() {
-		uni.switchTab({
-			url: '/pages/exam/index'
+		]).then(([res1, res2, res3]) => {
+			banners.value = res1.data.data;
+			
+			data.xinwen = res2.data.data;
+			data.xinwenTotal = res2.data.total;
+			
+			data.gonggao = res3.data.data;
+			data.gonggaoTotal = res3.data.total;
 		})
 	}
-	
 </script>
 
 <style lang="scss">
-.lli-index-page{
-	padding: 24rpx;
-	background: #FCFBFC;
-	min-height: 100vh;
-	// banner
-	.index-imgbox {
-	    text-align: center;width: 100%;
-	    .index-banner-img {
-	      width: 702rpx;
-	      height: 242rpx;
-	      display: inline-block;
-	      border-radius: 4px;
-	    }
-	}
-	
-	//meul-box
-	.index-meul-box{
-		.lli-grid-item {
-				flex: 1;
-				/* #ifndef APP-NVUE */
-				display: flex;
-				/* #endif */
-				flex-direction: column;
-				align-items: center;
-				justify-content: center;
-				padding: 15px 0;
-			}
-		.grid-item-image {width: 99rpx;height: 113rpx;}
-		.grid-item-text {font-size: 24rpx;color: $uni-text-color;}
-		.grid-dot {position: absolute;top: 5px;right: 15px;}
-	}
-	
-	// title-box
-	.lli-index-title-box{
-		margin: 44rpx 0 32rpx;display: flex;justify-content: space-between;align-items: center;
-		.index-title{font-size: 32rpx;color: #333;font-weight: 800;display: inline-flex;align-items: center;}
-		.index-title:before{content:'';width: 3px;height: 30rpx;background: $uni-primary;margin-right: 8px;display: block;}
-		.index-sub-title{font-size: 24rpx;color: #9c9c9c;font-weight: normal;cursor: pointer;}
-	}
-	
-	// card
-	.lli-card-box{width: 100%;display: flex;justify-content: space-between;flex-wrap: wrap;margin-bottom: 8px;cursor: pointer;}
-	.lli-card-item{
-		width: 49%;flex: unset;border-radius: 20rpx;background-color: #ffffff;
-		padding: 12rpx 12rpx 0;box-sizing: border-box;margin-bottom: 20rpx;
-		.lli-card-image{max-width: 100%;height: 180rpx;border-radius: 8rpx;}
-		.custom-cover {max-width: 100%;height: 180rpx;border-radius: 8rpx;overflow: hidden;position: relative;}
-		.cover-content {
-			position: absolute;bottom: 0;left: 0;padding: 4rpx 12rpx;background: rgba(0, 0, 0, 0.29);
-			color: #fff;font-size: 22rpx;border-radius: 0 10rpx 0 10rpx;
-		}
-		.lli-card-name{
-			font-size: 28rpx;line-height: 36rpx;color: #565656;margin: 20rpx 0;
-			display: -webkit-box;-webkit-line-clamp: 2;overflow: hidden;
-			text-overflow: ellipsis;-webkit-box-orient: vertical;
-		}
-	}
-}
-</style>
+</style>

+ 22 - 0
pages/jyjxDasaifengcai/jyjxDasaifengcai.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/jyjxDierketang/jyjxDierketang.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/jyjxGuizhangzhidu/jyjxGuizhangzhidu.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/jyjxJinengjianding/jyjxJinengjianding.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/jyjxKeyandongtai/jyjxKeyandongtai.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/jyjxKeyanhuodong/jyjxKeyanhuodong.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/jyjxShiziduiwu/jyjxShiziduiwu.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/jyjxXiaoqihezuo/jyjxXiaoqihezuo.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/jyjxZhongdianxiangmu/jyjxZhongdianxiangmu.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/jyjxZhuanyejianshe/jyjxZhuanyejianshe.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 0 - 40
pages/lianxi/index.vue

@@ -1,40 +0,0 @@
-<template>
-	<custom-scroll-list :refreshFn="getLianxiList" :tabList="tabData" :defaultTab="1" ref="scrollRef"
-		placeholder="请输入练习名称">
-		<template #default="{list}">
-			<scroll-list-card-lianxi v-for="(item,index) in list" :key="item.lxId" :data="item"
-				@btnClick="handleClick"></scroll-list-card-lianxi>
-		</template>
-	</custom-scroll-list>
-</template>
-
-<script setup>
-	import scrollListCardLianxi from "@/components/score-lianxi-card-lianxi/score-lianxi-card-lianxi.vue"
-	import {
-		getLianxiList,
-	} from "@/api/lianxi.js";
-	import {
-		ref
-	} from "vue";
-
-
-	const tabData = [{
-			label: "开始练习",
-			value: 1,
-		},
-		{
-			label: "已结束",
-			value: 2,
-		}
-	]
-
-	function handleClick(data) {
-		uni.redirectTo({
-			url: `/pages/lianxi/lianxi?lxId=${data.lxId}`
-		})
-	}
-</script>
-
-<style lang="scss">
-
-</style>

+ 0 - 727
pages/lianxi/lianxi.vue

@@ -1,727 +0,0 @@
-<template>
-	<view class="phone-kaoshi-page">
-		<!-- 导航区域 -->
-		<view class="icon-title-navBar-box">
-			<view @click="handleBack" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">{{data.lxName}}</text>
-		</view>
-		<!-- 第一行 -->
-		<view class="kaoshi-page-title">
-			<view v-if="activeSt" class="title-types">{{dlName}}</view>
-			<view>100分钟</view>
-		</view>
-
-
-		<view class="kaoshi-shiti-content">
-			<!-- 内容区域 -->
-			<!-- 试题区域 -->
-			<view v-if="activeSt">
-				<template v-if="activeSt.stTypeId == 1">
-					<!-- 单选 -->
-					<danxuan :question="activeSt" :key="activeSt.stId"></danxuan>
-				</template>
-				<template v-if="activeSt.stTypeId == 2">
-					<!-- 多选 -->
-					<duoxuan :question="activeSt" :key="activeSt.stId"></duoxuan>
-				</template>
-				<template v-if="activeSt.stTypeId == 3">
-					<!-- 判断 -->
-					<panduan :question="activeSt" :key="activeSt.stId"></panduan>
-				</template>
-				<template v-if="activeSt.stTypeId == 4">
-					<!-- 填空 -->
-					<tiankong :question="activeSt" :key="activeSt.stId"></tiankong>
-				</template>
-				<template v-if="activeSt.stTypeId == 5">
-					<!-- 简答 -->
-					<jianda :question="activeSt" :key="activeSt.stId"></jianda>
-				</template>
-				<template v-if="activeSt.stTypeId == 6">
-					<!-- 阅读 -->
-					<yuedu :question="activeSt" :key="activeSt.stId" @yudu-change="onYueduChange"></yuedu>
-				</template>
-			</view>
-
-		</view>
-
-		<view class="kaoshi-bottom-box">
-			<button class="phone-green-btn bj-btn" hover-class="none" type="default" size="mini"
-				@click="handleBiaoji">{{activeSt && activeSt.marked ? '取标':'标记'}}</button>
-			<view @click="showAnswerCard" class="shiti-num-box">
-				<icon class="shiti-num-icon"></icon>
-				<text
-					class="active-num">{{activeSt ? activeSt.onlyNum: 0}}</text>/<text>{{data.StListForSearch.length}}</text>
-			</view>
-			<button class="phone-white-btn jx-btn" hover-class="none" type="default" size="mini"
-				@click="handleCheckJiexi">解析</button>
-		</view>
-		<template v-if="activeSt">
-			<button type="default" size="mini" hover-class="none" class="phone-green-btn ks-btn-prev"
-				@click="handlePrev" v-if="!isFistStId">上一题</button>
-			<button type="default" size="mini" hover-class="none" class="phone-green-btn ks-btn-next"
-				@click="handleNext" v-if="!isLastStId">下一题</button>
-			<button type="default" size="mini" hover-class="none" class="phone-green-btn ks-btn-next"
-				@click="handleBack" v-if="isLastStId">交卷</button>
-		</template>
-
-		<!-- 答题卡 -->
-		<uni-popup ref="popupRef" background-color="#fff" :animation="false" :is-mask-click="false" :mask-click="false">
-			<view class="answer-card-popup">
-				<view class="icon-title-navBar-box">
-					<view @click="handlePopupBack" class="nav-bar-icon"> </view>
-					<text class="nav-bar-title">答题卡</text>
-				</view>
-				<view class="card-content-box">
-					<view class="answer-card-content" v-for="(paragraph,paragraphIndex) in questionData"
-						:key="paragraphIndex">
-						<view class="paragraph-title">
-							{{paragraph.name}}
-						</view>
-						<view class="paragraph-qa" v-for="(qa,qaIndex) in paragraph.qas" :key="qaIndex"
-							:class="getQaClass(qa)" @click="answerCardItemClick(qa)">{{qa.onlyNum}}
-						</view>
-					</view>
-				</view>
-			</view>
-		</uni-popup>
-		<!--
-		// 倒计时
-		<view v-if="!!data.endSecond">
-			<text>考试倒计时:</text>
-			<uni-countdown :show-day="false" :second="1000" @timeup="onTimeUp" :start="startCountDown"></uni-countdown>
-		</view>
-		-->
-		<!-- 答案解析 -->
-		<scoreAndAnswerVue ref="scoreAnswerRef"></scoreAndAnswerVue>
-		<scoreAndAnswerAdminTiankong ref="scoreAnswerTkRef"></scoreAndAnswerAdminTiankong>
-		<scoreAndAnswerAdminJianda ref="scoreAnswerJdRef"></scoreAndAnswerAdminJianda>
-	</view>
-
-
-
-</template>
-
-<script setup>
-	import {
-		ref,
-		reactive,
-		computed,
-		watch
-	} from "vue";
-	import {
-		onLoad
-	} from "@dcloudio/uni-app";
-	import * as lxApi from "@/api/lianxi.js"
-	import danxuan from "@/components/questions/danxuan.vue";
-	import duoxuan from "@/components/questions/duoxuan.vue";
-	import tiankong from "@/components/questions/tiankong.vue";
-	import panduan from "@/components/questions/panduan.vue";
-	import jianda from "@/components/questions/jianda.vue";
-	import yuedu from "@/components/questions/yuedu.vue";
-	import scoreAndAnswerVue from "@/components/scoreAndAnswer/scoreAndAnswerAdmin.vue";
-	import scoreAndAnswerAdminTiankong from "@/components/scoreAndAnswer/scoreAndAnswerAdminTiankong.vue";
-	import scoreAndAnswerAdminJianda from "@/components/scoreAndAnswer/scoreAndAnswerJianda.vue";
-	import {
-		useQuestionTools
-	} from "@/components/questions/useQuestionTools.js";
-
-	const {
-		checkDanxuanReply,
-		checkDuoxuanReply,
-		checkPanduanReply,
-		checkTiankongReply,
-		getLetterByIndex,
-		checkJiandaReply,
-		checkYueduReply
-	} = useQuestionTools();
-
-	const stTypes = {
-		1: '单选题',
-		2: '多选题',
-		3: '判断题',
-		4: '填空题',
-	}
-
-	const popupRef = ref(null)
-	const scoreAnswerRef = ref(null)
-	const scoreAnswerTkRef = ref(null)
-	const startCountDown = ref(false);
-	const scoreAnswerJdRef = ref(null);
-
-	const data = reactive({
-		lxId: null,
-		lxName: '',
-		stTotal: 0,
-		stScore: 0,
-		biaoji: null,
-		endSecond: 0,
-		pageSize: 0,
-		toggleScreenFlag: 0,
-		toggleScreenSecond: 0,
-		zhuapai: 0,
-		duanluo: [],
-		markDB: [],
-		StListForSearch: [],
-	})
-
-	const yuduIndexQa = ref(null);
-
-	const questionData = ref([]);
-
-	const progress = reactive({
-		dlIndex: 0,
-		dtIndex: 0
-	})
-
-	const dlName = computed(() => {
-		if (data.StListForSearch && activeSt.value) {
-			return data.StListForSearch[activeSt.value.onlyNum - 1].paragraphName
-		} else {
-			return ''
-		}
-	})
-
-	watch(() => data.duanluo, (newVal) => {
-		// 计算已答试题数量
-	}, {
-		deep: true
-	})
-
-	const activeSt = computed(() => {
-		if (questionData.value.length) {
-			return questionData.value.length && questionData.value[progress.dlIndex].qas[progress.dtIndex];
-		} else {
-			return null
-		}
-	})
-
-	const isFistStId = computed(() => {
-		if (data.StListForSearch.length) {
-			return data.StListForSearch[0].stId == activeSt.value.stId
-		} else {
-			return false
-		}
-	});
-	const isLastStId = computed(() => {
-		if (data.StListForSearch.length) {
-			return data.StListForSearch[data.StListForSearch.length - 1].stId == activeSt.value.stId
-		} else {
-			return false
-		}
-	});
-
-	onLoad((option) => {
-		data.lxId = option.lxId;
-		initKaoshi();
-	})
-
-	function getQaClass(qa) {
-		if (qa.marked && qa.marked === true) {
-			return 'paragraph-qa-block-mark';
-		} else {
-			if (qa.stTypeId == 1) {
-				if (checkDanxuanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 2) {
-				if (checkDuoxuanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 3) {
-				if (checkPanduanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 4) {
-				if (checkTiankongReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 5) {
-				if (checkJiandaReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 6) {
-				if (checkYueduReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			}
-		}
-	}
-
-	function skipQuestion(dlIndex, dtIndex) {
-		progress.dlIndex = dlIndex;
-		progress.dtIndex = dtIndex;
-		handlePopupBack()
-		// 切换试题时清空阅读提解析
-		yuduIndexQa.value = null;
-	}
-
-	function answerCardItemClick(qa) {
-		const actQa = data.StListForSearch.find(item => item.stId == qa.stId);
-		skipQuestion(actQa.dlIndex, actQa.dtIndex)
-
-	}
-
-	function handleBack() {
-		uni.redirectTo({
-			url: "/pages/admin/Lianxi/list"
-		})
-	}
-
-	function onTimeUp() {
-		console.log('end')
-	}
-
-	function showAnswerCard() {
-		popupRef.value.open('top')
-	}
-
-	function handlePopupBack() {
-		popupRef.value.close()
-	}
-
-	function handlePrev() {
-		const qa = data.StListForSearch.find(item => item.stId == activeSt.value.stId);
-		const index = qa.num - 1;
-		if (index > 0) {
-			const result = data.StListForSearch[index - 1];
-			progress.dlIndex = result.dlIndex;
-			progress.dtIndex = result.dtIndex
-		}
-		// 切换试题时清空阅读提解析
-		yuduIndexQa.value = null;
-	}
-
-	function handleNext() {
-		const qa = data.StListForSearch.find(item => item.stId == activeSt.value.stId);
-		const index = qa.num - 1;
-		if (index < data.StListForSearch.length) {
-			const result = data.StListForSearch[index + 1];
-			progress.dlIndex = result.dlIndex;
-			progress.dtIndex = result.dtIndex
-		}
-		// 切换试题时清空阅读提解析
-		yuduIndexQa.value = null
-	}
-
-	function formatDuanluoList(dlData) {
-		let uIndex = 0; // 试题num
-		let iDuanluo = 0; // 段落num
-		let result = [];
-		for (const duanluo of data.duanluo) {
-			let paragraph = {
-				qas: [],
-			};
-			paragraph.name = duanluo.name;
-
-			let iQa = 0; // 当前试题序号
-			let order = 0; // 当前题型中第几题
-			for (const iDanxuan of duanluo.danxuan) {
-				iDanxuan.type = 'danxuan';
-				iDanxuan.marked = false;
-				iDanxuan.onlyNum = uIndex + 1;
-				iDanxuan.order = order;
-				iDanxuan.iQa = iQa;
-				iDanxuan.reply = iDanxuan.result;
-				paragraph.qas.push(iDanxuan);
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iDanxuan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iDanxuan.iQa,
-					num: iDanxuan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iDuoxuan of duanluo.duoxuan) {
-				iDuoxuan.type = 'duoxuan';
-				iDuoxuan.marked = false;
-				iDuoxuan.onlyNum = uIndex + 1;
-				iDuoxuan.order = order;
-				paragraph.qas.push(iDuoxuan);
-				iDuoxuan.reply = iDuoxuan.result;
-				iDuoxuan.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iDuoxuan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iDuoxuan.iQa,
-					num: iDuoxuan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iPanduan of duanluo.panduan) {
-				iPanduan.type = 'panduan';
-				iPanduan.marked = false;
-				iPanduan.onlyNum = uIndex + 1;
-				iPanduan.order = order;
-				paragraph.qas.push(iPanduan);
-				iPanduan.reply = iPanduan.result;
-				iPanduan.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iPanduan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iPanduan.iQa,
-					num: iPanduan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iTiankong of duanluo.tiankong) {
-				iTiankong.type = 'tiankong';
-				iTiankong.marked = false;
-				iTiankong.onlyNum = uIndex + 1;
-				iTiankong.order = order;
-				paragraph.qas.push(iTiankong);
-				iTiankong.reply = iTiankong.result.map(item => item[0]);
-				iTiankong.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iTiankong.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iTiankong.iQa,
-					num: iTiankong.onlyNum
-				})
-			}
-			order = 0;
-			for (const iJianda of duanluo.jianda) {
-				iJianda.marked = false;
-				iJianda.type = 'jianda';
-				iJianda.onlyNum = uIndex + 1;
-				iJianda.order = order;
-				iJianda.iQa = iQa;
-				paragraph.qas.push(iJianda);
-				iJianda.reply = '';
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iJianda.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iJianda.iQa,
-					num: iJianda.onlyNum
-				})
-			}
-			order = 0;
-			for (const iYuedu of duanluo.yuedu) {
-				iYuedu.marked = false;
-				iYuedu.type = 'yuedu';
-				iYuedu.onlyNum = uIndex + 1;
-				iYuedu.order = order;
-				iYuedu.iQa = iQa;
-
-				if (iYuedu.duoxuan && iYuedu.duoxuan.length) {
-					iYuedu.duoxuan.map((qIt) => {
-						qIt.reply = qIt.reply || [];
-						return qIt
-					})
-				}
-
-				if (iYuedu.tiankong && iYuedu.tiankong.length) {
-					iYuedu.tiankong.map((qIt) => {
-						qIt.reply = new Array(qIt.count).fill('');
-						return qIt;
-					});
-				}
-
-				paragraph.qas.push(iYuedu);
-				iYuedu.reply = [];
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iYuedu.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iYuedu.iQa,
-					num: iYuedu.onlyNum
-				})
-			}
-
-			iDuanluo++;
-			questionData.value.push(paragraph)
-
-			console.log(questionData.value)
-		}
-	}
-
-	function handleBiaoji() {
-		activeSt.value.marked = !activeSt.value.marked;
-	}
-	// 切换阅读小题时更新当前试题解析
-	function onYueduChange(qa) {
-		yuduIndexQa.value = qa;
-	}
-
-	// 校验阅读解析
-	function checkYueduJiexi() {
-		let qa = yuduIndexQa.value;
-		let score = qa.userScore;
-		let reply = '';
-		let result = '';
-		let answer = qa.answer;
-		if (qa.stTypeId == 1) {
-			// 单选题
-			if (qa.reply && qa.reply.trim() !== '') {
-				reply = getLetterByIndex(qa.reply)
-			} else {
-				reply = '未答'
-			}
-
-			if (qa.result) {
-				result = getLetterByIndex(qa.result)
-			} else {
-				result = '无答案'
-			}
-			scoreAnswerRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-		if (qa.stTypeId == 2) {
-			// 多选题
-
-			if (qa.reply && qa.reply.length) {
-				reply = qa.reply.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				reply = '未答'
-			}
-			if (qa.result) {
-				result = qa.result.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				result = '无答案'
-			}
-			scoreAnswerRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-		if (qa.stTypeId == 3) {
-			// 判断题
-			if (qa.reply === '') {
-				reply = '未答'
-			} else if (qa.reply == 0) {
-				reply = '错误'
-			} else if (qa.reply == 1) {
-				reply = '正确'
-			}
-			if (qa.result == 0) {
-				result = '错误'
-			} else if (qa.result == 1) {
-				result = '正确'
-			}
-			scoreAnswerRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-		if (qa.stTypeId == 4) {
-			let reply = qa.reply || [];
-			let result = qa.result || [];
-			// 填空题
-			scoreAnswerTkRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-		if (qa.stTypeId == 5) {
-			// 简单题
-			let reply = qa.reply ? '未答' : qa.reply;
-			let result = qa.result;
-			scoreAnswerJdRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-
-	}
-
-	// 获取解析
-	function handleCheckJiexi() {
-		const qa = activeSt.value;
-		let score = qa.userScore;
-		let reply = '';
-		let result = '';
-		let answer = qa.answer;
-		if (qa.stTypeId == 1) {
-			// 单选题
-			if (qa.reply && qa.reply.trim() !== '') {
-				reply = getLetterByIndex(qa.reply)
-			} else {
-				reply = '未答'
-			}
-
-			if (qa.result) {
-				result = getLetterByIndex(qa.result)
-			} else {
-				result = '无答案'
-			}
-			scoreAnswerRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-		if (qa.stTypeId == 2) {
-			// 多选题
-
-			if (qa.reply && qa.reply.length) {
-				reply = qa.reply.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				reply = '未答'
-			}
-			if (qa.result) {
-				result = qa.result.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				result = '无答案'
-			}
-			scoreAnswerRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-		if (qa.stTypeId == 3) {
-			// 判断题
-			if (qa.reply === '') {
-				reply = '未答'
-			} else if (qa.reply == 0) {
-				reply = '错误'
-			} else if (qa.reply == 1) {
-				reply = '正确'
-			}
-			if (qa.result == 0) {
-				result = '错误'
-			} else if (qa.result == 1) {
-				result = '正确'
-			}
-			scoreAnswerRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-		if (qa.stTypeId == 4) {
-			let reply = qa.reply || [];
-			let result = qa.result || [];
-			// 填空题
-			scoreAnswerTkRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-		if (qa.stTypeId == 5) {
-			// 简单题
-			let reply = qa.reply;
-			let result = qa.result;
-			scoreAnswerJdRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-		if (qa.stTypeId == 6) {
-			// 简单题
-			checkYueduJiexi()
-		}
-
-	}
-
-	function initKaoshi() {
-		lxApi.getLianxiInfo({
-			lxId: data.lxId
-		}).then(res => {
-			const {
-				lxId,
-				lxName,
-				stTotal,
-				stScore,
-				biaoji,
-				endSecond,
-				pageSize,
-				toggleScreenFlag,
-				toggleScreenSecond,
-				zhuapai,
-				duanluoList
-			} = res.data;
-			data.lxId = lxId;
-			data.lxName = lxName;
-			data.stTotal = stTotal;
-			data.stScore = stScore;
-			data.biaoji = biaoji;
-			data.endSecond = endSecond;
-			data.pageSize = pageSize;
-			data.toggleScreenFlag = toggleScreenFlag;
-			data.toggleScreenSecond = toggleScreenSecond;
-			data.zhuapai = zhuapai;
-			data.duanluo = duanluoList;
-			formatDuanluoList(data.duanluo);
-			startCountDown.value = true;
-			uni.setNavigationBarTitle({
-				title: data.lxName
-			});
-		})
-	}
-</script>

+ 0 - 74
pages/my/components/birthdayDialog.vue

@@ -1,74 +0,0 @@
-<template>
-	<uni-popup ref="birthdayPopup" :animation="false" :is-mask-click="false"
-	 mask-background-color="rgba(0, 0, 0, 0.4)">
-	 <view class="phone-common-dialog birthday-dialog">
-		<view class="common-body-box">
-			<uni-calendar
-				ref="calendar"
-				:insert="true"
-				@change="dataConfirm"
-				 />
-			<view class="common-btn-box">
-				<view class="not-confirm-btn" @click="handleClose">{{notBtn}}</view>
-				<view class="confirm-btn" @click="confirmBtn">{{okBtn}}</view>
-			</view>
-		</view>
-	 </view>
-	</uni-popup>
-</template>
-
-<script setup>
-	import {ref,reactive} from "vue"
-	import {toast} from "@/utils/common";
-	const props = defineProps({
-	  notBtn: {
-	    type: String,
-	  	require: true,
-	    default: '取消'
-	  },
-	  okBtn: {
-	    type: String,
-	  	require: true,
-	    default: '确认'
-	  },
-	});
-	const time= ref('');
-	const birthdayPopup = ref(null); // 索引
-	const $emit = defineEmits(['confirm-btn'])
-	
-	function passClear(){
-		time.value = '';
-	}
-	
-	function dataConfirm(data){
-		time.value = data.fulldate;
-	}
-	
-	// 打开弹窗
-	function handleShow() {
-		birthdayPopup.value.open();
-	}
-	// 取消
-	function handleClose() {
-		passClear();
-		birthdayPopup.value.close();
-	}
-	// 确认
-	function confirmBtn(){
-		if(time.value){
-			$emit('confirm-btn',time.value);
-			passClear();
-			birthdayPopup.value.close();
-		}else{
-			toast('请选择日期')
-		}
-		
-	}
-	defineExpose({
-			handleShow,
-			handleClose
-		})
-</script>
-
-<style>
-</style>

+ 0 - 81
pages/my/components/genderDialog.vue

@@ -1,81 +0,0 @@
-<template>
-	<uni-popup ref="genderPopup" :animation="false" :is-mask-click="false"
-	 mask-background-color="rgba(0, 0, 0, 0.4)">
-	 <view class="phone-common-dialog">
-		<view class="common-body-box">
-			<view class="common-title">修改性别</view>
-			<view class="common-input-box">
-				<view class="common-input-row">
-					<text class="common-input-label"><text class="common-label-require">*</text>性别:</text>
-					<uni-data-select
-						class="common-select"
-					    v-model="data.gender"
-					    :localdata="data.range"
-					    @change="change"
-					></uni-data-select>
-				</view>
-			</view>
-			<view class="common-btn-box">
-				<view class="not-confirm-btn" @click="handleClose">{{notBtn}}</view>
-				<view class="confirm-btn" @click="confirmBtn">{{okBtn}}</view>
-			</view>
-		</view>
-	 </view>
-	</uni-popup>
-</template>
-
-<script setup>
-	import {ref,reactive} from "vue"
-	const props = defineProps({
-	  notBtn: {
-	    type: String,
-	  	require: true,
-	    default: '取消'
-	  },
-	  okBtn: {
-	    type: String,
-	  	require: true,
-	    default: '确认'
-	  },
-	});
-	const data = reactive({
-		gender: '',
-		range:[
-		    { value: 0, text: "未知" },
-		    { value: 1, text: "男" },
-		    { value: 2, text: "女" },
-		]
-	})
-	const genderPopup = ref(null); // 索引
-	const $emit = defineEmits(['confirm-btn'])
-	
-	function change(data){
-		console.log('changedata',data);
-	}
-	
-	function passClear(){
-		data.gender = '';
-	}
-	// 打开弹窗
-	function handleShow() {
-		genderPopup.value.open();
-	}
-	// 取消
-	function handleClose() {
-		passClear();
-		genderPopup.value.close();
-	}
-	// 确认
-	function confirmBtn(){
-		$emit('confirm-btn',data.gender);
-		passClear();
-		genderPopup.value.close();
-	}
-	defineExpose({
-			handleShow,
-			handleClose
-		})
-</script>
-
-<style>
-</style>

+ 0 - 103
pages/my/components/passwordDialog.vue

@@ -1,103 +0,0 @@
-<template>
-	<uni-popup ref="passwordPopup" :animation="false" :is-mask-click="false"
-	 mask-background-color="rgba(0, 0, 0, 0.4)">
-	 <view class="phone-common-dialog">
-		<view class="common-body-box">
-			<view class="common-title">修改密码</view>
-			<view class="common-input-box">
-				<view class="common-input-row">
-					<text class="common-input-label"><text class="common-label-require">*</text>原密码:</text>
-					<input class="common-input" v-model="data.oldPassWord"  placeholder="请输入原密码" />
-				</view>
-				<view class="common-input-row">
-					<text class="common-input-label"><text class="common-label-require">*</text>新密码:</text>
-					<input class="common-input" v-model="data.newPassWord"  placeholder="请输入新密码" />
-				</view>
-				<view class="common-input-row">
-					<text class="common-input-label"><text class="common-label-require">*</text>确认密码:</text>
-					<input class="common-input" v-model="data.okPassWord"  placeholder="请确认密码" />
-				</view>
-			</view>
-			<view class="common-btn-box">
-				<view class="not-confirm-btn" @click="handleClose">{{notBtn}}</view>
-				<view class="confirm-btn" @click="confirmBtn">{{okBtn}}</view>
-			</view>
-		</view>
-	 </view>
-	</uni-popup>
-</template>
-
-<script setup>
-	import {ref,reactive} from "vue"
-	const props = defineProps({
-	  notBtn: {
-	    type: String,
-	  	require: true,
-	    default: '取消'
-	  },
-	  okBtn: {
-	    type: String,
-	  	require: true,
-	    default: '确认'
-	  },
-	});
-	const data = reactive({
-		okPassWord: '',
-		oldPassWord: '',
-		newPassWord: '',
-	})
-	const passwordPopup = ref(null); // 索引
-	const $emit = defineEmits(['confirm-btn'])
-	
-	function passClear(){
-		data.okPassWord = '';
-		data.oldPassWord = '';
-		data.newPassWord = '';
-	}
-	// 打开弹窗
-	function handleShow() {
-		passwordPopup.value.open();
-	}
-	// 取消
-	function handleClose() {
-		passClear();
-		passwordPopup.value.close();
-	}
-	// 确认
-	function confirmBtn(){
-		let arr = [];
-		if (!data.oldPassWord) {
-			arr.push('原密码');
-		}
-		if (!data.newPassWord) {
-			arr.push('新密码');
-		}
-		if (!data.newPassWord) {
-			arr.push('确认密码');
-		}
-		if (!data.oldPassWord || !data.newPassWord) {
-			uni.showToast({
-				icon: 'none',
-				title: `请输入${arr.join('、')}信息!`
-			})
-			return;
-		}
-		if (data.newPassWord != data.okPassWord) {
-			uni.showToast({
-				icon: 'none',
-				title: '新密码和确认密码不同'
-			})
-			return;
-		}
-		$emit('confirm-btn',data);
-		passClear();
-		passwordPopup.value.close();
-	}
-	defineExpose({
-			handleShow,
-			handleClose
-		})
-</script>
-
-<style>
-</style>

+ 0 - 78
pages/my/components/realNameDialog.vue

@@ -1,78 +0,0 @@
-<template>
-	<uni-popup ref="realNamePopup" :animation="false" :is-mask-click="false"
-	 mask-background-color="rgba(0, 0, 0, 0.4)">
-	 <view class="phone-common-dialog">
-		<view class="common-body-box">
-			<view class="common-title">修改姓名</view>
-			<view class="common-input-box">
-				<view class="common-input-row">
-					<text class="common-input-label"><text class="common-label-require">*</text>真实姓名:</text>
-					<input class="common-input" v-model="data.realName"  placeholder="请输入真实姓名" />
-				</view>
-			</view>
-			<view class="common-btn-box">
-				<view class="not-confirm-btn" @click="handleClose">{{notBtn}}</view>
-				<view class="confirm-btn" @click="confirmBtn">{{okBtn}}</view>
-			</view>
-		</view>
-	 </view>
-	</uni-popup>
-</template>
-
-<script setup>
-	import {ref,reactive} from "vue"
-	const props = defineProps({
-	  notBtn: {
-	    type: String,
-	  	require: true,
-	    default: '取消'
-	  },
-	  okBtn: {
-	    type: String,
-	  	require: true,
-	    default: '确认'
-	  },
-	});
-	const data = reactive({
-		realName: '',
-	})
-	const realNamePopup = ref(null); // 索引
-	const $emit = defineEmits(['confirm-btn'])
-	
-	function passClear(){
-		data.realName = '';
-	}
-	// 打开弹窗
-	function handleShow() {
-		realNamePopup.value.open();
-	}
-	// 取消
-	function handleClose() {
-		passClear();
-		realNamePopup.value.close();
-	}
-	// 确认
-	function confirmBtn(){
-		let arr = [];
-		if (!data.realName) {
-			arr.push('真实姓名');
-		}
-		if (!data.realName) {
-			uni.showToast({
-				icon: 'none',
-				title: `请输入${arr.join('、')}信息!`
-			})
-			return;
-		}
-		$emit('confirm-btn',data.realName);
-		passClear();
-		realNamePopup.value.close();
-	}
-	defineExpose({
-			handleShow,
-			handleClose
-		})
-</script>
-
-<style>
-</style>

+ 0 - 78
pages/my/components/telDialog.vue

@@ -1,78 +0,0 @@
-<template>
-	<uni-popup ref="telPopup" :animation="false" :is-mask-click="false"
-	 mask-background-color="rgba(0, 0, 0, 0.4)">
-	 <view class="phone-common-dialog">
-		<view class="common-body-box">
-			<view class="common-title">修改电话</view>
-			<view class="common-input-box">
-				<view class="common-input-row">
-					<text class="common-input-label"><text class="common-label-require">*</text>新号码:</text>
-					<input class="common-input" v-model="data.tel"  placeholder="请输入新号码" />
-				</view>
-			</view>
-			<view class="common-btn-box">
-				<view class="not-confirm-btn" @click="handleClose">{{notBtn}}</view>
-				<view class="confirm-btn" @click="confirmBtn">{{okBtn}}</view>
-			</view>
-		</view>
-	 </view>
-	</uni-popup>
-</template>
-
-<script setup>
-	import {ref,reactive} from "vue"
-	const props = defineProps({
-	  notBtn: {
-	    type: String,
-	  	require: true,
-	    default: '取消'
-	  },
-	  okBtn: {
-	    type: String,
-	  	require: true,
-	    default: '确认'
-	  },
-	});
-	const data = reactive({
-		tel: '',
-	})
-	const telPopup = ref(null); // 索引
-	const $emit = defineEmits(['confirm-btn'])
-	
-	function passClear(){
-		data.tel = '';
-	}
-	// 打开弹窗
-	function handleShow() {
-		telPopup.value.open();
-	}
-	// 取消
-	function handleClose() {
-		passClear();
-		telPopup.value.close();
-	}
-	// 确认
-	function confirmBtn(){
-		let arr = [];
-		if (!data.tel) {
-			arr.push('新号码');
-		}
-		if (!data.tel) {
-			uni.showToast({
-				icon: 'none',
-				title: `请输入${arr.join('、')}!`
-			})
-			return;
-		}
-		$emit('confirm-btn',data.tel);
-		passClear();
-		telPopup.value.close();
-	}
-	defineExpose({
-			handleShow,
-			handleClose
-		})
-</script>
-
-<style>
-</style>

+ 0 - 29
pages/my/credit.vue

@@ -1,29 +0,0 @@
-<template>
-	<!-- <view class="sum-score-box">总学分:{{totalCredits}}分</view>
-	<custom-scroll-list :hasSearcBar="false" :refreshFn="getCreditList" :hasTab="false">
-		<template #default="{list}">
-			<scroll-list-card-mes  v-for="(item,index) in list" :key="item.noticeId"
-				:data="item"></scroll-list-card-mes>
-		</template>
-	</custom-scroll-list> -->
-</template>
-
-<script setup>
-	import {getCreditList,getCreditTotal} from '@/api/my.js'
-	import {onLoad,onReady,} from "@dcloudio/uni-app"
-	import {reactive,ref} from "vue";
-	let totalCredits = ref('');
-	onLoad(() => {
-		getCreditInit()
-	})
-	
-	function getCreditInit() {
-		getTotalData();
-	}
-	
-	function getTotalData(){
-		getCreditTotal({}).then(res => {
-			totalCredits.value= res.data;
-		})
-	}
-</script>

+ 0 - 171
pages/my/index.vue

@@ -1,171 +0,0 @@
-<template>
-	<view class="mobile-my-page">
-		<view class="user-info-box">
-		    <view class="user-img-box">
-		        <img class="head-img" :src="myInfoData.userImg" v-if="myInfoData.userImg">
-		        <icon class="phone-default-userImg" v-else></icon>
-		    </view>
-		    <view class="user-content-box">
-		        <view class="user-name">{{myInfoData.userName}}</view>
-		        <view class="user-info">
-		            <view>{{myInfoData.realName}}</view><text v-if="myInfoData.realName && myInfoData.orgName"></text>
-		            <view>{{myInfoData.orgName}}</view><text v-if="myInfoData.orgName && myInfoData.positionName"></text>
-		            <view>{{myInfoData.positionName}}</view>
-		        </view>
-		    </view>
-		</view>
-		
-		<view class="my-list-box">
-			<view class="list-row" @click="goToPage('xuefen')">
-				<icon class="list-icon xuefen-icon"></icon>
-				<text>学分</text>
-				<text class="row-content">{{myInfoData.credit}}分</text>
-			</view>
-			<view class="list-row" @click="goToPage('xiaoxi')">
-				<icon class="list-icon xiaoxi-icon"></icon>
-				<text>消息</text>
-				<text class="row-content">{{myInfoData.countNotice}}条</text>
-			</view>
-			<view class="list-row" @click="goToPage('zhengshu')">
-				<icon class="list-icon zhengshu-icon"></icon>
-				<text>证书</text>
-				<text class="row-content">{{myInfoData.countCert}}个</text>
-			</view>
-		</view>
-		<view class="my-list-box">
-			<view class="list-row" @click="goToPage('cuoti')">
-				<icon class="list-icon cuoti-icon"></icon>
-				<text>错题</text>
-			</view>
-			<view class="list-row" @click="goToPage('baoming')">
-				<icon class="list-icon baoming-icon"></icon>
-				<text>报名</text>
-			</view>
-			<view class="list-row" @click="goToPage('sxtcs')">
-				<icon class="list-icon sxtcs-icon"></icon>
-				<text>摄像头测试</text>
-			</view>
-			<view class="list-row" @click="goToPage('sxtsm')">
-				<icon class="list-icon sxtsm-icon"></icon>
-				<text>摄像头说明</text>
-			</view>
-			<view class="list-row" @click="goToPage('shezhi')">
-				<icon class="list-icon shezhi-icon"></icon>
-				<text>设置</text>
-			</view>
-		</view>
-		
-		<view>
-			<cameraCommon ref="cameraCommonRef"></cameraCommon>
-		</view>
-		<view>
-			<shexiangtoushuoming ref="shexiangtoushuomingRef" :content="messageContent"  title="注意" okBtn="知道了"></shexiangtoushuoming>
-		</view>
-	</view>
-</template>
-
-<script setup>
-	import {reactive,ref} from "vue";
-	import {toast} from "@/utils/common";
-	import {getMineInfo} from '@/api/my.js'
-	import {onLoad,onShow} from '@dcloudio/uni-app';
-	import cameraCommon from "@/components/dialog/cameraCommon.vue";
-	import shexiangtoushuoming from "@/components/dialog/shexiangtoushuoming.vue";
-	let myInfoData = reactive({
-		userImg: '',
-		realName: '',
-		orgName: '',
-		userName: '',
-		positionName:'',
-		credit:'',
-		countCert:'',
-		countNotice:'',
-
-	});
-	const cameraCommonRef = ref(null)
-	const shexiangtoushuomingRef = ref(null)
-	const messageContent = ref('请在考试前使用摄像头测试功能,测试摄像头是否可以正常工作,在测试前请先确保摄像头设备可以正常使用.')
-	onLoad(() => {})
-	
-	onShow(() => {getMyInit()})
-	
-	function getMyInit() {
-		getUserInfo();
-	}
-	
-	function getUserInfo(){
-		getMineInfo({}).then(res => {
-			myInfoData.userImg= res.data.icon;
-			myInfoData.realName = res.data.realName;
-			myInfoData.orgName = res.data.orgName;
-			myInfoData.userName = res.data.userName;
-			myInfoData.positionName = res.data.positionName;
-			myInfoData.credit = res.data.credit;
-			myInfoData.countCert = res.data.countCert;
-			myInfoData.countNotice = res.data.countNotice;
-		})
-	}
-	
-	function goToPage(data){
-		switch (data) {
-			// 学分
-			case 'xuefen':
-			    uni.navigateTo({
-			    	url:'/pages/my/credit'
-			    })
-			break;
-			
-			// 消息
-			case 'xiaoxi':
-			    uni.navigateTo({
-			    	url:'/pages/my/mesList?from=my'
-			    })
-			break;
-			
-			// 证书
-			case 'zhengshu':
-			    uni.navigateTo({
-			    	url:'/pages/my/zhengshu'
-			    })
-			break;
-			
-			// 错题
-			case 'cuoti':
-			    uni.navigateTo({
-			    	url:'/pages/cuoti/index'
-			    })
-			break;
-			
-			// 报名
-			case 'baoming':
-			    uni.navigateTo({
-			    	url:'/pages/baoming/index'
-			    })
-			break;
-			
-			// 摄像头测试
-			case 'sxtcs':
-			cameraCommonRef.value.handleShow()
-			    // uni.navigateTo({
-			    // 	url:'/pages/admin/my/myInfo?from=my'
-			    // })
-			break;
-			
-			// 摄像头说明
-			case 'sxtsm':
-			  shexiangtoushuomingRef.value.handleShow()
-			break;
-			
-			// 设置
-			case 'shezhi':
-			    uni.navigateTo({
-			    	url:'/pages/my/setting'
-			    })
-			break;
-		}
-	}
-</script>
-
-<style>
-
-</style>

+ 0 - 41
pages/my/mesList.vue

@@ -1,41 +0,0 @@
-<template>
-	<!-- <custom-scroll-list :hasSearcBar="false" :refreshFn="getNoticeList" :hasTab="false">
-		<template #default="{list}">
-			<scroll-list-card-mes  v-for="(item,index) in list" :key="item.noticeId"
-				:data="item"></scroll-list-card-mes>
-		</template>
-	</custom-scroll-list> -->
-</template>
-
-<script setup>
-	import {getNoticeList} from '@/api/my.js'
-	import {onLoad,onReady,} from "@dcloudio/uni-app"
-	import {reactive,ref} from "vue";
-	let pageFrom = ref('');
-	onLoad((options) => {
-		pageFrom.value = options.from;
-		console.log('pageFrom.value', pageFrom.value);
-		
-	
-	});
-	function onBackPress() { 
-		switch (pageFrom.value) {
-			case 'my':
-			    uni.redirectTo({
-			       url: '/pages/my/index' 
-			     });
-			    break;
-			case 'index':
-			    uni.redirectTo({
-			       url: '/pages/index/index' 
-			     });
-			    break;	
-			case 'indexPeixun':
-			    uni.redirectTo({
-			       url: '/pages/index/index' 
-			     });
-			    break;
-		}
-	   
-	  }
-</script>

+ 0 - 38
pages/my/mesPage.vue

@@ -1,38 +0,0 @@
-<template>
-	<view class="phone-mes-page">
-		 <view class="mes-box">
-		     <view class="mes-name">{{mesPageData.name}}</view>
-		     <text class="mes-time">{{mesPageData.createTime}}</text>
-		     <view  class="fwb-box" v-html="mesPageData.content"></view>
-		 </view>
-	</view>
-</template>
-
-<script setup>
-import {reactive,ref} from "vue";
-import {onLoad,onShow} from '@dcloudio/uni-app';
-import {getNoticeInfo} from '@/api/my.js'
-let mesPageData = reactive({
-	name: '',
-	createTime: '',
-	content: '',
-});
-	
-let pageId = ref('');
-onLoad((options) => {
-	pageId.value = options.noticeId;
-	getMesInit()
-});
-
-function getMesInit(){
-	getNoticeInfo({noticeId:pageId.value}).then(res => {
-		mesPageData.name= res.data.name;
-		mesPageData.createTime = res.data.createTime;
-		mesPageData.content = res.data.content;
-	})
-}
-</script>
-
-<style>
-
-</style>

+ 0 - 237
pages/my/setting.vue

@@ -1,237 +0,0 @@
-<template>
-	<view class="mobile-setting-page">
-		<view class="setting-list-box">
-			<view class="list-row no-jt-row img-list-row">
-				<text>头像</text>
-				<img class="head-img" :src="settingData.icon" v-if="settingData.icon">
-				<icon class="phone-default-userImg setting-default-userImg" v-else></icon>
-			</view>
-			<view class="list-row no-jt-row">
-				<text>用户名</text>
-				<text class="row-content">{{settingData.userName}}</text>
-			</view>
-			<!-- <view class="list-row" @click="goToPage('realName')">
-				<text>真实姓名</text>
-				<text class="row-content">{{settingData.realName}}</text>
-			</view>
-			<view class="list-row" @click="goToPage('gender')">
-				<text>性别</text>
-				<text class="row-content" v-if="settingData.gender===0"></text>
-				<text class="row-content" v-if="settingData.gender===1">男</text>
-				<text class="row-content" v-if="settingData.gender===2">女</text>
-			</view>
-			
-			<view class="list-row" @click="goToPage('shengri')">
-				<text>生日</text>
-				<text class="row-content">{{settingData.birthday}}</text>
-			</view>
-			
-			<view class="list-row" @click="goToPage('tel')">
-				<text>电话</text>
-				<text class="row-content">{{settingData.tel}}</text>
-			</view>
-			<view class="list-row" @click="goToPage('xgmm')">
-				<text>修改密码</text>
-				<text class="row-content">{{settingData.xgmm}}</text>
-			</view> -->
-			<view class="list-row no-jt-row" @click="goToPage('qlhc')">
-				<text>清理缓存</text>
-				<text class="row-content"></text>
-			</view>
-		</view>
-		<view @click="quitClick" class="exit-login-btn">退出登录</view>
-		<real-name-dialog ref="realNameDialogRef" @confirm-btn="realNameBtn"></real-name-dialog>
-		<tel-dialog ref="telDialogRef" @confirm-btn="telBtn"></tel-dialog>
-		<password-dialog ref="passwordDialogRef" @confirm-btn="passwordBtn"></password-dialog>
-		<birthday-dialog ref="birthdayDialogRef" @confirm-btn="birthdayBtn"></birthday-dialog>
-		<gender-dialog ref="genderDialogRef" @confirm-btn="genderBtn"></gender-dialog>
-	</view>
-</template>
-
-<script setup>
-import {reactive,ref} from "vue";
-import {logout} from '@/api/login.js'
-import {toast} from "@/utils/common";
-import {onLoad} from '@dcloudio/uni-app';
-import {getUserInfo,getUserUpRealName,getUserUpTel,getUserUpPassword,getUserUpBirthday,getUserUpGender} from '@/api/my.js'
-import {useUserCache} from "@/utils/userCache.js"
-import cacheManager from '@/utils/cacheManager.js';
-import realNameDialog from './components/realNameDialog.vue';
-import telDialog from './components/telDialog.vue';
-import passwordDialog from './components/passwordDialog.vue';
-import birthdayDialog from './components/birthdayDialog.vue';
-import genderDialog from './components/genderDialog.vue';
-
-let settingData = reactive({
-		icon: '',
-		userName: '',
-		realName: '',
-		gender:'',
-		birthday: '',
-		tel:'',
-	});
-	
-	onLoad(() => {
-		getSettingInit()
-	})
-	
-	function getSettingInit(){
-		getUserInfo({}).then(res => {
-			settingData.icon = res.data.icon;
-			settingData.userName = res.data.userName;
-			settingData.realName = res.data.realName;
-			settingData.gender = res.data.gender;
-			settingData.birthday = res.data.birthday;
-			settingData.tel = res.data.tel;
-		})
-	}
-	
-	/***** 跳转 *****/
-	function goToPage(data){
-		switch (data) {
-			case 'realName':
-			    realNameDialogRef.value.handleShow();
-			break;
-			case 'gender':
-			    genderDialogRef.value.handleShow();
-			break;
-			case 'shengri':
-			    birthdayDialogRef.value.handleShow();
-			break;
-			case 'tel':
-			    telDialogRef.value.handleShow();
-			break;
-			case 'xgmm':
-			    passwordDialogRef.value.handleShow();
-			break;
-			case 'qlhc':
-			    clearLocation()
-			break;
-		}
-	}
-	
-	
-	function clearLocation(){
-		// 清理考试缓存
-		useUserCache().removeCache('kaoshiCache');
-	}
-	
-	function quitClick(){
-		uni.showModal({
-				title: '提示',
-				content: '你确定要执行这个操作吗?',
-				success: (res) => {
-				  if (res.confirm) {
-					// 确定
-					quit()
-				  } else if (res.cancel) {
-					// 取消
-				  }
-				}
-			  });
-		
-		 }
-		 
-	function quit (){
-			logout().then(res=>{
-				toast('退出登录成功')
-				uni.navigateTo({
-					url: '/pages/login'
-				});
-				cacheManager.clearAll();
-				
-			}).catch(err => {
-			toast('退出登录失败,请稍后重试')
-		})
-		
-	}
-	/***** 真实姓名 *****/
-	const realNameDialogRef = ref(null);
-	function realNameBtn(data){
-		console.log(data,'data');
-		settingData.realName = data;
-		const opt = {
-			realName: settingData.realName,
-		}
-		getUserUpRealName(opt).then(res => {
-			if (res.data) {
-				uni.showToast({
-					title: '更新成功'
-				})
-				realNameDialogRef.value.handleClose();
-			}
-		})
-	}
-	
-	/***** 电话 *****/
-	const telDialogRef = ref(null);
-	function telBtn(data){
-		console.log(data,'data');
-		settingData.tel = data;
-		const opt = {
-			tel: settingData.tel,
-		}
-		getUserUpTel(opt).then(res => {
-			if (res.data) {
-				uni.showToast({
-					title: '更新成功'
-				})
-				telDialogRef.value.handleClose();
-			}
-		})
-	}
-	
-	/***** 修改日期 *****/
-	const birthdayDialogRef = ref(null);
-	function birthdayBtn(data){
-		settingData.birthday = data;
-		const opt = {
-			brithday: settingData.birthday,
-		}
-		getUserUpBirthday(opt).then(res => {
-			if (res.data) {
-				uni.showToast({
-					title: '更新成功'
-				})
-				birthdayDialogRef.value.handleClose();
-			}
-		})
-	}
-	
-	/***** 修改性别 *****/
-	const genderDialogRef = ref(null);
-	function genderBtn(data){
-		settingData.gender = data;
-		const opt = {
-			gender: data,
-		}
-		getUserUpGender(opt).then(res => {
-			if (res.data) {
-				uni.showToast({
-					title: '更新成功'
-				})
-				birthdayDialogRef.value.handleClose();
-			}
-		})
-	}
-	
-	/***** 修改密码 *****/
-	const passwordDialogRef = ref(null);
-	function passwordBtn(data){
-		const opt = {
-			passwordOld: data.oldPassWord,
-			passwordNew: data.newPassWord, 
-		}
-		getUserUpdatePassword(opt).then(res => {
-			if (res.data) {
-				uni.showToast({
-					title: '更新成功'
-				})
-				passwordDialogRef.value.handleClose();
-			}
-		})
-	}
-</script>
-
-<style>
-</style>

+ 0 - 34
pages/my/zhengshu.vue

@@ -1,34 +0,0 @@
-<template>
-	<custom-scroll-list :hasSearcBar="false" :refreshFn="getZhengshuList" :hasTab="false" >
-		<template #default="{list}">
-			<scroll-list-card-zhengshu  v-for="(item,index) in list" :key="item.ksId"
-				:data="item"></scroll-list-card-zhengshu>
-		</template>
-	</custom-scroll-list>
-</template>
-
-<script setup>
-	import {
-		getZhengshuList
-	} from "@/api/zhengshu.js";
-	import {
-		onLoad,
-		onReady,
-
-	} from "@dcloudio/uni-app"
-	import {
-		reactive,
-		ref
-	} from "vue";
-	function onBackPress(options) { 
-
-	    uni.redirectTo({
-	      url: '/pages/my/index' 
-	    });
-	    return true; 
-	  }
-</script>
-
-<style lang="scss">
-
-</style>

+ 0 - 67
pages/score/index.vue

@@ -1,67 +0,0 @@
-<template>
-	<custom-scroll-list-chengji ref="customChengjiRef" :refreshFn="currentRefreshFn" @tabChange="tabChange"
-		:searchBarKey="searchBarKeyName" :tabList="tabData" :defaultTab="1">
-		<template #default="{list}">
-			<scroll-list-card-chengji v-show="currentTab =='1'" @lookShijuan="lookShijuan" @lookPaiming="lookPaiming"   v-for="(item,index) in list"
-				:key="item.ksId" :data="item"></scroll-list-card-chengji>
-			<scroll-list-card-kechengji v-show="currentTab =='2'" @click="kechengChengjiClick(item)"
-				v-for="(item,index) in list" :key="item.ksId" :data="item"></scroll-list-card-kechengji>
-		</template>
-	</custom-scroll-list-chengji>
-</template>
-
-<script setup>
-	import {
-		getKaoshichengjiList,
-		getKcchengjiList
-	} from "@/api/chengji.js";
-	import customScrollListChengji from "@/components/custom-scroll-list/custom-scroll-list-chengji.vue";
-	import {
-		onLoad,
-		onReady,
-
-	} from "@dcloudio/uni-app"
-	import {
-		reactive,
-		ref,
-		computed
-	} from "vue";
-	let currentTab = ref('1')
-	let searchBarKeyName = ref('ksName')
-	let customChengjiRef = ref(null)
-	const tabData = [{
-		label: "考试成绩",
-		value: 1,
-	}, {
-		label: "课程成绩",
-		value: 2
-	}]
-const currentRefreshFn = computed(() => 
-  currentTab.value == '1' ? getKaoshichengjiList : getKcchengjiList
-)
-	function tabChange(data) {
-		currentTab.value = data.value
-		if (currentTab.value == 1) {
-			searchBarKeyName.value = 'ksName'
-		} else {
-			searchBarKeyName.value = 'kcName'
-		}
-	//	customChengjiRef.value.tabChangeSearch(data)
-	}
-	const lookShijuan = (data) => {
-		console.log('data',data);
-		uni.navigateTo({
-			url: '/pages/score/kaoshiChengjiInfo?lxId=' + data.lxId + '&name=' + data.name
-		});
-	}
-	const lookPaiming = (data) => {
-		console.log('datalookPaiming',data);
-		// uni.navigateTo({
-		// 	url: '/pages/score/kaoshiChengjiInfo?kcId=' + data.kcId + '&name=' + data.name
-		// });
-	}
-</script>
-
-<style lang="scss">
-
-</style>

+ 0 - 728
pages/score/kaoshiChengjiInfo.vue

@@ -1,728 +0,0 @@
-<template>
-	<view class="phone-kaoshi-page">
-		<!-- 导航区域 -->
-		<view class="icon-title-navBar-box">
-			<view @click="handleBack" class="nav-bar-icon"></view>
-			<text class="nav-bar-title">{{data.lxName}}</text>
-		</view>
-		<!-- 第一行 -->
-		<view class="kaoshi-page-title">
-			<view v-if="activeSt" class="title-types">{{dlName}}</view>
-			<view>100分钟</view>
-		</view>
-
-
-		<view class="kaoshi-shiti-content">
-			<!-- 内容区域 -->
-			<!-- 试题区域 -->
-			<view v-if="activeSt">
-				<template v-if="activeSt.stTypeId == 1">
-					<!-- 单选 -->
-					<danxuan :question="activeSt" :key="activeSt.stId"></danxuan>
-				</template>
-				<template v-if="activeSt.stTypeId == 2">
-					<!-- 多选 -->
-					<duoxuan :question="activeSt" :key="activeSt.stId"></duoxuan>
-				</template>
-				<template v-if="activeSt.stTypeId == 3">
-					<!-- 判断 -->
-					<panduan :question="activeSt" :key="activeSt.stId"></panduan>
-				</template>
-				<template v-if="activeSt.stTypeId == 4">
-					<!-- 填空 -->
-					<tiankong :question="activeSt" :key="activeSt.stId"></tiankong>
-				</template>
-				<template v-if="activeSt.stTypeId == 5">
-					<!-- 简答 -->
-					<jianda :question="activeSt" :key="activeSt.stId"></jianda>
-				</template>
-				<template v-if="activeSt.stTypeId == 6">
-					<!-- 阅读 -->
-					<yuedu :question="activeSt" :key="activeSt.stId" @yudu-change="onYueduChange"></yuedu>
-				</template>
-			</view>
-
-		</view>
-
-		<view class="kaoshi-bottom-box">
-			<button class="phone-green-btn bj-btn" hover-class="none" type="default" size="mini"
-				@click="handleBiaoji">{{activeSt && activeSt.marked ? '取标':'标记'}}</button>
-			<view @click="showAnswerCard" class="shiti-num-box">
-				<icon class="shiti-num-icon"></icon>
-				<text
-					class="active-num">{{activeSt ? activeSt.onlyNum: 0}}</text>/<text>{{data.StListForSearch.length}}</text>
-			</view>
-			<button class="phone-white-btn jx-btn" hover-class="none" type="default" size="mini"
-				@click="handleCheckJiexi">解析</button>
-		</view>
-		<template v-if="activeSt">
-			<button type="default" size="mini" hover-class="none" class="phone-green-btn ks-btn-prev"
-				@click="handlePrev" v-if="!isFistStId">上一题</button>
-			<button type="default" size="mini" hover-class="none" class="phone-green-btn ks-btn-next"
-				@click="handleNext" v-if="!isLastStId">下一题</button>
-			<button type="default" size="mini" hover-class="none" class="phone-green-btn ks-btn-next"
-				@click="handleBack" v-if="isLastStId">交卷</button>
-		</template>
-
-		<!-- 答题卡 -->
-		<uni-popup ref="popupRef" background-color="#fff" :animation="false" :is-mask-click="false" :mask-click="false">
-			<view class="answer-card-popup">
-				<view class="icon-title-navBar-box">
-					<view @click="handlePopupBack" class="nav-bar-icon"> </view>
-					<text class="nav-bar-title">答题卡</text>
-				</view>
-				<view class="card-content-box">
-					<view class="answer-card-content" v-for="(paragraph,paragraphIndex) in questionData"
-						:key="paragraphIndex">
-						<view class="paragraph-title">
-							{{paragraph.name}}
-						</view>
-						<view class="paragraph-qa" v-for="(qa,qaIndex) in paragraph.qas" :key="qaIndex"
-							:class="getQaClass(qa)" @click="answerCardItemClick(qa)">{{qa.onlyNum}}
-						</view>
-					</view>
-				</view>
-			</view>
-		</uni-popup>
-		<!--
-		// 倒计时
-		<view v-if="!!data.endSecond">
-			<text>考试倒计时:</text>
-			<uni-countdown :show-day="false" :second="1000" @timeup="onTimeUp" :start="startCountDown"></uni-countdown>
-		</view>
-		-->
-		<!-- 答案解析 -->
-		<scoreAndAnswerVue ref="scoreAnswerRef"></scoreAndAnswerVue>
-		<scoreAndAnswerAdminTiankong ref="scoreAnswerTkRef"></scoreAndAnswerAdminTiankong>
-		<scoreAndAnswerAdminJianda ref="scoreAnswerJdRef"></scoreAndAnswerAdminJianda>
-	</view>
-
-
-
-</template>
-
-<script setup>
-	import {
-		ref,
-		reactive,
-		computed,
-		watch
-	} from "vue";
-	import {
-		onLoad
-	} from "@dcloudio/uni-app";
-	import * as lxApi from "@/api/lianxi.js"
-	import danxuan from "@/components/questions/danxuan.vue";
-	import duoxuan from "@/components/questions/duoxuan.vue";
-	import tiankong from "@/components/questions/tiankong.vue";
-	import panduan from "@/components/questions/panduan.vue";
-	import jianda from "@/components/questions/jianda.vue";
-	import yuedu from "@/components/questions/yuedu.vue";
-	import scoreAndAnswerVue from "@/components/scoreAndAnswer/scoreAndAnswerAdmin.vue";
-	import scoreAndAnswerAdminTiankong from "@/components/scoreAndAnswer/scoreAndAnswerAdminTiankong.vue";
-	import scoreAndAnswerAdminJianda from "@/components/scoreAndAnswer/scoreAndAnswerJianda.vue";
-	import {
-		useQuestionTools
-	} from "@/components/questions/useQuestionTools.js";
-
-	const {
-		checkDanxuanReply,
-		checkDuoxuanReply,
-		checkPanduanReply,
-		checkTiankongReply,
-		getLetterByIndex,
-		checkJiandaReply,
-		checkYueduReply
-	} = useQuestionTools();
-
-	const stTypes = {
-		1: '单选题',
-		2: '多选题',
-		3: '判断题',
-		4: '填空题',
-	}
-
-	const popupRef = ref(null)
-	const scoreAnswerRef = ref(null)
-	const scoreAnswerTkRef = ref(null)
-	const startCountDown = ref(false);
-	const scoreAnswerJdRef = ref(null);
-
-	const data = reactive({
-		lxId: null,
-		lxName: '',
-		stTotal: 0,
-		stScore: 0,
-		biaoji: null,
-		endSecond: 0,
-		pageSize: 0,
-		toggleScreenFlag: 0,
-		toggleScreenSecond: 0,
-		zhuapai: 0,
-		duanluo: [],
-		markDB: [],
-		StListForSearch: [],
-	})
-
-	const yuduIndexQa = ref(null);
-
-	const questionData = ref([]);
-
-	const progress = reactive({
-		dlIndex: 0,
-		dtIndex: 0
-	})
-
-	const dlName = computed(() => {
-		if (data.StListForSearch && activeSt.value) {
-			return data.StListForSearch[activeSt.value.onlyNum - 1].paragraphName
-		} else {
-			return ''
-		}
-	})
-
-	watch(() => data.duanluo, (newVal) => {
-		// 计算已答试题数量
-	}, {
-		deep: true
-	})
-
-	const activeSt = computed(() => {
-		if (questionData.value.length) {
-			return questionData.value.length && questionData.value[progress.dlIndex].qas[progress.dtIndex];
-		} else {
-			return null
-		}
-	})
-
-	const isFistStId = computed(() => {
-		if (data.StListForSearch.length) {
-			return data.StListForSearch[0].stId == activeSt.value.stId
-		} else {
-			return false
-		}
-	});
-	const isLastStId = computed(() => {
-		if (data.StListForSearch.length) {
-			return data.StListForSearch[data.StListForSearch.length - 1].stId == activeSt.value.stId
-		} else {
-			return false
-		}
-	});
-
-	onLoad((option) => {
-	//	data.lxId = option.lxId;
-		data.lxId =6;
-		initKaoshi();
-	})
-
-	function getQaClass(qa) {
-		if (qa.marked && qa.marked === true) {
-			return 'paragraph-qa-block-mark';
-		} else {
-			if (qa.stTypeId == 1) {
-				if (checkDanxuanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 2) {
-				if (checkDuoxuanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 3) {
-				if (checkPanduanReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 4) {
-				if (checkTiankongReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 5) {
-				if (checkJiandaReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			} else if (qa.stTypeId == 6) {
-				if (checkYueduReply(qa)) {
-					return 'paragraph-qa-block-done';
-				} else {
-					return 'paragraph-qa-block-init';
-				}
-			}
-		}
-	}
-
-	function skipQuestion(dlIndex, dtIndex) {
-		progress.dlIndex = dlIndex;
-		progress.dtIndex = dtIndex;
-		handlePopupBack()
-		// 切换试题时清空阅读提解析
-		yuduIndexQa.value = null;
-	}
-
-	function answerCardItemClick(qa) {
-		const actQa = data.StListForSearch.find(item => item.stId == qa.stId);
-		skipQuestion(actQa.dlIndex, actQa.dtIndex)
-
-	}
-
-	function handleBack() {
-		uni.redirectTo({
-			url: "/pages/admin/Lianxi/list"
-		})
-	}
-
-	function onTimeUp() {
-		console.log('end')
-	}
-
-	function showAnswerCard() {
-		popupRef.value.open('top')
-	}
-
-	function handlePopupBack() {
-		popupRef.value.close()
-	}
-
-	function handlePrev() {
-		const qa = data.StListForSearch.find(item => item.stId == activeSt.value.stId);
-		const index = qa.num - 1;
-		if (index > 0) {
-			const result = data.StListForSearch[index - 1];
-			progress.dlIndex = result.dlIndex;
-			progress.dtIndex = result.dtIndex
-		}
-		// 切换试题时清空阅读提解析
-		yuduIndexQa.value = null;
-	}
-
-	function handleNext() {
-		const qa = data.StListForSearch.find(item => item.stId == activeSt.value.stId);
-		const index = qa.num - 1;
-		if (index < data.StListForSearch.length) {
-			const result = data.StListForSearch[index + 1];
-			progress.dlIndex = result.dlIndex;
-			progress.dtIndex = result.dtIndex
-		}
-		// 切换试题时清空阅读提解析
-		yuduIndexQa.value = null
-	}
-
-	function formatDuanluoList(dlData) {
-		let uIndex = 0; // 试题num
-		let iDuanluo = 0; // 段落num
-		let result = [];
-		for (const duanluo of data.duanluo) {
-			let paragraph = {
-				qas: [],
-			};
-			paragraph.name = duanluo.name;
-
-			let iQa = 0; // 当前试题序号
-			let order = 0; // 当前题型中第几题
-			for (const iDanxuan of duanluo.danxuan) {
-				iDanxuan.type = 'danxuan';
-				iDanxuan.marked = false;
-				iDanxuan.onlyNum = uIndex + 1;
-				iDanxuan.order = order;
-				iDanxuan.iQa = iQa;
-				iDanxuan.reply = iDanxuan.result;
-				paragraph.qas.push(iDanxuan);
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iDanxuan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iDanxuan.iQa,
-					num: iDanxuan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iDuoxuan of duanluo.duoxuan) {
-				iDuoxuan.type = 'duoxuan';
-				iDuoxuan.marked = false;
-				iDuoxuan.onlyNum = uIndex + 1;
-				iDuoxuan.order = order;
-				paragraph.qas.push(iDuoxuan);
-				iDuoxuan.reply = iDuoxuan.result;
-				iDuoxuan.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iDuoxuan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iDuoxuan.iQa,
-					num: iDuoxuan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iPanduan of duanluo.panduan) {
-				iPanduan.type = 'panduan';
-				iPanduan.marked = false;
-				iPanduan.onlyNum = uIndex + 1;
-				iPanduan.order = order;
-				paragraph.qas.push(iPanduan);
-				iPanduan.reply = iPanduan.result;
-				iPanduan.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iPanduan.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iPanduan.iQa,
-					num: iPanduan.onlyNum
-				})
-			}
-			order = 0;
-			for (const iTiankong of duanluo.tiankong) {
-				iTiankong.type = 'tiankong';
-				iTiankong.marked = false;
-				iTiankong.onlyNum = uIndex + 1;
-				iTiankong.order = order;
-				paragraph.qas.push(iTiankong);
-				iTiankong.reply = iTiankong.result.map(item => item[0]);
-				iTiankong.iQa = iQa;
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iTiankong.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iTiankong.iQa,
-					num: iTiankong.onlyNum
-				})
-			}
-			order = 0;
-			for (const iJianda of duanluo.jianda) {
-				iJianda.marked = false;
-				iJianda.type = 'jianda';
-				iJianda.onlyNum = uIndex + 1;
-				iJianda.order = order;
-				iJianda.iQa = iQa;
-				paragraph.qas.push(iJianda);
-				iJianda.reply = '';
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iJianda.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iJianda.iQa,
-					num: iJianda.onlyNum
-				})
-			}
-			order = 0;
-			for (const iYuedu of duanluo.yuedu) {
-				iYuedu.marked = false;
-				iYuedu.type = 'yuedu';
-				iYuedu.onlyNum = uIndex + 1;
-				iYuedu.order = order;
-				iYuedu.iQa = iQa;
-
-				if (iYuedu.duoxuan && iYuedu.duoxuan.length) {
-					iYuedu.duoxuan.map((qIt) => {
-						qIt.reply = qIt.reply || [];
-						return qIt
-					})
-				}
-
-				if (iYuedu.tiankong && iYuedu.tiankong.length) {
-					iYuedu.tiankong.map((qIt) => {
-						qIt.reply = new Array(qIt.count).fill('');
-						return qIt;
-					});
-				}
-
-				paragraph.qas.push(iYuedu);
-				iYuedu.reply = [];
-				uIndex++;
-				order++;
-				iQa++;
-
-				data.StListForSearch.push({
-					stId: iYuedu.stId,
-					paragraphName: paragraph.name,
-					dlIndex: iDuanluo,
-					dtIndex: iYuedu.iQa,
-					num: iYuedu.onlyNum
-				})
-			}
-
-			iDuanluo++;
-			questionData.value.push(paragraph)
-
-			console.log(questionData.value)
-		}
-	}
-
-	function handleBiaoji() {
-		activeSt.value.marked = !activeSt.value.marked;
-	}
-	// 切换阅读小题时更新当前试题解析
-	function onYueduChange(qa) {
-		yuduIndexQa.value = qa;
-	}
-
-	// 校验阅读解析
-	function checkYueduJiexi() {
-		let qa = yuduIndexQa.value;
-		let score = qa.userScore;
-		let reply = '';
-		let result = '';
-		let answer = qa.answer;
-		if (qa.stTypeId == 1) {
-			// 单选题
-			if (qa.reply && qa.reply.trim() !== '') {
-				reply = getLetterByIndex(qa.reply)
-			} else {
-				reply = '未答'
-			}
-
-			if (qa.result) {
-				result = getLetterByIndex(qa.result)
-			} else {
-				result = '无答案'
-			}
-			scoreAnswerRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-		if (qa.stTypeId == 2) {
-			// 多选题
-
-			if (qa.reply && qa.reply.length) {
-				reply = qa.reply.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				reply = '未答'
-			}
-			if (qa.result) {
-				result = qa.result.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				result = '无答案'
-			}
-			scoreAnswerRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-		if (qa.stTypeId == 3) {
-			// 判断题
-			if (qa.reply === '') {
-				reply = '未答'
-			} else if (qa.reply == 0) {
-				reply = '错误'
-			} else if (qa.reply == 1) {
-				reply = '正确'
-			}
-			if (qa.result == 0) {
-				result = '错误'
-			} else if (qa.result == 1) {
-				result = '正确'
-			}
-			scoreAnswerRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-		if (qa.stTypeId == 4) {
-			let reply = qa.reply || [];
-			let result = qa.result || [];
-			// 填空题
-			scoreAnswerTkRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-		if (qa.stTypeId == 5) {
-			// 简单题
-			let reply = qa.reply ? '未答' : qa.reply;
-			let result = qa.result;
-			scoreAnswerJdRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-
-	}
-
-	// 获取解析
-	function handleCheckJiexi() {
-		const qa = activeSt.value;
-		let score = qa.userScore;
-		let reply = '';
-		let result = '';
-		let answer = qa.answer;
-		if (qa.stTypeId == 1) {
-			// 单选题
-			if (qa.reply && qa.reply.trim() !== '') {
-				reply = getLetterByIndex(qa.reply)
-			} else {
-				reply = '未答'
-			}
-
-			if (qa.result) {
-				result = getLetterByIndex(qa.result)
-			} else {
-				result = '无答案'
-			}
-			scoreAnswerRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-		if (qa.stTypeId == 2) {
-			// 多选题
-
-			if (qa.reply && qa.reply.length) {
-				reply = qa.reply.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				reply = '未答'
-			}
-			if (qa.result) {
-				result = qa.result.map(item => {
-					if (item.trim()) {
-						return getLetterByIndex(item.trim())
-					}
-				}).join(',')
-			} else {
-				result = '无答案'
-			}
-			scoreAnswerRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-		if (qa.stTypeId == 3) {
-			// 判断题
-			if (qa.reply === '') {
-				reply = '未答'
-			} else if (qa.reply == 0) {
-				reply = '错误'
-			} else if (qa.reply == 1) {
-				reply = '正确'
-			}
-			if (qa.result == 0) {
-				result = '错误'
-			} else if (qa.result == 1) {
-				result = '正确'
-			}
-			scoreAnswerRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-		if (qa.stTypeId == 4) {
-			let reply = qa.reply || [];
-			let result = qa.result || [];
-			// 填空题
-			scoreAnswerTkRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-		if (qa.stTypeId == 5) {
-			// 简单题
-			let reply = qa.reply;
-			let result = qa.result;
-			scoreAnswerJdRef.value.showPopup({
-				score,
-				reply,
-				result,
-				answer
-			})
-		}
-		if (qa.stTypeId == 6) {
-			// 简单题
-			checkYueduJiexi()
-		}
-
-	}
-
-	function initKaoshi() {
-		lxApi.getLianxiInfo({
-			lxId: data.lxId
-		}).then(res => {
-			const {
-				lxId,
-				lxName,
-				stTotal,
-				stScore,
-				biaoji,
-				endSecond,
-				pageSize,
-				toggleScreenFlag,
-				toggleScreenSecond,
-				zhuapai,
-				duanluoList
-			} = res.data;
-			data.lxId = lxId;
-			data.lxName = lxName;
-			data.stTotal = stTotal;
-			data.stScore = stScore;
-			data.biaoji = biaoji;
-			data.endSecond = endSecond;
-			data.pageSize = pageSize;
-			data.toggleScreenFlag = toggleScreenFlag;
-			data.toggleScreenSecond = toggleScreenSecond;
-			data.zhuapai = zhuapai;
-			data.duanluo = duanluoList;
-			formatDuanluoList(data.duanluo);
-			startCountDown.value = true;
-			uni.setNavigationBarTitle({
-				title: data.lxName
-			});
-		})
-	}
-</script>

+ 22 - 0
pages/xsydDeyuduiwu/xsydDeyuduiwu.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/xsydDeyuduiwuInfo/xsydDeyuduiwuInfo.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/xsydGongqingtuan/xsydGongqingtuan.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/xsydGongqingtuanInfo/xsydGongqingtuanInfo.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/xsydXueshenghuodong/xsydXueshenghuodong.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/xsydXueshenghuodongInfo/xsydXueshenghuodongInfo.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/xsydZizhuguanli/xsydZizhuguanli.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/xsydZizhuguanliInfo/xsydZizhuguanliInfo.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/xydtTongzhigonggao/xydtTongzhigonggao.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/xydtTongzhigonggaoInfo/xydtTongzhigonggaoInfo.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/xydtXiaowugongkai/xydtXiaowugongkai.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/xydtXiaowugongkaiInfo/xydtXiaowugongkaiInfo.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/xydtXueyuanfengcai/xydtXueyuanfengcai.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/xydtXueyuanfengcaiInfo/xydtXueyuanfengcaiInfo.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/xydtXueyuanxingwen/xydtXueyuanxingwen.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/xydtXueyuanxinwenInfo/xydtXueyuanxinwenInfo.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 35 - 0
pages/xygkJigoushezhi/xygkJigoushezhi.vue

@@ -0,0 +1,35 @@
+<template>
+	<view>
+		{{data.content}}
+	</view>
+</template>
+
+<script setup>
+	import {
+		ref,
+		reactive
+	} from "vue";
+	import {
+		onLoad
+	} from "@dcloudio/uni-app"
+	import * as httpApi from "@/api/common.js"
+	
+	
+	const data = reactive({
+		content: ''
+	})
+	
+	onLoad(() => {
+		pageInit();
+	})
+	
+	function pageInit() {
+		httpApi.getCommonGaikuangJigouShezhiInfo().then(res => {
+			data.content = res.data.content;
+		})
+	}
+</script>
+
+<style>
+	       
+</style>

+ 34 - 0
pages/xygkLianxifangshi/xygkLianxifangshi.vue

@@ -0,0 +1,34 @@
+<template>
+	<view>
+		{{data.info}}
+	</view>
+</template>
+
+<script setup>
+	import {
+		ref,
+		reactive
+	} from "vue";
+	import {
+		onLoad
+	} from "@dcloudio/uni-app"
+	import * as httpApi from "@/api/common.js"
+	
+	const data = reactive({
+		info: ''
+	})
+	
+	onLoad(() => {
+		pageInit();
+	})
+	
+	function pageInit() {
+		httpApi.getCommonGaikuangJianjieInfo().then(res => {
+			data.info = res.data;
+		})
+	}
+</script>
+
+<style>
+
+</style>

+ 46 - 0
pages/xygkXiaoyuanfengguang/xygkXiaoyuanfengguang.vue

@@ -0,0 +1,46 @@
+<template>
+	<view>
+		{{data.list}}
+	</view>
+</template>
+
+<script setup>
+	import {
+		ref,
+		reactive
+	} from "vue";
+	import {
+		onLoad
+	} from "@dcloudio/uni-app"
+	import * as httpApi from "@/api/common.js"
+
+	const data = reactive({
+		page: 1,
+		total: 0,
+		size: 20,
+		list: []
+	})
+
+	onLoad(() => {
+		pageInit()
+	})
+
+	function updateList() {
+		httpApi.getCommonGaikuangRongyuList({
+			page: data.page,
+			size: data.size
+		}).then(res => {
+			data.total = res.data.total;
+			data.list = res.data.data;
+		})
+	}
+
+	function pageInit() {
+		data.page = 1;
+		updateList()
+	}
+</script>
+
+<style>
+
+</style>

+ 34 - 0
pages/xygkXueyuanjianjie/xygkXueyuanjianjie.vue

@@ -0,0 +1,34 @@
+<template>
+	<view>
+		{{data.content}}
+	</view>
+</template>
+
+<script setup>
+	import {
+		ref,
+		reactive
+	} from "vue";
+	import {
+		onLoad
+	} from "@dcloudio/uni-app"
+	import * as httpApi from "@/api/common.js"
+
+	const data = reactive({
+		content: ''
+	})
+
+	onLoad(() => {
+		pageInit();
+	})
+
+	function pageInit() {
+		httpApi.getCommonGaikuangJianjieInfo().then(res => {
+			data.content = res.data.content;
+		})
+	}
+</script>
+
+<style>
+
+</style>

+ 46 - 0
pages/xygkXueyuanrongyu/xygkXueyuanrongyu.vue

@@ -0,0 +1,46 @@
+<template>
+	<view>
+		{{data.list}}
+	</view>
+</template>
+
+<script setup>
+	import {
+		ref,
+		reactive
+	} from "vue";
+	import {
+		onLoad
+	} from "@dcloudio/uni-app"
+	import * as httpApi from "@/api/common.js"
+
+	const data = reactive({
+		page: 1,
+		total: 0,
+		size: 5,
+		list: []
+	})
+
+	onLoad(() => {
+		pageInit()
+	})
+
+	function updateList() {
+		httpApi.getCommonGaikuangRongyuList({
+			page: data.page,
+			size: data.size
+		}).then(res => {
+			data.total = res.data.total;
+			data.list = res.data.data;
+		})
+	}
+
+	function pageInit() {
+		data.page = 1;
+		updateList()
+	}
+</script>
+
+<style>
+
+</style>

+ 58 - 0
pages/xygkXueyuanwenhua/xygkXueyuanwenhua.vue

@@ -0,0 +1,58 @@
+<template>
+<view class="website-xywh-page">
+    <h1 class="website-default-title xywh-title">学院文化</h1>
+    <view class="xywh-row xx-row">
+        <view class="xywh-row-content">
+            <h1 class="xywh-name">校训</h1>
+            <h5>读书明志,精熟一技</h5>
+            <p><span>办学宗旨:</span>育人为根本,技能为核心,</p>
+            <p><span></span>服务为宗旨,就业创业为导向</p>
+            <p><span>培养目标:</span>学会做人做事,学会知识技能</p>
+            <p><span></span>学会动脑动手,学会生存生活</p>
+            <p><span>培养模式:</span>宽基础、活模块、重实践、强能力</p>
+        </view>
+    </view>
+    <view class="xywh-row xh-row">
+        <view class="xywh-row-content">
+            <h1 class="xywh-name">校徽</h1>
+            <p>责任:为学生终生负责,终身为教育负责</p>
+            <p>使命:改变现实、点亮希望、塑造未来</p>
+            <p>校风:团结、勤奋、务实、进取</p>
+            <p>教风:教书育人、管理育人、服务育人、环境育人</p>
+            <p>学风:学会做人、学会生存</p>
+            <p>领导作风:精诚合作、廉洁奉公、联系群众、开拓创新</p>
+            <p>管理作风:服从于管理,服务于管理</p>
+            <p>学院精神:与时俱进,争创一流</p>
+        </view>
+    </view>
+    <view class="xywh-row xg-row">
+        <view class="xywh-row-content">
+            <h1 class="xywh-name">校歌</h1>
+            <p>迎着旭日的阳光,迎着旭日的阳光</p>
+            <p>迎着旭日的阳光,啊迎着旭日的阳光</p>
+            <p>迎着旭日的阳光,噢我们走进交通的学堂</p>
+            <p>学会做人,学会生存,追求人生美好理想</p>
+            <p>迎着旭日的阳光,噢我们来到同学的身旁</p>
+            <p>教书育人,桃李芬芳,我们的职业无尚荣光</p>
+            <p>团结勤奋,务实进取,我们在蓝天碧海翱翔</p>
+            <p>手拉着手,师生相长,肩并着肩,相得益彰</p>
+            <p>创新服务,节约和谐,我们前进在科学发展</p>
+            <p>珍惜生命,珍爱时光,我们比翼,比翼飞翔</p>
+            <p>发展的大路上。飞翔飞翔啊</p>
+            <p>比翼飞翔。</p>
+            <p>张开理想的翅膀,飞翔飞翔啊</p>
+            <p>谱写崭新的篇章,飞翔飞翔</p>
+            <p>让校园充满爱和阳光,飞翔飞翔</p>
+            <p>让未来更加辉煌,更加辉煌</p>
+        </view>
+    </view>
+</view>
+</template>
+
+<script setup>
+
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/xzzxXiazaizhongxin/xzzxXiazaizhongxin.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/zsjyBaokaozhinan/zsjyBaokaozhinan.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/zsjyShengxue/zsjyShengxue.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/zsjyWangnianluqufenshu/zsjyWangnianluqufenshu.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/zsjyXiaoqihezuo/zsjyXiaoqihezuo.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/zsjyXiaoqihezuoInfo/zsjyXiaoqihezuoInfo.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/zsjyYouxiubiyesheng/zsjyYouxiubiyesheng.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/zsjyYouxiubiyeshengInfo/zsjyYouxiubiyeshengInfo.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/zsjyYubaoming/zsjyYubaoming.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/zsjyZhaopinxinxi/zsjyZhaopinxinxi.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/zsjyZhaoshengjianzhang/zsjyZhaoshengjianzhang.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/zsjyZhengcewenhuaInfo/zsjyZhengcewenhuaInfo.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/zsjyZhengcewenjian/zsjyZhengcewenjian.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/zsjyZhuanyejieshao/zsjyZhuanyejieshao.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/zypxTongzhigonggao/zypxTongzhigonggao.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/zypxTongzhigonggaoInfo/zypxTongzhigonggaoInfo.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>