1.年末考评-年末科室考评,显示科室列表的时候,信息超过显示宽度,没有自动显示滑动轮

2.日常考评-考评评价管理,点击查询没反应
3.系统管理-人员信息-执照勾选功能未体现
This commit is contained in:
王创世 2025-04-11 16:54:09 +08:00
parent 045c637581
commit a980b649fd
14 changed files with 983 additions and 857 deletions

BIN
dist.zip Normal file

Binary file not shown.

View File

@ -7,10 +7,14 @@
#app {
height: 100%;
}
body {
height: 100%;
}
html {
height: 100%;
}
</style>

View File

@ -9,7 +9,7 @@ type TAxiosOption = {
headers: object;
}
//记得修改上传路径/api/common/upload
const baseURL = 'http://yfyd.hschool.com.cn' // 设置基础URL前缀
const baseURL = 'https://yfyd.xysdwrmyy.cn' // 设置基础URL前缀
//const baseURL="http://127.0.0.1";
// 导出baseURL使其可以在其他页面使用

View File

@ -87,7 +87,7 @@ const columns = [
{
title: "记录时间",
width: "180px",
key: "createtime"
key: "createtime",
},
]
@ -97,4 +97,6 @@ onMounted(() => {
</script>
<style scoped></style>
<style scoped>
</style>

View File

@ -382,10 +382,10 @@ const addButton = ref([
// layer.msg('', {icon: 2, time: 1000})
// return;
// }
if (addData.evaluation_start_type == null) {
layer.msg('请选择考评开始类型!', {icon: 2, time: 1000})
return;
}
// if (addData.evaluation_start_type == null) {
// layer.msg('', {icon: 2, time: 1000})
// return;
// }
if (addData.start_time == null) {
layer.msg('请选择考评开始时间!', {icon: 2, time: 1000})
return;

View File

@ -34,7 +34,8 @@
<span style="font-size: 18px;vertical-align: center;margin-right: 20px">个人记录列表</span>
<lay-button type="primary" @click="openNew()" size="sm">新增记录</lay-button>
</div>
<lay-table size="lg" height="500px" :columns="columns" :data-source="dataSource" :page="page" @change="change">
<lay-table size="lg" height="500px" :columns="columns" :data-source="dataSource" :page="page"
@change="change">
<template v-slot:status="{ data }">
<lay-tag v-if="data.status == 1" type="primary" size="sm">待审核</lay-tag>
<lay-tag v-if="data.status == 2" type="success" size="sm">审核通过</lay-tag>
@ -63,7 +64,8 @@
<lay-form :model="formData">
<lay-form-item required label="考评对象" prop="user_id">
<lay-select v-model="formData.user_id" placeholder="请选择考评对象" :show-search="true">
<lay-select-option v-for="user in userList" :key="user.id" :value="user.id" :label="user.nickname+'('+user.code+')'">
<lay-select-option v-for="user in userList" :key="user.id" :value="user.id"
:label="user.nickname + '(' + user.code + ')'">
</lay-select-option>
</lay-select>
</lay-form-item>
@ -81,23 +83,26 @@
</lay-select>
</lay-form-item>
<lay-form-item required label="分值" :tips="selectedItemTipsScore" prop="score_value">
<lay-input-number :max="maxInput.single_score_max" :min="maxInput.single_score_min" v-model="formData.score_value" placeholder="请输入分值"></lay-input-number>
<lay-input-number :max="maxInput.single_score_max" :min="maxInput.single_score_min"
v-model="formData.score_value" placeholder="请输入分值"></lay-input-number>
</lay-form-item>
<lay-form-item required label="发生时间" prop="fsdate">
<lay-date-picker v-model="formData.fsdate" :max="dayjs().format('YYYY-MM-DD')" placeholder="发生时间" type="datetime"></lay-date-picker>
<lay-date-picker v-model="formData.fsdate" :max="dayjs().format('YYYY-MM-DD')" placeholder="发生时间"
type="datetime"></lay-date-picker>
</lay-form-item>
<lay-form-item required label="证明人" prop="zm_user_id">
<lay-select v-model="formData.zm_user_id" placeholder="请选择证明人" :show-search="true">
<lay-select-option v-for="user in userList" :key="user.id" :value="user.id" :label="user.nickname+'('+user.code+')'">
<lay-select-option v-for="user in userList" :key="user.id" :value="user.id"
:label="user.nickname + '(' + user.code + ')'">
</lay-select-option>
</lay-select>
</lay-form-item>
<lay-form-item label="附件" mode="block" tips="大小限制1M">
<lay-upload ref="uploadRef" :beforeUpload="beforeUpload" :number="1" field="file"
:headers="{ token: userStore.token }" url="/api/common/upload" @cutdone="getCutDone"
v-model="file1" :auto="true" :cut="false" :cutOptions="cutOptions" @done="getFileDone">
:headers="{ token: userStore.token }" url="/api/common/upload" @cutdone="getCutDone" v-model="file1"
:auto="true" :cut="false" :cutOptions="cutOptions" @done="getFileDone">
<template #preview>
<a v-if="formData.fj_url!=''" style="color: #009688" :href="formData.fj_url" target="_blank">
<a v-if="formData.fj_url != ''" style="color: #009688" :href="formData.fj_url" target="_blank">
{{ formData.fj_url }}
</a>
</template>
@ -148,6 +153,11 @@
{{ detailData.notes || '暂无备注' }}
</lay-descriptions-item>
</lay-descriptions>
<lay-descriptions v-if="detailData.status == 3" title="驳回原因" :column="1" border style="margin-top: 20px">
<lay-descriptions-item label="驳回原因">
{{ detailData.content }}
</lay-descriptions-item>
</lay-descriptions>
<lay-descriptions v-if="detailData.fj_url" title="附件信息" :column="1" border style="margin-top: 20px">
<lay-descriptions-item label="附件">
@ -246,9 +256,9 @@ const handleItemChange = (value: string | number | object) => {
const beforeUpload = (file) => {
var isOver = true;
console.log(file);
if(file.size > 1048576) {
if (file.size > 1048576) {
isOver = false;
layer.msg(`文件最大上传为: 1MB`, { icon: 2,time: 2000})
layer.msg(`文件最大上传为: 1MB`, { icon: 2, time: 2000 })
}
return new Promise((resolver) => resolver(isOver));
}
@ -299,7 +309,7 @@ const evaluationItems = ref<EvaluationItem[]>([])
const selectedItemTips = ref('')
const getHierarchicalData = () => {
scoringGetHierarchicalData({page:1,size:1000}).then((res) => {
scoringGetHierarchicalData({ page: 1, size: 1000 }).then((res) => {
console.log(res)
if (res.code == 1) {
evaluationItems.value = res.data;
@ -394,8 +404,8 @@ const change = ({ current, limit }: { current: number, limit: number }) => {
const maxInput = ref({
single_score_max:10,
single_score_min:0,
single_score_max: 10,
single_score_min: 0,
});
const getUserList = () => {
@ -490,7 +500,7 @@ const showDetail = (data: any) => {
const deleteRecord = async (data: any) => {
try {
await getAdditionDelete({id: data.id}); //
await getAdditionDelete({ id: data.id }); //
layer.msg('删除成功!', { icon: 1 });
} catch (error) {
layer.msg('删除失败!', { icon: 2 });

View File

@ -22,6 +22,7 @@
<div class="notice-info">
<span>时间{{ currentNotice.createtime }}</span>
</div>
<div class="notice-title" style="font-size: 22px; font-weight: bold;text-align: center;margin-bottom: 20px;">{{ currentNotice.title }}</div>
<div class="notice-content" v-html="currentNotice.content">
</div>
</div>

View File

@ -119,18 +119,21 @@ const columns6 = [
{
title: "科室名称",
width: "200px",
key: "name"
key: "name",
align: 'center'
},
{
title: "科室描述",
width: "300px",
key: "describe"
key: "describe",
align: 'center'
},
{
title: "状态",
width: "100px",
customSlot: 'status',
key: "status"
key: "status",
align: 'center'
},
{
title: '操作',

View File

@ -77,9 +77,9 @@
<lay-form :model="model11" ref="layFormRef11" mode="inline">
<lay-form-item label="证件照" prop="username" tips="大小限制1MB">
<lay-upload :beforeUpload="beforeUpload" style="width:180px;" ref="uploadRefA" :number="1" field="file"
:headers="{ token: userStore.token }" :url="baseURL+'/api/common/upload'"
@cutdone="getCutDone2" v-model="file2" :auto="true" acceptMime="images" :cut="false"
:cutOptions="cutOptions" @done="getFileDone2">
:headers="{ token: userStore.token }" :url="baseURL + '/api/common/upload'" @cutdone="getCutDone2"
v-model="file2" :auto="true" acceptMime="images" :cut="false" :cutOptions="cutOptions"
@done="getFileDone2">
<template #preview>
<div class="easy-wrap" v-if="model11.avatar">
<img :src="model11.avatar" style="width: 100px;" />
@ -125,9 +125,9 @@
</lay-form-item>
<lay-form-item label="资格证图片" prop="username" tips="大小限制1MB">
<lay-upload style="width:180px;" ref="uploadRef" :number="1" field="file"
:headers="{ token: userStore.token }" :url="baseURL+'/api/common/upload'"
@cutdone="getCutDone" v-model="file1" :auto="true" acceptMime="images" :cut="false"
:cutOptions="cutOptions" :beforeUpload="beforeUpload" @done="getFileDone" @error="getFileError">
:headers="{ token: userStore.token }" :url="baseURL + '/api/common/upload'" @cutdone="getCutDone"
v-model="file1" :auto="true" acceptMime="images" :cut="false" :cutOptions="cutOptions"
:beforeUpload="beforeUpload" @done="getFileDone" @error="getFileError">
<template #preview>
<div class="easy-wrap" v-if="model11.license_image">
<img :src="model11.license_image" style="width: 100px;" />
@ -165,6 +165,10 @@
<lay-select-option :value="1" label="启用"></lay-select-option>
</lay-select>
</lay-form-item>
<lay-form-item label="执照勾选">
<lay-radio v-model="model11.zz" name="action" :value="1" label="展示"></lay-radio>
<lay-radio v-model="model11.zz" name="action" :value="2" label="不展示"></lay-radio>
</lay-form-item>
</lay-form>
</div>
</lay-layer>
@ -215,9 +219,9 @@ const getFileDone2 = (res) => {
const beforeUpload = (file) => {
var isOver = true;
console.log(file);
if(file.size > 1048576) {
if (file.size > 1048576) {
isOver = false;
layer.msg(`文件最大上传为: 1MB`, { icon: 2,time: 2000})
layer.msg(`文件最大上传为: 1MB`, { icon: 2, time: 2000 })
}
return new Promise((resolver) => resolver(isOver));
}
@ -364,6 +368,7 @@ const model11 = reactive({
certificate_code: '',
license_code: '',
administrative_position: '',
zz: 1,
})
const layFormRef11 = ref()
const addShow = ref(false)
@ -403,14 +408,14 @@ const changeAddShow = () => {
//
const inputPassword = (value) => {
console.log(value);
if(value.length < 6) {
if (value.length < 6) {
layer.msg('密码长度不能小于6位', { icon: 2 });
model11.password = '';
return;
}
//
const reg = /^[0-9a-zA-Z]+$/;
if(!reg.test(value)) {
if (!reg.test(value)) {
layer.msg('密码只能包含数字和英文字母!', { icon: 2 });
model11.password = '';
return;
@ -419,7 +424,7 @@ const inputPassword = (value) => {
//
const inputMobile = (value) => {
console.log(value);
if(!/^\d{11}$/.test(value)) {
if (!/^\d{11}$/.test(value)) {
layer.msg('手机号格式不正确!', { icon: 2 });
model11.mobile = '';
return;
@ -474,16 +479,15 @@ const addButton = ref([
layer.msg('科室不能为空!', { icon: 2 });
return;
}
// if (!model11.party_id) {
// layer.msg('', {icon: 2});
// return;
// }
if (model11.party_id) {
model11.party_level = JSON.stringify(model11.party_id);
model11.party_id = model11.party_id[model11.party_id.length - 1];
}
model11.username = model11.code;
model11.group_level = JSON.stringify(model11.group_id);
model11.group_id = model11.group_id[model11.group_id.length - 1];
console.log(model11.group_id)
model11.party_level = JSON.stringify(model11.party_id);
model11.party_id = model11.party_id[model11.party_id.length - 1];
console.log(model11)
if (addIsEdit.value == 1) {
var res = await userDataAdd(model11);
@ -524,16 +528,17 @@ const del = async (row: any) => {
layer.msg(res.msg, { icon: 2 });
}
}
//
const edit = (row: any) => {
addIsEdit.value = 2;
model11.gender = parseInt(row.gender);
model11.status = parseInt(row.status);
model11.auth_group_id = parseInt(row.auth_group_id);
//model11.group_id = row.group_id;
model11.group_id = JSON.parse(row.group_level);
if (row.party_level) {
model11.party_id = JSON.parse(row.party_level);
}
model11.code = row.code;
model11.username = row.code;
model11.nickname = row.nickname;
@ -612,10 +617,12 @@ const edit = (row: any) => {
background-color: #e8f1ff;
color: red;
}
::v-deep .layui-cascader-panel-list {
max-width: 300px !important;
}
::v-deep .layui-cascader-panel-item{
padding: 8px 10px 8px 16px!important;
::v-deep .layui-cascader-panel-item {
padding: 8px 10px 8px 16px !important;
}
</style>

View File

@ -16,7 +16,7 @@
<lay-icon v-else class="layui-icon-right"></lay-icon>
</div>
</div>
<div style="flex: 1; padding: 10px; over-flow: auto">
<div style="flex: 1; padding: 10px; overflow: auto">
<!-- table -->
<lay-card>
<lay-form>
@ -49,7 +49,7 @@
<lay-tab v-model="tab_id" @change="openTab">
<lay-tab-item v-for="item in tabList" :title="item.title" :id="item.id"></lay-tab-item>
</lay-tab>
<lay-table :page="page" height="600px" :columns="columns" :loading="loading" :data-source="dataSource"
<lay-table class="layuitablebody" :page="page" height="600px" :columns="columns" :loading="loading" :data-source="dataSource"
v-model:selected-keys="selectedKeys" @change="change">
<template v-slot:scoringrecord_status="{ row }">
<!-- 1.已自评 2.未自评 3.科室已评 4.医院已评 5.支部已评 6.总党支已评 -->
@ -882,5 +882,21 @@
.layui-tab-content {
padding: 0;
}
.layuitablebody ::-webkit-scrollbar {
width: 5px;
height: 10px;
}
.layuitablebody ::-webkit-scrollbar-track {
background: #f1f1f1;
}
.layuitablebody ::-webkit-scrollbar-thumb {
background: rgb(0, 163, 148)!important;
}
.layuitablebody ::-webkit-scrollbar-thumb:hover {
background: rgb(0, 163, 148);
}
</style>

View File

@ -23,7 +23,8 @@
<lay-row>
<lay-col :md="5">
<lay-form-item label="年度" label-width="80px">
<lay-date-picker type="year" :max="dayjs().format('YYYY')" v-model="yearmonth" placeholder="年度" allow-clear></lay-date-picker>
<lay-date-picker type="year" :max="dayjs().format('YYYY')" v-model="yearmonth" placeholder="年度"
allow-clear></lay-date-picker>
</lay-form-item>
</lay-col>
<lay-col :md="6">
@ -49,7 +50,7 @@
<lay-tab v-model="tab_id" @change="openTab">
<lay-tab-item v-for="item in tabList" :title="item.title" :id="item.id"></lay-tab-item>
</lay-tab>
<lay-table :page="page" height="600px" :columns="columns" :loading="loading" :data-source="dataSource"
<lay-table class="layuitablebody" :page="page" height="600px" :columns="columns" :loading="loading" :data-source="dataSource"
v-model:selected-keys="selectedKeys" @change="change">
<template v-slot:scoringrecord_status="{ row }">
<!-- 1.已自评 2.未自评 3.科室已评 4.医院已评 5.支部已评 6.总党支已评 -->
@ -186,31 +187,31 @@
</lay-container>
</lay-layer>
</lay-container>
</template>
<script setup lang="ts">
import { ref, reactive, onMounted } from 'vue'
import { layer } from '@layui/layui-vue'
import {
</template>
<script setup lang="ts">
import { ref, reactive, onMounted } from 'vue'
import { layer } from '@layui/layui-vue'
import {
getUserGroupNew,
getGroupYear,
getYearUserList,
getYearListFind, getYearListUpdate,
getAnnualFindData
} from "@/api/module/home";
import dayjs from "dayjs";
import { useUserStore } from '@/store/user';
import { useRoute } from 'vue-router'
import { baseURL } from '@/api/http';
const route = useRoute()
const userStore = useUserStore()
const userId = ref();
onMounted(() => {
} from "@/api/module/home";
import dayjs from "dayjs";
import { useUserStore } from '@/store/user';
import { useRoute } from 'vue-router'
import { baseURL } from '@/api/http';
const route = useRoute()
const userStore = useUserStore()
const userId = ref();
onMounted(() => {
if (route.params.id) {
userId.value = parseInt(route.params.id);
}
getLeftList();
})
const columns6 = ref([
})
const columns6 = ref([
{
title: "考评项目",
width: "300px",
@ -232,8 +233,8 @@
key: "content_score",
totalRow: true
}
])
const inputChange = (row) => {
])
const inputChange = (row) => {
//dataSource6children
let total = 0;
const index = dataSource6.value.findIndex(item => item.id === row.pid);
@ -243,9 +244,9 @@
//rowindex
dataSource6.value[index].avg_score = total;
dataSource6.value[index].content_score = total;
}
//
const inputKsChange = (row) => {
}
//
const inputKsChange = (row) => {
//dataSource6children
let total = 0;
const index = dataSource6.value.findIndex(item => item.id === row.pid);
@ -253,9 +254,9 @@
total += parseInt(item.department_score);
});
dataSource6.value[index].department_score = total;
}
//
const inputZbChange = (row) => {
}
//
const inputZbChange = (row) => {
//dataSource6children
let total = 0;
const index = dataSource6.value.findIndex(item => item.id === row.pid);
@ -263,9 +264,9 @@
total += parseInt(item.party_branch_score);
});
dataSource6.value[index].party_branch_score = total;
}
//
const inputListZbShow = () => {
}
//
const inputListZbShow = () => {
//dataSource6children
dataSource6.value.forEach((item, index) => {
let total = 0;
@ -274,9 +275,9 @@
});
dataSource6.value[index].party_branch_score = total;
});
}
//
const inputYyChange = (row) => {
}
//
const inputYyChange = (row) => {
//dataSource6children
let total = 0;
const index = dataSource6.value.findIndex(item => item.id === row.pid);
@ -284,9 +285,9 @@
total += parseInt(item.hospital_score);
});
dataSource6.value[index].hospital_score = total;
}
//
const inputListYyShow = () => {
}
//
const inputListYyShow = () => {
dataSource6.value.forEach((item, index) => {
let total = 0;
item.children.forEach(item2 => {
@ -294,9 +295,9 @@
});
dataSource6.value[index].hospital_score = total;
});
}
//
const inputZdzChange = (row) => {
}
//
const inputZdzChange = (row) => {
//dataSource6children
let total = 0;
const index = dataSource6.value.findIndex(item => item.id === row.pid);
@ -304,9 +305,9 @@
total += parseInt(item.overall_party_score);
});
dataSource6.value[index].overall_party_score = total;
}
//
const inputListZdzShow = () => {
}
//
const inputListZdzShow = () => {
dataSource6.value.forEach((item, index) => {
let total = 0;
item.children.forEach(item2 => {
@ -314,9 +315,9 @@
});
dataSource6.value[index].overall_party_score = total;
});
}
//
const inputListKsShow = () => {
}
//
const inputListKsShow = () => {
//dataSource6children
dataSource6.value.forEach((item, index) => {
let total = 0;
@ -325,9 +326,9 @@
});
dataSource6.value[index].department_score = total;
});
}
//
const inputListZpShow = () => {
}
//
const inputListZpShow = () => {
//dataSource6children
dataSource6.value.forEach((item, index) => {
@ -338,45 +339,59 @@
dataSource6.value[index].avg_score = total;
dataSource6.value[index].content_score = total;
});
}
const userShow = ref(false);
const userColumns = ref([
}
const userShow = ref(false);
const userColumns = ref([
{ title: '年度', width: '80px', key: 'year', align: 'center' },
{ title: '考评对象', width: '100px', key: 'user', align: 'center' },
{ title: '参评时间', width: '100px', key: 'createtime', align: 'center', customSlot: ({row})=>{
return row.createtime==''||row.createtime==null?'未参评':row.createtime;
} },
{ title: '自评总分', width: '100px', key: 'self_score', align: 'center', customSlot: ({row})=>{
return row.self_score==''||row.self_score==0?'未评分':row.self_score;
} },
{ title: '科室评分', width: '100px', key: 'department_score', align: 'center', customSlot: ({row})=>{
return row.department_score==''||row.department_score==0?'未评分':row.department_score;
} },
{ title: '支部评分', width: '100px', key: 'party_branch_score', align: 'center', customSlot: ({row})=>{
return row.party_branch_score==''||row.party_branch_score==0?'未评分':row.party_branch_score;
} },
{ title: '总党支评分', width: '100px', key: 'overall_party_score', align: 'center', customSlot: ({row})=>{
return row.overall_party_score==''||row.overall_party_score==0?'未评分':row.overall_party_score;
} },
{ title: '医院评分', width: '100px', key: 'hospital_score', align: 'center', customSlot: ({row})=>{
return row.hospital_score==''||row.hospital_score==0?'未评分':row.hospital_score;
} },
{ title: '总得分', width: '100px', key: 'total_score', align: 'center', customSlot: ({row})=>{
return row.total_score==''||row.total_score==0?'未评分':row.total_score;
} },
{
title: '参评时间', width: '100px', key: 'createtime', align: 'center', customSlot: ({ row }) => {
return row.createtime == '' || row.createtime == null ? '未参评' : row.createtime;
}
},
{
title: '自评总分', width: '100px', key: 'self_score', align: 'center', customSlot: ({ row }) => {
return row.self_score == '' || row.self_score == 0 ? '未评分' : row.self_score;
}
},
{
title: '科室评分', width: '100px', key: 'department_score', align: 'center', customSlot: ({ row }) => {
return row.department_score == '' || row.department_score == 0 ? '未评分' : row.department_score;
}
},
{
title: '支部评分', width: '100px', key: 'party_branch_score', align: 'center', customSlot: ({ row }) => {
return row.party_branch_score == '' || row.party_branch_score == 0 ? '未评分' : row.party_branch_score;
}
},
{
title: '总党支评分', width: '100px', key: 'overall_party_score', align: 'center', customSlot: ({ row }) => {
return row.overall_party_score == '' || row.overall_party_score == 0 ? '未评分' : row.overall_party_score;
}
},
{
title: '医院评分', width: '100px', key: 'hospital_score', align: 'center', customSlot: ({ row }) => {
return row.hospital_score == '' || row.hospital_score == 0 ? '未评分' : row.hospital_score;
}
},
{
title: '总得分', width: '100px', key: 'total_score', align: 'center', customSlot: ({ row }) => {
return row.total_score == '' || row.total_score == 0 ? '未评分' : row.total_score;
}
},
{ title: '状态', width: '100px', key: 'scoringrecord_status', customSlot: 'scoringrecord_status', align: 'center' },
{ title: '操作', width: '100px', key: 'operator', customSlot: 'operator', align: 'center' },
])
const userDataSource = ref([]);
const userTabId = ref(0);
const userInfo = ref({});
const searchAccountUser = ref(dayjs().year());
const openUserListShow = (row) => {
])
const userDataSource = ref([]);
const userTabId = ref(0);
const userInfo = ref({});
const searchAccountUser = ref(dayjs().year());
const openUserListShow = (row) => {
userInfo.value = row;
userShow.value = true;
getUserListInfo();
}
const getUserListInfo = () => {
}
const getUserListInfo = () => {
getAnnualFindData({
'user_id': userInfo.value.id,
'evaluation_id': userTabId.value,
@ -389,14 +404,14 @@
userDataSource.value = [];
}
})
}
const openUserTab = (d) => {
}
const openUserTab = (d) => {
console.log(d)
userTabId.value = d;
userDataSource.value = [];
getUserListInfo();
}
const getMonthlyInfo = (item, type) => {
}
const getMonthlyInfo = (item, type) => {
addIsInfo.value = type;
infoShow.value = true;
console.log(item);
@ -493,28 +508,28 @@
totalRow: true
})
}
}
const toUserSearch = () => {
}
const toUserSearch = () => {
getUserListInfo();
}
const openTab = (d) => {
}
const openTab = (d) => {
console.log(d)
tab_id.value = d;
dataSource.value = [];
page.current = 1;
getList();
}
const page = reactive({ current: 1, limit: 10, total: 1 })
const change = (d) => {
}
const page = reactive({ current: 1, limit: 10, total: 1 })
const change = (d) => {
console.log(d);
page.current = d.current;
page.limit = d.limit;
getList();
}
const addIsInfo = ref(1);
const infoShow = ref(false);
const yearmonth = ref(dayjs().year());
const getList = () => {
}
const addIsInfo = ref(1);
const infoShow = ref(false);
const yearmonth = ref(dayjs().year());
const getList = () => {
getYearUserList({
'user_id': userId.value,
'group_id': group_id.value,
@ -531,9 +546,9 @@
layer.msg(res.msg, { icon: 2 })
}
})
}
const dataSerSource = ref([]);
const getSerList = () => {
}
const dataSerSource = ref([]);
const getSerList = () => {
getYearUserList({
'group_id': group_id.value,
'time': yearmonth.value,
@ -548,9 +563,9 @@
layer.msg(res.msg, { icon: 2 })
}
})
}
const thisInfo = ref();
const getInfo = (row, type) => {
}
const thisInfo = ref();
const getInfo = (row, type) => {
infoShow.value = true;
addIsInfo.value = type;
thisInfo.value = row;
@ -646,8 +661,8 @@
totalRow: true
})
}
}
const getInfoMode = (row) => {
}
const getInfoMode = (row) => {
getYearListFind({
evaluation_schedule_id: tab_id.value,
month: row.time,
@ -665,10 +680,10 @@
layer.msg(res.msg, { icon: 2 })
}
})
}
const tabList = ref([]);
const tab_id = ref(0);
const getTabList = () => {
}
const tabList = ref([]);
const tab_id = ref(0);
const getTabList = () => {
getGroupYear({ 'group_id': group_id.value }).then((res) => {
console.log(res)
if (res.code == 1) {
@ -680,9 +695,9 @@
layer.msg(res.msg, { icon: 2 })
}
})
}
const group_id = ref(1);
const getLeftList = () => {
}
const group_id = ref(1);
const getLeftList = () => {
getUserGroupNew({}).then((res) => {
console.log(res)
if (res.code == 1) {
@ -694,62 +709,74 @@
layer.msg(res.msg, { icon: 2 })
}
})
}
const data = ref([])
const isFold = ref(false)
const searchQuery = ref({
}
const data = ref([])
const isFold = ref(false)
const searchQuery = ref({
year: '',
evaluateTarget: '',
status: ''
})
})
function toReset() {
function toReset() {
searchQuery.value = {
year: '',
evaluateTarget: '',
status: ''
}
}
}
function handleClick(node: any) {
function handleClick(node: any) {
// selectedNode.value = JSON.parse(JSON.stringify(node))
page.current = 1;
getList();
// change(page)
}
}
function toSearch() {
function toSearch() {
page.current = 1;
getList();
}
}
const loading = ref(false)
const selectedKeys = ref()
const columns = ref([
const loading = ref(false)
const selectedKeys = ref()
const columns = ref([
{ title: '选项', width: '55px', type: 'checkbox', align: 'center' },
{ title: '序号', width: '60px', key: 'id', align: 'center' },
{ title: '年度', width: '80px', key: 'time', align: 'center' },
{ title: '考评对象', width: '100px', key: 'nickname', customSlot: 'nickname', align: 'center' },
{ title: '工号', width: '100px', key: 'code', align: 'center' },
{ title: '部门', width: '120px', key: 'group_name', align: 'center' },
{ title: '自评总分', width: '100px', key: 'user_scoringrecord', align: 'center', customSlot: ({row})=>{
return row.user_scoringrecord==''||row.user_scoringrecord==0?'未评分':row.user_scoringrecord;
} },
{ title: '科室评分', width: '100px', key: 'department_score_scoringrecord', align: 'center', customSlot: ({row})=>{
return row.department_score_scoringrecord==''||row.department_score_scoringrecord==0?'未评分':row.department_score_scoringrecord;
} },
{ title: '党支部评分', width: '100px', key: 'party_score_scoringrecord', align: 'center', customSlot: ({row})=>{
return row.party_score_scoringrecord==''||row.party_score_scoringrecord==0?'未评分':row.party_score_scoringrecord;
} },
{ title: '党总支评分', width: '100px', key: 'overall_score_scoringrecord', align: 'center', customSlot: ({row})=>{
return row.overall_score_scoringrecord==''||row.overall_score_scoringrecord==0?'未评分':row.overall_score_scoringrecord;
} },
{ title: '医院评分', width: '100px', key: 'hospital_score_scoringrecord', align: 'center', customSlot: ({row})=>{
return row.hospital_score_scoringrecord==''||row.hospital_score_scoringrecord==0?'未评分':row.hospital_score_scoringrecord;
} },
{ title: '总得分', width: '100px', key: 'total_score', align: 'center', customSlot: ({row})=>{
return row.total_score==''||row.total_score==0?'未评分':row.total_score;
} },
{
title: '自评总分', width: '100px', key: 'user_scoringrecord', align: 'center', customSlot: ({ row }) => {
return row.user_scoringrecord == '' || row.user_scoringrecord == 0 ? '未评分' : row.user_scoringrecord;
}
},
{
title: '科室评分', width: '100px', key: 'department_score_scoringrecord', align: 'center', customSlot: ({ row }) => {
return row.department_score_scoringrecord == '' || row.department_score_scoringrecord == 0 ? '未评分' : row.department_score_scoringrecord;
}
},
{
title: '党支部评分', width: '100px', key: 'party_score_scoringrecord', align: 'center', customSlot: ({ row }) => {
return row.party_score_scoringrecord == '' || row.party_score_scoringrecord == 0 ? '未评分' : row.party_score_scoringrecord;
}
},
{
title: '党总支评分', width: '100px', key: 'overall_score_scoringrecord', align: 'center', customSlot: ({ row }) => {
return row.overall_score_scoringrecord == '' || row.overall_score_scoringrecord == 0 ? '未评分' : row.overall_score_scoringrecord;
}
},
{
title: '医院评分', width: '100px', key: 'hospital_score_scoringrecord', align: 'center', customSlot: ({ row }) => {
return row.hospital_score_scoringrecord == '' || row.hospital_score_scoringrecord == 0 ? '未评分' : row.hospital_score_scoringrecord;
}
},
{
title: '总得分', width: '100px', key: 'total_score', align: 'center', customSlot: ({ row }) => {
return row.total_score == '' || row.total_score == 0 ? '未评分' : row.total_score;
}
},
{ title: '自评状态', width: '100px', key: 'scoringrecord_status', customSlot: 'scoringrecord_status', align: 'center' },
{
title: '操作',
@ -758,9 +785,9 @@
key: 'operator',
fixed: 'right', align: 'center'
}
])
const dataSource = ref()
const addButton = ref([
])
const dataSource = ref()
const addButton = ref([
{
text: "确认",
callback: async () => {
@ -789,9 +816,9 @@
infoShow.value = false;
}
}
])
])
const layerEnd = () => {
const layerEnd = () => {
columns6.value = [
{
title: "考评项目",
@ -815,48 +842,48 @@
totalRow: true
}
];
}
const dataSource6 = ref([])
}
const dataSource6 = ref([])
const openDownload = () => {
const openDownload = () => {
window.open(baseURL + '/uploads/信阳市传染病医院医德医风考评优秀等次人员复审表.xls', '_blank')
}
</script>
}
</script>
<style>
.layui-table-header .layui-table-cell {
<style>
.layui-table-header .layui-table-cell {
background-color: #ECF8FA !important;
}
}
.organization-box {
.organization-box {
width: calc(100vw - 240px);
height: calc(100vh - 110px);
margin-top: 10px;
box-sizing: border-box;
background-color: #fff;
overflow: hidden;
}
}
.left-tree {
.left-tree {
display: inline-block;
padding: 20px 15px 0 5px;
height: 1200px;
border-right: 1px solid #e6e6e6;
box-sizing: border-box;
position: relative;
}
}
/* todo layui-tree-entry 设置无效 */
.layui-tree-entry {
/* todo layui-tree-entry 设置无效 */
.layui-tree-entry {
position: relative;
padding: 10px 0;
height: 20px;
line-height: 20px;
white-space: nowrap;
}
}
.isFold {
.isFold {
position: absolute;
top: 36%;
right: -10px;
@ -867,22 +894,38 @@
background-color: #fff;
border: 1px solid #e6e6e6;
cursor: pointer;
}
}
.search-input {
.search-input {
display: inline-block;
width: 98%;
margin-right: 10px;
}
}
.isChecked {
.isChecked {
display: inline-block;
background-color: #e8f1ff;
color: red;
}
}
.layui-tab-content {
.layui-tab-content {
padding: 0;
}
</style>
}
.layuitablebody ::-webkit-scrollbar {
width: 5px;
height: 10px;
}
.layuitablebody ::-webkit-scrollbar-track {
background: #f1f1f1;
}
.layuitablebody ::-webkit-scrollbar-thumb {
background: rgb(0, 163, 148)!important;
}
.layuitablebody ::-webkit-scrollbar-thumb:hover {
background: rgb(0, 163, 148);
}
</style>

View File

@ -49,7 +49,7 @@
<lay-tab v-model="tab_id" @change="openTab">
<lay-tab-item v-for="item in tabList" :title="item.title" :id="item.id"></lay-tab-item>
</lay-tab>
<lay-table :page="page" height="600px" :columns="columns" :loading="loading" :data-source="dataSource"
<lay-table class="layuitablebody" :page="page" height="600px" :columns="columns" :loading="loading" :data-source="dataSource"
v-model:selected-keys="selectedKeys" @change="change">
<template v-slot:scoringrecord_status="{ row }">
<!-- 1.已自评 2.未自评 3.科室已评 4.医院已评 5.支部已评 6.总党支已评 -->
@ -876,5 +876,21 @@
.layui-tab-content {
padding: 0;
}
.layuitablebody ::-webkit-scrollbar {
width: 5px;
height: 10px;
}
.layuitablebody ::-webkit-scrollbar-track {
background: #f1f1f1;
}
.layuitablebody ::-webkit-scrollbar-thumb {
background: rgb(0, 163, 148)!important;
}
.layuitablebody ::-webkit-scrollbar-thumb:hover {
background: rgb(0, 163, 148);
}
</style>

View File

@ -32,7 +32,7 @@
</lay-col>
<lay-col :md="5">
<lay-form-item label="时间" label-width="80">
<lay-date-picker type="year" :max="dayjs().format('YYYY')" v-model="yearmonth" placeholder="年"
<lay-date-picker type="year" :max="dayjs().format('YYYY')" v-model="ser.year" placeholder="年"
allow-clear></lay-date-picker>
</lay-form-item>
</lay-col>
@ -119,6 +119,12 @@ const ser = reactive({
nickname: '',
year: dayjs().year()
});
const toReset = () => {
ser.type = 1;
ser.nickname = '';
ser.year = dayjs().year();
getGroupEvaluation();
}
const toSearch = () => {
page.current = 1;
getGroupEvaluation();
@ -150,6 +156,8 @@ const getGroupEvaluation = () => {
console.log(res)
if (res.code == 1) {
dataSource.value = res.data;
}else{
dataSource.value = [];
}
})
}

View File

@ -49,7 +49,7 @@
<lay-tab v-model="tab_id" @change="openTab">
<lay-tab-item v-for="item in tabList" :title="item.title" :id="item.id"></lay-tab-item>
</lay-tab>
<lay-table :page="page" height="600px" :columns="columns" :loading="loading" :data-source="dataSource"
<lay-table class="layuitablebody" :page="page" height="600px" :columns="columns" :loading="loading" :data-source="dataSource"
v-model:selected-keys="selectedKeys" @change="change">
<template v-slot:scoringrecord_status="{ row }">
<!-- 1.已自评 2.未自评 3.科室已评 4.医院已评 5.支部已评 6.总党支已评 -->
@ -882,5 +882,21 @@
.layui-tab-content {
padding: 0;
}
.layuitablebody ::-webkit-scrollbar {
width: 5px;
height: 10px;
}
.layuitablebody ::-webkit-scrollbar-track {
background: #f1f1f1;
}
.layuitablebody ::-webkit-scrollbar-thumb {
background: rgb(0, 163, 148)!important;
}
.layuitablebody ::-webkit-scrollbar-thumb:hover {
background: rgb(0, 163, 148);
}
</style>