1.年末考评-年末科室考评,显示科室列表的时候,信息超过显示宽度,没有自动显示滑动轮
2.日常考评-考评评价管理,点击查询没反应 3.系统管理-人员信息-执照勾选功能未体现
This commit is contained in:
parent
045c637581
commit
a980b649fd
@ -7,10 +7,14 @@
|
|||||||
#app {
|
#app {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
html {
|
html {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -9,7 +9,7 @@ type TAxiosOption = {
|
|||||||
headers: object;
|
headers: object;
|
||||||
}
|
}
|
||||||
//记得修改上传路径/api/common/upload
|
//记得修改上传路径/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";
|
//const baseURL="http://127.0.0.1";
|
||||||
|
|
||||||
// 导出baseURL,使其可以在其他页面使用
|
// 导出baseURL,使其可以在其他页面使用
|
||||||
|
@ -87,7 +87,7 @@ const columns = [
|
|||||||
{
|
{
|
||||||
title: "记录时间",
|
title: "记录时间",
|
||||||
width: "180px",
|
width: "180px",
|
||||||
key: "createtime"
|
key: "createtime",
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -97,4 +97,6 @@ onMounted(() => {
|
|||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped></style>
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
|
@ -382,10 +382,10 @@ const addButton = ref([
|
|||||||
// layer.msg('请填写时间(天)!', {icon: 2, time: 1000})
|
// layer.msg('请填写时间(天)!', {icon: 2, time: 1000})
|
||||||
// return;
|
// return;
|
||||||
// }
|
// }
|
||||||
if (addData.evaluation_start_type == null) {
|
// if (addData.evaluation_start_type == null) {
|
||||||
layer.msg('请选择考评开始类型!', {icon: 2, time: 1000})
|
// layer.msg('请选择考评开始类型!', {icon: 2, time: 1000})
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
if (addData.start_time == null) {
|
if (addData.start_time == null) {
|
||||||
layer.msg('请选择考评开始时间!', {icon: 2, time: 1000})
|
layer.msg('请选择考评开始时间!', {icon: 2, time: 1000})
|
||||||
return;
|
return;
|
||||||
|
@ -34,7 +34,8 @@
|
|||||||
<span style="font-size: 18px;vertical-align: center;margin-right: 20px">个人记录列表</span>
|
<span style="font-size: 18px;vertical-align: center;margin-right: 20px">个人记录列表</span>
|
||||||
<lay-button type="primary" @click="openNew()" size="sm">新增记录</lay-button>
|
<lay-button type="primary" @click="openNew()" size="sm">新增记录</lay-button>
|
||||||
</div>
|
</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 }">
|
<template v-slot:status="{ data }">
|
||||||
<lay-tag v-if="data.status == 1" type="primary" size="sm">待审核</lay-tag>
|
<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>
|
<lay-tag v-if="data.status == 2" type="success" size="sm">审核通过</lay-tag>
|
||||||
@ -63,7 +64,8 @@
|
|||||||
<lay-form :model="formData">
|
<lay-form :model="formData">
|
||||||
<lay-form-item required label="考评对象" prop="user_id">
|
<lay-form-item required label="考评对象" prop="user_id">
|
||||||
<lay-select v-model="formData.user_id" placeholder="请选择考评对象" :show-search="true">
|
<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-option>
|
||||||
</lay-select>
|
</lay-select>
|
||||||
</lay-form-item>
|
</lay-form-item>
|
||||||
@ -81,23 +83,26 @@
|
|||||||
</lay-select>
|
</lay-select>
|
||||||
</lay-form-item>
|
</lay-form-item>
|
||||||
<lay-form-item required label="分值" :tips="selectedItemTipsScore" prop="score_value">
|
<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>
|
||||||
<lay-form-item required label="发生时间" prop="fsdate">
|
<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>
|
||||||
<lay-form-item required label="证明人" prop="zm_user_id">
|
<lay-form-item required label="证明人" prop="zm_user_id">
|
||||||
<lay-select v-model="formData.zm_user_id" placeholder="请选择证明人" :show-search="true">
|
<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-option>
|
||||||
</lay-select>
|
</lay-select>
|
||||||
</lay-form-item>
|
</lay-form-item>
|
||||||
<lay-form-item label="附件" mode="block" tips="大小限制1M">
|
<lay-form-item label="附件" mode="block" tips="大小限制1M">
|
||||||
<lay-upload ref="uploadRef" :beforeUpload="beforeUpload" :number="1" field="file"
|
<lay-upload ref="uploadRef" :beforeUpload="beforeUpload" :number="1" field="file"
|
||||||
:headers="{ token: userStore.token }" url="/api/common/upload" @cutdone="getCutDone"
|
:headers="{ token: userStore.token }" url="/api/common/upload" @cutdone="getCutDone" v-model="file1"
|
||||||
v-model="file1" :auto="true" :cut="false" :cutOptions="cutOptions" @done="getFileDone">
|
:auto="true" :cut="false" :cutOptions="cutOptions" @done="getFileDone">
|
||||||
<template #preview>
|
<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 }}
|
{{ formData.fj_url }}
|
||||||
</a>
|
</a>
|
||||||
</template>
|
</template>
|
||||||
@ -148,6 +153,11 @@
|
|||||||
{{ detailData.notes || '暂无备注' }}
|
{{ detailData.notes || '暂无备注' }}
|
||||||
</lay-descriptions-item>
|
</lay-descriptions-item>
|
||||||
</lay-descriptions>
|
</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 v-if="detailData.fj_url" title="附件信息" :column="1" border style="margin-top: 20px">
|
||||||
<lay-descriptions-item label="附件">
|
<lay-descriptions-item label="附件">
|
||||||
@ -246,9 +256,9 @@ const handleItemChange = (value: string | number | object) => {
|
|||||||
const beforeUpload = (file) => {
|
const beforeUpload = (file) => {
|
||||||
var isOver = true;
|
var isOver = true;
|
||||||
console.log(file);
|
console.log(file);
|
||||||
if(file.size > 1048576) {
|
if (file.size > 1048576) {
|
||||||
isOver = false;
|
isOver = false;
|
||||||
layer.msg(`文件最大上传为: 1MB`, { icon: 2,time: 2000})
|
layer.msg(`文件最大上传为: 1MB`, { icon: 2, time: 2000 })
|
||||||
}
|
}
|
||||||
return new Promise((resolver) => resolver(isOver));
|
return new Promise((resolver) => resolver(isOver));
|
||||||
}
|
}
|
||||||
@ -299,7 +309,7 @@ const evaluationItems = ref<EvaluationItem[]>([])
|
|||||||
const selectedItemTips = ref('')
|
const selectedItemTips = ref('')
|
||||||
|
|
||||||
const getHierarchicalData = () => {
|
const getHierarchicalData = () => {
|
||||||
scoringGetHierarchicalData({page:1,size:1000}).then((res) => {
|
scoringGetHierarchicalData({ page: 1, size: 1000 }).then((res) => {
|
||||||
console.log(res)
|
console.log(res)
|
||||||
if (res.code == 1) {
|
if (res.code == 1) {
|
||||||
evaluationItems.value = res.data;
|
evaluationItems.value = res.data;
|
||||||
@ -394,8 +404,8 @@ const change = ({ current, limit }: { current: number, limit: number }) => {
|
|||||||
|
|
||||||
|
|
||||||
const maxInput = ref({
|
const maxInput = ref({
|
||||||
single_score_max:10,
|
single_score_max: 10,
|
||||||
single_score_min:0,
|
single_score_min: 0,
|
||||||
});
|
});
|
||||||
|
|
||||||
const getUserList = () => {
|
const getUserList = () => {
|
||||||
@ -490,7 +500,7 @@ const showDetail = (data: any) => {
|
|||||||
|
|
||||||
const deleteRecord = async (data: any) => {
|
const deleteRecord = async (data: any) => {
|
||||||
try {
|
try {
|
||||||
await getAdditionDelete({id: data.id}); // 调用删除接口
|
await getAdditionDelete({ id: data.id }); // 调用删除接口
|
||||||
layer.msg('删除成功!', { icon: 1 });
|
layer.msg('删除成功!', { icon: 1 });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
layer.msg('删除失败!', { icon: 2 });
|
layer.msg('删除失败!', { icon: 2 });
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
<div class="notice-info">
|
<div class="notice-info">
|
||||||
<span>时间:{{ currentNotice.createtime }}</span>
|
<span>时间:{{ currentNotice.createtime }}</span>
|
||||||
</div>
|
</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 class="notice-content" v-html="currentNotice.content">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -119,18 +119,21 @@ const columns6 = [
|
|||||||
{
|
{
|
||||||
title: "科室名称",
|
title: "科室名称",
|
||||||
width: "200px",
|
width: "200px",
|
||||||
key: "name"
|
key: "name",
|
||||||
|
align: 'center'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "科室描述",
|
title: "科室描述",
|
||||||
width: "300px",
|
width: "300px",
|
||||||
key: "describe"
|
key: "describe",
|
||||||
|
align: 'center'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "状态",
|
title: "状态",
|
||||||
width: "100px",
|
width: "100px",
|
||||||
customSlot: 'status',
|
customSlot: 'status',
|
||||||
key: "status"
|
key: "status",
|
||||||
|
align: 'center'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '操作',
|
title: '操作',
|
||||||
|
@ -77,9 +77,9 @@
|
|||||||
<lay-form :model="model11" ref="layFormRef11" mode="inline">
|
<lay-form :model="model11" ref="layFormRef11" mode="inline">
|
||||||
<lay-form-item label="证件照" prop="username" tips="大小限制1MB">
|
<lay-form-item label="证件照" prop="username" tips="大小限制1MB">
|
||||||
<lay-upload :beforeUpload="beforeUpload" style="width:180px;" ref="uploadRefA" :number="1" field="file"
|
<lay-upload :beforeUpload="beforeUpload" style="width:180px;" ref="uploadRefA" :number="1" field="file"
|
||||||
:headers="{ token: userStore.token }" :url="baseURL+'/api/common/upload'"
|
:headers="{ token: userStore.token }" :url="baseURL + '/api/common/upload'" @cutdone="getCutDone2"
|
||||||
@cutdone="getCutDone2" v-model="file2" :auto="true" acceptMime="images" :cut="false"
|
v-model="file2" :auto="true" acceptMime="images" :cut="false" :cutOptions="cutOptions"
|
||||||
:cutOptions="cutOptions" @done="getFileDone2">
|
@done="getFileDone2">
|
||||||
<template #preview>
|
<template #preview>
|
||||||
<div class="easy-wrap" v-if="model11.avatar">
|
<div class="easy-wrap" v-if="model11.avatar">
|
||||||
<img :src="model11.avatar" style="width: 100px;" />
|
<img :src="model11.avatar" style="width: 100px;" />
|
||||||
@ -125,9 +125,9 @@
|
|||||||
</lay-form-item>
|
</lay-form-item>
|
||||||
<lay-form-item label="资格证图片" prop="username" tips="大小限制1MB">
|
<lay-form-item label="资格证图片" prop="username" tips="大小限制1MB">
|
||||||
<lay-upload style="width:180px;" ref="uploadRef" :number="1" field="file"
|
<lay-upload style="width:180px;" ref="uploadRef" :number="1" field="file"
|
||||||
:headers="{ token: userStore.token }" :url="baseURL+'/api/common/upload'"
|
:headers="{ token: userStore.token }" :url="baseURL + '/api/common/upload'" @cutdone="getCutDone"
|
||||||
@cutdone="getCutDone" v-model="file1" :auto="true" acceptMime="images" :cut="false"
|
v-model="file1" :auto="true" acceptMime="images" :cut="false" :cutOptions="cutOptions"
|
||||||
:cutOptions="cutOptions" :beforeUpload="beforeUpload" @done="getFileDone" @error="getFileError">
|
:beforeUpload="beforeUpload" @done="getFileDone" @error="getFileError">
|
||||||
<template #preview>
|
<template #preview>
|
||||||
<div class="easy-wrap" v-if="model11.license_image">
|
<div class="easy-wrap" v-if="model11.license_image">
|
||||||
<img :src="model11.license_image" style="width: 100px;" />
|
<img :src="model11.license_image" style="width: 100px;" />
|
||||||
@ -165,6 +165,10 @@
|
|||||||
<lay-select-option :value="1" label="启用"></lay-select-option>
|
<lay-select-option :value="1" label="启用"></lay-select-option>
|
||||||
</lay-select>
|
</lay-select>
|
||||||
</lay-form-item>
|
</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>
|
</lay-form>
|
||||||
</div>
|
</div>
|
||||||
</lay-layer>
|
</lay-layer>
|
||||||
@ -215,9 +219,9 @@ const getFileDone2 = (res) => {
|
|||||||
const beforeUpload = (file) => {
|
const beforeUpload = (file) => {
|
||||||
var isOver = true;
|
var isOver = true;
|
||||||
console.log(file);
|
console.log(file);
|
||||||
if(file.size > 1048576) {
|
if (file.size > 1048576) {
|
||||||
isOver = false;
|
isOver = false;
|
||||||
layer.msg(`文件最大上传为: 1MB`, { icon: 2,time: 2000})
|
layer.msg(`文件最大上传为: 1MB`, { icon: 2, time: 2000 })
|
||||||
}
|
}
|
||||||
return new Promise((resolver) => resolver(isOver));
|
return new Promise((resolver) => resolver(isOver));
|
||||||
}
|
}
|
||||||
@ -364,6 +368,7 @@ const model11 = reactive({
|
|||||||
certificate_code: '',
|
certificate_code: '',
|
||||||
license_code: '',
|
license_code: '',
|
||||||
administrative_position: '',
|
administrative_position: '',
|
||||||
|
zz: 1,
|
||||||
})
|
})
|
||||||
const layFormRef11 = ref()
|
const layFormRef11 = ref()
|
||||||
const addShow = ref(false)
|
const addShow = ref(false)
|
||||||
@ -403,14 +408,14 @@ const changeAddShow = () => {
|
|||||||
//验证密码
|
//验证密码
|
||||||
const inputPassword = (value) => {
|
const inputPassword = (value) => {
|
||||||
console.log(value);
|
console.log(value);
|
||||||
if(value.length < 6) {
|
if (value.length < 6) {
|
||||||
layer.msg('密码长度不能小于6位!', { icon: 2 });
|
layer.msg('密码长度不能小于6位!', { icon: 2 });
|
||||||
model11.password = '';
|
model11.password = '';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//正则匹配只能数字和英文字母
|
//正则匹配只能数字和英文字母
|
||||||
const reg = /^[0-9a-zA-Z]+$/;
|
const reg = /^[0-9a-zA-Z]+$/;
|
||||||
if(!reg.test(value)) {
|
if (!reg.test(value)) {
|
||||||
layer.msg('密码只能包含数字和英文字母!', { icon: 2 });
|
layer.msg('密码只能包含数字和英文字母!', { icon: 2 });
|
||||||
model11.password = '';
|
model11.password = '';
|
||||||
return;
|
return;
|
||||||
@ -419,7 +424,7 @@ const inputPassword = (value) => {
|
|||||||
//验证手机号
|
//验证手机号
|
||||||
const inputMobile = (value) => {
|
const inputMobile = (value) => {
|
||||||
console.log(value);
|
console.log(value);
|
||||||
if(!/^\d{11}$/.test(value)) {
|
if (!/^\d{11}$/.test(value)) {
|
||||||
layer.msg('手机号格式不正确!', { icon: 2 });
|
layer.msg('手机号格式不正确!', { icon: 2 });
|
||||||
model11.mobile = '';
|
model11.mobile = '';
|
||||||
return;
|
return;
|
||||||
@ -474,16 +479,15 @@ const addButton = ref([
|
|||||||
layer.msg('科室不能为空!', { icon: 2 });
|
layer.msg('科室不能为空!', { icon: 2 });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// if (!model11.party_id) {
|
if (model11.party_id) {
|
||||||
// layer.msg('党支部不能为空!', {icon: 2});
|
model11.party_level = JSON.stringify(model11.party_id);
|
||||||
// return;
|
model11.party_id = model11.party_id[model11.party_id.length - 1];
|
||||||
// }
|
}
|
||||||
model11.username = model11.code;
|
model11.username = model11.code;
|
||||||
model11.group_level = JSON.stringify(model11.group_id);
|
model11.group_level = JSON.stringify(model11.group_id);
|
||||||
model11.group_id = model11.group_id[model11.group_id.length - 1];
|
model11.group_id = model11.group_id[model11.group_id.length - 1];
|
||||||
console.log(model11.group_id)
|
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)
|
console.log(model11)
|
||||||
if (addIsEdit.value == 1) {
|
if (addIsEdit.value == 1) {
|
||||||
var res = await userDataAdd(model11);
|
var res = await userDataAdd(model11);
|
||||||
@ -524,16 +528,17 @@ const del = async (row: any) => {
|
|||||||
layer.msg(res.msg, { icon: 2 });
|
layer.msg(res.msg, { icon: 2 });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 编辑用户
|
// 编辑用户
|
||||||
const edit = (row: any) => {
|
const edit = (row: any) => {
|
||||||
addIsEdit.value = 2;
|
addIsEdit.value = 2;
|
||||||
model11.gender = parseInt(row.gender);
|
model11.gender = parseInt(row.gender);
|
||||||
model11.status = parseInt(row.status);
|
model11.status = parseInt(row.status);
|
||||||
model11.auth_group_id = parseInt(row.auth_group_id);
|
model11.auth_group_id = parseInt(row.auth_group_id);
|
||||||
|
//model11.group_id = row.group_id;
|
||||||
model11.group_id = JSON.parse(row.group_level);
|
model11.group_id = JSON.parse(row.group_level);
|
||||||
|
if (row.party_level) {
|
||||||
model11.party_id = JSON.parse(row.party_level);
|
model11.party_id = JSON.parse(row.party_level);
|
||||||
|
}
|
||||||
model11.code = row.code;
|
model11.code = row.code;
|
||||||
model11.username = row.code;
|
model11.username = row.code;
|
||||||
model11.nickname = row.nickname;
|
model11.nickname = row.nickname;
|
||||||
@ -612,10 +617,12 @@ const edit = (row: any) => {
|
|||||||
background-color: #e8f1ff;
|
background-color: #e8f1ff;
|
||||||
color: red;
|
color: red;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .layui-cascader-panel-list {
|
::v-deep .layui-cascader-panel-list {
|
||||||
max-width: 300px !important;
|
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>
|
</style>
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
<lay-icon v-else class="layui-icon-right"></lay-icon>
|
<lay-icon v-else class="layui-icon-right"></lay-icon>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="flex: 1; padding: 10px; over-flow: auto">
|
<div style="flex: 1; padding: 10px; overflow: auto">
|
||||||
<!-- table -->
|
<!-- table -->
|
||||||
<lay-card>
|
<lay-card>
|
||||||
<lay-form>
|
<lay-form>
|
||||||
@ -49,7 +49,7 @@
|
|||||||
<lay-tab v-model="tab_id" @change="openTab">
|
<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-item v-for="item in tabList" :title="item.title" :id="item.id"></lay-tab-item>
|
||||||
</lay-tab>
|
</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">
|
v-model:selected-keys="selectedKeys" @change="change">
|
||||||
<template v-slot:scoringrecord_status="{ row }">
|
<template v-slot:scoringrecord_status="{ row }">
|
||||||
<!-- 1.已自评 2.未自评 3.科室已评 4.医院已评 5.支部已评 6.总党支已评 -->
|
<!-- 1.已自评 2.未自评 3.科室已评 4.医院已评 5.支部已评 6.总党支已评 -->
|
||||||
@ -882,5 +882,21 @@
|
|||||||
.layui-tab-content {
|
.layui-tab-content {
|
||||||
padding: 0;
|
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>
|
</style>
|
||||||
|
|
@ -23,7 +23,8 @@
|
|||||||
<lay-row>
|
<lay-row>
|
||||||
<lay-col :md="5">
|
<lay-col :md="5">
|
||||||
<lay-form-item label="年度" label-width="80px">
|
<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-form-item>
|
||||||
</lay-col>
|
</lay-col>
|
||||||
<lay-col :md="6">
|
<lay-col :md="6">
|
||||||
@ -49,7 +50,7 @@
|
|||||||
<lay-tab v-model="tab_id" @change="openTab">
|
<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-item v-for="item in tabList" :title="item.title" :id="item.id"></lay-tab-item>
|
||||||
</lay-tab>
|
</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">
|
v-model:selected-keys="selectedKeys" @change="change">
|
||||||
<template v-slot:scoringrecord_status="{ row }">
|
<template v-slot:scoringrecord_status="{ row }">
|
||||||
<!-- 1.已自评 2.未自评 3.科室已评 4.医院已评 5.支部已评 6.总党支已评 -->
|
<!-- 1.已自评 2.未自评 3.科室已评 4.医院已评 5.支部已评 6.总党支已评 -->
|
||||||
@ -186,31 +187,31 @@
|
|||||||
</lay-container>
|
</lay-container>
|
||||||
</lay-layer>
|
</lay-layer>
|
||||||
</lay-container>
|
</lay-container>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, reactive, onMounted } from 'vue'
|
import { ref, reactive, onMounted } from 'vue'
|
||||||
import { layer } from '@layui/layui-vue'
|
import { layer } from '@layui/layui-vue'
|
||||||
import {
|
import {
|
||||||
getUserGroupNew,
|
getUserGroupNew,
|
||||||
getGroupYear,
|
getGroupYear,
|
||||||
getYearUserList,
|
getYearUserList,
|
||||||
getYearListFind, getYearListUpdate,
|
getYearListFind, getYearListUpdate,
|
||||||
getAnnualFindData
|
getAnnualFindData
|
||||||
} from "@/api/module/home";
|
} from "@/api/module/home";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import { useUserStore } from '@/store/user';
|
import { useUserStore } from '@/store/user';
|
||||||
import { useRoute } from 'vue-router'
|
import { useRoute } from 'vue-router'
|
||||||
import { baseURL } from '@/api/http';
|
import { baseURL } from '@/api/http';
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const userId = ref();
|
const userId = ref();
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (route.params.id) {
|
if (route.params.id) {
|
||||||
userId.value = parseInt(route.params.id);
|
userId.value = parseInt(route.params.id);
|
||||||
}
|
}
|
||||||
getLeftList();
|
getLeftList();
|
||||||
})
|
})
|
||||||
const columns6 = ref([
|
const columns6 = ref([
|
||||||
{
|
{
|
||||||
title: "考评项目",
|
title: "考评项目",
|
||||||
width: "300px",
|
width: "300px",
|
||||||
@ -232,8 +233,8 @@
|
|||||||
key: "content_score",
|
key: "content_score",
|
||||||
totalRow: true
|
totalRow: true
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
const inputChange = (row) => {
|
const inputChange = (row) => {
|
||||||
//计算出dataSource6里分数在children下所有的已评总分
|
//计算出dataSource6里分数在children下所有的已评总分
|
||||||
let total = 0;
|
let total = 0;
|
||||||
const index = dataSource6.value.findIndex(item => item.id === row.pid);
|
const index = dataSource6.value.findIndex(item => item.id === row.pid);
|
||||||
@ -243,9 +244,9 @@
|
|||||||
//找到row的index
|
//找到row的index
|
||||||
dataSource6.value[index].avg_score = total;
|
dataSource6.value[index].avg_score = total;
|
||||||
dataSource6.value[index].content_score = total;
|
dataSource6.value[index].content_score = total;
|
||||||
}
|
}
|
||||||
//科室评分总分
|
//科室评分总分
|
||||||
const inputKsChange = (row) => {
|
const inputKsChange = (row) => {
|
||||||
//计算出dataSource6里分数在children下所有的已评总分
|
//计算出dataSource6里分数在children下所有的已评总分
|
||||||
let total = 0;
|
let total = 0;
|
||||||
const index = dataSource6.value.findIndex(item => item.id === row.pid);
|
const index = dataSource6.value.findIndex(item => item.id === row.pid);
|
||||||
@ -253,9 +254,9 @@
|
|||||||
total += parseInt(item.department_score);
|
total += parseInt(item.department_score);
|
||||||
});
|
});
|
||||||
dataSource6.value[index].department_score = total;
|
dataSource6.value[index].department_score = total;
|
||||||
}
|
}
|
||||||
//支部评分总分
|
//支部评分总分
|
||||||
const inputZbChange = (row) => {
|
const inputZbChange = (row) => {
|
||||||
//计算出dataSource6里分数在children下所有的已评总分
|
//计算出dataSource6里分数在children下所有的已评总分
|
||||||
let total = 0;
|
let total = 0;
|
||||||
const index = dataSource6.value.findIndex(item => item.id === row.pid);
|
const index = dataSource6.value.findIndex(item => item.id === row.pid);
|
||||||
@ -263,9 +264,9 @@
|
|||||||
total += parseInt(item.party_branch_score);
|
total += parseInt(item.party_branch_score);
|
||||||
});
|
});
|
||||||
dataSource6.value[index].party_branch_score = total;
|
dataSource6.value[index].party_branch_score = total;
|
||||||
}
|
}
|
||||||
//支部评分总分
|
//支部评分总分
|
||||||
const inputListZbShow = () => {
|
const inputListZbShow = () => {
|
||||||
//计算出dataSource6里分数在children下所有的已评总分
|
//计算出dataSource6里分数在children下所有的已评总分
|
||||||
dataSource6.value.forEach((item, index) => {
|
dataSource6.value.forEach((item, index) => {
|
||||||
let total = 0;
|
let total = 0;
|
||||||
@ -274,9 +275,9 @@
|
|||||||
});
|
});
|
||||||
dataSource6.value[index].party_branch_score = total;
|
dataSource6.value[index].party_branch_score = total;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
//医院评分总分
|
//医院评分总分
|
||||||
const inputYyChange = (row) => {
|
const inputYyChange = (row) => {
|
||||||
//计算出dataSource6里分数在children下所有的已评总分
|
//计算出dataSource6里分数在children下所有的已评总分
|
||||||
let total = 0;
|
let total = 0;
|
||||||
const index = dataSource6.value.findIndex(item => item.id === row.pid);
|
const index = dataSource6.value.findIndex(item => item.id === row.pid);
|
||||||
@ -284,9 +285,9 @@
|
|||||||
total += parseInt(item.hospital_score);
|
total += parseInt(item.hospital_score);
|
||||||
});
|
});
|
||||||
dataSource6.value[index].hospital_score = total;
|
dataSource6.value[index].hospital_score = total;
|
||||||
}
|
}
|
||||||
//总党支评分总分
|
//总党支评分总分
|
||||||
const inputListYyShow = () => {
|
const inputListYyShow = () => {
|
||||||
dataSource6.value.forEach((item, index) => {
|
dataSource6.value.forEach((item, index) => {
|
||||||
let total = 0;
|
let total = 0;
|
||||||
item.children.forEach(item2 => {
|
item.children.forEach(item2 => {
|
||||||
@ -294,9 +295,9 @@
|
|||||||
});
|
});
|
||||||
dataSource6.value[index].hospital_score = total;
|
dataSource6.value[index].hospital_score = total;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
//总党支评分总分
|
//总党支评分总分
|
||||||
const inputZdzChange = (row) => {
|
const inputZdzChange = (row) => {
|
||||||
//计算出dataSource6里分数在children下所有的已评总分
|
//计算出dataSource6里分数在children下所有的已评总分
|
||||||
let total = 0;
|
let total = 0;
|
||||||
const index = dataSource6.value.findIndex(item => item.id === row.pid);
|
const index = dataSource6.value.findIndex(item => item.id === row.pid);
|
||||||
@ -304,9 +305,9 @@
|
|||||||
total += parseInt(item.overall_party_score);
|
total += parseInt(item.overall_party_score);
|
||||||
});
|
});
|
||||||
dataSource6.value[index].overall_party_score = total;
|
dataSource6.value[index].overall_party_score = total;
|
||||||
}
|
}
|
||||||
//总党支评分总分
|
//总党支评分总分
|
||||||
const inputListZdzShow = () => {
|
const inputListZdzShow = () => {
|
||||||
dataSource6.value.forEach((item, index) => {
|
dataSource6.value.forEach((item, index) => {
|
||||||
let total = 0;
|
let total = 0;
|
||||||
item.children.forEach(item2 => {
|
item.children.forEach(item2 => {
|
||||||
@ -314,9 +315,9 @@
|
|||||||
});
|
});
|
||||||
dataSource6.value[index].overall_party_score = total;
|
dataSource6.value[index].overall_party_score = total;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
//科室评分总分
|
//科室评分总分
|
||||||
const inputListKsShow = () => {
|
const inputListKsShow = () => {
|
||||||
//计算出dataSource6里分数在children下所有的已评总分
|
//计算出dataSource6里分数在children下所有的已评总分
|
||||||
dataSource6.value.forEach((item, index) => {
|
dataSource6.value.forEach((item, index) => {
|
||||||
let total = 0;
|
let total = 0;
|
||||||
@ -325,9 +326,9 @@
|
|||||||
});
|
});
|
||||||
dataSource6.value[index].department_score = total;
|
dataSource6.value[index].department_score = total;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
//自评列表总分
|
//自评列表总分
|
||||||
const inputListZpShow = () => {
|
const inputListZpShow = () => {
|
||||||
//计算出dataSource6里分数在children下所有的已评总分
|
//计算出dataSource6里分数在children下所有的已评总分
|
||||||
|
|
||||||
dataSource6.value.forEach((item, index) => {
|
dataSource6.value.forEach((item, index) => {
|
||||||
@ -338,45 +339,59 @@
|
|||||||
dataSource6.value[index].avg_score = total;
|
dataSource6.value[index].avg_score = total;
|
||||||
dataSource6.value[index].content_score = total;
|
dataSource6.value[index].content_score = total;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
const userShow = ref(false);
|
const userShow = ref(false);
|
||||||
const userColumns = ref([
|
const userColumns = ref([
|
||||||
{ title: '年度', width: '80px', key: 'year', align: 'center' },
|
{ title: '年度', width: '80px', key: 'year', align: 'center' },
|
||||||
{ title: '考评对象', width: '100px', key: 'user', 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: '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})=>{
|
title: '自评总分', width: '100px', key: 'self_score', align: 'center', customSlot: ({ row }) => {
|
||||||
return row.department_score==''||row.department_score==0?'未评分':row.department_score;
|
return row.self_score == '' || row.self_score == 0 ? '未评分' : row.self_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: 'department_score', align: 'center', customSlot: ({ row }) => {
|
||||||
{ title: '总党支评分', width: '100px', key: 'overall_party_score', align: 'center', customSlot: ({row})=>{
|
return row.department_score == '' || row.department_score == 0 ? '未评分' : row.department_score;
|
||||||
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: '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: 'total_score', align: 'center', customSlot: ({row})=>{
|
}
|
||||||
return row.total_score==''||row.total_score==0?'未评分':row.total_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: 'scoringrecord_status', customSlot: 'scoringrecord_status', align: 'center' },
|
||||||
{ title: '操作', width: '100px', key: 'operator', customSlot: 'operator', align: 'center' },
|
{ title: '操作', width: '100px', key: 'operator', customSlot: 'operator', align: 'center' },
|
||||||
])
|
])
|
||||||
const userDataSource = ref([]);
|
const userDataSource = ref([]);
|
||||||
const userTabId = ref(0);
|
const userTabId = ref(0);
|
||||||
const userInfo = ref({});
|
const userInfo = ref({});
|
||||||
const searchAccountUser = ref(dayjs().year());
|
const searchAccountUser = ref(dayjs().year());
|
||||||
const openUserListShow = (row) => {
|
const openUserListShow = (row) => {
|
||||||
userInfo.value = row;
|
userInfo.value = row;
|
||||||
userShow.value = true;
|
userShow.value = true;
|
||||||
getUserListInfo();
|
getUserListInfo();
|
||||||
}
|
}
|
||||||
const getUserListInfo = () => {
|
const getUserListInfo = () => {
|
||||||
getAnnualFindData({
|
getAnnualFindData({
|
||||||
'user_id': userInfo.value.id,
|
'user_id': userInfo.value.id,
|
||||||
'evaluation_id': userTabId.value,
|
'evaluation_id': userTabId.value,
|
||||||
@ -389,14 +404,14 @@
|
|||||||
userDataSource.value = [];
|
userDataSource.value = [];
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const openUserTab = (d) => {
|
const openUserTab = (d) => {
|
||||||
console.log(d)
|
console.log(d)
|
||||||
userTabId.value = d;
|
userTabId.value = d;
|
||||||
userDataSource.value = [];
|
userDataSource.value = [];
|
||||||
getUserListInfo();
|
getUserListInfo();
|
||||||
}
|
}
|
||||||
const getMonthlyInfo = (item, type) => {
|
const getMonthlyInfo = (item, type) => {
|
||||||
addIsInfo.value = type;
|
addIsInfo.value = type;
|
||||||
infoShow.value = true;
|
infoShow.value = true;
|
||||||
console.log(item);
|
console.log(item);
|
||||||
@ -493,28 +508,28 @@
|
|||||||
totalRow: true
|
totalRow: true
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const toUserSearch = () => {
|
const toUserSearch = () => {
|
||||||
getUserListInfo();
|
getUserListInfo();
|
||||||
}
|
}
|
||||||
const openTab = (d) => {
|
const openTab = (d) => {
|
||||||
console.log(d)
|
console.log(d)
|
||||||
tab_id.value = d;
|
tab_id.value = d;
|
||||||
dataSource.value = [];
|
dataSource.value = [];
|
||||||
page.current = 1;
|
page.current = 1;
|
||||||
getList();
|
getList();
|
||||||
}
|
}
|
||||||
const page = reactive({ current: 1, limit: 10, total: 1 })
|
const page = reactive({ current: 1, limit: 10, total: 1 })
|
||||||
const change = (d) => {
|
const change = (d) => {
|
||||||
console.log(d);
|
console.log(d);
|
||||||
page.current = d.current;
|
page.current = d.current;
|
||||||
page.limit = d.limit;
|
page.limit = d.limit;
|
||||||
getList();
|
getList();
|
||||||
}
|
}
|
||||||
const addIsInfo = ref(1);
|
const addIsInfo = ref(1);
|
||||||
const infoShow = ref(false);
|
const infoShow = ref(false);
|
||||||
const yearmonth = ref(dayjs().year());
|
const yearmonth = ref(dayjs().year());
|
||||||
const getList = () => {
|
const getList = () => {
|
||||||
getYearUserList({
|
getYearUserList({
|
||||||
'user_id': userId.value,
|
'user_id': userId.value,
|
||||||
'group_id': group_id.value,
|
'group_id': group_id.value,
|
||||||
@ -531,9 +546,9 @@
|
|||||||
layer.msg(res.msg, { icon: 2 })
|
layer.msg(res.msg, { icon: 2 })
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const dataSerSource = ref([]);
|
const dataSerSource = ref([]);
|
||||||
const getSerList = () => {
|
const getSerList = () => {
|
||||||
getYearUserList({
|
getYearUserList({
|
||||||
'group_id': group_id.value,
|
'group_id': group_id.value,
|
||||||
'time': yearmonth.value,
|
'time': yearmonth.value,
|
||||||
@ -548,9 +563,9 @@
|
|||||||
layer.msg(res.msg, { icon: 2 })
|
layer.msg(res.msg, { icon: 2 })
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const thisInfo = ref();
|
const thisInfo = ref();
|
||||||
const getInfo = (row, type) => {
|
const getInfo = (row, type) => {
|
||||||
infoShow.value = true;
|
infoShow.value = true;
|
||||||
addIsInfo.value = type;
|
addIsInfo.value = type;
|
||||||
thisInfo.value = row;
|
thisInfo.value = row;
|
||||||
@ -646,8 +661,8 @@
|
|||||||
totalRow: true
|
totalRow: true
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const getInfoMode = (row) => {
|
const getInfoMode = (row) => {
|
||||||
getYearListFind({
|
getYearListFind({
|
||||||
evaluation_schedule_id: tab_id.value,
|
evaluation_schedule_id: tab_id.value,
|
||||||
month: row.time,
|
month: row.time,
|
||||||
@ -665,10 +680,10 @@
|
|||||||
layer.msg(res.msg, { icon: 2 })
|
layer.msg(res.msg, { icon: 2 })
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const tabList = ref([]);
|
const tabList = ref([]);
|
||||||
const tab_id = ref(0);
|
const tab_id = ref(0);
|
||||||
const getTabList = () => {
|
const getTabList = () => {
|
||||||
getGroupYear({ 'group_id': group_id.value }).then((res) => {
|
getGroupYear({ 'group_id': group_id.value }).then((res) => {
|
||||||
console.log(res)
|
console.log(res)
|
||||||
if (res.code == 1) {
|
if (res.code == 1) {
|
||||||
@ -680,9 +695,9 @@
|
|||||||
layer.msg(res.msg, { icon: 2 })
|
layer.msg(res.msg, { icon: 2 })
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const group_id = ref(1);
|
const group_id = ref(1);
|
||||||
const getLeftList = () => {
|
const getLeftList = () => {
|
||||||
getUserGroupNew({}).then((res) => {
|
getUserGroupNew({}).then((res) => {
|
||||||
console.log(res)
|
console.log(res)
|
||||||
if (res.code == 1) {
|
if (res.code == 1) {
|
||||||
@ -694,62 +709,74 @@
|
|||||||
layer.msg(res.msg, { icon: 2 })
|
layer.msg(res.msg, { icon: 2 })
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const data = ref([])
|
const data = ref([])
|
||||||
const isFold = ref(false)
|
const isFold = ref(false)
|
||||||
const searchQuery = ref({
|
const searchQuery = ref({
|
||||||
year: '',
|
year: '',
|
||||||
evaluateTarget: '',
|
evaluateTarget: '',
|
||||||
status: ''
|
status: ''
|
||||||
})
|
})
|
||||||
|
|
||||||
function toReset() {
|
function toReset() {
|
||||||
searchQuery.value = {
|
searchQuery.value = {
|
||||||
year: '',
|
year: '',
|
||||||
evaluateTarget: '',
|
evaluateTarget: '',
|
||||||
status: ''
|
status: ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleClick(node: any) {
|
function handleClick(node: any) {
|
||||||
// selectedNode.value = JSON.parse(JSON.stringify(node))
|
// selectedNode.value = JSON.parse(JSON.stringify(node))
|
||||||
page.current = 1;
|
page.current = 1;
|
||||||
getList();
|
getList();
|
||||||
// change(page)
|
// change(page)
|
||||||
}
|
}
|
||||||
|
|
||||||
function toSearch() {
|
function toSearch() {
|
||||||
page.current = 1;
|
page.current = 1;
|
||||||
getList();
|
getList();
|
||||||
}
|
}
|
||||||
|
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
const selectedKeys = ref()
|
const selectedKeys = ref()
|
||||||
const columns = ref([
|
const columns = ref([
|
||||||
{ title: '选项', width: '55px', type: 'checkbox', align: 'center' },
|
{ title: '选项', width: '55px', type: 'checkbox', align: 'center' },
|
||||||
{ title: '序号', width: '60px', key: 'id', align: 'center' },
|
{ title: '序号', width: '60px', key: 'id', align: 'center' },
|
||||||
{ title: '年度', width: '80px', key: 'time', align: 'center' },
|
{ title: '年度', width: '80px', key: 'time', align: 'center' },
|
||||||
{ title: '考评对象', width: '100px', key: 'nickname', customSlot: 'nickname', align: 'center' },
|
{ title: '考评对象', width: '100px', key: 'nickname', customSlot: 'nickname', align: 'center' },
|
||||||
{ title: '工号', width: '100px', key: 'code', align: 'center' },
|
{ title: '工号', width: '100px', key: 'code', align: 'center' },
|
||||||
{ title: '部门', width: '120px', key: 'group_name', 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: '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})=>{
|
title: '科室评分', width: '100px', key: 'department_score_scoringrecord', align: 'center', customSlot: ({ row }) => {
|
||||||
return row.party_score_scoringrecord==''||row.party_score_scoringrecord==0?'未评分':row.party_score_scoringrecord;
|
return row.department_score_scoringrecord == '' || row.department_score_scoringrecord == 0 ? '未评分' : row.department_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: 'party_score_scoringrecord', align: 'center', customSlot: ({ row }) => {
|
||||||
{ title: '医院评分', width: '100px', key: 'hospital_score_scoringrecord', align: 'center', customSlot: ({row})=>{
|
return row.party_score_scoringrecord == '' || row.party_score_scoringrecord == 0 ? '未评分' : row.party_score_scoringrecord;
|
||||||
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: '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: '自评状态', width: '100px', key: 'scoringrecord_status', customSlot: 'scoringrecord_status', align: 'center' },
|
||||||
{
|
{
|
||||||
title: '操作',
|
title: '操作',
|
||||||
@ -758,9 +785,9 @@
|
|||||||
key: 'operator',
|
key: 'operator',
|
||||||
fixed: 'right', align: 'center'
|
fixed: 'right', align: 'center'
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
const dataSource = ref()
|
const dataSource = ref()
|
||||||
const addButton = ref([
|
const addButton = ref([
|
||||||
{
|
{
|
||||||
text: "确认",
|
text: "确认",
|
||||||
callback: async () => {
|
callback: async () => {
|
||||||
@ -789,9 +816,9 @@
|
|||||||
infoShow.value = false;
|
infoShow.value = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
||||||
const layerEnd = () => {
|
const layerEnd = () => {
|
||||||
columns6.value = [
|
columns6.value = [
|
||||||
{
|
{
|
||||||
title: "考评项目",
|
title: "考评项目",
|
||||||
@ -815,48 +842,48 @@
|
|||||||
totalRow: true
|
totalRow: true
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
const dataSource6 = ref([])
|
const dataSource6 = ref([])
|
||||||
|
|
||||||
|
|
||||||
const openDownload = () => {
|
const openDownload = () => {
|
||||||
window.open(baseURL + '/uploads/信阳市传染病医院医德医风考评优秀等次人员复审表.xls', '_blank')
|
window.open(baseURL + '/uploads/信阳市传染病医院医德医风考评优秀等次人员复审表.xls', '_blank')
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.layui-table-header .layui-table-cell {
|
.layui-table-header .layui-table-cell {
|
||||||
background-color: #ECF8FA !important;
|
background-color: #ECF8FA !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.organization-box {
|
.organization-box {
|
||||||
width: calc(100vw - 240px);
|
width: calc(100vw - 240px);
|
||||||
height: calc(100vh - 110px);
|
height: calc(100vh - 110px);
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.left-tree {
|
.left-tree {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 20px 15px 0 5px;
|
padding: 20px 15px 0 5px;
|
||||||
height: 1200px;
|
height: 1200px;
|
||||||
border-right: 1px solid #e6e6e6;
|
border-right: 1px solid #e6e6e6;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* todo layui-tree-entry 设置无效 */
|
/* todo layui-tree-entry 设置无效 */
|
||||||
.layui-tree-entry {
|
.layui-tree-entry {
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: 10px 0;
|
padding: 10px 0;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.isFold {
|
.isFold {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 36%;
|
top: 36%;
|
||||||
right: -10px;
|
right: -10px;
|
||||||
@ -867,22 +894,38 @@
|
|||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border: 1px solid #e6e6e6;
|
border: 1px solid #e6e6e6;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.search-input {
|
.search-input {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 98%;
|
width: 98%;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.isChecked {
|
.isChecked {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
background-color: #e8f1ff;
|
background-color: #e8f1ff;
|
||||||
color: red;
|
color: red;
|
||||||
}
|
}
|
||||||
|
|
||||||
.layui-tab-content {
|
.layui-tab-content {
|
||||||
padding: 0;
|
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>
|
@ -49,7 +49,7 @@
|
|||||||
<lay-tab v-model="tab_id" @change="openTab">
|
<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-item v-for="item in tabList" :title="item.title" :id="item.id"></lay-tab-item>
|
||||||
</lay-tab>
|
</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">
|
v-model:selected-keys="selectedKeys" @change="change">
|
||||||
<template v-slot:scoringrecord_status="{ row }">
|
<template v-slot:scoringrecord_status="{ row }">
|
||||||
<!-- 1.已自评 2.未自评 3.科室已评 4.医院已评 5.支部已评 6.总党支已评 -->
|
<!-- 1.已自评 2.未自评 3.科室已评 4.医院已评 5.支部已评 6.总党支已评 -->
|
||||||
@ -876,5 +876,21 @@
|
|||||||
.layui-tab-content {
|
.layui-tab-content {
|
||||||
padding: 0;
|
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>
|
</style>
|
||||||
|
|
@ -32,7 +32,7 @@
|
|||||||
</lay-col>
|
</lay-col>
|
||||||
<lay-col :md="5">
|
<lay-col :md="5">
|
||||||
<lay-form-item label="时间" label-width="80">
|
<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>
|
allow-clear></lay-date-picker>
|
||||||
</lay-form-item>
|
</lay-form-item>
|
||||||
</lay-col>
|
</lay-col>
|
||||||
@ -119,6 +119,12 @@ const ser = reactive({
|
|||||||
nickname: '',
|
nickname: '',
|
||||||
year: dayjs().year()
|
year: dayjs().year()
|
||||||
});
|
});
|
||||||
|
const toReset = () => {
|
||||||
|
ser.type = 1;
|
||||||
|
ser.nickname = '';
|
||||||
|
ser.year = dayjs().year();
|
||||||
|
getGroupEvaluation();
|
||||||
|
}
|
||||||
const toSearch = () => {
|
const toSearch = () => {
|
||||||
page.current = 1;
|
page.current = 1;
|
||||||
getGroupEvaluation();
|
getGroupEvaluation();
|
||||||
@ -150,6 +156,8 @@ const getGroupEvaluation = () => {
|
|||||||
console.log(res)
|
console.log(res)
|
||||||
if (res.code == 1) {
|
if (res.code == 1) {
|
||||||
dataSource.value = res.data;
|
dataSource.value = res.data;
|
||||||
|
}else{
|
||||||
|
dataSource.value = [];
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
<lay-tab v-model="tab_id" @change="openTab">
|
<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-item v-for="item in tabList" :title="item.title" :id="item.id"></lay-tab-item>
|
||||||
</lay-tab>
|
</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">
|
v-model:selected-keys="selectedKeys" @change="change">
|
||||||
<template v-slot:scoringrecord_status="{ row }">
|
<template v-slot:scoringrecord_status="{ row }">
|
||||||
<!-- 1.已自评 2.未自评 3.科室已评 4.医院已评 5.支部已评 6.总党支已评 -->
|
<!-- 1.已自评 2.未自评 3.科室已评 4.医院已评 5.支部已评 6.总党支已评 -->
|
||||||
@ -882,5 +882,21 @@
|
|||||||
.layui-tab-content {
|
.layui-tab-content {
|
||||||
padding: 0;
|
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>
|
</style>
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user