Browse Source

学校端

1
mo 2 years ago
parent
commit
fc90719725

+ 17 - 0
src/assets/icon/iconfont2.css

@@ -0,0 +1,17 @@
+@font-face {
+  font-family: "iconfont"; /* Project id  */
+  src: url('iconfont.ttf?t=1683189237626') format('truetype');
+}
+
+.iconfont {
+  font-family: "iconfont2" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-xuexiaoguanli:before {
+  content: "\e644";
+}
+

File diff suppressed because it is too large
+ 0 - 0
src/assets/icon/iconfont2.js


+ 16 - 0
src/assets/icon/iconfont2.json

@@ -0,0 +1,16 @@
+{
+  "id": "",
+  "name": "",
+  "font_family": "iconfont",
+  "css_prefix_text": "icon-",
+  "description": "",
+  "glyphs": [
+    {
+      "icon_id": "35329196",
+      "name": "学校管理",
+      "font_class": "xuexiaoguanli",
+      "unicode": "e644",
+      "unicode_decimal": 58948
+    }
+  ]
+}

BIN
src/assets/icon/iconfont2.ttf


+ 27 - 0
src/constant/index.js

@@ -559,3 +559,30 @@ export const levelStatus = {
   START: "进行中",
   END: "已结束"
 };
+
+// 学校人员
+export const schoolUserType = {
+  SCHOOLMASTER: "校长",
+  ORCHESTRA_LEADER: "乐团领队",
+  SCHOOL_LEADER:'分管领导',
+  TEACHER: "负责老师"
+};
+
+// 巡堂评价
+export const evaluateStatus = {
+  EXCELLENT:'优秀',
+  GOOD:'良好',
+  QUALIFIED:'合格',
+  UNQUALIFIED:'不合格'
+}
+
+// 问题类型
+export const problemType = {
+  CLASSROOM_DISCIPLINE:'课堂纪律',
+  AFTER_SCHOOL_ORGANIZATION:'放学组织',
+  ENVIRONMENTAL_SANITATION:'环境卫生',
+  TEACHING_DEMEANOR:'教态仪表',
+  COMMUNICATION_EXPRESSION:'沟通表达',
+  PROFESSIONAL_ABILITY:'专业能力',
+  OTHER:'其他'
+}

+ 1 - 0
src/main.js

@@ -1,6 +1,7 @@
 import Vue from "vue";
 import ElementUI from "element-ui";
 import "./assets/icon/iconfont.css";
+import "./assets/icon/iconfont2.css";
 import dayjs from "dayjs";
 import isSameOrBefore from "dayjs/plugin/isSameOrBefore";
 import isSameOrAfter from "dayjs/plugin/isSameOrAfter";

+ 5 - 2
src/utils/searchArray.js

@@ -28,7 +28,9 @@ import {
   catType,
   quiteReason,
   payUserType,
-  levelStatus
+  levelStatus,
+  evaluateStatus,
+  problemType
 } from "../constant";
 // 课程类型
 let tenantConfig = sessionStorage.getItem("tenantConfig");
@@ -880,7 +882,8 @@ export const catTypeList = getValueForKey(catType);
 export const quiteReasonList = getValueForKey(quiteReason);
 export const payUserTypeList = getValueForKey(payUserType);
 export const levelStatusList = getValueForKey(levelStatus);
-
+export const evaluateStatusList = getValueForKey(evaluateStatus)
+export const problemTypeList = getValueForKey(problemType)
 //downListType
 function getValueForKey(obj) {
   let arr = [];

+ 202 - 179
src/utils/vueFilter.js

@@ -15,50 +15,50 @@ Vue.filter("joinArray", (value, type) => {
 });
 
 // 合作单位
-Vue.filter("branchType", value => {
+Vue.filter("branchType", (value) => {
   let template = {
     OWN: "自有",
     COOPERATION: "合作",
-    LEASE: "租赁"
+    LEASE: "租赁",
   };
   return template[value];
 });
 
 // 商品类型
-Vue.filter("shopType", value => {
+Vue.filter("shopType", (value) => {
   let template = {
     INSTRUMENT: "乐器",
     ACCESSORIES: "辅件",
     TEACHING: "教材",
     STAFF: "教谱",
-    OTHER: "其它"
+    OTHER: "其它",
   };
   return template[value];
 });
 
 // 乐团学员状态
-Vue.filter("musicGroupStudentType", value => {
+Vue.filter("musicGroupStudentType", (value) => {
   let template = {
     NORMAL: "在读",
     LEAVE: "请假",
     QUIT: "退团",
-    APPLY: "报名"
+    APPLY: "报名",
   };
   return template[value];
 });
 
 // 乐团学员状态
-Vue.filter("instrumentType", value => {
+Vue.filter("instrumentType", (value) => {
   let template = {
     GROUP: "团购",
     OWNED: "自备",
-    LEASE: "租赁"
+    LEASE: "租赁",
   };
   return template[value];
 });
 
 // 课程类型
-Vue.filter("coursesType", value => {
+Vue.filter("coursesType", (value) => {
   let template = {
     NORMAL: "声部课",
     SINGLE: "声部课",
@@ -77,41 +77,41 @@ Vue.filter("coursesType", value => {
     COMM: "对外课",
     MUSIC: "乐团课",
     HIGH_ONLINE: "线上基础技能课",
-    MUSIC_NETWORK: "乐团网管课"
+    MUSIC_NETWORK: "乐团网管课",
   };
   return template[value];
 });
 
 // 课程状态
-Vue.filter("coursesStatus", value => {
+Vue.filter("coursesStatus", (value) => {
   let template = {
     NOT_START: "未开始",
     UNDERWAY: "进行中",
-    OVER: "已结束"
+    OVER: "已结束",
   };
   return template[value];
 });
 
 // 考勤类型
-Vue.filter("clockingIn", value => {
+Vue.filter("clockingIn", (value) => {
   let templateStatus = {
     NORMAL: "正常",
     TRUANT: "旷课",
     LEAVE: "请假",
     QUIT_SCHOOL: "休学",
     DROP_OUT: "退学",
-    LATE: "迟到"
+    LATE: "迟到",
   };
   return templateStatus[value];
 });
 
 // 学员状态
-Vue.filter("studentTeamStatus", value => {
+Vue.filter("studentTeamStatus", (value) => {
   let templateStatus = {
     NORMAL: "在读",
     QUIT: "退团",
     QUIT_SCHOOL: "休学",
-    APPLY: "报名"
+    APPLY: "报名",
   };
   return templateStatus[value];
 });
@@ -132,7 +132,7 @@ Vue.filter("dayjsFormatForDate", (value, format = "MM-DD") => {
   }
 });
 
-Vue.filter("dayjsFormatWeek", value => {
+Vue.filter("dayjsFormatWeek", (value) => {
   if (value) {
     return dayjs(value).format("YYYY-MM");
   } else {
@@ -141,7 +141,7 @@ Vue.filter("dayjsFormatWeek", value => {
 });
 
 // courseViewType
-Vue.filter("dayjsFormatMinute", value => {
+Vue.filter("dayjsFormatMinute", (value) => {
   if (value) {
     return dayjs(value).format("HH:mm");
   } else {
@@ -149,28 +149,28 @@ Vue.filter("dayjsFormatMinute", value => {
   }
 });
 
-Vue.filter("formatTimer", value => {
+Vue.filter("formatTimer", (value) => {
   if (value) {
     return value.split(" ")[0];
   } else {
     return value;
   }
 });
-Vue.filter("formatSecondTimer", value => {
+Vue.filter("formatSecondTimer", (value) => {
   if (value) {
     return dayjs(value).format("HH:mm:ss");
   } else {
     return value;
   }
 });
-Vue.filter("timerForMinFormat", value => {
+Vue.filter("timerForMinFormat", (value) => {
   if (value) {
     return value.substring(0, 5);
   } else {
     return value;
   }
 });
-Vue.filter("dateForMinFormat", value => {
+Vue.filter("dateForMinFormat", (value) => {
   if (value) {
     return value.substring(0, 16);
   } else {
@@ -178,7 +178,7 @@ Vue.filter("dateForMinFormat", value => {
   }
 });
 // 乐团状态
-Vue.filter("musicGroupType", value => {
+Vue.filter("musicGroupType", (value) => {
   // let template = {
   //   APPLY: "报名中",
   //   PAY: "缴费中",
@@ -192,52 +192,48 @@ Vue.filter("musicGroupType", value => {
   // }
   return constant.musicGroupType[value];
 });
-Vue.filter("paymentPatternTypeFormat", val => constant.paymentPatternType[val]);
+Vue.filter("paymentPatternTypeFormat", (val) => constant.paymentPatternType[val]);
 // 支付用户类型
-Vue.filter("payUserTypeFormat", val => constant.payUserType[val]);
+Vue.filter("payUserTypeFormat", (val) => constant.payUserType[val]);
 // 支付缴费方式
-Vue.filter("userPaymentTypeFormat", val => constant.userPaymentType[val]);
+Vue.filter("userPaymentTypeFormat", (val) => constant.userPaymentType[val]);
 // 课程类型格式化
-Vue.filter("courseTypeFormat", val => constant.courseType[val]);
+Vue.filter("courseTypeFormat", (val) => constant.courseType[val]);
 // 格式化签到签退记录 updateAttendanceEnum
-Vue.filter("updateAttendanceEnum", val => constant.updateAttendanceEnum[val]);
-Vue.filter("clientTypeFilter", val => constant.clientTypeFilter[val]);
+Vue.filter("updateAttendanceEnum", (val) => constant.updateAttendanceEnum[val]);
+Vue.filter("clientTypeFilter", (val) => constant.clientTypeFilter[val]);
 // 机构状态
-Vue.filter("organState", val => constant.organState[val]);
+Vue.filter("organState", (val) => constant.organState[val]);
 // 机构缴费状态
-Vue.filter("organPayState", val => constant.organPayState[val]);
+Vue.filter("organPayState", (val) => constant.organPayState[val]);
 // 教学伴奏
-Vue.filter("clientType", val => constant.clientStatus[val]);
+Vue.filter("clientType", (val) => constant.clientStatus[val]);
 // 会员周期
-Vue.filter("memberEnumType", val => {
+Vue.filter("memberEnumType", (val) => {
   let template = {
     DAY: "天",
-    ...constant.memberEnum
+    ...constant.memberEnum,
   };
   // constant.memberEnum[val]
   return template[val];
 });
 // 优惠券类型
-Vue.filter("coupontypeDetailType", val => constant.coupontypeDetail[val]);
+Vue.filter("coupontypeDetailType", (val) => constant.coupontypeDetail[val]);
 
 // 学员回访状态 feedbackType
-Vue.filter("feedbackTypeFilter", val => constant.feedbackTypeAll[val]);
-Vue.filter("feedbackTypeDescFilter", val => constant.feedbackTypeDesc[val]);
+Vue.filter("feedbackTypeFilter", (val) => constant.feedbackTypeAll[val]);
+Vue.filter("feedbackTypeDescFilter", (val) => constant.feedbackTypeDesc[val]);
 // 小小训练营状态
-Vue.filter("campStateListFilter", val => constant.campState[val]);
+Vue.filter("campStateListFilter", (val) => constant.campState[val]);
 
 // 时间处理
-Vue.filter("timer", value => {
+Vue.filter("timer", (value) => {
   if (value) {
     let tempDate = new Date(value);
     let month =
-      tempDate.getHours() >= 10
-        ? tempDate.getHours()
-        : "0" + tempDate.getHours();
+      tempDate.getHours() >= 10 ? tempDate.getHours() : "0" + tempDate.getHours();
     let days =
-      tempDate.getMinutes() >= 10
-        ? tempDate.getMinutes()
-        : "0" + tempDate.getMinutes();
+      tempDate.getMinutes() >= 10 ? tempDate.getMinutes() : "0" + tempDate.getMinutes();
     return month + ":" + days;
   } else {
     return value;
@@ -245,114 +241,106 @@ Vue.filter("timer", value => {
 });
 
 // 格式化成星期
-Vue.filter("formatWeek", date => {
+Vue.filter("formatWeek", (date) => {
   let nd = new Date(date);
-  let temp = [
-    "星期天",
-    "星期一",
-    "星期二",
-    "星期三",
-    "星期四",
-    "星期五",
-    "星期六"
-  ];
+  let temp = ["星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
   return temp[nd.getDay()];
 });
 
 // 职位
-Vue.filter("jobType", value => {
+Vue.filter("jobType", (value) => {
   let template = {
     ADVISER: "指导老师",
     ACADEMIC: "乐团主管",
-    TEACHING: "乐队指导"
+    TEACHING: "乐队指导",
   };
   return template[value];
 });
 
 // 工作类型
-Vue.filter("jobNature", value => {
+Vue.filter("jobNature", (value) => {
   return constant.jobNature[value];
 });
 // 发券方式
-Vue.filter("issueType", value => {
+Vue.filter("issueType", (value) => {
   return constant.issue[value];
 });
 
 // 考勤状态
-Vue.filter("attendanceType", value => {
+Vue.filter("attendanceType", (value) => {
   let template = {
     0: "异常",
     1: "正常",
-    3: "未签到"
+    3: "未签到",
   };
   return template[value];
 });
 // 考情签退
-Vue.filter("attendanceOutType", value => {
+Vue.filter("attendanceOutType", (value) => {
   let template = {
     0: "异常",
     1: "正常",
-    3: "未签退"
+    3: "未签退",
   };
   return template[value];
 });
 
 // 上课类型
-Vue.filter("workType", value => {
+Vue.filter("workType", (value) => {
   return constant.workType[value];
 });
 // 交易类型
-Vue.filter("orderType", value => constant.orderType[value]);
+Vue.filter("orderType", (value) => constant.orderType[value]);
 
 //
-Vue.filter("paymentChannelType", value => {
+Vue.filter("paymentChannelType", (value) => {
   let template = {
     PER: "个人",
-    COM: "公司"
+    COM: "公司",
   };
   return template[value];
 });
 
 // 交易状态
-Vue.filter("dealStatus", value => {
+Vue.filter("dealStatus", (value) => {
   let template = {
     ING: "交易中",
     SUCCESS: "成功交易",
     FAILED: "交易失败",
-    CLOSE: "交易关闭"
+    CLOSE: "交易关闭",
   };
   return template[value];
 });
 
 // 交易状态
-Vue.filter("returnStatus", value => {
+Vue.filter("returnStatus", (value) => {
   let template = {
     ING: "审核中",
     REJECT: "拒绝",
     WAIT_PAYMENT: "待支付",
-    DONE: "完成"
+    DONE: "完成",
   };
   return template[value];
 });
 
 // 缴费状态
-Vue.filter("payTypeStatus", val => {
+Vue.filter("payTypeStatus", (val) => {
   return constant.payStatus[val];
 });
 
 // 性别
-Vue.filter("sex", value => {
+Vue.filter("sex", (value) => {
   let template = ["女", "男"];
   return template[value];
 });
 
 // 服从调剂 isAllowAdjust
-Vue.filter("isAllowAdjust", value => {
+Vue.filter("isAllowAdjust", (value) => {
   let template = ["否", "是"];
   return template[value];
 });
 // 学员缴费状态 paymentStatus
-Vue.filter("paymentStatus", value => {
+Vue.filter("paymentStatus", (value) => {
   let template = ["未开启缴费", "开启缴费", "已缴费"];
   return template[value];
 });
@@ -378,51 +366,51 @@ Vue.filter("paymentStatus", value => {
 
 // 学生状态
 /**studentStatus */
-Vue.filter("studentStatus", value => {
+Vue.filter("studentStatus", (value) => {
   let template = ["在读", "已退课", "退课中", "休学"];
   return template[value];
 });
 // 学生点名
-Vue.filter("studentRecord", value => {
+Vue.filter("studentRecord", (value) => {
   let template = {
     NORMAL: "正常",
     TRUANT: "旷课",
     LEAVE: "请假",
     DROP_OUT: "退学",
     LATE: "迟到",
-    "": "未签到"
+    "": "未签到",
   };
   return template[value];
 });
 // 是否
-Vue.filter("yesOrNo", value => {
+Vue.filter("yesOrNo", (value) => {
   let template = ["否", "是"];
   return template[value];
 });
 
 // 学员缴费状态
-Vue.filter("studentPay", value => {
+Vue.filter("studentPay", (value) => {
   let template = {
     PAID_COMPLETED: "完成缴费",
     NON_PAYMENT: "未缴费",
-    PROCESSING: "缴费中"
+    PROCESSING: "缴费中",
   };
   return template[value];
 });
 
 // 学员点名详情
-Vue.filter("studentSign", value => {
+Vue.filter("studentSign", (value) => {
   let template = {
     NORMAL: "正常",
     TRUANT: "旷课",
     LEAVE: "请假",
     DROP_OUT: "退学",
-    LATE: "迟到"
+    LATE: "迟到",
   };
   return template[value];
 });
 // 班级类型
-Vue.filter("classType", value => {
+Vue.filter("classType", (value) => {
   let template = {
     NORMAL: "声部班",
     MIX: "合奏班",
@@ -432,27 +420,27 @@ Vue.filter("classType", value => {
     SNAP: "临时班",
     PRACTICE: "网管课",
     HIGH_ONLINE: "线上基础技能课",
-    MUSIC_NETWORK: "乐团网管课"
+    MUSIC_NETWORK: "乐团网管课",
   };
   return template[value];
 });
 
-Vue.filter("teachMode", value => {
+Vue.filter("teachMode", (value) => {
   return constant.teachMode[value];
 });
 
 // 老师状态
-Vue.filter("teacherStatus", value => {
+Vue.filter("teacherStatus", (value) => {
   let template = {
-    "0": "正常",
-    "1": "冻结",
-    "9": "锁定"
+    0: "正常",
+    1: "冻结",
+    9: "锁定",
   };
   return template[value];
 });
 
 // vip课状态
-Vue.filter("vipCourseStatus", value => {
+Vue.filter("vipCourseStatus", (value) => {
   let template = {
     0: "未开始",
     1: "报名中",
@@ -460,42 +448,42 @@ Vue.filter("vipCourseStatus", value => {
     2: "进行中",
     4: "已结束",
     3: "取消",
-    6: "暂停"
+    6: "暂停",
   };
   return template[value];
 });
 
 // 账号类型
-Vue.filter("accountTypeFormat", value => {
+Vue.filter("accountTypeFormat", (value) => {
   let template = {
     0: "对内",
-    1: "对外"
+    1: "对外",
   };
   return template[value];
 });
 
 // 扣减库存
-Vue.filter("stockTypeFormat", value => {
+Vue.filter("stockTypeFormat", (value) => {
   let template = {
     INTERNAL: "内部",
     EXTERNAL: "外部",
-    ALL: "内部,外部"
+    ALL: "内部,外部",
   };
   return template[value];
 });
 
 // 交易状态
-Vue.filter("paymentChannelStatus", value => {
+Vue.filter("paymentChannelStatus", (value) => {
   let template = {
     YQPAY: "双乾",
     BALANCE: "余额",
-    ADAPAY: "汇付"
+    ADAPAY: "汇付",
   };
   return template[value];
 });
 
 // edition
-Vue.filter("editionFilter", value => {
+Vue.filter("editionFilter", (value) => {
   let template = {
     "ios-teacher": "苹果-老师端",
     "ios-student": "苹果-学生端",
@@ -504,25 +492,25 @@ Vue.filter("editionFilter", value => {
     "android-student": "安卓-学生端",
     "android-education": "安卓-管理端",
     "ios-electron": "苹果-桌面端",
-    "win-electron": "win-桌面端"
+    "win-electron": "win-桌面端",
   };
   return template[value];
 });
 
 // payStatus  订单支付状态
-Vue.filter("payStatus", value => {
+Vue.filter("payStatus", (value) => {
   let template = {
     WAIT_PAY: "等待支付",
     ING: "交易中",
     SUCCESS: "成功交易",
     FAILED: "交易失败",
-    CLOSE: "交易关闭"
+    CLOSE: "交易关闭",
   };
   return template[value];
 });
 
 // payType  交易类型
-Vue.filter("payType", value => {
+Vue.filter("payType", (value) => {
   let template = {
     RECHARGE: "充值",
     WITHDRAW: "提现",
@@ -531,146 +519,146 @@ Vue.filter("payType", value => {
     FILL_ACCOUNT: "人工补账",
     REFUNDS: "退费",
     REWARDS: "奖励",
-    WAGE: "工资"
+    WAGE: "工资",
   };
   return template[value];
 });
 
 // 课程组状态 FINISH
-Vue.filter("courseGroup", value => {
+Vue.filter("courseGroup", (value) => {
   let template = {
     NORMAL: "正常",
     LOCK: "锁定",
     FINISH: "结束",
-    CANCEL: "取消"
+    CANCEL: "取消",
   };
   return template[value];
 });
 // 网管课程组
-Vue.filter("comCourseGroup", value => {
+Vue.filter("comCourseGroup", (value) => {
   let template = {
     NOT_START: "未开始",
     LOCK: "锁定",
     APPLYING: "报名中",
     NORMAL: "进行中",
     FINISH: "结束",
-    CANCEL: "关闭"
+    CANCEL: "关闭",
   };
   return template[value];
 });
 
 //网管课类型
-Vue.filter("comType", value => {
+Vue.filter("comType", (value) => {
   let template = {
     FREE: "免费",
     CHARGE: "收费",
     TRIAL: "试听课",
     CARE_PACKAGE: "关心包",
-    COME_ON_PACKAGE: "加油包"
+    COME_ON_PACKAGE: "加油包",
   };
   return template[value];
 });
 
 // 首充续费
 
-Vue.filter("firstOrRenewFilter", value => {
+Vue.filter("firstOrRenewFilter", (value) => {
   let template = {
-    "0": "续费",
-    "1": "首次"
+    0: "续费",
+    1: "首次",
   };
   return template[value];
 });
 
 // 老师时间
-Vue.filter("transTypeFilter", value => {
+Vue.filter("transTypeFilter", (value) => {
   let template = {
     RECHARGE: "充值",
     CONSUME: "建课",
     RETURN: "退课",
     MANUAL_ADD: "系统充值",
-    MANUAL_SUB: "系统扣除"
+    MANUAL_SUB: "系统扣除",
   };
   return template[value];
 });
 
 // paymentType
-Vue.filter("paymentType", value => {
+Vue.filter("paymentType", (value) => {
   let template = {
     OFFLINE: "线下",
     ONLINE: "线上",
-    ALL: "全部"
+    ALL: "全部",
   };
   return template[value];
 });
 
-Vue.filter("paymentListStatus", value => {
+Vue.filter("paymentListStatus", (value) => {
   let template = {
     0: "未开始",
     1: "已开启",
-    2: "已结束"
+    2: "已结束",
   };
   return template[value];
 });
 
 // paymentStatus
-Vue.filter("paymentStatusDetall", value => {
+Vue.filter("paymentStatusDetall", (value) => {
   let template = {
     PAID_COMPLETED: "已缴费",
     PROCESSING: "缴费中",
-    NON_PAYMENT: "未缴费"
+    NON_PAYMENT: "未缴费",
   };
   return template[value];
 });
 
-Vue.filter("paymentStatusGet", value => {
+Vue.filter("paymentStatusGet", (value) => {
   let template = {
     PAID_COMPLETED: "已付款",
     PROCESSING: "付款中",
-    NON_PAYMENT: "未付款"
+    NON_PAYMENT: "未付款",
   };
   return template[value];
 });
-Vue.filter("replacementInsFilter", value => {
+Vue.filter("replacementInsFilter", (value) => {
   let template = {
     2: "已缴费",
     1: "缴费中",
-    0: "未缴费"
+    0: "未缴费",
   };
   return template[value];
 });
 
 // 课时申诉
-Vue.filter("complaintsStatusEnum", value => {
+Vue.filter("complaintsStatusEnum", (value) => {
   let template = {
     0: "已拒绝",
     1: "已通过",
     2: "待处理",
-    3: "已撤销"
+    3: "已撤销",
   };
   return template[value];
 });
 
 //  人事状态 isProbationPeriod
-Vue.filter("isProbationPeriod", value => {
+Vue.filter("isProbationPeriod", (value) => {
   let template = {
     0: "正式",
     1: "试用",
-    2: "离职"
+    2: "离职",
   };
   return template[value];
 });
 
-Vue.filter("visiterType", value => {
+Vue.filter("visiterType", (value) => {
   let template = {
     TEACHER: "指导老师",
-    EDU_TEACHER: "乐团主管"
+    EDU_TEACHER: "乐团主管",
   };
   return template[value];
 });
 
 // 人力资源人员状态
 
-Vue.filter("hrStatus", value => {
+Vue.filter("hrStatus", (value) => {
   let template = {
     NOT_EMPLOYED: "未录用",
     INTERVIEWING: "面试中",
@@ -678,44 +666,44 @@ Vue.filter("hrStatus", value => {
     PART_TIME: "兼职",
     FULL_TIME: "全职",
     DIMISSION: "离职",
-    BLACK_LIST: "黑名单"
+    BLACK_LIST: "黑名单",
   };
   return template[value];
 });
 
 // 费用类型
 
-Vue.filter("feeType", value => {
+Vue.filter("feeType", (value) => {
   return constant.feeType[value];
 });
 
 // 费用项目
 
-Vue.filter("feeProject", value => {
+Vue.filter("feeProject", (value) => {
   return constant.feeProject[value];
 });
 
 // 销售类型
 
-Vue.filter("saleType", value => {
+Vue.filter("saleType", (value) => {
   return constant.saleType[value];
 });
 // 退费类型 backType
-Vue.filter("backType", value => {
+Vue.filter("backType", (value) => {
   return constant.backType[value];
 });
 // 缴费状态
 
-Vue.filter("teamPayStatus", value => {
+Vue.filter("teamPayStatus", (value) => {
   const tpl = {
     0: "按月",
     1: "按学期",
-    2: "一次性"
+    2: "一次性",
   };
   return tpl[value];
 });
 
-Vue.filter("numberFormat", value => {
+Vue.filter("numberFormat", (value) => {
   return numeral(value).format("0,0");
 });
 
@@ -727,182 +715,217 @@ Vue.filter("moneyFormat", (value, unit = false) => {
     return numeral(value).format("0,0.00");
   }
 });
-Vue.filter("hasMoneyFormat", value => {
+Vue.filter("hasMoneyFormat", (value) => {
   if (value) {
     return numeral(value).format("0,0.00") + "元";
   } else {
     return "--";
   }
 });
-Vue.filter("stockTypeStatus", value => {
+Vue.filter("stockTypeStatus", (value) => {
   const template = {
     INTERNAL: "内部",
     EXTERNAL: "外部",
-    ALL: "全部"
+    ALL: "全部",
   };
   return template[value];
 });
 // 确认收货类型
-Vue.filter("receiveFormat", value => {
+Vue.filter("receiveFormat", (value) => {
   let template = {
     NO_RECEIVE: "未确认",
     MANUAL_RECEIVE: "手动确认",
-    AUTO_RECEIVE: "自动确认"
+    AUTO_RECEIVE: "自动确认",
   };
   return template[value];
 });
 
 // 缴费方式
 
-Vue.filter("payOrderType", value => {
+Vue.filter("payOrderType", (value) => {
   return constant.payOrderType[value];
 });
 
 // 审核状态 auditType
-Vue.filter("auditType", value => {
+Vue.filter("auditType", (value) => {
   return constant.auditType[value];
 });
 
 // 审核申请类型 auditPaymentType
-Vue.filter("auditPaymentType", value => {
+Vue.filter("auditPaymentType", (value) => {
   return constant.auditPaymentType[value];
 });
 
 // 销售收入和服务收入
-Vue.filter("orderServer", value => {
+Vue.filter("orderServer", (value) => {
   return constant.orderServerType[value];
 });
 
 // 订单审核状态 orderAuditType
-Vue.filter("orderAuditType", value => {
+Vue.filter("orderAuditType", (value) => {
   constant.orderAuditType[""] = "审核通过";
   return constant.orderAuditType[value];
 });
 
-Vue.filter("songUseTypeFormat", value => {
+Vue.filter("songUseTypeFormat", (value) => {
   return constant.songUseType[value];
 });
 
-Vue.filter("rewardModeTypeFormat", value => {
+Vue.filter("rewardModeTypeFormat", (value) => {
   return constant.rewardModeType[value];
 });
 // 系统日志类型
-Vue.filter("journalTypeFormat", value => {
+Vue.filter("journalTypeFormat", (value) => {
   return constant.journalType[value];
 });
 
 // 日程安排 inspectionItem
-Vue.filter("inspectionItemFormat", value => {
+Vue.filter("inspectionItemFormat", (value) => {
   return constant.inspectionItem[value];
 });
 
 // 学员列表关心包,加油包
-Vue.filter("studentPackage", value => {
+Vue.filter("studentPackage", (value) => {
   return constant.packageStatus[value];
 });
 
 // 分部 学年制
-Vue.filter("gradeTypeFormat", value => {
+Vue.filter("gradeTypeFormat", (value) => {
   return constant.gradeType[value];
 });
 // 老师状态
-Vue.filter("ProbationPeriod", value => {
+Vue.filter("ProbationPeriod", (value) => {
   return constant.ProbationPeriodStatus[value];
 });
 
 // 下载列表 类型
 // downListType
-Vue.filter("downListType", value => {
+Vue.filter("downListType", (value) => {
   return constant.downListType[value];
 });
 
 // 退团状态
-Vue.filter("withdrawalStatus", value => {
+Vue.filter("withdrawalStatus", (value) => {
   return constant.withdrawalStatus[value];
 });
 //
-Vue.filter("conclusionStatus", value => {
+Vue.filter("conclusionStatus", (value) => {
   return constant.conclusion[value];
 });
-Vue.filter("courseViewType", value => {
+Vue.filter("courseViewType", (value) => {
   return constant.courseViewType[value];
 });
-Vue.filter("couponTypeFilter", value => {
+Vue.filter("couponTypeFilter", (value) => {
   return constant.couponType[value];
 });
 // couponType
-Vue.filter("catRoleFilter", value => {
+Vue.filter("catRoleFilter", (value) => {
   return constant.couponType[value];
 });
 
-Vue.filter("tenantStatus", value => {
+Vue.filter("tenantStatus", (value) => {
   return constant.tenantStatus[value];
 });
 
-Vue.filter("cloudGroupActive", value => {
+Vue.filter("cloudGroupActive", (value) => {
   let template = {
     1: "天数",
     2: "月度",
     3: "季度",
     4: "半年",
-    5: "年度"
+    5: "年度",
   };
   return template[value];
 });
 
-Vue.filter("chargingStatus", value => {
+Vue.filter("chargingStatus", (value) => {
   return constant.chargingStatus[value];
 });
 
 // 群消息类型
-Vue.filter("catgGoupType", value => {
+Vue.filter("catgGoupType", (value) => {
   return constant.catgGoupType[value];
 });
 // 群类型
 
-Vue.filter("catType", value => {
+Vue.filter("catType", (value) => {
   return constant.catType[value];
 });
 
-Vue.filter("catDotType", value => {
+Vue.filter("catDotType", (value) => {
   return constant.catDotType[value];
 });
 
-Vue.filter("quiteReasonFilter", value => {
+Vue.filter("quiteReasonFilter", (value) => {
   return constant.quiteReason[value];
 });
 
 // 直播设备
-Vue.filter("osFilter", value => {
+Vue.filter("osFilter", (value) => {
   return constant.osType[value];
 });
 
 // 直播方案
-Vue.filter("serviceProvider", value => {
+Vue.filter("serviceProvider", (value) => {
   return constant.serviceProvider[value];
 });
 // 考级状态
-Vue.filter("levelStatus", value => {
+Vue.filter("levelStatus", (value) => {
   return constant.levelStatus[value];
 });
 
 // palyLevel 难度
-Vue.filter("palyLevelFilter", value => {
+Vue.filter("palyLevelFilter", (value) => {
   return constant.palyLevel[value];
 });
-Vue.filter("usageStatus", value => {
+
+// schoolUserType
+Vue.filter("schoolUserType", (value) => {
+  return constant.schoolUserType[value];
+});
+// 学校巡堂综合评价
+Vue.filter("evaluateStatus", (value) => {
+  return constant.evaluateStatus[value];
+});
+// 学校巡堂问题类型
+Vue.filter("problemType", (value) => {
+  // 自定义问题类型
+  if (value) {
+    const arrList = value
+      .split(",")
+      .map((item) => {
+        return constant.problemType[item];
+      })
+      .join(",");
+    return arrList;
+    // constant.problemType[value];
+  } else {
+    return "--";
+  }
+});
+
+Vue.filter("schoolUserStatus", (value) => {
+  let obj = {
+    "-1": "注销",
+    9: "冻结",
+    1: "激活",
+  };
+  return obj[value];
+});
+
+Vue.filter("usageStatus", (value) => {
   let obj = {
     0: "未使用",
     1: "已使用",
-    2: "已过期"
+    2: "已过期",
   };
   return obj[value];
 });
-Vue.filter("liveState", value => {
+Vue.filter("liveState", (value) => {
   let obj = {
     0: "未开始",
     1: "直播中",
-    2: "已结束"
+    2: "已结束",
   };
   return obj[value];
 });

+ 175 - 182
src/views/categroyManager/insideSetting/branchManager.vue

@@ -5,144 +5,158 @@
       合作单位
     </h2>
     <transition name="el-fade-in-linear">
-    <div class="m-core" v-if="(tableList.length>0 || pageInfo.page>1)&&contextFlag || !isSearch">
-      <!-- 搜索类型 -->
-      <save-form
-        :inline="true"
-        class="searchForm"
-        ref="searchForm"
-        @submit="search"
-        @reset="onReSet"
-        :model="searchForm"
-      >
-        <el-form-item prop="search">
-          <el-input
-            v-model="searchForm.search"
-            clearable
-            placeholder="单位/乐团主管名称"
-          ></el-input>
-        </el-form-item>
-        <el-form-item prop="organId">
-          <el-select
-            v-model.trim="searchForm.organId"
-            placeholder="请选择分部"
-            filterable
-            clearable
-          >
-            <el-option
-              v-for="item in selects.branchs"
-              :key="item.id"
-              :label="item.name"
-              :value="item.id"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item prop="isEnable">
-          <el-select
-            v-model.trim="searchForm.isEnable"
-            placeholder="请选择状态"
-            filterable
-            clearable
-          >
-            <el-option label="开启" :value="true"></el-option>
-            <el-option label="关闭" :value="false"></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item>
-          <el-button native-type="submit" type="danger">搜索</el-button>
-          <el-button native-type="reset" type="primary">重置</el-button>
-          <!-- export/isSettlementCourseSalarys  -->
-          <el-button
-            @click="onExport"
-            v-permission="'export/cooperationOrgan'"
-            type="primary"
-            >导出</el-button
-          >
-        </el-form-item>
-      </save-form>
-      <el-button
-        @click="openTeaching('create')"
-        v-permission="'cooperationOrgan/add'"
-        type="primary"
-        style="margin-bottom: 20px"
+      <div
+        class="m-core"
+        v-if="((tableList.length > 0 || pageInfo.page > 1) && contextFlag) || !isSearch"
       >
-        新建
-      </el-button>
-
-      <!-- 列表 -->
-      <div class="tableWrap">
-        <el-table
-          :data="tableList"
-          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+        <!-- 搜索类型 -->
+        <save-form
+          :inline="true"
+          class="searchForm"
+          ref="searchForm"
+          @submit="search"
+          @reset="onReSet"
+          :model="searchForm"
         >
-          <el-table-column align="center" prop="id" label="单位编号">
-          </el-table-column>
-          <el-table-column align="center" prop="name" label="单位名称">
-          </el-table-column>
-          <el-table-column align="center" prop="name" label="所属分部">
-            <template slot-scope="scope">
-              <div>
-                {{ scope.row.organization.name }}
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column align="center" prop="realName" label="乐团主管">
-          </el-table-column>
-          <!-- <el-table-column align="center" prop="linkman" label="联系人">
+          <el-form-item prop="search">
+            <el-input
+              v-model="searchForm.search"
+              clearable
+              placeholder="单位/乐团主管名称"
+            ></el-input>
+          </el-form-item>
+          <el-form-item prop="organId">
+            <el-select
+              v-model.trim="searchForm.organId"
+              placeholder="请选择分部"
+              filterable
+              clearable
+            >
+              <el-option
+                v-for="item in selects.branchs"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item prop="isEnable">
+            <el-select
+              v-model.trim="searchForm.isEnable"
+              placeholder="请选择状态"
+              filterable
+              clearable
+            >
+              <el-option label="开启" :value="true"></el-option>
+              <el-option label="关闭" :value="false"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item>
+            <el-button native-type="submit" type="danger">搜索</el-button>
+            <el-button native-type="reset" type="primary">重置</el-button>
+            <!-- export/isSettlementCourseSalarys  -->
+            <el-button
+              @click="onExport"
+              v-permission="'export/cooperationOrgan'"
+              type="primary"
+              >导出</el-button
+            >
+          </el-form-item>
+        </save-form>
+        <el-button
+          @click="openTeaching('create')"
+          v-permission="'cooperationOrgan/add'"
+          type="primary"
+          style="margin-bottom: 20px"
+        >
+          新建
+        </el-button>
+
+        <!-- 列表 -->
+        <div class="tableWrap">
+          <el-table
+            :data="tableList"
+            :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+          >
+            <el-table-column align="center" prop="id" label="单位编号"> </el-table-column>
+            <el-table-column align="center" prop="name" label="单位名称">
+            </el-table-column>
+            <el-table-column align="center" prop="logo" label="logo">
+              <template slot-scope="scope">
+                <el-image
+                  style="width: 100px; height: 100px"
+                  :src="scope.row.logo"
+                  :preview-src-list="[scope.row.logo]"
+                >
+                </el-image>
+              </template>
+            </el-table-column>
+            <el-table-column align="center" prop="name" label="所属分部">
+              <template slot-scope="scope">
+                <div>
+                  {{ scope.row.organization.name }}
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column align="center" prop="realName" label="乐团主管">
+            </el-table-column>
+            <!-- <el-table-column align="center" prop="linkman" label="联系人">
           </el-table-column>
           <el-table-column align="center" prop="job" label="职位">
           </el-table-column>
           <el-table-column align="center" prop="mobileNo" label="手机号">
           </el-table-column> -->
-          <el-table-column
-            align="center"
-            label="是否全职资源"
-            v-if="tenantId == 1"
-          >
-            <template slot-scope="scope">
-              {{ scope.row.fullJobResource ? "是" : "否" }}
-            </template>
-          </el-table-column>
-          <el-table-column align="center" label="状态">
-            <template slot-scope="scope">
-              <div>
-                {{ scope.row.isEnable ? "开启" : "关闭" }}
-              </div>
-            </template>
-          </el-table-column>
+            <el-table-column align="center" label="是否全职资源" v-if="tenantId == 1">
+              <template slot-scope="scope">
+                {{ scope.row.fullJobResource ? "是" : "否" }}
+              </template>
+            </el-table-column>
+            <el-table-column align="center" label="状态">
+              <template slot-scope="scope">
+                <div>
+                  {{ scope.row.isEnable ? "开启" : "关闭" }}
+                </div>
+              </template>
+            </el-table-column>
 
-          <el-table-column align="center" label="操作" width="140px">
-            <template slot-scope="scope">
-              <el-button @click="openTeaching('look', scope.row)" type="text"
-                >查看</el-button
-              >
-              <el-button
-                @click="openTeaching('update', scope.row)"
-                v-permission="'cooperationOrgan/update'"
-                type="text"
-                >修改</el-button
-              >
-              <el-button
-                @click="onDelete(scope.row)"
-                v-permission="'cooperationOrgan/del'"
-                type="text"
-                >删除</el-button
-              >
-            </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          sync
-          :total.sync="pageInfo.total"
-          :page.sync="pageInfo.page"
-          :limit.sync="pageInfo.limit"
-          :page-sizes="pageInfo.page_size"
-          @pagination="getList"
-        />
+            <el-table-column align="center" label="操作" width="140px">
+              <template slot-scope="scope">
+                <el-button @click="openTeaching('look', scope.row)" type="text"
+                  >查看</el-button
+                >
+                <el-button
+                  @click="openTeaching('update', scope.row)"
+                  v-permission="'cooperationOrgan/update'"
+                  type="text"
+                  >修改</el-button
+                >
+                <el-button
+                  @click="onDelete(scope.row)"
+                  v-permission="'cooperationOrgan/del'"
+                  type="text"
+                  >删除</el-button
+                >
+              </template>
+            </el-table-column>
+          </el-table>
+          <pagination
+            sync
+            :total.sync="pageInfo.total"
+            :page.sync="pageInfo.page"
+            :limit.sync="pageInfo.limit"
+            :page-sizes="pageInfo.page_size"
+            @pagination="getList"
+          />
+        </div>
       </div>
-    </div>
 
-    <emptyPage @submit="openTeaching('create')" title='合作单位' btnTitle='新建合作单位' :context='context' v-if="!(tableList.length>0 || pageInfo.page>1)&&contextFlag&&isSearch" />
+      <emptyPage
+        @submit="openTeaching('create')"
+        title="合作单位"
+        btnTitle="新建合作单位"
+        :context="context"
+        v-if="!(tableList.length > 0 || pageInfo.page > 1) && contextFlag && isSearch"
+      />
     </transition>
     <el-dialog
       :title="formTitle[formActionTitle]"
@@ -165,22 +179,14 @@
         >
         </el-alert>
         <el-row>
-          <el-form-item
-            label="单位名称"
-            prop="name"
-            :label-width="formLabelWidth"
-          >
+          <el-form-item label="单位名称" prop="name" :label-width="formLabelWidth">
             <el-input
               v-model.trim="form.name"
               :disabled="basdisabled"
               autocomplete="off"
             ></el-input>
           </el-form-item>
-          <el-form-item
-            label="所属分部"
-            prop="organId"
-            :label-width="formLabelWidth"
-          >
+          <el-form-item label="所属分部" prop="organId" :label-width="formLabelWidth">
             <el-select
               :disabled="basdisabled"
               v-model.trim="form.organId"
@@ -244,10 +250,7 @@
             prop="fullJobResource"
             :label-width="formLabelWidth"
           >
-            <el-select
-              :disabled="basdisabled"
-              v-model.trim="form.fullJobResource"
-            >
+            <el-select :disabled="basdisabled" v-model.trim="form.fullJobResource">
               <el-option label="是" :value="1"></el-option>
               <el-option label="否" :value="0"></el-option>
             </el-select>
@@ -275,9 +278,7 @@
             ></i>
           </div>
           <el-form-item
-            :rules="[
-              { required: true, message: '请输入联系人', trigger: 'blur' },
-            ]"
+            :rules="[{ required: true, message: '请输入联系人', trigger: 'blur' }]"
             :label="'联系人姓名'"
             :prop="'cooperationOrganLinkmanList.' + index + '.linkman'"
             :label-width="formLabelWidth"
@@ -289,9 +290,7 @@
             ></el-input>
           </el-form-item>
           <el-form-item
-            :rules="[
-              { required: true, message: '请输入职位', trigger: 'blur' },
-            ]"
+            :rules="[{ required: true, message: '请输入职位', trigger: 'blur' }]"
             :label="'联系人职位'"
             :prop="'cooperationOrganLinkmanList.' + index + '.job'"
             :label-width="formLabelWidth"
@@ -368,9 +367,9 @@ import cleanDeep from "clean-deep";
 import { isvalidPhone } from "@/utils/validate";
 import { Export } from "@/utils/downLoadFile";
 import { getOrganRole } from "@/api/buildTeam";
-import emptyPage from '@/components/emptyPage'
+import emptyPage from "@/components/emptyPage";
 import qs from "qs";
-import { isBoolean } from '@rongcloud/engine';
+import { isBoolean } from "@rongcloud/engine";
 let validPhone = (rule, value, callback) => {
   if (!value) {
     callback(new Error("请输入电话号码"));
@@ -382,7 +381,7 @@ let validPhone = (rule, value, callback) => {
 };
 export default {
   name: "branchManager",
-  components: { pagination,emptyPage },
+  components: { pagination, emptyPage },
   data() {
     return {
       searchForm: {
@@ -423,28 +422,23 @@ export default {
         ],
       },
       rules: {
-        name: [
-          { required: true, message: "请输入教学点名称", trigger: "blur" },
-        ],
+        name: [{ required: true, message: "请输入教学点名称", trigger: "blur" }],
 
-        organId: [
-          { required: true, message: "请选择所属分部", trigger: "change" },
-        ],
+        organId: [{ required: true, message: "请选择所属分部", trigger: "change" }],
         educationUserId: [
           { required: true, message: "请选择乐团主管", trigger: "change" },
         ],
         fullJobResource: [
           { required: true, message: "请选择是否全职资源", trigger: "change" },
         ],
-        isEnable: [
-          { required: true, message: "请选择状态", trigger: "change" },
-        ],
+        isEnable: [{ required: true, message: "请选择状态", trigger: "change" }],
       },
       basdisabled: false,
       actionRow: null,
       tenantId: null,
-      context:'合作单位即为合作学校,可以为本机构下的各个分部创建合作单位,创建乐团时需选择合作单位用于区分和管理各合作方的乐团。若本机构乐团无合作方,可将本机构创建为合作单位,并在创建乐团时选择。',
-      contextFlag:false
+      context:
+        "合作单位即为合作学校,可以为本机构下的各个分部创建合作单位,创建乐团时需选择合作单位用于区分和管理各合作方的乐团。若本机构乐团无合作方,可将本机构创建为合作单位,并在创建乐团时选择。",
+      contextFlag: false,
     };
   },
   async mounted() {
@@ -491,7 +485,7 @@ export default {
       this.$refs.searchForm.resetFields();
       this.$refs.searchForm.save();
       this.search();
-      this.$forceUpdate()
+      this.$forceUpdate();
     },
     onExport() {
       Export(
@@ -548,7 +542,7 @@ export default {
       }).then((res) => {
         if (res.code == 200 && res.data) {
           // this.contextFlag = res.data.rows.length>0?true:false
-         this.contextFlag = true;
+          this.contextFlag = true;
           this.tableList = res.data.rows;
           this.pageInfo.total = res.data.total;
         }
@@ -556,7 +550,7 @@ export default {
     },
     openTeaching(type, rows) {
       // 重置数据
-        this.teachingStatus = true;
+      this.teachingStatus = true;
       this.actionRow = { ...rows } || null;
 
       this.formActionTitle = type;
@@ -587,11 +581,7 @@ export default {
                   mobileNo: "",
                 },
               ];
-        this.$set(
-          this.form,
-          "cooperationOrganLinkmanList",
-          cooperationOrganLinkmanList
-        );
+        this.$set(this.form, "cooperationOrganLinkmanList", cooperationOrganLinkmanList);
         this.basdisabled = false;
       } else if (type == "look") {
         this.changeOrgan(rows.organId);
@@ -607,12 +597,11 @@ export default {
           isEnable: rows.isEnable,
           educationUserId: rows.educationUserId,
         };
-        let cooperationOrganLinkmanList = rows.cooperationOrganLinkmanList.length>0?[...rows.cooperationOrganLinkmanList]:[];
-        this.$set(
-          this.form,
-          "cooperationOrganLinkmanList",
-         cooperationOrganLinkmanList
-        );
+        let cooperationOrganLinkmanList =
+          rows.cooperationOrganLinkmanList.length > 0
+            ? [...rows.cooperationOrganLinkmanList]
+            : [];
+        this.$set(this.form, "cooperationOrganLinkmanList", cooperationOrganLinkmanList);
         this.basdisabled = true;
         // 查看
       } else {
@@ -679,12 +668,16 @@ export default {
       }
     },
   },
-  computed:{
-    isSearch(){
-
-      return !this.searchForm.search&&!this.searchForm.organId&& !isBoolean(this.searchForm.isEnable)&&!this.searchForm.isEnable
-    }
-  }
+  computed: {
+    isSearch() {
+      return (
+        !this.searchForm.search &&
+        !this.searchForm.organId &&
+        !isBoolean(this.searchForm.isEnable) &&
+        !this.searchForm.isEnable
+      );
+    },
+  },
 };
 </script>
 <style lang="scss" scoped>

+ 10 - 0
src/views/main/constant.js

@@ -128,6 +128,16 @@ export const errorType = {
       // ...dates
     }
   },
+  SCHOOL_PATROL:{
+    name: "学校巡堂异常",
+    isError: true,
+    url: "/schoolPatrol",
+    permission: "/schoolPatrol",
+    always: true,
+    query: {
+      handleStatus: false
+    }
+  },
   MUSIC_PATROL_ITEM: {
     name: "乐团巡查事项异常",
     isError: false,

+ 167 - 34
src/views/schoolManager/accountManager.vue

@@ -13,9 +13,10 @@
         @reset="onReSet"
         ref="saveForm"
       >
-        <el-form-item>
+        <el-form-item prop="keyword">
           <el-input
-            v-model.trim="searchForm.search"
+            v-model.trim="searchForm.keyword"
+            class="seachInput"
             clearable
             @keyup.enter.native="
               (e) => {
@@ -44,9 +45,9 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item prop="search">
+        <el-form-item prop="schoolId">
           <el-select
-            v-model.trim="searchForm.search"
+            v-model.trim="searchForm.schoolId"
             :disabled="!searchForm.organId"
             filterable
             clearable
@@ -72,39 +73,74 @@
           :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
           :data="tableList"
         >
-          <el-table-column align="center" prop="studentId" label="编号"></el-table-column>
-          <el-table-column align="center" prop="studentId" label="分部"></el-table-column>
+          <el-table-column align="center" prop="id" label="编号"></el-table-column>
+          <el-table-column align="center" prop="organName" label="分部"></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="schoolName"
             label="合作单位"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="username"
             label="老师姓名"
           ></el-table-column>
+          <el-table-column align="center" prop="userType" label="账号类型">
+            <template slot-scope="scope">
+              <div>{{ scope.row.userType | schoolUserType }}</div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="status" label="账号状态">
+            <template slot-scope="scope">
+              <div>{{ scope.row.status | schoolUserStatus }}</div>
+            </template>
+          </el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
-            label="账号类型"
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="studentId"
-            label="账号状态"
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="studentId"
+            prop="mobile"
             label="联系电话"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="createTime"
             label="注册日期"
           ></el-table-column>
-          <el-table-column align="center" prop="studentId" label="操作"></el-table-column>
+          <el-table-column align="center" prop="studentId" label="操作">
+            <template slot-scope="scope">
+              <div>
+                <auth auths="schoolStaff/update">
+                  <el-button
+                    type="text"
+                    v-if="scope.row.status == 1"
+                    @click="updateStatus(scope.row)"
+                    >冻结</el-button
+                  >
+                  <el-button
+                    type="text"
+                    v-if="scope.row.status == 9"
+                    @click="updateStatus(scope.row)"
+                    >启用</el-button
+                  >
+                </auth>
+                <auth auths="schoolStaff/remove">
+                  <el-button
+                    type="text"
+                    v-if="scope.row.status == 9"
+                    @click="removeTeacherCount(scope.row)"
+                    >删除</el-button
+                  ></auth
+                >
+                <auth auths="schoolStaff/resetPassword">
+                  <el-button
+                    type="text"
+                    v-if="scope.row.status == 9"
+                    @click="resetPwd(scope.row)"
+                    >重置密码</el-button
+                  ></auth
+                >
+              </div>
+            </template>
+          </el-table-column>
         </el-table>
         <pagination
           sync
@@ -127,14 +163,20 @@ import load from "@/utils/loading";
 import { getTimes } from "@/utils";
 import { queryByOrganId } from "@/api/systemManage";
 import { courseType, courseListType } from "@/utils/searchArray";
+import {
+  getSchoolStaff,
+  schoolStaffUpdate,
+  schoolStaffRemove,
+  schoolStaffResetPwd,
+} from "./api";
 export default {
   components: { pagination },
   data() {
     return {
       searchForm: {
-        search: null,
+        keyword: null,
         organId: null,
-        courseType: null,
+        schoolId: null,
       },
       courseType,
       tableList: [],
@@ -158,21 +200,106 @@ export default {
     this.init();
   },
   methods: {
-    init() {},
-    getList() {
-      let { timer, ...rest } = this.searchForm;
-      let params = {
-        ...rest,
-        page: this.rules.page,
-        rows: this.rules.limit,
-        ...getTimes(timer, ["startTime", "endTime"]),
-      };
+    init() {
+      this.getList();
+    },
+    async getList() {
+      try {
+        let { timer, ...rest } = this.searchForm;
+        let params = {
+          ...rest,
+          page: this.rules.page,
+          rows: this.rules.limit,
+          ...getTimes(timer, ["startTime", "endTime"]),
+        };
+        const res = await getSchoolStaff({
+          ...params,
+          page: this.rules.page,
+          rows: this.rules.limit,
+        });
+        this.tableList = res.data.rows;
+        this.rules.total = res.data.total;
+      } catch (e) {
+        console.log(e);
+      }
     },
     search() {
       this.rules.page = 1;
       this.getList();
     },
-    onReSet() {},
+    onReSet() {
+      this.$nextTick(() => {
+        this.getList();
+      });
+    },
+    async updateStatus(row) {
+      let str = "";
+      let status = "";
+      if (row.status == 1) {
+        // 冻结
+        str = `是否冻结"${row.username}"该老师账号`;
+        status = "9";
+      } else {
+        // 启用
+        str = `是否启用"${row.username}"该老师账号`;
+        status = "1";
+      }
+      this.$confirm(str, "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(async () => {
+          try {
+            const res = await schoolStaffUpdate({ id: row.id, status });
+            if (row.status == 1) {
+              this.$message.success("冻结成功");
+            } else {
+              this.$message.success("启用成功");
+            }
+
+            this.getList();
+          } catch (e) {
+            console.log(e);
+          }
+        })
+        .catch((e) => {
+          console.log(e);
+        });
+      console.log(row);
+    },
+    async removeTeacherCount(row) {
+      try {
+        await this.$confirm(`是否删除"${row.username}"该老师`, "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        });
+        const res = await schoolStaffRemove({ id: row.id });
+        this.$message.success("删除成功");
+        this.getList();
+      } catch (e) {
+        console.log(e);
+      }
+    },
+    async resetPwd(row) {
+      try {
+        await this.$confirm(
+          `是否删除"${row.username}"该老师的密码重置为gym+手机号后4位`,
+          "提示",
+          {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          }
+        );
+        const res = await schoolStaffResetPwd({ userId: row.userId });
+        this.$message.success("重置成功");
+        this.getList();
+      } catch (error) {
+        console.log(error);
+      }
+    },
   },
   watch: {
     "searchForm.organId"(val) {
@@ -194,4 +321,10 @@ export default {
   },
 };
 </script>
-<style lang="scss" scoped></style>
+<style lang="scss">
+.seachInput {
+  .el-input__inner {
+    width: 200px !important;
+  }
+}
+</style>

+ 57 - 0
src/views/schoolManager/api.js

@@ -0,0 +1,57 @@
+import request2 from '@/utils/request2'
+
+export const getSchoolStaff = data => request2({
+  url: '/api-web/schoolStaff/page',
+  data,
+  method: 'post',
+})
+
+
+// 启用停用
+export const schoolStaffUpdate = data => request2({
+  url: '/api-web/schoolStaff/update',
+  data,
+  method: 'post',
+})
+
+// 删除
+export const schoolStaffRemove = data => request2({
+  url: '/api-web/schoolStaff/remove',
+  data,
+  params:data,
+  method: 'post',
+})
+// 重置密码
+export const schoolStaffResetPwd = data => request2({
+  url: '/api-web/schoolStaff/resetPassword',
+  data,
+  params:data,
+  method: 'post',
+})
+
+
+// 巡堂列表
+export const getCoursePatrolEvaluation = data => request2({
+  url: '/api-web/coursePatrolEvaluation/webPage',
+  data,
+  // params:data,
+  method: 'post',
+})
+
+
+// 巡堂详情
+export const getCoursePatrolDetail = data => request2({
+  url: `/api-web/coursePatrolEvaluation/detail/${data}`,
+  data,
+  // params:data,
+  method: 'get',
+})
+
+
+// 处理意见
+export const submitCoursePatrolEvaluation = data => request2({
+  url: `/api-web/coursePatrolEvaluation/update`,
+  data,
+  // params:data,
+  method: 'post',
+})

+ 171 - 19
src/views/schoolManager/modals/patrolModels.vue

@@ -1,28 +1,48 @@
 <template>
   <div class="patrolWrap">
     <div class="top">
-      <p class="topTimer">上课时间:2023-03-16 13:00-14:00</p>
-      <p class="topStatus">不合格</p>
+      <p class="topTimer">
+        上课时间: {{ detail.startClassTime | formatTimer }}
+        {{ detail.startClassTime ? detail.startClassTime.substr(11, 5) : "" }}-{{
+          detail.endClassTime ? detail.endClassTime.substr(11, 5) : ""
+        }}
+      </p>
+      <p :class="['topStatus', detail.evaluateStatus == 'UNQUALIFIED' ? 'red' : null]">
+        {{ detail.evaluateStatus | evaluateStatus }}
+      </p>
     </div>
     <div class="teacherInfo">
-      <el-image :src="avatar" class="teacherAvatar"></el-image>
+      <el-image
+        :src="detail.teacherAvatar ? detail.teacherAvatar : avatar"
+        class="teacherAvatar"
+      ></el-image>
       <div class="teacherText">
-        <p class="courseName">声部课 · 上低音号</p>
-        <p class="teacherName">老师姓名</p>
+        <p class="courseName">{{ detail.courseName }}</p>
+        <p class="teacherName">{{ detail.teacherName }}</p>
       </div>
     </div>
-    <div class="qusestList">
+    <div class="qusestList" v-if="questList.length > 0">
       <h4>问题类型</h4>
       <div class="qusestWrap">
         <div class="questItem" v-for="(item, index) in questList" :key="index">
           {{ item }}
         </div>
       </div>
-      <p class="questMsg">没有组织学员将乐器箱包放在指定地点</p>
+      <p class="questMsg">{{ detail.problemDesc }}</p>
     </div>
     <div class="infoList">
       <h4>照片&视频</h4>
       <div class="infoWrap">
+        <div
+          class="infoItem"
+          fit="cover"
+          v-for="(item, index) in videoList"
+          :key="index + 'video'"
+          :src="item"
+          @click="lookVideo(item)"
+        >
+          <i class="el-icon-video-play linkIcon"></i>
+        </div>
         <el-image
           fit="cover"
           class="infoItem"
@@ -35,18 +55,49 @@
     </div>
     <div class="froms">
       <h4>处理意见</h4>
-      <el-input v-model="opinions" type="textarea" :rows="3"></el-input>
+      <el-form :model.sync="form" ref="form">
+        <el-form-item
+          prop="opinions"
+          :rules="[{ required: true, message: '请输入处理意见' }]"
+        >
+          <el-input v-model="form.opinions" type="textarea" :rows="3"></el-input>
+        </el-form-item>
+      </el-form>
     </div>
+
+    <el-dialog
+      title="查看视频"
+      width="680px"
+      append-to-body
+      :visible.sync="videoVisible"
+      v-if="videoVisible"
+    >
+      <!-- activeUrl -->
+      <div class="activeVideoWrap">
+        <vue-core-video-player
+          style="width: 640px"
+          :src="activeVideo"
+          ref="dialogVideo"
+          Controls="auto"
+          :autoplay="false"
+        >
+          您的浏览器不支持视频播放
+        </vue-core-video-player>
+      </div>
+    </el-dialog>
   </div>
 </template>
 <script>
 import avatar from "@/assets/images/base/woman.png";
+import { getCoursePatrolDetail, submitCoursePatrolEvaluation } from "../api";
+import { problemType } from "@/constant/index";
 export default {
+  props: ["id"],
   data() {
     return {
       avatar,
-      opinions: "",
-      id: "",
+      form: { opinions: "" },
+
       questList: [
         "课堂纪律",
         "放学组织",
@@ -56,17 +107,103 @@ export default {
         "专业能力",
         "其他",
       ],
-      imgList: [
-        "https://ks3-cn-beijing.ksyuncs.com/daya/1665455361674QQ截图20221011102856.jpg",
-        "https://ks3-cn-beijing.ksyuncs.com/daya/1665455361674QQ截图20221011102856.jpg",
-        "https://ks3-cn-beijing.ksyuncs.com/daya/1665455361674QQ截图20221011102856.jpg",
-        "https://ks3-cn-beijing.ksyuncs.com/daya/1665455361674QQ截图20221011102856.jpg",
-        "https://ks3-cn-beijing.ksyuncs.com/daya/1665455361674QQ截图20221011102856.jpg",
-      ],
+      imgList: [],
+      videoList: [],
+      detail: {
+        attachmentUrl: "",
+        cooperationOrganId: "",
+        cooperationOrganName: "",
+        courseDate: "",
+        courseName: "",
+        courseScheduleId: "",
+        courseStatus: "",
+        courseType: "",
+        endClassTime: "",
+        evaluateFlag: "",
+        evaluateStatus: "",
+        handleStatus: "",
+        id: "",
+        organId: "",
+        organName: "",
+        problemDesc: "",
+        problemType: "",
+        startClassTime: "",
+        suggestion: "",
+        teacherAvatar: "",
+        teacherId: "",
+        teacherName: "",
+        userId: "",
+      },
+      activeVideo: null,
+      videoVisible: false,
     };
   },
-  mounted() {},
-  methods: {},
+  mounted() {
+    this.getDetail();
+  },
+  methods: {
+    async getDetail() {
+      try {
+        const res = await getCoursePatrolDetail(this.id);
+        this.detail = { ...res.data };
+        const wrapList = this.detail.attachmentUrl.split(",");
+        wrapList.forEach((item) => {
+          if (this.checkFile(item)) {
+            this.imgList.push(item);
+          } else {
+            this.videoList.push(item);
+          }
+        });
+
+        this.questList = this.detail.problemType
+          ? this.detail.problemType.split(",").map((item) => {
+              return problemType[item];
+            })
+          : [];
+
+        this.form.opinions = this.detail.suggestion;
+      } catch (e) {
+        console.log(e);
+      }
+    },
+    checkFile(fileValue, type = "image") {
+      const index = fileValue.indexOf("."); //(考虑严谨用lastIndexOf(".")得到)得到"."在第几位
+      const fileValueSuffix = fileValue.substring(index); //截断"."之前的,得到后缀
+      if (type == "video") {
+        if (!/(.*)\.(mp4|rmvb|avi|ts)$/.test(fileValueSuffix)) {
+          //根据后缀,判断是否符合视频格式
+          return false;
+        }
+      }
+      if (type == "image") {
+        if (!/(.*)\.(gif|jpg|jpeg|png|GIF|JPG|PNG|svg)$/.test(fileValueSuffix)) {
+          //根据后缀,判断是否符合图片格式
+          return false;
+        }
+      }
+      return true;
+    },
+    lookVideo(src) {
+      this.activeVideo = src;
+      this.videoVisible = true;
+    },
+    async submit() {
+      this.$refs.form.validate(async (flag) => {
+        if (flag) {
+          try {
+            const res = await submitCoursePatrolEvaluation({
+              suggestion: this.form.opinions,
+              id: this.id,
+            });
+            this.$message.success("处理成功");
+            this.$emit("close");
+          } catch (e) {
+            console.log(e);
+          }
+        }
+      });
+    },
+  },
 };
 </script>
 <style lang="scss" scoped>
@@ -142,6 +279,18 @@ export default {
       height: 100px;
       margin-right: 10px;
       margin-bottom: 10px;
+      position: relative;
+      background: #000;
+      cursor: pointer;
+      .linkIcon {
+        font-size: 25px;
+        position: absolute;
+        top: 50%;
+        margin-top: -13px;
+        left: 50%;
+        margin-left: -13px;
+        color: #fff;
+      }
     }
   }
 }
@@ -150,4 +299,7 @@ export default {
     margin-bottom: 14px;
   }
 }
+.red {
+  color: #f45753 100%;
+}
 </style>

+ 151 - 68
src/views/schoolManager/patrol.vue

@@ -13,9 +13,10 @@
         @reset="onReSet"
         ref="saveForm"
       >
-        <el-form-item>
+        <el-form-item prop="keyword">
           <el-input
-            v-model.trim="searchForm.search"
+            class="seachInput"
+            v-model.trim="searchForm.keyword"
             clearable
             @keyup.enter.native="
               (e) => {
@@ -24,7 +25,7 @@
                 search();
               }
             "
-            placeholder="关键字"
+            placeholder="老师姓名/编号/手机号"
           ></el-input>
         </el-form-item>
         <el-form-item prop="organId">
@@ -44,9 +45,9 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item prop="search">
+        <el-form-item prop="cooperationOrganId">
           <el-select
-            v-model.trim="searchForm.search"
+            v-model.trim="searchForm.cooperationOrganId"
             :disabled="!searchForm.organId"
             filterable
             clearable
@@ -60,7 +61,7 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item>
+        <el-form-item prop="courseType">
           <el-select
             v-model.trim="searchForm.courseType"
             clearable
@@ -75,49 +76,45 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item>
+        <el-form-item prop="evaluateStatus">
           <el-select
-            v-model.trim="searchForm.courseType"
+            v-model.trim="searchForm.evaluateStatus"
             clearable
             filterable
             placeholder="综合评价"
           >
             <el-option
-              v-for="(item, index) in courseType"
+              v-for="(item, index) in evaluateStatusList"
               :key="index"
               :value="item.value"
               :label="item.label"
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item>
+        <el-form-item prop="problemType">
           <el-select
-            v-model.trim="searchForm.courseType"
+            v-model.trim="searchForm.problemType"
             clearable
             filterable
             placeholder="问题类型"
           >
             <el-option
-              v-for="(item, index) in courseType"
+              v-for="(item, index) in problemTypeList"
               :key="index"
               :value="item.value"
               :label="item.label"
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item>
+        <el-form-item prop="handleStatus">
           <el-select
-            v-model.trim="searchForm.courseType"
+            v-model.trim="searchForm.handleStatus"
             clearable
             filterable
             placeholder="处理状态"
           >
-            <el-option
-              v-for="(item, index) in courseType"
-              :key="index"
-              :value="item.value"
-              :label="item.label"
-            ></el-option>
+            <el-option :value="true" label="已处理"></el-option>
+            <el-option :value="false" label="未处理"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item prop="createTimer">
@@ -142,53 +139,66 @@
           :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
           :data="tableList"
         >
-          <el-table-column align="center" prop="studentId" label="编号"></el-table-column>
-          <el-table-column align="center" prop="studentId" label="分部"></el-table-column>
+          <el-table-column align="center" prop="id" label="编号"></el-table-column>
+          <el-table-column align="center" prop="organName" label="分部"></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="cooperationOrganName"
             label="合作单位"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="teacherName"
             label="老师姓名"
           ></el-table-column>
+          <el-table-column align="center" prop="courseType" label="课程类型">
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.courseType | courseTypeFormat }}
+              </div>
+            </template>
+          </el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
-            label="课程类型"
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="studentId"
+            prop="courseScheduleId"
             label="课程编号"
           ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="studentId"
-            label="综合评价"
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="studentId"
-            label="问题类型"
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="studentId"
-            label="处理状态"
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="studentId"
-            label="课程时间"
-          ></el-table-column>
+          <el-table-column align="center" prop="evaluateStatus" label="综合评价">
+            <template slot-scope="scope">
+              <div>{{ scope.row.evaluateStatus | evaluateStatus }}</div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="problemType" label="问题类型">
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.problemType | problemType }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="handleStatus" label="处理状态">
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.handleStatus ? "已处理" : "未处理" }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="studentId" label="课程时间">
+            <template slot-scope="scope">
+              <div>
+                <p>{{ scope.row.startClassTime | formatTimer }}</p>
+                {{
+                  scope.row.startClassTime ? scope.row.startClassTime.substr(11, 5) : ""
+                }}-{{
+                  scope.row.endClassTime ? scope.row.endClassTime.substr(11, 5) : ""
+                }}
+              </div>
+            </template>
+          </el-table-column>
           <el-table-column align="center" prop="studentId" label="操作">
             <template slot-scope="scope">
               <div>
-                <el-button type="text" @click="lookDetail">详情</el-button>
-                <el-button type="text" @click="handleOpinion">处理意见</el-button>
+                <!-- <el-button type="text">详情</el-button> -->
+                <el-button type="text" @click="lookDetail(scope.row)">处理意见</el-button>
               </div>
             </template>
           </el-table-column>
@@ -203,11 +213,25 @@
         />
       </div>
     </div>
-    <el-dialog title="详情" width="450px" :visible.sync="dialogFormVisible">
-      <patrolModels />
+    <el-dialog
+      :title="activeRow.handleStatus ? '详情' : '处理意见'"
+      width="450px"
+      :visible.sync="dialogFormVisible"
+    >
+      <patrolModels
+        :id="activeRow.id"
+        v-if="dialogFormVisible"
+        ref="patrolModelsRef"
+        @close="
+          () => {
+            dialogFormVisible = false;
+            getList();
+          }
+        "
+      />
       <span slot="footer" class="dialog-footer">
         <el-button @click="dialogFormVisible = false">取 消</el-button>
-        <el-button @click="dialogFormVisible = false" type="primary">确 定</el-button>
+        <el-button @click="submitMessage" type="primary">确 定</el-button>
       </span>
     </el-dialog>
   </div>
@@ -220,21 +244,34 @@ import pagination from "@/components/Pagination/index";
 import load from "@/utils/loading";
 import { getTimes } from "@/utils";
 import { queryByOrganId } from "@/api/systemManage";
-import { courseType, courseListType } from "@/utils/searchArray";
+import { getCoursePatrolEvaluation } from "./api";
+import {
+  courseType,
+  courseListType,
+  evaluateStatusList,
+  problemTypeList,
+} from "@/utils/searchArray";
 import patrolModels from "./modals/patrolModels";
 export default {
   components: { pagination, patrolModels },
   data() {
     return {
       searchForm: {
-        search: null,
+        keyword: null,
         organId: null,
+        cooperationOrganId: null,
         courseType: null,
+        evaluateStatus: null,
+        problemType: null,
+        handleStatus: null,
+        createTimer: null,
       },
       courseType,
       tableList: [{}],
       organList: [],
       cooperationList: [],
+      evaluateStatusList,
+      problemTypeList,
       rules: {
         // 分页规则
         limit: 10, // 限制显示条数
@@ -243,6 +280,7 @@ export default {
         page_size: [10, 20, 40, 50], // 选择限制显示条数
       },
       dialogFormVisible: false,
+      activeRow: { handleStatus: false },
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
@@ -250,32 +288,71 @@ export default {
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {
     // 获取分部
+    if (this.$route.query.handleStatus) {
+      console.log(this.$route.query.handleStatus);
+      this.$set(
+        this.searchForm,
+        "handleStatus",
+        Boolean(this.$route.query.handleStatus * 1)
+      );
+    }
     this.$store.dispatch("setBranchs");
     this.init();
   },
   methods: {
-    init() {},
-    getList() {
-      let { timer, ...rest } = this.searchForm;
-      let params = {
-        ...rest,
-        page: this.rules.page,
-        rows: this.rules.limit,
-        ...getTimes(timer, ["startTime", "endTime"]),
-      };
+    init() {
+      this.getList();
+    },
+    async getList() {
+      try {
+        let { createTimer, ...rest } = this.searchForm;
+        let params = {
+          ...rest,
+          page: this.rules.page,
+          rows: this.rules.limit,
+          ...getTimes(createTimer, ["startTime", "endTime"]),
+        };
+        const res = await getCoursePatrolEvaluation({
+          ...params,
+          page: this.rules.page,
+          rows: this.rules.limit,
+        });
+        this.tableList = res.data.rows;
+        this.rules.total = res.data.total;
+      } catch (error) {
+        console.log(error);
+      }
     },
     search() {
       this.rules.page = 1;
       this.getList();
     },
-    onReSet() {},
+    submitMessage() {
+      this.$refs.patrolModelsRef.submit();
+    },
+    onReSet() {
+      this.$nextTick(() => {
+        this.getList();
+      });
+    },
     lookDetail(row) {
+      this.activeRow = row;
       this.dialogFormVisible = true;
       console.log("查看详情");
     },
     handleOpinion(row) {
       console.log("处理意见");
     },
+    getProblemType(type) {
+      if (type) {
+        const arrList = type.split(",");
+        arrList.map((item) => {
+          return;
+        });
+      } else {
+        return "--";
+      }
+    },
   },
   watch: {
     "searchForm.organId"(val) {
@@ -297,4 +374,10 @@ export default {
   },
 };
 </script>
-<style lang="scss" scoped></style>
+<style lang="scss">
+.seachInput {
+  .el-input__inner {
+    width: 200px !important;
+  }
+}
+</style>

Some files were not shown because too many files changed in this diff