examiner.vue 4.8 KB
<template>
  <div class="app-container">
    <el-card class="box-card">
      <div class="from-Card">
        <el-form
          ref="queryRef" size="small" :model="queryParams" :inline="true" label-width="auto"
          label-position="top"
        >
          <el-row style="width: 100%;">
            <el-col :span="4">
              <el-form-item label="姓名" prop="perName" label-width="">
                <el-input
                  v-model.trim="queryParams.perName"
                  placeholder=""
                  clearable
                  style="width: 100%;"
                  @keyup.enter="handelSelect"
                />
              </el-form-item>
            </el-col>
            <el-col :span="4">
              <el-form-item label="证件号" prop="perIdcCode" label-width="">
                <el-input
                  v-model.trim="queryParams.perIdcCode"
                  placeholder=""
                  clearable
                  style="width: 100%;"
                  @keyup.enter="handelSelect"
                />
              </el-form-item>
            </el-col>
            <!--            <el-col :span="4">-->
            <!--              <el-form-item label="省份" prop="provinceId" label-width="">-->
            <!--                <el-input-->
            <!--                  v-model.trim="queryParams.memCode"-->
            <!--                  placeholder=""-->
            <!--                  clearable-->
            <!--                  style="width: 100%;"-->
            <!--                  @keyup.enter="handelSelect"-->
            <!--                />-->
            <!--              </el-form-item>-->
            <!--            </el-col>-->
            <div class="po-r-btns">
              <el-button size="small" type="primary" icon="Search" @click="handelSelect">搜索</el-button>
              <el-button size="small" icon="Refresh" @click="handelReset">重置</el-button>
            </div>
          
          </el-row>
        </el-form>
        <div>
          <el-button type="primary" icon="plus" @click="handelExaminer">添加考官</el-button>
        </div>
      </div>
      
      <div class="table">
        <el-table v-loading="loading" :data="list" border>
          <el-table-column type="index" label="序号" width="55" align="center" />
          
          <!--          <el-table-column label="会员编号" align="center" prop="perCode" min-width="135" />-->
          <el-table-column
            label="姓名" align="center" prop="perName" min-width="140px"
          />
          <el-table-column label="证件号" align="center" prop="perIdcCode" min-width="140px" />
          
          <el-table-column
            label="注册单位" align="center" prop="memName" min-width="140px"
          />
          <el-table-column label="有效期" align="center" prop="" min-width="140px">
            <template #default="{row}">
              <span>{{ parseTime(row.content.validTime, '{y}-{m}-{d}') }}
              </span>
            </template>
          </el-table-column>
          
          <el-table-column
            label="操作" align="center" fixed="right"
            width="100"
          >
            <template #default="{row}">
              <el-button type="danger" @click="handleDelete(row)">删除</el-button>
            </template>
          </el-table-column>
        </el-table>
        
        <pagination
          v-show="total>0"
          v-model:page="queryParams.pageNum"
          v-model:limit="queryParams.pageSize"
          :total="total"
          @pagination="getList"
        />
      </div>
    </el-card>
    
    <addExaminer ref="addExaminerRef" @handel-success="getList" />
  </div>
</template>

<script setup>
import { getCurrentInstance, ref, onMounted } from 'vue'
import addExaminer from '@/views/groupMember/components/addExaminer.vue'
import { listAPI, examinerDelete } from '/@/api/exam/info'

const queryParams = ref({
  pageNum: 1,
  pageSize: 10
})

const { proxy } = getCurrentInstance()
const list = ref([])
const total = ref(0)
const loading = ref(false)

onMounted(() => {
  getList()
})

async function getList() {
  loading.value = true
  const res = await listAPI(queryParams.value)
  list.value = res.rows
  for (const val of list.value) {
    if (val.roleInfo)val.content = JSON.parse(val.roleInfo)
  }
  total.value = res.total
  loading.value = false
}

function handelSelect() {
  queryParams.value.pageNum = 1
  getList()
}

function handelReset() {
  queryParams.value = {
    pageNum: 1,
    pageSize: 10
  }
  getList()
}

function handelExaminer() {
  proxy.$refs['addExaminerRef'].open()
}

async function handleDelete(row) {
  await proxy.$modal.confirm('是否确认删除该考官?')
  await examinerDelete(row.id)
  proxy.$modal.msgSuccess('操作成功')
  await getList()
}

</script>

<style lang="scss" scoped>

</style>