| | |
| | | const emit = defineEmits(["getList"]); |
| | | const state = reactive({ |
| | | form: { |
| | | score: null, |
| | | id: '', |
| | | label: '', |
| | | value: '', |
| | |
| | | loading.value = false; |
| | | } |
| | | |
| | | const openDialog = (type, value) => { |
| | | const openDialog = async (type, value) => { |
| | | console.log(evaluateFormRef.value,666) |
| | | evaluateFormRef.value.openDialog(type, value) |
| | | } |
| | | |
对比新文件 |
| | |
| | | <template> |
| | | <div class="notice"> |
| | | <el-dialog |
| | | v-model="dialogVisible" |
| | | :title="title" |
| | | width="900px" |
| | | :before-close="handleClose" |
| | | > |
| | | <el-form :model="state.form" inline size="default" ref="busRef" :rules="state.formRules" label-width="140px" > |
| | | <el-form-item label="姓名:" prop="score"> |
| | | <el-input v-model.trim="state.form.score" readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="身份证号:" prop="content"> |
| | | <el-input v-model.trim="state.form.content" readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="项目名称:" prop="score"> |
| | | <el-input v-model.trim="state.form.score" readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="是否为专家组组长:" prop="content"> |
| | | <el-input v-model.trim="state.form.content" readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="考评记录时间:" prop="content"> |
| | | <el-input v-model.trim="state.form.content" readonly></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="总计:" prop="content"> |
| | | <el-input v-model.trim="state.form.content" readonly></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div> |
| | | 请对专家表现进行评分: |
| | | </div> |
| | | <div style="width: 100%;display: flex;align-items: center;justify-content: space-between"> |
| | | <el-button type="primary" size="default" v-preReClick>添加加分项</el-button> |
| | | <div> |
| | | 加分总计:52 分 |
| | | </div> |
| | | </div> |
| | | <el-table :data="tableData" border style="width: 100%"> |
| | | <el-table-column prop="name" label="加分项"/> |
| | | <el-table-column prop="score" label="分值" /> |
| | | </el-table> |
| | | <div style="width: 100%;display: flex;align-items: center;justify-content: space-between"> |
| | | <el-button type="primary" size="default" v-preReClick>添加扣分项</el-button> |
| | | <div> |
| | | 扣分总计:52 分 |
| | | </div> |
| | | </div> |
| | | <el-table :data="tableData" border style="width: 100%"> |
| | | <el-table-column prop="name" label="扣分项"/> |
| | | <el-table-column prop="score" label="分值" /> |
| | | </el-table> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button type="primary" @click="handleClose" size="default" v-preReClick>确认</el-button> |
| | | </span> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | <script setup> |
| | | import {reactive, ref, toRefs} from 'vue' |
| | | import Editor from "@/components/Editor/index.vue"; |
| | | import {ElMessage} from "element-plus"; |
| | | import {addNotice} from "@/api/backManage/notice"; |
| | | import {addDict, editDict, getDictDetail} from "@/api/backManage/evaluate"; |
| | | |
| | | const dialogVisible = ref(false); |
| | | const title = ref(""); |
| | | const busRef = ref(); |
| | | const length = ref() |
| | | const emit = defineEmits(["getList"]); |
| | | const state = reactive({ |
| | | form: { |
| | | id: '', |
| | | label: '', |
| | | value: '', |
| | | dictType: "sys_assess_type", |
| | | }, |
| | | formRules:{ |
| | | label: [{ required: true, message: '请输入类型', trigger: 'blur' }], |
| | | }, |
| | | |
| | | }) |
| | | |
| | | const openDialog = async (type, value) => { |
| | | length.value = value.listLength |
| | | title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ; |
| | | if(type === 'edit') { |
| | | state.form = value; |
| | | const param = { |
| | | dictId: value.id |
| | | } |
| | | const res = await getDictDetail(param); |
| | | if(res.code === 200){ |
| | | state.form = res.data |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | } |
| | | } |
| | | dialogVisible.value = true; |
| | | } |
| | | |
| | | const handleClose = () => { |
| | | busRef.value.clearValidate(); |
| | | reset(); |
| | | dialogVisible.value = false; |
| | | |
| | | } |
| | | const reset = () => { |
| | | state.form = { |
| | | id: '', |
| | | label: '', |
| | | value: '', |
| | | dictType: "sys_assess_type", |
| | | } |
| | | } |
| | | defineExpose({ |
| | | openDialog |
| | | }); |
| | | |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .notice{ |
| | | :deep(.el-form .el-form-item__label) { |
| | | font-size: 15px; |
| | | } |
| | | .file { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: flex-start; |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="notice"> |
| | | <el-dialog |
| | | v-model="dialogVisible" |
| | | title="专家评估" |
| | | width="500px" |
| | | > |
| | | <el-table :data="tableData" border style="width: 100%"> |
| | | <el-table-column type="index" width="55" align="center" /> |
| | | <el-table-column label="姓名" align="center" prop="name" /> |
| | | <el-table-column label="性别" align="center" prop="birthday" /> |
| | | <el-table-column label="身份证号" align="center" prop="birthday" /> |
| | | <el-table-column label="等级" align="center" prop="degree" /> |
| | | <el-table-column label="专业领域" align="center"> |
| | | <template #default="scope"> |
| | | {{findNodeById(expertTypes,scope.row.bigClassify)}}/{{findNodeById(expertTypes,scope.row.smallClassify)}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="选用方式" align="center" prop="birthday" /> |
| | | <el-table-column label="是否为组长" align="center" prop="degree" /> |
| | | <el-table-column label="评估状态" align="center" prop="state"> |
| | | <template #default="scope"> |
| | | <el-tag :type="scope.row.state==0?'info':scope.row.state==1?'':scope.row.state==2?'success':scope.row.state==3?'danger':'warning'"> |
| | | {{scope.row.state==0?'暂存':scope.row.state==1?'审核中':scope.row.state==2?'审核通过':scope.row.state==3?'审核驳回':scope.row.state==4?'已作废':'--'}} |
| | | </el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="考评总分" align="center" prop="degree" /> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <template #default="scope"> |
| | | <el-button type="primary" link @click="openEvaluate('edit',scope.row)">评分</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button type="primary" @click="dialogVisible = false" size="default" v-preReClick>确认</el-button> |
| | | </span> |
| | | </template> |
| | | <evaluate ref="evaluateRef"></evaluate> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | <script setup> |
| | | import {reactive, ref, toRefs} from 'vue' |
| | | import {ElMessage} from "element-plus"; |
| | | import Evaluate from "./evaluate"; |
| | | import {addDict, editDict, getDictDetail} from "@/api/backManage/evaluate"; |
| | | const dialogVisible = ref(false); |
| | | const evaluateRef = ref() |
| | | const title = ref(""); |
| | | const emit = defineEmits(["getList"]); |
| | | const state = reactive({ |
| | | |
| | | |
| | | }) |
| | | |
| | | const openDialog = async (type, value) => { |
| | | if(type === 'edit') { |
| | | state.form = value; |
| | | const param = { |
| | | dictId: value.id |
| | | } |
| | | const res = await getDictDetail(param); |
| | | if(res.code === 200){ |
| | | state.form = res.data |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | } |
| | | } |
| | | dialogVisible.value = true; |
| | | } |
| | | |
| | | const openEvaluate = ()=>{ |
| | | // evaluateRef.value.openDialog() |
| | | } |
| | | |
| | | const reset = () => { |
| | | state.form = { |
| | | id: '', |
| | | label: '', |
| | | value: '', |
| | | dictType: "sys_assess_type", |
| | | } |
| | | } |
| | | |
| | | defineExpose({ |
| | | openDialog |
| | | }) |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .notice{ |
| | | :deep(.el-form .el-form-item__label) { |
| | | font-size: 15px; |
| | | } |
| | | .file { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: flex-start; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" plain :icon="Plus" @click="openDialog('add',{})">新增</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- <el-row :gutter="10" class="mb8">--> |
| | | <!-- <el-col :span="1.5">--> |
| | | <!-- <el-button type="primary" plain :icon="Plus" @click="openAdd('add',{})">新增</el-button>--> |
| | | <!-- </el-col>--> |
| | | <!-- </el-row>--> |
| | | <el-table v-loading="loading" :data="expertList" :border="true"> |
| | | <el-table-column type="index" width="55" align="center" /> |
| | | <el-table-column label="项目名称" align="center" prop="name" /> |
| | |
| | | v-model:limit="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | <expert-form ref="expertFormRef" @getList="getList"></expert-form> |
| | | <expert-list ref="expertListRef" @getList="getList"></expert-list> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import {getCurrentInstance, onMounted, onUnmounted, reactive, ref, toRefs} from "vue"; |
| | | import {ElMessage, ElMessageBox} from "element-plus"; |
| | | import ExpertForm from "./components/expertForm"; |
| | | import ExpertList from "./components/expertList"; |
| | | import {delExpert, getExpertsList, getExpertTypes} from "../../../../api/form"; |
| | | import { Plus } from '@element-plus/icons-vue' |
| | | |
| | |
| | | }); |
| | | |
| | | const { showSearch,total, expertTypes,expertList,queryParams,classiFy,searchTime} = toRefs(data); |
| | | const expertFormRef = ref() |
| | | const expertListRef = ref() |
| | | |
| | | onMounted(()=>{ |
| | | getList() |
| | | getTypes() |
| | |
| | | loading.value = false; |
| | | } |
| | | |
| | | const openDialog = (type, value) => { |
| | | expertFormRef.value.openDialog(type, value) |
| | | const openDialog = async (type, value) => { |
| | | console.log(expertListRef.value,888) |
| | | expertListRef.value.openDialog(type, value) |
| | | } |
| | | |
| | | const handleDelete = (val) => { |