WINDOWS-7IFQK7E\EDY 1 рік тому
батько
коміт
249d0958c2

+ 12 - 2
src/views/cjxt/tjdj/index.vue

@@ -355,9 +355,19 @@ export default {
       this.getListData();
     },
     exportModel() {
-      const link = `${window.globalVariables.api}template/xls/xddy_dygl_cjxt_tjdj.xls`;
+      // const link = `${window.globalVariables.api}template/xls/xddy_dygl_cjxt_tjdj.xls`;
+      // window.open(link, "_blank");
+      // console.log(link);
+         let link =
+        window.globalVariables.api +
+        "/openapi/download.php?site=jnmf&token=" +
+        token +
+        "&path=" +
+        'template/xls/xddy_dygl_cjxt_tjdj.xls'+
+        "&name=" +
+        "体检登记";
+      console.log(link, 99999);
       window.open(link, "_blank");
-      console.log(link);
     },
     exportData() {
       let time = "";

+ 10 - 0
src/views/xsczda/xslb/bjlb/xslbxq/api.js

@@ -165,3 +165,13 @@ export const xslb_detail = (data = {}) =>
 
         },
     })
+    
+export const hmc_list = (data = {}) =>
+    request({
+        url: '/xddy/dygl_xsxjk/index',
+        data: {
+            page: data.page,
+            limit: data.limit,
+          
+        }
+    })

Різницю між файлами не показано, бо вона завелика
+ 188 - 770
src/views/xsczda/xslb/bjlb/xslbxq/czda/index.vue


+ 53 - 16
src/views/xsczda/xslb/bjlb/xslbxq/index.vue

@@ -134,24 +134,29 @@
         :inline="true"
         :model="dialogForm"
         ref="dialogForm"
-        :rules="rules"
+        :rules="tj_rules"
         label-width="100px"
       >
         <el-form-item class="mr75" label="学生姓名" prop="xsxm">
-          <!-- <el-input v-model="dialogForm.xsxm"></el-input> -->
-          <RemoteSelect
-            v-model="dialogForm.xsxh"
-            :label.sync="dialogForm.xsxm"
-            url="/xddy/dygl_xsxjk/index"
-            field="xdx_xsxh,xdx_xsxm"
-          />
+          <el-select
+            v-model="dialogForm.xsxm"
+            placeholder="请选择学生"
+            clearable
+            filterable
+            @change="handleChange"
+          >
+            <el-option
+              v-for="(item, i) in studentList"
+              :key="i"
+              :label="item.xdx_xsxm"
+              :value="item.xdx_id"
+            ></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item class="mr10" label="学籍号" prop="xsxh">
           <el-input disabled v-model="dialogForm.xsxh"></el-input>
         </el-form-item>
-        <el-form-item class="mr75" label="年级" prop="nj">
-          <!-- <el-input v-model="dialogForm.nj"></el-input> -->
-
+        <el-form-item class="mr75" label="年级" prop="nj_id">
           <el-select
             v-model="dialogForm.nj_id"
             placeholder="请选择年级"
@@ -166,7 +171,7 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item class="mr10" label="班级" prop="bj">
+        <el-form-item class="mr10" label="班级" prop="bj_id">
           <!-- <el-input v-model="dialogForm.bj"></el-input> -->
           <el-select
             v-model="dialogForm.bj_id"
@@ -178,7 +183,7 @@
               v-for="(item, index) in classList"
               :key="index"
               :label="item.class_name"
-              :value="item.class_id"
+              :value="item.class_num"
             ></el-option>
           </el-select>
         </el-form-item>
@@ -260,7 +265,7 @@ import {
   xs_edit,
   xs_add,
   xs_del,
-  xs_export,
+  hmc_list,
   grade_search,
   class_search,
   xslb_list,
@@ -296,6 +301,7 @@ export default {
       xdxb_id: "",
       gradeList: [],
       classList: [],
+      studentList: [],
       title: "",
       dialogFormVisible: false,
       commentDialogVisible: false,
@@ -321,6 +327,13 @@ export default {
         shsjdf: "",
         zdf: "",
       },
+      tj_rules: {
+        xsxm: [{ required: true, message: "请选择学生", trigger: "blur" }],
+        xsxh: [{ required: true, message: "请输入学号", trigger: "blur" }],
+        nj_id: [{ required: true, message: "请选择年级", trigger: "blur" }],
+        bj_id: [{ required: true, message: "请选择班级", trigger: "blur" }],
+        xb: [{ required: true, message: "请选择性别", trigger: "blur" }],
+      },
       rules: {
         xgycdf: [{ required: true, message: "请打分", trigger: "blur" }],
         ktxxdf: [{ required: true, message: "请打分", trigger: "blur" }],
@@ -377,7 +390,7 @@ export default {
         nj_name: "",
         bj_id: this.xdxb_id,
         bj_name: "",
-        xb: "1",
+        xb: "",
       };
       this.isEdit = false;
       this.dialogFormVisible = true;
@@ -402,7 +415,7 @@ export default {
         }
       });
       this.classList.forEach((item) => {
-        if (item.class_id == this.dialogForm.bj_id) {
+        if (item.class_num == this.dialogForm.bj_id) {
           this.dialogForm.bj_name = item.class_name;
         }
       });
@@ -599,6 +612,29 @@ export default {
         this.multipleSelection.join(",");
       window.open(link, "_blank");
     },
+
+    studentData() {
+      let data = {
+        page: 1,
+        limit: 9999,
+      };
+      hmc_list(data).then((res) => {
+        if (res.code == 1) {
+          this.studentList = res.data.page_data;
+        }
+      });
+    },
+    handleChange(e) {
+      this.studentList.map((item) => {
+        if (e == item.xdx_id) {
+          this.dialogForm.xsxm = item.xdx_xsxm;
+          this.dialogForm.xsxh = item.xdx_xsxh;
+        }
+      });
+      if (!e) {
+        this.dialogForm.xsxh = "";
+      }
+    },
     gradeListData() {
       let data = {
         page: 1,
@@ -657,6 +693,7 @@ export default {
       this.getListData();
       this.gradeListData();
       this.classListData();
+      this.studentData();
     }
   },
 };

+ 204 - 153
src/views/xstzjk/xslb/ckxq/index.vue

@@ -1,13 +1,13 @@
 <template>
-  <div class="content">
-    <div class="d-flex mb20">
+  <div class="bigDiv">
+    <div class="d-flex h-full">
       <div class="content-box Info">
         <div style="width: 100%; height: 150px; position: relative">
           <img
             style="
               width: calc(100% - 42px);
               height: 128px;
-              margin: 0 0 0 20px;
+              margin: 20px 0 0 20px;
               position: absolute;
             "
             src="@/assets/bg.png"
@@ -23,12 +23,13 @@
               left: 50%;
               margin-left: -52px;
             "
-            :src="jcxxInfo.xdx_sczp"
+            :src="xdx_sczp"
             alt=""
           />
         </div>
         <div style="text-align: center; margin-top: 50px">
           <p
+            v-if="Object.keys(jcxxInfo).length != 0"
             style="
               font-size: 20px;
               font-family: PingFangSC, PingFangSC-Semibold;
@@ -37,6 +38,17 @@
           >
             {{ jcxxInfo.xdx_xsxm }}
           </p>
+
+          <p
+            v-else
+            style="
+              font-size: 20px;
+              font-family: PingFangSC, PingFangSC-Semibold;
+              color: red;
+            "
+          >
+            该生暂未登记学籍卡信息
+          </p>
           <p
             style="
               font-size: 14px;
@@ -46,146 +58,182 @@
               margin-bottom: 10px;
             "
           >
-            学籍号:{{ jcxxInfo.xdx_xsxh }}
+            学籍号:{{ jcxxInfo.xdx_xsxh ? jcxxInfo.xdx_xsxh : "无" }}
           </p>
         </div>
         <div>
           <ul>
             <li>性别</li>
-            <li>{{ jcxxInfo.xdx_xb_option_n }}</li>
+            <li>
+              {{ jcxxInfo.xdx_xb_option_n ? jcxxInfo.xdx_xb_option_n : "无" }}
+            </li>
           </ul>
           <ul>
             <li>民族</li>
-            <li>{{ jcxxInfo.xdx_mz }}</li>
+            <li>{{ jcxxInfo.xdx_mz ? jcxxInfo.xdx_mz : "无" }}</li>
           </ul>
           <ul>
             <li>出生年月</li>
-            <li>{{ jcxxInfo.xdx_csrq }}</li>
+            <li>{{ jcxxInfo.xdx_csrq ? jcxxInfo.xdx_csrq : "无" }}</li>
           </ul>
           <ul>
             <li>血型</li>
-            <li>{{ jcxxInfo.xdx_xx }}</li>
+            <li>{{ jcxxInfo.xdx_xx ? jcxxInfo.xdx_xx : "无" }}</li>
           </ul>
         </div>
         <div>
           <ul>
             <li>身份证号码</li>
-            <li>{{ jcxxInfo.xdx_zjhm }}</li>
+            <li>{{ jcxxInfo.xdx_zjhm ? jcxxInfo.xdx_zjhm : "无" }}</li>
           </ul>
           <ul>
             <li>户籍所在地</li>
-            <li>{{ jcxxInfo.xdx_jtzz }}</li>
+            <li>{{ jcxxInfo.xdx_jtzz ? jcxxInfo.xdx_jtzz : "无" }}</li>
           </ul>
           <ul>
             <li>家庭住址</li>
-            <li>{{ jcxxInfo.xdx_xxdz }}</li>
+            <li>{{ jcxxInfo.xdx_xxdz ? jcxxInfo.xdx_xxdz : "无" }}</li>
           </ul>
         </div>
       </div>
-      <div class="ml20 content-box student-body-health" style="height: 709px">
-        <div>
+
+      <div class="ml20 h-full content-box student-body-health">
+        <div class="tz-title">
           <span>学生体质健康</span>
+          <div class="text-red" v-if="Object.keys(tzjkInfo).length == 0">
+            该生暂无体质健康数据上传
+          </div>
           <!-- <a>查看更多</a> -->
         </div>
-        <div>
-          <div>
-            <img src="@/assets/icon-heart.png" alt="" />
-            <div>
-              <span>{{ tzjkInfo.xtj_jcxl }}</span>
-              <span>基础心率</span>
+        <div class="right-two">
+          <div class="big">
+            <div class="small" style="border-bottom: 1px solid #c3c9ce">
+              <img
+                class="h-50px w-50px mr-20px"
+                src="@/assets/icon-heart.png"
+                alt=""
+              />
+              <div>
+                <div class="text-center text-20px font-semibold">
+                  {{ tzjkInfo.xtj_jcxl ? tzjkInfo.xtj_jcxl : "0" }}
+                </div>
+                <div>基础心率</div>
+              </div>
             </div>
-          </div>
-          <div>
-            <img src="@/assets/icon-BMI.png" alt="" />
-            <div>
-              <span>{{ tzjkInfo.xtj_bmi }}</span>
-              <span>BMI</span>
+            <div class="small" style="border-bottom: 1px solid #c3c9ce">
+              <img
+                class="h-50px w-50px mr-20px"
+                src="@/assets/icon-BMI.png"
+                alt=""
+              />
+              <div>
+                <div class="text-center text-20px font-semibold">
+                  {{ tzjkInfo.xtj_bmi ? tzjkInfo.xtj_bmi : "0" }}
+                </div>
+                <div>BMI</div>
+              </div>
             </div>
           </div>
-          <div>
-            <img src="@/assets/icon-scale.png" alt="" />
-            <div>
-              <span>{{ tzjkInfo.xtj_tzl }}</span>
-              <span>体脂率</span>
+          <div class="big">
+            <div class="small">
+              <img
+                class="h-50px w-50px mr-20px"
+                src="@/assets/icon-scale.png"
+                alt=""
+              />
+              <div>
+                <div class="text-center text-20px font-semibold">
+                  {{ tzjkInfo.xtj_tzl ? tzjkInfo.xtj_tzl : "0" }}
+                </div>
+                <div>体脂率</div>
+              </div>
             </div>
-          </div>
-          <div>
-            <img src="@/assets/icon-lung.png" alt="" />
-            <div>
-              <span>{{ tzjkInfo.xtj_fhl }}</span>
-              <span>肺活量</span>
+            <div class="small">
+              <img
+                class="h-50px w-50px mr-20px"
+                src="@/assets/icon-lung.png"
+                alt=""
+              />
+              <div>
+                <div class="text-center text-20px font-semibold">
+                  {{ tzjkInfo.xtj_fhl ? tzjkInfo.xtj_fhl : "0" }}
+                </div>
+                <div>肺活量</div>
+              </div>
             </div>
           </div>
         </div>
         <div>
           <span></span>
           <div>
-            <div class="tzjk-info">
+            <div>
               <img src="@/assets/icon-vision.png" />
-              <span>{{ tzjkInfo.xtj_sl }}</span>
+              <span>{{ tzjkInfo.xtj_sl ? tzjkInfo.xtj_sl : "0" }}</span>
             </div>
             <div>视力</div>
           </div>
           <div>
-            <div class="tzjk-info">
+            <div>
               <img src="@/assets/icon-backrun.png" />
-              <span>{{ tzjkInfo.xtj_wfp }}</span>
+              <span>{{ tzjkInfo.xtj_wfp ? tzjkInfo.xtj_wfp : "0" }}</span>
             </div>
             <div>往返跑</div>
           </div>
-          <div class="tzjk-info">
+          <div>
             <div>
               <img src="@/assets/icon-longrun.png" />
-              <span>{{ tzjkInfo.xtj_nlp }}</span>
+              <span>{{ tzjkInfo.xtj_nlp ? tzjkInfo.xtj_nlp : "0" }}</span>
             </div>
             <div>耐力跑成绩</div>
           </div>
-          <div class="tzjk-info">
+          <div>
             <div>
               <img src="@/assets/icon-shortrun.png" />
-              <span>{{ tzjkInfo.xtj_50mp }}</span>
+              <span>{{ tzjkInfo.xtj_50mp ? tzjkInfo.xtj_50mp : "0" }}</span>
             </div>
             <div>50米跑</div>
           </div>
-          <div class="tzjk-info">
+          <div>
             <div>
               <img src="@/assets/icon-situp.png" />
-              <span>{{ tzjkInfo.xtj_1fzywqz }}</span>
+              <span>{{
+                tzjkInfo.xtj_1fzywqz ? tzjkInfo.xtj_1fzywqz : "0"
+              }}</span>
             </div>
             <div>1分钟仰卧起坐</div>
           </div>
-          <div class="tzjk-info">
+          <div>
             <div>
               <img src="@/assets/icon-jump.png" />
-              <span>{{ tzjkInfo.xtj_ldty }}</span>
+              <span>{{ tzjkInfo.xtj_ldty ? tzjkInfo.xtj_ldty : "0" }}</span>
             </div>
             <div>立定跳远</div>
           </div>
-          <div class="tzjk-info">
+          <div>
             <div>
               <img src="@/assets/icon-skip.png" />
-              <span>{{ tzjkInfo.xtj_1fzts }}</span>
+              <span>{{ tzjkInfo.xtj_1fzts ? tzjkInfo.xtj_1fzts : "0" }}</span>
             </div>
             <div>1分钟跳绳</div>
           </div>
-          <div class="tzjk-info">
+          <div>
             <div>
               <img src="@/assets/icon-pullup.png" />
-              <span>{{ tzjkInfo.xtj_ytxs }}</span>
+              <span>{{ tzjkInfo.xtj_ytxs ? tzjkInfo.xtj_ytxs : "0" }}</span>
             </div>
             <div>引体向上</div>
           </div>
-          <div class="tzjk-info">
+          <div>
             <div>
               <img src="@/assets/icon-sit.png" />
-              <span>{{ tzjkInfo.xtj_zwtqq }}</span>
+              <span>{{ tzjkInfo.xtj_zwtqq ? tzjkInfo.xtj_zwtqq : "0" }}</span>
             </div>
             <div>坐位体前屈</div>
           </div>
-          <div class="tzjk-info">
+          <div>
             <div>
               <img src="@/assets/icon-ball.png" />
-              <span>{{ tzjkInfo.xtj_sxq }}</span>
+              <span>{{ tzjkInfo.xtj_sxq ? tzjkInfo.xtj_sxq : "0" }}</span>
             </div>
             <div>实心球</div>
           </div>
@@ -215,6 +263,7 @@ export default {
       xtj_xsxh: "",
       xdx_xsxm: "",
       xdx_xsxh: "",
+      xdx_sczp: "",
     };
   },
   methods: {
@@ -225,10 +274,28 @@ export default {
 
       xjk_detail(data).then((res) => {
         if (res.code == 1) {
-          this.jcxxInfo = res.data.one_info;
-          let a = this.jcxxInfo.xdx_sczp.indexOf("|");
-          this.jcxxInfo.xdx_sczp = this.jcxxInfo.xdx_sczp.substring(0, a);
-          console.log(this.jcxxInfo.xdx_sczp, "xdx_sczp");
+          if (Object.keys(res.data.one_info).length != 0) {
+            this.jcxxInfo = res.data.one_info;
+            let a = this.jcxxInfo.xdx_sczp.indexOf("|");
+            this.jcxxInfo.xdx_sczp = this.jcxxInfo.xdx_sczp.substring(0, a);
+            console.log(this.jcxxInfo.xdx_sczp, " this.jcxxInfo.xdx_sczp");
+            if (this.jcxxInfo.xdx_sczp) {
+              this.xdx_sczp =
+                window.globalVariables.api + this.jcxxInfo.xdx_sczp;
+            } else {
+              this.xdx_sczp =
+                "https://openapi.bozedu.net/template/default/static/img/avatar_student_big.png";
+            }
+
+            console.log(this.jcxxInfo.xdx_sczp, " this.jcxxInfo.xdx_sczpww");
+          } else {
+            this.xdx_sczp =
+              "https://openapi.bozedu.net/template/default/static/img/avatar_student_big.png";
+            this.$message({
+              message: "暂未上传该生学籍卡信息",
+              type: "error",
+            });
+          }
         }
       });
     },
@@ -240,7 +307,14 @@ export default {
 
       xslb_detail(data).then((res) => {
         if (res.code == 1) {
-          this.tzjkInfo = res.data.one_info;
+          if (Object.keys(res.data.one_info).length != 0) {
+            this.tzjkInfo = res.data.one_info;
+          } else {
+            this.$message({
+              message: "暂未上传该生体质健康信息",
+              type: "error",
+            });
+          }
         }
       });
     },
@@ -254,15 +328,54 @@ export default {
 };
 </script>
 
+
 <style lang="scss" scoped>
+//布局
+.Info {
+  width: 40%;
+  height: calc(100% + 20px);
+}
+.student-body-health {
+  width: 60%;
+  height: calc(100% + 20px);
+}
+//通用
+.bigDiv {
+  height: calc(100% + 20px);
+  width: 100%;
+  // height: 100%;
+  background: #f2f6fc;
+  // border: 1px solid red;
+  margin: -10px;
+  // box-sizing: border-box;
+  // padding: 10px;
+}
+
+.content-box {
+  width: 100%;
+  background: #fff;
+  border-radius: 6px;
+  height: 100%;
+  overflow: auto;
+  .title {
+    box-sizing: border-box;
+    width: 100%;
+    font-size: 18px;
+    border-bottom: 1px solid #e4e6e8;
+    padding: 15px 0 15px 20px;
+    font-family: PingFangSC, PingFangSC-Semibold;
+    font-weight: 600;
+    color: #171721;
+  }
+}
+
 //基本信息
 .Info div:nth-child(3) {
   display: flex;
   flex-wrap: wrap;
   margin: 0 auto;
-
   ul {
-    width: calc(50% - 47px);
+    width: calc(50% - 40px);
     height: 50px;
     border: 1px dashed #dadada;
     border-radius: 12px;
@@ -293,7 +406,7 @@ export default {
     border-radius: 12px;
     margin-left: 20px;
     margin-bottom: 20px;
-    padding: 0 0 0 15px;
+    padding: 0px 0 0 15px;
     & :nth-child(1) {
       font-size: 12px;
       font-family: PingFangSC, PingFangSC-Semibold;
@@ -313,70 +426,40 @@ export default {
 
 //体质健康
 .student-body-health {
-  & > div:nth-child(1) {
-    display: flex;
-    justify-content: space-between;
+  .tz-title {
     padding: 15px 20px 15px 20px;
     border-bottom: 1px solid #e4e6e8;
-    & :nth-child(1) {
+    span {
       font-size: 18px;
       font-family: PingFangSC, PingFangSC-Semibold;
       font-weight: 600;
       color: #171721;
     }
-    & :nth-child(2) {
-      font-size: 14px;
-      font-family: PingFangSC, PingFangSC-Regular;
-      font-weight: 400;
-      color: #265cd4;
-    }
   }
-  & > div:nth-child(2) {
+  .right-two {
+    width: 100%;
+    height: 300px;
+    padding: 0 30px;
     margin-top: 25px;
-    display: flex;
-    flex-wrap: wrap;
-    & > div:nth-child(1) {
-      margin-left: 20px;
-      border-bottom: 1px solid #5f5f5f53;
-      border-right: 1px solid #5f5f5f53;
-    }
-    & > div:nth-child(3) {
-      margin-left: 20px;
-    }
-    & > div:nth-child(4) {
-      border-top: 1px solid #5f5f5f53;
-      border-left: 1px solid #5f5f5f53;
-    }
-
-    & > div {
-      padding: 45px;
+    .big {
       display: flex;
-      width: calc(50% - 112px);
-      align-items: center;
-      justify-content: center;
-      div {
+      width: 100%;
+      height: 50%;
+      .small {
         display: flex;
-        flex-direction: column;
-        padding-left: 30px;
-        & :nth-child(1) {
-          display: inline-block;
-          width: 100px;
-          font-size: 20px;
-          font-family: PingFangSC, PingFangSC-Semibold;
-          font-weight: 600;
-          color: #171721;
-        }
-        & :nth-child(2) {
-          font-size: 14px;
-          font-family: PingFangSC, PingFangSC-Regular;
-          font-weight: 400;
-          color: #8083a3;
-        }
+        justify-content: center;
+        align-items: center;
+        width: 50%;
       }
     }
   }
+  .small:nth-child(odd) {
+    border-right: 1px solid #c3c9ce;
+  }
 
   & > div:nth-child(3) {
+    padding: 0 20px;
+
     & > span {
       height: 1px;
       display: block;
@@ -396,12 +479,18 @@ export default {
     }
 
     & > div {
+      width: 50%;
+      margin: 0 auto;
       display: flex;
       flex-direction: row;
-      padding: 20px 5px;
+      padding: 20px;
       justify-content: space-between;
-      width: calc(50% - 45px);
+      // width: calc(50% - 45px);
       align-items: center;
+
+      img {
+        margin-right: 10px;
+      }
       & > div:nth-child(1) {
         display: flex;
         align-items: center;
@@ -418,43 +507,5 @@ export default {
       }
     }
   }
-  .tzjk-info img {
-    width: 30px;
-    height: 30px;
-    padding-right: 10px;
-  }
-}
-//通用
-.content {
-  background: #f2f6fc;
-  height: 700px;
-  width: 100%;
-  margin: -10px;
-  padding-right: 20px;
-  padding-bottom: 20px;
-}
-
-.content-box {
-  width: 100%;
-  background: #fff;
-  border-radius: 6px;
-
-  .title {
-    box-sizing: border-box;
-    width: 100%;
-    font-size: 18px;
-    border-bottom: 1px solid #e4e6e8;
-    padding: 15px 0 15px 20px;
-    font-family: PingFangSC, PingFangSC-Semibold;
-    font-weight: 600;
-    color: #171721;
-  }
-}
-//布局
-.Info {
-  width: 40%;
-}
-.student-body-health {
-  width: 60%;
 }
 </style>

+ 8 - 4
src/views/xstzjk/xslb/index.vue

@@ -352,8 +352,12 @@ export default {
       import_type_data: {},
       dialogFormVisible: false,
       rules: {
-        xtj_xsxm: [{ required: true, message: "请输入学生姓名", trigger: "blur" }],
-        xtj_xsxh: [{ required: true, message: "请输入学籍号", trigger: "blur" }],
+        xtj_xsxm: [
+          { required: true, message: "请输入学生姓名", trigger: "blur" },
+        ],
+        xtj_xsxh: [
+          { required: true, message: "请输入学籍号", trigger: "blur" },
+        ],
       },
     };
   },
@@ -560,9 +564,9 @@ export default {
 
 <style scoped>
 ::v-deep .el-input {
-  width: 160px;
+  width: 140px;
 }
 ::v-deep .el-form--inline .el-form-item__content {
-  width: 160px;
+  width: 140px;
 }
 </style>