| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 | <template>  <div>    <el-form :inline="true" class="workForm" style="padding: 0 25px">      <el-form-item label="学生总数">        <!-- <el-input disabled                  :value="studentNum"></el-input> -->        <div class="inputStyle">{{ studentNum }}</div>      </el-form-item>      <el-form-item label="实际上课学生数">        <!-- <el-input disabled                  :value="signInNum"></el-input> -->        <div class="inputStyle">{{ signInNum }}</div>      </el-form-item>      <el-form-item label="请假学生数">        <!-- <el-input disabled                  :value="leaveNum"></el-input> -->        <div class="inputStyle">{{ leaveNum }}</div>      </el-form-item>      <el-form-item label="旷课学生数">        <!-- <el-input disabled                  :value="leaveNum"></el-input> -->        <div class="inputStyle">{{ truantNum }}</div>      </el-form-item>    </el-form>    <div class="tableWrap">      <el-table        :data="tableList"        :header-cell-style="{ background: '#EDEEF0', color: '#444' }"      >        <el-table-column align="center" prop="username" label="学生姓名">          <template slot-scope="scope">            <div>              {{ scope.row.username }}              <span>({{ scope.row.userId }})</span>              <!-- style="color: #f56c6c" -->            </div>          </template>        </el-table-column>        <el-table-column align="center" prop="phone" label="手机号">        </el-table-column>        <el-table-column align="center" prop="signInTime" label="签到时间">          <template slot-scope="scope">            <div>              {{ scope.row.signInTime | dateForMinFormat }}            </div>          </template>        </el-table-column>        <el-table-column align="center" prop="signOutTime" label="签退时间">          <template slot-scope="scope">            <div>              {{ scope.row.signOutTime | dateForMinFormat }}            </div>          </template>        </el-table-column>        <el-table-column align="center" prop="status" label="考勤状态">          <template slot-scope="scope">            <div              v-if="                scope.row.courseSchedule &&                scope.row.courseSchedule.status != 'NOT_START'              "            >              <p v-if="scope.row.status" :class="scope.row.status == 'NORMAL'?'green':'red'">                {{ scope.row.status | studentRecord }}              </p>              <p v-else>未签到</p>            </div>          </template>        </el-table-column>        <el-table-column align="center" label="考勤回访">          <template slot-scope="scope">            <div>{{ scope.row.visitFlag | yesOrNo }}</div>          </template>        </el-table-column>                <el-table-column align="center" prop="leaveNum" label="本月请假次数"></el-table-column>        <el-table-column          align="center"          prop="ctrls"          label="操作"        >          <template slot-scope="scope">            <div>              <el-button                type="text"                @click="addVisit(scope.row)"                v-if="!scope.row.visitFlag&&permission('visit/add?page=teamCourseList')"                >新增回访</el-button              >                <el-button                type="text"                @click="lookVisit(scope.row)"                v-if="(scope.row.visitFlag)&&permission('visit/queryPage?page=teamCourseList')"                >查看回访</el-button              >            </div>          </template>        </el-table-column>      </el-table>      <pagination        :total="rules.total"        :page.sync="rules.page"        :limit.sync="rules.limit"        @pagination="getList"      />    </div>    <el-dialog      title="新增回访"      width="500px"      :visible.sync="visitVisible"      append-to-body    >      <visit        v-if="visitVisible && detail"        :detail="detail"        :username="detail.username"        @close="visitVisible = false"        @submited="getList"        :isMainGo="true"      />    </el-dialog>  </div></template><script>import { findStudentAttendance, sumStudentAttendance } from "@/api/buildTeam";import pagination from "@/components/Pagination/index";import { permission } from "@/utils/directivePage";import visit from "@/views/withdrawal-application/modals/visit";export default {  props: ["courseScheduleId", "isMainGo"],  components: { pagination, visit },  data() {    return {      tableList: [],      visitVisible: false,      detail: null,      rules: {        // 分页规则        limit: 10, // 限制显示条数        page: 1, // 当前页        total: 0, // 总条数      },      studentNum: null,      signInNum: null,      leaveNum: null,      truantNum: null,    };  },  mounted() {    this.init();  },  activated() {    this.init();  },  methods: {    permission,    init() {      this.getList();      //  发请求获取学生签到信息    },    addVisit(row) {      this.visitVisible = true;      this.detail = row;    },    lookVisit(row){      this.$router.push({path:'/studentManager/returnVisitList',query:{search:row.id}})    },    getList() {      findStudentAttendance({        search: this.courseScheduleId,        rows: this.rules.limit,        page: this.rules.page,      }).then((res) => {        if (res.code == 200) {          this.tableList = res.data.rows;          this.rules.total = res.data.total;        }      });      sumStudentAttendance({ courseScheduleId: this.courseScheduleId }).then(        (res) => {          if (res.code == 200) {            this.studentNum = res.data.studentNum;            this.signInNum = res.data.signInNum;            this.leaveNum = res.data.leaveNum;            this.truantNum = res.data.truantNum;          }        }      );    },  },};</script><style lang="scss" scoped>.inputStyle {  width: 100px;  text-align: center;}.workForm {  /deep/.el-form-item {    margin-bottom: 10px !important;  }}.red {  color: red;}.green {  color: #14928a;}.orgin {  color: #E6A23C;}</style>
 |