主管理员 2 weeks ago
parent
commit
ade2434406
4 changed files with 1118 additions and 786 deletions
  1. +1
    -0
      CatmDogd-Mall-Front-test/.env.development
  2. +371
    -326
      CatmDogd-Mall-Front-test/src/views/model/AppletQuestion/index.vue
  3. +275
    -0
      CatmDogd-Mall-Front-test/src/views/model/AppletUsersTeacher/components/ExamInfo.vue
  4. +471
    -460
      CatmDogd-Mall-Front-test/src/views/model/AppletUsersTeacher/openindex.vue

+ 1
- 0
CatmDogd-Mall-Front-test/.env.development View File

@ -6,6 +6,7 @@ VUE_APP_TITLE = 下单伴宠师综合管理平台
# 若依管理系统/开发环境 https://pet-admin.hhlm1688.com/api
# VUE_APP_BASE_API = 'https://api.catmdogd.com'
# VUE_APP_BASE_API = 'http://h5.xzaiyp.top'
VUE_APP_BASE_API = 'http://localhost:8002'
# 路由懒加载


+ 371
- 326
CatmDogd-Mall-Front-test/src/views/model/AppletQuestion/index.vue View File

@ -1,358 +1,403 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px" size="medium" class="ry_form">
<el-form-item label="题目标题" prop="title">
<el-input
v-model="queryParams.title"
placeholder="请输入题目标题"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="题目类型" prop="type">
<el-select v-model="queryParams.type" placeholder="请选择题目类型" clearable size="small">
</el-select>
</el-form-item>
<el-form-item label="排序编号" prop="orderNo">
<el-input
v-model="queryParams.orderNo"
placeholder="请输入排序编号"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item class="flex_one tr">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px"
size="medium" class="ry_form">
<el-form-item label="题目标题" prop="title">
<el-input v-model="queryParams.title" placeholder="请输入题目标题" clearable size="small"
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="题目类型" prop="type">
<el-select v-model="queryParams.type" placeholder="请选择题目类型" clearable size="small">
</el-select>
</el-form-item>
<el-form-item label="排序编号" prop="orderNo">
<el-input v-model="queryParams.orderNo" placeholder="请输入排序编号" clearable size="small"
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item class="flex_one tr">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['model:AppletQuestion:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['model:AppletQuestion:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['model:AppletQuestion:remove']"
>删除</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="warning"-->
<!-- plain-->
<!-- icon="el-icon-download"-->
<!-- size="mini"-->
<!-- :loading="exportLoading"-->
<!-- @click="handleExport"-->
<!-- v-hasPermi="['model:AppletQuestion:export']"-->
<!-- >导出</el-button>-->
<!-- </el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['model:AppletQuestion:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['model:AppletQuestion:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple"
@click="handleDelete" v-hasPermi="['model:AppletQuestion:remove']">删除</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="warning"-->
<!-- plain-->
<!-- icon="el-icon-download"-->
<!-- size="mini"-->
<!-- :loading="exportLoading"-->
<!-- @click="handleExport"-->
<!-- v-hasPermi="['model:AppletQuestion:export']"-->
<!-- >导出</el-button>-->
<!-- </el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="AppletQuestionList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="唯一标识" align="center" prop="id" />-->
<el-table-column label="创建时间" align="center" prop="createTime" />
<el-table-column label="题目标题" align="center" prop="title" />
<el-table-column label="题目类型" align="center" prop="type" v-if="columns[1].visible">
<template slot-scope="scope">
<dict-tag :options="dict.type.tm_type" :value="scope.row.type"/>
</template>
</el-table-column>
<el-table-column label="排序编号" align="center" prop="orderNo"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table v-loading="loading" :data="AppletQuestionList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="唯一标识" align="center" prop="id" />-->
<el-table-column label="创建时间" align="center" prop="createTime" />
<el-table-column label="题目标题" align="center" prop="title" />
<el-table-column label="题目类型" align="center" prop="type" v-if="columns[1].visible">
<template slot-scope="scope">
<dict-tag :options="dict.type.tm_type" :value="scope.row.type" />
</template>
</el-table-column>
<el-table-column label="排序编号" align="center" prop="orderNo" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="goOrder(scope.row.id)"
>设置答案</el-button>
<template slot-scope="scope">
<!-- <el-button size="mini" type="text" @click="goOrder(scope.row.id)">设置答案</el-button> -->
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['model:AppletQuestion:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['model:AppletQuestion:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['model:AppletQuestion:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['model:AppletQuestion:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改考核题库对话框 -->
<el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="108px" >
<el-form-item label="题目标题" prop="title">
<el-input
type="textarea"
v-model="form.title"
placeholder="请输入题目标题"
:rows="4"
/>
</el-form-item>
<el-form-item label="排序编号" prop="orderNo">
<el-input v-model="form.orderNo" placeholder="请输入排序编号" />
</el-form-item>
<el-form-item label="题目类型" prop="type">
<el-select v-model="form.type" placeholder="请选择题目类型">
<el-option
v-for="dict in dict.type.tm_type"
:key="dict.value"
:label="dict.label"
:value="dict.value" ></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="删除标识" prop="delFlag">-->
<!-- <el-input v-model="form.delFlag" placeholder="请输入删除标识" />-->
<!-- </el-form-item>-->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
<!-- 添加或修改考核题库对话框 -->
<el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="108px">
<el-form-item label="题目标题" prop="title">
<el-input type="textarea" v-model="form.title" placeholder="请输入题目标题" :rows="4" />
</el-form-item>
<el-form-item label="排序编号" prop="orderNo">
<el-input v-model="form.orderNo" placeholder="请输入排序编号" />
</el-form-item>
<el-form-item label="题目类型" prop="type">
<el-select v-model="form.type" placeholder="请选择题目类型" @change="handleTypeChange">
<el-option v-for="dict in dict.type.tm_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
<!-- 填空题配置 -->
<template v-if="form.type === '培训'">
<el-form-item label="最少字数" prop="numberWords">
<el-input-number v-model="form.numberWords" :min="1" :max="1000" placeholder="请输入最少字数限制" />
</el-form-item>
</template>
<!-- 选择题答案配置 -->
<template v-if="form.type === '基本'">
<el-divider content-position="left">选项设置</el-divider>
<div v-for="(option, index) in form.answerList" :key="index" class="option-item">
<el-row :gutter="10" class="mb-2">
<el-col :span="14" style="margin-left: 10%;">
<el-input v-model="option.title" type="textarea" :placeholder="`请输入选项${index + 1}内容`" />
</el-col>
<el-col :span="3">
<el-checkbox v-model="option.isTrue" label="正确答案" />
</el-col>
<el-col :span="3">
<el-button type="danger" @click="removeOption(index)" :disabled="form.answerList.length <= 2">删除</el-button>
</el-col>
</el-row>
</div>
<div style="display: flex; justify-content: center;width: 100%;">
<el-button type="primary" @click="addOption" class="mt-2">添加选项</el-button>
</div>
</template>
<!-- <el-form-item label="删除标识" prop="delFlag">-->
<!-- <el-input v-model="form.delFlag" placeholder="请输入删除标识" />-->
<!-- </el-form-item>-->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listAppletQuestion, getAppletQuestion, delAppletQuestion, addAppletQuestion, updateAppletQuestion, exportAppletQuestion } from "@/api/model/AppletQuestion";
import {decryptedPhone} from "@/api/ums/member";
import { decryptedPhone } from "@/api/ums/member";
export default {
name: "AppletQuestion",
dicts: ['tm_type'],
data() {
return {
//
loading: true,
//
exportLoading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
AppletQuestionList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
title: null,
name: "AppletQuestion",
dicts: ['tm_type'],
data() {
return {
//
loading: true,
//
exportLoading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
AppletQuestionList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
title: null,
type: null,
type: null,
orderNo: null,
orderNo: null,
},
//
form: {},
//
rules: {
title: [
{ required: true, message: "题目标题不能为空", trigger: "blur" }
],
},
//
form: {
id: null,
title: null,
type: null,
orderNo: null,
answer: null,
numberWords: 1,
answerList: [],
delFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
},
//
rules: {
title: [
{ required: true, message: "题目标题不能为空", trigger: "blur" }
],
type: [
{ required: true, message: "题目类型不能为空", trigger: "change" }
],
type: [
{ required: true, message: "题目类型不能为空", trigger: "change" }
],
orderNo: [
{ required: true, message: "排序编号不能为空", trigger: "blur" }
],
orderNo: [
{ required: true, message: "排序编号不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "删除标识不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "删除标识不能为空", trigger: "blur" }
],
},
columns: [
{ key: 1, label: "题目标题", visible: true },
{ key: 2, label: "题目类型", visible: true },
{ key: 3, label: "排序编号", visible: true },
],
};
},
created() {
this.getList();
},
methods: {
/** 查询考核题库列表 */
getList() {
this.loading = true;
listAppletQuestion(this.queryParams).then(response => {
this.AppletQuestionList = response.rows;
this.total = response.total;
this.loading = false;
});
},
columns: [
{ key: 1, label: "题目标题", visible: true },
{ key: 2, label: "题目类型", visible: true },
{ key: 3, label: "排序编号", visible: true },
],
};
},
//
cancel() {
this.open = false;
this.reset();
created() {
this.getList();
},
//
reset() {
this.form = {
id: null,
title: null,
methods: {
type: null,
orderNo: null,
delFlag: null,
createBy: null,
createTime: null,
/** 查询考核题库列表 */
getList() {
this.loading = true;
listAppletQuestion(this.queryParams).then(response => {
this.AppletQuestionList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
title: null,
type: null,
orderNo: null,
answer: null,
numberWords: 1,
answerList: [],
delFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加考核题库";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getAppletQuestion(id).then(response => {
this.form = response.data;
updateBy: null,
this.form.answerList.map(item => {
item.isTrue = item.isTrue == 1 ? true : false;
})
updateTime: null,
this.open = true;
this.title = "修改考核题库";
});
},
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加考核题库";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getAppletQuestion(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改考核题库";
});
},
goOrder(questionId) {
decryptedPhone(questionId).then(res => {
this.$router.push({
path: '/examine/AppletAnswer',
query: {
questionId: res
}
})
})
},
goOrder(questionId){
decryptedPhone(questionId).then(res => {
this.$router.push({
path: '/examine/AppletAnswer',
query: {
questionId: res
}
})
})
},
/** 题目类型改变 */
handleTypeChange(value) {
this.form.answer = null;
if (value === '基本') {
//
this.form.answerList = [
{ title: '', isTrue: false, orderNo : 1 },
{ title: '', isTrue: false, orderNo : 2 }
];
} else {
this.form.answerList = [];
this.form.numberWords = 1;
}
},
/** 添加选项 */
addOption() {
if (this.form.answerList.length < 8) {
this.form.answerList.push({
title: '',
isTrue: false,
orderNo: this.form.answerList.length + 1
});
}
},
/** 删除选项 */
removeOption(index) {
this.form.answerList.splice(index, 1);
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
//
// if (this.form.type === '') {
// this.form.answer = this.form.answerList
// .map((option, index) => option.isTrue ? String.fromCharCode(65 + index) : null)
// .filter(Boolean)
// .join(',');
// }
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateAppletQuestion(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAppletQuestion(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
this.form.answerList.map(item => {
item.isTrue = item.isTrue == true ? 1 : 0;
})
if (this.form.id != null) {
updateAppletQuestion(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAppletQuestion(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除考核题库编号为"' + ids + '"的数据项?').then(function() {
return delAppletQuestion(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$modal.confirm('是否确认导出所有考核题库数据项?').then(() => {
this.exportLoading = true;
return exportAppletQuestion(queryParams);
}).then(response => {
this.download(response.msg);
this.exportLoading = false;
}).catch(() => {});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除考核题库编号为"' + ids + '"的数据项?').then(function () {
return delAppletQuestion(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$modal.confirm('是否确认导出所有考核题库数据项?').then(() => {
this.exportLoading = true;
return exportAppletQuestion(queryParams);
}).then(response => {
this.download(response.msg);
this.exportLoading = false;
}).catch(() => { });
},
}
}
};
</script>
<style scoped>
.option-item {
margin-bottom: 10px;
}
.option-label {
display: flex;
align-items: center;
justify-content: center;
}
.label-text {
font-weight: bold;
}
.mb-2 {
margin-bottom: 10px;
}
.mt-2 {
margin-top: 10px;
}
</style>

+ 275
- 0
CatmDogd-Mall-Front-test/src/views/model/AppletUsersTeacher/components/ExamInfo.vue View File

@ -0,0 +1,275 @@
<template>
<el-dialog title="考核信息" :visible.sync="visible" width="60%" append-to-body>
<div v-loading="loading">
<el-tabs v-model="activeTab">
<!-- <el-tab-pane label="基本信息" name="basic">
<el-descriptions :column="2" border>
<el-descriptions-item label="姓名">{{ examInfo.name }}</el-descriptions-item>
<el-descriptions-item label="手机号">{{ examInfo.phone }}</el-descriptions-item>
<el-descriptions-item label="身份证">{{ examInfo.idCard }}</el-descriptions-item>
<el-descriptions-item label="提交时间">{{ examInfo.createTime }}</el-descriptions-item>
</el-descriptions>
</el-tab-pane> -->
<el-tab-pane label="答题详情" name="answers">
<div v-for="(question, index) in examInfo.answerList" :key="index" class="question-item">
<div class="question-title">
<span class="question-index">{{ index + 1 }}.</span>
<span class="question-type">[{{ question.type === '培训' ? '填空题' : '选择题' }}]</span>
<span class="question-content">{{ question.title }}</span>
</div>
<!-- 填空题答案 -->
<template v-if="question.type === '培训'">
<div class="answer-content">
<div class="answer-label">答案</div>
<div class="answer-text">{{ question.userAppletAnswerTrain.answer }}</div>
<div class="answer-requirement">最少字数要求{{ question.numberWords }}</div>
</div>
</template>
<!-- 选择题答案 -->
<template v-else>
<div class="options-list">
<div v-for="option in question.answerList" :key="option.orderNo"
:class="['option-item', {
'correct': option.isTrue,
'selected': isOptionSelected(question, option.id),
'wrong-selected': isOptionSelected(question, option.id) && !option.isTrue
}]">
<span class="option-label">{{ String.fromCharCode(64 + option.orderNo) }}.</span>
<span class="option-content">{{ option.title }}</span>
<span v-if="option.isTrue" class="correct-tag">正确答案</span>
<span v-if="isOptionSelected(question, option.id)"
:class="['selected-tag', { 'wrong-tag': !option.isTrue }]">
{{ option.isTrue ? '已选择' : '错误选择' }}
</span>
</div>
</div>
<div class="answer-result" :class="{ 'correct': isAnswerCorrect(question), 'wrong': !isAnswerCorrect(question) }">
<i :class="['el-icon-' + (isAnswerCorrect(question) ? 'success' : 'error')]"></i>
{{ isAnswerCorrect(question) ? '回答正确' : '回答错误' }}
</div>
</template>
</div>
</el-tab-pane>
</el-tabs>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="handleClose"> </el-button>
</div>
</el-dialog>
</template>
<script>
import { getAppletUsersTeacher } from "@/api/model/AppletUsersTeacher";
export default {
name: "ExamInfo",
props: {
visible: {
type: Boolean,
default: false
},
userId: {
type: [String, Number],
default: null
}
},
data() {
return {
loading: false,
activeTab: 'answers',
// examInfo: {
// name: '',
// phone: '',
// idCard: '',
// createTime: '',
// answerList: [
// {
// title: '',
// type: '',
// userAnswer: '',
// numberWords: '',
// answerList: [
// {
// title: '',
// isTrue: '',
// orderNo: ''
// }
// ]
// }
// ]
// },
examInfo: {
name: '',
phone: '',
idCard: '',
createTime: '',
answerList: []
},
};
},
watch: {
visible(val) {
if (val && this.userId) {
this.getExamInfo();
}
}
},
methods: {
getExamInfo() {
this.loading = true;
getAppletUsersTeacher(this.userId).then(response => {
this.examInfo = response.data;
this.loading = false;
}).catch(() => {
this.loading = false;
});
},
handleClose() {
this.$emit('update:visible', false);
},
//
isOptionSelected(question, optionId) {
if (!question.userAnswerBaseList || !question.userAnswerBaseList.length) return false;
return question.userAnswerBaseList.some(answer => answer.answerId === optionId);
},
//
isAnswerCorrect(question) {
if (!question.userAnswerBaseList || !question.userAnswerBaseList.length) return false;
// ID
const correctOptionIds = question.answerList
.filter(option => option.isTrue)
.map(option => option.id);
// ID
const userAnswerIds = question.userAnswerBaseList.map(answer => answer.answerId);
//
if (userAnswerIds.length !== correctOptionIds.length) {
return false;
}
//
return userAnswerIds.every(answerId => correctOptionIds.includes(answerId));
}
}
};
</script>
<style lang="scss" scoped>
.question-item {
margin-bottom: 20px;
padding: 15px;
background: #f8f9fa;
border-radius: 4px;
.question-title {
margin-bottom: 15px;
font-size: 16px;
font-weight: bold;
.question-index {
margin-right: 8px;
}
.question-type {
color: #409EFF;
margin-right: 8px;
}
}
.answer-content {
padding: 10px;
background: #fff;
border-radius: 4px;
.answer-label {
font-weight: bold;
margin-bottom: 8px;
}
.answer-text {
margin-bottom: 8px;
line-height: 1.5;
}
.answer-requirement {
color: #909399;
font-size: 13px;
}
}
.options-list {
.option-item {
padding: 10px;
margin-bottom: 8px;
background: #fff;
border-radius: 4px;
display: flex;
align-items: center;
&.correct {
background: #f0f9eb;
}
&.selected {
background: #ecf5ff;
}
&.wrong-selected {
background: #fef0f0;
}
.option-label {
font-weight: bold;
margin-right: 8px;
}
.option-content {
flex: 1;
}
.correct-tag {
color: #67c23a;
margin-left: 10px;
}
.selected-tag {
color: #409EFF;
margin-left: 10px;
&.wrong-tag {
color: #f56c6c;
}
}
}
}
.answer-result {
margin-top: 10px;
padding: 8px 12px;
border-radius: 4px;
display: flex;
align-items: center;
font-weight: bold;
&.correct {
background: #f0f9eb;
color: #67c23a;
}
&.wrong {
background: #fef0f0;
color: #f56c6c;
}
i {
margin-right: 8px;
font-size: 16px;
}
}
}
</style>

+ 471
- 460
CatmDogd-Mall-Front-test/src/views/model/AppletUsersTeacher/openindex.vue View File

@ -1,475 +1,486 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px" size="medium" class="ry_form">
<!-- <el-form-item label="关联用户" prop="userId">-->
<!-- <el-input-->
<!-- v-model="queryParams.userId"-->
<!-- placeholder="请输入关联用户"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="审核状态" prop="status">-->
<!-- <el-select v-model="queryParams.status" placeholder="请选择审核状态" clearable size="small">-->
<!-- <el-option-->
<!-- v-for="dict in dict.type.applet_state"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="姓名" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入姓名"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="身份证" prop="idCard">
<el-input
v-model="queryParams.idCard"
placeholder="请输入身份证"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="性别" prop="sex">-->
<!-- <el-select v-model="queryParams.sex" placeholder="请选择性别" clearable size="small">-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="手机号" prop="phone">
<el-input
v-model="queryParams.phone"
placeholder="请输入手机号"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="养宠经验" prop="experience">-->
<!-- <el-input-->
<!-- v-model="queryParams.experience"-->
<!-- placeholder="请输入养宠经验"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="是否有专业执照" prop="isHave">-->
<!-- <el-input-->
<!-- v-model="queryParams.isHave"-->
<!-- placeholder="请输入是否有专业执照"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="个人宠物类型" prop="petType">-->
<!-- <el-select v-model="queryParams.petType" placeholder="请选择个人宠物类型" clearable size="small">-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="审核状态" prop="status">-->
<!-- <el-select v-model="queryParams.status" placeholder="请选择审核状态" clearable size="small">-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item class="flex_one tr">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- <el-row :gutter="10" class="mb8">-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="el-icon-plus"-->
<!-- size="mini"-->
<!-- @click="handleAdd"-->
<!-- v-hasPermi="['model:AppletUsersTeacher:add']"-->
<!-- >新增</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['model:AppletUsersTeacher:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['model:AppletUsersTeacher:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="warning"-->
<!-- plain-->
<!-- icon="el-icon-download"-->
<!-- size="mini"-->
<!-- :loading="exportLoading"-->
<!-- @click="handleExport"-->
<!-- v-hasPermi="['model:AppletUsersTeacher:export']"-->
<!-- >导出</el-button>-->
<!-- </el-col>-->
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>-->
<!-- </el-row>-->
<el-table v-loading="loading" :data="AppletUsersTeacherList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="标识" align="center" prop="id" />-->
<el-table-column label="创建时间" align="center" prop="createTime" />
<el-table-column label="审核状态" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.applet_state" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column label="关联用户" align="center" prop="userId" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="身份证" align="center" prop="idCard" />
<!-- <el-table-column label="性别" align="center" prop="sex" />-->
<el-table-column label="性别" align="center" prop="sex" >
<template slot-scope="scope">
<dict-tag :options="dict.type.applet_sex" :value="scope.row.sex"/>
</template>
</el-table-column>
<el-table-column label="手机号" align="center" prop="phone" />
<el-table-column label="养宠经验" align="center" prop="experience" />
<el-table-column label="是否有专业执照" align="center" prop="isHave"/>
<el-table-column label="个人宠物类型" align="center" prop="petType" />
<!-- <el-table-column label="审核状态" align="center" prop="status" />-->
<el-table-column label="审核图片" align="center" prop="审核图片">
<template slot-scope="{ row }">
<el-image v-if="row.images" :src="row.images" :preview-src-list="[row.images]" class="small-img circle-img"/>
</template>
</el-table-column>
<el-table-column label="所在地区" align="center" prop="area" />
<el-table-column label="详细地址" align="center" prop="address" />
<el-table-column label="经度" align="center" prop="longitude" />
<!-- <el-table-column label="创建人" align="center" prop="createBy" />-->
<el-table-column label="纬度" align="center" prop="latitude" />
<!-- <el-table-column label="修改人" align="center" prop="updateBy" />-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['model:AppletUsersTeacher:edit']"
>审核认证</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['model:AppletUsersTeacher:remove']"-->
<!-- >删除</el-button>-->
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改伴宠师认证表对话框 -->
<el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="108px" >
<el-form-item label="审核状态" prop="status">
<el-select v-model="form.status" placeholder="请选择审核状态">
<el-option
v-for="dict in dict.type.applet_state"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)" ></el-option>
</el-select>
</el-form-item>
<el-form-item label="关联用户" prop="userId">
<el-input v-model="form.userId" placeholder="请输入关联用户" disabled />
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" disabled />
</el-form-item>
<el-form-item label="身份证" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入身份证" disabled/>
</el-form-item>
<el-form-item label="性别" prop="sex">
<el-select v-model="form.sex" placeholder="请选择性别" disabled>
<el-option
v-for="dict in dict.type.applet_sex"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)" ></el-option>
</el-select>
</el-form-item>
<el-form-item label="手机号" prop="phone">
<el-input v-model="form.phone" placeholder="请输入手机号" disabled/>
</el-form-item>
<el-form-item label="养宠经验" prop="experience">
<el-input v-model="form.experience" placeholder="请输入养宠经验" disabled />
</el-form-item>
<el-form-item label="是否有专业执照" prop="isHave">
<el-input v-model="form.isHave" placeholder="请输入是否有专业执照" disabled/>
</el-form-item>
<el-form-item label="个人宠物类型" prop="petType">
<el-select v-model="form.petType" placeholder="请选择个人宠物类型" disabled>
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="审核图片" >
<!-- <imageUpload v-model="form.images"/>-->
<oss-image-upload v-model="form.images" :limit="1"></oss-image-upload>
</el-form-item>
<el-form-item label="所在地区" prop="area">
<el-input v-model="form.area" placeholder="请输入所在地区" disabled/>
</el-form-item>
<el-form-item label="详细地址" prop="address">
<el-input v-model="form.address" placeholder="请输入详细地址" disabled/>
</el-form-item>
<!-- <el-form-item label="经度" prop="longitude">-->
<!-- <el-input v-model="form.longitude" placeholder="请输入经度" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="创建人" prop="create by">-->
<!-- <el-input v-model="form.createBy" placeholder="请输入创建人" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="纬度" prop="latitude">-->
<!-- <el-input v-model="form.latitude" placeholder="请输入纬度" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="修改人" prop="update by">-->
<!-- <el-input v-model="form.updateBy" placeholder="请输入修改人" />-->
<!-- </el-form-item>-->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px"
size="medium" class="ry_form">
<!-- <el-form-item label="关联用户" prop="userId">-->
<!-- <el-input-->
<!-- v-model="queryParams.userId"-->
<!-- placeholder="请输入关联用户"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="审核状态" prop="status">-->
<!-- <el-select v-model="queryParams.status" placeholder="请选择审核状态" clearable size="small">-->
<!-- <el-option-->
<!-- v-for="dict in dict.type.applet_state"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="姓名" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入姓名" clearable size="small"
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="身份证" prop="idCard">
<el-input v-model="queryParams.idCard" placeholder="请输入身份证" clearable size="small"
@keyup.enter.native="handleQuery" />
</el-form-item>
<!-- <el-form-item label="性别" prop="sex">-->
<!-- <el-select v-model="queryParams.sex" placeholder="请选择性别" clearable size="small">-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="手机号" prop="phone">
<el-input v-model="queryParams.phone" placeholder="请输入手机号" clearable size="small"
@keyup.enter.native="handleQuery" />
</el-form-item>
<!-- <el-form-item label="养宠经验" prop="experience">-->
<!-- <el-input-->
<!-- v-model="queryParams.experience"-->
<!-- placeholder="请输入养宠经验"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="是否有专业执照" prop="isHave">-->
<!-- <el-input-->
<!-- v-model="queryParams.isHave"-->
<!-- placeholder="请输入是否有专业执照"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="个人宠物类型" prop="petType">-->
<!-- <el-select v-model="queryParams.petType" placeholder="请选择个人宠物类型" clearable size="small">-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="审核状态" prop="status">-->
<!-- <el-select v-model="queryParams.status" placeholder="请选择审核状态" clearable size="small">-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item class="flex_one tr">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- <el-row :gutter="10" class="mb8">-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="el-icon-plus"-->
<!-- size="mini"-->
<!-- @click="handleAdd"-->
<!-- v-hasPermi="['model:AppletUsersTeacher:add']"-->
<!-- >新增</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['model:AppletUsersTeacher:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['model:AppletUsersTeacher:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="warning"-->
<!-- plain-->
<!-- icon="el-icon-download"-->
<!-- size="mini"-->
<!-- :loading="exportLoading"-->
<!-- @click="handleExport"-->
<!-- v-hasPermi="['model:AppletUsersTeacher:export']"-->
<!-- >导出</el-button>-->
<!-- </el-col>-->
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>-->
<!-- </el-row>-->
<el-table v-loading="loading" :data="AppletUsersTeacherList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="标识" align="center" prop="id" />-->
<el-table-column label="创建时间" align="center" prop="createTime" />
<el-table-column label="审核状态" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.applet_state" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="关联用户" align="center" prop="userId" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="身份证" align="center" prop="idCard" />
<!-- <el-table-column label="性别" align="center" prop="sex" />-->
<el-table-column label="性别" align="center" prop="sex">
<template slot-scope="scope">
<dict-tag :options="dict.type.applet_sex" :value="scope.row.sex" />
</template>
</el-table-column>
<el-table-column label="手机号" align="center" prop="phone" />
<el-table-column label="养宠经验" align="center" prop="experience" />
<el-table-column label="是否有专业执照" align="center" prop="isHave">
<template slot-scope="scope">
<el-tag v-if="scope.row.isHave" type="success"></el-tag>
<el-tag v-else type="danger"></el-tag>
</template>
</el-table-column>
<el-table-column label="个人宠物类型" align="center" prop="petType" >
<template slot-scope="scope">
<el-tag v-for="item in scope.row.petType
&&
scope.row.petType.split(',')"
:key="item" type="success">{{ {
'3': '猫',
'4': '狗',
'5': '异宠'
}[item] }}</el-tag>
</template>
</el-table-column>
<!-- <el-table-column label="审核状态" align="center" prop="status" />-->
<el-table-column label="审核图片" align="center" prop="审核图片">
<template slot-scope="{ row }">
<el-image v-if="row.images" :src="row.images" :preview-src-list="[row.images]"
class="small-img circle-img" />
</template>
</el-table-column>
<!-- <el-table-column label="所在地区" align="center" prop="area" /> -->
<!-- <el-table-column label="详细地址" align="center" prop="address" /> -->
<!-- <el-table-column label="经度" align="center" prop="longitude" /> -->
<!-- <el-table-column label="创建人" align="center" prop="createBy" />-->
<!-- <el-table-column label="纬度" align="center" prop="latitude" /> -->
<!-- <el-table-column label="修改人" align="center" prop="updateBy" />-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['model:AppletUsersTeacher:edit']">审核认证</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleExamInfo(scope.row)"
v-hasPermi="['model:AppletUsersTeacher:edit']">考核信息</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['model:AppletUsersTeacher:remove']"-->
<!-- >删除</el-button>-->
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改伴宠师认证表对话框 -->
<el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="108px">
<el-form-item label="审核状态" prop="status">
<el-select v-model="form.status" placeholder="请选择审核状态">
<el-option v-for="dict in dict.type.applet_state" :key="dict.value" :label="dict.label"
:value="parseInt(dict.value)"></el-option>
</el-select>
</el-form-item>
<el-form-item label="关联用户" prop="userId">
<el-input v-model="form.userId" placeholder="请输入关联用户" disabled />
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" disabled />
</el-form-item>
<el-form-item label="身份证" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入身份证" disabled />
</el-form-item>
<el-form-item label="性别" prop="sex">
<el-select v-model="form.sex" placeholder="请选择性别" disabled>
<el-option v-for="dict in dict.type.applet_sex" :key="dict.value" :label="dict.label"
:value="parseInt(dict.value)"></el-option>
</el-select>
</el-form-item>
<el-form-item label="手机号" prop="phone">
<el-input v-model="form.phone" placeholder="请输入手机号" disabled />
</el-form-item>
<el-form-item label="养宠经验" prop="experience">
<el-input v-model="form.experience" placeholder="请输入养宠经验" disabled />
</el-form-item>
<el-form-item label="是否有专业执照" prop="isHave">
<el-tag v-if="form.isHave" type="success"></el-tag>
<el-tag v-else type="danger"></el-tag>
</el-form-item>
<el-form-item label="个人宠物类型" prop="petType">
<el-tag v-for="item in form.petType
&&
form.petType.split(',')"
:key="item" type="success">{{ {
'3': '猫',
'4': '狗',
'5': '异宠'
}[item] }}</el-tag>
</el-form-item>
<el-form-item label="审核图片">
<!-- <imageUpload v-model="form.images"/>-->
<oss-image-upload v-model="form.images" :limit="1"></oss-image-upload>
</el-form-item>
<el-form-item label="所在地区" prop="area">
<el-input v-model="form.area" placeholder="请输入所在地区" disabled />
</el-form-item>
<el-form-item label="详细地址" prop="address">
<el-input v-model="form.address" placeholder="请输入详细地址" disabled />
</el-form-item>
<!-- <el-form-item label="经度" prop="longitude">-->
<!-- <el-input v-model="form.longitude" placeholder="请输入经度" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="创建人" prop="create by">-->
<!-- <el-input v-model="form.createBy" placeholder="请输入创建人" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="纬度" prop="latitude">-->
<!-- <el-input v-model="form.latitude" placeholder="请输入纬度" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="修改人" prop="update by">-->
<!-- <el-input v-model="form.updateBy" placeholder="请输入修改人" />-->
<!-- </el-form-item>-->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 考核信息查看对话框 -->
<exam-info :visible.sync="examInfoVisible" :userId="currentUserId" />
</div>
</template>
<script>
import { listAppletUsersTeacher, getAppletUsersTeacher, delAppletUsersTeacher, addAppletUsersTeacher, updateAppletUsersTeacher, exportAppletUsersTeacher } from "@/api/model/AppletUsersTeacher";
import ExamInfo from './components/ExamInfo.vue';
export default {
name: "AppletUsersTeacher",
dicts: ['applet_sex', 'applet_state'],
data() {
return {
//
loading: true,
//
exportLoading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
AppletUsersTeacherList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
userId: null,
name: null,
idCard: null,
sex: null,
phone: null,
experience: null,
isHave: null,
petType: null,
status: 0,
images: null,
},
//
form: {},
//
rules: {
},
columns: [
{ key: 1, label: "关联用户", visible: true },
{ key: 2, label: "姓名", visible: true },
{ key: 3, label: "身份证", visible: true },
{ key: 4, label: "性别", visible: true },
{ key: 5, label: "手机号", visible: true },
{ key: 6, label: "养宠经验", visible: true },
{ key: 7, label: "是否有专业执照", visible: true },
{ key: 8, label: "个人宠物类型", visible: true },
{ key: 9, label: "审核状态", visible: true },
{ key: 10, label: "审核图片", visible: false },
],
};
},
created() {
this.getList();
},
methods: {
/** 查询伴宠师认证列表 */
getList() {
this.loading = true;
listAppletUsersTeacher(this.queryParams).then(response => {
this.AppletUsersTeacherList = response.rows;
this.total = response.total;
this.loading = false;
});
name: "AppletUsersTeacher",
components: {
ExamInfo
},
//
cancel() {
this.open = false;
this.reset();
dicts: ['applet_sex', 'applet_state'],
data() {
return {
//
loading: true,
//
exportLoading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
AppletUsersTeacherList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
userId: null,
name: null,
idCard: null,
sex: null,
phone: null,
experience: null,
isHave: null,
petType: null,
status: 0,
images: null,
},
//
form: {},
//
rules: {
},
columns: [
{ key: 1, label: "关联用户", visible: true },
{ key: 2, label: "姓名", visible: true },
{ key: 3, label: "身份证", visible: true },
{ key: 4, label: "性别", visible: true },
{ key: 5, label: "手机号", visible: true },
{ key: 6, label: "养宠经验", visible: true },
{ key: 7, label: "是否有专业执照", visible: true },
{ key: 8, label: "个人宠物类型", visible: true },
{ key: 9, label: "审核状态", visible: true },
{ key: 10, label: "审核图片", visible: false },
],
examInfoVisible: false,
currentUserId: null,
};
},
//
reset() {
this.form = {
id: null,
userId: null,
name: null,
idCard: null,
sex: null,
phone: null,
experience: null,
isHave: null,
petType: null,
status: 0,
images: null,
createTime: null,
updateTime: null,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加伴宠师认证";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getAppletUsersTeacher(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改伴宠师认证";
});
created() {
this.getList();
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateAppletUsersTeacher(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
methods: {
/** 查询伴宠师认证列表 */
getList() {
this.loading = true;
listAppletUsersTeacher(this.queryParams).then(response => {
this.AppletUsersTeacherList = response.rows;
this.total = response.total;
this.loading = false;
});
} else {
addAppletUsersTeacher(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
userId: null,
name: null,
idCard: null,
sex: null,
phone: null,
experience: null,
isHave: null,
petType: null,
status: 0,
images: null,
createTime: null,
updateTime: null,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加伴宠师认证";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getAppletUsersTeacher(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改伴宠师认证";
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除伴宠师认证编号为"' + ids + '"的数据项?').then(function() {
return delAppletUsersTeacher(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$modal.confirm('是否确认导出所有伴宠师认证数据项?').then(() => {
this.exportLoading = true;
return exportAppletUsersTeacher(queryParams);
}).then(response => {
this.download(response.msg);
this.exportLoading = false;
}).catch(() => {});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateAppletUsersTeacher(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAppletUsersTeacher(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除伴宠师认证编号为"' + ids + '"的数据项?').then(function () {
return delAppletUsersTeacher(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$modal.confirm('是否确认导出所有伴宠师认证数据项?').then(() => {
this.exportLoading = true;
return exportAppletUsersTeacher(queryParams);
}).then(response => {
this.download(response.msg);
this.exportLoading = false;
}).catch(() => { });
},
/** 查看考核信息 */
handleExamInfo(row) {
this.currentUserId = row.id;
this.examInfoVisible = true;
},
}
}
};
</script>

Loading…
Cancel
Save