|
@@ -0,0 +1,455 @@
|
|
|
+<template>
|
|
|
+ <div id="" @keyup.enter="getSearch">
|
|
|
+ <div v-if="beforesel" class="center_1200" style="height: 100%">
|
|
|
+ <el-main
|
|
|
+ v-loading="loading"
|
|
|
+ class="main_style"
|
|
|
+ style="text-align: center"
|
|
|
+ >
|
|
|
+ <el-card class="box-card">
|
|
|
+ <div
|
|
|
+ slot="header"
|
|
|
+ class="clearfix"
|
|
|
+ style="font-size: 18px; font-weight: 700"
|
|
|
+ >
|
|
|
+ <span>工程质量风险管理工程师培训<br />测评成绩查询</span>
|
|
|
+ </div>
|
|
|
+ <el-form label-position="right" label-width="85px" :model="formData">
|
|
|
+ <el-form-item
|
|
|
+ v-for="(item, index) in formList"
|
|
|
+ :label="item.label"
|
|
|
+ :key="index"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ clearable
|
|
|
+ :size="$store.state.defaultSize"
|
|
|
+ v-model="formData[item.prop]"
|
|
|
+ :placeholder="item.placeholder"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <div>
|
|
|
+ <el-button
|
|
|
+ :size="$store.state.defaultSize"
|
|
|
+ type="primary"
|
|
|
+ @click="getSearch"
|
|
|
+ >查询</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ :size="$store.state.defaultSize"
|
|
|
+ type="primary"
|
|
|
+ @click="init"
|
|
|
+ >重置</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-form>
|
|
|
+ </el-card>
|
|
|
+ </el-main>
|
|
|
+ </div>
|
|
|
+ <div v-else class="input_style">
|
|
|
+ <el-form
|
|
|
+ label-position="right"
|
|
|
+ label-width="85px"
|
|
|
+ :model="formData"
|
|
|
+ style="text-align: center"
|
|
|
+ >
|
|
|
+ <el-form-item
|
|
|
+ v-for="(item, index) in formList"
|
|
|
+ :label="item.label"
|
|
|
+ :key="index"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ clearable
|
|
|
+ :size="$store.state.defaultSize"
|
|
|
+ v-model="formData[item.prop]"
|
|
|
+ :placeholder="item.placeholder"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <div>
|
|
|
+ <el-button
|
|
|
+ :size="$store.state.defaultSize"
|
|
|
+ type="primary"
|
|
|
+ @click="getSearch"
|
|
|
+ >查询</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ :size="$store.state.defaultSize"
|
|
|
+ type="primary"
|
|
|
+ @click="init"
|
|
|
+ >重置</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-form>
|
|
|
+ <!-- <i class="el-icon-search"></i>
|
|
|
+ <input
|
|
|
+ type="text"
|
|
|
+ v-model.trim="formData.Name"
|
|
|
+ placeholder="输入姓名"
|
|
|
+ style="width:40%; background: #cbdbf3;
|
|
|
+ margin-right: 4px;
|
|
|
+ border-radius: 10px;"
|
|
|
+ />
|
|
|
+ <input
|
|
|
+ type="text"
|
|
|
+ v-model.trim="formData.IdNum"
|
|
|
+ placeholder="请输入身份证号"
|
|
|
+ style="width: 220px; background: #cbdbf3;
|
|
|
+ border-radius: 10px;"
|
|
|
+ />
|
|
|
+ <span class="btn" @click="getSearch">搜索</span> -->
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <van-empty description="暂无数据" v-if="notList.length == 0" />
|
|
|
+ <el-main v-else v-loading="loading" class="notList_box">
|
|
|
+ <el-card class="notList_style">
|
|
|
+ <div class="infocard">
|
|
|
+ <!-- <el-image
|
|
|
+ v-if="items._studentImg"
|
|
|
+ style="width: 70px; height: 100px"
|
|
|
+ :src="$methods.splitImgHost(items._studentImg)"
|
|
|
+ :preview-src-list="[$methods.splitImgHost(items._studentImg)]"
|
|
|
+ >
|
|
|
+ </el-image> -->
|
|
|
+ <!-- <img v-if="items._studentImg" style="width: 80px;height: 115px;" :src="$methods.splitImgHost(items._studentImg)" class="imageleft"> -->
|
|
|
+ <div
|
|
|
+ class=""
|
|
|
+ style="font-size: 16px"
|
|
|
+ v-for="(items, indexs) in notList"
|
|
|
+ :key="indexs"
|
|
|
+ >
|
|
|
+ <div v-if="indexs == 0" style="display: grid">
|
|
|
+ <span>姓名:{{ items._name }}</span>
|
|
|
+ <span>身份证号:{{ items._idNum }}</span>
|
|
|
+ <span>单位名称:{{ items._company }}</span>
|
|
|
+ </div>
|
|
|
+ <el-divider></el-divider>
|
|
|
+
|
|
|
+ <table class="table" style="font-size: 14px">
|
|
|
+ <tbody>
|
|
|
+ <tr>
|
|
|
+ <td rowspan="5" style="width: 15%;text-align: center;">{{ indexs + 1 }}</td>
|
|
|
+ <td>考试时间:{{ items._examTime &&items._examTime!=""?items._examTime: "-" }}</td>
|
|
|
+ </tr>
|
|
|
+ <!-- <tr>
|
|
|
+ <td>成绩:{{ items._score &&items._score!=""?items._score: "-" }}</td>
|
|
|
+ </tr> -->
|
|
|
+ <tr>
|
|
|
+ <td>考试结果:{{ items.examStatusName &&items.examStatusName!=""?items.examStatusName: "-" }}</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>证书编号:{{ items._examStatus == 1&&items._certNum &&items._certNum!=""?items._certNum: "-" }}</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>发证日期:{{ items._examStatus == 1&&items._issueDate&&items._issueDate!=""?items._issueDate: "-" }}</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>备注:{{ items._remarks&&items._remarks!="" ?items._remarks: "-" }}</td>
|
|
|
+ </tr>
|
|
|
+ <tr v-if="items._examStatus == 1">
|
|
|
+ <td colspan="2" style="text-align: center;">
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ class="down"
|
|
|
+ @click="down(items)"
|
|
|
+ style="font-size: 18px"
|
|
|
+ >证书下载</el-button
|
|
|
+ >
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ <!-- <div>
|
|
|
+ <div style="width: 30px;">
|
|
|
+ {{ indexs + 1 }}
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <span>考试时间:{{ items._examTime ?? "-" }}</span>
|
|
|
+ <span>成绩:{{ items._score ?? "-" }}</span>
|
|
|
+ <span>考试结果:{{ items.examStatusName ?? "-" }}</span>
|
|
|
+ <span>证书编号:{{ items._certNum ?? "-" }}</span>
|
|
|
+ <span>发证日期:{{ items._issueDate ?? "-" }}</span>
|
|
|
+ <span>备注:{{ items._remarks ?? "-" }}</span>
|
|
|
+ <div
|
|
|
+ v-if="items._examStatus == 1"
|
|
|
+ style="padding: 14px; font-size: 16px"
|
|
|
+ >
|
|
|
+ <div class="bottom clearfix">
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ class="down"
|
|
|
+ @click="down(items)"
|
|
|
+ style="float: right; font-size: 18px"
|
|
|
+ >证书下载</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div> -->
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <i></i>
|
|
|
+ </el-card>
|
|
|
+ <div style="text-align: center" v-if="notList.length > 0">
|
|
|
+ <el-pagination
|
|
|
+ :pager-count="3"
|
|
|
+ class="paginations"
|
|
|
+ @current-change="handleCurrentChange($event)"
|
|
|
+ :current-page.sync="formData.pageindex"
|
|
|
+ :page-size="formData.pagesize"
|
|
|
+ layout="total, prev, pager, next"
|
|
|
+ :total="total"
|
|
|
+ >
|
|
|
+ </el-pagination>
|
|
|
+ </div>
|
|
|
+ </el-main>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+export default {
|
|
|
+ name: "searchKey",
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ notList: [],
|
|
|
+ formList: [
|
|
|
+ {
|
|
|
+ label: "姓名:",
|
|
|
+ prop: "Name",
|
|
|
+ placeholder: "必填",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "身份证:",
|
|
|
+ prop: "IdNum",
|
|
|
+ placeholder: "与证书编号选填",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "证书编号:",
|
|
|
+ prop: "CertNum",
|
|
|
+ placeholder: "选填",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ loading: false,
|
|
|
+ total: 0,
|
|
|
+ formData: {
|
|
|
+ pagesize: 11, //每页内容条数
|
|
|
+ pageindex: 1, //当前第几页
|
|
|
+ },
|
|
|
+ beforesel: true,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ // this.getSearch();
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ $route: {
|
|
|
+ handler: function (val, oldVal) {
|
|
|
+ if(val.query.Name){
|
|
|
+ this.formData.Name = val.query.Name;
|
|
|
+ }
|
|
|
+ if(val.query.CertNum){
|
|
|
+ this.formData.CertNum = val.query.CertNum;
|
|
|
+ }
|
|
|
+ if(val.query.Name&&val.query.CertNum){
|
|
|
+ this.getSearch();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 深度观察监听
|
|
|
+ deep: true,
|
|
|
+ immediate: true,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ clear() {
|
|
|
+ this.total = 0;
|
|
|
+ this.formData = {
|
|
|
+ pagesize: 10, //每页内容条数
|
|
|
+ pageindex: 1, //当前第几页
|
|
|
+ };
|
|
|
+ },
|
|
|
+ init() {
|
|
|
+ this.formData = { pageindex: 1, pagesize: 10 };
|
|
|
+ },
|
|
|
+ getSearch(int) {
|
|
|
+ if (!this.formData.Name) {
|
|
|
+ this.$message({
|
|
|
+ type: "error",
|
|
|
+ message: "姓名不能为空!",
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!this.formData.IdNum && !this.formData.CertNum) {
|
|
|
+ this.$message({
|
|
|
+ type: "error",
|
|
|
+ message: "身份证和证书编号必须选填一个!",
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.beforesel = false;
|
|
|
+ this.loading = true;
|
|
|
+ if (int == 1) {
|
|
|
+ this.formData.pageindex = 1;
|
|
|
+ }
|
|
|
+ this.$api
|
|
|
+ .XfWebApiGetCertList(this.formData)
|
|
|
+ .then((res) => {
|
|
|
+ this.notList = res.Data.List || [];
|
|
|
+ this.total = res.Data.TotalCount;
|
|
|
+ this.notList.forEach((item) => {
|
|
|
+ if (item._examTime) {
|
|
|
+ item._examTime = item._examTime.substr(0, 10);
|
|
|
+ }
|
|
|
+ if (item._issueDate) {
|
|
|
+ item._issueDate = item._issueDate.substr(0, 10);
|
|
|
+ }
|
|
|
+ item.statusName =
|
|
|
+ item._status == -1
|
|
|
+ ? "已删除"
|
|
|
+ : item._status == 0
|
|
|
+ ? "官网隐藏"
|
|
|
+ : "正常";
|
|
|
+ item.examStatusName =
|
|
|
+ item._examStatus == 0
|
|
|
+ ? "-"
|
|
|
+ : item._examStatus == 1
|
|
|
+ ? "合格"
|
|
|
+ : "不合格";
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .finally(() => {
|
|
|
+ this.loading = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ handleCurrentChange(e) {
|
|
|
+ this.formData.pageindex = e;
|
|
|
+ this.getSearch();
|
|
|
+ },
|
|
|
+ //下载
|
|
|
+ down(row) {
|
|
|
+ if(this.loading){
|
|
|
+ this.$message({
|
|
|
+ type: "error",
|
|
|
+ message: "正在下载中,请稍后!",
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.loading = true;
|
|
|
+ var pdata = { IdNum: row._idNum, CertId: row._certId };
|
|
|
+ this.$api
|
|
|
+ .XfWebApiDownCert(pdata)
|
|
|
+ .then((res) => {
|
|
|
+ this.loading = false;
|
|
|
+ // console.log(res.Data,"sd")
|
|
|
+ this.downfile(res.Data);
|
|
|
+ })
|
|
|
+ .finally(() => {
|
|
|
+ this.loading = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ downfile(path) {
|
|
|
+ this.$methods.downloadbase64(this.formData.Name+"证书.png",path);
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.input_style {
|
|
|
+ background-color: #eee;
|
|
|
+ margin: 20px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ padding: 10px 20px;
|
|
|
+ border-radius: 24px;
|
|
|
+ font-size: 30px;
|
|
|
+ & > i {
|
|
|
+ flex-shrink: 0;
|
|
|
+ }
|
|
|
+ & > input {
|
|
|
+ flex: 1;
|
|
|
+ border: none;
|
|
|
+ background-color: transparent;
|
|
|
+ padding: 0px 20px;
|
|
|
+ width: 1px;
|
|
|
+ }
|
|
|
+ & > .btn {
|
|
|
+ color: #2453af;
|
|
|
+ flex-shrink: 0;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.notList_box {
|
|
|
+ padding: 48px;
|
|
|
+ .notList_style {
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 40px;
|
|
|
+ .infocard {
|
|
|
+ // display: flex;
|
|
|
+ width: 100%;
|
|
|
+ .imageleft {
|
|
|
+ display: inline;
|
|
|
+ width: 30%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ & > i {
|
|
|
+ width: 10px;
|
|
|
+ height: 10px;
|
|
|
+ background-color: #1890ff;
|
|
|
+ border-radius: 50%;
|
|
|
+ margin-right: 14px;
|
|
|
+ flex-shrink: 0;
|
|
|
+ }
|
|
|
+ & > .title {
|
|
|
+ flex: 1;
|
|
|
+ word-break: break-all;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ overflow: hidden;
|
|
|
+ display: -webkit-box;
|
|
|
+ -webkit-line-clamp: 1;
|
|
|
+ -webkit-box-orient: vertical;
|
|
|
+ color: #222;
|
|
|
+ font-weight: 500;
|
|
|
+ font-size: 28px;
|
|
|
+ margin-right: 20px;
|
|
|
+ }
|
|
|
+ & > .time {
|
|
|
+ color: #636b75;
|
|
|
+ font-size: 24px;
|
|
|
+ flex-shrink: 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+.infocard {
|
|
|
+ font-size: 16px;
|
|
|
+ .imageleft {
|
|
|
+ margin-right: 5px;
|
|
|
+ }
|
|
|
+ .divright {
|
|
|
+ display: grid;
|
|
|
+ }
|
|
|
+}
|
|
|
+.box-card {
|
|
|
+ width: 90%;
|
|
|
+ text-align: center;
|
|
|
+ margin-left: 5%;
|
|
|
+}
|
|
|
+.el-form-item {
|
|
|
+ margin-bottom: 10px !important;
|
|
|
+}
|
|
|
+.table {
|
|
|
+ border-collapse: collapse; /* 合并表格边框 */
|
|
|
+
|
|
|
+ width: 100%;
|
|
|
+}
|
|
|
+
|
|
|
+table td {
|
|
|
+ padding: 12px;
|
|
|
+ min-width: 0;
|
|
|
+ box-sizing: border-box;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ vertical-align: middle;
|
|
|
+ position: relative;
|
|
|
+ text-align: left;
|
|
|
+ border: 1px solid #ccc; /* 设置表格边框样式和颜色 */
|
|
|
+}
|
|
|
+</style>
|