plg 4 сар өмнө
parent
commit
34c6d40c70

BIN
src/assets/img/report/1.png


BIN
src/assets/img/report/2.png


BIN
src/assets/img/report/task.png


BIN
src/assets/img/report/task1.png


+ 2 - 1
src/components/ComparePlanProfession.vue

@@ -828,7 +828,8 @@ export default {
     }
 
     td.warn {
-      background: red;
+      // background: red;
+      color:red;
     }
   }
 }

+ 89 - 7
src/components/CompareUser.vue

@@ -7,7 +7,16 @@
       style="border-radius: 40px"
     >
       <div slot="title">
-        <p style="text-align: center; margin-bottom: 20px;font-size: 20px; font-weight: 700">{{userInfo.userName}}的计划列表</p>
+        <p
+          style="
+            text-align: center;
+            margin-bottom: 20px;
+            font-size: 20px;
+            font-weight: 700;
+          "
+        >
+          {{ userInfo.userName }}的计划列表
+        </p>
         <div class="table-content">
           <el-table
             :data="tableData"
@@ -31,6 +40,59 @@
             </el-table-column>
             <el-table-column prop="planEndTime" label="结束时间" align="center" width="">
             </el-table-column>
+            <el-table-column prop="enable" label="是否授权" align="center" width="">
+              <template slot-scope="scope">
+                <div
+                  style="
+                    display: flex;
+                    justify-content: center;
+                    align-items: center;
+                    height: 100%;
+                  "
+                  v-if="scope.row.enable == '1'"
+                >
+                  <!-- <img src="../../assets/img/home/isA.png" /> -->
+                  <div
+                    style="
+                      color: #00955e;
+                      border: 1px solid #577bff;
+                      line-height: 24px;
+                      padding: 0px 15px;
+                      border-radius: 20px;
+                      background: #f0f6fe;
+                      color: #3061ff;
+                    "
+                  >
+                    已授权
+                  </div>
+                </div>
+                <div
+                  style="
+                    display: flex;
+                    justify-content: center;
+                    align-items: center;
+                    height: 100%;
+                  "
+                  v-if="scope.row.enable == '0'"
+                >
+                  <div
+                    style="
+                      color: #00955e;
+                      border: 1px solid #fdb1b1;
+                      line-height: 24px;
+                      padding: 0px 15px;
+                      border-radius: 20px;
+                      background: #fef0f0;
+                      color: #e14545;
+                    "
+                  >
+                    未授权
+                  </div>
+                  <!-- <img src="../../assets/img/home/isA.png" style="width: 80px;"/> -->
+                  <!-- <div style="color: #d52121">未授权</div> -->
+                </div>
+              </template>
+            </el-table-column>
 
             <!-- <el-table-column label="操作" width="510px" align="center">
                   <template slot-scope="scope">
@@ -99,7 +161,7 @@
                 <img src="../assets/report/man.png" />
                 <div class="compare_user1_info">
                   <div>姓名:{{ userInfo.userName }}</div>
-                
+
                   <div>学号:{{ userInfo.userNo }}</div>
                   <div>测试用时:{{ useTime1 }}</div>
                 </div>
@@ -317,11 +379,12 @@
 <script>
 //引入echarts组件
 import * as echarts from "echarts";
-
+import { oSessionStorage } from "../utils/utils";
 export default {
   data() {
     return {
       userInfo: {},
+      userInfoSession: {},
       dialogVisible: false,
       compareVisible: false,
       total: 0,
@@ -515,6 +578,8 @@ export default {
   },
   methods: {
     open(val) {
+      //从缓存获取当前登录的用户信息
+      this.userInfoSession = JSON.parse(oSessionStorage.getItem("userInfo"));
       this.userInfo = val;
       this.dialogVisible = true;
       this.searchTarget();
@@ -529,6 +594,25 @@ export default {
         });
         return;
       }
+
+      //查看是否两个是否都授权了
+      // enable
+      //先判断是否是运维管理员
+      if (this.userInfoSession.roleType != 5) {
+        if (
+          !(
+            this.multipleSelection[0].enable == "1" &&
+            this.multipleSelection[1].enable == "1"
+          )
+        ) {
+          this.$message({
+            message: "请选择已授权的测试计划",
+            type: "warning",
+          });
+          return;
+        }
+      }
+
       this.compareVisible = true;
       this.queryDetail1(this.multipleSelection[0].id);
       this.queryDetail2(this.multipleSelection[1].id);
@@ -540,8 +624,7 @@ export default {
       let url = `/userRecordScore/findAllByPlanIdAndUserNo?planId=${id}&userNo=${this.userInfo.userNo}`;
       this.$http.get(url, {}, (res) => {
         if (res && res.code == 200) {
-
-          this.useTime1 = res.data.usedTime
+          this.useTime1 = res.data.usedTime;
           this.orgName1 = res.data.user.orgName;
           let a = res.data.report;
 
@@ -561,7 +644,7 @@ export default {
       let url = `/userRecordScore/findAllByPlanIdAndUserNo?planId=${id}&userNo=${this.userInfo.userNo}`;
       this.$http.get(url, {}, (res) => {
         if (res && res.code == 200) {
-          this.useTime2 = res.data.usedTime
+          this.useTime2 = res.data.usedTime;
           this.orgName2 = res.data.user.orgName;
           let a = res.data.report.filter((item) => {
             return item.isIcon == "1";
@@ -651,7 +734,6 @@ export default {
       let url = `/plan/findCompletePlanByUser?pageSize=${this.pageSize}&pageNum=${this.pageNum}&userNo=${this.userInfo.userNo}`;
       this.$http.get(url, {}, (res) => {
         if (res && res.code == 200) {
-
           this.tableData = res.data.content;
           this.total = res.data.totalElements;
         } else {

+ 100 - 13
src/components/PlanReport.vue

@@ -44,6 +44,7 @@
               v-show="this.unComplete != 0"
             />
           </div>
+          <!-- v-show="this.unComplete != 0" -->
           <div style="flex: 8" class="report_top_right_out" v-show="this.unComplete != 0">
             <div class="report_top_right">
               <div style="font-size: 16px; letter-spacing: 1px">未完成人员列表</div>
@@ -86,9 +87,15 @@
             >
             </el-pagination>
           </div>
-          <div style="flex: 4" class="report_top_right_out" v-show="this.unComplete == 0">
-            <img width="auto" src="../assets/img/report/task.png" />
-            <div style="text-align: center;margin-top:20px;font-size:16px">全部人员已完成测试</div>
+          <div
+            style="flex: 4; display: flex; flex-direction: column; align-items: center"
+            class="report_top_right_out"
+            v-show="this.unComplete == 0"
+          >
+            <img style="width: 60%" src="../assets/img/report/task.png" />
+            <div style="text-align: center; margin-top: 20px; font-size: 16px">
+              全部人员已完成测试
+            </div>
           </div>
           <div style="flex: 4" class="report_top_right_out" v-show="this.unComplete == 0">
             &nbsp;
@@ -115,9 +122,9 @@
             </div>
             <BingChart :options="options6" chartId="myPieChart6" chartName="完成度" />
           </div>
-          <div style="flex: 8" class="report_top_right_out">
+          <div style="flex: 8; margin-left: 20px" class="report_top_right_out">
             <div class="report_top_bingBo">
-              <div class="isComStyle" style="font-size: 16px;">
+              <div class="isComStyle" style="font-size: 16px; text-align: center">
                 心理异常人次统计
               </div>
             </div>
@@ -157,14 +164,38 @@
             </el-table-column>
             <el-table-column prop="orgName" label="所属组织架构" align="center" width="">
             </el-table-column>
-            <el-table-column
-              v-if="userType != '心理异常' && userType != '未完成'"
+            <el-table-column label="操作" align="center"  v-if="userType == '心理异常'">
+              <template slot-scope="scope">
+                <div v-show="scope.row.symptom == '重度'" style="display: flex;align-items: center;justify-content: center;">
+                  <img style="width: 18px;height:18px;margin-right:4px" src="../assets/img/report/1.png" alt="" />
+                  <div style="color: #d91b00">{{ scope.row.symptom }}</div>
+                </div>
+                <div v-show="scope.row.symptom == '中度'" style="display: flex;align-items: center;justify-content: center;">
+                  <img style="width: 18px;height:18px;margin-right:4px" src="../assets/img/report/2.png" alt="" />
+                  <div style="color: #f0a900">{{ scope.row.symptom }}</div>
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" align="center"  v-if="userType != '心理异常'">
+              <template slot-scope="scope">
+                <div v-show="scope.row.dimensionSymptom == '重度'" style="display: flex;align-items: center;justify-content: center;">
+                  <img style="width: 18px;height:18px;margin-right:4px" src="../assets/img/report/1.png" alt="" />
+                  <div style="color: #d91b00">{{ scope.row.dimensionSymptom }}</div>
+                </div>
+                <div v-show="scope.row.dimensionSymptom == '中度'" style="display: flex;align-items: center;justify-content: center;">
+                  <img style="width: 18px;height:18px;margin-right:4px" src="../assets/img/report/2.png" alt="" />
+                  <div style="color: #f0a900">{{ scope.row.dimensionSymptom }}</div>
+                </div>
+              </template>
+            </el-table-column>
+            <!-- <el-table-column
+              v-if="userType != '心理异常'"
               prop="dimensionSymptom"
               label="症状"
               align="center"
               width=""
             >
-            </el-table-column>
+            </el-table-column> -->
           </el-table>
         </div>
         <el-pagination
@@ -273,8 +304,25 @@
             "
           >
             <div style="flex: 1">
-              <div style="display: flex; font-size: 16px; flex-direction: column">
-                <div style="display: flex; flex: 1; flex-direction: row">
+              <div style="display: flex; font-size: 16px; flex-direction: row">
+                <div style="display: flex; flex-direction: column">
+             
+                  <span class="sex_class">{{  tabNameCurrent }}</span>
+                  <span class="sex_class">心理健康</span>
+                  <span class="sex_class">中重度{{ dime == "躯体化" ? "压力" : dime }}</span>
+                </div>
+                <div style="display: flex; flex-direction: column">
+                  <span class="sex_class">:<span style="visibility: hidden;">你</span></span>
+                  <span class="sex_class">:<span style="visibility: hidden;">你</span></span>
+                  <span class="sex_class">:<span style="visibility: hidden;">你</span></span>
+                </div>
+                <div style="display: flex; flex-direction: column">
+                  <span class="sex_class1"> {{ subValue }}&nbsp;{{ subAll }}人</span>
+                  <span class="sex_class1" style="background-color: #5470C6;text-align: center;color:#ffffff"> {{ subAll }}人</span>
+                  <span class="sex_class1" style="background-color: #FFAE00;text-align: center;color:#ffffff"> {{ subSingle }}人</span>
+                </div>
+
+                <!-- <div style="display: flex; flex: 1; flex-direction: row">
                   <div style="text-align: center; margin: 4px; font-size: 16px">
                     {{ tabNameCurrent }}:
                   </div>
@@ -341,7 +389,7 @@
                   >
                     {{ subSingle }}人
                   </div>
-                </div>
+                </div> -->
               </div>
             </div>
           </div>
@@ -1095,8 +1143,8 @@ export default {
   background-color: #f8f8f8;
 }
 .radio_group_style >>> .el-radio-button__orig-radio:checked + .el-radio-button__inner {
-  color: #000000;
-  background-color: #ffffff;
+  color: #ffffff;
+  background-color: #00bf78;
 }
 .radio_group_style >>> .el-radio-button__inner {
   background-color: #f5f7fa;
@@ -1184,6 +1232,45 @@ export default {
   flex: 6;
   .report_top_right {
     margin-bottom: 20px;
+    text-align: center;
   }
 }
+.sex_class {
+  // text-align: justify;
+  text-align-last: justify;
+  margin: 2px;
+  line-height: 24px;
+}
+// .sex_class:after {
+//   display: inline-block;
+//   width: 100%;
+//   content: "";
+//   height: 0px;
+// }
+// .sex_class:before {
+//   display: inline-block;
+//   width: 100%;
+//   content: "";
+//   height: 0px;
+// }
+// .sex_class1:before {
+//   display: inline-block;
+//   width: 100%;
+//   content: "";
+//   height: 0px;
+// }
+
+.sex_class1 {
+
+  text-align: left;
+  margin: 2px;
+  line-height: 24px;
+}
+// .sex_class1:after {
+  
+//   display: inline-block;
+//   width: 100%;
+//   content: "";
+//   height: 0px;
+// }
 </style>

+ 13 - 7
src/components/Report.vue

@@ -107,7 +107,7 @@
                             align-items: center;
                             cursor: pointer;
                           "
-                          @click="radioClick(item,scope.row)"
+                          @click="radioClick(item, scope.row)"
                         >
                           <img
                             style="width: 15px; margin-left: 10px"
@@ -219,7 +219,7 @@
                     </div>
                     <div class="totol_result_des" v-if="reportData.length > 0">
                       <div
-                      v-show="currentFlag == 'SHAPE_RANDOM'"
+                        v-show="currentFlag == 'SHAPE_RANDOM'"
                         class="progress_out"
                         :style="{
                           width: currentFlag != 'SHAPE_RANDOM' ? '100%' : '50%',
@@ -228,7 +228,10 @@
                         v-for="(item, index) in echarts_name_list"
                         :key="index"
                       >
-                        <span class="progress_out_name" style="width: 150px;font-size: 16px;font-weight: 700;">
+                        <span
+                          class="progress_out_name"
+                          style="width: 150px; font-size: 16px; font-weight: 700"
+                        >
                           {{ item.name }}
                         </span>
 
@@ -240,7 +243,9 @@
                           :color="colorPro"
                         />
                         <span class="progress_out_score">
-                          <span style="color: #ff1e00;font-size: 14px;font-weight: 700;" >{{ echarts_data_list[index] }}</span
+                          <span
+                            style="color: #ff1e00; font-size: 14px; font-weight: 700"
+                            >{{ echarts_data_list[index] }}</span
                           ><span style="color: #000000; font-size: 12px; opacity: 0.4"
                             >/100</span
                           ></span
@@ -252,7 +257,7 @@
                       }}
                     </div>
                   </div>
-                  <div class="out_p"   v-show="currentFlag != 'SHAPE_RANDOM'">
+                  <div class="out_p" v-show="currentFlag != 'SHAPE_RANDOM'">
                     <div
                       v-show="currentFlag != 'SHAPE_RANDOM'"
                       class="echrts_sty"
@@ -546,7 +551,7 @@ export default {
       //出现选择了几个题目//需要显示--需要出现个弹出框进行选择
       this.topicVisible = true;
     },
-    radioClick(val,planObj) {
+    radioClick(val, planObj) {
       if (this.userInfo.roleType != "5") {
         if (planObj.enable == "0") {
           this.$message({
@@ -601,7 +606,7 @@ export default {
           // this.option.series[0].data[0] = a;
           this.option.series[0].data[0].value = this.echarts_data_list;
           this.option.radar.indicator = this.echarts_name_list; //name
-
+          //当是认知任务时---不执行
           myChart.setOption(this.option);
         } else {
           ElMessage({
@@ -1098,6 +1103,7 @@ input[aria-hidden="true"] {
     .info {
       margin-bottom: 10px;
       font-size: 18px;
+      color: #333333;
     }
     // font-weight: 700;
   }

+ 14 - 1
src/views/manage/channelManagement/channelManagement.vue

@@ -146,7 +146,7 @@
                   <span> 查看报告</span>
                 </div>
                 <div
-                  v-if="scope.row.enable == '1'"
+             
                   class="detail_button"
                   @click="downloadButton(scope.row)"
                 >
@@ -561,6 +561,19 @@ export default {
     },
     //下载标志
     downloadButton(row) {
+      debugger;
+      if(this.userInfo.roleType!=5){
+        if(row.enable=='0'){
+          //提示暂未授权
+          this.$message({
+            message: "暂未授权",
+            type: "warning",
+          });
+          return 
+        }
+      }
+      
+
       this.planId = row.id;
       this.downloadVisible = true;
       this.getOrgList();

+ 0 - 1
src/views/manage/channelManagement/contract.vue

@@ -569,7 +569,6 @@ export default {
       this.$refs.planUser.open(val);
     },
     addUser(val) {
-      debugger;
       this.addRegisterUser(val);
     },
     clearSearch() {

+ 15 - 8
src/views/manage/generalSituation.vue

@@ -50,7 +50,7 @@
           src="../../assets/img/home/bg_p.png"
           alt=""
         />
-        <div class="number_people_top">学院名称</div>
+        <div class="number_people_top">学院名称</div>
         <div class="number_people_yuan">
           <div class="out">
             <span :title="userInfo.orgName" class="yuan_name">{{
@@ -66,7 +66,7 @@
             </div> -->
 
             <span class="yuan_people">
-              <span class="people_t">人数:</span>
+              <span class="people_t">小计:</span>
               <span class="people_n">{{ peopleData["总人数"] }}</span
               ><span class="people_r">人</span></span
             >
@@ -382,6 +382,7 @@ export default {
       // },
       yAxis: {
         // max: 100,
+        name:'占比(%)',
         type: "value",
         boundaryGap: [0, 0.01],
         minInterval: 1,
@@ -492,6 +493,7 @@ export default {
       yAxis: {
         max: 100,
         type: "value",
+        name:'占比(%)',
       },
       series: [
         {
@@ -920,11 +922,11 @@ export default {
         font-size: 20px;
         letter-spacing: 3px;
         margin-bottom: 20px;
-        font-weight: 700;
+        // font-weight: 700;
       }
       .number_people_yuan {
         // display: flex;
-        color: #ffffff;
+        color: #113a27;
         .out {
           border-radius: 20px;
           margin-left: 20px;
@@ -933,6 +935,8 @@ export default {
           flex-direction: column;
           flex: 1;
           .yuan_name {
+            // text-decoration: underline;
+            // text-decoration-color: #113a27;
             height: 80px;
             flex: 1;
             margin-right: 100px;
@@ -940,7 +944,7 @@ export default {
             // background-color: #0d3bb1;
             // margin-left: 20px;
             margin-top: 10px;
-            color: #ffffff;
+            color: #113a27;
             letter-spacing: 3px;
             font-size: 34px;
             font-family: Electronic;
@@ -968,7 +972,7 @@ export default {
           .yuan_people {
             text-align: right;
             margin-left: 20px;
-            margin-top: 10px;
+            margin-top: 30px;
             margin-right: 20px;
             // color: #ffffff;
             // font-size: 60px;
@@ -985,14 +989,17 @@ export default {
               -webkit-background-clip: text;
               -webkit-text-fill-color: transparent;
               color: #ffffff;
-              font-size: 60px;
+              font-size: 36px;
               letter-spacing: 3px;
               text-decoration: underline;
               text-decoration-color: #ffffff;
+              // text-decoration-style: dotted;
+              text-decoration-thickness: from-font;
+              // text-decoration-thickness: 0.5px;
             }
             .people_r {
               color: #ffffff;
-              font-size: 60px;
+              font-size: 20px;
               letter-spacing: 3px;
             }
           }